diff --git a/README.txt b/README.txt new file mode 100644 index 0000000..9cca7af --- /dev/null +++ b/README.txt @@ -0,0 +1,21 @@ +A subgame by 1248 +I develop the Regnum subgame over the last 5 years +Thanks to: +NightmareLP who build a mod for my subgame +et77 who had some great ideas +wuschel1912 who tests the subgame + + +If you want better tools and/or to upgrade them, Regnum is the right choice for you. +With Regnum you can get very fast tools. Some tools can double your ores when you dig for them. +You have to craft more then 120 battleaxes to get the best one. The Regnum battle-axe! +Only simple things are needed to upgrade your tools. Dirt, cobble…but you need lots of it. +Or you need some new ores such as uranium, titanium or more then 20 others. +Dig up uranium and you get green experience. Dig up a red or blue ore and you get red or blue experience. +Get the highest level, the xp key, the craft key or the bag key. +With the craft key you can craft 4x4. +Look with the xp key for all xp you need. +Get coins, laser-guns and many other rewards +Get a gift from 4 mobs. +More then 1800 different blocks, items, tools and lots more. +It will take a long time before you get the regnum battle-axe, the highest level, all keys,8 Regnum bags and the best armor \ No newline at end of file diff --git a/game.conf b/game.conf new file mode 100644 index 0000000..6f98c06 --- /dev/null +++ b/game.conf @@ -0,0 +1 @@ +name = Regnum diff --git a/menu/Thumbs.db b/menu/Thumbs.db new file mode 100644 index 0000000..34cb0cb Binary files /dev/null and b/menu/Thumbs.db differ diff --git a/menu/header.png b/menu/header.png new file mode 100644 index 0000000..2150a12 Binary files /dev/null and b/menu/header.png differ diff --git a/menu/icon.png b/menu/icon.png new file mode 100644 index 0000000..6d77ebb Binary files /dev/null and b/menu/icon.png differ diff --git a/menu/icon2.png b/menu/icon2.png new file mode 100644 index 0000000..9f159ee Binary files /dev/null and b/menu/icon2.png differ diff --git a/mods/3d_armor/.gitignore b/mods/3d_armor/.gitignore new file mode 100644 index 0000000..6e4e459 --- /dev/null +++ b/mods/3d_armor/.gitignore @@ -0,0 +1,8 @@ +## Generic ignorable patterns and files +*~ +.*.swp +*bak* +tags +*.vim +armor.conf + diff --git a/mods/3d_armor/3d_armor/README.txt b/mods/3d_armor/3d_armor/README.txt new file mode 100644 index 0000000..224f81c --- /dev/null +++ b/mods/3d_armor/3d_armor/README.txt @@ -0,0 +1,24 @@ +[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. + +Fire protection added by TenPlus1 when using crystal armor if Ethereal mod active, level 1 +protects against torches, level 2 for crystal spike, level 3 for fire, level 5 for lava. + +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/admin.lua b/mods/3d_armor/3d_armor/admin.lua new file mode 100644 index 0000000..f8e1dd9 --- /dev/null +++ b/mods/3d_armor/3d_armor/admin.lua @@ -0,0 +1,243 @@ +minetest.register_alias("adminboots","3d_armor:boots_admin") +minetest.register_alias("adminhelmet","3d_armor:helmet_admin") +minetest.register_alias("adminchestplate","3d_armor:chestplate_admin") +minetest.register_alias("adminlegginss","3d_armor:leggings_admin") + +minetest.register_tool("3d_armor:helmet_admin", { + description = "Admin Helmet Mode 1 (no speed and no jump)", + inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode1.png", + wield_image = "3d_armor_inv_helmet_admin.png", + groups = {armor_head=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:helmet_admin2") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:helmet_admin2", { + description = "Admin Helmet Mode 2 (speed and no jump)", + inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode2.png", + wield_image = "3d_armor_inv_helmet_admin.png", + groups = {armor_head=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:helmet_admin3") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:helmet_admin3", { + description = "Admin Helmet Mode 3 (no speed and jump)", + inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode3.png", + wield_image = "3d_armor_inv_helmet_admin.png", + groups = {armor_head=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_jump=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:helmet_admin4") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:helmet_admin4", { + description = "Admin Helmet Mode 4 (speed and jump)", + inventory_image = "3d_armor_inv_helmet_admin.png^technic_tool_mode4.png", + wield_image = "3d_armor_inv_helmet_admin.png", + groups = {armor_head=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:helmet_admin") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:chestplate_admin", { + description = "Admin Chestplate Mode 1 (no speed and no jump)", + inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode1.png", + wield_image = "3d_armor_inv_chestplate_admin.png", + groups = {armor_torso=10000, armor_heal=5000, armor_use=0, not_in_creative_inventory=1, armor_fire=2000}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:chestplate_admin2") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:chestplate_admin2", { + description = "Admin Chestplate Mode 2 (speed and no jump)", + inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode2.png", + wield_image = "3d_armor_inv_chestplate_admin.png", + groups = {armor_torso=10000, armor_heal=5000, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:chestplate_admin3") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:chestplate_admin3", { + description = "Admin Chestplate Mode 3 (no speed and jump)", + inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode3.png", + wield_image = "3d_armor_inv_chestplate_admin.png", + groups = {armor_torso=10000, armor_heal=5000, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_jump=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:chestplate_admin4") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:chestplate_admin4", { + description = "Admin Chestplate Mode 4 (speed and jump)", + inventory_image = "3d_armor_inv_chestplate_admin.png^technic_tool_mode4.png", + wield_image = "3d_armor_inv_chestplate_admin.png", + groups = {armor_torso=10000, armor_heal=5000, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:chestplate_admin") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:leggings_admin", { + description = "Admin Leggings Mode 1 (no speed and no jump)", + wield_image = "3d_armor_inv_leggings_admin.png", + inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode1.png", + groups = {armor_legs=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:leggings_admin2") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:leggings_admin2", { + description = "Admin Leggings Mode 2 (speed and no jump)", + wield_image = "3d_armor_inv_leggings_admin.png", + inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode2.png", + groups = {armor_legs=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:leggings_admin3") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:leggings_admin3", { + description = "Admin Leggings Mode 3 (no speed and jump)", + wield_image = "3d_armor_inv_leggings_admin.png", + inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode3.png", + groups = {armor_legs=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_jump=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:leggings_admin4") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:leggings_admin4", { + description = "Admin Leggings Mode 4 (speed and jump)", + inventory_image = "3d_armor_inv_leggings_admin.png^technic_tool_mode4.png", + wield_image = "3d_armor_inv_leggings_admin.png", + groups = {armor_legs=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:leggings_admin") + end + return itemstack + end, +}) + + + +minetest.register_tool("3d_armor:boots_admin", { + description = "Admin Boots Mode 1 (no speed and no jump)", + inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode1.png", + wield_image = "3d_armor_inv_boots_admin.png", + groups = {armor_feet=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:boots_admin2") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:boots_admin2", { + description = "Admin Boots Mode 2 (speed and no jump)", + inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode2.png", + wield_image = "3d_armor_inv_boots_admin.png", + groups = {armor_feet=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:boots_admin3") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:boots_admin3", { + description = "Admin Boots Mode 3 (no speed and jump)", + inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode3.png", + wield_image = "3d_armor_inv_boots_admin.png", + groups = {armor_feet=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_jump=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:boots_admin4") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:boots_admin4", { + description = "Admin Boots Mode 4 (speed and jump)", + inventory_image = "3d_armor_inv_boots_admin.png^technic_tool_mode4.png", + wield_image = "3d_armor_inv_boots_admin.png", + groups = {armor_feet=5000, armor_heal=2500, armor_use=0, not_in_creative_inventory=1, armor_fire=2000, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:boots_admin") + end + return itemstack + end, +}) \ No newline at end of file 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 0000000..fceb9ed --- /dev/null +++ b/mods/3d_armor/3d_armor/armor.conf.example @@ -0,0 +1,56 @@ +-- Armor Configuration (defaults) + +-- You can remove any unwanted armor materials from this table. +-- Note that existing armor that is removed will show up as an unknown item. +ARMOR_MATERIALS = { + wood = "group:wood", + cactus = "default:cactus", + steel = "default:steel_ingot", + bronze = "default:bronze_ingot", + diamond = "default:diamond", + gold = "default:gold_ingot", + mithril = "moreores:mithril_ingot", + crystal = "ethereal:crystal_ingot", +} + +-- Enable fire protection (defaults true if using ethereal mod) +ARMOR_FIRE_PROTECT = false + +-- Fire protection nodes, (name, protection level, damage) +ARMOR_FIRE_NODES = { + {"default:lava_source", 5, 4}, + {"default:lava_flowing", 5, 4}, + {"fire:basic_flame", 3, 4}, + {"ethereal:crystal_spike", 2, 1}, + {"bakedclay:safe_fire", 2, 1}, + --{"default:torch", 1, 1}, +} + +-- 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 = 1 + diff --git a/mods/3d_armor/3d_armor/armor.lua b/mods/3d_armor/3d_armor/armor.lua new file mode 100644 index 0000000..63145a4 --- /dev/null +++ b/mods/3d_armor/3d_armor/armor.lua @@ -0,0 +1,734 @@ + +ARMOR_INIT_DELAY = 1 +ARMOR_INIT_TIMES = 1 +ARMOR_BONES_DELAY = 1 +ARMOR_UPDATE_TIME = 1 +ARMOR_DROP = false +ARMOR_DESTROY = false +ARMOR_LEVEL_MULTIPLIER = 1 +ARMOR_HEAL_MULTIPLIER = 1 +ARMOR_MATERIALS = { + wood = "default:stick", + cactus = "default:cactus", + steel = "default:steel_ingot", + bronze = "default:bronze_ingot", + diamond = "default:diamond", + gold = "default:gold_ingot", + mithril = "moreores:mithril_ingot", + crystal = "ethereal:crystal_ingot", +} +ARMOR_FIRE_PROTECT = true +ARMOR_FIRE_NODES = { + {"default:lava_source", 5, 4}, + {"default:lava_flowing", 5, 4}, + {"fire:basic_flame", 3, 4}, + {"ethereal:crystal_spike", 2, 1}, + {"bakedclay:safe_fire", 2, 1}, + {"technic:corium_source", 2, 2}, + {"technic:corium_flowing", 2, 2}, + {"tutorial:xp_block", 2, 5}, +} + +local skin_mod = nil +local inv_mod = nil + +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 +if not minetest.get_modpath("moreores") then + ARMOR_MATERIALS.mithril = nil +end +if not minetest.get_modpath("ethereal") then + ARMOR_MATERIALS.crystal = nil +end + +-- override hot nodes so they do not hurt player anywhere but mod +if ARMOR_FIRE_PROTECT == true then + minetest.after(2, function() + for _, row in ipairs(ARMOR_FIRE_NODES) do + if minetest.registered_nodes[row[1]] then + minetest.override_item(row[1], {damage_per_second = 0, radioaktive = 0}) + end + end + end) +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;]" + .."list[detached:player_name_armor;arm2;6,2;1,1;]" + .."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", + version = "0.4.3", +} + +if minetest.get_modpath("inventory_plus") then + inv_mod = "inventory_plus" + armor.formspec = "size[10,9.5]button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[10,9.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[detached:player_name_armor;armor;0,1;1,4;]" + .."list[detached:player_name_armor;armor;1,2.5;1,1;4]" + .."image[2.5,0.75;2,4;armor_preview]" + .."label[4.5,1;Level: armor_level]" + .."label[4.5,1.5;Heal: armor_heal]" + .."label[4.5,2;Fire: armor_fire]" + .."label[4.5,2.5.5;Speed: armor_speed]" + .."label[4.5,3;Jump: armor_jump]" + .."label[8,3;Armor key]" + .."label[5.9,3;Protectionkey]" + .."list[current_player;main;1,5.5;8,1;]" + .."list[current_player;main;1,6.75;8,3;8]" + .."list[current_player;arm;8,2;1,1;]" + .."list[detached:player_name_armor;arm2;6,2;1,1;]" + +elseif minetest.get_modpath("unified_inventory") then + inv_mod = "unified_inventory" + 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.."]" + .."label[5,2;Fire: "..armor.def[name].fire.."]" + return {formspec=formspec} + end, + }) +elseif minetest.get_modpath("inventory_enhanced") then + inv_mod = "inventory_enhanced" +end + +if minetest.get_modpath("skins") then + skin_mod = "skins" +elseif minetest.get_modpath("simple_skins") then + skin_mod = "simple_skins" +elseif minetest.get_modpath("u_skins") then + skin_mod = "u_skins" +elseif minetest.get_modpath("wardrobe") then + skin_mod = "wardrobe" +end + +armor.def = { + state = 0, + count = 0, +} + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.armoff then + + local player_inv = player:get_inventory() + player_inv:set_size("am", 1) + local type = player:get_inventory():get_stack("arm",1):get_name() + if type == "tutorial:armor_key" then + player_inv:set_stack("am", 1, "default:dirt") + else + end + armor:set_player_armor(player) + armor:update_inventory(player) + local name = player:get_player_name() + local formspec = armor:get_armor_formspec(name) + if inv_mod == "inventory_plus" then + local page = player:get_inventory_formspec() + if page:find("detached:"..name.."_armor") then + inventory_plus.set_inventory_formspec(player, formspec) + end + end + end + if fields.armon then + + local player_inv = player:get_inventory() + player_inv:set_size("am", 1) + player_inv:set_stack("am", 1, nil) + armor:set_player_armor(player) + armor:update_inventory(player) + local name = player:get_player_name() + local formspec = armor:get_armor_formspec(name) + if inv_mod == "inventory_plus" then + local page = player:get_inventory_formspec() + if page:find("detached:"..name.."_armor") then + inventory_plus.set_inventory_formspec(player, formspec) + end + end + end +end) +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) + local name, player_inv = armor:get_valid_player(player, "[set_player_armor]") + if not name then + return + end + local armor_texture = "3d_armor_trans.png" + local armor_level = 0 + local armor_heal = 0 + local armor_fire = 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_preview(name) or "character_preview.png" + for _,v in ipairs(self.elements) do + elements[v] = false + end + for i=1, 5 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("%:", "_") + local player_inv = player:get_inventory() + local coun = player_inv:get_stack("am", 1):get_count() + if coun == 0 then + table.insert(textures, texture..".png") + else + end + 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 + local fire = def.groups["armor_fire"] or 0 + armor_fire = armor_fire + fire + 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 + armor_level = armor_level * ARMOR_LEVEL_MULTIPLIER + armor_heal = armor_heal * ARMOR_HEAL_MULTIPLIER + local player_inv = player:get_inventory() + local arm = player_inv:get_stack("arm2", 1):get_name() + if arm == "tutorial:protection_schluessel1" then + armor_level = armor_level+armor_level*0.1 + armor_heal = armor_heal+armor_heal*0.1 + armor_fire = armor_fire+armor_fire*0.1 + elseif arm == "tutorial:protection_schluessel2" then + armor_level = armor_level+armor_level*0.2 + armor_heal = armor_heal+armor_heal*0.2 + armor_fire = armor_fire+armor_fire*0.2 + elseif arm == "tutorial:protection_schluessel3" then + armor_level = armor_level+armor_level*0.3 + armor_heal = armor_heal+armor_heal*0.3 + armor_fire = armor_fire+armor_fire*0.3 + end + + 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 / 100) + 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.def[name].fire = armor_fire + self:update_player_visuals(player) +end + +armor.update_armor = function(self, player, dtime) + local name, player_inv, armor_inv, pos = armor:get_valid_player(player, "[update_armor]") + if not name then + return + end + local hp = player:get_hp() or 0 + if ARMOR_FIRE_PROTECT == true then + pos.y = pos.y + 1.4 -- head level + local node_head = minetest.get_node(pos).name + pos.y = pos.y - 1.2 -- feet level + local node_feet = minetest.get_node(pos).name + -- is player inside a hot node? + for _, row in ipairs(ARMOR_FIRE_NODES) do + -- check for fire protection, if not enough then get hurt + if row[1] == node_head or row[1] == node_feet then + if hp > 0 and armor.def[name].fire < row[2] then + player:set_hp(hp - row[3] * dtime) + break + end + end + end + end + if hp == 0 or hp == self.player_hp[name] then + return + end + if self.player_hp[name] > hp then + local heal_max = 0 + local state = 0 + local items = 0 + for i=1, 5 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 + local player_inv = player:get_inventory() + local arm = player_inv:get_stack("arm2", 1):get_name() + if arm == "tutorial:protection_schluessel1" then + heal_max = heal_max+heal_max*0.1 + elseif arm == "tutorial:protection_schluessel2" then + heal_max = heal_max+heal_max*0.2 + elseif arm == "tutorial:protection_schluessel3" then + heal_max = heal_max+heal_max*0.3 + end + self.def[name].state = state + self.def[name].count = items + heal_max = heal_max * ARMOR_HEAL_MULTIPLIER + if heal_max == nil or heal_max == 0 then + heal_max = 1 + end + if heal_max > math.random(heal_max + math.floor(heal_max*0.1)) 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 skin_mod == "skins" or skin_mod == "simple_skins" then + skin = skins.skins[name] + elseif skin_mod == "u_skins" then + skin = u_skins.u_skins[name] + elseif skin_mod == "wardrobe" then + skin = string.gsub(wardrobe.playerSkins[name], "%.png$","") + end + return skin or armor.default_skin +end + +armor.get_preview = function(self, name) + if skin_mod == "skins" then + return armor:get_player_skin(name).."_preview.png" + end +end + +armor.get_armor_formspec = function(self, name) + if not armor.textures[name] then + minetest.log("error", "3d_armor: Player texture["..name.."] is nil [get_armor_formspec]") + return "" + end + if not armor.def[name] then + minetest.log("error", "3d_armor: Armor def["..name.."] is nil [get_armor_formspec]") + return "" + end + local player = minetest.get_player_by_name(name) + local player_inv = player:get_inventory() + local am = player_inv:get_stack("am", 1):get_count() + 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) + formspec = formspec:gsub("armor_heal", armor.def[name].heal) + formspec = formspec:gsub("armor_fire", armor.def[name].fire) + formspec = formspec:gsub("armor_jump", (armor.def[name].jump-1)*4) + formspec = formspec:gsub("armor_speed", (armor.def[name].speed-1)*4) + if am == 1 then + formspec = formspec .."button[7.5,3.7;2,0.5;armon;armor on]" + else + formspec = formspec .."button[7.5,3.7;2,0.5;armoff;armor off]" + + end + return formspec +end +armor.update_inventory = function(self, player) + local name = armor:get_valid_player(player, "[set_player_armor]") + if not name or inv_mod == "inventory_enhanced" then + return + end + if inv_mod == "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 inv_mod == "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 + +armor.get_valid_player = function(self, player, msg) + msg = msg or "" + if not player then + minetest.log("error", "3d_armor: Player reference is nil "..msg) + return + end + local name = player:get_player_name() + if not name then + minetest.log("error", "3d_armor: Player name is nil "..msg) + return + end + local pos = player:getpos() + local player_inv = player:get_inventory() + local armor_inv = minetest.get_inventory({type="detached", name=name.."_armor"}) + if not pos then + minetest.log("error", "3d_armor: Player position is nil "..msg) + return + elseif not player_inv then + minetest.log("error", "3d_armor: Player inventory is nil "..msg) + return + elseif not armor_inv then + minetest.log("error", "3d_armor: Detached armor inventory is nil "..msg) + return + end + return name, player_inv, armor_inv, pos +end + +-- Register Player Model + +default.player_register_model("3d_armor_character.b3d", { + 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 = armor:get_valid_player(player, "[on_player_receive_fields]") + if fields.armor then + local formspec = armor:get_armor_formspec(name) + armor:set_player_armor(player) + armor:update_inventory(player) + local name = player:get_player_name() + local formspec = armor:get_armor_formspec(name) + if inv_mod == "inventory_plus" then + local page = player:get_inventory_formspec() + if page:find("detached:"..name.."_armor") then + inventory_plus.set_inventory_formspec(player, formspec) + end + end + 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.b3d") + 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) + if listname == "armor" then + if index == 1 and stack:get_definition().groups.armor_head then + return 1 + elseif index == 2 and stack:get_definition().groups.armor_torso then + return 1 + elseif index == 3 and stack:get_definition().groups.armor_legs then + return 1 + elseif index == 4 and stack:get_definition().groups.armor_feet then + return 1 + elseif index == 5 and stack:get_definition().groups.armor_shield then + return 1 + else + return 0 + end + else + return 1 + end + + 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) + if listname == "armor" then + if index == 1 and stack:get_definition().groups.armor_head then + return 1 + elseif index == 2 and stack:get_definition().groups.armor_torso then + return 1 + elseif index == 3 and stack:get_definition().groups.armor_legs then + return 1 + elseif index == 4 and stack:get_definition().groups.armor_feet then + return 1 + elseif index == 5 and stack:get_definition().groups.armor_shield then + return 1 + else + return 0 + end + else + return 1 + end + end, + }) + armor_inv:set_size("armor", 5) + armor_inv:set_size("arm2", 1) + player_inv:set_size("arm", 1) + player_inv:set_size("arm2", 1) + player_inv:set_size("armor", 5) + + local stack = player_inv:get_stack("arm2", 1) + armor_inv:set_stack("arm2", 1, stack) + for i=1, 5 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 + -- TODO Remove this on the next version upate + + armor.player_hp[name] = 0 + armor.def[name] = { + state = 0, + count = 0, + level = 0, + heal = 0, + jump = 1, + speed = 1, + gravity = 1, + fire = 0, + } + 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 skin_mod == "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 skin_mod == "simple_skins" then + local skin = skins.skins[name] + if skin then + armor.textures[name].skin = skin..".png" + end + elseif skin_mod == "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 + elseif skin_mod == "wardrobe" then + local skin = wardrobe.playerSkins[name] + if skin then + armor.textures[name].skin = skin + 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 not inv_mod then + armor:update_inventory(player) + end + end, player) + end +end) + +if ARMOR_DROP == true or ARMOR_DESTROY == true then + armor.drop_armor = function(pos, stack) + 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 + minetest.register_on_dieplayer(function(player) + local name, player_inv, armor_inv, pos = armor:get_valid_player(player, "[on_dieplayer]") + if not name then + return + end + local drop = {} + 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 inv_mod == "unified_inventory" then + unified_inventory.set_inventory_formspec(player, "craft") + elseif inv_mod == "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 + minetest.after(ARMOR_BONES_DELAY, function() + pos = vector.round(pos) + local node = minetest.get_node(pos) + if node then + if node.name == "bones:bones" then + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local inv = meta:get_inventory() + for _,stack in ipairs(drop) do + if name == owner and inv:room_for_item("main", stack) then + inv:add_item("main", stack) + else + armor.drop_armor(pos, stack) + end + end + end + else + for _,stack in ipairs(drop) do + armor.drop_armor(pos, stack) + 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, time) + 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 0000000..abd1519 --- /dev/null +++ b/mods/3d_armor/3d_armor/crafting_guide.txt @@ -0,0 +1,79 @@ +3d_armor -- Crafting Guide +-------------------------- + +Helmets: + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | | X | ++---+---+---+ +| | | | ++---+---+---+ + +[3d_armor:helmet_wood] X = [default:wood] +[3d_armor:helmet_cactus] X = [default:cactus] +[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_gold] X = [default:gold_ingot] +[3d_armor:helmet_mithril] X = [moreores:mithril_ingot] * +[3d_armor:helmet_crystal] X = [ethereal:crystal_ingot] ** + +Chestplates: + ++---+---+---+ +| X | | X | ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | X | X | ++---+---+---+ + +[3d_armor:chestplate_wood] X = [default:wood] +[3d_armor:chestplate_cactus] X = [default:cactus] +[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_gold] X = [default:gold_ingot] +[3d_armor:chestplate_mithril] X = [moreores:mithril_ingot] * +[3d_armor:chestplate_crystal] X = [ethereal:crystal_ingot] ** + +Leggings: + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | | X | ++---+---+---+ +| X | | X | ++---+---+---+ + +[3d_armor:leggings_wood] X = [default:wood] +[3d_armor:leggings_cactus] X = [default:cactus] +[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_gold] X = [default:gold_ingot] +[3d_armor:leggings_mithril] X = [moreores:mithril_ingot] * +[3d_armor:leggings_crystal] X = [ethereal:crystal_ingot] ** + +Boots: + ++---+---+---+ +| X | | X | ++---+---+---+ +| X | | X | ++---+---+---+ + +[3d_armor:boots_wood] X = [default:wood] +[3d_armor:boots_cactus] X = [default:cactus] +[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_gold] X = [default:gold_ingot] +[3d_armor:boots_mithril] X = [moreores:mithril_ingot] * +[3d_armor:boots_crystal] X = [ethereal:crystal_ingot] ** + + * Requires moreores mod by Calinou - https://forum.minetest.net/viewtopic.php?id=549 +** Requires ethereal mod by Chinchow & TenPlus1 - https://github.com/tenplus1/ethereal diff --git a/mods/3d_armor/3d_armor/depends.txt b/mods/3d_armor/3d_armor/depends.txt new file mode 100644 index 0000000..525e69c --- /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 0000000..bf8737d --- /dev/null +++ b/mods/3d_armor/3d_armor/init.lua @@ -0,0 +1,219 @@ +ARMOR_MOD_NAME = minetest.get_current_modname() +dofile(minetest.get_modpath(ARMOR_MOD_NAME).."/armor.lua") +dofile(minetest.get_modpath(ARMOR_MOD_NAME).."/admin.lua") +dofile(minetest.get_modpath(ARMOR_MOD_NAME).."/tutorial.lua") +dofile(minetest.get_modpath(ARMOR_MOD_NAME).."/tutorial_craft.lua") +if ARMOR_MATERIALS.wood then + 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:chestplate_wood", { + description = "Wood Chestplate", + inventory_image = "3d_armor_inv_chestplate_wood.png", + groups = {armor_torso=10, armor_heal=0, armor_use=2000}, + wear = 0, + }) + minetest.register_tool("3d_armor:leggings_wood", { + description = "Wood Leggings", + inventory_image = "3d_armor_inv_leggings_wood.png", + groups = {armor_legs=5, armor_heal=0, armor_use=2000}, + wear = 0, + }) + 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, + }) +end + +if ARMOR_MATERIALS.cactus then + minetest.register_tool("3d_armor:helmet_cactus", { + description = "Cactuc Helmet", + inventory_image = "3d_armor_inv_helmet_cactus.png", + groups = {armor_head=7, armor_heal=1, armor_use=200}, + wear = 0, + }) + minetest.register_tool("3d_armor:chestplate_cactus", { + description = "Cactus Chestplate", + inventory_image = "3d_armor_inv_chestplate_cactus.png", + groups = {armor_torso=15, armor_heal=2, armor_use=200}, + wear = 0, + }) + minetest.register_tool("3d_armor:leggings_cactus", { + description = "Cactus Leggings", + inventory_image = "3d_armor_inv_leggings_cactus.png", + groups = {armor_legs=7, armor_heal=1, armor_use=200}, + wear = 0, + }) + minetest.register_tool("3d_armor:boots_cactus", { + description = "Cactus Boots", + inventory_image = "3d_armor_inv_boots_cactus.png", + groups = {armor_feet=7, armor_heal=1, armor_use=200}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.steel then + minetest.register_tool("3d_armor:helmet_steel", { + description = "Steel Helmet", + inventory_image = "3d_armor_inv_helmet_steel.png", + groups = {armor_head=10, armor_heal=2, armor_use=100}, + wear = 0, + }) + minetest.register_tool("3d_armor:chestplate_steel", { + description = "Steel Chestplate", + inventory_image = "3d_armor_inv_chestplate_steel.png", + groups = {armor_torso=20, armor_heal=4, armor_use=100}, + 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=2, armor_use=100}, + wear = 0, + }) + minetest.register_tool("3d_armor:boots_steel", { + description = "Steel Boots", + inventory_image = "3d_armor_inv_boots_steel.png", + groups = {armor_feet=10, armor_heal=2, armor_use=100}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.bronze then + minetest.register_tool("3d_armor:helmet_bronze", { + description = "Bronze Helmet", + inventory_image = "3d_armor_inv_helmet_bronze.png", + groups = {armor_head=20, armor_heal=4, armor_use=75}, + wear = 0, + }) + minetest.register_tool("3d_armor:chestplate_bronze", { + description = "Bronze Chestplate", + inventory_image = "3d_armor_inv_chestplate_bronze.png", + groups = {armor_torso=40, armor_heal=8, armor_use=75}, + wear = 0, + }) + minetest.register_tool("3d_armor:leggings_bronze", { + description = "Bronze Leggings", + inventory_image = "3d_armor_inv_leggings_bronze.png", + groups = {armor_legs=20, armor_heal=4, armor_use=75}, + wear = 0, + }) + minetest.register_tool("3d_armor:boots_bronze", { + description = "Bronze Boots", + inventory_image = "3d_armor_inv_boots_bronze.png", + groups = {armor_feet=20, armor_heal=4, armor_use=75}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.diamond then + minetest.register_tool("3d_armor:helmet_diamond", { + description = "Diamond Helmet", + inventory_image = "3d_armor_inv_helmet_diamond.png", + groups = {armor_head=15, armor_heal=1, armor_use=200}, + wear = 0, + }) + minetest.register_tool("3d_armor:chestplate_diamond", { + description = "Diamond Chestplate", + inventory_image = "3d_armor_inv_chestplate_diamond.png", + groups = {armor_torso=30, armor_heal=2, armor_use=200}, + wear = 0, + }) + minetest.register_tool("3d_armor:leggings_diamond", { + description = "Diamond Leggings", + inventory_image = "3d_armor_inv_leggings_diamond.png", + groups = {armor_legs=15, armor_heal=1, armor_use=200}, + wear = 0, + }) + minetest.register_tool("3d_armor:boots_diamond", { + description = "Diamond Boots", + inventory_image = "3d_armor_inv_boots_diamond.png", + groups = {armor_feet=15, armor_heal=1, armor_use=200}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.gold then + minetest.register_tool("3d_armor:helmet_gold", { + description = "Gold Helmet", + inventory_image = "3d_armor_inv_helmet_gold.png", + groups = {armor_head=20, armor_heal=4, armor_use=50}, + wear = 0, + }) + minetest.register_tool("3d_armor:chestplate_gold", { + description = "Gold Chestplate", + inventory_image = "3d_armor_inv_chestplate_gold.png", + groups = {armor_torso=40, armor_heal=8, armor_use=50}, + wear = 0, + }) + minetest.register_tool("3d_armor:leggings_gold", { + description = "Gold Leggings", + inventory_image = "3d_armor_inv_leggings_gold.png", + groups = {armor_legs=20, armor_heal=4, armor_use=50}, + wear = 0, + }) + minetest.register_tool("3d_armor:boots_gold", { + description = "Gold Boots", + inventory_image = "3d_armor_inv_boots_gold.png", + groups = {armor_feet=20, armor_heal=4, armor_use=50}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.mithril then + minetest.register_tool("3d_armor:helmet_mithril", { + description = "Mithril Helmet", + inventory_image = "3d_armor_inv_helmet_mithril.png", + groups = {armor_head=40, armor_heal=8, armor_use=25}, + wear = 0, + }) + minetest.register_tool("3d_armor:chestplate_mithril", { + description = "Mithril Chestplate", + inventory_image = "3d_armor_inv_chestplate_mithril.png", + groups = {armor_torso=80, armor_heal=16, armor_use=25}, + wear = 0, + }) + minetest.register_tool("3d_armor:leggings_mithril", { + description = "Mithril Leggings", + inventory_image = "3d_armor_inv_leggings_mithril.png", + groups = {armor_legs=40, armor_heal=8, armor_use=25}, + wear = 0, + }) + minetest.register_tool("3d_armor:boots_mithril", { + description = "Mithril Boots", + inventory_image = "3d_armor_inv_boots_mithril.png", + groups = {armor_feet=40, armor_heal=8, armor_use=25}, + wear = 0, + }) +end + + + minetest.register_tool("3d_armor:helmet_crystal", { + description = "Crystal Helmet", + inventory_image = "3d_armor_inv_helmet_crystal.png", + groups = {armor_head=100, armor_heal=50, armor_use=0, armor_fire=10}, + wear = 0, + }) + minetest.register_tool("3d_armor:chestplate_crystal", { + description = "Crystal Chestplate", + inventory_image = "3d_armor_inv_chestplate_crystal.png", + groups = {armor_torso=200, armor_heal=100, armor_use=0, armor_fire=10}, + wear = 0, + }) + minetest.register_tool("3d_armor:leggings_crystal", { + description = "Crystal Leggings", + inventory_image = "3d_armor_inv_leggings_crystal.png", + groups = {armor_legs=100, armor_heal=50, armor_use=0, armor_fire=10}, + wear = 0, + }) + minetest.register_tool("3d_armor:boots_crystal", { + description = "Crystal Boots", + inventory_image = "3d_armor_inv_boots_crystal.png", + groups = {armor_feet=100, armor_heal=50, armor_use=0, physics_speed=1,armor_fire=10,physics_jump=0.5}, + wear = 0, + }) \ No newline at end of file diff --git a/mods/3d_armor/3d_armor/models/3d_armor_character.b3d b/mods/3d_armor/3d_armor/models/3d_armor_character.b3d new file mode 100644 index 0000000..278956b Binary files /dev/null and b/mods/3d_armor/3d_armor/models/3d_armor_character.b3d differ 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 0000000..5ded978 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/textures/3d_armor_arenaboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots1.png new file mode 100644 index 0000000..e99bcd9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots1_preview.png new file mode 100644 index 0000000..2148fad Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots2.png new file mode 100644 index 0000000..0ce2009 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots2_preview.png new file mode 100644 index 0000000..01beeb1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots3.png new file mode 100644 index 0000000..bfe8e82 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots3_preview.png new file mode 100644 index 0000000..3d9d2c8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots4.png new file mode 100644 index 0000000..766f41a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots4_preview.png new file mode 100644 index 0000000..ae1dc79 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate1.png new file mode 100644 index 0000000..216aba5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate1_preview.png new file mode 100644 index 0000000..8aaada5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate2.png new file mode 100644 index 0000000..b8032ae Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate2_preview.png new file mode 100644 index 0000000..8fbdc31 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate3.png new file mode 100644 index 0000000..7e543c4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate3_preview.png new file mode 100644 index 0000000..3e0a3b0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate4.png new file mode 100644 index 0000000..45fd584 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate4_preview.png new file mode 100644 index 0000000..135f491 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenachestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet1.png new file mode 100644 index 0000000..5eb7302 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet1_preview.png new file mode 100644 index 0000000..f5deb4e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet2.png new file mode 100644 index 0000000..b35828b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet2_preview.png new file mode 100644 index 0000000..6ce4d66 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet3.png new file mode 100644 index 0000000..b015ad5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet3_preview.png new file mode 100644 index 0000000..6514391 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet4.png new file mode 100644 index 0000000..984d770 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet4_preview.png new file mode 100644 index 0000000..5723ef5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenahelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings1.png new file mode 100644 index 0000000..0025f0c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings1_preview.png new file mode 100644 index 0000000..ae4e191 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings2.png new file mode 100644 index 0000000..23fdcca Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings2_preview.png new file mode 100644 index 0000000..fc02bc0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings3.png new file mode 100644 index 0000000..90e222a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings3_preview.png new file mode 100644 index 0000000..bed6b66 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings4.png new file mode 100644 index 0000000..b098662 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings4_preview.png new file mode 100644 index 0000000..04236c4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_arenaleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots.png new file mode 100644 index 0000000..826a640 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin.png new file mode 100644 index 0000000..a05e4c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin2.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin2.png new file mode 100644 index 0000000..a05e4c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin2_preview.png new file mode 100644 index 0000000..d61ab25 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin3.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin3.png new file mode 100644 index 0000000..a05e4c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin3_preview.png new file mode 100644 index 0000000..d61ab25 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin4.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin4.png new file mode 100644 index 0000000..a05e4c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin4_preview.png new file mode 100644 index 0000000..d61ab25 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin_preview.png new file mode 100644 index 0000000..d61ab25 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_admin_preview.png differ 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 0000000..7cfe378 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 0000000..6da8019 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_cactus.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_cactus.png new file mode 100644 index 0000000..7dc43e3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_cactus.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png new file mode 100644 index 0000000..33f9221 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_cactus_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_crystal.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_crystal.png new file mode 100644 index 0000000..50bbf20 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_crystal.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_crystal_preview.png new file mode 100644 index 0000000..a3ab7d1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_crystal_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 0000000..6678b16 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 0000000..eb99c4e 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 0000000..2de3966 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 0000000..5ca40ac 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_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega1.png new file mode 100644 index 0000000..07c8b03 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega10.png new file mode 100644 index 0000000..34b96a8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega10_preview.png new file mode 100644 index 0000000..ea8d733 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega11.png new file mode 100644 index 0000000..f7f8a2d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega11_preview.png new file mode 100644 index 0000000..cc8fd1d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega12.png new file mode 100644 index 0000000..34d7011 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega12_preview.png new file mode 100644 index 0000000..f37e93b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega13.png new file mode 100644 index 0000000..d4810a7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega13_preview.png new file mode 100644 index 0000000..6b5c774 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega14.png new file mode 100644 index 0000000..b84fd54 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega14_preview.png new file mode 100644 index 0000000..fc5b10b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega15.png new file mode 100644 index 0000000..7b39c5d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega15_preview.png new file mode 100644 index 0000000..56581de Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega16.png new file mode 100644 index 0000000..aa4d2ae Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega16_preview.png new file mode 100644 index 0000000..396bb1a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega17.png new file mode 100644 index 0000000..f835599 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega17_preview.png new file mode 100644 index 0000000..92c3bd5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega18.png new file mode 100644 index 0000000..772ccee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega18_preview.png new file mode 100644 index 0000000..eb305fb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega19.png new file mode 100644 index 0000000..ae1a3e8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega19_preview.png new file mode 100644 index 0000000..94b21b4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega1_preview.png new file mode 100644 index 0000000..63334c4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega2.png new file mode 100644 index 0000000..b58f6f3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega20.png new file mode 100644 index 0000000..8654b0e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega20_preview.png new file mode 100644 index 0000000..a60c877 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega2_preview.png new file mode 100644 index 0000000..83fe435 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega3.png new file mode 100644 index 0000000..f863efb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega3_preview.png new file mode 100644 index 0000000..0385595 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega4.png new file mode 100644 index 0000000..2a2c0d6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega4_preview.png new file mode 100644 index 0000000..fc0cb67 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega5.png new file mode 100644 index 0000000..9e5c2af Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega5_preview.png new file mode 100644 index 0000000..950d179 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega6.png new file mode 100644 index 0000000..d3d2a9f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega6_preview.png new file mode 100644 index 0000000..7129201 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega7.png new file mode 100644 index 0000000..ee3eaee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega7_preview.png new file mode 100644 index 0000000..bbf64bc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega8.png new file mode 100644 index 0000000..219d0ee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega8_preview.png new file mode 100644 index 0000000..0de1204 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega9.png new file mode 100644 index 0000000..3a9ff3d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega9_preview.png new file mode 100644 index 0000000..810cd80 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_mega9_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 0000000..3e4173b 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 0000000..b0c4684 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_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_boots_preview.png new file mode 100644 index 0000000..461c90b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_boots_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 0000000..4664be5 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 0000000..25fc47a 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 0000000..0ec5d6c 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 0000000..53d6d15 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.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate.png new file mode 100644 index 0000000..f858676 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png new file mode 100644 index 0000000..404d6e8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin2.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin2.png new file mode 100644 index 0000000..404d6e8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin2_preview.png new file mode 100644 index 0000000..09325a5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin3.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin3.png new file mode 100644 index 0000000..404d6e8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin3_preview.png new file mode 100644 index 0000000..09325a5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin4.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin4.png new file mode 100644 index 0000000..404d6e8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin4_preview.png new file mode 100644 index 0000000..09325a5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin_preview.png new file mode 100644 index 0000000..09325a5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_admin_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 0000000..d9c7267 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 0000000..90d887a 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_cactus.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png new file mode 100644 index 0000000..ee433de Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_cactus.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png new file mode 100644 index 0000000..32bf6f6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_cactus_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png new file mode 100644 index 0000000..e36aa49 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_preview.png new file mode 100644 index 0000000..c43015c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_crystal_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 0000000..81a7b21 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 0000000..17e2eb8 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 0000000..91b1631 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 0000000..cb11321 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_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega1.png new file mode 100644 index 0000000..903188b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega10.png new file mode 100644 index 0000000..9f01065 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega10_preview.png new file mode 100644 index 0000000..778eca9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega11.png new file mode 100644 index 0000000..70ec210 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega11_preview.png new file mode 100644 index 0000000..9d08ebd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega12.png new file mode 100644 index 0000000..c82005c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega12_preview.png new file mode 100644 index 0000000..fe7733f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega13.png new file mode 100644 index 0000000..5004dba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega13_preview.png new file mode 100644 index 0000000..c88a5ab Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega14.png new file mode 100644 index 0000000..b635225 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega14_preview.png new file mode 100644 index 0000000..0531e26 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega15.png new file mode 100644 index 0000000..a748bcf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega15_preview.png new file mode 100644 index 0000000..b75819f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega16.png new file mode 100644 index 0000000..b293feb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega16_preview.png new file mode 100644 index 0000000..04dc9e4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega17.png new file mode 100644 index 0000000..a5609f9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega17_preview.png new file mode 100644 index 0000000..8cb225b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega18.png new file mode 100644 index 0000000..eb0afe7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega18_preview.png new file mode 100644 index 0000000..949efdd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega19.png new file mode 100644 index 0000000..22ec99f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega19_preview.png new file mode 100644 index 0000000..1f8cdc6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega1_preview.png new file mode 100644 index 0000000..16af523 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega2.png new file mode 100644 index 0000000..831d21a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega20.png new file mode 100644 index 0000000..7c66cc5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega20_preview.png new file mode 100644 index 0000000..c1df302 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega2_preview.png new file mode 100644 index 0000000..b23ea85 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega3.png new file mode 100644 index 0000000..41324e0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega3_preview.png new file mode 100644 index 0000000..48f691b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega4.png new file mode 100644 index 0000000..c5d95a7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega4_preview.png new file mode 100644 index 0000000..a41717b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega5.png new file mode 100644 index 0000000..b182c03 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega5_preview.png new file mode 100644 index 0000000..59ecb70 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega6.png new file mode 100644 index 0000000..00725d6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega6_preview.png new file mode 100644 index 0000000..8bbb22d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega7.png new file mode 100644 index 0000000..873237a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega7_preview.png new file mode 100644 index 0000000..9034f7e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega8.png new file mode 100644 index 0000000..8217d91 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega8_preview.png new file mode 100644 index 0000000..6a1cd9b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega9.png new file mode 100644 index 0000000..896aa2a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega9_preview.png new file mode 100644 index 0000000..a0f27b2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_mega9_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 0000000..2bbeab8 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 0000000..eca051c 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_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_preview.png new file mode 100644 index 0000000..4fe3694 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_chestplate_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 0000000..23cdbda 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 0000000..0e45907 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 0000000..ea7a1d7 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 0000000..cdca575 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_cloudboots_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega1.png new file mode 100644 index 0000000..4c669db Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega10.png new file mode 100644 index 0000000..5389378 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega10_preview.png new file mode 100644 index 0000000..f29aa37 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega11.png new file mode 100644 index 0000000..e93c1ba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega11_preview.png new file mode 100644 index 0000000..94ce202 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega12.png new file mode 100644 index 0000000..74ec578 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega12_preview.png new file mode 100644 index 0000000..15bde64 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega13.png new file mode 100644 index 0000000..39363b5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega13_preview.png new file mode 100644 index 0000000..be4257a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega14.png new file mode 100644 index 0000000..852935a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega14_preview.png new file mode 100644 index 0000000..5ed5657 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega15.png new file mode 100644 index 0000000..f2d3ec4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega15_preview.png new file mode 100644 index 0000000..22a5cf1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega16.png new file mode 100644 index 0000000..bf3cc6e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega16_preview.png new file mode 100644 index 0000000..dd64865 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega17.png new file mode 100644 index 0000000..dcf5230 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega17_preview.png new file mode 100644 index 0000000..a5e13d1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega18.png new file mode 100644 index 0000000..fe22ab1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega18_preview.png new file mode 100644 index 0000000..7b15e20 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega19.png new file mode 100644 index 0000000..5f93792 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega19_preview.png new file mode 100644 index 0000000..aa3bed9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega1_preview.png new file mode 100644 index 0000000..dd0d2f6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega2.png new file mode 100644 index 0000000..78410d5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega20.png new file mode 100644 index 0000000..e77fc74 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega20_preview.png new file mode 100644 index 0000000..d8246bb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega21.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega21.png new file mode 100644 index 0000000..96b8bc0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega21_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega21_preview.png new file mode 100644 index 0000000..06c7704 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega21_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega22.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega22.png new file mode 100644 index 0000000..962fc04 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega22_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega22_preview.png new file mode 100644 index 0000000..71ab040 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega22_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega23.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega23.png new file mode 100644 index 0000000..53d8c60 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega23_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega23_preview.png new file mode 100644 index 0000000..50ba678 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega23_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega24.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega24.png new file mode 100644 index 0000000..1a352f9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega24_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega24_preview.png new file mode 100644 index 0000000..d4096c3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega24_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega25.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega25.png new file mode 100644 index 0000000..284d128 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega25_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega25_preview.png new file mode 100644 index 0000000..8848037 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega25_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega2_preview.png new file mode 100644 index 0000000..7d5536f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega3.png new file mode 100644 index 0000000..cff699b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega3_preview.png new file mode 100644 index 0000000..97f8304 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega4.png new file mode 100644 index 0000000..f919ddc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega4_preview.png new file mode 100644 index 0000000..ce7f63a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega5.png new file mode 100644 index 0000000..a40c788 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega5_preview.png new file mode 100644 index 0000000..1c79e7b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega6.png new file mode 100644 index 0000000..a068252 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega6_preview.png new file mode 100644 index 0000000..a4e0aaa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega7.png new file mode 100644 index 0000000..c11a405 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega7_preview.png new file mode 100644 index 0000000..4548aad Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega8.png new file mode 100644 index 0000000..4d8af0a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega8_preview.png new file mode 100644 index 0000000..b5a633e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega9.png new file mode 100644 index 0000000..40e1dd8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega9_preview.png new file mode 100644 index 0000000..017437d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudboots_mega9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega1.png new file mode 100644 index 0000000..e7cde12 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega10.png new file mode 100644 index 0000000..3951316 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega10_preview.png new file mode 100644 index 0000000..db8f18c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega11.png new file mode 100644 index 0000000..e44b88c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega11_preview.png new file mode 100644 index 0000000..7409fc5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega12.png new file mode 100644 index 0000000..58dbfd9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega12_preview.png new file mode 100644 index 0000000..5c02017 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega13.png new file mode 100644 index 0000000..e258af5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega13_preview.png new file mode 100644 index 0000000..2d95faa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega14.png new file mode 100644 index 0000000..a2a00d6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega14_preview.png new file mode 100644 index 0000000..e61c88f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega15.png new file mode 100644 index 0000000..df4d835 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega15_preview.png new file mode 100644 index 0000000..172996f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega16.png new file mode 100644 index 0000000..2536491 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega16_preview.png new file mode 100644 index 0000000..4a7d577 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega17.png new file mode 100644 index 0000000..3a82eba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega17_preview.png new file mode 100644 index 0000000..c174acc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega18.png new file mode 100644 index 0000000..0ce1a31 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega18_preview.png new file mode 100644 index 0000000..da44eb2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega19.png new file mode 100644 index 0000000..3cd199c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega19_preview.png new file mode 100644 index 0000000..87d951f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega1_preview.png new file mode 100644 index 0000000..9835313 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega2.png new file mode 100644 index 0000000..34d8551 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega20.png new file mode 100644 index 0000000..3bbc81d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega20_preview.png new file mode 100644 index 0000000..49d27bf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega21.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega21.png new file mode 100644 index 0000000..bc9be38 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega21_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega21_preview.png new file mode 100644 index 0000000..430acef Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega21_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega22.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega22.png new file mode 100644 index 0000000..9514ec2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega22_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega22_preview.png new file mode 100644 index 0000000..6aeba5b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega22_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega23.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega23.png new file mode 100644 index 0000000..086d0f1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega23_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega23_preview.png new file mode 100644 index 0000000..4f92f46 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega23_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega24.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega24.png new file mode 100644 index 0000000..e7ea8ec Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega24_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega24_preview.png new file mode 100644 index 0000000..ace9ab0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega24_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega25.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega25.png new file mode 100644 index 0000000..1cd8bb1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega25_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega25_preview.png new file mode 100644 index 0000000..541179d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega25_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega2_preview.png new file mode 100644 index 0000000..e793a69 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega3.png new file mode 100644 index 0000000..bf394f7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega3_preview.png new file mode 100644 index 0000000..8d0bf84 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega4.png new file mode 100644 index 0000000..3068bd6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega4_preview.png new file mode 100644 index 0000000..3bc1ffe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega5.png new file mode 100644 index 0000000..427609d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega5_preview.png new file mode 100644 index 0000000..6502447 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega6.png new file mode 100644 index 0000000..56e3866 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega6_preview.png new file mode 100644 index 0000000..973ece0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega7.png new file mode 100644 index 0000000..fcafb3d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega7_preview.png new file mode 100644 index 0000000..6576a0a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega8.png new file mode 100644 index 0000000..97663ab Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega8_preview.png new file mode 100644 index 0000000..526b0ef Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega9.png new file mode 100644 index 0000000..3babeff Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega9_preview.png new file mode 100644 index 0000000..e561317 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudchestplate_mega9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega1.png new file mode 100644 index 0000000..d787044 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega10.png new file mode 100644 index 0000000..c543498 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega10_preview.png new file mode 100644 index 0000000..cf36cf2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega11.png new file mode 100644 index 0000000..df3f129 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega11_preview.png new file mode 100644 index 0000000..bf12cbf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega12.png new file mode 100644 index 0000000..3868a4b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega12_preview.png new file mode 100644 index 0000000..21b26cf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega13.png new file mode 100644 index 0000000..c218b77 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega13_preview.png new file mode 100644 index 0000000..c09f4b5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega14.png new file mode 100644 index 0000000..375308f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega14_preview.png new file mode 100644 index 0000000..b3d9604 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega15.png new file mode 100644 index 0000000..1573da0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega15_preview.png new file mode 100644 index 0000000..7a32883 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega16.png new file mode 100644 index 0000000..db204cf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega16_preview.png new file mode 100644 index 0000000..865a42e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega17.png new file mode 100644 index 0000000..0f57373 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega17_preview.png new file mode 100644 index 0000000..1c574e1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega18.png new file mode 100644 index 0000000..c9503ef Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega18_preview.png new file mode 100644 index 0000000..3bb572a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega19.png new file mode 100644 index 0000000..da65452 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega19_preview.png new file mode 100644 index 0000000..07209ed Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega1_preview.png new file mode 100644 index 0000000..038f3b9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega2.png new file mode 100644 index 0000000..13d32b1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega20.png new file mode 100644 index 0000000..fec9ed5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega20_preview.png new file mode 100644 index 0000000..389058e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega21.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega21.png new file mode 100644 index 0000000..84b180c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega21_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega21_preview.png new file mode 100644 index 0000000..c43cf9b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega21_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega22.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega22.png new file mode 100644 index 0000000..6826f38 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega22_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega22_preview.png new file mode 100644 index 0000000..df2f039 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega22_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega23.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega23.png new file mode 100644 index 0000000..80ec1f0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega23_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega23_preview.png new file mode 100644 index 0000000..75cb844 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega23_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega24.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega24.png new file mode 100644 index 0000000..f0f6896 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega24_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega24_preview.png new file mode 100644 index 0000000..2e1b68e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega24_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega25.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega25.png new file mode 100644 index 0000000..eee1aac Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega25_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega25_preview.png new file mode 100644 index 0000000..d6bbf50 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega25_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega2_preview.png new file mode 100644 index 0000000..0a3ffd6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega3.png new file mode 100644 index 0000000..a367db1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega3_preview.png new file mode 100644 index 0000000..d6d5335 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega4.png new file mode 100644 index 0000000..c53261d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega4_preview.png new file mode 100644 index 0000000..16a0ca0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega5.png new file mode 100644 index 0000000..2025987 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega5_preview.png new file mode 100644 index 0000000..43755a3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega6.png new file mode 100644 index 0000000..ffa0371 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega6_preview.png new file mode 100644 index 0000000..88458e4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega7.png new file mode 100644 index 0000000..240bd58 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega7_preview.png new file mode 100644 index 0000000..7e52e69 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega8.png new file mode 100644 index 0000000..bd4e198 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega8_preview.png new file mode 100644 index 0000000..49cac37 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega9.png new file mode 100644 index 0000000..cde576f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega9_preview.png new file mode 100644 index 0000000..bbeccba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudhelmet_mega9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega1.png new file mode 100644 index 0000000..7b82061 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega10.png new file mode 100644 index 0000000..b0d500c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega10_preview.png new file mode 100644 index 0000000..091e779 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega11.png new file mode 100644 index 0000000..ed53b0d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega11_preview.png new file mode 100644 index 0000000..0b35cf0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega12.png new file mode 100644 index 0000000..eb25018 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega12_preview.png new file mode 100644 index 0000000..0c118e0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega13.png new file mode 100644 index 0000000..6146a51 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega13_preview.png new file mode 100644 index 0000000..e623d0b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega14.png new file mode 100644 index 0000000..e8785fe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega14_preview.png new file mode 100644 index 0000000..1584a20 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega15.png new file mode 100644 index 0000000..d4e5a05 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega15_preview.png new file mode 100644 index 0000000..a94dd45 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega16.png new file mode 100644 index 0000000..113a0c7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega16_preview.png new file mode 100644 index 0000000..115fc31 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega17.png new file mode 100644 index 0000000..077d858 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega17_preview.png new file mode 100644 index 0000000..cea3a7c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega18.png new file mode 100644 index 0000000..e01e2bb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega18_preview.png new file mode 100644 index 0000000..6924c65 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega19.png new file mode 100644 index 0000000..bb9524e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega19_preview.png new file mode 100644 index 0000000..e2aa88f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega1_preview.png new file mode 100644 index 0000000..9dd4e19 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega2.png new file mode 100644 index 0000000..94b39c7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega20.png new file mode 100644 index 0000000..12dd41d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega20_preview.png new file mode 100644 index 0000000..2bc33fb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega21.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega21.png new file mode 100644 index 0000000..1e72633 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega21_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega21_preview.png new file mode 100644 index 0000000..0652a32 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega21_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega22.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega22.png new file mode 100644 index 0000000..64b5c04 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega22_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega22_preview.png new file mode 100644 index 0000000..b376165 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega22_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega23.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega23.png new file mode 100644 index 0000000..70639c4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega23_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega23_preview.png new file mode 100644 index 0000000..32a5a32 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega23_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega24.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega24.png new file mode 100644 index 0000000..9a7cc11 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega24_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega24_preview.png new file mode 100644 index 0000000..6cd4144 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega24_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega25.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega25.png new file mode 100644 index 0000000..8151315 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega25_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega25_preview.png new file mode 100644 index 0000000..d0956b2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega25_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega2_preview.png new file mode 100644 index 0000000..de5cfed Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega3.png new file mode 100644 index 0000000..b02d2d7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega3_preview.png new file mode 100644 index 0000000..0978140 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega4.png new file mode 100644 index 0000000..a2142c3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega4_preview.png new file mode 100644 index 0000000..e38eee3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega5.png new file mode 100644 index 0000000..f524a7a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega5_preview.png new file mode 100644 index 0000000..89eaba0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega6.png new file mode 100644 index 0000000..7af9125 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega6_preview.png new file mode 100644 index 0000000..c9958b1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega7.png new file mode 100644 index 0000000..d5620da Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega7_preview.png new file mode 100644 index 0000000..2b97ce1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega8.png new file mode 100644 index 0000000..de225ed Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega8_preview.png new file mode 100644 index 0000000..96726c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega9.png new file mode 100644 index 0000000..55779ca Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega9_preview.png new file mode 100644 index 0000000..a5f9b2e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_cloudleggings_mega9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots1.png new file mode 100644 index 0000000..38ffc1c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots10.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots10.png new file mode 100644 index 0000000..b7e1807 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots10_preview.png new file mode 100644 index 0000000..3e8956c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots11.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots11.png new file mode 100644 index 0000000..11bf4f2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots11_preview.png new file mode 100644 index 0000000..cc3bee1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots12.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots12.png new file mode 100644 index 0000000..fcbe9fb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots12_preview.png new file mode 100644 index 0000000..f5b763a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots1_preview.png new file mode 100644 index 0000000..eca71aa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots2.png new file mode 100644 index 0000000..87223f1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots2_preview.png new file mode 100644 index 0000000..b7c6a17 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots3.png new file mode 100644 index 0000000..4a20556 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots3_preview.png new file mode 100644 index 0000000..b06714b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots4.png new file mode 100644 index 0000000..6ee29d5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots4_preview.png new file mode 100644 index 0000000..e599df1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots5.png new file mode 100644 index 0000000..3ccfbcf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots5_preview.png new file mode 100644 index 0000000..d612109 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots6.png new file mode 100644 index 0000000..cb995d4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots6_preview.png new file mode 100644 index 0000000..de0d572 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots7.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots7.png new file mode 100644 index 0000000..3f1bcd6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots7_preview.png new file mode 100644 index 0000000..b2a030b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots8.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots8.png new file mode 100644 index 0000000..aec93e8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots8_preview.png new file mode 100644 index 0000000..af9934d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots9.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots9.png new file mode 100644 index 0000000..94cfa07 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyboots9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots9_preview.png new file mode 100644 index 0000000..1de1b35 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyboots9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate1.png new file mode 100644 index 0000000..46e2f5e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate10.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate10.png new file mode 100644 index 0000000..c810227 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate10_preview.png new file mode 100644 index 0000000..3dfd154 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate11.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate11.png new file mode 100644 index 0000000..e2293f1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate11_preview.png new file mode 100644 index 0000000..7c6d183 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate12.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate12.png new file mode 100644 index 0000000..6222aa3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate12_preview.png new file mode 100644 index 0000000..d2b8c88 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate1_preview.png new file mode 100644 index 0000000..d3016d6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate2.png new file mode 100644 index 0000000..d7c85d4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate2_preview.png new file mode 100644 index 0000000..ac884b3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate3.png new file mode 100644 index 0000000..528cb36 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate3_preview.png new file mode 100644 index 0000000..a9a32c6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate4.png new file mode 100644 index 0000000..b7f6cba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate4_preview.png new file mode 100644 index 0000000..6ae8e3e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate5.png new file mode 100644 index 0000000..d344a72 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate5_preview.png new file mode 100644 index 0000000..8b655d2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate6.png new file mode 100644 index 0000000..8c49da7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate6_preview.png new file mode 100644 index 0000000..212c107 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate7.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate7.png new file mode 100644 index 0000000..bd0fea3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate7_preview.png new file mode 100644 index 0000000..f15e430 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate8.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate8.png new file mode 100644 index 0000000..f153fd1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate8_preview.png new file mode 100644 index 0000000..ca38220 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate9.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate9.png new file mode 100644 index 0000000..ceb625c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate9_preview.png new file mode 100644 index 0000000..1a690f6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energychestplate9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet1.png new file mode 100644 index 0000000..dbc575e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet10.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet10.png new file mode 100644 index 0000000..75b7325 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet10_preview.png new file mode 100644 index 0000000..298d951 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet11.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet11.png new file mode 100644 index 0000000..39d0dbb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet11_preview.png new file mode 100644 index 0000000..f6d4953 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet12.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet12.png new file mode 100644 index 0000000..1f5b4a5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet12_preview.png new file mode 100644 index 0000000..a01d25d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet1_preview.png new file mode 100644 index 0000000..5bf85b6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet2.png new file mode 100644 index 0000000..8ee590f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet2_preview.png new file mode 100644 index 0000000..2ebdbb4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet3.png new file mode 100644 index 0000000..1eb67bf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet3_preview.png new file mode 100644 index 0000000..29ee226 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet4.png new file mode 100644 index 0000000..879ea06 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet4_preview.png new file mode 100644 index 0000000..b6582c1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet5.png new file mode 100644 index 0000000..7d92788 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet5_preview.png new file mode 100644 index 0000000..5f8a24f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet6.png new file mode 100644 index 0000000..7a75e83 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet6_preview.png new file mode 100644 index 0000000..7b7b6ef Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet7.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet7.png new file mode 100644 index 0000000..1148a38 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet7_preview.png new file mode 100644 index 0000000..0a05a2f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet8.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet8.png new file mode 100644 index 0000000..d830262 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet8_preview.png new file mode 100644 index 0000000..cfa2d24 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet9.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet9.png new file mode 100644 index 0000000..5fbca80 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet9_preview.png new file mode 100644 index 0000000..2e60949 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyhelmet9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings1.png new file mode 100644 index 0000000..0e2b921 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings10.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings10.png new file mode 100644 index 0000000..cda6059 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings10_preview.png new file mode 100644 index 0000000..11ac953 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings11.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings11.png new file mode 100644 index 0000000..3743ec7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings11_preview.png new file mode 100644 index 0000000..d253aa3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings12.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings12.png new file mode 100644 index 0000000..06f8938 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings12_preview.png new file mode 100644 index 0000000..16fe606 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings1_preview.png new file mode 100644 index 0000000..f8e0177 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings2.png new file mode 100644 index 0000000..f474ea7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings2_preview.png new file mode 100644 index 0000000..4e696e3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings3.png new file mode 100644 index 0000000..a39d176 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings3_preview.png new file mode 100644 index 0000000..195fb77 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings4.png new file mode 100644 index 0000000..523f68d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings4_preview.png new file mode 100644 index 0000000..7edbb85 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings5.png new file mode 100644 index 0000000..039cf03 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings5_preview.png new file mode 100644 index 0000000..d06a34d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings6.png new file mode 100644 index 0000000..9abc513 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings6_preview.png new file mode 100644 index 0000000..c80e826 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings7.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings7.png new file mode 100644 index 0000000..8f9cf7e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings7_preview.png new file mode 100644 index 0000000..c6be86b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings8.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings8.png new file mode 100644 index 0000000..d47ac71 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings8_preview.png new file mode 100644 index 0000000..f7ed179 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings9.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings9.png new file mode 100644 index 0000000..cf24b00 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings9_preview.png new file mode 100644 index 0000000..c8738ee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_energyleggings9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet.png new file mode 100644 index 0000000..30aee66 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin.png new file mode 100644 index 0000000..4d52d4c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin2.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin2.png new file mode 100644 index 0000000..4d52d4c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin2_preview.png new file mode 100644 index 0000000..51ecb9b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin3.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin3.png new file mode 100644 index 0000000..4d52d4c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin3_preview.png new file mode 100644 index 0000000..51ecb9b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin4.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin4.png new file mode 100644 index 0000000..4d52d4c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin4_preview.png new file mode 100644 index 0000000..51ecb9b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin_preview.png new file mode 100644 index 0000000..51ecb9b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_admin_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 0000000..438002e 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 0000000..61fa1af 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_cactus.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png new file mode 100644 index 0000000..8cd68d5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_cactus.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png new file mode 100644 index 0000000..4e3bfe2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_cactus_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_crystal.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_crystal.png new file mode 100644 index 0000000..c323e94 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_crystal.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_crystal_preview.png new file mode 100644 index 0000000..451a15d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_crystal_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 0000000..2649670 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 0000000..33a273a 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 0000000..6fa3af5 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 0000000..d2e7ac8 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_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega1.png new file mode 100644 index 0000000..353bc31 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega10.png new file mode 100644 index 0000000..0246bf4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega10_preview.png new file mode 100644 index 0000000..d3e4d77 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega11.png new file mode 100644 index 0000000..53a89e0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega11_preview.png new file mode 100644 index 0000000..bc83946 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega12.png new file mode 100644 index 0000000..cd97551 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega12_preview.png new file mode 100644 index 0000000..6e0c60a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega13.png new file mode 100644 index 0000000..fc9feb4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega13_preview.png new file mode 100644 index 0000000..bb9a5f0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega14.png new file mode 100644 index 0000000..74495f7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega14_preview.png new file mode 100644 index 0000000..603548c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega15.png new file mode 100644 index 0000000..04ae119 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega15_preview.png new file mode 100644 index 0000000..30e2858 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega16.png new file mode 100644 index 0000000..0cdd4c1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega16_preview.png new file mode 100644 index 0000000..b688345 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega17.png new file mode 100644 index 0000000..2293c17 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega17_preview.png new file mode 100644 index 0000000..ca27a1a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega18.png new file mode 100644 index 0000000..d9c0493 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega18_preview.png new file mode 100644 index 0000000..afe0999 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega19.png new file mode 100644 index 0000000..6bfda74 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega19_preview.png new file mode 100644 index 0000000..0df3925 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega1_preview.png new file mode 100644 index 0000000..ab13628 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega2.png new file mode 100644 index 0000000..2c6026e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega20.png new file mode 100644 index 0000000..501f67b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega20_preview.png new file mode 100644 index 0000000..bb17a58 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega2_preview.png new file mode 100644 index 0000000..22bf5f0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega3.png new file mode 100644 index 0000000..c34da9b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega3_preview.png new file mode 100644 index 0000000..c835208 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega4.png new file mode 100644 index 0000000..34d0469 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega4_preview.png new file mode 100644 index 0000000..51f11df Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega5.png new file mode 100644 index 0000000..6c5c224 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega5_preview.png new file mode 100644 index 0000000..8f45186 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega6.png new file mode 100644 index 0000000..bdf2220 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega6_preview.png new file mode 100644 index 0000000..ddf1267 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega7.png new file mode 100644 index 0000000..426f7af Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega7_preview.png new file mode 100644 index 0000000..9e0ec72 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega8.png new file mode 100644 index 0000000..13c7a86 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega8_preview.png new file mode 100644 index 0000000..527179c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega9.png new file mode 100644 index 0000000..d7f32b1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega9_preview.png new file mode 100644 index 0000000..097f151 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_mega9_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 0000000..1d108a2 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 0000000..a331f6a 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_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_preview.png new file mode 100644 index 0000000..6d4ad73 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_helmet_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 0000000..ec5c203 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 0000000..2c8721c 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 0000000..0bdb8f7 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 0000000..fe1cead 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_arenaboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots1.png new file mode 100644 index 0000000..7f0fd9d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots2.png new file mode 100644 index 0000000..1d819d3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots3.png new file mode 100644 index 0000000..0013a90 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots4.png new file mode 100644 index 0000000..e8d410f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate1.png new file mode 100644 index 0000000..aafcc5a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate2.png new file mode 100644 index 0000000..5d57429 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate3.png new file mode 100644 index 0000000..33445f7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate4.png new file mode 100644 index 0000000..c5e514d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenachestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet1.png new file mode 100644 index 0000000..18a3a8c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet2.png new file mode 100644 index 0000000..951037e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet3.png new file mode 100644 index 0000000..6e47443 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet4.png new file mode 100644 index 0000000..99fe2eb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenahelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings1.png new file mode 100644 index 0000000..df6f62d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings2.png new file mode 100644 index 0000000..9304bcc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings3.png new file mode 100644 index 0000000..5819d23 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings4.png new file mode 100644 index 0000000..bbfd6bb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_arenaleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots.png new file mode 100644 index 0000000..3f41c75 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_admin.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_admin.png new file mode 100644 index 0000000..9c02d1d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_admin.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 0000000..7f5f968 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_cactus.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png new file mode 100644 index 0000000..b665eb8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_cactus.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_crystal.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_crystal.png new file mode 100644 index 0000000..5709a17 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_crystal.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 0000000..6bcd620 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 0000000..8598cf9 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_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega1.png new file mode 100644 index 0000000..a1b9cae Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega10.png new file mode 100644 index 0000000..3fea9ff Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega11.png new file mode 100644 index 0000000..bd64899 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega12.png new file mode 100644 index 0000000..2442563 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega13.png new file mode 100644 index 0000000..571a6fd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega14.png new file mode 100644 index 0000000..434c7d9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega15.png new file mode 100644 index 0000000..d2e3352 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega16.png new file mode 100644 index 0000000..73850f5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega17.png new file mode 100644 index 0000000..07bf61d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega18.png new file mode 100644 index 0000000..1fc5434 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega19.png new file mode 100644 index 0000000..3e7aa95 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega2.png new file mode 100644 index 0000000..bca1142 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega20.png new file mode 100644 index 0000000..549bdcd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega3.png new file mode 100644 index 0000000..1ff73b1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega4.png new file mode 100644 index 0000000..4d47426 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega5.png new file mode 100644 index 0000000..e5f6eed Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega6.png new file mode 100644 index 0000000..e0b7266 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega7.png new file mode 100644 index 0000000..6076518 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega8.png new file mode 100644 index 0000000..588feaa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega9.png new file mode 100644 index 0000000..1396158 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_boots_mega9.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 0000000..a4c180d 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 0000000..77286b5 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 0000000..66993a1 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.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate.png new file mode 100644 index 0000000..7b276f6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_admin.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_admin.png new file mode 100644 index 0000000..29f3897 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_admin.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 0000000..da2f3e0 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_cactus.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png new file mode 100644 index 0000000..a695e78 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_cactus.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.png new file mode 100644 index 0000000..4d23066 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_crystal.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 0000000..eee800b 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 0000000..1dddc3d 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_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega1.png new file mode 100644 index 0000000..e8942ab Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega10.png new file mode 100644 index 0000000..11a9d03 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega11.png new file mode 100644 index 0000000..c8ead27 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega12.png new file mode 100644 index 0000000..3e90824 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega13.png new file mode 100644 index 0000000..18733b6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega14.png new file mode 100644 index 0000000..f9ee8de Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega15.png new file mode 100644 index 0000000..a0d5e1d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega16.png new file mode 100644 index 0000000..904e1e2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega17.png new file mode 100644 index 0000000..5d3b48b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega18.png new file mode 100644 index 0000000..1f38cdf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega19.png new file mode 100644 index 0000000..18e7402 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega2.png new file mode 100644 index 0000000..1491c9c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega20.png new file mode 100644 index 0000000..66f83f8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega3.png new file mode 100644 index 0000000..baffbc4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega4.png new file mode 100644 index 0000000..d27d14a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega5.png new file mode 100644 index 0000000..ef7f0a3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega6.png new file mode 100644 index 0000000..16a2a44 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega7.png new file mode 100644 index 0000000..5426088 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega8.png new file mode 100644 index 0000000..3b033b5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega9.png new file mode 100644 index 0000000..fe5325d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_chestplate_mega9.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 0000000..e4c50a7 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 0000000..421b3e3 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 0000000..434374f 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_cloudboots_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega1.png new file mode 100644 index 0000000..f1df03e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega10.png new file mode 100644 index 0000000..e45c0ba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega11.png new file mode 100644 index 0000000..30bdf1b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega12.png new file mode 100644 index 0000000..b129598 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega13.png new file mode 100644 index 0000000..188039a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega14.png new file mode 100644 index 0000000..f9cfd22 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega15.png new file mode 100644 index 0000000..8a276b3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega16.png new file mode 100644 index 0000000..ce6c180 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega17.png new file mode 100644 index 0000000..6e3f9d05 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega18.png new file mode 100644 index 0000000..68f8a90 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega19.png new file mode 100644 index 0000000..160bfa6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega2.png new file mode 100644 index 0000000..b9f51c7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega20.png new file mode 100644 index 0000000..dac7a44 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega21.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega21.png new file mode 100644 index 0000000..eaa9612 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega22.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega22.png new file mode 100644 index 0000000..2621bc9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega23.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega23.png new file mode 100644 index 0000000..c36fe27 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega24.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega24.png new file mode 100644 index 0000000..422eecf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega25.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega25.png new file mode 100644 index 0000000..0e18391 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega3.png new file mode 100644 index 0000000..33129fb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega4.png new file mode 100644 index 0000000..0a0bf76 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega5.png new file mode 100644 index 0000000..d4f4792 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega6.png new file mode 100644 index 0000000..fe02814 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega7.png new file mode 100644 index 0000000..341f98f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega8.png new file mode 100644 index 0000000..ca25bd2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega9.png new file mode 100644 index 0000000..530e363 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudboots_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega1.png new file mode 100644 index 0000000..df4fb59 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega10.png new file mode 100644 index 0000000..0f78ecc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega11.png new file mode 100644 index 0000000..1a907a8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega12.png new file mode 100644 index 0000000..470a79a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega13.png new file mode 100644 index 0000000..685389f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega14.png new file mode 100644 index 0000000..009e0b3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega15.png new file mode 100644 index 0000000..dc18d48 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega16.png new file mode 100644 index 0000000..08c765b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega17.png new file mode 100644 index 0000000..15b1416 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega18.png new file mode 100644 index 0000000..90c9624 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega19.png new file mode 100644 index 0000000..ef746df Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega2.png new file mode 100644 index 0000000..86a38aa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega20.png new file mode 100644 index 0000000..b06b079 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega21.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega21.png new file mode 100644 index 0000000..bf6f286 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega22.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega22.png new file mode 100644 index 0000000..05ac515 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega23.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega23.png new file mode 100644 index 0000000..b447a9d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega24.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega24.png new file mode 100644 index 0000000..8e18742 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega25.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega25.png new file mode 100644 index 0000000..dd0b339 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega3.png new file mode 100644 index 0000000..3373897 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega4.png new file mode 100644 index 0000000..fe14859 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega5.png new file mode 100644 index 0000000..3e47796 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega6.png new file mode 100644 index 0000000..07ecbf1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega7.png new file mode 100644 index 0000000..3b9da41 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega8.png new file mode 100644 index 0000000..65b4171 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega9.png new file mode 100644 index 0000000..2760d05 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudchestplate_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega1.png new file mode 100644 index 0000000..372badf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega10.png new file mode 100644 index 0000000..346bf5e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega11.png new file mode 100644 index 0000000..e13b89a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega12.png new file mode 100644 index 0000000..8ef8c98 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega13.png new file mode 100644 index 0000000..cafa5c6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega14.png new file mode 100644 index 0000000..b31dd51 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega15.png new file mode 100644 index 0000000..6d002eb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega16.png new file mode 100644 index 0000000..a473290 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega17.png new file mode 100644 index 0000000..7351267 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega18.png new file mode 100644 index 0000000..b138995 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega19.png new file mode 100644 index 0000000..5e66113 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega2.png new file mode 100644 index 0000000..258ef6e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega20.png new file mode 100644 index 0000000..546dc04 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega21.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega21.png new file mode 100644 index 0000000..1fa8dd5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega22.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega22.png new file mode 100644 index 0000000..d19179c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega23.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega23.png new file mode 100644 index 0000000..89249b8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega24.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega24.png new file mode 100644 index 0000000..b879895 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega25.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega25.png new file mode 100644 index 0000000..60f80b4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega3.png new file mode 100644 index 0000000..0ea263c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega4.png new file mode 100644 index 0000000..51b3d2b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega5.png new file mode 100644 index 0000000..edeb21e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega6.png new file mode 100644 index 0000000..b0af7f9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega7.png new file mode 100644 index 0000000..9629743 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega8.png new file mode 100644 index 0000000..d1334e3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega9.png new file mode 100644 index 0000000..b0b1e48 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudhelmet_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega1.png new file mode 100644 index 0000000..7010cb4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega10.png new file mode 100644 index 0000000..055b9c7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega11.png new file mode 100644 index 0000000..f21199d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega12.png new file mode 100644 index 0000000..99b47c0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega13.png new file mode 100644 index 0000000..5b52a2b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega14.png new file mode 100644 index 0000000..a20bdb5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega15.png new file mode 100644 index 0000000..d7cee32 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega16.png new file mode 100644 index 0000000..866aace Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega17.png new file mode 100644 index 0000000..17e2f31 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega18.png new file mode 100644 index 0000000..8e40875 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega19.png new file mode 100644 index 0000000..2b77432 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega2.png new file mode 100644 index 0000000..0393e71 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega20.png new file mode 100644 index 0000000..6ee7da8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega21.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega21.png new file mode 100644 index 0000000..9e7b72f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega22.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega22.png new file mode 100644 index 0000000..ee63f4a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega23.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega23.png new file mode 100644 index 0000000..a267193 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega24.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega24.png new file mode 100644 index 0000000..5ded71b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega25.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega25.png new file mode 100644 index 0000000..e315e19 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega3.png new file mode 100644 index 0000000..a4ca0d9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega4.png new file mode 100644 index 0000000..8c0cd9f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega5.png new file mode 100644 index 0000000..e748189 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega6.png new file mode 100644 index 0000000..418baec Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega7.png new file mode 100644 index 0000000..8b0ae66 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega8.png new file mode 100644 index 0000000..648e119 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega9.png new file mode 100644 index 0000000..67f9abb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_cloudleggings_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots1.png new file mode 100644 index 0000000..20c3d85 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots10.png new file mode 100644 index 0000000..d408e10 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots11.png new file mode 100644 index 0000000..5babe98 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots12.png new file mode 100644 index 0000000..7ce0c11 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots2.png new file mode 100644 index 0000000..a93f86c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots3.png new file mode 100644 index 0000000..8e29cd6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots4.png new file mode 100644 index 0000000..124fd65 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots5.png new file mode 100644 index 0000000..6949219 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots6.png new file mode 100644 index 0000000..23db729 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots7.png new file mode 100644 index 0000000..0041368 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots8.png new file mode 100644 index 0000000..1af8c5d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots9.png new file mode 100644 index 0000000..ba4d5ee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyboots9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate1.png new file mode 100644 index 0000000..986cd32 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate10.png new file mode 100644 index 0000000..46334fa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate11.png new file mode 100644 index 0000000..3a78edd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate12.png new file mode 100644 index 0000000..634ae8e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate2.png new file mode 100644 index 0000000..52c0657 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate3.png new file mode 100644 index 0000000..9113463 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate4.png new file mode 100644 index 0000000..1b860f5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate5.png new file mode 100644 index 0000000..a110740 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate6.png new file mode 100644 index 0000000..d1d0145 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate7.png new file mode 100644 index 0000000..8606e28 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate8.png new file mode 100644 index 0000000..eed13c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate9.png new file mode 100644 index 0000000..b495927 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energychestplate9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet1.png new file mode 100644 index 0000000..dffb626 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet10.png new file mode 100644 index 0000000..1d19bf5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet11.png new file mode 100644 index 0000000..b5fe586 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet12.png new file mode 100644 index 0000000..34a5fc4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet2.png new file mode 100644 index 0000000..40a52c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet3.png new file mode 100644 index 0000000..2560a21 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet4.png new file mode 100644 index 0000000..a6b03c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet5.png new file mode 100644 index 0000000..1ce83d9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet6.png new file mode 100644 index 0000000..5de5ec6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet7.png new file mode 100644 index 0000000..27b4e3b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet8.png new file mode 100644 index 0000000..37c30a3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet9.png new file mode 100644 index 0000000..46e93ba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyhelmet9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings1.png new file mode 100644 index 0000000..3a6ebfe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings10.png new file mode 100644 index 0000000..0bef875 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings11.png new file mode 100644 index 0000000..2756fca Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings12.png new file mode 100644 index 0000000..d1f65bb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings2.png new file mode 100644 index 0000000..cbf8119 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings3.png new file mode 100644 index 0000000..dd4fd91 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings4.png new file mode 100644 index 0000000..a5ffe8e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings5.png new file mode 100644 index 0000000..1fd2778 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings6.png new file mode 100644 index 0000000..4fef8ac Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings7.png new file mode 100644 index 0000000..82ed51b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings8.png new file mode 100644 index 0000000..316eaf5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings9.png new file mode 100644 index 0000000..10278f7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_energyleggings9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet.png new file mode 100644 index 0000000..0d69b4b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_admin.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_admin.png new file mode 100644 index 0000000..e019702 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_admin.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 0000000..53cdaf1 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_cactus.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png new file mode 100644 index 0000000..746c264 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_cactus.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.png new file mode 100644 index 0000000..8a29eec Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_crystal.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 0000000..2eb3a5c 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 0000000..e8f83d8 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_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega1.png new file mode 100644 index 0000000..f3834b9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega10.png new file mode 100644 index 0000000..874a782 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega11.png new file mode 100644 index 0000000..516b45f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega12.png new file mode 100644 index 0000000..4237a56 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega13.png new file mode 100644 index 0000000..1b6494e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega14.png new file mode 100644 index 0000000..b206af9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega15.png new file mode 100644 index 0000000..281bec7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega16.png new file mode 100644 index 0000000..ad7d14a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega17.png new file mode 100644 index 0000000..b479a70 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega18.png new file mode 100644 index 0000000..04380a5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega19.png new file mode 100644 index 0000000..9ea1655 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega2.png new file mode 100644 index 0000000..b7d7ebd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega20.png new file mode 100644 index 0000000..130ce61 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega3.png new file mode 100644 index 0000000..9d33423 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega4.png new file mode 100644 index 0000000..dff0289 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega5.png new file mode 100644 index 0000000..9d769a2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega6.png new file mode 100644 index 0000000..d9414ee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega7.png new file mode 100644 index 0000000..ec0cc97 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega8.png new file mode 100644 index 0000000..aa28518 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega9.png new file mode 100644 index 0000000..19aa637 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_helmet_mega9.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 0000000..abdd0ca 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 0000000..4c636f2 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 0000000..e8ee2fe 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_kristallboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots1.png new file mode 100644 index 0000000..391fa21 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots2.png new file mode 100644 index 0000000..468e404 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots3.png new file mode 100644 index 0000000..8452abb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots4.png new file mode 100644 index 0000000..14e0faa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots5.png new file mode 100644 index 0000000..2bb608b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate1.png new file mode 100644 index 0000000..d164009 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate2.png new file mode 100644 index 0000000..ecb4cef Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate3.png new file mode 100644 index 0000000..135d598 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate4.png new file mode 100644 index 0000000..5ce045c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate5.png new file mode 100644 index 0000000..ed22848 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallchestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet1.png new file mode 100644 index 0000000..223ef04 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet2.png new file mode 100644 index 0000000..220a3cf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet3.png new file mode 100644 index 0000000..ed9e947 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet4.png new file mode 100644 index 0000000..a5b962c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet5.png new file mode 100644 index 0000000..228530c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings1.png new file mode 100644 index 0000000..d3ef0ba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings2.png new file mode 100644 index 0000000..a223af2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings3.png new file mode 100644 index 0000000..db2628b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings4.png new file mode 100644 index 0000000..7cf3898 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings5.png new file mode 100644 index 0000000..70a8790 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_kristallleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots1.png new file mode 100644 index 0000000..2865e02 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots2.png new file mode 100644 index 0000000..e84d107 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots3.png new file mode 100644 index 0000000..cb6e46a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots4.png new file mode 100644 index 0000000..43ea7e3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots5.png new file mode 100644 index 0000000..f62bc11 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots6.png new file mode 100644 index 0000000..4e28ad8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate1.png new file mode 100644 index 0000000..4519b0d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate2.png new file mode 100644 index 0000000..32d141e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate3.png new file mode 100644 index 0000000..344e828 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate4.png new file mode 100644 index 0000000..c5eb08a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate5.png new file mode 100644 index 0000000..45fb095 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate6.png new file mode 100644 index 0000000..dd64952 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenchestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet1.png new file mode 100644 index 0000000..1104225 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet2.png new file mode 100644 index 0000000..8859175 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet3.png new file mode 100644 index 0000000..5bdfc21 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet4.png new file mode 100644 index 0000000..8edcfe3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet5.png new file mode 100644 index 0000000..b780d15 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet6.png new file mode 100644 index 0000000..b8530ce Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenhelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings1.png new file mode 100644 index 0000000..bf53f54 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings2.png new file mode 100644 index 0000000..17d9a0b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings3.png new file mode 100644 index 0000000..cd35def Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings4.png new file mode 100644 index 0000000..fd7236e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings5.png new file mode 100644 index 0000000..0ff059d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings6.png new file mode 100644 index 0000000..85afef2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_legendenleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings.png new file mode 100644 index 0000000..84c1115 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_admin.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_admin.png new file mode 100644 index 0000000..1ca01ef Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_admin.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 0000000..b574108 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_cactus.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png new file mode 100644 index 0000000..f4f834e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_cactus.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.png new file mode 100644 index 0000000..5b3f703 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_crystal.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 0000000..2ab1c8e 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 0000000..7424833 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_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega1.png new file mode 100644 index 0000000..4ccff15 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega10.png new file mode 100644 index 0000000..b1d6ed9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega11.png new file mode 100644 index 0000000..cd95eeb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega12.png new file mode 100644 index 0000000..9cab3c9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega13.png new file mode 100644 index 0000000..7ca980c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega14.png new file mode 100644 index 0000000..8080413 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega15.png new file mode 100644 index 0000000..0d533d1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega16.png new file mode 100644 index 0000000..3268220 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega17.png new file mode 100644 index 0000000..e8bfeb6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega18.png new file mode 100644 index 0000000..1a17bbe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega19.png new file mode 100644 index 0000000..5fe3256 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega2.png new file mode 100644 index 0000000..5beddec Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega20.png new file mode 100644 index 0000000..d00231d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega3.png new file mode 100644 index 0000000..0b25cad Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega4.png new file mode 100644 index 0000000..a772b3c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega5.png new file mode 100644 index 0000000..0b7b87f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega6.png new file mode 100644 index 0000000..5f72225 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega7.png new file mode 100644 index 0000000..d999718 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega8.png new file mode 100644 index 0000000..26fdcee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega9.png new file mode 100644 index 0000000..fe5058b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_leggings_mega9.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 0000000..b9b1b3c 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 0000000..77ee17e 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 0000000..f162e51 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_inv_regnumboots.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumboots.png new file mode 100644 index 0000000..4df015a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumboots.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumchestplate.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumchestplate.png new file mode 100644 index 0000000..54d6af7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumchestplate.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumhelmet.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumhelmet.png new file mode 100644 index 0000000..3f9c6fe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumhelmet.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumleggings.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumleggings.png new file mode 100644 index 0000000..5f441e1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_regnumleggings.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots1.png new file mode 100644 index 0000000..902578e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots2.png new file mode 100644 index 0000000..11e4196 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots3.png new file mode 100644 index 0000000..a101220 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots4.png new file mode 100644 index 0000000..2d91552 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate1.png new file mode 100644 index 0000000..c3c8418 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate2.png new file mode 100644 index 0000000..4fe8aae Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate3.png new file mode 100644 index 0000000..3571aa2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate4.png new file mode 100644 index 0000000..160a805 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots1.png new file mode 100644 index 0000000..c2268ac Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots2.png new file mode 100644 index 0000000..c62a2b5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots3.png new file mode 100644 index 0000000..d56cc0d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots4.png new file mode 100644 index 0000000..22b7c9f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots5.png new file mode 100644 index 0000000..579243d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots6.png new file mode 100644 index 0000000..2496a18 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots7.png new file mode 100644 index 0000000..342769d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyboots7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate1.png new file mode 100644 index 0000000..243ae5e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate2.png new file mode 100644 index 0000000..466d5da Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate3.png new file mode 100644 index 0000000..8e77a9c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate4.png new file mode 100644 index 0000000..88c8070 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate5.png new file mode 100644 index 0000000..b5c05c3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate6.png new file mode 100644 index 0000000..3eecc94 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate7.png new file mode 100644 index 0000000..9a868b1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergychestplate7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet1.png new file mode 100644 index 0000000..b521244 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet2.png new file mode 100644 index 0000000..ffac3bc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet3.png new file mode 100644 index 0000000..77b56aa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet4.png new file mode 100644 index 0000000..c1f303a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet5.png new file mode 100644 index 0000000..28d5ed4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet6.png new file mode 100644 index 0000000..d83847d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet7.png new file mode 100644 index 0000000..4ed1760 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyhelmet7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings1.png new file mode 100644 index 0000000..4066393 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings2.png new file mode 100644 index 0000000..046c7a4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings3.png new file mode 100644 index 0000000..d24e1c4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings4.png new file mode 100644 index 0000000..8f04ee1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings5.png new file mode 100644 index 0000000..66f8e0a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings6.png new file mode 100644 index 0000000..bfa10e2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings7.png new file mode 100644 index 0000000..c0d34f9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superenergyleggings7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet1.png new file mode 100644 index 0000000..fd6022f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet2.png new file mode 100644 index 0000000..f871e40 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet3.png new file mode 100644 index 0000000..cb84251 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet4.png new file mode 100644 index 0000000..827501d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenboots.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenboots.png new file mode 100644 index 0000000..db0f51c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenboots.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenchestplate.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenchestplate.png new file mode 100644 index 0000000..80e2409 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenchestplate.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenhelmet.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenhelmet.png new file mode 100644 index 0000000..9028bda Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenhelmet.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenleggings.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenleggings.png new file mode 100644 index 0000000..e4fab48 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superlegendenleggings.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings1.png new file mode 100644 index 0000000..df5b0e1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings2.png new file mode 100644 index 0000000..6c36a56 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings3.png new file mode 100644 index 0000000..dd721cd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings4.png new file mode 100644 index 0000000..3e6ebb4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultraboots.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultraboots.png new file mode 100644 index 0000000..e7e2414 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultraboots.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultrachestplate.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultrachestplate.png new file mode 100644 index 0000000..1e38efe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultrachestplate.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultrahelmet.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultrahelmet.png new file mode 100644 index 0000000..9239621 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultrahelmet.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultraleggings.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultraleggings.png new file mode 100644 index 0000000..9280467 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_superultraleggings.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots1.png new file mode 100644 index 0000000..15e0427 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots10.png new file mode 100644 index 0000000..5221214 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots2.png new file mode 100644 index 0000000..e9491ba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots3.png new file mode 100644 index 0000000..e1001e9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots4.png new file mode 100644 index 0000000..10ea0f5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots5.png new file mode 100644 index 0000000..698b7d3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots6.png new file mode 100644 index 0000000..a1b6c91 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots7.png new file mode 100644 index 0000000..e2e8c95 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots8.png new file mode 100644 index 0000000..fee396f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots9.png new file mode 100644 index 0000000..615b365 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanboots9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate1.png new file mode 100644 index 0000000..3febc7b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate10.png new file mode 100644 index 0000000..f55ba10 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate2.png new file mode 100644 index 0000000..0cc3b79 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate3.png new file mode 100644 index 0000000..756157e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate4.png new file mode 100644 index 0000000..a9feacb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate5.png new file mode 100644 index 0000000..269a97c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate6.png new file mode 100644 index 0000000..7bf0d8f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate7.png new file mode 100644 index 0000000..b4504e6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate8.png new file mode 100644 index 0000000..2c7c46b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate9.png new file mode 100644 index 0000000..e43a4e3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanchestplate9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet1.png new file mode 100644 index 0000000..c65a7db Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet10.png new file mode 100644 index 0000000..8e5dfd5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet2.png new file mode 100644 index 0000000..94057f8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet3.png new file mode 100644 index 0000000..a18ea00 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet4.png new file mode 100644 index 0000000..9f16fdb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet5.png new file mode 100644 index 0000000..c44f58b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet6.png new file mode 100644 index 0000000..fc43c97 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet7.png new file mode 100644 index 0000000..1f984d7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet8.png new file mode 100644 index 0000000..4e05b28 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet9.png new file mode 100644 index 0000000..2138352 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanhelmet9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings1.png new file mode 100644 index 0000000..3e6bdf0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings10.png new file mode 100644 index 0000000..870a63c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings2.png new file mode 100644 index 0000000..3459027 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings3.png new file mode 100644 index 0000000..b37317f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings4.png new file mode 100644 index 0000000..6d4f36d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings5.png new file mode 100644 index 0000000..d2a4327 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings6.png new file mode 100644 index 0000000..f40e1b9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings7.png new file mode 100644 index 0000000..776fb6f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings8.png new file mode 100644 index 0000000..93b0fe1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings9.png new file mode 100644 index 0000000..384774f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_titanleggings9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots1.png new file mode 100644 index 0000000..b0a0c03 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots10.png new file mode 100644 index 0000000..65fb673 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots11.png new file mode 100644 index 0000000..1094299 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots12.png new file mode 100644 index 0000000..06bea0d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots13.png new file mode 100644 index 0000000..d618786 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots14.png new file mode 100644 index 0000000..e28c02a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots15.png new file mode 100644 index 0000000..42c0aa3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots16.png new file mode 100644 index 0000000..f34bc2a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots17.png new file mode 100644 index 0000000..e716e97 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots18.png new file mode 100644 index 0000000..8c23cf5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots19.png new file mode 100644 index 0000000..b9f157b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots2.png new file mode 100644 index 0000000..4971caf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots20.png new file mode 100644 index 0000000..b6f207d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots21.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots21.png new file mode 100644 index 0000000..aedb361 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots22.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots22.png new file mode 100644 index 0000000..1dee1b5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots23.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots23.png new file mode 100644 index 0000000..f6240a1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots24.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots24.png new file mode 100644 index 0000000..21405b9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots25.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots25.png new file mode 100644 index 0000000..cb5af59 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots3.png new file mode 100644 index 0000000..10162c4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots4.png new file mode 100644 index 0000000..cc11b3a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots5.png new file mode 100644 index 0000000..1929ec0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots6.png new file mode 100644 index 0000000..8f589a4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots7.png new file mode 100644 index 0000000..085dbbc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots8.png new file mode 100644 index 0000000..85c1227 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots9.png new file mode 100644 index 0000000..00b6033 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraboots9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate1.png new file mode 100644 index 0000000..7ff1930 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate10.png new file mode 100644 index 0000000..7099bf7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate11.png new file mode 100644 index 0000000..dab65f1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate12.png new file mode 100644 index 0000000..f1320dc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate13.png new file mode 100644 index 0000000..d9dbd53 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate14.png new file mode 100644 index 0000000..123f824 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate15.png new file mode 100644 index 0000000..e33dbe4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate16.png new file mode 100644 index 0000000..431efeb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate17.png new file mode 100644 index 0000000..dac17e6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate18.png new file mode 100644 index 0000000..f9c821c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate19.png new file mode 100644 index 0000000..593ae95 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate2.png new file mode 100644 index 0000000..e13cd49 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate20.png new file mode 100644 index 0000000..2cb854e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate21.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate21.png new file mode 100644 index 0000000..273f828 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate22.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate22.png new file mode 100644 index 0000000..cc0f121 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate23.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate23.png new file mode 100644 index 0000000..b9ccbab Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate24.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate24.png new file mode 100644 index 0000000..4e0a319 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate25.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate25.png new file mode 100644 index 0000000..3856a1f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate3.png new file mode 100644 index 0000000..9defc75 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate4.png new file mode 100644 index 0000000..31c86e2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate5.png new file mode 100644 index 0000000..547e604 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate6.png new file mode 100644 index 0000000..71f4394 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate7.png new file mode 100644 index 0000000..efe3d86 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate8.png new file mode 100644 index 0000000..0a94e86 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate9.png new file mode 100644 index 0000000..a4b1d06 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrachestplate9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet1.png new file mode 100644 index 0000000..acdf6bc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet10.png new file mode 100644 index 0000000..feb44a3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet11.png new file mode 100644 index 0000000..c81ecbf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet12.png new file mode 100644 index 0000000..f7fc996 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet13.png new file mode 100644 index 0000000..a7ad1fa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet14.png new file mode 100644 index 0000000..49244ad Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet15.png new file mode 100644 index 0000000..24cd16c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet16.png new file mode 100644 index 0000000..5b69f00 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet17.png new file mode 100644 index 0000000..5968ce5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet18.png new file mode 100644 index 0000000..af4e32e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet19.png new file mode 100644 index 0000000..8037a98 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet2.png new file mode 100644 index 0000000..86367cc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet20.png new file mode 100644 index 0000000..2e7acaf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet21.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet21.png new file mode 100644 index 0000000..ab49f7f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet22.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet22.png new file mode 100644 index 0000000..7958a77 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet23.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet23.png new file mode 100644 index 0000000..92b094d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet24.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet24.png new file mode 100644 index 0000000..3748a65 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet25.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet25.png new file mode 100644 index 0000000..90ae61b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet3.png new file mode 100644 index 0000000..b39a3da Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet4.png new file mode 100644 index 0000000..e2792d7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet5.png new file mode 100644 index 0000000..1a19fa0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet6.png new file mode 100644 index 0000000..2423cef Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet7.png new file mode 100644 index 0000000..bf75413 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet8.png new file mode 100644 index 0000000..cddf24f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet9.png new file mode 100644 index 0000000..57f4211 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultrahelmet9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings1.png new file mode 100644 index 0000000..22ef04b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings10.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings10.png new file mode 100644 index 0000000..6e92cf0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings11.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings11.png new file mode 100644 index 0000000..35e634b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings12.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings12.png new file mode 100644 index 0000000..b4253ab Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings13.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings13.png new file mode 100644 index 0000000..a2d5d9a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings14.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings14.png new file mode 100644 index 0000000..fd6f643 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings15.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings15.png new file mode 100644 index 0000000..834aab5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings16.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings16.png new file mode 100644 index 0000000..f8ccd13 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings17.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings17.png new file mode 100644 index 0000000..758d7dc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings18.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings18.png new file mode 100644 index 0000000..c8a9ec1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings19.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings19.png new file mode 100644 index 0000000..5223eb1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings2.png new file mode 100644 index 0000000..74d36ef Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings20.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings20.png new file mode 100644 index 0000000..0cb0c46 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings21.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings21.png new file mode 100644 index 0000000..5ffc544 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings22.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings22.png new file mode 100644 index 0000000..f4f01e8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings23.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings23.png new file mode 100644 index 0000000..0881683 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings24.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings24.png new file mode 100644 index 0000000..65114ac Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings25.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings25.png new file mode 100644 index 0000000..6aa70e8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings3.png new file mode 100644 index 0000000..3a97c86 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings4.png new file mode 100644 index 0000000..7cdb83b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings5.png new file mode 100644 index 0000000..4a647cb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings6.png new file mode 100644 index 0000000..3406a41 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings7.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings7.png new file mode 100644 index 0000000..39a3d67 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings8.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings8.png new file mode 100644 index 0000000..4a9b797 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings9.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings9.png new file mode 100644 index 0000000..1f65509 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_ultraleggings9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumboots1.png new file mode 100644 index 0000000..cf39596 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumboots2.png new file mode 100644 index 0000000..de77fc8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumchestplate1.png new file mode 100644 index 0000000..ee0433c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumchestplate2.png new file mode 100644 index 0000000..988d5f0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumhelmet1.png new file mode 100644 index 0000000..d41eb04 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumhelmet2.png new file mode 100644 index 0000000..87e0594 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumleggings1.png new file mode 100644 index 0000000..609266e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumleggings2.png new file mode 100644 index 0000000..07adf62 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_inv_uraniumleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots1.png new file mode 100644 index 0000000..6e6966f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots1_preview.png new file mode 100644 index 0000000..9984334 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots2.png new file mode 100644 index 0000000..20d29d4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots2_preview.png new file mode 100644 index 0000000..9759831 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots3.png new file mode 100644 index 0000000..7f43ec0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots3_preview.png new file mode 100644 index 0000000..856f5ec Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots4.png new file mode 100644 index 0000000..5ba9071 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots4_preview.png new file mode 100644 index 0000000..ca9d55b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots5.png new file mode 100644 index 0000000..9d17a1d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots5_preview.png new file mode 100644 index 0000000..fa3f92a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallboots5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate1.png new file mode 100644 index 0000000..203a3d8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate1_preview.png new file mode 100644 index 0000000..62ad3b3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate2.png new file mode 100644 index 0000000..b5b289c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate2_preview.png new file mode 100644 index 0000000..f99e053 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate3.png new file mode 100644 index 0000000..5c4a341 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate3_preview.png new file mode 100644 index 0000000..274b7cf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate4.png new file mode 100644 index 0000000..ac1eb3f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate4_preview.png new file mode 100644 index 0000000..58db3dd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate5.png new file mode 100644 index 0000000..9ed5366 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate5_preview.png new file mode 100644 index 0000000..84746f1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallchestplate5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet1.png new file mode 100644 index 0000000..f544443 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet1_preview.png new file mode 100644 index 0000000..6faffc4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet2.png new file mode 100644 index 0000000..02bd2a2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet2_preview.png new file mode 100644 index 0000000..39a5201 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet3.png new file mode 100644 index 0000000..35ba0a3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet3_preview.png new file mode 100644 index 0000000..393124f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet4.png new file mode 100644 index 0000000..8073f10 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet4_preview.png new file mode 100644 index 0000000..ef4c365 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet5.png new file mode 100644 index 0000000..df57f15 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet5_preview.png new file mode 100644 index 0000000..e227898 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallhelmet5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings1.png new file mode 100644 index 0000000..7f217eb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings1_preview.png new file mode 100644 index 0000000..b5b7142 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings2.png new file mode 100644 index 0000000..64c9f1d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings2_preview.png new file mode 100644 index 0000000..7eae396 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings3.png new file mode 100644 index 0000000..83ac37f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings3_preview.png new file mode 100644 index 0000000..295b0d4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings4.png new file mode 100644 index 0000000..ee1d610 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings4_preview.png new file mode 100644 index 0000000..3eb4bf5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings5.png new file mode 100644 index 0000000..512336a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings5_preview.png new file mode 100644 index 0000000..dfa848d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_kristallleggings5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots1.png new file mode 100644 index 0000000..5e61719 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots1_preview.png new file mode 100644 index 0000000..ba8dccc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots2.png new file mode 100644 index 0000000..fabedc2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots2_preview.png new file mode 100644 index 0000000..f4d9e14 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots3.png new file mode 100644 index 0000000..0efbc61 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots3_preview.png new file mode 100644 index 0000000..51e92af Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots4.png new file mode 100644 index 0000000..b94efe0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots4_preview.png new file mode 100644 index 0000000..38148fe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots5.png new file mode 100644 index 0000000..5b55f37 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots5_preview.png new file mode 100644 index 0000000..17c07b5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots6.png new file mode 100644 index 0000000..545efe2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots6_preview.png new file mode 100644 index 0000000..8a091ec Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenboots6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate1.png new file mode 100644 index 0000000..9d32400 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate1_preview.png new file mode 100644 index 0000000..77e5f9c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate2.png new file mode 100644 index 0000000..c8209ec Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate2_preview.png new file mode 100644 index 0000000..07fbe50 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate3.png new file mode 100644 index 0000000..8a94f98 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate3_preview.png new file mode 100644 index 0000000..bbda3e5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate4.png new file mode 100644 index 0000000..2478698 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate4_preview.png new file mode 100644 index 0000000..835d4f3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate5.png new file mode 100644 index 0000000..9513a2f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate5_preview.png new file mode 100644 index 0000000..f39f512 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate6.png new file mode 100644 index 0000000..a2ab3e0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate6_preview.png new file mode 100644 index 0000000..39158a7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenchestplate6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet1.png new file mode 100644 index 0000000..09468d1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet1_preview.png new file mode 100644 index 0000000..24d3b5e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet2.png new file mode 100644 index 0000000..4455eaf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet2_preview.png new file mode 100644 index 0000000..688554d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet3.png new file mode 100644 index 0000000..455d526 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet3_preview.png new file mode 100644 index 0000000..04cd89d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet4.png new file mode 100644 index 0000000..28844fd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet4_preview.png new file mode 100644 index 0000000..fa222dd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet5.png new file mode 100644 index 0000000..3d49b2d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet5_preview.png new file mode 100644 index 0000000..b3997d1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet6.png new file mode 100644 index 0000000..a79e628 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet6_preview.png new file mode 100644 index 0000000..23cfce3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenhelmet6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings1.png new file mode 100644 index 0000000..94fed43 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings1_preview.png new file mode 100644 index 0000000..e9367e6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings2.png new file mode 100644 index 0000000..f2f5478 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings2_preview.png new file mode 100644 index 0000000..dc78c63 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings3.png new file mode 100644 index 0000000..87956e7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings3_preview.png new file mode 100644 index 0000000..fdff398 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings4.png new file mode 100644 index 0000000..7c3e4b1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings4_preview.png new file mode 100644 index 0000000..a787d01 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings5.png new file mode 100644 index 0000000..4a4074c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings5_preview.png new file mode 100644 index 0000000..3dbbd46 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings6.png new file mode 100644 index 0000000..00e440f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings6_preview.png new file mode 100644 index 0000000..99ff4a7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_legendenleggings6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings.png new file mode 100644 index 0000000..0d5b075 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin.png new file mode 100644 index 0000000..6752256 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin2.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin2.png new file mode 100644 index 0000000..6752256 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin2_preview.png new file mode 100644 index 0000000..fe47999 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin3.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin3.png new file mode 100644 index 0000000..6752256 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin3_preview.png new file mode 100644 index 0000000..fe47999 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin4.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin4.png new file mode 100644 index 0000000..6752256 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin4_preview.png new file mode 100644 index 0000000..fe47999 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.png new file mode 100644 index 0000000..fe47999 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_admin_preview.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 0000000..3394288 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 0000000..c4aa7b9 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_cactus.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png new file mode 100644 index 0000000..7d22404 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_cactus.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png new file mode 100644 index 0000000..1a24863 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_cactus_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png new file mode 100644 index 0000000..cc61390 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_crystal.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_crystal_preview.png new file mode 100644 index 0000000..559d008 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_crystal_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 0000000..a646ba2 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 0000000..a6ac2e2 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 0000000..d207dff 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 0000000..75e6ca4 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_mega1.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega1.png new file mode 100644 index 0000000..9f30b7c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega10.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega10.png new file mode 100644 index 0000000..5b85d19 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega10_preview.png new file mode 100644 index 0000000..cc07cc9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega11.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega11.png new file mode 100644 index 0000000..138a1c0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega11_preview.png new file mode 100644 index 0000000..8e7fd91 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega12.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega12.png new file mode 100644 index 0000000..f69ed9f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega12_preview.png new file mode 100644 index 0000000..ab576d7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega13.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega13.png new file mode 100644 index 0000000..7bb29c3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega13_preview.png new file mode 100644 index 0000000..8b9a857 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega14.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega14.png new file mode 100644 index 0000000..e1a0566 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega14_preview.png new file mode 100644 index 0000000..ce6a7c7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega15.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega15.png new file mode 100644 index 0000000..b9fb591 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega15_preview.png new file mode 100644 index 0000000..2fdd17f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega16.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega16.png new file mode 100644 index 0000000..2b9492c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega16_preview.png new file mode 100644 index 0000000..2a3fac3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega17.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega17.png new file mode 100644 index 0000000..5e91589 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega17_preview.png new file mode 100644 index 0000000..e2e6b27 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega18.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega18.png new file mode 100644 index 0000000..04bb0de Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega18_preview.png new file mode 100644 index 0000000..5b79098 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega19.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega19.png new file mode 100644 index 0000000..4a719e1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega19_preview.png new file mode 100644 index 0000000..9855c70 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega1_preview.png new file mode 100644 index 0000000..e087adf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega2.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega2.png new file mode 100644 index 0000000..8bc78d8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega20.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega20.png new file mode 100644 index 0000000..f109578 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega20_preview.png new file mode 100644 index 0000000..943d1cd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega2_preview.png new file mode 100644 index 0000000..28c0aba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega3.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega3.png new file mode 100644 index 0000000..8e12fd4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega3_preview.png new file mode 100644 index 0000000..cc040a3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega4.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega4.png new file mode 100644 index 0000000..498af7d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega4_preview.png new file mode 100644 index 0000000..8941d4f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega5.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega5.png new file mode 100644 index 0000000..1f6fed7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega5_preview.png new file mode 100644 index 0000000..e64d14e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega6.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega6.png new file mode 100644 index 0000000..b5139c3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega6_preview.png new file mode 100644 index 0000000..8457417 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega7.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega7.png new file mode 100644 index 0000000..4d156fc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega7_preview.png new file mode 100644 index 0000000..25e2886 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega8.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega8.png new file mode 100644 index 0000000..bc8e8c2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega8_preview.png new file mode 100644 index 0000000..88d4826 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega9.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega9.png new file mode 100644 index 0000000..a0a5df6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega9_preview.png new file mode 100644 index 0000000..d7ff589 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_mega9_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 0000000..ffff3ee 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 0000000..ee99178 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_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_preview.png new file mode 100644 index 0000000..9f88180 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_leggings_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 0000000..78d5874 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 0000000..3e3ec85 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 0000000..3880fc0 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 0000000..f8ee8e8 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_regnumboots.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots.png new file mode 100644 index 0000000..88b3e25 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots2.png new file mode 100644 index 0000000..88b3e25 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots2_preview.png new file mode 100644 index 0000000..7354737 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots3.png new file mode 100644 index 0000000..88b3e25 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots3_preview.png new file mode 100644 index 0000000..7354737 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots4.png new file mode 100644 index 0000000..88b3e25 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots4_preview.png new file mode 100644 index 0000000..7354737 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots_preview.png new file mode 100644 index 0000000..7354737 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumboots_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate.png new file mode 100644 index 0000000..66ec161 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate2.png new file mode 100644 index 0000000..66ec161 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate2_preview.png new file mode 100644 index 0000000..f401ed8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate3.png new file mode 100644 index 0000000..66ec161 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate3_preview.png new file mode 100644 index 0000000..f401ed8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate4.png new file mode 100644 index 0000000..66ec161 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate4_preview.png new file mode 100644 index 0000000..f401ed8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate_preview.png new file mode 100644 index 0000000..f401ed8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumchestplate_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet.png new file mode 100644 index 0000000..d4389a8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet2.png new file mode 100644 index 0000000..d4389a8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet2_preview.png new file mode 100644 index 0000000..9dd72aa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet3.png new file mode 100644 index 0000000..d4389a8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet3_preview.png new file mode 100644 index 0000000..9dd72aa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet4.png new file mode 100644 index 0000000..d4389a8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet4_preview.png new file mode 100644 index 0000000..9dd72aa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet_preview.png new file mode 100644 index 0000000..9dd72aa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumhelmet_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings.png new file mode 100644 index 0000000..7fa18f6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings2.png new file mode 100644 index 0000000..7fa18f6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings2_preview.png new file mode 100644 index 0000000..6465494 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings3.png new file mode 100644 index 0000000..7fa18f6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings3_preview.png new file mode 100644 index 0000000..6465494 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings4.png new file mode 100644 index 0000000..7fa18f6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings4_preview.png new file mode 100644 index 0000000..6465494 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings_preview.png new file mode 100644 index 0000000..6465494 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_regnumleggings_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_superboots1.png new file mode 100644 index 0000000..7198ec2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superboots1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superboots1_preview.png new file mode 100644 index 0000000..4ad07dd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superboots1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superboots2.png new file mode 100644 index 0000000..8bb0315 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superboots2_preview.png new file mode 100644 index 0000000..dbc2496 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superboots3.png new file mode 100644 index 0000000..5d24753 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superboots3_preview.png new file mode 100644 index 0000000..46ebac2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superboots4.png new file mode 100644 index 0000000..d761e36 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superboots4_preview.png new file mode 100644 index 0000000..277c53f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate1.png new file mode 100644 index 0000000..b2f4f4b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate1_preview.png new file mode 100644 index 0000000..c9cbb2c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate2.png new file mode 100644 index 0000000..21e7f66 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate2_preview.png new file mode 100644 index 0000000..bc1c2b3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate3.png new file mode 100644 index 0000000..e7d7486 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate3_preview.png new file mode 100644 index 0000000..687f239 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate4.png new file mode 100644 index 0000000..ddfaa7c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate4_preview.png new file mode 100644 index 0000000..b5f0d14 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superchestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots1.png new file mode 100644 index 0000000..ca43699 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots1_preview.png new file mode 100644 index 0000000..4ae8969 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots2.png new file mode 100644 index 0000000..e7f7071 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots2_preview.png new file mode 100644 index 0000000..e402b3e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots3.png new file mode 100644 index 0000000..b3fd68d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots3_preview.png new file mode 100644 index 0000000..9ad7b7c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots4.png new file mode 100644 index 0000000..651ccac Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots4_preview.png new file mode 100644 index 0000000..e202daf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots5.png new file mode 100644 index 0000000..293557c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots5_preview.png new file mode 100644 index 0000000..b3dd2e3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots6.png new file mode 100644 index 0000000..adf587f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots6_preview.png new file mode 100644 index 0000000..4639aa0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots7.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots7.png new file mode 100644 index 0000000..6035938 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots7_preview.png new file mode 100644 index 0000000..c4756e6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyboots7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate1.png new file mode 100644 index 0000000..93d5388 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate1_preview.png new file mode 100644 index 0000000..98f8af3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate2.png new file mode 100644 index 0000000..53ad072 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate2_preview.png new file mode 100644 index 0000000..200eb7f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate3.png new file mode 100644 index 0000000..6dadd61 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate3_preview.png new file mode 100644 index 0000000..8f88807 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate4.png new file mode 100644 index 0000000..f9a6500 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate4_preview.png new file mode 100644 index 0000000..087fb3a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate5.png new file mode 100644 index 0000000..3c035fd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate5_preview.png new file mode 100644 index 0000000..119705a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate6.png new file mode 100644 index 0000000..a30ebc5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate6_preview.png new file mode 100644 index 0000000..f7d4960 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate7.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate7.png new file mode 100644 index 0000000..abcdb7a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate7_preview.png new file mode 100644 index 0000000..98cdb26 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergychestplate7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet1.png new file mode 100644 index 0000000..aa91075 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet1_preview.png new file mode 100644 index 0000000..5ea2d38 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet2.png new file mode 100644 index 0000000..9c91bd8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet2_preview.png new file mode 100644 index 0000000..c923944 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet3.png new file mode 100644 index 0000000..afea08c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet3_preview.png new file mode 100644 index 0000000..4a4a384 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet4.png new file mode 100644 index 0000000..697cb62 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet4_preview.png new file mode 100644 index 0000000..0a28c86 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet5.png new file mode 100644 index 0000000..cf28201 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet5_preview.png new file mode 100644 index 0000000..da11ff4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet6.png new file mode 100644 index 0000000..92bb6d8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet6_preview.png new file mode 100644 index 0000000..237e2f9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet7.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet7.png new file mode 100644 index 0000000..e92b4ad Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet7_preview.png new file mode 100644 index 0000000..230c2c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyhelmet7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings1.png new file mode 100644 index 0000000..62f6a20 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings1_preview.png new file mode 100644 index 0000000..bb67d18 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings2.png new file mode 100644 index 0000000..90348be Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings2_preview.png new file mode 100644 index 0000000..402083b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings3.png new file mode 100644 index 0000000..0045258 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings3_preview.png new file mode 100644 index 0000000..e89d741 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings4.png new file mode 100644 index 0000000..76031d1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings4_preview.png new file mode 100644 index 0000000..26e2df3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings5.png new file mode 100644 index 0000000..36c6cf9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings5_preview.png new file mode 100644 index 0000000..998c761 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings6.png new file mode 100644 index 0000000..25cd3ea Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings6_preview.png new file mode 100644 index 0000000..0ba9979 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings7.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings7.png new file mode 100644 index 0000000..5870ab6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings7_preview.png new file mode 100644 index 0000000..1fade2e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superenergyleggings7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet1.png new file mode 100644 index 0000000..00ec0a5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet1_preview.png new file mode 100644 index 0000000..115a847 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet2.png new file mode 100644 index 0000000..2405aa8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet2_preview.png new file mode 100644 index 0000000..d442226 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet3.png new file mode 100644 index 0000000..386c19c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet3_preview.png new file mode 100644 index 0000000..9134f4f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet4.png new file mode 100644 index 0000000..99ab7e2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet4_preview.png new file mode 100644 index 0000000..95d181f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superhelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots.png new file mode 100644 index 0000000..5d5d283 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots2.png new file mode 100644 index 0000000..5d5d283 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots2_preview.png new file mode 100644 index 0000000..df40f68 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots3.png new file mode 100644 index 0000000..5d5d283 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots3_preview.png new file mode 100644 index 0000000..df40f68 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots4.png new file mode 100644 index 0000000..5d5d283 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots4_preview.png new file mode 100644 index 0000000..df40f68 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots_preview.png new file mode 100644 index 0000000..df40f68 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenboots_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate.png new file mode 100644 index 0000000..4e66585 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate2.png new file mode 100644 index 0000000..4e66585 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate2_preview.png new file mode 100644 index 0000000..37b34ee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate3.png new file mode 100644 index 0000000..4e66585 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate3_preview.png new file mode 100644 index 0000000..37b34ee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate4.png new file mode 100644 index 0000000..4e66585 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate4_preview.png new file mode 100644 index 0000000..37b34ee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate_preview.png new file mode 100644 index 0000000..37b34ee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenchestplate_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet.png new file mode 100644 index 0000000..e5b247f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet2.png new file mode 100644 index 0000000..e5b247f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet2_preview.png new file mode 100644 index 0000000..5cf454a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet3.png new file mode 100644 index 0000000..e5b247f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet3_preview.png new file mode 100644 index 0000000..5cf454a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet4.png new file mode 100644 index 0000000..e5b247f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet4_preview.png new file mode 100644 index 0000000..5cf454a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet_preview.png new file mode 100644 index 0000000..5cf454a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenhelmet_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings.png new file mode 100644 index 0000000..806acbc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings2.png new file mode 100644 index 0000000..806acbc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings2_preview.png new file mode 100644 index 0000000..2c968e1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings3.png new file mode 100644 index 0000000..806acbc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings3_preview.png new file mode 100644 index 0000000..2c968e1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings4.png new file mode 100644 index 0000000..806acbc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings4_preview.png new file mode 100644 index 0000000..2c968e1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings_preview.png new file mode 100644 index 0000000..2c968e1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superlegendenleggings_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings1.png new file mode 100644 index 0000000..455c0a3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superleggings1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings1_preview.png new file mode 100644 index 0000000..54a8b9a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings2.png new file mode 100644 index 0000000..0e60dd7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings2_preview.png new file mode 100644 index 0000000..ca334b3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings3.png new file mode 100644 index 0000000..052b8c5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings3_preview.png new file mode 100644 index 0000000..40acd44 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings4.png new file mode 100644 index 0000000..f11aedb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings4_preview.png new file mode 100644 index 0000000..d70dc51 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superultraboots.png b/mods/3d_armor/3d_armor/textures/3d_armor_superultraboots.png new file mode 100644 index 0000000..e24d9a4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superultraboots.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superultraboots_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superultraboots_preview.png new file mode 100644 index 0000000..fd811c0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superultraboots_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superultrachestplate.png b/mods/3d_armor/3d_armor/textures/3d_armor_superultrachestplate.png new file mode 100644 index 0000000..0f3d9ee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superultrachestplate.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superultrachestplate_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superultrachestplate_preview.png new file mode 100644 index 0000000..4b3da3b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superultrachestplate_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superultrahelmet.png b/mods/3d_armor/3d_armor/textures/3d_armor_superultrahelmet.png new file mode 100644 index 0000000..0685d6e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superultrahelmet.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superultrahelmet_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superultrahelmet_preview.png new file mode 100644 index 0000000..f320d31 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superultrahelmet_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superultraleggings.png b/mods/3d_armor/3d_armor/textures/3d_armor_superultraleggings.png new file mode 100644 index 0000000..82bc95c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superultraleggings.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_superultraleggings_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_superultraleggings_preview.png new file mode 100644 index 0000000..c8c978a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_superultraleggings_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots1.png new file mode 100644 index 0000000..5e3b905 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots10.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots10.png new file mode 100644 index 0000000..f627a4f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots10_preview.png new file mode 100644 index 0000000..1fbd4c8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots1_preview.png new file mode 100644 index 0000000..7aca54a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots2.png new file mode 100644 index 0000000..ea001c3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots2_preview.png new file mode 100644 index 0000000..e7bcdd1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots3.png new file mode 100644 index 0000000..04ce0ed Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots3_preview.png new file mode 100644 index 0000000..c0d11b5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots4.png new file mode 100644 index 0000000..f8eaac6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots4_preview.png new file mode 100644 index 0000000..1be420c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots5.png new file mode 100644 index 0000000..3e5e22f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots5_preview.png new file mode 100644 index 0000000..2dc9a3a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots6.png new file mode 100644 index 0000000..0e532fb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots6_preview.png new file mode 100644 index 0000000..0ec8acc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots7.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots7.png new file mode 100644 index 0000000..5b98a86 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots7_preview.png new file mode 100644 index 0000000..abd2552 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots8.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots8.png new file mode 100644 index 0000000..19f8360 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots8_preview.png new file mode 100644 index 0000000..08d1658 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots9.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots9.png new file mode 100644 index 0000000..985c630 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanboots9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots9_preview.png new file mode 100644 index 0000000..0cd9819 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanboots9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate1.png new file mode 100644 index 0000000..2dc25a2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate10.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate10.png new file mode 100644 index 0000000..ebee0c2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate10_preview.png new file mode 100644 index 0000000..2022eee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate1_preview.png new file mode 100644 index 0000000..516c3be Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate2.png new file mode 100644 index 0000000..607442f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate2_preview.png new file mode 100644 index 0000000..7c076e9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate3.png new file mode 100644 index 0000000..ef68db9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate3_preview.png new file mode 100644 index 0000000..039ccf8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate4.png new file mode 100644 index 0000000..7fc354a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate4_preview.png new file mode 100644 index 0000000..df43ea2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate5.png new file mode 100644 index 0000000..542017b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate5_preview.png new file mode 100644 index 0000000..ebc266a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate6.png new file mode 100644 index 0000000..05562f2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate6_preview.png new file mode 100644 index 0000000..ba44f45 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate7.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate7.png new file mode 100644 index 0000000..b3c6c4b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate7_preview.png new file mode 100644 index 0000000..a702630 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate8.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate8.png new file mode 100644 index 0000000..0ca3835 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate8_preview.png new file mode 100644 index 0000000..8fd74e7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate9.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate9.png new file mode 100644 index 0000000..717b430 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate9_preview.png new file mode 100644 index 0000000..52b278e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanchestplate9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet1.png new file mode 100644 index 0000000..97cde45 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet10.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet10.png new file mode 100644 index 0000000..dca2ba2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet10_preview.png new file mode 100644 index 0000000..c7aee7a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet1_preview.png new file mode 100644 index 0000000..6d295b1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet2.png new file mode 100644 index 0000000..db23b1d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet2_preview.png new file mode 100644 index 0000000..a40bb6d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet3.png new file mode 100644 index 0000000..efd1c3b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet3_preview.png new file mode 100644 index 0000000..95f1921 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet4.png new file mode 100644 index 0000000..f396fed Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet4_preview.png new file mode 100644 index 0000000..f40ae26 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet5.png new file mode 100644 index 0000000..ee2ea6e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet5_preview.png new file mode 100644 index 0000000..f4b8928 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet6.png new file mode 100644 index 0000000..4f68afe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet6_preview.png new file mode 100644 index 0000000..cdf35ba Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet7.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet7.png new file mode 100644 index 0000000..8401448 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet7_preview.png new file mode 100644 index 0000000..d3a7aee Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet8.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet8.png new file mode 100644 index 0000000..5d70520 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet8_preview.png new file mode 100644 index 0000000..50842ac Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet9.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet9.png new file mode 100644 index 0000000..0e98639 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet9_preview.png new file mode 100644 index 0000000..cc1b8b7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanhelmet9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings1.png new file mode 100644 index 0000000..dd6131d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings10.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings10.png new file mode 100644 index 0000000..723206b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings10_preview.png new file mode 100644 index 0000000..cf83887 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings1_preview.png new file mode 100644 index 0000000..488e5fa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings2.png new file mode 100644 index 0000000..384ce1b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings2_preview.png new file mode 100644 index 0000000..8bb1f06 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings3.png new file mode 100644 index 0000000..7923568 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings3_preview.png new file mode 100644 index 0000000..02315ac Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings4.png new file mode 100644 index 0000000..d870b80 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings4_preview.png new file mode 100644 index 0000000..c65c392 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings5.png new file mode 100644 index 0000000..10f6950 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings5_preview.png new file mode 100644 index 0000000..baba84d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings6.png new file mode 100644 index 0000000..289b1f3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings6_preview.png new file mode 100644 index 0000000..a110bf4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings7.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings7.png new file mode 100644 index 0000000..1712bdd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings7_preview.png new file mode 100644 index 0000000..fb16fcb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings8.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings8.png new file mode 100644 index 0000000..a3d29c9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings8_preview.png new file mode 100644 index 0000000..07fab64 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings9.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings9.png new file mode 100644 index 0000000..2787a9a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings9_preview.png new file mode 100644 index 0000000..6731df8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_titanleggings9_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 0000000..4d7beb8 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 0000000..6e5cfee 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/3d_armor_ultraboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots1.png new file mode 100644 index 0000000..e3c87ea Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots10.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots10.png new file mode 100644 index 0000000..fc3ca19 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots10_preview.png new file mode 100644 index 0000000..82a8c5a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots11.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots11.png new file mode 100644 index 0000000..8a1ed28 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots11_preview.png new file mode 100644 index 0000000..2082706 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots12.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots12.png new file mode 100644 index 0000000..6f55dfe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots12_preview.png new file mode 100644 index 0000000..9d72b65 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots13.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots13.png new file mode 100644 index 0000000..7b8dbfe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots13_preview.png new file mode 100644 index 0000000..4f33287 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots14.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots14.png new file mode 100644 index 0000000..b56d385 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots14_preview.png new file mode 100644 index 0000000..adf383f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots15.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots15.png new file mode 100644 index 0000000..39456a5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots15_preview.png new file mode 100644 index 0000000..8236edd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots16.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots16.png new file mode 100644 index 0000000..06bc7cd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots16_preview.png new file mode 100644 index 0000000..1c91397 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots17.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots17.png new file mode 100644 index 0000000..a6ce3e9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots17_preview.png new file mode 100644 index 0000000..5bdc87b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots18.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots18.png new file mode 100644 index 0000000..fb100b3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots18_preview.png new file mode 100644 index 0000000..e47ae8f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots19.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots19.png new file mode 100644 index 0000000..81adc40 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots19_preview.png new file mode 100644 index 0000000..98ee38f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots1_preview.png new file mode 100644 index 0000000..cad5230 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots2.png new file mode 100644 index 0000000..4b4d633 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots20.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots20.png new file mode 100644 index 0000000..fde6d2c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots20_preview.png new file mode 100644 index 0000000..0c00bc7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots21.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots21.png new file mode 100644 index 0000000..1cb848b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots21_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots21_preview.png new file mode 100644 index 0000000..2b2022d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots21_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots22.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots22.png new file mode 100644 index 0000000..37bb4e0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots22_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots22_preview.png new file mode 100644 index 0000000..b2397b0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots22_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots23.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots23.png new file mode 100644 index 0000000..2274545 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots23_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots23_preview.png new file mode 100644 index 0000000..acf788b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots23_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots24.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots24.png new file mode 100644 index 0000000..6aaa6eb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots24_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots24_preview.png new file mode 100644 index 0000000..16d3422 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots24_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots25.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots25.png new file mode 100644 index 0000000..4b1bbbc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots25_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots25_preview.png new file mode 100644 index 0000000..2f26bb0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots25_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots2_preview.png new file mode 100644 index 0000000..8b62f24 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots3.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots3.png new file mode 100644 index 0000000..936f805 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots3_preview.png new file mode 100644 index 0000000..7f39d64 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots4.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots4.png new file mode 100644 index 0000000..277d858 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots4_preview.png new file mode 100644 index 0000000..26ad846 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots5.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots5.png new file mode 100644 index 0000000..784dee0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots5_preview.png new file mode 100644 index 0000000..2e3303a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots6.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots6.png new file mode 100644 index 0000000..0e0593e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots6_preview.png new file mode 100644 index 0000000..8b55830 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots7.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots7.png new file mode 100644 index 0000000..e527d3b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots7_preview.png new file mode 100644 index 0000000..f47835a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots8.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots8.png new file mode 100644 index 0000000..499d79a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots8_preview.png new file mode 100644 index 0000000..eaacbfb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots9.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots9.png new file mode 100644 index 0000000..f077cdf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots9_preview.png new file mode 100644 index 0000000..819e283 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraboots9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate1.png new file mode 100644 index 0000000..780ebc6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate10.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate10.png new file mode 100644 index 0000000..a3d8fcb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate10_preview.png new file mode 100644 index 0000000..4373230 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate11.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate11.png new file mode 100644 index 0000000..aeacac7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate11_preview.png new file mode 100644 index 0000000..dc76406 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate12.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate12.png new file mode 100644 index 0000000..032f333 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate12_preview.png new file mode 100644 index 0000000..73f4eab Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate13.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate13.png new file mode 100644 index 0000000..463ad40 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate13_preview.png new file mode 100644 index 0000000..0d72338 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate14.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate14.png new file mode 100644 index 0000000..96d4351 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate14_preview.png new file mode 100644 index 0000000..0b57b30 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate15.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate15.png new file mode 100644 index 0000000..d1b4fb2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate15_preview.png new file mode 100644 index 0000000..211cfb3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate16.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate16.png new file mode 100644 index 0000000..ee83e66 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate16_preview.png new file mode 100644 index 0000000..eff8933 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate17.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate17.png new file mode 100644 index 0000000..68d4622 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate17_preview.png new file mode 100644 index 0000000..c9a0d44 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate18.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate18.png new file mode 100644 index 0000000..4159542 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate18_preview.png new file mode 100644 index 0000000..9f1bbb0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate19.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate19.png new file mode 100644 index 0000000..51fa107 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate19_preview.png new file mode 100644 index 0000000..99369aa Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate1_preview.png new file mode 100644 index 0000000..bb78737 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate2.png new file mode 100644 index 0000000..a007130 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate20.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate20.png new file mode 100644 index 0000000..d40ce4d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate20_preview.png new file mode 100644 index 0000000..50c60e7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate21.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate21.png new file mode 100644 index 0000000..6457b56 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate21_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate21_preview.png new file mode 100644 index 0000000..e73c4a6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate21_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate22.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate22.png new file mode 100644 index 0000000..0b34cd3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate22_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate22_preview.png new file mode 100644 index 0000000..c8cfe41 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate22_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate23.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate23.png new file mode 100644 index 0000000..25d4a50 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate23_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate23_preview.png new file mode 100644 index 0000000..b9478b5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate23_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate24.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate24.png new file mode 100644 index 0000000..37f91c9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate24_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate24_preview.png new file mode 100644 index 0000000..26b95b5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate24_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate25.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate25.png new file mode 100644 index 0000000..723c555 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate25_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate25_preview.png new file mode 100644 index 0000000..5365548 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate25_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate2_preview.png new file mode 100644 index 0000000..2c1191d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate3.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate3.png new file mode 100644 index 0000000..c14bd62 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate3_preview.png new file mode 100644 index 0000000..f3f32d2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate4.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate4.png new file mode 100644 index 0000000..8c906e6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate4_preview.png new file mode 100644 index 0000000..784630a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate5.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate5.png new file mode 100644 index 0000000..5cc7267 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate5_preview.png new file mode 100644 index 0000000..78278c8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate6.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate6.png new file mode 100644 index 0000000..e870a12 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate6_preview.png new file mode 100644 index 0000000..2f6453a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate7.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate7.png new file mode 100644 index 0000000..9126b3f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate7_preview.png new file mode 100644 index 0000000..183b484 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate8.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate8.png new file mode 100644 index 0000000..af181ed Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate8_preview.png new file mode 100644 index 0000000..e263d9f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate9.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate9.png new file mode 100644 index 0000000..133420f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate9_preview.png new file mode 100644 index 0000000..ea2a77f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrachestplate9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet1.png new file mode 100644 index 0000000..fcfae2e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet10.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet10.png new file mode 100644 index 0000000..74476f9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet10_preview.png new file mode 100644 index 0000000..55e79de Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet11.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet11.png new file mode 100644 index 0000000..7ce5a82 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet11_preview.png new file mode 100644 index 0000000..6d21981 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet12.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet12.png new file mode 100644 index 0000000..922d649 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet12_preview.png new file mode 100644 index 0000000..b9be11b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet13.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet13.png new file mode 100644 index 0000000..fb29f2a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet13_preview.png new file mode 100644 index 0000000..a4bf808 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet14.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet14.png new file mode 100644 index 0000000..92e152c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet14_preview.png new file mode 100644 index 0000000..ae4fd80 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet15.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet15.png new file mode 100644 index 0000000..7628f9d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet15_preview.png new file mode 100644 index 0000000..ddb0de2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet16.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet16.png new file mode 100644 index 0000000..5c52d60 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet16_preview.png new file mode 100644 index 0000000..c3c684e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet17.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet17.png new file mode 100644 index 0000000..f721911 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet17_preview.png new file mode 100644 index 0000000..dcbe402 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet18.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet18.png new file mode 100644 index 0000000..def0599 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet18_preview.png new file mode 100644 index 0000000..23f7853 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet19.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet19.png new file mode 100644 index 0000000..296c2e0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet19_preview.png new file mode 100644 index 0000000..fedb99c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet1_preview.png new file mode 100644 index 0000000..ece8cc2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet2.png new file mode 100644 index 0000000..72900a7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet20.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet20.png new file mode 100644 index 0000000..b7cdd84 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet20_preview.png new file mode 100644 index 0000000..4f0cdd5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet21.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet21.png new file mode 100644 index 0000000..0fe9941 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet21_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet21_preview.png new file mode 100644 index 0000000..9d8ad86 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet21_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet22.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet22.png new file mode 100644 index 0000000..fe66782 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet22_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet22_preview.png new file mode 100644 index 0000000..3304eb8 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet22_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet23.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet23.png new file mode 100644 index 0000000..dc1fafe Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet23_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet23_preview.png new file mode 100644 index 0000000..a43d639 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet23_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet24.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet24.png new file mode 100644 index 0000000..eca7f82 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet24_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet24_preview.png new file mode 100644 index 0000000..0c5601e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet24_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet25.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet25.png new file mode 100644 index 0000000..f4e6056 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet25_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet25_preview.png new file mode 100644 index 0000000..0aae925 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet25_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet2_preview.png new file mode 100644 index 0000000..bc7ff17 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet3.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet3.png new file mode 100644 index 0000000..3362a96 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet3_preview.png new file mode 100644 index 0000000..f41db17 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet4.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet4.png new file mode 100644 index 0000000..02e5b37 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet4_preview.png new file mode 100644 index 0000000..21c85c0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet5.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet5.png new file mode 100644 index 0000000..8510c5e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet5_preview.png new file mode 100644 index 0000000..b9796af Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet6.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet6.png new file mode 100644 index 0000000..e3b7d43 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet6_preview.png new file mode 100644 index 0000000..327c0cf Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet7.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet7.png new file mode 100644 index 0000000..2d6af3c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet7_preview.png new file mode 100644 index 0000000..a5e84c7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet8.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet8.png new file mode 100644 index 0000000..df3805f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet8_preview.png new file mode 100644 index 0000000..86f59e0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet9.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet9.png new file mode 100644 index 0000000..e63766c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet9_preview.png new file mode 100644 index 0000000..bbd2468 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultrahelmet9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings1.png new file mode 100644 index 0000000..a09adb7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings10.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings10.png new file mode 100644 index 0000000..f31c437 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings10.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings10_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings10_preview.png new file mode 100644 index 0000000..2b657e7 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings10_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings11.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings11.png new file mode 100644 index 0000000..cf4f632 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings11.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings11_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings11_preview.png new file mode 100644 index 0000000..6d2b006 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings11_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings12.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings12.png new file mode 100644 index 0000000..fdf0c89 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings12.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings12_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings12_preview.png new file mode 100644 index 0000000..c71e46d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings12_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings13.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings13.png new file mode 100644 index 0000000..e41e860 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings13.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings13_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings13_preview.png new file mode 100644 index 0000000..ffa9f47 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings13_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings14.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings14.png new file mode 100644 index 0000000..97f8cbc Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings14.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings14_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings14_preview.png new file mode 100644 index 0000000..ebf035a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings14_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings15.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings15.png new file mode 100644 index 0000000..7b0394d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings15.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings15_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings15_preview.png new file mode 100644 index 0000000..c50965e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings15_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings16.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings16.png new file mode 100644 index 0000000..5676b71 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings16.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings16_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings16_preview.png new file mode 100644 index 0000000..71446e3 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings16_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings17.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings17.png new file mode 100644 index 0000000..058cfc1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings17.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings17_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings17_preview.png new file mode 100644 index 0000000..f860206 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings17_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings18.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings18.png new file mode 100644 index 0000000..7171b05 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings18.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings18_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings18_preview.png new file mode 100644 index 0000000..4bdd235 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings18_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings19.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings19.png new file mode 100644 index 0000000..f48ae5b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings19.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings19_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings19_preview.png new file mode 100644 index 0000000..fb53b14 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings19_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings1_preview.png new file mode 100644 index 0000000..c7eb695 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings2.png new file mode 100644 index 0000000..85e16ae Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings20.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings20.png new file mode 100644 index 0000000..160f7a4 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings20.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings20_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings20_preview.png new file mode 100644 index 0000000..9a70e76 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings20_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings21.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings21.png new file mode 100644 index 0000000..a227fc5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings21.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings21_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings21_preview.png new file mode 100644 index 0000000..a941fea Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings21_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings22.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings22.png new file mode 100644 index 0000000..a23753a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings22.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings22_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings22_preview.png new file mode 100644 index 0000000..d378fff Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings22_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings23.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings23.png new file mode 100644 index 0000000..bbd39e9 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings23.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings23_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings23_preview.png new file mode 100644 index 0000000..41715b2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings23_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings24.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings24.png new file mode 100644 index 0000000..96c551a Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings24.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings24_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings24_preview.png new file mode 100644 index 0000000..05c0fbb Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings24_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings25.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings25.png new file mode 100644 index 0000000..d9d1092 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings25.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings25_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings25_preview.png new file mode 100644 index 0000000..df8203e Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings25_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings2_preview.png new file mode 100644 index 0000000..116b1ca Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings3.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings3.png new file mode 100644 index 0000000..bf8ea94 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings3.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings3_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings3_preview.png new file mode 100644 index 0000000..555bdd0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings3_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings4.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings4.png new file mode 100644 index 0000000..359065f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings4.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings4_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings4_preview.png new file mode 100644 index 0000000..bf760c1 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings4_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings5.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings5.png new file mode 100644 index 0000000..f2a5a26 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings5.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings5_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings5_preview.png new file mode 100644 index 0000000..efcf406 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings5_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings6.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings6.png new file mode 100644 index 0000000..9d14192 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings6.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings6_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings6_preview.png new file mode 100644 index 0000000..b83bc35 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings6_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings7.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings7.png new file mode 100644 index 0000000..68618a6 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings7.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings7_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings7_preview.png new file mode 100644 index 0000000..2b074df Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings7_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings8.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings8.png new file mode 100644 index 0000000..19947f0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings8.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings8_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings8_preview.png new file mode 100644 index 0000000..af18f4c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings8_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings9.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings9.png new file mode 100644 index 0000000..ac2fa47 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings9.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings9_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings9_preview.png new file mode 100644 index 0000000..0e9a8ef Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_ultraleggings9_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots1.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots1.png new file mode 100644 index 0000000..c85b4a0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots1_preview.png new file mode 100644 index 0000000..5f8e903 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots2.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots2.png new file mode 100644 index 0000000..b492706 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots2_preview.png new file mode 100644 index 0000000..1d21c54 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumboots2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate1.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate1.png new file mode 100644 index 0000000..bd3cd4b Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate1_preview.png new file mode 100644 index 0000000..cd56bd0 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate2.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate2.png new file mode 100644 index 0000000..43520dd Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate2_preview.png new file mode 100644 index 0000000..6f7443c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumchestplate2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet1.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet1.png new file mode 100644 index 0000000..1b298a5 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet1_preview.png new file mode 100644 index 0000000..8dba1be Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet2.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet2.png new file mode 100644 index 0000000..09a721c Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet2_preview.png new file mode 100644 index 0000000..4c3f74d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumhelmet2_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings1.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings1.png new file mode 100644 index 0000000..99ff12f Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings1.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings1_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings1_preview.png new file mode 100644 index 0000000..9c359ce Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings1_preview.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings2.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings2.png new file mode 100644 index 0000000..4f5d09d Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings2.png differ diff --git a/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings2_preview.png b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings2_preview.png new file mode 100644 index 0000000..b8bc4a2 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/3d_armor_uraniumleggings2_preview.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 0000000..4ac4602 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 0000000..6cde640 Binary files /dev/null and b/mods/3d_armor/3d_armor/textures/inventory_plus_armor.png differ diff --git a/mods/3d_armor/3d_armor/tutorial.lua b/mods/3d_armor/3d_armor/tutorial.lua new file mode 100644 index 0000000..3377720 --- /dev/null +++ b/mods/3d_armor/3d_armor/tutorial.lua @@ -0,0 +1,794 @@ +minetest.register_tool("3d_armor:boots", { + description = "Boots\nBoots-lv.0", + inventory_image = "3d_armor_inv_boots.png", + groups = {armor_feet=1, armor_heal=0, armor_use=0}, + wear = 0, +}) +minetest.register_tool("3d_armor:chestplate", { + description = "Chestplate\nChestplate-lv.0", + inventory_image = "3d_armor_inv_chestplate.png", + groups = {armor_torso=2, armor_heal=0, armor_use=0}, + wear = 0, +}) +minetest.register_tool("3d_armor:helmet", { + description = "Helmet\nHelmet-lv.0", + inventory_image = "3d_armor_inv_helmet.png", + groups = {armor_head=1, armor_heal=0, armor_use=0}, + wear = 0, +}) +minetest.register_tool("3d_armor:leggings", { + description = "Leggings\nLeggings-lv.0", + inventory_image = "3d_armor_inv_leggings.png", + groups = {armor_legs=1, armor_heal=0, armor_use=0}, + wear = 0, +}) +for i=1,20 do + minetest.register_tool("3d_armor:boots_mega"..i, { + description = "Megaboots lv."..i.."\nBoots-lv."..i, + inventory_image = "3d_armor_inv_boots_mega"..i..".png", + groups = {armor_feet=i, armor_heal=0, armor_use=0, armor_fire=0.2*i}, + wear = 0, + }) + minetest.register_tool("3d_armor:chestplate_mega"..i, { + description = "Megachestplate lv."..i.."\nChestplate-lv."..i, + inventory_image = "3d_armor_inv_chestplate_mega"..i..".png", + groups = {armor_torso=i, armor_heal=0, armor_use=0, armor_fire=0.2*i}, + wear = 0, + }) + minetest.register_tool("3d_armor:leggings_mega"..i, { + description = "Megaleggings lv."..i.."\nLeggings-lv."..i, + inventory_image = "3d_armor_inv_leggings_mega"..i..".png", + groups = {armor_legs=i, armor_heal=0, armor_use=0,armor_fire=0.2*i}, + wear = 0, + }) + minetest.register_tool("3d_armor:helmet_mega"..i, { + description = "Megahelmet lv."..i.."\nHelmet-lv."..i, + inventory_image = "3d_armor_inv_helmet_mega"..i..".png", + groups = {armor_head=i, armor_heal=0, armor_use=0,armor_fire=0.2*i}, + wear = 0, + }) +end +for i=1,25 do + minetest.register_tool("3d_armor:cloudboots_mega"..i, { + description = "Cloudboots lv."..i.."\nBoots-lv."..(i+20), + inventory_image = "3d_armor_inv_cloudboots_mega"..i..".png", + groups = {armor_feet=20+i, armor_heal=1, armor_use=0, armor_fire=0.2*(i+20)}, + wear = 0, + }) + minetest.register_tool("3d_armor:cloudchestplate_mega"..i, { + description = "Cloudchestplate lv."..i.."\nChestplate-lv."..(i+20), + inventory_image = "3d_armor_inv_cloudchestplate_mega"..i..".png", + groups = {armor_torso=20+i, armor_heal=1, armor_use=0, armor_fire=0.2*(i+20)}, + wear = 0, + }) + minetest.register_tool("3d_armor:cloudleggings_mega"..i, { + description = "Cloudleggings lv."..i.."\nLeggings-lv."..(i+20), + inventory_image = "3d_armor_inv_cloudleggings_mega"..i..".png", + groups = {armor_legs=20+i, armor_heal=1, armor_use=0,armor_fire=0.2*(i+20)}, + wear = 0, + }) + minetest.register_tool("3d_armor:cloudhelmet_mega"..i, { + description = "Cloudhelmet lv."..i.."\nHelmet-lv."..(i+20), + inventory_image = "3d_armor_inv_cloudhelmet_mega"..i..".png", + groups = {armor_head=20+i, armor_heal=1, armor_use=0,armor_fire=0.2*(i+20)}, + wear = 0, + }) +end +for i=1,4 do + minetest.register_tool("3d_armor:superboots"..i, { + description = "Superboots lv."..i.."\nBoots-lv."..(i+45), + inventory_image = "3d_armor_inv_superboots"..i..".png", + groups = {armor_feet=45+i, armor_heal=2, armor_use=0, armor_fire=0.2*(i+45)}, + wear = 0, + }) + minetest.register_tool("3d_armor:superchestplate"..i, { + description = "Superchestplate lv."..i.."\nChestplate-lv."..(i+45), + inventory_image = "3d_armor_inv_superchestplate"..i..".png", + groups = {armor_torso=45+i, armor_heal=2, armor_use=0, armor_fire=0.2*(i+45)}, + wear = 0, + }) + minetest.register_tool("3d_armor:superleggings"..i, { + description = "Superleggings lv."..i.."\nLeggings-lv."..(i+45), + inventory_image = "3d_armor_inv_superleggings"..i..".png", + groups = {armor_legs=45+i, armor_heal=2, armor_use=0,armor_fire=0.2*(i+45)}, + wear = 0, + }) + minetest.register_tool("3d_armor:superhelmet"..i, { + description = "Superhelmet lv."..i.."\nHelmet-lv."..(i+45), + inventory_image = "3d_armor_inv_superhelmet"..i..".png", + groups = {armor_head=45+i, armor_heal=2, armor_use=0,armor_fire=0.2*(i+45)}, + wear = 0, + }) +end +for i=1,2 do + minetest.register_tool("3d_armor:uraniumboots"..i, { + description = "Uraniumboots lv."..i.."\nBoots-lv."..(i+49), + inventory_image = "3d_armor_inv_uraniumboots"..i..".png", + groups = {armor_feet=49+i, armor_heal=3, armor_use=0, armor_fire=0.2*(i+49)}, + wear = 0, + }) + minetest.register_tool("3d_armor:uraniumchestplate"..i, { + description = "Uraniumchestplate lv."..i.."\nChestplate-lv."..(i+49), + inventory_image = "3d_armor_inv_uraniumchestplate"..i..".png", + groups = {armor_torso=49+i, armor_heal=3, armor_use=0, armor_fire=0.2*(i+49)}, + wear = 0, + }) + minetest.register_tool("3d_armor:uraniumleggings"..i, { + description = "Uraniumleggings lv."..i.."\nLeggings-lv."..(i+49), + inventory_image = "3d_armor_inv_uraniumleggings"..i..".png", + groups = {armor_legs=49+i, armor_heal=3, armor_use=0,armor_fire=0.2*(i+49)}, + wear = 0, + }) + minetest.register_tool("3d_armor:uraniumhelmet"..i, { + description = "Uraniumhelmet lv."..i.."\nHelmet-lv."..(i+49), + inventory_image = "3d_armor_inv_uraniumhelmet"..i..".png", + groups = {armor_head=49+i, armor_heal=3, armor_use=0,armor_fire=0.2*(i+49)}, + wear = 0, + }) +end +for i=1,12 do + minetest.register_tool("3d_armor:energyboots"..i, { + description = "Energyboots lv."..i.."\nBoots-lv."..(i+51), + inventory_image = "3d_armor_inv_energyboots"..i..".png", + groups = {armor_feet=51+i, armor_heal=4, armor_use=0, armor_fire=0.2*(i+51)}, + wear = 0, + }) + minetest.register_tool("3d_armor:energychestplate"..i, { + description = "Energychestplate lv."..i.."\nChestplate-lv."..(i+51), + inventory_image = "3d_armor_inv_energychestplate"..i..".png", + groups = {armor_torso=51+i, armor_heal=4, armor_use=0, armor_fire=0.2*(i+51)}, + wear = 0, + }) + minetest.register_tool("3d_armor:energyleggings"..i, { + description = "Energyleggings lv."..i.."\nLeggings-lv."..(i+51), + inventory_image = "3d_armor_inv_energyleggings"..i..".png", + groups = {armor_legs=51+i, armor_heal=4, armor_use=0,armor_fire=0.2*(i+51)}, + wear = 0, + }) + minetest.register_tool("3d_armor:energyhelmet"..i, { + description = "Energyhelmet lv."..i.."\nHelmet-lv."..(i+51), + inventory_image = "3d_armor_inv_energyhelmet"..i..".png", + groups = {armor_head=51+i, armor_heal=4, armor_use=0,armor_fire=0.2*(i+51)}, + wear = 0, + }) +end +for i=1,7 do + minetest.register_tool("3d_armor:superenergyboots"..i, { + description = "Superenergyboots lv."..i.."\nBoots-lv."..(i+63), + inventory_image = "3d_armor_inv_superenergyboots"..i..".png", + groups = {armor_feet=63+i, armor_heal=5, armor_use=0, armor_fire=0.2*(i+63)}, + wear = 0, + }) + minetest.register_tool("3d_armor:superenergychestplate"..i, { + description = "Superenergychestplate lv."..i.."\nChestplate-lv."..(i+63), + inventory_image = "3d_armor_inv_superenergychestplate"..i..".png", + groups = {armor_torso=63+i, armor_heal=5, armor_use=0, armor_fire=0.2*(i+63)}, + wear = 0, + }) + minetest.register_tool("3d_armor:superenergyleggings"..i, { + description = "Superenergyleggings lv."..i.."\nLeggings-lv."..(i+63), + inventory_image = "3d_armor_inv_superenergyleggings"..i..".png", + groups = {armor_legs=63+i, armor_heal=5, armor_use=0,armor_fire=0.2*(i+63)}, + wear = 0, + }) + minetest.register_tool("3d_armor:superenergyhelmet"..i, { + description = "Superenergyhelmet lv."..i.."\nHelmet-lv."..(i+63), + inventory_image = "3d_armor_inv_superenergyhelmet"..i..".png", + groups = {armor_head=63+i, armor_heal=5, armor_use=0,armor_fire=0.2*(i+63)}, + wear = 0, + }) +end +for i=1,5 do + minetest.register_tool("3d_armor:kristallboots"..i, { + description = "Crystalboots lv."..i.."\nBoots-lv."..(i+70), + inventory_image = "3d_armor_inv_kristallboots"..i..".png", + groups = {armor_feet=70+i, armor_heal=6, armor_use=0, armor_fire=0.2*(i+70)}, + wear = 0, + }) + minetest.register_tool("3d_armor:kristallchestplate"..i, { + description = "Crystalchestplate lv."..i.."\nChestplate-lv."..(i+70), + inventory_image = "3d_armor_inv_kristallchestplate"..i..".png", + groups = {armor_torso=70+i, armor_heal=6, armor_use=0, armor_fire=0.2*(i+70)}, + wear = 0, + }) + minetest.register_tool("3d_armor:kristallleggings"..i, { + description = "Crystalleggings lv."..i.."\nLeggings-lv."..(i+70), + inventory_image = "3d_armor_inv_kristallleggings"..i..".png", + groups = {armor_legs=70+i, armor_heal=6, armor_use=0,armor_fire=0.2*(i+70)}, + wear = 0, + }) + minetest.register_tool("3d_armor:kristallhelmet"..i, { + description = "Crystalhelmet lv."..i.."\nHelmet-lv."..(i+70), + inventory_image = "3d_armor_inv_kristallhelmet"..i..".png", + groups = {armor_head=70+i, armor_heal=6, armor_use=0,armor_fire=0.2*(i+70)}, + wear = 0, + }) +end +for i=1,25 do + minetest.register_tool("3d_armor:ultraboots"..i, { + description = "Ultraboots lv."..i.."\nBoots-lv."..(i+75), + inventory_image = "3d_armor_inv_ultraboots"..i..".png", + groups = {armor_feet=75+i, armor_heal=7, armor_use=0, armor_fire=0.2*(i+75)}, + wear = 0, + }) + minetest.register_tool("3d_armor:ultrachestplate"..i, { + description = "Ultrachestplate lv."..i.."\nChestplate-lv."..(i+75), + inventory_image = "3d_armor_inv_ultrachestplate"..i..".png", + groups = {armor_torso=75+i, armor_heal=7, armor_use=0, armor_fire=0.2*(i+75)}, + wear = 0, + }) + minetest.register_tool("3d_armor:ultraleggings"..i, { + description = "Ultraleggings lv."..i.."\nLeggings-lv."..(i+75), + inventory_image = "3d_armor_inv_ultraleggings"..i..".png", + groups = {armor_legs=75+i, armor_heal=7, armor_use=0,armor_fire=0.2*(i+75)}, + wear = 0, + }) + minetest.register_tool("3d_armor:ultrahelmet"..i, { + description = "Ultrahelmet lv."..i.."\nHelmet-lv."..(i+75), + inventory_image = "3d_armor_inv_ultrahelmet"..i..".png", + groups = {armor_head=75+i, armor_heal=7, armor_use=0,armor_fire=0.2*(i+75)}, + wear = 0, + }) +end +minetest.register_tool("3d_armor:superultraboots", { + description = "Superultraboots\nBoots-lv.101", + inventory_image = "3d_armor_inv_superultraboots.png", + groups = {armor_feet=101, armor_heal=8, armor_use=0,armor_fire=20.2}, + wear = 0, +}) +minetest.register_tool("3d_armor:superultrachestplate", { + description = "Superultrachestplate\nChestplate-lv.101", + inventory_image = "3d_armor_inv_superultrachestplate.png", + groups = {armor_torso=101, armor_heal=8, armor_use=0, armor_fire=20.2}, + wear = 0, +}) +minetest.register_tool("3d_armor:superultrahelmet", { + description = "Superultrahelmet\nHelmet-lv.101", + inventory_image = "3d_armor_inv_superultrahelmet.png", + groups = {armor_head=101, armor_heal=8, armor_use=0,armor_fire=20.2}, + wear = 0, +}) +minetest.register_tool("3d_armor:superultraleggings", { + description = "Superultraleggings\nLeggings-lv.101", + inventory_image = "3d_armor_inv_superultraleggings.png", + groups = {armor_legs=101, armor_heal=8, armor_use=0,armor_fire=20.2}, + wear = 0, +}) +for i=1,4 do + minetest.register_tool("3d_armor:arenaboots"..i, { + description = "Arenaboots lv."..i.."\nBoots-lv."..(i+101), + inventory_image = "3d_armor_inv_arenaboots"..i..".png", + groups = {armor_feet=101+i, armor_heal=9, armor_use=0, armor_fire=0.2*(i+101)}, + wear = 0, + }) + minetest.register_tool("3d_armor:arenachestplate"..i, { + description = "Arenachestplate lv."..i.."\nChestplate-lv."..(i+101), + inventory_image = "3d_armor_inv_arenachestplate"..i..".png", + groups = {armor_torso=101+i, armor_heal=9, armor_use=0, armor_fire=0.2*(i+101)}, + wear = 0, + }) + minetest.register_tool("3d_armor:arenaleggings"..i, { + description = "Arenaleggings lv."..i.."\nLeggings-lv."..(i+101), + inventory_image = "3d_armor_inv_arenaleggings"..i..".png", + groups = {armor_legs=101+i, armor_heal=9, armor_use=0,armor_fire=0.2*(i+101)}, + wear = 0, + }) + minetest.register_tool("3d_armor:arenahelmet"..i, { + description = "Arenahelmet lv."..i.."\nHelmet-lv."..(i+101), + inventory_image = "3d_armor_inv_arenahelmet"..i..".png", + groups = {armor_head=101+i, armor_heal=9, armor_use=0,armor_fire=0.2*(i+101)}, + wear = 0, + }) +end +for i=1,10 do + minetest.register_tool("3d_armor:titanboots"..i, { + description = "Titanboots lv."..i.."\nBoots-lv."..(i+105), + inventory_image = "3d_armor_inv_titanboots"..i..".png", + groups = {armor_feet=105+i, armor_heal=10, armor_use=0, armor_fire=0.2*(i+105)}, + wear = 0, + }) + minetest.register_tool("3d_armor:titanchestplate"..i, { + description = "Titanchestplate lv."..i.."\nChestplate-lv."..(i+105), + inventory_image = "3d_armor_inv_titanchestplate"..i..".png", + groups = {armor_torso=105+i, armor_heal=10, armor_use=0, armor_fire=0.2*(i+105)}, + wear = 0, + }) + minetest.register_tool("3d_armor:titanleggings"..i, { + description = "Titanleggings lv."..i.."\nLeggings-lv."..(i+105), + inventory_image = "3d_armor_inv_titanleggings"..i..".png", + groups = {armor_legs=105+i, armor_heal=10, armor_use=0,armor_fire=0.2*(i+105)}, + wear = 0, + }) + minetest.register_tool("3d_armor:titanhelmet"..i, { + description = "Titanhelmet lv."..i.."\nHelmet-lv."..(i+105), + inventory_image = "3d_armor_inv_titanhelmet"..i..".png", + groups = {armor_head=105+i, armor_heal=10, armor_use=0,armor_fire=0.2*(i+105)}, + wear = 0, + }) +end +for i=1,6 do + minetest.register_tool("3d_armor:legendenboots"..i, { + description = "Legendboots lv."..i.."\nBoots-lv."..(i+115), + inventory_image = "3d_armor_inv_legendenboots"..i..".png", + groups = {armor_feet=115+i, armor_heal=11, armor_use=0, armor_fire=0.2*(i+115)}, + wear = 0, + }) + minetest.register_tool("3d_armor:legendenchestplate"..i, { + description = "Legendchestplate lv."..i.."\nChestplate-lv."..(i+115), + inventory_image = "3d_armor_inv_legendenchestplate"..i..".png", + groups = {armor_torso=115+i, armor_heal=11, armor_use=0, armor_fire=0.2*(i+115)}, + wear = 0, + }) + minetest.register_tool("3d_armor:legendenleggings"..i, { + description = "Legendleggings lv."..i.."\nLeggings-lv."..(i+115), + inventory_image = "3d_armor_inv_legendenleggings"..i..".png", + groups = {armor_legs=115+i, armor_heal=11, armor_use=0,armor_fire=0.2*(i+115)}, + wear = 0, + }) + minetest.register_tool("3d_armor:legendenhelmet"..i, { + description = "Legendhelmet lv."..i.."\nHelmet-lv."..(i+115), + inventory_image = "3d_armor_inv_legendenhelmet"..i..".png", + groups = {armor_head=115+i, armor_heal=11, armor_use=0,armor_fire=0.2*(i+115)}, + wear = 0, + }) +end + + + + +minetest.register_tool("3d_armor:superlegendenboots", { + description = "Superlegendboots Mode 1 (no speed and no jump)\nBoots-lv.122", + inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode1.png", + groups = {armor_feet=122, armor_heal=12, armor_use=0,armor_fire=24.4}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenboots.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenboots2") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenboots2", { + description = "Superlegendboots Mode 2 (speed and no jump)\nBoots-lv.122", + inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode2.png", + groups = {armor_feet=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenboots.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenboots3") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenboots3", { + description = "Superlegendboots Mode 3 (no speed and jump)\nBoots-lv.122", + inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode3.png", + groups = {armor_feet=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_jump=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenboots.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenboots4") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenboots4", { + description = "Superlegendboots Mode 4 (speed and jump)\nBoots-lv.122", + inventory_image = "3d_armor_inv_superlegendenboots.png^technic_tool_mode4.png", + groups = {armor_feet=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenboots.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenboots") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:superlegendenchestplate", { + description = "Superlegendchestplate Mode 1 (no speed and no jump)\nChestplate-lv.122", + inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode1.png", + groups = {armor_torso=122, armor_heal=12, armor_use=0, armor_fire=24.4}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenchestplate.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenchestplate2") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenchestplate2", { + description = "Superlegendchestplate Mode 2 (speed and no jump)\nChestplate-lv.122", + inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode2.png", + groups = {armor_torso=122, armor_heal=12, armor_use=0, armor_fire=24.4, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenchestplate.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenchestplate3") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenchestplate3", { + description = "Superlegendchestplate Mode 3 (no speed and jump)\nChestplate-lv.122", + inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode3.png", + groups = {armor_torso=122, armor_heal=12, armor_use=0, armor_fire=24.4, physics_jump=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenchestplate.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenchestplate4") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenchestplate4", { + description = "Superlegendchestplate Mode 4 (speed and jump)\nChestplate-lv.122", + inventory_image = "3d_armor_inv_superlegendenchestplate.png^technic_tool_mode4.png", + groups = {armor_torso=122, armor_heal=12, armor_use=0, armor_fire=24.4, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenchestplate.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenchestplate") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:superlegendenhelmet", { + description = "Superlegendhelmet Mode 1 (no speed and no jump)\nHelmet-lv.122", + inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode1.png", + groups = {armor_head=122, armor_heal=12, armor_use=0,armor_fire=24.4}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenhelmet.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenhelmet2") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenhelmet2", { + description = "Superlegendhelmet Mode 2 (speed and no jump)\nHelmet-lv.122", + inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode2.png", + groups = {armor_head=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenhelmet.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenhelmet3") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenhelmet3", { + description = "Superlegendhelmet Mode 3 (no speed and jump)\nHelmet-lv.122", + inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode3.png", + groups = {armor_head=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_jump=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenhelmet.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenhelmet4") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenhelmet4", { + description = "Superlegendhelmet Mode 4 (speed and jump)\nHelmet-lv.122", + inventory_image = "3d_armor_inv_superlegendenhelmet.png^technic_tool_mode4.png", + groups = {armor_head=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenhelmet.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenhelmet") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:superlegendenleggings", { + description = "Superlegendleggings Mode 1 (no speed and no jump)\nLeggings-lv.122", + inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode1.png", + groups = {armor_legs=122, armor_heal=12, armor_use=0,armor_fire=24.4}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenleggings.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenleggings2") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenleggings2", { + description = "Superlegendleggings Mode 2 (speed and no jump)\nLeggings-lv.122", + inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode2.png", + groups = {armor_legs=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenleggings.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenleggings3") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenleggings3", { + description = "Superlegendleggings Mode 3 (no speed and jump)\nLeggings-lv.122", + inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode3.png", + groups = {armor_legs=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_jump=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenleggings.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenleggings4") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:superlegendenleggings4", { + description = "Superlegendleggings Mode 4 (speed and jump)\nLeggings-lv.122", + inventory_image = "3d_armor_inv_superlegendenleggings.png^technic_tool_mode4.png", + groups = {armor_legs=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_superlegendenleggings.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:superlegendenleggings") + end + return itemstack + end, +}) + + +minetest.register_tool("3d_armor:regnumboots", { + description = "Regnumboots Mode 1 (no speed and no jump)\nBoots-lv.MAX", + inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode1.png", + groups = {armor_feet=150, armor_heal=15, armor_use=0,armor_fire=30}, + wear = 0, + wield_image = "3d_armor_inv_regnumboots.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumboots2") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumboots2", { + description = "Regnumboots Mode 2 (speed and no jump)\nBoots-lv.MAX", + inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode2.png", + groups = {armor_feet=150, armor_heal=15, armor_use=0,armor_fire=30, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumboots.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumboots3") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumboots3", { + description = "Regnumboots Mode 3 (no speed and jump)\nBoots-lv.MAX", + inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode3.png", + groups = {armor_feet=150, armor_heal=15, armor_use=0,armor_fire=30, physics_jump=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumboots.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumboots4") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumboots4", { + description = "Regnumboots Mode 4 (speed and jump)\nBoots-lv.MAX", + inventory_image = "3d_armor_inv_regnumboots.png^technic_tool_mode4.png", + groups = {armor_feet=150, armor_heal=15, armor_use=0,armor_fire=30, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumboots.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumboots") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:regnumchestplate", { + description = "Regnumchestplate Mode 1 (no speed and no jump)\nChestplate-lv.MAX", + inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode1.png", + groups = {armor_torso=150, armor_heal=15, armor_use=0, armor_fire=30}, + wear = 0, + wield_image = "3d_armor_inv_regnumchestplate.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumchestplate2") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumchestplate2", { + description = "Regnumchestplate Mode 2 (speed and no jump)\nChestplate-lv.MAX", + inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode2.png", + groups = {armor_torso=150, armor_heal=15, armor_use=0, armor_fire=30, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumchestplate.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumchestplate3") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumchestplate3", { + description = "Regnumchestplate Mode 3 (no speed and jump)\nChestplate-lv.MAX", + inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode3.png", + groups = {armor_torso=150, armor_heal=15, armor_use=0, armor_fire=30, physics_jump=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumchestplate.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumchestplate4") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumchestplate4", { + description = "Regnumchestplate Mode 4 (speed and jump)\nChestplate-lv.MAX", + inventory_image = "3d_armor_inv_regnumchestplate.png^technic_tool_mode4.png", + groups = {armor_torso=150, armor_heal=15, armor_use=0, armor_fire=30, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumchestplate.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumchestplate") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:regnumhelmet", { + description = "Regnumhelmet Mode 1 (no speed and no jump)\nHelmet-lv.MAX", + inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode1.png", + groups = {armor_head=150, armor_heal=15, armor_use=0,armor_fire=30}, + wear = 0, + wield_image = "3d_armor_inv_regnumhelmet.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumhelmet2") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumhelmet2", { + description = "Regnumhelmet Mode 2 (speed and no jump)\nHelmet-lv.MAX", + inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode2.png", + groups = {armor_head=150, armor_heal=15, armor_use=0,armor_fire=30, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumhelmet.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumhelmet3") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumhelmet3", { + description = "Regnumhelmet Mode 3 (no speed and jump)\nHelmet-lv.MAX", + inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode3.png", + groups = {armor_head=150, armor_heal=15, armor_use=0,armor_fire=30, physics_jump=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumhelmet.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumhelmet4") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumhelmet4", { + description = "Regnumhelmet Mode 4 (speed and jump)\nHelmet-lv.MAX", + inventory_image = "3d_armor_inv_regnumhelmet.png^technic_tool_mode4.png", + groups = {armor_head=150, armor_heal=15, armor_use=0,armor_fire=30, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumhelmet.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumhelmet") + end + return itemstack + end, +}) + +minetest.register_tool("3d_armor:regnumleggings", { + description = "Regnumleggings Mode 1 (no speed and no jump)\nLeggings-lv.MAX", + inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode1.png", + groups = {armor_legs=150, armor_heal=15, armor_use=0,armor_fire=30}, + wear = 0, + wield_image = "3d_armor_inv_regnumleggings.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumleggings2") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumleggings2", { + description = "Regnumleggings Mode 2 (speed and no jump)\nLeggings-lv.MAX", + inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode2.png", + groups = {armor_legs=150, armor_heal=15, armor_use=0,armor_fire=30, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumleggings.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumleggings3") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumleggings3", { + description = "Regnumleggings Mode 3 (no speed and jump)\nLeggings-lv.MAX", + inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode3.png", + groups = {armor_legs=150, armor_heal=15, armor_use=0,armor_fire=30, physics_jump=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumleggings.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumleggings4") + end + return itemstack + end, +}) +minetest.register_tool("3d_armor:regnumleggings4", { + description = "Regnumleggings Mode 4 (speed and jump)\nLeggings-lv.MAX", + inventory_image = "3d_armor_inv_regnumleggings.png^technic_tool_mode4.png", + groups = {armor_legs=150, armor_heal=15, armor_use=0,armor_fire=30, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "3d_armor_inv_regnumleggings.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("3d_armor:regnumleggings") + end + return itemstack + end, +}) \ No newline at end of file diff --git a/mods/3d_armor/3d_armor/tutorial_craft.lua b/mods/3d_armor/3d_armor/tutorial_craft.lua new file mode 100644 index 0000000..63e90af --- /dev/null +++ b/mods/3d_armor/3d_armor/tutorial_craft.lua @@ -0,0 +1,3627 @@ +minetest.register_craft({ + output = '3d_armor:boots', + recipe = { + {'', '', ''}, + {'group:wood', '', 'group:wood'}, + {'group:wood', '', 'group:wood'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega1', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4', '3d_armor:boots', 'tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega2', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4','3d_armor:boots_mega1','tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega3', + recipe = { + {'tutorial:obsidian5', 'tutorial:obsidian5', 'tutorial:obsidian5'}, + {'tutorial:obsidian5','3d_armor:boots_mega2','tutorial:obsidian5'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega4', + recipe = { + {'tutorial:obsidian6', 'tutorial:obsidian6', 'tutorial:obsidian6'}, + {'tutorial:obsidian6','3d_armor:boots_mega3','tutorial:obsidian6'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega5', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','3d_armor:boots_mega4','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega6', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','3d_armor:boots_mega5','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega7', + recipe = { + {'tutorial:dunklematerie5','tutorial:dunklematerie5', 'tutorial:dunklematerie5'}, + {'tutorial:dunklematerie5','3d_armor:boots_mega6','tutorial:dunklematerie5'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega8', + recipe = { + {'tutorial:dunklematerie6','tutorial:dunklematerie6', 'tutorial:dunklematerie6'}, + {'tutorial:dunklematerie6','3d_armor:boots_mega7','tutorial:dunklematerie6'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega9', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:boots_mega8','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega10', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:boots_mega9','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega11', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:boots_mega10','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega12', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:boots_mega11','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega13', + recipe = { + {'default:goldblock','default:goldblock', 'default:goldblock'}, + {'default:goldblock','3d_armor:boots_mega12','default:goldblock'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega14', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','3d_armor:boots_mega13','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega15', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','3d_armor:boots_mega14','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega16', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:boots_mega15','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega17', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:boots_mega16','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega18', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:boots_mega17','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega19', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:boots_mega18','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:boots_mega20', + recipe = { + {'tutorial:megablock2','tutorial:megablock2', 'tutorial:megablock2'}, + {'tutorial:megablock2','3d_armor:boots_mega19','tutorial:megablock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', '', 'group:wood'}, + {'group:wood', '', 'group:wood'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega1', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4', '3d_armor:leggings', 'tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega2', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4','3d_armor:leggings_mega1','tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega3', + recipe = { + {'tutorial:obsidian5', 'tutorial:obsidian5', 'tutorial:obsidian5'}, + {'tutorial:obsidian5','3d_armor:leggings_mega2','tutorial:obsidian5'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega4', + recipe = { + {'tutorial:obsidian6', 'tutorial:obsidian6', 'tutorial:obsidian6'}, + {'tutorial:obsidian6','3d_armor:leggings_mega3','tutorial:obsidian6'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega5', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','3d_armor:leggings_mega4','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega6', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','3d_armor:leggings_mega5','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega7', + recipe = { + {'tutorial:dunklematerie5','tutorial:dunklematerie5', 'tutorial:dunklematerie5'}, + {'tutorial:dunklematerie5','3d_armor:leggings_mega6','tutorial:dunklematerie5'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega8', + recipe = { + {'tutorial:dunklematerie6','tutorial:dunklematerie6', 'tutorial:dunklematerie6'}, + {'tutorial:dunklematerie6','3d_armor:leggings_mega7','tutorial:dunklematerie6'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega9', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:leggings_mega8','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega10', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:leggings_mega9','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega11', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:leggings_mega10','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega12', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:leggings_mega11','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega13', + recipe = { + {'default:goldblock','default:goldblock', 'default:goldblock'}, + {'default:goldblock','3d_armor:leggings_mega12','default:goldblock'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega14', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','3d_armor:leggings_mega13','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega15', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','3d_armor:leggings_mega14','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega16', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:leggings_mega15','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega17', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:leggings_mega16','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega18', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:leggings_mega17','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega19', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:leggings_mega18','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:leggings_mega20', + recipe = { + {'tutorial:megablock2','tutorial:megablock2', 'tutorial:megablock2'}, + {'tutorial:megablock2','3d_armor:leggings_mega19','tutorial:megablock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate', + recipe = { + {'group:wood', '', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega1', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4', '3d_armor:chestplate', 'tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega2', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4','3d_armor:chestplate_mega1','tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega3', + recipe = { + {'tutorial:obsidian5', 'tutorial:obsidian5', 'tutorial:obsidian5'}, + {'tutorial:obsidian5','3d_armor:chestplate_mega2','tutorial:obsidian5'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega4', + recipe = { + {'tutorial:obsidian6', 'tutorial:obsidian6', 'tutorial:obsidian6'}, + {'tutorial:obsidian6','3d_armor:chestplate_mega3','tutorial:obsidian6'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega5', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','3d_armor:chestplate_mega4','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega6', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','3d_armor:chestplate_mega5','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega7', + recipe = { + {'tutorial:dunklematerie5','tutorial:dunklematerie5', 'tutorial:dunklematerie5'}, + {'tutorial:dunklematerie5','3d_armor:chestplate_mega6','tutorial:dunklematerie5'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega8', + recipe = { + {'tutorial:dunklematerie6','tutorial:dunklematerie6', 'tutorial:dunklematerie6'}, + {'tutorial:dunklematerie6','3d_armor:chestplate_mega7','tutorial:dunklematerie6'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega9', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:chestplate_mega8','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega10', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:chestplate_mega9','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega11', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:chestplate_mega10','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega12', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:chestplate_mega11','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega13', + recipe = { + {'default:goldblock','default:goldblock', 'default:goldblock'}, + {'default:goldblock','3d_armor:chestplate_mega12','default:goldblock'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega14', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','3d_armor:chestplate_mega13','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega15', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','3d_armor:chestplate_mega14','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega16', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:chestplate_mega15','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega17', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:chestplate_mega16','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega18', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:chestplate_mega17','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega19', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:chestplate_mega18','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:chestplate_mega20', + recipe = { + {'tutorial:megablock2','tutorial:megablock2', 'tutorial:megablock2'}, + {'tutorial:megablock2','3d_armor:chestplate_mega19','tutorial:megablock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', '', 'group:wood'}, + {'', '', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega1', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4', '3d_armor:helmet', 'tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega2', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4','3d_armor:helmet_mega1','tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega3', + recipe = { + {'tutorial:obsidian5', 'tutorial:obsidian5', 'tutorial:obsidian5'}, + {'tutorial:obsidian5','3d_armor:helmet_mega2','tutorial:obsidian5'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega4', + recipe = { + {'tutorial:obsidian6', 'tutorial:obsidian6', 'tutorial:obsidian6'}, + {'tutorial:obsidian6','3d_armor:helmet_mega3','tutorial:obsidian6'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega5', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','3d_armor:helmet_mega4','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega6', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','3d_armor:helmet_mega5','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega7', + recipe = { + {'tutorial:dunklematerie5','tutorial:dunklematerie5', 'tutorial:dunklematerie5'}, + {'tutorial:dunklematerie5','3d_armor:helmet_mega6','tutorial:dunklematerie5'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega8', + recipe = { + {'tutorial:dunklematerie6','tutorial:dunklematerie6', 'tutorial:dunklematerie6'}, + {'tutorial:dunklematerie6','3d_armor:helmet_mega7','tutorial:dunklematerie6'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega9', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:helmet_mega8','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega10', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:helmet_mega9','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega11', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:helmet_mega10','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega12', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','3d_armor:helmet_mega11','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega13', + recipe = { + {'default:goldblock','default:goldblock', 'default:goldblock'}, + {'default:goldblock','3d_armor:helmet_mega12','default:goldblock'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega14', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','3d_armor:helmet_mega13','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega15', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','3d_armor:helmet_mega14','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega16', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:helmet_mega15','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega17', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:helmet_mega16','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega18', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:helmet_mega17','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega19', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','3d_armor:helmet_mega18','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:helmet_mega20', + recipe = { + {'tutorial:megablock2','tutorial:megablock2', 'tutorial:megablock2'}, + {'tutorial:megablock2','3d_armor:helmet_mega19','tutorial:megablock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega25', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudboots_mega24', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega24', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudboots_mega23', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega23', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudboots_mega22', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega22', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudboots_mega21', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega21', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudboots_mega20', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega20', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudboots_mega19', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega19', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudboots_mega18', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega18', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudboots_mega17', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega17', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudboots_mega16', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega16', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudboots_mega15', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega15', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudboots_mega14', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega14', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudboots_mega13', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega13', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudboots_mega12', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega12', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudboots_mega11', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega11', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudboots_mega10', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega10', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudboots_mega9', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega9', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudboots_mega8', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega8', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudboots_mega7', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega7', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudboots_mega6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega6', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudboots_mega5', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega5', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudboots_mega4', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega4', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudboots_mega3', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega3', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudboots_mega2', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega2', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudboots_mega1', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudboots_mega1', + recipe = { + {'tutorial:cloudentverner21', '3d_armor:boots_mega20'}, + } +}) + +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega25', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudchestplate_mega24', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega24', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudchestplate_mega23', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega23', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudchestplate_mega22', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega22', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudchestplate_mega21', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega21', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudchestplate_mega20', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega20', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudchestplate_mega19', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega19', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudchestplate_mega18', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega18', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudchestplate_mega17', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega17', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudchestplate_mega16', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega16', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudchestplate_mega15', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega15', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudchestplate_mega14', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega14', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudchestplate_mega13', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega13', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudchestplate_mega12', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega12', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudchestplate_mega11', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega11', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudchestplate_mega10', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega10', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudchestplate_mega9', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega9', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudchestplate_mega8', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega8', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudchestplate_mega7', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega7', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudchestplate_mega6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega6', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudchestplate_mega5', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega5', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudchestplate_mega4', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega4', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudchestplate_mega3', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega3', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudchestplate_mega2', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega2', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudchestplate_mega1', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudchestplate_mega1', + recipe = { + {'tutorial:cloudentverner21', '3d_armor:chestplate_mega20'}, + } +}) + +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega25', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudleggings_mega24', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega24', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudleggings_mega23', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega23', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudleggings_mega22', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega22', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudleggings_mega21', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega21', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudleggings_mega20', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega20', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudleggings_mega19', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega19', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudleggings_mega18', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega18', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudleggings_mega17', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega17', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudleggings_mega16', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega16', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudleggings_mega15', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega15', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudleggings_mega14', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega14', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudleggings_mega13', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega13', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudleggings_mega12', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega12', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudleggings_mega11', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega11', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudleggings_mega10', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega10', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudleggings_mega9', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega9', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudleggings_mega8', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega8', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudleggings_mega7', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega7', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudleggings_mega6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega6', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudleggings_mega5', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega5', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudleggings_mega4', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega4', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudleggings_mega3', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega3', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudleggings_mega2', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega2', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudleggings_mega1', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudleggings_mega1', + recipe = { + {'tutorial:cloudentverner21', '3d_armor:leggings_mega20'}, + } +}) + +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega25', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudhelmet_mega24', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega24', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudhelmet_mega23', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega23', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudhelmet_mega22', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega22', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudhelmet_mega21', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega21', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', '3d_armor:cloudhelmet_mega20', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega20', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudhelmet_mega19', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega19', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudhelmet_mega18', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega18', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudhelmet_mega17', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega17', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudhelmet_mega16', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega16', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', '3d_armor:cloudhelmet_mega15', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega15', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudhelmet_mega14', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega14', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudhelmet_mega13', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega13', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudhelmet_mega12', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega12', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudhelmet_mega11', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega11', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', '3d_armor:cloudhelmet_mega10', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega10', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudhelmet_mega9', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega9', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudhelmet_mega8', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega8', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudhelmet_mega7', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega7', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudhelmet_mega6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega6', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', '3d_armor:cloudhelmet_mega5', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega5', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudhelmet_mega4', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega4', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudhelmet_mega3', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega3', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudhelmet_mega2', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega2', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', '3d_armor:cloudhelmet_mega1', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:cloudhelmet_mega1', + recipe = { + {'tutorial:cloudentverner21', '3d_armor:helmet_mega20'}, + } +}) + +minetest.register_craft({ + output = '3d_armor:superboots4', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', '3d_armor:superboots3', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superboots3', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', '3d_armor:superboots2', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superboots2', + recipe = { + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', '3d_armor:superboots1', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superboots1', + recipe = { + {'tutorial:zauberstab9', '3d_armor:cloudboots_mega25', 'tutorial:swored_zauber9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superchestplate4', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', '3d_armor:superchestplate3', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superchestplate3', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', '3d_armor:superchestplate2', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superchestplate2', + recipe = { + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', '3d_armor:superchestplate1', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superchestplate1', + recipe = { + {'tutorial:zauberstab9', '3d_armor:cloudchestplate_mega25', 'tutorial:swored_zauber9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superhelmet4', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', '3d_armor:superhelmet3', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superhelmet3', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', '3d_armor:superhelmet2', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superhelmet2', + recipe = { + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', '3d_armor:superhelmet1', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superhelmet1', + recipe = { + {'tutorial:zauberstab9', '3d_armor:cloudhelmet_mega25', 'tutorial:swored_zauber9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superleggings4', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', '3d_armor:superleggings3', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superleggings3', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', '3d_armor:superleggings2', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superleggings2', + recipe = { + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', '3d_armor:superleggings1', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superleggings1', + recipe = { + {'tutorial:zauberstab9', '3d_armor:cloudleggings_mega25', 'tutorial:swored_zauber9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:uraniumboots1', + recipe = { + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + {'tutorial:uranium8', '3d_armor:superboots4', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:uraniumboots2', + recipe = { + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + {'tutorial:uranium9', '3d_armor:uraniumboots1', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:uraniumchestplate1', + recipe = { + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + {'tutorial:uranium8', '3d_armor:superchestplate4', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:uraniumchestplate2', + recipe = { + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + {'tutorial:uranium9', '3d_armor:uraniumchestplate1', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:uraniumhelmet1', + recipe = { + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + {'tutorial:uranium8', '3d_armor:superhelmet4', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:uraniumhelmet2', + recipe = { + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + {'tutorial:uranium9', '3d_armor:uraniumhelmet1', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + } +}) +minetest.register_craft({ + output = '3d_armor:uraniumleggings1', + recipe = { + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + {'tutorial:uranium8', '3d_armor:superleggings4', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + } +}) +minetest.register_craft({ + output = '3d_armor:uraniumleggings2', + recipe = { + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + {'tutorial:uranium9', '3d_armor:uraniumleggings1', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:uraniumboots2', + cooktime = 100, + output = '3d_armor:energyboots1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots1', + cooktime = 100, + output = '3d_armor:energyboots2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots2', + cooktime = 200, + output = '3d_armor:energyboots3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots3', + cooktime = 300, + output = '3d_armor:energyboots4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots4', + cooktime = 400, + output = '3d_armor:energyboots5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots5', + cooktime = 500, + output = '3d_armor:energyboots6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots6', + cooktime = 600, + output = '3d_armor:energyboots7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots7', + cooktime = 700, + output = '3d_armor:energyboots8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots8', + cooktime = 800, + output = '3d_armor:energyboots9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots9', + cooktime = 900, + output = '3d_armor:energyboots10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots10', + cooktime = 1000, + output = '3d_armor:energyboots11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots11', + cooktime = 1500, + output = '3d_armor:energyboots12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:uraniumchestplate2', + cooktime = 100, + output = '3d_armor:energychestplate1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate1', + cooktime = 100, + output = '3d_armor:energychestplate2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate2', + cooktime = 200, + output = '3d_armor:energychestplate3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate3', + cooktime = 300, + output = '3d_armor:energychestplate4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate4', + cooktime = 400, + output = '3d_armor:energychestplate5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate5', + cooktime = 500, + output = '3d_armor:energychestplate6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate6', + cooktime = 600, + output = '3d_armor:energychestplate7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate7', + cooktime = 700, + output = '3d_armor:energychestplate8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate8', + cooktime = 800, + output = '3d_armor:energychestplate9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate9', + cooktime = 900, + output = '3d_armor:energychestplate10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate10', + cooktime = 1000, + output = '3d_armor:energychestplate11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate11', + cooktime = 1500, + output = '3d_armor:energychestplate12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:uraniumhelmet2', + cooktime = 100, + output = '3d_armor:energyhelmet1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet1', + cooktime = 100, + output = '3d_armor:energyhelmet2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet2', + cooktime = 200, + output = '3d_armor:energyhelmet3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet3', + cooktime = 300, + output = '3d_armor:energyhelmet4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet4', + cooktime = 400, + output = '3d_armor:energyhelmet5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet5', + cooktime = 500, + output = '3d_armor:energyhelmet6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet6', + cooktime = 600, + output = '3d_armor:energyhelmet7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet7', + cooktime = 700, + output = '3d_armor:energyhelmet8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet8', + cooktime = 800, + output = '3d_armor:energyhelmet9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet9', + cooktime = 900, + output = '3d_armor:energyhelmet10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet10', + cooktime = 1000, + output = '3d_armor:energyhelmet11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet11', + cooktime = 1500, + output = '3d_armor:energyhelmet12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:uraniumleggings2', + cooktime = 100, + output = '3d_armor:energyleggings1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings1', + cooktime = 100, + output = '3d_armor:energyleggings2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings2', + cooktime = 200, + output = '3d_armor:energyleggings3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings3', + cooktime = 300, + output = '3d_armor:energyleggings4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings4', + cooktime = 400, + output = '3d_armor:energyleggings5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings5', + cooktime = 500, + output = '3d_armor:energyleggings6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings6', + cooktime = 600, + output = '3d_armor:energyleggings7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings7', + cooktime = 700, + output = '3d_armor:energyleggings8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings8', + cooktime = 800, + output = '3d_armor:energyleggings9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings9', + cooktime = 900, + output = '3d_armor:energyleggings10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings10', + cooktime = 1000, + output = '3d_armor:energyleggings11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings11', + cooktime = 1500, + output = '3d_armor:energyleggings12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyboots12', + cooktime = 1000, + output = '3d_armor:superenergyboots1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyboots1', + cooktime = 1200, + output = '3d_armor:superenergyboots2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyboots2', + cooktime = 1400, + output = '3d_armor:superenergyboots3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyboots3', + cooktime = 1600, + output = '3d_armor:superenergyboots4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyboots4', + cooktime = 1800, + output = '3d_armor:superenergyboots5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyboots5', + cooktime = 2000, + output = '3d_armor:superenergyboots6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyboots6', + cooktime = 2500, + output = '3d_armor:superenergyboots7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energychestplate12', + cooktime = 1000, + output = '3d_armor:superenergychestplate1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergychestplate1', + cooktime = 1200, + output = '3d_armor:superenergychestplate2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergychestplate2', + cooktime = 1400, + output = '3d_armor:superenergychestplate3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergychestplate3', + cooktime = 1600, + output = '3d_armor:superenergychestplate4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergychestplate4', + cooktime = 1800, + output = '3d_armor:superenergychestplate5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergychestplate5', + cooktime = 2000, + output = '3d_armor:superenergychestplate6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergychestplate6', + cooktime = 2500, + output = '3d_armor:superenergychestplate7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyhelmet12', + cooktime = 1000, + output = '3d_armor:superenergyhelmet1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyhelmet1', + cooktime = 1200, + output = '3d_armor:superenergyhelmet2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyhelmet2', + cooktime = 1400, + output = '3d_armor:superenergyhelmet3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyhelmet3', + cooktime = 1600, + output = '3d_armor:superenergyhelmet4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyhelmet4', + cooktime = 1800, + output = '3d_armor:superenergyhelmet5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyhelmet5', + cooktime = 2000, + output = '3d_armor:superenergyhelmet6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyhelmet6', + cooktime = 2500, + output = '3d_armor:superenergyhelmet7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:energyleggings12', + cooktime = 1000, + output = '3d_armor:superenergyleggings1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyleggings1', + cooktime = 1200, + output = '3d_armor:superenergyleggings2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyleggings2', + cooktime = 1400, + output = '3d_armor:superenergyleggings3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyleggings3', + cooktime = 1600, + output = '3d_armor:superenergyleggings4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyleggings4', + cooktime = 1800, + output = '3d_armor:superenergyleggings5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyleggings5', + cooktime = 2000, + output = '3d_armor:superenergyleggings6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:superenergyleggings6', + cooktime = 2500, + output = '3d_armor:superenergyleggings7', +}) +minetest.register_craft({ + output = '3d_armor:kristallboots5', + recipe = { + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + {'tutorial:admin', '3d_armor:kristallboots4', 'tutorial:admin'}, + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallboots4', + recipe = { + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + {'gems:emerald_block', '3d_armor:kristallboots3', 'gems:emerald_block'}, + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallboots3', + recipe = { + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + {'gems:pearl_block', '3d_armor:kristallboots2', 'gems:shadow_block'}, + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallboots2', + recipe = { + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + {'gems:amethyst_block', '3d_armor:kristallboots1', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallboots1', + recipe = { + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + {'gems:ruby_block', '3d_armor:superenergyboots7', 'gems:sapphire_block'}, + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallchestplate5', + recipe = { + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + {'tutorial:admin', '3d_armor:kristallchestplate4', 'tutorial:admin'}, + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallchestplate4', + recipe = { + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + {'gems:emerald_block', '3d_armor:kristallchestplate3', 'gems:emerald_block'}, + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallchestplate3', + recipe = { + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + {'gems:pearl_block', '3d_armor:kristallchestplate2', 'gems:shadow_block'}, + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallchestplate2', + recipe = { + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + {'gems:amethyst_block', '3d_armor:kristallchestplate1', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallchestplate1', + recipe = { + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + {'gems:ruby_block', '3d_armor:superenergychestplate7', 'gems:sapphire_block'}, + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallhelmet5', + recipe = { + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + {'tutorial:admin', '3d_armor:kristallhelmet4', 'tutorial:admin'}, + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallhelmet4', + recipe = { + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + {'gems:emerald_block', '3d_armor:kristallhelmet3', 'gems:emerald_block'}, + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallhelmet3', + recipe = { + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + {'gems:pearl_block', '3d_armor:kristallhelmet2', 'gems:shadow_block'}, + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallhelmet2', + recipe = { + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + {'gems:amethyst_block', '3d_armor:kristallhelmet1', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallhelmet1', + recipe = { + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + {'gems:ruby_block', '3d_armor:superenergyhelmet7', 'gems:sapphire_block'}, + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallleggings5', + recipe = { + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + {'tutorial:admin', '3d_armor:kristallleggings4', 'tutorial:admin'}, + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallleggings4', + recipe = { + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + {'gems:emerald_block', '3d_armor:kristallleggings3', 'gems:emerald_block'}, + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallleggings3', + recipe = { + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + {'gems:pearl_block', '3d_armor:kristallleggings2', 'gems:shadow_block'}, + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallleggings2', + recipe = { + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + {'gems:amethyst_block', '3d_armor:kristallleggings1', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:kristallleggings1', + recipe = { + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + {'gems:ruby_block', '3d_armor:superenergyleggings7', 'gems:sapphire_block'}, + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots24', + cooktime = 5000, + output = '3d_armor:ultraboots25', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots23', + cooktime = 4800, + output = '3d_armor:ultraboots24', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots22', + cooktime = 4600, + output = '3d_armor:ultraboots23', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots21', + cooktime = 4400, + output = '3d_armor:ultraboots22', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots20', + cooktime = 4200, + output = '3d_armor:ultraboots21', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots19', + cooktime = 4000, + output = '3d_armor:ultraboots20', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots18', + cooktime = 3800, + output = '3d_armor:ultraboots19', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots17', + cooktime = 3600, + output = '3d_armor:ultraboots18', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots16', + cooktime = 3400, + output = '3d_armor:ultraboots17', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots15', + cooktime = 3200, + output = '3d_armor:ultraboots16', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots14', + cooktime = 3000, + output = '3d_armor:ultraboots15', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots13', + cooktime = 2800, + output = '3d_armor:ultraboots14', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots12', + cooktime = 2600, + output = '3d_armor:ultraboots13', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots11', + cooktime = 2400, + output = '3d_armor:ultraboots12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots10', + cooktime = 2200, + output = '3d_armor:ultraboots11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots9', + cooktime = 2000, + output = '3d_armor:ultraboots10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots8', + cooktime = 1800, + output = '3d_armor:ultraboots9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots7', + cooktime = 1600, + output = '3d_armor:ultraboots8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots6', + cooktime = 1400, + output = '3d_armor:ultraboots7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots5', + cooktime = 1200, + output = '3d_armor:ultraboots6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots4', + cooktime = 1000, + output = '3d_armor:ultraboots5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots3', + cooktime = 800, + output = '3d_armor:ultraboots4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots2', + cooktime = 600, + output = '3d_armor:ultraboots3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots1', + cooktime = 400, + output = '3d_armor:ultraboots2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:kristallboots5', + cooktime = 200, + output = '3d_armor:ultraboots1', +}) + +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate24', + cooktime = 5000, + output = '3d_armor:ultrachestplate25', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate23', + cooktime = 4800, + output = '3d_armor:ultrachestplate24', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate22', + cooktime = 4600, + output = '3d_armor:ultrachestplate23', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate21', + cooktime = 4400, + output = '3d_armor:ultrachestplate22', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate20', + cooktime = 4200, + output = '3d_armor:ultrachestplate21', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate19', + cooktime = 4000, + output = '3d_armor:ultrachestplate20', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate18', + cooktime = 3800, + output = '3d_armor:ultrachestplate19', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate17', + cooktime = 3600, + output = '3d_armor:ultrachestplate18', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate16', + cooktime = 3400, + output = '3d_armor:ultrachestplate17', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate15', + cooktime = 3200, + output = '3d_armor:ultrachestplate16', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate14', + cooktime = 3000, + output = '3d_armor:ultrachestplate15', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate13', + cooktime = 2800, + output = '3d_armor:ultrachestplate14', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate12', + cooktime = 2600, + output = '3d_armor:ultrachestplate13', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate11', + cooktime = 2400, + output = '3d_armor:ultrachestplate12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate10', + cooktime = 2200, + output = '3d_armor:ultrachestplate11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate9', + cooktime = 2000, + output = '3d_armor:ultrachestplate10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate8', + cooktime = 1800, + output = '3d_armor:ultrachestplate9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate7', + cooktime = 1600, + output = '3d_armor:ultrachestplate8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate6', + cooktime = 1400, + output = '3d_armor:ultrachestplate7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate5', + cooktime = 1200, + output = '3d_armor:ultrachestplate6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate4', + cooktime = 1000, + output = '3d_armor:ultrachestplate5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate3', + cooktime = 800, + output = '3d_armor:ultrachestplate4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate2', + cooktime = 600, + output = '3d_armor:ultrachestplate3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate1', + cooktime = 400, + output = '3d_armor:ultrachestplate2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:kristallchestplate5', + cooktime = 200, + output = '3d_armor:ultrachestplate1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet24', + cooktime = 5000, + output = '3d_armor:ultrahelmet25', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet23', + cooktime = 4800, + output = '3d_armor:ultrahelmet24', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet22', + cooktime = 4600, + output = '3d_armor:ultrahelmet23', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet21', + cooktime = 4400, + output = '3d_armor:ultrahelmet22', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet20', + cooktime = 4200, + output = '3d_armor:ultrahelmet21', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet19', + cooktime = 4000, + output = '3d_armor:ultrahelmet20', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet18', + cooktime = 3800, + output = '3d_armor:ultrahelmet19', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet17', + cooktime = 3600, + output = '3d_armor:ultrahelmet18', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet16', + cooktime = 3400, + output = '3d_armor:ultrahelmet17', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet15', + cooktime = 3200, + output = '3d_armor:ultrahelmet16', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet14', + cooktime = 3000, + output = '3d_armor:ultrahelmet15', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet13', + cooktime = 2800, + output = '3d_armor:ultrahelmet14', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet12', + cooktime = 2600, + output = '3d_armor:ultrahelmet13', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet11', + cooktime = 2400, + output = '3d_armor:ultrahelmet12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet10', + cooktime = 2200, + output = '3d_armor:ultrahelmet11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet9', + cooktime = 2000, + output = '3d_armor:ultrahelmet10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet8', + cooktime = 1800, + output = '3d_armor:ultrahelmet9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet7', + cooktime = 1600, + output = '3d_armor:ultrahelmet8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet6', + cooktime = 1400, + output = '3d_armor:ultrahelmet7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet5', + cooktime = 1200, + output = '3d_armor:ultrahelmet6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet4', + cooktime = 1000, + output = '3d_armor:ultrahelmet5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet3', + cooktime = 800, + output = '3d_armor:ultrahelmet4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet2', + cooktime = 600, + output = '3d_armor:ultrahelmet3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet1', + cooktime = 400, + output = '3d_armor:ultrahelmet2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:kristallhelmet5', + cooktime = 200, + output = '3d_armor:ultrahelmet1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings24', + cooktime = 5000, + output = '3d_armor:ultraleggings25', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings23', + cooktime = 4800, + output = '3d_armor:ultraleggings24', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings22', + cooktime = 4600, + output = '3d_armor:ultraleggings23', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings21', + cooktime = 4400, + output = '3d_armor:ultraleggings22', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings20', + cooktime = 4200, + output = '3d_armor:ultraleggings21', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings19', + cooktime = 4000, + output = '3d_armor:ultraleggings20', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings18', + cooktime = 3800, + output = '3d_armor:ultraleggings19', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings17', + cooktime = 3600, + output = '3d_armor:ultraleggings18', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings16', + cooktime = 3400, + output = '3d_armor:ultraleggings17', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings15', + cooktime = 3200, + output = '3d_armor:ultraleggings16', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings14', + cooktime = 3000, + output = '3d_armor:ultraleggings15', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings13', + cooktime = 2800, + output = '3d_armor:ultraleggings14', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings12', + cooktime = 2600, + output = '3d_armor:ultraleggings13', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings11', + cooktime = 2400, + output = '3d_armor:ultraleggings12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings10', + cooktime = 2200, + output = '3d_armor:ultraleggings11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings9', + cooktime = 2000, + output = '3d_armor:ultraleggings10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings8', + cooktime = 1800, + output = '3d_armor:ultraleggings9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings7', + cooktime = 1600, + output = '3d_armor:ultraleggings8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings6', + cooktime = 1400, + output = '3d_armor:ultraleggings7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings5', + cooktime = 1200, + output = '3d_armor:ultraleggings6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings4', + cooktime = 1000, + output = '3d_armor:ultraleggings5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings3', + cooktime = 800, + output = '3d_armor:ultraleggings4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings2', + cooktime = 600, + output = '3d_armor:ultraleggings3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings1', + cooktime = 400, + output = '3d_armor:ultraleggings2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:kristallleggings5', + cooktime = 200, + output = '3d_armor:ultraleggings1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraboots25', + cooktime = 10000, + output = '3d_armor:superultraboots', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrachestplate25', + cooktime = 10000, + output = '3d_armor:superultrachestplate', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultrahelmet25', + cooktime = 10000, + output = '3d_armor:superultrahelmet', +}) +minetest.register_craft({ + type = 'cooking', + recipe = '3d_armor:ultraleggings25', + cooktime = 10000, + output = '3d_armor:superultraleggings', +}) +minetest.register_craft({ + output = '3d_armor:arenaboots4', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenaboots3', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenaboots3', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenaboots2', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenaboots2', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenaboots1', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenaboots1', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:superultraboots', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenachestplate4', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenachestplate3', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenachestplate3', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenachestplate2', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenachestplate2', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenachestplate1', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenachestplate1', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:superultrachestplate', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenaleggings4', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenaleggings3', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenaleggings3', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenaleggings2', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenaleggings2', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenaleggings1', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenaleggings1', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:superultraleggings', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenahelmet4', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenahelmet3', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenahelmet3', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenahelmet2', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenahelmet2', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:arenahelmet1', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:arenahelmet1', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', '3d_armor:superultrahelmet', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots10', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanboots9', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots9', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanboots8', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots8', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanboots7', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots7', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanboots6', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots6', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanboots5', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots5', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanboots4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots4', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanboots3', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots3', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanboots2', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots2', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanboots1', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanboots1', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:arenaboots4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) + +minetest.register_craft({ + output = '3d_armor:titanchestplate10', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanchestplate9', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanchestplate9', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanchestplate8', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanchestplate8', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanchestplate7', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanchestplate7', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanchestplate6', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanchestplate6', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanchestplate5', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanchestplate5', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanchestplate4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanchestplate4', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanchestplate3', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanchestplate3', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanchestplate2', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanchestplate2', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanchestplate1', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanchestplate1', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:arenachestplate4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) + +minetest.register_craft({ + output = '3d_armor:titanhelmet10', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanhelmet9', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanhelmet9', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanhelmet8', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanhelmet8', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanhelmet7', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanhelmet7', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanhelmet6', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanhelmet6', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanhelmet5', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanhelmet5', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanhelmet4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanhelmet4', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanhelmet3', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanhelmet3', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanhelmet2', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanhelmet2', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanhelmet1', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanhelmet1', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:arenahelmet4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) + +minetest.register_craft({ + output = '3d_armor:titanleggings10', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanleggings9', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanleggings9', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanleggings8', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanleggings8', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanleggings7', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanleggings7', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanleggings6', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanleggings6', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanleggings5', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanleggings5', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanleggings4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanleggings4', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanleggings3', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanleggings3', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanleggings2', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanleggings2', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:titanleggings1', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:titanleggings1', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', '3d_armor:arenaleggings4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenboots1', + recipe = { + {'3d_armor:titanboots10', 'default:grass_1', 'default:grass_1', 'tutorial:bottle5'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle5', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenboots2', + recipe = { + {'3d_armor:legendenboots1', 'default:grass_1', 'default:grass_1', 'tutorial:bottle7'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle7', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenboots3', + recipe = { + {'3d_armor:legendenboots2', 'default:grass_1', 'default:grass_1', 'tutorial:bottle9'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle9', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenboots4', + recipe = { + {'3d_armor:legendenboots3', 'default:grass_1', 'default:grass_1', 'tutorial:bottle11'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle11', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenboots5', + recipe = { + {'3d_armor:legendenboots4', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenboots6', + recipe = { + {'3d_armor:legendenboots5', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS3'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS3', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) + +minetest.register_craft({ + output = '3d_armor:legendenchestplate1', + recipe = { + {'3d_armor:titanchestplate10', 'default:grass_1', 'default:grass_1', 'tutorial:bottle5'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle5', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenchestplate2', + recipe = { + {'3d_armor:legendenchestplate1', 'default:grass_1', 'default:grass_1', 'tutorial:bottle7'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle7', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenchestplate3', + recipe = { + {'3d_armor:legendenchestplate2', 'default:grass_1', 'default:grass_1', 'tutorial:bottle9'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle9', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenchestplate4', + recipe = { + {'3d_armor:legendenchestplate3', 'default:grass_1', 'default:grass_1', 'tutorial:bottle11'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle11', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenchestplate5', + recipe = { + {'3d_armor:legendenchestplate4', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenchestplate6', + recipe = { + {'3d_armor:legendenchestplate5', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS3'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS3', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) + +minetest.register_craft({ + output = '3d_armor:legendenhelmet1', + recipe = { + {'3d_armor:titanhelmet10', 'default:grass_1', 'default:grass_1', 'tutorial:bottle5'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle5', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenhelmet2', + recipe = { + {'3d_armor:legendenhelmet1', 'default:grass_1', 'default:grass_1', 'tutorial:bottle7'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle7', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenhelmet3', + recipe = { + {'3d_armor:legendenhelmet2', 'default:grass_1', 'default:grass_1', 'tutorial:bottle9'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle9', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenhelmet4', + recipe = { + {'3d_armor:legendenhelmet3', 'default:grass_1', 'default:grass_1', 'tutorial:bottle11'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle11', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenhelmet5', + recipe = { + {'3d_armor:legendenhelmet4', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenhelmet6', + recipe = { + {'3d_armor:legendenhelmet5', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS3'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS3', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) + +minetest.register_craft({ + output = '3d_armor:legendenleggings1', + recipe = { + {'3d_armor:titanleggings10', 'default:grass_1', 'default:grass_1', 'tutorial:bottle5'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle5', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenleggings2', + recipe = { + {'3d_armor:legendenleggings1', 'default:grass_1', 'default:grass_1', 'tutorial:bottle7'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle7', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenleggings3', + recipe = { + {'3d_armor:legendenleggings2', 'default:grass_1', 'default:grass_1', 'tutorial:bottle9'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle9', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenleggings4', + recipe = { + {'3d_armor:legendenleggings3', 'default:grass_1', 'default:grass_1', 'tutorial:bottle11'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle11', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenleggings5', + recipe = { + {'3d_armor:legendenleggings4', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:legendenleggings6', + recipe = { + {'3d_armor:legendenleggings5', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS3'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS3', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superlegendenboots', + recipe = { + {'tutorial:lilabattleaxe2', '3d_armor:legendenboots6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superlegendenchestplate', + recipe = { + {'tutorial:lilabattleaxe2', '3d_armor:legendenchestplate6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superlegendenhelmet', + recipe = { + {'tutorial:lilabattleaxe2', '3d_armor:legendenhelmet6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:superlegendenleggings', + recipe = { + {'tutorial:lilabattleaxe2', '3d_armor:legendenleggings6'}, + } +}) +minetest.register_craft({ + output = '3d_armor:regnumboots', + recipe = { + {'', '', 'tutorial:regnum', '', ''}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'tutorial:regnum', 'tutorial:bottleSS', '3d_armor:superlegendenboots', 'tutorial:bottleSS', 'tutorial:regnum'}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'', '', 'tutorial:regnum', '', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:regnumchestplate', + recipe = { + {'', '', 'tutorial:regnum', '', ''}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'tutorial:regnum', 'tutorial:bottleSS', '3d_armor:superlegendenchestplate', 'tutorial:bottleSS', 'tutorial:regnum'}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'', '', 'tutorial:regnum', '', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:regnumhelmet', + recipe = { + {'', '', 'tutorial:regnum', '', ''}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'tutorial:regnum', 'tutorial:bottleSS', '3d_armor:superlegendenhelmet', 'tutorial:bottleSS', 'tutorial:regnum'}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'', '', 'tutorial:regnum', '', ''}, + } +}) +minetest.register_craft({ + output = '3d_armor:regnumleggings', + recipe = { + {'', '', 'tutorial:regnum', '', ''}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'tutorial:regnum', 'tutorial:bottleSS', '3d_armor:superlegendenleggings', 'tutorial:bottleSS', 'tutorial:regnum'}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'', '', 'tutorial:regnum', '', ''}, + } +}) diff --git a/mods/3d_armor/3d_armor_stand/LICENSE.txt b/mods/3d_armor/3d_armor_stand/LICENSE.txt new file mode 100644 index 0000000..5c8246a --- /dev/null +++ b/mods/3d_armor/3d_armor_stand/LICENSE.txt @@ -0,0 +1,7 @@ +[mod] 3d Armor Stand [3d_armor_stand] +===================================== + +License Source Code: LGPL v2.1 + +Lecense Media: CC BY-SA 3.0 + diff --git a/mods/3d_armor/3d_armor_stand/README.txt b/mods/3d_armor/3d_armor_stand/README.txt new file mode 100644 index 0000000..6a98ab9 --- /dev/null +++ b/mods/3d_armor/3d_armor_stand/README.txt @@ -0,0 +1,21 @@ +[mod] 3d Armor Stand [3d_armor_stand] +===================================== + +Depends: 3d_armor + +Adds a chest-like armor stand for armor storage and display. + +Crafting +-------- + +F = Wooden Fence [default:fence_wood] +S = Steel Ingot [default:steel_ingot] + ++---+---+---+ +| | F | | ++---+---+---+ +| | F | | ++---+---+---+ +| S | S | S | ++---+---+---+ + diff --git a/mods/3d_armor/3d_armor_stand/depends.txt b/mods/3d_armor/3d_armor_stand/depends.txt new file mode 100644 index 0000000..fdbb290 --- /dev/null +++ b/mods/3d_armor/3d_armor_stand/depends.txt @@ -0,0 +1,2 @@ +3d_armor + diff --git a/mods/3d_armor/3d_armor_stand/init.lua b/mods/3d_armor/3d_armor_stand/init.lua new file mode 100644 index 0000000..d722297 --- /dev/null +++ b/mods/3d_armor/3d_armor_stand/init.lua @@ -0,0 +1,258 @@ +local armor_stand_formspec = "size[8,7]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + default.get_hotbar_bg(0,3) .. + "list[current_name;armor_head;3,0.5;1,1;]" .. + "list[current_name;armor_torso;4,0.5;1,1;]" .. + "list[current_name;armor_legs;3,1.5;1,1;]" .. + "list[current_name;armor_feet;4,1.5;1,1;]" .. + "image[3,0.5;1,1;3d_armor_stand_head.png]" .. + "image[4,0.5;1,1;3d_armor_stand_torso.png]" .. + "image[3,1.5;1,1;3d_armor_stand_legs.png]" .. + "image[4,1.5;1,1;3d_armor_stand_feet.png]" .. + "list[current_player;main;0,3;8,1;]" .. + "list[current_player;main;0,4.25;8,3;8]" + +local elements = {"head", "torso", "legs", "feet"} + +local function get_stand_object(pos) + local object = nil + local objects = minetest.get_objects_inside_radius(pos, 0.5) or {} + for _, obj in pairs(objects) do + local ent = obj:get_luaentity() + if ent then + if ent.name == "3d_armor_stand:armor_entity" then + -- Remove duplicates + if object then + obj:remove() + else + object = obj + end + end + end + end + return object +end + +local function update_entity(pos) + local node = minetest.get_node(pos) + local object = get_stand_object(pos) + if object then + if not string.find(node.name, "3d_armor_stand:") then + object:remove() + return + end + else + object = minetest.add_entity(pos, "3d_armor_stand:armor_entity") + end + if object then + local texture = "3d_armor_trans.png" + local textures = {} + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local yaw = 0 + if inv then + for _, element in pairs(elements) do + local stack = inv:get_stack("armor_"..element, 1) + if stack:get_count() == 1 then + local item = stack:get_name() or "" + local def = stack:get_definition() or {} + local texture = def.texture or item:gsub("%:", "_") + table.insert(textures, texture..".png") + end + end + end + if #textures > 0 then + texture = table.concat(textures, "^") + end + if node.param2 then + local rot = node.param2 % 4 + if rot == 1 then + yaw = 3 * math.pi / 2 + elseif rot == 2 then + yaw = math.pi + elseif rot == 3 then + yaw = math.pi / 2 + end + end + object:setyaw(yaw) + object:set_properties({textures={texture}}) + end +end + +minetest.register_node("3d_armor_stand:armor_stand", { + description = "Armor stand", + drawtype = "mesh", + mesh = "3d_armor_stand.obj", + tiles = {"default_wood.png", "default_steel_block.png"}, + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.5,-0.5,-0.5, 0.5,1.4,0.5} + }, + groups = {choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", armor_stand_formspec) + meta:set_string("infotext", "Armor Stand") + local inv = meta:get_inventory() + for _, element in pairs(elements) do + inv:set_size("armor_"..element, 1) + end + end, + can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for _, element in pairs(elements) do + if not inv:is_empty("armor_"..element) then + return false + end + end + return true + end, + after_place_node = function(pos) + minetest.add_entity(pos, "3d_armor_stand:armor_entity") + end, + allow_metadata_inventory_put = function(pos, listname, index, stack) + local def = stack:get_definition() or {} + local groups = def.groups or {} + if groups[listname] then + return 1 + end + return 0 + end, + allow_metadata_inventory_move = function(pos) + return 0 + end, + on_metadata_inventory_put = function(pos) + update_entity(pos) + end, + on_metadata_inventory_take = function(pos) + update_entity(pos) + end, + after_destruct = function(pos) + update_entity(pos) + end, + on_blast = function(pos) + local object = get_stand_object(pos) + if object then + object:remove() + end + minetest.after(1, function(pos) + update_entity(pos) + end, pos) + end, +}) + +local function has_locked_armor_stand_privilege(meta, player) + local name = "" + if player then + if minetest.check_player_privs(player, "protection_bypass") then + return true + end + name = player:get_player_name() + end + if name ~= meta:get_string("owner") then + return false + end + return true +end + +local node = {} +for k,v in pairs(minetest.registered_nodes["3d_armor_stand:armor_stand"]) do + node[k] = v +end +node.description = "Locked " .. node.description +node.allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_armor_stand_privilege(meta, player) then + return 0 + end + local def = stack:get_definition() or {} + local groups = def.groups or {} + if groups[listname] then + return 1 + end + return 0 +end +node.allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if not has_locked_armor_stand_privilege(meta, player) then + return 0 + end + return stack:get_count() +end +node.on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", armor_stand_formspec) + meta:set_string("infotext", "Armor Stand") + meta:set_string("owner", "") + local inv = meta:get_inventory() + for _, element in pairs(elements) do + inv:set_size("armor_"..element, 1) + end + end +node.after_place_node = function(pos, placer) + minetest.add_entity(pos, "3d_armor_stand:armor_entity") + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", "Armor Stand (owned by " .. + meta:get_string("owner") .. ")") +end +minetest.register_node("3d_armor_stand:locked_armor_stand", node) + +minetest.register_entity("3d_armor_stand:armor_entity", { + physical = true, + visual = "mesh", + mesh = "3d_armor_entity.obj", + visual_size = {x=1, y=1}, + collisionbox = {-0.1,-0.4,-0.1, 0.1,1.3,0.1}, + textures = {"3d_armor_trans.png"}, + pos = nil, + timer = 0, + on_activate = function(self) + local pos = self.object:getpos() + if pos then + self.pos = vector.round(pos) + update_entity(pos) + end + end, + on_step = function(self, dtime) + if not self.pos then + return + end + self.timer = self.timer + dtime + if self.timer > 1 then + self.timer = 0 + local pos = self.object:getpos() + if pos then + if vector.equals(self.pos, pos) then + return + end + end + update_entity(self.pos) + self.object:remove() + end + end, +}) + +minetest.register_craft({ + output = "3d_armor_stand:armor_stand", + recipe = { + {"", "default:fence_wood", ""}, + {"", "default:fence_wood", ""}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + } +}) + +minetest.register_craft({ + output = "3d_armor_stand:locked_armor_stand", + recipe = { + {"3d_armor_stand:armor_stand", "default:steel_ingot"}, + } +}) + diff --git a/mods/3d_armor/3d_armor_stand/models/3d_armor_entity.obj b/mods/3d_armor/3d_armor_stand/models/3d_armor_entity.obj new file mode 100644 index 0000000..052f692 --- /dev/null +++ b/mods/3d_armor/3d_armor_stand/models/3d_armor_entity.obj @@ -0,0 +1,193 @@ +# Blender v2.73 (sub 0) OBJ File: '3d_armor_entity_3.blend' +# www.blender.org +mtllib 3d_armor_entity.mtl +o Player_Cube +v 2.200000 9.763893 1.200000 +v 2.200000 9.763893 -1.200000 +v 2.200000 2.663871 1.200000 +v 2.200000 2.663871 -1.200000 +v -2.200000 9.763893 -1.200000 +v -2.200000 9.763893 1.200000 +v -2.200000 2.663871 -1.200000 +v -2.200000 2.663871 1.200000 +v 2.300000 13.863962 2.300000 +v 2.300000 13.863962 -2.300000 +v 2.300000 9.263885 2.300000 +v 2.300000 9.263885 -2.300000 +v -2.300000 13.863962 -2.300000 +v -2.300000 13.863962 2.300000 +v -2.300000 9.263885 -2.300000 +v -2.300000 9.263885 2.300000 +v -2.322686 2.473175 -1.300000 +v -2.322686 2.473175 1.300000 +v -4.713554 2.682348 1.300000 +v -4.713554 2.682348 -1.300000 +v -1.686446 9.745432 -1.300000 +v -1.686446 9.745432 1.300000 +v -4.077313 9.954605 1.300000 +v -4.077313 9.954605 -1.300000 +v 4.077313 9.954605 -1.300000 +v 4.077313 9.954605 1.300000 +v 1.686446 9.745432 1.300000 +v 1.686446 9.745432 -1.300000 +v 4.713554 2.682348 -1.300000 +v 4.713554 2.682348 1.300000 +v 2.322686 2.473175 1.300000 +v 2.322686 2.473175 -1.300000 +v 0.139099 2.938947 -1.200000 +v 0.139099 2.938947 1.200000 +v 0.261266 -4.059988 1.200000 +v 0.261266 -4.059988 -1.200000 +v 2.660901 -4.018101 1.190000 +v 2.660901 -4.018101 -1.210000 +v 2.538733 2.980834 1.190000 +v 2.538733 2.980834 -1.210000 +v -0.139099 2.938947 -1.200000 +v -0.139099 2.938947 1.200000 +v -0.261266 -4.059988 1.200000 +v -0.261266 -4.059988 -1.200000 +v -2.538734 2.980834 -1.210000 +v -2.538734 2.980834 1.190000 +v -2.660901 -4.018101 -1.210000 +v -2.660901 -4.018101 1.190000 +v -2.799999 -4.387500 1.390000 +v -2.799999 -4.387500 -1.410000 +v -2.800000 -0.812499 1.390000 +v -2.800000 -0.812499 -1.410000 +v -0.000000 -4.387500 -1.400000 +v -0.000000 -4.387500 1.400000 +v -0.000000 -0.812499 1.400000 +v -0.000000 -0.812499 -1.400000 +v 2.800000 -0.812499 -1.410000 +v 2.800000 -0.812499 1.390000 +v 2.799999 -4.387500 -1.410000 +v 2.799999 -4.387500 1.390000 +v 0.000000 -4.387500 -1.400000 +v 0.000000 -4.387500 1.400000 +v 0.000000 -0.812499 1.400000 +v 0.000000 -0.812499 -1.400000 +v 2.267006 13.830965 2.267006 +v 2.267006 13.830965 -2.267006 +v 2.267006 9.296881 2.267006 +v 2.267006 9.296881 -2.267006 +v -2.267006 13.830965 -2.267006 +v -2.267006 13.830965 2.267006 +v -2.267006 9.296881 -2.267006 +v -2.267006 9.296881 2.267006 +vt 0.250000 0.375000 +vt 0.250000 0.000000 +vt 0.312500 0.000000 +vt 0.312500 0.375000 +vt 0.437500 0.375000 +vt 0.437500 0.500000 +vt 0.312500 0.500000 +vt 0.562500 0.375000 +vt 0.562500 0.500000 +vt 0.437500 0.000000 +vt 0.500000 0.000000 +vt 0.500000 0.375000 +vt 0.625000 0.000000 +vt 0.625000 0.375000 +vt 0.500000 0.750000 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.750000 0.750000 +vt 0.750000 1.000000 +vt 0.625000 1.000000 +vt 0.875000 0.750000 +vt 0.875000 1.000000 +vt 0.750000 0.500000 +vt 0.875000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 0.500000 +vt 0.750000 0.375000 +vt 0.812500 0.500000 +vt 0.812500 0.375000 +vt 0.687500 0.375000 +vt 0.687500 0.500000 +vt 0.687500 0.000000 +vt 0.750000 0.000000 +vt 0.812500 0.000000 +vt 0.875000 0.375000 +vt 0.875000 0.000000 +vt 0.125000 0.375000 +vt 0.062500 0.375000 +vt 0.062500 0.500000 +vt 0.125000 0.500000 +vt 0.187500 0.375000 +vt 0.187500 0.500000 +vt 0.000000 0.375000 +vt 0.000000 0.000000 +vt 0.062500 0.000000 +vt 0.187500 0.000000 +vt 0.125000 0.000000 +vt 0.437500 0.875000 +vt 0.437500 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.875000 +vt 0.250000 0.875000 +vt 0.312500 0.875000 +vt 0.312500 0.656250 +vt 0.250000 0.656250 +vt 0.500000 0.875000 +vt 0.437500 0.656250 +vt 0.500000 0.656250 +vt 0.375000 0.656250 +vt 0.312500 1.000000 +usemtl Armor +s off +f 1/1 3/2 4/3 2/4 +f 5/5 6/6 1/7 2/4 +f 8/6 7/5 4/8 3/9 +f 5/5 2/4 4/3 7/10 +f 7/10 8/11 6/12 5/5 +f 8/11 3/13 1/14 6/12 +f 9/15 11/16 12/17 10/18 +f 13/19 14/20 9/21 10/18 +f 12/22 11/23 16/20 15/19 +f 13/19 10/18 12/17 15/24 +f 14/22 13/19 15/24 16/25 +f 9/26 14/22 16/25 11/27 +f 17/28 18/24 19/29 20/30 +f 24/31 23/32 22/24 21/28 +f 23/31 24/14 20/13 19/33 +f 24/31 21/28 17/34 20/33 +f 21/28 22/30 18/35 17/34 +f 22/30 23/36 19/37 18/35 +f 27/30 31/35 30/37 26/36 +f 28/28 32/34 31/35 27/30 +f 25/31 29/33 32/34 28/28 +f 26/31 30/33 29/13 25/14 +f 25/31 28/28 27/24 26/32 +f 32/28 29/30 30/29 31/24 +f 40/38 33/39 34/40 39/41 +f 36/42 38/38 37/41 35/43 +f 39/44 37/45 38/46 40/39 +f 34/1 35/2 37/47 39/42 +f 40/38 38/48 36/46 33/39 +f 33/42 36/47 35/48 34/38 +f 45/38 46/41 42/40 41/39 +f 41/42 42/38 43/48 44/47 +f 45/38 41/39 44/46 47/48 +f 42/1 46/42 48/47 43/2 +f 46/44 45/39 47/46 48/45 +f 44/42 43/43 48/41 47/38 +f 53/49 54/50 49/51 50/52 +f 51/53 52/54 50/55 49/56 +f 55/57 51/49 49/58 54/59 +f 52/52 56/54 53/55 50/60 +f 56/49 55/52 54/60 53/58 +f 52/52 51/51 55/61 56/54 +f 64/49 61/58 62/60 63/52 +f 57/52 59/60 61/55 64/54 +f 63/57 62/59 60/58 58/49 +f 58/53 60/56 59/55 57/54 +f 61/49 59/52 60/51 62/50 +f 57/52 64/54 63/61 58/51 +f 65/15 66/18 68/17 67/16 +f 69/19 66/18 65/21 70/20 +f 68/22 71/19 72/20 67/23 +f 69/19 71/24 68/17 66/18 +f 70/22 72/25 71/24 69/19 +f 65/26 67/27 72/25 70/22 diff --git a/mods/3d_armor/3d_armor_stand/models/3d_armor_stand.obj b/mods/3d_armor/3d_armor_stand/models/3d_armor_stand.obj new file mode 100644 index 0000000..89f3793 --- /dev/null +++ b/mods/3d_armor/3d_armor_stand/models/3d_armor_stand.obj @@ -0,0 +1,191 @@ +# Blender v2.73 (sub 0) OBJ File: '3d_armor_stand.blend' +# www.blender.org +mtllib 3d_armor_stand.mtl +o Player_Cube +v 0.062500 1.312500 -0.062500 +v 0.062500 1.312500 0.062500 +v -0.062500 1.312500 -0.062500 +v -0.062500 1.312500 0.062500 +v -0.187500 -0.437504 0.062500 +v -0.187500 -0.437504 -0.062500 +v -0.187500 0.937500 0.062500 +v -0.187500 0.937500 -0.062500 +v -0.250000 0.250000 0.062500 +v -0.250000 0.250000 -0.062500 +v -0.250000 0.125003 0.062500 +v -0.250000 0.125003 -0.062500 +v 0.250000 0.250000 0.062500 +v 0.250000 0.250000 -0.062500 +v 0.250000 0.125003 0.062500 +v 0.250000 0.125003 -0.062500 +v -0.062500 -0.437504 -0.062500 +v -0.062500 -0.437504 0.062500 +v -0.062500 0.937500 0.062500 +v -0.062500 0.937500 -0.062500 +v 0.062500 0.250000 0.062500 +v 0.062500 0.250000 -0.062500 +v 0.187500 0.250000 -0.062500 +v 0.187500 0.250000 0.062500 +v 0.187500 0.937500 -0.062500 +v 0.187500 0.937500 0.062500 +v 0.187500 -0.437504 -0.062500 +v 0.187500 -0.437504 0.062500 +v 0.062500 -0.437504 -0.062500 +v 0.062500 -0.437504 0.062500 +v 0.062500 0.937500 0.062500 +v 0.062500 0.937500 -0.062500 +v -0.062500 0.812500 -0.062500 +v -0.187500 0.812500 -0.062500 +v -0.062500 0.812500 0.062500 +v -0.187500 0.812500 0.062500 +v 0.062500 0.812500 -0.062500 +v 0.187500 0.812500 -0.062500 +v 0.187500 0.812500 0.062500 +v 0.062500 0.812500 0.062500 +v 0.375000 0.812500 0.062500 +v 0.375000 0.812500 -0.062500 +v 0.375000 0.937500 0.062500 +v 0.375000 0.937500 -0.062500 +v 0.500000 -0.437500 -0.500000 +v 0.500000 -0.437500 0.500000 +v -0.500000 -0.437500 -0.500000 +v -0.500000 -0.437500 0.500000 +v -0.062500 0.250000 -0.062500 +v -0.187500 0.250000 -0.062500 +v -0.062500 0.250000 0.062500 +v -0.187500 0.250000 0.062500 +v -0.375000 0.937500 0.062500 +v -0.375000 0.937500 -0.062500 +v -0.375000 0.812500 -0.062500 +v -0.375000 0.812500 0.062500 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.187500 0.124998 0.062500 +v 0.187500 0.124998 -0.062500 +v 0.062500 0.124998 0.062500 +v 0.062500 0.124998 -0.062500 +v -0.062500 0.124998 -0.062500 +v -0.187500 0.124998 -0.062500 +v -0.062500 0.124998 0.062500 +v -0.187500 0.124998 0.062500 +vt 0.000000 0.000000 +vt 0.875000 0.000000 +vt 0.875000 0.250000 +vt 0.000000 0.250000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt -0.000000 0.750000 +vt -0.000000 0.500000 +vt 0.750000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.250000 +vt 0.750000 0.250000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.875000 0.750000 +vt 0.875000 1.000000 +vt 0.000000 1.000000 +vt 0.875000 0.500000 +vt 0.750000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 0.750000 0.750000 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.250000 0.500000 +vt 0.250000 0.750000 +vt 0.625000 0.250000 +vt 0.625000 -0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.000000 +vt 0.375000 0.250000 +vt 0.250000 1.000000 +vt 1.000000 1.000000 +vt 0.750000 1.000000 +vt 0.375000 -0.000000 +vt 0.125000 0.250000 +vt 0.125000 1.000000 +vt 0.125000 0.000000 +vt -0.000000 0.937500 +vt 1.000000 0.937500 +vt 0.937500 0.000000 +vt 0.937500 1.000000 +vt 1.000000 0.062500 +vt 0.000000 0.062500 +vt 0.062500 0.000000 +vt 0.062500 1.000000 +g Player_Cube_Stand +usemtl Stand +s off +f 64/1 29/2 30/3 63/4 +f 52/5 50/6 10/7 9/8 +f 17/9 18/10 5/11 6/12 +f 68/3 66/2 6/1 5/4 +f 7/13 8/14 54/7 53/8 +f 67/15 68/16 5/17 18/7 +f 62/4 27/3 29/18 64/8 +f 66/3 65/18 17/8 6/4 +f 9/19 10/20 12/21 11/22 +f 63/7 30/15 28/16 61/17 +f 65/18 67/15 18/7 17/8 +f 61/8 28/18 27/15 62/7 +f 19/23 7/24 36/14 35/25 +f 8/14 7/13 19/26 20/25 +f 23/15 24/18 13/20 14/21 +f 13/8 15/27 16/28 14/7 +f 39/29 38/30 42/10 41/11 +f 29/31 27/4 28/1 30/32 +f 25/28 26/27 43/26 44/25 +f 38/12 25/19 44/13 42/33 +f 25/28 32/7 31/8 26/27 +f 8/26 20/13 33/33 34/29 +f 25/19 38/12 37/11 32/20 +f 31/17 40/7 39/28 26/34 +f 26/34 39/28 41/25 43/23 +f 43/7 41/28 42/34 44/17 +f 53/22 54/21 55/35 56/36 +f 36/14 7/24 53/17 56/7 +f 8/26 34/29 55/11 54/20 +f 34/37 36/33 56/4 55/1 +f 51/13 21/26 22/25 49/14 +f 20/4 3/12 1/19 32/8 +f 40/15 31/16 19/23 35/25 +f 35/29 33/30 37/2 40/3 +f 33/33 20/13 32/5 37/38 +f 3/14 4/24 2/23 1/25 +f 19/12 4/4 3/1 20/9 +f 31/36 2/17 4/7 19/22 +f 32/22 1/7 2/8 31/19 +f 23/5 62/38 64/33 22/13 +f 21/14 63/24 61/39 24/6 +f 61/3 62/2 16/10 15/11 +f 62/38 23/5 14/8 16/4 +f 24/6 61/39 15/17 13/7 +f 50/18 66/3 12/11 10/20 +f 66/40 68/38 11/4 12/1 +f 50/18 49/26 65/29 66/3 +f 51/25 52/15 68/16 67/23 +f 68/16 52/15 9/21 11/35 +f 49/26 22/13 64/33 65/29 +f 51/25 67/23 63/24 21/14 +f 67/33 65/37 64/30 63/29 +f 37/1 22/2 21/3 40/4 +f 38/4 23/3 22/18 37/8 +f 40/7 21/15 24/16 39/17 +f 39/8 24/18 23/15 38/7 +f 36/2 34/3 50/4 52/1 +f 35/15 36/16 52/17 51/7 +f 34/3 33/18 49/8 50/4 +f 33/18 35/15 51/7 49/8 +g Player_Cube_Base +usemtl Base +f 47/17 48/1 46/10 45/35 +f 59/1 57/10 58/35 60/17 +f 48/17 60/41 58/42 46/35 +f 46/43 58/10 57/35 45/44 +f 47/1 45/10 57/45 59/46 +f 48/47 47/48 59/17 60/1 diff --git a/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png b/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png new file mode 100644 index 0000000..d04f9e3 Binary files /dev/null and b/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_feet.png differ diff --git a/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png b/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png new file mode 100644 index 0000000..228c08e Binary files /dev/null and b/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_head.png differ diff --git a/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png b/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png new file mode 100644 index 0000000..66ec357 Binary files /dev/null and b/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_legs.png differ diff --git a/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png b/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png new file mode 100644 index 0000000..af95ec7 Binary files /dev/null and b/mods/3d_armor/3d_armor_stand/textures/3d_armor_stand_torso.png differ diff --git a/mods/3d_armor/LICENSE.md b/mods/3d_armor/LICENSE.md new file mode 100644 index 0000000..d383270 --- /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 0000000..556f1a7 --- /dev/null +++ b/mods/3d_armor/README.md @@ -0,0 +1,42 @@ +Modpack - 3d Armor [0.4.4] +========================== + +[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) + +Fire protection has been added by TenPlus1 and in use when ethereal mod is found and crystal +armor has been enabled. each piece of armor offers 1 fire protection, level 1 protects +against torches, level 2 against crystal spikes, 3 for fire and 5 protects when in lava. + +Compatible with player skins [skins] by Zeg9 and Player Textures [player_textures] by PilzAdam +and [simple_skins] by TenPlus1. + +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 0000000..e69de29 diff --git a/mods/3d_armor/shields/README.txt b/mods/3d_armor/shields/README.txt new file mode 100644 index 0000000..3146bcb --- /dev/null +++ b/mods/3d_armor/shields/README.txt @@ -0,0 +1,6 @@ +Adds shields to 3d_armor + +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 0000000..9b61dde --- /dev/null +++ b/mods/3d_armor/shields/crafting_guide.txt @@ -0,0 +1,36 @@ +Shields -- Crafting Guide +-------------------------- + ++---+---+---+ +| X | X | X | ++---+---+---+ +| X | X | X | ++---+---+---+ +| | X | | ++---+---+---+ + +[shields:shield_wood] X = [default:wood] +[shields:shield_cactus] X = [default:cactus] +[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] +[shields:shield_mithril] X = [moreores:mithril_ingot] +[shields:shield_crystal] X = [ethereal:crystal_ingot] + +Enhanced Shields +---------------- + ++---+ +| S | ++---+ +| X | ++---+ +| S | ++---+ + +[shields:shield_enhanced_wood] X = [shields:shield_wood] +[shields:shield_enhanced_cactus] X = [shields:shield_cactus] + +S = [default:steel_ingot] + diff --git a/mods/3d_armor/shields/depends.txt b/mods/3d_armor/shields/depends.txt new file mode 100644 index 0000000..585cc7a --- /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 0000000..c5f7dc7 --- /dev/null +++ b/mods/3d_armor/shields/init.lua @@ -0,0 +1,161 @@ +local use_moreores = minetest.get_modpath("moreores") +dofile(minetest.get_modpath("shields").."/tutorial.lua") +dofile(minetest.get_modpath("shields").."/tutorial_craft.lua") +-- Regisiter Shields + +minetest.register_tool("shields:shield_admin", { + description = "Admin Shield Mode 1 (no speed and no jump)", + inventory_image = "shields_inv_shield_admin.png^technic_tool_mode1.png", + wield_image = "shields_inv_shield_admin.png", + groups = {armor_shield=5000, armor_heal=2500, armor_use=0, armor_fire=2000}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:shield_admin2") + end + return itemstack + end, +}) + +minetest.register_tool("shields:shield_admin2", { + description = "Admin Shield Mode 2 (speed and no jump)", + inventory_image = "shields_inv_shield_admin.png^technic_tool_mode2.png", + wield_image = "shields_inv_shield_admin.png", + groups = {armor_shield=5000, armor_heal=2500, armor_use=0, armor_fire=2000, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:shield_admin3") + end + return itemstack + end, +}) + +minetest.register_tool("shields:shield_admin3", { + description = "Admin Shield Mode 3 (no speed and jump)", + inventory_image = "shields_inv_shield_admin.png^technic_tool_mode3.png", + wield_image = "shields_inv_shield_admin.png", + groups = {armor_shield=5000, armor_heal=2500, armor_use=0, armor_fire=2000, physics_jump=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:shield_admin4") + end + return itemstack + end, +}) + +minetest.register_tool("shields:shield_admin4", { + description = "Admin Shield Mode 4 (speed and jump)", + inventory_image = "shields_inv_shield_admin.png^technic_tool_mode4.png", + wield_image = "shields_inv_shield_admin.png", + groups = {armor_shield=5000, armor_heal=2500, armor_use=0, armor_fire=2000, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:shield_admin") + end + return itemstack + end, +}) + + + + + + + + + +if ARMOR_MATERIALS.wood then + minetest.register_tool("shields:shield_wood", { + description = "Wooden Shield", + inventory_image = "shields_inv_shield_wood.png", + groups = {armor_shield=10, armor_heal=0, armor_use=2000}, + wear = 0, + }) + minetest.register_tool("shields:shield_enhanced_wood", { + description = "Enhanced Wood Shield", + inventory_image = "shields_inv_shield_enhanced_wood.png", + groups = {armor_shield=15, armor_heal=1, armor_use=200}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.cactus then + minetest.register_tool("shields:shield_cactus", { + description = "Cactus Shield", + inventory_image = "shields_inv_shield_cactus.png", + groups = {armor_shield=7, armor_heal=2, armor_use=200}, + wear = 0, + }) + minetest.register_tool("shields:shield_enhanced_cactus", { + description = "Enhanced Cactus Shield", + inventory_image = "shields_inv_shield_enhanced_cactus.png", + groups = {armor_shield=20, armor_heal=4, armor_use=100}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.steel then + minetest.register_tool("shields:shield_steel", { + description = "Steel Shield", + inventory_image = "shields_inv_shield_steel.png", + groups = {armor_shield=20, armor_heal=4, armor_use=100}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.bronze then + minetest.register_tool("shields:shield_bronze", { + description = "Bronze Shield", + inventory_image = "shields_inv_shield_bronze.png", + groups = {armor_shield=40, armor_heal=8, armor_use=75}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.diamond then + minetest.register_tool("shields:shield_diamond", { + description = "Diamond Shield", + inventory_image = "shields_inv_shield_diamond.png", + groups = {armor_shield=20, armor_heal=2, armor_use=200}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.gold then + minetest.register_tool("shields:shield_gold", { + description = "Gold Shield", + inventory_image = "shields_inv_shield_gold.png", + groups = {armor_shield=40, armor_heal=8, armor_use=50}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.mithril then + minetest.register_tool("shields:shield_mithril", { + description = "Mithril Shield", + inventory_image = "shields_inv_shield_mithril.png", + groups = {armor_shield=80, armor_heal=16, armor_use=25}, + wear = 0, + }) +end + +if ARMOR_MATERIALS.crystal then + minetest.register_tool("shields:shield_crystal", { + description = "Crystal Shield", + inventory_image = "shields_inv_shield_crystal.png", + groups = {armor_shield=200, armor_heal=100, armor_use=0, armor_fire=1}, + wear = 0, + }) +end + +minetest.after(0, function() + table.insert(armor.elements, "shield") +end) + diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega1.png b/mods/3d_armor/shields/models/shields_cloudshield_mega1.png new file mode 100644 index 0000000..ce79603 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega1.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega10.png b/mods/3d_armor/shields/models/shields_cloudshield_mega10.png new file mode 100644 index 0000000..6a0e47b Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega10.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega10_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega10_preview.png new file mode 100644 index 0000000..489693d Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega10_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega11.png b/mods/3d_armor/shields/models/shields_cloudshield_mega11.png new file mode 100644 index 0000000..9a7855b Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega11.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega11_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega11_preview.png new file mode 100644 index 0000000..b4f5515 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega11_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega12.png b/mods/3d_armor/shields/models/shields_cloudshield_mega12.png new file mode 100644 index 0000000..3419a4a Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega12.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega12_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega12_preview.png new file mode 100644 index 0000000..02b7e50 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega12_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega13.png b/mods/3d_armor/shields/models/shields_cloudshield_mega13.png new file mode 100644 index 0000000..fd531af Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega13.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega13_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega13_preview.png new file mode 100644 index 0000000..a93182e Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega13_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega14.png b/mods/3d_armor/shields/models/shields_cloudshield_mega14.png new file mode 100644 index 0000000..b10eed7 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega14.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega14_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega14_preview.png new file mode 100644 index 0000000..4338682 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega14_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega15.png b/mods/3d_armor/shields/models/shields_cloudshield_mega15.png new file mode 100644 index 0000000..0a1b782 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega15.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega15_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega15_preview.png new file mode 100644 index 0000000..e55ff6a Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega15_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega16.png b/mods/3d_armor/shields/models/shields_cloudshield_mega16.png new file mode 100644 index 0000000..3ab6e33 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega16.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega16_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega16_preview.png new file mode 100644 index 0000000..13408a3 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega16_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega17.png b/mods/3d_armor/shields/models/shields_cloudshield_mega17.png new file mode 100644 index 0000000..e6e99f0 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega17.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega17_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega17_preview.png new file mode 100644 index 0000000..76ad545 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega17_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega18.png b/mods/3d_armor/shields/models/shields_cloudshield_mega18.png new file mode 100644 index 0000000..ba06bf4 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega18.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega18_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega18_preview.png new file mode 100644 index 0000000..24bcb4a Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega18_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega19.png b/mods/3d_armor/shields/models/shields_cloudshield_mega19.png new file mode 100644 index 0000000..4157627 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega19.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega19_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega19_preview.png new file mode 100644 index 0000000..efb1436 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega19_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega1_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega1_preview.png new file mode 100644 index 0000000..e3fa033 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega1_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega2.png b/mods/3d_armor/shields/models/shields_cloudshield_mega2.png new file mode 100644 index 0000000..832e03a Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega2.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega20.png b/mods/3d_armor/shields/models/shields_cloudshield_mega20.png new file mode 100644 index 0000000..e18d159 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega20.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega20_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega20_preview.png new file mode 100644 index 0000000..1e8aeca Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega20_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega21.png b/mods/3d_armor/shields/models/shields_cloudshield_mega21.png new file mode 100644 index 0000000..bce37e5 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega21.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega21_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega21_preview.png new file mode 100644 index 0000000..23322e4 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega21_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega22.png b/mods/3d_armor/shields/models/shields_cloudshield_mega22.png new file mode 100644 index 0000000..36fdd4a Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega22.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega22_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega22_preview.png new file mode 100644 index 0000000..44f3189 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega22_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega23.png b/mods/3d_armor/shields/models/shields_cloudshield_mega23.png new file mode 100644 index 0000000..37ea0e7 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega23.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega23_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega23_preview.png new file mode 100644 index 0000000..9a59e38 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega23_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega24.png b/mods/3d_armor/shields/models/shields_cloudshield_mega24.png new file mode 100644 index 0000000..21cc620 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega24.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega24_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega24_preview.png new file mode 100644 index 0000000..ba63a31 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega24_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega25.png b/mods/3d_armor/shields/models/shields_cloudshield_mega25.png new file mode 100644 index 0000000..68eb710 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega25.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega25_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega25_preview.png new file mode 100644 index 0000000..7a58770 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega25_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega2_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega2_preview.png new file mode 100644 index 0000000..3deaa17 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega2_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega3.png b/mods/3d_armor/shields/models/shields_cloudshield_mega3.png new file mode 100644 index 0000000..6b7464e Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega3.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega3_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega3_preview.png new file mode 100644 index 0000000..3481fca Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega3_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega4.png b/mods/3d_armor/shields/models/shields_cloudshield_mega4.png new file mode 100644 index 0000000..57fc6e5 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega4.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega4_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega4_preview.png new file mode 100644 index 0000000..af983e0 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega4_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega5.png b/mods/3d_armor/shields/models/shields_cloudshield_mega5.png new file mode 100644 index 0000000..ca139bb Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega5.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega5_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega5_preview.png new file mode 100644 index 0000000..48b3d47 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega5_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega6.png b/mods/3d_armor/shields/models/shields_cloudshield_mega6.png new file mode 100644 index 0000000..40c3dce Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega6.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega6_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega6_preview.png new file mode 100644 index 0000000..59951b9 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega6_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega7.png b/mods/3d_armor/shields/models/shields_cloudshield_mega7.png new file mode 100644 index 0000000..ad3a584 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega7.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega7_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega7_preview.png new file mode 100644 index 0000000..c93e083 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega7_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega8.png b/mods/3d_armor/shields/models/shields_cloudshield_mega8.png new file mode 100644 index 0000000..83215d4 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega8.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega8_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega8_preview.png new file mode 100644 index 0000000..5357f6c Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega8_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega9.png b/mods/3d_armor/shields/models/shields_cloudshield_mega9.png new file mode 100644 index 0000000..8677758 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega9.png differ diff --git a/mods/3d_armor/shields/models/shields_cloudshield_mega9_preview.png b/mods/3d_armor/shields/models/shields_cloudshield_mega9_preview.png new file mode 100644 index 0000000..066fcc8 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_cloudshield_mega9_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega1.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega1.png new file mode 100644 index 0000000..e298702 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega1.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega10.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega10.png new file mode 100644 index 0000000..b1b54c4 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega10.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega11.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega11.png new file mode 100644 index 0000000..3d7e717 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega11.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega12.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega12.png new file mode 100644 index 0000000..d919484 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega12.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega13.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega13.png new file mode 100644 index 0000000..722df34 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega13.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega14.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega14.png new file mode 100644 index 0000000..522e5d5 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega14.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega15.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega15.png new file mode 100644 index 0000000..40d8899 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega15.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega16.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega16.png new file mode 100644 index 0000000..0b5d941 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega16.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega17.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega17.png new file mode 100644 index 0000000..ba7acd3 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega17.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega18.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega18.png new file mode 100644 index 0000000..fa5d0d2 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega18.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega19.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega19.png new file mode 100644 index 0000000..c7c957b Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega19.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega2.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega2.png new file mode 100644 index 0000000..5f0dffa Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega2.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega20.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega20.png new file mode 100644 index 0000000..8f41ac6 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega20.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega21.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega21.png new file mode 100644 index 0000000..ca911c9 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega21.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega22.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega22.png new file mode 100644 index 0000000..6dbb47b Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega22.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega23.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega23.png new file mode 100644 index 0000000..a18f126 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega23.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega24.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega24.png new file mode 100644 index 0000000..4cf0295 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega24.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega25.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega25.png new file mode 100644 index 0000000..5f9e7ee Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega25.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega3.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega3.png new file mode 100644 index 0000000..af6cafb Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega3.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega4.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega4.png new file mode 100644 index 0000000..b86ce6c Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega4.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega5.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega5.png new file mode 100644 index 0000000..8be69e9 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega5.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega6.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega6.png new file mode 100644 index 0000000..83eb571 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega6.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega7.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega7.png new file mode 100644 index 0000000..1c085e7 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega7.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega8.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega8.png new file mode 100644 index 0000000..a737a7d Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega8.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_cloudshield_mega9.png b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega9.png new file mode 100644 index 0000000..2884509 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_cloudshield_mega9.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_supershield1.png b/mods/3d_armor/shields/models/shields_inv_supershield1.png new file mode 100644 index 0000000..25cea32 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_supershield1.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_supershield2.png b/mods/3d_armor/shields/models/shields_inv_supershield2.png new file mode 100644 index 0000000..16bfed5 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_supershield2.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_supershield3.png b/mods/3d_armor/shields/models/shields_inv_supershield3.png new file mode 100644 index 0000000..08fc1e5 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_supershield3.png differ diff --git a/mods/3d_armor/shields/models/shields_inv_supershield4.png b/mods/3d_armor/shields/models/shields_inv_supershield4.png new file mode 100644 index 0000000..2d5fdd7 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_inv_supershield4.png differ diff --git a/mods/3d_armor/shields/models/shields_supershield1.png b/mods/3d_armor/shields/models/shields_supershield1.png new file mode 100644 index 0000000..37906cb Binary files /dev/null and b/mods/3d_armor/shields/models/shields_supershield1.png differ diff --git a/mods/3d_armor/shields/models/shields_supershield1_preview.png b/mods/3d_armor/shields/models/shields_supershield1_preview.png new file mode 100644 index 0000000..d27dfd2 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_supershield1_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_supershield2.png b/mods/3d_armor/shields/models/shields_supershield2.png new file mode 100644 index 0000000..8f9f949 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_supershield2.png differ diff --git a/mods/3d_armor/shields/models/shields_supershield2_preview.png b/mods/3d_armor/shields/models/shields_supershield2_preview.png new file mode 100644 index 0000000..bd9c9b3 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_supershield2_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_supershield3.png b/mods/3d_armor/shields/models/shields_supershield3.png new file mode 100644 index 0000000..950d9a2 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_supershield3.png differ diff --git a/mods/3d_armor/shields/models/shields_supershield3_preview.png b/mods/3d_armor/shields/models/shields_supershield3_preview.png new file mode 100644 index 0000000..de78f26 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_supershield3_preview.png differ diff --git a/mods/3d_armor/shields/models/shields_supershield4.png b/mods/3d_armor/shields/models/shields_supershield4.png new file mode 100644 index 0000000..1681274 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_supershield4.png differ diff --git a/mods/3d_armor/shields/models/shields_supershield4_preview.png b/mods/3d_armor/shields/models/shields_supershield4_preview.png new file mode 100644 index 0000000..5f438c8 Binary files /dev/null and b/mods/3d_armor/shields/models/shields_supershield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_arenashield1.png b/mods/3d_armor/shields/textures/shields_arenashield1.png new file mode 100644 index 0000000..5aae073 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_arenashield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_arenashield1_preview.png b/mods/3d_armor/shields/textures/shields_arenashield1_preview.png new file mode 100644 index 0000000..9111a00 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_arenashield1_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_arenashield2.png b/mods/3d_armor/shields/textures/shields_arenashield2.png new file mode 100644 index 0000000..14ad36f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_arenashield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_arenashield2_preview.png b/mods/3d_armor/shields/textures/shields_arenashield2_preview.png new file mode 100644 index 0000000..77bc4a6 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_arenashield2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_arenashield3.png b/mods/3d_armor/shields/textures/shields_arenashield3.png new file mode 100644 index 0000000..f5bdd23 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_arenashield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_arenashield3_preview.png b/mods/3d_armor/shields/textures/shields_arenashield3_preview.png new file mode 100644 index 0000000..6507398 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_arenashield3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_arenashield4.png b/mods/3d_armor/shields/textures/shields_arenashield4.png new file mode 100644 index 0000000..93b9e17 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_arenashield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_arenashield4_preview.png b/mods/3d_armor/shields/textures/shields_arenashield4_preview.png new file mode 100644 index 0000000..261b05a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_arenashield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield1.png b/mods/3d_armor/shields/textures/shields_energyshield1.png new file mode 100644 index 0000000..c4ac93a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield10.png b/mods/3d_armor/shields/textures/shields_energyshield10.png new file mode 100644 index 0000000..271fe1c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield10.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield10_preview.png b/mods/3d_armor/shields/textures/shields_energyshield10_preview.png new file mode 100644 index 0000000..25b7cfb Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield10_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield11.png b/mods/3d_armor/shields/textures/shields_energyshield11.png new file mode 100644 index 0000000..62197b3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield11.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield11_preview.png b/mods/3d_armor/shields/textures/shields_energyshield11_preview.png new file mode 100644 index 0000000..dfcbf72 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield11_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield12.png b/mods/3d_armor/shields/textures/shields_energyshield12.png new file mode 100644 index 0000000..133c9f2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield12.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield12_preview.png b/mods/3d_armor/shields/textures/shields_energyshield12_preview.png new file mode 100644 index 0000000..976d768 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield12_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield1_preview.png b/mods/3d_armor/shields/textures/shields_energyshield1_preview.png new file mode 100644 index 0000000..2a57909 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield1_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield2.png b/mods/3d_armor/shields/textures/shields_energyshield2.png new file mode 100644 index 0000000..3ef8489 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield2_preview.png b/mods/3d_armor/shields/textures/shields_energyshield2_preview.png new file mode 100644 index 0000000..fb02301 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield3.png b/mods/3d_armor/shields/textures/shields_energyshield3.png new file mode 100644 index 0000000..ac23a71 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield3_preview.png b/mods/3d_armor/shields/textures/shields_energyshield3_preview.png new file mode 100644 index 0000000..95408af Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield4.png b/mods/3d_armor/shields/textures/shields_energyshield4.png new file mode 100644 index 0000000..1f9ca03 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield4_preview.png b/mods/3d_armor/shields/textures/shields_energyshield4_preview.png new file mode 100644 index 0000000..821cf65 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield5.png b/mods/3d_armor/shields/textures/shields_energyshield5.png new file mode 100644 index 0000000..0413371 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield5_preview.png b/mods/3d_armor/shields/textures/shields_energyshield5_preview.png new file mode 100644 index 0000000..59bc634 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield5_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield6.png b/mods/3d_armor/shields/textures/shields_energyshield6.png new file mode 100644 index 0000000..6e7cdda Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield6_preview.png b/mods/3d_armor/shields/textures/shields_energyshield6_preview.png new file mode 100644 index 0000000..6f714c4 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield6_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield7.png b/mods/3d_armor/shields/textures/shields_energyshield7.png new file mode 100644 index 0000000..6c5c3d8 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield7.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield7_preview.png b/mods/3d_armor/shields/textures/shields_energyshield7_preview.png new file mode 100644 index 0000000..a8271ff Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield7_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield8.png b/mods/3d_armor/shields/textures/shields_energyshield8.png new file mode 100644 index 0000000..38965ef Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield8.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield8_preview.png b/mods/3d_armor/shields/textures/shields_energyshield8_preview.png new file mode 100644 index 0000000..cb57fe7 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield8_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield9.png b/mods/3d_armor/shields/textures/shields_energyshield9.png new file mode 100644 index 0000000..8a56ba1 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield9.png differ diff --git a/mods/3d_armor/shields/textures/shields_energyshield9_preview.png b/mods/3d_armor/shields/textures/shields_energyshield9_preview.png new file mode 100644 index 0000000..58fa4c9 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_energyshield9_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_arenashield1.png b/mods/3d_armor/shields/textures/shields_inv_arenashield1.png new file mode 100644 index 0000000..ecce556 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_arenashield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_arenashield2.png b/mods/3d_armor/shields/textures/shields_inv_arenashield2.png new file mode 100644 index 0000000..9a32299 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_arenashield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_arenashield3.png b/mods/3d_armor/shields/textures/shields_inv_arenashield3.png new file mode 100644 index 0000000..fabd229 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_arenashield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_arenashield4.png b/mods/3d_armor/shields/textures/shields_inv_arenashield4.png new file mode 100644 index 0000000..71e8f9c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_arenashield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield1.png b/mods/3d_armor/shields/textures/shields_inv_energyshield1.png new file mode 100644 index 0000000..e14a738 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield10.png b/mods/3d_armor/shields/textures/shields_inv_energyshield10.png new file mode 100644 index 0000000..9ac59ef Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield10.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield11.png b/mods/3d_armor/shields/textures/shields_inv_energyshield11.png new file mode 100644 index 0000000..80eb7ca Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield11.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield12.png b/mods/3d_armor/shields/textures/shields_inv_energyshield12.png new file mode 100644 index 0000000..8373a59 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield12.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield2.png b/mods/3d_armor/shields/textures/shields_inv_energyshield2.png new file mode 100644 index 0000000..f7ab72a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield3.png b/mods/3d_armor/shields/textures/shields_inv_energyshield3.png new file mode 100644 index 0000000..727777a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield4.png b/mods/3d_armor/shields/textures/shields_inv_energyshield4.png new file mode 100644 index 0000000..389c309 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield5.png b/mods/3d_armor/shields/textures/shields_inv_energyshield5.png new file mode 100644 index 0000000..5614de1 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield6.png b/mods/3d_armor/shields/textures/shields_inv_energyshield6.png new file mode 100644 index 0000000..b15668e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield7.png b/mods/3d_armor/shields/textures/shields_inv_energyshield7.png new file mode 100644 index 0000000..f689a0d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield7.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield8.png b/mods/3d_armor/shields/textures/shields_inv_energyshield8.png new file mode 100644 index 0000000..67ab051 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield8.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_energyshield9.png b/mods/3d_armor/shields/textures/shields_inv_energyshield9.png new file mode 100644 index 0000000..40d0b47 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_energyshield9.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_kristallshield1.png b/mods/3d_armor/shields/textures/shields_inv_kristallshield1.png new file mode 100644 index 0000000..f6ca56e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_kristallshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_kristallshield2.png b/mods/3d_armor/shields/textures/shields_inv_kristallshield2.png new file mode 100644 index 0000000..e3544f8 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_kristallshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_kristallshield3.png b/mods/3d_armor/shields/textures/shields_inv_kristallshield3.png new file mode 100644 index 0000000..45ed522 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_kristallshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_kristallshield4.png b/mods/3d_armor/shields/textures/shields_inv_kristallshield4.png new file mode 100644 index 0000000..65daeb1 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_kristallshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_kristallshield5.png b/mods/3d_armor/shields/textures/shields_inv_kristallshield5.png new file mode 100644 index 0000000..9e74593 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_kristallshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_legendenshield1.png b/mods/3d_armor/shields/textures/shields_inv_legendenshield1.png new file mode 100644 index 0000000..c17d2c2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_legendenshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_legendenshield2.png b/mods/3d_armor/shields/textures/shields_inv_legendenshield2.png new file mode 100644 index 0000000..107ed64 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_legendenshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_legendenshield3.png b/mods/3d_armor/shields/textures/shields_inv_legendenshield3.png new file mode 100644 index 0000000..d445e4d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_legendenshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_legendenshield4.png b/mods/3d_armor/shields/textures/shields_inv_legendenshield4.png new file mode 100644 index 0000000..d9a5c06 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_legendenshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_legendenshield5.png b/mods/3d_armor/shields/textures/shields_inv_legendenshield5.png new file mode 100644 index 0000000..54341f0 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_legendenshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_legendenshield6.png b/mods/3d_armor/shields/textures/shields_inv_legendenshield6.png new file mode 100644 index 0000000..505ecd3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_legendenshield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_regnumshield.png b/mods/3d_armor/shields/textures/shields_inv_regnumshield.png new file mode 100644 index 0000000..7795f35 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_regnumshield.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield.png b/mods/3d_armor/shields/textures/shields_inv_shield.png new file mode 100644 index 0000000..3b5f989 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_admin.png b/mods/3d_armor/shields/textures/shields_inv_shield_admin.png new file mode 100644 index 0000000..ae5ab7d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_admin.png differ 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 0000000..67bac0f 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_cactus.png b/mods/3d_armor/shields/textures/shields_inv_shield_cactus.png new file mode 100644 index 0000000..00d1d58 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_cactus.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_crystal.png b/mods/3d_armor/shields/textures/shields_inv_shield_crystal.png new file mode 100644 index 0000000..1ec1981 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_crystal.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 0000000..ea7c567 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_enhanced_cactus.png b/mods/3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png new file mode 100644 index 0000000..39436cd Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_enhanced_cactus.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_enhanced_wood.png b/mods/3d_armor/shields/textures/shields_inv_shield_enhanced_wood.png new file mode 100644 index 0000000..058e042 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_enhanced_wood.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 0000000..8995834 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_mega1.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega1.png new file mode 100644 index 0000000..757e07e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega1.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega10.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega10.png new file mode 100644 index 0000000..4824a8a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega10.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega11.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega11.png new file mode 100644 index 0000000..68c77bd Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega11.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega12.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega12.png new file mode 100644 index 0000000..08aee41 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega12.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega13.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega13.png new file mode 100644 index 0000000..63758cc Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega13.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega14.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega14.png new file mode 100644 index 0000000..9a6cdb4 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega14.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega15.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega15.png new file mode 100644 index 0000000..fcb7910 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega15.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega16.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega16.png new file mode 100644 index 0000000..dcadaab Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega16.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega17.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega17.png new file mode 100644 index 0000000..d156732 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega17.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega18.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega18.png new file mode 100644 index 0000000..2961b00 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega18.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega19.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega19.png new file mode 100644 index 0000000..ba9ab4f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega19.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega2.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega2.png new file mode 100644 index 0000000..ab463f9 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega2.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega20.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega20.png new file mode 100644 index 0000000..f2a9331 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega20.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega3.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega3.png new file mode 100644 index 0000000..ac7b8de Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega3.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega4.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega4.png new file mode 100644 index 0000000..cea4f71 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega4.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega5.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega5.png new file mode 100644 index 0000000..ccee4c0 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega5.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega6.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega6.png new file mode 100644 index 0000000..7f0feb7 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega6.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega7.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega7.png new file mode 100644 index 0000000..d6d4f1e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega7.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega8.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega8.png new file mode 100644 index 0000000..efed85b Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega8.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_shield_mega9.png b/mods/3d_armor/shields/textures/shields_inv_shield_mega9.png new file mode 100644 index 0000000..3c65b3d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_shield_mega9.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 0000000..d32665a 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 0000000..178b507 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 0000000..dcbe933 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_inv_superenergyshield1.png b/mods/3d_armor/shields/textures/shields_inv_superenergyshield1.png new file mode 100644 index 0000000..05620f8 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_superenergyshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_superenergyshield2.png b/mods/3d_armor/shields/textures/shields_inv_superenergyshield2.png new file mode 100644 index 0000000..eac7382 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_superenergyshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_superenergyshield3.png b/mods/3d_armor/shields/textures/shields_inv_superenergyshield3.png new file mode 100644 index 0000000..5b56e71 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_superenergyshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_superenergyshield4.png b/mods/3d_armor/shields/textures/shields_inv_superenergyshield4.png new file mode 100644 index 0000000..51ad116 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_superenergyshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_superenergyshield5.png b/mods/3d_armor/shields/textures/shields_inv_superenergyshield5.png new file mode 100644 index 0000000..939f574 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_superenergyshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_superenergyshield6.png b/mods/3d_armor/shields/textures/shields_inv_superenergyshield6.png new file mode 100644 index 0000000..08e5097 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_superenergyshield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_superenergyshield7.png b/mods/3d_armor/shields/textures/shields_inv_superenergyshield7.png new file mode 100644 index 0000000..edc7523 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_superenergyshield7.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_superlegendenshield.png b/mods/3d_armor/shields/textures/shields_inv_superlegendenshield.png new file mode 100644 index 0000000..cceb838 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_superlegendenshield.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_superultrashield.png b/mods/3d_armor/shields/textures/shields_inv_superultrashield.png new file mode 100644 index 0000000..167993a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_superultrashield.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield1.png b/mods/3d_armor/shields/textures/shields_inv_titanshield1.png new file mode 100644 index 0000000..5e99897 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield10.png b/mods/3d_armor/shields/textures/shields_inv_titanshield10.png new file mode 100644 index 0000000..fc0780d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield10.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield2.png b/mods/3d_armor/shields/textures/shields_inv_titanshield2.png new file mode 100644 index 0000000..c56b59e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield3.png b/mods/3d_armor/shields/textures/shields_inv_titanshield3.png new file mode 100644 index 0000000..b6e261c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield4.png b/mods/3d_armor/shields/textures/shields_inv_titanshield4.png new file mode 100644 index 0000000..7d0206c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield5.png b/mods/3d_armor/shields/textures/shields_inv_titanshield5.png new file mode 100644 index 0000000..be226ad Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield6.png b/mods/3d_armor/shields/textures/shields_inv_titanshield6.png new file mode 100644 index 0000000..4c966ac Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield7.png b/mods/3d_armor/shields/textures/shields_inv_titanshield7.png new file mode 100644 index 0000000..4ebcfed Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield7.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield8.png b/mods/3d_armor/shields/textures/shields_inv_titanshield8.png new file mode 100644 index 0000000..f742038 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield8.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_titanshield9.png b/mods/3d_armor/shields/textures/shields_inv_titanshield9.png new file mode 100644 index 0000000..6fb63f7 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_titanshield9.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield1.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield1.png new file mode 100644 index 0000000..8357b67 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield10.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield10.png new file mode 100644 index 0000000..08830a2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield10.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield11.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield11.png new file mode 100644 index 0000000..291a3a0 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield11.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield12.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield12.png new file mode 100644 index 0000000..d930652 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield12.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield13.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield13.png new file mode 100644 index 0000000..42af08e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield13.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield14.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield14.png new file mode 100644 index 0000000..6888193 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield14.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield15.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield15.png new file mode 100644 index 0000000..a0b4ad9 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield15.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield16.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield16.png new file mode 100644 index 0000000..add2bf5 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield16.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield17.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield17.png new file mode 100644 index 0000000..2d0e7a7 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield17.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield18.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield18.png new file mode 100644 index 0000000..ebaaaab Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield18.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield19.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield19.png new file mode 100644 index 0000000..0585ebf Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield19.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield2.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield2.png new file mode 100644 index 0000000..27b2d5c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield20.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield20.png new file mode 100644 index 0000000..5c293e8 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield20.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield21.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield21.png new file mode 100644 index 0000000..4215be4 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield21.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield22.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield22.png new file mode 100644 index 0000000..b085561 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield22.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield23.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield23.png new file mode 100644 index 0000000..d61d689 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield23.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield24.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield24.png new file mode 100644 index 0000000..3793a3d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield24.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield25.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield25.png new file mode 100644 index 0000000..49cde47 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield25.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield3.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield3.png new file mode 100644 index 0000000..05f7e4e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield4.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield4.png new file mode 100644 index 0000000..1979ed6 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield5.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield5.png new file mode 100644 index 0000000..bcbea8e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield6.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield6.png new file mode 100644 index 0000000..a7e8e9f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield7.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield7.png new file mode 100644 index 0000000..58747ac Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield7.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield8.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield8.png new file mode 100644 index 0000000..1ae0cbc Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield8.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_ultrashield9.png b/mods/3d_armor/shields/textures/shields_inv_ultrashield9.png new file mode 100644 index 0000000..b35dce4 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_ultrashield9.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_uraniumshield1.png b/mods/3d_armor/shields/textures/shields_inv_uraniumshield1.png new file mode 100644 index 0000000..e092e32 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_uraniumshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_inv_uraniumshield2.png b/mods/3d_armor/shields/textures/shields_inv_uraniumshield2.png new file mode 100644 index 0000000..4298391 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_inv_uraniumshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield1.png b/mods/3d_armor/shields/textures/shields_kristallshield1.png new file mode 100644 index 0000000..0a6b7dc Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield1_preview.png b/mods/3d_armor/shields/textures/shields_kristallshield1_preview.png new file mode 100644 index 0000000..0cc8f9e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield1_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield2.png b/mods/3d_armor/shields/textures/shields_kristallshield2.png new file mode 100644 index 0000000..b978d3c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield2_preview.png b/mods/3d_armor/shields/textures/shields_kristallshield2_preview.png new file mode 100644 index 0000000..97e0c20 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield3.png b/mods/3d_armor/shields/textures/shields_kristallshield3.png new file mode 100644 index 0000000..4151951 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield3_preview.png b/mods/3d_armor/shields/textures/shields_kristallshield3_preview.png new file mode 100644 index 0000000..3516314 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield4.png b/mods/3d_armor/shields/textures/shields_kristallshield4.png new file mode 100644 index 0000000..e868180 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield4_preview.png b/mods/3d_armor/shields/textures/shields_kristallshield4_preview.png new file mode 100644 index 0000000..6c28f75 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield5.png b/mods/3d_armor/shields/textures/shields_kristallshield5.png new file mode 100644 index 0000000..a8529e2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_kristallshield5_preview.png b/mods/3d_armor/shields/textures/shields_kristallshield5_preview.png new file mode 100644 index 0000000..567c94d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_kristallshield5_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield1.png b/mods/3d_armor/shields/textures/shields_legendenshield1.png new file mode 100644 index 0000000..31f4928 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield1_preview.png b/mods/3d_armor/shields/textures/shields_legendenshield1_preview.png new file mode 100644 index 0000000..5dc58e4 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield1_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield2.png b/mods/3d_armor/shields/textures/shields_legendenshield2.png new file mode 100644 index 0000000..78e66a2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield2_preview.png b/mods/3d_armor/shields/textures/shields_legendenshield2_preview.png new file mode 100644 index 0000000..75fb322 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield3.png b/mods/3d_armor/shields/textures/shields_legendenshield3.png new file mode 100644 index 0000000..2a2660a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield3_preview.png b/mods/3d_armor/shields/textures/shields_legendenshield3_preview.png new file mode 100644 index 0000000..bc75986 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield4.png b/mods/3d_armor/shields/textures/shields_legendenshield4.png new file mode 100644 index 0000000..0b7dafe Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield4_preview.png b/mods/3d_armor/shields/textures/shields_legendenshield4_preview.png new file mode 100644 index 0000000..e086b9a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield5.png b/mods/3d_armor/shields/textures/shields_legendenshield5.png new file mode 100644 index 0000000..3d67e3e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield5_preview.png b/mods/3d_armor/shields/textures/shields_legendenshield5_preview.png new file mode 100644 index 0000000..08029dc Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield5_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield6.png b/mods/3d_armor/shields/textures/shields_legendenshield6.png new file mode 100644 index 0000000..f8fdd79 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_legendenshield6_preview.png b/mods/3d_armor/shields/textures/shields_legendenshield6_preview.png new file mode 100644 index 0000000..451201e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_legendenshield6_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_regnumshield.png b/mods/3d_armor/shields/textures/shields_regnumshield.png new file mode 100644 index 0000000..5176bdf Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_regnumshield.png differ diff --git a/mods/3d_armor/shields/textures/shields_regnumshield2.png b/mods/3d_armor/shields/textures/shields_regnumshield2.png new file mode 100644 index 0000000..5176bdf Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_regnumshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_regnumshield2_preview.png b/mods/3d_armor/shields/textures/shields_regnumshield2_preview.png new file mode 100644 index 0000000..1e3a341 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_regnumshield2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_regnumshield3.png b/mods/3d_armor/shields/textures/shields_regnumshield3.png new file mode 100644 index 0000000..5176bdf Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_regnumshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_regnumshield3_preview.png b/mods/3d_armor/shields/textures/shields_regnumshield3_preview.png new file mode 100644 index 0000000..1e3a341 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_regnumshield3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_regnumshield4.png b/mods/3d_armor/shields/textures/shields_regnumshield4.png new file mode 100644 index 0000000..5176bdf Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_regnumshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_regnumshield4_preview.png b/mods/3d_armor/shields/textures/shields_regnumshield4_preview.png new file mode 100644 index 0000000..1e3a341 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_regnumshield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_regnumshield_preview.png b/mods/3d_armor/shields/textures/shields_regnumshield_preview.png new file mode 100644 index 0000000..1e3a341 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_regnumshield_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield.png b/mods/3d_armor/shields/textures/shields_shield.png new file mode 100644 index 0000000..7504d7c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_admin.png b/mods/3d_armor/shields/textures/shields_shield_admin.png new file mode 100644 index 0000000..430c3e3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_admin.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_admin2.png b/mods/3d_armor/shields/textures/shields_shield_admin2.png new file mode 100644 index 0000000..430c3e3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_admin2.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_admin2_preview.png b/mods/3d_armor/shields/textures/shields_shield_admin2_preview.png new file mode 100644 index 0000000..762c2d2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_admin2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_admin3.png b/mods/3d_armor/shields/textures/shields_shield_admin3.png new file mode 100644 index 0000000..430c3e3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_admin3.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_admin3_preview.png b/mods/3d_armor/shields/textures/shields_shield_admin3_preview.png new file mode 100644 index 0000000..762c2d2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_admin3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_admin4.png b/mods/3d_armor/shields/textures/shields_shield_admin4.png new file mode 100644 index 0000000..430c3e3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_admin4.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_admin4_preview.png b/mods/3d_armor/shields/textures/shields_shield_admin4_preview.png new file mode 100644 index 0000000..762c2d2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_admin4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_admin_preview.png b/mods/3d_armor/shields/textures/shields_shield_admin_preview.png new file mode 100644 index 0000000..762c2d2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_admin_preview.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 0000000..89d6799 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 0000000..5f9ca7b 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_cactus.png b/mods/3d_armor/shields/textures/shields_shield_cactus.png new file mode 100644 index 0000000..8679aa5 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_cactus.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_cactus_preview.png b/mods/3d_armor/shields/textures/shields_shield_cactus_preview.png new file mode 100644 index 0000000..ae83661 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_cactus_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_crystal.png b/mods/3d_armor/shields/textures/shields_shield_crystal.png new file mode 100644 index 0000000..888bc5a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_crystal.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_crystal_preview.png b/mods/3d_armor/shields/textures/shields_shield_crystal_preview.png new file mode 100644 index 0000000..299776f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_crystal_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 0000000..e4938f9 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 0000000..afd004e 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_enhanced_cactus.png b/mods/3d_armor/shields/textures/shields_shield_enhanced_cactus.png new file mode 100644 index 0000000..50d7673 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_enhanced_cactus.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png b/mods/3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png new file mode 100644 index 0000000..b15df06 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_enhanced_cactus_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_enhanced_wood.png b/mods/3d_armor/shields/textures/shields_shield_enhanced_wood.png new file mode 100644 index 0000000..14bd057 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_enhanced_wood.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png b/mods/3d_armor/shields/textures/shields_shield_enhanced_wood_preview.png new file mode 100644 index 0000000..9298383 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_enhanced_wood_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 0000000..b198d18 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 0000000..66d8f2e 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_mega1.png b/mods/3d_armor/shields/textures/shields_shield_mega1.png new file mode 100644 index 0000000..0c92e0e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega1.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega10.png b/mods/3d_armor/shields/textures/shields_shield_mega10.png new file mode 100644 index 0000000..83164ba Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega10.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega10_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega10_preview.png new file mode 100644 index 0000000..1698d63 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega10_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega11.png b/mods/3d_armor/shields/textures/shields_shield_mega11.png new file mode 100644 index 0000000..69c7c45 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega11.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega11_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega11_preview.png new file mode 100644 index 0000000..1bd7cd1 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega11_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega12.png b/mods/3d_armor/shields/textures/shields_shield_mega12.png new file mode 100644 index 0000000..0496d76 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega12.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega12_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega12_preview.png new file mode 100644 index 0000000..9bb6fa0 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega12_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega13.png b/mods/3d_armor/shields/textures/shields_shield_mega13.png new file mode 100644 index 0000000..b59284d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega13.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega13_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega13_preview.png new file mode 100644 index 0000000..aedaca4 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega13_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega14.png b/mods/3d_armor/shields/textures/shields_shield_mega14.png new file mode 100644 index 0000000..e0092ba Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega14.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega14_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega14_preview.png new file mode 100644 index 0000000..f463ae2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega14_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega15.png b/mods/3d_armor/shields/textures/shields_shield_mega15.png new file mode 100644 index 0000000..1e7fd0b Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega15.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega15_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega15_preview.png new file mode 100644 index 0000000..fd8eb3e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega15_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega16.png b/mods/3d_armor/shields/textures/shields_shield_mega16.png new file mode 100644 index 0000000..04b9b99 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega16.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega16_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega16_preview.png new file mode 100644 index 0000000..4ff824a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega16_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega17.png b/mods/3d_armor/shields/textures/shields_shield_mega17.png new file mode 100644 index 0000000..9bbcb46 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega17.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega17_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega17_preview.png new file mode 100644 index 0000000..89f1906 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega17_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega18.png b/mods/3d_armor/shields/textures/shields_shield_mega18.png new file mode 100644 index 0000000..b84cc43 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega18.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega18_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega18_preview.png new file mode 100644 index 0000000..c1ed70c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega18_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega19.png b/mods/3d_armor/shields/textures/shields_shield_mega19.png new file mode 100644 index 0000000..195c1c1 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega19.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega19_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega19_preview.png new file mode 100644 index 0000000..c16bdb8 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega19_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega1_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega1_preview.png new file mode 100644 index 0000000..ca3a041 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega1_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega2.png b/mods/3d_armor/shields/textures/shields_shield_mega2.png new file mode 100644 index 0000000..a62da02 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega2.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega20.png b/mods/3d_armor/shields/textures/shields_shield_mega20.png new file mode 100644 index 0000000..c0b30b3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega20.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega20_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega20_preview.png new file mode 100644 index 0000000..b3bc71f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega20_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega2_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega2_preview.png new file mode 100644 index 0000000..ff89e1f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega3.png b/mods/3d_armor/shields/textures/shields_shield_mega3.png new file mode 100644 index 0000000..66300e6 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega3.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega3_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega3_preview.png new file mode 100644 index 0000000..c957ec0 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega4.png b/mods/3d_armor/shields/textures/shields_shield_mega4.png new file mode 100644 index 0000000..838ab73 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega4.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega4_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega4_preview.png new file mode 100644 index 0000000..3a4bf31 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega5.png b/mods/3d_armor/shields/textures/shields_shield_mega5.png new file mode 100644 index 0000000..47ea253 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega5.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega5_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega5_preview.png new file mode 100644 index 0000000..14aa2e8 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega5_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega6.png b/mods/3d_armor/shields/textures/shields_shield_mega6.png new file mode 100644 index 0000000..17ef8e4 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega6.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega6_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega6_preview.png new file mode 100644 index 0000000..cc49579 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega6_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega7.png b/mods/3d_armor/shields/textures/shields_shield_mega7.png new file mode 100644 index 0000000..65aa777 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega7.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega7_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega7_preview.png new file mode 100644 index 0000000..fd682d8 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega7_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega8.png b/mods/3d_armor/shields/textures/shields_shield_mega8.png new file mode 100644 index 0000000..d4ae7ec Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega8.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega8_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega8_preview.png new file mode 100644 index 0000000..b301997 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega8_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega9.png b/mods/3d_armor/shields/textures/shields_shield_mega9.png new file mode 100644 index 0000000..ad6f5ba Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega9.png differ diff --git a/mods/3d_armor/shields/textures/shields_shield_mega9_preview.png b/mods/3d_armor/shields/textures/shields_shield_mega9_preview.png new file mode 100644 index 0000000..d1eba88 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_mega9_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 0000000..2fb622e 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 0000000..45306e3 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_preview.png b/mods/3d_armor/shields/textures/shields_shield_preview.png new file mode 100644 index 0000000..42f99ce Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_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 0000000..cfe58a1 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 0000000..0a3d36a 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 0000000..baf092d 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 0000000..b446e4e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_shield_wood_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield1.png b/mods/3d_armor/shields/textures/shields_superenergyshield1.png new file mode 100644 index 0000000..09d6ab0 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield1_preview.png b/mods/3d_armor/shields/textures/shields_superenergyshield1_preview.png new file mode 100644 index 0000000..cee4a6b Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield1_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield2.png b/mods/3d_armor/shields/textures/shields_superenergyshield2.png new file mode 100644 index 0000000..a427e38 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield2_preview.png b/mods/3d_armor/shields/textures/shields_superenergyshield2_preview.png new file mode 100644 index 0000000..3f13268 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield3.png b/mods/3d_armor/shields/textures/shields_superenergyshield3.png new file mode 100644 index 0000000..bb18f7a Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield3_preview.png b/mods/3d_armor/shields/textures/shields_superenergyshield3_preview.png new file mode 100644 index 0000000..eb48205 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield4.png b/mods/3d_armor/shields/textures/shields_superenergyshield4.png new file mode 100644 index 0000000..36f12c3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield4_preview.png b/mods/3d_armor/shields/textures/shields_superenergyshield4_preview.png new file mode 100644 index 0000000..2dd8971 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield5.png b/mods/3d_armor/shields/textures/shields_superenergyshield5.png new file mode 100644 index 0000000..4e8392c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield5_preview.png b/mods/3d_armor/shields/textures/shields_superenergyshield5_preview.png new file mode 100644 index 0000000..2dc8d0e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield5_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield6.png b/mods/3d_armor/shields/textures/shields_superenergyshield6.png new file mode 100644 index 0000000..6c142d9 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield6_preview.png b/mods/3d_armor/shields/textures/shields_superenergyshield6_preview.png new file mode 100644 index 0000000..ccd8ec3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield6_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield7.png b/mods/3d_armor/shields/textures/shields_superenergyshield7.png new file mode 100644 index 0000000..8230233 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield7.png differ diff --git a/mods/3d_armor/shields/textures/shields_superenergyshield7_preview.png b/mods/3d_armor/shields/textures/shields_superenergyshield7_preview.png new file mode 100644 index 0000000..c0417d2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superenergyshield7_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superlegendenshield.png b/mods/3d_armor/shields/textures/shields_superlegendenshield.png new file mode 100644 index 0000000..6931812 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superlegendenshield.png differ diff --git a/mods/3d_armor/shields/textures/shields_superlegendenshield2.png b/mods/3d_armor/shields/textures/shields_superlegendenshield2.png new file mode 100644 index 0000000..6931812 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superlegendenshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_superlegendenshield2_preview.png b/mods/3d_armor/shields/textures/shields_superlegendenshield2_preview.png new file mode 100644 index 0000000..950ef3c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superlegendenshield2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superlegendenshield3.png b/mods/3d_armor/shields/textures/shields_superlegendenshield3.png new file mode 100644 index 0000000..6931812 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superlegendenshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_superlegendenshield3_preview.png b/mods/3d_armor/shields/textures/shields_superlegendenshield3_preview.png new file mode 100644 index 0000000..950ef3c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superlegendenshield3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superlegendenshield4.png b/mods/3d_armor/shields/textures/shields_superlegendenshield4.png new file mode 100644 index 0000000..6931812 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superlegendenshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_superlegendenshield4_preview.png b/mods/3d_armor/shields/textures/shields_superlegendenshield4_preview.png new file mode 100644 index 0000000..950ef3c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superlegendenshield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superlegendenshield_preview.png b/mods/3d_armor/shields/textures/shields_superlegendenshield_preview.png new file mode 100644 index 0000000..950ef3c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superlegendenshield_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_superultrashield.png b/mods/3d_armor/shields/textures/shields_superultrashield.png new file mode 100644 index 0000000..8f28f9e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superultrashield.png differ diff --git a/mods/3d_armor/shields/textures/shields_superultrashield_preview.png b/mods/3d_armor/shields/textures/shields_superultrashield_preview.png new file mode 100644 index 0000000..332a30f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_superultrashield_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield1.png b/mods/3d_armor/shields/textures/shields_titanshield1.png new file mode 100644 index 0000000..0fce629 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield10.png b/mods/3d_armor/shields/textures/shields_titanshield10.png new file mode 100644 index 0000000..dd6cb07 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield10.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield10_preview.png b/mods/3d_armor/shields/textures/shields_titanshield10_preview.png new file mode 100644 index 0000000..bce30b8 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield10_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield1_preview.png b/mods/3d_armor/shields/textures/shields_titanshield1_preview.png new file mode 100644 index 0000000..bbc2134 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield1_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield2.png b/mods/3d_armor/shields/textures/shields_titanshield2.png new file mode 100644 index 0000000..5ed0702 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield2_preview.png b/mods/3d_armor/shields/textures/shields_titanshield2_preview.png new file mode 100644 index 0000000..ccac9da Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield3.png b/mods/3d_armor/shields/textures/shields_titanshield3.png new file mode 100644 index 0000000..95b123f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield3_preview.png b/mods/3d_armor/shields/textures/shields_titanshield3_preview.png new file mode 100644 index 0000000..0fda844 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield4.png b/mods/3d_armor/shields/textures/shields_titanshield4.png new file mode 100644 index 0000000..a071f18 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield4_preview.png b/mods/3d_armor/shields/textures/shields_titanshield4_preview.png new file mode 100644 index 0000000..6e8623d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield5.png b/mods/3d_armor/shields/textures/shields_titanshield5.png new file mode 100644 index 0000000..260074b Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield5_preview.png b/mods/3d_armor/shields/textures/shields_titanshield5_preview.png new file mode 100644 index 0000000..c642816 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield5_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield6.png b/mods/3d_armor/shields/textures/shields_titanshield6.png new file mode 100644 index 0000000..10126a5 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield6_preview.png b/mods/3d_armor/shields/textures/shields_titanshield6_preview.png new file mode 100644 index 0000000..348d8f3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield6_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield7.png b/mods/3d_armor/shields/textures/shields_titanshield7.png new file mode 100644 index 0000000..824e260 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield7.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield7_preview.png b/mods/3d_armor/shields/textures/shields_titanshield7_preview.png new file mode 100644 index 0000000..9a37668 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield7_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield8.png b/mods/3d_armor/shields/textures/shields_titanshield8.png new file mode 100644 index 0000000..a74010e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield8.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield8_preview.png b/mods/3d_armor/shields/textures/shields_titanshield8_preview.png new file mode 100644 index 0000000..e7ee93c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield8_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield9.png b/mods/3d_armor/shields/textures/shields_titanshield9.png new file mode 100644 index 0000000..9e6ba89 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield9.png differ diff --git a/mods/3d_armor/shields/textures/shields_titanshield9_preview.png b/mods/3d_armor/shields/textures/shields_titanshield9_preview.png new file mode 100644 index 0000000..8999032 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_titanshield9_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield1.png b/mods/3d_armor/shields/textures/shields_ultrashield1.png new file mode 100644 index 0000000..08e7fbd Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield10.png b/mods/3d_armor/shields/textures/shields_ultrashield10.png new file mode 100644 index 0000000..b6ca8e1 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield10.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield10_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield10_preview.png new file mode 100644 index 0000000..0cd9f53 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield10_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield11.png b/mods/3d_armor/shields/textures/shields_ultrashield11.png new file mode 100644 index 0000000..a9c609c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield11.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield11_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield11_preview.png new file mode 100644 index 0000000..b7c497d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield11_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield12.png b/mods/3d_armor/shields/textures/shields_ultrashield12.png new file mode 100644 index 0000000..4f37256 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield12.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield12_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield12_preview.png new file mode 100644 index 0000000..ef2e7fb Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield12_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield13.png b/mods/3d_armor/shields/textures/shields_ultrashield13.png new file mode 100644 index 0000000..e4243af Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield13.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield13_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield13_preview.png new file mode 100644 index 0000000..5e031e3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield13_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield14.png b/mods/3d_armor/shields/textures/shields_ultrashield14.png new file mode 100644 index 0000000..7936c4f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield14.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield14_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield14_preview.png new file mode 100644 index 0000000..012d292 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield14_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield15.png b/mods/3d_armor/shields/textures/shields_ultrashield15.png new file mode 100644 index 0000000..826962c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield15.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield15_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield15_preview.png new file mode 100644 index 0000000..b063ca7 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield15_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield16.png b/mods/3d_armor/shields/textures/shields_ultrashield16.png new file mode 100644 index 0000000..fa4a090 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield16.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield16_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield16_preview.png new file mode 100644 index 0000000..86bfd2e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield16_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield17.png b/mods/3d_armor/shields/textures/shields_ultrashield17.png new file mode 100644 index 0000000..067c60e Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield17.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield17_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield17_preview.png new file mode 100644 index 0000000..eec0f2d Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield17_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield18.png b/mods/3d_armor/shields/textures/shields_ultrashield18.png new file mode 100644 index 0000000..bb9a47f Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield18.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield18_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield18_preview.png new file mode 100644 index 0000000..abbca68 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield18_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield19.png b/mods/3d_armor/shields/textures/shields_ultrashield19.png new file mode 100644 index 0000000..b90a3ce Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield19.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield19_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield19_preview.png new file mode 100644 index 0000000..44267e3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield19_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield1_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield1_preview.png new file mode 100644 index 0000000..8840f2c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield1_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield2.png b/mods/3d_armor/shields/textures/shields_ultrashield2.png new file mode 100644 index 0000000..7969e74 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield20.png b/mods/3d_armor/shields/textures/shields_ultrashield20.png new file mode 100644 index 0000000..9be5bd5 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield20.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield20_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield20_preview.png new file mode 100644 index 0000000..8964001 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield20_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield21.png b/mods/3d_armor/shields/textures/shields_ultrashield21.png new file mode 100644 index 0000000..45bbb81 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield21.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield21_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield21_preview.png new file mode 100644 index 0000000..64e56b3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield21_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield22.png b/mods/3d_armor/shields/textures/shields_ultrashield22.png new file mode 100644 index 0000000..cda94d1 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield22.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield22_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield22_preview.png new file mode 100644 index 0000000..f159b96 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield22_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield23.png b/mods/3d_armor/shields/textures/shields_ultrashield23.png new file mode 100644 index 0000000..887f4ef Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield23.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield23_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield23_preview.png new file mode 100644 index 0000000..6619593 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield23_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield24.png b/mods/3d_armor/shields/textures/shields_ultrashield24.png new file mode 100644 index 0000000..698cb49 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield24.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield24_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield24_preview.png new file mode 100644 index 0000000..626466b Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield24_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield25.png b/mods/3d_armor/shields/textures/shields_ultrashield25.png new file mode 100644 index 0000000..149829c Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield25.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield25_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield25_preview.png new file mode 100644 index 0000000..f3470e7 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield25_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield2_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield2_preview.png new file mode 100644 index 0000000..12e49b9 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield2_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield3.png b/mods/3d_armor/shields/textures/shields_ultrashield3.png new file mode 100644 index 0000000..f817c08 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield3.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield3_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield3_preview.png new file mode 100644 index 0000000..6849dc3 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield3_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield4.png b/mods/3d_armor/shields/textures/shields_ultrashield4.png new file mode 100644 index 0000000..6715101 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield4.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield4_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield4_preview.png new file mode 100644 index 0000000..806abba Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield4_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield5.png b/mods/3d_armor/shields/textures/shields_ultrashield5.png new file mode 100644 index 0000000..8ce40df Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield5.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield5_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield5_preview.png new file mode 100644 index 0000000..0d006f9 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield5_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield6.png b/mods/3d_armor/shields/textures/shields_ultrashield6.png new file mode 100644 index 0000000..5521652 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield6.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield6_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield6_preview.png new file mode 100644 index 0000000..b66c965 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield6_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield7.png b/mods/3d_armor/shields/textures/shields_ultrashield7.png new file mode 100644 index 0000000..41d28b7 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield7.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield7_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield7_preview.png new file mode 100644 index 0000000..ca806a0 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield7_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield8.png b/mods/3d_armor/shields/textures/shields_ultrashield8.png new file mode 100644 index 0000000..cff6eac Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield8.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield8_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield8_preview.png new file mode 100644 index 0000000..27d131b Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield8_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield9.png b/mods/3d_armor/shields/textures/shields_ultrashield9.png new file mode 100644 index 0000000..3f76cea Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield9.png differ diff --git a/mods/3d_armor/shields/textures/shields_ultrashield9_preview.png b/mods/3d_armor/shields/textures/shields_ultrashield9_preview.png new file mode 100644 index 0000000..247d491 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_ultrashield9_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_uraniumshield1.png b/mods/3d_armor/shields/textures/shields_uraniumshield1.png new file mode 100644 index 0000000..5445376 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_uraniumshield1.png differ diff --git a/mods/3d_armor/shields/textures/shields_uraniumshield1_preview.png b/mods/3d_armor/shields/textures/shields_uraniumshield1_preview.png new file mode 100644 index 0000000..86e7958 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_uraniumshield1_preview.png differ diff --git a/mods/3d_armor/shields/textures/shields_uraniumshield2.png b/mods/3d_armor/shields/textures/shields_uraniumshield2.png new file mode 100644 index 0000000..8c1cdd2 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_uraniumshield2.png differ diff --git a/mods/3d_armor/shields/textures/shields_uraniumshield2_preview.png b/mods/3d_armor/shields/textures/shields_uraniumshield2_preview.png new file mode 100644 index 0000000..0395c48 Binary files /dev/null and b/mods/3d_armor/shields/textures/shields_uraniumshield2_preview.png differ diff --git a/mods/3d_armor/shields/tutorial.lua b/mods/3d_armor/shields/tutorial.lua new file mode 100644 index 0000000..a0e8d09 --- /dev/null +++ b/mods/3d_armor/shields/tutorial.lua @@ -0,0 +1,224 @@ +minetest.register_tool("shields:shield", { + description = "Shield\nShield-lv.0", + inventory_image = "shields_inv_shield.png", + groups = {armor_shield=1, armor_heal=0, armor_use=0}, + wear = 0, +}) +for i=1,20 do + minetest.register_tool("shields:shield_mega"..i, { + description = "Megashield lv."..i.."\nShield-lv."..i, + inventory_image = "shields_inv_shield_mega"..i..".png", + groups = {armor_shield=i, armor_heal=0, armor_use=0, armor_fire=0.2*i}, + wear = 0, + }) +end +for i=1,25 do + minetest.register_tool("shields:cloudshield_mega"..i, { + description = "Cloudshield lv."..i.."\nShield-lv."..(i+20), + inventory_image = "shields_inv_cloudshield_mega"..i..".png", + groups = {armor_shield=20+i, armor_heal=1, armor_use=0, armor_fire=0.2*(i+20)}, + wear = 0, + }) +end +for i=1,4 do + minetest.register_tool("shields:supershield"..i, { + description = "Supershield lv."..i.."\nShield-lv."..(i+45), + inventory_image = "shields_inv_supershield"..i..".png", + groups = {armor_shield=45+i, armor_heal=2, armor_use=0, armor_fire=0.2*(i+45)}, + wear = 0, + }) +end +for i=1,2 do + minetest.register_tool("shields:uraniumshield"..i, { + description = "Uraniumshield lv."..i.."\nShield-lv."..(i+49), + inventory_image = "shields_inv_uraniumshield"..i..".png", + groups = {armor_shield=49+i, armor_heal=3, armor_use=0, armor_fire=0.2*(i+49)}, + wear = 0, + }) +end +for i=1,12 do + minetest.register_tool("shields:energyshield"..i, { + description = "Energyshield lv."..i.."\nShield-lv."..(i+51), + inventory_image = "shields_inv_energyshield"..i..".png", + groups = {armor_shield=51+i, armor_heal=4, armor_use=0, armor_fire=0.2*(i+51)}, + wear = 0, + }) +end +for i=1,7 do + minetest.register_tool("shields:superenergyshield"..i, { + description = "Superenergyshield lv."..i.."\nShield-lv."..(i+63), + inventory_image = "shields_inv_superenergyshield"..i..".png", + groups = {armor_shield=63+i, armor_heal=5, armor_use=0, armor_fire=0.2*(i+63)}, + wear = 0, + }) +end +for i=1,5 do + minetest.register_tool("shields:kristallshield"..i, { + description = "Crystalshield lv."..i.."\nShield-lv."..(i+70), + inventory_image = "shields_inv_kristallshield"..i..".png", + groups = {armor_shield=70+i, armor_heal=6, armor_use=0, armor_fire=0.2*(i+70)}, + wear = 0, + }) +end +for i=1,25 do + minetest.register_tool("shields:ultrashield"..i, { + description = "Ultrashield lv."..i.."\nShield-lv."..(i+75), + inventory_image = "shields_inv_ultrashield"..i..".png", + groups = {armor_shield=75+i, armor_heal=7, armor_use=0, armor_fire=0.2*(i+75)}, + wear = 0, + }) +end +minetest.register_tool("shields:superultrashield", { + description = "Superultrashield\nShield-lv.101", + inventory_image = "shields_inv_superultrashield.png", + groups = {armor_shield=101, armor_heal=8, armor_use=0,armor_fire=20.2}, + wear = 0, +}) +for i=1,4 do + minetest.register_tool("shields:arenashield"..i, { + description = "Arenashield lv."..i.."\nShield-lv."..(i+101), + inventory_image = "shields_inv_arenashield"..i..".png", + groups = {armor_shield=101+i, armor_heal=9, armor_use=0, armor_fire=0.2*(i+101)}, + wear = 0, + }) +end +for i=1,10 do + minetest.register_tool("shields:titanshield"..i, { + description = "Titanshield lv."..i.."\nShield-lv."..(i+105), + inventory_image = "shields_inv_titanshield"..i..".png", + groups = {armor_shield=105+i, armor_heal=10, armor_use=0, armor_fire=0.2*(i+105)}, + wear = 0, + }) +end +for i=1,6 do + minetest.register_tool("shields:legendenshield"..i, { + description = "Legendshield lv."..i.."\nShield-lv."..(i+115), + inventory_image = "shields_inv_legendenshield"..i..".png", + groups = {armor_shield=115+i, armor_heal=11, armor_use=0, armor_fire=0.2*(i+115)}, + wear = 0, + }) +end +minetest.register_tool("shields:superlegendenshield", { + description = "Superlegendshield Mode 1 (no speed and no jump)\nShield-lv.122", + inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode1.png", + groups = {armor_shield=122, armor_heal=12, armor_use=0,armor_fire=24.4}, + wear = 0, + wield_image = "shields_inv_superlegendenshield.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:superlegendenshield2") + end + return itemstack + end, +}) +minetest.register_tool("shields:superlegendenshield2", { + description = "Superlegendshield Mode 2 (speed and no jump)\nShield-lv.122", + inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode2.png", + groups = {armor_shield=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_speed=0.25}, + wear = 0, + wield_image = "shields_inv_superlegendenshield.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:superlegendenshield3") + end + return itemstack + end, +}) +minetest.register_tool("shields:superlegendenshield3", { + description = "Superlegendshield Mode 3 (no speed and jump)\nShield-lv.122", + inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode3.png", + groups = {armor_shield=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_jump=0.25}, + wear = 0, + wield_image = "shields_inv_superlegendenshield.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:superlegendenshield4") + end + return itemstack + end, +}) +minetest.register_tool("shields:superlegendenshield4", { + description = "Superlegendshield Mode 4 (speed and jump)\nShield-lv.122", + inventory_image = "shields_inv_superlegendenshield.png^technic_tool_mode4.png", + groups = {armor_shield=122, armor_heal=12, armor_use=0,armor_fire=24.4, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "shields_inv_superlegendenshield.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:superlegendenshield") + end + return itemstack + end, +}) + +minetest.register_tool("shields:regnumshield", { + description = "Regnumshield Mode 1 (no speed and no jump)\nShield-lv.MAX", + inventory_image = "shields_inv_regnumshield.png^technic_tool_mode1.png", + groups = {armor_shield=150, armor_heal=15, armor_use=0,armor_fire=30}, + wear = 0, + wield_image = "shields_inv_regnumshield.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:regnumshield2") + end + return itemstack + end, +}) +minetest.register_tool("shields:regnumshield2", { + description = "Regnumshield Mode 2 (speed and no jump)\nShield-lv.MAX", + inventory_image = "shields_inv_regnumshield.png^technic_tool_mode2.png", + groups = {armor_shield=150, armor_heal=15, armor_use=0,armor_fire=30, physics_speed=0.25}, + wear = 0, + wield_image = "shields_inv_regnumshield.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:regnumshield3") + end + return itemstack + end, +}) +minetest.register_tool("shields:regnumshield3", { + description = "Regnumshield Mode 3 (no speed and jump)\nShield-lv.MAX", + inventory_image = "shields_inv_regnumshield.png^technic_tool_mode3.png", + groups = {armor_shield=150, armor_heal=15, armor_use=0,armor_fire=30, physics_jump=0.25}, + wear = 0, + wield_image = "shields_inv_regnumshield.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:regnumshield4") + end + return itemstack + end, +}) +minetest.register_tool("shields:regnumshield4", { + description = "Regnumshield Mode 4 (speed and jump)\nShield-lv.MAX", + inventory_image = "shields_inv_regnumshield.png^technic_tool_mode4.png", + groups = {armor_shield=150, armor_heal=15, armor_use=0,armor_fire=30, physics_jump=0.25, physics_speed=0.25}, + wear = 0, + wield_image = "shields_inv_regnumshield.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("shields:regnumshield") + end + return itemstack + end, +}) + +minetest.register_craft({ + output = 'shields:regnumshield', + recipe = { + {'', '', 'tutorial:regnum', '', ''}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'tutorial:regnum', 'tutorial:bottleSS', 'shields:superlegendenshield', 'tutorial:bottleSS', 'tutorial:regnum'}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'', '', 'tutorial:regnum', '', ''}, + } +}) diff --git a/mods/3d_armor/shields/tutorial_craft.lua b/mods/3d_armor/shields/tutorial_craft.lua new file mode 100644 index 0000000..9104a30 --- /dev/null +++ b/mods/3d_armor/shields/tutorial_craft.lua @@ -0,0 +1,894 @@ +minetest.register_craft({ + output = 'shields:shield', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'', 'group:wood', ''}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega1', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4', 'shields:shield', 'tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega2', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4','shields:shield_mega1','tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega3', + recipe = { + {'tutorial:obsidian5', 'tutorial:obsidian5', 'tutorial:obsidian5'}, + {'tutorial:obsidian5','shields:shield_mega2','tutorial:obsidian5'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega4', + recipe = { + {'tutorial:obsidian6', 'tutorial:obsidian6', 'tutorial:obsidian6'}, + {'tutorial:obsidian6','shields:shield_mega3','tutorial:obsidian6'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega5', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','shields:shield_mega4','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega6', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','shields:shield_mega5','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega7', + recipe = { + {'tutorial:dunklematerie5','tutorial:dunklematerie5', 'tutorial:dunklematerie5'}, + {'tutorial:dunklematerie5','shields:shield_mega6','tutorial:dunklematerie5'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega8', + recipe = { + {'tutorial:dunklematerie6','tutorial:dunklematerie6', 'tutorial:dunklematerie6'}, + {'tutorial:dunklematerie6','shields:shield_mega7','tutorial:dunklematerie6'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega9', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','shields:shield_mega8','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega10', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','shields:shield_mega9','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega11', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','shields:shield_mega10','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega12', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','shields:shield_mega11','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega13', + recipe = { + {'default:goldblock','default:goldblock', 'default:goldblock'}, + {'default:goldblock','shields:shield_mega12','default:goldblock'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega14', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','shields:shield_mega13','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega15', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','shields:shield_mega14','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega16', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','shields:shield_mega15','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega17', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','shields:shield_mega16','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega18', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','shields:shield_mega17','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega19', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','shields:shield_mega18','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:shield_mega20', + recipe = { + {'tutorial:megablock2','tutorial:megablock2', 'tutorial:megablock2'}, + {'tutorial:megablock2','shields:shield_mega19','tutorial:megablock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega25', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'shields:cloudshield_mega24', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega24', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'shields:cloudshield_mega23', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega23', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'shields:cloudshield_mega22', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega22', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'shields:cloudshield_mega21', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega21', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'shields:cloudshield_mega20', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega20', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'shields:cloudshield_mega19', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega19', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'shields:cloudshield_mega18', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega18', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'shields:cloudshield_mega17', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega17', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'shields:cloudshield_mega16', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega16', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'shields:cloudshield_mega15', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega15', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'shields:cloudshield_mega14', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega14', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'shields:cloudshield_mega13', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega13', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'shields:cloudshield_mega12', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega12', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'shields:cloudshield_mega11', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega11', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'shields:cloudshield_mega10', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega10', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'shields:cloudshield_mega9', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega9', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'shields:cloudshield_mega8', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega8', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'shields:cloudshield_mega7', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega7', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'shields:cloudshield_mega6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega6', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'shields:cloudshield_mega5', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega5', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'shields:cloudshield_mega4', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega4', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'shields:cloudshield_mega3', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega3', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'shields:cloudshield_mega2', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega2', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'shields:cloudshield_mega1', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'shields:cloudshield_mega1', + recipe = { + {'tutorial:cloudentverner21', 'shields:shield_mega20'}, + } +}) +minetest.register_craft({ + output = 'shields:supershield4', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'shields:supershield3', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = 'shields:supershield3', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'shields:supershield2', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = 'shields:supershield2', + recipe = { + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'shields:supershield1', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + } +}) +minetest.register_craft({ + output = 'shields:supershield1', + recipe = { + {'tutorial:zauberstab9', 'shields:cloudshield_mega25', 'tutorial:swored_zauber9'}, + } +}) +minetest.register_craft({ + output = 'shields:uraniumshield1', + recipe = { + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'shields:supershield4', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + } +}) +minetest.register_craft({ + output = 'shields:uraniumshield2', + recipe = { + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'shields:uraniumshield1', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:uraniumshield2', + cooktime = 100, + output = 'shields:energyshield1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield1', + cooktime = 100, + output = 'shields:energyshield2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield2', + cooktime = 200, + output = 'shields:energyshield3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield3', + cooktime = 300, + output = 'shields:energyshield4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield4', + cooktime = 400, + output = 'shields:energyshield5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield5', + cooktime = 500, + output = 'shields:energyshield6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield6', + cooktime = 600, + output = 'shields:energyshield7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield7', + cooktime = 700, + output = 'shields:energyshield8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield8', + cooktime = 800, + output = 'shields:energyshield9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield9', + cooktime = 900, + output = 'shields:energyshield10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield10', + cooktime = 1000, + output = 'shields:energyshield11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield11', + cooktime = 1500, + output = 'shields:energyshield12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:energyshield12', + cooktime = 1000, + output = 'shields:superenergyshield1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:superenergyshield1', + cooktime = 1200, + output = 'shields:superenergyshield2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:superenergyshield2', + cooktime = 1400, + output = 'shields:superenergyshield3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:superenergyshield3', + cooktime = 1600, + output = 'shields:superenergyshield4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:superenergyshield4', + cooktime = 1800, + output = 'shields:superenergyshield5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:superenergyshield5', + cooktime = 2000, + output = 'shields:superenergyshield6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:superenergyshield6', + cooktime = 2500, + output = 'shields:superenergyshield7', +}) +minetest.register_craft({ + output = 'shields:kristallshield5', + recipe = { + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + {'tutorial:admin', 'shields:kristallshield4', 'tutorial:admin'}, + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + } +}) +minetest.register_craft({ + output = 'shields:kristallshield4', + recipe = { + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + {'gems:emerald_block', 'shields:kristallshield3', 'gems:emerald_block'}, + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + } +}) +minetest.register_craft({ + output = 'shields:kristallshield3', + recipe = { + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + {'gems:pearl_block', 'shields:kristallshield2', 'gems:shadow_block'}, + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + } +}) +minetest.register_craft({ + output = 'shields:kristallshield2', + recipe = { + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'shields:kristallshield1', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + } +}) +minetest.register_craft({ + output = 'shields:kristallshield1', + recipe = { + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + {'gems:ruby_block', 'shields:superenergyshield7', 'gems:sapphire_block'}, + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield24', + cooktime = 5000, + output = 'shields:ultrashield25', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield23', + cooktime = 4800, + output = 'shields:ultrashield24', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield22', + cooktime = 4600, + output = 'shields:ultrashield23', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield21', + cooktime = 4400, + output = 'shields:ultrashield22', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield20', + cooktime = 4200, + output = 'shields:ultrashield21', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield19', + cooktime = 4000, + output = 'shields:ultrashield20', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield18', + cooktime = 3800, + output = 'shields:ultrashield19', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield17', + cooktime = 3600, + output = 'shields:ultrashield18', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield16', + cooktime = 3400, + output = 'shields:ultrashield17', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield15', + cooktime = 3200, + output = 'shields:ultrashield16', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield14', + cooktime = 3000, + output = 'shields:ultrashield15', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield13', + cooktime = 2800, + output = 'shields:ultrashield14', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield12', + cooktime = 2600, + output = 'shields:ultrashield13', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield11', + cooktime = 2400, + output = 'shields:ultrashield12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield10', + cooktime = 2200, + output = 'shields:ultrashield11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield9', + cooktime = 2000, + output = 'shields:ultrashield10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield8', + cooktime = 1800, + output = 'shields:ultrashield9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield7', + cooktime = 1600, + output = 'shields:ultrashield8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield6', + cooktime = 1400, + output = 'shields:ultrashield7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield5', + cooktime = 1200, + output = 'shields:ultrashield6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield4', + cooktime = 1000, + output = 'shields:ultrashield5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield3', + cooktime = 800, + output = 'shields:ultrashield4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield2', + cooktime = 600, + output = 'shields:ultrashield3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield1', + cooktime = 400, + output = 'shields:ultrashield2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:kristallshield5', + cooktime = 200, + output = 'shields:ultrashield1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'shields:ultrashield25', + cooktime = 10000, + output = 'shields:superultrashield', +}) +minetest.register_craft({ + output = 'shields:arenashield4', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'shields:arenashield3', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'shields:arenashield3', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'shields:arenashield2', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'shields:arenashield2', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'shields:arenashield1', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'shields:arenashield1', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'shields:superultrashield', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield10', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:titanshield9', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield9', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:titanshield8', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield8', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:titanshield7', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield7', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:titanshield6', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield6', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:titanshield5', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield5', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:titanshield4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield4', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:titanshield3', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield3', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:titanshield2', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield2', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:titanshield1', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:titanshield1', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'shields:arenashield4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'shields:legendenshield1', + recipe = { + {'shields:titanshield10', 'default:grass_1', 'default:grass_1', 'tutorial:bottle5'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle5', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'shields:legendenshield2', + recipe = { + {'shields:legendenshield1', 'default:grass_1', 'default:grass_1', 'tutorial:bottle7'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle7', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'shields:legendenshield3', + recipe = { + {'shields:legendenshield2', 'default:grass_1', 'default:grass_1', 'tutorial:bottle9'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle9', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'shields:legendenshield4', + recipe = { + {'shields:legendenshield3', 'default:grass_1', 'default:grass_1', 'tutorial:bottle11'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle11', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'shields:legendenshield5', + recipe = { + {'shields:legendenshield4', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'shields:legendenshield6', + recipe = { + {'shields:legendenshield5', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS3'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS3', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'shields:superlegendenshield', + recipe = { + {'tutorial:lilabattleaxe2', 'shields:legendenshield6'}, + } +}) \ No newline at end of file diff --git a/mods/3d_armor/technic_armor/README.txt b/mods/3d_armor/technic_armor/README.txt new file mode 100644 index 0000000..dff2255 --- /dev/null +++ b/mods/3d_armor/technic_armor/README.txt @@ -0,0 +1,6 @@ +Adds tin, silver and technic materials to 3d_armor. +Requires technic mod to be installed for craft registration. + +Depends: 3d_armor + +Source code and textures by poet.nohit diff --git a/mods/3d_armor/technic_armor/depends.txt b/mods/3d_armor/technic_armor/depends.txt new file mode 100644 index 0000000..b6cac21 --- /dev/null +++ b/mods/3d_armor/technic_armor/depends.txt @@ -0,0 +1 @@ +3d_armor diff --git a/mods/3d_armor/technic_armor/init.lua b/mods/3d_armor/technic_armor/init.lua new file mode 100644 index 0000000..499c27e --- /dev/null +++ b/mods/3d_armor/technic_armor/init.lua @@ -0,0 +1,48 @@ +if minetest.get_modpath("technic") then + local stats = { + brass = { name="Brass", armor=20, heal=10, use=50 }, + cast = { name="Cast Iron", armor=40, heal=15, use=250 }, + carbon = { name="Carbon Steel", armor=50, heal=20, use=50,}, + stainless = { name="Stainless Steel", armor=50, heal=20, use=50 }, + } + local mats = { + brass="technic:brass_ingot", + cast="technic:cast_iron_ingot", + carbon="technic:carbon_steel_ingot", + stainless="technic:stainless_steel_ingot", + } + if minetest.get_modpath("moreores") then + stats.tin = { name="Tin", armor=40, heal=15, use=250 } + stats.silver = { name="Silver", armor=20, heal=4, use=50 } + mats.tin = "moreores:tin_ingot" + mats.silver = "moreores:silver_ingot" + end + + for k, v in pairs(stats) do + minetest.register_tool("technic_armor:helmet_"..k, { + description = v.name.." Helmet", + inventory_image = "technic_armor_inv_helmet_"..k..".png", + groups = {armor_head=math.floor(5*v.armor), armor_heal=v.heal, armor_use=v.use, armor_fire=v.fire}, + wear = 0, + }) + minetest.register_tool("technic_armor:chestplate_"..k, { + description = v.name.." Chestplate", + inventory_image = "technic_armor_inv_chestplate_"..k..".png", + groups = {armor_torso=math.floor(8*v.armor), armor_heal=v.heal, armor_use=v.use, armor_fire=v.fire}, + wear = 0, + }) + minetest.register_tool("technic_armor:leggings_"..k, { + description = v.name.." Leggings", + inventory_image = "technic_armor_inv_leggings_"..k..".png", + groups = {armor_legs=math.floor(7*v.armor), armor_heal=v.heal, armor_use=v.use, armor_fire=v.fire}, + wear = 0, + }) + minetest.register_tool("technic_armor:boots_"..k, { + description = v.name.." Boots", + inventory_image = "technic_armor_inv_boots_"..k..".png", + groups = {armor_feet=math.floor(4*v.armor), armor_heal=v.heal, armor_use=v.use, armor_fire=v.fire}, + wear = 0, + }) + end +end + diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_brass.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_brass.png new file mode 100644 index 0000000..a54b970 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_brass.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_brass_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_brass_preview.png new file mode 100644 index 0000000..b054d4f Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_brass_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_carbon.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_carbon.png new file mode 100644 index 0000000..379cc8e Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_carbon.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_carbon_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_carbon_preview.png new file mode 100644 index 0000000..8d7e480 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_carbon_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_cast.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_cast.png new file mode 100644 index 0000000..5aa0aaa Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_cast.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_cast_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_cast_preview.png new file mode 100644 index 0000000..22699f2 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_cast_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_silver.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_silver.png new file mode 100644 index 0000000..1af5ccc Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_silver.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_silver_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_silver_preview.png new file mode 100644 index 0000000..01e0caf Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_silver_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_stainless.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_stainless.png new file mode 100644 index 0000000..eaa86c4 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_stainless.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_stainless_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_stainless_preview.png new file mode 100644 index 0000000..53cc9e7 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_stainless_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_tin.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_tin.png new file mode 100644 index 0000000..11c740a Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_tin.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_boots_tin_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_boots_tin_preview.png new file mode 100644 index 0000000..b1085af Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_boots_tin_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_brass.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_brass.png new file mode 100644 index 0000000..d123aff Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_brass.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_brass_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_brass_preview.png new file mode 100644 index 0000000..94c2a47 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_brass_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_carbon.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_carbon.png new file mode 100644 index 0000000..7f2b9f1 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_carbon.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_carbon_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_carbon_preview.png new file mode 100644 index 0000000..da747e5 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_carbon_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_cast.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_cast.png new file mode 100644 index 0000000..6fa0628 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_cast.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_cast_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_cast_preview.png new file mode 100644 index 0000000..bfbd4ec Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_cast_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_silver.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_silver.png new file mode 100644 index 0000000..6790049 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_silver.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_silver_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_silver_preview.png new file mode 100644 index 0000000..abf63b6 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_silver_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_stainless.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_stainless.png new file mode 100644 index 0000000..c2db5f6 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_stainless.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_stainless_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_stainless_preview.png new file mode 100644 index 0000000..1266e6e Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_stainless_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_tin.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_tin.png new file mode 100644 index 0000000..562354e Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_tin.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_tin_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_tin_preview.png new file mode 100644 index 0000000..362a4ad Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_chestplate_tin_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_brass.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_brass.png new file mode 100644 index 0000000..b8f38d7 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_brass.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_brass_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_brass_preview.png new file mode 100644 index 0000000..cd625f4 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_brass_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_carbon.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_carbon.png new file mode 100644 index 0000000..e8fdf84 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_carbon.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_carbon_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_carbon_preview.png new file mode 100644 index 0000000..02a67b8 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_carbon_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_cast.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_cast.png new file mode 100644 index 0000000..840d1b1 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_cast.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_cast_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_cast_preview.png new file mode 100644 index 0000000..c8d30c5 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_cast_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_silver.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_silver.png new file mode 100644 index 0000000..0c26eb3 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_silver.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_silver_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_silver_preview.png new file mode 100644 index 0000000..a1d33d7 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_silver_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_stainless.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_stainless.png new file mode 100644 index 0000000..865ebf8 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_stainless.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_stainless_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_stainless_preview.png new file mode 100644 index 0000000..d08cc69 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_stainless_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_tin.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_tin.png new file mode 100644 index 0000000..8497bf1 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_tin.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_helmet_tin_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_tin_preview.png new file mode 100644 index 0000000..efb95be Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_helmet_tin_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_brass.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_brass.png new file mode 100644 index 0000000..145d6c3 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_brass.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_carbon.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_carbon.png new file mode 100644 index 0000000..dbf043f Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_carbon.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_cast.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_cast.png new file mode 100644 index 0000000..ba33d07 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_cast.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_silver.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_silver.png new file mode 100644 index 0000000..7af9003 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_silver.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_stainless.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_stainless.png new file mode 100644 index 0000000..6d114e7 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_stainless.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_tin.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_tin.png new file mode 100644 index 0000000..6fbc5b3 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_boots_tin.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_brass.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_brass.png new file mode 100644 index 0000000..4984954 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_brass.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_carbon.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_carbon.png new file mode 100644 index 0000000..b921799 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_carbon.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_cast.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_cast.png new file mode 100644 index 0000000..5e6749e Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_cast.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_silver.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_silver.png new file mode 100644 index 0000000..442caa2 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_silver.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_stainless.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_stainless.png new file mode 100644 index 0000000..5462100 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_stainless.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_tin.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_tin.png new file mode 100644 index 0000000..eeb7328 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_chestplate_tin.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_brass.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_brass.png new file mode 100644 index 0000000..e56ec30 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_brass.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_carbon.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_carbon.png new file mode 100644 index 0000000..fc2a592 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_carbon.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_cast.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_cast.png new file mode 100644 index 0000000..15092c1 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_cast.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_silver.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_silver.png new file mode 100644 index 0000000..4a17003 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_silver.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_stainless.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_stainless.png new file mode 100644 index 0000000..1cc480e Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_stainless.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_tin.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_tin.png new file mode 100644 index 0000000..c37cb75 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_helmet_tin.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_brass.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_brass.png new file mode 100644 index 0000000..876bf7c Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_brass.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_carbon.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_carbon.png new file mode 100644 index 0000000..e4673a9 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_carbon.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_cast.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_cast.png new file mode 100644 index 0000000..df61ca6 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_cast.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_silver.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_silver.png new file mode 100644 index 0000000..ad8c91b Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_silver.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_stainless.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_stainless.png new file mode 100644 index 0000000..7e4feaf Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_stainless.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_tin.png b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_tin.png new file mode 100644 index 0000000..bbaeb6a Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_inv_leggings_tin.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_brass.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_brass.png new file mode 100644 index 0000000..f9c84fd Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_brass.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_brass_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_brass_preview.png new file mode 100644 index 0000000..05048e3 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_brass_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_carbon.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_carbon.png new file mode 100644 index 0000000..2c83e23 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_carbon.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_carbon_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_carbon_preview.png new file mode 100644 index 0000000..9fb6391 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_carbon_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_cast.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_cast.png new file mode 100644 index 0000000..e7ca67f Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_cast.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_cast_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_cast_preview.png new file mode 100644 index 0000000..67dd933 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_cast_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_silver.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_silver.png new file mode 100644 index 0000000..6ae30f3 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_silver.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_silver_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_silver_preview.png new file mode 100644 index 0000000..0f6ecd2 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_silver_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_stainless.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_stainless.png new file mode 100644 index 0000000..5eab543 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_stainless.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_stainless_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_stainless_preview.png new file mode 100644 index 0000000..6504d9d Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_stainless_preview.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_tin.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_tin.png new file mode 100644 index 0000000..5973135 Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_tin.png differ diff --git a/mods/3d_armor/technic_armor/textures/technic_armor_leggings_tin_preview.png b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_tin_preview.png new file mode 100644 index 0000000..a6d105f Binary files /dev/null and b/mods/3d_armor/technic_armor/textures/technic_armor_leggings_tin_preview.png differ diff --git a/mods/3d_armor/wieldview/README.txt b/mods/3d_armor/wieldview/README.txt new file mode 100644 index 0000000..cffae46 --- /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 0000000..585cc7a --- /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 0000000..7a5a619 --- /dev/null +++ b/mods/3d_armor/wieldview/init.lua @@ -0,0 +1,76 @@ +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 + if minetest.registered_items[item].inventory_image ~= "" then + texture = minetest.registered_items[item].inventory_image + elseif node_tiles == true and minetest.registered_items[item].tiles + and type(minetest.registered_items[item].tiles[1]) == "string" + and minetest.registered_items[item].tiles[1] ~= "" then + texture = minetest.inventorycube(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 0000000..4d5133e --- /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/awards/.gitattributes b/mods/awards/.gitattributes new file mode 100644 index 0000000..412eeda --- /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 0000000..b9d6bd9 --- /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 0000000..1712202 --- /dev/null +++ b/mods/awards/api.lua @@ -0,0 +1,499 @@ +-- 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], "craft") + 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 == "craft" then + local tmp = { + award = name, + item = data_table.trigger.item, + target = data_table.trigger.target, + } + table.insert(awards.onCraft,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 + +-- run a function when an item is crafted +function awards.register_onCraft(func) + table.insert(awards.onCraft,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 +minetest.register_on_player_receive_fields(function(player, formname, fields) + local name = player:get_player_name() + if fields.aw then + awards.showto(name, name, nil, false) + end + 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 + +end) + +-- List a player's achievements + +--[[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,6]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[11,6;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + 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,3.75;Secret Award]".. + "image[1,1;3,3;unknown.png]" + if def and def.description then + formspec = formspec .. "label[0,4.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,3.75;"..title..status.."]".. + "image[1,1;3,3;"..icon.."]" + if def and def.description then + formspec = formspec .. "label[0,4.25;"..def.description.."]" + end + end + end + + -- Create list box + formspec = formspec .. "textlist[4.75,1;6,5;awards;" + local first = true + local all = 0 + local gotaw = 0 + 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 + gotaw = gotaw+1 + formspec = formspec .. minetest.formspec_escape(title) + else + formspec = formspec .. "#ACACAC".. minetest.formspec_escape(title) + end + all = all+1 + end + end + end + formspec = formspec .. ";"..sid.."]" + if all == gotaw then + local player_inv = minetest.get_player_by_name(name):get_inventory() + player_inv:set_size("a20", 1) + player_inv:set_stack("a20", 1, "default:dirt") + else + local player_inv = minetest.get_player_by_name(name):get_inventory() + player_inv:set_size("a20", 1) + player_inv:set_stack("a20", 1, "") + end + formspec = formspec .. "label[4,0;"..gotaw.."/"..all.."]" + + -- Show formspec to user + minetest.get_player_by_name(to):set_inventory_formspec(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() + + + return true +end) + diff --git a/mods/awards/init.lua b/mods/awards/init.lua new file mode 100644 index 0000000..d245daf --- /dev/null +++ b/mods/awards/init.lua @@ -0,0 +1,465 @@ +-- AWARDS +-- by Rubenwardy changed by 1248 +------------------------------------------------------- +-- this is the init file for the award mod +------------------------------------------------------- +local intllib = nil +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") + +awards.register_achievement("award_ruby_bronze",{ + title = S("Ruby (Bronze)"), + description = S("Dig 25 Ruby Ore."), + icon = "ruby_ruby_ore.png", + trigger = { + type = "dig", + node = "gems:ruby_ore", + target = 25 + } +}) + +awards.register_achievement("award_ruby_silber",{ + title = S("Ruby (Silber)"), + description = S("Dig 50 Ruby Ore."), + icon = "ruby_ruby_ore.png", + trigger = { + type = "dig", + node = "gems:ruby_ore", + target = 50 + } +}) + +awards.register_achievement("award_ruby_gold",{ + title = S("Ruby (Gold)"), + description = S("Dig 100 Ruby Ore."), + icon = "ruby_ruby_ore.png", + trigger = { + type = "dig", + node = "gems:ruby_ore", + target = 100 + } +}) + +awards.register_achievement("award_ruby_platin",{ + title = S("Ruby (Platin)"), + description = S("Dig 200 Ruby Ore."), + icon = "ruby_ruby_ore.png", + trigger = { + type = "dig", + node = "gems:ruby_ore", + target = 200 + } +}) + +awards.register_achievement("award_sapphire_bronze",{ + title = S("Sapphire (Bronze)"), + description = S("Dig 25 Sapphire Ore."), + icon = "gems_sapphire_ore.png", + trigger = { + type = "dig", + node = "gems:sapphire_ore", + target = 25 + } +}) + +awards.register_achievement("award_sapphire_silber",{ + title = S("Sapphire (Silber)"), + description = S("Dig 50 Sapphire Ore."), + icon = "gems_sapphire_ore.png", + trigger = { + type = "dig", + node = "gems:sapphire_ore", + target = 50 + } +}) + +awards.register_achievement("award_sapphire_gold",{ + title = S("Sapphire (Gold)"), + description = S("Dig 100 Sapphire Ore."), + icon = "gems_sapphire_ore.png", + trigger = { + type = "dig", + node = "gems:sapphire_ore", + target = 100 + } +}) + +awards.register_achievement("award_sapphire_platin",{ + title = S("Sapphire (Platin)"), + description = S("Dig 200 Sapphire Ore."), + icon = "gems_sapphire_ore.png", + trigger = { + type = "dig", + node = "gems:sapphire_ore", + target = 200 + } +}) + +awards.register_achievement("award_amethyst_bronze",{ + title = S("Amethyst (Bronze)"), + description = S("Dig 25 Amethyst Ore."), + icon = "gems_amethyst_ore.png", + trigger = { + type = "dig", + node = "gems:amethyst_ore", + target = 25 + } +}) + +awards.register_achievement("award_amethyst_silber",{ + title = S("Amethyst (Silber)"), + description = S("Dig 50 Amethyst Ore."), + icon = "gems_amethyst_ore.png", + trigger = { + type = "dig", + node = "gems:amethyst_ore", + target = 50 + } +}) + +awards.register_achievement("award_amethyst_Gold",{ + title = S("Amethyst (Gold)"), + description = S("Dig 100 Amethyst Ore."), + icon = "gems_amethyst_ore.png", + trigger = { + type = "dig", + node = "gems:amethyst_ore", + target = 100 + } +}) + +awards.register_achievement("award_amethyst_platin",{ + title = S("Amethyst (Platin)"), + description = S("Dig 200 Amethyst Ore."), + icon = "gems_amethyst_ore.png", + trigger = { + type = "dig", + node = "gems:amethyst_ore", + target = 200 + } +}) + +awards.register_achievement("award_shadow_bronze",{ + title = S("Shadow (Bronze)"), + description = S("Dig 25 Shadow Ore."), + icon = "shadow_ore.png", + trigger = { + type = "dig", + node = "gems:shadow_ore", + target = 25 + } +}) + +awards.register_achievement("award_shadow_silber",{ + title = S("Shadow (Silber)"), + description = S("Dig 50 Shadow Ore."), + icon = "shadow_ore.png", + trigger = { + type = "dig", + node = "gems:shadow_ore", + target = 50 + } +}) + +awards.register_achievement("award_shadow_gold",{ + title = S("Shadow (Gold)"), + description = S("Dig 100 Shadow Ore."), + icon = "shadow_ore.png", + trigger = { + type = "dig", + node = "gems:shadow_ore", + target = 100 + } +}) + +awards.register_achievement("award_shadow_platin",{ + title = S("Shadow (Platin)"), + description = S("Dig 200 Shadow Ore."), + icon = "shadow_ore.png", + trigger = { + type = "dig", + node = "gems:shadow_ore", + target = 200 + } +}) + +awards.register_achievement("award_pearl_bronze",{ + title = S("Pearl (Bronze)"), + description = S("Dig 25 Pearl Ore."), + icon = "gems_pearl_ore.png", + trigger = { + type = "dig", + node = "gems:pearl_ore", + target = 25 + } +}) + +awards.register_achievement("award_pearl_silber",{ + title = S("Pearl (Silber)"), + description = S("Dig 50 Pearl Ore."), + icon = "gems_pearl_ore.png", + trigger = { + type = "dig", + node = "gems:pearl_ore", + target = 50 + } +}) + +awards.register_achievement("award_pearl_gold",{ + title = S("Pearl (Gold)"), + description = S("Dig 100 Pearl Ore."), + icon = "gems_pearl_ore.png", + trigger = { + type = "dig", + node = "gems:pearl_ore", + target = 100 + } +}) + +awards.register_achievement("award_pearl_platin",{ + title = S("Pearl (Platin)"), + description = S("Dig 200 Pearl Ore."), + icon = "gems_pearl_ore.png", + trigger = { + type = "dig", + node = "gems:pearl_ore", + target = 200 + } +}) + +awards.register_achievement("award_emerald_bronze",{ + title = S("Emerald (Bronze)"), + description = S("Dig 25 Emerald Ore."), + icon = "gems_emerald_ore.png", + trigger = { + type = "dig", + node = "gems:emerald_ore", + target = 25 + } +}) + +awards.register_achievement("award_emerald_silber",{ + title = S("Emerald (Silber)"), + description = S("Dig 50 Emerald Ore."), + icon = "gems_emerald_ore.png", + trigger = { + type = "dig", + node = "gems:emerald_ore", + target = 50 + } +}) + +awards.register_achievement("award_emerald_gold",{ + title = S("Emerald (Gold)"), + description = S("Dig 100 Emerald Ore."), + icon = "gems_emerald_ore.png", + trigger = { + type = "dig", + node = "gems:emerald_ore", + target = 100 + } +}) + +awards.register_achievement("award_emerald_platin",{ + title = S("Emerald (Platin)"), + description = S("Dig 200 Emerald Ore."), + icon = "gems_emerald_ore.png", + trigger = { + type = "dig", + node = "gems:emerald_ore", + target = 200 + } +}) + +awards.register_achievement("award_admin_ore_bronze",{ + title = S("Admin Ore (Bronze)"), + description = S("Dig 5 Admin Ore."), + icon = "default_stone.png^tutorial_admin_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_admin", + target = 5 + } +}) + +awards.register_achievement("award_admin_ore_silber",{ + title = S("Admin Ore (Silber)"), + description = S("Dig 10 Admin Ore."), + icon = "default_stone.png^tutorial_admin_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_admin", + target = 10 + } +}) + +awards.register_achievement("award_admin_ore_gold",{ + title = S("Admin Ore (Gold)"), + description = S("Dig 20 Admin Ore."), + icon = "default_stone.png^tutorial_admin_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_admin", + target = 20 + } +}) + +awards.register_achievement("award_admin_ore_platin",{ + title = S("Admin Ore (Platin)"), + description = S("Dig 40 Admin Ore."), + icon = "default_stone.png^tutorial_admin_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_admin", + target = 40 + } +}) + +awards.register_achievement("award_titan_ore_bronze",{ + title = S("Titan Ore (Bronze)"), + description = S("Dig 10 Titan Ore."), + icon = "tutorial_titan_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_titan", + target = 10 + } +}) +awards.register_achievement("award_titan_ore_silber",{ + title = S("Titan Ore (Silber)"), + description = S("Dig 20 Titan Ore."), + icon = "tutorial_titan_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_titan", + target = 20 + } +}) +awards.register_achievement("award_titan_ore_gold",{ + title = S("Titan Ore (Gold)"), + description = S("Dig 40 Titan Ore."), + icon = "tutorial_titan_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_titan", + target = 40 + } +}) +awards.register_achievement("award_titan_ore_platin",{ + title = S("Titan Ore (Platin)"), + description = S("Dig 80 Titan Ore."), + icon = "tutorial_titan_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_titan", + target = 80 + } +}) +awards.register_achievement("award_regnum_ore_bronze",{ + title = S("Regnum Ore (Bronze)"), + description = S("Dig 2 Regnum Ore."), + icon = "default_stone.png^tutorial_regnum_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_regnum", + target = 2 + } +}) +awards.register_achievement("award_regnum_ore_silber",{ + title = S("Regnum Ore (Silber)"), + description = S("Dig 5 Regnum Ore."), + icon = "default_stone.png^tutorial_regnum_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_regnum", + target = 5 + } +}) +awards.register_achievement("award_regnum_ore_gold",{ + title = S("Regnum Ore (Gold)"), + description = S("Dig 10 Regnum Ore."), + icon = "default_stone.png^tutorial_regnum_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_regnum", + target = 10 + } +}) +awards.register_achievement("award_regnum_ore_platin",{ + title = S("Regnum Ore (Platin)"), + description = S("Dig 20 Regnum Ore."), + icon = "default_stone.png^tutorial_regnum_ore.png", + trigger = { + type = "dig", + node = "tutorial:stone_with_regnum", + target = 20 + } +}) +awards.register_achievement("award_???_bronze",{ + title = S("??? (Bronze)"), + description = S("?") +}) +awards.register_onDeath(function(player,data) + local pos = player:getpos() + if pos and minetest.find_node_near(pos, 5, "default:mese") ~= nil then + return "award_???_bronze" + end + return nil +end) + + +awards.register_achievement("award_???_silber",{ + title = S("??? (Silber)"), + description = S("?") +}) +awards.register_onDeath(function(player,data) + local pos = player:getpos() + if pos and minetest.find_node_near(pos, 5, "moreores:mineral_mithril") ~= nil then + return "award_???_silber" + end + return nil +end) + + +awards.register_achievement("award_???_gold",{ + title = S("??? (Gold)"), + description = S("?") +}) +awards.register_onDeath(function(player,data) + local pos = player:getpos() + if pos and minetest.find_node_near(pos, 5, "tutorial:stone_with_titan") ~= nil then + return "award_???_gold" + end + return nil +end) + +awards.register_achievement("award_???_platin",{ + title = S("??? (Platin)"), + description = S("?") +}) +awards.register_onDeath(function(player,data) + local pos = player:getpos() + if pos and minetest.find_node_near(pos, 5, "tutorial:stone_with_admin") ~= nil then + return "award_???_platin" + end + return nil +end) + + + + + + + + + + + + diff --git a/mods/awards/readme.md b/mods/awards/readme.md new file mode 100644 index 0000000..b77dac9 --- /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 0000000..a6f57d3 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 0000000..a698779 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 0000000..3fc800e 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 0000000..45c7238 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 0000000..f24d843 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 0000000..b290454 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 0000000..b290454 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 0000000..213d5c1 --- /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/bags/README.txt b/mods/bags/README.txt new file mode 100644 index 0000000..d476911 --- /dev/null +++ b/mods/bags/README.txt @@ -0,0 +1,61 @@ +---------------------------------- +Bags for Minetest +---------------------------------- + + +Copyright (c) 2012 cornernote, Brett O'Donnell +Textures: Copyright (c) 2012 tonyka + +Source Code: https://github.com/cornernote/minetest-bags +Home Page: https://sites.google.com/site/cornernote/minetest/bags + +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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +---------------------------------- +Description +---------------------------------- + +Allows players to craft and attach bags to their inventory to increase player item storage capacity. + + +---------------------------------- +Crafts +---------------------------------- + +8-slot bag: +-S- <- bag:small +WWW S = default:stick +WWW W = default:wood + +16-slot bag: +-S- <- bag:medium +BBB S = default:stick +BBB B = bags:small + +24-slot bag: +-S- <- bag:large +BBB S = default:stick +BBB B = bags:medium + +32-slot bag: +-S- <- bag:trolley +BBB S = default:stick +BBB B = bags:large + +---------------------------------- +Modders Guide +---------------------------------- + +To turn your craftitem into a bag simply add bagslots=X to the groups in the node definition. + +EG: +minetest.register_node("your_mod:your_item", { + description = "Your Item", + groups = {bagslots=16}, +}) + diff --git a/mods/bags/bags/depends.txt b/mods/bags/bags/depends.txt new file mode 100644 index 0000000..3c8fd00 --- /dev/null +++ b/mods/bags/bags/depends.txt @@ -0,0 +1 @@ +inventory_plus \ No newline at end of file diff --git a/mods/bags/bags/init.lua b/mods/bags/bags/init.lua new file mode 100644 index 0000000..54772ed --- /dev/null +++ b/mods/bags/bags/init.lua @@ -0,0 +1,294 @@ +--[[ + +Bags for Minetest + +Copyright (c) 2012 cornernote, Brett O'Donnell +Source Code: https://github.com/cornernote/minetest-particles +License: GPLv3 + +]]-- + + +-- get_formspec +local get_formspec = function(player,page) + if page=="bags" then + local player_inv = player:get_inventory() + player_inv:set_size("b", 1) + local type = player:get_inventory():get_stack("b",1):get_name() + if type == "tutorial:bag_schluessel1" then + ba5 = "bag5" + ba6 = "bags" + ba7 = "bags" + ba8 = "bags" + elseif type == "tutorial:bag_schluessel2" then + ba5 = "bag5" + ba6 = "bag6" + ba7 = "bags" + ba8 = "bags" + elseif type == "tutorial:bag_schluessel3" then + ba5 = "bag5" + ba6 = "bag6" + ba7 = "bag7" + ba8 = "bags" + elseif type == "tutorial:bag_schluessel4" then + ba5 = "bag5" + ba6 = "bag6" + ba7 = "bag7" + ba8 = "bag8" + else + ba5 = "bags" + ba6 = "bags" + ba7 = "bags" + ba8 = "bags" + end + return "size[10.5,10.3]" + .."list[current_player;main;1.25,6.25;8,1;]" + .."list[current_player;main;1.25,7.5;8,3;8]" + .."background[10.5,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."button[2,2;2,0.5;bag1;Bag 1]" + .."button[4,2;2,0.5;bag2;Bag 2]" + .."button[6,2;2,0.5;bag3;Bag 3]" + .."button[8,2;2,0.5;bag4;Bag 4]" + .."button[2,5;2,0.5;"..ba5..";Bag 5]" + .."button[4,5;2,0.5;"..ba6..";Bag 6]" + .."button[6,5;2,0.5;"..ba7..";Bag 7]" + .."button[8,5;2,0.5;"..ba8..";Bag 8]" + .."list[detached:"..player:get_player_name().."_bags;bag1;2.5,1;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag2;4.5,1;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag3;6.5,1;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag4;8.5,1;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag5;2.5,4;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag6;4.5,4;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag7;6.5,4;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag8;8.5,4;1,1;]" + .."list[current_player;b;0.5,4;1,1;]" + .."label[0.5,4.8;Bagkey]" + end + for i=1,8 do + if page=="bag"..i then + local image = player:get_inventory():get_stack("bag"..i, 1):get_definition().inventory_image + return "size[8,11.5]" + .."background[8,11.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[current_player;main;0,7.5;8,1;]" + .."list[current_player;main;0,8.75;8,3;8]" + .."button[0,0;2,0.75;bags;Back]" + .."button[2,0;2,0.75;main;Main]" + .."image[7,0;1,1;"..image.."]" + .."list[current_player;bag"..i.."contents;0,1;8,8;]" + .."listring[current_player;bag"..i.."contents]" + .."listring[current_player;main]" + end + end +end + + +-- register_on_player_receive_fields +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.bags then + inventory_plus.set_inventory_formspec(player, get_formspec(player,"bags")) + return + end + for i=1,8 do + local page = "bag"..i + if fields[page] then + if player:get_inventory():get_stack(page, 1):get_definition().groups.bagslots==nil then + page = "bags" + end + inventory_plus.set_inventory_formspec(player, get_formspec(player,page)) + return + end + end +end) + +-- register_on_joinplayer +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")==true 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,8 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("bags:small", { + description = "Small Bag", + inventory_image = "bags_small.png", + groups = {bagslots=8}, +}) +minetest.register_tool("bags:medium", { + description = "Medium Bag", + inventory_image = "bags_medium.png", + groups = {bagslots=16}, +}) +minetest.register_tool("bags:large", { + description = "Large Bag", + inventory_image = "bags_large.png", + groups = {bagslots=24}, +}) + +minetest.register_tool("bags:trolley", { + description = "Trolley", + inventory_image = "bags_trolley.png", + groups = {bagslots=32}, +}) + +minetest.register_tool("bags:small_admin", { + description = "Small Bag Regnum", + inventory_image = "bags_small_admin.png", + groups = {bagslots=36}, +}) + +minetest.register_tool("bags:medium_admin", { + description = "Medium Bag Regnum", + inventory_image = "bags_medium_admin.png", + groups = {bagslots=40}, +}) + +minetest.register_tool("bags:large_admin", { + description = "Large Bag Regnum", + inventory_image = "bags_large_admin.png", + groups = {bagslots=44}, +}) + +minetest.register_tool("bags:trolley_admin", { + description = "Trolley Regnum", + inventory_image = "bags_trolley_admin.png", + groups = {bagslots=48}, +}) + + +-- register bag crafts +minetest.register_craft({ + output = "bags:small", + recipe = { + {"", "default:stick", ""}, + {"default:wood", "default:wood", "default:wood"}, + {"default:wood", "default:wood", "default:wood"}, + }, +}) +minetest.register_craft({ + output = "bags:small", + recipe = { + {"", "default:stick", ""}, + {"default:junglewood", "default:junglewood", "default:junglewood"}, + {"default:junglewood", "default:junglewood", "default:junglewood"}, + }, +}) +minetest.register_craft({ + output = "bags:small", + recipe = { + {"", "default:stick", ""}, + {"default:pine_wood", "default:pine_wood", "default:pine_wood"}, + {"default:pine_wood", "default:pine_wood", "default:pine_wood"}, + }, +}) +minetest.register_craft({ + output = "bags:small", + recipe = { + {"", "default:stick", ""}, + {"default:acacia_wood", "default:acacia_wood", "default:acacia_wood"}, + {"default:acacia_wood", "default:acacia_wood", "default:acacia_wood"}, + }, +}) +minetest.register_craft({ + output = "bags:small", + recipe = { + {"", "default:stick", ""}, + {"default:aspen_wood", "default:aspen_wood", "default:aspen_wood"}, + {"default:aspen_wood", "default:aspen_wood", "default:aspen_wood"}, + }, +}) +minetest.register_craft({ + output = "bags:medium", + recipe = { + {"", "default:stick", ""}, + {"bags:small", "bags:small", "bags:small"}, + {"bags:small", "bags:small", "bags:small"}, + }, +}) +minetest.register_craft({ + output = "bags:large", + recipe = { + {"", "default:stick", ""}, + {"bags:medium", "bags:medium", "bags:medium"}, + {"bags:medium", "bags:medium", "bags:medium"}, + }, +}) + +minetest.register_craft({ + output = "bags:trolley", + recipe = { + {"", "default:stick", ""}, + {"bags:large", "bags:large", "bags:large"}, + {"bags:large", "bags:large", "bags:large"}, + }, +}) + +minetest.register_craft({ + output = "bags:small_admin", + recipe = { + {"", "tutorial:regnum", ""}, + {"", "bags:trolley", ""}, + {"", "", ""}, + }, +}) +minetest.register_craft({ + output = "bags:medium_admin", + recipe = { + {"", "tutorial:regnum", ""}, + {"", "bags:small_admin", ""}, + {"", "", ""}, + }, +}) +minetest.register_craft({ + output = "bags:large_admin", + recipe = { + {"", "tutorial:regnum", ""}, + {"", "bags:medium_admin", ""}, + {"", "", ""}, + }, +}) +minetest.register_craft({ + output = "bags:trolley_admin", + recipe = { + {"", "tutorial:regnum", ""}, + {"", "bags:large_admin", ""}, + {"", "", ""}, + }, +}) +-- log that we started +minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname())) diff --git a/mods/bags/bags/init.lua~ b/mods/bags/bags/init.lua~ new file mode 100644 index 0000000..e4d8981 --- /dev/null +++ b/mods/bags/bags/init.lua~ @@ -0,0 +1,161 @@ +--[[ + +Bags for Minetest + +Copyright (c) 2012 cornernote, Brett O'Donnell +Source Code: https://github.com/cornernote/minetest-particles +License: GPLv3 + +]]-- + + +-- get_formspec +local get_formspec = function(player,page) + if page=="bags" then + return "size[8,7.5]" + .."list[current_player;main;0,3.5;8,4;]" + .."button[0,0;2,0.5;main;Back]" + .."button[0,2;2,0.5;bag1;Bag 1]" + .."button[2,2;2,0.5;bag2;Bag 2]" + .."button[4,2;2,0.5;bag3;Bag 3]" + .."button[6,2;2,0.5;bag4;Bag 4]" + .."list[detached:"..player:get_player_name().."_bags;bag1;0.5,1;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag2;2.5,1;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag3;4.5,1;1,1;]" + .."list[detached:"..player:get_player_name().."_bags;bag4;6.5,1;1,1;]" + end + for i=1,4 do + if page=="bag"..i then + local image = player:get_inventory():get_stack("bag"..i, 1):get_definition().inventory_image + return "size[8,9.5]" + .."list[current_player;main;0,5.5;8,4;]" + .."button[0,0;2,0.5;main;Main]" + .."button[2,0;2,0.5;bags;Bags]" + .."image[7,0;1,1;"..image.."]" + .."list[current_player;bag"..i.."contents;0,1;8,4;]" + end + end +end + +-- register_on_player_receive_fields +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.bags then + inventory_plus.set_inventory_formspec(player, get_formspec(player,"bags")) + return + end + for i=1,4 do + local page = "bag"..i + if fields[page] then + if player:get_inventory():get_stack(page, 1):get_definition().groups.bagslots==nil then + page = "bags" + end + inventory_plus.set_inventory_formspec(player, get_formspec(player,page)) + return + end + end +end) + +-- register_on_joinplayer +minetest.register_on_joinplayer(function(player) + inventory_plus.register_button(player,"bags","Bags") + 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")==true 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("bags:small", { + description = "Small Bag", + inventory_image = "bags_small.png", + groups = {bagslots=8}, +}) +minetest.register_tool("bags:medium", { + description = "Medium Bag", + inventory_image = "bags_medium.png", + groups = {bagslots=16}, +}) +minetest.register_tool("bags:large", { + description = "Large Bag", + inventory_image = "bags_large.png", + groups = {bagslots=24}, +}) + +minetest.register_tool("bags:trolley", { + description = "Trolley", + inventory_image = "bags_trolley.png", + groups = {bagslots=32}, +}) + +minetest.register_tool("bags:trolley", { + description = "Trolley", + inventory_image = "bags_trolley.png", + groups = {bagslots=40}, +}) + +-- register bag crafts +minetest.register_craft({ + output = "bags:small", + recipe = { + {"", "default:stick", ""}, + {"default:wood", "default:wood", "default:wood"}, + {"default:wood", "default:wood", "default:wood"}, + }, +}) +minetest.register_craft({ + output = "bags:medium", + recipe = { + {"", "default:stick", ""}, + {"bags:small", "bags:small", "bags:small"}, + {"bags:small", "bags:small", "bags:small"}, + }, +}) +minetest.register_craft({ + output = "bags:large", + recipe = { + {"", "default:stick", ""}, + {"bags:medium", "bags:medium", "bags:medium"}, + {"bags:medium", "bags:medium", "bags:medium"}, + }, +}) + +minetest.register_craft({ + output = "bags:trolley", + recipe = { + {"", "default:stick", ""}, + {"bags:large", "bags:large", "bags:large"}, + {"bags:large", "bags:large", "bags:large"}, + }, +}) + +-- log that we started +minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname())) diff --git a/mods/bags/bags/textures/bags_large.png b/mods/bags/bags/textures/bags_large.png new file mode 100644 index 0000000..c26f075 Binary files /dev/null and b/mods/bags/bags/textures/bags_large.png differ diff --git a/mods/bags/bags/textures/bags_large_admin.png b/mods/bags/bags/textures/bags_large_admin.png new file mode 100644 index 0000000..d1a7cd4 Binary files /dev/null and b/mods/bags/bags/textures/bags_large_admin.png differ diff --git a/mods/bags/bags/textures/bags_medium.png b/mods/bags/bags/textures/bags_medium.png new file mode 100644 index 0000000..7bc8030 Binary files /dev/null and b/mods/bags/bags/textures/bags_medium.png differ diff --git a/mods/bags/bags/textures/bags_medium_admin.png b/mods/bags/bags/textures/bags_medium_admin.png new file mode 100644 index 0000000..de70943 Binary files /dev/null and b/mods/bags/bags/textures/bags_medium_admin.png differ diff --git a/mods/bags/bags/textures/bags_small.png b/mods/bags/bags/textures/bags_small.png new file mode 100644 index 0000000..e9656a5 Binary files /dev/null and b/mods/bags/bags/textures/bags_small.png differ diff --git a/mods/bags/bags/textures/bags_small_admin.png b/mods/bags/bags/textures/bags_small_admin.png new file mode 100644 index 0000000..5850f10 Binary files /dev/null and b/mods/bags/bags/textures/bags_small_admin.png differ diff --git a/mods/bags/bags/textures/bags_trolley.png b/mods/bags/bags/textures/bags_trolley.png new file mode 100644 index 0000000..2b7cc5a Binary files /dev/null and b/mods/bags/bags/textures/bags_trolley.png differ diff --git a/mods/bags/bags/textures/bags_trolley_admin.png b/mods/bags/bags/textures/bags_trolley_admin.png new file mode 100644 index 0000000..91aead7 Binary files /dev/null and b/mods/bags/bags/textures/bags_trolley_admin.png differ diff --git a/mods/bags/license.txt b/mods/bags/license.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/mods/bags/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/bags/modpack.txt b/mods/bags/modpack.txt new file mode 100644 index 0000000..e69de29 diff --git a/mods/ban_hammer/LICENSE b/mods/ban_hammer/LICENSE new file mode 100644 index 0000000..70566f2 --- /dev/null +++ b/mods/ban_hammer/LICENSE @@ -0,0 +1,674 @@ +GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. \ No newline at end of file diff --git a/mods/ban_hammer/README.md b/mods/ban_hammer/README.md new file mode 100644 index 0000000..ca1956e --- /dev/null +++ b/mods/ban_hammer/README.md @@ -0,0 +1,13 @@ +Ban Hammer +========== + +Mod for Minetest that adds a hammer which bans any player that is punched with it. + +Version: 0.2.1 + +License of code: GPLv3 +See LICENSE for full legal text. + +License of textures: CC-BY-SA 4.0 +See textures/LICENSE for full legal text. + diff --git a/mods/ban_hammer/init.lua b/mods/ban_hammer/init.lua new file mode 100644 index 0000000..29070e9 --- /dev/null +++ b/mods/ban_hammer/init.lua @@ -0,0 +1,119 @@ +----------------------------------------------------------------------------------------------- +local title = "Ban Hammer" +local version = "0.2.1" +local mname = "ban_hammer" +----------------------------------------------------------------------------------------------- +dofile(minetest.get_modpath("ban_hammer").."/settings.txt") +----------------------------------------------------------------------------------------------- + +local mode_text = { + {"Ban punched player."}, + {"Kick punched player."}, + {"Remove shout privilege of punched player."}, + {"Remove fly privilege of punched player."}, + {"Remove noclip privilege of punched player."}, +} + +local function ban_hammer_setmode(user, itemstack, mode, keys) + local puncher = user:get_player_name() + if keys["sneak"] == false and mode == 0 then + minetest.chat_send_player(puncher, "Hold shift and use to change ban hammer modes.") + return + end + if keys["sneak"] == true then + mode = mode + 1 + if mode == 6 then + mode = 1 + end + minetest.chat_send_player(puncher, "Ban hammer mode : "..mode.." - "..mode_text[mode][1] ) + end + itemstack:set_name("ban_hammer:hammer"..mode) + itemstack:set_metadata(mode) + return itemstack, mode +end + +local function ban_hammer_handler(itemstack, user, pointed_thing, mode) + local keys = user:get_player_control() + ban_hammer_setmode(user, itemstack, mode, keys) + if pointed_thing.type ~= "object" then + return + end + if not pointed_thing.ref:is_player() then + return + end + local puncher = user:get_player_name() + local puncher_privs = minetest.get_player_privs(puncher) + if (puncher_privs["ban"] == false) then + return + end + local punched_player = pointed_thing.ref:get_player_name() + local punched_player_privs = minetest.get_player_privs(punched_player) + if mode == 1 then + if SEND_MESSAGE_TO_ALL == true then + minetest.chat_send_all("The ban hammer has struck, wielded by "..puncher..", banning "..punched_player.." from the server.") + end + minetest.log("action", puncher .. " bans " .. punched_player .. ".") + minetest.ban_player(punched_player) + elseif mode == 2 then + if SEND_MESSAGE_TO_ALL == true then + minetest.chat_send_all("The ban hammer has struck, wielded by "..puncher..", kicking "..punched_player.." from the server.") + end + minetest.log("action", puncher .. " kicked " .. punched_player) + minetest.kick_player(punched_player) + elseif mode == 3 then + punched_player_privs["shout"] = nil + minetest.set_player_privs(punched_player, punched_player_privs) + minetest.log(puncher..' revoked (shout) privileges from '..punched_player) + if SEND_MESSAGE_TO_ALL == true then + minetest.chat_send_all("The ban hammer has struck, wielded by "..puncher..", revoking shout from "..punched_player) + end + minetest.chat_send_player(punched_player, puncher.." revoked privileges from you: shout") + elseif mode == 4 then + punched_player_privs["fly"] = nil + minetest.set_player_privs(punched_player, punched_player_privs) + minetest.log(puncher..' revoked (fly) privileges from '..punched_player) + if SEND_MESSAGE_TO_ALL == true then + minetest.chat_send_all("The ban hammer has struck, wielded by "..puncher..", revoking fly from "..punched_player) + end + minetest.chat_send_player(punched_player, puncher.." revoked privileges from you: fly") + elseif mode == 5 then + punched_player_privs["noclip"] = nil + minetest.set_player_privs(punched_player, punched_player_privs) + minetest.log(puncher..' revoked (noclip) privileges from '..punched_player) + if SEND_MESSAGE_TO_ALL == true then + minetest.chat_send_all("The ban hammer has struck, wielded by "..puncher..", revoking noclip from "..punched_player) + end + minetest.chat_send_player(punched_player, puncher.." revoked privileges from you: noclip") + + end + return itemstack +end + +minetest.register_craftitem("ban_hammer:hammer", { + description = "Admin tool 1: Ban Hammer", + inventory_image = "ban_hammer.png", + + on_use = function(itemstack, user, pointed_thing) + local mode = 0 + ban_hammer_handler(itemstack, user, pointed_thing, mode) + return itemstack + end, +}) + +for i = 1, 5 do + minetest.register_craftitem("ban_hammer:hammer"..i, { + description = "Admin tool 1: Ban Hammer in Mode "..i, + inventory_image = "ban_hammer.png^technic_tool_mode"..i..".png", + wield_image = "ban_hammer.png", + groups = {not_in_creative_inventory=1}, + stack_max = 1, + on_use = function(itemstack, user, pointed_thing) + local mode = i + ban_hammer_handler(itemstack, user, pointed_thing, mode) + return itemstack + end, + }) +end +----------------------------------------------------------------------------------------------- +print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") +----------------------------------------------------------------------------------------------- diff --git a/mods/ban_hammer/settings.txt b/mods/ban_hammer/settings.txt new file mode 100644 index 0000000..cbec8dc --- /dev/null +++ b/mods/ban_hammer/settings.txt @@ -0,0 +1 @@ +SEND_MESSAGE_TO_ALL = true diff --git a/mods/ban_hammer/textures/LICENSE b/mods/ban_hammer/textures/LICENSE new file mode 100644 index 0000000..e5a0ef3 --- /dev/null +++ b/mods/ban_hammer/textures/LICENSE @@ -0,0 +1 @@ +https://creativecommons.org/licenses/by-sa/4.0/legalcode diff --git a/mods/ban_hammer/textures/ban_hammer.png b/mods/ban_hammer/textures/ban_hammer.png new file mode 100644 index 0000000..96b19ea Binary files /dev/null and b/mods/ban_hammer/textures/ban_hammer.png differ diff --git a/mods/ban_hammer/textures/ban_tool_mode1.png b/mods/ban_hammer/textures/ban_tool_mode1.png new file mode 100644 index 0000000..d791d98 Binary files /dev/null and b/mods/ban_hammer/textures/ban_tool_mode1.png differ diff --git a/mods/ban_hammer/textures/ban_tool_mode2.png b/mods/ban_hammer/textures/ban_tool_mode2.png new file mode 100644 index 0000000..29c91f1 Binary files /dev/null and b/mods/ban_hammer/textures/ban_tool_mode2.png differ diff --git a/mods/ban_hammer/textures/ban_tool_mode3.png b/mods/ban_hammer/textures/ban_tool_mode3.png new file mode 100644 index 0000000..e165414 Binary files /dev/null and b/mods/ban_hammer/textures/ban_tool_mode3.png differ diff --git a/mods/ban_hammer/textures/ban_tool_mode4.png b/mods/ban_hammer/textures/ban_tool_mode4.png new file mode 100644 index 0000000..73ac19c Binary files /dev/null and b/mods/ban_hammer/textures/ban_tool_mode4.png differ diff --git a/mods/ban_hammer/textures/ban_tool_mode5.png b/mods/ban_hammer/textures/ban_tool_mode5.png new file mode 100644 index 0000000..8e17636 Binary files /dev/null and b/mods/ban_hammer/textures/ban_tool_mode5.png differ diff --git a/mods/ban_hammer/textures/ban_tool_mode6.png b/mods/ban_hammer/textures/ban_tool_mode6.png new file mode 100644 index 0000000..83f2323 Binary files /dev/null and b/mods/ban_hammer/textures/ban_tool_mode6.png differ diff --git a/mods/ban_hammer/textures/ban_tool_mode7.png b/mods/ban_hammer/textures/ban_tool_mode7.png new file mode 100644 index 0000000..b49b204 Binary files /dev/null and b/mods/ban_hammer/textures/ban_tool_mode7.png differ diff --git a/mods/ban_hammer/textures/ban_tool_mode8.png b/mods/ban_hammer/textures/ban_tool_mode8.png new file mode 100644 index 0000000..1c62d8c Binary files /dev/null and b/mods/ban_hammer/textures/ban_tool_mode8.png differ diff --git a/mods/beds/README.txt b/mods/beds/README.txt new file mode 100644 index 0000000..cda6ebd --- /dev/null +++ b/mods/beds/README.txt @@ -0,0 +1,26 @@ +Minetest Game mod: beds +======================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by BlockMen (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +BlockMen (CC BY-SA 3.0) + +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 +immediately. If playing multiplayer you get shown how many other players are in bed too, +if all players are sleeping the night gets skipped. 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 controlled respawning. If you have slept in bed (not just lying in +it) your respawn point is set to the beds location and you will respawn there after +death. +You can disable the respawn at beds by setting "enable_bed_respawn = false" in +minetest.conf. +You can disable the night skip feature by setting "enable_bed_night_skip = false" in +minetest.conf or by using the /set command in-game. diff --git a/mods/beds/api.lua b/mods/beds/api.lua new file mode 100644 index 0000000..9349545 --- /dev/null +++ b/mods/beds/api.lua @@ -0,0 +1,171 @@ + +local reverse = true + +local function destruct_bed(pos, n) + local node = minetest.get_node(pos) + local other + + if n == 2 then + local dir = minetest.facedir_to_dir(node.param2) + other = vector.subtract(pos, dir) + elseif n == 1 then + local dir = minetest.facedir_to_dir(node.param2) + other = vector.add(pos, dir) + end + + if reverse then + reverse = not reverse + minetest.remove_node(other) + minetest.check_for_falling(other) + else + reverse = not reverse + end +end + +function beds.register_bed(name, def) + minetest.register_node(name .. "_bottom", { + description = def.description, + inventory_image = def.inventory_image, + wield_image = def.wield_image, + drawtype = "nodebox", + tiles = def.tiles.bottom, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + stack_max = 1, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 1}, + sounds = def.sounds or default.node_sound_wood_defaults(), + node_box = { + type = "fixed", + fixed = def.nodebox.bottom, + }, + selection_box = { + type = "fixed", + fixed = def.selectionbox, + }, + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + local pos + if udef and udef.buildable_to then + pos = under + else + pos = pointed_thing.above + end + + local player_name = placer and placer:get_player_name() or "" + + if minetest.is_protected(pos, player_name) and + not minetest.check_player_privs(player_name, "protection_bypass") then + minetest.record_protection_violation(pos, player_name) + return itemstack + end + + local node_def = minetest.registered_nodes[minetest.get_node(pos).name] + if not node_def or not node_def.buildable_to then + return itemstack + end + + local dir = placer and placer:get_look_dir() and + minetest.dir_to_facedir(placer:get_look_dir()) or 0 + local botpos = vector.add(pos, minetest.facedir_to_dir(dir)) + + if minetest.is_protected(botpos, player_name) and + not minetest.check_player_privs(player_name, "protection_bypass") then + minetest.record_protection_violation(botpos, player_name) + return itemstack + end + + local botdef = minetest.registered_nodes[minetest.get_node(botpos).name] + if not botdef or not botdef.buildable_to then + return itemstack + end + + minetest.set_node(pos, {name = name .. "_bottom", param2 = dir}) + minetest.set_node(botpos, {name = name .. "_top", param2 = dir}) + + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + return itemstack + end, + + on_destruct = function(pos) + destruct_bed(pos, 1) + end, + + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + beds.on_rightclick(pos, clicker) + return itemstack + end, + + on_rotate = function(pos, node, user, mode, new_param2) + local dir = minetest.facedir_to_dir(node.param2) + local p = vector.add(pos, dir) + local node2 = minetest.get_node_or_nil(p) + if not node2 or not minetest.get_item_group(node2.name, "bed") == 2 or + not node.param2 == node2.param2 then + return false + end + if minetest.is_protected(p, user:get_player_name()) then + minetest.record_protection_violation(p, user:get_player_name()) + return false + end + if mode ~= screwdriver.ROTATE_FACE then + return false + end + local newp = vector.add(pos, minetest.facedir_to_dir(new_param2)) + local node3 = minetest.get_node_or_nil(newp) + local node_def = node3 and minetest.registered_nodes[node3.name] + if not node_def or not node_def.buildable_to then + return false + end + if minetest.is_protected(newp, user:get_player_name()) then + minetest.record_protection_violation(newp, user:get_player_name()) + return false + end + node.param2 = new_param2 + -- do not remove_node here - it will trigger destroy_bed() + minetest.set_node(p, {name = "air"}) + minetest.set_node(pos, node) + minetest.set_node(newp, {name = name .. "_top", param2 = new_param2}) + return true + end, + }) + + minetest.register_node(name .. "_top", { + drawtype = "nodebox", + tiles = def.tiles.top, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + pointable = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, bed = 2}, + sounds = def.sounds or default.node_sound_wood_defaults(), + drop = name .. "_bottom", + node_box = { + type = "fixed", + fixed = def.nodebox.top, + }, + on_destruct = function(pos) + destruct_bed(pos, 2) + end, + }) + + minetest.register_alias(name, name .. "_bottom") + + minetest.register_craft({ + output = name, + recipe = def.recipe + }) +end diff --git a/mods/beds/beds.lua b/mods/beds/beds.lua new file mode 100644 index 0000000..bb2fd5d --- /dev/null +++ b/mods/beds/beds.lua @@ -0,0 +1,104 @@ +-- Fancy shaped bed + +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:stick"}, + {"wool:red", "wool:red", "wool:white"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) + +-- Simple shaped bed + +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 = { + {"wool:red", "wool:red", "wool:white"}, + {"group:wood", "group:wood", "group:wood"} + }, +}) + +-- Aliases for PilzAdam's beds mod + +minetest.register_alias("beds:bed_bottom_red", "beds:bed_bottom") +minetest.register_alias("beds:bed_top_red", "beds:bed_top") + +-- Fuel + +minetest.register_craft({ + type = "fuel", + recipe = "beds:fancy_bed_bottom", + burntime = 13, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "beds:bed_bottom", + burntime = 12, +}) diff --git a/mods/beds/depends.txt b/mods/beds/depends.txt new file mode 100644 index 0000000..470ec30 --- /dev/null +++ b/mods/beds/depends.txt @@ -0,0 +1,2 @@ +default +wool diff --git a/mods/beds/functions.lua b/mods/beds/functions.lua new file mode 100644 index 0000000..78df9a1 --- /dev/null +++ b/mods/beds/functions.lua @@ -0,0 +1,220 @@ +local pi = math.pi +local player_in_bed = 0 +local is_sp = minetest.is_singleplayer() +local enable_respawn = minetest.settings:get_bool("enable_bed_respawn") +if enable_respawn == nil then + enable_respawn = true +end + +-- Helper functions + +local function get_look_yaw(pos) + local n = minetest.get_node(pos) + if n.param2 == 1 then + return pi / 2, n.param2 + elseif n.param2 == 3 then + return -pi / 2, n.param2 + elseif n.param2 == 0 then + return pi, n.param2 + else + return 0, n.param2 + end +end + +local function is_night_skip_enabled() + local enable_night_skip = minetest.settings:get_bool("enable_bed_night_skip") + if enable_night_skip == nil then + enable_night_skip = true + end + return enable_night_skip +end + +local function check_in_beds(players) + local in_bed = beds.player + if not players then + players = minetest.get_connected_players() + end + + for n, player in ipairs(players) do + local name = player:get_player_name() + if not in_bed[name] then + return false + end + end + + return #players > 0 +end + +local function lay_down(player, pos, bed_pos, state, skip) + local name = player:get_player_name() + local hud_flags = player:hud_get_flags() + + if not player or not name then + return + end + + -- stand up + if state ~= nil and not state then + local p = beds.pos[name] or nil + if beds.player[name] ~= nil then + beds.player[name] = nil + player_in_bed = player_in_bed - 1 + end + -- skip here to prevent sending player specific changes (used for leaving players) + if skip then + return + end + if p then + player:setpos(p) + end + + -- physics, eye_offset, etc + player:set_eye_offset({x = 0, y = 0, z = 0}, {x = 0, y = 0, z = 0}) + player:set_look_horizontal(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_horizontal(yaw) + local dir = minetest.facedir_to_dir(param2) + local p = {x = bed_pos.x + dir.x / 2, y = bed_pos.y, z = bed_pos.z + dir.z / 2} + player:set_physics_override(0, 0, 0) + player:setpos(p) + default.player_attached[name] = true + hud_flags.wielditem = false + default.player_set_animation(player, "lay" , 0) + end + + player:hud_set_flags(hud_flags) +end + +local function update_formspecs(finished) + local ges = #minetest.get_connected_players() + local form_n + local is_majority = (ges / 2) < player_in_bed + + if finished then + form_n = beds.formspec .. "label[2.7,11; Good morning.]" + else + form_n = beds.formspec .. "label[2.2,11;" .. tostring(player_in_bed) .. + " of " .. tostring(ges) .. " players are in bed]" + if is_majority and is_night_skip_enabled() then + form_n = form_n .. "button_exit[2,8;4,0.75;force;Force night skip]" + end + end + + for name,_ in pairs(beds.player) do + minetest.show_formspec(name, "beds_form", form_n) + end +end + + +-- Public functions + +function beds.kick_players() + for name, _ in pairs(beds.player) do + local player = minetest.get_player_by_name(name) + lay_down(player, nil, nil, false) + end +end + +function beds.skip_night() + minetest.set_timeofday(0.23) +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) + beds.set_spawns() -- save respawn positions when entering bed + else + lay_down(player, nil, nil, false) + end + + if not is_sp then + update_formspecs(false) + end + + -- skip the night and let all players stand up + if check_in_beds() then + minetest.after(2, function() + if not is_sp then + update_formspecs(is_night_skip_enabled()) + end + if is_night_skip_enabled() then + beds.skip_night() + beds.kick_players() + end + end) + end +end + + +-- Callbacks +-- Only register respawn callback if respawn enabled +if enable_respawn then + -- respawn player at bed if enabled and valid position is found + minetest.register_on_respawnplayer(function(player) + local name = player:get_player_name() + local pos = beds.spawn[name] + if pos then + player:setpos(pos) + return true + end + end) +end + +minetest.register_on_leaveplayer(function(player) + local name = player:get_player_name() + lay_down(player, nil, nil, false, true) + beds.player[name] = nil + if check_in_beds() then + minetest.after(2, function() + update_formspecs(is_night_skip_enabled()) + if is_night_skip_enabled() then + beds.skip_night() + beds.kick_players() + end + end) + end +end) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "beds_form" then + return + end + if fields.quit or fields.leave then + lay_down(player, nil, nil, false) + update_formspecs(false) + end + + if fields.force then + update_formspecs(is_night_skip_enabled()) + if is_night_skip_enabled() then + beds.skip_night() + beds.kick_players() + end + end +end) diff --git a/mods/beds/init.lua b/mods/beds/init.lua new file mode 100644 index 0000000..8b25890 --- /dev/null +++ b/mods/beds/init.lua @@ -0,0 +1,17 @@ +beds = {} +beds.player = {} +beds.pos = {} +beds.spawn = {} + +beds.formspec = "size[8,15;true]" .. + "bgcolor[#080808BB; true]" .. + "button_exit[2,12;4,0.75;leave;Leave Bed]" + +local modpath = minetest.get_modpath("beds") + +-- Load files + +dofile(modpath .. "/functions.lua") +dofile(modpath .. "/api.lua") +dofile(modpath .. "/beds.lua") +dofile(modpath .. "/spawns.lua") diff --git a/mods/beds/license.txt b/mods/beds/license.txt new file mode 100644 index 0000000..0494b36 --- /dev/null +++ b/mods/beds/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2014-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 BlockMen + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/beds/spawns.lua b/mods/beds/spawns.lua new file mode 100644 index 0000000..6b1f404 --- /dev/null +++ b/mods/beds/spawns.lua @@ -0,0 +1,63 @@ +local world_path = minetest.get_worldpath() +local org_file = world_path .. "/beds_spawns" +local file = world_path .. "/beds_spawns" +local bkwd = false + +-- check for PA's beds mod spawns +local cf = io.open(world_path .. "/beds_player_spawns", "r") +if cf ~= nil then + io.close(cf) + file = world_path .. "/beds_player_spawns" + bkwd = true +end + +function beds.read_spawns() + local spawns = beds.spawn + local input = io.open(file, "r") + if input and not bkwd then + repeat + local x = input:read("*n") + if x == nil then + break + end + local y = input:read("*n") + local z = input:read("*n") + local name = input:read("*l") + spawns[name:sub(2)] = {x = x, y = y, z = z} + until input:read(0) == nil + io.close(input) + elseif input and bkwd then + beds.spawn = minetest.deserialize(input:read("*all")) + input:close() + beds.save_spawns() + os.rename(file, file .. ".backup") + file = org_file + end +end + +beds.read_spawns() + +function beds.save_spawns() + if not beds.spawn then + return + end + local data = {} + local output = io.open(org_file, "w") + for k, v in pairs(beds.spawn) do + table.insert(data, string.format("%.1f %.1f %.1f %s\n", v.x, v.y, v.z, k)) + end + output:write(table.concat(data)) + io.close(output) +end + +function beds.set_spawns() + for name,_ in pairs(beds.player) do + local player = minetest.get_player_by_name(name) + local p = player:getpos() + -- but don't change spawn location if borrowing a bed + if not minetest.is_protected(p, name) then + beds.spawn[name] = p + end + end + beds.save_spawns() +end diff --git a/mods/beds/textures/beds_bed.png b/mods/beds/textures/beds_bed.png new file mode 100644 index 0000000..5c0054c 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 100644 index 0000000..4f9e8a7 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 100644 index 0000000..74d84c8 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 100644 index 0000000..763f5e1 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 100644 index 0000000..1ed8158 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 100644 index 0000000..9d1384d 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 100644 index 0000000..99ff309 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 100644 index 0000000..6f870e8 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 100644 index 0000000..b2807c5 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 100644 index 0000000..429ad7d 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 100644 index 0000000..b6fcc2c 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 100644 index 0000000..2fe5bf2 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 100644 index 0000000..9b78be6 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 100644 index 0000000..e877c80 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 100644 index 0000000..2dc0e3d Binary files /dev/null and b/mods/beds/textures/beds_transparent.png differ diff --git a/mods/boats/README.txt b/mods/boats/README.txt new file mode 100644 index 0000000..59631d9 --- /dev/null +++ b/mods/boats/README.txt @@ -0,0 +1,15 @@ +Minetest Game mod: boats +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by PilzAdam (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures and model) +------------------------------------- +Textures: Zeg9 (CC BY-SA 3.0) +Model: thetoon and Zeg9 (CC BY-SA 3.0), + modified by PavelS(SokolovPavel) (CC BY-SA 3.0), + modified by sofar (CC BY-SA 3.0) diff --git a/mods/boats/depends.txt b/mods/boats/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/boats/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/boats/init.lua b/mods/boats/init.lua new file mode 100644 index 0000000..ce67e91 --- /dev/null +++ b/mods/boats/init.lua @@ -0,0 +1,275 @@ +-- +-- 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, + -- Warning: Do not change the position of the collisionbox top surface, + -- lowering it causes the boat to fall through the world if underwater + collisionbox = {-0.5, -0.35, -0.5, 0.5, 0.3, 0.5}, + visual = "mesh", + mesh = "boats_boat.obj", + 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) + local pos = clicker:getpos() + pos = {x = pos.x, y = pos.y + 0.2, z = pos.z} + minetest.after(0.1, function() + clicker:setpos(pos) + end) + elseif not self.driver then + local attach = clicker:get_attach() + if attach and attach:get_luaentity() then + local luaentity = attach:get_luaentity() + if luaentity.driver then + luaentity.driver = nil + end + clicker:set_detach() + end + self.driver = clicker + clicker:set_attach(self.object, "", + {x = 0, y = 11, z = -3}, {x = 0, y = 0, z = 0}) + default.player_attached[name] = true + minetest.after(0.2, function() + default.player_set_animation(clicker, "sit" , 30) + end) + clicker:set_look_horizontal(self.object:getyaw()) + 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) + if not puncher or not puncher:is_player() or self.removed then + return + end + if self.driver and puncher == self.driver then + self.driver = nil + puncher:set_detach() + default.player_attached[puncher:get_player_name()] = false + end + if not self.driver then + self.removed = true + local inv = puncher:get_inventory() + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(puncher:get_player_name())) + or not inv:contains_item("main", "boats:boat") then + local leftover = inv:add_item("main", "boats:boat") + -- if no room in inventory add a replacement boat to the world + if not leftover:is_empty() then + minetest.add_item(self.object:getpos(), leftover) + end + end + -- delay remove to ensure player is detached + minetest.after(0.1, function() + self.object:remove() + end) + 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 + elseif ctrl.down then + self.v = self.v - 0.1 + end + if ctrl.left then + if self.v < 0 then + self.object:setyaw(yaw - (1 + dtime) * 0.03) + else + self.object:setyaw(yaw + (1 + dtime) * 0.03) + end + elseif ctrl.right then + if self.v < 0 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 + self.object:setpos(self.object:getpos()) + return + end + local s = get_sign(self.v) + self.v = self.v - 0.02 * s + if s ~= get_sign(self.v) then + self.object:setvelocity({x = 0, y = 0, z = 0}) + self.v = 0 + return + end + if math.abs(self.v) > 5 then + self.v = 5 * get_sign(self.v) + end + + local p = self.object:getpos() + p.y = p.y - 0.5 + local new_velo + 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} + end + new_velo = get_velocity(self.v, self.object:getyaw(), + self.object:getvelocity().y) + self.object:setpos(self.object:getpos()) + else + p.y = p.y + 1 + if is_water(p) then + local y = self.object:getvelocity().y + if y >= 5 then + y = 5 + elseif y < 0 then + new_acce = {x = 0, y = 20, z = 0} + else + new_acce = {x = 0, y = 5, z = 0} + end + new_velo = get_velocity(self.v, self.object:getyaw(), y) + self.object:setpos(self.object:getpos()) + else + new_acce = {x = 0, y = 0, z = 0} + if math.abs(self.object:getvelocity().y) < 1 then + local pos = self.object:getpos() + pos.y = math.floor(pos.y) + 0.5 + 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) + self.object:setpos(self.object:getpos()) + 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 = "boats_inventory.png", + wield_image = "boats_wield.png", + wield_scale = {x = 2, y = 2, z = 1}, + liquids_pointable = true, + groups = {flammable = 2}, + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + if pointed_thing.type ~= "node" then + return itemstack + end + if not is_water(pointed_thing.under) then + return itemstack + end + pointed_thing.under.y = pointed_thing.under.y + 0.5 + boat = minetest.add_entity(pointed_thing.under, "boats:boat") + if boat then + if placer then + boat:setyaw(placer:get_look_horizontal()) + end + local player_name = placer and placer:get_player_name() or "" + if not (creative and creative.is_enabled_for and + creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + end + return itemstack + end, +}) + + +minetest.register_craft({ + output = "boats:boat", + recipe = { + {"", "", "" }, + {"group:wood", "", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "boats:boat", + burntime = 20, +}) diff --git a/mods/boats/license.txt b/mods/boats/license.txt new file mode 100644 index 0000000..d4afe75 --- /dev/null +++ b/mods/boats/license.txt @@ -0,0 +1,63 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures and model) +-------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Zeg9 +Copyright (C) 2012-2016 thetoon +Copyright (C) 2012-2016 PavelS(SokolovPavel) +Copyright (C) 2016 sofar (sofar@foo-projects.org) + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/boats/models/boats_boat.obj b/mods/boats/models/boats_boat.obj new file mode 100644 index 0000000..0f21e47 --- /dev/null +++ b/mods/boats/models/boats_boat.obj @@ -0,0 +1,358 @@ +# Blender v2.76 (sub 11) OBJ File: 'boat.blend' +# www.blender.org +mtllib boat.mtl +o boats_boat +v -6.786140 -3.033999 -9.415440 +v -6.786140 -1.967150 -9.415440 +v -6.786140 -1.967150 8.793510 +v -6.786140 -3.033999 8.793510 +v 5.732520 -1.967150 -9.415440 +v 5.732520 -3.033999 -9.415440 +v 5.732520 -3.033999 8.793510 +v 5.732520 -1.967150 8.793510 +v -2.233900 -3.033999 -9.415440 +v -2.233900 -1.967150 -9.415440 +v -2.233900 -1.967150 8.793510 +v -2.233900 -3.033999 8.793510 +v 2.318340 -3.033999 -9.415440 +v 2.318340 -1.967150 -9.415440 +v 2.318340 -1.967150 8.793510 +v 2.318340 -3.033999 8.793510 +v -3.371960 -3.033999 8.793510 +v -3.371960 -1.967150 8.793510 +v -3.371960 -1.967150 -9.415440 +v -3.371960 -3.033999 -9.415440 +v 2.318340 0.276645 8.793510 +v 1.180280 -1.967150 8.793510 +v 5.732520 0.276645 8.793510 +v 5.732520 1.039180 8.793510 +v 6.870580 0.276645 8.793510 +v 6.870580 -1.967150 8.793510 +v 2.318340 1.039180 8.793510 +v 1.180280 0.276645 8.793510 +v 1.180280 1.039180 8.793510 +v 1.180280 -3.033999 8.793510 +v -2.233900 0.276645 8.793510 +v -3.371960 0.276645 8.793510 +v -2.233900 1.039180 8.793510 +v -3.371960 1.039180 8.793510 +v -6.786140 0.276645 8.793510 +v -7.786200 0.276645 8.793510 +v -7.786200 -1.967150 8.793510 +v -6.786140 1.039180 8.793510 +v 1.180280 -1.967150 -9.415440 +v 1.180280 -3.033999 -9.415440 +v 2.318340 0.276645 -9.415440 +v 1.180280 0.276645 -9.415440 +v 2.318340 1.039180 -9.415440 +v 5.732520 0.276645 -9.415440 +v 6.870580 -1.967150 -9.415440 +v 5.732520 1.039180 -9.415440 +v 6.870580 0.276645 -9.415440 +v 0.042220 1.039180 -9.415440 +v 1.180280 1.039180 -9.415440 +v 0.042220 -1.967150 -9.415440 +v -1.095840 -1.967150 -9.415440 +v -2.233900 0.276645 -9.415440 +v -3.371960 0.276645 -9.415440 +v -2.233900 1.039180 -9.415440 +v -1.095840 1.039180 -9.415440 +v -3.371960 1.039180 -9.415440 +v -6.786140 0.276645 -9.415440 +v -6.786140 1.039180 -9.415440 +v -7.786200 -1.967150 -9.415440 +v -7.786200 0.276645 -9.415440 +v -1.095840 0.156645 -12.044100 +v -1.095840 -4.601110 -9.415440 +v -1.095840 1.039181 -10.802900 +v -1.095840 2.868579 -10.802900 +v -1.095840 2.868580 -7.883420 +v -1.095840 3.746069 -12.034100 +v -1.095840 3.746070 -7.883420 +v -1.095840 0.156645 -14.294900 +v -1.095840 -4.601110 -14.284900 +v 0.042220 -4.601110 -14.284900 +v 0.042220 -4.601110 -9.415440 +v 0.042220 1.039181 -10.802900 +v 0.042220 0.156645 -12.044100 +v 0.042220 2.868579 -10.802900 +v 0.042220 0.156645 -14.294900 +v 0.042220 3.746069 -12.034100 +v 0.042220 3.746070 -7.883420 +v 0.042220 2.868580 -7.883420 +v -1.096322 -3.033999 -9.415440 +v 0.044046 -3.035397 -9.415440 +vt 1.000000 0.187500 +vt -1.000000 0.312500 +vt 1.000000 0.312500 +vt 0.687500 1.000000 +vt 0.500000 0.875000 +vt 0.500000 0.625000 +vt -1.000000 0.062500 +vt 1.000000 0.062500 +vt 1.000000 -0.000000 +vt -1.000000 0.125000 +vt 1.000000 0.125000 +vt 0.437500 0.125000 +vt 0.312500 0.500000 +vt 0.312500 0.125000 +vt 1.000000 0.625000 +vt -1.000000 0.500000 +vt 1.000000 0.500000 +vt 0.187500 0.687500 +vt -0.187500 0.687500 +vt -0.187500 0.312500 +vt 1.000000 0.812500 +vt -1.000000 0.937500 +vt -1.000000 0.812500 +vt 0.812500 0.687500 +vt 1.187500 0.687500 +vt 0.812500 0.312500 +vt 1.000000 0.562500 +vt 0.312500 0.437500 +vt 1.000000 0.437500 +vt 1.000000 0.750000 +vt -1.000000 0.875000 +vt -1.000000 0.750000 +vt -1.000000 1.000000 +vt 1.000000 1.000000 +vt 0.437500 0.625000 +vt 0.562500 0.437500 +vt 0.562500 0.625000 +vt -1.000000 0.437500 +vt -1.000000 0.000000 +vt 0.500000 0.062500 +vt 0.375000 0.750000 +vt 0.500000 0.750000 +vt -1.000000 0.250000 +vt -1.000000 0.687500 +vt 1.000000 0.687500 +vt 0.625000 0.375000 +vt 1.000000 0.375000 +vt 1.000000 0.250000 +vt 1.000000 0.937500 +vt 0.437500 0.812500 +vt 0.312500 0.312500 +vt 0.312500 0.812500 +vt 0.437500 0.312500 +vt 0.437500 0.437500 +vt 0.687500 0.812500 +vt 0.000000 0.687500 +vt 0.000000 0.812500 +vt -1.000000 0.562500 +vt 0.875000 0.812500 +vt 0.875000 0.687500 +vt 0.250000 0.312500 +vt 0.562500 0.187500 +vt 0.250000 0.187500 +vt -1.000000 0.187500 +vt 0.312500 0.625000 +vt 0.312500 0.187500 +vt 0.312500 -0.187500 +vt 1.000000 -0.187500 +vt 0.687500 0.500000 +vt -0.000000 1.000000 +vt 0.000000 0.875000 +vt 0.437500 0.500000 +vt -1.000000 0.625000 +vt 0.812500 0.187500 +vt 1.187500 0.187500 +vt 1.187500 0.312500 +vt 1.312500 0.312500 +vt 1.312500 0.687500 +vt 0.687500 0.187500 +vt 0.687500 0.312500 +vt 1.187500 0.812500 +vt 0.812500 0.812500 +vt 0.187500 0.312500 +vt 0.312500 0.687500 +vt 0.687500 0.687500 +vt -0.187500 0.187500 +vt 0.187500 0.187500 +vt -0.312500 0.687500 +vt -0.312500 0.312500 +vt 0.187500 0.812500 +vt -0.187500 0.812500 +vt 0.437500 0.687500 +vt 0.437500 0.187500 +vt 0.562500 0.812500 +vt 0.562500 0.687500 +vt 0.312500 0.562500 +vt 1.000000 0.875000 +vt 0.375000 0.062500 +vt -1.000000 0.375000 +vt 0.625000 0.500000 +vt 0.875000 0.562500 +vt 0.937500 0.812500 +vt 0.937500 0.687500 +vt 0.875000 0.937500 +vt 0.562500 0.312500 +vn -1.000000 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.002100 -1.000000 +vn 0.001200 -1.000000 0.000000 +vn 0.000000 0.002800 -1.000000 +vn -0.001200 -1.000000 0.000200 +g boats_boat_boats_boat_None +usemtl None +s off +f 41/1/1 27/2/1 43/3/1 +f 76/4/2 74/5/2 72/6/2 +f 8/7/2 6/1/2 5/8/2 +f 15/9/1 13/10/1 16/11/1 +f 51/12/3 71/13/3 50/14/3 +f 56/15/2 32/16/2 53/17/2 +f 15/18/3 8/19/3 23/20/3 +f 22/21/2 40/22/2 39/23/2 +f 19/24/4 2/25/4 53/26/4 +f 70/27/5 62/28/5 69/29/5 +f 11/30/5 19/31/5 10/32/5 +f 4/15/5 20/33/5 17/34/5 +f 72/35/3 64/36/3 63/37/3 +f 13/8/5 7/38/5 16/7/5 +f 23/39/6 47/11/6 44/9/6 +f 68/40/7 70/41/7 69/42/7 +f 80/43/8 40/10/8 30/11/8 +f 3/15/1 1/32/1 4/30/1 +f 20/44/2 18/27/2 17/45/2 +f 74/17/5 65/46/5 64/47/5 +f 31/43/1 54/47/1 52/48/1 +f 22/47/5 14/43/5 15/48/5 +f 46/1/2 23/7/2 44/8/2 +f 57/21/1 38/22/1 58/49/1 +f 61/50/9 76/51/9 73/52/9 +f 37/45/5 2/23/5 3/21/5 +f 78/28/3 67/53/3 65/54/3 +f 64/5/1 66/4/1 63/6/1 +f 76/55/6 67/56/6 77/57/6 +f 47/17/2 26/10/2 45/11/2 +f 5/16/5 26/47/5 8/17/5 +f 33/58/6 48/59/6 55/60/6 +f 29/38/2 42/3/2 49/29/2 +f 32/44/6 52/21/6 53/45/6 +f 58/15/6 34/33/6 56/34/6 +f 27/7/6 46/29/6 43/8/6 +f 73/61/6 68/62/6 61/63/6 +f 21/58/6 42/29/6 28/38/6 +f 11/29/1 9/58/1 12/27/1 +f 59/45/1 36/2/1 60/3/1 +f 60/9/6 35/10/6 57/11/6 +f 41/1/1 21/64/1 27/2/1 +f 72/6/2 48/65/2 50/66/2 +f 50/66/2 71/67/2 70/68/2 +f 70/68/2 75/17/2 73/69/2 +f 76/4/2 77/70/2 74/5/2 +f 77/70/2 78/71/2 74/5/2 +f 50/66/2 70/68/2 73/69/2 +f 73/69/2 76/4/2 72/6/2 +f 72/6/2 50/66/2 73/69/2 +f 8/7/2 7/64/2 6/1/2 +f 15/9/1 14/39/1 13/10/1 +f 51/12/3 62/72/3 71/13/3 +f 56/15/2 34/73/2 32/16/2 +f 32/26/3 34/74/3 38/75/3 +f 35/76/3 36/77/3 37/78/3 +f 32/26/3 38/75/3 35/76/3 +f 29/66/3 33/79/3 31/80/3 +f 32/26/3 35/76/3 3/25/3 +f 28/51/3 29/66/3 31/80/3 +f 31/80/3 32/26/3 18/24/3 +f 3/25/3 4/81/3 17/82/3 +f 35/76/3 37/78/3 3/25/3 +f 21/83/3 28/51/3 22/84/3 +f 3/25/3 17/82/3 18/24/3 +f 11/85/3 12/55/3 30/52/3 +f 32/26/3 3/25/3 18/24/3 +f 11/85/3 30/52/3 22/84/3 +f 31/80/3 18/24/3 11/85/3 +f 24/86/3 27/87/3 21/83/3 +f 28/51/3 31/80/3 11/85/3 +f 11/85/3 22/84/3 28/51/3 +f 24/86/3 21/83/3 23/20/3 +f 26/88/3 25/89/3 23/20/3 +f 23/20/3 21/83/3 15/18/3 +f 15/18/3 16/90/3 7/91/3 +f 21/83/3 22/84/3 15/18/3 +f 8/19/3 26/88/3 23/20/3 +f 15/18/3 7/91/3 8/19/3 +f 22/21/2 30/49/2 40/22/2 +f 47/89/4 45/88/4 5/19/4 +f 5/19/4 6/91/4 13/90/4 +f 5/19/4 13/90/4 14/18/4 +f 44/20/4 47/89/4 5/19/4 +f 43/87/4 46/86/4 44/20/4 +f 41/83/4 43/87/4 44/20/4 +f 44/20/4 5/19/4 14/18/4 +f 39/84/4 40/52/4 80/50/4 +f 44/20/4 14/18/4 41/83/4 +f 42/51/4 41/83/4 39/84/4 +f 39/84/4 80/50/4 50/92/4 +f 41/83/4 14/18/4 39/84/4 +f 48/93/4 49/66/4 42/51/4 +f 50/92/4 48/93/4 42/51/4 +f 80/50/4 79/94/4 50/92/4 +f 50/92/4 42/51/4 39/84/4 +f 54/79/4 55/62/4 52/80/4 +f 50/92/4 79/94/4 51/95/4 +f 52/80/4 55/62/4 51/95/4 +f 51/95/4 79/94/4 10/85/4 +f 79/94/4 9/55/4 10/85/4 +f 53/26/4 52/80/4 10/85/4 +f 58/75/4 56/74/4 53/26/4 +f 59/78/4 60/77/4 57/76/4 +f 57/76/4 58/75/4 53/26/4 +f 52/80/4 51/95/4 10/85/4 +f 19/24/4 20/82/4 1/81/4 +f 53/26/4 10/85/4 19/24/4 +f 59/78/4 57/76/4 2/25/4 +f 19/24/4 1/81/4 2/25/4 +f 2/25/4 57/76/4 53/26/4 +f 70/27/5 71/96/5 62/28/5 +f 11/30/5 18/97/5 19/31/5 +f 4/15/5 1/73/5 20/33/5 +f 72/35/3 74/54/3 64/36/3 +f 13/8/5 6/29/5 7/38/5 +f 23/39/6 25/10/6 47/11/6 +f 68/40/7 75/98/7 70/41/7 +f 30/11/5 12/17/5 79/99/5 +f 79/99/10 80/43/10 30/11/10 +f 12/17/5 9/16/5 79/99/5 +f 3/15/1 2/73/1 1/32/1 +f 20/44/2 19/58/2 18/27/2 +f 74/17/5 78/100/5 65/46/5 +f 31/43/1 33/99/1 54/47/1 +f 22/47/5 39/99/5 14/43/5 +f 46/1/2 24/64/2 23/7/2 +f 57/21/1 35/23/1 38/22/1 +f 61/50/9 66/53/9 76/51/9 +f 37/45/5 59/44/5 2/23/5 +f 78/28/3 77/51/3 67/53/3 +f 62/67/1 51/66/1 69/68/1 +f 51/66/1 55/65/1 63/6/1 +f 68/17/1 69/68/1 61/69/1 +f 61/69/1 69/68/1 51/66/1 +f 61/69/1 51/66/1 63/6/1 +f 65/71/1 67/70/1 64/5/1 +f 61/69/1 63/6/1 66/4/1 +f 64/5/1 67/70/1 66/4/1 +f 76/55/6 66/85/6 67/56/6 +f 47/17/2 25/16/2 26/10/2 +f 5/16/5 45/99/5 26/47/5 +f 55/60/6 54/101/6 33/58/6 +f 33/58/6 29/22/6 48/59/6 +f 48/59/6 72/102/6 63/103/6 +f 29/22/6 49/104/6 48/59/6 +f 48/59/6 63/103/6 55/60/6 +f 29/38/2 28/2/2 42/3/2 +f 32/44/6 31/23/6 52/21/6 +f 58/15/6 38/73/6 34/33/6 +f 27/7/6 24/38/6 46/29/6 +f 73/61/6 75/105/6 68/62/6 +f 21/58/6 41/27/6 42/29/6 +f 11/29/1 10/38/1 9/58/1 +f 59/45/1 37/44/1 36/2/1 +f 60/9/6 36/39/6 35/10/6 diff --git a/mods/boats/textures/boats_inventory.png b/mods/boats/textures/boats_inventory.png new file mode 100644 index 0000000..f9d082e Binary files /dev/null and b/mods/boats/textures/boats_inventory.png differ diff --git a/mods/boats/textures/boats_wield.png b/mods/boats/textures/boats_wield.png new file mode 100644 index 0000000..f998b5b Binary files /dev/null and b/mods/boats/textures/boats_wield.png differ diff --git a/mods/bones/README.txt b/mods/bones/README.txt new file mode 100644 index 0000000..91bcd10 --- /dev/null +++ b/mods/bones/README.txt @@ -0,0 +1,12 @@ +Minetest Game mod: bones +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by PilzAdam (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +All textures: paramat (CC BY-SA 3.0) diff --git a/mods/bones/depends.txt b/mods/bones/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/bones/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/bones/init.lua b/mods/bones/init.lua new file mode 100644 index 0000000..8688fa1 --- /dev/null +++ b/mods/bones/init.lua @@ -0,0 +1,255 @@ +-- Minetest 0.4 mod: bones +-- See README.txt for licensing and other information. + +local function is_owner(pos, name) + local owner = minetest.get_meta(pos):get_string("owner") + if owner == "" or owner == name or minetest.check_player_privs(name, "protection_bypass") then + return true + end + return false +end + +local bones_formspec = + "size[8,9]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "list[current_name;main;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_name;main]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + +local share_bones_time = tonumber(minetest.settings:get("share_bones_time")) or 1200 +local share_bones_time_early = tonumber(minetest.settings:get("share_bones_time_early")) or share_bones_time / 4 + +minetest.register_node("bones:bones", { + description = "Bones", + tiles = { + "bones_top.png^[transform2", + "bones_bottom.png", + "bones_side.png", + "bones_side.png", + "bones_rear.png", + "bones_front.png" + }, + paramtype2 = "facedir", + groups = {dig_immediate = 2}, + sounds = default.node_sound_gravel_defaults(), + + can_dig = function(pos, player) + local inv = minetest.get_meta(pos):get_inventory() + local name = "" + if player then + name = player:get_player_name() + end + return is_owner(pos, name) and inv:is_empty("main") + end, + + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + if is_owner(pos, player:get_player_name()) then + return count + end + return 0 + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + return 0 + end, + + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + if is_owner(pos, player:get_player_name()) then + return stack:get_count() + end + return 0 + end, + + on_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if meta:get_inventory():is_empty("main") then + local inv = player:get_inventory() + if inv:room_for_item("main", {name = "bones:bones"}) then + inv:add_item("main", {name = "bones:bones"}) + else + minetest.add_item(pos, "bones:bones") + end + minetest.remove_node(pos) + end + end, + + on_punch = function(pos, node, player) + if not is_owner(pos, player:get_player_name()) then + return + end + + if minetest.get_meta(pos):get_string("infotext") == "" then + return + end + + local inv = minetest.get_meta(pos):get_inventory() + local player_inv = player:get_inventory() + local has_space = true + + for i = 1, inv:get_size("main") do + local stk = inv:get_stack("main", i) + if player_inv:room_for_item("main", stk) then + inv:set_stack("main", i, nil) + player_inv:add_item("main", stk) + else + has_space = false + break + end + end + + -- remove bones if player emptied them + if has_space then + if player_inv:room_for_item("main", {name = "bones:bones"}) then + player_inv:add_item("main", {name = "bones:bones"}) + else + minetest.add_item(pos,"bones:bones") + end + minetest.remove_node(pos) + end + end, + + on_timer = function(pos, elapsed) + local meta = minetest.get_meta(pos) + local time = meta:get_int("time") + elapsed + if time >= share_bones_time then + meta:set_string("infotext", meta:get_string("owner") .. "'s old bones") + meta:set_string("owner", "") + else + meta:set_int("time", time) + return true + end + end, + on_blast = function(pos) + end, +}) + +local function may_replace(pos, player) + local node_name = minetest.get_node(pos).name + local node_definition = minetest.registered_nodes[node_name] + + -- if the node is unknown, we return false + if not node_definition then + return false + end + + -- allow replacing air and liquids + if node_name == "air" or node_definition.liquidtype ~= "none" then + return true + end + + -- don't replace filled chests and other nodes that don't allow it + local can_dig_func = node_definition.can_dig + if can_dig_func and not can_dig_func(pos, player) then + return false + end + + -- default to each nodes buildable_to; if a placed block would replace it, why shouldn't bones? + -- flowers being squished by bones are more realistical than a squished stone, too + -- exception are of course any protected buildable_to + return node_definition.buildable_to and not minetest.is_protected(pos, player:get_player_name()) +end + +local drop = function(pos, itemstack) + local obj = minetest.add_item(pos, itemstack:take_item(itemstack:get_count())) + if obj then + obj:setvelocity({ + x = math.random(-10, 10) / 9, + y = 5, + z = math.random(-10, 10) / 9, + }) + end +end + +minetest.register_on_dieplayer(function(player) + + local bones_mode = minetest.settings:get("bones_mode") or "bones" + if bones_mode ~= "bones" and bones_mode ~= "drop" and bones_mode ~= "keep" then + bones_mode = "bones" + end + + -- return if keep inventory set or in creative mode + if bones_mode == "keep" or (creative and creative.is_enabled_for + and creative.is_enabled_for(player:get_player_name())) then + return + end + + local player_inv = player:get_inventory() + if player_inv:is_empty("main") and + player_inv:is_empty("craft") then + return + end + + local pos = vector.round(player:getpos()) + local player_name = player:get_player_name() + + -- check if it's possible to place bones, if not find space near player + if bones_mode == "bones" and not may_replace(pos, player) then + local air = minetest.find_node_near(pos, 1, {"air"}) + if air and not minetest.is_protected(air, player_name) then + pos = air + else + bones_mode = "drop" + end + end + + if bones_mode == "drop" then + + -- drop inventory items + for i = 1, player_inv:get_size("main") do + drop(pos, player_inv:get_stack("main", i)) + end + player_inv:set_list("main", {}) + + -- drop crafting grid items + for i = 1, player_inv:get_size("craft") do + drop(pos, player_inv:get_stack("craft", i)) + end + player_inv:set_list("craft", {}) + + drop(pos, ItemStack("bones:bones")) + return + end + + local param2 = minetest.dir_to_facedir(player:get_look_dir()) + minetest.set_node(pos, {name = "bones:bones", param2 = param2}) + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size("main", 8 * 4) + inv:set_list("main", player_inv:get_list("main")) + + for i = 1, player_inv:get_size("craft") do + local stack = player_inv:get_stack("craft", i) + if inv:room_for_item("main", stack) then + inv:add_item("main", stack) + else + --drop if no space left + drop(pos, stack) + end + end + + player_inv:set_list("main", {}) + player_inv:set_list("craft", {}) + + meta:set_string("formspec", bones_formspec) + meta:set_string("owner", player_name) + + if share_bones_time ~= 0 then + meta:set_string("infotext", player_name .. "'s fresh bones") + + if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then + meta:set_int("time", 0) + else + meta:set_int("time", (share_bones_time - share_bones_time_early)) + end + + minetest.get_node_timer(pos):start(10) + else + meta:set_string("infotext", player_name.."'s bones") + end +end) diff --git a/mods/bones/license.txt b/mods/bones/license.txt new file mode 100644 index 0000000..fe52584 --- /dev/null +++ b/mods/bones/license.txt @@ -0,0 +1,58 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2016 paramat + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + diff --git a/mods/bones/textures/bones_bottom.png b/mods/bones/textures/bones_bottom.png new file mode 100644 index 0000000..859c6bb Binary files /dev/null and b/mods/bones/textures/bones_bottom.png differ diff --git a/mods/bones/textures/bones_front.png b/mods/bones/textures/bones_front.png new file mode 100644 index 0000000..1e52437 Binary files /dev/null and b/mods/bones/textures/bones_front.png differ diff --git a/mods/bones/textures/bones_rear.png b/mods/bones/textures/bones_rear.png new file mode 100644 index 0000000..4cfe236 Binary files /dev/null and b/mods/bones/textures/bones_rear.png differ diff --git a/mods/bones/textures/bones_side.png b/mods/bones/textures/bones_side.png new file mode 100644 index 0000000..a07595f Binary files /dev/null and b/mods/bones/textures/bones_side.png differ diff --git a/mods/bones/textures/bones_top.png b/mods/bones/textures/bones_top.png new file mode 100644 index 0000000..198a8a2 Binary files /dev/null and b/mods/bones/textures/bones_top.png differ diff --git a/mods/bucket/README.txt b/mods/bucket/README.txt new file mode 100644 index 0000000..45e0ec5 --- /dev/null +++ b/mods/bucket/README.txt @@ -0,0 +1,13 @@ +Minetest Game mod: bucket +========================= +See license.txt for license information. + +Authors of source code +---------------------- +Kahrl (LGPL 2.1) +celeron55, Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +Authors of media (textures) +--------------------------- +ElementW (CC BY-SA 3.0) diff --git a/mods/bucket/depends.txt b/mods/bucket/depends.txt new file mode 100644 index 0000000..3a7daa1 --- /dev/null +++ b/mods/bucket/depends.txt @@ -0,0 +1,2 @@ +default + diff --git a/mods/bucket/init.lua b/mods/bucket/init.lua new file mode 100644 index 0000000..62392e9 --- /dev/null +++ b/mods/bucket/init.lua @@ -0,0 +1,216 @@ +-- Minetest 0.4 mod: bucket +-- See README.txt for licensing and other information. + +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) +-- name = text description of the bucket item +-- groups = (optional) groups of the bucket item, for example {water_bucket = 1} +-- force_renew = (optional) bool. Force the liquid source to renew if it has a +-- source neighbour, even if defined as 'liquid_renewable = false'. +-- Needed to avoid creating holes in sloping rivers. +-- This function can be called from any mod (that depends on bucket). +function bucket.register_liquid(source, flowing, itemname, inventory_image, name, + groups, force_renew) + bucket.liquids[source] = { + source = source, + flowing = flowing, + itemname = itemname, + force_renew = force_renew, + } + 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 = groups, + + on_place = function(itemstack, user, pointed_thing) + -- Must be pointing to node + if pointed_thing.type ~= "node" then + return + end + + local node = minetest.get_node_or_nil(pointed_thing.under) + local ndef = node and minetest.registered_nodes[node.name] + + -- Call on_rightclick if the pointed node defines it + if ndef and ndef.on_rightclick and + not (user and user:is_player() and + user:get_player_control().sneak) then + return ndef.on_rightclick( + pointed_thing.under, + node, user, + itemstack) + end + + local lpos + + -- Check if pointing to a buildable node + if ndef and ndef.buildable_to then + -- buildable; replace the node + lpos = pointed_thing.under + else + -- not buildable to; place the liquid above + -- check if the node above can be replaced + + lpos = pointed_thing.above + node = minetest.get_node_or_nil(lpos) + local above_ndef = node and minetest.registered_nodes[node.name] + + if not above_ndef or not above_ndef.buildable_to then + -- do not remove the bucket with the liquid + return itemstack + end + end + + if check_protection(lpos, user + and user:get_player_name() + or "", "place "..source) then + return + end + + minetest.set_node(lpos, {name = source}) + return ItemStack("bucket:bucket_empty") + end + }) + end +end + +minetest.register_craftitem("bucket:bucket_empty", { + description = "Empty Bucket", + inventory_image = "bucket.png", + stack_max = 99, + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type == "object" then + pointed_thing.ref:punch(user, 1.0, { full_punch_interval=1.0 }, nil) + return user:get_wielded_item() + elseif pointed_thing.type ~= "node" then + -- do nothing if it's neither object nor node + return + end + -- Check if pointing to a liquid source + local node = minetest.get_node(pointed_thing.under) + local liquiddef = bucket.liquids[node.name] + local item_count = user:get_wielded_item():get_count() + + if liquiddef ~= nil + and liquiddef.itemname ~= nil + and node.name == liquiddef.source then + if check_protection(pointed_thing.under, + user:get_player_name(), + "take ".. node.name) then + return + end + + -- default set to return filled bucket + local giving_back = liquiddef.itemname + + -- check if holding more than 1 empty bucket + if item_count > 1 then + + -- if space in inventory add filled bucked, otherwise drop as item + local inv = user:get_inventory() + if inv:room_for_item("main", {name=liquiddef.itemname}) then + inv:add_item("main", liquiddef.itemname) + else + local pos = user:getpos() + pos.y = math.floor(pos.y + 0.5) + minetest.add_item(pos, liquiddef.itemname) + end + + -- set to return empty buckets minus 1 + giving_back = "bucket:bucket_empty "..tostring(item_count-1) + + end + + -- force_renew requires a source neighbour + local source_neighbor = false + if liquiddef.force_renew then + source_neighbor = + minetest.find_node_near(pointed_thing.under, 1, liquiddef.source) + end + if not (source_neighbor and liquiddef.force_renew) then + minetest.add_node(pointed_thing.under, {name = "air"}) + end + + return ItemStack(giving_back) + else + -- non-liquid nodes will have their on_punch triggered + local node_def = minetest.registered_nodes[node.name] + if node_def then + node_def.on_punch(pointed_thing.under, node, user, pointed_thing) + end + return user:get_wielded_item() + end + end, +}) + +bucket.register_liquid( + "default:water_source", + "default:water_flowing", + "bucket:bucket_water", + "bucket_water.png", + "Water Bucket", + {water_bucket = 1} +) + +bucket.register_liquid( + "default:river_water_source", + "default:river_water_flowing", + "bucket:bucket_river_water", + "bucket_river_water.png", + "River Water Bucket", + {water_bucket = 1}, + true +) + +bucket.register_liquid( + "default:lava_source", + "default:lava_flowing", + "bucket:bucket_lava", + "bucket_lava.png", + "Lava Bucket" +) + +minetest.register_craft({ + type = "fuel", + recipe = "bucket:bucket_lava", + burntime = 60, + replacements = {{"bucket:bucket_lava", "bucket:bucket_empty"}}, +}) + diff --git a/mods/bucket/license.txt b/mods/bucket/license.txt new file mode 100644 index 0000000..a5156ae --- /dev/null +++ b/mods/bucket/license.txt @@ -0,0 +1,51 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 Kahrl +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2011-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2015-2016 ElementW + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/bucket/textures/bucket.png b/mods/bucket/textures/bucket.png new file mode 100644 index 0000000..17b0c49 Binary files /dev/null and b/mods/bucket/textures/bucket.png differ diff --git a/mods/bucket/textures/bucket_lava.png b/mods/bucket/textures/bucket_lava.png new file mode 100644 index 0000000..ac6108d Binary files /dev/null and b/mods/bucket/textures/bucket_lava.png differ diff --git a/mods/bucket/textures/bucket_river_water.png b/mods/bucket/textures/bucket_river_water.png new file mode 100644 index 0000000..d4648bb Binary files /dev/null and b/mods/bucket/textures/bucket_river_water.png differ diff --git a/mods/bucket/textures/bucket_water.png b/mods/bucket/textures/bucket_water.png new file mode 100644 index 0000000..5af836b Binary files /dev/null and b/mods/bucket/textures/bucket_water.png differ diff --git a/mods/carts/README.txt b/mods/carts/README.txt new file mode 100644 index 0000000..31ce644 --- /dev/null +++ b/mods/carts/README.txt @@ -0,0 +1,22 @@ +Carts (formerly boost_cart) +========================== + +Carts, based almost entirely on the mod boost_cart [1], which +itself is based on (and fully compatible with) the carts mod [2]. + +The model was originally designed by stujones11 [3] (CC-0). + +Cart textures are based on original work from PixelBOX (WTFPL). + + +[1] https://github.com/SmallJoker/boost_cart/ +[2] https://github.com/PilzAdam/carts/ +[3] https://github.com/stujones11/railcart/ + + +Features +---------- +- A fast cart for your railway or roller coaster (up to 7 m/s!) +- Boost and brake rails +- Rail junction switching with the 'right-left' walking keys +- Handbrake with the 'back' key diff --git a/mods/carts/cart_entity.lua b/mods/carts/cart_entity.lua new file mode 100644 index 0000000..031e456 --- /dev/null +++ b/mods/carts/cart_entity.lua @@ -0,0 +1,404 @@ +local cart_entity = { + physical = false, -- otherwise going uphill breaks + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "carts_cart.b3d", + visual_size = {x=1, y=1}, + textures = {"carts_cart.png"}, + + driver = nil, + punched = false, -- used to re-send velocity and position + velocity = {x=0, y=0, z=0}, -- only used on punch + old_dir = {x=1, y=0, z=0}, -- random value to start the cart on punch + old_pos = nil, + old_switch = 0, + railtype = nil, + attached_items = {} +} + +function cart_entity:on_rightclick(clicker) + if not clicker or not clicker:is_player() then + return + end + local player_name = clicker:get_player_name() + if self.driver and player_name == self.driver then + self.driver = nil + carts:manage_attachment(clicker, nil) + elseif not self.driver then + self.driver = player_name + carts:manage_attachment(clicker, self.object) + end +end + +function cart_entity:on_activate(staticdata, dtime_s) + self.object:set_armor_groups({immortal=1}) + if string.sub(staticdata, 1, string.len("return")) ~= "return" then + return + end + local data = minetest.deserialize(staticdata) + if not data or type(data) ~= "table" then + return + end + self.railtype = data.railtype + if data.old_dir then + self.old_dir = data.old_dir + end + if data.old_vel then + self.old_vel = data.old_vel + end +end + +function cart_entity:get_staticdata() + return minetest.serialize({ + railtype = self.railtype, + old_dir = self.old_dir, + old_vel = self.old_vel + }) +end + +function cart_entity:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + local pos = self.object:getpos() + local vel = self.object:getvelocity() + if not self.railtype or vector.equals(vel, {x=0, y=0, z=0}) then + local node = minetest.get_node(pos).name + self.railtype = minetest.get_item_group(node, "connect_to_raillike") + end + -- Punched by non-player + if not puncher or not puncher:is_player() then + local cart_dir = carts:get_rail_direction(pos, self.old_dir, nil, nil, self.railtype) + if vector.equals(cart_dir, {x=0, y=0, z=0}) then + return + end + self.velocity = vector.multiply(cart_dir, 2) + self.punched = true + return + end + -- Player digs cart by sneak-punch + if puncher:get_player_control().sneak then + if self.sound_handle then + minetest.sound_stop(self.sound_handle) + end + -- Detach driver and items + if self.driver then + if self.old_pos then + self.object:setpos(self.old_pos) + end + local player = minetest.get_player_by_name(self.driver) + carts:manage_attachment(player, nil) + end + for _,obj_ in ipairs(self.attached_items) do + if obj_ then + obj_:set_detach() + end + end + -- Pick up cart + local inv = puncher:get_inventory() + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(puncher:get_player_name())) + or not inv:contains_item("main", "carts:cart") then + local leftover = inv:add_item("main", "carts:cart") + -- If no room in inventory add a replacement cart to the world + if not leftover:is_empty() then + minetest.add_item(self.object:getpos(), leftover) + end + end + self.object:remove() + return + end + -- Player punches cart to alter velocity + if puncher:get_player_name() == self.driver then + if math.abs(vel.x + vel.z) > carts.punch_speed_max then + return + end + end + + local punch_dir = carts:velocity_to_dir(puncher:get_look_dir()) + punch_dir.y = 0 + local cart_dir = carts:get_rail_direction(pos, punch_dir, nil, nil, self.railtype) + if vector.equals(cart_dir, {x=0, y=0, z=0}) then + return + end + + local punch_interval = 1 + if tool_capabilities and tool_capabilities.full_punch_interval then + punch_interval = tool_capabilities.full_punch_interval + end + time_from_last_punch = math.min(time_from_last_punch or punch_interval, punch_interval) + local f = 2 * (time_from_last_punch / punch_interval) + + self.velocity = vector.multiply(cart_dir, f) + self.old_dir = cart_dir + self.punched = true +end + +local function rail_on_step_event(handler, obj, dtime) + if handler then + handler(obj, dtime) + end +end + +-- sound refresh interval = 1.0sec +local function rail_sound(self, dtime) + if not self.sound_ttl then + self.sound_ttl = 1.0 + return + elseif self.sound_ttl > 0 then + self.sound_ttl = self.sound_ttl - dtime + return + end + self.sound_ttl = 1.0 + if self.sound_handle then + local handle = self.sound_handle + self.sound_handle = nil + minetest.after(0.2, minetest.sound_stop, handle) + end + local vel = self.object:getvelocity() + local speed = vector.length(vel) + if speed > 0 then + self.sound_handle = minetest.sound_play( + "carts_cart_moving", { + object = self.object, + gain = (speed / carts.speed_max) / 2, + loop = true, + }) + end +end + +local function get_railparams(pos) + local node = minetest.get_node(pos) + return carts.railparams[node.name] or {} +end + +local function rail_on_step(self, dtime) + local vel = self.object:getvelocity() + if self.punched then + vel = vector.add(vel, self.velocity) + self.object:setvelocity(vel) + self.old_dir.y = 0 + elseif vector.equals(vel, {x=0, y=0, z=0}) then + return + end + + local pos = self.object:getpos() + local update = {} + + -- stop cart if velocity vector flips + if self.old_vel and self.old_vel.y == 0 and + (self.old_vel.x * vel.x < 0 or self.old_vel.z * vel.z < 0) then + self.old_vel = {x = 0, y = 0, z = 0} + self.old_pos = pos + self.object:setvelocity(vector.new()) + self.object:setacceleration(vector.new()) + rail_on_step_event(get_railparams(pos).on_step, self, dtime) + return + end + self.old_vel = vector.new(vel) + + if self.old_pos and not self.punched then + local flo_pos = vector.round(pos) + local flo_old = vector.round(self.old_pos) + if vector.equals(flo_pos, flo_old) then + -- Do not check one node multiple times + return + end + end + + local ctrl, player + + -- Get player controls + if self.driver then + player = minetest.get_player_by_name(self.driver) + if player then + ctrl = player:get_player_control() + end + end + + if self.old_pos then + -- Detection for "skipping" nodes + local found_path = carts:pathfinder( + pos, self.old_pos, self.old_dir, ctrl, self.old_switch, self.railtype + ) + + if not found_path then + -- No rail found: reset back to the expected position + pos = vector.new(self.old_pos) + update.pos = true + end + end + + local cart_dir = carts:velocity_to_dir(vel) + local railparams + + -- dir: New moving direction of the cart + -- switch_keys: Currently pressed L/R key, used to ignore the key on the next rail node + local dir, switch_keys = carts:get_rail_direction( + pos, cart_dir, ctrl, self.old_switch, self.railtype + ) + + local new_acc = {x=0, y=0, z=0} + if vector.equals(dir, {x=0, y=0, z=0}) then + vel = {x = 0, y = 0, z = 0} + pos = vector.round(pos) + update.pos = true + update.vel = true + else + -- Direction change detected + if not vector.equals(dir, self.old_dir) then + vel = vector.multiply(dir, math.abs(vel.x + vel.z)) + update.vel = true + if dir.y ~= self.old_dir.y then + pos = vector.round(pos) + update.pos = true + end + end + -- Center on the rail + if dir.z ~= 0 and math.floor(pos.x + 0.5) ~= pos.x then + pos.x = math.floor(pos.x + 0.5) + update.pos = true + end + if dir.x ~= 0 and math.floor(pos.z + 0.5) ~= pos.z then + pos.z = math.floor(pos.z + 0.5) + update.pos = true + end + + -- Slow down or speed up.. + local acc = dir.y * -4.0 + + -- Get rail for corrected position + railparams = get_railparams(pos) + + -- no need to check for railparams == nil since we always make it exist. + local speed_mod = railparams.acceleration + if speed_mod and speed_mod ~= 0 then + -- Try to make it similar to the original carts mod + acc = acc + speed_mod + else + -- Handbrake or coast + if ctrl and ctrl.down then + acc = acc - 3 + else + acc = acc - 0.4 + end + end + + new_acc = vector.multiply(dir, acc) + end + + -- Limits + local max_vel = carts.speed_max + for _, v in pairs({"x","y","z"}) do + if math.abs(vel[v]) > max_vel then + vel[v] = carts:get_sign(vel[v]) * max_vel + new_acc[v] = 0 + update.vel = true + end + end + + self.object:setacceleration(new_acc) + self.old_pos = vector.new(pos) + if not vector.equals(dir, {x=0, y=0, z=0}) then + self.old_dir = vector.new(dir) + end + self.old_switch = switch_keys + + if self.punched then + -- Collect dropped items + for _, obj_ in pairs(minetest.get_objects_inside_radius(pos, 1)) do + if not obj_:is_player() and + obj_:get_luaentity() and + not obj_:get_luaentity().physical_state and + obj_:get_luaentity().name == "__builtin:item" then + + obj_:set_attach(self.object, "", {x=0, y=0, z=0}, {x=0, y=0, z=0}) + self.attached_items[#self.attached_items + 1] = obj_ + end + end + self.punched = false + update.vel = true + end + + railparams = railparams or get_railparams(pos) + + if not (update.vel or update.pos) then + rail_on_step_event(railparams.on_step, self, dtime) + return + end + + local yaw = 0 + if self.old_dir.x < 0 then + yaw = 0.5 + elseif self.old_dir.x > 0 then + yaw = 1.5 + elseif self.old_dir.z < 0 then + yaw = 1 + end + self.object:setyaw(yaw * math.pi) + + local anim = {x=0, y=0} + if dir.y == -1 then + anim = {x=1, y=1} + elseif dir.y == 1 then + anim = {x=2, y=2} + end + self.object:set_animation(anim, 1, 0) + + self.object:setvelocity(vel) + if update.pos then + self.object:setpos(pos) + end + + -- call event handler + rail_on_step_event(railparams.on_step, self, dtime) +end + +function cart_entity:on_step(dtime) + rail_on_step(self, dtime) + rail_sound(self, dtime) +end + +minetest.register_entity("carts:cart", cart_entity) + +minetest.register_craftitem("carts:cart", { + description = "Cart (Sneak+Click to pick up)", + inventory_image = minetest.inventorycube("carts_cart_top.png", "carts_cart_side.png", "carts_cart_side.png"), + wield_image = "carts_cart_side.png", + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + if not pointed_thing.type == "node" then + return + end + if carts:is_rail(pointed_thing.under) then + minetest.add_entity(pointed_thing.under, "carts:cart") + elseif carts:is_rail(pointed_thing.above) then + minetest.add_entity(pointed_thing.above, "carts:cart") + else + return + end + + minetest.sound_play({name = "default_place_node_metal", gain = 0.5}, + {pos = pointed_thing.above}) + + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(placer:get_player_name())) then + itemstack:take_item() + end + return itemstack + end, +}) + +minetest.register_craft({ + output = "carts:cart", + recipe = { + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + }, +}) diff --git a/mods/carts/depends.txt b/mods/carts/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /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 0000000..9b7e2c6 --- /dev/null +++ b/mods/carts/functions.lua @@ -0,0 +1,232 @@ +function carts:get_sign(z) + if z == 0 then + return 0 + else + return z / math.abs(z) + end +end + +function carts:manage_attachment(player, obj) + if not player then + return + end + local status = obj ~= nil + local player_name = player:get_player_name() + if default.player_attached[player_name] == status then + return + end + default.player_attached[player_name] = status + + if status then + player:set_attach(obj, "", {x=0, y=6, z=0}, {x=0, y=0, z=0}) + player:set_eye_offset({x=0, y=-4, z=0},{x=0, y=-4, z=0}) + else + player:set_detach() + player:set_eye_offset({x=0, y=0, z=0},{x=0, y=0, z=0}) + end +end + +function carts:velocity_to_dir(v) + if math.abs(v.x) > math.abs(v.z) then + return {x=carts:get_sign(v.x), y=carts:get_sign(v.y), z=0} + else + return {x=0, y=carts:get_sign(v.y), z=carts:get_sign(v.z)} + end +end + +function carts:is_rail(pos, railtype) + local node = minetest.get_node(pos).name + if node == "ignore" then + local vm = minetest.get_voxel_manip() + local emin, emax = vm:read_from_map(pos, pos) + local area = VoxelArea:new{ + MinEdge = emin, + MaxEdge = emax, + } + local data = vm:get_data() + local vi = area:indexp(pos) + node = minetest.get_name_from_content_id(data[vi]) + end + if minetest.get_item_group(node, "rail") == 0 then + return false + end + if not railtype then + return true + end + return minetest.get_item_group(node, "connect_to_raillike") == railtype +end + +function carts:check_front_up_down(pos, dir_, check_up, railtype) + local dir = vector.new(dir_) + local cur + + -- Front + dir.y = 0 + cur = vector.add(pos, dir) + if carts:is_rail(cur, railtype) then + return dir + end + -- Up + if check_up then + dir.y = 1 + cur = vector.add(pos, dir) + if carts:is_rail(cur, railtype) then + return dir + end + end + -- Down + dir.y = -1 + cur = vector.add(pos, dir) + if carts:is_rail(cur, railtype) then + return dir + end + return nil +end + +function carts:get_rail_direction(pos_, dir, ctrl, old_switch, railtype) + local pos = vector.round(pos_) + local cur + local left_check, right_check = true, true + + -- Check 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 + right.x = dir.z + elseif dir.x ~= 0 and dir.z == 0 then + left.z = dir.x + right.z = -dir.x + end + + if ctrl then + if old_switch == 1 then + left_check = false + elseif old_switch == 2 then + right_check = false + end + if ctrl.left and left_check then + cur = carts:check_front_up_down(pos, left, false, railtype) + if cur then + return cur, 1 + end + left_check = false + end + if ctrl.right and right_check then + cur = carts:check_front_up_down(pos, right, false, railtype) + if cur then + return cur, 2 + end + right_check = true + end + end + + -- Normal + cur = carts:check_front_up_down(pos, dir, true, railtype) + if cur then + return cur + end + + -- Left, if not already checked + if left_check then + cur = carts:check_front_up_down(pos, left, false, railtype) + if cur then + return cur + end + end + + -- Right, if not already checked + if right_check then + cur = carts:check_front_up_down(pos, right, false, railtype) + if cur then + return cur + end + end + + -- Backwards + if not old_switch then + cur = carts:check_front_up_down(pos, { + x = -dir.x, + y = dir.y, + z = -dir.z + }, true, railtype) + if cur then + return cur + end + end + + return {x=0, y=0, z=0} +end + +function carts:pathfinder(pos_, old_pos, old_dir, ctrl, pf_switch, railtype) + if vector.equals(old_pos, pos_) then + return true + end + + local pos = vector.round(pos_) + local pf_pos = vector.round(old_pos) + local pf_dir = vector.new(old_dir) + + for i = 1, 3 do + pf_dir, pf_switch = carts:get_rail_direction( + pf_pos, pf_dir, ctrl, pf_switch, railtype) + + if vector.equals(pf_dir, {x=0, y=0, z=0}) then + -- No way forwards + return false + end + + pf_pos = vector.add(pf_pos, pf_dir) + + if vector.equals(pf_pos, pos) then + -- Success! Cart moved on correctly + return true + end + end + -- Cart not found + return false +end + +function carts:register_rail(name, def_overwrite, railparams) + local def = { + drawtype = "raillike", + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + sounds = default.node_sound_metal_defaults() + } + for k, v in pairs(def_overwrite) do + def[k] = v + end + if not def.inventory_image then + def.wield_image = def.tiles[1] + def.inventory_image = def.tiles[1] + end + + if railparams then + carts.railparams[name] = table.copy(railparams) + end + + minetest.register_node(name, def) +end + +function carts:get_rail_groups(additional_groups) + -- Get the default rail groups and add more when a table is given + local groups = { + dig_immediate = 2, + attached_node = 1, + rail = 1, + connect_to_raillike = minetest.raillike_group("rail") + } + if type(additional_groups) == "table" then + for k, v in pairs(additional_groups) do + groups[k] = v + end + end + return groups +end diff --git a/mods/carts/init.lua b/mods/carts/init.lua new file mode 100644 index 0000000..53b33cc --- /dev/null +++ b/mods/carts/init.lua @@ -0,0 +1,20 @@ + +carts = {} +carts.modpath = minetest.get_modpath("carts") +carts.railparams = {} + +-- Maximal speed of the cart in m/s (min = -1) +carts.speed_max = 7 +-- Set to -1 to disable punching the cart from inside (min = -1) +carts.punch_speed_max = 5 + + +dofile(carts.modpath.."/functions.lua") +dofile(carts.modpath.."/rails.lua") + +-- Support for non-default games +if not default.player_attached then + default.player_attached = {} +end + +dofile(carts.modpath.."/cart_entity.lua") diff --git a/mods/carts/license.txt b/mods/carts/license.txt new file mode 100644 index 0000000..6c5beb4 --- /dev/null +++ b/mods/carts/license.txt @@ -0,0 +1,54 @@ + +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 SmallJoker +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation the +rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +sell copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media +----------------- + +CC-0, see: https://creativecommons.org/share-your-work/public-domain/cc0/, except +if other license is mentioned. + + +Authors +--------- +Originally from PixelBOX (Gambit): + carts_cart_side.png + carts_cart_top.png + carts_cart_front.png* + carts_cart.png* + +sofar + stujones11: + carts_cart.b3d and carts_cart.blend + +hexafraction, modified by sofar + carts_rail_*.png + +http://www.freesound.org/people/YleArkisto/sounds/253159/ - YleArkisto - CC-BY-3.0 + carts_cart_moving.*.ogg diff --git a/mods/carts/models/carts_cart.b3d b/mods/carts/models/carts_cart.b3d new file mode 100644 index 0000000..4e7eba3 Binary files /dev/null and b/mods/carts/models/carts_cart.b3d differ diff --git a/mods/carts/models/carts_cart.blend b/mods/carts/models/carts_cart.blend new file mode 100644 index 0000000..7d2515e Binary files /dev/null and b/mods/carts/models/carts_cart.blend differ diff --git a/mods/carts/rails.lua b/mods/carts/rails.lua new file mode 100644 index 0000000..066779d --- /dev/null +++ b/mods/carts/rails.lua @@ -0,0 +1,59 @@ +carts:register_rail("carts:rail", { + description = "Rail", + tiles = { + "carts_rail_straight.png", "carts_rail_curved.png", + "carts_rail_t_junction.png", "carts_rail_crossing.png" + }, + inventory_image = "carts_rail_straight.png", + wield_image = "carts_rail_straight.png", + groups = carts:get_rail_groups(), +}, {}) + +minetest.register_craft({ + output = "carts:rail 18", + recipe = { + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + } +}) + +minetest.register_alias("default:rail", "carts:rail") + + +carts:register_rail("carts:powerrail", { + description = "Powered rail", + tiles = { + "carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png", + "carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png" + }, + groups = carts:get_rail_groups(), +}, {acceleration = 5}) + +minetest.register_craft({ + output = "carts:powerrail 18", + recipe = { + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + {"default:steel_ingot", "default:mese_crystal", "default:steel_ingot"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + } +}) + + +carts:register_rail("carts:brakerail", { + description = "Brake rail", + tiles = { + "carts_rail_straight_brk.png", "carts_rail_curved_brk.png", + "carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png" + }, + groups = carts:get_rail_groups(), +}, {acceleration = -3}) + +minetest.register_craft({ + output = "carts:brakerail 18", + recipe = { + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + {"default:steel_ingot", "default:coal_lump", "default:steel_ingot"}, + {"default:steel_ingot", "group:wood", "default:steel_ingot"}, + } +}) diff --git a/mods/carts/sounds/carts_cart_moving.1.ogg b/mods/carts/sounds/carts_cart_moving.1.ogg new file mode 100644 index 0000000..869e765 Binary files /dev/null and b/mods/carts/sounds/carts_cart_moving.1.ogg differ diff --git a/mods/carts/sounds/carts_cart_moving.2.ogg b/mods/carts/sounds/carts_cart_moving.2.ogg new file mode 100644 index 0000000..b4cc508 Binary files /dev/null and b/mods/carts/sounds/carts_cart_moving.2.ogg differ diff --git a/mods/carts/sounds/carts_cart_moving.3.ogg b/mods/carts/sounds/carts_cart_moving.3.ogg new file mode 100644 index 0000000..e19a782 Binary files /dev/null and b/mods/carts/sounds/carts_cart_moving.3.ogg differ diff --git a/mods/carts/textures/carts_cart.png b/mods/carts/textures/carts_cart.png new file mode 100644 index 0000000..965347c Binary files /dev/null and b/mods/carts/textures/carts_cart.png differ diff --git a/mods/carts/textures/carts_cart_front.png b/mods/carts/textures/carts_cart_front.png new file mode 100644 index 0000000..38955b2 Binary files /dev/null and b/mods/carts/textures/carts_cart_front.png differ diff --git a/mods/carts/textures/carts_cart_side.png b/mods/carts/textures/carts_cart_side.png new file mode 100644 index 0000000..f53808c Binary files /dev/null and b/mods/carts/textures/carts_cart_side.png differ diff --git a/mods/carts/textures/carts_cart_top.png b/mods/carts/textures/carts_cart_top.png new file mode 100644 index 0000000..d9a31a9 Binary files /dev/null and b/mods/carts/textures/carts_cart_top.png differ diff --git a/mods/carts/textures/carts_rail_crossing.png b/mods/carts/textures/carts_rail_crossing.png new file mode 100644 index 0000000..e10f3b1 Binary files /dev/null and b/mods/carts/textures/carts_rail_crossing.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 0000000..0bf455e 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 0000000..d763d50 Binary files /dev/null and b/mods/carts/textures/carts_rail_crossing_pwr.png differ diff --git a/mods/carts/textures/carts_rail_curved.png b/mods/carts/textures/carts_rail_curved.png new file mode 100644 index 0000000..b320f0d Binary files /dev/null and b/mods/carts/textures/carts_rail_curved.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 0000000..ca40723 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 0000000..781bbd0 Binary files /dev/null and b/mods/carts/textures/carts_rail_curved_pwr.png differ diff --git a/mods/carts/textures/carts_rail_straight.png b/mods/carts/textures/carts_rail_straight.png new file mode 100644 index 0000000..30dcafe Binary files /dev/null and b/mods/carts/textures/carts_rail_straight.png differ diff --git a/mods/carts/textures/carts_rail_straight_brk.png b/mods/carts/textures/carts_rail_straight_brk.png new file mode 100644 index 0000000..0c69052 Binary files /dev/null and b/mods/carts/textures/carts_rail_straight_brk.png differ diff --git a/mods/carts/textures/carts_rail_straight_pwr.png b/mods/carts/textures/carts_rail_straight_pwr.png new file mode 100644 index 0000000..e067ff1 Binary files /dev/null and b/mods/carts/textures/carts_rail_straight_pwr.png differ diff --git a/mods/carts/textures/carts_rail_t_junction.png b/mods/carts/textures/carts_rail_t_junction.png new file mode 100644 index 0000000..8b1b946 Binary files /dev/null and b/mods/carts/textures/carts_rail_t_junction.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 0000000..6b4f6fa 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 0000000..dd0eede Binary files /dev/null and b/mods/carts/textures/carts_rail_t_junction_pwr.png differ diff --git a/mods/city_block/LICENSE b/mods/city_block/LICENSE new file mode 100644 index 0000000..40c8ae6 --- /dev/null +++ b/mods/city_block/LICENSE @@ -0,0 +1,505 @@ +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. + + {description} + Copyright (C) {year} {fullname} + + 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. + + {signature of Ty Coon}, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + diff --git a/mods/city_block/depends.txt b/mods/city_block/depends.txt new file mode 100644 index 0000000..a20d72c --- /dev/null +++ b/mods/city_block/depends.txt @@ -0,0 +1,3 @@ +default +farming +bucket diff --git a/mods/city_block/init.lua b/mods/city_block/init.lua new file mode 100644 index 0000000..e28b106 --- /dev/null +++ b/mods/city_block/init.lua @@ -0,0 +1,155 @@ +-- Minetest mod "City block" +-- City block disables use of water/lava buckets and also sends aggressive players to jail + +--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. + +city_block={} +city_block.blocks={} +city_block.filename = minetest.get_worldpath() .. "/city_blocks.txt" +city_block.suspects={} + +function city_block:save() + local datastring = minetest.serialize(self.blocks) + if not datastring then + return + end + local file, err = io.open(self.filename, "w") + if err then + return + end + file:write(datastring) + file:close() +end + +function city_block:load() + local file, err = io.open(self.filename, "r") + if err then + self.blocks = {} + return + end + self.blocks = minetest.deserialize(file:read("*all")) + if type(self.blocks) ~= "table" then + self.blocks = {} + end + file:close() +end + +function city_block:in_city(pos) + for i, EachBlock in ipairs(self.blocks) do + if pos.x > (EachBlock.pos.x - 22) and pos.x < (EachBlock.pos.x + 22) and pos.z > (EachBlock.pos.z - 22) and pos.z < (EachBlock.pos.z + 22) and + pos.y > (EachBlock.pos.y - 10) then + return true + end + end + return false +end + +function city_block:city_boundaries(pos) + for i, EachBlock in ipairs(self.blocks) do + if (pos.x == (EachBlock.pos.x - 21) or pos.x == (EachBlock.pos.x + 21)) and pos.z > (EachBlock.pos.z - 22) and pos.z < (EachBlock.pos.z + 22 ) then + return true + end + if (pos.z == (EachBlock.pos.z - 21) or pos.z == (EachBlock.pos.z + 21)) and pos.x > (EachBlock.pos.x - 22) and pos.x < (EachBlock.pos.x + 22 ) then + return true + end + end + return false +end + +city_block:load() + +minetest.register_node("city_block:cityblock", { + description = "City block mark area 45x45 in size as part of city", + tiles = {"cityblock.png"}, + is_ground_content = false, + groups = {cracky=1,level=3}, + is_ground_content = false, + light_source = LIGHT_MAX, + + after_place_node = function(pos, placer) + if placer and placer:is_player() then + table.insert(city_block.blocks, {pos=vector.round(pos), owner=placer:get_player_name()} ) + city_block:save() + end + end, + on_destruct = function(pos) + for i, EachBlock in ipairs(city_block.blocks) do + if vector.equals(EachBlock.pos, pos) then + table.remove(city_block.blocks, i) + city_block:save() + end + end + end, +}) + +minetest.register_craft({ + output = 'city_block:cityblock', + recipe = { + {'default:pick_mese', 'farming:hoe_mese', 'default:sword_mese'}, + {'default:sandstone', 'default:goldblock', 'default:sandstone'}, + {'default:stonebrick', 'default:mese', 'default:stonebrick'}, + } +}) + + +local old_bucket_water_on_place=minetest.registered_craftitems["bucket:bucket_water"].on_place +minetest.registered_craftitems["bucket:bucket_water"].on_place=function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + if city_block:in_city(pos) then + minetest.chat_send_player(placer:get_player_name(), "Don't do that in town!") + return itemstack + else + return old_bucket_water_on_place(itemstack, placer, pointed_thing) + end +end +local old_bucket_lava_on_place=minetest.registered_craftitems["bucket:bucket_lava"].on_place +minetest.registered_craftitems["bucket:bucket_lava"].on_place=function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + if city_block:in_city(pos) then + minetest.chat_send_player(placer:get_player_name(), "Don't do that in town!") + return itemstack + else + return old_bucket_lava_on_place(itemstack, placer, pointed_thing) + end +end + +minetest.register_on_dieplayer( + function(player) + pos=player:getpos() + if city_block:in_city(pos) and not(pos.x>-25 and pos.x<25 and pos.y>-5 and pos.y<25 and pos.z>-25 and pos.z<25) then + for _,suspect in pairs(minetest.get_objects_inside_radius(pos, 3.8)) do + if suspect:is_player() and suspect:get_player_name()~=player:get_player_name() then + suspect_name=suspect:get_player_name() + if city_block.suspects[suspect_name] then + if city_block.suspects[suspect_name]>3 then + suspect:setpos( {x=0, y=-2, z=0} ) + minetest.chat_send_all("Player "..suspect_name.." sent to jail as suspect for killing in town") + minetest.log("action", "Player "..suspect_name.." warned for killing in town") + city_block.suspects[suspect_name]=1 + else + city_block.suspects[suspect_name]=city_block.suspects[suspect_name]+1 + end + else + city_block.suspects[suspect_name]=1 + end + return false + end + end + end + end +) + +--do not let lava flow across boundary of city block +minetest.register_abm({ + nodenames = {"default:lava_flowing"}, + interval = 5, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + if pos.y>14 and city_block:city_boundaries(pos) then + minetest.set_node(pos, {name="default:stone"}) + end + end, +}) diff --git a/mods/city_block/textures/cityblock.png b/mods/city_block/textures/cityblock.png new file mode 100644 index 0000000..056b603 Binary files /dev/null and b/mods/city_block/textures/cityblock.png differ diff --git a/mods/creative/README.txt b/mods/creative/README.txt new file mode 100644 index 0000000..82357f3 --- /dev/null +++ b/mods/creative/README.txt @@ -0,0 +1,12 @@ +Minetest Game mod: creative +=========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (MIT) +Jean-Patrick G. (kilbith) (MIT) + +Author of media (textures) +-------------------------- +Jean-Patrick G. (kilbith) (CC BY-SA 3.0) diff --git a/mods/creative/depends.txt b/mods/creative/depends.txt new file mode 100644 index 0000000..975e652 --- /dev/null +++ b/mods/creative/depends.txt @@ -0,0 +1,2 @@ +default +sfinv diff --git a/mods/creative/init.lua b/mods/creative/init.lua new file mode 100644 index 0000000..2a590e3 --- /dev/null +++ b/mods/creative/init.lua @@ -0,0 +1,63 @@ +creative = {} + +local creative_mode_cache = minetest.settings:get_bool("creative_mode") + +function creative.is_enabled_for(name) + return creative_mode_cache +end + +dofile(minetest.get_modpath("creative") .. "/inventory.lua") + +if creative_mode_cache then + -- Dig time is modified according to difference (leveldiff) between tool + -- 'maxlevel' and node 'level'. Digtime is divided by the larger of + -- leveldiff and 1. + -- To speed up digging in creative, hand 'maxlevel' and 'digtime' have been + -- increased such that nodes of differing levels have an insignificant + -- effect on digtime. + local digtime = 42 + local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256} + + 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 = caps, + cracky = caps, + snappy = caps, + choppy = caps, + oddly_breakable_by_hand = caps, + }, + damage_groups = {fleshy = 10}, + } + }) +end + +-- Unlimited node placement +minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) + if placer and placer:is_player() then + return creative.is_enabled_for(placer:get_player_name()) + end +end) + +-- Don't pick up if the item is already in the inventory +local old_handle_node_drops = minetest.handle_node_drops +function minetest.handle_node_drops(pos, drops, digger) + if not digger or not digger:is_player() or + not creative.is_enabled_for(digger:get_player_name()) then + return old_handle_node_drops(pos, drops, digger) + end + local inv = digger:get_inventory() + if inv then + for _, item in ipairs(drops) do + if not inv:contains_item("main", item, true) then + inv:add_item("main", item) + end + end + end +end diff --git a/mods/creative/inventory.lua b/mods/creative/inventory.lua new file mode 100644 index 0000000..0aad92b --- /dev/null +++ b/mods/creative/inventory.lua @@ -0,0 +1,193 @@ +local player_inventory = {} +local inventory_cache = {} + +local function init_creative_cache(items) + inventory_cache[items] = {} + local i_cache = inventory_cache[items] + + for name, def in pairs(items) do + if def.groups.not_in_creative_inventory ~= 1 and + def.description and def.description ~= "" then + i_cache[name] = def + end + end + table.sort(i_cache) + return i_cache +end + +function creative.init_creative_inventory(player) + local player_name = player:get_player_name() + player_inventory[player_name] = { + size = 0, + filter = "", + start_i = 0 + } + + minetest.create_detached_inventory("creative_" .. player_name, { + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player2) + local name = player2 and player2:get_player_name() or "" + if not creative.is_enabled_for(name) or + to_list == "main" then + return 0 + end + return count + end, + allow_put = function(inv, listname, index, stack, player2) + return 0 + end, + allow_take = function(inv, listname, index, stack, player2) + local name = player2 and player2:get_player_name() or "" + if not creative.is_enabled_for(name) then + return 0 + end + return -1 + end, + on_move = function(inv, from_list, from_index, to_list, to_index, count, player2) + end, + on_take = function(inv, listname, index, stack, player2) + if stack and stack:get_count() > 0 then + minetest.log("action", player_name .. " takes " .. stack:get_name().. " from creative inventory") + end + end, + }, player_name) + + return player_inventory[player_name] +end + +function creative.update_creative_inventory(player_name, tab_content) + local creative_list = {} + local inv = player_inventory[player_name] or + creative.init_creative_inventory(minetest.get_player_by_name(player_name)) + local player_inv = minetest.get_inventory({type = "detached", name = "creative_" .. player_name}) + + local items = inventory_cache[tab_content] or init_creative_cache(tab_content) + + for name, def in pairs(items) do + if def.name:find(inv.filter, 1, true) or + def.description:lower():find(inv.filter, 1, true) then + creative_list[#creative_list+1] = name + end + end + + table.sort(creative_list) + player_inv:set_size("main", #creative_list) + player_inv:set_list("main", creative_list) + inv.size = #creative_list +end + +-- Create the trash field +local trash = minetest.create_detached_inventory("creative_trash", { + -- Allow the stack to be placed and remove it in on_put() + -- This allows the creative inventory to restore the stack + allow_put = function(inv, listname, index, stack, player) + return stack:get_count() + end, + on_put = function(inv, listname) + inv:set_list(listname, {}) + end, +}) +trash:set_size("main", 1) + +creative.formspec_add = "" + +function creative.register_tab(name, title, items) + sfinv.register_page("creative:" .. name, { + title = title, + is_in_nav = function(self, player, context) + return creative.is_enabled_for(player:get_player_name()) + end, + get = function(self, player, context) + local player_name = player:get_player_name() + creative.update_creative_inventory(player_name, items) + local inv = player_inventory[player_name] + local start_i = inv.start_i or 0 + local pagenum = math.floor(start_i / (3*8) + 1) + local pagemax = math.ceil(inv.size / (3*8)) + return sfinv.make_formspec(player, context, + "label[6.2,3.35;" .. minetest.colorize("#FFFF00", tostring(pagenum)) .. " / " .. tostring(pagemax) .. "]" .. + [[ + image[4.06,3.4;0.8,0.8;creative_trash_icon.png] + listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] + list[current_player;main;0,4.7;8,1;] + list[current_player;main;0,5.85;8,3;8] + list[detached:creative_trash;main;4,3.3;1,1;] + listring[] + button[5.4,3.2;0.8,0.9;creative_prev;<] + button[7.25,3.2;0.8,0.9;creative_next;>] + button[2.1,3.4;0.8,0.5;creative_search;?] + button[2.75,3.4;0.8,0.5;creative_clear;X] + tooltip[creative_search;Search] + tooltip[creative_clear;Reset] + tooltip[creative_prev;Previous page] + tooltip[creative_next;Next page] + listring[current_player;main] + field_close_on_enter[creative_filter;false] + ]] .. + "field[0.3,3.5;2.2,1;creative_filter;;" .. minetest.formspec_escape(inv.filter) .. "]" .. + "listring[detached:creative_" .. player_name .. ";main]" .. + "list[detached:creative_" .. player_name .. ";main;0,0;8,3;" .. tostring(start_i) .. "]" .. + default.get_hotbar_bg(0,4.7) .. + default.gui_bg .. default.gui_bg_img .. default.gui_slots + .. creative.formspec_add, false) + end, + on_enter = function(self, player, context) + local player_name = player:get_player_name() + local inv = player_inventory[player_name] + if inv then + inv.start_i = 0 + end + end, + on_player_receive_fields = function(self, player, context, fields) + local player_name = player:get_player_name() + local inv = player_inventory[player_name] + assert(inv) + + if fields.creative_clear then + inv.start_i = 0 + inv.filter = "" + creative.update_creative_inventory(player_name, items) + sfinv.set_player_inventory_formspec(player, context) + elseif fields.creative_search or + fields.key_enter_field == "creative_filter" then + inv.start_i = 0 + inv.filter = fields.creative_filter:lower() + creative.update_creative_inventory(player_name, items) + sfinv.set_player_inventory_formspec(player, context) + elseif not fields.quit then + local start_i = inv.start_i or 0 + + if fields.creative_prev then + start_i = start_i - 3*8 + if start_i < 0 then + start_i = inv.size - (inv.size % (3*8)) + if inv.size == start_i then + start_i = math.max(0, inv.size - (3*8)) + end + end + elseif fields.creative_next then + start_i = start_i + 3*8 + if start_i >= inv.size then + start_i = 0 + end + end + + inv.start_i = start_i + sfinv.set_player_inventory_formspec(player, context) + end + end + }) +end + +creative.register_tab("all", "All", minetest.registered_items) +creative.register_tab("nodes", "Nodes", minetest.registered_nodes) +creative.register_tab("tools", "Tools", minetest.registered_tools) +creative.register_tab("craftitems", "Items", minetest.registered_craftitems) + +local old_homepage_name = sfinv.get_homepage_name +function sfinv.get_homepage_name(player) + if creative.is_enabled_for(player:get_player_name()) then + return "creative:all" + else + return old_homepage_name(player) + end +end diff --git a/mods/creative/license.txt b/mods/creative/license.txt new file mode 100644 index 0000000..4ad1d5f --- /dev/null +++ b/mods/creative/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2015-2016 Jean-Patrick G. (kilbith) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2016 Jean-Patrick G. (kilbith) + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/creative/textures/creative_trash_icon.png b/mods/creative/textures/creative_trash_icon.png new file mode 100644 index 0000000..e789ad6 Binary files /dev/null and b/mods/creative/textures/creative_trash_icon.png differ diff --git a/mods/default/README.txt b/mods/default/README.txt new file mode 100644 index 0000000..75f869d --- /dev/null +++ b/mods/default/README.txt @@ -0,0 +1,300 @@ +Minetest Game mod: default +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by celeron55, Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +Authors of media (textures, models and sounds) +---------------------------------------------- +Everything not listed in here: +celeron55, Perttu Ahola (CC BY-SA 3.0) + +Cisoun's texture pack (CC BY-SA 3.0): + default_jungletree.png + default_lava.png + default_leaves.png + default_sapling.png + default_bush_sapling.png + default_stone.png + default_tree.png + default_tree_top.png + default_water.png + +Cisoun's conifers mod (CC BY-SA 3.0): + default_pine_needles.png + +Originating from G4JC's Almost MC Texture Pack (CC BY-SA 3.0): + default_torch.png + default_torch_on_ceiling.png + default_torch_on_floor.png + +VanessaE's animated torches (CC BY-SA 3.0): + default_torch_animated.png + default_torch_on_ceiling_animated.png + default_torch_on_floor_animated.png + default_torch_on_floor.png + +RealBadAngel's animated water (CC BY-SA 3.0): + default_water_source_animated.png + default_water_flowing_animated.png + +VanessaE (CC BY-SA 3.0): + default_desert_sand.png + default_desert_stone.png + default_sand.png + default_mese_crystal.png + default_mese_crystal_fragment.png + +Calinou (CC BY-SA 3.0): + default_brick.png + default_papyrus.png + default_mineral_copper.png + default_glass_detail.png + +MirceaKitsune (CC BY-SA 3.0): + character.x + +Jordach (CC BY-SA 3.0): + character.png + +PilzAdam (CC BY-SA 3.0): + default_jungleleaves.png + default_junglesapling.png + default_obsidian_glass.png + default_obsidian_shard.png + default_mineral_gold.png + +jojoa1997 (CC BY-SA 3.0): + default_obsidian.png + +InfinityProject (CC BY-SA 3.0): + default_mineral_diamond.png + +Splizard (CC BY-SA 3.0): + default_pine_sapling.png + +Zeg9 (CC BY-SA 3.0): + default_coal_block.png + +paramat (CC BY-SA 3.0): + wieldhand.png -- Copied from character.png by Jordach (CC BY-SA 3.0) + default_pinetree.png + default_pinetree_top.png + default_pinewood.png + default_acacia_leaves.png + default_acacia_leaves_simple.png + default_acacia_sapling.png + default_acacia_bush_sapling.png + default_acacia_tree.png + default_acacia_tree_top.png + default_acacia_wood.png + default_acacia_bush_stem.png + default_bush_stem.png + default_junglewood.png + default_jungletree_top.png + default_sandstone_brick.png + default_obsidian_brick.png + default_stone_brick.png + default_desert_stone_brick.png + default_sandstone_block.png + default_obsidian_block.png + default_stone_block.png + default_desert_stone_block.png + default_river_water.png + default_river_water_source_animated.png + default_river_water_flowing_animated.png + default_dry_grass.png + default_dry_grass_side.png + default_dry_grass_*.png + default_grass.png + default_grass_side.png + default_mese_block.png + default_silver_sand.png + default_mese_post_light_side.png + default_mese_post_light_side_dark.png + default_mese_post_light_top.png + default_silver_sandstone.png -- Derived from a texture by GreenXenith (CC-BY-SA 3.0) + default_silver_sandstone_brick.png -- Derived from a texture by GreenXenith (CC-BY-SA 3.0) + default_silver_sandstone_block.png -- Derived from a texture by GreenXenith (CC-BY-SA 3.0) + default_bookshelf_slot.png -- Derived from a texture by Gambit (CC-BY-SA 3.0) + +brunob.santos (CC BY-SA 4.0): + default_desert_cobble.png + +BlockMen (CC BY-SA 3.0): + default_aspen_leaves.png -- Derived from Sofar's texture + default_wood.png + default_clay_brick.png + default_iron_ingot.png + default_gold_ingot.png + default_tool_steelsword.png + default_diamond.png + default_tool_*.png + default_lava_source_animated.png + default_lava_flowing_animated.png + default_stick.png + default_chest_front.png + default_chest_lock.png + default_chest_side.png + default_chest_top.png + default_mineral_mese.png + default_meselamp.png + bubble.png + gui_*.png + +sofar (CC BY-SA 3.0): + default_aspen_sapling + default_aspen_tree + default_aspen_tree_top, derived from default_pine_tree_top (by paramat) + default_aspen_wood, derived from default_pine_wood (by paramat) + default_chest_inside + +sofar (WTFPL): + default_gravel.png -- Derived from Gambit's PixelBOX texture pack light gravel + +Neuromancer (CC BY-SA 2.0): + default_cobble.png, based on texture by Brane praefect + default_mossycobble.png, based on texture by Brane praefect + +Neuromancer (CC BY-SA 3.0): + default_dirt.png + default_furnace_*.png + +Gambit (CC BY-SA 3.0): + default_bronze_ingot.png + default_copper_ingot.png + default_copper_lump.png + default_iron_lump.png + default_gold_lump.png + default_clay_lump.png + default_coal.png + default_grass_*.png + default_paper.png + default_diamond_block.png + default_ladder_steel.png + default_sign_wall_wood.png + default_flint.png + default_snow.png + default_snow_side.png + default_snowball.png + default_key.png + default_key_skeleton.png + default_book.png + +asl97 (CC BY-SA 3.0): + default_ice.png + +KevDoy (CC BY-SA 3.0) + heart.png + +Pithydon (CC BY-SA 3.0) + default_coral_brown.png + default_coral_orange.png + default_coral_skeleton.png + +Ferk (CC0 1.0) + default_item_smoke.png + default_item_smoke.ogg, based on sound by http://opengameart.org/users/bart + +npx (CC BY-SA 3.0) + default_rainforest_litter.png + default_rainforest_litter_side.png + +kaeza (CC-BY-SA 3.0): + default_desert_sandstone.png + default_desert_sandstone_brick.png + default_desert_sandstone_block.png + +kilbith (CC BY-SA 3.0): + default_steel_block.png + default_copper_block.png + default_bronze_block.png + default_gold_block.png + default_tin_block.png + default_mineral_tin.png + default_tin_ingot.png + default_tin_lump.png + +CloudyProton (CC BY-SA 3.0): + default_book_written.png, based on default_book.png by Gambit + +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/ + +sonictechtonic (CC BY 3.0): +https://www.freesound.org/people/sonictechtonic/sounds/241872/ + player_damage.ogg + +Mito551 (sounds) (CC BY-SA 3.0): + default_dig_choppy.ogg + default_dig_cracky.ogg + default_dig_crumbly.1.ogg + 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 + +Metal sounds: + default_dig_metal.ogg - yadronoff - CC-BY-3.0 + - https://www.freesound.org/people/yadronoff/sounds/320397/ + default_dug_metal.*.ogg - Iwan Gabovitch - qubodup - CC0 + - http://opengameart.org/users/qubodup + default_metal_footstep.*.ogg - Ottomaani138 - CC0 + - https://www.freesound.org/people/Ottomaani138/sounds/232692/ + default_place_node_metal.*.ogg - Ogrebane - CC0 + - http://opengameart.org/content/wood-and-metal-sound-effects-volume-2 + +Tool breaking sounds added by sofar: CC-BY-3.0 + default_tool_breaks.* - http://www.freesound.org/people/HerbertBoland/sounds/33206/ + +AGFX (CC BY 3.0) +https://www.freesound.org/people/AGFX/packs/1253/ + default_water_footstep.1.ogg + default_water_footstep.2.ogg + default_water_footstep.3.ogg +(default_water_footstep.4.ogg is silent) + +blukotek (CC0 1.0) +https://www.freesound.org/people/blukotek/sounds/251660/ + default_dig_snappy.ogg + +Chests sounds added by sofar, derived of several files mixed together: + default_chest_open.ogg + default_chest_close.ogg + - http://www.freesound.org/people/Sevin7/sounds/269722/ CC0 + - http://www.freesound.org/people/Percy%20Duke/sounds/23448/ CC-BY-3.0 + - http://www.freesound.org/people/kingsamas/sounds/135576/ CC-BY-3.0 + - http://www.freesound.org/people/bulbastre/sounds/126887/ CC-BY-3.0 + - http://www.freesound.org/people/Yoyodaman234/sounds/183541/ CC0 + diff --git a/mods/default/aliases.lua b/mods/default/aliases.lua new file mode 100644 index 0000000..6db3fc8 --- /dev/null +++ b/mods/default/aliases.lua @@ -0,0 +1,77 @@ +-- mods/default/aliases.lua + +-- Aliases to support loading worlds using nodes following the old naming convention +-- These can also be helpful when using chat commands, for example /giveme +minetest.register_alias("stone", "default:stone") +minetest.register_alias("stone_with_coal", "default:stone_with_coal") +minetest.register_alias("stone_with_iron", "default:stone_with_iron") +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", "carts:rail") +minetest.register_alias("ladder", "default:ladder_wood") +minetest.register_alias("wood", "default:wood") +minetest.register_alias("mese", "default:mese") +minetest.register_alias("cloud", "default:cloud") +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_wood") +minetest.register_alias("furnace", "default:furnace") +minetest.register_alias("chest", "default:chest") +minetest.register_alias("locked_chest", "default:chest_locked") +minetest.register_alias("cobble", "default:cobble") +minetest.register_alias("mossycobble", "default:mossycobble") +minetest.register_alias("steelblock", "default:steelblock") +minetest.register_alias("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") +minetest.register_alias("snow", "default:snow") + +-- 'mese_block' was used for a while for the block form of mese +minetest.register_alias("default:mese_block", "default:mese") + +-- Aliases for corrected pine node names +minetest.register_alias("default:pinetree", "default:pine_tree") +minetest.register_alias("default:pinewood", "default:pine_wood") + +minetest.register_alias("default:ladder", "default:ladder_wood") +minetest.register_alias("default:sign_wall", "default:sign_wall_wood") diff --git a/mods/default/crafting.lua b/mods/default/crafting.lua new file mode 100644 index 0000000..2d11d26 --- /dev/null +++ b/mods/default/crafting.lua @@ -0,0 +1,1154 @@ +-- 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:pine_wood 4', + recipe = { + {'default:pine_tree'}, + } +}) + +minetest.register_craft({ + output = 'default:acacia_wood 4', + recipe = { + {'default:acacia_tree'}, + } +}) + +minetest.register_craft({ + output = 'default:aspen_wood 4', + recipe = { + {'default:aspen_tree'}, + } +}) + +minetest.register_craft({ + output = 'default:wood', + recipe = { + {'default:bush_stem'}, + } +}) + +minetest.register_craft({ + output = 'default:acacia_wood', + recipe = { + {'default:acacia_bush_stem'}, + } +}) + +minetest.register_craft({ + output = 'default:stick 4', + recipe = { + {'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:sign_wall_steel 3', + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:sign_wall_wood 3', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:torch 4', + recipe = { + {'default:coal_lump'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:pick_wood', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_stone', + recipe = { + {'group:stone', 'group:stone', 'group:stone'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_bronze', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_mese', + recipe = { + {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:pick_diamond', + recipe = { + {'default:diamond', 'default:diamond', 'default:diamond'}, + {'', 'group:stick', ''}, + {'', 'group:stick', ''}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_wood', + recipe = { + {'group:wood'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_stone', + recipe = { + {'group:stone'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_steel', + recipe = { + {'default:steel_ingot'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_bronze', + recipe = { + {'default:bronze_ingot'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_mese', + recipe = { + {'default:mese_crystal'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:shovel_diamond', + recipe = { + {'default:diamond'}, + {'group:stick'}, + {'group:stick'}, + } +}) + +-- Axes +-- Recipes face left to match appearence in textures and inventory + +minetest.register_craft({ + output = 'default:axe_wood', + recipe = { + {'group:wood', 'group:wood'}, + {'group:wood', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_stone', + recipe = { + {'group:stone', 'group:stone'}, + {'group:stone', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_bronze', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot'}, + {'default:bronze_ingot', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_mese', + recipe = { + {'default:mese_crystal', 'default:mese_crystal'}, + {'default:mese_crystal', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:axe_diamond', + recipe = { + {'default:diamond', 'default:diamond'}, + {'default:diamond', 'group:stick'}, + {'', 'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_wood', + recipe = { + {'group:wood'}, + {'group:wood'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_stone', + recipe = { + {'group:stone'}, + {'group:stone'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_steel', + recipe = { + {'default:steel_ingot'}, + {'default:steel_ingot'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_bronze', + recipe = { + {'default:bronze_ingot'}, + {'default:bronze_ingot'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_mese', + recipe = { + {'default:mese_crystal'}, + {'default:mese_crystal'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:sword_diamond', + recipe = { + {'default:diamond'}, + {'default:diamond'}, + {'group:stick'}, + } +}) + +minetest.register_craft({ + output = 'default:skeleton_key', + recipe = { + {'default:gold_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:chest', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', '', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'default:chest_locked', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'default:steel_ingot', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft( { + type = "shapeless", + output = "default:chest_locked", + recipe = {"default:chest", "default:steel_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:coalblock', + recipe = { + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + } +}) + +minetest.register_craft({ + output = 'default:coal_lump 9', + recipe = { + {'default:coalblock'}, + } +}) + +minetest.register_craft({ + output = 'default:steelblock', + recipe = { + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:steel_ingot 9', + recipe = { + {'default:steelblock'}, + } +}) + +minetest.register_craft({ + output = 'default:copperblock', + recipe = { + {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:copper_ingot 9', + recipe = { + {'default:copperblock'}, + } +}) + +minetest.register_craft({ + output = "default: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:bronze_ingot 9", + recipe = { + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:tin_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + } +}) + +minetest.register_craft({ + output = 'default:bronzeblock', + recipe = { + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:bronze_ingot 9', + recipe = { + {'default:bronzeblock'}, + } +}) + +minetest.register_craft({ + output = 'default:goldblock', + recipe = { + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:gold_ingot 9', + recipe = { + {'default:goldblock'}, + } +}) + +minetest.register_craft({ + output = 'default:diamondblock', + recipe = { + {'default:diamond', 'default:diamond', 'default:diamond'}, + {'default:diamond', 'default:diamond', 'default:diamond'}, + {'default:diamond', 'default:diamond', 'default:diamond'}, + } +}) + +minetest.register_craft({ + output = 'default:diamond 9', + recipe = { + {'default:diamondblock'}, + } +}) + +minetest.register_craft({ + output = "default:sandstone", + recipe = { + {"default:sand", "default:sand"}, + {"default:sand", "default:sand"}, + } +}) + +minetest.register_craft({ + output = "default:sand 4", + recipe = { + {"default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:sandstonebrick 4", + recipe = { + {"default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:sandstone_block 9", + recipe = { + {"default:sandstone", "default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone", "default:sandstone"}, + {"default:sandstone", "default:sandstone", "default:sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sandstone", + recipe = { + {"default:desert_sand", "default:desert_sand"}, + {"default:desert_sand", "default:desert_sand"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sand 4", + recipe = { + {"default:desert_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sandstone_brick 4", + recipe = { + {"default:desert_sandstone", "default:desert_sandstone"}, + {"default:desert_sandstone", "default:desert_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:desert_sandstone_block 9", + recipe = { + {"default:desert_sandstone", "default:desert_sandstone", "default:desert_sandstone"}, + {"default:desert_sandstone", "default:desert_sandstone", "default:desert_sandstone"}, + {"default:desert_sandstone", "default:desert_sandstone", "default:desert_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sandstone", + recipe = { + {"default:silver_sand", "default:silver_sand"}, + {"default:silver_sand", "default:silver_sand"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sand 4", + recipe = { + {"default:silver_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sandstone_brick 4", + recipe = { + {"default:silver_sandstone", "default:silver_sandstone"}, + {"default:silver_sandstone", "default:silver_sandstone"}, + } +}) + +minetest.register_craft({ + output = "default:silver_sandstone_block 9", + recipe = { + {"default:silver_sandstone", "default:silver_sandstone", "default:silver_sandstone"}, + {"default:silver_sandstone", "default:silver_sandstone", "default:silver_sandstone"}, + {"default:silver_sandstone", "default:silver_sandstone", "default:silver_sandstone"}, + } +}) + +minetest.register_craft({ + output = 'default:clay', + recipe = { + {'default:clay_lump', 'default:clay_lump'}, + {'default:clay_lump', 'default:clay_lump'}, + } +}) + +minetest.register_craft({ + output = 'default:clay_lump 4', + recipe = { + {'default:clay'}, + } +}) + +minetest.register_craft({ + output = 'default:brick', + recipe = { + {'default:clay_brick', 'default:clay_brick'}, + {'default:clay_brick', 'default:clay_brick'}, + } +}) + +minetest.register_craft({ + output = 'default:clay_brick 4', + recipe = { + {'default:brick'}, + } +}) + +minetest.register_craft({ + output = 'default:paper', + recipe = { + {'default:papyrus', 'default:papyrus', 'default:papyrus'}, + } +}) + +minetest.register_craft({ + output = 'default:book', + recipe = { + {'default:paper'}, + {'default:paper'}, + {'default:paper'}, + } +}) + +minetest.register_craft({ + output = 'default:bookshelf', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'default:book', 'default:book', 'default:book'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = "default:ladder_wood 5", + recipe = { + {"group:stick", "", "group:stick"}, + {"group:stick", "group:stick", "group:stick"}, + {"group:stick", "", "group:stick"}, + } +}) + +minetest.register_craft({ + output = 'default:ladder_steel 15', + recipe = { + {'default:steel_ingot', '', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', '', 'default:steel_ingot'}, + } +}) + +minetest.register_craft({ + output = 'default:mese', + recipe = { + {'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:mese_crystal", + recipe = { + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + {"default:mese_crystal_fragment", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + } +}) + +minetest.register_craft({ + output = 'default:meselamp', + recipe = { + {'default:glass'}, + {'default:mese_crystal'}, + } +}) + +minetest.register_craft({ + output = "default:mese_post_light 3", + recipe = { + {"", "default:glass", ""}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"", "group:wood", ""}, + } +}) + +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:obsidianbrick 4', + recipe = { + {'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian'} + } +}) + +minetest.register_craft({ + output = 'default:obsidian_block 9', + recipe = { + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + } +}) + +minetest.register_craft({ + output = 'default:stonebrick 4', + recipe = { + {'default:stone', 'default:stone'}, + {'default:stone', 'default:stone'}, + } +}) + +minetest.register_craft({ + output = 'default:stone_block 9', + recipe = { + {'default:stone', 'default:stone', 'default:stone'}, + {'default:stone', 'default:stone', 'default:stone'}, + {'default:stone', 'default:stone', 'default:stone'}, + } +}) + +minetest.register_craft({ + output = 'default:desert_stonebrick 4', + recipe = { + {'default:desert_stone', 'default:desert_stone'}, + {'default:desert_stone', 'default:desert_stone'}, + } +}) + +minetest.register_craft({ + output = 'default:desert_stone_block 9', + recipe = { + {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + } +}) + +minetest.register_craft({ + output = 'default:snowblock', + recipe = { + {'default:snow', 'default:snow', 'default:snow'}, + {'default:snow', 'default:snow', 'default:snow'}, + {'default:snow', 'default:snow', 'default:snow'}, + } +}) + +minetest.register_craft({ + output = 'default:snow 9', + recipe = { + {'default:snowblock'}, + } +}) + +-- +-- Crafting (tool repair) +-- +minetest.register_craft({ + type = "toolrepair", + additional_wear = -0.02, +}) + +-- +-- Cooking recipes +-- + +minetest.register_craft({ + type = "cooking", + output = "default:glass", + recipe = "group:sand", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:obsidian_glass", + recipe = "default:obsidian_shard", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:stone", + recipe = "default:cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:stone", + recipe = "default:mossycobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:desert_stone", + recipe = "default:desert_cobble", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:steel_ingot", + recipe = "default:iron_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:copper_ingot", + recipe = "default:copper_lump", +}) + +minetest.register_craft({ + type = "cooking", + output = "default:tin_ingot", + recipe = "default:tin_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:gold_ingot', + recipe = 'default:skeleton_key', + cooktime = 5, +}) + +minetest.register_craft({ + type = 'cooking', + output = 'default:gold_ingot', + recipe = 'default:key', + cooktime = 5, +}) + +-- +-- Fuels +-- + +-- Support use of group:tree, includes default:tree which has the same burn time +minetest.register_craft({ + type = "fuel", + recipe = "group:tree", + burntime = 30, +}) + +-- Burn time for all woods are in order of wood density, +-- which is also the order of wood colour darkness: +-- aspen, pine, apple, acacia, jungle + +minetest.register_craft({ + type = "fuel", + recipe = "default:aspen_tree", + burntime = 22, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_tree", + burntime = 26, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_tree", + burntime = 34, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:jungletree", + burntime = 38, +}) + + +-- Support use of group:wood, includes default:wood which has the same burn time +minetest.register_craft({ + type = "fuel", + recipe = "group:wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:aspen_wood", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_wood", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglewood", + burntime = 9, +}) + + +-- Support use of group:sapling, includes default:sapling which has the same burn time +minetest.register_craft({ + type = "fuel", + recipe = "group:sapling", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bush_sapling", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_bush_sapling", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:aspen_sapling", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:pine_sapling", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_sapling", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglesapling", + burntime = 6, +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_aspen_wood", + burntime = 5, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_pine_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_acacia_wood", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:fence_junglewood", + burntime = 9, +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "default:bush_stem", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:acacia_bush_stem", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:junglegrass", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:leaves", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:cactus", + burntime = 15, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:papyrus", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:bookshelf", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:ladder_wood", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:lava_source", + burntime = 60, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:torch", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:sign_wall_wood", + burntime = 10, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:chest_locked", + burntime = 30, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:coal_lump", + burntime = 40, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:coalblock", + burntime = 370, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:grass_1", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:dry_grass_1", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:paper", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:book", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:book_written", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:dry_shrub", + burntime = 2, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "group:stick", + burntime = 1, +}) + + +minetest.register_craft({ + type = "fuel", + recipe = "default:pick_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:shovel_wood", + burntime = 4, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:axe_wood", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "default:sword_wood", + burntime = 5, +}) diff --git a/mods/default/craftitems.lua b/mods/default/craftitems.lua new file mode 100644 index 0000000..e1d224d --- /dev/null +++ b/mods/default/craftitems.lua @@ -0,0 +1,343 @@ +-- mods/default/craftitems.lua + +minetest.register_craftitem("default:stick", { + description = "Stick", + inventory_image = "default_stick.png", + groups = {stick = 1, flammable = 2}, +}) + +minetest.register_craftitem("default:paper", { + description = "Paper", + inventory_image = "default_paper.png", + groups = {flammable = 3}, +}) + + +local lpp = 14 -- Lines per book's page +local function book_on_use(itemstack, user) + local player_name = user:get_player_name() + local meta = itemstack:get_meta() + local title, text, owner = "", "", player_name + local page, page_max, lines, string = 1, 1, {}, "" + + -- Backwards compatibility + local old_data = minetest.deserialize(itemstack:get_metadata()) + if old_data then + meta:from_table({ fields = old_data }) + end + + local data = meta:to_table().fields + + if data.owner then + title = data.title + text = data.text + owner = data.owner + + for str in (text .. "\n"):gmatch("([^\n]*)[\n]") do + lines[#lines+1] = str + end + + if data.page then + page = data.page + page_max = data.page_max + + for i = ((lpp * page) - lpp) + 1, lpp * page do + if not lines[i] then break end + string = string .. lines[i] .. "\n" + end + end + end + + local formspec + if owner == player_name then + formspec = "size[8,8]" .. default.gui_bg .. + default.gui_bg_img .. + "field[0.5,1;7.5,0;title;Title:;" .. + minetest.formspec_escape(title) .. "]" .. + "textarea[0.5,1.5;7.5,7;text;Contents:;" .. + minetest.formspec_escape(text) .. "]" .. + "button_exit[2.5,7.5;3,1;save;Save]" + else + formspec = "size[8,8]" .. default.gui_bg .. + default.gui_bg_img .. + "label[0.5,0.5;by " .. owner .. "]" .. + "tablecolumns[color;text]" .. + "tableoptions[background=#00000000;highlight=#00000000;border=false]" .. + "table[0.4,0;7,0.5;title;#FFFF00," .. minetest.formspec_escape(title) .. "]" .. + "textarea[0.5,1.5;7.5,7;;" .. + minetest.formspec_escape(string ~= "" and string or text) .. ";]" .. + "button[2.4,7.6;0.8,0.8;book_prev;<]" .. + "label[3.2,7.7;Page " .. page .. " of " .. page_max .. "]" .. + "button[4.9,7.6;0.8,0.8;book_next;>]" + end + + minetest.show_formspec(player_name, "default:book", formspec) + return itemstack +end + +local max_text_size = 10000 +local max_title_size = 80 +local short_title_size = 35 +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "default:book" then return end + local inv = player:get_inventory() + local stack = player:get_wielded_item() + + if fields.save and fields.title and fields.text + and fields.title ~= "" and fields.text ~= "" then + local new_stack, data + if stack:get_name() ~= "default:book_written" then + local count = stack:get_count() + if count == 1 then + stack:set_name("default:book_written") + else + stack:set_count(count - 1) + new_stack = ItemStack("default:book_written") + end + else + data = stack:get_meta():to_table().fields + end + + if data and data.owner and data.owner ~= player:get_player_name() then + return + end + + if not data then data = {} end + data.title = fields.title:sub(1, max_title_size) + data.owner = player:get_player_name() + local short_title = data.title + -- Don't bother triming the title if the trailing dots would make it longer + if #short_title > short_title_size + 3 then + short_title = short_title:sub(1, short_title_size) .. "..." + end + data.description = "\""..short_title.."\" by "..data.owner + data.text = fields.text:sub(1, max_text_size) + data.text = data.text:gsub("\r\n", "\n"):gsub("\r", "\n") + data.page = 1 + data.page_max = math.ceil((#data.text:gsub("[^\n]", "") + 1) / lpp) + + if new_stack then + new_stack:get_meta():from_table({ fields = data }) + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(player:getpos(), new_stack) + end + else + stack:get_meta():from_table({ fields = data }) + end + + elseif fields.book_next or fields.book_prev then + local data = stack:get_meta():to_table().fields + if not data or not data.page then + return + end + + data.page = tonumber(data.page) + data.page_max = tonumber(data.page_max) + + if fields.book_next then + data.page = data.page + 1 + if data.page > data.page_max then + data.page = 1 + end + else + data.page = data.page - 1 + if data.page == 0 then + data.page = data.page_max + end + end + + stack:get_meta():from_table({fields = data}) + stack = book_on_use(stack, player) + end + + -- Update stack + player:set_wielded_item(stack) +end) + +minetest.register_craftitem("default:book", { + description = "Book", + inventory_image = "default_book.png", + groups = {book = 1, flammable = 3}, + on_use = book_on_use, +}) + +minetest.register_craftitem("default:book_written", { + description = "Book With Text", + inventory_image = "default_book_written.png", + groups = {book = 1, not_in_creative_inventory = 1, flammable = 3}, + stack_max = 1, + on_use = book_on_use, +}) + +minetest.register_craft({ + type = "shapeless", + output = "default:book_written", + recipe = {"default:book", "default:book_written"} +}) + +minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv) + if itemstack:get_name() ~= "default:book_written" then + return + end + + local original + local index + for i = 1, player:get_inventory():get_size("craft") do + if old_craft_grid[i]:get_name() == "default:book_written" then + original = old_craft_grid[i] + index = i + end + end + if not original then + return + end + local copymeta = original:get_meta():to_table() + -- copy of the book held by player's mouse cursor + itemstack:get_meta():from_table(copymeta) + -- put the book with metadata back in the craft grid + craft_inv:set_stack("craft", index, original) +end) + +minetest.register_craftitem("default:skeleton_key", { + description = "Skeleton Key", + inventory_image = "default_key_skeleton.png", + groups = {key = 1}, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local pos = pointed_thing.under + local node = minetest.get_node(pos) + + if not node then + return itemstack + end + + local on_skeleton_key_use = minetest.registered_nodes[node.name].on_skeleton_key_use + if not on_skeleton_key_use then + return itemstack + end + + -- make a new key secret in case the node callback needs it + local random = math.random + local newsecret = string.format( + "%04x%04x%04x%04x", + random(2^16) - 1, random(2^16) - 1, + random(2^16) - 1, random(2^16) - 1) + + local secret, _, _ = on_skeleton_key_use(pos, user, newsecret) + + if secret then + local inv = minetest.get_inventory({type="player", name=user:get_player_name()}) + + -- update original itemstack + itemstack:take_item() + + -- finish and return the new key + local new_stack = ItemStack("default:key") + local meta = new_stack:get_meta() + meta:set_string("secret", secret) + meta:set_string("description", "Key to "..user:get_player_name().."'s " + ..minetest.registered_nodes[node.name].description) + + if itemstack:get_count() == 0 then + itemstack = new_stack + else + if inv:add_item("main", new_stack):get_count() > 0 then + minetest.add_item(user:getpos(), new_stack) + end -- else: added to inventory successfully + end + + return itemstack + end + end +}) + +minetest.register_craftitem("default:coal_lump", { + description = "Coal Lump", + inventory_image = "default_coal_lump.png", + groups = {coal = 1, flammable = 1} +}) + +minetest.register_craftitem("default:iron_lump", { + description = "Iron Lump", + inventory_image = "default_iron_lump.png", +}) + +minetest.register_craftitem("default:copper_lump", { + description = "Copper Lump", + inventory_image = "default_copper_lump.png", +}) + +minetest.register_craftitem("default:tin_lump", { + description = "Tin Lump", + inventory_image = "default_tin_lump.png", +}) + +minetest.register_craftitem("default:mese_crystal", { + description = "Mese Crystal", + inventory_image = "default_mese_crystal.png", +}) + +minetest.register_craftitem("default:gold_lump", { + description = "Gold Lump", + inventory_image = "default_gold_lump.png", +}) + +minetest.register_craftitem("default:diamond", { + description = "Diamond", + inventory_image = "default_diamond.png", +}) + +minetest.register_craftitem("default:clay_lump", { + description = "Clay Lump", + inventory_image = "default_clay_lump.png", +}) + +minetest.register_craftitem("default:steel_ingot", { + description = "Steel Ingot", + inventory_image = "default_steel_ingot.png", +}) + +minetest.register_craftitem("default:copper_ingot", { + description = "Copper Ingot", + inventory_image = "default_copper_ingot.png", +}) + +minetest.register_craftitem("default:tin_ingot", { + description = "Tin Ingot", + inventory_image = "default_tin_ingot.png", +}) + +minetest.register_craftitem("default:bronze_ingot", { + description = "Bronze Ingot", + inventory_image = "default_bronze_ingot.png", +}) + +minetest.register_craftitem("default:gold_ingot", { + description = "Gold Ingot", + inventory_image = "default_gold_ingot.png" +}) + +minetest.register_craftitem("default:mese_crystal_fragment", { + description = "Mese Crystal Fragment", + inventory_image = "default_mese_crystal_fragment.png", +}) + +minetest.register_craftitem("default:clay_brick", { + description = "Clay Brick", + inventory_image = "default_clay_brick.png", +}) + +minetest.register_craftitem("default:obsidian_shard", { + description = "Obsidian Shard", + inventory_image = "default_obsidian_shard.png", +}) + +minetest.register_craftitem("default:flint", { + description = "Flint", + inventory_image = "default_flint.png" +}) diff --git a/mods/default/functions.lua b/mods/default/functions.lua new file mode 100644 index 0000000..4c8d2f0 --- /dev/null +++ b/mods/default/functions.lua @@ -0,0 +1,580 @@ +-- mods/default/functions.lua + +-- +-- Sounds +-- + +function default.node_sound_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "", gain = 1.0} + table.dug = table.dug or + {name = "default_dug_node", gain = 0.25} + table.place = table.place or + {name = "default_place_node_hard", gain = 1.0} + return table +end + +function default.node_sound_stone_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_hard_footstep", gain = 0.3} + table.dug = table.dug or + {name = "default_hard_footstep", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_dirt_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_dirt_footstep", gain = 0.4} + table.dug = table.dug or + {name = "default_dirt_footstep", gain = 1.0} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_sand_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_sand_footstep", gain = 0.12} + table.dug = table.dug or + {name = "default_sand_footstep", gain = 0.24} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_gravel_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_gravel_footstep", gain = 0.4} + table.dug = table.dug or + {name = "default_gravel_footstep", gain = 1.0} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_wood_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_wood_footstep", gain = 0.3} + table.dug = table.dug or + {name = "default_wood_footstep", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_leaves_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_grass_footstep", gain = 0.45} + table.dug = table.dug or + {name = "default_grass_footstep", gain = 0.7} + table.place = table.place or + {name = "default_place_node", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_glass_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_glass_footstep", gain = 0.3} + table.dig = table.dig or + {name = "default_glass_footstep", gain = 0.5} + table.dug = table.dug or + {name = "default_break_glass", gain = 1.0} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_metal_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_metal_footstep", gain = 0.4} + table.dig = table.dig or + {name = "default_dig_metal", gain = 0.5} + table.dug = table.dug or + {name = "default_dug_metal", gain = 0.5} + table.place = table.place or + {name = "default_place_node_metal", gain = 0.5} + default.node_sound_defaults(table) + return table +end + +function default.node_sound_water_defaults(table) + table = table or {} + table.footstep = table.footstep or + {name = "default_water_footstep", gain = 0.2} + default.node_sound_defaults(table) + return table +end + +-- +-- Lavacooling +-- + +default.cool_lava = function(pos, node) + if node.name == "default:lava_source" then + minetest.set_node(pos, {name = "default:obsidian"}) + else -- Lava flowing + minetest.set_node(pos, {name = "default:stone"}) + end + minetest.sound_play("default_cool_lava", + {pos = pos, max_hear_distance = 16, gain = 0.25}) +end + +if minetest.settings:get_bool("enable_lavacooling") ~= false then + minetest.register_abm({ + label = "Lava cooling", + nodenames = {"default:lava_source", "default:lava_flowing"}, + neighbors = {"group:cools_lava", "group:water"}, + interval = 2, + chance = 2, + catch_up = false, + action = function(...) + default.cool_lava(...) + end, + }) +end + +-- +-- optimized helper to put all items in an inventory into a drops list +-- + +function default.get_inventory_drops(pos, inventory, drops) + local inv = minetest.get_meta(pos):get_inventory() + local n = #drops + for i = 1, inv:get_size(inventory) do + local stack = inv:get_stack(inventory, i) + if stack:get_count() > 0 then + drops[n+1] = stack:to_table() + n = n + 1 + end + end +end + +-- +-- Papyrus and cactus growing +-- + +-- wrapping the functions in abm action is necessary to make overriding them possible + +function default.grow_cactus(pos, node) + if node.param2 >= 4 then + return + end + pos.y = pos.y - 1 + if minetest.get_item_group(minetest.get_node(pos).name, "sand") == 0 then + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:cactus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + if minetest.get_node_light(pos) < 13 then + return + end + minetest.set_node(pos, {name = "default:cactus"}) + return true +end + +function default.grow_papyrus(pos, node) + pos.y = pos.y - 1 + local name = minetest.get_node(pos).name + if name ~= "default:dirt_with_grass" and name ~= "default:dirt" then + return + end + if not minetest.find_node_near(pos, 3, {"group:water"}) then + return + end + pos.y = pos.y + 1 + local height = 0 + while node.name == "default:papyrus" and height < 4 do + height = height + 1 + pos.y = pos.y + 1 + node = minetest.get_node(pos) + end + if height == 4 or node.name ~= "air" then + return + end + if minetest.get_node_light(pos) < 13 then + return + end + minetest.set_node(pos, {name = "default:papyrus"}) + return true +end + +minetest.register_abm({ + label = "Grow cactus", + nodenames = {"default:cactus"}, + neighbors = {"group:sand"}, + interval = 12, + chance = 83, + action = function(...) + default.grow_cactus(...) + end +}) + +minetest.register_abm({ + label = "Grow papyrus", + nodenames = {"default:papyrus"}, + neighbors = {"default:dirt", "default:dirt_with_grass"}, + interval = 14, + chance = 71, + action = function(...) + default.grow_papyrus(...) + end +}) + + +-- +-- dig upwards +-- + +function default.dig_up(pos, node, digger) + if digger == nil then return end + local np = {x = pos.x, y = pos.y + 1, z = pos.z} + local nn = minetest.get_node(np) + if nn.name == node.name then + minetest.node_dig(np, nn, digger) + end +end + + +-- +-- Fence registration helper +-- + +function default.register_fence(name, def) + minetest.register_craft({ + output = name .. " 4", + recipe = { + { def.material, 'group:stick', def.material }, + { def.material, 'group:stick', def.material }, + } + }) + + local fence_texture = "default_fence_overlay.png^" .. def.texture .. + "^default_fence_overlay.png^[makealpha:255,126,126" + -- Allow almost everything to be overridden + local default_fields = { + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}}, + -- connect_top = + -- connect_bottom = + connect_front = {{-1/16,3/16,-1/2,1/16,5/16,-1/8}, + {-1/16,-5/16,-1/2,1/16,-3/16,-1/8}}, + connect_left = {{-1/2,3/16,-1/16,-1/8,5/16,1/16}, + {-1/2,-5/16,-1/16,-1/8,-3/16,1/16}}, + connect_back = {{-1/16,3/16,1/8,1/16,5/16,1/2}, + {-1/16,-5/16,1/8,1/16,-3/16,1/2}}, + connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16}, + {1/8,-5/16,-1/16,1/2,-3/16,1/16}}, + }, + connects_to = {"group:fence", "group:wood", "group:tree"}, + inventory_image = fence_texture, + wield_image = fence_texture, + tiles = {def.texture}, + sunlight_propagates = true, + is_ground_content = false, + groups = {}, + } + for k, v in pairs(default_fields) do + if def[k] == nil then + def[k] = v + end + end + + -- Always add to the fence group, even if no group provided + def.groups.fence = 1 + + def.texture = nil + def.material = nil + + minetest.register_node(name, def) +end + + +-- +-- Leafdecay +-- + +-- Prevent decay of placed leaves + +default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) + if placer and placer:is_player() and not placer:get_player_control().sneak then + local node = minetest.get_node(pos) + node.param2 = 1 + minetest.set_node(pos, node) + end +end + +-- Leafdecay +local function leafdecay_after_destruct(pos, oldnode, def) + for _, v in pairs(minetest.find_nodes_in_area(vector.subtract(pos, def.radius), + vector.add(pos, def.radius), def.leaves)) do + local node = minetest.get_node(v) + local timer = minetest.get_node_timer(v) + if node.param2 == 0 and not timer:is_started() then + timer:start(math.random(20, 120) / 10) + end + end +end + +local function leafdecay_on_timer(pos, def) + if minetest.find_node_near(pos, def.radius, def.trunks) then + return false + end + + local node = minetest.get_node(pos) + local drops = minetest.get_node_drops(node.name) + for _, item in ipairs(drops) do + local is_leaf + for _, v in pairs(def.leaves) do + if v == item then + is_leaf = true + end + end + if minetest.get_item_group(item, "leafdecay_drop") ~= 0 or + not is_leaf then + minetest.add_item({ + x = pos.x - 0.5 + math.random(), + y = pos.y - 0.5 + math.random(), + z = pos.z - 0.5 + math.random(), + }, item) + end + end + + minetest.remove_node(pos) + minetest.check_for_falling(pos) +end + +function default.register_leafdecay(def) + assert(def.leaves) + assert(def.trunks) + assert(def.radius) + for _, v in pairs(def.trunks) do + minetest.override_item(v, { + after_destruct = function(pos, oldnode) + leafdecay_after_destruct(pos, oldnode, def) + end, + }) + end + for _, v in pairs(def.leaves) do + minetest.override_item(v, { + on_timer = function(pos) + leafdecay_on_timer(pos, def) + end, + }) + end +end + +-- +-- Convert dirt to something that fits the environment +-- + +minetest.register_abm({ + label = "Grass spread", + nodenames = {"default:dirt"}, + neighbors = { + "air", + "group:grass", + "group:dry_grass", + "default:snow", + }, + interval = 6, + chance = 50, + catch_up = false, + action = function(pos, node) + -- Check for darkness: night, shadow or under a light-blocking node + -- Returns if ignore above + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + if (minetest.get_node_light(above) or 0) < 13 then + return + end + + -- Look for spreading dirt-type neighbours + local p2 = minetest.find_node_near(pos, 1, "group:spreading_dirt_type") + if p2 then + local n3 = minetest.get_node(p2) + minetest.set_node(pos, {name = n3.name}) + return + end + + -- Else, any seeding nodes on top? + local name = minetest.get_node(above).name + -- Snow check is cheapest, so comes first + if name == "default:snow" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + -- Most likely case first + elseif minetest.get_item_group(name, "grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_grass"}) + elseif minetest.get_item_group(name, "dry_grass") ~= 0 then + minetest.set_node(pos, {name = "default:dirt_with_dry_grass"}) + end + end +}) + + +-- +-- Grass and dry grass removed in darkness +-- + +minetest.register_abm({ + label = "Grass covered", + nodenames = {"group:spreading_dirt_type"}, + interval = 8, + chance = 50, + catch_up = false, + action = function(pos, node) + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local name = minetest.get_node(above).name + local nodedef = minetest.registered_nodes[name] + if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or + nodedef.paramtype == "light") and + nodedef.liquidtype == "none") then + minetest.set_node(pos, {name = "default:dirt"}) + end + end +}) + + +-- +-- Moss growth on cobble near water +-- + +minetest.register_abm({ + label = "Moss growth", + nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", "walls:cobble"}, + neighbors = {"group:water"}, + interval = 16, + chance = 200, + catch_up = false, + action = function(pos, node) + if node.name == "default:cobble" then + minetest.set_node(pos, {name = "default:mossycobble"}) + elseif node.name == "stairs:slab_cobble" then + minetest.set_node(pos, {name = "stairs:slab_mossycobble", param2 = node.param2}) + elseif node.name == "stairs:stair_cobble" then + minetest.set_node(pos, {name = "stairs:stair_mossycobble", param2 = node.param2}) + elseif node.name == "walls:cobble" then + minetest.set_node(pos, {name = "walls:mossycobble", param2 = node.param2}) + end + end +}) + + +-- +-- Checks if specified volume intersects a protected volume +-- + +function default.intersects_protection(minp, maxp, player_name, interval) + -- 'interval' is the largest allowed interval for the 3D lattice of checks + + -- Compute the optimal float step 'd' for each axis so that all corners and + -- borders are checked. 'd' will be smaller or equal to 'interval'. + -- Subtracting 1e-4 ensures that the max co-ordinate will be reached by the + -- for loop (which might otherwise not be the case due to rounding errors). + local d = {} + for _, c in pairs({"x", "y", "z"}) do + if maxp[c] > minp[c] then + d[c] = (maxp[c] - minp[c]) / math.ceil((maxp[c] - minp[c]) / interval) - 1e-4 + elseif maxp[c] == minp[c] then + d[c] = 1 -- Any value larger than 0 to avoid division by zero + else -- maxp[c] < minp[c], print error and treat as protection intersected + minetest.log("error", "maxp < minp in 'default.intersects_protection()'") + return true + end + end + + for zf = minp.z, maxp.z, d.z do + local z = math.floor(zf + 0.5) + for yf = minp.y, maxp.y, d.y do + local y = math.floor(yf + 0.5) + for xf = minp.x, maxp.x, d.x do + local x = math.floor(xf + 0.5) + if minetest.is_protected({x = x, y = y, z = z}, player_name) then + return true + end + end + end + end + + return false +end + + +-- +-- Coral death near air +-- + +minetest.register_abm({ + nodenames = {"default:coral_brown", "default:coral_orange"}, + neighbors = {"air"}, + interval = 17, + chance = 5, + catch_up = false, + action = function(pos, node) + minetest.set_node(pos, {name = "default:coral_skeleton"}) + end, +}) + + +-- +-- NOTICE: This method is not an official part of the API yet! +-- This method may change in future. +-- + +function default.can_interact_with_node(player, pos) + if player then + if minetest.check_player_privs(player, "protection_bypass") then + return true + end + else + return false + end + + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + + if not owner or owner == "" or owner == player:get_player_name() then + return true + end + + -- is player wielding the right key? + local item = player:get_wielded_item() + if item:get_name() == "default:key" then + local key_meta = item:get_meta() + + if key_meta:get_string("secret") == "" then + local key_oldmeta = item:get_metadata() + if key_oldmeta == "" or not minetest.parse_json(key_oldmeta) then + return false + end + + key_meta:set_string("secret", minetest.parse_json(key_oldmeta).secret) + item:set_metadata("") + end + + return meta:get_string("key_lock_secret") == key_meta:get_string("secret") + end + + return false +end diff --git a/mods/default/furnace.lua b/mods/default/furnace.lua new file mode 100644 index 0000000..05056e6 --- /dev/null +++ b/mods/default/furnace.lua @@ -0,0 +1,337 @@ + +-- +-- Formspecs +-- + +local function active_formspec(fuel_percent, item_percent) + local formspec = + "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_name;src;2.75,0.5;1,1;]".. + "list[current_name;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. + (100-fuel_percent)..":default_furnace_fire_fg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. + (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. + "list[current_name;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[current_name;dst]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]".. + "listring[current_name;fuel]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) + return formspec +end + +local inactive_formspec = + "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_name;src;2.75,0.5;1,1;]".. + "list[current_name;fuel;2.75,2.5;1,1;]".. + "image[2.75,1.5;1,1;default_furnace_fire_bg.png]".. + "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]".. + "list[current_name;dst;4.75,0.96;2,2;]".. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "listring[current_name;dst]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]".. + "listring[current_name;fuel]".. + "listring[current_player;main]".. + default.get_hotbar_bg(0, 4.25) + +-- +-- Node callback functions that are the same for active and inactive furnace +-- + +local function can_dig(pos, player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("fuel") and inv:is_empty("dst") and inv:is_empty("src") +end + +local function allow_metadata_inventory_put(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if listname == "fuel" then + if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then + if inv:is_empty("src") then + meta:set_string("infotext", "Furnace is empty") + end + return stack:get_count() + else + return 0 + end + elseif listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + end +end + +local function allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local stack = inv:get_stack(from_list, from_index) + return allow_metadata_inventory_put(pos, to_list, to_index, stack, player) +end + +local function allow_metadata_inventory_take(pos, listname, index, stack, player) + if minetest.is_protected(pos, player:get_player_name()) then + return 0 + end + return stack:get_count() +end + +local function swap_node(pos, name) + local node = minetest.get_node(pos) + if node.name == name then + return + end + node.name = name + minetest.swap_node(pos, node) +end + +local function furnace_node_timer(pos, elapsed) + -- + -- Inizialize metadata + -- + local meta = minetest.get_meta(pos) + local fuel_time = meta:get_float("fuel_time") or 0 + local src_time = meta:get_float("src_time") or 0 + local fuel_totaltime = meta:get_float("fuel_totaltime") or 0 + + local inv = meta:get_inventory() + local srclist, fuellist + + local cookable, cooked + local fuel + + local update = true + while elapsed > 0 and update do + update = false + + srclist = inv:get_list("src") + fuellist = inv:get_list("fuel") + + -- + -- Cooking + -- + + -- Check if we have cookable content + local aftercooked + cooked, aftercooked = minetest.get_craft_result({method = "cooking", width = 1, items = srclist}) + cookable = cooked.time ~= 0 + + local el = math.min(elapsed, fuel_totaltime - fuel_time) + if cookable then -- fuel lasts long enough, adjust el to cooking duration + el = math.min(el, cooked.time - src_time) + end + + -- Check if we have enough fuel to burn + if fuel_time < fuel_totaltime then + -- The furnace is currently active and has enough fuel + fuel_time = fuel_time + el + -- If there is a cookable item then check if it is ready yet + if cookable then + src_time = src_time + el + if src_time >= cooked.time then + -- Place result in dst list if possible + if inv:room_for_item("dst", cooked.item) then + inv:add_item("dst", cooked.item) + inv:set_stack("src", 1, aftercooked.items[1]) + src_time = src_time - cooked.time + update = true + end + else + -- Item could not be cooked: probably missing fuel + update = true + end + end + else + -- Furnace ran out of fuel + if cookable then + -- We need to get new fuel + local afterfuel + fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + + if fuel.time == 0 then + -- No valid fuel in fuel list + fuel_totaltime = 0 + src_time = 0 + else + -- Take fuel from fuel list + inv:set_stack("fuel", 1, afterfuel.items[1]) + update = true + fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time) + end + else + -- We don't need to get new fuel since there is no cookable item + fuel_totaltime = 0 + src_time = 0 + end + fuel_time = 0 + end + + elapsed = elapsed - el + end + + if fuel and fuel_totaltime > fuel.time then + fuel_totaltime = fuel.time + end + if srclist[1]:is_empty() then + src_time = 0 + end + + -- + -- Update formspec, infotext and node + -- + local formspec = inactive_formspec + local item_state + local item_percent = 0 + if cookable then + item_percent = math.floor(src_time / cooked.time * 100) + if item_percent > 100 then + item_state = "100% (output full)" + else + item_state = item_percent .. "%" + end + else + if srclist[1]:is_empty() then + item_state = "Empty" + else + item_state = "Not cookable" + end + end + + local fuel_state = "Empty" + local active = "inactive " + local result = false + + if fuel_totaltime ~= 0 then + active = "active " + local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100) + fuel_state = fuel_percent .. "%" + formspec = active_formspec(fuel_percent, item_percent) + swap_node(pos, "default:furnace_active") + -- make sure timer restarts automatically + result = true + else + if not fuellist[1]:is_empty() then + fuel_state = "0%" + end + swap_node(pos, "default:furnace") + -- stop timer on the inactive furnace + minetest.get_node_timer(pos):stop() + end + + local infotext = "Furnace " .. active .. "(Item: " .. item_state .. "; Fuel: " .. fuel_state .. ")" + + -- + -- Set meta values + -- + meta:set_float("fuel_totaltime", fuel_totaltime) + meta:set_float("fuel_time", fuel_time) + meta:set_float("src_time", src_time) + meta:set_string("formspec", formspec) + meta:set_string("infotext", infotext) + + return result +end + +-- +-- Node definitions +-- + +minetest.register_node("default:furnace", { + description = "Furnace", + tiles = { + "default_furnace_top.png", "default_furnace_bottom.png", + "default_furnace_side.png", "default_furnace_side.png", + "default_furnace_side.png", "default_furnace_front.png" + }, + paramtype2 = "facedir", + groups = {cracky=2}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + + can_dig = can_dig, + + on_timer = furnace_node_timer, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", inactive_formspec) + local inv = meta:get_inventory() + inv:set_size('src', 1) + inv:set_size('fuel', 1) + inv:set_size('dst', 4) + end, + + on_metadata_inventory_move = function(pos) + minetest.get_node_timer(pos):start(1.0) + end, + on_metadata_inventory_put = function(pos) + -- start timer function, it will sort out whether furnace can burn or not. + minetest.get_node_timer(pos):start(1.0) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "src", drops) + default.get_inventory_drops(pos, "fuel", drops) + default.get_inventory_drops(pos, "dst", drops) + drops[#drops+1] = "default:furnace" + minetest.remove_node(pos) + return drops + end, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, +}) + +minetest.register_node("default:furnace_active", { + description = "Furnace", + tiles = { + "default_furnace_top.png", "default_furnace_bottom.png", + "default_furnace_side.png", "default_furnace_side.png", + "default_furnace_side.png", + { + image = "default_furnace_front_active.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5 + }, + } + }, + paramtype2 = "facedir", + light_source = 8, + drop = "default:furnace", + groups = {cracky=2, not_in_creative_inventory=1}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + on_timer = furnace_node_timer, + + can_dig = can_dig, + + allow_metadata_inventory_put = allow_metadata_inventory_put, + allow_metadata_inventory_move = allow_metadata_inventory_move, + allow_metadata_inventory_take = allow_metadata_inventory_take, +}) + diff --git a/mods/default/init.lua b/mods/default/init.lua new file mode 100644 index 0000000..7b5f62f --- /dev/null +++ b/mods/default/init.lua @@ -0,0 +1,52 @@ +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + +-- The API documentation in here was moved into game_api.txt + +-- Definitions made by this mod that other mods can use too +default = {} + +default.LIGHT_MAX = 14 + +-- GUI related stuff +default.gui_bg = "bgcolor[#080808BB;true]" +default.gui_bg_img = "background[5,5;1,1;gui_formbg.png;true]" +default.gui_slots = "listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + +function default.get_hotbar_bg(x,y) + local out = "" + for i=0,7,1 do + out = out .."image["..x+i..","..y..";1,1;gui_hb_bg.png]" + end + return out +end + +default.gui_survival_form = "size[8,8.5]".. + default.gui_bg.. + default.gui_bg_img.. + default.gui_slots.. + "list[current_player;main;0,4.25;8,1;]".. + "list[current_player;main;0,5.5;8,3;8]".. + "list[current_player;craft;1.75,0.5;3,3;]".. + "list[current_player;craftpreview;5.75,1.5;1,1;]".. + "image[4.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270]".. + "listring[current_player;main]".. + "listring[current_player;craft]".. + default.get_hotbar_bg(0,4.25) + +-- Load files +local default_path = minetest.get_modpath("default") + +dofile(default_path.."/functions.lua") +dofile(default_path.."/trees.lua") +dofile(default_path.."/nodes.lua") +dofile(default_path.."/furnace.lua") +dofile(default_path.."/torch.lua") +dofile(default_path.."/tools.lua") +dofile(default_path.."/item_entity.lua") +dofile(default_path.."/craftitems.lua") +dofile(default_path.."/crafting.lua") +dofile(default_path.."/mapgen.lua") +dofile(default_path.."/player.lua") +dofile(default_path.."/aliases.lua") +dofile(default_path.."/legacy.lua") diff --git a/mods/default/item_entity.lua b/mods/default/item_entity.lua new file mode 100644 index 0000000..c34e60e --- /dev/null +++ b/mods/default/item_entity.lua @@ -0,0 +1,74 @@ +-- mods/default/item_entity.lua + +local builtin_item = minetest.registered_entities["__builtin:item"] + +local item = { + set_item = function(self, itemstring) + builtin_item.set_item(self, itemstring) + + local stack = ItemStack(itemstring) + local itemdef = minetest.registered_items[stack:get_name()] + if itemdef and itemdef.groups.flammable ~= 0 then + self.flammable = itemdef.groups.flammable + end + end, + + burn_up = function(self) + -- disappear in a smoke puff + self.object:remove() + local p = self.object:getpos() + minetest.sound_play("default_item_smoke", { + pos = p, + max_hear_distance = 8, + }) + minetest.add_particlespawner({ + amount = 3, + time = 0.1, + minpos = {x = p.x - 0.1, y = p.y + 0.1, z = p.z - 0.1 }, + maxpos = {x = p.x + 0.1, y = p.y + 0.2, z = p.z + 0.1 }, + minvel = {x = 0, y = 2.5, z = 0}, + maxvel = {x = 0, y = 2.5, z = 0}, + minacc = {x = -0.15, y = -0.02, z = -0.15}, + maxacc = {x = 0.15, y = -0.01, z = 0.15}, + minexptime = 4, + maxexptime = 6, + minsize = 5, + maxsize = 5, + collisiondetection = true, + texture = "default_item_smoke.png" + }) + end, + + on_step = function(self, dtime) + builtin_item.on_step(self, dtime) + + if self.flammable then + -- flammable, check for igniters + self.ignite_timer = (self.ignite_timer or 0) + dtime + if self.ignite_timer > 10 then + self.ignite_timer = 0 + + local node = minetest.get_node_or_nil(self.object:getpos()) + if not node then + return + end + + -- Immediately burn up flammable items in lava + if minetest.get_item_group(node.name, "lava") > 0 then + self:burn_up() + else + -- otherwise there'll be a chance based on its igniter value + local burn_chance = self.flammable + * minetest.get_item_group(node.name, "igniter") + if burn_chance > 0 and math.random(0, burn_chance) ~= 0 then + self:burn_up() + end + end + end + end + end, +} + +-- set defined item as new __builtin:item, with the old one as fallback table +setmetatable(item, builtin_item) +minetest.register_entity(":__builtin:item", item) diff --git a/mods/default/legacy.lua b/mods/default/legacy.lua new file mode 100644 index 0000000..a8c8ad5 --- /dev/null +++ b/mods/default/legacy.lua @@ -0,0 +1,25 @@ +-- mods/default/legacy.lua + +-- Horrible stuff to support old code registering falling nodes +-- Don't use this and never do what this does, it's completely wrong! +-- (More specifically, the client and the C++ code doesn't get the group) +function default.register_falling_node(nodename, texture) + minetest.log("error", debug.traceback()) + minetest.log('error', "WARNING: default.register_falling_node is deprecated") + if minetest.registered_nodes[nodename] then + minetest.registered_nodes[nodename].groups.falling_node = 1 + end +end + +function default.spawn_falling_node(p, nodename) + spawn_falling_node(p, nodename) +end + +-- Liquids +WATER_ALPHA = minetest.registered_nodes["default:water_source"].alpha +WATER_VISC = minetest.registered_nodes["default:water_source"].liquid_viscosity +LAVA_VISC = minetest.registered_nodes["default:lava_source"].liquid_viscosity +LIGHT_MAX = default.LIGHT_MAX + +-- Formspecs +default.gui_suvival_form = default.gui_survival_form diff --git a/mods/default/license.txt b/mods/default/license.txt new file mode 100644 index 0000000..7dcd24c --- /dev/null +++ b/mods/default/license.txt @@ -0,0 +1,177 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2011-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2010-2017: + celeron55, Perttu Ahola + Cisoun + G4JC + VanessaE + RealBadAngel + Calinou + MirceaKitsune + Jordach + PilzAdam + jojoa1997 + InfinityProject + Splizard + Zeg9 + paramat + BlockMen + sofar + Neuromancer + Gambit + asl97 + KevDoy + Mito551 + GreenXenith + kaeza + kilbith + CloudyProton + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) +Copyright (C) 2014-2016 brunob.santos + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/4.0/ + +----------------------- + +Attribution-ShareAlike 2.0 Generic (CC BY-SA 2.0) +Copyright (C) 2014-2016 Neuromancer + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/2.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2009 cmusounddesign +Copyright (C) 2010 Tomlija +Copyright (C) 2010 lsprice +Copyright (C) 2014 sonictechtonic +Copyright (C) 2015 yadronoff +Copyright (C) 2007 HerbertBoland +Copyright (C) 2006 AGFX + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua new file mode 100644 index 0000000..1305226 --- /dev/null +++ b/mods/default/mapgen.lua @@ -0,0 +1,1826 @@ +-- +-- Aliases for map generators +-- + +minetest.register_alias("mapgen_stone", "default:stone") +minetest.register_alias("mapgen_dirt", "default:dirt") +minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") +minetest.register_alias("mapgen_sand", "default:sand") +minetest.register_alias("mapgen_water_source", "default:water_source") +minetest.register_alias("mapgen_river_water_source", "default:river_water_source") +minetest.register_alias("mapgen_lava_source", "default:lava_source") +minetest.register_alias("mapgen_gravel", "default:gravel") +minetest.register_alias("mapgen_desert_stone", "default:desert_stone") +minetest.register_alias("mapgen_desert_sand", "default:desert_sand") +minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow") +minetest.register_alias("mapgen_snowblock", "default:snowblock") +minetest.register_alias("mapgen_snow", "default:snow") +minetest.register_alias("mapgen_ice", "default:ice") +minetest.register_alias("mapgen_sandstone", "default:sandstone") + +-- Flora + +minetest.register_alias("mapgen_tree", "default:tree") +minetest.register_alias("mapgen_leaves", "default:leaves") +minetest.register_alias("mapgen_apple", "default:apple") +minetest.register_alias("mapgen_jungletree", "default:jungletree") +minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves") +minetest.register_alias("mapgen_junglegrass", "default:junglegrass") +minetest.register_alias("mapgen_pine_tree", "default:pine_tree") +minetest.register_alias("mapgen_pine_needles", "default:pine_needles") + +-- Dungeons + +minetest.register_alias("mapgen_cobble", "default:cobble") +minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") +minetest.register_alias("mapgen_mossycobble", "default:mossycobble") +minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone") +minetest.register_alias("mapgen_sandstonebrick", "default:sandstonebrick") +minetest.register_alias("mapgen_stair_sandstone_block", "stairs:stair_sandstone_block") + + +-- +-- Register ores +-- + +-- Blob ores +-- These first to avoid other ores in blobs + +-- Mgv6 + +function default.register_mgv6_blob_ores() + + -- Clay + -- This first to avoid clay in sand blobs + + minetest.register_ore({ + ore_type = "blob", + ore = "default:clay", + wherein = {"default:sand"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -15, + y_max = 0, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Sand + + minetest.register_ore({ + ore_type = "blob", + ore = "default:sand", + wherein = {"default:stone", "default:desert_stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31, + y_max = 0, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 2316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Dirt + + minetest.register_ore({ + ore_type = "blob", + ore = "default:dirt", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 17676, + octaves = 1, + persist = 0.0 + }, + }) + + -- Gravel + + minetest.register_ore({ + ore_type = "blob", + ore = "default:gravel", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31000, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 766, + octaves = 1, + persist = 0.0 + }, + }) +end + + +-- All mapgens except mgv6 + +function default.register_blob_ores() + + -- Clay + + minetest.register_ore({ + ore_type = "blob", + ore = "default:clay", + wherein = {"default:sand"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -15, + y_max = 0, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = -316, + octaves = 1, + persist = 0.0 + }, + }) + + -- Silver sand + + minetest.register_ore({ + ore_type = "blob", + ore = "default:silver_sand", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31000, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 2316, + octaves = 1, + persist = 0.0 + }, + biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean", + "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean", + "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest", + "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest", + "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", + "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", + "rainforest", "rainforest_swamp", "rainforest_ocean", "underground", + "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"} + }) + + -- Dirt + + minetest.register_ore({ + ore_type = "blob", + ore = "default:dirt", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 17676, + octaves = 1, + persist = 0.0 + }, + biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest", + "deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore", + "rainforest", "rainforest_swamp", "floatland_grassland", + "floatland_coniferous_forest"} + }) + + -- Gravel + + minetest.register_ore({ + ore_type = "blob", + ore = "default:gravel", + wherein = {"default:stone"}, + clust_scarcity = 16 * 16 * 16, + clust_size = 5, + y_min = -31000, + y_max = 31000, + noise_threshold = 0.0, + noise_params = { + offset = 0.5, + scale = 0.2, + spread = {x = 5, y = 5, z = 5}, + seed = 766, + octaves = 1, + persist = 0.0 + }, + biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean", + "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean", + "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest", + "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest", + "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", + "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", + "rainforest", "rainforest_swamp", "rainforest_ocean", "underground", + "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"} + }) +end + + +-- Scatter ores +-- All mapgens + +function default.register_ores() + + -- Coal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 9, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 8 * 8 * 8, + clust_num_ores = 8, + clust_size = 3, + y_min = -31000, + y_max = 64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_coal", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = 0, + }) + + -- Iron + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 12, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = 0, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_iron", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = -64, + }) + + -- Copper + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 4, + clust_size = 3, + y_min = -63, + y_max = -16, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_copper", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -64, + }) + + -- Tin + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 4, + clust_size = 3, + y_min = -127, + y_max = -32, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_tin", + wherein = "default:stone", + clust_scarcity = 10 * 10 * 10, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -128, + }) + + -- Gold + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 3, + clust_size = 2, + y_min = -255, + y_max = -64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_gold", + wherein = "default:stone", + clust_scarcity = 13 * 13 * 13, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Mese crystal + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 18 * 18 * 18, + clust_num_ores = 3, + clust_size = 2, + y_min = -255, + y_max = -64, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_mese", + wherein = "default:stone", + clust_scarcity = 14 * 14 * 14, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Diamond + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 17 * 17 * 17, + clust_num_ores = 4, + clust_size = 3, + y_min = -255, + y_max = -128, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:stone_with_diamond", + wherein = "default:stone", + clust_scarcity = 15 * 15 * 15, + clust_num_ores = 4, + clust_size = 3, + y_min = -31000, + y_max = -256, + }) + + -- Mese block + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_min = 1025, + y_max = 31000, + }) + + minetest.register_ore({ + ore_type = "scatter", + ore = "default:mese", + wherein = "default:stone", + clust_scarcity = 36 * 36 * 36, + clust_num_ores = 3, + clust_size = 2, + y_min = -31000, + y_max = -1024, + }) +end + + +-- +-- Register biomes +-- + +-- All mapgens except mgv6 + +function default.register_biomes(upper_limit) + + -- Icesheet + + minetest.register_biome({ + name = "icesheet", + node_dust = "default:snowblock", + node_top = "default:snowblock", + depth_top = 1, + node_filler = "default:snowblock", + depth_filler = 3, + node_stone = "default:ice", + node_water_top = "default:ice", + depth_water_top = 10, + --node_water = "", + node_river_water = "default:ice", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = -8, + y_max = upper_limit, + heat_point = 0, + humidity_point = 73, + }) + + minetest.register_biome({ + name = "icesheet_ocean", + node_dust = "default:snowblock", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + node_water_top = "default:ice", + depth_water_top = 10, + --node_water = "", + --node_river_water = "", + y_min = -112, + y_max = -9, + heat_point = 0, + humidity_point = 73, + }) + + -- Tundra + + minetest.register_biome({ + name = "tundra", + node_dust = "default:snowblock", + --node_top = , + --depth_top = , + --node_filler = , + --depth_filler = , + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = 2, + y_max = upper_limit, + heat_point = 0, + humidity_point = 40, + }) + + minetest.register_biome({ + name = "tundra_beach", + --node_dust = "", + node_top = "default:gravel", + depth_top = 1, + node_filler = "default:gravel", + depth_filler = 2, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = -3, + y_max = 1, + heat_point = 0, + humidity_point = 40, + }) + + minetest.register_biome({ + name = "tundra_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:gravel", + depth_riverbed = 2, + y_min = -112, + y_max = -4, + heat_point = 0, + humidity_point = 40, + }) + + -- Taiga + + minetest.register_biome({ + name = "taiga", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 2, + y_max = upper_limit, + heat_point = 25, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "taiga_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 1, + heat_point = 25, + humidity_point = 70, + }) + + -- Snowy grassland + + minetest.register_biome({ + name = "snowy_grassland", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 20, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "snowy_grassland_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 20, + humidity_point = 35, + }) + + -- Grassland + + minetest.register_biome({ + name = "grassland", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 6, + y_max = upper_limit, + heat_point = 50, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "grassland_dunes", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 2, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 5, + heat_point = 50, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "grassland_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 50, + humidity_point = 35, + }) + + -- Coniferous forest + + minetest.register_biome({ + name = "coniferous_forest", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 6, + y_max = upper_limit, + heat_point = 45, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "coniferous_forest_dunes", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 5, + heat_point = 45, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "coniferous_forest_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 45, + humidity_point = 70, + }) + + -- Deciduous forest + + minetest.register_biome({ + name = "deciduous_forest", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 1, + y_max = upper_limit, + heat_point = 60, + humidity_point = 68, + }) + + minetest.register_biome({ + name = "deciduous_forest_shore", + --node_dust = "", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -1, + y_max = 0, + heat_point = 60, + humidity_point = 68, + }) + + minetest.register_biome({ + name = "deciduous_forest_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = -2, + heat_point = 60, + humidity_point = 68, + }) + + -- Desert + + minetest.register_biome({ + name = "desert", + --node_dust = "", + node_top = "default:desert_sand", + depth_top = 1, + node_filler = "default:desert_sand", + depth_filler = 1, + node_stone = "default:desert_stone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 92, + humidity_point = 16, + }) + + minetest.register_biome({ + name = "desert_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:desert_stone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 92, + humidity_point = 16, + }) + + -- Sandstone desert + + minetest.register_biome({ + name = "sandstone_desert", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 1, + node_stone = "default:sandstone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 60, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "sandstone_desert_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + node_stone = "default:sandstone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 60, + humidity_point = 0, + }) + + -- Cold desert + + minetest.register_biome({ + name = "cold_desert", + --node_dust = "", + node_top = "default:silver_sand", + depth_top = 1, + node_filler = "default:silver_sand", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = upper_limit, + heat_point = 40, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "cold_desert_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 40, + humidity_point = 0, + }) + + -- Savanna + + minetest.register_biome({ + name = "savanna", + --node_dust = "", + node_top = "default:dirt_with_dry_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 1, + y_max = upper_limit, + heat_point = 89, + humidity_point = 42, + }) + + minetest.register_biome({ + name = "savanna_shore", + --node_dust = "", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -1, + y_max = 0, + heat_point = 89, + humidity_point = 42, + }) + + minetest.register_biome({ + name = "savanna_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = -2, + heat_point = 89, + humidity_point = 42, + }) + + -- Rainforest + + minetest.register_biome({ + name = "rainforest", + --node_dust = "", + node_top = "default:dirt_with_rainforest_litter", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 1, + y_max = upper_limit, + heat_point = 86, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "rainforest_swamp", + --node_dust = "", + node_top = "default:dirt", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -1, + y_max = 0, + heat_point = 86, + humidity_point = 65, + }) + + minetest.register_biome({ + name = "rainforest_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = -2, + heat_point = 86, + humidity_point = 65, + }) + + -- Underground + + minetest.register_biome({ + name = "underground", + --node_dust = "", + --node_top = "", + --depth_top = , + --node_filler = "", + --depth_filler = , + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + y_min = -31000, + y_max = -113, + heat_point = 50, + humidity_point = 50, + }) +end + + +-- Biomes for floatlands + +function default.register_floatland_biomes(floatland_level, shadow_limit) + + -- Coniferous forest + + minetest.register_biome({ + name = "floatland_coniferous_forest", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + --node_riverbed = "", + --depth_riverbed = , + y_min = floatland_level + 2, + y_max = 31000, + heat_point = 50, + humidity_point = 70, + }) + + -- Grassland + + minetest.register_biome({ + name = "floatland_grassland", + --node_dust = "", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + --node_riverbed = "", + --depth_riverbed = , + y_min = floatland_level + 2, + y_max = 31000, + heat_point = 50, + humidity_point = 35, + }) + + -- Sandstone desert + + minetest.register_biome({ + name = "floatland_sandstone_desert", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 1, + node_stone = "default:sandstone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + --node_riverbed = "", + --depth_riverbed = , + y_min = floatland_level + 2, + y_max = 31000, + heat_point = 50, + humidity_point = 0, + }) + + -- Floatland ocean / underground + + minetest.register_biome({ + name = "floatland_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + --node_riverbed = "", + --depth_riverbed = , + y_min = shadow_limit, + y_max = floatland_level + 1, + heat_point = 50, + humidity_point = 50, + }) +end + + +-- +-- Register decorations +-- + +-- Mgv6 + +function default.register_mgv6_decorations() + + -- Papyrus + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.3, + scale = 0.7, + spread = {x = 100, y = 100, z = 100}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + y_min = 1, + y_max = 1, + decoration = "default:papyrus", + height = 2, + height_max = 4, + spawn_by = "default:water_source", + num_spawn_by = 1, + }) + + -- Cacti + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.012, + scale = 0.024, + spread = {x = 100, y = 100, z = 100}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "default:cactus", + height = 3, + height_max = 4, + }) + + -- Long grasses + + for length = 1, 5 do + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.007, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "default:grass_"..length, + }) + end + + -- Dry shrubs + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.035, + spread = {x = 100, y = 100, z = 100}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "default:dry_shrub", + }) +end + + +-- All mapgens except mgv6 + +local function register_grass_decoration(offset, scale, length) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass", "default:sand"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland", "grassland_dunes", "deciduous_forest", + "coniferous_forest", "coniferous_forest_dunes", + "floatland_grassland", "floatland_coniferous_forest"}, + y_min = 1, + y_max = 31000, + decoration = "default:grass_" .. length, + }) +end + +local function register_dry_grass_decoration(offset, scale, length) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = offset, + scale = scale, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + decoration = "default:dry_grass_" .. length, + }) +end + + +function default.register_decorations() + + -- Apple tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.036, + scale = 0.022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0018, + scale = 0.0011, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/apple_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Jungle tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_rainforest_litter", "default:dirt"}, + sidelen = 16, + fill_ratio = 0.1, + biomes = {"rainforest", "rainforest_swamp"}, + y_min = -1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_rainforest_litter", "default:dirt"}, + sidelen = 16, + fill_ratio = 0.005, + biomes = {"rainforest", "rainforest_swamp"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/jungle_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Taiga and temperate coniferous forest pine tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.036, + scale = 0.022, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"}, + y_min = 2, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_snow", "default:dirt_with_grass"}, + sidelen = 80, + noise_params = { + offset = 0.0018, + scale = 0.0011, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"taiga", "coniferous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/pine_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Acacia tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.002, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_tree.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.001, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Aspen tree and log + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0, + scale = -0.015, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/aspen_tree.mts", + flags = "place_center_x, place_center_z", + }) + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0.0, + scale = -0.0008, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/aspen_log.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Large cactus + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.0003, + scale = 0.0009, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert"}, + y_min = 5, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/large_cactus.mts", + flags = "place_center_x", + rotation = "random", + }) + + -- Cactus + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand"}, + sidelen = 16, + noise_params = { + offset = -0.0003, + scale = 0.0009, + spread = {x = 200, y = 200, z = 200}, + seed = 230, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert"}, + y_min = 5, + y_max = 31000, + decoration = "default:cactus", + height = 2, + height_max = 5, + }) + + -- Papyrus + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.3, + scale = 0.7, + spread = {x = 200, y = 200, z = 200}, + seed = 354, + octaves = 3, + persist = 0.7 + }, + biomes = {"savanna_shore"}, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("default") .. "/schematics/papyrus.mts", + }) + + -- Bush + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 137, + octaves = 3, + persist = 0.7, + }, + biomes = {"snowy_grassland", "grassland", "deciduous_forest", + "floatland_grassland"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/bush.mts", + flags = "place_center_x, place_center_z", + }) + + -- Acacia bush + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 90155, + octaves = 3, + persist = 0.7, + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_bush.mts", + flags = "place_center_x, place_center_z", + }) + + -- Grasses + + register_grass_decoration(-0.03, 0.09, 5) + register_grass_decoration(-0.015, 0.075, 4) + register_grass_decoration(0, 0.06, 3) + register_grass_decoration(0.015, 0.045, 2) + register_grass_decoration(0.03, 0.03, 1) + + -- Dry grasses + + register_dry_grass_decoration(0.01, 0.05, 5) + register_dry_grass_decoration(0.03, 0.03, 4) + register_dry_grass_decoration(0.05, 0.01, 3) + register_dry_grass_decoration(0.07, -0.01, 2) + register_dry_grass_decoration(0.09, -0.03, 1) + + -- Junglegrass + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_rainforest_litter"}, + sidelen = 16, + fill_ratio = 0.1, + biomes = {"rainforest"}, + y_min = 1, + y_max = 31000, + decoration = "default:junglegrass", + }) + + -- Dry shrub + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:desert_sand", + "default:sand", "default:silver_sand"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.02, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 3, + persist = 0.6 + }, + biomes = {"desert", "sandstone_desert", "cold_desert"}, + y_min = 2, + y_max = 31000, + decoration = "default:dry_shrub", + }) + + -- Coral reef + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:sand"}, + noise_params = { + offset = -0.15, + scale = 0.1, + spread = {x = 100, y = 100, z = 100}, + seed = 7013, + octaves = 3, + persist = 1, + }, + biomes = { + "desert_ocean", + "savanna_ocean", + "rainforest_ocean", + }, + y_min = -8, + y_max = -2, + schematic = minetest.get_modpath("default") .. "/schematics/corals.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) +end + + +-- +-- Detect mapgen, flags and parameters to select functions +-- + +-- Get setting or default +local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or + "mountains, ridges, nofloatlands" +local captures_float = string.match(mgv7_spflags, "floatlands") +local captures_nofloat = string.match(mgv7_spflags, "nofloatlands") + +local mgv7_floatland_level = minetest.get_mapgen_setting("mgv7_floatland_level") or 1280 +local mgv7_shadow_limit = minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024 + +minetest.clear_registered_biomes() +minetest.clear_registered_ores() +minetest.clear_registered_decorations() + +local mg_name = minetest.get_mapgen_setting("mg_name") +if mg_name == "v6" then + default.register_mgv6_blob_ores() + default.register_ores() + default.register_mgv6_decorations() +elseif mg_name == "v7" and captures_float == "floatlands" and + captures_nofloat ~= "nofloatlands" then + -- Mgv7 with floatlands + default.register_biomes(mgv7_shadow_limit - 1) + default.register_floatland_biomes(mgv7_floatland_level, mgv7_shadow_limit) + default.register_blob_ores() + default.register_ores() + default.register_decorations() +else + default.register_biomes(31000) + default.register_blob_ores() + default.register_ores() + default.register_decorations() +end diff --git a/mods/default/models/character.b3d b/mods/default/models/character.b3d new file mode 100644 index 0000000..9ab4543 Binary files /dev/null and b/mods/default/models/character.b3d differ diff --git a/mods/default/models/character.blend b/mods/default/models/character.blend new file mode 100644 index 0000000..fca9f65 Binary files /dev/null and b/mods/default/models/character.blend differ diff --git a/mods/default/models/character.png b/mods/default/models/character.png new file mode 100644 index 0000000..0502178 Binary files /dev/null and b/mods/default/models/character.png differ diff --git a/mods/default/models/chest_open.obj b/mods/default/models/chest_open.obj new file mode 100644 index 0000000..72ba175 --- /dev/null +++ b/mods/default/models/chest_open.obj @@ -0,0 +1,79 @@ +# Blender v2.78 (sub 0) OBJ File: 'chest-open.blend' +# www.blender.org +o Top_Cube.002_None_Top_Cube.002_None_bottom +v -0.500000 0.408471 0.720970 +v -0.500000 1.115578 0.013863 +v -0.500000 0.894607 -0.207108 +v -0.500000 0.187501 0.499999 +v 0.500000 1.115578 0.013863 +v 0.500000 0.408471 0.720970 +v 0.500000 0.187501 0.499999 +v 0.500000 0.894607 -0.207108 +v -0.500000 0.187500 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.187500 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.0000 +vt 0.0000 1.0000 +vt 1.0000 1.0000 +vt 1.0000 0.6875 +vt 0.0000 0.6875 +vt 1.0000 1.0000 +vt 0.0000 0.6875 +vt 1.0000 0.6875 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 0.0000 0.0000 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 1.0000 1.0000 +vt 1.0000 0.6875 +vt 1.0000 0.0000 +vt 0.0000 1.0000 +vt 0.0000 0.6875 +vt 0.0000 0.6875 +vt 0.0000 0.0000 +vt 1.0000 0.5000 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.5000 +vt 0.0000 0.0000 +vt 1.0000 0.0000 +vn 0.0000 0.7071 0.7071 +vn -0.0000 -1.0000 -0.0000 +vn -1.0000 0.0000 0.0000 +vn 1.0000 0.0000 -0.0000 +vn 0.0000 -0.7071 0.7071 +vn 0.0000 0.0000 1.0000 +vn -0.0000 0.7071 -0.7071 +vn -0.0000 0.0000 -1.0000 +vn -0.0000 -0.7071 -0.7071 +vn -0.0000 1.0000 -0.0000 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Top +s off +f 6/1/1 5/2/1 2/3/1 1/4/1 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Bottom +f 11/5/2 10/6/2 14/7/2 13/8/2 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Right-Left +f 1/9/3 2/10/3 3/11/3 4/12/3 +f 5/13/4 6/1/4 7/14/4 8/15/4 +f 4/12/3 9/16/3 10/17/3 11/18/3 +f 12/19/4 7/14/4 13/8/4 14/20/4 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Back +f 6/21/5 1/9/5 4/12/5 7/22/5 +f 7/22/6 4/12/6 11/18/6 13/23/6 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Front +f 2/10/7 5/24/7 8/25/7 3/11/7 +f 9/16/8 12/26/8 14/27/8 10/17/8 +g Top_Cube.002_None_Top_Cube.002_None_bottom_Top_Cube.002_None_Top_Cube.002_None_bottom_Inside +f 4/28/9 3/29/9 8/30/9 7/31/9 +f 7/31/10 12/32/10 9/33/10 4/28/10 diff --git a/mods/default/models/torch_ceiling.obj b/mods/default/models/torch_ceiling.obj new file mode 100644 index 0000000..ea51f3c --- /dev/null +++ b/mods/default/models/torch_ceiling.obj @@ -0,0 +1,58 @@ +# Blender v2.77 (sub 0) OBJ File: 'torch_ceiling.blend' +# www.blender.org +mtllib torch_ceiling.mtl +o Cube_Cube.001 +v -0.062469 -0.047331 0.068152 +v -0.062469 -0.559515 -0.164388 +v -0.062469 0.004344 -0.045667 +v -0.062469 -0.507839 -0.278206 +v 0.062531 -0.047331 0.068152 +v 0.062531 -0.559515 -0.164388 +v 0.062531 0.004344 -0.045667 +v 0.062531 -0.507839 -0.278206 +v 0.353584 0.040000 0.363553 +v 0.353584 -0.397500 0.363553 +v -0.353522 0.040000 -0.343553 +v -0.353522 -0.397500 -0.343553 +v 0.353584 0.040000 -0.343553 +v -0.353522 0.040000 0.363553 +v 0.353584 -0.397500 -0.343553 +v -0.353522 -0.397500 0.363553 +vt 0.5625 0.5000 +vt 0.5625 0.6250 +vt 0.4375 0.6250 +vt 0.4375 0.5000 +vt 0.4375 0.0000 +vt 0.5625 0.0000 +vt 0.5625 0.1250 +vt 0.4375 0.1250 +vt 0.5625 0.6250 +vt 0.4375 0.6250 +vt 0.4375 0.6250 +vt 0.4375 0.0000 +vt 0.5625 0.6250 +vt 0.5625 0.0000 +vt 1.0000 0.5625 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vt 0.0000 0.5625 +vt 0.0000 0.5625 +vt 1.0000 0.5625 +vt 1.0000 1.0000 +vt 0.0000 1.0000 +vn 0.0000 0.9105 0.4134 +vn -0.0000 -0.4134 0.9105 +vn -1.0000 0.0000 0.0000 +vn 0.7071 0.0000 -0.7071 +vn 0.7071 0.0000 0.7071 +usemtl Material.001 +s off +f 3/1/1 1/2/1 5/3/1 7/4/1 +f 8/5/1 4/6/1 2/7/1 6/8/1 +f 3/9/2 4/6/2 8/5/2 7/10/2 +f 1/11/3 3/9/3 4/6/3 2/12/3 +f 5/13/2 1/11/2 2/12/2 6/14/2 +f 7/10/3 8/5/3 6/14/3 5/13/3 +usemtl Material.002 +f 9/15/4 10/16/4 12/17/4 11/18/4 +f 13/19/5 14/20/5 16/21/5 15/22/5 diff --git a/mods/default/models/torch_floor.obj b/mods/default/models/torch_floor.obj new file mode 100644 index 0000000..e2487ef --- /dev/null +++ b/mods/default/models/torch_floor.obj @@ -0,0 +1,50 @@ +# Blender v2.76 (sub 11) OBJ File: 'torch_floor.blend' +# www.blender.org +mtllib torch_floor.mtl +o Cube_Cube.001 +v 0.062500 0.062500 -0.062500 +v 0.062500 -0.500000 -0.062500 +v 0.062500 0.062500 0.062500 +v 0.062500 -0.500000 0.062500 +v -0.062500 0.062500 -0.062500 +v -0.062500 -0.500000 -0.062500 +v -0.062500 0.062500 0.062500 +v -0.062500 -0.500000 0.062500 +v -0.353553 -0.500000 0.353553 +v -0.353553 0.500000 0.353553 +v 0.353553 -0.500000 -0.353553 +v 0.353553 0.500000 -0.353553 +v -0.353553 -0.500000 -0.353553 +v 0.353553 -0.500000 0.353553 +v -0.353553 0.500000 -0.353553 +v 0.353553 0.500000 0.353553 +vt 0.562500 0.500000 +vt 0.562500 0.625000 +vt 0.437500 0.625000 +vt 0.437500 0.500000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 0.125000 +vt 0.437500 0.125000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn -0.707100 0.000000 -0.707100 +vn -0.707100 -0.000000 0.707100 +g Cube_Cube.001_Cube_Cube.001_Material.001 +usemtl Material.001 +s off +f 3/1/1 1/2/1 5/3/1 7/4/1 +f 8/5/1 4/6/1 2/7/1 6/8/1 +f 3/2/2 4/6/2 8/5/2 7/3/2 +f 1/3/3 3/2/3 4/6/3 2/5/3 +f 5/2/2 1/3/2 2/5/2 6/6/2 +f 7/3/3 8/5/3 6/6/3 5/2/3 +g Cube_Cube.001_Cube_Cube.001_Material.002 +usemtl Material.002 +f 9/9/4 10/10/4 12/11/4 11/12/4 +f 13/12/5 14/9/5 16/10/5 15/11/5 diff --git a/mods/default/models/torch_wall.obj b/mods/default/models/torch_wall.obj new file mode 100644 index 0000000..57baa9e --- /dev/null +++ b/mods/default/models/torch_wall.obj @@ -0,0 +1,64 @@ +# Blender v2.76 (sub 11) OBJ File: 'torch_wall.blend' +# www.blender.org +mtllib torch_wall.mtl +o Cube_Cube.001 +v 0.062469 -0.195248 0.023570 +v 0.062469 -0.476498 -0.463570 +v 0.062469 -0.303502 0.086070 +v 0.062469 -0.584752 -0.401070 +v -0.062531 -0.195248 0.023570 +v -0.062531 -0.476498 -0.463570 +v -0.062531 -0.303502 0.086070 +v -0.062531 -0.584752 -0.401070 +v -0.353584 -0.613553 0.022500 +v -0.353584 -0.613553 0.460000 +v 0.353522 0.093553 0.022500 +v 0.353522 0.093553 0.460000 +v -0.353584 0.093553 0.022500 +v 0.353522 -0.613553 0.022500 +v -0.353584 0.093553 0.460000 +v 0.353522 -0.613553 0.460000 +v 0.353553 0.056811 -0.121957 +v 0.353553 -0.224439 -0.609096 +v -0.353553 -0.555561 0.231596 +v -0.353553 -0.836811 -0.255543 +v -0.353553 0.056811 -0.121957 +v -0.353553 -0.224439 -0.609096 +v 0.353553 -0.555561 0.231596 +v 0.353553 -0.836811 -0.255543 +vt 0.562500 0.500000 +vt 0.562500 0.625000 +vt 0.437500 0.625000 +vt 0.437500 0.500000 +vt 0.437500 0.000000 +vt 0.562500 0.000000 +vt 0.562500 0.125000 +vt 0.437500 0.125000 +vt 0.000000 0.562500 +vt 0.000000 -0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.562500 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vn -0.000000 0.500000 0.866000 +vn -0.000000 0.866000 -0.500000 +vn 1.000000 0.000000 0.000000 +vn -0.707100 0.612400 -0.353600 +vn -0.707100 -0.612400 0.353600 +vn -0.707100 0.707100 -0.000000 +vn -0.707100 -0.707100 -0.000000 +g Cube_Cube.001_Cube_Cube.001_Material.001 +usemtl Material.001 +s off +f 3/1/1 1/2/1 5/3/1 7/4/1 +f 8/5/1 4/6/1 2/7/1 6/8/1 +f 3/2/2 4/6/2 8/5/2 7/3/2 +f 1/3/3 3/2/3 4/6/3 2/5/3 +f 5/2/2 1/3/2 2/5/2 6/6/2 +f 7/3/3 8/5/3 6/6/3 5/2/3 +f 17/9/4 18/10/4 20/11/4 19/12/4 +f 21/9/5 22/10/5 24/11/5 23/12/5 +g Cube_Cube.001_Cube_Cube.001_Material.002 +usemtl Material.002 +f 9/12/6 10/13/6 12/14/6 11/9/6 +f 13/9/7 14/12/7 16/13/7 15/14/7 diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua new file mode 100644 index 0000000..4196474 --- /dev/null +++ b/mods/default/nodes.lua @@ -0,0 +1,2460 @@ +-- mods/default/nodes.lua + + +--[[ Node name convention: + +Although many node names are in combined-word form, the required form for new +node names is words separated by underscores. If both forms are used in written +language (for example pinewood and pine wood) the underscore form should be used. + +--]] + + +--[[ Index: + +Stone +----- +(1. Material 2. Cobble variant 3. Brick variant 4. Modified forms) + +default:stone +default:cobble +default:stonebrick +default:stone_block +default:mossycobble + +default:desert_stone +default:desert_cobble +default:desert_stonebrick +default:desert_stone_block + +default:sandstone +default:sandstonebrick +default:sandstone_block +default:desert_sandstone +default:desert_sandstone_brick +default:desert_sandstone_block +default:silver_sandstone +default:silver_sandstone_brick +default:silver_sandstone_block + +default:obsidian +default:obsidianbrick +default:obsidian_block + +Soft / Non-Stone +---------------- +(1. Material 2. Modified forms) + +default:dirt +default:dirt_with_grass +default:dirt_with_grass_footsteps +default:dirt_with_dry_grass +default:dirt_with_snow +default:dirt_with_rainforest_litter + +default:sand +default:desert_sand +default:silver_sand + +default:gravel + +default:clay + +default:snow +default:snowblock + +default:ice + +Trees +----- +(1. Trunk 2. Fabricated trunk 3. Leaves 4. Sapling 5. Fruits) + +default:tree +default:wood +default:leaves +default:sapling +default:apple + +default:jungletree +default:junglewood +default:jungleleaves +default:junglesapling + +default:pine_tree +default:pine_wood +default:pine_needles +default:pine_sapling + +default:acacia_tree +default:acacia_wood +default:acacia_leaves +default:acacia_sapling + +default:aspen_tree +default:aspen_wood +default:aspen_leaves +default:aspen_sapling + +Ores +---- +(1. In stone 2. Blocks) + +default:stone_with_coal +default:coalblock + +default:stone_with_iron +default:steelblock + +default:stone_with_copper +default:copperblock + +default:stone_with_tin +default:tinblock + +default:bronzeblock + +default:stone_with_gold +default:goldblock + +default:stone_with_mese +default:mese + +default:stone_with_diamond +default:diamondblock + +Plantlife +--------- + +default:cactus +default:papyrus +default:dry_shrub +default:junglegrass + +default:grass_1 +default:grass_2 +default:grass_3 +default:grass_4 +default:grass_5 + +default:dry_grass_1 +default:dry_grass_2 +default:dry_grass_3 +default:dry_grass_4 +default:dry_grass_5 + +default:bush_stem +default:bush_leaves +default:bush_sapling +default:acacia_bush_stem +default:acacia_bush_leaves +default:acacia_bush_sapling + +Corals +------ + +default:coral_brown +default:coral_orange +default:coral_skeleton + +Liquids +------- +(1. Source 2. Flowing) + +default:water_source +default:water_flowing + +default:river_water_source +default:river_water_flowing + +default:lava_source +default:lava_flowing + +Tools / "Advanced" crafting / Non-"natural" +------------------------------------------- + +default:chest +default:chest_locked + +default:bookshelf + +default:sign_wall_wood +default:sign_wall_steel + +default:ladder_wood +default:ladder_steel + +default:fence_wood +default:fence_acacia_wood +default:fence_junglewood +default:fence_pine_wood +default:fence_aspen_wood + +default:glass +default:obsidian_glass + +default:brick + +default:meselamp +default:mese_post_light + +Misc +---- + +default:cloud + +--]] + +-- +-- Stone +-- + +minetest.register_node("default:stone", { + description = "Stone", + tiles = {"default_stone.png"}, + groups = {cracky = 3, stone = 1}, + drop = 'default:cobble', + legacy_mineral = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:cobble", { + description = "Cobblestone", + tiles = {"default_cobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stonebrick", { + description = "Stone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_stone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:stone_block", { + description = "Stone Block", + tiles = {"default_stone_block.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mossycobble", { + description = "Mossy Cobblestone", + tiles = {"default_mossycobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:desert_stone", { + description = "Desert Stone", + tiles = {"default_desert_stone.png"}, + groups = {cracky = 3, stone = 1}, + drop = 'default:desert_cobble', + legacy_mineral = true, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_cobble", { + description = "Desert Cobblestone", + tiles = {"default_desert_cobble.png"}, + is_ground_content = false, + groups = {cracky = 3, stone = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stonebrick", { + description = "Desert Stone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_desert_stone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_stone_block", { + description = "Desert Stone Block", + tiles = {"default_desert_stone_block.png"}, + is_ground_content = false, + groups = {cracky = 2, stone = 1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstone", { + description = "Sandstone", + tiles = {"default_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstonebrick", { + description = "Sandstone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:sandstone_block", { + description = "Sandstone Block", + tiles = {"default_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_sandstone", { + description = "Desert Sandstone", + tiles = {"default_desert_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_sandstone_brick", { + description = "Desert Sandstone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_desert_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:desert_sandstone_block", { + description = "Desert Sandstone Block", + tiles = {"default_desert_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silver_sandstone", { + description = "Silver Sandstone", + tiles = {"default_silver_sandstone.png"}, + groups = {crumbly = 1, cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silver_sandstone_brick", { + description = "Silver Sandstone Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_silver_sandstone_brick.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:silver_sandstone_block", { + description = "Silver Sandstone Block", + tiles = {"default_silver_sandstone_block.png"}, + is_ground_content = false, + groups = {cracky = 2}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:obsidian", { + description = "Obsidian", + tiles = {"default_obsidian.png"}, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +minetest.register_node("default:obsidianbrick", { + description = "Obsidian Brick", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_obsidian_brick.png"}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +minetest.register_node("default:obsidian_block", { + description = "Obsidian Block", + tiles = {"default_obsidian_block.png"}, + is_ground_content = false, + sounds = default.node_sound_stone_defaults(), + groups = {cracky = 1, level = 2}, +}) + +-- +-- Soft / Non-Stone +-- + +minetest.register_node("default:dirt", { + description = "Dirt", + tiles = {"default_dirt.png"}, + groups = {crumbly = 3, soil = 1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("default:dirt_with_grass", { + description = "Dirt with Grass", + tiles = {"default_grass.png", "default_dirt.png", + {name = "default_dirt.png^default_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.25}, + }), +}) + +minetest.register_node("default:dirt_with_grass_footsteps", { + description = "Dirt with Grass and Footsteps", + tiles = {"default_grass.png^default_footprint.png", "default_dirt.png", + {name = "default_dirt.png^default_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.25}, + }), +}) + +minetest.register_node("default:dirt_with_dry_grass", { + description = "Dirt with Dry Grass", + tiles = {"default_dry_grass.png", + "default_dirt.png", + {name = "default_dirt.png^default_dry_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, + }), +}) + +minetest.register_node("default:dirt_with_snow", { + description = "Dirt with Snow", + tiles = {"default_snow.png", "default_dirt.png", + {name = "default_dirt.png^default_snow_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1, snowy = 1}, + drop = 'default:dirt', + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.15}, + }), +}) + +minetest.register_node("default:dirt_with_rainforest_litter", { + description = "Dirt with Rainforest Litter", + tiles = { + "default_rainforest_litter.png", + "default_dirt.png", + {name = "default_dirt.png^default_rainforest_litter_side.png", + tileable_vertical = false} + }, + groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, + drop = "default:dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, + }), +}) + +minetest.register_node("default:sand", { + description = "Sand", + tiles = {"default_sand.png"}, + 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"}, + groups = {crumbly = 3, falling_node = 1, sand = 1}, + sounds = default.node_sound_sand_defaults(), +}) + +minetest.register_node("default:silver_sand", { + description = "Silver Sand", + tiles = {"default_silver_sand.png"}, + groups = {crumbly = 3, falling_node = 1, sand = 1}, + sounds = default.node_sound_sand_defaults(), +}) + + +minetest.register_node("default:gravel", { + description = "Gravel", + tiles = {"default_gravel.png"}, + groups = {crumbly = 2, falling_node = 1}, + sounds = default.node_sound_gravel_defaults(), + drop = { + max_items = 1, + items = { + {items = {'default:flint'}, rarity = 16}, + {items = {'default:gravel'}} + } + } +}) + +minetest.register_node("default:clay", { + description = "Clay", + tiles = {"default_clay.png"}, + groups = {crumbly = 3}, + drop = 'default:clay_lump 4', + sounds = default.node_sound_dirt_defaults(), +}) + + +minetest.register_node("default:snow", { + description = "Snow", + tiles = {"default_snow.png"}, + inventory_image = "default_snowball.png", + wield_image = "default_snowball.png", + paramtype = "light", + buildable_to = true, + floodable = true, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + }, + }, + groups = {crumbly = 3, falling_node = 1, puts_out_fire = 1, snowy = 1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.15}, + dug = {name = "default_snow_footstep", gain = 0.2}, + dig = {name = "default_snow_footstep", gain = 0.2} + }), + + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + end + end, +}) + +minetest.register_node("default:snowblock", { + description = "Snow Block", + tiles = {"default_snow.png"}, + groups = {crumbly = 3, puts_out_fire = 1, cools_lava = 1, snowy = 1}, + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.15}, + dug = {name = "default_snow_footstep", gain = 0.2}, + dig = {name = "default_snow_footstep", gain = 0.2} + }), + + on_construct = function(pos) + pos.y = pos.y - 1 + if minetest.get_node(pos).name == "default:dirt_with_grass" then + minetest.set_node(pos, {name = "default:dirt_with_snow"}) + end + end, +}) + +minetest.register_node("default:ice", { + description = "Ice", + tiles = {"default_ice.png"}, + is_ground_content = false, + paramtype = "light", + groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +-- +-- Trees +-- + +minetest.register_node("default:tree", { + description = "Tree", + tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:wood", { + description = "Wooden Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_wood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:sapling", { + description = "Sapling", + drawtype = "plantlike", + tiles = {"default_sapling.png"}, + inventory_image = "default_sapling.png", + wield_image = "default_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 6, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("default:leaves", { + description = "Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_leaves.png"}, + special_tiles = {"default_leaves_simple.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + { + -- player will get sapling with 1/20 chance + items = {'default:sapling'}, + rarity = 20, + }, + { + -- player will get leaves only if he get no saplings, + -- this is because max_items is 1 + items = {'default:leaves'}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:apple", { + description = "Apple", + drawtype = "plantlike", + tiles = {"default_apple.png"}, + inventory_image = "default_apple.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + is_ground_content = false, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16} + }, + groups = {fleshy = 3, dig_immediate = 3, flammable = 2, + leafdecay = 3, leafdecay_drop = 1}, + on_use = minetest.item_eat(2), + sounds = default.node_sound_leaves_defaults(), + + after_place_node = function(pos, placer, itemstack) + minetest.set_node(pos, {name = "default:apple", param2 = 1}) + end, +}) + + +minetest.register_node("default:jungletree", { + description = "Jungle Tree", + tiles = {"default_jungletree_top.png", "default_jungletree_top.png", + "default_jungletree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:junglewood", { + description = "Jungle Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_junglewood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:jungleleaves", { + description = "Jungle Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_jungleleaves.png"}, + special_tiles = {"default_jungleleaves_simple.png"}, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {'default:junglesapling'}, rarity = 20}, + {items = {'default:jungleleaves'}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:junglesapling", { + description = "Jungle Sapling", + drawtype = "plantlike", + tiles = {"default_junglesapling.png"}, + inventory_image = "default_junglesapling.png", + wield_image = "default_junglesapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:junglesapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 15, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + + +minetest.register_node("default:pine_tree", { + description = "Pine Tree", + tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", + "default_pine_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:pine_wood", { + description = "Pine Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_pine_wood.png"}, + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:pine_needles",{ + description = "Pine Needles", + drawtype = "allfaces_optional", + tiles = {"default_pine_needles.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:pine_sapling"}, rarity = 20}, + {items = {"default:pine_needles"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:pine_sapling", { + description = "Pine Sapling", + drawtype = "plantlike", + tiles = {"default_pine_sapling.png"}, + inventory_image = "default_pine_sapling.png", + wield_image = "default_pine_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 3, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:pine_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 12, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + + +minetest.register_node("default:acacia_tree", { + description = "Acacia Tree", + tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png", + "default_acacia_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:acacia_wood", { + description = "Acacia Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_acacia_wood.png"}, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:acacia_leaves", { + description = "Acacia Leaves", + drawtype = "allfaces_optional", + tiles = {"default_acacia_leaves.png"}, + special_tiles = {"default_acacia_leaves_simple.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:acacia_sapling"}, rarity = 20}, + {items = {"default:acacia_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:acacia_sapling", { + description = "Acacia Tree Sapling", + drawtype = "plantlike", + tiles = {"default_acacia_sapling.png"}, + inventory_image = "default_acacia_sapling.png", + wield_image = "default_acacia_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:acacia_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -4, y = 1, z = -4}, + {x = 4, y = 6, z = 4}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +minetest.register_node("default:aspen_tree", { + description = "Aspen Tree", + tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png", + "default_aspen_tree.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_place = minetest.rotate_node +}) + +minetest.register_node("default:aspen_wood", { + description = "Aspen Wood Planks", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_aspen_wood.png"}, + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:aspen_leaves", { + description = "Aspen Leaves", + drawtype = "allfaces_optional", + tiles = {"default_aspen_leaves.png"}, + waving = 1, + paramtype = "light", + is_ground_content = false, + groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:aspen_sapling"}, rarity = 20}, + {items = {"default:aspen_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:aspen_sapling", { + description = "Aspen Tree Sapling", + drawtype = "plantlike", + tiles = {"default_aspen_sapling.png"}, + inventory_image = "default_aspen_sapling.png", + wield_image = "default_aspen_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 3, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:aspen_sapling", + -- minp, maxp to be checked, relative to sapling pos + -- minp_relative.y = 1 because sapling pos has been checked + {x = -2, y = 1, z = -2}, + {x = 2, y = 12, z = 2}, + -- maximum interval of interior volume check + 4) + + return itemstack + end, +}) + +-- +-- Ores +-- + +minetest.register_node("default:stone_with_coal", { + description = "Coal Ore", + tiles = {"default_stone.png^default_mineral_coal.png"}, + groups = {cracky = 3}, + drop = 'default:coal_lump', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coalblock", { + description = "Coal Block", + tiles = {"default_coal_block.png"}, + is_ground_content = false, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:stone_with_iron", { + description = "Iron Ore", + tiles = {"default_stone.png^default_mineral_iron.png"}, + groups = {cracky = 2}, + drop = 'default:iron_lump', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:steelblock", { + description = "Steel Block", + tiles = {"default_steel_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_copper", { + description = "Copper Ore", + tiles = {"default_stone.png^default_mineral_copper.png"}, + groups = {cracky = 2}, + drop = 'default:copper_lump', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:copperblock", { + description = "Copper Block", + tiles = {"default_copper_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_tin", { + description = "Tin Ore", + tiles = {"default_stone.png^default_mineral_tin.png"}, + groups = {cracky = 2}, + drop = "default:tin_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:tinblock", { + description = "Tin Block", + tiles = {"default_tin_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:bronzeblock", { + description = "Bronze Block", + tiles = {"default_bronze_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_mese", { + description = "Mese Ore", + tiles = {"default_stone.png^default_mineral_mese.png"}, + groups = {cracky = 1}, + drop = "default:mese_crystal", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:mese", { + description = "Mese Block", + tiles = {"default_mese_block.png"}, + paramtype = "light", + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_stone_defaults(), + light_source = 3, +}) + + +minetest.register_node("default:stone_with_gold", { + description = "Gold Ore", + tiles = {"default_stone.png^default_mineral_gold.png"}, + groups = {cracky = 2}, + drop = "default:gold_lump", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:goldblock", { + description = "Gold Block", + tiles = {"default_gold_block.png"}, + is_ground_content = false, + groups = {cracky = 1}, + sounds = default.node_sound_metal_defaults(), +}) + + +minetest.register_node("default:stone_with_diamond", { + description = "Diamond Ore", + tiles = {"default_stone.png^default_mineral_diamond.png"}, + groups = {cracky = 1}, + drop = "default:diamond", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:diamondblock", { + description = "Diamond Block", + tiles = {"default_diamond_block.png"}, + is_ground_content = false, + groups = {cracky = 1, level = 3}, + sounds = default.node_sound_stone_defaults(), +}) + +-- +-- Plantlife (non-cubic) +-- + +minetest.register_node("default:cactus", { + description = "Cactus", + tiles = {"default_cactus_top.png", "default_cactus_top.png", + "default_cactus_side.png"}, + paramtype2 = "facedir", + groups = {choppy = 3}, + 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, + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16}, + }, + 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, +}) + +minetest.register_node("default:dry_shrub", { + description = "Dry Shrub", + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_shrub.png"}, + inventory_image = "default_dry_shrub.png", + wield_image = "default_dry_shrub.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, attached_node = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 4 / 16, 5 / 16}, + }, +}) + +minetest.register_node("default:junglegrass", { + description = "Jungle Grass", + drawtype = "plantlike", + waving = 1, + visual_scale = 1.69, + tiles = {"default_junglegrass.png"}, + inventory_image = "default_junglegrass.png", + wield_image = "default_junglegrass.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 1.19, 7 / 16}, + }, +}) + + +minetest.register_node("default:grass_1", { + description = "Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_grass_1.png"}, + -- Use texture of a taller grass stage in inventory + inventory_image = "default_grass_3.png", + wield_image = "default_grass_3.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16}, + }, + + on_place = function(itemstack, placer, pointed_thing) + -- place a random grass node + local stack = ItemStack("default:grass_" .. math.random(1,5)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:grass_1 " .. + itemstack:get_count() - (1 - ret:get_count())) + end, +}) + +for i = 2, 5 do + minetest.register_node("default:grass_" .. i, { + description = "Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_grass_" .. i .. ".png"}, + inventory_image = "default_grass_" .. i .. ".png", + wield_image = "default_grass_" .. i .. ".png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + drop = "default:grass_1", + groups = {snappy = 3, flora = 1, attached_node = 1, + not_in_creative_inventory = 1, grass = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, + }) +end + + +minetest.register_node("default:dry_grass_1", { + description = "Dry Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_grass_1.png"}, + inventory_image = "default_dry_grass_3.png", + wield_image = "default_dry_grass_3.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, + attached_node = 1, dry_grass = 1}, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16}, + }, + + on_place = function(itemstack, placer, pointed_thing) + -- place a random dry grass node + local stack = ItemStack("default:dry_grass_" .. math.random(1, 5)) + local ret = minetest.item_place(stack, placer, pointed_thing) + return ItemStack("default:dry_grass_1 " .. + itemstack:get_count() - (1 - ret:get_count())) + end, +}) + +for i = 2, 5 do + minetest.register_node("default:dry_grass_" .. i, { + description = "Dry Grass", + drawtype = "plantlike", + waving = 1, + tiles = {"default_dry_grass_" .. i .. ".png"}, + inventory_image = "default_dry_grass_" .. i .. ".png", + wield_image = "default_dry_grass_" .. i .. ".png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1, + not_in_creative_inventory=1, dry_grass = 1}, + drop = "default:dry_grass_1", + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -1 / 16, 6 / 16}, + }, + }) +end + + +minetest.register_node("default:bush_stem", { + description = "Bush Stem", + drawtype = "plantlike", + visual_scale = 1.41, + tiles = {"default_bush_stem.png"}, + inventory_image = "default_bush_stem.png", + wield_image = "default_bush_stem.png", + paramtype = "light", + sunlight_propagates = true, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.5, 7 / 16}, + }, +}) + +minetest.register_node("default:bush_leaves", { + description = "Bush Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_leaves_simple.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:bush_sapling"}, rarity = 5}, + {items = {"default:bush_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:bush_sapling", { + description = "Bush Sapling", + drawtype = "plantlike", + tiles = {"default_bush_sapling.png"}, + inventory_image = "default_bush_sapling.png", + wield_image = "default_bush_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:bush_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -1, y = 0, z = -1}, + {x = 1, y = 1, z = 1}, + -- maximum interval of interior volume check + 2) + + return itemstack + end, +}) + +minetest.register_node("default:acacia_bush_stem", { + description = "Acacia Bush Stem", + drawtype = "plantlike", + visual_scale = 1.41, + tiles = {"default_acacia_bush_stem.png"}, + inventory_image = "default_acacia_bush_stem.png", + wield_image = "default_acacia_bush_stem.png", + paramtype = "light", + sunlight_propagates = true, + groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.5, 7 / 16}, + }, +}) + +minetest.register_node("default:acacia_bush_leaves", { + description = "Acacia Bush Leaves", + drawtype = "allfaces_optional", + waving = 1, + tiles = {"default_acacia_leaves_simple.png"}, + paramtype = "light", + groups = {snappy = 3, flammable = 2, leaves = 1}, + drop = { + max_items = 1, + items = { + {items = {"default:acacia_bush_sapling"}, rarity = 5}, + {items = {"default:acacia_bush_leaves"}} + } + }, + sounds = default.node_sound_leaves_defaults(), + + after_place_node = default.after_place_leaves, +}) + +minetest.register_node("default:acacia_bush_sapling", { + description = "Acacia Bush Sapling", + drawtype = "plantlike", + tiles = {"default_acacia_bush_sapling.png"}, + inventory_image = "default_acacia_bush_sapling.png", + wield_image = "default_acacia_bush_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + on_timer = default.grow_sapling, + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 2 / 16, 3 / 16} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, + sounds = default.node_sound_leaves_defaults(), + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end, + + on_place = function(itemstack, placer, pointed_thing) + itemstack = default.sapling_on_place(itemstack, placer, pointed_thing, + "default:acacia_bush_sapling", + -- minp, maxp to be checked, relative to sapling pos + {x = -1, y = 0, z = -1}, + {x = 1, y = 1, z = 1}, + -- maximum interval of interior volume check + 2) + + return itemstack + end, +}) + + +-- +-- Corals +-- + +minetest.register_node("default:coral_brown", { + description = "Brown Coral", + tiles = {"default_coral_brown.png"}, + groups = {cracky = 3}, + drop = "default:coral_skeleton", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coral_orange", { + description = "Orange Coral", + tiles = {"default_coral_orange.png"}, + groups = {cracky = 3}, + drop = "default:coral_skeleton", + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("default:coral_skeleton", { + description = "Coral Skeleton", + tiles = {"default_coral_skeleton.png"}, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +-- +-- Liquids +-- + +minetest.register_node("default:water_source", { + description = "Water Source", + 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 = 160, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:water_flowing", + liquid_alternative_source = "default:water_source", + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 30, g = 60, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("default:water_flowing", { + description = "Flowing Water", + drawtype = "flowingliquid", + tiles = {"default_water.png"}, + special_tiles = { + { + name = "default_water_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + { + name = "default_water_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + }, + alpha = 160, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:water_flowing", + liquid_alternative_source = "default:water_source", + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 30, g = 60, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, + not_in_creative_inventory = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + + +minetest.register_node("default:river_water_source", { + description = "River Water Source", + drawtype = "liquid", + tiles = { + { + name = "default_river_water_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + special_tiles = { + { + name = "default_river_water_source_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + backface_culling = false, + }, + }, + alpha = 160, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:river_water_flowing", + liquid_alternative_source = "default:river_water_source", + liquid_viscosity = 1, + liquid_renewable = false, + liquid_range = 2, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("default:river_water_flowing", { + description = "Flowing River Water", + drawtype = "flowingliquid", + tiles = {"default_river_water.png"}, + special_tiles = { + { + name = "default_river_water_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + { + name = "default_river_water_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + }, + alpha = 160, + paramtype = "light", + paramtype2 = "flowingliquid", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:river_water_flowing", + liquid_alternative_source = "default:river_water_source", + liquid_viscosity = 1, + liquid_renewable = false, + liquid_range = 2, + post_effect_color = {a = 103, r = 30, g = 76, b = 90}, + groups = {water = 3, liquid = 3, puts_out_fire = 1, + not_in_creative_inventory = 1, cools_lava = 1}, + sounds = default.node_sound_water_defaults(), +}) + + +minetest.register_node("default:lava_source", { + description = "Lava Source", + 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 = default.LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "source", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = 7, + liquid_renewable = false, + damage_per_second = 4 * 2, + post_effect_color = {a = 191, r = 255, g = 64, b = 0}, + groups = {lava = 3, liquid = 2, igniter = 1}, +}) + +minetest.register_node("default:lava_flowing", { + description = "Flowing Lava", + drawtype = "flowingliquid", + tiles = {"default_lava.png"}, + special_tiles = { + { + name = "default_lava_flowing_animated.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.3, + }, + }, + { + name = "default_lava_flowing_animated.png", + backface_culling = true, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.3, + }, + }, + }, + paramtype = "light", + paramtype2 = "flowingliquid", + light_source = default.LIGHT_MAX - 1, + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = 1, + liquidtype = "flowing", + liquid_alternative_flowing = "default:lava_flowing", + liquid_alternative_source = "default:lava_source", + liquid_viscosity = 7, + liquid_renewable = false, + damage_per_second = 4 * 2, + post_effect_color = {a = 191, r = 255, g = 64, b = 0}, + groups = {lava = 3, liquid = 2, igniter = 1, + not_in_creative_inventory = 1}, +}) + +-- +-- Tools / "Advanced" crafting / Non-"natural" +-- + +local function get_chest_formspec(pos) + local spos = pos.x .. "," .. pos.y .. "," .. pos.z + local formspec = + "size[8,9]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "list[nodemeta:" .. spos .. ";main;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[nodemeta:" .. spos .. ";main]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +local function chest_lid_obstructed(pos) + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local def = minetest.registered_nodes[minetest.get_node(above).name] + -- allow ladders, signs, wallmounted things and torches to not obstruct + if def and + (def.drawtype == "airlike" or + def.drawtype == "signlike" or + def.drawtype == "torchlike" or + (def.drawtype == "nodebox" and def.paramtype2 == "wallmounted")) then + return false + end + return true +end + +local open_chests = {} + +local function chest_lid_close(pn) + local pos = open_chests[pn].pos + local sound = open_chests[pn].sound + local swap = open_chests[pn].swap + + open_chests[pn] = nil + for k, v in pairs(open_chests) do + if v.pos.x == pos.x and v.pos.y == pos.y and v.pos.z == pos.z then + return true + end + end + + local node = minetest.get_node(pos) + minetest.after(0.2, minetest.swap_node, pos, { name = "default:" .. swap, + param2 = node.param2 }) + minetest.sound_play(sound, {gain = 0.3, pos = pos, max_hear_distance = 10}) +end + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "default:chest" then + return + end + if not player or not fields.quit then + return + end + local pn = player:get_player_name() + + if not open_chests[pn] then + return + end + + chest_lid_close(pn) + return true +end) + +minetest.register_on_leaveplayer(function(player) + local pn = player:get_player_name() + if open_chests[pn] then + chest_lid_close(pn) + end +end) + +function default.register_chest(name, d) + local def = table.copy(d) + def.drawtype = "mesh" + def.visual = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.legacy_facedir_simple = true + def.is_ground_content = false + + if def.protected then + def.on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Locked Chest") + meta:set_string("owner", "") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end + 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", "Locked Chest (owned by " .. + meta:get_string("owner") .. ")") + end + def.can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") and + default.can_interact_with_node(player, pos) + end + def.allow_metadata_inventory_move = function(pos, from_list, from_index, + to_list, to_index, count, player) + if not default.can_interact_with_node(player, pos) then + return 0 + end + return count + end + def.allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if not default.can_interact_with_node(player, pos) then + return 0 + end + return stack:get_count() + end + def.allow_metadata_inventory_take = function(pos, listname, index, stack, player) + if not default.can_interact_with_node(player, pos) then + return 0 + end + return stack:get_count() + end + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + if not default.can_interact_with_node(clicker, pos) then + return itemstack + end + + minetest.sound_play(def.sound_open, {gain = 0.3, + pos = pos, max_hear_distance = 10}) + if not chest_lid_obstructed(pos) then + minetest.swap_node(pos, + { name = "default:" .. name .. "_open", + param2 = node.param2 }) + end + minetest.after(0.2, minetest.show_formspec, + clicker:get_player_name(), + "default:chest", get_chest_formspec(pos)) + open_chests[clicker:get_player_name()] = { pos = pos, + sound = def.sound_close, swap = name } + end + def.on_blast = function() end + def.on_key_use = function(pos, player) + local secret = minetest.get_meta(pos):get_string("key_lock_secret") + local itemstack = player:get_wielded_item() + local key_meta = itemstack:get_meta() + + if key_meta:get_string("secret") == "" then + key_meta:set_string("secret", minetest.parse_json(itemstack:get_metadata()).secret) + itemstack:set_metadata("") + end + + if secret ~= key_meta:get_string("secret") then + return + end + + minetest.show_formspec( + player:get_player_name(), + "default:chest_locked", + get_chest_formspec(pos) + ) + end + def.on_skeleton_key_use = function(pos, player, newsecret) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pn = player:get_player_name() + + -- verify placer is owner of lockable chest + if owner ~= pn then + minetest.record_protection_violation(pos, pn) + minetest.chat_send_player(pn, "You do not own this chest.") + return nil + end + + local secret = meta:get_string("key_lock_secret") + if secret == "" then + secret = newsecret + meta:set_string("key_lock_secret", secret) + end + + return secret, "a locked chest", owner + end + else + def.on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", "Chest") + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + end + def.can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end + def.on_rightclick = function(pos, node, clicker) + minetest.sound_play(def.sound_open, {gain = 0.3, pos = pos, + max_hear_distance = 10}) + if not chest_lid_obstructed(pos) then + minetest.swap_node(pos, { + name = "default:" .. name .. "_open", + param2 = node.param2 }) + end + minetest.after(0.2, minetest.show_formspec, + clicker:get_player_name(), + "default:chest", get_chest_formspec(pos)) + open_chests[clicker:get_player_name()] = { pos = pos, + sound = def.sound_close, swap = name } + end + def.on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "main", drops) + drops[#drops+1] = "default:" .. name + minetest.remove_node(pos) + return drops + end + end + + def.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 + def.on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " moves " .. stack:get_name() .. + " to chest at " .. minetest.pos_to_string(pos)) + end + def.on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes " .. stack:get_name() .. + " from chest at " .. minetest.pos_to_string(pos)) + end + + local def_opened = table.copy(def) + local def_closed = table.copy(def) + + def_opened.mesh = "chest_open.obj" + for i = 1, #def_opened.tiles do + if type(def_opened.tiles[i]) == "string" then + def_opened.tiles[i] = {name = def_opened.tiles[i], backface_culling = true} + elseif def_opened.tiles[i].backface_culling == nil then + def_opened.tiles[i].backface_culling = true + end + end + def_opened.drop = "default:" .. name + def_opened.groups.not_in_creative_inventory = 1 + def_opened.selection_box = { + type = "fixed", + fixed = { -1/2, -1/2, -1/2, 1/2, 3/16, 1/2 }, + } + def_opened.can_dig = function() + return false + end + def_opened.on_blast = function() end + + def_closed.mesh = nil + def_closed.drawtype = nil + def_closed.tiles[6] = def.tiles[5] -- swap textures around for "normal" + def_closed.tiles[5] = def.tiles[3] -- drawtype to make them match the mesh + def_closed.tiles[3] = def.tiles[3].."^[transformFX" + + minetest.register_node("default:" .. name, def_closed) + minetest.register_node("default:" .. name .. "_open", def_opened) + + -- convert old chests to this new variant + minetest.register_lbm({ + label = "update chests to opening chests", + name = "default:upgrade_" .. name .. "_v2", + nodenames = {"default:" .. name}, + action = function(pos, node) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", nil) + local inv = meta:get_inventory() + local list = inv:get_list("default:chest") + if list then + inv:set_size("main", 8*4) + inv:set_list("main", list) + inv:set_list("default:chest", nil) + end + end + }) +end + + +default.register_chest("chest", { + description = "Chest", + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_inside.png" + }, + sounds = default.node_sound_wood_defaults(), + sound_open = "default_chest_open", + sound_close = "default_chest_close", + groups = {choppy = 2, oddly_breakable_by_hand = 2}, +}) + +default.register_chest("chest_locked", { + description = "Locked Chest", + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_lock.png", + "default_chest_inside.png" + }, + sounds = default.node_sound_wood_defaults(), + sound_open = "default_chest_open", + sound_close = "default_chest_close", + groups = {choppy = 2, oddly_breakable_by_hand = 2}, + protected = true, +}) + +local bookshelf_formspec = + "size[8,7;]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "list[context;books;0,0.3;8,2;]" .. + "list[current_player;main;0,2.85;8,1;]" .. + "list[current_player;main;0,4.08;8,3;8]" .. + "listring[context;books]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,2.85) + +local function get_bookshelf_formspec(inv) + local formspec = bookshelf_formspec + local invlist = inv and inv:get_list("books") + -- Inventory slots overlay + local bx, by = 0, 0.3 + for i = 1, 16 do + if i == 9 then + bx = 0 + by = by + 1 + end + if not invlist or invlist[i]:is_empty() then + formspec = formspec .. + "image[" .. bx .. "," .. by .. ";1,1;default_bookshelf_slot.png]" + end + bx = bx + 1 + end + return formspec +end + +minetest.register_node("default:bookshelf", { + description = "Bookshelf", + tiles = {"default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "default_bookshelf.png", "default_bookshelf.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_bookshelf_formspec(nil)) + local inv = meta:get_inventory() + inv:set_size("books", 8 * 2) + end, + can_dig = function(pos,player) + local inv = minetest.get_meta(pos):get_inventory() + return inv:is_empty("books") + end, + allow_metadata_inventory_put = function(pos, listname, index, stack) + if minetest.get_item_group(stack:get_name(), "book") ~= 0 then + return stack:get_count() + end + return 0 + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in bookshelf at " .. minetest.pos_to_string(pos)) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_bookshelf_formspec(meta:get_inventory())) + 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)) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_bookshelf_formspec(meta:get_inventory())) + 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)) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_bookshelf_formspec(meta:get_inventory())) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "books", drops) + drops[#drops+1] = "default:bookshelf" + minetest.remove_node(pos) + return drops + end, +}) + +local function register_sign(material, desc, def) + minetest.register_node("default:sign_wall_" .. material, { + description = desc .. " Sign", + drawtype = "nodebox", + tiles = {"default_sign_wall_" .. material .. ".png"}, + inventory_image = "default_sign_" .. material .. ".png", + wield_image = "default_sign_" .. material .. ".png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + node_box = { + type = "wallmounted", + wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125}, + wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125}, + wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375}, + }, + groups = def.groups, + legacy_wallmounted = true, + sounds = def.sounds, + + on_construct = function(pos) + --local n = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", "field[text;;${text}]") + end, + on_receive_fields = function(pos, formname, fields, sender) + --print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields)) + local player_name = sender:get_player_name() + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return + end + local meta = minetest.get_meta(pos) + if not fields.text then return end + minetest.log("action", (player_name or "") .. " wrote \"" .. + fields.text .. "\" to sign at " .. minetest.pos_to_string(pos)) + meta:set_string("text", fields.text) + meta:set_string("infotext", '"' .. fields.text .. '"') + end, + }) +end + +register_sign("wood", "Wooden", { + sounds = default.node_sound_wood_defaults(), + groups = {choppy = 2, attached_node = 1, flammable = 2, oddly_breakable_by_hand = 3} +}) + +register_sign("steel", "Steel", { + sounds = default.node_sound_metal_defaults(), + groups = {cracky = 2, attached_node = 1} +}) + +minetest.register_node("default:ladder_wood", { + description = "Wooden Ladder", + drawtype = "signlike", + tiles = {"default_ladder_wood.png"}, + inventory_image = "default_ladder_wood.png", + wield_image = "default_ladder_wood.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2}, + legacy_wallmounted = true, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:ladder_steel", { + description = "Steel Ladder", + drawtype = "signlike", + tiles = {"default_ladder_steel.png"}, + inventory_image = "default_ladder_steel.png", + wield_image = "default_ladder_steel.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + climbable = true, + is_ground_content = false, + selection_box = { + type = "wallmounted", + --wall_top = = + --wall_bottom = = + --wall_side = = + }, + groups = {cracky = 2}, + sounds = default.node_sound_metal_defaults(), +}) + +default.register_fence("default:fence_wood", { + description = "Wooden Fence", + texture = "default_fence_wood.png", + inventory_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_acacia_wood", { + description = "Acacia Fence", + texture = "default_fence_acacia_wood.png", + inventory_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:acacia_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_junglewood", { + description = "Jungle Wood Fence", + texture = "default_fence_junglewood.png", + inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:junglewood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_pine_wood", { + description = "Pine Fence", + texture = "default_fence_pine_wood.png", + inventory_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:pine_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults() +}) + +default.register_fence("default:fence_aspen_wood", { + description = "Aspen Fence", + texture = "default_fence_aspen_wood.png", + inventory_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + wield_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126", + material = "default:aspen_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_node("default:glass", { + description = "Glass", + drawtype = "glasslike_framed_optional", + tiles = {"default_glass.png", "default_glass_detail.png"}, + paramtype = "light", + paramtype2 = "glasslikeliquidlevel", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("default:obsidian_glass", { + description = "Obsidian Glass", + drawtype = "glasslike_framed_optional", + tiles = {"default_obsidian_glass.png", "default_obsidian_glass_detail.png"}, + paramtype = "light", + paramtype2 = "glasslikeliquidlevel", + is_ground_content = false, + sunlight_propagates = true, + sounds = default.node_sound_glass_defaults(), + groups = {cracky = 3}, +}) + + +minetest.register_node("default:brick", { + description = "Brick Block", + paramtype2 = "facedir", + place_param2 = 0, + tiles = {"default_brick.png"}, + is_ground_content = false, + groups = {cracky = 3}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("default:meselamp", { + description = "Mese Lamp", + drawtype = "glasslike", + tiles = {"default_meselamp.png"}, + paramtype = "light", + sunlight_propagates = true, + is_ground_content = false, + groups = {cracky = 3, oddly_breakable_by_hand = 3}, + sounds = default.node_sound_glass_defaults(), + light_source = default.LIGHT_MAX, +}) + +minetest.register_node("default:mese_post_light", { + description = "Mese Post Light", + tiles = {"default_mese_post_light_top.png", "default_mese_post_light_top.png", + "default_mese_post_light_side_dark.png", "default_mese_post_light_side_dark.png", + "default_mese_post_light_side.png", "default_mese_post_light_side.png"}, + wield_image = "default_mese_post_light_side.png", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + {-2 / 16, -8 / 16, -2 / 16, 2 / 16, 8 / 16, 2 / 16}, + }, + }, + paramtype = "light", + light_source = default.LIGHT_MAX, + sunlight_propagates = true, + is_ground_content = false, + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + sounds = default.node_sound_wood_defaults(), +}) + +-- +-- Misc +-- + +minetest.register_node("default:cloud", { + description = "Cloud", + tiles = {"default_cloud.png"}, + is_ground_content = false, + sounds = default.node_sound_defaults(), + groups = {not_in_creative_inventory = 1}, +}) + +-- +-- register trees for leafdecay +-- + +if minetest.get_mapgen_setting("mg_name") == "v6" then + default.register_leafdecay({ + trunks = {"default:tree"}, + leaves = {"default:apple", "default:leaves"}, + radius = 2, + }) + + default.register_leafdecay({ + trunks = {"default:jungletree"}, + leaves = {"default:jungleleaves"}, + radius = 3, + }) + + default.register_leafdecay({ + trunks = {"default:pine_tree"}, + leaves = {"default:pine_needles"}, + radius = 3, + }) +else + default.register_leafdecay({ + trunks = {"default:tree"}, + leaves = {"default:apple", "default:leaves"}, + radius = 3, + }) + + default.register_leafdecay({ + trunks = {"default:jungletree"}, + leaves = {"default:jungleleaves"}, + radius = 2, + }) + + default.register_leafdecay({ + trunks = {"default:pine_tree"}, + leaves = {"default:pine_needles"}, + radius = 2, + }) +end + +default.register_leafdecay({ + trunks = {"default:acacia_tree"}, + leaves = {"default:acacia_leaves"}, + radius = 2, +}) + +default.register_leafdecay({ + trunks = {"default:aspen_tree"}, + leaves = {"default:aspen_leaves"}, + radius = 3, +}) + +default.register_leafdecay({ + trunks = {"default:bush_stem"}, + leaves = {"default:bush_leaves"}, + radius = 1, +}) + +default.register_leafdecay({ + trunks = {"default:acacia_bush_stem"}, + leaves = {"default:acacia_bush_leaves"}, + radius = 1, +}) diff --git a/mods/default/player.lua b/mods/default/player.lua new file mode 100644 index 0000000..0a2078d --- /dev/null +++ b/mods/default/player.lua @@ -0,0 +1,154 @@ +-- Minetest 0.4 mod: player +-- See README.txt for licensing and other information. + +-- 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.b3d", { + animation_speed = 30, + textures = {"character.png", }, + animations = { + -- Standard animations. + stand = { x= 0, y= 79, }, + lay = { x=162, y=166, }, + walk = { x=168, y=187, }, + mine = { x=189, y=198, }, + walk_mine = { x=200, y=219, }, + 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.b3d") + player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30) + + player:hud_set_hotbar_image("gui_hotbar.png") + player:hud_set_hotbar_selected_image("gui_hotbar_selected.png") +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 +local player_attached = default.player_attached + +-- 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 player_attached[name] then + local controls = player:get_player_control() + local walking = false + local animation_speed_mod = model.animation_speed or 30 + + -- Determine if the player is walking + if controls.up or controls.down or controls.left or controls.right then + walking = true + end + + -- Determine if the player is sneaking, and reduce animation speed if so + if controls.sneak then + animation_speed_mod = animation_speed_mod / 2 + end + + -- Apply animations based on what the player is doing + if player:get_hp() == 0 then + player_set_animation(player, "lay") + elseif walking then + if player_sneak[name] ~= controls.sneak then + player_anim[name] = nil + player_sneak[name] = controls.sneak + end + if controls.LMB then + player_set_animation(player, "walk_mine", animation_speed_mod) + else + player_set_animation(player, "walk", animation_speed_mod) + end + elseif controls.LMB then + player_set_animation(player, "mine") + else + player_set_animation(player, "stand", animation_speed_mod) + end + end + end +end) diff --git a/mods/default/schematics/acacia_bush.mts b/mods/default/schematics/acacia_bush.mts new file mode 100644 index 0000000..df95586 Binary files /dev/null and b/mods/default/schematics/acacia_bush.mts differ diff --git a/mods/default/schematics/acacia_log.mts b/mods/default/schematics/acacia_log.mts new file mode 100644 index 0000000..037bca8 Binary files /dev/null and b/mods/default/schematics/acacia_log.mts differ diff --git a/mods/default/schematics/acacia_tree.mts b/mods/default/schematics/acacia_tree.mts new file mode 100644 index 0000000..4732ade Binary files /dev/null and b/mods/default/schematics/acacia_tree.mts differ diff --git a/mods/default/schematics/acacia_tree_from_sapling.mts b/mods/default/schematics/acacia_tree_from_sapling.mts new file mode 100644 index 0000000..23e8e4b Binary files /dev/null and b/mods/default/schematics/acacia_tree_from_sapling.mts differ diff --git a/mods/default/schematics/apple_log.mts b/mods/default/schematics/apple_log.mts new file mode 100644 index 0000000..e7ee8f2 Binary files /dev/null and b/mods/default/schematics/apple_log.mts differ diff --git a/mods/default/schematics/apple_tree.mts b/mods/default/schematics/apple_tree.mts new file mode 100644 index 0000000..2bd57c1 Binary files /dev/null and b/mods/default/schematics/apple_tree.mts differ diff --git a/mods/default/schematics/apple_tree_from_sapling.mts b/mods/default/schematics/apple_tree_from_sapling.mts new file mode 100644 index 0000000..d258ab1 Binary files /dev/null and b/mods/default/schematics/apple_tree_from_sapling.mts differ diff --git a/mods/default/schematics/aspen_log.mts b/mods/default/schematics/aspen_log.mts new file mode 100644 index 0000000..180e6fd Binary files /dev/null and b/mods/default/schematics/aspen_log.mts differ diff --git a/mods/default/schematics/aspen_tree.mts b/mods/default/schematics/aspen_tree.mts new file mode 100644 index 0000000..429a831 Binary files /dev/null and b/mods/default/schematics/aspen_tree.mts differ diff --git a/mods/default/schematics/aspen_tree_from_sapling.mts b/mods/default/schematics/aspen_tree_from_sapling.mts new file mode 100644 index 0000000..b7ab3ee Binary files /dev/null and b/mods/default/schematics/aspen_tree_from_sapling.mts differ diff --git a/mods/default/schematics/bush.mts b/mods/default/schematics/bush.mts new file mode 100644 index 0000000..d08cf5f Binary files /dev/null and b/mods/default/schematics/bush.mts differ diff --git a/mods/default/schematics/corals.mts b/mods/default/schematics/corals.mts new file mode 100644 index 0000000..e1bd7de Binary files /dev/null and b/mods/default/schematics/corals.mts differ diff --git a/mods/default/schematics/jungle_log.mts b/mods/default/schematics/jungle_log.mts new file mode 100644 index 0000000..54fa16d Binary files /dev/null and b/mods/default/schematics/jungle_log.mts differ diff --git a/mods/default/schematics/jungle_tree.mts b/mods/default/schematics/jungle_tree.mts new file mode 100644 index 0000000..01a1b11 Binary files /dev/null and b/mods/default/schematics/jungle_tree.mts differ diff --git a/mods/default/schematics/jungle_tree_from_sapling.mts b/mods/default/schematics/jungle_tree_from_sapling.mts new file mode 100644 index 0000000..f93f014 Binary files /dev/null and b/mods/default/schematics/jungle_tree_from_sapling.mts differ diff --git a/mods/default/schematics/large_cactus.mts b/mods/default/schematics/large_cactus.mts new file mode 100644 index 0000000..b71077b Binary files /dev/null and b/mods/default/schematics/large_cactus.mts differ diff --git a/mods/default/schematics/papyrus.mts b/mods/default/schematics/papyrus.mts new file mode 100644 index 0000000..1333a7c Binary files /dev/null and b/mods/default/schematics/papyrus.mts differ diff --git a/mods/default/schematics/pine_log.mts b/mods/default/schematics/pine_log.mts new file mode 100644 index 0000000..744c38b Binary files /dev/null and b/mods/default/schematics/pine_log.mts differ diff --git a/mods/default/schematics/pine_tree.mts b/mods/default/schematics/pine_tree.mts new file mode 100644 index 0000000..6f27d83 Binary files /dev/null and b/mods/default/schematics/pine_tree.mts differ diff --git a/mods/default/schematics/pine_tree_from_sapling.mts b/mods/default/schematics/pine_tree_from_sapling.mts new file mode 100644 index 0000000..e42a996 Binary files /dev/null and b/mods/default/schematics/pine_tree_from_sapling.mts differ diff --git a/mods/default/schematics/snowy_pine_tree_from_sapling.mts b/mods/default/schematics/snowy_pine_tree_from_sapling.mts new file mode 100644 index 0000000..0692049 Binary files /dev/null and b/mods/default/schematics/snowy_pine_tree_from_sapling.mts differ diff --git a/mods/default/sounds/default_break_glass.1.ogg b/mods/default/sounds/default_break_glass.1.ogg new file mode 100644 index 0000000..b1ccc5f Binary files /dev/null and b/mods/default/sounds/default_break_glass.1.ogg differ diff --git a/mods/default/sounds/default_break_glass.2.ogg b/mods/default/sounds/default_break_glass.2.ogg new file mode 100644 index 0000000..b6cc9e8 Binary files /dev/null and b/mods/default/sounds/default_break_glass.2.ogg differ diff --git a/mods/default/sounds/default_break_glass.3.ogg b/mods/default/sounds/default_break_glass.3.ogg new file mode 100644 index 0000000..ae6a6bf Binary files /dev/null and b/mods/default/sounds/default_break_glass.3.ogg differ diff --git a/mods/default/sounds/default_chest_close.ogg b/mods/default/sounds/default_chest_close.ogg new file mode 100644 index 0000000..53ff23d Binary files /dev/null and b/mods/default/sounds/default_chest_close.ogg differ diff --git a/mods/default/sounds/default_chest_open.ogg b/mods/default/sounds/default_chest_open.ogg new file mode 100644 index 0000000..c73c072 Binary files /dev/null and b/mods/default/sounds/default_chest_open.ogg differ diff --git a/mods/default/sounds/default_cool_lava.1.ogg b/mods/default/sounds/default_cool_lava.1.ogg new file mode 100644 index 0000000..42506dd Binary files /dev/null and b/mods/default/sounds/default_cool_lava.1.ogg differ diff --git a/mods/default/sounds/default_cool_lava.2.ogg b/mods/default/sounds/default_cool_lava.2.ogg new file mode 100644 index 0000000..2747ab8 Binary files /dev/null and b/mods/default/sounds/default_cool_lava.2.ogg differ diff --git a/mods/default/sounds/default_cool_lava.3.ogg b/mods/default/sounds/default_cool_lava.3.ogg new file mode 100644 index 0000000..8baeac3 Binary files /dev/null and b/mods/default/sounds/default_cool_lava.3.ogg differ diff --git a/mods/default/sounds/default_dig_choppy.ogg b/mods/default/sounds/default_dig_choppy.ogg new file mode 100644 index 0000000..e2ecd84 Binary files /dev/null and b/mods/default/sounds/default_dig_choppy.ogg differ diff --git a/mods/default/sounds/default_dig_cracky.ogg b/mods/default/sounds/default_dig_cracky.ogg new file mode 100644 index 0000000..da11679 Binary files /dev/null and b/mods/default/sounds/default_dig_cracky.ogg differ diff --git a/mods/default/sounds/default_dig_crumbly.ogg b/mods/default/sounds/default_dig_crumbly.ogg new file mode 100644 index 0000000..a0b2a1f Binary files /dev/null and b/mods/default/sounds/default_dig_crumbly.ogg differ diff --git a/mods/default/sounds/default_dig_dig_immediate.ogg b/mods/default/sounds/default_dig_dig_immediate.ogg new file mode 100644 index 0000000..e65d766 Binary files /dev/null and b/mods/default/sounds/default_dig_dig_immediate.ogg differ diff --git a/mods/default/sounds/default_dig_metal.ogg b/mods/default/sounds/default_dig_metal.ogg new file mode 100644 index 0000000..0b58509 Binary files /dev/null and b/mods/default/sounds/default_dig_metal.ogg differ diff --git a/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg b/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg new file mode 100644 index 0000000..ef4d7b1 Binary files /dev/null and b/mods/default/sounds/default_dig_oddly_breakable_by_hand.ogg differ diff --git a/mods/default/sounds/default_dig_snappy.ogg b/mods/default/sounds/default_dig_snappy.ogg new file mode 100644 index 0000000..3686fcd Binary files /dev/null and b/mods/default/sounds/default_dig_snappy.ogg differ diff --git a/mods/default/sounds/default_dirt_footstep.1.ogg b/mods/default/sounds/default_dirt_footstep.1.ogg new file mode 100644 index 0000000..84a197d Binary files /dev/null and b/mods/default/sounds/default_dirt_footstep.1.ogg differ diff --git a/mods/default/sounds/default_dirt_footstep.2.ogg b/mods/default/sounds/default_dirt_footstep.2.ogg new file mode 100644 index 0000000..2e23b8a Binary files /dev/null and b/mods/default/sounds/default_dirt_footstep.2.ogg differ diff --git a/mods/default/sounds/default_dug_metal.1.ogg b/mods/default/sounds/default_dug_metal.1.ogg new file mode 100644 index 0000000..5d6cb5b Binary files /dev/null and b/mods/default/sounds/default_dug_metal.1.ogg differ diff --git a/mods/default/sounds/default_dug_metal.2.ogg b/mods/default/sounds/default_dug_metal.2.ogg new file mode 100644 index 0000000..63567fc Binary files /dev/null and b/mods/default/sounds/default_dug_metal.2.ogg differ diff --git a/mods/default/sounds/default_dug_node.1.ogg b/mods/default/sounds/default_dug_node.1.ogg new file mode 100644 index 0000000..c04975d Binary files /dev/null and b/mods/default/sounds/default_dug_node.1.ogg differ diff --git a/mods/default/sounds/default_dug_node.2.ogg b/mods/default/sounds/default_dug_node.2.ogg new file mode 100644 index 0000000..9f20926 Binary files /dev/null and b/mods/default/sounds/default_dug_node.2.ogg differ diff --git a/mods/default/sounds/default_glass_footstep.ogg b/mods/default/sounds/default_glass_footstep.ogg new file mode 100644 index 0000000..191287a Binary files /dev/null and b/mods/default/sounds/default_glass_footstep.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.1.ogg b/mods/default/sounds/default_grass_footstep.1.ogg new file mode 100644 index 0000000..22d1ad6 Binary files /dev/null and b/mods/default/sounds/default_grass_footstep.1.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.2.ogg b/mods/default/sounds/default_grass_footstep.2.ogg new file mode 100644 index 0000000..4ccd8a0 Binary files /dev/null and b/mods/default/sounds/default_grass_footstep.2.ogg differ diff --git a/mods/default/sounds/default_grass_footstep.3.ogg b/mods/default/sounds/default_grass_footstep.3.ogg new file mode 100644 index 0000000..20db84e Binary files /dev/null and b/mods/default/sounds/default_grass_footstep.3.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.1.ogg b/mods/default/sounds/default_gravel_footstep.1.ogg new file mode 100644 index 0000000..8d260ce Binary files /dev/null and b/mods/default/sounds/default_gravel_footstep.1.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.2.ogg b/mods/default/sounds/default_gravel_footstep.2.ogg new file mode 100644 index 0000000..2aba2c6 Binary files /dev/null and b/mods/default/sounds/default_gravel_footstep.2.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.3.ogg b/mods/default/sounds/default_gravel_footstep.3.ogg new file mode 100644 index 0000000..1bcd8a1 Binary files /dev/null and b/mods/default/sounds/default_gravel_footstep.3.ogg differ diff --git a/mods/default/sounds/default_gravel_footstep.4.ogg b/mods/default/sounds/default_gravel_footstep.4.ogg new file mode 100644 index 0000000..696c9ff Binary files /dev/null and b/mods/default/sounds/default_gravel_footstep.4.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.1.ogg b/mods/default/sounds/default_hard_footstep.1.ogg new file mode 100644 index 0000000..1748bc5 Binary files /dev/null and b/mods/default/sounds/default_hard_footstep.1.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.2.ogg b/mods/default/sounds/default_hard_footstep.2.ogg new file mode 100644 index 0000000..fe39fd7 Binary files /dev/null and b/mods/default/sounds/default_hard_footstep.2.ogg differ diff --git a/mods/default/sounds/default_hard_footstep.3.ogg b/mods/default/sounds/default_hard_footstep.3.ogg new file mode 100644 index 0000000..5030e06 Binary files /dev/null and b/mods/default/sounds/default_hard_footstep.3.ogg differ diff --git a/mods/default/sounds/default_item_smoke.ogg b/mods/default/sounds/default_item_smoke.ogg new file mode 100644 index 0000000..038a46e Binary files /dev/null and b/mods/default/sounds/default_item_smoke.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.1.ogg b/mods/default/sounds/default_metal_footstep.1.ogg new file mode 100644 index 0000000..841286b Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.1.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.2.ogg b/mods/default/sounds/default_metal_footstep.2.ogg new file mode 100644 index 0000000..aa61ed3 Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.2.ogg differ diff --git a/mods/default/sounds/default_metal_footstep.3.ogg b/mods/default/sounds/default_metal_footstep.3.ogg new file mode 100644 index 0000000..4cc1ca4 Binary files /dev/null and b/mods/default/sounds/default_metal_footstep.3.ogg differ diff --git a/mods/default/sounds/default_place_node.1.ogg b/mods/default/sounds/default_place_node.1.ogg new file mode 100644 index 0000000..46b9756 Binary files /dev/null and b/mods/default/sounds/default_place_node.1.ogg differ diff --git a/mods/default/sounds/default_place_node.2.ogg b/mods/default/sounds/default_place_node.2.ogg new file mode 100644 index 0000000..d34c01a Binary files /dev/null and b/mods/default/sounds/default_place_node.2.ogg differ diff --git a/mods/default/sounds/default_place_node.3.ogg b/mods/default/sounds/default_place_node.3.ogg new file mode 100644 index 0000000..fc29365 Binary files /dev/null and b/mods/default/sounds/default_place_node.3.ogg differ diff --git a/mods/default/sounds/default_place_node_hard.1.ogg b/mods/default/sounds/default_place_node_hard.1.ogg new file mode 100644 index 0000000..9f97fac Binary files /dev/null and b/mods/default/sounds/default_place_node_hard.1.ogg differ diff --git a/mods/default/sounds/default_place_node_hard.2.ogg b/mods/default/sounds/default_place_node_hard.2.ogg new file mode 100644 index 0000000..1d3b3de Binary files /dev/null and b/mods/default/sounds/default_place_node_hard.2.ogg differ diff --git a/mods/default/sounds/default_place_node_metal.1.ogg b/mods/default/sounds/default_place_node_metal.1.ogg new file mode 100644 index 0000000..5da085e Binary files /dev/null and b/mods/default/sounds/default_place_node_metal.1.ogg differ diff --git a/mods/default/sounds/default_place_node_metal.2.ogg b/mods/default/sounds/default_place_node_metal.2.ogg new file mode 100644 index 0000000..5ee67fc Binary files /dev/null and b/mods/default/sounds/default_place_node_metal.2.ogg differ diff --git a/mods/default/sounds/default_sand_footstep.1.ogg b/mods/default/sounds/default_sand_footstep.1.ogg new file mode 100644 index 0000000..65b68c7 Binary files /dev/null and b/mods/default/sounds/default_sand_footstep.1.ogg differ diff --git a/mods/default/sounds/default_sand_footstep.2.ogg b/mods/default/sounds/default_sand_footstep.2.ogg new file mode 100644 index 0000000..57f35f3 Binary files /dev/null and b/mods/default/sounds/default_sand_footstep.2.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.1.ogg b/mods/default/sounds/default_snow_footstep.1.ogg new file mode 100644 index 0000000..3260b91 Binary files /dev/null and b/mods/default/sounds/default_snow_footstep.1.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.2.ogg b/mods/default/sounds/default_snow_footstep.2.ogg new file mode 100644 index 0000000..4aac1e7 Binary files /dev/null and b/mods/default/sounds/default_snow_footstep.2.ogg differ diff --git a/mods/default/sounds/default_snow_footstep.3.ogg b/mods/default/sounds/default_snow_footstep.3.ogg new file mode 100644 index 0000000..cf4235b Binary files /dev/null and b/mods/default/sounds/default_snow_footstep.3.ogg differ diff --git a/mods/default/sounds/default_tool_breaks.1.ogg b/mods/default/sounds/default_tool_breaks.1.ogg new file mode 100644 index 0000000..2a571ae Binary files /dev/null and b/mods/default/sounds/default_tool_breaks.1.ogg differ diff --git a/mods/default/sounds/default_tool_breaks.2.ogg b/mods/default/sounds/default_tool_breaks.2.ogg new file mode 100644 index 0000000..1789352 Binary files /dev/null and b/mods/default/sounds/default_tool_breaks.2.ogg differ diff --git a/mods/default/sounds/default_tool_breaks.3.ogg b/mods/default/sounds/default_tool_breaks.3.ogg new file mode 100644 index 0000000..a99c4b7 Binary files /dev/null and b/mods/default/sounds/default_tool_breaks.3.ogg differ diff --git a/mods/default/sounds/default_water_footstep.1.ogg b/mods/default/sounds/default_water_footstep.1.ogg new file mode 100644 index 0000000..63b9744 Binary files /dev/null and b/mods/default/sounds/default_water_footstep.1.ogg differ diff --git a/mods/default/sounds/default_water_footstep.2.ogg b/mods/default/sounds/default_water_footstep.2.ogg new file mode 100644 index 0000000..8d79c1f Binary files /dev/null and b/mods/default/sounds/default_water_footstep.2.ogg differ diff --git a/mods/default/sounds/default_water_footstep.3.ogg b/mods/default/sounds/default_water_footstep.3.ogg new file mode 100644 index 0000000..f889150 Binary files /dev/null and b/mods/default/sounds/default_water_footstep.3.ogg differ diff --git a/mods/default/sounds/default_water_footstep.4.ogg b/mods/default/sounds/default_water_footstep.4.ogg new file mode 100644 index 0000000..6f1eab8 Binary files /dev/null and b/mods/default/sounds/default_water_footstep.4.ogg differ diff --git a/mods/default/sounds/default_wood_footstep.1.ogg b/mods/default/sounds/default_wood_footstep.1.ogg new file mode 100644 index 0000000..34f63a1 Binary files /dev/null and b/mods/default/sounds/default_wood_footstep.1.ogg differ diff --git a/mods/default/sounds/default_wood_footstep.2.ogg b/mods/default/sounds/default_wood_footstep.2.ogg new file mode 100644 index 0000000..124fc29 Binary files /dev/null and b/mods/default/sounds/default_wood_footstep.2.ogg differ diff --git a/mods/default/sounds/player_damage.ogg b/mods/default/sounds/player_damage.ogg new file mode 100644 index 0000000..7888087 Binary files /dev/null and b/mods/default/sounds/player_damage.ogg differ diff --git a/mods/default/textures/bubble.png b/mods/default/textures/bubble.png new file mode 100644 index 0000000..100fe15 Binary files /dev/null and b/mods/default/textures/bubble.png differ diff --git a/mods/default/textures/crack_anylength.png b/mods/default/textures/crack_anylength.png new file mode 100644 index 0000000..297eced Binary files /dev/null and b/mods/default/textures/crack_anylength.png differ diff --git a/mods/default/textures/default_acacia_bush_sapling.png b/mods/default/textures/default_acacia_bush_sapling.png new file mode 100644 index 0000000..940b3aa Binary files /dev/null and b/mods/default/textures/default_acacia_bush_sapling.png differ diff --git a/mods/default/textures/default_acacia_bush_stem.png b/mods/default/textures/default_acacia_bush_stem.png new file mode 100644 index 0000000..2903915 Binary files /dev/null and b/mods/default/textures/default_acacia_bush_stem.png differ diff --git a/mods/default/textures/default_acacia_leaves.png b/mods/default/textures/default_acacia_leaves.png new file mode 100644 index 0000000..626e1b3 Binary files /dev/null and b/mods/default/textures/default_acacia_leaves.png differ diff --git a/mods/default/textures/default_acacia_leaves_simple.png b/mods/default/textures/default_acacia_leaves_simple.png new file mode 100644 index 0000000..3c7015b Binary files /dev/null and b/mods/default/textures/default_acacia_leaves_simple.png differ diff --git a/mods/default/textures/default_acacia_sapling.png b/mods/default/textures/default_acacia_sapling.png new file mode 100644 index 0000000..07170a0 Binary files /dev/null and b/mods/default/textures/default_acacia_sapling.png differ diff --git a/mods/default/textures/default_acacia_tree.png b/mods/default/textures/default_acacia_tree.png new file mode 100644 index 0000000..58bb3c4 Binary files /dev/null and b/mods/default/textures/default_acacia_tree.png differ diff --git a/mods/default/textures/default_acacia_tree_top.png b/mods/default/textures/default_acacia_tree_top.png new file mode 100644 index 0000000..a8a0ce0 Binary files /dev/null and b/mods/default/textures/default_acacia_tree_top.png differ diff --git a/mods/default/textures/default_acacia_wood.png b/mods/default/textures/default_acacia_wood.png new file mode 100644 index 0000000..b5abf1e Binary files /dev/null and b/mods/default/textures/default_acacia_wood.png differ diff --git a/mods/default/textures/default_apple.png b/mods/default/textures/default_apple.png new file mode 100644 index 0000000..7549bfd Binary files /dev/null and b/mods/default/textures/default_apple.png differ diff --git a/mods/default/textures/default_aspen_leaves.png b/mods/default/textures/default_aspen_leaves.png new file mode 100644 index 0000000..7306423 Binary files /dev/null and b/mods/default/textures/default_aspen_leaves.png differ diff --git a/mods/default/textures/default_aspen_sapling.png b/mods/default/textures/default_aspen_sapling.png new file mode 100644 index 0000000..f8d9136 Binary files /dev/null and b/mods/default/textures/default_aspen_sapling.png differ diff --git a/mods/default/textures/default_aspen_tree.png b/mods/default/textures/default_aspen_tree.png new file mode 100644 index 0000000..cfb05fc Binary files /dev/null and b/mods/default/textures/default_aspen_tree.png differ diff --git a/mods/default/textures/default_aspen_tree_top.png b/mods/default/textures/default_aspen_tree_top.png new file mode 100644 index 0000000..fcca038 Binary files /dev/null and b/mods/default/textures/default_aspen_tree_top.png differ diff --git a/mods/default/textures/default_aspen_wood.png b/mods/default/textures/default_aspen_wood.png new file mode 100644 index 0000000..2b584b3 Binary files /dev/null and b/mods/default/textures/default_aspen_wood.png differ diff --git a/mods/default/textures/default_book.png b/mods/default/textures/default_book.png new file mode 100644 index 0000000..bcf1e6a Binary files /dev/null and b/mods/default/textures/default_book.png differ diff --git a/mods/default/textures/default_book_written.png b/mods/default/textures/default_book_written.png new file mode 100644 index 0000000..f23d122 Binary files /dev/null and b/mods/default/textures/default_book_written.png differ diff --git a/mods/default/textures/default_bookshelf.png b/mods/default/textures/default_bookshelf.png new file mode 100644 index 0000000..10d6483 Binary files /dev/null and b/mods/default/textures/default_bookshelf.png differ diff --git a/mods/default/textures/default_bookshelf_slot.png b/mods/default/textures/default_bookshelf_slot.png new file mode 100644 index 0000000..cd2c8bc Binary files /dev/null and b/mods/default/textures/default_bookshelf_slot.png differ diff --git a/mods/default/textures/default_brick.png b/mods/default/textures/default_brick.png new file mode 100644 index 0000000..ab19121 Binary files /dev/null and b/mods/default/textures/default_brick.png differ diff --git a/mods/default/textures/default_bronze_block.png b/mods/default/textures/default_bronze_block.png new file mode 100644 index 0000000..1d0c9d5 Binary files /dev/null and b/mods/default/textures/default_bronze_block.png differ diff --git a/mods/default/textures/default_bronze_ingot.png b/mods/default/textures/default_bronze_ingot.png new file mode 100644 index 0000000..6cccdf6 Binary files /dev/null and b/mods/default/textures/default_bronze_ingot.png differ diff --git a/mods/default/textures/default_bush_sapling.png b/mods/default/textures/default_bush_sapling.png new file mode 100644 index 0000000..905ba4b Binary files /dev/null and b/mods/default/textures/default_bush_sapling.png differ diff --git a/mods/default/textures/default_bush_stem.png b/mods/default/textures/default_bush_stem.png new file mode 100644 index 0000000..18b615f Binary files /dev/null and b/mods/default/textures/default_bush_stem.png differ diff --git a/mods/default/textures/default_cactus_side.png b/mods/default/textures/default_cactus_side.png new file mode 100644 index 0000000..8d6c40c Binary files /dev/null and b/mods/default/textures/default_cactus_side.png differ diff --git a/mods/default/textures/default_cactus_top.png b/mods/default/textures/default_cactus_top.png new file mode 100644 index 0000000..cf46aa2 Binary files /dev/null and b/mods/default/textures/default_cactus_top.png differ diff --git a/mods/default/textures/default_chest_front.png b/mods/default/textures/default_chest_front.png new file mode 100644 index 0000000..85227d8 Binary files /dev/null and b/mods/default/textures/default_chest_front.png differ diff --git a/mods/default/textures/default_chest_inside.png b/mods/default/textures/default_chest_inside.png new file mode 100644 index 0000000..5f7b6b1 Binary files /dev/null and b/mods/default/textures/default_chest_inside.png differ diff --git a/mods/default/textures/default_chest_lock.png b/mods/default/textures/default_chest_lock.png new file mode 100644 index 0000000..73f46c7 Binary files /dev/null and b/mods/default/textures/default_chest_lock.png differ diff --git a/mods/default/textures/default_chest_side.png b/mods/default/textures/default_chest_side.png new file mode 100644 index 0000000..44a65a4 Binary files /dev/null and b/mods/default/textures/default_chest_side.png differ diff --git a/mods/default/textures/default_chest_top.png b/mods/default/textures/default_chest_top.png new file mode 100644 index 0000000..f4a92ee Binary files /dev/null and b/mods/default/textures/default_chest_top.png differ diff --git a/mods/default/textures/default_clay.png b/mods/default/textures/default_clay.png new file mode 100644 index 0000000..76e5a40 Binary files /dev/null and b/mods/default/textures/default_clay.png differ diff --git a/mods/default/textures/default_clay_brick.png b/mods/default/textures/default_clay_brick.png new file mode 100644 index 0000000..dc7a431 Binary files /dev/null and b/mods/default/textures/default_clay_brick.png differ diff --git a/mods/default/textures/default_clay_lump.png b/mods/default/textures/default_clay_lump.png new file mode 100644 index 0000000..c1d0220 Binary files /dev/null and b/mods/default/textures/default_clay_lump.png differ diff --git a/mods/default/textures/default_cloud.png b/mods/default/textures/default_cloud.png new file mode 100644 index 0000000..faf0ec1 Binary files /dev/null and b/mods/default/textures/default_cloud.png differ diff --git a/mods/default/textures/default_coal_block.png b/mods/default/textures/default_coal_block.png new file mode 100644 index 0000000..6fe9ed9 Binary files /dev/null and b/mods/default/textures/default_coal_block.png differ diff --git a/mods/default/textures/default_coal_lump.png b/mods/default/textures/default_coal_lump.png new file mode 100644 index 0000000..792961d Binary files /dev/null and b/mods/default/textures/default_coal_lump.png differ diff --git a/mods/default/textures/default_cobble.png b/mods/default/textures/default_cobble.png new file mode 100644 index 0000000..d379840 Binary files /dev/null and b/mods/default/textures/default_cobble.png differ diff --git a/mods/default/textures/default_copper_block.png b/mods/default/textures/default_copper_block.png new file mode 100644 index 0000000..8533754 Binary files /dev/null and b/mods/default/textures/default_copper_block.png differ diff --git a/mods/default/textures/default_copper_ingot.png b/mods/default/textures/default_copper_ingot.png new file mode 100644 index 0000000..bcad9c0 Binary files /dev/null and b/mods/default/textures/default_copper_ingot.png differ diff --git a/mods/default/textures/default_copper_lump.png b/mods/default/textures/default_copper_lump.png new file mode 100644 index 0000000..998c592 Binary files /dev/null and b/mods/default/textures/default_copper_lump.png differ diff --git a/mods/default/textures/default_coral_brown.png b/mods/default/textures/default_coral_brown.png new file mode 100644 index 0000000..8a775fe Binary files /dev/null and b/mods/default/textures/default_coral_brown.png differ diff --git a/mods/default/textures/default_coral_orange.png b/mods/default/textures/default_coral_orange.png new file mode 100644 index 0000000..cefac62 Binary files /dev/null and b/mods/default/textures/default_coral_orange.png differ diff --git a/mods/default/textures/default_coral_skeleton.png b/mods/default/textures/default_coral_skeleton.png new file mode 100644 index 0000000..fa48f15 Binary files /dev/null and b/mods/default/textures/default_coral_skeleton.png differ diff --git a/mods/default/textures/default_desert_cobble.png b/mods/default/textures/default_desert_cobble.png new file mode 100644 index 0000000..184a9d8 Binary files /dev/null and b/mods/default/textures/default_desert_cobble.png differ diff --git a/mods/default/textures/default_desert_sand.png b/mods/default/textures/default_desert_sand.png new file mode 100644 index 0000000..371b8c7 Binary files /dev/null and b/mods/default/textures/default_desert_sand.png differ diff --git a/mods/default/textures/default_desert_sandstone.png b/mods/default/textures/default_desert_sandstone.png new file mode 100644 index 0000000..52e445f Binary files /dev/null and b/mods/default/textures/default_desert_sandstone.png differ diff --git a/mods/default/textures/default_desert_sandstone_block.png b/mods/default/textures/default_desert_sandstone_block.png new file mode 100644 index 0000000..8fc54e7 Binary files /dev/null and b/mods/default/textures/default_desert_sandstone_block.png differ diff --git a/mods/default/textures/default_desert_sandstone_brick.png b/mods/default/textures/default_desert_sandstone_brick.png new file mode 100644 index 0000000..ab58db5 Binary files /dev/null and b/mods/default/textures/default_desert_sandstone_brick.png differ diff --git a/mods/default/textures/default_desert_stone.png b/mods/default/textures/default_desert_stone.png new file mode 100644 index 0000000..5d3aded Binary files /dev/null and b/mods/default/textures/default_desert_stone.png differ diff --git a/mods/default/textures/default_desert_stone_block.png b/mods/default/textures/default_desert_stone_block.png new file mode 100644 index 0000000..9eb8e92 Binary files /dev/null and b/mods/default/textures/default_desert_stone_block.png differ diff --git a/mods/default/textures/default_desert_stone_brick.png b/mods/default/textures/default_desert_stone_brick.png new file mode 100644 index 0000000..a603d18 Binary files /dev/null and b/mods/default/textures/default_desert_stone_brick.png differ diff --git a/mods/default/textures/default_diamond.png b/mods/default/textures/default_diamond.png new file mode 100644 index 0000000..a8dac74 Binary files /dev/null and b/mods/default/textures/default_diamond.png differ diff --git a/mods/default/textures/default_diamond_block.png b/mods/default/textures/default_diamond_block.png new file mode 100644 index 0000000..20c33ed Binary files /dev/null and b/mods/default/textures/default_diamond_block.png differ diff --git a/mods/default/textures/default_dirt.png b/mods/default/textures/default_dirt.png new file mode 100644 index 0000000..ca7e4ae Binary files /dev/null and b/mods/default/textures/default_dirt.png differ diff --git a/mods/default/textures/default_dry_grass.png b/mods/default/textures/default_dry_grass.png new file mode 100644 index 0000000..03455c3 Binary files /dev/null and b/mods/default/textures/default_dry_grass.png differ diff --git a/mods/default/textures/default_dry_grass_1.png b/mods/default/textures/default_dry_grass_1.png new file mode 100644 index 0000000..5cf68a3 Binary files /dev/null and b/mods/default/textures/default_dry_grass_1.png differ diff --git a/mods/default/textures/default_dry_grass_2.png b/mods/default/textures/default_dry_grass_2.png new file mode 100644 index 0000000..c925ace Binary files /dev/null and b/mods/default/textures/default_dry_grass_2.png differ diff --git a/mods/default/textures/default_dry_grass_3.png b/mods/default/textures/default_dry_grass_3.png new file mode 100644 index 0000000..4e4d84e Binary files /dev/null and b/mods/default/textures/default_dry_grass_3.png differ diff --git a/mods/default/textures/default_dry_grass_4.png b/mods/default/textures/default_dry_grass_4.png new file mode 100644 index 0000000..d315849 Binary files /dev/null and b/mods/default/textures/default_dry_grass_4.png differ diff --git a/mods/default/textures/default_dry_grass_5.png b/mods/default/textures/default_dry_grass_5.png new file mode 100644 index 0000000..871d04c Binary files /dev/null and b/mods/default/textures/default_dry_grass_5.png differ diff --git a/mods/default/textures/default_dry_grass_side.png b/mods/default/textures/default_dry_grass_side.png new file mode 100644 index 0000000..ef375b7 Binary files /dev/null and b/mods/default/textures/default_dry_grass_side.png differ diff --git a/mods/default/textures/default_dry_shrub.png b/mods/default/textures/default_dry_shrub.png new file mode 100644 index 0000000..e8a7f27 Binary files /dev/null and b/mods/default/textures/default_dry_shrub.png differ diff --git a/mods/default/textures/default_fence_acacia_wood.png b/mods/default/textures/default_fence_acacia_wood.png new file mode 100644 index 0000000..3b973f3 Binary files /dev/null and b/mods/default/textures/default_fence_acacia_wood.png differ diff --git a/mods/default/textures/default_fence_aspen_wood.png b/mods/default/textures/default_fence_aspen_wood.png new file mode 100644 index 0000000..0a6558e Binary files /dev/null and b/mods/default/textures/default_fence_aspen_wood.png differ diff --git a/mods/default/textures/default_fence_junglewood.png b/mods/default/textures/default_fence_junglewood.png new file mode 100644 index 0000000..c390941 Binary files /dev/null and b/mods/default/textures/default_fence_junglewood.png differ diff --git a/mods/default/textures/default_fence_overlay.png b/mods/default/textures/default_fence_overlay.png new file mode 100644 index 0000000..718184c Binary files /dev/null and b/mods/default/textures/default_fence_overlay.png differ diff --git a/mods/default/textures/default_fence_pine_wood.png b/mods/default/textures/default_fence_pine_wood.png new file mode 100644 index 0000000..74609d9 Binary files /dev/null and b/mods/default/textures/default_fence_pine_wood.png differ diff --git a/mods/default/textures/default_fence_wood.png b/mods/default/textures/default_fence_wood.png new file mode 100644 index 0000000..1e76430 Binary files /dev/null and b/mods/default/textures/default_fence_wood.png differ diff --git a/mods/default/textures/default_flint.png b/mods/default/textures/default_flint.png new file mode 100644 index 0000000..226c740 Binary files /dev/null and b/mods/default/textures/default_flint.png differ diff --git a/mods/default/textures/default_footprint.png b/mods/default/textures/default_footprint.png new file mode 100644 index 0000000..41d9546 Binary files /dev/null and b/mods/default/textures/default_footprint.png differ diff --git a/mods/default/textures/default_furnace_bottom.png b/mods/default/textures/default_furnace_bottom.png new file mode 100644 index 0000000..b79ed06 Binary files /dev/null and b/mods/default/textures/default_furnace_bottom.png differ diff --git a/mods/default/textures/default_furnace_fire_bg.png b/mods/default/textures/default_furnace_fire_bg.png new file mode 100644 index 0000000..126204a Binary files /dev/null and b/mods/default/textures/default_furnace_fire_bg.png differ diff --git a/mods/default/textures/default_furnace_fire_fg.png b/mods/default/textures/default_furnace_fire_fg.png new file mode 100644 index 0000000..63888f3 Binary files /dev/null and b/mods/default/textures/default_furnace_fire_fg.png differ diff --git a/mods/default/textures/default_furnace_front.png b/mods/default/textures/default_furnace_front.png new file mode 100644 index 0000000..8c1798e Binary files /dev/null and b/mods/default/textures/default_furnace_front.png differ diff --git a/mods/default/textures/default_furnace_front_active.png b/mods/default/textures/default_furnace_front_active.png new file mode 100644 index 0000000..ea43ed9 Binary files /dev/null and b/mods/default/textures/default_furnace_front_active.png differ diff --git a/mods/default/textures/default_furnace_side.png b/mods/default/textures/default_furnace_side.png new file mode 100644 index 0000000..33408cf Binary files /dev/null and b/mods/default/textures/default_furnace_side.png differ diff --git a/mods/default/textures/default_furnace_top.png b/mods/default/textures/default_furnace_top.png new file mode 100644 index 0000000..b79ed06 Binary files /dev/null and b/mods/default/textures/default_furnace_top.png differ diff --git a/mods/default/textures/default_glass.png b/mods/default/textures/default_glass.png new file mode 100644 index 0000000..da25402 Binary files /dev/null and b/mods/default/textures/default_glass.png differ diff --git a/mods/default/textures/default_glass_detail.png b/mods/default/textures/default_glass_detail.png new file mode 100644 index 0000000..d38dbb7 Binary files /dev/null and b/mods/default/textures/default_glass_detail.png differ diff --git a/mods/default/textures/default_gold_block.png b/mods/default/textures/default_gold_block.png new file mode 100644 index 0000000..170d50b Binary files /dev/null and b/mods/default/textures/default_gold_block.png differ diff --git a/mods/default/textures/default_gold_ingot.png b/mods/default/textures/default_gold_ingot.png new file mode 100644 index 0000000..ba66471 Binary files /dev/null and b/mods/default/textures/default_gold_ingot.png differ diff --git a/mods/default/textures/default_gold_lump.png b/mods/default/textures/default_gold_lump.png new file mode 100644 index 0000000..d5a1be7 Binary files /dev/null and b/mods/default/textures/default_gold_lump.png differ diff --git a/mods/default/textures/default_grass.png b/mods/default/textures/default_grass.png new file mode 100644 index 0000000..0181fab Binary files /dev/null and b/mods/default/textures/default_grass.png differ diff --git a/mods/default/textures/default_grass_1.png b/mods/default/textures/default_grass_1.png new file mode 100644 index 0000000..e9faa2c Binary files /dev/null and b/mods/default/textures/default_grass_1.png differ diff --git a/mods/default/textures/default_grass_2.png b/mods/default/textures/default_grass_2.png new file mode 100644 index 0000000..03729a0 Binary files /dev/null and b/mods/default/textures/default_grass_2.png differ diff --git a/mods/default/textures/default_grass_3.png b/mods/default/textures/default_grass_3.png new file mode 100644 index 0000000..92ca1b5 Binary files /dev/null and b/mods/default/textures/default_grass_3.png differ diff --git a/mods/default/textures/default_grass_4.png b/mods/default/textures/default_grass_4.png new file mode 100644 index 0000000..c782a33 Binary files /dev/null and b/mods/default/textures/default_grass_4.png differ diff --git a/mods/default/textures/default_grass_5.png b/mods/default/textures/default_grass_5.png new file mode 100644 index 0000000..b727e9c Binary files /dev/null and b/mods/default/textures/default_grass_5.png differ diff --git a/mods/default/textures/default_grass_side.png b/mods/default/textures/default_grass_side.png new file mode 100644 index 0000000..bfd538d Binary files /dev/null and b/mods/default/textures/default_grass_side.png differ diff --git a/mods/default/textures/default_gravel.png b/mods/default/textures/default_gravel.png new file mode 100644 index 0000000..8852d38 Binary files /dev/null and b/mods/default/textures/default_gravel.png differ diff --git a/mods/default/textures/default_ice.png b/mods/default/textures/default_ice.png new file mode 100644 index 0000000..2874e1e Binary files /dev/null and b/mods/default/textures/default_ice.png differ diff --git a/mods/default/textures/default_iron_lump.png b/mods/default/textures/default_iron_lump.png new file mode 100644 index 0000000..db61a94 Binary files /dev/null and b/mods/default/textures/default_iron_lump.png differ diff --git a/mods/default/textures/default_item_smoke.png b/mods/default/textures/default_item_smoke.png new file mode 100644 index 0000000..d62fb3b Binary files /dev/null and b/mods/default/textures/default_item_smoke.png differ diff --git a/mods/default/textures/default_junglegrass.png b/mods/default/textures/default_junglegrass.png new file mode 100644 index 0000000..25abb71 Binary files /dev/null and b/mods/default/textures/default_junglegrass.png differ diff --git a/mods/default/textures/default_jungleleaves.png b/mods/default/textures/default_jungleleaves.png new file mode 100644 index 0000000..5afcc36 Binary files /dev/null and b/mods/default/textures/default_jungleleaves.png differ diff --git a/mods/default/textures/default_jungleleaves_simple.png b/mods/default/textures/default_jungleleaves_simple.png new file mode 100644 index 0000000..7165100 Binary files /dev/null and b/mods/default/textures/default_jungleleaves_simple.png differ diff --git a/mods/default/textures/default_junglesapling.png b/mods/default/textures/default_junglesapling.png new file mode 100644 index 0000000..05e1e50 Binary files /dev/null and b/mods/default/textures/default_junglesapling.png differ diff --git a/mods/default/textures/default_jungletree.png b/mods/default/textures/default_jungletree.png new file mode 100644 index 0000000..2cf77a6 Binary files /dev/null and b/mods/default/textures/default_jungletree.png differ diff --git a/mods/default/textures/default_jungletree_top.png b/mods/default/textures/default_jungletree_top.png new file mode 100644 index 0000000..439f078 Binary files /dev/null and b/mods/default/textures/default_jungletree_top.png differ diff --git a/mods/default/textures/default_junglewood.png b/mods/default/textures/default_junglewood.png new file mode 100644 index 0000000..8d17917 Binary files /dev/null and b/mods/default/textures/default_junglewood.png differ diff --git a/mods/default/textures/default_key.png b/mods/default/textures/default_key.png new file mode 100644 index 0000000..783d313 Binary files /dev/null and b/mods/default/textures/default_key.png differ diff --git a/mods/default/textures/default_key_skeleton.png b/mods/default/textures/default_key_skeleton.png new file mode 100644 index 0000000..2b3497d Binary files /dev/null and b/mods/default/textures/default_key_skeleton.png differ diff --git a/mods/default/textures/default_ladder_steel.png b/mods/default/textures/default_ladder_steel.png new file mode 100644 index 0000000..a312f3e Binary files /dev/null and b/mods/default/textures/default_ladder_steel.png differ diff --git a/mods/default/textures/default_ladder_wood.png b/mods/default/textures/default_ladder_wood.png new file mode 100644 index 0000000..c167fff Binary files /dev/null and b/mods/default/textures/default_ladder_wood.png differ diff --git a/mods/default/textures/default_lava.png b/mods/default/textures/default_lava.png new file mode 100644 index 0000000..e8958de Binary files /dev/null and b/mods/default/textures/default_lava.png differ diff --git a/mods/default/textures/default_lava_flowing_animated.png b/mods/default/textures/default_lava_flowing_animated.png new file mode 100644 index 0000000..2ec0746 Binary files /dev/null and b/mods/default/textures/default_lava_flowing_animated.png differ diff --git a/mods/default/textures/default_lava_source_animated.png b/mods/default/textures/default_lava_source_animated.png new file mode 100644 index 0000000..32267a6 Binary files /dev/null and b/mods/default/textures/default_lava_source_animated.png differ diff --git a/mods/default/textures/default_leaves.png b/mods/default/textures/default_leaves.png new file mode 100644 index 0000000..ba09fe1 Binary files /dev/null and b/mods/default/textures/default_leaves.png differ diff --git a/mods/default/textures/default_leaves_simple.png b/mods/default/textures/default_leaves_simple.png new file mode 100644 index 0000000..eb60f9f Binary files /dev/null and b/mods/default/textures/default_leaves_simple.png differ diff --git a/mods/default/textures/default_mese_block.png b/mods/default/textures/default_mese_block.png new file mode 100644 index 0000000..e30994e Binary files /dev/null and b/mods/default/textures/default_mese_block.png differ diff --git a/mods/default/textures/default_mese_crystal.png b/mods/default/textures/default_mese_crystal.png new file mode 100644 index 0000000..f1d71f1 Binary files /dev/null and b/mods/default/textures/default_mese_crystal.png differ diff --git a/mods/default/textures/default_mese_crystal_fragment.png b/mods/default/textures/default_mese_crystal_fragment.png new file mode 100644 index 0000000..d5416ab Binary files /dev/null and b/mods/default/textures/default_mese_crystal_fragment.png differ diff --git a/mods/default/textures/default_mese_post_light_side.png b/mods/default/textures/default_mese_post_light_side.png new file mode 100644 index 0000000..c23b551 Binary files /dev/null and b/mods/default/textures/default_mese_post_light_side.png differ diff --git a/mods/default/textures/default_mese_post_light_side_dark.png b/mods/default/textures/default_mese_post_light_side_dark.png new file mode 100644 index 0000000..c4fc7ce Binary files /dev/null and b/mods/default/textures/default_mese_post_light_side_dark.png differ diff --git a/mods/default/textures/default_mese_post_light_top.png b/mods/default/textures/default_mese_post_light_top.png new file mode 100644 index 0000000..6834bd3 Binary files /dev/null and b/mods/default/textures/default_mese_post_light_top.png differ diff --git a/mods/default/textures/default_meselamp.png b/mods/default/textures/default_meselamp.png new file mode 100644 index 0000000..0c3a1a1 Binary files /dev/null and b/mods/default/textures/default_meselamp.png differ diff --git a/mods/default/textures/default_mineral_coal.png b/mods/default/textures/default_mineral_coal.png new file mode 100644 index 0000000..6d1386b Binary files /dev/null and b/mods/default/textures/default_mineral_coal.png differ diff --git a/mods/default/textures/default_mineral_copper.png b/mods/default/textures/default_mineral_copper.png new file mode 100644 index 0000000..c4c518e Binary files /dev/null and b/mods/default/textures/default_mineral_copper.png differ diff --git a/mods/default/textures/default_mineral_diamond.png b/mods/default/textures/default_mineral_diamond.png new file mode 100644 index 0000000..39c0f83 Binary files /dev/null and b/mods/default/textures/default_mineral_diamond.png differ diff --git a/mods/default/textures/default_mineral_gold.png b/mods/default/textures/default_mineral_gold.png new file mode 100644 index 0000000..2220add Binary files /dev/null and b/mods/default/textures/default_mineral_gold.png differ diff --git a/mods/default/textures/default_mineral_iron.png b/mods/default/textures/default_mineral_iron.png new file mode 100644 index 0000000..bfec8b1 Binary files /dev/null and b/mods/default/textures/default_mineral_iron.png differ diff --git a/mods/default/textures/default_mineral_mese.png b/mods/default/textures/default_mineral_mese.png new file mode 100644 index 0000000..6952670 Binary files /dev/null and b/mods/default/textures/default_mineral_mese.png differ diff --git a/mods/default/textures/default_mineral_tin.png b/mods/default/textures/default_mineral_tin.png new file mode 100644 index 0000000..232d4b5 Binary files /dev/null and b/mods/default/textures/default_mineral_tin.png differ diff --git a/mods/default/textures/default_mossycobble.png b/mods/default/textures/default_mossycobble.png new file mode 100644 index 0000000..1ae7c91 Binary files /dev/null and b/mods/default/textures/default_mossycobble.png differ diff --git a/mods/default/textures/default_obsidian.png b/mods/default/textures/default_obsidian.png new file mode 100644 index 0000000..8f4a49c Binary files /dev/null and b/mods/default/textures/default_obsidian.png differ diff --git a/mods/default/textures/default_obsidian_block.png b/mods/default/textures/default_obsidian_block.png new file mode 100644 index 0000000..7e1d4d3 Binary files /dev/null and b/mods/default/textures/default_obsidian_block.png differ diff --git a/mods/default/textures/default_obsidian_brick.png b/mods/default/textures/default_obsidian_brick.png new file mode 100644 index 0000000..30c67ca Binary files /dev/null and b/mods/default/textures/default_obsidian_brick.png differ diff --git a/mods/default/textures/default_obsidian_glass.png b/mods/default/textures/default_obsidian_glass.png new file mode 100644 index 0000000..d5ac83d Binary files /dev/null and b/mods/default/textures/default_obsidian_glass.png differ diff --git a/mods/default/textures/default_obsidian_glass_detail.png b/mods/default/textures/default_obsidian_glass_detail.png new file mode 100644 index 0000000..a8bbec9 Binary files /dev/null and b/mods/default/textures/default_obsidian_glass_detail.png differ diff --git a/mods/default/textures/default_obsidian_shard.png b/mods/default/textures/default_obsidian_shard.png new file mode 100644 index 0000000..a988d8c Binary files /dev/null and b/mods/default/textures/default_obsidian_shard.png differ diff --git a/mods/default/textures/default_paper.png b/mods/default/textures/default_paper.png new file mode 100644 index 0000000..8f23924 Binary files /dev/null and b/mods/default/textures/default_paper.png differ diff --git a/mods/default/textures/default_papyrus.png b/mods/default/textures/default_papyrus.png new file mode 100644 index 0000000..a85e809 Binary files /dev/null and b/mods/default/textures/default_papyrus.png differ diff --git a/mods/default/textures/default_pine_needles.png b/mods/default/textures/default_pine_needles.png new file mode 100644 index 0000000..ad7373b Binary files /dev/null and b/mods/default/textures/default_pine_needles.png differ diff --git a/mods/default/textures/default_pine_sapling.png b/mods/default/textures/default_pine_sapling.png new file mode 100644 index 0000000..c30131d Binary files /dev/null and b/mods/default/textures/default_pine_sapling.png differ diff --git a/mods/default/textures/default_pine_tree.png b/mods/default/textures/default_pine_tree.png new file mode 100644 index 0000000..4a5328f Binary files /dev/null and b/mods/default/textures/default_pine_tree.png differ diff --git a/mods/default/textures/default_pine_tree_top.png b/mods/default/textures/default_pine_tree_top.png new file mode 100644 index 0000000..8705710 Binary files /dev/null and b/mods/default/textures/default_pine_tree_top.png differ diff --git a/mods/default/textures/default_pine_wood.png b/mods/default/textures/default_pine_wood.png new file mode 100644 index 0000000..6844ceb Binary files /dev/null and b/mods/default/textures/default_pine_wood.png differ diff --git a/mods/default/textures/default_rainforest_litter.png b/mods/default/textures/default_rainforest_litter.png new file mode 100644 index 0000000..d762deb Binary files /dev/null and b/mods/default/textures/default_rainforest_litter.png differ diff --git a/mods/default/textures/default_rainforest_litter_side.png b/mods/default/textures/default_rainforest_litter_side.png new file mode 100644 index 0000000..7ccb11d Binary files /dev/null and b/mods/default/textures/default_rainforest_litter_side.png differ diff --git a/mods/default/textures/default_river_water.png b/mods/default/textures/default_river_water.png new file mode 100644 index 0000000..3b55c5f Binary files /dev/null and b/mods/default/textures/default_river_water.png differ diff --git a/mods/default/textures/default_river_water_flowing_animated.png b/mods/default/textures/default_river_water_flowing_animated.png new file mode 100644 index 0000000..536acc5 Binary files /dev/null and b/mods/default/textures/default_river_water_flowing_animated.png differ diff --git a/mods/default/textures/default_river_water_source_animated.png b/mods/default/textures/default_river_water_source_animated.png new file mode 100644 index 0000000..daa5653 Binary files /dev/null and b/mods/default/textures/default_river_water_source_animated.png differ diff --git a/mods/default/textures/default_sand.png b/mods/default/textures/default_sand.png new file mode 100644 index 0000000..645a300 Binary files /dev/null and b/mods/default/textures/default_sand.png differ diff --git a/mods/default/textures/default_sandstone.png b/mods/default/textures/default_sandstone.png new file mode 100644 index 0000000..16e3d13 Binary files /dev/null and b/mods/default/textures/default_sandstone.png differ diff --git a/mods/default/textures/default_sandstone_block.png b/mods/default/textures/default_sandstone_block.png new file mode 100644 index 0000000..2e06491 Binary files /dev/null and b/mods/default/textures/default_sandstone_block.png differ diff --git a/mods/default/textures/default_sandstone_brick.png b/mods/default/textures/default_sandstone_brick.png new file mode 100644 index 0000000..e7150e5 Binary files /dev/null and b/mods/default/textures/default_sandstone_brick.png differ diff --git a/mods/default/textures/default_sapling.png b/mods/default/textures/default_sapling.png new file mode 100644 index 0000000..3fd64f0 Binary files /dev/null and b/mods/default/textures/default_sapling.png differ diff --git a/mods/default/textures/default_sign_steel.png b/mods/default/textures/default_sign_steel.png new file mode 100644 index 0000000..3ca0c59 Binary files /dev/null and b/mods/default/textures/default_sign_steel.png differ diff --git a/mods/default/textures/default_sign_wall_steel.png b/mods/default/textures/default_sign_wall_steel.png new file mode 100644 index 0000000..2227477 Binary files /dev/null and b/mods/default/textures/default_sign_wall_steel.png differ diff --git a/mods/default/textures/default_sign_wall_wood.png b/mods/default/textures/default_sign_wall_wood.png new file mode 100644 index 0000000..40552c7 Binary files /dev/null and b/mods/default/textures/default_sign_wall_wood.png differ diff --git a/mods/default/textures/default_sign_wood.png b/mods/default/textures/default_sign_wood.png new file mode 100644 index 0000000..d0559da Binary files /dev/null and b/mods/default/textures/default_sign_wood.png differ diff --git a/mods/default/textures/default_silver_sand.png b/mods/default/textures/default_silver_sand.png new file mode 100644 index 0000000..c4a8f73 Binary files /dev/null and b/mods/default/textures/default_silver_sand.png differ diff --git a/mods/default/textures/default_silver_sandstone.png b/mods/default/textures/default_silver_sandstone.png new file mode 100644 index 0000000..eac62cb Binary files /dev/null and b/mods/default/textures/default_silver_sandstone.png differ diff --git a/mods/default/textures/default_silver_sandstone_block.png b/mods/default/textures/default_silver_sandstone_block.png new file mode 100644 index 0000000..9997461 Binary files /dev/null and b/mods/default/textures/default_silver_sandstone_block.png differ diff --git a/mods/default/textures/default_silver_sandstone_brick.png b/mods/default/textures/default_silver_sandstone_brick.png new file mode 100644 index 0000000..93d87a5 Binary files /dev/null and b/mods/default/textures/default_silver_sandstone_brick.png differ diff --git a/mods/default/textures/default_snow.png b/mods/default/textures/default_snow.png new file mode 100644 index 0000000..fcbef0e Binary files /dev/null and b/mods/default/textures/default_snow.png differ diff --git a/mods/default/textures/default_snow_side.png b/mods/default/textures/default_snow_side.png new file mode 100644 index 0000000..03456c8 Binary files /dev/null and b/mods/default/textures/default_snow_side.png differ diff --git a/mods/default/textures/default_snowball.png b/mods/default/textures/default_snowball.png new file mode 100644 index 0000000..3a4dc1f Binary files /dev/null and b/mods/default/textures/default_snowball.png differ diff --git a/mods/default/textures/default_steel_block.png b/mods/default/textures/default_steel_block.png new file mode 100644 index 0000000..7f49f61 Binary files /dev/null and b/mods/default/textures/default_steel_block.png differ diff --git a/mods/default/textures/default_steel_ingot.png b/mods/default/textures/default_steel_ingot.png new file mode 100644 index 0000000..8100b01 Binary files /dev/null and b/mods/default/textures/default_steel_ingot.png differ diff --git a/mods/default/textures/default_stick.png b/mods/default/textures/default_stick.png new file mode 100644 index 0000000..0378d07 Binary files /dev/null and b/mods/default/textures/default_stick.png differ diff --git a/mods/default/textures/default_stone.png b/mods/default/textures/default_stone.png new file mode 100644 index 0000000..63cb7c4 Binary files /dev/null and b/mods/default/textures/default_stone.png differ diff --git a/mods/default/textures/default_stone_block.png b/mods/default/textures/default_stone_block.png new file mode 100644 index 0000000..3b771e7 Binary files /dev/null and b/mods/default/textures/default_stone_block.png differ diff --git a/mods/default/textures/default_stone_brick.png b/mods/default/textures/default_stone_brick.png new file mode 100644 index 0000000..4dbb49d Binary files /dev/null and b/mods/default/textures/default_stone_brick.png differ diff --git a/mods/default/textures/default_tin_block.png b/mods/default/textures/default_tin_block.png new file mode 100644 index 0000000..72759b0 Binary files /dev/null and b/mods/default/textures/default_tin_block.png differ diff --git a/mods/default/textures/default_tin_ingot.png b/mods/default/textures/default_tin_ingot.png new file mode 100644 index 0000000..eed5361 Binary files /dev/null and b/mods/default/textures/default_tin_ingot.png differ diff --git a/mods/default/textures/default_tin_lump.png b/mods/default/textures/default_tin_lump.png new file mode 100644 index 0000000..72bd339 Binary files /dev/null and b/mods/default/textures/default_tin_lump.png differ diff --git a/mods/default/textures/default_tool_bronzeaxe.png b/mods/default/textures/default_tool_bronzeaxe.png new file mode 100644 index 0000000..8ae43b5 Binary files /dev/null and b/mods/default/textures/default_tool_bronzeaxe.png differ diff --git a/mods/default/textures/default_tool_bronzepick.png b/mods/default/textures/default_tool_bronzepick.png new file mode 100644 index 0000000..c88a5f0 Binary files /dev/null and b/mods/default/textures/default_tool_bronzepick.png differ diff --git a/mods/default/textures/default_tool_bronzeshovel.png b/mods/default/textures/default_tool_bronzeshovel.png new file mode 100644 index 0000000..d7d800e Binary files /dev/null and b/mods/default/textures/default_tool_bronzeshovel.png differ diff --git a/mods/default/textures/default_tool_bronzesword.png b/mods/default/textures/default_tool_bronzesword.png new file mode 100644 index 0000000..cdab898 Binary files /dev/null and b/mods/default/textures/default_tool_bronzesword.png differ diff --git a/mods/default/textures/default_tool_diamondaxe.png b/mods/default/textures/default_tool_diamondaxe.png new file mode 100644 index 0000000..e32a0bf Binary files /dev/null and b/mods/default/textures/default_tool_diamondaxe.png differ diff --git a/mods/default/textures/default_tool_diamondpick.png b/mods/default/textures/default_tool_diamondpick.png new file mode 100644 index 0000000..f9883c6 Binary files /dev/null and b/mods/default/textures/default_tool_diamondpick.png differ diff --git a/mods/default/textures/default_tool_diamondshovel.png b/mods/default/textures/default_tool_diamondshovel.png new file mode 100644 index 0000000..d0fe24d Binary files /dev/null and b/mods/default/textures/default_tool_diamondshovel.png differ diff --git a/mods/default/textures/default_tool_diamondsword.png b/mods/default/textures/default_tool_diamondsword.png new file mode 100644 index 0000000..dbccd0e Binary files /dev/null and b/mods/default/textures/default_tool_diamondsword.png differ diff --git a/mods/default/textures/default_tool_meseaxe.png b/mods/default/textures/default_tool_meseaxe.png new file mode 100644 index 0000000..c01fb4f Binary files /dev/null and b/mods/default/textures/default_tool_meseaxe.png differ diff --git a/mods/default/textures/default_tool_mesepick.png b/mods/default/textures/default_tool_mesepick.png new file mode 100644 index 0000000..1b2e25b Binary files /dev/null and b/mods/default/textures/default_tool_mesepick.png differ diff --git a/mods/default/textures/default_tool_meseshovel.png b/mods/default/textures/default_tool_meseshovel.png new file mode 100644 index 0000000..00813a2 Binary files /dev/null and b/mods/default/textures/default_tool_meseshovel.png differ diff --git a/mods/default/textures/default_tool_mesesword.png b/mods/default/textures/default_tool_mesesword.png new file mode 100644 index 0000000..d395d3a Binary files /dev/null and b/mods/default/textures/default_tool_mesesword.png differ diff --git a/mods/default/textures/default_tool_steelaxe.png b/mods/default/textures/default_tool_steelaxe.png new file mode 100644 index 0000000..1528cad Binary files /dev/null and b/mods/default/textures/default_tool_steelaxe.png differ diff --git a/mods/default/textures/default_tool_steelpick.png b/mods/default/textures/default_tool_steelpick.png new file mode 100644 index 0000000..a7543a1 Binary files /dev/null and b/mods/default/textures/default_tool_steelpick.png differ diff --git a/mods/default/textures/default_tool_steelshovel.png b/mods/default/textures/default_tool_steelshovel.png new file mode 100644 index 0000000..65e4045 Binary files /dev/null and b/mods/default/textures/default_tool_steelshovel.png differ diff --git a/mods/default/textures/default_tool_steelsword.png b/mods/default/textures/default_tool_steelsword.png new file mode 100644 index 0000000..630a339 Binary files /dev/null and b/mods/default/textures/default_tool_steelsword.png differ diff --git a/mods/default/textures/default_tool_stoneaxe.png b/mods/default/textures/default_tool_stoneaxe.png new file mode 100644 index 0000000..cc36054 Binary files /dev/null and b/mods/default/textures/default_tool_stoneaxe.png differ diff --git a/mods/default/textures/default_tool_stonepick.png b/mods/default/textures/default_tool_stonepick.png new file mode 100644 index 0000000..237d739 Binary files /dev/null and b/mods/default/textures/default_tool_stonepick.png differ diff --git a/mods/default/textures/default_tool_stoneshovel.png b/mods/default/textures/default_tool_stoneshovel.png new file mode 100644 index 0000000..11711bd Binary files /dev/null and b/mods/default/textures/default_tool_stoneshovel.png differ diff --git a/mods/default/textures/default_tool_stonesword.png b/mods/default/textures/default_tool_stonesword.png new file mode 100644 index 0000000..1a493ac Binary files /dev/null and b/mods/default/textures/default_tool_stonesword.png differ diff --git a/mods/default/textures/default_tool_woodaxe.png b/mods/default/textures/default_tool_woodaxe.png new file mode 100644 index 0000000..68f1fd8 Binary files /dev/null and b/mods/default/textures/default_tool_woodaxe.png differ diff --git a/mods/default/textures/default_tool_woodpick.png b/mods/default/textures/default_tool_woodpick.png new file mode 100644 index 0000000..0aed583 Binary files /dev/null and b/mods/default/textures/default_tool_woodpick.png differ diff --git a/mods/default/textures/default_tool_woodshovel.png b/mods/default/textures/default_tool_woodshovel.png new file mode 100644 index 0000000..dcef2b5 Binary files /dev/null and b/mods/default/textures/default_tool_woodshovel.png differ diff --git a/mods/default/textures/default_tool_woodsword.png b/mods/default/textures/default_tool_woodsword.png new file mode 100644 index 0000000..c78ba50 Binary files /dev/null and b/mods/default/textures/default_tool_woodsword.png differ diff --git a/mods/default/textures/default_torch_animated.png b/mods/default/textures/default_torch_animated.png new file mode 100644 index 0000000..cdf33ef Binary files /dev/null and b/mods/default/textures/default_torch_animated.png differ diff --git a/mods/default/textures/default_torch_on_ceiling_animated.png b/mods/default/textures/default_torch_on_ceiling_animated.png new file mode 100644 index 0000000..3a8b5ad Binary files /dev/null and b/mods/default/textures/default_torch_on_ceiling_animated.png differ diff --git a/mods/default/textures/default_torch_on_floor.png b/mods/default/textures/default_torch_on_floor.png new file mode 100644 index 0000000..bc4bdd6 Binary files /dev/null and b/mods/default/textures/default_torch_on_floor.png differ diff --git a/mods/default/textures/default_torch_on_floor_animated.png b/mods/default/textures/default_torch_on_floor_animated.png new file mode 100644 index 0000000..ad51c03 Binary files /dev/null and b/mods/default/textures/default_torch_on_floor_animated.png differ diff --git a/mods/default/textures/default_tree.png b/mods/default/textures/default_tree.png new file mode 100644 index 0000000..10e297b Binary files /dev/null and b/mods/default/textures/default_tree.png differ diff --git a/mods/default/textures/default_tree_top.png b/mods/default/textures/default_tree_top.png new file mode 100644 index 0000000..da99bce Binary files /dev/null and b/mods/default/textures/default_tree_top.png differ diff --git a/mods/default/textures/default_water.png b/mods/default/textures/default_water.png new file mode 100644 index 0000000..00500e9 Binary files /dev/null and b/mods/default/textures/default_water.png differ diff --git a/mods/default/textures/default_water_flowing_animated.png b/mods/default/textures/default_water_flowing_animated.png new file mode 100644 index 0000000..070d797 Binary files /dev/null and b/mods/default/textures/default_water_flowing_animated.png differ diff --git a/mods/default/textures/default_water_source_animated.png b/mods/default/textures/default_water_source_animated.png new file mode 100644 index 0000000..7e7f9ff Binary files /dev/null and b/mods/default/textures/default_water_source_animated.png differ diff --git a/mods/default/textures/default_wood.png b/mods/default/textures/default_wood.png new file mode 100644 index 0000000..af56d6c Binary files /dev/null and b/mods/default/textures/default_wood.png differ diff --git a/mods/default/textures/gui_formbg.png b/mods/default/textures/gui_formbg.png new file mode 100644 index 0000000..c543466 Binary files /dev/null and b/mods/default/textures/gui_formbg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_bg.png b/mods/default/textures/gui_furnace_arrow_bg.png new file mode 100644 index 0000000..046d8cd Binary files /dev/null and b/mods/default/textures/gui_furnace_arrow_bg.png differ diff --git a/mods/default/textures/gui_furnace_arrow_fg.png b/mods/default/textures/gui_furnace_arrow_fg.png new file mode 100644 index 0000000..8d3c396 Binary files /dev/null and b/mods/default/textures/gui_furnace_arrow_fg.png differ diff --git a/mods/default/textures/gui_hb_bg.png b/mods/default/textures/gui_hb_bg.png new file mode 100644 index 0000000..99248e1 Binary files /dev/null and b/mods/default/textures/gui_hb_bg.png differ diff --git a/mods/default/textures/gui_hotbar.png b/mods/default/textures/gui_hotbar.png new file mode 100644 index 0000000..73fb3ca Binary files /dev/null and b/mods/default/textures/gui_hotbar.png differ diff --git a/mods/default/textures/gui_hotbar_selected.png b/mods/default/textures/gui_hotbar_selected.png new file mode 100644 index 0000000..40bafe6 Binary files /dev/null and b/mods/default/textures/gui_hotbar_selected.png differ diff --git a/mods/default/textures/heart.png b/mods/default/textures/heart.png new file mode 100644 index 0000000..6d4e228 Binary files /dev/null and b/mods/default/textures/heart.png differ diff --git a/mods/default/textures/player.png b/mods/default/textures/player.png new file mode 100644 index 0000000..6d61c43 Binary files /dev/null and b/mods/default/textures/player.png differ diff --git a/mods/default/textures/player_back.png b/mods/default/textures/player_back.png new file mode 100644 index 0000000..5e9ef05 Binary files /dev/null and b/mods/default/textures/player_back.png differ diff --git a/mods/default/textures/wieldhand.png b/mods/default/textures/wieldhand.png new file mode 100644 index 0000000..69f4b7b Binary files /dev/null and b/mods/default/textures/wieldhand.png differ diff --git a/mods/default/tools.lua b/mods/default/tools.lua new file mode 100644 index 0000000..77ea969 --- /dev/null +++ b/mods/default/tools.lua @@ -0,0 +1,420 @@ +-- mods/default/tools.lua + +-- The hand +minetest.register_item(":", { + type = "none", + wield_image = "wieldhand.png", + wield_scale = {x=1,y=1,z=2.5}, + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1}, + snappy = {times={[3]=0.40}, uses=0, maxlevel=1}, + oddly_breakable_by_hand = {times={[1]=3.50,[2]=2.00,[3]=0.70}, uses=0} + }, + damage_groups = {fleshy=1}, + } +}) + +-- +-- Picks +-- + +minetest.register_tool("default:pick_wood", { + description = "Wooden Pickaxe", + inventory_image = "default_tool_woodpick.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + cracky = {times={[3]=1.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + groups = {flammable = 2}, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:pick_stone", { + description = "Stone Pickaxe", + inventory_image = "default_tool_stonepick.png", + tool_capabilities = { + full_punch_interval = 1.3, + max_drop_level=0, + groupcaps={ + cracky = {times={[2]=2.0, [3]=1.00}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:pick_steel", { + description = "Steel Pickaxe", + inventory_image = "default_tool_steelpick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:pick_bronze", { + description = "Bronze Pickaxe", + inventory_image = "default_tool_bronzepick.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:pick_mese", { + description = "Mese Pickaxe", + inventory_image = "default_tool_mesepick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.4, [2]=1.2, [3]=0.60}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:pick_diamond", { + description = "Diamond Pickaxe", + inventory_image = "default_tool_diamondpick.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +-- +-- Shovels +-- + +minetest.register_tool("default:shovel_wood", { + description = "Wooden Shovel", + inventory_image = "default_tool_woodshovel.png", + wield_image = "default_tool_woodshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + groups = {flammable = 2}, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:shovel_stone", { + description = "Stone Shovel", + inventory_image = "default_tool_stoneshovel.png", + wield_image = "default_tool_stoneshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.4, + max_drop_level=0, + groupcaps={ + crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:shovel_steel", { + description = "Steel Shovel", + inventory_image = "default_tool_steelshovel.png", + wield_image = "default_tool_steelshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:shovel_bronze", { + description = "Bronze Shovel", + inventory_image = "default_tool_bronzeshovel.png", + wield_image = "default_tool_bronzeshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.1, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=40, maxlevel=2}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:shovel_mese", { + description = "Mese Shovel", + inventory_image = "default_tool_meseshovel.png", + wield_image = "default_tool_meseshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + groupcaps={ + crumbly = {times={[1]=1.20, [2]=0.60, [3]=0.30}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:shovel_diamond", { + description = "Diamond Shovel", + inventory_image = "default_tool_diamondshovel.png", + wield_image = "default_tool_diamondshovel.png^[transformR90", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +-- +-- Axes +-- + +minetest.register_tool("default:axe_wood", { + description = "Wooden Axe", + inventory_image = "default_tool_woodaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=0, + groupcaps={ + choppy = {times={[2]=3.00, [3]=1.60}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + groups = {flammable = 2}, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:axe_stone", { + description = "Stone Axe", + inventory_image = "default_tool_stoneaxe.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + choppy={times={[1]=3.00, [2]=2.00, [3]=1.30}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=3}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:axe_steel", { + description = "Steel Axe", + inventory_image = "default_tool_steelaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:axe_bronze", { + description = "Bronze Axe", + inventory_image = "default_tool_bronzeaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:axe_mese", { + description = "Mese Axe", + inventory_image = "default_tool_meseaxe.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.20, [2]=1.00, [3]=0.60}, uses=20, maxlevel=3}, + }, + damage_groups = {fleshy=6}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:axe_diamond", { + description = "Diamond Axe", + inventory_image = "default_tool_diamondaxe.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=7}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +-- +-- Swords +-- + +minetest.register_tool("default:sword_wood", { + description = "Wooden Sword", + inventory_image = "default_tool_woodsword.png", + tool_capabilities = { + full_punch_interval = 1, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1}, + }, + damage_groups = {fleshy=2}, + }, + groups = {flammable = 2}, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:sword_stone", { + description = "Stone Sword", + inventory_image = "default_tool_stonesword.png", + tool_capabilities = { + full_punch_interval = 1.2, + max_drop_level=0, + groupcaps={ + snappy={times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1}, + }, + damage_groups = {fleshy=4}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:sword_steel", { + description = "Steel Sword", + inventory_image = "default_tool_steelsword.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:sword_bronze", { + description = "Bronze Sword", + inventory_image = "default_tool_bronzesword.png", + tool_capabilities = { + full_punch_interval = 0.8, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=40, maxlevel=2}, + }, + damage_groups = {fleshy=6}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:sword_mese", { + description = "Mese Sword", + inventory_image = "default_tool_mesesword.png", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=2.0, [2]=1.00, [3]=0.35}, uses=30, maxlevel=3}, + }, + damage_groups = {fleshy=7}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:sword_diamond", { + description = "Diamond Sword", + inventory_image = "default_tool_diamondsword.png", + tool_capabilities = { + full_punch_interval = 0.7, + max_drop_level=1, + groupcaps={ + snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3}, + }, + damage_groups = {fleshy=8}, + }, + sound = {breaks = "default_tool_breaks"}, +}) + +minetest.register_tool("default:key", { + description = "Key", + inventory_image = "default_key.png", + groups = {key = 1, not_in_creative_inventory = 1}, + stack_max = 1, + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local def = minetest.registered_nodes[node.name] + if def and def.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return def.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + if pointed_thing.type ~= "node" then + return itemstack + end + + local pos = pointed_thing.under + node = minetest.get_node(pos) + + if not node or node.name == "ignore" then + return itemstack + end + + local ndef = minetest.registered_nodes[node.name] + if not ndef then + return itemstack + end + + local on_key_use = ndef.on_key_use + if on_key_use then + on_key_use(pos, placer) + end + + return nil + end +}) diff --git a/mods/default/torch.lua b/mods/default/torch.lua new file mode 100644 index 0000000..a7b83cf --- /dev/null +++ b/mods/default/torch.lua @@ -0,0 +1,147 @@ + +--[[ + +Torch mod - formerly mod "Torches" +====================== + +(c) Copyright BlockMen (2013-2015) +(C) Copyright sofar (2016) + +This mod changes the default torch drawtype from "torchlike" to "mesh", +giving the torch a three dimensional appearance. The mesh contains the +proper pixel mapping to make the animation appear as a particle above +the torch, while in fact the animation is just the texture of the mesh. + + +License: +~~~~~~~~ +(c) Copyright BlockMen (2013-2015) + +Textures and Meshes/Models: +CC-BY 3.0 BlockMen +Note that the models were entirely done from scratch by sofar. + +Code: +Licensed under the GNU LGPL version 2.1 or higher. +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; + +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 + +See LICENSE.txt and http://www.gnu.org/licenses/lgpl-2.1.txt + +--]] + +minetest.register_node("default:torch", { + description = "Torch", + drawtype = "mesh", + mesh = "torch_floor.obj", + inventory_image = "default_torch_on_floor.png", + wield_image = "default_torch_on_floor.png", + tiles = {{ + name = "default_torch_on_floor_animated.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + liquids_pointable = false, + light_source = 12, + groups = {choppy=2, dig_immediate=3, flammable=1, attached_node=1, torch=1}, + drop = "default:torch", + selection_box = { + type = "wallmounted", + wall_bottom = {-1/8, -1/2, -1/8, 1/8, 2/16, 1/8}, + }, + sounds = default.node_sound_wood_defaults(), + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local def = minetest.registered_nodes[node.name] + if def and def.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return def.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + local above = pointed_thing.above + local wdir = minetest.dir_to_wallmounted(vector.subtract(under, above)) + local fakestack = itemstack + if wdir == 0 then + fakestack:set_name("default:torch_ceiling") + elseif wdir == 1 then + fakestack:set_name("default:torch") + else + fakestack:set_name("default:torch_wall") + end + + itemstack = minetest.item_place(fakestack, placer, pointed_thing, wdir) + itemstack:set_name("default:torch") + + return itemstack + end +}) + +minetest.register_node("default:torch_wall", { + drawtype = "mesh", + mesh = "torch_wall.obj", + tiles = {{ + name = "default_torch_on_floor_animated.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 12, + groups = {choppy=2, dig_immediate=3, flammable=1, not_in_creative_inventory=1, attached_node=1, torch=1}, + drop = "default:torch", + selection_box = { + type = "wallmounted", + wall_side = {-1/2, -1/2, -1/8, -1/8, 1/8, 1/8}, + }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("default:torch_ceiling", { + drawtype = "mesh", + mesh = "torch_ceiling.obj", + tiles = {{ + name = "default_torch_on_floor_animated.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 3.3} + }}, + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + walkable = false, + light_source = 12, + groups = {choppy=2, dig_immediate=3, flammable=1, not_in_creative_inventory=1, attached_node=1, torch=1}, + drop = "default:torch", + selection_box = { + type = "wallmounted", + wall_top = {-1/8, -1/16, -5/16, 1/8, 1/2, 1/8}, + }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_lbm({ + name = "default:3dtorch", + nodenames = {"default:torch", "torches:floor", "torches:wall"}, + action = function(pos, node) + if node.param2 == 0 then + minetest.set_node(pos, {name = "default:torch_ceiling", + param2 = node.param2}) + elseif node.param2 == 1 then + minetest.set_node(pos, {name = "default:torch", + param2 = node.param2}) + else + minetest.set_node(pos, {name = "default:torch_wall", + param2 = node.param2}) + end + end +}) diff --git a/mods/default/trees.lua b/mods/default/trees.lua new file mode 100644 index 0000000..44176d7 --- /dev/null +++ b/mods/default/trees.lua @@ -0,0 +1,537 @@ +local random = math.random + +-- +-- Grow trees from saplings +-- + +-- 'can grow' function + +function default.can_grow(pos) + local node_under = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) + if not node_under then + return false + end + local name_under = node_under.name + local is_soil = minetest.get_item_group(name_under, "soil") + if is_soil == 0 then + return false + end + local light_level = minetest.get_node_light(pos) + if not light_level or light_level < 13 then + return false + end + return true +end + + +-- 'is snow nearby' function + +local function is_snow_nearby(pos) + return minetest.find_node_near(pos, 1, {"group:snowy"}) +end + + +-- Grow sapling + +function default.grow_sapling(pos) + if not default.can_grow(pos) then + -- try again 5 min later + minetest.get_node_timer(pos):start(300) + return + end + + local mg_name = minetest.get_mapgen_setting("mg_name") + local node = minetest.get_node(pos) + if node.name == "default:sapling" then + minetest.log("action", "A sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + if mg_name == "v6" then + default.grow_tree(pos, random(1, 4) == 1) + else + default.grow_new_apple_tree(pos) + end + elseif node.name == "default:junglesapling" then + minetest.log("action", "A jungle sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + if mg_name == "v6" then + default.grow_jungle_tree(pos) + else + default.grow_new_jungle_tree(pos) + end + elseif node.name == "default:pine_sapling" then + minetest.log("action", "A pine sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + local snow = is_snow_nearby(pos) + if mg_name == "v6" then + default.grow_pine_tree(pos, snow) + elseif snow then + default.grow_new_snowy_pine_tree(pos) + else + default.grow_new_pine_tree(pos) + end + elseif node.name == "default:acacia_sapling" then + minetest.log("action", "An acacia sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_new_acacia_tree(pos) + elseif node.name == "default:aspen_sapling" then + minetest.log("action", "An aspen sapling grows into a tree at ".. + minetest.pos_to_string(pos)) + default.grow_new_aspen_tree(pos) + elseif node.name == "default:bush_sapling" then + minetest.log("action", "A bush sapling grows into a bush at ".. + minetest.pos_to_string(pos)) + default.grow_bush(pos) + elseif node.name == "default:acacia_bush_sapling" then + minetest.log("action", "An acacia bush sapling grows into a bush at ".. + minetest.pos_to_string(pos)) + default.grow_acacia_bush(pos) + end +end + +minetest.register_lbm({ + name = "default:convert_saplings_to_node_timer", + nodenames = {"default:sapling", "default:junglesapling", + "default:pine_sapling", "default:acacia_sapling", + "default:aspen_sapling"}, + action = function(pos) + minetest.get_node_timer(pos):start(math.random(300, 1500)) + end +}) + +-- +-- Tree generation +-- + +-- Apple tree and jungle tree trunk and leaves function + +local function add_trunk_and_leaves(data, a, pos, tree_cid, leaves_cid, + height, size, iters, is_apple_tree) + local x, y, z = pos.x, pos.y, pos.z + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_apple = minetest.get_content_id("default:apple") + + -- Trunk + data[a:index(x, y, z)] = tree_cid -- Force-place lowest trunk node to replace sapling + for yy = y + 1, y + height - 1 do + local vi = a:index(x, yy, z) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or node_id == leaves_cid then + data[vi] = tree_cid + end + end + + -- Force leaves near the trunk + for z_dist = -1, 1 do + for y_dist = -size, 1 do + local vi = a:index(x - 1, y + height + y_dist, z + z_dist) + for x_dist = -1, 1 do + if data[vi] == c_air or data[vi] == c_ignore then + if is_apple_tree and random(1, 8) == 1 then + data[vi] = c_apple + else + data[vi] = leaves_cid + end + end + vi = vi + 1 + end + end + end + + -- Randomly add leaves in 2x2x2 clusters. + for i = 1, iters do + local clust_x = x + random(-size, size - 1) + local clust_y = y + height + random(-size, 0) + local clust_z = z + random(-size, size - 1) + + for xi = 0, 1 do + for yi = 0, 1 do + for zi = 0, 1 do + local vi = a:index(clust_x + xi, clust_y + yi, clust_z + zi) + if data[vi] == c_air or data[vi] == c_ignore then + if is_apple_tree and random(1, 8) == 1 then + data[vi] = c_apple + else + data[vi] = leaves_cid + end + end + end + end + end + end +end + + +-- Apple tree + +function default.grow_tree(pos, is_apple_tree, bad) + --[[ + NOTE: Tree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + --]] + if bad then + error("Deprecated use of default.grow_tree") + end + + local x, y, z = pos.x, pos.y, pos.z + local height = random(4, 5) + local c_tree = minetest.get_content_id("default:tree") + local c_leaves = minetest.get_content_id("default:leaves") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 2, y = y, z = z - 2}, + {x = x + 2, y = y + height + 1, z = z + 2} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + add_trunk_and_leaves(data, a, pos, c_tree, c_leaves, height, 2, 8, is_apple_tree) + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- Jungle tree + +function default.grow_jungle_tree(pos, bad) + --[[ + NOTE: Jungletree-placing code is currently duplicated in the engine + and in games that have saplings; both are deprecated but not + replaced yet + --]] + if bad then + error("Deprecated use of default.grow_jungle_tree") + end + + local x, y, z = pos.x, pos.y, pos.z + local height = random(8, 12) + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_jungletree = minetest.get_content_id("default:jungletree") + local c_jungleleaves = minetest.get_content_id("default:jungleleaves") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 3, y = y - 1, z = z - 3}, + {x = x + 3, y = y + height + 1, z = z + 3} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + add_trunk_and_leaves(data, a, pos, c_jungletree, c_jungleleaves, + height, 3, 30, false) + + -- Roots + for z_dist = -1, 1 do + local vi_1 = a:index(x - 1, y - 1, z + z_dist) + local vi_2 = a:index(x - 1, y, z + z_dist) + for x_dist = -1, 1 do + if random(1, 3) >= 2 then + if data[vi_1] == c_air or data[vi_1] == c_ignore then + data[vi_1] = c_jungletree + elseif data[vi_2] == c_air or data[vi_2] == c_ignore then + data[vi_2] = c_jungletree + end + end + vi_1 = vi_1 + 1 + vi_2 = vi_2 + 1 + end + end + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- Pine tree from mg mapgen mod, design by sfan5, pointy top added by paramat + +local function add_pine_needles(data, vi, c_air, c_ignore, c_snow, c_pine_needles) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or node_id == c_snow then + data[vi] = c_pine_needles + end +end + +local function add_snow(data, vi, c_air, c_ignore, c_snow) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore then + data[vi] = c_snow + end +end + +function default.grow_pine_tree(pos, snow) + local x, y, z = pos.x, pos.y, pos.z + local maxy = y + random(9, 13) -- Trunk top + + local c_air = minetest.get_content_id("air") + local c_ignore = minetest.get_content_id("ignore") + local c_pine_tree = minetest.get_content_id("default:pine_tree") + local c_pine_needles = minetest.get_content_id("default:pine_needles") + local c_snow = minetest.get_content_id("default:snow") + + local vm = minetest.get_voxel_manip() + local minp, maxp = vm:read_from_map( + {x = x - 3, y = y, z = z - 3}, + {x = x + 3, y = maxy + 3, z = z + 3} + ) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + + -- Upper branches layer + local dev = 3 + for yy = maxy - 1, maxy + 1 do + for zz = z - dev, z + dev do + local vi = a:index(x - dev, yy, zz) + local via = a:index(x - dev, yy + 1, zz) + for xx = x - dev, x + dev do + if random() < 0.95 - dev * 0.05 then + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + end + vi = vi + 1 + via = via + 1 + end + end + dev = dev - 1 + end + + -- Centre top nodes + add_pine_needles(data, a:index(x, maxy + 1, z), c_air, c_ignore, c_snow, + c_pine_needles) + add_pine_needles(data, a:index(x, maxy + 2, z), c_air, c_ignore, c_snow, + c_pine_needles) -- Paramat added a pointy top node + if snow then + add_snow(data, a:index(x, maxy + 3, z), c_air, c_ignore, c_snow) + end + + -- Lower branches layer + local my = 0 + for i = 1, 20 do -- Random 2x2 squares of needles + local xi = x + random(-3, 2) + local yy = maxy + random(-6, -5) + local zi = z + random(-3, 2) + if yy > my then + my = yy + end + for zz = zi, zi+1 do + local vi = a:index(xi, yy, zz) + local via = a:index(xi, yy + 1, zz) + for xx = xi, xi + 1 do + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + vi = vi + 1 + via = via + 1 + end + end + end + + dev = 2 + for yy = my + 1, my + 2 do + for zz = z - dev, z + dev do + local vi = a:index(x - dev, yy, zz) + local via = a:index(x - dev, yy + 1, zz) + for xx = x - dev, x + dev do + if random() < 0.95 - dev * 0.05 then + add_pine_needles(data, vi, c_air, c_ignore, c_snow, + c_pine_needles) + if snow then + add_snow(data, via, c_air, c_ignore, c_snow) + end + end + vi = vi + 1 + via = via + 1 + end + end + dev = dev - 1 + end + + -- Trunk + -- Force-place lowest trunk node to replace sapling + data[a:index(x, y, z)] = c_pine_tree + for yy = y + 1, maxy do + local vi = a:index(x, yy, z) + local node_id = data[vi] + if node_id == c_air or node_id == c_ignore or + node_id == c_pine_needles or node_id == c_snow then + data[vi] = c_pine_tree + end + end + + vm:set_data(data) + vm:write_to_map() + vm:update_map() +end + + +-- New apple tree + +function default.grow_new_apple_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/apple_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New jungle tree + +function default.grow_new_jungle_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/jungle_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New pine tree + +function default.grow_new_pine_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/pine_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "0", nil, false) +end + + +-- New snowy pine tree + +function default.grow_new_snowy_pine_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/snowy_pine_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "random", nil, false) +end + + +-- New acacia tree + +function default.grow_new_acacia_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/acacia_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 4, y = pos.y - 1, z = pos.z - 4}, + path, "random", nil, false) +end + + +-- New aspen tree + +function default.grow_new_aspen_tree(pos) + local path = minetest.get_modpath("default") .. + "/schematics/aspen_tree_from_sapling.mts" + minetest.place_schematic({x = pos.x - 2, y = pos.y - 1, z = pos.z - 2}, + path, "0", nil, false) +end + + +-- Bushes do not need 'from sapling' schematic variants because +-- only the stem node is force-placed in the schematic. + +-- Bush + +function default.grow_bush(pos) + local path = minetest.get_modpath("default") .. + "/schematics/bush.mts" + minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, + path, "0", nil, false) +end + + +-- Acacia bush + +function default.grow_acacia_bush(pos) + local path = minetest.get_modpath("default") .. + "/schematics/acacia_bush.mts" + minetest.place_schematic({x = pos.x - 1, y = pos.y - 1, z = pos.z - 1}, + path, "0", nil, false) +end + + +-- +-- Sapling 'on place' function to check protection of node and resulting tree volume +-- + +function default.sapling_on_place(itemstack, placer, pointed_thing, + sapling_name, minp_relative, maxp_relative, interval) + -- Position of sapling + local pos = pointed_thing.under + local node = minetest.get_node_or_nil(pos) + local pdef = node and minetest.registered_nodes[node.name] + + if pdef and pdef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return pdef.on_rightclick(pos, node, placer, itemstack, pointed_thing) + end + + if not pdef or not pdef.buildable_to then + pos = pointed_thing.above + node = minetest.get_node_or_nil(pos) + pdef = node and minetest.registered_nodes[node.name] + if not pdef or not pdef.buildable_to then + return itemstack + end + end + + local player_name = placer and placer:get_player_name() or "" + -- Check sapling position for protection + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return itemstack + end + -- Check tree volume for protection + if default.intersects_protection( + vector.add(pos, minp_relative), + vector.add(pos, maxp_relative), + player_name, + interval) then + minetest.record_protection_violation(pos, player_name) + -- Print extra information to explain + minetest.chat_send_player(player_name, "Tree will intersect protection") + return itemstack + end + + minetest.log("action", player_name .. " places node " + .. sapling_name .. " at " .. minetest.pos_to_string(pos)) + + local take_item = not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) + local newnode = {name = sapling_name} + local ndef = minetest.registered_nodes[sapling_name] + minetest.set_node(pos, newnode) + + -- Run callback + if ndef and ndef.after_place_node then + -- Deepcopy place_to and pointed_thing because callback can modify it + if ndef.after_place_node(table.copy(pos), placer, + itemstack, table.copy(pointed_thing)) then + take_item = false + end + end + + -- Run script hook + for _, callback in ipairs(minetest.registered_on_placenodes) do + -- Deepcopy pos, node and pointed_thing because callback can modify them + if callback(table.copy(pos), table.copy(newnode), + placer, table.copy(node or {}), + itemstack, table.copy(pointed_thing)) then + take_item = false + end + end + + if take_item then + itemstack:take_item() + end + + return itemstack +end diff --git a/mods/doors/README.txt b/mods/doors/README.txt new file mode 100644 index 0000000..9ad7093 --- /dev/null +++ b/mods/doors/README.txt @@ -0,0 +1,84 @@ +Minetest Game mod: doors +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by PilzAdam (MIT) + +Modified by BlockMen (MIT): Added sounds, glass doors (glass, obsidian glass) and trapdoor. + +Modified by sofar (sofar@foo-projects.org) (MIT): +Added Steel trapdoor. +Re-implemented most of the door algorithms, added meshes, UV wrapped texture. +Added doors API to facilitate coding mods accessing and operating doors. +Added Fence Gate model, code, and sounds. + +Various Minetest developers and contributors (MIT) + + +Authors of media (textures) +--------------------------- +Following textures created by Fernando Zapata (CC BY-SA 3.0): + door_wood.png + door_wood_a.png + door_wood_a_r.png + door_wood_b.png + door_wood_b_r.png + +Following textures created by BlockMen (CC BY-SA 3.0): + door_trapdoor.png + door_obsidian_glass_side.png + +Following textures created by celeron55 (CC BY-SA 3.0): + door_glass_a.png + door_glass_b.png + +Following textures created by PenguinDad (CC BY-SA 4.0): + door_glass.png + door_obsidian_glass.png + +Following textures created by sofar (CC-BY-SA-3.0): + doors_trapdoor_steel.png + doors_trapdoor_steel_side.png + door_trapdoor_side.png + +Obsidian door textures by red-001 based on textures by Pilzadam and BlockMen (CC BY-SA 3.0): + door_obsidian_glass.png + +Glass door textures by red-001 based on textures by celeron55 (CC BY-SA 3.0): + door_glass.png + +All other textures (created by PilzAdam) (CC BY-SA 3.0): + +Door textures were converted to the new texture map by sofar, paramat and +red-001, under the same license as the originals. + + +Authors of media (models) +------------------------- +Door 3d models by sofar (CC-BY-SA-3.0) + - door_a.obj + - door_b.obj +Fence gate models by sofar (CC-BY-SA-3.0) + - fencegate_open.obj + - fencegate_closed.obj + + +Authors of media (sounds) +------------------------- +Opening-Sound created by CGEffex (CC BY 3.0), modified by BlockMen + door_open.ogg +Closing-Sound created by bennstir (CC BY 3.0) + door_close.ogg +fencegate_open.ogg: + http://www.freesound.org/people/mhtaylor67/sounds/126041/ - (CC0 1.0) +fencegate_close.ogg: + http://www.freesound.org/people/BarkersPinhead/sounds/274807/ - (CC-BY-3.0) + http://www.freesound.org/people/rivernile7/sounds/249573/ - (CC-BY-3.0) +Steel door sounds open & close (CC-BY-3.0) by HazMatt + - http://www.freesound.org/people/HazMattt/sounds/187283/ + doors_steel_door_open.ogg + doors_steel_door_close.ogg +doors_glass_door_open.ogg, doors_glass_door_close.ogg: + https://www.freesound.org/people/SkeetMasterFunk69/sounds/235546/ (CC0 1.0) diff --git a/mods/doors/depends.txt b/mods/doors/depends.txt new file mode 100644 index 0000000..5e28bee --- /dev/null +++ b/mods/doors/depends.txt @@ -0,0 +1,2 @@ +default +screwdriver? diff --git a/mods/doors/init.lua b/mods/doors/init.lua new file mode 100644 index 0000000..41e8b21 --- /dev/null +++ b/mods/doors/init.lua @@ -0,0 +1,859 @@ +-- our API object +doors = {} + +-- private data +local _doors = {} +_doors.registered_doors = {} +_doors.registered_trapdoors = {} + +local function replace_old_owner_information(pos) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("doors_owner") + if owner and owner ~= "" then + meta:set_string("owner", owner) + meta:set_string("doors_owner", "") + end +end + +-- returns an object to a door object or nil +function doors.get(pos) + local node_name = minetest.get_node(pos).name + if _doors.registered_doors[node_name] then + -- A normal upright door + return { + pos = pos, + open = function(self, player) + if self:state() then + return false + end + return _doors.door_toggle(self.pos, nil, player) + end, + close = function(self, player) + if not self:state() then + return false + end + return _doors.door_toggle(self.pos, nil, player) + end, + toggle = function(self, player) + return _doors.door_toggle(self.pos, nil, player) + end, + state = function(self) + local state = minetest.get_meta(self.pos):get_int("state") + return state %2 == 1 + end + } + elseif _doors.registered_trapdoors[node_name] then + -- A trapdoor + return { + pos = pos, + open = function(self, player) + if self:state() then + return false + end + return _doors.trapdoor_toggle(self.pos, nil, player) + end, + close = function(self, player) + if not self:state() then + return false + end + return _doors.trapdoor_toggle(self.pos, nil, player) + end, + toggle = function(self, player) + return _doors.trapdoor_toggle(self.pos, nil, player) + end, + state = function(self) + return minetest.get_node(self.pos).name:sub(-5) == "_open" + end + } + else + return nil + end +end + +-- this hidden node is placed on top of the bottom, and prevents +-- nodes from being placed in the top half of the door. +minetest.register_node("doors:hidden", { + description = "Hidden Door Segment", + -- can't use airlike otherwise falling nodes will turn to entities + -- and will be forever stuck until door is removed. + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + -- has to be walkable for falling nodes to stop falling. + walkable = true, + pointable = false, + diggable = false, + buildable_to = false, + floodable = false, + drop = "", + groups = {not_in_creative_inventory = 1}, + on_blast = function() end, + tiles = {"doors_blank.png"}, + -- 1px transparent block inside door hinge near node top. + node_box = { + type = "fixed", + fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32}, + }, + -- collision_box needed otherise selection box would be full node size + collision_box = { + type = "fixed", + fixed = {-15/32, 13/32, -15/32, -13/32, 1/2, -13/32}, + }, +}) + +-- table used to aid door opening/closing +local transform = { + { + {v = "_a", param2 = 3}, + {v = "_a", param2 = 0}, + {v = "_a", param2 = 1}, + {v = "_a", param2 = 2}, + }, + { + {v = "_b", param2 = 1}, + {v = "_b", param2 = 2}, + {v = "_b", param2 = 3}, + {v = "_b", param2 = 0}, + }, + { + {v = "_b", param2 = 1}, + {v = "_b", param2 = 2}, + {v = "_b", param2 = 3}, + {v = "_b", param2 = 0}, + }, + { + {v = "_a", param2 = 3}, + {v = "_a", param2 = 0}, + {v = "_a", param2 = 1}, + {v = "_a", param2 = 2}, + }, +} + +function _doors.door_toggle(pos, node, clicker) + local meta = minetest.get_meta(pos) + node = node or minetest.get_node(pos) + local def = minetest.registered_nodes[node.name] + local name = def.door.name + + local state = meta:get_string("state") + if state == "" then + -- fix up lvm-placed right-hinged doors, default closed + if node.name:sub(-2) == "_b" then + state = 2 + else + state = 0 + end + else + state = tonumber(state) + end + + replace_old_owner_information(pos) + + if clicker and not default.can_interact_with_node(clicker, pos) then + return false + end + + -- until Lua-5.2 we have no bitwise operators :( + if state % 2 == 1 then + state = state - 1 + else + state = state + 1 + end + + local dir = node.param2 + if state % 2 == 0 then + minetest.sound_play(def.door.sounds[1], + {pos = pos, gain = 0.3, max_hear_distance = 10}) + else + minetest.sound_play(def.door.sounds[2], + {pos = pos, gain = 0.3, max_hear_distance = 10}) + end + + minetest.swap_node(pos, { + name = name .. transform[state + 1][dir+1].v, + param2 = transform[state + 1][dir+1].param2 + }) + meta:set_int("state", state) + + return true +end + + +local function on_place_node(place_to, newnode, + placer, oldnode, itemstack, pointed_thing) + -- Run script hook + for _, callback in ipairs(minetest.registered_on_placenodes) do + -- Deepcopy pos, node and pointed_thing because callback can modify them + local place_to_copy = {x = place_to.x, y = place_to.y, z = place_to.z} + local newnode_copy = + {name = newnode.name, param1 = newnode.param1, param2 = newnode.param2} + local oldnode_copy = + {name = oldnode.name, param1 = oldnode.param1, param2 = oldnode.param2} + local pointed_thing_copy = { + type = pointed_thing.type, + above = vector.new(pointed_thing.above), + under = vector.new(pointed_thing.under), + ref = pointed_thing.ref, + } + callback(place_to_copy, newnode_copy, placer, + oldnode_copy, itemstack, pointed_thing_copy) + end +end + +local function can_dig_door(pos, digger) + replace_old_owner_information(pos) + return default.can_interact_with_node(digger, pos) +end + +function doors.register(name, def) + if not name:find(":") then + name = "doors:" .. name + end + + -- replace old doors of this type automatically + minetest.register_lbm({ + name = ":doors:replace_" .. name:gsub(":", "_"), + nodenames = {name.."_b_1", name.."_b_2"}, + action = function(pos, node) + local l = tonumber(node.name:sub(-1)) + local meta = minetest.get_meta(pos) + local h = meta:get_int("right") + 1 + local p2 = node.param2 + local replace = { + {{type = "a", state = 0}, {type = "a", state = 3}}, + {{type = "b", state = 1}, {type = "b", state = 2}} + } + local new = replace[l][h] + -- retain infotext and doors_owner fields + minetest.swap_node(pos, {name = name .. "_" .. new.type, param2 = p2}) + meta:set_int("state", new.state) + -- properly place doors:hidden at the right spot + local p3 = p2 + if new.state >= 2 then + p3 = (p3 + 3) % 4 + end + if new.state % 2 == 1 then + if new.state >= 2 then + p3 = (p3 + 1) % 4 + else + p3 = (p3 + 3) % 4 + end + end + -- wipe meta on top node as it's unused + minetest.set_node({x = pos.x, y = pos.y + 1, z = pos.z}, + {name = "doors:hidden", param2 = p3}) + end + }) + + minetest.register_craftitem(":" .. name, { + description = def.description, + inventory_image = def.inventory_image, + groups = table.copy(def.groups), + + on_place = function(itemstack, placer, pointed_thing) + local pos + + if not pointed_thing.type == "node" then + return itemstack + end + + local node = minetest.get_node(pointed_thing.under) + local pdef = minetest.registered_nodes[node.name] + if pdef and pdef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return pdef.on_rightclick(pointed_thing.under, + node, placer, itemstack, pointed_thing) + end + + if pdef and pdef.buildable_to then + pos = pointed_thing.under + else + pos = pointed_thing.above + node = minetest.get_node(pos) + pdef = minetest.registered_nodes[node.name] + if not pdef or not pdef.buildable_to then + return itemstack + end + end + + local above = {x = pos.x, y = pos.y + 1, z = pos.z} + local top_node = minetest.get_node_or_nil(above) + local topdef = top_node and minetest.registered_nodes[top_node.name] + + if not topdef or not topdef.buildable_to then + return itemstack + end + + local pn = placer and placer:get_player_name() or "" + if minetest.is_protected(pos, pn) or minetest.is_protected(above, pn) then + return itemstack + end + + local dir = placer and minetest.dir_to_facedir(placer:get_look_dir()) or 0 + + local ref = { + {x = -1, y = 0, z = 0}, + {x = 0, y = 0, z = 1}, + {x = 1, y = 0, z = 0}, + {x = 0, y = 0, z = -1}, + } + + local aside = { + x = pos.x + ref[dir + 1].x, + y = pos.y + ref[dir + 1].y, + z = pos.z + ref[dir + 1].z, + } + + local state = 0 + if minetest.get_item_group(minetest.get_node(aside).name, "door") == 1 then + state = state + 2 + minetest.set_node(pos, {name = name .. "_b", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = (dir + 3) % 4}) + else + minetest.set_node(pos, {name = name .. "_a", param2 = dir}) + minetest.set_node(above, {name = "doors:hidden", param2 = dir}) + end + + local meta = minetest.get_meta(pos) + meta:set_int("state", state) + + if def.protected then + meta:set_string("owner", pn) + meta:set_string("infotext", "Owned by " .. pn) + end + + if not (creative and creative.is_enabled_for and creative.is_enabled_for(pn)) then + itemstack:take_item() + end + + minetest.sound_play(def.sounds.place, {pos = pos}) + + on_place_node(pos, minetest.get_node(pos), + placer, node, itemstack, pointed_thing) + + return itemstack + end + }) + def.inventory_image = nil + + if def.recipe then + minetest.register_craft({ + output = name, + recipe = def.recipe, + }) + end + def.recipe = nil + + if not def.sounds then + def.sounds = default.node_sound_wood_defaults() + end + + if not def.sound_open then + def.sound_open = "doors_door_open" + end + + if not def.sound_close then + def.sound_close = "doors_door_close" + end + + def.groups.not_in_creative_inventory = 1 + def.groups.door = 1 + def.drop = name + def.door = { + name = name, + sounds = { def.sound_close, def.sound_open }, + } + + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + _doors.door_toggle(pos, node, clicker) + return itemstack + end + def.after_dig_node = function(pos, node, meta, digger) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + minetest.check_for_falling({x = pos.x, y = pos.y + 1, z = pos.z}) + end + def.on_rotate = function(pos, node, user, mode, new_param2) + return false + end + + if def.protected then + def.can_dig = can_dig_door + def.on_blast = function() end + def.on_key_use = function(pos, player) + local door = doors.get(pos) + door:toggle(player) + end + def.on_skeleton_key_use = function(pos, player, newsecret) + replace_old_owner_information(pos) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pname = player:get_player_name() + + -- verify placer is owner of lockable door + if owner ~= pname then + minetest.record_protection_violation(pos, pname) + minetest.chat_send_player(pname, "You do not own this locked door.") + return nil + end + + local secret = meta:get_string("key_lock_secret") + if secret == "" then + secret = newsecret + meta:set_string("key_lock_secret", secret) + end + + return secret, "a locked door", owner + end + else + def.on_blast = function(pos, intensity) + minetest.remove_node(pos) + -- hidden node doesn't get blasted away. + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + return {name} + end + end + + def.on_destruct = function(pos) + minetest.remove_node({x = pos.x, y = pos.y + 1, z = pos.z}) + end + + def.drawtype = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.sunlight_propagates = true + def.walkable = true + def.is_ground_content = false + def.buildable_to = false + def.selection_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} + def.collision_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-6/16}} + + def.mesh = "door_a.obj" + minetest.register_node(":" .. name .. "_a", def) + + def.mesh = "door_b.obj" + minetest.register_node(":" .. name .. "_b", def) + + _doors.registered_doors[name .. "_a"] = true + _doors.registered_doors[name .. "_b"] = true +end + +doors.register("door_wood", { + tiles = {{ name = "doors_door_wood.png", backface_culling = true }}, + description = "Wooden Door", + inventory_image = "doors_item_wood.png", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + recipe = { + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"}, + {"group:wood", "group:wood"}, + } +}) + +doors.register("door_steel", { + tiles = {{name = "doors_door_steel.png", backface_culling = true}}, + description = "Steel Door", + inventory_image = "doors_item_steel.png", + protected = true, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), + sound_open = "doors_steel_door_open", + sound_close = "doors_steel_door_close", + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, + } +}) + +doors.register("door_glass", { + tiles = {"doors_door_glass.png"}, + description = "Glass Door", + inventory_image = "doors_item_glass.png", + groups = {cracky=3, oddly_breakable_by_hand=3}, + sounds = default.node_sound_glass_defaults(), + sound_open = "doors_glass_door_open", + sound_close = "doors_glass_door_close", + recipe = { + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"}, + {"default:glass", "default:glass"}, + } +}) + +doors.register("door_obsidian_glass", { + tiles = {"doors_door_obsidian_glass.png"}, + description = "Obsidian Glass Door", + inventory_image = "doors_item_obsidian_glass.png", + groups = {cracky=3}, + sounds = default.node_sound_glass_defaults(), + sound_open = "doors_glass_door_open", + sound_close = "doors_glass_door_close", + recipe = { + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"}, + {"default:obsidian_glass", "default:obsidian_glass"}, + }, +}) + +-- Capture mods using the old API as best as possible. +function doors.register_door(name, def) + if def.only_placer_can_open then + def.protected = true + end + def.only_placer_can_open = nil + + local i = name:find(":") + local modname = name:sub(1, i - 1) + if not def.tiles then + if def.protected then + def.tiles = {{name = "doors_door_steel.png", backface_culling = true}} + else + def.tiles = {{name = "doors_door_wood.png", backface_culling = true}} + end + minetest.log("warning", modname .. " registered door \"" .. name .. "\" " .. + "using deprecated API method \"doors.register_door()\" but " .. + "did not provide the \"tiles\" parameter. A fallback tiledef " .. + "will be used instead.") + end + + doors.register(name, def) +end + +----trapdoor---- + +function _doors.trapdoor_toggle(pos, node, clicker) + node = node or minetest.get_node(pos) + + replace_old_owner_information(pos) + + if clicker and not default.can_interact_with_node(clicker, pos) then + return false + end + + local def = minetest.registered_nodes[node.name] + + if string.sub(node.name, -5) == "_open" then + minetest.sound_play(def.sound_close, + {pos = pos, gain = 0.3, max_hear_distance = 10}) + minetest.swap_node(pos, {name = string.sub(node.name, 1, + string.len(node.name) - 5), param1 = node.param1, param2 = node.param2}) + else + minetest.sound_play(def.sound_open, + {pos = pos, gain = 0.3, max_hear_distance = 10}) + minetest.swap_node(pos, {name = node.name .. "_open", + param1 = node.param1, param2 = node.param2}) + end +end + +function doors.register_trapdoor(name, def) + if not name:find(":") then + name = "doors:" .. name + end + + local name_closed = name + local name_opened = name.."_open" + + def.on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + _doors.trapdoor_toggle(pos, node, clicker) + return itemstack + end + + -- Common trapdoor configuration + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.is_ground_content = false + + if def.protected then + def.can_dig = can_dig_door + def.after_place_node = function(pos, placer, itemstack, pointed_thing) + local pn = placer:get_player_name() + local meta = minetest.get_meta(pos) + meta:set_string("owner", pn) + meta:set_string("infotext", "Owned by "..pn) + + return (creative and creative.is_enabled_for and creative.is_enabled_for(pn)) + end + + def.on_blast = function() end + def.on_key_use = function(pos, player) + local door = doors.get(pos) + door:toggle(player) + end + def.on_skeleton_key_use = function(pos, player, newsecret) + replace_old_owner_information(pos) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local pname = player:get_player_name() + + -- verify placer is owner of lockable door + if owner ~= pname then + minetest.record_protection_violation(pos, pname) + minetest.chat_send_player(pname, "You do not own this trapdoor.") + return nil + end + + local secret = meta:get_string("key_lock_secret") + if secret == "" then + secret = newsecret + meta:set_string("key_lock_secret", secret) + end + + return secret, "a locked trapdoor", owner + end + else + def.on_blast = function(pos, intensity) + minetest.remove_node(pos) + return {name} + end + end + + if not def.sounds then + def.sounds = default.node_sound_wood_defaults() + end + + if not def.sound_open then + def.sound_open = "doors_door_open" + end + + if not def.sound_close then + def.sound_close = "doors_door_close" + end + + local def_opened = table.copy(def) + local def_closed = table.copy(def) + + def_closed.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.tiles = {def.tile_front, + def.tile_front .. '^[transformFY', + def.tile_side, def.tile_side, + def.tile_side, def.tile_side} + + def_opened.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.tiles = {def.tile_side, def.tile_side, + def.tile_side .. '^[transform3', + def.tile_side .. '^[transform1', + def.tile_front .. '^[transform46', + def.tile_front .. '^[transform6'} + + def_opened.drop = name_closed + def_opened.groups.not_in_creative_inventory = 1 + + minetest.register_node(name_opened, def_opened) + minetest.register_node(name_closed, def_closed) + + _doors.registered_trapdoors[name_opened] = true + _doors.registered_trapdoors[name_closed] = true +end + +doors.register_trapdoor("doors:trapdoor", { + description = "Trapdoor", + inventory_image = "doors_trapdoor.png", + wield_image = "doors_trapdoor.png", + tile_front = "doors_trapdoor.png", + tile_side = "doors_trapdoor_side.png", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, door = 1}, +}) + +doors.register_trapdoor("doors:trapdoor_steel", { + description = "Steel Trapdoor", + inventory_image = "doors_trapdoor_steel.png", + wield_image = "doors_trapdoor_steel.png", + tile_front = "doors_trapdoor_steel.png", + tile_side = "doors_trapdoor_steel_side.png", + protected = true, + sounds = default.node_sound_metal_defaults(), + sound_open = "doors_steel_door_open", + sound_close = "doors_steel_door_close", + groups = {cracky = 1, level = 2, door = 1}, +}) + +minetest.register_craft({ + output = 'doors:trapdoor 2', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'', '', ''}, + } +}) + +minetest.register_craft({ + output = 'doors:trapdoor_steel', + recipe = { + {'default:steel_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot'}, + } +}) + + +----fence gate---- + +function doors.register_fencegate(name, def) + local fence = { + description = def.description, + drawtype = "mesh", + tiles = {}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + is_ground_content = false, + drop = name .. "_closed", + connect_sides = {"left", "right"}, + groups = def.groups, + sounds = def.sounds, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + local node_def = minetest.registered_nodes[node.name] + minetest.swap_node(pos, {name = node_def.gate, param2 = node.param2}) + minetest.sound_play(node_def.sound, {pos = pos, gain = 0.3, + max_hear_distance = 8}) + return itemstack + end, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, + }, + } + + + if type(def.texture) == "string" then + fence.tiles[1] = {name = def.texture, backface_culling = true} + elseif def.texture.backface_culling == nil then + fence.tiles[1] = table.copy(def.texture) + fence.tiles[1].backface_culling = true + else + fence.tiles[1] = def.texture + end + + if not fence.sounds then + fence.sounds = default.node_sound_wood_defaults() + end + + fence.groups.fence = 1 + + local fence_closed = table.copy(fence) + fence_closed.mesh = "doors_fencegate_closed.obj" + fence_closed.gate = name .. "_open" + fence_closed.sound = "doors_fencegate_open" + fence_closed.collision_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, + } + + local fence_open = table.copy(fence) + fence_open.mesh = "doors_fencegate_open.obj" + fence_open.gate = name .. "_closed" + fence_open.sound = "doors_fencegate_close" + fence_open.groups.not_in_creative_inventory = 1 + fence_open.collision_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/4, -3/8, 1/2, 1/4}, + {-1/2, -3/8, -1/2, -3/8, 3/8, 0}}, + } + + minetest.register_node(":" .. name .. "_closed", fence_closed) + minetest.register_node(":" .. name .. "_open", fence_open) + + minetest.register_craft({ + output = name .. "_closed", + recipe = { + {"default:stick", def.material, "default:stick"}, + {"default:stick", def.material, "default:stick"} + } + }) +end + +doors.register_fencegate("doors:gate_wood", { + description = "Wooden Fence Gate", + texture = "default_wood.png", + material = "default:wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("doors:gate_acacia_wood", { + description = "Acacia Fence Gate", + texture = "default_acacia_wood.png", + material = "default:acacia_wood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("doors:gate_junglewood", { + description = "Jungle Wood Fence Gate", + texture = "default_junglewood.png", + material = "default:junglewood", + groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} +}) + +doors.register_fencegate("doors:gate_pine_wood", { + description = "Pine Fence Gate", + texture = "default_pine_wood.png", + material = "default:pine_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3} +}) + +doors.register_fencegate("doors:gate_aspen_wood", { + description = "Aspen Fence Gate", + texture = "default_aspen_wood.png", + material = "default:aspen_wood", + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3} +}) + + +----fuels---- + +minetest.register_craft({ + type = "fuel", + recipe = "doors:trapdoor", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:door_wood", + burntime = 14, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_wood_closed", + burntime = 7, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_acacia_wood_closed", + burntime = 8, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_junglewood_closed", + burntime = 9, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_pine_wood_closed", + burntime = 6, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "doors:gate_aspen_wood_closed", + burntime = 5, +}) diff --git a/mods/doors/license.txt b/mods/doors/license.txt new file mode 100644 index 0000000..8ce73c4 --- /dev/null +++ b/mods/doors/license.txt @@ -0,0 +1,164 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar (sofar@foo-projects.org) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures, models and sounds) +----------------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2011-2016 Fernando Zapata +Copyright (C) 2014-2016 celeron55 +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 sofar +Copyright (C) 2016 red-001 +Copyright (C) 2016 paramat + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) +Copyright (C) 2014-2016 PenguinDad + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/4.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2014 CGEffex +Copyright (C) 2014 bennstir +Copyright (C) 2016 BarkersPinhead +Copyright (C) 2016 rivernile7 +Copyright (C) 2016 HazMatt + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ + +----------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +mhtaylor67 +SkeetMasterFunk69 + +No Copyright + +The person who associated a work with this deed has dedicated the work to the public +domain by waiving all of his or her rights to the work worldwide under copyright law, +including all related and neighboring rights, to the extent allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial purposes, all +without asking permission. See Other Information below. + +Other Information + +In no way are the patent or trademark rights of any person affected by CC0, nor are the +rights that other persons may have in the work or in how the work is used, such as +publicity or privacy rights. +Unless expressly stated otherwise, the person who associated a work with this deed makes +no warranties about the work, and disclaims liability for all uses of the work, to the +fullest extent permitted by applicable law. +When using or citing the work, you should not imply endorsement by the author or the +affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/mods/doors/models/door_a.obj b/mods/doors/models/door_a.obj new file mode 100644 index 0000000..bd5127b --- /dev/null +++ b/mods/doors/models/door_a.obj @@ -0,0 +1,40 @@ +# Blender v2.76 (sub 0) OBJ File: 'door_a.blend' +# www.blender.org +mtllib door_a.mtl +o Cube_Cube.001 +v 0.499000 -0.499000 -0.499000 +v 0.499000 1.499000 -0.499000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 1.499000 -0.375000 +v -0.499000 -0.499000 -0.499000 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.375000 +vt 0.842105 1.000000 +vt 0.894737 1.000000 +vt 0.894737 0.000000 +vt 0.842105 0.000000 +vt 0.421053 1.000000 +vt 0.421053 0.000000 +vt 0.947368 1.000000 +vt 0.947368 0.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 1.000000 1.000000 +vt 1.000000 0.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/5/2 8/1/2 7/4/2 3/6/2 +f 8/2/3 6/7/3 5/8/3 7/3/3 +f 6/9/4 2/5/4 1/6/4 5/10/4 +f 1/11/5 3/12/5 7/7/5 5/13/5 +f 6/14/6 8/8/6 4/12/6 2/11/6 diff --git a/mods/doors/models/door_b.obj b/mods/doors/models/door_b.obj new file mode 100644 index 0000000..c5607b8 --- /dev/null +++ b/mods/doors/models/door_b.obj @@ -0,0 +1,40 @@ +# Blender v2.76 (sub 0) OBJ File: 'door_b.blend' +# www.blender.org +mtllib door_b.mtl +o Cube_Cube.001 +v -0.499000 -0.499000 -0.499000 +v -0.499000 1.499000 -0.499000 +v -0.499000 -0.499000 -0.375000 +v -0.499000 1.499000 -0.375000 +v 0.499000 -0.499000 -0.499000 +v 0.499000 1.499000 -0.499000 +v 0.499000 -0.499000 -0.375000 +v 0.499000 1.499000 -0.375000 +vt 0.842105 1.000000 +vt 0.842105 0.000000 +vt 0.894737 0.000000 +vt 0.894737 1.000000 +vt 0.421053 1.000000 +vt 0.421053 0.000000 +vt 0.947368 0.000000 +vt 0.947368 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.947368 0.500000 +vt 1.000000 1.000000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +usemtl None +s off +f 2/1/1 1/2/1 3/3/1 4/4/1 +f 4/5/2 3/6/2 7/2/2 8/1/2 +f 8/4/3 7/3/3 5/7/3 6/8/3 +f 6/9/4 5/10/4 1/6/4 2/5/4 +f 1/11/5 5/12/5 7/13/5 3/7/5 +f 6/8/6 2/13/6 4/12/6 8/14/6 diff --git a/mods/doors/models/doors_fencegate_closed.obj b/mods/doors/models/doors_fencegate_closed.obj new file mode 100644 index 0000000..0050f70 --- /dev/null +++ b/mods/doors/models/doors_fencegate_closed.obj @@ -0,0 +1,106 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_closed.blend' +# www.blender.org +mtllib gate_closed.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500100 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500100 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500100 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500100 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500100 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500100 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500100 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500100 -0.125000 +v -0.375000 0.187500 0.062500 +v -0.375000 0.312500 0.062500 +v -0.375000 0.187500 -0.062500 +v -0.375000 0.312500 -0.062500 +v 0.375000 0.187500 0.062500 +v 0.375000 0.312500 0.062500 +v 0.375000 0.187500 -0.062500 +v 0.375000 0.312500 -0.062500 +v -0.374831 0.187348 0.062500 +v -0.156342 0.187363 0.062500 +v -0.374831 0.187348 -0.062500 +v -0.156342 0.187363 -0.062500 +v 0.374981 -0.343683 0.062500 +v 0.375065 -0.187304 0.062500 +v 0.374981 -0.343683 -0.062500 +v 0.375065 -0.187304 -0.062500 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn -0.578000 -0.816100 0.000000 +vn 0.576200 0.817300 0.000000 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/2 24/3/2 23/19/2 19/20/2 +f 22/1/4 18/4/4 17/21/4 21/22/4 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/2 32/28/2 31/29/2 27/30/2 +f 30/31/4 26/32/4 25/33/4 29/34/4 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 diff --git a/mods/doors/models/doors_fencegate_open.obj b/mods/doors/models/doors_fencegate_open.obj new file mode 100644 index 0000000..3fb727f --- /dev/null +++ b/mods/doors/models/doors_fencegate_open.obj @@ -0,0 +1,112 @@ +# Blender v2.76 (sub 0) OBJ File: 'gate_open.blend' +# www.blender.org +mtllib gate_open.mtl +o Cube_Cube.001 +v -0.625000 -0.500000 0.125000 +v -0.625000 0.500100 0.125000 +v -0.625000 -0.500000 -0.125000 +v -0.625000 0.500100 -0.125000 +v -0.375000 -0.500000 0.125000 +v -0.375000 0.500100 0.125000 +v -0.375000 -0.500000 -0.125000 +v -0.375000 0.500100 -0.125000 +v 0.375000 -0.500000 0.125000 +v 0.375000 0.500100 0.125000 +v 0.375000 -0.500000 -0.125000 +v 0.375000 0.500100 -0.125000 +v 0.625000 -0.500000 0.125000 +v 0.625000 0.500100 0.125000 +v 0.625000 -0.500000 -0.125000 +v 0.625000 0.500100 -0.125000 +v 0.434859 0.187500 -0.872359 +v 0.434859 0.312500 -0.872359 +v 0.559859 0.187500 -0.872359 +v 0.559859 0.312500 -0.872359 +v 0.434859 0.187500 -0.122359 +v 0.434859 0.312500 -0.122359 +v 0.559859 0.187500 -0.122359 +v 0.559859 0.312500 -0.122359 +v 0.434859 0.187348 -0.872190 +v 0.434859 0.187363 -0.653701 +v 0.559859 0.187348 -0.872190 +v 0.559859 0.187363 -0.653701 +v 0.434859 -0.343683 -0.122379 +v 0.434859 -0.187304 -0.122294 +v 0.559859 -0.343683 -0.122379 +v 0.559859 -0.187304 -0.122294 +v 0.499560 -0.442900 0.005495 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.750000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 1.000000 -0.000000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt -0.000000 0.000000 +vt 0.250000 0.000000 +vt 0.250000 0.250000 +vt 0.250000 0.750000 +vt 0.250000 1.000000 +vt 0.500000 -0.000000 +vt 0.500000 0.250000 +vt 0.500000 0.750000 +vt 0.500000 1.000000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt -0.000000 0.687500 +vt 0.000000 0.562500 +vt 1.000000 0.562500 +vt 1.000000 0.687500 +vt 0.813740 0.249033 +vt 0.201557 0.249293 +vt 0.120995 0.125498 +vt 0.987404 0.125469 +vt 0.125000 0.375000 +vt 0.812500 0.375000 +vt 0.937500 0.500000 +vt 0.062500 0.500000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.312500 0.437500 +vt 0.312500 0.312500 +vt 1.000000 0.312500 +vt 1.000000 0.437500 +vt 0.312500 0.625000 +vt 0.312500 0.500000 +vt 0.187500 0.500000 +vt 0.187500 0.625000 +vn -1.000000 0.000000 0.000000 +vn 0.000000 0.000000 -1.000000 +vn 1.000000 0.000000 0.000000 +vn 0.000000 0.000000 1.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.000000 1.000000 0.000000 +vn 0.000000 -0.816100 -0.578000 +vn 0.000000 0.817300 0.576200 +usemtl None +s off +f 2/1/1 4/2/1 3/3/1 1/4/1 +f 4/4/2 8/5/2 7/6/2 3/1/2 +f 8/7/3 6/8/3 5/9/3 7/10/3 +f 6/2/4 2/9/4 1/8/4 5/3/4 +f 1/9/5 3/10/5 7/11/5 5/12/5 +f 6/6/6 8/1/6 4/13/6 2/14/6 +f 10/1/1 12/2/1 11/3/1 9/4/1 +f 12/2/2 16/9/2 15/8/2 11/3/2 +f 16/7/3 14/8/3 13/9/3 15/10/3 +f 14/4/4 10/5/4 9/6/4 13/1/4 +f 9/12/5 11/11/5 15/15/5 13/16/5 +f 14/14/6 16/13/6 12/17/6 10/18/6 +f 20/2/3 24/3/3 23/19/3 19/20/3 +f 22/1/1 18/4/1 17/21/1 21/22/1 +f 17/23/5 19/24/5 23/25/5 21/26/5 +f 22/21/6 24/5/6 20/6/6 18/22/6 +f 28/27/3 32/28/3 31/29/3 27/30/3 +f 30/31/1 26/32/1 25/33/1 29/34/1 +f 25/35/7 27/10/7 31/7/7 29/36/7 +f 30/37/8 32/38/8 28/39/8 26/40/8 +f 17/41/2 18/42/2 20/43/2 19/44/2 diff --git a/mods/doors/sounds/doors_door_close.ogg b/mods/doors/sounds/doors_door_close.ogg new file mode 100644 index 0000000..fede4af Binary files /dev/null and b/mods/doors/sounds/doors_door_close.ogg differ diff --git a/mods/doors/sounds/doors_door_open.ogg b/mods/doors/sounds/doors_door_open.ogg new file mode 100644 index 0000000..9a4c4f1 Binary files /dev/null and b/mods/doors/sounds/doors_door_open.ogg differ diff --git a/mods/doors/sounds/doors_fencegate_close.ogg b/mods/doors/sounds/doors_fencegate_close.ogg new file mode 100644 index 0000000..d42590f Binary files /dev/null and b/mods/doors/sounds/doors_fencegate_close.ogg differ diff --git a/mods/doors/sounds/doors_fencegate_open.ogg b/mods/doors/sounds/doors_fencegate_open.ogg new file mode 100644 index 0000000..f6dfd1d Binary files /dev/null and b/mods/doors/sounds/doors_fencegate_open.ogg differ diff --git a/mods/doors/sounds/doors_glass_door_close.ogg b/mods/doors/sounds/doors_glass_door_close.ogg new file mode 100644 index 0000000..b3c1355 Binary files /dev/null and b/mods/doors/sounds/doors_glass_door_close.ogg differ diff --git a/mods/doors/sounds/doors_glass_door_open.ogg b/mods/doors/sounds/doors_glass_door_open.ogg new file mode 100644 index 0000000..66e6812 Binary files /dev/null and b/mods/doors/sounds/doors_glass_door_open.ogg differ diff --git a/mods/doors/sounds/doors_steel_door_close.ogg b/mods/doors/sounds/doors_steel_door_close.ogg new file mode 100644 index 0000000..aea7be6 Binary files /dev/null and b/mods/doors/sounds/doors_steel_door_close.ogg differ diff --git a/mods/doors/sounds/doors_steel_door_open.ogg b/mods/doors/sounds/doors_steel_door_open.ogg new file mode 100644 index 0000000..de87477 Binary files /dev/null and b/mods/doors/sounds/doors_steel_door_open.ogg differ diff --git a/mods/doors/textures/doors_blank.png b/mods/doors/textures/doors_blank.png new file mode 100644 index 0000000..1914264 Binary files /dev/null and b/mods/doors/textures/doors_blank.png differ diff --git a/mods/doors/textures/doors_door_glass.png b/mods/doors/textures/doors_door_glass.png new file mode 100644 index 0000000..26c427b Binary files /dev/null and b/mods/doors/textures/doors_door_glass.png differ diff --git a/mods/doors/textures/doors_door_obsidian_glass.png b/mods/doors/textures/doors_door_obsidian_glass.png new file mode 100644 index 0000000..07ac5b2 Binary files /dev/null and b/mods/doors/textures/doors_door_obsidian_glass.png differ diff --git a/mods/doors/textures/doors_door_steel.png b/mods/doors/textures/doors_door_steel.png new file mode 100644 index 0000000..f42f335 Binary files /dev/null and b/mods/doors/textures/doors_door_steel.png differ diff --git a/mods/doors/textures/doors_door_wood.png b/mods/doors/textures/doors_door_wood.png new file mode 100644 index 0000000..7b18203 Binary files /dev/null and b/mods/doors/textures/doors_door_wood.png differ diff --git a/mods/doors/textures/doors_item_glass.png b/mods/doors/textures/doors_item_glass.png new file mode 100644 index 0000000..791a58a Binary files /dev/null and b/mods/doors/textures/doors_item_glass.png differ diff --git a/mods/doors/textures/doors_item_obsidian_glass.png b/mods/doors/textures/doors_item_obsidian_glass.png new file mode 100644 index 0000000..1026d43 Binary files /dev/null and b/mods/doors/textures/doors_item_obsidian_glass.png differ diff --git a/mods/doors/textures/doors_item_steel.png b/mods/doors/textures/doors_item_steel.png new file mode 100644 index 0000000..dd99e13 Binary files /dev/null and b/mods/doors/textures/doors_item_steel.png differ diff --git a/mods/doors/textures/doors_item_wood.png b/mods/doors/textures/doors_item_wood.png new file mode 100644 index 0000000..d3a62ab Binary files /dev/null and b/mods/doors/textures/doors_item_wood.png differ diff --git a/mods/doors/textures/doors_trapdoor.png b/mods/doors/textures/doors_trapdoor.png new file mode 100644 index 0000000..e92c8b2 Binary files /dev/null and b/mods/doors/textures/doors_trapdoor.png differ diff --git a/mods/doors/textures/doors_trapdoor_side.png b/mods/doors/textures/doors_trapdoor_side.png new file mode 100644 index 0000000..c45d870 Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_side.png differ diff --git a/mods/doors/textures/doors_trapdoor_steel.png b/mods/doors/textures/doors_trapdoor_steel.png new file mode 100644 index 0000000..4ba507d Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_steel.png differ diff --git a/mods/doors/textures/doors_trapdoor_steel_side.png b/mods/doors/textures/doors_trapdoor_steel_side.png new file mode 100644 index 0000000..44c4344 Binary files /dev/null and b/mods/doors/textures/doors_trapdoor_steel_side.png differ diff --git a/mods/dye/README.txt b/mods/dye/README.txt new file mode 100644 index 0000000..a2fbdd2 --- /dev/null +++ b/mods/dye/README.txt @@ -0,0 +1,13 @@ +Minetest Game mod: dye +====================== +See license.txt for license information. +See init.lua for documentation. + +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +Perttu Ahola (celeron55) (CC BY-SA 3.0) diff --git a/mods/dye/depends.txt b/mods/dye/depends.txt new file mode 100644 index 0000000..e69de29 diff --git a/mods/dye/init.lua b/mods/dye/init.lua new file mode 100644 index 0000000..8028457 --- /dev/null +++ b/mods/dye/init.lua @@ -0,0 +1,112 @@ +-- Other mods can use these for looping through available colors + +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"} + +-- Make dye names and descriptions available globally + +dye.dyes = { + {"white", "White"}, + {"grey", "Grey"}, + {"dark_grey", "Dark grey"}, + {"black", "Black"}, + {"violet", "Violet"}, + {"blue", "Blue"}, + {"cyan", "Cyan"}, + {"dark_green", "Dark green"}, + {"green", "Green"}, + {"yellow", "Yellow"}, + {"brown", "Brown"}, + {"orange", "Orange"}, + {"red", "Red"}, + {"magenta", "Magenta"}, + {"pink", "Pink"}, +} + +-- This collection of colors is partly a historic thing, partly something else + +local 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(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 +local dye_recipes = { + -- src1, src2, dst + -- RYB mixes + {"red", "blue", "violet"}, -- "purple" + {"yellow", "red", "orange"}, + {"yellow", "blue", "green"}, + -- RYB complementary mixes + {"yellow", "violet", "dark_grey"}, + {"blue", "orange", "dark_grey"}, + -- CMY mixes - approximation + {"cyan", "yellow", "green"}, + {"cyan", "magenta", "blue"}, + {"yellow", "magenta", "red"}, + -- other mixes that result in a color we have + {"red", "green", "brown"}, + {"magenta", "blue", "violet"}, + {"green", "blue", "cyan"}, + {"pink", "violet", "magenta"}, + -- mixes with black + {"white", "black", "grey"}, + {"grey", "black", "dark_grey"}, + {"green", "black", "dark_green"}, + {"orange", "black", "brown"}, + -- mixes with white + {"white", "red", "pink"}, + {"white", "dark_grey", "grey"}, + {"white", "dark_green", "green"}, +} + +for _, mix in pairs(dye_recipes) do + minetest.register_craft({ + type = "shapeless", + output = 'dye:' .. mix[3] .. ' 2', + recipe = {'dye:' .. mix[1], 'dye:' .. mix[2]}, + }) +end diff --git a/mods/dye/license.txt b/mods/dye/license.txt new file mode 100644 index 0000000..bf9d350 --- /dev/null +++ b/mods/dye/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/dye/textures/dye_black.png b/mods/dye/textures/dye_black.png new file mode 100644 index 0000000..1055b6c Binary files /dev/null and b/mods/dye/textures/dye_black.png differ diff --git a/mods/dye/textures/dye_blue.png b/mods/dye/textures/dye_blue.png new file mode 100644 index 0000000..d1377c6 Binary files /dev/null and b/mods/dye/textures/dye_blue.png differ diff --git a/mods/dye/textures/dye_brown.png b/mods/dye/textures/dye_brown.png new file mode 100644 index 0000000..77d475c Binary files /dev/null and b/mods/dye/textures/dye_brown.png differ diff --git a/mods/dye/textures/dye_cyan.png b/mods/dye/textures/dye_cyan.png new file mode 100644 index 0000000..239d66c Binary files /dev/null and b/mods/dye/textures/dye_cyan.png differ diff --git a/mods/dye/textures/dye_dark_green.png b/mods/dye/textures/dye_dark_green.png new file mode 100644 index 0000000..9606ccf Binary files /dev/null and b/mods/dye/textures/dye_dark_green.png differ diff --git a/mods/dye/textures/dye_dark_grey.png b/mods/dye/textures/dye_dark_grey.png new file mode 100644 index 0000000..060737b Binary files /dev/null and b/mods/dye/textures/dye_dark_grey.png differ diff --git a/mods/dye/textures/dye_green.png b/mods/dye/textures/dye_green.png new file mode 100644 index 0000000..0d99ee1 Binary files /dev/null and b/mods/dye/textures/dye_green.png differ diff --git a/mods/dye/textures/dye_grey.png b/mods/dye/textures/dye_grey.png new file mode 100644 index 0000000..5efb028 Binary files /dev/null and b/mods/dye/textures/dye_grey.png differ diff --git a/mods/dye/textures/dye_magenta.png b/mods/dye/textures/dye_magenta.png new file mode 100644 index 0000000..c84df62 Binary files /dev/null and b/mods/dye/textures/dye_magenta.png differ diff --git a/mods/dye/textures/dye_orange.png b/mods/dye/textures/dye_orange.png new file mode 100644 index 0000000..0844907 Binary files /dev/null and b/mods/dye/textures/dye_orange.png differ diff --git a/mods/dye/textures/dye_pink.png b/mods/dye/textures/dye_pink.png new file mode 100644 index 0000000..c3dec22 Binary files /dev/null and b/mods/dye/textures/dye_pink.png differ diff --git a/mods/dye/textures/dye_red.png b/mods/dye/textures/dye_red.png new file mode 100644 index 0000000..14eafbf Binary files /dev/null and b/mods/dye/textures/dye_red.png differ diff --git a/mods/dye/textures/dye_violet.png b/mods/dye/textures/dye_violet.png new file mode 100644 index 0000000..600cbb4 Binary files /dev/null and b/mods/dye/textures/dye_violet.png differ diff --git a/mods/dye/textures/dye_white.png b/mods/dye/textures/dye_white.png new file mode 100644 index 0000000..2a840a4 Binary files /dev/null and b/mods/dye/textures/dye_white.png differ diff --git a/mods/dye/textures/dye_yellow.png b/mods/dye/textures/dye_yellow.png new file mode 100644 index 0000000..fe75775 Binary files /dev/null and b/mods/dye/textures/dye_yellow.png differ diff --git a/mods/experience/Xp1_gruen.lua b/mods/experience/Xp1_gruen.lua new file mode 100644 index 0000000..540a938 --- /dev/null +++ b/mods/experience/Xp1_gruen.lua @@ -0,0 +1,331 @@ +--add an experience orb if player digs node from xp group +minetest.register_on_dignode(function(pos, oldnode, digger) + local namer = oldnode.name + local see_if_mineral = minetest.get_item_group(namer, "xp") + if see_if_mineral > 0 then + minetest.env:add_entity(pos, "experience:orb") + end +end) +--give a new player some xp +minetest.register_on_newplayer(function(player) + local file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience", "w") + file:write("0") + file:close() +end) +--Allow people to collect orbs +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + pos.y = pos.y+0.5 + 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 == "experience:orb" then + --RIGHT HERE ADD IN THE CODE TO UPGRADE PLAYERS + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().name = "STOP" + minetest.sound_play("orb", { + to_player = player:get_player_name(), + }) + xp = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience", "r") + experience = xp:read("*l") + xp:close() + if experience ~= nil then + new_xp = experience + 1 + xp_write = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience", "w") + xp_write:write(new_xp) + xp_write:close() + local player_inv = player:get_inventory() + local vv = 0 + local h = 0 + for i=1,100 do + local g = 0 + local c = 0 + if i < 6 then + g = i*1*10 + elseif i < 11 then + g = 50+(i-5)*2*10 + elseif i < 16 then + g = 150+(i-10)*3*10 + elseif i < 21 then + g = 300+(i-15)*4*10 + elseif i < 26 then + g = 500+(i-20)*5*10 + elseif i < 31 then + g = 750+(i-25)*6*10 + elseif i < 36 then + g = 1050+(i-30)*7*10 + elseif i < 41 then + g = 1400+(i-35)*8*10 + elseif i < 46 then + g = 1800+(i-40)*9*10 + elseif i < 51 then + g = 2250+(i-45)*10*10 + elseif i < 56 then + g = 2750+(i-50)*11*10 + elseif i < 61 then + g = 3300+(i-55)*12*10 + elseif i < 66 then + g = 3900+(i-60)*13*10 + elseif i < 71 then + g = 4550+(i-65)*14*10 + elseif i < 76 then + g = 5250+(i-70)*15*10 + elseif i < 81 then + g = 6000+(i-75)*16*10 + elseif i < 86 then + g = 6800+(i-80)*17*10 + elseif i < 91 then + g = 7650+(i-85)*18*10 + elseif i < 96 then + g = 8500+(i-90)*19*10 + elseif i < 101 then + g = 9500+(i-95)*20*10 + end + if i < 6 then + c = 1 + elseif i < 11 then + c = 2 + elseif i < 16 then + c = 3 + elseif i < 21 then + c = 4 + elseif i < 26 then + c = 5 + elseif i < 31 then + c = 6 + elseif i < 36 then + c = 7 + elseif i < 41 then + c = 8 + elseif i < 46 then + c = 9 + elseif i < 51 then + c = 10 + elseif i < 56 then + c = 11 + elseif i < 61 then + c = 12 + elseif i < 66 then + c = 13 + elseif i < 71 then + c = 14 + elseif i < 76 then + c = 15 + elseif i < 81 then + c = 16 + elseif i < 86 then + c = 17 + elseif i < 91 then + c = 18 + elseif i < 96 then + c = 19 + elseif i < 101 then + c = 20 + end + if (new_xp >= g) then + vv = i + end + if (new_xp >= 11949) then + vv = 101 + end + if i == 100 then + local fi = 0 + local se = 0 + player_inv:set_size("exp", 1) + local coun = player_inv:get_stack("exp", 1):get_count() + for cou=1,coun do + if cou < 6 and cou > 0 then + fi = fi+1 + elseif cou < 11 and cou > 0 then + fi = fi+2 + elseif cou < 16 and cou > 0 then + fi = fi+3 + elseif cou < 21 and cou > 0 then + fi = fi+4 + elseif cou < 26 and cou > 0 then + fi = fi+5 + elseif cou < 31 and cou > 0 then + fi = fi+6 + elseif cou < 36 and cou > 0 then + fi = fi+7 + elseif cou < 41 and cou > 0 then + fi = fi+8 + elseif cou < 46 and cou > 0 then + fi = fi+9 + elseif cou < 51 and cou > 0 then + fi = fi+10 + elseif cou < 56 and cou > 0 then + fi = fi+11 + elseif cou < 61 and cou > 0 then + fi = fi+12 + elseif cou < 66 and cou > 0 then + fi = fi+13 + elseif cou < 71 and cou > 0 then + fi = fi+14 + elseif cou < 76 and cou > 0 then + fi = fi+15 + elseif cou < 81 and cou > 0 then + fi = fi+16 + elseif cou < 86 and cou > 0 then + fi = fi+17 + elseif cou < 91 and cou > 0 then + fi = fi+18 + elseif cou < 96 and cou > 0 then + fi = fi+19 + elseif cou < 101 and cou > 0 then + fi = fi+20 + end + end + for v=1,vv do + if v < 6 and v > 0 then + se = se+1 + elseif v < 11 and v > 0 then + se = se+2 + elseif v < 16 and v > 0 then + se = se+3 + elseif v < 21 and v > 0 then + se = se+4 + elseif v < 26 and v > 0 then + se = se+5 + elseif v < 31 and v > 0 then + se = se+6 + elseif v < 36 and v > 0 then + se = se+7 + elseif v < 41 and v > 0 then + se = se+8 + elseif v < 46 and v > 0 then + se = se+9 + elseif v < 51 and v > 0 then + se = se+10 + elseif v < 56 and v > 0 then + se = se+11 + elseif v < 61 and v > 0 then + se = se+12 + elseif v < 66 and v > 0 then + se = se+13 + elseif v < 71 and v > 0 then + se = se+14 + elseif v < 76 and v > 0 then + se = se+15 + elseif v < 81 and v > 0 then + se = se+16 + elseif v < 86 and v > 0 then + se = se+17 + elseif v < 91 and v > 0 then + se = se+18 + elseif v < 96 and v > 0 then + se = se+19 + elseif v < 101 and v > 0 then + se = se+20 + end + end + local en = se-fi + player_inv:set_size("xpi01", 15) + player_inv:add_item("xpi01", "tutorial:coin2 "..en) + if vv ~= 0 then + player_inv:set_stack("exp", 1, "default:dirt "..vv) + end + if new_xp >= 11950 and coun ~= 101 then + player_inv:set_size("xpi01", 15) + player_inv:add_item("xpi01", "tutorial:coin2 145") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + if new_xp == g then + player_inv:set_size("xpi01", 15) + player_inv:add_item("xpi01", "tutorial:coin "..c) + player_inv:set_size("xpi1", 100) + player_inv:set_stack("xpi1", i, "tutorial:level"..i.." 1") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + + end + if new_xp == 2750 then + player_inv:set_size("xpi01", 15) + player_inv:add_item("xpi01", "tutorial:level_schluessel 1") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + if new_xp == 10500 then + player_inv:set_size("xpi01", 15) + player_inv:add_item("xpi01", "tutorial:lilabattleaxe") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + if new_xp == 11950 then + player_inv:set_size("xpi01", 15) + player_inv:add_item("xpi01", "tutorial:coin 145") + player_inv:add_item("xpi01", "tutorial:levelMAX") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + object:remove() + end + end + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 3)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "experience:orb" then + if object:get_luaentity().collect 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) + end + end + end + end +end) + +minetest.register_entity("experience:orb", { + physical = true, + timer = 0, + textures = {"orb.png"}, + visual_size = {x=0.3, y=0.3}, + collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + self.object:setvelocity({x=0, y=1, z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + end, + collect = true, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if (self.timer > 300) then + self.object:remove() + end + local p = self.object:getpos() + local nn = minetest.env:get_node(p).name + noder = minetest.env:get_node(p).name + p.y = p.y - 0.3 + local nn = minetest.env:get_node(p).name + 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, +}) diff --git a/mods/experience/Xp2_blau.lua b/mods/experience/Xp2_blau.lua new file mode 100644 index 0000000..0338d95 --- /dev/null +++ b/mods/experience/Xp2_blau.lua @@ -0,0 +1,154 @@ +minetest.register_on_dignode(function(pos, oldnode, digger) + local namer = oldnode.name + local see_if_mineral = minetest.get_item_group(namer, "xpb") + if see_if_mineral > 0 then + minetest.env:add_entity(pos, "experience:orb_blau") + end +end) + +minetest.register_on_newplayer(function(player) + local file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_blau", "w") + file:write("0") + file:close() +end) + + + +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + pos.y = pos.y+0.5 + 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 == "experience:orb_blau" then + --RIGHT HERE ADD IN THE CODE TO UPGRADE PLAYERS + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().name = "STOP" + minetest.sound_play("orb", { + to_player = player:get_player_name(), + }) + xpb = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_blau", "r") + experience_blau = xpb:read("*l") + xpb:close() + if experience_blau ~= nil then + new_xpb = experience_blau + 1 + xpb_write = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_blau", "w") + xpb_write:write(new_xpb) + xpb_write:close() + local h = 0 + local player_inv = player:get_inventory() + for i=1,20 do + h = h+i + local g = 0 + if i < 6 then + g = 1 + elseif i < 11 then + g = 2 + elseif i < 16 then + g = 3 + elseif i < 21 then + g = 4 + end + if new_xpb == h then + player_inv:set_size("xpi03", 10) + player_inv:add_item("xpi03", "tutorial:coin_blau "..g) + player_inv:set_size("xpi3", 20) + player_inv:set_stack("xpi3", i, "tutorial:level"..i.."_blau") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + if new_xpb == 250 then + player_inv:set_size("xpi03", 10) + player_inv:add_item("xpi03", "tutorial:coin_blau 5") + player_inv:set_size("xpi3", 20) + player_inv:add_item("xpi03", "tutorial:levelMAX_blau") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + if new_xpb == 210 then + player_inv:set_size("xpi03", 10) + player_inv:add_item("xpi03", "tutorial:xp_blau") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + object:remove() + end + end +for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 3)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "experience:orb_blau" then + if object:get_luaentity().collect 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) + end + end + end + end +end) + +minetest.register_entity("experience:orb_blau", { + physical = true, + timer = 0, + textures = {"orb_blau.png"}, + visual_size = {x=0.3, y=0.3}, + collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + self.object:setvelocity({x=0, y=1, z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + end, + collect = true, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if (self.timer > 300) then + self.object:remove() + end + local p = self.object:getpos() + local nn = minetest.env:get_node(p).name + noder = minetest.env:get_node(p).name + p.y = p.y - 0.3 + local nn = minetest.env:get_node(p).name + 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, +}) + + + + + + + + + + + + + + diff --git a/mods/experience/Xp2_rot.lua b/mods/experience/Xp2_rot.lua new file mode 100644 index 0000000..f8e9c9b --- /dev/null +++ b/mods/experience/Xp2_rot.lua @@ -0,0 +1,152 @@ +minetest.register_on_dignode(function(pos, oldnode, digger) + local namer = oldnode.name + local see_if_mineral = minetest.get_item_group(namer, "xpr") + if see_if_mineral > 0 then + minetest.env:add_entity(pos, "experience:orb_rot") + end +end) + +minetest.register_on_newplayer(function(player) + local file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_rot", "w") + file:write("0") + file:close() +end) + +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + pos.y = pos.y+0.5 + 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 == "experience:orb_rot" then + --RIGHT HERE ADD IN THE CODE TO UPGRADE PLAYERS + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().name = "STOP" + minetest.sound_play("orb", { + to_player = player:get_player_name(), + }) + xpr = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_rot", "r") + experience_rot = xpr:read("*l") + xpr:close() + if experience_rot ~= nil then + new_xpr = experience_rot + 1 + xpr_write = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_rot", "w") + xpr_write:write(new_xpr) + xpr_write:close() + local h = 0 + local player_inv = player:get_inventory() + for i=1,20 do + h = h+i + local g = 0 + if i < 6 then + g = 1 + elseif i < 11 then + g = 2 + elseif i < 16 then + g = 3 + elseif i < 21 then + g = 4 + end + if new_xpr == h then + player_inv:set_size("xpi02", 10) + player_inv:add_item("xpi02", "tutorial:coin_rot "..g) + player_inv:set_size("xpi2", 20) + player_inv:set_stack("xpi2", i, "tutorial:level"..i.."_rot") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + if new_xpr == 250 then + player_inv:set_size("xpi02", 10) + player_inv:add_item("xpi02", "tutorial:coin_rot 5") + player_inv:set_size("xpi2", 20) + player_inv:add_item("xpi02", "tutorial:levelMAX_rot") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + if new_xpr == 210 then + player_inv:set_size("xpi02", 10) + player_inv:add_item("xpi02", "tutorial:xp_rot") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + object:remove() + end + end +for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 3)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "experience:orb_rot" then + if object:get_luaentity().collect 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) + end + end + end + end +end) + +minetest.register_entity("experience:orb_rot", { + physical = true, + timer = 0, + textures = {"orb_rot.png"}, + visual_size = {x=0.3, y=0.3}, + collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + self.object:setvelocity({x=0, y=1, z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + end, + collect = true, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if (self.timer > 300) then + self.object:remove() + end + local p = self.object:getpos() + local nn = minetest.env:get_node(p).name + noder = minetest.env:get_node(p).name + p.y = p.y - 0.3 + local nn = minetest.env:get_node(p).name + 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, +}) + + + + + + + + + + + + + + diff --git a/mods/experience/Xp3_grau.lua b/mods/experience/Xp3_grau.lua new file mode 100644 index 0000000..e23f9dc --- /dev/null +++ b/mods/experience/Xp3_grau.lua @@ -0,0 +1,183 @@ +minetest.register_on_dignode(function(pos, oldnode, digger) + local namer = oldnode.name + local see_if_mineral = minetest.get_item_group(namer, "xpg") + if see_if_mineral > 0 then + minetest.env:add_entity(pos, "experience:orb_grau") + end +end) + +minetest.register_on_newplayer(function(player) + local file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_grau", "w") + file:write("0") + file:close() +end) + +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + pos.y = pos.y+0.5 + 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 == "experience:orb_grau" then + --RIGHT HERE ADD IN THE CODE TO UPGRADE PLAYERS + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().name = "STOP" + minetest.sound_play("orb", { + to_player = player:get_player_name(), + }) + xpg = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_grau", "r") + experience_grau = xpg:read("*l") + xpg:close() + if experience_grau ~= nil then + new_xpg = experience_grau + 1 + xpg_write = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_grau", "w") + xpg_write:write(new_xpg) + xpg_write:close() + local player_inv = player:get_inventory() + local h = 0 + for i=1,100 do + local g = 0 + local c = 0 + if i < 11 then + g = i*1*5 + elseif i < 21 then + g = 50+(i-10)*2*5 + elseif i < 31 then + g = 150+(i-20)*3*5 + elseif i < 41 then + g = 300+(i-30)*4*5 + elseif i < 51 then + g = 500+(i-40)*5*5 + elseif i < 61 then + g = 750+(i-50)*6*5 + elseif i < 71 then + g = 1050+(i-60)*7*5 + elseif i < 81 then + g = 1400+(i-70)*8*5 + elseif i < 91 then + g = 1800+(i-80)*9*5 + elseif i < 101 then + g = 2250+(i-90)*10*5 + end + print(g) + if i < 11 then + c = 1 + elseif i < 21 then + c = 2 + elseif i < 31 then + c = 3 + elseif i < 41 then + c = 4 + elseif i < 51 then + c = 5 + elseif i < 61 then + c = 6 + elseif i < 71 then + c = 7 + elseif i < 81 then + c = 8 + elseif i < 91 then + c = 9 + elseif i < 101 then + c = 10 + end + if i == (10 or 20 or 30 or 40 or 50 or 60 or 70 or 80 or 90) then + h = 1 + else + h = 0 + end + if new_xpg == g then + if h == 1 then + player_inv:set_size("xpi04", 10) + player_inv:add_item("xpi04", "tutorial:xp_block") + end + player_inv:set_size("xpi04", 10) + player_inv:add_item("xpi04", "tutorial:coin_grau "..c) + player_inv:set_size("xpi4", 100) + player_inv:set_stack("xpi4", i, "tutorial:level"..i.."_grau 1") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + if new_xpg == 3200 then + player_inv:set_size("xpi04", 10) + player_inv:add_item("xpi04", "tutorial:coin_grau 90") + player_inv:add_item("xpi04", "tutorial:levelMAX_grau") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + if new_xpg == 2750 then + player_inv:set_size("xpi04", 10) + player_inv:add_item("xpi04", "tutorial:legenden_schluessel") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + object:remove() + end + end +for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 3)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "experience:orb_grau" then + if object:get_luaentity().collect 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) + end + end + end + end +end) + +minetest.register_entity("experience:orb_grau", { + physical = true, + timer = 0, + textures = {"orb_grau.png"}, + visual_size = {x=0.3, y=0.3}, + collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + self.object:setvelocity({x=0, y=1, z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + end, + collect = true, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if (self.timer > 300) then + self.object:remove() + end + local p = self.object:getpos() + local nn = minetest.env:get_node(p).name + noder = minetest.env:get_node(p).name + p.y = p.y - 0.3 + local nn = minetest.env:get_node(p).name + 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, +}) + + + diff --git a/mods/experience/Xp4_gelb.lua b/mods/experience/Xp4_gelb.lua new file mode 100644 index 0000000..47785b4 --- /dev/null +++ b/mods/experience/Xp4_gelb.lua @@ -0,0 +1,152 @@ +minetest.register_on_dignode(function(pos, oldnode, digger) + local namer = oldnode.name + local see_if_mineral = minetest.get_item_group(namer, "xpy") + if see_if_mineral > 0 then + minetest.env:add_entity(pos, "experience:orb_gelb") + end +end) + +minetest.register_on_newplayer(function(player) + local file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_gelb", "w") + file:write("0") + file:close() +end) + +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + pos.y = pos.y+0.5 + 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 == "experience:orb_gelb" then + --RIGHT HERE ADD IN THE CODE TO UPGRADE PLAYERS + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().name = "STOP" + minetest.sound_play("orb", { + to_player = player:get_player_name(), + }) + xpy = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_gelb", "r") + experience_gelb = xpy:read("*l") + xpy:close() + experience_gelb = experience_gelb + 0 + if experience_gelb ~= nil then + new_xpy = experience_gelb + 1 + xpy_write = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_gelb", "w") + xpy_write:write(new_xpy) + xpy_write:close() + local player_inv = player:get_inventory() + local h = 0 + for i=1,100 do + local g = 0 + if i < 11 then + g = i*1 + elseif i < 21 then + g = 10+(i-10)*2 + elseif i < 31 then + g = 30+(i-20)*3 + elseif i < 41 then + g = 60+(i-30)*4 + elseif i < 51 then + g = 100+(i-40)*5 + elseif i < 61 then + g = 150+(i-50)*6 + elseif i < 71 then + g = 210+(i-60)*7 + elseif i < 81 then + g = 280+(i-70)*8 + elseif i < 91 then + g = 360+(i-80)*9 + elseif i < 101 then + g = 450+(i-90)*10 + end + if new_xpy == g then + player_inv:set_size("xpi05", 10) + player_inv:add_item("xpi05", "tutorial:coin_gelb 1") + player_inv:set_size("xpi5", 100) + player_inv:set_stack("xpi5", i, "tutorial:level"..i.."_gelb 1") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + if new_xpy == 550 then + player_inv:set_size("xpi05", 10) + player_inv:add_item("xpi05", "tutorial:golden_schluessel") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + if new_xpy == 600 then + player_inv:set_size("xpi05", 10) + player_inv:add_item("xpi05", "tutorial:coin_gelb 4") + player_inv:add_item("xpi05", "tutorial:levelMAX_gelb 1") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + object:remove() + end + end +for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 3)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "experience:orb_gelb" then + if object:get_luaentity().collect 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) + end + end + end + end +end) + +minetest.register_entity("experience:orb_gelb", { + physical = true, + timer = 0, + textures = {"orb_gelb.png"}, + visual_size = {x=0.3, y=0.3}, + collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + self.object:setvelocity({x=0, y=1, z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + end, + collect = true, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if (self.timer > 300) then + self.object:remove() + end + local p = self.object:getpos() + local nn = minetest.env:get_node(p).name + noder = minetest.env:get_node(p).name + p.y = p.y - 0.3 + local nn = minetest.env:get_node(p).name + 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, +}) + + + diff --git a/mods/experience/Xp5_cyan.lua b/mods/experience/Xp5_cyan.lua new file mode 100644 index 0000000..f48b54d --- /dev/null +++ b/mods/experience/Xp5_cyan.lua @@ -0,0 +1,125 @@ +minetest.register_on_dignode(function(pos, oldnode, digger) + local namer = oldnode.name + local see_if_mineral = minetest.get_item_group(namer, "xpc") + if see_if_mineral > 0 then + minetest.env:add_entity(pos, "experience:orb_cyan") + end +end) + +minetest.register_on_newplayer(function(player) + local file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_cyan", "w") + file:write("0") + file:close() +end) + +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + pos.y = pos.y+0.5 + 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 == "experience:orb_cyan" then + --RIGHT HERE ADD IN THE CODE TO UPGRADE PLAYERS + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().name = "STOP" + minetest.sound_play("orb", { + to_player = player:get_player_name(), + }) + xpc = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_cyan", "r") + experience_cyan = xpc:read("*l") + xpc:close() + experience_cyan = experience_cyan + 0 + if experience_cyan ~= nil then + new_xpc = experience_cyan + 1 + xpc_write = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_cyan", "w") + xpc_write:write(new_xpc) + xpc_write:close() + local player_inv = player:get_inventory() + local h = 0 + for i=1,25 do + local g = 0 + g = i*i + if new_xpc == g then + player_inv:set_size("xpi06", 10) + player_inv:add_item("xpi06", "tutorial:coin_cyan 1") + player_inv:set_size("xpi6", 25) + player_inv:set_stack("xpi6", i, "tutorial:level"..i.."_cyan 1") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + if new_xpc == 900 then + player_inv:set_size("xpi06", 10) + player_inv:add_item("xpi06", "tutorial:coin_cyan 5") + player_inv:add_item("xpi06", "tutorial:levelMAX_cyan 1") + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + object:remove() + end + end +for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 3)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "experience:orb_cyan" then + if object:get_luaentity().collect 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) + end + end + end + end +end) + +minetest.register_entity("experience:orb_cyan", { + physical = true, + timer = 0, + textures = {"orb_cyan.png"}, + visual_size = {x=0.3, y=0.3}, + collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + self.object:setvelocity({x=0, y=1, z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + end, + collect = true, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if (self.timer > 300) then + self.object:remove() + end + local p = self.object:getpos() + local nn = minetest.env:get_node(p).name + noder = minetest.env:get_node(p).name + p.y = p.y - 0.3 + local nn = minetest.env:get_node(p).name + 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, +}) + + + diff --git a/mods/experience/i.lua b/mods/experience/i.lua new file mode 100644 index 0000000..2ffff4f --- /dev/null +++ b/mods/experience/i.lua @@ -0,0 +1,973 @@ + + +minetest.register_on_dignode(function(pos, oldnode, digger) + namer = oldnode.name + see_if_mineral = minetest.get_item_group(namer, "xpr") + if see_if_mineral > 0 then + minetest.env:add_entity(pos, "experience:orb_rot") + end +end) + +minetest.register_on_newplayer(function(player) + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_rot", "w") + file:write("0") + file:close() +end) + +rot_level1 = 1 +rot_level1_drop = "tutorial:coin_rot 1". +rot_level1S = 1 +rot_level1S_drop = "tutorial:level1_rot" + + +rot_level2 = 3 +rot_level2_drop = "tutorial:coin_rot 1" +rot_level2S = 3 +rot_level2S_drop = "tutorial:level2_rot" + + +rot_level3 = 6 +rot_level3_drop = "tutorial:coin_rot 1" +rot_level3S = 6 +rot_level3S_drop = "tutorial:level3_rot" + + +rot_level4 = 10 +rot_level4_drop = "tutorial:coin_rot 1" +rot_level4S = 10 +rot_level4S_drop = "tutorial:level4_rot" + + +rot_level5 = 15 +rot_level5_drop = "tutorial:coin_rot 1" +rot_level5S = 15 +rot_level5S_drop = "tutorial:level5_rot" + + +rot_level6 = 21 +rot_level6_drop = "tutorial:coin_rot 2" +rot_level6S = 21 +rot_level6S_drop = "tutorial:level6_rot" + + +rot_level7 = 28 +rot_level7_drop = "tutorial:coin_rot 2" +rot_level7S = 28 +rot_level7S_drop = "tutorial:level7_rot" + + +rot_level8 = 36 +rot_level8_drop = "tutorial:coin_rot 2" +rot_level8S = 36 +rot_level8S_drop = "tutorial:level8_rot" + + +rot_level9 = 45 +rot_level9_drop = "tutorial:coin_rot 2" +rot_level9S = 45 +rot_level9S_drop = "tutorial:level9_rot" + + +rot_level10 = 55 +rot_level10_drop = "tutorial:coin_rot 2" +rot_level10S = 55 +rot_level10S_drop = "tutorial:level10_rot" + + +rot_level11 = 66 +rot_level11_drop = "tutorial:coin_rot 3" +rot_level11S = 66 +rot_level11S_drop = "tutorial:level11_rot" + + +rot_level12 = 78 +rot_level12_drop = "tutorial:coin_rot 3" +rot_level12S = 78 +rot_level12S_drop = "tutorial:level12_rot" + + +rot_level13 = 91 +rot_level13_drop = "tutorial:coin_rot 3" +rot_level13S = 91 +rot_level13S_drop = "tutorial:level13_rot" + + +rot_level14 = 105 +rot_level14_drop = "tutorial:coin_rot 3" +rot_level14S = 105 +rot_level14S_drop = "tutorial:level14_rot" + + +rot_level15 = 120 +rot_level15_drop = "tutorial:coin_rot 3" +rot_level15S = 120 +rot_level15S_drop = "tutorial:level15_rot" + + +rot_level16 = 136 +rot_level16_drop = "tutorial:coin_rot 4" +rot_level16S = 136 +rot_level16S_drop = "tutorial:level16_rot" + + +rot_level17 = 153 +rot_level17_drop = "tutorial:coin_rot 4" +rot_level17S = 153 +rot_level17S_drop = "tutorial:level17_rot" + + +rot_level18 = 171 +rot_level18_drop = "tutorial:coin_rot 4" +rot_level18S = 171 +rot_level18S_drop = "tutorial:level18_rot" + + +rot_level19 = 190 +rot_level19_drop = "tutorial:coin_rot 4" +rot_level19S = 190 +rot_level19S_drop = "tutorial:level17_rot" + + +rot_level20 = 210 +rot_level20_drop = "tutorial:coin_rot 4" +rot_level20S = 210 +rot_level20S_drop = "tutorial:level18_rot" + + +rot_levelMAX = 250 +rot_levelMAX_drop = "tutorial:coin_rot 4" +rot_levelMAXS = 250 +rot_levelMAXS_drop = "tutorial:levelMAX_rot" + + + +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + pos.y = pos.y+0.5 + 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 == "experience:orb_rot" then + --RIGHT HERE ADD IN THE CODE TO UPGRADE PLAYERS + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().name = "STOP" + minetest.sound_play("orb", { + to_player = player:get_player_name(), + }) + xpr = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_rot", "r") + experience_rot = xpr:read("*l") + xpr:close() + if experience_rot ~= nil then + new_xpr = experience_rot + 1 + xpr_write = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_rot", "w") + xpr_write:write(new_xpr) + xpr_write:close() +if new_xpr == rot_level1 then + minetest.env:add_item(pos, rot_level1_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level1S then + minetest.env:add_item(pos, rot_level1S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level2 then + minetest.env:add_item(pos, rot_level2_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level2S then + minetest.env:add_item(pos, rot_level2S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level3 then + minetest.env:add_item(pos, rot_level3_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level3S then + minetest.env:add_item(pos, rot_level3S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level4 then + minetest.env:add_item(pos, rot_level4_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level4S then + minetest.env:add_item(pos, rot_level4S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level5 then + minetest.env:add_item(pos, rot_level5_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level5S then + minetest.env:add_item(pos, rot_level5S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level6 then + minetest.env:add_item(pos, rot_level6_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level6S then + minetest.env:add_item(pos, rot_level6S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level7 then + minetest.env:add_item(pos, rot_level7_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level7S then + minetest.env:add_item(pos, rot_level7S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level8 then + minetest.env:add_item(pos, rot_level8_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level8S then + minetest.env:add_item(pos, rot_level8S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level9 then + minetest.env:add_item(pos, rot_level9_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level9S then + minetest.env:add_item(pos, rot_level9S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level10 then + minetest.env:add_item(pos, rot_level10_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level10S then + minetest.env:add_item(pos, rot_level10S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level11 then + minetest.env:add_item(pos, rot_level11_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level11S then + minetest.env:add_item(pos, rot_level11S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level12 then + minetest.env:add_item(pos, rot_level12_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level12S then + minetest.env:add_item(pos, rot_level12S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level13 then + minetest.env:add_item(pos, rot_level13_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level13S then + minetest.env:add_item(pos, rot_level13S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level14 then + minetest.env:add_item(pos, rot_level14_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level14S then + minetest.env:add_item(pos, rot_level14S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level15 then + minetest.env:add_item(pos, rot_level15_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level15S then + minetest.env:add_item(pos, rot_level15S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level16 then + minetest.env:add_item(pos, rot_level16_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level16S then + minetest.env:add_item(pos, rot_level16S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level17 then + minetest.env:add_item(pos, rot_level17_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level17S then + minetest.env:add_item(pos, rot_level17S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level18 then + minetest.env:add_item(pos, rot_level18_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level18S then + minetest.env:add_item(pos, rot_level18S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level19 then + minetest.env:add_item(pos, rot_level19_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level9S then + minetest.env:add_item(pos, rot_level19S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level20 then + minetest.env:add_item(pos, rot_level20_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_level20S then + minetest.env:add_item(pos, rot_level20S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_levelMAX then + minetest.env:add_item(pos, rot_levelMAX_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpr == rot_levelMAXS then + minetest.env:add_item(pos, rot_levelMAXS_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + object:remove() + end + end +for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 3)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "experience:orb_rot" then + if object:get_luaentity().collect 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) + end + end + end + end +end) + +minetest.register_entity("experience:orb_rot", { + physical = true, + timer = 0, + textures = {"orb_rot.png"}, + visual_size = {x=0.3, y=0.3}, + collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + self.object:setvelocity({x=0, y=1, z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + end, + collect = true, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if (self.timer > 300) then + self.object:remove() + end + local p = self.object:getpos() + local nn = minetest.env:get_node(p).name + noder = minetest.env:get_node(p).name + p.y = p.y - 0.3 + local nn = minetest.env:get_node(p).name + 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, +}) + + + + + + + + + + + + + + + +minetest.register_on_dignode(function(pos, oldnode, digger) + namer = oldnode.name + see_if_mineral = minetest.get_item_group(namer, "xpb") + if see_if_mineral > 0 then + minetest.env:add_entity(pos, "experience:orb_blau") + end +end) + +minetest.register_on_newplayer(function(player) + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_blau", "w") + file:write("0") + file:close() +end) + +blau_level1 = 1 +blau_level1_drop = "tutorial:coin_blau 1". +blau_level1S = 1 +blau_level1S_drop = "tutorial:level1_blau" + + +blau_level2 = 3 +blau_level2_drop = "tutorial:coin_blau 1" +blau_level2S = 3 +blau_level2S_drop = "tutorial:level2_blau" + + +blau_level3 = 6 +blau_level3_drop = "tutorial:coin_blau 1" +blau_level3S = 6 +blau_level3S_drop = "tutorial:level3_blau" + + +blau_level4 = 10 +blau_level4_drop = "tutorial:coin_blau 1" +blau_level4S = 10 +blau_level4S_drop = "tutorial:level4_blau" + + +blau_level5 = 15 +blau_level5_drop = "tutorial:coin_blau 1" +blau_level5S = 15 +blau_level5S_drop = "tutorial:level5_blau" + + +blau_level6 = 21 +blau_level6_drop = "tutorial:coin_blau 2" +blau_level6S = 21 +blau_level6S_drop = "tutorial:level6_blau" + + +blau_level7 = 28 +blau_level7_drop = "tutorial:coin_blau 2" +blau_level7S = 28 +blau_level7S_drop = "tutorial:level7_blau" + + +blau_level8 = 36 +blau_level8_drop = "tutorial:coin_blau 2" +blau_level8S = 36 +blau_level8S_drop = "tutorial:level8_blau" + + +blau_level9 = 45 +blau_level9_drop = "tutorial:coin_blau 2" +blau_level9S = 45 +blau_level9S_drop = "tutorial:level9_blau" + + +blau_level10 = 55 +blau_level10_drop = "tutorial:coin_blau 2" +blau_level10S = 55 +blau_level10S_drop = "tutorial:level10_blau" + + +blau_level11 = 66 +blau_level11_drop = "tutorial:coin_blau 3" +blau_level11S = 66 +blau_level11S_drop = "tutorial:level11_blau" + + +blau_level12 = 78 +blau_level12_drop = "tutorial:coin_blau 3" +blau_level12S = 78 +blau_level12S_drop = "tutorial:level12_blau" + + +blau_level13 = 91 +blau_level13_drop = "tutorial:coin_blau 3" +blau_level13S = 91 +blau_level13S_drop = "tutorial:level13_blau" + + +blau_level14 = 105 +blau_level14_drop = "tutorial:coin_blau 3" +blau_level14S = 105 +blau_level14S_drop = "tutorial:level14_blau" + + +blau_level15 = 120 +blau_level15_drop = "tutorial:coin_blau 3" +blau_level15S = 120 +blau_level15S_drop = "tutorial:level15_blau" + + +blau_level16 = 136 +blau_level16_drop = "tutorial:coin_blau 4" +blau_level16S = 136 +blau_level16S_drop = "tutorial:level16_blau" + + +blau_level17 = 153 +blau_level17_drop = "tutorial:coin_blau 4" +blau_level17S = 153 +blau_level17S_drop = "tutorial:level17_blau" + + +blau_level18 = 171 +blau_level18_drop = "tutorial:coin_blau 4" +blau_level18S = 171 +blau_level18S_drop = "tutorial:level18_blau" + + +blau_level19 = 190 +blau_level19_drop = "tutorial:coin_blau 4" +blau_level19S = 190 +blau_level19S_drop = "tutorial:level17_blau" + + +blau_level20 = 210 +blau_level20_drop = "tutorial:coin_blau 4" +blau_level20S = 210 +blau_level20S_drop = "tutorial:level18_blau" + + +blau_levelMAX = 250 +blau_levelMAX_drop = "tutorial:coin_blau 4" +blau_levelMAXS = 250 +blau_levelMAXS_drop = "tutorial:levelMAX_blau" + + + +minetest.register_globalstep(function(dtime) + for _,player in ipairs(minetest.get_connected_players()) do + local pos = player:getpos() + pos.y = pos.y+0.5 + 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 == "experience:orb_blau" then + --RIGHT HERE ADD IN THE CODE TO UPGRADE PLAYERS + object:setvelocity({x=0,y=0,z=0}) + object:get_luaentity().name = "STOP" + minetest.sound_play("orb", { + to_player = player:get_player_name(), + }) + xpb = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_blau", "r") + experience_blau = xpb:read("*l") + xpr:close() + if experience_blau ~= nil then + new_xpb = experience_blau + 1 + xpb_write = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_blau", "w") + xpb_write:write(new_xpb) + xpb_write:close() +if new_xpb == blau_level1 then + minetest.env:add_item(pos, blau_level1_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level1S then + minetest.env:add_item(pos, blau_level1S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level2 then + minetest.env:add_item(pos, blau_level2_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level2S then + minetest.env:add_item(pos, blau_level2S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level3 then + minetest.env:add_item(pos, blau_level3_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level3S then + minetest.env:add_item(pos, blau_level3S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level4 then + minetest.env:add_item(pos, blau_level4_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level4S then + minetest.env:add_item(pos, blau_level4S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level5 then + minetest.env:add_item(pos, blau_level5_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level5S then + minetest.env:add_item(pos, blau_level5S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level6 then + minetest.env:add_item(pos, blau_level6_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level6S then + minetest.env:add_item(pos, blau_level6S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level7 then + minetest.env:add_item(pos, blau_level7_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level7S then + minetest.env:add_item(pos, blau_level7S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level8 then + minetest.env:add_item(pos, blau_level8_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level8S then + minetest.env:add_item(pos, blau_level8S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb ==blau_level9 then + minetest.env:add_item(pos, blau_level9_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level9S then + minetest.env:add_item(pos, blau_level9S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level10 then + minetest.env:add_item(pos, blau_level10_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level10S then + minetest.env:add_item(pos, blau_level10S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level11 then + minetest.env:add_item(pos, blau_level11_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level11S then + minetest.env:add_item(pos, blau_level11S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level12 then + minetest.env:add_item(pos, blau_level12_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level12S then + minetest.env:add_item(pos, blau_level12S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level13 then + minetest.env:add_item(pos, blau_level13_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level13S then + minetest.env:add_item(pos, blau_level13S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level14 then + minetest.env:add_item(pos, blau_level14_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level14S then + minetest.env:add_item(pos, blau_level14S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level15 then + minetest.env:add_item(pos, blau_level15_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level15S then + minetest.env:add_item(pos, blau_level15S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level16 then + minetest.env:add_item(pos, blau_level16_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level16S then + minetest.env:add_item(pos, blau_level16S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level17 then + minetest.env:add_item(pos, blau_level17_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level17S then + minetest.env:add_item(pos, blau_level17S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level18 then + minetest.env:add_item(pos, blau_level18_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level18S then + minetest.env:add_item(pos, blau_level18S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level19 then + minetest.env:add_item(pos, blau_level19_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level9S then + minetest.env:add_item(pos, blau_level19S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level20 then + minetest.env:add_item(pos, blau_level20_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_level20S then + minetest.env:add_item(pos, blau_level20S_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_levelMAX then + minetest.env:add_item(pos, blau_levelMAX_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end +if new_xpb == blau_levelMAXS then + minetest.env:add_item(pos, blau_levelMAXS_drop) + minetest.sound_play("level_up", { + to_player = player:get_player_name(), + }) + end + end + object:remove() + end + end +for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 3)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "experience:orb_blau" then + if object:get_luaentity().collect 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) + end + end + end + end +end) + +minetest.register_entity("experience:orb_blau", { + physical = true, + timer = 0, + textures = {"orb_blau.png"}, + visual_size = {x=0.3, y=0.3}, + collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + self.object:setvelocity({x=0, y=1, z=0}) + self.object:setacceleration({x=0, y=-10, z=0}) + end, + collect = true, + on_step = function(self, dtime) + self.timer = self.timer + dtime + if (self.timer > 300) then + self.object:remove() + end + local p = self.object:getpos() + local nn = minetest.env:get_node(p).name + noder = minetest.env:get_node(p).name + p.y = p.y - 0.3 + local nn = minetest.env:get_node(p).name + 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, +}) + + diff --git a/mods/experience/init.lua b/mods/experience/init.lua new file mode 100644 index 0000000..591c5ad --- /dev/null +++ b/mods/experience/init.lua @@ -0,0 +1,55 @@ +local path = minetest.get_modpath("experience") +function file_check(file_name) + local file_found=io.open(file_name, "r") + if file_found==nil then + file_found=false + else + file_found=true + end + return file_found +end +minetest.register_on_joinplayer(function(player) + if file_check(minetest.get_worldpath().."/"..player:get_player_name().."_experience") == true then + else + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience", "w") + file:write("0") + file:close() + end + if file_check(minetest.get_worldpath().."/"..player:get_player_name().."_experience_blau") == true then + else + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_blau", "w") + file:write("0") + file:close() + end + if file_check(minetest.get_worldpath().."/"..player:get_player_name().."_experience_rot") == true then + else + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_rot", "w") + file:write("0") + file:close() + end + if file_check(minetest.get_worldpath().."/"..player:get_player_name().."_experience_grau") == true then + else + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_grau", "w") + file:write("0") + file:close() + end + if file_check(minetest.get_worldpath().."/"..player:get_player_name().."_experience_gelb") == true then + else + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_gelb", "w") + file:write("0") + file:close() + end + if file_check(minetest.get_worldpath().."/"..player:get_player_name().."_experience_cyan") == true then + else + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_cyan", "w") + file:write("0") + file:close() + end +end) +dofile(path.."/Xp1_gruen.lua") +dofile(path.."/Xp2_rot.lua") +dofile(path.."/Xp2_blau.lua") +dofile(path.."/Xp3_grau.lua") +dofile(path.."/Xp4_gelb.lua") +dofile(path.."/Xp5_cyan.lua") + diff --git a/mods/experience/sounds/attributes.txt b/mods/experience/sounds/attributes.txt new file mode 100644 index 0000000..e9fc445 --- /dev/null +++ b/mods/experience/sounds/attributes.txt @@ -0,0 +1 @@ +http://www.freesound.org/people/partymix/sounds/24102/ diff --git a/mods/experience/sounds/level_up.ogg b/mods/experience/sounds/level_up.ogg new file mode 100644 index 0000000..c6eeb6e Binary files /dev/null and b/mods/experience/sounds/level_up.ogg differ diff --git a/mods/experience/sounds/orb.1.ogg b/mods/experience/sounds/orb.1.ogg new file mode 100644 index 0000000..48b32a1 Binary files /dev/null and b/mods/experience/sounds/orb.1.ogg differ diff --git a/mods/experience/sounds/orb.2.ogg b/mods/experience/sounds/orb.2.ogg new file mode 100644 index 0000000..6f6c2bd Binary files /dev/null and b/mods/experience/sounds/orb.2.ogg differ diff --git a/mods/experience/sounds/orb.3.ogg b/mods/experience/sounds/orb.3.ogg new file mode 100644 index 0000000..3a9d69a Binary files /dev/null and b/mods/experience/sounds/orb.3.ogg differ diff --git a/mods/experience/sounds/orb.4.ogg b/mods/experience/sounds/orb.4.ogg new file mode 100644 index 0000000..2a953a1 Binary files /dev/null and b/mods/experience/sounds/orb.4.ogg differ diff --git a/mods/experience/textures/orb.png b/mods/experience/textures/orb.png new file mode 100644 index 0000000..5a97cc8 Binary files /dev/null and b/mods/experience/textures/orb.png differ diff --git a/mods/experience/textures/orb_blau.png b/mods/experience/textures/orb_blau.png new file mode 100644 index 0000000..2353553 Binary files /dev/null and b/mods/experience/textures/orb_blau.png differ diff --git a/mods/experience/textures/orb_cyan.png b/mods/experience/textures/orb_cyan.png new file mode 100644 index 0000000..4a5ab15 Binary files /dev/null and b/mods/experience/textures/orb_cyan.png differ diff --git a/mods/experience/textures/orb_gelb.png b/mods/experience/textures/orb_gelb.png new file mode 100644 index 0000000..0e58207 Binary files /dev/null and b/mods/experience/textures/orb_gelb.png differ diff --git a/mods/experience/textures/orb_grau.png b/mods/experience/textures/orb_grau.png new file mode 100644 index 0000000..914fb03 Binary files /dev/null and b/mods/experience/textures/orb_grau.png differ diff --git a/mods/experience/textures/orb_rot.png b/mods/experience/textures/orb_rot.png new file mode 100644 index 0000000..2edb127 Binary files /dev/null and b/mods/experience/textures/orb_rot.png differ diff --git a/mods/farming/README.txt b/mods/farming/README.txt new file mode 100644 index 0000000..3ccd8c3 --- /dev/null +++ b/mods/farming/README.txt @@ -0,0 +1,37 @@ +Minetest Game mod: farming +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by PilzAdam (MIT) +webdesigner97 (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +Created by PilzAdam (CC BY 3.0): + farming_bread.png + farming_soil.png + farming_soil_wet.png + farming_soil_wet_side.png + farming_string.png + +Created by BlockMen (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 MasterGollum (CC BY 3.0): + farming_straw.png + +Created by Gambit (CC BY 3.0): + farming_wheat.png + farming_wheat_*.png + farming_cotton_*.png + farming_flour.png + farming_cotton_seed.png + farming_wheat_seed.png diff --git a/mods/farming/api.lua b/mods/farming/api.lua new file mode 100644 index 0000000..1c63ee3 --- /dev/null +++ b/mods/farming/api.lua @@ -0,0 +1,398 @@ + +-- Wear out hoes, place soil +-- TODO Ignore group:flower +farming.registered_plants = {} + +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 + + if minetest.is_protected(pt.under, user:get_player_name()) then + minetest.record_protection_violation(pt.under, user:get_player_name()) + return + end + if minetest.is_protected(pt.above, user:get_player_name()) then + minetest.record_protection_violation(pt.above, user:get_player_name()) + return + end + + -- turn the node into soil 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 (creative and creative.is_enabled_for + and creative.is_enabled_for(user:get_player_name())) then + -- wear tool + local wdef = itemstack:get_definition() + itemstack:add_wear(65535/(uses-1)) + -- tool break sound + if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then + minetest.sound_play(wdef.sound.breaks, {pos = pt.above, gain = 0.5}) + end + 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, + groups = def.groups, + sound = {breaks = "default_tool_breaks"}, + }) + -- Register its recipe + if def.material == nil then + minetest.register_craft({ + output = name:sub(2), + recipe = def.recipe + }) + else + minetest.register_craft({ + output = name:sub(2), + recipe = { + {def.material, def.material, ""}, + {"", "group:stick", ""}, + {"", "group:stick", ""} + } + }) + end +end + +-- how often node timers for plants will tick, +/- some random value +local function tick(pos) + minetest.get_node_timer(pos):start(math.random(166, 286)) +end +-- how often a growth failure tick is retried (e.g. too dark) +local function tick_again(pos) + minetest.get_node_timer(pos):start(math.random(40, 80)) +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 itemstack + end + if pt.type ~= "node" then + return itemstack + end + + local under = minetest.get_node(pt.under) + local above = minetest.get_node(pt.above) + + local player_name = placer and placer:get_player_name() or "" + + if minetest.is_protected(pt.under, player_name) then + minetest.record_protection_violation(pt.under, player_name) + return + end + if minetest.is_protected(pt.above, player_name) then + minetest.record_protection_violation(pt.above, player_name) + return + end + + -- return if any of the nodes is not registered + if not minetest.registered_nodes[under.name] then + return itemstack + end + if not minetest.registered_nodes[above.name] then + return itemstack + end + + -- check if pointing at the top of the node + if pt.above.y ~= pt.under.y+1 then + return itemstack + end + + -- check if you can replace the node above the pointed node + if not minetest.registered_nodes[above.name].buildable_to then + return itemstack + end + + -- check if pointing at soil + if minetest.get_item_group(under.name, "soil") < 2 then + return itemstack + end + + -- add the node and remove 1 item from the itemstack + minetest.add_node(pt.above, {name = plantname, param2 = 1}) + tick(pt.above) + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + return itemstack +end + +farming.grow_plant = function(pos, elapsed) + local node = minetest.get_node(pos) + local name = node.name + local def = minetest.registered_nodes[name] + + if not def.next_plant then + -- disable timer for fully grown plant + return + end + + -- grow seed + if minetest.get_item_group(node.name, "seed") and def.fertility then + local soil_node = minetest.get_node_or_nil({x = pos.x, y = pos.y - 1, z = pos.z}) + if not soil_node then + tick_again(pos) + return + end + -- omitted is a check for light, we assume seeds can germinate in the dark. + for _, v in pairs(def.fertility) do + if minetest.get_item_group(soil_node.name, v) ~= 0 then + local placenode = {name = def.next_plant} + if def.place_param2 then + placenode.param2 = def.place_param2 + end + minetest.swap_node(pos, placenode) + if minetest.registered_nodes[def.next_plant].next_plant then + tick(pos) + return + end + end + end + + return + end + + -- check if on wet soil + local below = minetest.get_node({x = pos.x, y = pos.y - 1, z = pos.z}) + if minetest.get_item_group(below.name, "soil") < 3 then + tick_again(pos) + return + end + + -- check light + local light = minetest.get_node_light(pos) + if not light or light < def.minlight or light > def.maxlight then + tick_again(pos) + return + end + + -- grow + local placenode = {name = def.next_plant} + if def.place_param2 then + placenode.param2 = def.place_param2 + end + minetest.swap_node(pos, placenode) + + -- new timer needed? + if minetest.registered_nodes[def.next_plant].next_plant then + tick(pos) + end + return +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 + + farming.registered_plants[pname] = def + + -- Register seed + local lbm_nodes = {mname .. ":seed_" .. pname} + local g = {seed = 1, snappy = 3, attached_node = 1, flammable = 2} + 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", + place_param2 = def.place_param2 or nil, -- this isn't actually used for placement + 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, + sounds = default.node_sound_dirt_defaults({ + dig = {name = "", gain = 0}, + dug = {name = "default_grass_footstep", gain = 0.2}, + place = {name = "default_place_node", gain = 0.25}, + }), + + on_place = function(itemstack, placer, pointed_thing) + local under = pointed_thing.under + local node = minetest.get_node(under) + local udef = minetest.registered_nodes[node.name] + if udef and udef.on_rightclick and + not (placer and placer:is_player() and + placer:get_player_control().sneak) then + return udef.on_rightclick(under, node, placer, itemstack, + pointed_thing) or itemstack + end + + return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":seed_" .. pname) + end, + next_plant = mname .. ":" .. pname .. "_1", + on_timer = farming.grow_plant, + minlight = def.minlight, + maxlight = def.maxlight, + }) + + -- Register harvest + minetest.register_craftitem(":" .. mname .. ":" .. pname, { + description = pname:gsub("^%l", string.upper), + inventory_image = mname .. "_" .. pname .. ".png", + groups = {flammable = 2}, + }) + + -- Register growing steps + for i = 1, def.steps do + local base_rarity = 1 + if def.steps ~= 1 then + base_rarity = 8 - (i - 1) * 7 / (def.steps - 1) + end + local drop = { + items = { + {items = {mname .. ":" .. pname}, rarity = base_rarity}, + {items = {mname .. ":" .. pname}, rarity = base_rarity * 2}, + {items = {mname .. ":seed_" .. pname}, rarity = base_rarity}, + {items = {mname .. ":seed_" .. pname}, rarity = base_rarity * 2}, + } + } + local nodegroups = {snappy = 3, flammable = 2, plant = 1, not_in_creative_inventory = 1, attached_node = 1} + nodegroups[pname] = i + + local next_plant = nil + + if i < def.steps then + next_plant = mname .. ":" .. pname .. "_" .. (i + 1) + lbm_nodes[#lbm_nodes + 1] = mname .. ":" .. pname .. "_" .. i + end + + minetest.register_node(":" .. mname .. ":" .. pname .. "_" .. i, { + drawtype = "plantlike", + waving = 1, + tiles = {mname .. "_" .. pname .. "_" .. i .. ".png"}, + paramtype = "light", + paramtype2 = def.paramtype2 or nil, + place_param2 = def.place_param2 or nil, + walkable = false, + buildable_to = 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(), + next_plant = next_plant, + on_timer = farming.grow_plant, + minlight = def.minlight, + maxlight = def.maxlight, + }) + end + + -- replacement LBM for pre-nodetimer plants + minetest.register_lbm({ + name = ":" .. mname .. ":start_nodetimer_" .. pname, + nodenames = lbm_nodes, + action = function(pos, node) + tick_again(pos) + end, + }) + + -- Return + local r = { + seed = mname .. ":seed_" .. pname, + harvest = mname .. ":" .. pname + } + return r +end diff --git a/mods/farming/depends.txt b/mods/farming/depends.txt new file mode 100644 index 0000000..301d971 --- /dev/null +++ b/mods/farming/depends.txt @@ -0,0 +1,3 @@ +default +wool +stairs diff --git a/mods/farming/hoes.lua b/mods/farming/hoes.lua new file mode 100644 index 0000000..5aae390 --- /dev/null +++ b/mods/farming/hoes.lua @@ -0,0 +1,42 @@ +farming.register_hoe(":farming:hoe_wood", { + description = "Wooden Hoe", + inventory_image = "farming_tool_woodhoe.png", + max_uses = 30, + material = "group:wood", + groups = {flammable = 2}, +}) + +farming.register_hoe(":farming:hoe_stone", { + description = "Stone Hoe", + inventory_image = "farming_tool_stonehoe.png", + max_uses = 90, + material = "group:stone" +}) + +farming.register_hoe(":farming:hoe_steel", { + description = "Steel Hoe", + inventory_image = "farming_tool_steelhoe.png", + max_uses = 200, + material = "default:steel_ingot" +}) + +farming.register_hoe(":farming:hoe_bronze", { + description = "Bronze Hoe", + inventory_image = "farming_tool_bronzehoe.png", + max_uses = 220, + material = "default:bronze_ingot" +}) + +farming.register_hoe(":farming:hoe_mese", { + description = "Mese Hoe", + inventory_image = "farming_tool_mesehoe.png", + max_uses = 350, + material = "default:mese_crystal" +}) + +farming.register_hoe(":farming:hoe_diamond", { + description = "Diamond Hoe", + inventory_image = "farming_tool_diamondhoe.png", + max_uses = 500, + material = "default:diamond" +}) diff --git a/mods/farming/init.lua b/mods/farming/init.lua new file mode 100644 index 0000000..97dc9b4 --- /dev/null +++ b/mods/farming/init.lua @@ -0,0 +1,109 @@ +-- 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", + paramtype2 = "meshoptions", + inventory_image = "farming_wheat_seed.png", + steps = 8, + minlight = 13, + maxlight = default.LIGHT_MAX, + fertility = {"grassland"}, + groups = {flammable = 4}, + place_param2 = 3, +}) +minetest.register_craftitem("farming:flour", { + description = "Flour", + inventory_image = "farming_flour.png", + groups = {flammable = 1}, +}) + +minetest.register_craftitem("farming:bread", { + description = "Bread", + inventory_image = "farming_bread.png", + on_use = minetest.item_eat(5), + groups = {flammable = 2}, +}) + +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 = default.LIGHT_MAX, + fertility = {"grassland", "desert"}, + groups = {flammable = 4}, +}) + +minetest.register_alias("farming:string", "farming:cotton") + +minetest.register_craft({ + output = "wool:white", + recipe = { + {"farming:cotton", "farming:cotton"}, + {"farming:cotton", "farming:cotton"}, + } +}) + +-- Straw +minetest.register_craft({ + output = "farming:straw 3", + recipe = { + {"farming:wheat", "farming:wheat", "farming:wheat"}, + {"farming:wheat", "farming:wheat", "farming:wheat"}, + {"farming:wheat", "farming:wheat", "farming:wheat"}, + } +}) + +minetest.register_craft({ + output = "farming:wheat 3", + recipe = { + {"farming:straw"}, + } +}) + +-- Fuels +minetest.register_craft({ + type = "fuel", + recipe = "farming:straw", + burntime = 3, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:wheat", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:cotton", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "farming:hoe_wood", + burntime = 5, +}) diff --git a/mods/farming/license.txt b/mods/farming/license.txt new file mode 100644 index 0000000..8cbb63a --- /dev/null +++ b/mods/farming/license.txt @@ -0,0 +1,61 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 webdesigner97 +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +License of media (textures) +--------------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2012-2016 PilzAdam +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2015-2016 MasterGollum +Copyright (C) 2015-2016 Gambit + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ diff --git a/mods/farming/nodes.lua b/mods/farming/nodes.lua new file mode 100644 index 0000000..1e746ec --- /dev/null +++ b/mods/farming/nodes.lua @@ -0,0 +1,181 @@ +minetest.override_item("default:dirt", { + soil = { + base = "default:dirt", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.override_item("default:dirt_with_grass", { + soil = { + base = "default:dirt_with_grass", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.override_item("default:dirt_with_dry_grass", { + soil = { + base = "default:dirt_with_dry_grass", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.override_item("default:dirt_with_rainforest_litter", { + soil = { + base = "default:dirt_with_rainforest_litter", + dry = "farming:soil", + wet = "farming:soil_wet" + } +}) + +minetest.register_node("farming:soil", { + description = "Soil", + tiles = {"default_dirt.png^farming_soil.png", "default_dirt.png"}, + drop = "default:dirt", + 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 = {"default_dirt.png^farming_soil_wet.png", "default_dirt.png^farming_soil_wet_side.png"}, + drop = "default:dirt", + groups = {crumbly=3, not_in_creative_inventory=1, soil=3, 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"}, + 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"}, + 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_node("farming:straw", { + description = "Straw", + tiles = {"farming_straw.png"}, + is_ground_content = false, + groups = {snappy=3, flammable=4, fall_damage_add_percent=-30}, + sounds = default.node_sound_leaves_defaults(), +}) + +stairs.register_stair_and_slab( + "straw", + "farming:straw", + {snappy = 3, flammable = 4}, + {"farming_straw.png"}, + "Straw Stair", + "Straw Slab", + default.node_sound_leaves_defaults() +) + +minetest.register_abm({ + label = "Farming soil", + 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 + local wet_lvl = minetest.get_item_group(node.name, "wet") + if minetest.find_node_near(pos, 3, {"group:water"}) then + -- if it is dry soil and not base node, turn it into wet soil + if wet_lvl == 0 then + minetest.set_node(pos, {name = wet}) + end + else + -- only turn back if there are no unloaded blocks (and therefore + -- possible water sources) nearby + if not minetest.find_node_near(pos, 3, {"ignore"}) then + -- 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 + end, +}) + + +for i = 1, 5 do + minetest.override_item("default:grass_"..i, {drop = { + max_items = 1, + items = { + {items = {'farming:seed_wheat'},rarity = 5}, + {items = {'default:grass_1'}}, + } + }}) +end + +minetest.override_item("default:junglegrass", {drop = { + max_items = 1, + items = { + {items = {'farming:seed_cotton'},rarity = 8}, + {items = {'default:junglegrass'}}, + } +}}) diff --git a/mods/farming/textures/farming_bread.png b/mods/farming/textures/farming_bread.png new file mode 100644 index 0000000..0c25678 Binary files /dev/null and b/mods/farming/textures/farming_bread.png differ diff --git a/mods/farming/textures/farming_cotton.png b/mods/farming/textures/farming_cotton.png new file mode 100644 index 0000000..e2bbfd7 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 0000000..5fc2180 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 0000000..db4f4a3 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 0000000..df3d7a7 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 0000000..f314b07 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 0000000..3e89085 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 0000000..f4bd4fb 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 0000000..466d40a 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 0000000..f835ba5 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 0000000..f1d5b8a Binary files /dev/null and b/mods/farming/textures/farming_cotton_seed.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 0000000..3c09ef0 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 0000000..facc83e 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 0000000..41e5a04 Binary files /dev/null and b/mods/farming/textures/farming_desert_sand_soil_wet_side.png differ diff --git a/mods/farming/textures/farming_flour.png b/mods/farming/textures/farming_flour.png new file mode 100644 index 0000000..b1a9783 Binary files /dev/null and b/mods/farming/textures/farming_flour.png differ diff --git a/mods/farming/textures/farming_soil.png b/mods/farming/textures/farming_soil.png new file mode 100644 index 0000000..5cd3e68 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 0000000..0b4487d 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 0000000..f0b1bd4 Binary files /dev/null and b/mods/farming/textures/farming_soil_wet_side.png differ diff --git a/mods/farming/textures/farming_straw.png b/mods/farming/textures/farming_straw.png new file mode 100644 index 0000000..f9f5fe7 Binary files /dev/null and b/mods/farming/textures/farming_straw.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 0000000..2802d11 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 0000000..66f1042 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 0000000..4534fba 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 0000000..d057af2 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 0000000..55d8123 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 0000000..a287152 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 0000000..1e0ad3b 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 0000000..c16ad94 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 0000000..baddb4c 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 0000000..36ebb19 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 0000000..735ed77 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 0000000..f40b5f0 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 0000000..e9c78e0 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 0000000..cc26ca9 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 0000000..d050093 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 0000000..a9031fb Binary files /dev/null and b/mods/farming/textures/farming_wheat_seed.png differ diff --git a/mods/fire/README.txt b/mods/fire/README.txt new file mode 100644 index 0000000..099da1c --- /dev/null +++ b/mods/fire/README.txt @@ -0,0 +1,35 @@ +Minetest Game mod: fire +======================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +Authors of media (textures and sounds) +-------------------------------------- +Everything not listed in here: +Copyright (C) 2012 Perttu Ahola (celeron55) (CC BY-SA 3.0) + +Muadtralk (CC BY-SA 3.0) + fire_basic_flame_animated.png + +Gambit (CC BY-SA 3.0) + fire_flint_steel.png + +dobroide (CC BY 3.0) +http://www.freesound.org/people/dobroide/sounds/4211/ + fire_small.ogg + +Dynamicell (CC BY 3.0) +http://www.freesound.org/people/Dynamicell/sounds/17548/ + fire_large.ogg + fire_fire.*.ogg + +fire_small.ogg and fire_large.ogg are unused but kept temporarily to not break +other mods that may use them. + +Benboncan (CC BY 3.0) +https://www.freesound.org/people/Benboncan/sounds/66457/ + fire_flint_and_steel.ogg diff --git a/mods/fire/depends.txt b/mods/fire/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/fire/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/fire/init.lua b/mods/fire/init.lua new file mode 100644 index 0000000..f97636b --- /dev/null +++ b/mods/fire/init.lua @@ -0,0 +1,365 @@ +-- Global namespace for functions + +fire = {} + + +-- +-- Items +-- + +-- Flame nodes + +minetest.register_node("fire:basic_flame", { + drawtype = "firelike", + tiles = { + { + name = "fire_basic_flame_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1 + }, + }, + }, + inventory_image = "fire_basic_flame.png", + paramtype = "light", + light_source = 13, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + damage_per_second = 4, + groups = {igniter = 2, dig_immediate = 3, not_in_creative_inventory = 1}, + on_timer = function(pos) + local f = minetest.find_node_near(pos, 1, {"group:flammable"}) + if not f then + minetest.remove_node(pos) + return + end + -- Restart timer + return true + end, + drop = "", + + on_construct = function(pos) + minetest.get_node_timer(pos):start(math.random(30, 60)) + end, +}) + +minetest.register_node("fire:permanent_flame", { + description = "Permanent Flame", + drawtype = "firelike", + tiles = { + { + name = "fire_basic_flame_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1 + }, + }, + }, + inventory_image = "fire_basic_flame.png", + paramtype = "light", + light_source = 13, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + damage_per_second = 4, + groups = {igniter = 2, dig_immediate = 3}, + drop = "", +}) + + +-- Flint and steel + +minetest.register_tool("fire:flint_and_steel", { + description = "Flint and Steel", + inventory_image = "fire_flint_steel.png", + sound = {breaks = "default_tool_breaks"}, + + on_use = function(itemstack, user, pointed_thing) + local sound_pos = pointed_thing.above or user:get_pos() + minetest.sound_play( + "fire_flint_and_steel", + {pos = sound_pos, gain = 0.5, max_hear_distance = 8} + ) + local player_name = user:get_player_name() + if pointed_thing.type == "node" then + local node_under = minetest.get_node(pointed_thing.under).name + local nodedef = minetest.registered_nodes[node_under] + if not nodedef then + return + end + if minetest.is_protected(pointed_thing.under, player_name) then + minetest.chat_send_player(player_name, "This area is protected") + return + end + if nodedef.on_ignite then + nodedef.on_ignite(pointed_thing.under, user) + elseif minetest.get_item_group(node_under, "flammable") >= 1 + and minetest.get_node(pointed_thing.above).name == "air" then + minetest.set_node(pointed_thing.above, {name = "fire:basic_flame"}) + end + end + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) then + -- Wear tool + local wdef = itemstack:get_definition() + itemstack:add_wear(1000) + -- Tool break sound + if itemstack:get_count() == 0 and wdef.sound and wdef.sound.breaks then + minetest.sound_play(wdef.sound.breaks, {pos = sound_pos, gain = 0.5}) + end + return itemstack + end + end +}) + +minetest.register_craft({ + output = "fire:flint_and_steel", + recipe = { + {"default:flint", "default:steel_ingot"} + } +}) + + +-- Override coalblock to enable permanent flame above +-- Coalblock is non-flammable to avoid unwanted basic_flame nodes + +minetest.override_item("default:coalblock", { + after_destruct = function(pos, oldnode) + pos.y = pos.y + 1 + if minetest.get_node(pos).name == "fire:permanent_flame" then + minetest.remove_node(pos) + end + end, + on_ignite = function(pos, igniter) + local flame_pos = {x = pos.x, y = pos.y + 1, z = pos.z} + if minetest.get_node(flame_pos).name == "air" then + minetest.set_node(flame_pos, {name = "fire:permanent_flame"}) + end + end, +}) + + +-- +-- Sound +-- + +local flame_sound = minetest.settings:get_bool("flame_sound") +if flame_sound == nil then + -- Enable if no setting present + flame_sound = true +end + +if flame_sound then + + local handles = {} + local timer = 0 + + -- Parameters + + local radius = 8 -- Flame node search radius around player + local cycle = 3 -- Cycle time for sound updates + + -- Update sound for player + + function fire.update_player_sound(player) + local player_name = player:get_player_name() + -- Search for flame nodes in radius around player + local ppos = player:getpos() + local areamin = vector.subtract(ppos, radius) + local areamax = vector.add(ppos, radius) + local fpos, num = minetest.find_nodes_in_area( + areamin, + areamax, + {"fire:basic_flame", "fire:permanent_flame"} + ) + -- Total number of flames in radius + local flames = (num["fire:basic_flame"] or 0) + + (num["fire:permanent_flame"] or 0) + -- Stop previous sound + if handles[player_name] then + minetest.sound_stop(handles[player_name]) + handles[player_name] = nil + end + -- If flames + if flames > 0 then + -- Find centre of flame positions + local fposmid = fpos[1] + -- If more than 1 flame + if #fpos > 1 then + local fposmin = areamax + local fposmax = areamin + for i = 1, #fpos do + local fposi = fpos[i] + if fposi.x > fposmax.x then + fposmax.x = fposi.x + end + if fposi.y > fposmax.y then + fposmax.y = fposi.y + end + if fposi.z > fposmax.z then + fposmax.z = fposi.z + end + if fposi.x < fposmin.x then + fposmin.x = fposi.x + end + if fposi.y < fposmin.y then + fposmin.y = fposi.y + end + if fposi.z < fposmin.z then + fposmin.z = fposi.z + end + end + fposmid = vector.divide(vector.add(fposmin, fposmax), 2) + end + -- Play sound + local handle = minetest.sound_play( + "fire_fire", + { + pos = fposmid, + to_player = player_name, + gain = math.min(0.06 * (1 + flames * 0.125), 0.18), + max_hear_distance = 32, + loop = true, -- In case of lag + } + ) + -- Store sound handle for this player + if handle then + handles[player_name] = handle + end + end + end + + -- Cycle for updating players sounds + + minetest.register_globalstep(function(dtime) + timer = timer + dtime + if timer < cycle then + return + end + + timer = 0 + local players = minetest.get_connected_players() + for n = 1, #players do + fire.update_player_sound(players[n]) + end + end) + + -- Stop sound and clear handle on player leave + + minetest.register_on_leaveplayer(function(player) + local player_name = player:get_player_name() + if handles[player_name] then + minetest.sound_stop(handles[player_name]) + handles[player_name] = nil + end + end) +end + + +-- Deprecated function kept temporarily to avoid crashes if mod fire nodes call it + +function fire.update_sounds_around(pos) +end + + +-- +-- ABMs +-- + +-- Extinguish all flames quickly with water, snow, ice + +minetest.register_abm({ + label = "Extinguish flame", + nodenames = {"fire:basic_flame", "fire:permanent_flame"}, + neighbors = {"group:puts_out_fire"}, + interval = 3, + chance = 1, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.remove_node(pos) + minetest.sound_play("fire_extinguish_flame", + {pos = pos, max_hear_distance = 16, gain = 0.15}) + end, +}) + + +-- Enable the following ABMs according to 'enable fire' setting + +local fire_enabled = minetest.settings:get_bool("enable_fire") +if fire_enabled == nil then + -- enable_fire setting not specified, check for disable_fire + local fire_disabled = minetest.settings:get_bool("disable_fire") + if fire_disabled == nil then + -- Neither setting specified, check whether singleplayer + fire_enabled = minetest.is_singleplayer() + else + fire_enabled = not fire_disabled + end +end + +if not fire_enabled then + + -- Remove basic flames only if fire disabled + + minetest.register_abm({ + label = "Remove disabled fire", + nodenames = {"fire:basic_flame"}, + interval = 7, + chance = 1, + catch_up = false, + action = minetest.remove_node, + }) + +else -- Fire enabled + + -- Ignite neighboring nodes, add basic flames + + minetest.register_abm({ + label = "Ignite flame", + nodenames = {"group:flammable"}, + neighbors = {"group:igniter"}, + interval = 7, + chance = 12, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + -- If there is water or stuff like that around node, don't ignite + if minetest.find_node_near(pos, 1, {"group:puts_out_fire"}) then + return + end + local p = minetest.find_node_near(pos, 1, {"air"}) + if p then + minetest.set_node(p, {name = "fire:basic_flame"}) + end + end, + }) + + -- Remove flammable nodes around basic flame + + minetest.register_abm({ + label = "Remove flammable nodes", + nodenames = {"fire:basic_flame"}, + neighbors = "group:flammable", + interval = 5, + chance = 18, + catch_up = false, + action = function(pos, node, active_object_count, active_object_count_wider) + local p = minetest.find_node_near(pos, 1, {"group:flammable"}) + if p then + local flammable_node = minetest.get_node(p) + local def = minetest.registered_nodes[flammable_node.name] + if def.on_burn then + def.on_burn(p) + else + minetest.remove_node(p) + minetest.check_for_falling(p) + end + end + end, + }) + +end diff --git a/mods/fire/license.txt b/mods/fire/license.txt new file mode 100644 index 0000000..43f9cd7 --- /dev/null +++ b/mods/fire/license.txt @@ -0,0 +1,84 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2012-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures and sounds) +--------------------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Muadtralk +Copyright (C) 2013-2016 Gambit + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ + +----------------------- + +Attribution 3.0 Unported (CC BY 3.0) +Copyright (C) 2005 dobroide +Copyright (C) 2006 Dynamicell +Copyright (C) 2009 Benboncan + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by/3.0/ diff --git a/mods/fire/sounds/fire_extinguish_flame.1.ogg b/mods/fire/sounds/fire_extinguish_flame.1.ogg new file mode 100644 index 0000000..42506dd Binary files /dev/null and b/mods/fire/sounds/fire_extinguish_flame.1.ogg differ diff --git a/mods/fire/sounds/fire_extinguish_flame.2.ogg b/mods/fire/sounds/fire_extinguish_flame.2.ogg new file mode 100644 index 0000000..2747ab8 Binary files /dev/null and b/mods/fire/sounds/fire_extinguish_flame.2.ogg differ diff --git a/mods/fire/sounds/fire_extinguish_flame.3.ogg b/mods/fire/sounds/fire_extinguish_flame.3.ogg new file mode 100644 index 0000000..8baeac3 Binary files /dev/null and b/mods/fire/sounds/fire_extinguish_flame.3.ogg differ diff --git a/mods/fire/sounds/fire_fire.1.ogg b/mods/fire/sounds/fire_fire.1.ogg new file mode 100644 index 0000000..cbfee4c Binary files /dev/null and b/mods/fire/sounds/fire_fire.1.ogg differ diff --git a/mods/fire/sounds/fire_fire.2.ogg b/mods/fire/sounds/fire_fire.2.ogg new file mode 100644 index 0000000..e8d0eb1 Binary files /dev/null and b/mods/fire/sounds/fire_fire.2.ogg differ diff --git a/mods/fire/sounds/fire_fire.3.ogg b/mods/fire/sounds/fire_fire.3.ogg new file mode 100644 index 0000000..5cad3d9 Binary files /dev/null and b/mods/fire/sounds/fire_fire.3.ogg differ diff --git a/mods/fire/sounds/fire_flint_and_steel.ogg b/mods/fire/sounds/fire_flint_and_steel.ogg new file mode 100644 index 0000000..6996e16 Binary files /dev/null and b/mods/fire/sounds/fire_flint_and_steel.ogg differ diff --git a/mods/fire/sounds/fire_large.ogg b/mods/fire/sounds/fire_large.ogg new file mode 100644 index 0000000..fe78e62 Binary files /dev/null and b/mods/fire/sounds/fire_large.ogg differ diff --git a/mods/fire/sounds/fire_small.ogg b/mods/fire/sounds/fire_small.ogg new file mode 100644 index 0000000..5aac595 Binary files /dev/null and b/mods/fire/sounds/fire_small.ogg differ diff --git a/mods/fire/textures/fire_basic_flame.png b/mods/fire/textures/fire_basic_flame.png new file mode 100644 index 0000000..1da0702 Binary files /dev/null and b/mods/fire/textures/fire_basic_flame.png differ diff --git a/mods/fire/textures/fire_basic_flame_animated.png b/mods/fire/textures/fire_basic_flame_animated.png new file mode 100644 index 0000000..1cdd9fd Binary files /dev/null and b/mods/fire/textures/fire_basic_flame_animated.png differ diff --git a/mods/fire/textures/fire_flint_steel.png b/mods/fire/textures/fire_flint_steel.png new file mode 100644 index 0000000..c262ebc Binary files /dev/null and b/mods/fire/textures/fire_flint_steel.png differ diff --git a/mods/flowers/README.txt b/mods/flowers/README.txt new file mode 100644 index 0000000..2a5e4de --- /dev/null +++ b/mods/flowers/README.txt @@ -0,0 +1,26 @@ +Minetest Game mod: flowers +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Ironzorg (MIT) and VanessaE (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +RHRhino (CC BY-SA 3.0): + flowers_dandelion_white.png + flowers_dandelion_yellow.png + flowers_geranium.png + flowers_rose.png + flowers_tulip.png + flowers_viola.png + +Gambit (CC BY-SA 3.0): + flowers_mushroom_brown.png + flowers_mushroom_red.png + flowers_waterlily.png + +yyt16384 (CC BY-SA 3.0): + flowers_waterlily_bottom.png, derived from Gambit's texture diff --git a/mods/flowers/depends.txt b/mods/flowers/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/flowers/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/flowers/init.lua b/mods/flowers/init.lua new file mode 100644 index 0000000..1f55a3f --- /dev/null +++ b/mods/flowers/init.lua @@ -0,0 +1,310 @@ +-- Minetest 0.4 mod: default +-- See README.txt for licensing and other information. + + +-- Namespace for functions + +flowers = {} + + +-- Map Generation + +dofile(minetest.get_modpath("flowers") .. "/mapgen.lua") + + +-- +-- Flowers +-- + +-- Aliases for original flowers mod + +minetest.register_alias("flowers:flower_rose", "flowers:rose") +minetest.register_alias("flowers:flower_tulip", "flowers:tulip") +minetest.register_alias("flowers:flower_dandelion_yellow", "flowers:dandelion_yellow") +minetest.register_alias("flowers:flower_geranium", "flowers:geranium") +minetest.register_alias("flowers:flower_viola", "flowers:viola") +minetest.register_alias("flowers:flower_dandelion_white", "flowers:dandelion_white") + + +-- Flower registration + +local function add_simple_flower(name, desc, box, f_groups) + -- Common flowers' groups + f_groups.snappy = 3 + f_groups.flower = 1 + f_groups.flora = 1 + f_groups.attached_node = 1 + + minetest.register_node("flowers:" .. name, { + description = desc, + drawtype = "plantlike", + waving = 1, + tiles = {"flowers_" .. name .. ".png"}, + inventory_image = "flowers_" .. name .. ".png", + wield_image = "flowers_" .. name .. ".png", + sunlight_propagates = true, + paramtype = "light", + walkable = false, + buildable_to = true, + stack_max = 99, + groups = f_groups, + sounds = default.node_sound_leaves_defaults(), + selection_box = { + type = "fixed", + fixed = box + } + }) +end + +flowers.datas = { + { + "rose", + "Rose", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 5 / 16, 2 / 16}, + {color_red = 1, flammable = 1} + }, + { + "tulip", + "Orange Tulip", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, + {color_orange = 1, flammable = 1} + }, + { + "dandelion_yellow", + "Yellow Dandelion", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 4 / 16, 2 / 16}, + {color_yellow = 1, flammable = 1} + }, + { + "geranium", + "Blue Geranium", + {-2 / 16, -0.5, -2 / 16, 2 / 16, 2 / 16, 2 / 16}, + {color_blue = 1, flammable = 1} + }, + { + "viola", + "Viola", + {-5 / 16, -0.5, -5 / 16, 5 / 16, -1 / 16, 5 / 16}, + {color_violet = 1, flammable = 1} + }, + { + "dandelion_white", + "White dandelion", + {-5 / 16, -0.5, -5 / 16, 5 / 16, -2 / 16, 5 / 16}, + {color_white = 1, flammable = 1} + }, +} + +for _,item in pairs(flowers.datas) do + add_simple_flower(unpack(item)) +end + + +-- Flower spread +-- Public function to enable override by mods + +function flowers.flower_spread(pos, node) + pos.y = pos.y - 1 + local under = minetest.get_node(pos) + pos.y = pos.y + 1 + -- Replace flora with dry shrub in desert sand and silver sand, + -- as this is the only way to generate them. + -- However, preserve grasses in sand dune biomes. + if minetest.get_item_group(under.name, "sand") == 1 and + under.name ~= "default:sand" then + minetest.set_node(pos, {name = "default:dry_shrub"}) + return + end + + if minetest.get_item_group(under.name, "soil") == 0 then + return + end + + local light = minetest.get_node_light(pos) + if not light or light < 13 then + return + end + + local pos0 = vector.subtract(pos, 4) + local pos1 = vector.add(pos, 4) + -- Maximum flower density created by mapgen is 13 per 9x9 area. + -- The limit of 7 below was tuned by in-game testing to result in a maximum + -- flower density by ABM spread of 13 per 9x9 area. + -- Warning: Setting this limit theoretically without in-game testing + -- results in a maximum flower density by ABM spread that is far too high. + if #minetest.find_nodes_in_area(pos0, pos1, "group:flora") > 7 then + return + end + + local soils = minetest.find_nodes_in_area_under_air( + pos0, pos1, "group:soil") + local num_soils = #soils + if num_soils >= 1 then + for si = 1, math.min(3, num_soils) do + local soil = soils[math.random(num_soils)] + local soil_above = {x = soil.x, y = soil.y + 1, z = soil.z} + light = minetest.get_node_light(soil_above) + if light and light >= 13 and + -- Desert sand is in the soil group + minetest.get_node(soil).name ~= "default:desert_sand" then + minetest.set_node(soil_above, {name = node.name}) + end + end + end +end + +minetest.register_abm({ + label = "Flower spread", + nodenames = {"group:flora"}, + interval = 13, + chance = 300, + action = function(...) + flowers.flower_spread(...) + end, +}) + + +-- +-- Mushrooms +-- + +minetest.register_node("flowers:mushroom_red", { + description = "Red Mushroom", + tiles = {"flowers_mushroom_red.png"}, + inventory_image = "flowers_mushroom_red.png", + wield_image = "flowers_mushroom_red.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(-5), + selection_box = { + type = "fixed", + fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16}, + } +}) + +minetest.register_node("flowers:mushroom_brown", { + description = "Brown Mushroom", + tiles = {"flowers_mushroom_brown.png"}, + inventory_image = "flowers_mushroom_brown.png", + wield_image = "flowers_mushroom_brown.png", + drawtype = "plantlike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + buildable_to = true, + groups = {snappy = 3, attached_node = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + on_use = minetest.item_eat(1), + selection_box = { + type = "fixed", + fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, -2 / 16, 3 / 16}, + } +}) + + +-- Mushroom spread and death + +function flowers.mushroom_spread(pos, node) + if minetest.get_node_light(pos, nil) == 15 then + minetest.remove_node(pos) + return + end + local positions = minetest.find_nodes_in_area_under_air( + {x = pos.x - 1, y = pos.y - 2, z = pos.z - 1}, + {x = pos.x + 1, y = pos.y + 1, z = pos.z + 1}, + {"group:soil", "group:tree"}) + if #positions == 0 then + return + end + local pos2 = positions[math.random(#positions)] + pos2.y = pos2.y + 1 + if minetest.get_node_light(pos, 0.5) <= 3 and + minetest.get_node_light(pos2, 0.5) <= 3 then + minetest.set_node(pos2, {name = node.name}) + end +end + +minetest.register_abm({ + label = "Mushroom spread", + nodenames = {"flowers:mushroom_brown", "flowers:mushroom_red"}, + interval = 11, + chance = 150, + action = function(...) + flowers.mushroom_spread(...) + end, +}) + + +-- These old mushroom related nodes can be simplified now + +minetest.register_alias("flowers:mushroom_spores_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_spores_red", "flowers:mushroom_red") +minetest.register_alias("flowers:mushroom_fertile_brown", "flowers:mushroom_brown") +minetest.register_alias("flowers:mushroom_fertile_red", "flowers:mushroom_red") +minetest.register_alias("mushroom:brown_natural", "flowers:mushroom_brown") +minetest.register_alias("mushroom:red_natural", "flowers:mushroom_red") + + +-- +-- Waterlily +-- + +minetest.register_node("flowers:waterlily", { + description = "Waterlily", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + tiles = {"flowers_waterlily.png", "flowers_waterlily_bottom.png"}, + inventory_image = "flowers_waterlily.png", + wield_image = "flowers_waterlily.png", + liquids_pointable = true, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + floodable = true, + groups = {snappy = 3, flower = 1, flammable = 1}, + sounds = default.node_sound_leaves_defaults(), + node_placement_prediction = "", + node_box = { + type = "fixed", + fixed = {-0.5, -31 / 64, -0.5, 0.5, -15 / 32, 0.5} + }, + selection_box = { + type = "fixed", + fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, -15 / 32, 7 / 16} + }, + + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + local node = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[node.name] + local player_name = placer and placer:get_player_name() or "" + + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, node, placer, itemstack, + pointed_thing) + end + + if def and def.liquidtype == "source" and + minetest.get_item_group(node.name, "water") > 0 then + if not minetest.is_protected(pos, player_name) then + minetest.set_node(pos, {name = "flowers:waterlily", + param2 = math.random(0, 3)}) + if not (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + else + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos, player_name) + end + end + + return itemstack + end +}) diff --git a/mods/flowers/license.txt b/mods/flowers/license.txt new file mode 100644 index 0000000..d301162 --- /dev/null +++ b/mods/flowers/license.txt @@ -0,0 +1,62 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Ironzorg, VanessaE +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 RHRhino +Copyright (C) 2015-2016 Gambit +Copyright (C) 2016 yyt16384 + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/flowers/mapgen.lua b/mods/flowers/mapgen.lua new file mode 100644 index 0000000..2b96090 --- /dev/null +++ b/mods/flowers/mapgen.lua @@ -0,0 +1,171 @@ +-- +-- Mgv6 +-- + +local function register_mgv6_flower(name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 100, y = 100, z = 100}, + seed = 436, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "flowers:"..name, + }) +end + +local function register_mgv6_mushroom(name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.04, + spread = {x = 100, y = 100, z = 100}, + seed = 7133, + octaves = 3, + persist = 0.6 + }, + y_min = 1, + y_max = 30, + decoration = "flowers:"..name, + spawn_by = "default:tree", + num_spawn_by = 1, + }) +end + +local function register_mgv6_waterlily() + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.12, + scale = 0.3, + spread = {x = 100, y = 100, z = 100}, + seed = 33, + octaves = 3, + persist = 0.7 + }, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("flowers").."/schematics/waterlily.mts", + rotation = "random", + }) +end + +function flowers.register_mgv6_decorations() + register_mgv6_flower("rose") + register_mgv6_flower("tulip") + register_mgv6_flower("dandelion_yellow") + register_mgv6_flower("geranium") + register_mgv6_flower("viola") + register_mgv6_flower("dandelion_white") + + register_mgv6_mushroom("mushroom_brown") + register_mgv6_mushroom("mushroom_red") + + register_mgv6_waterlily() +end + + +-- +-- All other biome API mapgens +-- + +local function register_flower(seed, name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = -0.015, + scale = 0.025, + spread = {x = 200, y = 200, z = 200}, + seed = seed, + octaves = 3, + persist = 0.6 + }, + biomes = {"grassland", "deciduous_forest", "coniferous_forest", + "floatland_grassland", "floatland_coniferous_forest"}, + y_min = 1, + y_max = 31000, + decoration = "flowers:"..name, + }) +end + +local function register_mushroom(name) + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass"}, + sidelen = 16, + noise_params = { + offset = 0, + scale = 0.006, + spread = {x = 250, y = 250, z = 250}, + seed = 2, + octaves = 3, + persist = 0.66 + }, + biomes = {"deciduous_forest", "coniferous_forest", + "floatland_coniferous_forest"}, + y_min = 1, + y_max = 31000, + decoration = "flowers:"..name, + }) +end + +local function register_waterlily() + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt"}, + sidelen = 16, + noise_params = { + offset = -0.12, + scale = 0.3, + spread = {x = 200, y = 200, z = 200}, + seed = 33, + octaves = 3, + persist = 0.7 + }, + biomes = {"rainforest_swamp", "savanna_shore", "deciduous_forest_shore"}, + y_min = 0, + y_max = 0, + schematic = minetest.get_modpath("flowers") .. "/schematics/waterlily.mts", + rotation = "random", + }) +end + +function flowers.register_decorations() + register_flower(436, "rose") + register_flower(19822, "tulip") + register_flower(1220999, "dandelion_yellow") + register_flower(36662, "geranium") + register_flower(1133, "viola") + register_flower(73133, "dandelion_white") + + register_mushroom("mushroom_brown") + register_mushroom("mushroom_red") + + register_waterlily() +end + + +-- +-- Detect mapgen to select functions +-- + +local mg_name = minetest.get_mapgen_setting("mg_name") +if mg_name == "v6" then + flowers.register_mgv6_decorations() +else + flowers.register_decorations() +end diff --git a/mods/flowers/schematics/waterlily.mts b/mods/flowers/schematics/waterlily.mts new file mode 100644 index 0000000..69e1d8e Binary files /dev/null and b/mods/flowers/schematics/waterlily.mts differ diff --git a/mods/flowers/textures/flowers_dandelion_white.png b/mods/flowers/textures/flowers_dandelion_white.png new file mode 100644 index 0000000..1bc02fb Binary files /dev/null and b/mods/flowers/textures/flowers_dandelion_white.png differ diff --git a/mods/flowers/textures/flowers_dandelion_yellow.png b/mods/flowers/textures/flowers_dandelion_yellow.png new file mode 100644 index 0000000..ec11c1c Binary files /dev/null and b/mods/flowers/textures/flowers_dandelion_yellow.png differ diff --git a/mods/flowers/textures/flowers_geranium.png b/mods/flowers/textures/flowers_geranium.png new file mode 100644 index 0000000..88de1d7 Binary files /dev/null and b/mods/flowers/textures/flowers_geranium.png differ diff --git a/mods/flowers/textures/flowers_mushroom_brown.png b/mods/flowers/textures/flowers_mushroom_brown.png new file mode 100644 index 0000000..33ffcd4 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_brown.png differ diff --git a/mods/flowers/textures/flowers_mushroom_red.png b/mods/flowers/textures/flowers_mushroom_red.png new file mode 100644 index 0000000..a68f5d5 Binary files /dev/null and b/mods/flowers/textures/flowers_mushroom_red.png differ diff --git a/mods/flowers/textures/flowers_rose.png b/mods/flowers/textures/flowers_rose.png new file mode 100644 index 0000000..e3b841d Binary files /dev/null and b/mods/flowers/textures/flowers_rose.png differ diff --git a/mods/flowers/textures/flowers_tulip.png b/mods/flowers/textures/flowers_tulip.png new file mode 100644 index 0000000..471fcd3 Binary files /dev/null and b/mods/flowers/textures/flowers_tulip.png differ diff --git a/mods/flowers/textures/flowers_viola.png b/mods/flowers/textures/flowers_viola.png new file mode 100644 index 0000000..ca2d750 Binary files /dev/null and b/mods/flowers/textures/flowers_viola.png differ diff --git a/mods/flowers/textures/flowers_waterlily.png b/mods/flowers/textures/flowers_waterlily.png new file mode 100644 index 0000000..305c445 Binary files /dev/null and b/mods/flowers/textures/flowers_waterlily.png differ diff --git a/mods/flowers/textures/flowers_waterlily_bottom.png b/mods/flowers/textures/flowers_waterlily_bottom.png new file mode 100644 index 0000000..3dbeaf4 Binary files /dev/null and b/mods/flowers/textures/flowers_waterlily_bottom.png differ diff --git a/mods/gems/depends.txt b/mods/gems/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/gems/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/gems/init.lua b/mods/gems/init.lua new file mode 100644 index 0000000..b657dd1 --- /dev/null +++ b/mods/gems/init.lua @@ -0,0 +1,350 @@ +minetest.register_node("gems:ruby_ore", { + description = "ruby ore", + light_source = 8, + tiles = {"ruby_ruby_ore.png"}, + is_ground_content = true, + groups = {cracky=6}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:ruby_gem" 1', +}) + +minetest.register_node("gems:emerald_ore", { + description = "emerald ore", + light_source = 8, + tiles = {"gems_emerald_ore.png"}, + is_ground_content = true, + groups = {cracky=9}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:emerald_gem" 1', +}) + +minetest.register_node("gems:sapphire_ore", { + description = "sapphire ore", + light_source = 8, + tiles = {"gems_sapphire_ore.png"}, + is_ground_content = true, + groups = {cracky=6}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:sapphire_gem" 1', +}) + +minetest.register_node("gems:amethyst_ore", { + description = "amethyst ore", + light_source = 8, + tiles = {"gems_amethyst_ore.png"}, + is_ground_content = true, + groups = {cracky=7} , + sounds = default.node_sound_defaults(), + drop = 'craft "gems:amethyst_gem" 1', +}) + +minetest.register_node("gems:shadow_ore", { + description = "shadow ore", + light_source = 8, + tiles = {"shadow_ore.png"}, + is_ground_content = true, + groups = {cracky=8}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:shadow_gem" 1', +}) + +minetest.register_node("gems:pearl_ore", { + description = "pearl ore", + light_source = 8, + tiles = {"gems_pearl_ore.png"}, + is_ground_content = true, + groups = {cracky=8}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:pearl_gem" 1', +}) + +minetest.register_node( "gems:ruby_block", { + description = "ruby block", + light_source = 8, + tile_images = { "ruby_ruby_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:emerald_block", { + description = "emerald block", + light_source = 8, + tile_images = { "gems_emerald_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:sapphire_block", { + description = "sapphire block", + light_source = 8, + tile_images = { "gems_sapphire_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:shadow_block", { + description = "shadow block", + light_source = 8, + tile_images = { "shadow_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:pearl_block", { + description = "pearl block", + light_source = 8, + tile_images = { "gems_pearl_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:amethyst_block", { + description = "amethyst block", + light_source = 8, + tile_images = { "gems_amethyst_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_craftitem( "gems:ruby_gem", { + description = "ruby gem", + tile_images = { "ruby:ruby_gem" }, + inventory_image = "ruby_ruby_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:emerald_gem", { + description = "emerald gem", + tile_images = { "gems:emerald_gem" }, + inventory_image = "gems_emerald_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:shadow_gem", { + description = "shadow gem", + tile_images = { "gems:shadow_gem" }, + inventory_image = "shadow_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:sapphire_gem", { + description = "sapphire gem", + tile_images = { "gems:sapphire_gem" }, + inventory_image = "gems_sapphire_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:amethyst_gem", { + description = "amethyst gem", + tile_images = { "gems:amethyst_gem" }, + inventory_image = "gems_amethyst_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:pearl_gem", { + description = "pearl gem", + tile_images = { "gems:pearl_gem" }, + inventory_image = "gems_pearl_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + + + +minetest.register_craft({ + output = 'gems:ruby_block', + recipe = { + {'gems:ruby_gem','gems:ruby_gem','gems:ruby_gem',}, + {'gems:ruby_gem','gems:ruby_gem','gems:ruby_gem',}, + {'gems:ruby_gem','gems:ruby_gem','gems:ruby_gem',}, + } +}) + +minetest.register_craft({ + output = 'gems:shadow_block', + recipe = { + {'gems:shadow_gem','gems:shadow_gem','gems:shadow_gem',}, + {'gems:shadow_gem','gems:shadow_gem','gems:shadow_gem',}, + {'gems:shadow_gem','gems:shadow_gem','gems:shadow_gem',}, + } +}) + +minetest.register_craft({ + output = 'gems:amethyst_block', + recipe = { + {'gems:amethyst_gem','gems:amethyst_gem','gems:amethyst_gem',}, + {'gems:amethyst_gem','gems:amethyst_gem','gems:amethyst_gem',}, + {'gems:amethyst_gem','gems:amethyst_gem','gems:amethyst_gem',}, + } +}) + +minetest.register_craft({ + output = 'gems:emerald_block', + recipe = { + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + } +}) + +minetest.register_craft({ + output = 'gems:sapphire_block', + recipe = { + {'gems:sapphire_gem', 'gems:sapphire_gem', 'gems:sapphire_gem'}, + {'gems:sapphire_gem', 'gems:sapphire_gem', 'gems:sapphire_gem'}, + {'gems:sapphire_gem', 'gems:sapphire_gem', 'gems:sapphire_gem'}, + } +}) + +minetest.register_craft({ + output = 'gems:pearl_block', + recipe = { + {'gems:pearl_gem', 'gems:pearl_gem', 'gems:pearl_gem'}, + {'gems:pearl_gem', 'gems:pearl_gem', 'gems:pearl_gem'}, + {'gems:pearl_gem', 'gems:pearl_gem', 'gems:pearl_gem'}, + } +}) + + + +minetest.register_craft({ + output = 'gems:amethyst_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:amethyst_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:ruby_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:ruby_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:emerald_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:emerald_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:sapphire_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:sapphire_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:shadow_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:shadow_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:pearl_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:pearl_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:ruby_ore", + wherein = "default:stone", + clust_scarcity = 10*10*10, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -300, + flags = "absheight", +}) + + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:sapphire_ore", + wherein = "default:stone", + clust_scarcity = 10*10*10, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -300, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:amethyst_ore", + wherein = "default:stone", + clust_scarcity = 13*13*13, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -600, + flags = "absheight", +}) + + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:shadow_ore", + wherein = "default:stone", + clust_scarcity = 15*15*15, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -900, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:pearl_ore", + wherein = "default:stone", + clust_scarcity = 15*15*15, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -900, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:emerald_ore", + wherein = "default:stone", + clust_scarcity = 17*17*17, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -1200, + flags = "absheight", +}) + + + diff --git a/mods/gems/init.lua~ b/mods/gems/init.lua~ new file mode 100644 index 0000000..3c35578 --- /dev/null +++ b/mods/gems/init.lua~ @@ -0,0 +1,875 @@ +minetest.register_tool("gems:pick_ruby", { + description = "ruby pickaxe", + inventory_image = "ruby_ruby_pick.png", + tool_capabilities = { + full_punch_interval = 0, + max_drop_level=3, + groupcaps={ + cracky={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=1000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:pick_shadow", { + description = "shadow pickaxe", + inventory_image = "shadow_pick.png", + tool_capabilities = { + full_punch_interval = 0, + max_drop_level=3, + groupcaps={ + + cracky={times={[1]=1.2, [2]=0.6, [3]=0.3}, uses=100000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:pick_emerald", { + description = "emerald pickaxe", + inventory_image = "gems_emerald_pick.png", + tool_capabilities = { + full_punch_interval = 0, + max_drop_level=3, + groupcaps={ + cracky={times={[1]=0.8, [2]=0.4, [3]=0.2}, uses=1000000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:pick_sapphire", { + description = "sapphire pickaxe", + inventory_image = "gems_sapphire_pick.png", + tool_capabilities = { + full_punch_interval = 0, + max_drop_level=3, + groupcaps={ + cracky={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=1000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:pick_amethyst", { + description = "amethyst pickaxe", + inventory_image = "gems_amethyst_pick.png", + tool_capabilities = { + full_punch_interval = 0, + max_drop_level=3, + groupcaps={ + cracky={times={[1]=1.6, [2]=0.8, [3]=0.4}, uses=10000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:pick_pearl", { + description = "pearl pickaxe", + inventory_image = "gems_pearl_pick.png", + tool_capabilities = { + full_punch_interval = 0, + max_drop_level=3, + groupcaps={ + cracky={times={[1]=1.2, [2]=0.6, [3]=0.3}, uses=100000, maxlevel=3}, + } + }, +}) + + +minetest.register_tool("gems:sword_ruby", { + description = "ruby sword", + inventory_image = "ruby_ruby_sword.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + + snappy={times={[2]=1.00, [3]=0.50}, uses=1000, maxlevel=3}, + + } + }, +}) + +minetest.register_tool("gems:sword_shadow", { + description = "shadow sword", + inventory_image = "shadow_sword.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + + snappy={times={[2]=0.60, [3]=0.30}, uses=100000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:sword_emerald", { + description = "emerald sword", + inventory_image = "gems_emerald_sword.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + + snappy={times={[2]=0.40, [3]=0.20}, uses=1000000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:sword_sapphire", { + description = "sapphire sword", + inventory_image = "gems_sapphire_sword.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + + snappy={times={[2]=1.00, [3]=0.50}, uses=1000, maxlevel=3}, + } + } +}) + +minetest.register_tool("gems:sword_amethyst", { + description = "amethyst sword", + inventory_image = "gems_amethyst_sword.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + + snappy={times={[2]=0.80, [3]=0.40}, uses=10000, maxlevel=3}, + } + } +}) + +minetest.register_tool("gems:sword_pearl", { + description = "pearl sword", + inventory_image = "gems_pearl_sword.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + + snappy={times={[2]=0.60, [3]=0.30}, uses=100000, maxlevel=3}, + } + } +}) + +minetest.register_tool("gems:axe_emerald", { + descroption = "emerald axe", + inventory_image = "gems_emerald_axe.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + choppy={times={[1]=0.8, [2]=0.4, [3]=0.2}, uses=1000000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:axe_shadow", { + descroption = "shadow axe", + inventory_image = "shadow_axe.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + + choppy={times={[1]=1.2, [2]=0.6, [3]=0.3}, uses=100000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:axe_ruby", { + descroption = "ruby axe", + inventory_image = "ruby_ruby_axe.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=1000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:axe_sapphire", { + descroption = "sapphire axe", + inventory_image = "gems_sapphire_axe.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + choppy={times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=1000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:axe_amethyst", { + descroption = "amethyst axe", + inventory_image = "gems_amethyst_axe.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + choppy={times={[1]=1.6, [2]=0.8, [3]=0.4}, uses=10000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:axe_pearl", { + descroption = "pearl axe", + inventory_image = "gems_pearl_axe.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + choppy={times={[1]=1.2, [2]=0.6, [3]=0.3}, uses=100000, maxlevel=3}, + } + }, +}) + +minetest.register_tool("gems:shovel_ruby", { + description = "ruby shovel", + inventory_image = "ruby_ruby_shovel.png", + wield_image = "ruby_ruby_shovel.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + crumbly={times={[1]=2.00, [2]=1.00, [3]=0.50}, uses=1000, maxlevel=3} + } + }, +}) + +minetest.register_tool("gems:shovel_shadow", { + description = "shadow shovel", + inventory_image = "shadow_shovel.png", + wield_image = "shadow_shovel.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + crumbly={times={[1]=1.2, [2]=0.6, [3]=0.3}, uses=100000, maxlevel=3} + } + } +}) + + +minetest.register_tool("gems:shovel_emerald", { + description = "emerald shovel", + inventory_image = "gems_emerald_shovel.png", + wield_image = "gems_emerald_shovel.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + crumbly={times={[1]=0.80, [2]=0.40, [3]=0.20}, uses=1000000, maxlevel=3} + } + }, +}) + +minetest.register_tool("gems:shovel_sapphire", { + description = "sapphire shovel", + inventory_image = "gems_sapphire_shovel.png", + wield_image = "gems_sapphire_shovel.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + crumbly={times={[1]=2.00, [2]=1.00, [3]=0.50}, uses=1000, maxlevel=3} + } + }, +}) + +minetest.register_tool("gems:shovel_amethyst", { + description = "amethyst shovel", + inventory_image = "gems_amethyst_shovel.png", + wield_image = "gems_amethyst_shovel.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + crumbly={times={[1]=1.60, [2]=0.80, [3]=0.40}, uses=10000, maxlevel=3} + } + }, +}) + +minetest.register_tool("gems:shovel_pearl", { + description = "pearl shovel", + inventory_image = "gems_pearl_shovel.png", + wield_image = "gems_pearl_shovel.png", + tool_capabilities = { + max_drop_level=1, + groupcaps={ + crumbly={times={[1]=1.20, [2]=0.60, [3]=0.30}, uses=100000, maxlevel=3} + } + }, +}) + +minetest.register_node("gems:ruby_ore", { + description = "ruby ore", + tiles = {"ruby_ruby_ore.png"}, + is_ground_content = true, + groups = {cracky=6}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:ruby_gem" 1', +}) + +minetest.register_node("gems:emerald_ore", { + description = "emerald ore", + tiles = {"gems_emerald_ore.png"}, + is_ground_content = true, + groups = {cracky=9}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:emerald_gem" 1', +}) + +minetest.register_node("gems:sapphire_ore", { + description = "sapphire ore", + tiles = {"gems_sapphire_ore.png"}, + is_ground_content = true, + groups = {cracky=6}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:sapphire_gem" 1', +}) + +minetest.register_node("gems:amethyst_ore", { + description = "amethyst ore", + tiles = {"gems_amethyst_ore.png"}, + is_ground_content = true, + groups = {cracky=7} , + sounds = default.node_sound_defaults(), + drop = 'craft "gems:amethyst_gem" 1', +}) + +minetest.register_node("gems:shadow_ore", { + description = "shadow ore", + tiles = {"shadow_ore.png"}, + is_ground_content = true, + groups = {cracky=8}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:shadow_gem" 1', +}) + +minetest.register_node("gems:pearl_ore", { + description = "pearl ore", + tiles = {"gems_pearl_ore.png"}, + is_ground_content = true, + groups = {cracky=8}, + sounds = default.node_sound_defaults(), + drop = 'craft "gems:pearl_gem" 1', +}) + +minetest.register_node( "gems:ruby_block", { + description = "ruby block", + tile_images = { "ruby_ruby_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:emerald_block", { + description = "emerald block", + tile_images = { "gems_emerald_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:sapphire_block", { + description = "sapphire block", + tile_images = { "gems_sapphire_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:shadow_block", { + description = "shadow block", + tile_images = { "shadow_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:pearl_block", { + description = "pearl block", + tile_images = { "gems_pearl_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( "gems:amethyst_block", { + description = "amethyst block", + tile_images = { "gems_amethyst_block.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_craftitem( "gems:ruby_gem", { + description = "ruby gem", + tile_images = { "ruby:ruby_gem" }, + inventory_image = "ruby_ruby_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:emerald_gem", { + description = "emerald gem", + tile_images = { "gems:emerald_gem" }, + inventory_image = "gems_emerald_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:shadow_gem", { + description = "shadow gem", + tile_images = { "gems:shadow_gem" }, + inventory_image = "shadow_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:sapphire_gem", { + description = "sapphire gem", + tile_images = { "gems:sapphire_gem" }, + inventory_image = "gems_sapphire_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:amethyst_gem", { + description = "amethyst gem", + tile_images = { "gems:amethyst_gem" }, + inventory_image = "gems_amethyst_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem( "gems:pearl_gem", { + description = "pearl gem", + tile_images = { "gems:pearl_gem" }, + inventory_image = "gems_pearl_gem.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craft({ + output = 'gems:pick_emerald', + recipe = { + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:pick_ruby', + recipe = { + {'gems:ruby_gem', 'gems:ruby_gem', 'gems:ruby_gem'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:pick_sapphire', + recipe = { + {'gems:sapphire_gem', 'gems:sapphire_gem', 'gems:sapphire_gem'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:pick_amethyst', + recipe = { + {'gems:amethyst_gem', 'gems:amethyst_gem', 'gems:amethyst_gem'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:pick_shadow', + recipe = { + {'gems:shadow_gem', 'gems:shadow_gem', 'gems:shadow_gem'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:pick_pearl', + recipe = { + {'gems:pearl_gem', 'gems:pearl_gem', 'gems:pearl_gem'}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:ruby_block', + recipe = { + {'gems:ruby_gem','gems:ruby_gem','gems:ruby_gem',}, + {'gems:ruby_gem','gems:ruby_gem','gems:ruby_gem',}, + {'gems:ruby_gem','gems:ruby_gem','gems:ruby_gem',}, + } +}) + +minetest.register_craft({ + output = 'gems:shadow_block', + recipe = { + {'gems:shadow_gem','gems:shadow_gem','gems:shadow_gem',}, + {'gems:shadow_gem','gems:shadow_gem','gems:shadow_gem',}, + {'gems:shadow_gem','gems:shadow_gem','gems:shadow_gem',}, + } +}) + +minetest.register_craft({ + output = 'gems:amethyst_block', + recipe = { + {'gems:amethyst_gem','gems:amethyst_gem','gems:amethyst_gem',}, + {'gems:amethyst_gem','gems:amethyst_gem','gems:amethyst_gem',}, + {'gems:amethyst_gem','gems:amethyst_gem','gems:amethyst_gem',}, + } +}) + +minetest.register_craft({ + output = 'gems:emerald_block', + recipe = { + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + } +}) + +minetest.register_craft({ + output = 'gems:sapphire_block', + recipe = { + {'gems:sapphire_gem', 'gems:sapphire_gem', 'gems:sapphire_gem'}, + {'gems:sapphire_gem', 'gems:sapphire_gem', 'gems:sapphire_gem'}, + {'gems:sapphire_gem', 'gems:sapphire_gem', 'gems:sapphire_gem'}, + } +}) + +minetest.register_craft({ + output = 'gems:pearl_block', + recipe = { + {'gems:pearl_gem', 'gems:pearl_gem', 'gems:pearl_gem'}, + {'gems:pearl_gem', 'gems:pearl_gem', 'gems:pearl_gem'}, + {'gems:pearl_gem', 'gems:pearl_gem', 'gems:pearl_gem'}, + } +}) + +minetest.register_craft({ + output = 'gems:shovel_ruby', + recipe = { + {'', 'gems:ruby_gem', ''}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:shovel_emerald', + recipe = { + {'', 'gems:emerald_gem', ''}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:shovel_sapphire', + recipe = { + {'', 'gems:sapphire_gem', ''}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:shovel_amethyst', + recipe = { + {'', 'gems:amethyst_gem', ''}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:shovel_pearl', + recipe = { + {'', 'gems:pearl_gem', ''}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:shovel_shadow', + recipe = { + {'','gems:shadow_gem', ''}, + {'', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + + +minetest.register_craft({ + output = 'gems:sword_ruby', + recipe = { + {'', 'gems:ruby_gem', ''}, + {'', 'gems:ruby_gem', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:sword_amethyst', + recipe = { + {'', 'gems:amethyst_gem', ''}, + {'', 'gems:amethyst_gem', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:sword_emerald', + recipe = { + {'', 'gems:emerald_gem', ''}, + {'', 'gems:emerald_gem', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:sword_sapphire', + recipe = { + {'', 'gems:sapphire_gem', ''}, + {'', 'gems:sapphire_gem', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:sword_shadow', + recipe = { + {'gems:shadow_gem', '', ''}, + {'gems:shadow_gem' , '', ''}, + {'default:stick', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:sword_pearl', + recipe = { + {'', 'gems:pearl_gem', ''}, + {'', 'gems:pearl_gem', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:axe_ruby', + recipe = { + {'gems:ruby_gem', 'gems:ruby_gem', ''}, + {'gems:ruby_gem', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:axe_emerald', + recipe = { + {'gems:emerald_gem', 'gems:emerald_gem', ''}, + {'gems:emerald_gem', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:axe_sapphire', + recipe = { + {'gems:sapphire_gem', 'gems:sapphire_gem', ''}, + {'gems:sapphire_gem', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:axe_amethyst', + recipe = { + {'gems:amethyst_gem', 'gems:amethyst_gem', ''}, + {'gems:amethyst_gem', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:axe_pearl', + recipe = { + {'gems:pearl_gem', 'gems:pearl_gem', ''}, + {'gems:pearl_gem', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:axe_shadow', + recipe = { + {'gems:shadow_gem', 'gems:shadow_gem', ''}, + {'gems:shadow_gem', 'default:stick', ''}, + {'', 'default:stick', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:amethyst_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:amethyst_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:ruby_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:ruby_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:emerald_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:emerald_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:sapphire_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:sapphire_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:shadow_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:shadow_block', ''}, + {'', '', ''}, + + } +}) + +minetest.register_craft({ + output = 'gems:pearl_gem 9', + recipe = { + {'', '', ''}, + {'', 'gems:pearl_block', ''}, + {'', '', ''}, + + } +}) + + + + + + + + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:ruby_ore", + wherein = "default:stone", + clust_scarcity = 10*10*10, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -1000, + flags = "absheight", +}) + + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:sapphire_ore", + wherein = "default:stone", + clust_scarcity = 10*10*10, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -1000, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:amethyst_ore", + wherein = "default:stone", + clust_scarcity = 13*13*13, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -2000, + flags = "absheight", +}) + + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:shadow_ore", + wherein = "default:stone", + clust_scarcity = 15*15*15, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -3000, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:pearl_ore", + wherein = "default:stone", + clust_scarcity = 15*15*15, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -3000, + flags = "absheight", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "gems:emerald_ore", + wherein = "default:stone", + clust_scarcity = 17*17*17, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -4000, + flags = "absheight", +}) + + + diff --git a/mods/gems/textures/Thumbs.db b/mods/gems/textures/Thumbs.db new file mode 100644 index 0000000..c839319 Binary files /dev/null and b/mods/gems/textures/Thumbs.db differ diff --git a/mods/gems/textures/gems_amethyst_axe.png b/mods/gems/textures/gems_amethyst_axe.png new file mode 100644 index 0000000..cc18383 Binary files /dev/null and b/mods/gems/textures/gems_amethyst_axe.png differ diff --git a/mods/gems/textures/gems_amethyst_block.png b/mods/gems/textures/gems_amethyst_block.png new file mode 100644 index 0000000..96dad9d Binary files /dev/null and b/mods/gems/textures/gems_amethyst_block.png differ diff --git a/mods/gems/textures/gems_amethyst_gem.png b/mods/gems/textures/gems_amethyst_gem.png new file mode 100644 index 0000000..32836b2 Binary files /dev/null and b/mods/gems/textures/gems_amethyst_gem.png differ diff --git a/mods/gems/textures/gems_amethyst_ore.png b/mods/gems/textures/gems_amethyst_ore.png new file mode 100644 index 0000000..600d038 Binary files /dev/null and b/mods/gems/textures/gems_amethyst_ore.png differ diff --git a/mods/gems/textures/gems_amethyst_pick.png b/mods/gems/textures/gems_amethyst_pick.png new file mode 100644 index 0000000..0be9115 Binary files /dev/null and b/mods/gems/textures/gems_amethyst_pick.png differ diff --git a/mods/gems/textures/gems_amethyst_shovel.png b/mods/gems/textures/gems_amethyst_shovel.png new file mode 100644 index 0000000..f509dd0 Binary files /dev/null and b/mods/gems/textures/gems_amethyst_shovel.png differ diff --git a/mods/gems/textures/gems_amethyst_sword.png b/mods/gems/textures/gems_amethyst_sword.png new file mode 100644 index 0000000..1db48d8 Binary files /dev/null and b/mods/gems/textures/gems_amethyst_sword.png differ diff --git a/mods/gems/textures/gems_emerald_axe.png b/mods/gems/textures/gems_emerald_axe.png new file mode 100644 index 0000000..4ca4851 Binary files /dev/null and b/mods/gems/textures/gems_emerald_axe.png differ diff --git a/mods/gems/textures/gems_emerald_block.png b/mods/gems/textures/gems_emerald_block.png new file mode 100644 index 0000000..6acd4bb Binary files /dev/null and b/mods/gems/textures/gems_emerald_block.png differ diff --git a/mods/gems/textures/gems_emerald_gem.png b/mods/gems/textures/gems_emerald_gem.png new file mode 100644 index 0000000..73a02be Binary files /dev/null and b/mods/gems/textures/gems_emerald_gem.png differ diff --git a/mods/gems/textures/gems_emerald_ore.png b/mods/gems/textures/gems_emerald_ore.png new file mode 100644 index 0000000..65bcaeb Binary files /dev/null and b/mods/gems/textures/gems_emerald_ore.png differ diff --git a/mods/gems/textures/gems_emerald_pick.png b/mods/gems/textures/gems_emerald_pick.png new file mode 100644 index 0000000..8d93009 Binary files /dev/null and b/mods/gems/textures/gems_emerald_pick.png differ diff --git a/mods/gems/textures/gems_emerald_shovel.png b/mods/gems/textures/gems_emerald_shovel.png new file mode 100644 index 0000000..b2e60ad Binary files /dev/null and b/mods/gems/textures/gems_emerald_shovel.png differ diff --git a/mods/gems/textures/gems_emerald_sword.png b/mods/gems/textures/gems_emerald_sword.png new file mode 100644 index 0000000..6a4b7ae Binary files /dev/null and b/mods/gems/textures/gems_emerald_sword.png differ diff --git a/mods/gems/textures/gems_pearl_axe.png b/mods/gems/textures/gems_pearl_axe.png new file mode 100644 index 0000000..6a22bdc Binary files /dev/null and b/mods/gems/textures/gems_pearl_axe.png differ diff --git a/mods/gems/textures/gems_pearl_block.png b/mods/gems/textures/gems_pearl_block.png new file mode 100644 index 0000000..f9c1dac Binary files /dev/null and b/mods/gems/textures/gems_pearl_block.png differ diff --git a/mods/gems/textures/gems_pearl_gem.png b/mods/gems/textures/gems_pearl_gem.png new file mode 100644 index 0000000..53a1cde Binary files /dev/null and b/mods/gems/textures/gems_pearl_gem.png differ diff --git a/mods/gems/textures/gems_pearl_ore.png b/mods/gems/textures/gems_pearl_ore.png new file mode 100644 index 0000000..ff05f4b Binary files /dev/null and b/mods/gems/textures/gems_pearl_ore.png differ diff --git a/mods/gems/textures/gems_pearl_pick.png b/mods/gems/textures/gems_pearl_pick.png new file mode 100644 index 0000000..f6c7fab Binary files /dev/null and b/mods/gems/textures/gems_pearl_pick.png differ diff --git a/mods/gems/textures/gems_pearl_shovel.png b/mods/gems/textures/gems_pearl_shovel.png new file mode 100644 index 0000000..f51071b Binary files /dev/null and b/mods/gems/textures/gems_pearl_shovel.png differ diff --git a/mods/gems/textures/gems_pearl_sword.png b/mods/gems/textures/gems_pearl_sword.png new file mode 100644 index 0000000..c040a86 Binary files /dev/null and b/mods/gems/textures/gems_pearl_sword.png differ diff --git a/mods/gems/textures/gems_sapphire_axe.png b/mods/gems/textures/gems_sapphire_axe.png new file mode 100644 index 0000000..565f4fc Binary files /dev/null and b/mods/gems/textures/gems_sapphire_axe.png differ diff --git a/mods/gems/textures/gems_sapphire_block.png b/mods/gems/textures/gems_sapphire_block.png new file mode 100644 index 0000000..cc29c12 Binary files /dev/null and b/mods/gems/textures/gems_sapphire_block.png differ diff --git a/mods/gems/textures/gems_sapphire_gem.png b/mods/gems/textures/gems_sapphire_gem.png new file mode 100644 index 0000000..6841d42 Binary files /dev/null and b/mods/gems/textures/gems_sapphire_gem.png differ diff --git a/mods/gems/textures/gems_sapphire_ore.png b/mods/gems/textures/gems_sapphire_ore.png new file mode 100644 index 0000000..11874a9 Binary files /dev/null and b/mods/gems/textures/gems_sapphire_ore.png differ diff --git a/mods/gems/textures/gems_sapphire_pick.png b/mods/gems/textures/gems_sapphire_pick.png new file mode 100644 index 0000000..f51e1d8 Binary files /dev/null and b/mods/gems/textures/gems_sapphire_pick.png differ diff --git a/mods/gems/textures/gems_sapphire_shovel.png b/mods/gems/textures/gems_sapphire_shovel.png new file mode 100644 index 0000000..bc58bf7 Binary files /dev/null and b/mods/gems/textures/gems_sapphire_shovel.png differ diff --git a/mods/gems/textures/gems_sapphire_sword.png b/mods/gems/textures/gems_sapphire_sword.png new file mode 100644 index 0000000..abc86b2 Binary files /dev/null and b/mods/gems/textures/gems_sapphire_sword.png differ diff --git a/mods/gems/textures/ruby_ruby_axe.png b/mods/gems/textures/ruby_ruby_axe.png new file mode 100644 index 0000000..7e11d6b Binary files /dev/null and b/mods/gems/textures/ruby_ruby_axe.png differ diff --git a/mods/gems/textures/ruby_ruby_block.png b/mods/gems/textures/ruby_ruby_block.png new file mode 100644 index 0000000..b76a012 Binary files /dev/null and b/mods/gems/textures/ruby_ruby_block.png differ diff --git a/mods/gems/textures/ruby_ruby_gem.png b/mods/gems/textures/ruby_ruby_gem.png new file mode 100644 index 0000000..e055884 Binary files /dev/null and b/mods/gems/textures/ruby_ruby_gem.png differ diff --git a/mods/gems/textures/ruby_ruby_ore.png b/mods/gems/textures/ruby_ruby_ore.png new file mode 100644 index 0000000..afd0d06 Binary files /dev/null and b/mods/gems/textures/ruby_ruby_ore.png differ diff --git a/mods/gems/textures/ruby_ruby_pick.png b/mods/gems/textures/ruby_ruby_pick.png new file mode 100644 index 0000000..0b68ef7 Binary files /dev/null and b/mods/gems/textures/ruby_ruby_pick.png differ diff --git a/mods/gems/textures/ruby_ruby_shovel.png b/mods/gems/textures/ruby_ruby_shovel.png new file mode 100644 index 0000000..d7dd38e Binary files /dev/null and b/mods/gems/textures/ruby_ruby_shovel.png differ diff --git a/mods/gems/textures/ruby_ruby_sword.png b/mods/gems/textures/ruby_ruby_sword.png new file mode 100644 index 0000000..52e5b9c Binary files /dev/null and b/mods/gems/textures/ruby_ruby_sword.png differ diff --git a/mods/gems/textures/shadow_axe.png b/mods/gems/textures/shadow_axe.png new file mode 100644 index 0000000..5746108 Binary files /dev/null and b/mods/gems/textures/shadow_axe.png differ diff --git a/mods/gems/textures/shadow_block.png b/mods/gems/textures/shadow_block.png new file mode 100644 index 0000000..7bd8d2c Binary files /dev/null and b/mods/gems/textures/shadow_block.png differ diff --git a/mods/gems/textures/shadow_gem.png b/mods/gems/textures/shadow_gem.png new file mode 100644 index 0000000..5e96db1 Binary files /dev/null and b/mods/gems/textures/shadow_gem.png differ diff --git a/mods/gems/textures/shadow_ore.png b/mods/gems/textures/shadow_ore.png new file mode 100644 index 0000000..50d5edb Binary files /dev/null and b/mods/gems/textures/shadow_ore.png differ diff --git a/mods/gems/textures/shadow_pick.png b/mods/gems/textures/shadow_pick.png new file mode 100644 index 0000000..c30d689 Binary files /dev/null and b/mods/gems/textures/shadow_pick.png differ diff --git a/mods/gems/textures/shadow_shovel.png b/mods/gems/textures/shadow_shovel.png new file mode 100644 index 0000000..8dfdbd9 Binary files /dev/null and b/mods/gems/textures/shadow_shovel.png differ diff --git a/mods/gems/textures/shadow_sword.png b/mods/gems/textures/shadow_sword.png new file mode 100644 index 0000000..814d7c9 Binary files /dev/null and b/mods/gems/textures/shadow_sword.png differ diff --git a/mods/give_initial_stuff/README.txt b/mods/give_initial_stuff/README.txt new file mode 100644 index 0000000..cbd240f --- /dev/null +++ b/mods/give_initial_stuff/README.txt @@ -0,0 +1,8 @@ +Minetest Game mod: give_initial_stuff +===================================== +See license.txt for license information. + +Authors of source code +---------------------- +Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) diff --git a/mods/give_initial_stuff/depends.txt b/mods/give_initial_stuff/depends.txt new file mode 100644 index 0000000..3a7daa1 --- /dev/null +++ b/mods/give_initial_stuff/depends.txt @@ -0,0 +1,2 @@ +default + diff --git a/mods/give_initial_stuff/init.lua b/mods/give_initial_stuff/init.lua new file mode 100644 index 0000000..4815bd8 --- /dev/null +++ b/mods/give_initial_stuff/init.lua @@ -0,0 +1,44 @@ +local stuff_string = minetest.settings:get("initial_stuff") or + "default:pick_steel,default:axe_steel,default:shovel_steel," .. + "default:torch 99,default:cobble 99" + +give_initial_stuff = { + items = {} +} + +function give_initial_stuff.give(player) + minetest.log("action", + "Giving initial stuff to player " .. player:get_player_name()) + local inv = player:get_inventory() + for _, stack in ipairs(give_initial_stuff.items) do + inv:add_item("main", stack) + end +end + +function give_initial_stuff.add(stack) + give_initial_stuff.items[#give_initial_stuff.items + 1] = ItemStack(stack) +end + +function give_initial_stuff.clear() + give_initial_stuff.items = {} +end + +function give_initial_stuff.add_from_csv(str) + local items = str:split(",") + for _, itemname in ipairs(items) do + give_initial_stuff.add(itemname) + end +end + +function give_initial_stuff.set_list(list) + give_initial_stuff.items = list +end + +function give_initial_stuff.get_list() + return give_initial_stuff.items +end + +give_initial_stuff.add_from_csv(stuff_string) +if minetest.settings:get_bool("give_initial_stuff") then + minetest.register_on_newplayer(give_initial_stuff.give) +end diff --git a/mods/give_initial_stuff/license.txt b/mods/give_initial_stuff/license.txt new file mode 100644 index 0000000..8134c92 --- /dev/null +++ b/mods/give_initial_stuff/license.txt @@ -0,0 +1,25 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/mods/inventory_music/init.lua b/mods/inventory_music/init.lua new file mode 100644 index 0000000..648adf2 --- /dev/null +++ b/mods/inventory_music/init.lua @@ -0,0 +1,125 @@ +local sound_time = 0 +local sound_play_on = 0 +local sound_play_regnum = nil +local inst_list = {} +minetest.register_globalstep(function(dtime) + if sound_play_on == 0 then + sound_play_on = 1 + inst_list = {} + for _,player in ipairs(minetest.get_connected_players()) do + local player_inv = player:get_inventory() + local inst1 = player_inv:get_stack("inst", 1):get_count() + local inst2 = player_inv:get_stack("inst", 2):get_count() + if inst1 == 1 then + table.insert(inst_list, "Theme1") + end + if inst2 == 1 then + table.insert(inst_list, "Theme2") + end + local inst = inst_list[ math.random(#inst_list)] + local music = player_inv:get_stack("music", 1):get_count() + if music == 1 then + sound_play_regnum = minetest.sound_play(inst, { + to_player = player, + }) + end + end + end + sound_time = sound_time+dtime + if sound_time > 120 then + sound_time = 0 + sound_play_on = 0 + end +end) + + +local set = {} +set.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("music", 1) + player_inv:set_size("inst", 10) + local music = player_inv:get_stack("music", 1):get_count() + local inst1 = player_inv:get_stack("inst", 1):get_count() + local inst2 = player_inv:get_stack("inst", 2):get_count() + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if music == 0 then + formspec = formspec.."checkbox[0,1;music;Background Music on;false]" + end + if music == 1 then + formspec = formspec.."checkbox[0,1;music;Background Music on;true]" + end + if inst1 == 0 and music == 1 then + formspec = formspec.."checkbox[0.5,1.5;inst1;1248's Theme 1;false]" + end + if inst1 == 1 and music == 1 then + formspec = formspec.."checkbox[0.5,1.5;inst1;1248's Theme 1;true]" + end + if inst2 == 0 and music == 1 then + formspec = formspec.."checkbox[0.5,1.8;inst2;1248's Theme 2;false]" + end + if inst2 == 1 and music == 1 then + formspec = formspec.."checkbox[0.5,1.8;inst2;1248's Theme 2;true]" + end + return formspec +end + + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if player == nil then + return + end + local player_inv = player:get_inventory() + if fields.set then + inventory_plus.set_inventory_formspec(player, set.get_formspec(player)) + end + if fields.inst1 then + local inst = player_inv:get_stack("inst", 1):get_count() + if inst == 0 then + player_inv:set_stack("inst", 1, "default:dirt") + else + player_inv:set_stack("inst", 1, nil) + end + local inst1 = player_inv:get_stack("inst", 1):get_count() + local inst2 = player_inv:get_stack("inst", 2):get_count() + if inst1 == 0 and inst2 == 0 then + player_inv:set_stack("music", 1, nil) + end + inventory_plus.set_inventory_formspec(player, set.get_formspec(player)) + end + if fields.inst2 then + local inst = player_inv:get_stack("inst", 2):get_count() + if inst == 0 then + player_inv:set_stack("inst", 2, "default:dirt") + else + player_inv:set_stack("inst", 2, nil) + end + local inst1 = player_inv:get_stack("inst", 1):get_count() + local inst2 = player_inv:get_stack("inst", 2):get_count() + if inst1 == 0 and inst2 == 0 then + player_inv:set_stack("music", 1, nil) + end + inventory_plus.set_inventory_formspec(player, set.get_formspec(player)) + end + if fields.music then + local music = player_inv:get_stack("music", 1):get_count() + if music == 0 then + player_inv:set_stack("music", 1, "default:dirt") + player_inv:set_stack("inst", 1, "default:dirt") + player_inv:set_stack("inst", 2, nil) + else + player_inv:set_stack("music", 1, nil) + if sound_play_regnum ~= nil then + minetest.sound_stop(sound_play_regnum) + end + end + inventory_plus.set_inventory_formspec(player, set.get_formspec(player)) + end +end) \ No newline at end of file diff --git a/mods/inventory_music/sounds/Theme1.ogg b/mods/inventory_music/sounds/Theme1.ogg new file mode 100644 index 0000000..4658c55 Binary files /dev/null and b/mods/inventory_music/sounds/Theme1.ogg differ diff --git a/mods/inventory_music/sounds/Theme2.ogg b/mods/inventory_music/sounds/Theme2.ogg new file mode 100644 index 0000000..cdf1c7d Binary files /dev/null and b/mods/inventory_music/sounds/Theme2.ogg differ diff --git a/mods/inventory_plus/README.txt b/mods/inventory_plus/README.txt new file mode 100644 index 0000000..ed1d6a7 --- /dev/null +++ b/mods/inventory_plus/README.txt @@ -0,0 +1,27 @@ +---------------------------------- +Inventory ++ for Minetest +---------------------------------- + Fork of Inventory Plus + +Copyright (c) 2012 cornernote, Brett O'Donnell +Copyright (c) 2013 Zeg9 +Source Code: https://github.com/Zeg9/minetest-inventory_plus +Original Home Page: https://sites.google.com/site/cornernote/minetest/inventory-plus + +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, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +---------------------------------- +Description +---------------------------------- + +Allows additional formspec buttons to be added to the player inventory screen. + +These are processed by your own mod, they can show other formspec screens, or perform in game functionality. + +Supports creative mode with no code changes. + diff --git a/mods/inventory_plus/inventory_plus/depends.txt b/mods/inventory_plus/inventory_plus/depends.txt new file mode 100644 index 0000000..2224f16 --- /dev/null +++ b/mods/inventory_plus/inventory_plus/depends.txt @@ -0,0 +1,2 @@ +default? +creative? diff --git a/mods/inventory_plus/inventory_plus/init.lua b/mods/inventory_plus/inventory_plus/init.lua new file mode 100644 index 0000000..a1a9b7f --- /dev/null +++ b/mods/inventory_plus/inventory_plus/init.lua @@ -0,0 +1,191 @@ +--[[ + +Inventory Plus+ for Minetest + +Copyright (c) 2012 cornernote, Brett O'Donnell +Copyright (c) 2013 Zeg9 +Source Code: https://github.com/Zeg9/minetest-inventory_plus +License: GPLv3 + +]]-- + +--[[ +TODO: + * Include a few button textures, especially for "abandoned" mods + -> Done: bags + -> Todo: home GUI, mobf settings (if it still exists),... + * Limit the number of buttons displayed, and then: + * Multiple button pages (inventory can only display 9 buttons, and creative 6) + * Fallback to text if no image is present ? +]]-- + + +local inven = {} +inven.get_formspec = function(player, pos) + local player_inv = player:get_inventory() + + formspec = "size[10,8.3]" + .."background[10,8.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[4,0;2,0.5;main;Back]" + .."button[0,2;2,0.5;xp_gui;Xp Guide]" + .."button[0,1;2,0.5;zcg;Craft Guide]" + .."button[0,0;2,0.5;rg;Regnum Guide]" + .."button[8,0;2,0.5;ach;Achievements]" + .."button[8,1;2,0.5;aw;Awards]" + .."button[4,4;2,0.5;bags;Bags]" + .."button[6,4;2,0.5;armor;Armor]" + .."button[3,2;2,0.5;cr;Crafting]" + .."button[5,2;2,0.5;set;Music]" + .."button[2,4;2,0.5;skins;Skins]" + .."button[2,5.5;2,0.5;kri;Crystals]" + .."button[4,5.5;2,0.5;xpi0;Xp items]" + .."button[6,5.5;2,0.5;gem;Gems]" + .."button[0,7;2,0.5;artifacts;Artifacts]" + .."button[2,7;2,0.5;medallion;Medallion]" + .."button[4,7;2,0.5;treasures;Treasures]" + .."button[6,7;2,0.5;trophys;Trophys]" + .."button[8,7;2,0.5;colreward;Reward]" + .."label[0.65,2.6;Help]" + .."label[8.6,1.6;Quests]" + .."label[4.5,4.6;Equipment]" + .."label[4.6,6.1;Spezial]" + .."label[4.6,6.1;Spezial]" + .."label[4.45,7.6;Color Items]" + return formspec +end +minetest.register_on_joinplayer(function(player) + inventory_plus.register_button(player,"inven","Inventory") +end) +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.inven then + inventory_plus.set_inventory_formspec(player, inven.get_formspec(player)) + end +end) + + + + + + + + +-- expose api +inventory_plus = {} + +-- tell that we are inventory++, not inventory_plus +-- ...so mods know if they can use our functions like remove_button +inventory_plus.plusplus = true + +-- define buttons +inventory_plus.buttons = {} + +-- default inventory page +inventory_plus.default = minetest.setting_get("inventory_default") or "main" + +-- original inventory formspec, per player +inventory_plus.inventory = {} + +-- register_button +inventory_plus.register_button = function(player,name,...) + local player_name = player:get_player_name() + if inventory_plus.buttons[player_name] == nil then + inventory_plus.buttons[player_name] = {} + end + for _, i in ipairs(inventory_plus.buttons[player_name]) do + if i == name then return end -- only register buttons once + end + table.insert(inventory_plus.buttons[player_name], name) +end + +inventory_plus.remove_button = function(player,name) + local player_name = player:get_player_name() + if inventory_plus.buttons[player_name] == nil then + inventory_plus.buttons[player_name] = {} + end + local index = nil + for i, n in ipairs(inventory_plus.buttons[player_name]) do + if n == name then + index = i + end + end + table.remove(inventory_plus.buttons[player_name], index) +end + +-- set_inventory_formspec +inventory_plus.set_inventory_formspec = function(player,formspec) + if minetest.setting_getbool("creative_mode") then + -- if creative mode is on then wait a bit + minetest.after(0.01,function() + player:set_inventory_formspec(formspec) + end) + else + player:set_inventory_formspec(formspec) + end +end + +-- get_formspec +inventory_plus.get_formspec = function(player,page) + local get_buttons = function(ox,oy,mx) -- origin x, origin y, max x + if not inventory_plus.buttons[player:get_player_name()] then + return "" + end + local formspec = "" + local x,y=ox,oy + for _, i in ipairs(inventory_plus.buttons[player:get_player_name()]) do + formspec = formspec .. "image_button[0,0;1.6,1.6;inventory_plus_inven.png;inven;]" + x=x+1 + if x >= ox+mx then + y = y+1 + x = ox + end + end + formspec = formspec .. "label[0.3,1.5;selection]" + return formspec + end + -- craft page + if page=="main" then + if minetest.setting_getbool("creative_mode") then + return player:get_inventory_formspec() + .. get_buttons(6,0,2) + else + return inventory_plus.inventory[player:get_player_name()] + .. get_buttons(0,0,3) + end + end +end + +-- register_on_joinplayer +minetest.register_on_joinplayer(function(player) + if inventory_plus.inventory[player:get_player_name()] == nil then + inventory_plus.inventory[player:get_player_name()] = player:get_inventory_formspec() + end + minetest.after(1,function() + inventory_plus.set_inventory_formspec(player,inventory_plus.get_formspec(player, inventory_plus.default)) + end) +end) + +-- register_on_player_receive_fields +minetest.register_on_player_receive_fields(function(player, formname, fields) + -- main + if fields.main then + if minetest.setting_getbool("creative_mode") then + minetest.after(0.01,function() + inventory_plus.set_inventory_formspec(player, inventory_plus.get_formspec(player,"main")) + end) + else + inventory_plus.set_inventory_formspec(player, inventory_plus.get_formspec(player,"main")) + end + return + end + if fields.creative_prev or fields.creative_next then + minetest.after(0.01,function() + inventory_plus.set_inventory_formspec(player, inventory_plus.get_formspec(player,"main")) + end) + return + end +end) + +-- log that we started +minetest.log("action", "[MOD]"..minetest.get_current_modname().." -- loaded from "..minetest.get_modpath(minetest.get_current_modname())) diff --git a/mods/inventory_plus/inventory_plus/textures/inventory_plus_inven.png b/mods/inventory_plus/inventory_plus/textures/inventory_plus_inven.png new file mode 100644 index 0000000..891b788 Binary files /dev/null and b/mods/inventory_plus/inventory_plus/textures/inventory_plus_inven.png differ diff --git a/mods/inventory_plus/license.txt b/mods/inventory_plus/license.txt new file mode 100644 index 0000000..94a9ed0 --- /dev/null +++ b/mods/inventory_plus/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/inventory_plus/modpack.txt b/mods/inventory_plus/modpack.txt new file mode 100644 index 0000000..e69de29 diff --git a/mods/killme/init.lua b/mods/killme/init.lua new file mode 100644 index 0000000..9b67475 --- /dev/null +++ b/mods/killme/init.lua @@ -0,0 +1,24 @@ +minetest.register_chatcommand("killme", { + description = "Kill yourself to respawn", + func = function(name) + local player = minetest.get_player_by_name(name) + if player then + if minetest.settings:get_bool("enable_damage") then + player:set_hp(0) + return true + else + for _, callback in pairs(core.registered_on_respawnplayers) do + if callback(player) then + return true + end + end + + -- There doesn't seem to be a way to get a default spawn pos from the lua API + return false, "No static_spawnpoint defined" + end + else + -- Show error message if used when not logged in, eg: from IRC mod + return false, "You need to be online to be killed!" + end + end +}) diff --git a/mods/mesecons/LICENSE.txt b/mods/mesecons/LICENSE.txt new file mode 100644 index 0000000..0d2fd18 --- /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 100644 index 0000000..5de72c7 --- /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 100644 index 0000000..75b9e03 --- /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 100644 index 0000000..fa4079f --- /dev/null +++ b/mods/mesecons/mesecons/actionqueue.lua @@ -0,0 +1,118 @@ +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 or {}), + 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 + local 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 +local resumetime = mesecon.setting("resumetime", 4) +minetest.register_globalstep(function (dtime) + m_time = m_time + dtime + -- don't even try if server has not been running for XY seconds; resumetime = time to wait + -- after starting the server before processing the ActionQueue, don't set this too low + if (m_time < resumetime) then return end + 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 100644 index 0000000..4ad96d5 --- /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 100644 index 0000000..096e509 --- /dev/null +++ b/mods/mesecons/mesecons/init.lua @@ -0,0 +1,139 @@ +-- |\ /| ____ ____ ____ _____ ____ _____ +-- | \ / | | | | | | | |\ | | +-- | \/ | |___ ____ |___ | | | | \ | |____ +-- | | | | | | | | | \ | | +-- | | |___ ____| |___ |____ |____| | \| ____| +-- 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") + +-- Utilities like comparing positions, +-- adding positions and rules, +-- mostly things that make the source look cleaner +dofile(minetest.get_modpath("mesecons").."/util.lua"); + +-- Presets (eg default rules) +dofile(minetest.get_modpath("mesecons").."/presets.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"); + +-- 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 + + +print("[OK] Mesecons") + +-- Deprecated stuff +-- To be removed in future releases +dofile(minetest.get_modpath("mesecons").."/legacy.lua"); + +--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"); diff --git a/mods/mesecons/mesecons/internal.lua b/mods/mesecons/mesecons/internal.lua new file mode 100644 index 0000000..d62df1f --- /dev/null +++ b/mods/mesecons/mesecons/internal.lua @@ -0,0 +1,652 @@ +-- Internal.lua - The core of mesecons +-- +-- For more practical developer resources see http://mesecons.net/developers.php +-- +-- 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, depth) --> Activates the effector node at the specific pos (calls nodedef.mesecons.effector.action_on), higher depths are executed later +-- mesecon.deactivate(pos, node, depth) --> Deactivates the effector node at the specific pos (calls nodedef.mesecons.effector.action_off), higher depths are executed later +-- mesecon.changesignal(pos, node, rulename, newstate, depth) --> Changes the effector node at the specific pos (calls nodedef.mesecons.effector.action_change), higher depths are executed later + +-- 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, link) --> link is the input rule that caused calling turnon, turns on every connected node, iterative +-- mesecon.turnoff(pos, link) --> link is the input rule that caused calling turnoff, turns off every connected node, iterative +-- mesecon.connected_to_receptor(pos, link) --> Returns true if pos is connected to a receptor directly or via conductors, iterative +-- 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 helpers +-- 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 +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 +end + +function mesecon.get_any_rules (node) + return mesecon.mergetable(mesecon.get_any_inputrules(node) or {}, + mesecon.get_any_outputrules(node) or {}) +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) + local node = minetest.get_node(pos) + local 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, depth) + if rulename == nil then + for _,rule in ipairs(mesecon.effector_get_rules(node)) do + mesecon.activate(pos, node, rule, depth + 1) + end + return + end + mesecon.queue:add_action(pos, "activate", {rulename}, nil, rulename, 1 / depth) +end + + +-- Deactivation +mesecon.queue:add_function("deactivate", function (pos, rulename) + local node = minetest.get_node(pos) + local 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, depth) + if rulename == nil then + for _,rule in ipairs(mesecon.effector_get_rules(node)) do + mesecon.deactivate(pos, node, rule, depth + 1) + end + return + end + mesecon.queue:add_action(pos, "deactivate", {rulename}, nil, rulename, 1 / depth) +end + + +-- Change +mesecon.queue:add_function("change", function (pos, rulename, changetype) + local node = minetest.get_node(pos) + local 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, depth) + if rulename == nil then + for _,rule in ipairs(mesecon.effector_get_rules(node)) do + mesecon.changesignal(pos, node, rule, newstate, depth + 1) + end + return + end + + -- Include "change" in overwritecheck so that it cannot be overwritten + -- by "active" / "deactivate" that will be called upon the node at the same time. + local overwritecheck = {"change", rulename} + mesecon.queue:add_action(pos, "change", {rulename, newstate}, nil, overwritecheck, 1 / depth) +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, link) + local frontiers = {{pos = pos, link = link}} + + local depth = 1 + while frontiers[depth] do + local f = frontiers[depth] + local node = minetest.get_node_or_nil(f.pos) + + -- area not loaded, postpone action + if not node then + mesecon.queue:add_action(f.pos, "turnon", {link}, nil, true) + elseif mesecon.is_conductor_off(node, f.link) then + local rules = mesecon.conductor_get_rules(node) + + minetest.swap_node(f.pos, {name = mesecon.get_conductor_on(node, f.link), + param2 = node.param2}) + + -- call turnon on neighbors: normal rules + for _, r in ipairs(mesecon.rule2meta(f.link, rules)) do + local np = mesecon.addPosRule(f.pos, r) + + -- area not loaded, postpone action + if not minetest.get_node_or_nil(np) then + mesecon.queue:add_action(np, "turnon", {rulename}, + nil, true) + else + local links = mesecon.rules_link_rule_all(f.pos, r) + for _, l in ipairs(links) do + table.insert(frontiers, {pos = np, link = l}) + end + end + end + elseif mesecon.is_effector(node.name) then + mesecon.changesignal(f.pos, node, f.link, mesecon.state.on, depth) + if mesecon.is_effector_off(node.name) then + mesecon.activate(f.pos, node, f.link, depth) + end + end + depth = depth + 1 + end +end + +mesecon.queue:add_function("turnon", function (pos, rulename, recdepth) + mesecon.turnon(pos, rulename, recdepth) +end) + +function mesecon.turnoff(pos, link) + local frontiers = {{pos = pos, link = link}} + + local depth = 1 + while frontiers[depth] do + local f = frontiers[depth] + local node = minetest.get_node_or_nil(f.pos) + + -- area not loaded, postpone action + if not node then + mesecon.queue:add_action(f.pos, "turnoff", {link}, nil, true) + elseif mesecon.is_conductor_on(node, f.link) then + local rules = mesecon.conductor_get_rules(node) + + minetest.swap_node(f.pos, {name = mesecon.get_conductor_off(node, f.link), + param2 = node.param2}) + + -- call turnoff on neighbors: normal rules + for _, r in ipairs(mesecon.rule2meta(f.link, rules)) do + local np = mesecon.addPosRule(f.pos, r) + + -- area not loaded, postpone action + if not minetest.get_node_or_nil(np) then + mesecon.queue:add_action(np, "turnoff", {rulename}, + nil, true) + else + local links = mesecon.rules_link_rule_all(f.pos, r) + for _, l in ipairs(links) do + table.insert(frontiers, {pos = np, link = l}) + end + end + end + elseif mesecon.is_effector(node.name) then + mesecon.changesignal(f.pos, node, f.link, mesecon.state.off, depth) + if mesecon.is_effector_on(node.name) and not mesecon.is_powered(f.pos) then + mesecon.deactivate(f.pos, node, f.link, depth) + end + end + depth = depth + 1 + end +end + +mesecon.queue:add_function("turnoff", function (pos, rulename, recdepth) + mesecon.turnoff(pos, rulename, recdepth) +end) + + +function mesecon.connected_to_receptor(pos, link) + 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(link, rules)) do + local links = mesecon.rules_link_rule_all_inverted(pos, rule) + for _, l in ipairs(links) do + local np = mesecon.addPosRule(pos, l) + if mesecon.find_receptor_on(np, mesecon.invertRule(l)) then + return true + end + end + end + + return false +end + +function mesecon.find_receptor_on(pos, link) + local frontiers = {{pos = pos, link = link}} + local checked = {} + + -- List of positions that have been searched for onstate receptors + local depth = 1 + while frontiers[depth] do + local f = frontiers[depth] + local node = minetest.get_node_or_nil(f.pos) + + if not node then return false end + if mesecon.is_receptor_on(node.name) then return true end + if mesecon.is_conductor_on(node, f.link) then + local rules = mesecon.conductor_get_rules(node) + + -- call turnoff on neighbors: normal rules + for _, r in ipairs(mesecon.rule2meta(f.link, rules)) do + local np = mesecon.addPosRule(f.pos, r) + + local links = mesecon.rules_link_rule_all_inverted(f.pos, r) + for _, l in ipairs(links) do + local checkedstring = np.x..np.y..np.z..l.x..l.y..l.z + if not checked[checkedstring] then + table.insert(frontiers, {pos = np, link = l}) + checked[checkedstring] = true + end + end + end + + end + depth = depth + 1 + end +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 + return true, inputrule + end + end + end + end + return false +end + +function mesecon.rules_link_rule_all(output, rule) + 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 + table.insert(rules, inputrule) + 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 + table.insert(rules, mesecon.invertRule(outputrule)) + 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 + + -- List of nodes that send out power to pos + local sourcepos = {} + + 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 + table.insert(sourcepos, np) + 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 + table.insert(sourcepos, np) + end + end + end + + -- Return FALSE if not powered, return list of sources if is powered + if (#sourcepos == 0) then return false + else return sourcepos end +end + +--Rules rotation Functions: +function mesecon.rotate_rules_right(rules) + local nr = {} + for i, rule in ipairs(rules) do + table.insert(nr, { + x = -rule.z, + y = rule.y, + z = rule.x, + name = rule.name}) + end + return nr +end + +function mesecon.rotate_rules_left(rules) + local nr = {} + for i, rule in ipairs(rules) do + table.insert(nr, { + x = rule.z, + y = rule.y, + z = -rule.x, + name = rule.name}) + end + return nr +end + +function mesecon.rotate_rules_down(rules) + local nr = {} + for i, rule in ipairs(rules) do + table.insert(nr, { + x = -rule.y, + y = rule.x, + z = rule.z, + name = rule.name}) + end + return nr +end + +function mesecon.rotate_rules_up(rules) + local nr = {} + for i, rule in ipairs(rules) do + table.insert(nr, { + x = rule.y, + y = -rule.x, + z = rule.z, + name = rule.name}) + end + return nr +end diff --git a/mods/mesecons/mesecons/legacy.lua b/mods/mesecons/mesecons/legacy.lua new file mode 100644 index 0000000..6d8ccca --- /dev/null +++ b/mods/mesecons/mesecons/legacy.lua @@ -0,0 +1,30 @@ +-- Ugly hack to prevent breaking compatibility with other mods +-- Just remove the following two functions to delete the hack, to be done when other mods have updated +function mesecon.receptor_on(self, pos, rules) + if (self.receptor_on) then + print("[Mesecons] Warning: A mod with mesecon support called mesecon:receptor_on.") + print("[Mesecons] If you are the programmer of this mod, please update it ") + print("[Mesecons] to use mesecon.receptor_on instead. mesecon:* is deprecated") + print("[Mesecons] Otherwise, please make sure you're running the latest version") + print("[Mesecons] of that mod and inform the mod creator.") + else + rules = pos + pos = self + end + mesecon.queue:add_action(pos, "receptor_on", {rules}, nil, rules) +end + +function mesecon.receptor_off(self, pos, rules) + if (self.receptor_off) then + print("[Mesecons] Warning: A mod with mesecon support called mesecon:receptor_off.") + print("[Mesecons] If you are the programmer of this mod, please update it ") + print("[Mesecons] to use mesecon.receptor_off instead. mesecon:* is deprecated") + print("[Mesecons] Otherwise, please make sure you're running the latest version") + print("[Mesecons] of that mod and inform the mod creator.") + else + rules = pos + pos = self + end + mesecon.queue:add_action(pos, "receptor_off", {rules}, nil, rules) +end + diff --git a/mods/mesecons/mesecons/oldwires.lua b/mods/mesecons/mesecons/oldwires.lua new file mode 100644 index 0000000..9e54b1b --- /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 100644 index 0000000..ea4bd65 --- /dev/null +++ b/mods/mesecons/mesecons/presets.lua @@ -0,0 +1,47 @@ +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.pplate = mesecon.mergetable(mesecon.rules.default, {{x=0, y=-2, z=0}}) + +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 100644 index 0000000..215fb31 --- /dev/null +++ b/mods/mesecons/mesecons/services.lua @@ -0,0 +1,100 @@ +-- Dig and place services + +mesecon.on_placenode = function (pos, node) + mesecon.update_autoconnect(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 + local sources = mesecon.is_powered(pos) + if sources 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) + for _, s in ipairs(sources) do + local rule = {x = pos.x - s.x, y = pos.y - s.y, z = pos.z - s.z} + mesecon.turnon(pos, rule) + end + --mesecon.receptor_on (pos, mesecon.conductor_get_rules(node)) + elseif mesecon.is_conductor_on(node) 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 + local powered_rules = {} + local unpowered_rules = {} + + -- for each input rule, check if powered + for _, r in ipairs(mesecon.effector_get_rules(node)) do + local powered = mesecon.is_powered(pos, r) + if powered then table.insert(powered_rules, r) + else table.insert(unpowered_rules, r) end + + local state = powered and mesecon.state.on or mesecon.state.off + mesecon.changesignal(pos, node, r, state, 1) + end + + if (#powered_rules > 0) then + for _, r in ipairs(powered_rules) do + mesecon.activate(pos, node, r, 1) + end + else + for _, r in ipairs(unpowered_rules) do + mesecon.deactivate(pos, node, r, 1) + end + 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 + mesecon.queue:add_action(pos, "update_autoconnect", {node}) +end + +mesecon.queue:add_function("update_autoconnect", mesecon.update_autoconnect) + +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 < mesecon.setting("overheat_max", 20) 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 100644 index 0000000..fb03dff --- /dev/null +++ b/mods/mesecons/mesecons/settings.lua @@ -0,0 +1,10 @@ +-- SETTINGS +function mesecon.setting(setting, default) + if type(default) == "bool" then + return minetest.setting_getbool("mesecon."..setting) or default + elseif type(default) == "string" then + return minetest.setting_get("mesecon."..setting) or default + elseif type(default) == "number" then + return tonumber(minetest.setting_get("mesecon."..setting) or default) + end +end diff --git a/mods/mesecons/mesecons/textures/jeija_fiber.png b/mods/mesecons/mesecons/textures/jeija_fiber.png new file mode 100644 index 0000000..e8c7b08 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 100644 index 0000000..2f351d1 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_glue.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 100644 index 0000000..2a75ef3 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 100644 index 0000000..9df3450 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 100644 index 0000000..fb5db33 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_mesecon_switch_side.png differ diff --git a/mods/mesecons/mesecons/textures/jeija_silicon.png b/mods/mesecons/mesecons/textures/jeija_silicon.png new file mode 100644 index 0000000..a7b0d52 Binary files /dev/null and b/mods/mesecons/mesecons/textures/jeija_silicon.png differ diff --git a/mods/mesecons/mesecons/textures/mesecons_wire_inv.png b/mods/mesecons/mesecons/textures/mesecons_wire_inv.png new file mode 100644 index 0000000..a3930cb Binary files /dev/null and b/mods/mesecons/mesecons/textures/mesecons_wire_inv.png differ diff --git a/mods/mesecons/mesecons/textures/mesecons_wire_off.png b/mods/mesecons/mesecons/textures/mesecons_wire_off.png new file mode 100644 index 0000000..58164fa Binary files /dev/null and b/mods/mesecons/mesecons/textures/mesecons_wire_off.png differ diff --git a/mods/mesecons/mesecons/textures/mesecons_wire_on.png b/mods/mesecons/mesecons/textures/mesecons_wire_on.png new file mode 100644 index 0000000..98a86c8 Binary files /dev/null and b/mods/mesecons/mesecons/textures/mesecons_wire_on.png differ diff --git a/mods/mesecons/mesecons/util.lua b/mods/mesecons/mesecons/util.lua new file mode 100644 index 0000000..ab2f32c --- /dev/null +++ b/mods/mesecons/mesecons/util.lua @@ -0,0 +1,211 @@ +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 + +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) 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) then + return m + end + end + end +end + +function mesecon.rule2meta(findrule, allrules) + if #allrules == 0 then return {} end + + 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 + +function mesecon.dec2bin(n) + local x, y = math.floor(n / 2), n % 2 + if (n > 1) then + return mesecon.dec2bin(x)..y + else + return ""..y + 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 mesecon.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 mesecon.dec2bin(tonumber(binary,2)+math.pow(2,bit-1)) + end + elseif value == "0" then + if mesecon.get_bit(binary,bit) then + return mesecon.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} +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.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 + +-- does not overwrite values; number keys (ipairs) are appended, not overwritten +function mesecon.mergetable(source, dest) + local rval = mesecon.tablecopy(dest) + + for k, v in pairs(source) do + rval[k] = dest[k] or mesecon.tablecopy(v) + end + for i, v in ipairs(source) do + table.insert(rval, mesecon.tablecopy(v)) + end + + return rval +end + +function mesecon.register_node(name, spec_common, spec_off, spec_on) + spec_common.drop = spec_common.drop or name .. "_off" + spec_common.__mesecon_basename = name + spec_on.__mesecon_state = "on" + spec_off.__mesecon_state = "off" + + spec_on = mesecon.mergetable(spec_common, spec_on); + spec_off = mesecon.mergetable(spec_common, spec_off); + + minetest.register_node(name .. "_on", spec_on) + minetest.register_node(name .. "_off", spec_off) +end + +-- swap onstate and offstate nodes, returns new state +function mesecon.flipstate(pos, node) + local nodedef = minetest.registered_nodes[node.name] + local newstate + if (nodedef.__mesecon_state == "on") then newstate = "off" end + if (nodedef.__mesecon_state == "off") then newstate = "on" end + + minetest.swap_node(pos, {name = nodedef.__mesecon_basename .. "_" .. newstate, + param2 = node.param2}) + + return newstate +end diff --git a/mods/mesecons/mesecons/wires.lua b/mods/mesecons/mesecons/wires.lua new file mode 100644 index 0000000..cb8c45f --- /dev/null +++ b/mods/mesecons/mesecons/wires.lua @@ -0,0 +1,250 @@ +-- naming scheme: wire:(xp)(zp)(xm)(zm)(xpyp)(zpyp)(xmyp)(zmyp)_on/off +-- where x= x direction, z= z direction, y= y direction, p = +1, m = -1, e.g. xpym = {x=1, y=-1, z=0} +-- The (xp)/(zpyp)/.. statements shall be replaced by either 0 or 1 +-- Where 0 means the wire has no visual connection to that direction and +-- 1 means that the wire visually connects to that other node. + +-- ####################### +-- ## Update wire looks ## +-- ####################### + +-- self_pos = pos of any mesecon node, from_pos = pos of conductor to getconnect for +local wire_getconnect = function (from_pos, self_pos) + local node = minetest.get_node(self_pos) + if minetest.registered_nodes[node.name] + and minetest.registered_nodes[node.name].mesecons then + -- rules of node to possibly connect to + local rules = {} + if (minetest.registered_nodes[node.name].mesecon_wire) then + rules = mesecon.rules.default + else + rules = mesecon.get_any_rules(node) + end + + for _, r in ipairs(mesecon.flattenrules(rules)) do + if (mesecon.cmpPos(mesecon.addPosRule(self_pos, r), from_pos)) then + return true + end + end + end + return false +end + +-- Update this node +local wire_updateconnect = function (pos) + local connections = {} + + for _, r in ipairs(mesecon.rules.default) do + if wire_getconnect(pos, mesecon.addPosRule(pos, r)) then + table.insert(connections, r) + end + end + + local nid = {} + for _, vec in ipairs(connections) do + -- flat component + if vec.x == 1 then nid[0] = "1" end + if vec.z == 1 then nid[1] = "1" end + if vec.x == -1 then nid[2] = "1" end + if vec.z == -1 then nid[3] = "1" end + + -- slopy component + if vec.y == 1 then + if vec.x == 1 then nid[4] = "1" end + if vec.z == 1 then nid[5] = "1" end + if vec.x == -1 then nid[6] = "1" end + if vec.z == -1 then nid[7] = "1" end + end + end + + local nodeid = (nid[0] or "0")..(nid[1] or "0")..(nid[2] or "0")..(nid[3] or "0") + ..(nid[4] or "0")..(nid[5] or "0")..(nid[6] or "0")..(nid[7] or "0") + + local state_suffix = string.find(minetest.get_node(pos).name, "_off") and "_off" or "_on" + minetest.set_node(pos, {name = "mesecons:wire_"..nodeid..state_suffix}) +end + +local update_on_place_dig = function (pos, node) + -- Update placed node (get_node again as it may have been dug) + local nn = minetest.get_node(pos) + if (minetest.registered_nodes[nn.name]) + and (minetest.registered_nodes[nn.name].mesecon_wire) then + wire_updateconnect(pos) + end + + -- Update nodes around it + local rules = {} + if minetest.registered_nodes[node.name] + and minetest.registered_nodes[node.name].mesecon_wire then + rules = mesecon.rules.default + else + rules = mesecon.get_any_rules(node) + end + if (not rules) then return end + + for _, r in ipairs(mesecon.flattenrules(rules)) do + local np = mesecon.addPosRule(pos, r) + if minetest.registered_nodes[minetest.get_node(np).name] + and minetest.registered_nodes[minetest.get_node(np).name].mesecon_wire then + wire_updateconnect(np) + end + end +end + +function mesecon.update_autoconnect(pos, node) + if (not node) then node = minetest.get_node(pos) end + update_on_place_dig(pos, node) +end + +-- ############################ +-- ## Wire node registration ## +-- ############################ +-- Nodeboxes: +local box_center = {-1/16, -.5, -1/16, 1/16, -.5+1/16, 1/16} +local box_bump1 = { -2/16, -8/16, -2/16, 2/16, -13/32, 2/16 } + +local nbox_nid = +{ + [0] = {1/16, -.5, -1/16, 8/16, -.5+1/16, 1/16}, -- x positive + [1] = {-1/16, -.5, 1/16, 1/16, -.5+1/16, 8/16}, -- z positive + [2] = {-8/16, -.5, -1/16, -1/16, -.5+1/16, 1/16}, -- x negative + [3] = {-1/16, -.5, -8/16, 1/16, -.5+1/16, -1/16}, -- z negative + + [4] = {.5-1/16, -.5+1/16, -1/16, .5, .4999+1/16, 1/16}, -- x positive up + [5] = {-1/16, -.5+1/16, .5-1/16, 1/16, .4999+1/16, .5}, -- z positive up + [6] = {-.5, -.5+1/16, -1/16, -.5+1/16, .4999+1/16, 1/16}, -- x negative up + [7] = {-1/16, -.5+1/16, -.5, 1/16, .4999+1/16, -.5+1/16} -- z negative up +} + +local tiles_off = { "mesecons_wire_off.png" } +local tiles_on = { "mesecons_wire_on.png" } + +local selectionbox = +{ + type = "fixed", + fixed = {-.5, -.5, -.5, .5, -.5+4/16, .5} +} + +-- go to the next nodeid (ex.: 01000011 --> 01000100) +local nid_inc = function() end +nid_inc = function (nid) + local i = 0 + while nid[i-1] ~= 1 do + nid[i] = (nid[i] ~= 1) and 1 or 0 + i = i + 1 + end + + -- BUT: Skip impossible nodeids: + if ((nid[0] == 0 and nid[4] == 1) or (nid[1] == 0 and nid[5] == 1) + or (nid[2] == 0 and nid[6] == 1) or (nid[3] == 0 and nid[7] == 1)) then + return nid_inc(nid) + end + + return i <= 8 +end + +register_wires = function() + local nid = {} + while true do + -- Create group specifiction and nodeid string (see note above for details) + local nodeid = (nid[0] or "0")..(nid[1] or "0")..(nid[2] or "0")..(nid[3] or "0") + ..(nid[4] or "0")..(nid[5] or "0")..(nid[6] or "0")..(nid[7] or "0") + + -- Calculate nodebox + local nodebox = {type = "fixed", fixed={box_center}} + for i=0,7 do + if nid[i] == 1 then + table.insert(nodebox.fixed, nbox_nid[i]) + end + end + + -- Add bump to nodebox if curved + if (nid[0] == 1 and nid[1] == 1) or (nid[1] == 1 and nid[2] == 1) + or (nid[2] == 1 and nid[3] == 1) or (nid[3] == 1 and nid[0] == 1) then + table.insert(nodebox.fixed, box_bump1) + end + + -- If nothing to connect to, still make a nodebox of a straight wire + if nodeid == "00000000" then + nodebox.fixed = {-8/16, -.5, -1/16, 8/16, -.5+1/16, 1/16} + end + + local rules = {} + if (nid[0] == 1) then table.insert(rules, vector.new( 1, 0, 0)) end + if (nid[1] == 1) then table.insert(rules, vector.new( 0, 0, 1)) end + if (nid[2] == 1) then table.insert(rules, vector.new(-1, 0, 0)) end + if (nid[3] == 1) then table.insert(rules, vector.new( 0, 0, -1)) end + + if (nid[0] == 1) then table.insert(rules, vector.new( 1, -1, 0)) end + if (nid[1] == 1) then table.insert(rules, vector.new( 0, -1, 1)) end + if (nid[2] == 1) then table.insert(rules, vector.new(-1, -1, 0)) end + if (nid[3] == 1) then table.insert(rules, vector.new( 0, -1, -1)) end + + if (nid[4] == 1) then table.insert(rules, vector.new( 1, 1, 0)) end + if (nid[5] == 1) then table.insert(rules, vector.new( 0, 1, 1)) end + if (nid[6] == 1) then table.insert(rules, vector.new(-1, 1, 0)) end + if (nid[7] == 1) then table.insert(rules, vector.new( 0, 1, -1)) end + + local meseconspec_off = { conductor = { + rules = rules, + state = mesecon.state.off, + onstate = "mesecons:wire_"..nodeid.."_on" + }} + + local meseconspec_on = { conductor = { + rules = rules, + state = mesecon.state.on, + offstate = "mesecons:wire_"..nodeid.."_off" + }} + + local groups_on = {dig_immediate = 3, mesecon_conductor_craftable = 1, + not_in_creative_inventory = 1} + local groups_off = {dig_immediate = 3, mesecon_conductor_craftable = 1} + if nodeid ~= "00000000" then + groups_off["not_in_creative_inventory"] = 1 + end + + mesecon.register_node("mesecons:wire_"..nodeid, { + description = "Mesecon", + drawtype = "nodebox", + inventory_image = "mesecons_wire_inv.png", + wield_image = "mesecons_wire_inv.png", + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + selection_box = selectionbox, + node_box = nodebox, + walkable = false, + drop = "mesecons:wire_00000000_off", + mesecon_wire = true + }, {tiles = tiles_off, mesecons = meseconspec_off, groups = groups_off}, + {tiles = tiles_on, mesecons = meseconspec_on, groups = groups_on}) + + if (nid_inc(nid) == false) then return end + end +end +register_wires() + +-- ############## +-- ## Crafting ## +-- ############## +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 80", + recipe = "default:mese", + cooktime = 30, +}) diff --git a/mods/mesecons/mesecons_alias/depends.txt b/mods/mesecons/mesecons_alias/depends.txt new file mode 100644 index 0000000..acaa924 --- /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 100644 index 0000000..395c368 --- /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_blinkyplant/depends.txt b/mods/mesecons/mesecons_blinkyplant/depends.txt new file mode 100644 index 0000000..acaa924 --- /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 100644 index 0000000..0071fba --- /dev/null +++ b/mods/mesecons/mesecons_blinkyplant/init.lua @@ -0,0 +1,51 @@ +-- The BLINKY_PLANT + +local toggle_timer = function (pos) + local timer = minetest.get_node_timer(pos) + if timer:is_started() then + timer:stop() + else + timer:start(mesecon.setting("blinky_plant_interval", 3)) + end +end + +local on_timer = function (pos) + local node = minetest.get_node(pos) + if(mesecon.flipstate(pos, node) == "on") then + mesecon.receptor_on(pos) + else + mesecon.receptor_off(pos) + end + toggle_timer(pos) +end + +mesecon.register_node("mesecons_blinkyplant:blinky_plant", { + description="Blinky Plant", + drawtype = "plantlike", + inventory_image = "jeija_blinky_plant_off.png", + paramtype = "light", + walkable = false, + 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}, + }, + on_timer = on_timer, + on_rightclick = toggle_timer, + on_construct = toggle_timer +},{ + tiles = {"jeija_blinky_plant_off.png"}, + groups = {dig_immediate=3}, + mesecons = {receptor = { state = mesecon.state.off }} +},{ + tiles = {"jeija_blinky_plant_on.png"}, + groups = {dig_immediate=3, not_in_creative_inventory=1}, + mesecons = {receptor = { state = mesecon.state.on }} +}) + +minetest.register_craft({ + output = 'mesecons_blinkyplant:blinky_plant_off 1', + recipe = {{"","gems:ruby_gem",""}, + {"gems:ruby_gem","gems:ruby_gem","gems:ruby_gem"}, + {"","",""}} +}) 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 100644 index 0000000..4f507da 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 100644 index 0000000..f77a134 Binary files /dev/null and b/mods/mesecons/mesecons_blinkyplant/textures/jeija_blinky_plant_on.png differ diff --git a/mods/mesecons/mesecons_button/depends.txt b/mods/mesecons/mesecons_button/depends.txt new file mode 100644 index 0000000..19c798c --- /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 100644 index 0000000..f147d8f --- /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 100644 index 0000000..9d56bb8 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 100644 index 0000000..53d45c1 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 100644 index 0000000..0e3ff25 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 100644 index 0000000..1d97464 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 100644 index 0000000..9b79b57 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..a3d7bd4 --- /dev/null +++ b/mods/mesecons/mesecons_commandblock/init.lua @@ -0,0 +1,189 @@ +minetest.register_chatcommand("say", { + params = "", + description = "Say as the server", + privs = {server=true}, + func = function(name, param) + minetest.chat_send_all(name .. ": " .. param) + end +}) + +minetest.register_chatcommand("tell", { + params = " ", + description = "Say to privately", + func = function(name, param) + local found, _, target, message = param:find("^([^%s]+)%s+(.*)$") + if found == nil then + minetest.chat_send_player(name, "Invalid usage: " .. param) + return + end + if not minetest.get_player_by_name(target) then + minetest.chat_send_player(name, "Invalid target: " .. target) + end + minetest.chat_send_player(target, name .. " whispers: " .. message, false) + end +}) + +minetest.register_chatcommand("hp", { + params = " ", + description = "Set health of to hitpoints", + 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: " .. param) + return + end + local player = minetest.get_player_by_name(target) + if player then + player:set_hp(value) + else + minetest.chat_send_player(name, "Invalid target: " .. target) + 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 not fields.submit 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) + + 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 100644 index 0000000..5c27c6c 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 100644 index 0000000..c05b616 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 100644 index 0000000..7fc35b6 Binary files /dev/null and b/mods/mesecons/mesecons_commandblock/textures/jeija_commandblock_on.png differ diff --git a/mods/mesecons/mesecons_delayer/depends.txt b/mods/mesecons/mesecons_delayer/depends.txt new file mode 100644 index 0000000..acaa924 --- /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 100644 index 0000000..ba4067f --- /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 100644 index 0000000..2e49d31 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 100644 index 0000000..0242deb 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 100644 index 0000000..19ae0cb 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 100644 index 0000000..7372b37 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 100644 index 0000000..e34f0ac 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 100644 index 0000000..091adbc 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 100644 index 0000000..7ecc9b6 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 100644 index 0000000..61f52f2 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 100644 index 0000000..7bd363f 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 100644 index 0000000..b93f725 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 100644 index 0000000..ca90a1e 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 100644 index 0000000..79f3d59 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 100644 index 0000000..1c8edaa Binary files /dev/null and b/mods/mesecons/mesecons_delayer/textures/mesecons_delayer_sides_on.png differ diff --git a/mods/mesecons/mesecons_detector/depends.txt b/mods/mesecons/mesecons_detector/depends.txt new file mode 100644 index 0000000..bc7b062 --- /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 100644 index 0000000..1a8595d --- /dev/null +++ b/mods/mesecons/mesecons_detector/init.lua @@ -0,0 +1,268 @@ +local GET_COMMAND = "GET" + +-- 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, mesecon.setting("detector_radius", 6)) + 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 +local 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, + rules = mesecon.rules.pplate + }}, + 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, + rules = mesecon.rules.pplate + }}, + 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, mesecon.rules.pplate) + 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, mesecon.rules.pplate) + end + end, +}) + +-- Node detector +-- Detects the node in front of it + +local node_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 node 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 node_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) + node_detector_make_formspec(pos) +end + +-- returns true if player was found, false if not +local node_detector_scan = function (pos) + local node = minetest.get_node(pos) + local frontpos = vector.subtract(pos, minetest.facedir_to_dir(node.param2)) + local frontnode = minetest.get_node(frontpos) + local meta = minetest.get_meta(pos) + return (frontnode.name == meta:get_string("scanname")) or + (frontnode.name ~= "air" and frontnode.name ~= "ignore" and meta:get_string("scanname") == "") +end + +-- set player name when receiving a digiline signal on a specific channel +local node_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 + if msg == GET_COMMAND then + local frontpos = vector.subtract(pos, minetest.facedir_to_dir(node.param2)) + local name = minetest.get_node(frontpos).name + digiline:receptor_send(pos, digiline.rules.default, channel, name) + else + meta:set_string("scanname", msg) + node_detector_make_formspec(pos) + end + end + end, + }, + receptor = {} +} + +minetest.register_node("mesecons_detector:node_detector_off", { + tiles = {"default_steel_block.png", "default_steel_block.png", "default_steel_block.png", "default_steel_block.png", "default_steel_block.png", "jeija_node_detector_off.png"}, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = {cracky=3}, + description="Node Detector", + mesecons = {receptor = { + state = mesecon.state.off + }}, + on_construct = node_detector_make_formspec, + on_receive_fields = node_detector_on_receive_fields, + after_place_node = function (pos, placer) + local placer_pos = placer:getpos() + + --correct for the player's height + if placer:is_player() then placer_pos.y = placer_pos.y + 1.5 end + + --correct for 6d facedir + if placer_pos then + local dir = { + x = pos.x - placer_pos.x, + y = pos.y - placer_pos.y, + z = pos.z - placer_pos.z + } + local node = minetest.get_node(pos) + node.param2 = minetest.dir_to_facedir(dir, true) + minetest.set_node(pos, node) + minetest.log("action", "real (6d) facedir: " .. node.param2) + end + end, + sounds = default.node_sound_stone_defaults(), + digiline = node_detector_digiline +}) + +minetest.register_node("mesecons_detector:node_detector_on", { + tiles = {"default_steel_block.png", "default_steel_block.png", "default_steel_block.png", "default_steel_block.png", "default_steel_block.png", "jeija_node_detector_on.png"}, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = {cracky=3,not_in_creative_inventory=1}, + drop = 'mesecons_detector:node_detector_off', + mesecons = {receptor = { + state = mesecon.state.on + }}, + on_construct = node_detector_make_formspec, + on_receive_fields = node_detector_on_receive_fields, + after_place_node = function (pos, placer) + local placer_pos = placer:getpos() + + --correct for the player's height + if placer:is_player() then placer_pos.y = placer_pos.y + 1.5 end + + --correct for 6d facedir + if placer_pos then + local dir = { + x = pos.x - placer_pos.x, + y = pos.y - placer_pos.y, + z = pos.z - placer_pos.z + } + local node = minetest.get_node(pos) + node.param2 = minetest.dir_to_facedir(dir, true) + minetest.set_node(pos, node) + minetest.log("action", "real (6d) facedir: " .. node.param2) + end + end, + sounds = default.node_sound_stone_defaults(), + digiline = node_detector_digiline +}) + +minetest.register_craft({ + output = 'mesecons_detector:node_detector_off', + recipe = { + {"default:steel_ingot", "group:mesecon_conductor_craftable", "default:steel_ingot"}, + {"default:steel_ingot", "mesecons_luacontroller:luacontroller0000", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + } +}) + +minetest.register_abm( + {nodenames = {"mesecons_detector:node_detector_off"}, + interval = 1.0, + chance = 1, + action = function(pos, node) + if node_detector_scan(pos) then + minetest.swap_node(pos, {name = "mesecons_detector:node_detector_on", param2 = node.param2}) + mesecon.receptor_on(pos) + end + end, +}) + +minetest.register_abm( + {nodenames = {"mesecons_detector:node_detector_on"}, + interval = 1.0, + chance = 1, + action = function(pos, node) + if not node_detector_scan(pos) then + minetest.swap_node(pos, {name = "mesecons_detector:node_detector_off", param2 = node.param2}) + mesecon.receptor_off(pos) + end + end, +}) diff --git a/mods/mesecons/mesecons_detector/textures/jeija_node_detector_off.png b/mods/mesecons/mesecons_detector/textures/jeija_node_detector_off.png new file mode 100644 index 0000000..6d130ad Binary files /dev/null and b/mods/mesecons/mesecons_detector/textures/jeija_node_detector_off.png differ diff --git a/mods/mesecons/mesecons_detector/textures/jeija_node_detector_on.png b/mods/mesecons/mesecons_detector/textures/jeija_node_detector_on.png new file mode 100644 index 0000000..926a9d1 Binary files /dev/null and b/mods/mesecons/mesecons_detector/textures/jeija_node_detector_on.png differ 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 100644 index 0000000..825d78f 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 100644 index 0000000..96f8ba3 Binary files /dev/null and b/mods/mesecons/mesecons_detector/textures/jeija_object_detector_on.png differ diff --git a/mods/mesecons/mesecons_doors/depends.txt b/mods/mesecons/mesecons_doors/depends.txt new file mode 100644 index 0000000..ed2fcd8 --- /dev/null +++ b/mods/mesecons/mesecons_doors/depends.txt @@ -0,0 +1,2 @@ +mesecons +doors diff --git a/mods/mesecons/mesecons_doors/init.lua b/mods/mesecons/mesecons_doors/init.lua new file mode 100644 index 0000000..0be8a62 --- /dev/null +++ b/mods/mesecons/mesecons_doors/init.lua @@ -0,0 +1,51 @@ +-- Modified, from minetest_game/mods/doors/init.lua +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}) + + if (minetest.get_meta(pos):get_int("right") ~= 0) == (params[1] ~= 3) then + minetest.sound_play("door_close", {pos = pos, gain = 0.3, max_hear_distance = 10}) + else + minetest.sound_play("door_open", {pos = pos, gain = 0.3, max_hear_distance = 10}) + end +end + +local function meseconify_door(name) + local function toggle_state1 (pos, node) + on_rightclick(pos, 0, name.."_a", name.."_a", name.."_a", {0,0,0,0}) + end + + local function toggle_state2 (pos, node) + on_rightclick(pos, 0, name.."_b", name.."_b", name.."_b", {0,0,0,0}) + end + + minetest.override_item(name.."_b", { + mesecons = {effector = { + action_on = toggle_state1, + action_off = toggle_state1, + rules = mesecon.rules.pplate + }}, + }) + + minetest.override_item(name.."_a", { + mesecons = {effector = { + action_on = toggle_state2, + action_off = toggle_state2, + rules = mesecon.rules.pplate + }}, + }) +end + +meseconify_door("doors:door_wood") +meseconify_door("doors:door_steel") +meseconify_door("doors:door_glass") +meseconify_door("doors:door_obsidian_glass") diff --git a/mods/mesecons/mesecons_extrawires/corner.lua b/mods/mesecons/mesecons_extrawires/corner.lua new file mode 100644 index 0000000..003275a --- /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 100644 index 0000000..93b9638 --- /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 100644 index 0000000..aca967d --- /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 100644 index 0000000..b22f2e5 --- /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 0000000..150178c --- /dev/null +++ b/mods/mesecons/mesecons_extrawires/mesewire.lua @@ -0,0 +1,30 @@ +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.override_item("default:mese", { + 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 100644 index 0000000..680dc99 --- /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 100644 index 0000000..cac2ae2 --- /dev/null +++ b/mods/mesecons/mesecons_extrawires/vertical.lua @@ -0,0 +1,183 @@ +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}, + {x=0, y=2, z=0} -- receive power from pressure plate / detector / ... 2 nodes above +} + +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 + + local basename = "mesecons_extrawires:vertical_" + if above and below then -- above and below: vertical mesecon + minetest.add_node(pos, {name = basename .. namestate}) + elseif above and not below then -- above only: bottom + minetest.add_node(pos, {name = basename .. "bottom_" .. namestate}) + elseif not above and below then -- below only: top + minetest.add_node(pos, {name = basename .. "top_" .. namestate}) + else -- no vertical wire above, no vertical wire below: use bottom + minetest.add_node(pos, {name = basename .. "bottom_" .. namestate}) + end + mesecon.update_autoconnect(pos) + 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 +mesecon.register_node("mesecons_extrawires:vertical", { + description = "Vertical mesecon", + drawtype = "nodebox", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + selection_box = vertical_box, + node_box = vertical_box, + is_vertical_conductor = true, + drop = "mesecons_extrawires:vertical_off", + after_place_node = vertical_update, + after_dig_node = vertical_update +},{ + tiles = {"mesecons_wire_off.png"}, + groups = {dig_immediate=3}, + vertical_conductor_state = "off", + mesecons = {conductor = { + state = mesecon.state.off, + onstate = "mesecons_extrawires:vertical_on", + rules = vertical_rules, + }} +},{ + tiles = {"mesecons_wire_on.png"}, + groups = {dig_immediate=3, not_in_creative_inventory=1}, + vertical_conductor_state = "on", + mesecons = {conductor = { + state = mesecon.state.on, + offstate = "mesecons_extrawires:vertical_off", + rules = vertical_rules, + }} +}) + +-- Vertical wire top +mesecon.register_node("mesecons_extrawires:vertical_top", { + description = "Vertical mesecon", + drawtype = "nodebox", + 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, + drop = "mesecons_extrawires:vertical_off", + after_place_node = vertical_update, + after_dig_node = vertical_update +},{ + tiles = {"mesecons_wire_off.png"}, + vertical_conductor_state = "off", + mesecons = {conductor = { + state = mesecon.state.off, + onstate = "mesecons_extrawires:vertical_top_on", + rules = top_rules, + }} +},{ + tiles = {"mesecons_wire_on.png"}, + vertical_conductor_state = "on", + mesecons = {conductor = { + state = mesecon.state.on, + offstate = "mesecons_extrawires:vertical_top_off", + rules = top_rules, + }} +}) + +-- Vertical wire bottom +mesecon.register_node("mesecons_extrawires:vertical_bottom", { + description = "Vertical mesecon", + drawtype = "nodebox", + 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, + drop = "mesecons_extrawires:vertical_off", + after_place_node = vertical_update, + after_dig_node = vertical_update +},{ + tiles = {"mesecons_wire_off.png"}, + vertical_conductor_state = "off", + mesecons = {conductor = { + state = mesecon.state.off, + onstate = "mesecons_extrawires:vertical_bottom_on", + rules = bottom_rules, + }} +},{ + tiles = {"mesecons_wire_on.png"}, + vertical_conductor_state = "on", + mesecons = {conductor = { + state = mesecon.state.on, + offstate = "mesecons_extrawires:vertical_bottom_off", + rules = bottom_rules, + }} +}) + +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_gates/depends.txt b/mods/mesecons/mesecons_gates/depends.txt new file mode 100644 index 0000000..f3e0392 --- /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 100644 index 0000000..78a3e83 --- /dev/null +++ b/mods/mesecons/mesecons_gates/init.lua @@ -0,0 +1,124 @@ +local nodebox = { + type = "fixed", + fixed = {{-8/16, -8/16, -8/16, 8/16, -7/16, 8/16 }}, +} + +local function gate_rotate_rules(node, rules) + for rotations = 0, node.param2 - 1 do + rules = mesecon.rotate_rules_left(rules) + end + return rules +end + +local function gate_get_output_rules(node) + return gate_rotate_rules(node, {{x=1, y=0, z=0}}) +end + +local function gate_get_input_rules_oneinput(node) + return gate_rotate_rules(node, {{x=-1, y=0, z=0}}) +end + +local function gate_get_input_rules_twoinputs(node) + return gate_rotate_rules(node, {{x=0, y=0, z=1, name="input1"}, + {x=0, y=0, z=-1, name="input2"}}) +end + +local function set_gate(pos, node, state) + local gate = minetest.registered_nodes[node.name] + + if mesecon.do_overheat(pos) then + minetest.remove_node(pos) + mesecon.receptor_off(pos, gate_get_output_rules(node)) + minetest.add_item(pos, gate.drop) + elseif state then + minetest.swap_node(pos, {name = gate.onstate, param2=node.param2}) + mesecon.receptor_on(pos, gate_get_output_rules(node)) + else + minetest.swap_node(pos, {name = gate.offstate, param2=node.param2}) + mesecon.receptor_off(pos, gate_get_output_rules(node)) + end +end + +local function update_gate(pos, node, link, newstate) + local gate = minetest.registered_nodes[node.name] + + if gate.inputnumber == 1 then + set_gate(pos, node, gate.assess(newstate == "on")) + elseif gate.inputnumber == 2 then + local meta = minetest.get_meta(pos) + meta:set_int(link.name, newstate == "on" and 1 or 0) + + local val1 = meta:get_int("input1") == 1 + local val2 = meta:get_int("input2") == 1 + set_gate(pos, node, gate.assess(val1, val2)) + end +end + +function register_gate(name, inputnumber, assess, recipe) + local get_inputrules = inputnumber == 2 and gate_get_input_rules_twoinputs or + gate_get_input_rules_oneinput + local description = "Mesecons Logic Gate: "..name + + local basename = "mesecons_gates:"..name + mesecon.register_node(basename, { + description = description, + inventory_image = "jeija_gate_off.png^jeija_gate_"..name..".png", + paramtype = "light", + paramtype2 = "facedir", + drawtype = "nodebox", + drop = basename.."_off", + selection_box = nodebox, + node_box = nodebox, + walkable = true, + sounds = default.node_sound_stone_defaults(), + assess = assess, + onstate = basename.."_on", + offstate = basename.."_off", + inputnumber = inputnumber + },{ + tiles = {"jeija_microcontroller_bottom.png^".."jeija_gate_off.png^".. + "jeija_gate_"..name..".png"}, + groups = {dig_immediate = 2, overheat = 1}, + mesecons = { receptor = { + state = "off", + rules = gate_get_output_rules + }, effector = { + rules = get_inputrules, + action_change = update_gate + }} + },{ + tiles = {"jeija_microcontroller_bottom.png^".."jeija_gate_on.png^".. + "jeija_gate_"..name..".png"}, + groups = {dig_immediate = 2, not_in_creative_inventory = 1, overheat = 1}, + mesecons = { receptor = { + state = "on", + rules = gate_get_output_rules + }, effector = { + rules = get_inputrules, + action_change = update_gate + }} + }) + + minetest.register_craft({output = basename.."_off", recipe = recipe}) +end + +register_gate("diode", 1, function (input) return input end, + {{"mesecons:mesecon", "mesecons_torch:mesecon_torch_on", "mesecons_torch:mesecon_torch_on"}}) + +register_gate("not", 1, function (input) return not input end, + {{"mesecons:mesecon", "mesecons_torch:mesecon_torch_on", "mesecons:mesecon"}}) + +register_gate("and", 2, function (val1, val2) return val1 and val2 end, + {{"mesecons:mesecon", "", ""}, + {"", "mesecons_materials:silicon", "mesecons:mesecon"}, + {"mesecons:mesecon", "", ""}}) + +register_gate("nand", 2, function (val1, val2) return not (val1 and val2) end, + {{"mesecons:mesecon", "", ""}, + {"", "mesecons_materials:silicon", "mesecons_torch:mesecon_torch_on"}, + {"mesecons:mesecon", "", ""}}) + +register_gate("xor", 2, function (val1, val2) return (val1 or val2) and not (val1 and val2) end, + {{"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 100644 index 0000000..0ddc043 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 100644 index 0000000..ffa403f 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 100644 index 0000000..0e4294e 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 100644 index 0000000..939fb76 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 100644 index 0000000..44017b0 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 100644 index 0000000..47028a8 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 100644 index 0000000..afbd6ab Binary files /dev/null and b/mods/mesecons/mesecons_gates/textures/jeija_gate_xor.png differ diff --git a/mods/mesecons/mesecons_hydroturbine/depends.txt b/mods/mesecons/mesecons_hydroturbine/depends.txt new file mode 100644 index 0000000..acaa924 --- /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 100644 index 0000000..36bd498 --- /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 100644 index 0000000..5ca1a12 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 100644 index 0000000..28eb0c9 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..c6fc05e --- /dev/null +++ b/mods/mesecons/mesecons_insulated/init.lua @@ -0,0 +1,80 @@ +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 Mesecon", + 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"}, + } +}) 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 100644 index 0000000..d872b2b 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 100644 index 0000000..ae06dea 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 100644 index 0000000..41b5ff4 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 100644 index 0000000..154288b 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 100644 index 0000000..85ca90b 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 100644 index 0000000..772d9a6 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 100644 index 0000000..b742152 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 100644 index 0000000..497a467 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 100644 index 0000000..d407cff 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 100644 index 0000000..830d390 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 100644 index 0000000..89a8385 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 100644 index 0000000..75cf435 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 100644 index 0000000..db33f14 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 100644 index 0000000..f76e9a8 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 100644 index 0000000..a897b29 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 100644 index 0000000..8fc312b 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..6cdae2d --- /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 100644 index 0000000..5456ee9 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 100644 index 0000000..67bd7fd 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 100644 index 0000000..2316e00 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 100644 index 0000000..f9705e0 --- /dev/null +++ b/mods/mesecons/mesecons_lightstone/depends.txt @@ -0,0 +1,2 @@ +mesecons +dye diff --git a/mods/mesecons/mesecons_lightstone/init.lua b/mods/mesecons/mesecons_lightstone/init.lua new file mode 100644 index 0000000..1e408d3 --- /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, + 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", "dye:red", "jeija_lightstone_red_off.png", "jeija_lightstone_red_on.png") +mesecon.lightstone_add("green", "dye:green", "jeija_lightstone_green_off.png", "jeija_lightstone_green_on.png") +mesecon.lightstone_add("blue", "dye:blue", "jeija_lightstone_blue_off.png", "jeija_lightstone_blue_on.png") +mesecon.lightstone_add("gray", "dye:grey", "jeija_lightstone_gray_off.png", "jeija_lightstone_gray_on.png") +mesecon.lightstone_add("darkgray", "dye:dark_grey", "jeija_lightstone_darkgray_off.png", "jeija_lightstone_darkgray_on.png") +mesecon.lightstone_add("yellow", "dye:yellow", "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 100644 index 0000000..09acc22 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 100644 index 0000000..93c8638 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 100644 index 0000000..7e5aae7 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 100644 index 0000000..e6d4d00 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 100644 index 0000000..f168fc2 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 100644 index 0000000..24c5470 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 100644 index 0000000..2f214fa 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 100644 index 0000000..225bf4e 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 100644 index 0000000..3c828b2 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 100644 index 0000000..512b0fe 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 100644 index 0000000..2e7fed0 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 100644 index 0000000..8943aca Binary files /dev/null and b/mods/mesecons/mesecons_lightstone/textures/jeija_lightstone_yellow_on.png differ diff --git a/mods/mesecons/mesecons_luacontroller/depends.txt b/mods/mesecons/mesecons_luacontroller/depends.txt new file mode 100644 index 0000000..acaa924 --- /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 100644 index 0000000..df681d9 --- /dev/null +++ b/mods/mesecons/mesecons_luacontroller/init.lua @@ -0,0 +1,630 @@ +-- ______ +-- | +-- | +-- | __ ___ _ __ _ _ +-- | | | | | |\ | | |_| | | | | |_ |_| +-- |___| |______ |__| | \| | | \ |__| |_ |_ |_ |\ +-- | +-- | +-- + +-- Reference +-- ports = get_real_port_states(pos): gets if inputs are powered from outside +-- newport = merge_port_states(state1, state2): just does result = state1 or state2 for every port +-- set_port(pos, rule, state): activates/deactivates the mesecons according to the port states +-- set_port_states(pos, ports): Applies new port states to a LuaController at pos +-- run(pos): runs the code in the controller at pos +-- reset_meta(pos, code, errmsg): performs a software-reset, installs new code and prints error messages +-- resetn(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.env to it. + +local BASENAME = "mesecons_luacontroller:luacontroller" + +local rules = { + a = {x = -1, y = 0, z = 0, name="A"}, + b = {x = 0, y = 0, z = 1, name="B"}, + c = {x = 1, y = 0, z = 0, name="C"}, + d = {x = 0, y = 0, z = -1, name="D"}, +} + + +------------------ +-- Action stuff -- +------------------ +-- These helpers are required to set the port states of the luacontroller + +local function update_real_port_states(pos, rule_name, new_state) + local meta = minetest.get_meta(pos) + if rule_name == nil then + meta:set_int("real_portstates", 1) + return + end + local n = meta:get_int("real_portstates") - 1 + local L = {} + for i = 1, 4 do + L[i] = n % 2 + n = math.floor(n / 2) + end + -- (0,-1) (-1,0) (1,0) (0,1) + local pos_to_side = { 4, 1, nil, 3, 2 } + if rule_name.x == nil then + for _, rname in ipairs(rule_name) do + local port = pos_to_side[rname.x + (2 * rname.z) + 3] + L[port] = (newstate == "on") and 1 or 0 + end + else + local port = pos_to_side[rule_name.x + (2 * rule_name.z) + 3] + L[port] = (new_state == "on") and 1 or 0 + end + meta:set_int("real_portstates", + 1 + + 1 * L[1] + + 2 * L[2] + + 4 * L[3] + + 8 * L[4]) +end + + +local port_names = {"a", "b", "c", "d"} + +local function get_real_port_states(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 + for _, name in ipairs(port_names) do + L[name] = ((n % 2) == 1) + n = math.floor(n / 2) + end + return L +end + + +local function merge_port_states(ports, vports) + return { + a = ports.a or vports.a, + b = ports.b or vports.b, + c = ports.c or vports.c, + d = ports.d or vports.d, + } +end + +local function generate_name(ports) + 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 function set_port(pos, rule, state) + if state then + mesecon.receptor_on(pos, {rule}) + else + mesecon.receptor_off(pos, {rule}) + end +end + + +local function clean_port_states(ports) + ports.a = ports.a and true or false + ports.b = ports.b and true or false + ports.c = ports.c and true or false + ports.d = ports.d and true or false +end + + +local function set_port_states(pos, ports) + local node = minetest.get_node(pos) + local name = node.name + clean_port_states(ports) + local vports = minetest.registered_nodes[name].virtual_portstates + local new_name = generate_name(ports) + + if name ~= new_name and vports then + -- Problem: + -- We need to place the new node first so that when turning + -- off some port, it won't stay on because the rules indicate + -- there is an onstate output port there. + -- When turning the output off then, it will however cause feedback + -- so that the luacontroller will receive an "off" event by turning + -- its output off. + -- Solution / Workaround: + -- Remember which output was turned off and ignore next "off" event. + local meta = minetest.get_meta(pos) + local ign = minetest.deserialize(meta:get_string("ignore_offevents")) or {} + if ports.a and not vports.a and not mesecon.is_powered(pos, rules.a) then ign.A = true end + if ports.b and not vports.b and not mesecon.is_powered(pos, rules.b) then ign.B = true end + if ports.c and not vports.c and not mesecon.is_powered(pos, rules.c) then ign.C = true end + if ports.d and not vports.d and not mesecon.is_powered(pos, rules.d) then ign.D = true end + meta:set_string("ignore_offevents", minetest.serialize(ign)) + + minetest.swap_node(pos, {name = new_name, param2 = node.param2}) + + if ports.a ~= vports.a then set_port(pos, rules.a, ports.a) end + if ports.b ~= vports.b then set_port(pos, rules.b, ports.b) end + if ports.c ~= vports.c then set_port(pos, rules.c, ports.c) end + if ports.d ~= vports.d then set_port(pos, rules.d, ports.d) end + end +end + + +----------------- +-- Overheating -- +----------------- + +local function overheat_off(pos) + mesecon.receptor_off(pos, mesecon.rules.flat) +end + + +local function overheat(pos, meta) + if mesecon.do_overheat(pos) then -- If too hot + local node = minetest.get_node(pos) + node.name = BASENAME.."_burnt" + minetest.swap_node(pos, node) + -- Wait for pending operations + minetest.after(0.2, overheat_off, pos) + return true + end +end + +------------------------ +-- Ignored off events -- +------------------------ + +local function ignore_event(event, meta) + if event.type ~= "off" then return false end + local ignore_offevents = minetest.deserialize(meta:get_string("ignore_offevents")) or {} + if ignore_offevents[event.pin.name] then + ignore_offevents[event.pin.name] = nil + meta:set_string("ignore_offevents", minetest.serialize(ignore_offevents)) + return true + end +end + +------------------------- +-- Parsing and running -- +------------------------- + +local function safe_print(param) + print(dump(param)) +end + +local function remove_functions(x) + local tp = type(x) + if tp == "table" then + for key, value in pairs(x) do + local key_t, val_t = type(key), type(value) + if key_t == "function" or val_t == "function" then + x[key] = nil + else + if key_t == "table" then + remove_functions(key) + end + if val_t == "table" then + remove_functions(value) + end + end + end + elseif tp == "function" then + return nil + end + return x +end + +local function get_interrupt(pos) + -- iid = interrupt id + local function interrupt(time, iid) + if type(time) ~= "number" then return end + local luac_id = minetest.get_meta(pos):get_int("luac_id") + mesecon.queue:add_action(pos, "lc_interrupt", {luac_id, iid}, time, iid, 1) + end + return interrupt +end + + +local function get_digiline_send(pos) + if not digiline then return end + return function(channel, msg) + minetest.after(0, function() + digiline:receptor_send(pos, digiline.rules.default, channel, msg) + end) + end +end + + +local safe_globals = { + "assert", "error", "ipairs", "next", "pairs", "pcall", "select", + "tonumber", "tostring", "type", "unpack", "_VERSION", "xpcall", +} +local function create_environment(pos, mem, event) + -- Gather variables for the environment + local vports = minetest.registered_nodes[minetest.get_node(pos).name].virtual_portstates + local vports_copy = {} + for k, v in pairs(vports) do vports_copy[k] = v end + local rports = get_real_port_states(pos) + + -- Create new library tables on each call to prevent one LuaController + -- from breaking a library and messing up other LuaControllers. + local env = { + pin = merge_port_states(vports, rports), + port = vports_copy, + event = event, + mem = mem, + heat = minetest.get_meta(pos):get_int("heat"), + heat_max = mesecon.setting("overheat_max", 20), + print = safe_print, + interrupt = get_interrupt(pos), + digiline_send = get_digiline_send(pos), + string = { + byte = string.byte, + char = string.char, + format = string.format, + gsub = string.gsub, + len = string.len, + lower = string.lower, + upper = string.upper, + 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 = { + concat = table.concat, + insert = table.insert, + maxn = table.maxn, + remove = table.remove, + sort = table.sort, + }, + os = { + clock = os.clock, + difftime = os.difftime, + time = os.time, + }, + } + env._G = env + + for _, name in pairs(safe_globals) do + env[name] = _G[name] + end + + return env +end + + +local function timeout() + debug.sethook() -- Clear hook + error("Code timed out!") +end + + +local function code_prohibited(code) + -- LuaJIT doesn't increment the instruction counter when running + -- loops, so we have to sanitize inputs if we're using LuaJIT. + if not jit then + return false + end + local prohibited = {"while", "for", "do", "repeat", "until", "goto"} + code = " "..code.." " + for _, p in ipairs(prohibited) do + if string.find(code, "[^%w_]"..p.."[^%w_]") then + return "Prohibited command: "..p + end + end +end + + +local function create_sandbox(code, env) + if code:byte(1) == 27 then + return nil, "Binary code prohibited." + end + local f, msg = loadstring(code) + if not f then return nil, msg end + setfenv(f, env) + + return function(...) + debug.sethook(timeout, "", 10000) + local ok, ret = pcall(f, ...) + debug.sethook() -- Clear hook + if not ok then error(ret) end + return ret + end +end + + +local function load_memory(meta) + return minetest.deserialize(meta:get_string("lc_memory")) or {} +end + + +local function save_memory(meta, mem) + meta:set_string("lc_memory", + minetest.serialize( + remove_functions(mem) + ) + ) +end + + +local function run(pos, event) + local meta = minetest.get_meta(pos) + if overheat(pos) then return end + if ignore_event(event, meta) then return end + + -- Load code & mem from meta + local mem = load_memory(meta) + local code = meta:get_string("code") + + local err = code_prohibited(code) + if err then return err end + + -- Create environment + local env = create_environment(pos, mem, event) + + -- Create the sandbox and execute code + local f, msg = create_sandbox(code, env) + if not f then return msg end + local success, msg = pcall(f) + if not success then return msg end + if type(env.port) ~= "table" then + return "Ports set are invalid." + end + + save_memory(meta, env.mem) + + -- Actually set the ports + set_port_states(pos, env.port) +end + +mesecon.queue:add_function("lc_interrupt", function (pos, luac_id, iid) + -- There is no luacontroller anymore / it has been reprogrammed / replaced + if (minetest.get_meta(pos):get_int("luac_id") ~= luac_id) then return end + run(pos, {type="interrupt", iid = iid}) +end) + +local function reset_meta(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, 65535)) +end + +local function reset(pos) + set_port_states(pos, {a=false, b=false, c=false, d=false}) +end + + +----------------------- +-- Node Registration -- +----------------------- + +local output_rules = {} +local input_rules = {} + +local 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 + } +} + +local selection_box = { + 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) + run(pos, {type = "digiline", channel = channel, msg = msg}) + end + } +} +local function on_receive_fields(pos, form_name, fields) + if not fields.program then + return + end + reset(pos) + reset_meta(pos, fields.code) + local err = run(pos, {type="program"}) + if err then + print(err) + reset_meta(pos, fields.code, err) + end +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 node_name = 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 + + local groups + 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, _, rule_name, new_state) + update_real_port_states(pos, rule_name, new_state) + run(pos, {type=new_state, pin=rule_name}) + end, + }, + receptor = { + state = mesecon.state.on, + rules = output_rules[cid] + } + } + + minetest.register_node(node_name, { + 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 = selection_box, + node_box = node_box, + on_construct = reset_meta, + on_receive_fields = on_receive_fields, + sounds = default.node_sound_stone_defaults(), + mesecons = mesecons, + digiline = digiline, + -- Virtual portstates are the ports that + -- the node shows as powered up (light up). + virtual_portstates = { + a = a == 1, + b = b == 1, + c = c == 1, + d = d == 1, + }, + after_dig_node = function (pos, node) + mesecon.receptor_off(pos, output_rules) + end, + is_luacontroller = true, + }) +end +end +end +end + +------------------------------ +-- Overheated LuaController -- +------------------------------ + +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 = selection_box, + node_box = node_box, + on_construct = reset_meta, + on_receive_fields = on_receive_fields, + sounds = default.node_sound_stone_defaults(), + virtual_portstates = {a = false, b = false, c = false, d = false}, + mesecons = { + effector = { + rules = mesecon.rules.flat, + action_change = function(pos, _, rule_name, new_state) + update_real_port_states(pos, rule_name, new_state) + end, + }, + }, +}) + +------------------------ +-- 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 100644 index 0000000..40e316c 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 100644 index 0000000..157507f 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 100644 index 0000000..a187e8e 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 100644 index 0000000..738ba96 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 100644 index 0000000..abe0fe6 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 100644 index 0000000..cc10170 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 100644 index 0000000..d1a17af 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 100644 index 0000000..3128230 Binary files /dev/null and b/mods/mesecons/mesecons_luacontroller/textures/jeija_luacontroller_top.png differ diff --git a/mods/mesecons/mesecons_materials/depends.txt b/mods/mesecons/mesecons_materials/depends.txt new file mode 100644 index 0000000..acaa924 --- /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 100644 index 0000000..5ebf605 --- /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 = "group: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 = { + {"group:sand", "group:sand"}, + {"group:sand", "default:steel_ingot"}, + } +}) diff --git a/mods/mesecons/mesecons_microcontroller/MeseconMicro.odt b/mods/mesecons/mesecons_microcontroller/MeseconMicro.odt new file mode 100644 index 0000000..be82d1b 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 100644 index 0000000..7ab7484 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..7e290a3 --- /dev/null +++ b/mods/mesecons/mesecons_microcontroller/init.lua @@ -0,0 +1,692 @@ +EEPROM_SIZE = 255 + +local microc_rules = {} + +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 +microc_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 = microc_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) + local 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 + local command, params + 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 + local r + 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 + local 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 not params 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 + local new_eeprom + 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 + local s + 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 + local s + 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 + local s + 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 + local 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) + + local result + if cond == "0" then result = false + elseif cond == "1" then result = true end + if not result 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 + local s + 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 + local addr, endi = yc_parse_get_eeprom_param(cond, i+1) + local 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 not number then return end + return eeprom:sub(number, number) +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 = microc_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 = microc_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 = microc_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 = microc_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 + 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 + 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 + local name = minetest.get_node(pos).name + local b, a = string.find(name, ":microcontroller") + if a == nil then return nil end + a = a + 1 + + local 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 100644 index 0000000..64526cf 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 100644 index 0000000..1f7b451 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 100644 index 0000000..399cc2c 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 100644 index 0000000..506389c 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 100644 index 0000000..3a9161e 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 100644 index 0000000..b367644 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 100644 index 0000000..438c934 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 100644 index 0000000..a596cf8 --- /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 100644 index 0000000..7790658 --- /dev/null +++ b/mods/mesecons/mesecons_movestones/init.lua @@ -0,0 +1,226 @@ +-- 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.on_dignode(pos, node) + 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) + + local maxpush = mesecon.setting("movestone_max_push", 50) + 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, maxpush) + end + local nn = {name="mesecons_movestones:movestone"} + minetest.add_node(pos, nn) + self.object:remove() + mesecon.on_placenode(pos, nn) + return + end + + local success, stack, oldstack = + mesecon.mvps_push(pos, direction, maxpush) + if not success then -- Too large stack/stopper in the way + local nn = {name="mesecons_movestones:movestone"} + minetest.add_node(pos, nn) + self.object:remove() + mesecon.on_placenode(pos, nn) + 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.on_dignode(pos, node) + 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, + mesecon.setting("movestone_max_push", 50)) + --STICKY + mesecon.mvps_pull_all(pos, self.lastdir) + end + local nn = {name="mesecons_movestones:sticky_movestone"} + minetest.add_node(pos, nn) + self.object:remove() + mesecon.on_placenode(pos, nn) + return + end + + local success, stack, oldstack = + mesecon.mvps_push(pos, direction, mesecon.setting("movestone_max_push", 50)) + if not success then -- Too large stack/stopper in the way + local nn = {name="mesecons_movestones:sticky_movestone"} + minetest.add_node(pos, nn) + self.object:remove() + mesecon.on_placenode(pos, nn) + 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 100644 index 0000000..358c357 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 100644 index 0000000..de753ef 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 100644 index 0000000..8953cf1 Binary files /dev/null and b/mods/mesecons/mesecons_movestones/textures/jeija_sticky_movestone.png differ diff --git a/mods/mesecons/mesecons_mvps/depends.txt b/mods/mesecons/mesecons_mvps/depends.txt new file mode 100644 index 0000000..acaa924 --- /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 100644 index 0000000..bcbda17 --- /dev/null +++ b/mods/mesecons/mesecons_mvps/init.lua @@ -0,0 +1,235 @@ +--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 + mesecon.on_placenode(n.pos, minetest.get_node(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) + end + + -- add nodes + for _, n in ipairs(nodes) do + local 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) + local np = mesecon.addPosRule(pos, dir) + local 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 = lpos2, 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_noteblock/depends.txt b/mods/mesecons/mesecons_noteblock/depends.txt new file mode 100644 index 0000000..acaa924 --- /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 100644 index 0000000..d63b93e --- /dev/null +++ b/mods/mesecons/mesecons_noteblock/init.lua @@ -0,0 +1,78 @@ +minetest.register_node("mesecons_noteblock:noteblock", { + description = "Noteblock", + tiles = {"mesecons_noteblock.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + 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 100644 index 0000000..5668a8a 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 100644 index 0000000..4cd2dcc 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 100644 index 0000000..621a6b5 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 100644 index 0000000..e235978 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 100644 index 0000000..d33027a 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 100644 index 0000000..50ba835 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 100644 index 0000000..f1227ba 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 100644 index 0000000..817728e 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 100644 index 0000000..c91d1a6 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 100644 index 0000000..3f1eaea 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 100644 index 0000000..9f13797 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 100644 index 0000000..d2a90dd 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 100644 index 0000000..6177b8c 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 100644 index 0000000..d05a870 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 100644 index 0000000..108e89e 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 100644 index 0000000..21aecfa 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 100644 index 0000000..25d7b78 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 100644 index 0000000..d13e61b Binary files /dev/null and b/mods/mesecons/mesecons_noteblock/textures/mesecons_noteblock.png differ diff --git a/mods/mesecons/mesecons_pistons/depends.txt b/mods/mesecons/mesecons_pistons/depends.txt new file mode 100644 index 0000000..01f085b --- /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 100644 index 0000000..71e63e7 --- /dev/null +++ b/mods/mesecons/mesecons_pistons/init.lua @@ -0,0 +1,760 @@ +-- 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) + local pistonspec = minetest.registered_nodes[node.name].mesecons_piston + local dir = piston_get_direction(pistonspec.dir, node) + local pusherpos = mesecon.addPosRule(pos, dir) + local pushername = minetest.get_node(pusherpos).name + + -- make sure there actually is a pusher (for compatibility reasons mainly) + if pushername ~= pistonspec.pusher then + return + end + + 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 maxpush = mesecon.setting("piston_max_push", 15) + local success, stack, oldstack = mesecon.mvps_push(np, dir, maxpush) + 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 + local dir = piston_get_direction(pistonspec.dir, node) + local pullpos = mesecon.addPosRule(pos, dir) + local 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 100644 index 0000000..e234ad9 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 100644 index 0000000..feb9f04 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 100644 index 0000000..6a57dce 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 100644 index 0000000..5a3af9b 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 100644 index 0000000..215dd73 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 100644 index 0000000..0ade67e 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 100644 index 0000000..fe87943 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 100644 index 0000000..87c4e81 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 100644 index 0000000..8ec9dc6 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 100644 index 0000000..e38b4e6 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 100644 index 0000000..bc5495b 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 100644 index 0000000..32ee32f 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 100644 index 0000000..72f04e9 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 100644 index 0000000..176463c 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 100644 index 0000000..5c8bace 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..e734541 --- /dev/null +++ b/mods/mesecons/mesecons_powerplant/init.lua @@ -0,0 +1,95 @@ +-- 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", + walkable = false, + groups = {dig_immediate=3, mesecon = 2}, + light_source = LIGHT_MAX-9, + description="Power Plant", + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, -0.5+0.7, 0.3}, + }, + sounds = default.node_sound_leaves_defaults(), + mesecons = {receptor = { + state = mesecon.state.on + }} +}) + +minetest.register_craft({ + output = "mesecons_powerplant:power_plant 1", + recipe = { + {"mesecons_blinkyplant:blinky_plant_off"}, + {"mesecons_blinkyplant:blinky_plant_off"}, + {""}, + } +}) + + +minetest.register_node("mesecons_powerplant:player_plant_off", { + drawtype = "plantlike", + visual_scale = 1, + tiles = {"jeija_power_plant.png"}, + inventory_image = "jeija_power_plant.png", + paramtype = "light", + walkable = false, + groups = {dig_immediate=3, mesecon = 2}, + light_source = LIGHT_MAX-9, + description="player Plant off", + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, -0.5+0.7, 0.3}, + }, + sounds = default.node_sound_leaves_defaults(), + mesecons = {receptor = { + state = mesecon.state.off + }} +}) + +minetest.register_node("mesecons_powerplant:player_plant_on", { + drawtype = "plantlike", + visual_scale = 1, + tiles = {"jeija_power_plant.png"}, + inventory_image = "jeija_power_plant.png", + paramtype = "light", + walkable = false, + groups = {dig_immediate=3, mesecon = 2}, + light_source = LIGHT_MAX-9, + description="player Plant on", + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, -0.5+0.7, 0.3}, + }, + sounds = default.node_sound_leaves_defaults(), + mesecons = {receptor = { + state = mesecon.state.on + }} +}) + +minetest.register_abm( + {nodenames = {"mesecons_solarpanel:solar_panel_off"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + + + if l == true then + minetest.swap_node(pos, {name = "mesecons_powerplant:player_plant_on"}) + end + end, +}) + +--minetest.register_abm( +-- {nodenames = {"mesecons_powerplant:player_plant_on"}, +-- interval = 20, +-- chance = 1, +-- action = function(pos, node, active_object_count, active_object_count_wider) +-- minetest.swap_node(pos, {name = "mesecons_powerplant:player_plant_off", param2=node.param2}) +-- mesecon.receptor_off(pos) +-- end, +--}) \ No newline at end of file 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 100644 index 0000000..edc8891 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..0fda1f3 --- /dev/null +++ b/mods/mesecons/mesecons_pressureplates/init.lua @@ -0,0 +1,94 @@ +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 basename = minetest.registered_nodes[node.name].pressureplate_basename + + -- 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 basename 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 == basename .. "_on" then + minetest.add_node(pos, {name = basename .. "_off"}) + mesecon.receptor_off(pos, mesecon.rules.pplate) + 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 = basename .. "_on"}) + mesecon.receptor_on(pos, mesecon.rules.pplate ) + 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(basename, description, textures_off, textures_on, image_w, image_i, recipe) + mesecon.register_node(basename, { + drawtype = "nodebox", + inventory_image = image_i, + wield_image = image_w, + paramtype = "light", + description = description, + pressureplate_basename = basename, + on_timer = pp_on_timer, + on_construct = function(pos) + minetest.get_node_timer(pos):start(mesecon.setting("pplate_interval", 0.1)) + end, + },{ + mesecons = {receptor = { state = mesecon.state.off, rules = mesecon.rules.pplate }}, + node_box = pp_box_off, + selection_box = pp_box_off, + groups = {snappy = 2, oddly_breakable_by_hand = 3}, + tiles = textures_off + },{ + mesecons = {receptor = { state = mesecon.state.on, rules = mesecon.rules.pplate }}, + node_box = pp_box_on, + selection_box = pp_box_on, + groups = {snappy = 2, oddly_breakable_by_hand = 3, not_in_creative_inventory = 1}, + tiles = textures_on + }) + + minetest.register_craft({ + output = basename .. "_off", + recipe = recipe, + }) +end + +mesecon.register_pressure_plate( + "mesecons_pressureplates:pressure_plate_wood", + "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", + "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 100644 index 0000000..bfe5a1d 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 100644 index 0000000..46140da 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 100644 index 0000000..2ad9acc 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 100644 index 0000000..dc64931 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 100644 index 0000000..51add95 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 100644 index 0000000..c533567 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 100644 index 0000000..36dacd0 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 100644 index 0000000..ca98757 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 100644 index 0000000..665ae97 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 100644 index 0000000..e1a7d8e 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 100644 index 0000000..358f2ea 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 100644 index 0000000..50b321d 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..0136309 --- /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 100644 index 0000000..1917b7c 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 100644 index 0000000..c715d7f 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 100644 index 0000000..1917b7c 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 100644 index 0000000..c715d7f 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..b5c79e7 --- /dev/null +++ b/mods/mesecons/mesecons_receiver/init.lua @@ -0,0 +1,158 @@ +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, -1/2 , -.5 , 2/32, 0 , -.5002+3/32 }, -- the vertical wire bit + { -2/32, -1/2 , -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" + }} +}) + +function mesecon.receiver_get_pos_from_rcpt(pos, param2) + local rules = {{x = 2, y = 0, z = 0}} + 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 + local 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 + local rules = { {x = 2, y = 0, z = 0}, + {x =-2, y = 0, z = 0}, + {x = 0, y = 0, z = 2}, + {x = 0, y = 0, z =-2}} + local i = 1 + while rules[i] ~= nil do + local 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 100644 index 0000000..b95903e 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 100644 index 0000000..d0b7006 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 100644 index 0000000..aed3008 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 100644 index 0000000..0916736 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 100644 index 0000000..1fb2b3a 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 100644 index 0000000..087c0b4 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 100644 index 0000000..ae50106 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 100644 index 0000000..5b48cac 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 100644 index 0000000..bc7b062 --- /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 100644 index 0000000..bc5a408 --- /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 100644 index 0000000..a7b0f75 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..2b3c3ee --- /dev/null +++ b/mods/mesecons/mesecons_switch/init.lua @@ -0,0 +1,35 @@ +-- MESECON_SWITCH + +mesecon.register_node("mesecons_switch:mesecon_switch", { + paramtype2="facedir", + description="Switch", + sounds = default.node_sound_stone_defaults(), + on_punch = function (pos, node) + if(mesecon.flipstate(pos, node) == "on") then + mesecon.receptor_on(pos) + else + mesecon.receptor_off(pos) + end + minetest.sound_play("mesecons_switch", {pos=pos}) + end +},{ + groups = {dig_immediate=2}, + 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"}, + mesecons = {receptor = { state = mesecon.state.off }} +},{ + groups = {dig_immediate=2, not_in_creative_inventory=1}, + 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"}, + mesecons = {receptor = { state = mesecon.state.on }} +}) + +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 100644 index 0000000..53d45c1 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 100644 index 0000000..acaa924 --- /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 100644 index 0000000..91f8e65 --- /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 100644 index 0000000..537920c 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 100644 index 0000000..3934e6e 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 100644 index 0000000..ecb2951 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 100644 index 0000000..a93dcc2 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 100644 index 0000000..24fe201 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 100644 index 0000000..fe7dfd2 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 100644 index 0000000..19c798c --- /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 100644 index 0000000..bd71871 --- /dev/null +++ b/mods/mesecons/mesecons_walllever/init.lua @@ -0,0 +1,75 @@ +-- WALL LEVER +-- Basically a switch that can be attached to a wall +-- Powers the block 2 nodes behind (using a receiver) +mesecon.register_node("mesecons_walllever:wall_lever", { + description="Lever", + drawtype = "nodebox", + 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 }, + }, + sounds = default.node_sound_wood_defaults(), + on_punch = function (pos, node) + if(mesecon.flipstate(pos, node) == "on") then + mesecon.receptor_on(pos, mesecon.rules.buttonlike_get(node)) + else + mesecon.receptor_off(pos, mesecon.rules.buttonlike_get(node)) + end + minetest.sound_play("mesecons_lever", {pos=pos}) + end +},{ + 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", + }, + 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 + { -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. + }, + mesecons = {receptor = { + rules = mesecon.rules.buttonlike_get, + state = mesecon.state.off + }}, + groups = {dig_immediate = 2, mesecon_needs_receiver = 1} +},{ + 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", + }, + 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 + { -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. + }, + mesecons = {receptor = { + rules = mesecon.rules.buttonlike_get, + state = mesecon.state.on + }}, + groups = {dig_immediate = 2, mesecon_needs_receiver = 1, not_in_creative_inventory = 1} +}) + +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 100644 index 0000000..53d45c1 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 100644 index 0000000..9047e70 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 100644 index 0000000..041da96 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 100644 index 0000000..474f8c1 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 100644 index 0000000..01cbc24 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 100644 index 0000000..5864f26 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 100644 index 0000000..50348d3 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 100644 index 0000000..31161ec 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 100644 index 0000000..33d91f5 --- /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/api.lua b/mods/mobs/api.lua new file mode 100644 index 0000000..0a37448 --- /dev/null +++ b/mods/mobs/api.lua @@ -0,0 +1,4581 @@ + +-- Mobs Api + +mobs = {} +mobs.mod = "redo" +mobs.version = "20180126" + + +-- Intllib +local MP = minetest.get_modpath(minetest.get_current_modname()) +local S, NS = dofile(MP .. "/intllib.lua") +mobs.intllib = S + + +-- CMI support check +local use_cmi = minetest.global_exists("cmi") + + +-- Invisibility mod check +mobs.invis = {} +if minetest.global_exists("invisibility") then + mobs.invis = invisibility +end + + +-- creative check +local creative_mode_cache = minetest.settings:get_bool("creative_mode") +function mobs.is_creative(name) + return creative_mode_cache or minetest.check_player_privs(name, {creative = true}) +end + + +-- localize math functions +local pi = math.pi +local square = math.sqrt +local sin = math.sin +local cos = math.cos +local abs = math.abs +local min = math.min +local max = math.max +local atann = math.atan +local random = math.random +local floor = math.floor +local atan = function(x) + if not x or x ~= x then + --error("atan bassed NaN") + return 0 + else + return atann(x) + end +end + + +-- Load settings +local damage_enabled = minetest.settings:get_bool("enable_damage") +local mobs_spawn = minetest.settings:get_bool("mobs_spawn") ~= false +local peaceful_only = minetest.settings:get_bool("only_peaceful_mobs") +local disable_blood = minetest.settings:get_bool("mobs_disable_blood") +local mobs_drop_items = minetest.settings:get_bool("mobs_drop_items") ~= false +local mobs_griefing = minetest.settings:get_bool("mobs_griefing") ~= false +local creative = minetest.settings:get_bool("creative_mode") +local spawn_protected = minetest.settings:get_bool("mobs_spawn_protected") ~= false +local remove_far = minetest.settings:get_bool("remove_far_mobs") +local difficulty = tonumber(minetest.settings:get("mob_difficulty")) or 1.0 +local show_health = minetest.settings:get_bool("mob_show_health") ~= false +local max_per_block = tonumber(minetest.settings:get("max_objects_per_block") or 99) +local mob_chance_multiplier = tonumber(minetest.settings:get("mob_chance_multiplier") or 1) + +-- Peaceful mode message so players will know there are no monsters +if peaceful_only then + minetest.register_on_joinplayer(function(player) + minetest.chat_send_player(player:get_player_name(), + S("** Peaceful Mode Active - No Monsters Will Spawn")) + end) +end + +-- calculate aoc range for mob count +local aosrb = tonumber(minetest.settings:get("active_object_send_range_blocks")) +local abr = tonumber(minetest.settings:get("active_block_range")) +local aoc_range = max(aosrb, abr) * 16 + +-- pathfinding settings +local enable_pathfinding = true +local stuck_timeout = 3 -- how long before mob gets stuck in place and starts searching +local stuck_path_timeout = 10 -- how long will mob follow path before giving up + +-- default nodes +local node_fire = "fire:basic_flame" +local node_permanent_flame = "fire:permanent_flame" +local node_ice = "default:ice" +local node_snowblock = "default:snowblock" +local node_snow = "default:snow" +mobs.fallback_node = minetest.registered_aliases["mapgen_dirt"] or "default:dirt" + + +-- play sound +local mob_sound = function(self, sound) + + if sound then + minetest.sound_play(sound, { + object = self.object, + gain = 1.0, + max_hear_distance = self.sounds.distance + }) + end +end + + +-- attack player/mob +local do_attack = function(self, player) + + if self.state == "attack" then + return + end + + self.attack = player + self.state = "attack" + + if random(0, 100) < 90 then + mob_sound(self, self.sounds.war_cry) + end +end + + +-- move mob in facing direction +local set_velocity = function(self, v) + + local yaw = (self.object:get_yaw() or 0) + self.rotate + + self.object:setvelocity({ + x = sin(yaw) * -v, + y = self.object:getvelocity().y, + z = cos(yaw) * v + }) +end + + +-- calculate mob velocity +local get_velocity = function(self) + + local v = self.object:getvelocity() + + return (v.x * v.x + v.z * v.z) ^ 0.5 +end + + +-- set and return valid yaw +local set_yaw = function(self, yaw) + + if not yaw or yaw ~= yaw then + yaw = 0 + end + + self:setyaw(yaw) + + return yaw +end + + +-- set defined animation +local set_animation = function(self, anim) + + if not self.animation + or not anim then return end + + self.animation.current = self.animation.current or "" + + if anim == self.animation.current + or not self.animation[anim .. "_start"] + or not self.animation[anim .. "_end"] then + return + end + + self.animation.current = anim + + self.object:set_animation({ + x = self.animation[anim .. "_start"], + y = self.animation[anim .. "_end"]}, + self.animation[anim .. "_speed"] or self.animation.speed_normal or 15, + 0, self.animation[anim .. "_loop"] ~= false) +end + + +-- above function exported for mount.lua +function mobs:set_animation(self, anim) + set_animation(self, anim) +end + + +-- calculate distance +local get_distance = function(a, b) + + local x, y, z = a.x - b.x, a.y - b.y, a.z - b.z + + return square(x * x + y * y + z * z) +end + + +-- check line of sight (BrunoMine) +local line_of_sight = function(self, pos1, pos2, stepsize) + + stepsize = stepsize or 1 + + local s, pos = minetest.line_of_sight(pos1, pos2, stepsize) + + -- normal walking and flying mobs can see you through air + if s == true then + return true + end + + -- New pos1 to be analyzed + local npos1 = {x = pos1.x, y = pos1.y, z = pos1.z} + + local r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + -- Checks the return + if r == true then return true end + + -- Nodename found + local nn = minetest.get_node(pos).name + + -- Target Distance (td) to travel + local td = get_distance(pos1, pos2) + + -- Actual Distance (ad) traveled + local ad = 0 + + -- It continues to advance in the line of sight in search of a real + -- obstruction which counts as 'normal' nodebox. + while minetest.registered_nodes[nn] + and (minetest.registered_nodes[nn].walkable == false + or minetest.registered_nodes[nn].drawtype == "nodebox") do + + -- Check if you can still move forward + if td < ad + stepsize then + return true -- Reached the target + end + + -- Moves the analyzed pos + local d = get_distance(pos1, pos2) + + npos1.x = ((pos2.x - pos1.x) / d * stepsize) + pos1.x + npos1.y = ((pos2.y - pos1.y) / d * stepsize) + pos1.y + npos1.z = ((pos2.z - pos1.z) / d * stepsize) + pos1.z + + -- NaN checks + if d == 0 + or npos1.x ~= npos1.x + or npos1.y ~= npos1.y + or npos1.z ~= npos1.z then + return false + end + + ad = ad + stepsize + + -- scan again + r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + if r == true then return true end + + -- New Nodename found + nn = minetest.get_node(pos).name + + end + + return false +end + + +-- are we flying in what we are suppose to? (taikedz) +local flight_check = function(self, pos_w) + + local nod = self.standing_in + local def = minetest.registered_nodes[nod] + + if not def then return false end -- nil check + + if type(self.fly_in) == "string" + and nod == self.fly_in then + + return true + + elseif type(self.fly_in) == "table" then + + for _,fly_in in pairs(self.fly_in) do + + if nod == fly_in then + + return true + end + end + end + + -- stops mobs getting stuck inside stairs and plantlike nodes + if def.drawtype ~= "airlike" + and def.drawtype ~= "liquid" + and def.drawtype ~= "flowingliquid" then + return true + end + + return false +end + + +-- custom particle effects +local effect = function(pos, amount, texture, min_size, max_size, radius, gravity, glow) + + radius = radius or 2 + min_size = min_size or 0.5 + max_size = max_size or 1 + gravity = gravity or -10 + glow = glow or 0 + + minetest.add_particlespawner({ + amount = amount, + time = 0.25, + minpos = pos, + maxpos = pos, + minvel = {x = -radius, y = -radius, z = -radius}, + maxvel = {x = radius, y = radius, z = radius}, + minacc = {x = 0, y = gravity, z = 0}, + maxacc = {x = 0, y = gravity, z = 0}, + minexptime = 0.1, + maxexptime = 1, + minsize = min_size, + maxsize = max_size, + texture = texture, + glow = glow, + }) +end + + +-- update nametag colour +local update_tag = function(self) + + local col = "#00FF00" + local qua = self.hp_max / 4 + + if self.health <= floor(qua * 3) then + col = "#FFFF00" + end + + if self.health <= floor(qua * 2) then + col = "#FF6600" + end + + if self.health <= floor(qua) then + col = "#FF0000" + end + + self.object:set_properties({ + nametag = self.nametag, + nametag_color = col + }) + +end + + +-- drop items +local item_drop = function(self, cooked) + + -- no drops if disabled by setting + if not mobs_drop_items then return end + + -- no drops for child mobs + if self.child then return end + + local obj, item, num + local pos = self.object:get_pos() + + self.drops = self.drops or {} -- nil check + + for n = 1, #self.drops do + + if random(1, self.drops[n].chance) == 1 then + + num = random(self.drops[n].min or 1, self.drops[n].max or 1) + item = self.drops[n].name + + -- cook items when true + if cooked then + + local output = minetest.get_craft_result({ + method = "cooking", width = 1, items = {item}}) + + if output and output.item and not output.item:is_empty() then + item = output.item:get_name() + end + end + + -- add item if it exists + obj = minetest.add_item(pos, ItemStack(item .. " " .. num)) + + if obj and obj:get_luaentity() then + + obj:setvelocity({ + x = random(-10, 10) / 9, + y = 6, + z = random(-10, 10) / 9, + }) + elseif obj then + obj:remove() -- item does not exist + end + end + end + + self.drops = {} +end + + +-- check if mob is dead or only hurt +local check_for_death = function(self, cause, cmi_cause) + + -- has health actually changed? + if self.health == self.old_health and self.health > 0 then + return + end + + self.old_health = self.health + + -- still got some health? play hurt sound + if self.health > 0 then + + mob_sound(self, self.sounds.damage) + + -- make sure health isn't higher than max + if self.health > self.hp_max then + self.health = self.hp_max + end + + -- backup nametag so we can show health stats + if not self.nametag2 then + self.nametag2 = self.nametag or "" + end + + if show_health + and (cmi_cause and cmi_cause.type == "punch") then + + self.htimer = 2 + self.nametag = "β™₯ " .. self.health .. " / " .. self.hp_max + + update_tag(self) + end + + return false + end + + -- dropped cooked item if mob died in lava + if cause == "lava" then + item_drop(self, true) + else + item_drop(self, nil) + end + + mob_sound(self, self.sounds.death) + + local pos = self.object:get_pos() + + -- execute custom death function + if self.on_die then + + self.on_die(self, pos) + + if use_cmi then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + + return true + end + + -- default death function and die animation (if defined) + if self.animation + and self.animation.die_start + and self.animation.die_end then + + local frames = self.animation.die_end - self.animation.die_start + local speed = self.animation.die_speed or 15 + local length = max(frames / speed, 0) + + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.passive = true + self.state = "die" + set_velocity(self, 0) + set_animation(self, "die") + + minetest.after(length, function(self) + + if use_cmi then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + end, self) + else + + if use_cmi then + cmi.notify_die(self.object, cmi_cause) + end + + self.object:remove() + end + + effect(pos, 20, "tnt_smoke.png") + + return true +end + + +-- check if within physical map limits (-30911 to 30927) +local within_limits = function(pos, radius) + + if (pos.x - radius) > -30913 + and (pos.x + radius) < 30928 + and (pos.y - radius) > -30913 + and (pos.y + radius) < 30928 + and (pos.z - radius) > -30913 + and (pos.z + radius) < 30928 then + return true -- within limits + end + + return false -- beyond limits +end + + +-- is mob facing a cliff +local is_at_cliff = function(self) + + if self.fear_height == 0 then -- 0 for no falling protection! + return false + end + + local yaw = self.object:get_yaw() + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + local pos = self.object:get_pos() + local ypos = pos.y + self.collisionbox[2] -- just above floor + + if minetest.line_of_sight( + {x = pos.x + dir_x, y = ypos, z = pos.z + dir_z}, + {x = pos.x + dir_x, y = ypos - self.fear_height, z = pos.z + dir_z} + , 1) then + + return true + end + + return false +end + + +-- get node but use fallback for nil or unknown +local node_ok = function(pos, fallback) + + fallback = fallback or mobs.fallback_node + + local node = minetest.get_node_or_nil(pos) + + if node and minetest.registered_nodes[node.name] then + return node + end + + return minetest.registered_nodes[fallback] -- {name = fallback} +end + + +-- environmental damage (water, lava, fire, light etc.) +local do_env_damage = function(self) + + -- feed/tame text timer (so mob 'full' messages dont spam chat) + if self.htimer > 0 then + self.htimer = self.htimer - 1 + end + + -- reset nametag after showing health stats + if self.htimer < 1 and self.nametag2 then + + self.nametag = self.nametag2 + self.nametag2 = nil + + update_tag(self) + end + + local pos = self.object:get_pos() + + self.time_of_day = minetest.get_timeofday() + + -- remove mob if beyond map limits + if not within_limits(pos, 0) then + self.object:remove() + return + end + + -- bright light harms mob + if self.light_damage ~= 0 +-- and pos.y > 0 +-- and self.time_of_day > 0.2 +-- and self.time_of_day < 0.8 + and (minetest.get_node_light(pos) or 0) > 12 then + + self.health = self.health - self.light_damage + + effect(pos, 5, "tnt_smoke.png") + + if check_for_death(self, "light", {type = "light"}) then return end + end + + local y_level = self.collisionbox[2] + + if self.child then + y_level = self.collisionbox[2] * 0.5 + end + + -- what is mob standing in? + pos.y = pos.y + y_level + 0.25 -- foot level + self.standing_in = node_ok(pos, "air").name +-- print ("standing in " .. self.standing_in) + + -- don't fall when on ignore, just stand still + if self.standing_in == "ignore" then + self.object:setvelocity({x = 0, y = 0, z = 0}) + end + + local nodef = minetest.registered_nodes[self.standing_in] + + pos.y = pos.y + 1 -- for particle effect position + + -- water + if self.water_damage + and nodef.groups.water then + + if self.water_damage ~= 0 then + + self.health = self.health - self.water_damage + + effect(pos, 5, "bubble.png", nil, nil, 1, nil) + + if check_for_death(self, "water", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end + + -- lava or fire + elseif self.lava_damage + and (nodef.groups.lava + or self.standing_in == node_fire + or self.standing_in == node_permanent_flame) then + + if self.lava_damage ~= 0 then + + self.health = self.health - self.lava_damage + + effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) + + if check_for_death(self, "lava", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end + + -- damage_per_second node check + elseif nodef.damage_per_second ~= 0 then + + self.health = self.health - nodef.damage_per_second + + effect(pos, 5, "tnt_smoke.png") + + if check_for_death(self, "dps", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end +--[[ + --- suffocation inside solid node + if self.suffocation ~= 0 + and nodef.walkable == true + and nodef.groups.disable_suffocation ~= 1 + and nodef.drawtype == "normal" then + + self.health = self.health - self.suffocation + + if check_for_death(self, "suffocation", {type = "environment", + pos = pos, node = self.standing_in}) then return end + end +]] + check_for_death(self, "", {type = "unknown"}) +end + + +-- jump if facing a solid node (not fences or gates) +local do_jump = function(self) + + if not self.jump + or self.jump_height == 0 + or self.fly + or self.child then + return false + end + + self.facing_fence = false + + -- something stopping us while moving? + if self.state ~= "stand" + and get_velocity(self) > 0.5 + and self.object:getvelocity().y ~= 0 then + return false + end + + local pos = self.object:get_pos() + local yaw = self.object:get_yaw() + + -- what is mob standing on? + pos.y = pos.y + self.collisionbox[2] - 0.2 + + local nod = node_ok(pos) + +--print ("standing on:", nod.name, pos.y) + + if minetest.registered_nodes[nod.name].walkable == false then + return false + end + + -- where is front + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + + -- what is in front of mob? + local nod = node_ok({ + x = pos.x + dir_x, + y = pos.y + 0.5, + z = pos.z + dir_z + }) + + -- thin blocks that do not need to be jumped + if nod.name == node_snow then + return false + end + +--print ("in front:", nod.name, pos.y + 0.5) + + if self.walk_chance == 0 + or minetest.registered_items[nod.name].walkable then + + if not nod.name:find("fence") + and not nod.name:find("gate") then + + local v = self.object:getvelocity() + + v.y = self.jump_height + + set_animation(self, "jump") -- only when defined + + self.object:setvelocity(v) + +if get_velocity(self) > 0 then + mob_sound(self, self.sounds.jump) +end + else + self.facing_fence = true + end + + return true + end + + return false +end + + +-- blast damage to entities nearby (modified from TNT mod) +local entity_physics = function(pos, radius) + + radius = radius * 2 + + local objs = minetest.get_objects_inside_radius(pos, radius) + local obj_pos, dist + + for n = 1, #objs do + + obj_pos = objs[n]:get_pos() + + dist = get_distance(pos, obj_pos) + if dist < 1 then dist = 1 end + + local damage = floor((4 / dist) * radius) + local ent = objs[n]:get_luaentity() + + -- punches work on entities AND players + objs[n]:punch(objs[n], 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, pos) + end +end + + +-- should mob follow what I'm holding ? +local follow_holding = function(self, clicker) + + if mobs.invis[clicker:get_player_name()] then + return false + end + + local item = clicker:get_wielded_item() + local t = type(self.follow) + + -- single item + if t == "string" + and item:get_name() == self.follow then + return true + + -- multiple items + elseif t == "table" then + + for no = 1, #self.follow do + + if self.follow[no] == item:get_name() then + return true + end + end + end + + return false +end + + +-- find two animals of same type and breed if nearby and horny +local breed = function(self) + + -- child takes 240 seconds before growing into adult + if self.child == true then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer > 240 then + + self.child = false + self.hornytimer = 0 + + self.object:set_properties({ + textures = self.base_texture, + mesh = self.base_mesh, + visual_size = self.base_size, + collisionbox = self.base_colbox, + selectionbox = self.base_selbox, + }) + + -- custom function when child grows up + if self.on_grown then + self.on_grown(self) + else + -- jump when fully grown so as not to fall into ground + self.object:setvelocity({ + x = 0, + y = self.jump_height, + z = 0 + }) + end + end + + return + end + + -- horny animal can mate for 40 seconds, + -- afterwards horny animal cannot mate again for 200 seconds + if self.horny == true + and self.hornytimer < 240 then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer >= 240 then + self.hornytimer = 0 + self.horny = false + end + end + + -- find another same animal who is also horny and mate if nearby + if self.horny == true + and self.hornytimer <= 40 then + + local pos = self.object:get_pos() + + effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "heart.png", 3, 4, 1, 0.1) + + local objs = minetest.get_objects_inside_radius(pos, 3) + local num = 0 + local ent = nil + + for n = 1, #objs do + + ent = objs[n]:get_luaentity() + + -- check for same animal with different colour + local canmate = false + + if ent then + + if ent.name == self.name then + canmate = true + else + local entname = string.split(ent.name,":") + local selfname = string.split(self.name,":") + + if entname[1] == selfname[1] then + entname = string.split(entname[2],"_") + selfname = string.split(selfname[2],"_") + + if entname[1] == selfname[1] then + canmate = true + end + end + end + end + + if ent + and canmate == true + and ent.horny == true + and ent.hornytimer <= 40 then + num = num + 1 + end + + -- found your mate? then have a baby + if num > 1 then + + self.hornytimer = 41 + ent.hornytimer = 41 + + -- spawn baby + minetest.after(5, function() + + -- custom breed function + if self.on_breed then + + -- when false skip going any further + if self.on_breed(self, ent) == false then + return + end + else + effect(pos, 15, "tnt_smoke.png", 1, 2, 2, 15, 5) + end + + local mob = minetest.add_entity(pos, self.name) + local ent2 = mob:get_luaentity() + local textures = self.base_texture + + -- using specific child texture (if found) + if self.child_texture then + textures = self.child_texture[1] + end + + -- and resize to half height + mob:set_properties({ + textures = textures, + visual_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5, + }, + collisionbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5, + }, + selectionbox = { + self.base_selbox[1] * .5, + self.base_selbox[2] * .5, + self.base_selbox[3] * .5, + self.base_selbox[4] * .5, + self.base_selbox[5] * .5, + self.base_selbox[6] * .5, + }, + }) + -- tamed and owned by parents' owner + ent2.child = true + ent2.tamed = true + ent2.owner = self.owner + end) + + num = 0 + + break + end + end + end +end + + +-- find and replace what mob is looking for (grass, wheat etc.) +local replace = function(self, pos) + + if not mobs_griefing + or not self.replace_rate + or not self.replace_what + or self.child == true + or self.object:getvelocity().y ~= 0 + or random(1, self.replace_rate) > 1 then + return + end + + local what, with, y_offset + + if type(self.replace_what[1]) == "table" then + + local num = random(#self.replace_what) + + what = self.replace_what[num][1] or "" + with = self.replace_what[num][2] or "" + y_offset = self.replace_what[num][3] or 0 + else + what = self.replace_what + with = self.replace_with or "" + y_offset = self.replace_offset or 0 + end + + pos.y = pos.y + y_offset + + if #minetest.find_nodes_in_area(pos, pos, what) > 0 then + +-- print ("replace node = ".. minetest.get_node(pos).name, pos.y) + + local oldnode = {name = what} + local newnode = {name = with} + local on_replace_return + + if self.on_replace then + on_replace_return = self.on_replace(self, pos, oldnode, newnode) + end + + if on_replace_return ~= false then + + minetest.set_node(pos, {name = with}) + + -- when cow/sheep eats grass, replace wool and milk + if self.gotten == true then + self.gotten = false + self.object:set_properties(self) + end + end + end +end + + +-- check if daytime and also if mob is docile during daylight hours +local day_docile = function(self) + + if self.docile_by_day == false then + + return false + + elseif self.docile_by_day == true + and self.time_of_day > 0.2 + and self.time_of_day < 0.8 then + + return true + end +end + + +-- path finding and smart mob routine by rnd +local smart_mobs = function(self, s, p, dist, dtime) + + local s1 = self.path.lastpos + + -- is it becoming stuck? + if abs(s1.x - s.x) + abs(s1.z - s.z) < 1.5 then + self.path.stuck_timer = self.path.stuck_timer + dtime + else + self.path.stuck_timer = 0 + end + + self.path.lastpos = {x = s.x, y = s.y, z = s.z} + + -- im stuck, search for path + if (self.path.stuck_timer > stuck_timeout and not self.path.following) + or (self.path.stuck_timer > stuck_path_timeout and self.path.following) then + + self.path.stuck_timer = 0 + + -- lets try find a path, first take care of positions + -- since pathfinder is very sensitive + local sheight = self.collisionbox[5] - self.collisionbox[2] + + -- round position to center of node to avoid stuck in walls + -- also adjust height for player models! + s.x = floor(s.x + 0.5) +-- s.y = floor(s.y + 0.5) - sheight + s.z = floor(s.z + 0.5) + + local ssight, sground = minetest.line_of_sight(s, { + x = s.x, y = s.y - 4, z = s.z}, 1) + + -- determine node above ground + if not ssight then + s.y = sground.y + 1 + end + + local p1 = self.attack:get_pos() + + p1.x = floor(p1.x + 0.5) + p1.y = floor(p1.y + 0.5) + p1.z = floor(p1.z + 0.5) + + local dropheight = 6 + if self.fear_height ~= 0 then dropheight = self.fear_height end + +-- self.path.way = minetest.find_path(s, p1, 16, 2, 6, "Dijkstra") + self.path.way = minetest.find_path(s, p1, 16, self.stepheight, dropheight, "A*_noprefetch") + + -- attempt to unstick mob that is "daydreaming" + self.object:setpos({ + x = s.x + 0.1 * (random() * 2 - 1), + y = s.y + 1, + z = s.z + 0.1 * (random() * 2 - 1) + }) + + self.state = "" + do_attack(self, self.attack) + + -- no path found, try something else + if not self.path.way then + + self.path.following = false + + -- lets make way by digging/building if not accessible + if self.pathfinding == 2 and mobs_griefing then + + -- is player higher than mob? + if s.y < p1.y then + + -- build upwards + if not minetest.is_protected(s, "") then + + local ndef1 = minetest.registered_nodes[self.standing_in] + + if ndef1 and (ndef1.buildable_to or ndef1.groups.liquid) then + + minetest.set_node(s, {name = mobs.fallback_node}) + end + end + + local sheight = math.ceil(self.collisionbox[5]) + 1 + + -- assume mob is 2 blocks high so it digs above its head + s.y = s.y + sheight + + -- remove one block above to make room to jump + if not minetest.is_protected(s, "") then + + local node1 = node_ok(s, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.set_node(s, {name = "air"}) + minetest.add_item(s, ItemStack(node1)) + + end + end + + s.y = s.y - sheight + self.object:setpos({x = s.x, y = s.y + 2, z = s.z}) + + else -- dig 2 blocks to make door toward player direction + + local yaw1 = self.object:get_yaw() + pi / 2 + local p1 = { + x = s.x + cos(yaw1), + y = s.y, + z = s.z + sin(yaw1) + } + + if not minetest.is_protected(p1, "") then + + local node1 = node_ok(p1, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + p1.y = p1.y + 1 + node1 = node_ok(p1, "air").name + ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable + and not ndef1.groups.liquid then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + end + end + end + + -- will try again in 2 second + self.path.stuck_timer = stuck_timeout - 2 + + -- frustration! cant find the damn path :( + mob_sound(self, self.sounds.random) + else + -- yay i found path + mob_sound(self, self.sounds.attack) + + set_velocity(self, self.walk_velocity) + + -- follow path now that it has it + self.path.following = true + end + end +end + + +-- specific attacks +local specific_attack = function(list, what) + + -- no list so attack default (player, animals etc.) + if list == nil then + return true + end + + -- found entity on list to attack? + for no = 1, #list do + + if list[no] == what then + return true + end + end + + return false +end + + +-- monster find someone to attack +local monster_attack = function(self) + + if self.type ~= "monster" + or not damage_enabled + or creative + or self.state == "attack" + or day_docile(self) then + return + end + + local s = self.object:get_pos() + local p, sp, dist + local player, obj, min_player + local type, name = "", "" + local min_dist = self.view_range + 1 + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + if objs[n]:is_player() then + + if mobs.invis[ objs[n]:get_player_name() ] then + + type = "" + else + player = objs[n] + type = "player" + name = "player" + end + else + obj = objs[n]:get_luaentity() + + if obj then + player = obj.object + type = obj.type + name = obj.name or "" + end + end + + -- find specific mob to attack, failing that attack player/npc/animal + if specific_attack(self.specific_attack, name) + and (type == "player" or type == "npc" + or (type == "animal" and self.attack_animals == true)) then + + s = self.object:get_pos() + p = player:get_pos() + sp = s + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + dist = get_distance(p, s) + + if dist < self.view_range then + -- field of view check goes here + + -- choose closest player to attack + if line_of_sight(self, sp, p, 2) == true + and dist < min_dist then + min_dist = dist + min_player = player + end + end + end + end + + -- attack player + if min_player then + do_attack(self, min_player) + end +end + + +-- npc, find closest monster to attack +local npc_attack = function(self) + + if self.type ~= "npc" + or not self.attacks_monsters + or self.state == "attack" then + return + end + + local p, sp, obj, min_player + local s = self.object:get_pos() + local min_dist = self.view_range + 1 + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + obj = objs[n]:get_luaentity() + + if obj and obj.type == "monster" then + + p = obj.object:get_pos() + + dist = get_distance(p, s) + + if dist < min_dist then + min_dist = dist + min_player = obj.object + end + end + end + + if min_player then + do_attack(self, min_player) + end +end + + +-- specific runaway +local specific_runaway = function(list, what) + + -- no list so do not run + if list == nil then + return false + end + + -- found entity on list to attack? + for no = 1, #list do + + if list[no] == what or list[no] == "player" then + return true + end + end + + return false +end + + +-- find someone to runaway from +local runaway_from = function(self) + + if not self.runaway_from then + return + end + + local s = self.object:get_pos() + local p, sp, dist + local player, obj, min_player + local type, name = "", "" + local min_dist = self.view_range + 1 + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + if objs[n]:is_player() then + + if mobs.invis[ objs[n]:get_player_name() ] then + + type = "" + else + player = objs[n] + type = "player" + name = "player" + end + else + obj = objs[n]:get_luaentity() + + if obj then + player = obj.object + type = obj.type + name = obj.name or "" + end + end + + -- find specific mob to runaway from + if name ~= "" and name ~= self.name + and specific_runaway(self.runaway_from, name) then + + s = self.object:get_pos() + p = player:get_pos() + sp = s + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + dist = get_distance(p, s) + + if dist < self.view_range then + -- field of view check goes here + + -- choose closest player/mpb to runaway from + if line_of_sight(self, sp, p, 2) == true + and dist < min_dist then + min_dist = dist + min_player = player + end + end + end + end + + -- attack player + if min_player then + + local lp = player:get_pos() + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate + + if lp.x > s.x then + yaw = yaw + pi + end + + yaw = set_yaw(self.object, yaw) + self.state = "runaway" + self.runaway_timer = 3 + self.following = nil + end +end + + +-- follow player if owner or holding item, if fish outta water then flop +local follow_flop = function(self) + + -- find player to follow + if (self.follow ~= "" + or self.order == "follow") + and not self.following + and self.state ~= "attack" + and self.state ~= "runaway" then + + local s = self.object:get_pos() + local players = minetest.get_connected_players() + + for n = 1, #players do + + if get_distance(players[n]:get_pos(), s) < self.view_range + and not mobs.invis[ players[n]:get_player_name() ] then + + self.following = players[n] + + break + end + end + end + + if self.type == "npc" + and self.order == "follow" + and self.state ~= "attack" + and self.owner ~= "" then + + -- npc stop following player if not owner + if self.following + and self.owner + and self.owner ~= self.following:get_player_name() then + self.following = nil + end + else + -- stop following player if not holding specific item + if self.following + and self.following:is_player() + and follow_holding(self, self.following) == false then + self.following = nil + end + + end + + -- follow that thing + if self.following then + + local s = self.object:get_pos() + local p + + if self.following:is_player() then + + p = self.following:get_pos() + + elseif self.following.object then + + p = self.following.object:get_pos() + end + + if p then + + local dist = get_distance(p, s) + + -- dont follow if out of range + if dist > self.view_range then + self.following = nil + else + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self.object, yaw) + + -- anyone but standing npc's can move along + if dist > self.reach + and self.order ~= "stand" then + + set_velocity(self, self.walk_velocity) + + if self.walk_chance ~= 0 then + set_animation(self, "walk") + end + else + set_velocity(self, 0) + set_animation(self, "stand") + end + + return + end + end + end + + -- swimmers flop when out of their element, and swim again when back in + if self.fly then + local s = self.object:get_pos() + if not flight_check(self, s) then + + self.state = "flop" + self.object:setvelocity({x = 0, y = -5, z = 0}) + + set_animation(self, "stand") + + return + elseif self.state == "flop" then + self.state = "stand" + end + end +end + + +-- dogshoot attack switch and counter function +local dogswitch = function(self, dtime) + + -- switch mode not activated + if not self.dogshoot_switch + or not dtime then + return 0 + end + + self.dogshoot_count = self.dogshoot_count + dtime + + if (self.dogshoot_switch == 1 + and self.dogshoot_count > self.dogshoot_count_max) + or (self.dogshoot_switch == 2 + and self.dogshoot_count > self.dogshoot_count2_max) then + + self.dogshoot_count = 0 + + if self.dogshoot_switch == 1 then + self.dogshoot_switch = 2 + else + self.dogshoot_switch = 1 + end + end + + return self.dogshoot_switch +end + + +-- execute current state (stand, walk, run, attacks) +local do_states = function(self, dtime) + + local yaw = self.object:get_yaw() or 0 + + if self.state == "stand" then + + if random(1, 4) == 1 then + + local lp = nil + local s = self.object:get_pos() + local objs = minetest.get_objects_inside_radius(s, 3) + + for n = 1, #objs do + + if objs[n]:is_player() then + lp = objs[n]:get_pos() + break + end + end + + -- look at any players nearby, otherwise turn randomly + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + else + yaw = yaw + random(-0.5, 0.5) + end + + yaw = set_yaw(self.object, yaw) + end + + set_velocity(self, 0) + set_animation(self, "stand") + + -- npc's ordered to stand stay standing + if self.type ~= "npc" + or self.order ~= "stand" then + + if self.walk_chance ~= 0 + and self.facing_fence ~= true + and random(1, 100) <= self.walk_chance + and is_at_cliff(self) == false then + + set_velocity(self, self.walk_velocity) + self.state = "walk" + set_animation(self, "walk") + + -- fly up/down randomly for flying mobs + if self.fly and random(1, 100) <= self.walk_chance then + + local v = self.object:getvelocity() + local ud = random(-1, 2) / 9 + + self.object:setvelocity({x = v.x, y = ud, z = v.z}) + end + end + end + + elseif self.state == "walk" then + + local s = self.object:get_pos() + local lp = nil + + -- is there something I need to avoid? + if self.water_damage > 0 + and self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water", "group:lava"}) + + elseif self.water_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water"}) + + elseif self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:lava"}) + end + + if lp then + + -- if mob in water or lava then look for land + if (self.lava_damage + and minetest.registered_nodes[self.standing_in].groups.lava) + or (self.water_damage + and minetest.registered_nodes[self.standing_in].groups.water) then + + lp = minetest.find_node_near(s, 5, {"group:soil", "group:stone", + "group:sand", node_ice, node_snowblock}) + + -- did we find land? + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + + -- look towards land and jump/move in that direction + yaw = set_yaw(self.object, yaw) + do_jump(self) + set_velocity(self, self.walk_velocity) + else + yaw = yaw + random(-0.5, 0.5) + end + + else + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + end + + yaw = set_yaw(self.object, yaw) + + -- otherwise randomly turn + elseif random(1, 100) <= 30 then + + yaw = yaw + random(-0.5, 0.5) + + yaw = set_yaw(self.object, yaw) + end + + -- stand for great fall in front + local temp_is_cliff = is_at_cliff(self) + + if self.facing_fence == true + or temp_is_cliff + or random(1, 100) <= 30 then + + set_velocity(self, 0) + self.state = "stand" + set_animation(self, "stand") + else + set_velocity(self, self.walk_velocity) + + if flight_check(self) + and self.animation + and self.animation.fly_start + and self.animation.fly_end then + set_animation(self, "fly") + else + set_animation(self, "walk") + end + end + + -- runaway when punched + elseif self.state == "runaway" then + + self.runaway_timer = self.runaway_timer + 1 + + -- stop after 5 seconds or when at cliff + if self.runaway_timer > 5 + or is_at_cliff(self) then + self.runaway_timer = 0 + set_velocity(self, 0) + self.state = "stand" + set_animation(self, "stand") + else + set_velocity(self, self.run_velocity) + set_animation(self, "walk") + end + + -- attack routines (explode, dogfight, shoot, dogshoot) + elseif self.state == "attack" then + + -- calculate distance from mob and enemy + local s = self.object:get_pos() + local p = self.attack:get_pos() or s + local dist = get_distance(p, s) + + -- stop attacking if player or out of range + if dist > self.view_range + or not self.attack + or not self.attack:get_pos() + or self.attack:get_hp() <= 0 + or (self.attack:is_player() and mobs.invis[ self.attack:get_player_name() ]) then + +-- print(" ** stop attacking **", dist, self.view_range) + self.state = "stand" + set_velocity(self, 0) + set_animation(self, "stand") + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + + return + end + + if self.attack_type == "explode" then + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self.object, yaw) + + -- start timer when inside reach + if dist < self.reach and not self.v_start then + self.v_start = true + self.timer = 0 + self.blinktimer = 0 +-- print ("=== explosion timer started", self.explosion_timer) + end + + -- walk right up to player when timer active + if dist < 1.5 and self.v_start then + set_velocity(self, 0) + else + set_velocity(self, self.run_velocity) + end + + if self.animation and self.animation.run_start then + set_animation(self, "run") + else + set_animation(self, "walk") + end + + if self.v_start then + + self.timer = self.timer + dtime + self.blinktimer = (self.blinktimer or 0) + dtime + + if self.blinktimer > 0.2 then + + self.blinktimer = 0 + + if self.blinkstatus then + self.object:settexturemod("") + else + self.object:settexturemod("^[brighten") + end + + self.blinkstatus = not self.blinkstatus + end + +-- print ("=== explosion timer", self.timer) + + if self.timer > self.explosion_timer then + + local pos = self.object:get_pos() + local radius = self.explosion_radius or 1 + local damage_radius = radius + + -- dont damage anything if area protected or next to water + if minetest.find_node_near(pos, 1, {"group:water"}) + or minetest.is_protected(pos, "") then + + damage_radius = 0 + end + + self.object:remove() + + if minetest.get_modpath("tnt") and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = radius, + damage_radius = damage_radius, + sound = self.sounds.explode, + }) + else + + minetest.sound_play(self.sounds.explode, { + pos = pos, + gain = 1.0, + max_hear_distance = self.sounds.distance or 32 + }) + + entity_physics(pos, damage_radius) + effect(pos, 32, "tnt_smoke.png", radius * 3, radius * 5, radius, 1, 0) + end + + return + end + end + + elseif self.attack_type == "dogfight" + or (self.attack_type == "dogshoot" and dogswitch(self, dtime) == 2) + or (self.attack_type == "dogshoot" and dist <= self.reach and dogswitch(self) == 0) then + + if self.fly + and dist > self.reach then + + local p1 = s + local me_y = floor(p1.y) + local p2 = p + local p_y = floor(p2.y + 1) + local v = self.object:getvelocity() + + if flight_check(self, s) then + + if me_y < p_y then + + self.object:setvelocity({ + x = v.x, + y = 1 * self.walk_velocity, + z = v.z + }) + + elseif me_y > p_y then + + self.object:setvelocity({ + x = v.x, + y = -1 * self.walk_velocity, + z = v.z + }) + end + else + if me_y < p_y then + + self.object:setvelocity({ + x = v.x, + y = 0.01, + z = v.z + }) + + elseif me_y > p_y then + + self.object:setvelocity({ + x = v.x, + y = -0.01, + z = v.z + }) + end + end + + end + + -- rnd: new movement direction + if self.path.following + and self.path.way + and self.attack_type ~= "dogshoot" then + + -- no paths longer than 50 + if #self.path.way > 50 + or dist < self.reach then + self.path.following = false + return + end + + local p1 = self.path.way[1] + + if not p1 then + self.path.following = false + return + end + + if abs(p1.x-s.x) + abs(p1.z - s.z) < 0.6 then + -- reached waypoint, remove it from queue + table.remove(self.path.way, 1) + end + + -- set new temporary target + p = {x = p1.x, y = p1.y, z = p1.z} + end + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self.object, yaw) + + -- move towards enemy if beyond mob reach + if dist > self.reach then + + -- path finding by rnd + if self.pathfinding -- only if mob has pathfinding enabled + and enable_pathfinding then + + smart_mobs(self, s, p, dist, dtime) + end + + if is_at_cliff(self) then + + set_velocity(self, 0) + set_animation(self, "stand") + else + + if self.path.stuck then + set_velocity(self, self.walk_velocity) + else + set_velocity(self, self.run_velocity) + end + + if self.animation and self.animation.run_start then + set_animation(self, "run") + else + set_animation(self, "walk") + end + end + + else -- rnd: if inside reach range + + self.path.stuck = false + self.path.stuck_timer = 0 + self.path.following = false -- not stuck anymore + + set_velocity(self, 0) + + if not self.custom_attack then + + if self.timer > 1 then + + self.timer = 0 + + if self.double_melee_attack + and random(1, 2) == 1 then + set_animation(self, "punch2") + else + set_animation(self, "punch") + end + + local p2 = p + local s2 = s + + p2.y = p2.y + .5 + s2.y = s2.y + .5 + + if line_of_sight(self, p2, s2) == true then + + -- play attack sound + mob_sound(self, self.sounds.attack) + + -- punch player (or what player is attached to) + local attached = self.attack:get_attach() + if attached then + self.attack = attached + end + self.attack:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = self.damage} + }, nil) + end + end + else -- call custom attack every second + if self.custom_attack + and self.timer > 1 then + + self.timer = 0 + + self.custom_attack(self, p) + end + end + end + + elseif self.attack_type == "shoot" + or (self.attack_type == "dogshoot" and dogswitch(self, dtime) == 1) + or (self.attack_type == "dogshoot" and dist > self.reach and dogswitch(self) == 0) then + + p.y = p.y - .5 + s.y = s.y + .5 + + local dist = get_distance(p, s) + local vec = { + x = p.x - s.x, + y = p.y - s.y, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self.object, yaw) + + set_velocity(self, 0) + + if self.shoot_interval + and self.timer > self.shoot_interval + and random(1, 100) <= 60 then + + self.timer = 0 + set_animation(self, "shoot") + + -- play shoot attack sound + mob_sound(self, self.sounds.shoot_attack) + + local p = self.object:get_pos() + + p.y = p.y + (self.collisionbox[2] + self.collisionbox[5]) / 2 + + if minetest.registered_entities[self.arrow] then + + local obj = minetest.add_entity(p, self.arrow) + local ent = obj:get_luaentity() + local amount = (vec.x * vec.x + vec.y * vec.y + vec.z * vec.z) ^ 0.5 + local v = ent.velocity or 1 -- or set to default + + ent.switch = 1 + ent.owner_id = tostring(self.object) -- add unique owner id to arrow + + -- offset makes shoot aim accurate + vec.y = vec.y + self.shoot_offset + vec.x = vec.x * (v / amount) + vec.y = vec.y * (v / amount) + vec.z = vec.z * (v / amount) + + obj:setvelocity(vec) + end + end + end + end +end + + +-- falling and fall damage +local falling = function(self, pos) + + if self.fly then + return + end + + -- floating in water (or falling) + local v = self.object:getvelocity() + + if v.y > 0 then + + -- apply gravity when moving up + self.object:setacceleration({ + x = 0, + y = -10, + z = 0 + }) + + elseif v.y <= 0 and v.y > self.fall_speed then + + -- fall downwards at set speed + self.object:setacceleration({ + x = 0, + y = self.fall_speed, + z = 0 + }) + else + -- stop accelerating once max fall speed hit + self.object:setacceleration({x = 0, y = 0, z = 0}) + end + + -- in water then float up +-- if minetest.registered_nodes[node_ok(pos).name].groups.liquid then + if minetest.registered_nodes[node_ok(pos).name].groups.water then + + if self.floats == 1 then + + self.object:setacceleration({ + x = 0, + y = -self.fall_speed / (max(1, v.y) ^ 2), + z = 0 + }) + end + else + + -- fall damage onto solid ground + if self.fall_damage == 1 + and self.object:getvelocity().y == 0 then + + local d = (self.old_y or 0) - self.object:get_pos().y + + if d > 5 then + + self.health = self.health - floor(d - 5) + + effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil) + + if check_for_death(self, "fall", {type = "fall"}) then + return + end + end + + self.old_y = self.object:get_pos().y + end + end +end + + +-- deal damage and effects when mob punched +local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) + + -- custom punch function + if self.do_punch then + + -- when false skip going any further + if self.do_punch(self, hitter, tflp, tool_caps, dir) == false then + return + end + end + + -- mob health check +-- if self.health <= 0 then +-- return +-- end + + -- error checking when mod profiling is enabled + if not tool_capabilities then + minetest.log("warning", "[mobs] Mod profiling enabled, damage not enabled") + return + end + + -- is mob protected? + if self.protected and hitter:is_player() + and minetest.is_protected(self.object:get_pos(), hitter:get_player_name()) then + minetest.chat_send_player(hitter:get_player_name(), S("Mob has been protected!")) + return + end + + + -- weapon wear + local weapon = hitter:get_wielded_item() + local punch_interval = 1.4 + + -- calculate mob damage + local damage = 0 + local armor = self.object:get_armor_groups() or {} + local tmp + + -- quick error check incase it ends up 0 (serialize.h check test) + if tflp == 0 then + tflp = 0.2 + end + + if use_cmi then + damage = cmi.calculate_damage(self.object, hitter, tflp, tool_capabilities, dir) + else + + for group,_ in pairs( (tool_capabilities.damage_groups or {}) ) do + + tmp = tflp / (tool_capabilities.full_punch_interval or 1.4) + + if tmp < 0 then + tmp = 0.0 + elseif tmp > 1 then + tmp = 1.0 + end + + damage = damage + (tool_capabilities.damage_groups[group] or 0) + * tmp * ((armor[group] or 0) / 100.0) + end + end + + -- check for tool immunity or special damage + for n = 1, #self.immune_to do + + if self.immune_to[n][1] == weapon:get_name() then + + damage = self.immune_to[n][2] or 0 + break + end + end + + -- healing + if damage <= -1 then + self.health = self.health - floor(damage) + return + end + +-- print ("Mob Damage is", damage) + + if use_cmi then + + local cancel = cmi.notify_punch(self.object, hitter, tflp, tool_capabilities, dir, damage) + + if cancel then return end + end + + -- add weapon wear + if tool_capabilities then + punch_interval = tool_capabilities.full_punch_interval or 1.4 + end + -- only play hit sound and show blood effects if damage is 1 or over + if damage >= 1 then + + -- weapon sounds + if weapon:get_definition().sounds ~= nil then + + local s = random(0, #weapon:get_definition().sounds) + + minetest.sound_play(weapon:get_definition().sounds[s], { + object = self.object, --hitter, + max_hear_distance = 8 + }) + else + minetest.sound_play("default_punch", { + object = self.object, --hitter, + max_hear_distance = 5 + }) + end + + -- blood_particles + if self.blood_amount > 0 + and not disable_blood then + + local pos = self.object:get_pos() + + pos.y = pos.y + (-self.collisionbox[2] + self.collisionbox[5]) * .5 + + -- do we have a single blood texture or multiple? + if type(self.blood_texture) == "table" then + + local blood = self.blood_texture[random(1, #self.blood_texture)] + + effect(pos, self.blood_amount, blood, nil, nil, 1, nil) + else + effect(pos, self.blood_amount, self.blood_texture, nil, nil, 1, nil) + end + end + + -- do damage + if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then + else + self.health = self.health - floor(damage) + end + + -- exit here if dead, special item check + if weapon:get_name() == "mobs:pick_lava" then + if check_for_death(self, "lava", {type = "punch", + puncher = hitter}) then + return + end + else + if check_for_death(self, "hit", {type = "punch", + puncher = hitter}) then + return + end + end + + --[[ add healthy afterglow when hit (can cause hit lag with larger textures) + core.after(0.1, function() + self.object:settexturemod("^[colorize:#c9900070") + + core.after(0.3, function() + self.object:settexturemod("") + end) + end) ]] + + -- knock back effect (only on full punch) + if self.knock_back > 0 + and tflp >= punch_interval then + + local v = self.object:getvelocity() + local r = 1.4 - min(punch_interval, 1.4) + local kb = r * 5 + local up = 2 + + -- if already in air then dont go up anymore when hit + if v.y > 0 + or self.fly then + up = 0 + end + + -- direction error check + dir = dir or {x = 0, y = 0, z = 0} + + -- check if tool already has specific knockback value + if tool_capabilities.damage_groups["knockback"] then + kb = tool_capabilities.damage_groups["knockback"] + else + kb = kb * 1.5 + end + + self.object:setvelocity({ + x = dir.x * kb, + y = up, + z = dir.z * kb + }) + + self.pause_timer = 0.25 + end + end -- END if damage + + -- if skittish then run away + if self.runaway == true then + + local lp = hitter:get_pos() + local s = self.object:get_pos() + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + 3 * pi / 2) - self.rotate + + if lp.x > s.x then + yaw = yaw + pi + end + + yaw = set_yaw(self.object, yaw) + self.state = "runaway" + self.runaway_timer = 0 + self.following = nil + end + + local name = hitter:get_player_name() or "" + + -- attack puncher and call other mobs for help + if self.passive == false + and self.state ~= "flop" + and self.child == false + and hitter:get_player_name() ~= self.owner + and not mobs.invis[ name ] then + + -- attack whoever punched mob + self.state = "" + do_attack(self, hitter) + + -- alert others to the attack + local objs = minetest.get_objects_inside_radius(hitter:get_pos(), self.view_range) + local obj = nil + + for n = 1, #objs do + + obj = objs[n]:get_luaentity() + + if obj then + + -- only alert members of same mob + if obj.group_attack == true + and obj.state ~= "attack" + and obj.owner ~= name + and obj.name == self.name then + do_attack(obj, hitter) + end + + -- have owned mobs attack player threat + if obj.owner == name and obj.owner_loyal then + do_attack(obj, self.object) + end + end + end + end +end + + +-- get entity staticdata +local mob_staticdata = function(self) + + -- remove mob when out of range unless tamed + if remove_far + and self.remove_ok + and self.type ~= "npc" + and self.state ~= "attack" + and not self.tamed + and self.lifetimer < 20000 then + + --print ("REMOVED " .. self.name) + + self.object:remove() + + return ""-- nil + end + + self.remove_ok = true + self.attack = nil + self.following = nil + self.state = "stand" + + -- used to rotate older mobs + if self.drawtype + and self.drawtype == "side" then + self.rotate = math.rad(90) + end + + if use_cmi then + self.serialized_cmi_components = cmi.serialize_components(self._cmi_components) + end + + local tmp = {} + + for _,stat in pairs(self) do + + local t = type(stat) + + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" + and _ ~= "_cmi_components" then + tmp[_] = self[_] + end + end + + --print('===== '..self.name..'\n'.. dump(tmp)..'\n=====\n') + return minetest.serialize(tmp) +end + + +-- activate mob and reload settings +local mob_activate = function(self, staticdata, def, dtime) + + -- remove monsters in peaceful mode + if self.type == "monster" + and peaceful_only then + + self.object:remove() + + return + end + + -- load entity variables + local tmp = minetest.deserialize(staticdata) + + if tmp then + for _,stat in pairs(tmp) do + self[_] = stat + end + end + + -- select random texture, set model and size + if not self.base_texture then + + -- compatiblity with old simple mobs textures + if type(def.textures[1]) == "string" then + def.textures = {def.textures} + end + + self.base_texture = def.textures[random(1, #def.textures)] + self.base_mesh = def.mesh + self.base_size = self.visual_size + self.base_colbox = self.collisionbox + self.base_selbox = self.selectionbox + end + + -- for current mobs that dont have this set + if not self.base_selbox then + self.base_selbox = self.selectionbox or self.base_colbox + end + + -- set texture, model and size + local textures = self.base_texture + local mesh = self.base_mesh + local vis_size = self.base_size + local colbox = self.base_colbox + local selbox = self.base_selbox + + -- specific texture if gotten + if self.gotten == true + and def.gotten_texture then + textures = def.gotten_texture + end + + -- specific mesh if gotten + if self.gotten == true + and def.gotten_mesh then + mesh = def.gotten_mesh + end + + -- set child objects to half size + if self.child == true then + + vis_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5, + } + + if def.child_texture then + textures = def.child_texture[1] + end + + colbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5 + } + selbox = { + self.base_selbox[1] * .5, + self.base_selbox[2] * .5, + self.base_selbox[3] * .5, + self.base_selbox[4] * .5, + self.base_selbox[5] * .5, + self.base_selbox[6] * .5 + } + end + + if self.health == 0 then + self.health = random (self.hp_min, self.hp_max) + end + + -- pathfinding init + self.path = {} + self.path.way = {} -- path to follow, table of positions + self.path.lastpos = {x = 0, y = 0, z = 0} + self.path.stuck = false + self.path.following = false -- currently following path? + self.path.stuck_timer = 0 -- if stuck for too long search for path + + -- mob defaults + self.object:set_armor_groups({immortal = 1, fleshy = self.armor}) + self.old_y = self.object:get_pos().y + self.old_health = self.health + self.sounds.distance = self.sounds.distance or 10 + self.textures = textures + self.mesh = mesh + self.collisionbox = colbox + self.selectionbox = selbox + self.visual_size = vis_size + self.standing_in = "" + + -- check existing nametag + if not self.nametag then + self.nametag = def.nametag + end + + -- set anything changed above + self.object:set_properties(self) + if self.name == "mobs:dog" then + self.object:set_properties({infotext=self.owner.."'s Dog"}) + if self.metadata == 1 then + self.object:set_properties({textures={"mobs_dog.png"}}) + end + if self.metadata == 2 then + self.object:set_properties({textures={"mobs_dog2.png"}}) + end + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + if self.name == "mobs:dragon" then + self.object:set_properties({infotext=self.owner.."'s Dragon"}) + if self.metadata == 1 then + self.object:set_properties({textures={"mobs_dragon_red.png"}}) + end + if self.metadata == 2 then + self.object:set_properties({textures={"mobs_dragon_yellow.png"}}) + end + if self.metadata == 3 then + self.object:set_properties({textures={"mobs_dragon_blue.png"}}) + end + if self.metadata == 4 then + self.object:set_properties({textures={"mobs_dragon_green.png"}}) + end + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + if self.name == "mobs:cat" then + self.object:set_properties({infotext=self.owner.."'s Cat"}) + if self.metadata == 1 then + self.object:set_properties({textures={"mobs_kitten4.png"}}) + end + if self.metadata == 2 then + self.object:set_properties({textures={"mobs_kitten.png"}}) + end + if self.metadata == 3 then + self.object:set_properties({textures={"mobs_kitten2.png"}}) + end + if self.metadata == 4 then + self.object:set_properties({textures={"mobs_kitten3.png"}}) + end + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + if self.name == "mobs:sheep" then + if self.owner then + self.object:set_properties({infotext=self.owner.."'s Sheep"}) + if minetest.get_player_by_name(self.owner) then + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + end + end + if self.name == "mobs:knight_1248" then + self.object:set_properties({infotext=self.owner.."'s 1248 Knight"}) + if self.owner then + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + end + if self.name == "mobs:fox" then + self.object:set_properties({infotext=self.owner.."'s Fox"}) + if self.metadata == 1 then + self.object:set_properties({textures={"mobs_fox.png"}}) + end + if self.metadata == 2 then + self.object:set_properties({textures={"mobs_fox1.png"}}) + end + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + if self.name == "mobs:tortoise" then + self.object:set_properties({infotext=self.owner.."'s Tortoise"}) + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + set_yaw(self.object, (random(0, 360) - 180) / 180 * pi) + update_tag(self) + set_animation(self, "stand") + + -- run on_spawn function if found + if self.on_spawn and not self.on_spawn_run then + if self.on_spawn(self) then + self.on_spawn_run = true -- if true, set flag to run once only + end + end + + -- run after_activate + if def.after_activate then + def.after_activate(self, staticdata, def, dtime) + end + + if use_cmi then + self._cmi_components = cmi.activate_components(self.serialized_cmi_components) + cmi.notify_activate(self.object, dtime) + end +end + + +-- main mob function +local mob_step = function(self, dtime) + self.metadata3 = self.metadata3 + dtime + if self.metadata3 > 1 then + self.metadata3 = 0 + if self.name == "mobs:dog" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("dogx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("dogy", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("dogz", ""..math.floor(self.object:getpos().z+0.5)) + end + local pos = self.object:getpos() + if minetest.get_player_by_name(self.owner) then + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("dog",8) + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 15)) 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("dog", ItemStack(object:get_luaentity().itemstring)) then + if ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:geschenkpapier" or ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:geschenkpapier_death" or ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:dna_string" then + object:remove() + inv:add_item("dog", ItemStack(object:get_luaentity().itemstring)) + end + end + end + end + end + end + if self.name == "mobs:cat" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("catx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("caty", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("catz", ""..math.floor(self.object:getpos().z+0.5)) + end + local pos = self.object:getpos() + if minetest.get_player_by_name(self.owner) then + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("cat",8) + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 15)) 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("cat", ItemStack(object:get_luaentity().itemstring)) then + if ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:geschenkpapier" or ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:geschenkpapier_death" or ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:dna_string" then + object:remove() + inv:add_item("cat", ItemStack(object:get_luaentity().itemstring)) + end + end + end + end + end + end + if self.name == "mobs:dragon" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("dragonx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("dragony", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("dragonz", ""..math.floor(self.object:getpos().z+0.5)) + end + end + if self.name == "mobs:sheep" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("sheepx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("sheepy", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("sheepz", ""..math.floor(self.object:getpos().z+0.5)) + + end + end + if self.name == "mobs:fox" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("foxx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("foxy", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("foxz", ""..math.floor(self.object:getpos().z+0.5)) + end + end + if self.name == "mobs:tortoise" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("tortoisex", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("tortoisey", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("tortoisez", ""..math.floor(self.object:getpos().z+0.5)) + end + end + if self.name == "mobs:knight_1248" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("knightx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("knighty", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("knightz", ""..math.floor(self.object:getpos().z+0.5)) + end + + end + if self.name == "mobs:dog" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if minetest.get_player_by_name(self.owner) then + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + end + end + end + if self.name == "mobs:cat" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if minetest.get_player_by_name(self.owner) then + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + end + end + end + if self.name == "mobs:dragon" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if self.owner then + if minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):get_inventory():set_size("dragon2",1) + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon2", 1):get_count() + if numd > 50 then + if minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon", 1):get_name() == "tutorial:dragon_crystal" then + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem") + else + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_dragon") + end + minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "") + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "default:dirt "..1+numd) + end + end + end + end + end + if self.name == "mobs:sheep" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if self.owner then + if minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep2",1) + minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep3",1) + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep2", 1):get_count() + if numd > 50 then + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep3", 1)) + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "") + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "default:dirt "..1+numd) + end + end + end + end + end + if self.name == "mobs:knight_1248" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if minetest.get_player_by_name(self.owner) then + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + end + end + end + if self.name == "mobs:fox" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if self.owner then + if minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):get_inventory():set_size("fox",1) + minetest.get_player_by_name(self.owner):get_inventory():set_size("foxfox",1) + minetest.get_player_by_name(self.owner):get_inventory():set_size("r1248",6) + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("fox", 1):get_count() + if numd == 50 then + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:fox_schluessel") + minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt 80") + elseif numd == 80 then + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt "..1+numd) + end + local numdd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("foxfox", 1):get_count() + if numdd == 256 then + local ra = math.random(6) + if ra == 1 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 1, "default:dirt") + elseif ra == 2 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 2, "default:dirt") + elseif ra == 3 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 3, "default:dirt") + elseif ra == 4 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 4, "default:dirt") + elseif ra == 5 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 5, "default:dirt") + elseif ra == 6 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 6, "default:dirt") + end + minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "") + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "default:dirt "..1+numdd) + end + end + end + end + end + if self.name == "mobs:tortoise" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if minetest.get_player_by_name(self.owner) then + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + minetest.get_player_by_name(self.owner):get_inventory():set_size("tortoise2",1) + local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise2", 1):get_count() + if numd > 50 then + if minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise", 1):get_name() == "tutorial:dragon_crystal" then + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem2") + else + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_tortoise") + end + minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "") + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "default:dirt "..1+numd) + end + end + end + end + if self.name == "mobs:sheep" then + if self.owner then + self.object:set_properties({infotext=self.owner.."'s Sheep"}) + if minetest.get_player_by_name(self.owner) then + local col = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep", 1):get_name() + if col == "dye:white" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:white") + self.object:set_properties({textures={"mobs_sheep_white.png"}}) + elseif col == "dye:grey" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:grey") + self.object:set_properties({textures={"mobs_sheep_grey.png"}}) + elseif col == "dye:dark_grey" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_grey") + self.object:set_properties({textures={"mobs_sheep_dark_grey.png"}}) + elseif col == "dye:black" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:black") + self.object:set_properties({textures={"mobs_sheep_black.png"}}) + elseif col == "dye:violet" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:violet") + self.object:set_properties({textures={"mobs_sheep_violet.png"}}) + elseif col == "dye:blue" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:blue") + self.object:set_properties({textures={"mobs_sheep_blue.png"}}) + elseif col == "dye:cyan" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:cyan") + self.object:set_properties({textures={"mobs_sheep_cyan.png"}}) + elseif col == "dye:dark_green" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_green") + self.object:set_properties({textures={"mobs_sheep_dark_green.png"}}) + elseif col == "dye:green" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:green") + self.object:set_properties({textures={"mobs_sheep_green.png"}}) + elseif col == "dye:yellow" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:yellow") + self.object:set_properties({textures={"mobs_sheep_yellow.png"}}) + elseif col == "dye:brown" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:brown") + self.object:set_properties({textures={"mobs_sheep_brown.png"}}) + elseif col == "dye:orange" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:orange") + self.object:set_properties({textures={"mobs_sheep_orange.png"}}) + elseif col == "dye:red" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:red") + self.object:set_properties({textures={"mobs_sheep_red.png"}}) + elseif col == "dye:magenta" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:magenta") + self.object:set_properties({textures={"mobs_sheep_magenta.png"}}) + elseif col == "dye:pink" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:pink") + self.object:set_properties({textures={"mobs_sheep_pink.png"}}) + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"") + self.object:set_properties({textures={"mobs_sheep.png"}}) + end + end + end + end + end + if use_cmi then + cmi.notify_step(self.object, dtime) + end + + local pos = self.object:get_pos() + local yaw = 0 + + -- when lifetimer expires remove mob (except npc and tamed) + if self.type ~= "npc" + and not self.tamed + and self.state ~= "attack" + and remove_far ~= true + and self.lifetimer < 20000 then + + self.lifetimer = self.lifetimer - dtime + + if self.lifetimer <= 0 then + + -- only despawn away from player + local objs = minetest.get_objects_inside_radius(pos, 15) + + for n = 1, #objs do + + if objs[n]:is_player() then + + self.lifetimer = 20 + + return + end + end + +-- minetest.log("action", +-- S("lifetimer expired, removed @1", self.name)) + + effect(pos, 15, "tnt_smoke.png", 2, 4, 2, 0) + + self.object:remove() + + return + end + end + + falling(self, pos) + + -- knockback timer + if self.pause_timer > 0 then + + self.pause_timer = self.pause_timer - dtime + + return + end + + -- run custom function (defined in mob lua file) + if self.do_custom then + + -- when false skip going any further + if self.do_custom(self, dtime) == false then + return + end + end + + -- attack timer + self.timer = self.timer + dtime + + if self.state ~= "attack" then + + if self.timer < 1 then + return + end + + self.timer = 0 + end + + -- never go over 100 + if self.timer > 100 then + self.timer = 1 + end + + -- node replace check (cow eats grass etc.) + replace(self, pos) + + -- mob plays random sound at times + if random(1, 100) == 1 then + mob_sound(self, self.sounds.random) + end + + -- environmental damage timer (every 1 second) + self.env_damage_timer = self.env_damage_timer + dtime + + if (self.state == "attack" and self.env_damage_timer > 1) + or self.state ~= "attack" then + + self.env_damage_timer = 0 + + do_env_damage(self) + end + + monster_attack(self) + + npc_attack(self) + + breed(self) + + follow_flop(self) + + do_states(self, dtime) + + do_jump(self) + + runaway_from(self) + +end + + +-- default function when mobs are blown up with TNT +local do_tnt = function(obj, damage) + + --print ("----- Damage", damage) + + obj.object:punch(obj.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, nil) + + return false, true, {} +end + +function update(self, clicker) + if self.name == "mobs:dog" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Dog", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("dog",8) + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."list[current_player;dog;0,2;8,1]" + .."list[current_player;main;0,4.5;8,4]" + .."listring[current_player;dog]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata == 1 then + formspec = formspec .."button[0,0;2.0,0.5;texture11;Texture:brown]" + end + if self.metadata == 2 then + formspec = formspec .."button[0,0;2.0,0.5;texture12;Texture:grey]" + end + if self.metadata2 == 1 then + formspec = formspec .."button[3,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[3,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Dog", formspec) + end + end + if self.name == "mobs:cat" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Cat", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("cat",8) + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."list[current_player;cat;0,2;8,1]" + .."list[current_player;main;0,4.5;8,4]" + .."listring[current_player;cat]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata == 1 then + formspec = formspec .."button[0,0;2.0,0.5;texture21;Texture:ginger]" + end + if self.metadata == 2 then + formspec = formspec .."button[0,0;2.0,0.5;texture22;Texture:sandy]" + end + if self.metadata == 3 then + formspec = formspec .."button[0,0;2.0,0.5;texture23;Texture:splotchy]" + end + if self.metadata == 4 then + formspec = formspec .."button[0,0;2.0,0.5;texture24;Texture:striped]" + end + if self.metadata2 == 1 then + formspec = formspec .."button[3,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[3,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Cat", formspec) + end + end + if self.name == "mobs:dragon" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Dragon", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + local player_name = clicker:get_player_name() + inv:set_size("dragon", 1) + local formspec = "size[8,8.5]" + .."list[current_player;dragon;3.5,2.5;1,1]" + .."label[1,1;Dragon produce a dragon gift/gem gift lv.1 after some time]" + .."label[2.4,3.5;Regnum crystal for gem gift]" + .."list[current_player;main;0,4.5;8,4]" + .."listring[current_player;dragon]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata == 1 then + formspec = formspec .."button[0,0;2.0,0.5;texture31;Texture:yellow]" + end + if self.metadata == 2 then + formspec = formspec .."button[0,0;2.0,0.5;texture32;Texture:blue]" + end + if self.metadata == 3 then + formspec = formspec .."button[0,0;2.0,0.5;texture33;Texture:green]" + end + if self.metadata == 4 then + formspec = formspec .."button[0,0;2.0,0.5;texture34;Texture:black]" + end + if self.metadata == 5 then + formspec = formspec .."button[0,0;2.0,0.5;texture35;Texture:great]" + end + if self.metadata == 6 then + formspec = formspec .."button[0,0;2.0,0.5;texture36;Texture:red]" + end + if self.metadata2 == 1 then + formspec = formspec .."button[3,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[3,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Dragon", formspec) + end + end + if self.name == "mobs:sheep" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Sheep", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("sheep",1) + inv:set_size("sheep2",1) + inv:set_size("sheep3",1) + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."list[current_player;main;0,3.5;8,4]" + .."list[current_player;sheep;3.5,1;1,1]" + .."label[3.5,2;Set Color]" + .."listring[current_player;sheep]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata2 == 1 then + formspec = formspec .."button[0,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[0,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Sheep", formspec) + end + end + if self.name == "mobs:fox" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Fox", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."label[0,1.2;Fox produce a Foxkey and Treasures after some time]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata == 1 then + formspec = formspec .."button[0,0;2.0,0.5;texture41;Texture:light]" + end + if self.metadata == 2 then + formspec = formspec .."button[0,0;2.0,0.5;texture42;Texture:dark]" + end + if self.metadata2 == 1 then + formspec = formspec .."button[3,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[3,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Fox", formspec) + end + end + if self.name == "mobs:tortoise" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Tortoise", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("tortoise", 1) + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."label[1,1;Tortoise produce a tortoise gift/gem gift lv.2 after some time]" + .."label[2.4,3.5;Regnum crystal for gem gift]" + .."list[current_player;main;0,4.5;8,4]" + .."list[current_player;tortoise;3.5,2.5;1,1]" + .."listring[current_player;tortoise]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata2 == 1 then + formspec = formspec .."button[0,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[0,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Tortoise", formspec) + end + end + if self.name == "mobs:knight_1248" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Knight", formspec) + else + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata2 == 1 then + formspec = formspec .."button[0,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[0,0;2.0,0.5;move2;Move:follow]" + end + formspec = formspec .."label[0,1;Hello my name is 1248]" + .."label[0,1.3;Bring me an empty color stick and we can leave this world]" + formspec = formspec .."button[3,4;2.0,0.5;leave;I've got color stick]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Knight", formspec) + end + end +end + +mobs.spawning_mobs = {} + +-- register mob entity +function mobs:register_mob(name, def) + + mobs.spawning_mobs[name] = true + +minetest.register_entity(name, { + + stepheight = def.stepheight or 1.1, -- was 0.6 + name = name, + type = def.type, + attack_type = def.attack_type, + fly = def.fly, + fly_in = def.fly_in or "air", + owner = def.owner or "", + order = def.order or "", + on_die = def.on_die, + do_custom = def.do_custom, + jump_height = def.jump_height or 4, -- was 6 + drawtype = def.drawtype, -- DEPRECATED, use rotate instead + rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2 + lifetimer = def.lifetimer or 180, -- 3 minutes + hp_min = max(1, (def.hp_min or 5) * difficulty), + hp_max = max(1, (def.hp_max or 10) * difficulty), + physical = true, + collisionbox = def.collisionbox, + selectionbox = def.selectionbox or def.collisionbox, + visual = def.visual, + visual_size = def.visual_size or {x = 1, y = 1}, + mesh = def.mesh, + makes_footstep_sound = def.makes_footstep_sound or false, + view_range = def.view_range or 5, + walk_velocity = def.walk_velocity or 1, + run_velocity = def.run_velocity or 2, + damage = max(0, (def.damage or 0) * difficulty), + light_damage = def.light_damage or 0, + water_damage = def.water_damage or 0, + lava_damage = def.lava_damage or 0, + suffocation = def.suffocation or 2, + fall_damage = def.fall_damage or 1, + fall_speed = def.fall_speed or -10, -- must be lower than -2 (default: -10) + drops = def.drops or {}, + armor = def.armor or 100, + on_rightclick = def.on_rightclick, + arrow = def.arrow, + shoot_interval = def.shoot_interval, + sounds = def.sounds or {}, + animation = def.animation, + follow = def.follow, + jump = def.jump ~= false, + walk_chance = def.walk_chance or 50, + attacks_monsters = def.attacks_monsters or false, + group_attack = def.group_attack or false, + passive = def.passive or false, + knock_back = def.knock_back or 3, + blood_amount = def.blood_amount or 5, + blood_texture = def.blood_texture or "mobs_blood.png", + shoot_offset = def.shoot_offset or 0, + floats = def.floats or 1, -- floats in water by default + replace_rate = def.replace_rate, + replace_what = def.replace_what, + replace_with = def.replace_with, + replace_offset = def.replace_offset or 0, + on_replace = def.on_replace, + timer = 0, + metadata = def.metadata, + metadata2 = def.metadata2, + metadata3 = 0, + env_damage_timer = 0, -- only used when state = "attack" + tamed = false, + pause_timer = 0, + horny = false, + hornytimer = 0, + child = false, + gotten = false, + health = 0, + reach = def.reach or 3, + htimer = 0, + texture_list = def.textures, + child_texture = def.child_texture, + docile_by_day = def.docile_by_day or false, + time_of_day = 0.5, + fear_height = def.fear_height or 0, + runaway = def.runaway, + runaway_timer = 0, + pathfinding = def.pathfinding, + immune_to = def.immune_to or {}, + explosion_radius = def.explosion_radius, + explosion_timer = def.explosion_timer or 3, + custom_attack = def.custom_attack, + double_melee_attack = def.double_melee_attack, + dogshoot_switch = def.dogshoot_switch, + dogshoot_count = 0, + dogshoot_count_max = def.dogshoot_count_max or 5, + dogshoot_count2_max = def.dogshoot_count2_max or (def.dogshoot_count_max or 5), + attack_animals = def.attack_animals or false, + specific_attack = def.specific_attack, + runaway_from = def.runaway_from, + owner_loyal = def.owner_loyal, + facing_fence = false, + _cmi_is_mob = true, + + on_spawn = def.on_spawn, + + on_blast = def.on_blast or do_tnt, + + on_step = mob_step, + + do_punch = def.do_punch, + + on_punch = mob_punch, + + on_breed = def.on_breed, + + on_grown = def.on_grown, + on_rightclick = function(self, clicker) + update(self, clicker) + end, + on_activate = function(self, staticdata, dtime) + return mob_activate(self, staticdata, def, dtime) + end, + + get_staticdata = function(self) + return mob_staticdata(self) + end, + on_receive_fields = function(self, fields, sender) + if self.owner == sender:get_player_name() then + if fields.leave then + + local player_name = sender:get_player_name() + if minetest.get_player_by_name(self.owner):get_inventory():contains_item("main", "tutorial:colorstick_empty") then + local formspec = "size[4,2.5]" + .."label[0,0;You have won Regnum]" + .."label[0,0.3;You have enough technology to leave this world]" + .."label[0,0.6;and to go to another.....]" + .."label[0,0.9;Thank you for playing Regnum]" + .."label[0,1.2;your 1248]" + .."background[4,2.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Knight", formspec) + end + else + if fields.texture11 then + self.object:set_properties({textures={"mobs_dog2.png"}}) + self.metadata = 2 + update(self, sender) + elseif fields.texture12 then + self.object:set_properties({textures={"mobs_dog.png"}}) + self.metadata = 1 + update(self, sender) + elseif fields.texture21 then + self.object:set_properties({textures={"mobs_kitten.png"}}) + self.metadata = 2 + update(self, sender) + elseif fields.texture22 then + self.object:set_properties({textures={"mobs_kitten2.png"}}) + self.metadata = 3 + update(self, sender) + elseif fields.texture23 then + self.object:set_properties({textures={"mobs_kitten3.png"}}) + self.metadata = 4 + update(self, sender) + elseif fields.texture24 then + self.object:set_properties({textures={"mobs_kitten4.png"}}) + self.metadata = 1 + update(self, sender) + elseif fields.texture31 then + self.object:set_properties({textures={"mobs_dragon_yellow.png"}}) + self.metadata = 2 + update(self, sender) + elseif fields.texture32 then + self.object:set_properties({textures={"mobs_dragon_blue.png"}}) + self.metadata = 3 + update(self, sender) + elseif fields.texture33 then + self.object:set_properties({textures={"mobs_dragon_green.png"}}) + self.metadata = 4 + update(self, sender) + elseif fields.texture34 then + self.object:set_properties({textures={"mobs_dragon_black.png"}}) + self.metadata = 5 + update(self, sender) + elseif fields.texture35 then + self.object:set_properties({textures={"mobs_dragon_great.png"}}) + self.metadata = 6 + update(self, sender) + elseif fields.texture36 then + self.object:set_properties({textures={"mobs_dragon_red.png"}}) + self.metadata = 1 + update(self, sender) + elseif fields.texture41 then + self.object:set_properties({textures={"mobs_fox1.png"}}) + self.metadata = 2 + update(self, sender) + elseif fields.texture42 then + self.object:set_properties({textures={"mobs_fox.png"}}) + self.metadata = 1 + update(self, sender) + elseif fields.move1 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.metadata2 = 2 + update(self, sender) + elseif fields.move2 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.metadata2 = 1 + update(self, sender) + end + end + end + end, +}) + +end -- END mobs:register_mob function + + +-- count how many mobs of one type are inside an area +local count_mobs = function(pos, type) + + local num_type = 0 + local num_total = 0 + local objs = minetest.get_objects_inside_radius(pos, aoc_range) + + for n = 1, #objs do + + if not objs[n]:is_player() then + + local obj = objs[n]:get_luaentity() + + -- count mob type and add to total also + if obj and obj.name and obj.name == type then + + num_type = num_type + 1 + num_total = num_total + 1 + + -- add to total mobs + elseif obj and obj.name and obj.health ~= nil then + + num_total = num_total + 1 + end + end + end + + return num_type, num_total +end + + +-- global functions + +function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, + interval, chance, aoc, min_height, max_height, day_toggle, on_spawn) + + -- Do mobs spawn at all? + if not mobs_spawn then + return + end + + -- chance/spawn number override in minetest.conf for registered mob + local numbers = minetest.settings:get(name) + + if numbers then + numbers = numbers:split(",") + chance = tonumber(numbers[1]) or chance + aoc = tonumber(numbers[2]) or aoc + + if chance == 0 then + minetest.log("warning", string.format("[mobs] %s has spawning disabled", name)) + return + end + + minetest.log("action", + string.format("[mobs] Chance setting for %s changed to %s (total: %s)", name, chance, aoc)) + + end + + minetest.register_abm({ + + label = name .. " spawning", + nodenames = nodes, + neighbors = neighbors, + interval = interval, + chance = max(1, (chance * mob_chance_multiplier)), + catch_up = false, + + action = function(pos, node, active_object_count, active_object_count_wider) + + -- is mob actually registered? + if not mobs.spawning_mobs[name] + or not minetest.registered_entities[name] then +--print ("--- mob doesn't exist", name) + return + end + + -- do not spawn if too many of same mob in area + if active_object_count_wider >= max_per_block + or count_mobs(pos, name) >= aoc then +--print ("--- too many entities", name, aoc, active_object_count_wider) + return + end + + -- if toggle set to nil then ignore day/night check + if day_toggle ~= nil then + + local tod = (minetest.get_timeofday() or 0) * 24000 + + if tod > 4500 and tod < 19500 then + -- daylight, but mob wants night + if day_toggle == false then +--print ("--- mob needs night", name) + return + end + else + -- night time but mob wants day + if day_toggle == true then +--print ("--- mob needs day", name) + return + end + end + end + + -- spawn above node + pos.y = pos.y + 1 + + -- only spawn away from player + local objs = minetest.get_objects_inside_radius(pos, 10) + + for n = 1, #objs do + + if objs[n]:is_player() then +--print ("--- player too close", name) + return + end + end + + -- mobs cannot spawn in protected areas when enabled + if not spawn_protected + and minetest.is_protected(pos, "") then +--print ("--- inside protected area", name) + return + end + + -- are we spawning within height limits? + if pos.y > max_height + or pos.y < min_height then +--print ("--- height limits not met", name, pos.y) + return + end + + -- are light levels ok? + local light = minetest.get_node_light(pos) + if not light + or light > max_light + or light < min_light then +--print ("--- light limits not met", name, light) + return + end + + -- do we have enough height clearance to spawn mob? + local ent = minetest.registered_entities[name] + local height = max(0, math.ceil(ent.collisionbox[5] - ent.collisionbox[2]) - 1) + + for n = 0, height do + + local pos2 = {x = pos.x, y = pos.y + n, z = pos.z} + + if minetest.registered_nodes[node_ok(pos2).name].walkable == true then +--print ("--- inside block", name, node_ok(pos2).name) + return + end + end + + -- spawn mob half block higher than ground + pos.y = pos.y + 0.5 + + local mob = minetest.add_entity(pos, name) +--[[ + print ("[mobs] Spawned " .. name .. " at " + .. minetest.pos_to_string(pos) .. " on " + .. node.name .. " near " .. neighbors[1]) +]] + if on_spawn then + + local ent = mob:get_luaentity() + + on_spawn(ent, pos) + end + end + }) +end + + +-- compatibility with older mob registration +function mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, day_toggle) + + mobs:spawn_specific(name, nodes, {"air"}, min_light, max_light, 30, + chance, active_object_count, -31000, max_height, day_toggle) +end + + +-- MarkBu's spawn function +function mobs:spawn(def) + + local name = def.name + local nodes = def.nodes or {"group:soil", "group:stone"} + local neighbors = def.neighbors or {"air"} + local min_light = def.min_light or 0 + local max_light = def.max_light or 15 + local interval = def.interval or 30 + local chance = def.chance or 5000 + local active_object_count = def.active_object_count or 1 + local min_height = def.min_height or -31000 + local max_height = def.max_height or 31000 + local day_toggle = def.day_toggle + local on_spawn = def.on_spawn + + mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, + chance, active_object_count, min_height, max_height, day_toggle, on_spawn) +end + + +-- register arrow for shoot attack +function mobs:register_arrow(name, def) + + if not name or not def then return end -- errorcheck + + 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, + hit_mob = def.hit_mob, + drop = def.drop or false, -- drops arrow as registered item when true + collisionbox = {0, 0, 0, 0, 0, 0}, -- remove box around arrows + timer = 0, + switch = 0, + owner_id = def.owner_id, + rotate = def.rotate, + automatic_face_movement_dir = def.rotate + and (def.rotate - (pi / 180)) or false, + + on_activate = def.on_activate, + + on_step = def.on_step or function(self, dtime) + + self.timer = self.timer + 1 + + local pos = self.object:get_pos() + + if self.switch == 0 + or self.timer > 150 + or not within_limits(pos, 0) then + + self.object:remove() ; -- print ("removed arrow") + + return + end + + -- does arrow have a tail (fireball) + if def.tail + and def.tail == 1 + and def.tail_texture then + + minetest.add_particle({ + pos = pos, + velocity = {x = 0, y = 0, z = 0}, + acceleration = {x = 0, y = 0, z = 0}, + expirationtime = def.expire or 0.25, + collisiondetection = false, + texture = def.tail_texture, + size = def.tail_size or 5, + glow = def.glow or 0, + }) + end + + if self.hit_node then + + local node = node_ok(pos).name + + if minetest.registered_nodes[node].walkable then + + self.hit_node(self, pos, node) + + if self.drop == true then + + pos.y = pos.y + 1 + + self.lastpos = (self.lastpos or pos) + + minetest.add_item(self.lastpos, self.object:get_luaentity().name) + end + + self.object:remove() ; -- print ("hit node") + + return + end + end + + if self.hit_player or self.hit_mob then + + for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do + + if self.hit_player + and player:is_player() then + + self.hit_player(self, player) + self.object:remove() ; -- print ("hit player") + return + end + + local entity = player:get_luaentity() + + if entity + and self.hit_mob + and entity._cmi_is_mob == true + and tostring(player) ~= self.owner_id + and entity.name ~= self.object:get_luaentity().name then + + self.hit_mob(self, player) + + self.object:remove() ; --print ("hit mob") + + return + end + end + end + + self.lastpos = pos + end + }) +end + + +-- compatibility function +function mobs:explosion(pos, radius) + local self = {sounds = {}} + self.sounds.explode = "tnt_explode" + mobs:boom(self, pos, radius) +end + + +-- no damage to nodes explosion +function mobs:safe_boom(self, pos, radius) + + minetest.sound_play(self.sounds and self.sounds.explode or "tnt_explode", { + pos = pos, + gain = 1.0, + max_hear_distance = self.sounds and self.sounds.distance or 32 + }) + + entity_physics(pos, radius) + effect(pos, 32, "tnt_smoke.png", radius * 3, radius * 5, radius, 1, 0) +end + + +-- make explosion with protection and tnt mod check +function mobs:boom(self, pos, radius) + + if mobs_griefing + and minetest.get_modpath("tnt") and tnt and tnt.boom + and not minetest.is_protected(pos, "") then + + tnt.boom(pos, { + radius = radius, + damage_radius = radius, + sound = self.sounds and self.sounds.explode, + explode_center = true, + }) + else + mobs:safe_boom(self, pos, radius) + end +end + + +-- Register spawn eggs + +-- Note: This also introduces the β€œspawn_egg” group: +-- * spawn_egg=1: Spawn egg (generic mob, no metadata) +-- * spawn_egg=2: Spawn egg (captured/tamed mob, metadata) +function mobs:register_egg(mob, desc, background, addegg, no_creative) + + local grp = {spawn_egg = 1} + + -- do NOT add this egg to creative inventory (e.g. dungeon master) + if creative and no_creative == true then + grp.not_in_creative_inventory = 1 + end + + local invimg = background + + if addegg == 1 then + invimg = "mobs_chicken_egg.png^(" .. invimg .. + "^[mask:mobs_chicken_egg_overlay.png)" + end + + -- register new spawn egg containing mob information + minetest.register_craftitem(mob .. "_set", { + + description = S("@1 (Tamed)", desc), + inventory_image = invimg, + groups = {spawn_egg = 2, not_in_creative_inventory = 1}, + stack_max = 1, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and within_limits(pos, 0) + and not minetest.is_protected(pos, placer:get_player_name()) then + + if not minetest.registered_entities[mob] then + return + end + + pos.y = pos.y + 1 + + local data = itemstack:get_metadata() + local mob = minetest.add_entity(pos, mob, data) + local ent = mob:get_luaentity() + + -- set owner if not a monster + if ent.type ~= "monster" then + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- since mob is unique we remove egg once spawned + itemstack:take_item() + end + + return itemstack + end, + }) + + + -- register old stackable mob egg + minetest.register_craftitem(mob, { + + description = desc, + inventory_image = invimg, + groups = grp, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and within_limits(pos, 0) + and not minetest.is_protected(pos, placer:get_player_name()) then + + if not minetest.registered_entities[mob] then + return + end + + pos.y = pos.y + 1 + + local mob = minetest.add_entity(pos, mob) + local ent = mob:get_luaentity() + + -- don't set owner if monster or sneak pressed + if ent.type ~= "monster" + and not placer:get_player_control().sneak then + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- if not in creative then take item + if not mobs.is_creative(placer:get_player_name()) then + itemstack:take_item() + end + end + + return itemstack + end, + }) + +end + + +-- capture critter (thanks to blert2112 for idea) +function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, force_take, replacewith) + + if self.child + or not clicker:is_player() + or not clicker:get_inventory() then + return false + end + + -- get name of clicked mob + local mobname = self.name + + -- if not nil change what will be added to inventory + if replacewith then + mobname = replacewith + end + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + -- are we using hand, net or lasso to pick up mob? + if tool:get_name() ~= "" + and tool:get_name() ~= "mobs:net" + and tool:get_name() ~= "mobs:lasso" then + return false + end + + -- is mob tamed? + if self.tamed == false + and force_take == false then + + minetest.chat_send_player(name, S("Not tamed!")) + + return true -- false + end + + -- cannot pick up if not owner + if self.owner ~= name + and force_take == false then + + minetest.chat_send_player(name, S("@1 is owner!", self.owner)) + + return true -- false + end + + if clicker:get_inventory():room_for_item("main", mobname) then + + -- was mob clicked with hand, net, or lasso? + local chance = 0 + + if tool:get_name() == "" then + chance = chance_hand + + elseif tool:get_name() == "mobs:net" then + + chance = chance_net + + tool:add_wear(4000) -- 17 uses + + clicker:set_wielded_item(tool) + + elseif tool:get_name() == "mobs:lasso" then + + chance = chance_lasso + + tool:add_wear(650) -- 100 uses + + clicker:set_wielded_item(tool) + + end + + -- calculate chance.. add to inventory if successful? + if chance > 0 and random(1, 100) <= chance then + + -- default mob egg + local new_stack = ItemStack(mobname) + + -- add special mob egg with all mob information + -- unless 'replacewith' contains new item to use + if not replacewith then + + new_stack = ItemStack(mobname .. "_set") + + local tmp = {} + + for _,stat in pairs(self) do + local t = type(stat) + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" then + tmp[_] = self[_] + end + end + + local data_str = minetest.serialize(tmp) + + new_stack:set_metadata(data_str) + end + + local inv = clicker:get_inventory() + + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(clicker:get_pos(), new_stack) + end + + self.object:remove() + + mob_sound(self, "default_place_node_hard") + + + else + minetest.chat_send_player(name, S("Missed!")) + + mob_sound(self, "mobs_swing") + end + end + + return true +end + + +-- protect tamed mob with rune item +function mobs:protect(self, clicker) + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + if tool:get_name() ~= "mobs:protector" then + return false + end + + if self.tamed == false then + minetest.chat_send_player(name, S("Not tamed!")) + return true -- false + end + + if self.protected == true then + minetest.chat_send_player(name, S("Already protected!")) + return true -- false + end + + if not mobs.is_creative(clicker:get_player_name()) then + tool:take_item() -- take 1 protection rune + clicker:set_wielded_item(tool) + end + + self.protected = true + + local pos = self.object:get_pos() + pos.y = pos.y + self.collisionbox[2] + 0.5 + + effect(self.object:get_pos(), 25, "mobs_protect_particle.png", 0.5, 4, 2, 15) + + mob_sound(self, "mobs_spell") + + return true +end + + +local mob_obj = {} +local mob_sta = {} + +-- feeding, taming and breeding (thanks blert2112) +function mobs:feed_tame(self, clicker, feed_count, breed, tame) + + if not self.follow then + return false + end + + -- can eat/tame with item in hand + if follow_holding(self, clicker) then + + -- if not in creative then take item + if not mobs.is_creative(clicker:get_player_name()) then + + local item = clicker:get_wielded_item() + + item:take_item() + + clicker:set_wielded_item(item) + end + + -- increase health + self.health = self.health + 4 + + if self.health >= self.hp_max then + + self.health = self.hp_max + + if self.htimer < 1 then + + minetest.chat_send_player(clicker:get_player_name(), + S("@1 at full health (@2)", + self.name:split(":")[2], tostring(self.health))) + + self.htimer = 5 + end + end + + self.object:set_hp(self.health) + + update_tag(self) + + -- make children grow quicker + if self.child == true then + + self.hornytimer = self.hornytimer + 20 + + return true + end + + -- feed and tame + self.food = (self.food or 0) + 1 + if self.food >= feed_count then + + self.food = 0 + + if breed and self.hornytimer == 0 then + self.horny = true + end + + self.gotten = false + + if tame then + + if self.tamed == false then + minetest.chat_send_player(clicker:get_player_name(), + S("@1 has been tamed!", + self.name:split(":")[2])) + end + + self.tamed = true + + if not self.owner or self.owner == "" then + self.owner = clicker:get_player_name() + end + end + + -- make sound when fed so many times + mob_sound(self, self.sounds.random) + end + + return true + end + + local item = clicker:get_wielded_item() + + -- if mob has been tamed you can name it with a nametag + if item:get_name() == "mobs:nametag" + and clicker:get_player_name() == self.owner then + + local name = clicker:get_player_name() + + -- store mob and nametag stack in external variables + mob_obj[name] = self + mob_sta[name] = item + + local tag = self.nametag or "" + + minetest.show_formspec(name, "mobs_nametag", "size[8,4]" + .. default.gui_bg + .. default.gui_bg_img + .. "field[0.5,1;7.5,0;name;" .. minetest.formspec_escape(S("Enter name:")) .. ";" .. tag .. "]" + .. "button_exit[2.5,3.5;3,1;mob_rename;" .. minetest.formspec_escape(S("Rename")) .. "]") + + end + + return false + +end + + +-- inspired by blockmen's nametag mod +minetest.register_on_player_receive_fields(function(player, formname, fields) + + -- right-clicked with nametag and name entered? + if formname == "mobs_nametag" + and fields.name + and fields.name ~= "" then + + local name = player:get_player_name() + + if not mob_obj[name] + or not mob_obj[name].object then + return + end + + -- limit name entered to 64 characters long + if string.len(fields.name) > 64 then + fields.name = string.sub(fields.name, 1, 64) + end + + -- update nametag + mob_obj[name].nametag = fields.name + + update_tag(mob_obj[name]) + + -- if not in creative then take item + if not mobs.is_creative(name) then + + mob_sta[name]:take_item() + + player:set_wielded_item(mob_sta[name]) + end + + -- reset external variables + mob_obj[name] = nil + mob_sta[name] = nil + + end +end) + + +-- compatibility function for old entities to new modpack entities +function mobs:alias_mob(old_name, new_name) + + -- spawn egg + minetest.register_alias(old_name, new_name) + + -- entity + minetest.register_entity(":" .. old_name, { + + physical = false, + + on_step = function(self) + + local pos = self.object:get_pos() + + if minetest.registered_entities[new_name] then + minetest.add_entity(pos, new_name) + end + + self.object:remove() + end + }) +end +minetest.register_on_player_receive_fields(function(player, formname, fields) + for _,ref in pairs(minetest.luaentities) do + if ref.object and ref.type and ref.npc_name then + if ref.type == "npc" and ("npcf_"..ref.npc_name) == formname then + ref.on_receive_fields(ref, fields, player) + end + end + end +end) \ No newline at end of file diff --git a/mods/mobs/api_old.lua b/mods/mobs/api_old.lua new file mode 100644 index 0000000..7db26f4 --- /dev/null +++ b/mods/mobs/api_old.lua @@ -0,0 +1,4228 @@ + +-- Mobs Api (4th June 2017) + +mobs = {} +mobs.mod = "redo" +mobs.version = "20170604" + + +-- Intllib +local S + +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function(s, a, ...) a = {a, ...} + return s:gsub("@(%d+)", function(n) + return a[tonumber(n)] + end) + end + +end + +mobs.intllib = S + + +-- Invisibility mod check +mobs.invis = {} +if rawget(_G, "invisibility") then + mobs.invis = invisibility +end + + +-- localize math functions +local pi = math.pi +local square = math.sqrt +local sin = math.sin +local cos = math.cos +local abs = math.abs +local min = math.min +local max = math.max +local atann = math.atan +local random = math.random +local floor = math.floor +local atan = function(x) + if not x or x ~= x then + --error("atan bassed NaN") + return 0 + else + return atann(x) + end +end + + +-- Load settings +local damage_enabled = minetest.setting_getbool("enable_damage") +local peaceful_only = minetest.setting_getbool("only_peaceful_mobs") +local disable_blood = minetest.setting_getbool("mobs_disable_blood") +local creative = minetest.setting_getbool("creative_mode") +local spawn_protected = tonumber(minetest.setting_get("mobs_spawn_protected")) or 1 +local remove_far = minetest.setting_getbool("remove_far_mobs") +local difficulty = tonumber(minetest.setting_get("mob_difficulty")) or 1.0 +local show_health = minetest.setting_getbool("mob_show_health") ~= false +local max_per_block = tonumber(minetest.setting_get("max_objects_per_block") or 99) + +-- calculate aoc range for mob count +local aosrb = tonumber(minetest.setting_get("active_object_send_range_blocks")) +local abr = tonumber(minetest.setting_get("active_block_range")) +local aoc_range = max(aosrb, abr) * 16 + +-- pathfinding settings +local enable_pathfinding = true +local stuck_timeout = 3 -- how long before mob gets stuck in place and starts searching +local stuck_path_timeout = 10 -- how long will mob follow path before giving up + + +-- play sound +local mob_sound = function(self, sound) + + if sound then + minetest.sound_play(sound, { + object = self.object, + gain = 1.0, + max_hear_distance = self.sounds.distance + }) + end +end + + +-- attack player/mob +local do_attack = function(self, player) + + if self.state == "attack" then + return + end + + self.attack = player + self.state = "attack" + + if random(0, 100) < 90 then + mob_sound(self, self.sounds.war_cry) + end +end + + +-- move mob in facing direction +local set_velocity = function(self, v) + + local yaw = (self.object:getyaw() or 0) + self.rotate + + self.object:setvelocity({ + x = sin(yaw) * -v, + y = self.object:getvelocity().y, + z = cos(yaw) * v + }) +end + + +-- get overall speed of mob +local get_velocity = function(self) + + local v = self.object:getvelocity() + + return (v.x * v.x + v.z * v.z) ^ 0.5 +end + + +-- set yaw +local set_yaw = function(self, yaw) + + if not yaw or yaw ~= yaw then + yaw = 0 + end + + self:setyaw(yaw) + + return yaw +end + + +-- set defined animation +local set_animation = function(self, anim) + + if not self.animation then return end + + self.animation.current = self.animation.current or "" + + if anim == self.animation.current + or not self.animation[anim .. "_start"] + or not self.animation[anim .. "_end"] then + return + end + + self.animation.current = anim + + self.object:set_animation({ + x = self.animation[anim .. "_start"], + y = self.animation[anim .. "_end"] + }, self.animation[anim .. "_speed"] or self.animation.speed_normal or 15) + +end + + +-- above function exported for mount.lua +function mobs:set_animation(anim) + set_animation(self, anim) +end + + +-- this is a faster way to calculate distance +local get_distance = function(a, b) + + local x, y, z = a.x - b.x, a.y - b.y, a.z - b.z + + return square(x * x + y * y + z * z) +end + + +-- check line of sight (BrunoMine) +local line_of_sight = function(self, pos1, pos2, stepsize) + + stepsize = stepsize or 1 + + local s, pos = minetest.line_of_sight(pos1, pos2, stepsize) + + -- normal walking and flying mobs can see you through air + if s == true then + return true + end + + -- New pos1 to be analyzed + local npos1 = {x = pos1.x, y = pos1.y, z = pos1.z} + + local r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + -- Checks the return + if r == true then return true end + + -- Nodename found + local nn = minetest.get_node(pos).name + + -- Target Distance (td) to travel + local td = get_distance(pos1, pos2) + + -- Actual Distance (ad) traveled + local ad = 0 + + -- It continues to advance in the line of sight in search of a real + -- obstruction which counts as 'normal' nodebox. + while minetest.registered_nodes[nn] + and (minetest.registered_nodes[nn].walkable == false + or minetest.registered_nodes[nn].drawtype == "nodebox") do + + -- Check if you can still move forward + if td < ad + stepsize then + return true -- Reached the target + end + + -- Moves the analyzed pos + local d = get_distance(pos1, pos2) + + npos1.x = ((pos2.x - pos1.x) / d * stepsize) + pos1.x + npos1.y = ((pos2.y - pos1.y) / d * stepsize) + pos1.y + npos1.z = ((pos2.z - pos1.z) / d * stepsize) + pos1.z + + -- NaN checks + if d == 0 + or npos1.x ~= npos1.x + or npos1.y ~= npos1.y + or npos1.z ~= npos1.z then + return false + end + + ad = ad + stepsize + + -- scan again + r, pos = minetest.line_of_sight(npos1, pos2, stepsize) + + if r == true then return true end + + -- New Nodename found + nn = minetest.get_node(pos).name + + end + + return false +end + + +-- are we flying in what we are suppose to? (taikedz) +local flight_check = function(self, pos_w) + + local nod = self.standing_in + + if type(self.fly_in) == "string" + and (nod == self.fly_in or nod == self.fly_in:gsub("_source", "_flowing")) then + + return true + + elseif type(self.fly_in) == "table" then + + for _,fly_in in pairs(self.fly_in) do + + if nod == fly_in or nod == fly_in:gsub("_source", "_flowing") then + + return true + end + end + end + + return false +end + + +-- particle effects +local effect = function(pos, amount, texture, min_size, max_size, radius, gravity) + + radius = radius or 2 + min_size = min_size or 0.5 + max_size = max_size or 1 + gravity = gravity or -10 + + minetest.add_particlespawner({ + amount = amount, + time = 0.25, + minpos = pos, + maxpos = pos, + minvel = {x = -radius, y = -radius, z = -radius}, + maxvel = {x = radius, y = radius, z = radius}, + minacc = {x = 0, y = gravity, z = 0}, + maxacc = {x = 0, y = gravity, z = 0}, + minexptime = 0.1, + maxexptime = 1, + minsize = min_size, + maxsize = max_size, + texture = texture, + }) +end + + +-- update nametag colour +local update_tag = function(self) + + local col = "#00FF00" + local qua = self.hp_max / 4 + + if self.health <= floor(qua * 3) then + col = "#FFFF00" + end + + if self.health <= floor(qua * 2) then + col = "#FF6600" + end + + if self.health <= floor(qua) then + col = "#FF0000" + end + + self.object:set_properties({ + nametag = self.nametag, + nametag_color = col + }) + +end + + +-- drop items +local item_drop = function(self, cooked) + + local obj, item, num + local pos = self.object:getpos() + + self.drops = self.drops or {} -- nil check + + for n = 1, #self.drops do + + if random(1, self.drops[n].chance) == 1 then + + num = random(self.drops[n].min, self.drops[n].max) + item = self.drops[n].name + + -- cook items when true + if cooked then + + local output = minetest.get_craft_result({ + method = "cooking", width = 1, items = {item}}) + + if output and output.item and not output.item:is_empty() then + item = output.item:get_name() + end + end + + -- add item if it exists + obj = minetest.add_item(pos, ItemStack(item .. " " .. num)) + + if obj and obj:get_luaentity() then + + obj:setvelocity({ + x = random(-10, 10) / 9, + y = 6, + z = random(-10, 10) / 9, + }) + elseif obj then + obj:remove() -- item does not exist + end + end + end + + self.drops = {} +end + + +-- check if mob is dead or only hurt +local check_for_death = function(self, cause) + + -- has health actually changed? + if self.health == self.old_health and self.health > 0 then + return + end + + self.old_health = self.health + + -- still got some health? play hurt sound + if self.health > 0 then + + mob_sound(self, self.sounds.damage) + + -- make sure health isn't higher than max + if self.health > self.hp_max then + self.health = self.hp_max + end + + -- backup nametag so we can show health stats + if not self.nametag2 then + self.nametag2 = self.nametag or "" + end + + if show_health then + + self.htimer = 2 + self.nametag = "β™₯ " .. self.health .. " / " .. self.hp_max + + update_tag(self) + end + + return false + end + + if cause == "lava" then + item_drop(self, true) + else + item_drop(self, nil) + end + + mob_sound(self, self.sounds.death) + + local pos = self.object:getpos() + + -- execute custom death function + if self.on_die then + + self.on_die(self, pos) + self.object:remove() + + return true + end + + -- default death function and die animation (if defined) + if self.animation + and self.animation.die_start + and self.animation.die_end then + + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + self.passive = true + self.state = "die" + set_velocity(self, 0) + set_animation(self, "die") + + minetest.after(2, function(self) + self.object:remove() + end, self) + else + self.object:remove() + end + + effect(pos, 20, "tnt_smoke.png") + + return true +end + + +-- check if within physical map limits (-30911 to 30927) +local within_limits = function(pos, radius) + + if (pos.x - radius) > -30913 + and (pos.x + radius) < 30928 + and (pos.y - radius) > -30913 + and (pos.y + radius) < 30928 + and (pos.z - radius) > -30913 + and (pos.z + radius) < 30928 then + return true -- within limits + end + + return false -- beyond limits +end + + +-- is mob facing a cliff +local is_at_cliff = function(self) + + if self.fear_height == 0 then -- 0 for no falling protection! + return false + end + + local yaw = self.object:getyaw() + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + local pos = self.object:getpos() + local ypos = pos.y + self.collisionbox[2] -- just above floor + + if minetest.line_of_sight( + {x = pos.x + dir_x, y = ypos, z = pos.z + dir_z}, + {x = pos.x + dir_x, y = ypos - self.fear_height, z = pos.z + dir_z} + , 1) then + + return true + end + + return false +end + + +-- get node but use fallback for nil or unknown +local node_ok = function(pos, fallback) + + fallback = fallback or "default:dirt" + + local node = minetest.get_node_or_nil(pos) + + if not node then + return minetest.registered_nodes[fallback] + end + + if minetest.registered_nodes[node.name] then + return node + end + + return minetest.registered_nodes[fallback] +end + + +-- environmental damage (water, lava, fire, light) +local do_env_damage = function(self) + + -- feed/tame text timer (so mob 'full' messages dont spam chat) + if self.htimer > 0 then + self.htimer = self.htimer - 1 + end + + -- reset nametag after showing health stats + if self.htimer < 1 and self.nametag2 then + + self.nametag = self.nametag2 + self.nametag2 = nil + + update_tag(self) + end + + local pos = self.object:getpos() + + self.time_of_day = minetest.get_timeofday() + + -- remove mob if beyond map limits + if not within_limits(pos, 0) then + self.object:remove() + return + end + + -- daylight above ground + if self.light_damage ~= 0 + and pos.y > 0 + and self.time_of_day > 0.2 + and self.time_of_day < 0.8 + and (minetest.get_node_light(pos) or 0) > 12 then + + self.health = self.health - self.light_damage + + effect(pos, 5, "tnt_smoke.png") + + if check_for_death(self, "light") then return end + end + + -- what is mob standing in? + pos.y = pos.y + self.collisionbox[2] + 0.1 -- foot level + self.standing_in = node_ok(pos, "air").name +-- print ("standing in " .. self.standing_in) + + -- don't fall when on ignore, just stand still + if self.standing_in == "ignore" then + self.object:setvelocity({x = 0, y = 0, z = 0}) + --print ("--- stopping on ignore") + end + + if self.water_damage ~= 0 + or self.lava_damage ~= 0 then + + local nodef = minetest.registered_nodes[self.standing_in] + + pos.y = pos.y + 1 + + -- water + if nodef.groups.water then + + if self.water_damage ~= 0 then + + self.health = self.health - self.water_damage + + effect(pos, 5, "bubble.png", nil, nil, 1, nil) + + if check_for_death(self, "water") then return end + end + + -- lava or fire + elseif (nodef.groups.lava + or self.standing_in == "fire:basic_flame" + or self.standing_in == "fire:permanent_flame") then + + if self.lava_damage ~= 0 then + + self.health = self.health - self.lava_damage + + effect(pos, 5, "fire_basic_flame.png", nil, nil, 1, nil) + + if check_for_death(self, "lava") then return end + end + + -- damage_per_second node check + elseif minetest.registered_nodes[self.standing_in].damage_per_second ~= 0 then + + local dps = minetest.registered_nodes[self.standing_in].damage_per_second + + self.health = self.health - dps + + effect(pos, 5, "tnt_smoke.png") + end + end + + check_for_death(self, "") +end + + +-- jump if facing a solid node (not fences or gates) +local do_jump = function(self) + + if not self.jump + or self.jump_height == 0 + or self.fly + or self.child then + return false + end + + -- something stopping us while moving? + if self.state ~= "stand" + and get_velocity(self) > 0.5 + and self.object:getvelocity().y ~= 0 then + return false + end + + local pos = self.object:getpos() + local yaw = self.object:getyaw() + + -- what is mob standing on? + pos.y = pos.y + self.collisionbox[2] - 0.2 + + local nod = node_ok(pos) + +--print ("standing on:", nod.name, pos.y) + + if minetest.registered_nodes[nod.name].walkable == false then + return false + end + + -- where is front + local dir_x = -sin(yaw) * (self.collisionbox[4] + 0.5) + local dir_z = cos(yaw) * (self.collisionbox[4] + 0.5) + + -- what is in front of mob? + local nod = node_ok({ + x = pos.x + dir_x, + y = pos.y + 0.5, + z = pos.z + dir_z + }) + + -- thin blocks that do not need to be jumped + if nod.name == "default:snow" then + return false + end + +--print ("in front:", nod.name, pos.y + 0.5) + + if (minetest.registered_items[nod.name].walkable + and not nod.name:find("fence") + and not nod.name:find("gate")) + or self.walk_chance == 0 then + + local v = self.object:getvelocity() + + v.y = self.jump_height -- + 1 + + set_animation(self, "jump") -- only when defined + + self.object:setvelocity(v) + + mob_sound(self, self.sounds.jump) + + return true + end + + return false +end + + +-- blast damage to entities nearby (modified from TNT mod) +local entity_physics = function(pos, radius) + + radius = radius * 2 + + local objs = minetest.get_objects_inside_radius(pos, radius) + local obj_pos, dist + + for n = 1, #objs do + + obj_pos = objs[n]:getpos() + + dist = get_distance(pos, obj_pos) + if dist < 1 then dist = 1 end + + local damage = floor((4 / dist) * radius) + local ent = objs[n]:get_luaentity() + + -- punches work on entities AND players + objs[n]:punch(objs[n], 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, nil) + end +end + + +-- should mob follow what I'm holding ? +local follow_holding = function(self, clicker) + + if mobs.invis[clicker:get_player_name()] then + return false + end + + local item = clicker:get_wielded_item() + local t = type(self.follow) + + -- single item + if t == "string" + and item:get_name() == self.follow then + return true + + -- multiple items + elseif t == "table" then + + for no = 1, #self.follow do + + if self.follow[no] == item:get_name() then + return true + end + end + end + + return false +end + + +-- find two animals of same type and breed if nearby and horny +local breed = function(self) + + -- child takes 240 seconds before growing into adult + if self.child == true then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer > 240 then + + self.child = false + self.hornytimer = 0 + + self.object:set_properties({ + textures = self.base_texture, + mesh = self.base_mesh, + visual_size = self.base_size, + collisionbox = self.base_colbox, + }) + + -- jump when fully grown so not to fall into ground + self.object:setvelocity({ + x = 0, + y = self.jump_height, + z = 0 + }) + end + + return + end + + -- horny animal can mate for 40 seconds, + -- afterwards horny animal cannot mate again for 200 seconds + if self.horny == true + and self.hornytimer < 240 then + + self.hornytimer = self.hornytimer + 1 + + if self.hornytimer >= 240 then + self.hornytimer = 0 + self.horny = false + end + end + + -- find another same animal who is also horny and mate if close enough + if self.horny == true + and self.hornytimer <= 40 then + + local pos = self.object:getpos() + + effect({x = pos.x, y = pos.y + 1, z = pos.z}, 8, "heart.png", 3, 4, 1, 0.1) + + local objs = minetest.get_objects_inside_radius(pos, 3) + local num = 0 + local ent = nil + + for n = 1, #objs do + + ent = objs[n]:get_luaentity() + + -- check for same animal with different colour + local canmate = false + + if ent then + + if ent.name == self.name then + canmate = true + else + local entname = string.split(ent.name,":") + local selfname = string.split(self.name,":") + + if entname[1] == selfname[1] then + entname = string.split(entname[2],"_") + selfname = string.split(selfname[2],"_") + + if entname[1] == selfname[1] then + canmate = true + end + end + end + end + + if ent + and canmate == true + and ent.horny == true + and ent.hornytimer <= 40 then + num = num + 1 + end + + -- found your mate? then have a baby + if num > 1 then + + self.hornytimer = 41 + ent.hornytimer = 41 + + -- spawn baby + minetest.after(5, function() + + local mob = minetest.add_entity(pos, self.name) + local ent2 = mob:get_luaentity() + local textures = self.base_texture + + if self.child_texture then + textures = self.child_texture[1] + end + + mob:set_properties({ + textures = textures, + visual_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5, + }, + collisionbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5, + }, + }) + ent2.child = true + ent2.tamed = true + ent2.owner = self.owner + end) + + num = 0 + + break + end + end + end +end + + +-- find and replace what mob is looking for (grass, wheat etc.) +local replace = function(self, pos) + + if not self.replace_rate + or not self.replace_what + or self.child == true + or self.object:getvelocity().y ~= 0 + or random(1, self.replace_rate) > 1 then + return + end + + local what, with, y_offset + + if type(self.replace_what[1]) == "table" then + + local num = random(#self.replace_what) + + what = self.replace_what[num][1] or "" + with = self.replace_what[num][2] or "" + y_offset = self.replace_what[num][3] or 0 + else + what = self.replace_what + with = self.replace_with or "" + y_offset = self.replace_offset or 0 + end + + pos.y = pos.y + y_offset + + if #minetest.find_nodes_in_area(pos, pos, what) > 0 then + +-- print ("replace node = ".. minetest.get_node(pos).name, pos.y) + + minetest.set_node(pos, {name = with}) + + -- when cow/sheep eats grass, replace wool and milk + if self.gotten == true then + self.gotten = false + self.object:set_properties(self) + end + end +end + + +-- check if daytime and also if mob is docile during daylight hours +local day_docile = function(self) + + if self.docile_by_day == false then + + return false + + elseif self.docile_by_day == true + and self.time_of_day > 0.2 + and self.time_of_day < 0.8 then + + return true + end +end + + +-- path finding and smart mob routine by rnd +local smart_mobs = function(self, s, p, dist, dtime) + + local s1 = self.path.lastpos + + -- is it becoming stuck? + if abs(s1.x - s.x) + abs(s1.z - s.z) < 1.5 then + self.path.stuck_timer = self.path.stuck_timer + dtime + else + self.path.stuck_timer = 0 + end + + self.path.lastpos = {x = s.x, y = s.y, z = s.z} + + -- im stuck, search for path + if (self.path.stuck_timer > stuck_timeout and not self.path.following) + or (self.path.stuck_timer > stuck_path_timeout and self.path.following) then + + self.path.stuck_timer = 0 + + -- lets try find a path, first take care of positions + -- since pathfinder is very sensitive + local sheight = self.collisionbox[5] - self.collisionbox[2] + + -- round position to center of node to avoid stuck in walls + -- also adjust height for player models! + s.x = floor(s.x + 0.5) + s.y = floor(s.y + 0.5) - sheight + s.z = floor(s.z + 0.5) + + local ssight, sground = minetest.line_of_sight(s, { + x = s.x, y = s.y - 4, z = s.z}, 1) + + -- determine node above ground + if not ssight then + s.y = sground.y + 1 + end + + local p1 = self.attack:getpos() + + p1.x = floor(p1.x + 0.5) + p1.y = floor(p1.y + 0.5) + p1.z = floor(p1.z + 0.5) + + local dropheight = 10 + if self.fear_height ~= 0 then dropheight = self.fear_height end + +-- self.path.way = minetest.find_path(s, p1, 16, 2, 6, "Dijkstra") -- "A*_noprefetch" + self.path.way = minetest.find_path(s, p1, 16, self.stepheight, dropheight, "Dijkstra") + + -- attempt to unstick mob that is "daydreaming" + self.object:setpos({ + x = s.x + 0.1 * (random() * 2 - 1), + y = s.y + 1, + z = s.z + 0.1 * (random() * 2 - 1) + }) + + self.state = "" + do_attack(self, self.attack) + + -- no path found, try something else + if not self.path.way then + + self.path.following = false + + -- lets make way by digging/building if not accessible + if self.pathfinding == 2 then + + -- is player higher than mob? + if s.y < p1.y then + + -- build upwards + if not minetest.is_protected(s, "") then + + local ndef1 = minetest.registered_nodes[self.standing_in] + + if ndef1 and (ndef1.buildable_to or ndef1.groups.liquid) then + + minetest.set_node(s, {name = "default:dirt"}) + end + end + + local sheight = math.ceil(self.collisionbox[5]) + 1 + + -- assume mob is 2 blocks high so it digs above its head + s.y = s.y + sheight + + -- remove one block above to make room to jump + if not minetest.is_protected(s, "") then + + local node1 = node_ok(s, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable then + + minetest.set_node(s, {name = "air"}) + minetest.add_item(s, ItemStack(node1)) + + end + end + + s.y = s.y - sheight + self.object:setpos({x = s.x, y = s.y + 2, z = s.z}) + + else -- dig 2 blocks to make door toward player direction + + local yaw1 = self.object:getyaw() + pi / 2 + local p1 = { + x = s.x + cos(yaw1), + y = s.y, + z = s.z + sin(yaw1) + } + + if not minetest.is_protected(p1, "") then + + local node1 = node_ok(p1, "air").name + local ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + p1.y = p1.y + 1 + node1 = node_ok(p1, "air").name + ndef1 = minetest.registered_nodes[node1] + + if node1 ~= "air" + and node1 ~= "ignore" + and ndef1 + and not ndef1.groups.level + and not ndef1.groups.unbreakable then + + minetest.add_item(p1, ItemStack(node1)) + minetest.set_node(p1, {name = "air"}) + end + + end + end + end + + -- will try again in 2 second + self.path.stuck_timer = stuck_timeout - 2 + + -- frustration! cant find the damn path :( + mob_sound(self, self.sounds.random) + else + -- yay i found path + mob_sound(self, self.sounds.attack) + + set_velocity(self, self.walk_velocity) + + -- follow path now that it has it + self.path.following = true + end + end +end + + +-- specific attacks +local specific_attack = function(list, what) + + -- no list so attack default (player, animals etc.) + if list == nil then + return true + end + + -- is found entity on list to attack? + for no = 1, #list do + + if list[no] == what then + return true + end + end + + return false +end + + +-- monster find someone to attack +local monster_attack = function(self) + + if self.type ~= "monster" + or not damage_enabled + or self.state == "attack" + or day_docile(self) then + return + end + + local s = self.object:getpos() + local p, sp, dist + local player, obj, min_player + local type, name = "", "" + local min_dist = self.view_range + 1 + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + if objs[n]:is_player() then + + if mobs.invis[ objs[n]:get_player_name() ] then + + type = "" + else + player = objs[n] + type = "player" + name = "player" + end + else + obj = objs[n]:get_luaentity() + + if obj then + player = obj.object + type = obj.type + name = obj.name or "" + end + end + + -- find specific mob to attack, failing that attack player/npc/animal + if specific_attack(self.specific_attack, name) + and (type == "player" or type == "npc" + or (type == "animal" and self.attack_animals == true)) then + + s = self.object:getpos() + p = player:getpos() + sp = s + + -- aim higher to make looking up hills more realistic + p.y = p.y + 1 + sp.y = sp.y + 1 + + dist = get_distance(p, s) + + if dist < self.view_range then + -- field of view check goes here + + -- choose closest player to attack + if line_of_sight(self, sp, p, 2) == true + and dist < min_dist then + min_dist = dist + min_player = player + end + end + end + end + + -- attack player + if min_player then + do_attack(self, min_player) + end +end + + +-- npc, find closest monster to attack +local npc_attack = function(self) + + if self.type ~= "npc" + or not self.attacks_monsters + or self.state == "attack" then + return + end + + local s = self.object:getpos() + local min_dist = self.view_range + 1 + local obj, min_player = nil, nil + local objs = minetest.get_objects_inside_radius(s, self.view_range) + + for n = 1, #objs do + + obj = objs[n]:get_luaentity() + + if obj and obj.type == "monster" then + + local p = obj.object:getpos() + + dist = get_distance(p, s) + + if dist < min_dist then + min_dist = dist + min_player = obj.object + end + end + end + + if min_player then + do_attack(self, min_player) + end +end + + +-- follow player if owner or holding item, if fish outta water then flop +local follow_flop = function(self) + -- find player to follow + if (self.follow ~= "" or self.order == "follow") and not self.following and self.state ~= "attack" and self.state ~= "runaway" then + local s = self.object:getpos() + local players = minetest.get_connected_players() + for n = 1, #players do + if get_distance(players[n]:getpos(), s) < self.view_range and not mobs.invis[ players[n]:get_player_name() ] then + self.following = players[n] + break + end + end + end + if self.type == "npc" + and self.order == "follow" + and self.state ~= "attack" + and self.owner ~= "" then + + -- npc stop following player if not owner + if self.following + and self.owner + and self.owner ~= self.following:get_player_name() then + self.following = nil + end + else + -- stop following player if not holding specific item + if self.following + and self.following:is_player() + and follow_holding(self, self.following) == false then + self.following = nil + end + + end + + -- follow that thing + if self.following then + + local s = self.object:getpos() + local p + + if self.following:is_player() then + + p = self.following:getpos() + + elseif self.following.object then + + p = self.following.object:getpos() + end + + if p then + + local dist = get_distance(p, s) + + -- dont follow if out of range + if dist > self.view_range then + self.following = nil + else + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + local yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self.object, yaw) + + -- anyone but standing npc's can move along + if dist > self.reach + and self.order ~= "stand" then + + set_velocity(self, self.walk_velocity) + + if self.walk_chance ~= 0 then + set_animation(self, "walk") + end + else + set_velocity(self, 0) + set_animation(self, "stand") + end + + return + end + end + end + + -- swimmers flop when out of their element, and swim again when back in + if self.fly then + local s = self.object:getpos() + if not flight_check(self, s) then + + self.state = "flop" + self.object:setvelocity({x = 0, y = -5, z = 0}) + + set_animation(self, "stand") + + return + elseif self.state == "flop" then + self.state = "stand" + end + end +end + + +-- dogshoot attack switch and counter function +local dogswitch = function(self, dtime) + + -- switch mode not activated + if not self.dogshoot_switch + or not dtime then + return 0 + end + + self.dogshoot_count = self.dogshoot_count + dtime + + if (self.dogshoot_switch == 1 + and self.dogshoot_count > self.dogshoot_count_max) + or (self.dogshoot_switch == 2 + and self.dogshoot_count > self.dogshoot_count2_max) then + + self.dogshoot_count = 0 + + if self.dogshoot_switch == 1 then + self.dogshoot_switch = 2 + else + self.dogshoot_switch = 1 + end + end + + return self.dogshoot_switch +end + + +-- execute current state (stand, walk, run, attacks) +local do_states = function(self, dtime) + + local yaw = 0 + + if self.state == "stand" then + + if random(1, 4) == 1 then + + local lp = nil + local s = self.object:getpos() + local objs = minetest.get_objects_inside_radius(s, 3) + + for n = 1, #objs do + + if objs[n]:is_player() then + lp = objs[n]:getpos() + break + end + end + + -- look at any players nearby, otherwise turn randomly + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + else + yaw = (random(0, 360) - 180) / 180 * pi + end + + yaw = set_yaw(self.object, yaw) + end + + set_velocity(self, 0) + set_animation(self, "stand") + + -- npc's ordered to stand stay standing + if self.type ~= "npc" + or self.order ~= "stand" then + + if self.walk_chance ~= 0 + and random(1, 100) <= self.walk_chance + and is_at_cliff(self) == false then + + set_velocity(self, self.walk_velocity) + self.state = "walk" + set_animation(self, "walk") + + -- fly up/down randombly for flying mobs + if self.fly and random(1, 100) <= self.walk_chance then + + local v = self.object:getvelocity() + local ud = random(-1, 2) / 9 + + self.object:setvelocity({x = v.x, y = ud, z = v.z}) + end + end + end + + elseif self.state == "walk" then + + local s = self.object:getpos() + local lp = nil + + -- is there something I need to avoid? + if self.water_damage > 0 + and self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water", "group:lava"}) + + elseif self.water_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:water"}) + + elseif self.lava_damage > 0 then + + lp = minetest.find_node_near(s, 1, {"group:lava"}) + end + + if lp then + + -- if mob in water or lava then look for land + if (self.lava_damage + and minetest.registered_nodes[self.standing_in].groups.lava) + or (self.water_damage + and minetest.registered_nodes[self.standing_in].groups.water) then + + lp = minetest.find_node_near(s, 5, {"group:soil", "group:stone", + "group:sand", "default:ice", "default:snowblock"}) + + -- did we find land? + if lp then + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + + -- look towards land and jump/move in that direction + yaw = set_yaw(self.object, yaw) + do_jump(self) + set_velocity(self, self.walk_velocity) + else + yaw = (random(0, 360) - 180) / 180 * pi + end + + else + + local vec = { + x = lp.x - s.x, + z = lp.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if lp.x > s.x then yaw = yaw + pi end + end + + yaw = set_yaw(self.object, yaw) + + -- otherwise randomly turn + elseif random(1, 100) <= 30 then + + yaw = random() * 2 * pi + + yaw = set_yaw(self.object, yaw) + end + + -- stand for great fall in front + local temp_is_cliff = is_at_cliff(self) + + if temp_is_cliff + or random(1, 100) <= 30 then + + set_velocity(self, 0) + self.state = "stand" + set_animation(self, "stand") + else + set_velocity(self, self.walk_velocity) + + if flight_check(self) + and self.animation + and self.animation.fly_start + and self.animation.fly_end then + set_animation(self, "fly") + else + set_animation(self, "walk") + end + end + + -- runaway when punched + elseif self.state == "runaway" then + + self.runaway_timer = self.runaway_timer + 1 + + -- stop after 5 seconds or when at cliff + if self.runaway_timer > 5 + or is_at_cliff(self) then + self.runaway_timer = 0 + set_velocity(self, 0) + self.state = "stand" + set_animation(self, "stand") + else + set_velocity(self, self.run_velocity) + set_animation(self, "walk") + end + + -- attack routines (explode, dogfight, shoot, dogshoot) + elseif self.state == "attack" then + + -- calculate distance from mob and enemy + local s = self.object:getpos() + local p = self.attack:getpos() or s + local dist = get_distance(p, s) + + -- stop attacking if player or out of range + if dist > self.view_range + or not self.attack + or not self.attack:getpos() + or self.attack:get_hp() <= 0 + or (self.attack:is_player() and mobs.invis[ self.attack:get_player_name() ]) then + + --print(" ** stop attacking **", dist, self.view_range) + self.state = "stand" + set_velocity(self, 0) + set_animation(self, "stand") + self.attack = nil + self.v_start = false + self.timer = 0 + self.blinktimer = 0 + + return + end + + if self.attack_type == "explode" then + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self.object, yaw) + + if dist > self.reach then + + if not self.v_start then + + self.v_start = true + set_velocity(self, self.run_velocity) + self.timer = 0 + self.blinktimer = 0 + else + self.timer = 0 + self.blinktimer = 0 + + set_velocity(self, self.run_velocity) + end + + set_animation(self, "run") + else + set_velocity(self, 0) + set_animation(self, "punch") + + self.timer = self.timer + dtime + self.blinktimer = (self.blinktimer or 0) + dtime + + if self.blinktimer > 0.2 then + + self.blinktimer = 0 + + if self.blinkstatus then + self.object:settexturemod("") + else + self.object:settexturemod("^[brighten") + end + + self.blinkstatus = not self.blinkstatus + end + + if self.timer > 3 then + + local pos = self.object:getpos() + local radius = self.explosion_radius or 1 + + -- dont damage anything if area protected or next to water + if minetest.find_node_near(pos, 1, {"group:water"}) + or minetest.is_protected(pos, "") then + + mob_sound(self, self.sounds.explode) + + self.object:remove() + + effect(pos, 15, "tnt_smoke.png") + + -- hurt player/mobs caught in blast area + entity_physics(pos, radius) + + return + end + + pos.y = pos.y - 1 + + mobs:explosion(pos, radius, 1, 1, self.sounds.explode) + + self.object:remove() + + entity_physics(pos, radius) + + return + end + end + + elseif self.attack_type == "dogfight" + or (self.attack_type == "dogshoot" and dogswitch(self, dtime) == 2) + or (self.attack_type == "dogshoot" and dist <= self.reach and dogswitch(self) == 0) then + + if self.fly + and dist > self.reach then + + local p1 = s + local me_y = floor(p1.y) + local p2 = p + local p_y = floor(p2.y + 1) + local v = self.object:getvelocity() + + if flight_check(self, s) then + + if me_y < p_y then + + self.object:setvelocity({ + x = v.x, + y = 1 * self.walk_velocity, + z = v.z + }) + + elseif me_y > p_y then + + self.object:setvelocity({ + x = v.x, + y = -1 * self.walk_velocity, + z = v.z + }) + end + else + if me_y < p_y then + + self.object:setvelocity({ + x = v.x, + y = 0.01, + z = v.z + }) + + elseif me_y > p_y then + + self.object:setvelocity({ + x = v.x, + y = -0.01, + z = v.z + }) + end + end + + end + + -- rnd: new movement direction + if self.path.following + and self.path.way + and self.attack_type ~= "dogshoot" then + + -- no paths longer than 50 + if #self.path.way > 50 + or dist < self.reach then + self.path.following = false + return + end + + local p1 = self.path.way[1] + + if not p1 then + self.path.following = false + return + end + + if abs(p1.x-s.x) + abs(p1.z - s.z) < 0.6 then + -- reached waypoint, remove it from queue + table.remove(self.path.way, 1) + end + + -- set new temporary target + p = {x = p1.x, y = p1.y, z = p1.z} + end + + local vec = { + x = p.x - s.x, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self.object, yaw) + + -- move towards enemy if beyond mob reach + if dist > self.reach then + + -- path finding by rnd + if self.pathfinding -- only if mob has pathfinding enabled + and enable_pathfinding then + + smart_mobs(self, s, p, dist, dtime) + end + + if is_at_cliff(self) then + + set_velocity(self, 0) + set_animation(self, "stand") + else + + if self.path.stuck then + set_velocity(self, self.walk_velocity) + else + set_velocity(self, self.run_velocity) + end + + set_animation(self, "run") + end + + else -- rnd: if inside reach range + + self.path.stuck = false + self.path.stuck_timer = 0 + self.path.following = false -- not stuck anymore + + set_velocity(self, 0) + + if not self.custom_attack then + + if self.timer > 1 then + + self.timer = 0 + + if self.double_melee_attack + and random(1, 2) == 1 then + set_animation(self, "punch2") + else + set_animation(self, "punch") + end + + local p2 = p + local s2 = s + + p2.y = p2.y + .5 + s2.y = s2.y + .5 + + if line_of_sight(self, p2, s2) == true then + + -- play attack sound + mob_sound(self, self.sounds.attack) + + -- punch player (or what player is attached to) + local attached = self.attack:get_attach() + if attached then + self.attack = attached + end + self.attack:punch(self.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = self.damage} + }, nil) + end + end + else -- call custom attack every second + if self.custom_attack + and self.timer > 1 then + + self.timer = 0 + + self.custom_attack(self, p) + end + end + end + + elseif self.attack_type == "shoot" + or (self.attack_type == "dogshoot" and dogswitch(self, dtime) == 1) + or (self.attack_type == "dogshoot" and dist > self.reach and dogswitch(self) == 0) then + + p.y = p.y - .5 + s.y = s.y + .5 + + local dist = get_distance(p, s) + local vec = { + x = p.x - s.x, + y = p.y - s.y, + z = p.z - s.z + } + + yaw = (atan(vec.z / vec.x) + pi / 2) - self.rotate + + if p.x > s.x then yaw = yaw + pi end + + yaw = set_yaw(self.object, yaw) + + set_velocity(self, 0) + + if self.shoot_interval + and self.timer > self.shoot_interval + and random(1, 100) <= 60 then + + self.timer = 0 + set_animation(self, "shoot") + + -- play shoot attack sound + mob_sound(self, self.sounds.shoot_attack) + + 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 ent = obj:get_luaentity() + + if ent then + local amount = (vec.x * vec.x + vec.y * vec.y + vec.z * vec.z) ^ 0.5 + local v = ent.velocity or 1 -- or set to default + ent.switch = 1 + ent.owner_id = tostring(self.object) -- add unique owner id to arrow + + -- offset makes shoot aim accurate + vec.y = vec.y + self.shoot_offset + vec.x = vec.x * (v / amount) + vec.y = vec.y * (v / amount) + vec.z = vec.z * (v / amount) + + obj:setvelocity(vec) + else + obj:remove() -- arrow entity does not exist + end + end + end + end +end + + +-- falling and fall damage +local falling = function(self, pos) + + if self.fly then + return + end + + -- floating in water (or falling) + local v = self.object:getvelocity() + + -- going up then apply gravity + if v.y > 0.1 then + + self.object:setacceleration({ + x = 0, + y = self.fall_speed, + z = 0 + }) + end + + -- in water then float up +-- if minetest.registered_nodes[node_ok(pos).name].groups.liquid then + if minetest.registered_nodes[node_ok(pos).name].groups.water then + + if self.floats == 1 then + + self.object:setacceleration({ + x = 0, + y = -self.fall_speed / (max(1, v.y) ^ 2), + z = 0 + }) + end + else + -- fall downwards + self.object:setacceleration({ + x = 0, + y = self.fall_speed, + z = 0 + }) + + -- fall damage + if self.fall_damage == 1 + and self.object:getvelocity().y == 0 then + + local d = (self.old_y or 0) - self.object:getpos().y + + if d > 5 then + + self.health = self.health - floor(d - 5) + + effect(pos, 5, "tnt_smoke.png", 1, 2, 2, nil) + + if check_for_death(self, "fall") then + return + end + end + + self.old_y = self.object:getpos().y + end + end +end + + +-- deal damage and effects when mob punched +local mob_punch = function(self, hitter, tflp, tool_capabilities, dir) + -- mob health check + if self.health <= 0 then + return + end + + -- error checking when mod profiling is enabled + if not tool_capabilities then + print (S("[MOBS] mod profiling enabled, damage not enabled")) + return + end + + -- is mob protected? + if self.protected and hitter:is_player() + and minetest.is_protected(self.object:getpos(), hitter:get_player_name()) then + minetest.chat_send_player(hitter:get_player_name(), "Mob has been protected!") + return + end + + + -- weapon wear + local weapon = hitter:get_wielded_item() + local punch_interval = 1.4 + + -- calculate mob damage + local damage = 0 + local armor = self.object:get_armor_groups() or {} + local tmp + + -- quick error check incase it ends up 0 (serialize.h check test) + if tflp == 0 then + tflp = 0.2 + end + + for group,_ in pairs( (tool_capabilities.damage_groups or {}) ) do + + tmp = tflp / (tool_capabilities.full_punch_interval or 1.4) + + if tmp < 0 then + tmp = 0.0 + elseif tmp > 1 then + tmp = 1.0 + end + + damage = damage + (tool_capabilities.damage_groups[group] or 0) + * tmp * ((armor[group] or 0) / 100.0) + end + + -- check for tool immunity or special damage + for n = 1, #self.immune_to do + + if self.immune_to[n][1] == weapon:get_name() then + + damage = self.immune_to[n][2] or 0 + break + end + end + + -- healing + if damage <= -1 then + self.health = self.health - floor(damage) + return + end + +-- print ("Mob Damage is", damage) + + -- add weapon wear + if tool_capabilities then + punch_interval = tool_capabilities.full_punch_interval or 1.4 + end + -- only play hit sound and show blood effects if damage is 1 or over + if damage >= 1 then + + -- weapon sounds + if weapon:get_definition().sounds ~= nil then + + local s = random(0, #weapon:get_definition().sounds) + + minetest.sound_play(weapon:get_definition().sounds[s], { + object = hitter, + max_hear_distance = 8 + }) + else + minetest.sound_play("default_punch", { + object = hitter, + max_hear_distance = 5 + }) + end + + -- blood_particles + if self.blood_amount > 0 + and not disable_blood then + + local pos = self.object:getpos() + + pos.y = pos.y + (-self.collisionbox[2] + self.collisionbox[5]) * .5 + + effect(pos, self.blood_amount, self.blood_texture, nil, nil, 1, nil) + end + + -- do damage + if self.name == "mobs:dog" or self.name == "mobs:cat" or self.name == "mobs:sheep" or self.name == "mobs:dragon" or self.name == "mobs:knight_1248" or self.name == "mobs:fox" or self.name == "mobs:tortoise" then + else + self.health = self.health - floor(damage) + end + -- exit here if dead, special item check + if weapon:get_name() == "mobs:pick_lava" then + if check_for_death(self, "lava") then + return + end + else + if check_for_death(self, "hit") then + return + end + end + + --[[ add healthy afterglow when hit (can cause hit lag with larger textures) + core.after(0.1, function() + self.object:settexturemod("^[colorize:#c9900070") + + core.after(0.3, function() + self.object:settexturemod("") + end) + end) ]] + + -- knock back effect (only on full punch) + if self.knock_back > 0 + and tflp >= punch_interval then + + local v = self.object:getvelocity() + local r = 1.4 - min(punch_interval, 1.4) + local kb = r * 5 + local up = 2 + + -- if already in air then dont go up anymore when hit + if v.y > 0 + or self.fly then + up = 0 + end + + -- direction error check + dir = dir or {x = 0, y = 0, z = 0} + + self.object:setvelocity({ + x = dir.x * kb, + y = up, + z = dir.z * kb + }) + + self.pause_timer = r + end + end -- END if damage + + -- if skittish then run away + if self.runaway == true then + + local lp = hitter:getpos() + local s = self.object:getpos() + + local vec = { + x = lp.x - s.x, + y = lp.y - s.y, + z = lp.z - s.z + } + + local yaw = atan(vec.z / vec.x) + 3 * pi / 2 + + if lp.x > s.x then + yaw = yaw + pi + end + + yaw = set_yaw(self.object, yaw) + self.state = "runaway" + self.runaway_timer = 0 + self.following = nil + end + + local name = hitter:get_player_name() or "" + + -- attack puncher and call other mobs for help + if self.passive == false + and self.state ~= "flop" + and self.child == false + and hitter:get_player_name() ~= self.owner + and not mobs.invis[ name ] then + + -- attack whoever punched mob + self.state = "" + do_attack(self, hitter) + + -- alert others to the attack + local objs = minetest.get_objects_inside_radius(hitter:getpos(), self.view_range) + local obj = nil + + for n = 1, #objs do + + obj = objs[n]:get_luaentity() + + if obj then + + -- only alert members of same mob + if obj.group_attack == true + and obj.state ~= "attack" + and obj.owner ~= name + and obj.name == self.name then + do_attack(obj, hitter) + end + + -- have owned mobs attack player threat + if obj.owner == name and obj.owner_loyal then + do_attack(obj, self.object) + end + end + end + end +end + + +-- get entity staticdata +local mob_staticdata = function(self) + + -- remove mob when out of range unless tamed + + self.remove_ok = true + self.attack = nil + self.following = nil + self.state = "stand" + + -- used to rotate older mobs + if self.drawtype + and self.drawtype == "side" then + self.rotate = math.rad(90) + end + + local tmp = {} + + for _,stat in pairs(self) do + + local t = type(stat) + + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" then + tmp[_] = self[_] + end + end + + --print('===== '..self.name..'\n'.. dump(tmp)..'\n=====\n') + return minetest.serialize(tmp) +end + + +-- activate mob and reload settings +local mob_activate = function(self, staticdata, def) + + -- remove monsters in peaceful mode, or when no data + if (self.type == "monster" and peaceful_only) then + + self.object:remove() + + return + end + + -- load entity variables + local tmp = minetest.deserialize(staticdata) + + if tmp then + for _,stat in pairs(tmp) do + self[_] = stat + end + end + + -- select random texture, set model and size + if not self.base_texture then + + -- compatiblity with old simple mobs textures + if type(def.textures[1]) == "string" then + def.textures = {def.textures} + end + + self.base_texture = def.textures[random(1, #def.textures)] + self.base_mesh = def.mesh + self.base_size = self.visual_size + self.base_colbox = self.collisionbox + end + + -- set texture, model and size + local textures = self.base_texture + local mesh = self.base_mesh + local vis_size = self.base_size + local colbox = self.base_colbox + + -- specific texture if gotten + if self.gotten == true + and def.gotten_texture then + textures = def.gotten_texture + end + + -- specific mesh if gotten + if self.gotten == true + and def.gotten_mesh then + mesh = def.gotten_mesh + end + + -- set child objects to half size + if self.child == true then + + vis_size = { + x = self.base_size.x * .5, + y = self.base_size.y * .5, + } + + if def.child_texture then + textures = def.child_texture[1] + end + + colbox = { + self.base_colbox[1] * .5, + self.base_colbox[2] * .5, + self.base_colbox[3] * .5, + self.base_colbox[4] * .5, + self.base_colbox[5] * .5, + self.base_colbox[6] * .5 + } + end + + if self.health == 0 then + self.health = random (self.hp_min, self.hp_max) + end + + -- rnd: pathfinding init + self.path = {} + self.path.way = {} -- path to follow, table of positions + self.path.lastpos = {x = 0, y = 0, z = 0} + self.path.stuck = false + self.path.following = false -- currently following path? + self.path.stuck_timer = 0 -- if stuck for too long search for path + -- end init + + self.object:set_armor_groups({immortal = 1, fleshy = self.armor}) + self.old_y = self.object:getpos().y + self.old_health = self.health + self.sounds.distance = self.sounds.distance or 10 + self.textures = textures + self.mesh = mesh + self.collisionbox = colbox + self.visual_size = vis_size + self.standing_in = "" + + -- set anything changed above + self.object:set_properties(self) + if self.name == "mobs:dog" then + self.object:set_properties({infotext=self.owner.."'s Dog"}) + if self.metadata == 1 then + self.object:set_properties({textures={"mobs_dog.png"}}) + end + if self.metadata == 2 then + self.object:set_properties({textures={"mobs_dog2.png"}}) + end + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + if self.name == "mobs:dragon" then + self.object:set_properties({infotext=self.owner.."'s Dragon"}) + if self.metadata == 1 then + self.object:set_properties({textures={"mobs_dragon_red.png"}}) + end + if self.metadata == 2 then + self.object:set_properties({textures={"mobs_dragon_yellow.png"}}) + end + if self.metadata == 3 then + self.object:set_properties({textures={"mobs_dragon_blue.png"}}) + end + if self.metadata == 4 then + self.object:set_properties({textures={"mobs_dragon_green.png"}}) + end + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + if self.name == "mobs:cat" then + self.object:set_properties({infotext=self.owner.."'s Cat"}) + if self.metadata == 1 then + self.object:set_properties({textures={"mobs_kitten4.png"}}) + end + if self.metadata == 2 then + self.object:set_properties({textures={"mobs_kitten.png"}}) + end + if self.metadata == 3 then + self.object:set_properties({textures={"mobs_kitten2.png"}}) + end + if self.metadata == 4 then + self.object:set_properties({textures={"mobs_kitten3.png"}}) + end + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + if self.name == "mobs:sheep" then + if self.owner then + self.object:set_properties({infotext=self.owner.."'s Sheep"}) + if minetest.get_player_by_name(self.owner) then + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + end + end + if self.name == "mobs:knight_1248" then + self.object:set_properties({infotext=self.owner.."'s 1248 Knight"}) + if self.owner then + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + end + if self.name == "mobs:fox" then + self.object:set_properties({infotext=self.owner.."'s Fox"}) + if self.metadata == 1 then + self.object:set_properties({textures={"mobs_fox.png"}}) + end + if self.metadata == 2 then + self.object:set_properties({textures={"mobs_fox1.png"}}) + end + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + if self.name == "mobs:tortoise" then + self.object:set_properties({infotext=self.owner.."'s Tortoise"}) + if self.metadata2 == 1 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.jump = true + end + if self.metadata2 == 2 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.jump = false + end + end + set_yaw(self.object, (random(0, 360) - 180) / 180 * pi) + update_tag(self) +end + + +-- main mob function +local mob_step = function(self, dtime) + if self.name == "mobs:dog" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("dogx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("dogy", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("dogz", ""..math.floor(self.object:getpos().z+0.5)) + end + local pos = self.object:getpos() + if minetest.get_player_by_name(self.owner) then + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("dog",8) + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 15)) 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("dog", ItemStack(object:get_luaentity().itemstring)) then + if ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:geschenkpapier" or ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:geschenkpapier_death" or ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:dna_string" then + object:remove() + inv:add_item("dog", ItemStack(object:get_luaentity().itemstring)) + end + end + end + end + end + end + if self.name == "mobs:cat" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("catx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("caty", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("catz", ""..math.floor(self.object:getpos().z+0.5)) + end + local pos = self.object:getpos() + if minetest.get_player_by_name(self.owner) then + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("cat",8) + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 15)) 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("cat", ItemStack(object:get_luaentity().itemstring)) then + if ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:geschenkpapier" or ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:geschenkpapier_death" or ItemStack(object:get_luaentity().itemstring):get_name() == "tutorial:dna_string" then + object:remove() + inv:add_item("cat", ItemStack(object:get_luaentity().itemstring)) + end + end + end + end + end + end + if self.name == "mobs:dragon" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("dragonx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("dragony", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("dragonz", ""..math.floor(self.object:getpos().z+0.5)) + end + end + if self.name == "mobs:sheep" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("sheepx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("sheepy", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("sheepz", ""..math.floor(self.object:getpos().z+0.5)) + + end + end + if self.name == "mobs:fox" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("foxx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("foxy", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("foxz", ""..math.floor(self.object:getpos().z+0.5)) + end + end + if self.name == "mobs:tortoise" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("tortoisex", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("tortoisey", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("tortoisez", ""..math.floor(self.object:getpos().z+0.5)) + end + end + if self.name == "mobs:knight_1248" then + if self.owner and minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):set_attribute("knightx", ""..math.floor(self.object:getpos().x+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("knighty", ""..math.floor(self.object:getpos().y+0.5)) + minetest.get_player_by_name(self.owner):set_attribute("knightz", ""..math.floor(self.object:getpos().z+0.5)) + end + + end + if self.name == "mobs:dog" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if minetest.get_player_by_name(self.owner) then + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + end + end + end + if self.name == "mobs:cat" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if minetest.get_player_by_name(self.owner) then + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + end + end + end + if self.name == "mobs:dragon" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if self.owner then + if minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):get_inventory():set_size("dragon2",1) + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon2", 1):get_count() + if numd > 50 then + if minetest.get_player_by_name(self.owner):get_inventory():get_stack("dragon", 1):get_name() == "tutorial:dragon_crystal" then + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem") + else + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_dragon") + end + minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "") + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("dragon2", 1, "default:dirt "..1+numd) + end + end + end + end + end + if self.name == "mobs:sheep" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if self.owner then + if minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep2",1) + minetest.get_player_by_name(self.owner):get_inventory():set_size("sheep3",1) + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep2", 1):get_count() + if numd > 50 then + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep3", 1)) + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "") + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep2", 1, "default:dirt "..1+numd) + end + end + end + end + end + if self.name == "mobs:knight_1248" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if minetest.get_player_by_name(self.owner) then + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + end + end + end + if self.name == "mobs:fox" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if self.owner then + if minetest.get_player_by_name(self.owner) then + minetest.get_player_by_name(self.owner):get_inventory():set_size("fox",1) + minetest.get_player_by_name(self.owner):get_inventory():set_size("foxfox",1) + minetest.get_player_by_name(self.owner):get_inventory():set_size("r1248",6) + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("fox", 1):get_count() + if numd == 50 then + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:fox_schluessel") + minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt 80") + elseif numd == 80 then + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("fox", 1, "default:dirt "..1+numd) + end + local numdd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("foxfox", 1):get_count() + if numdd == 256 then + local ra = math.random(6) + if ra == 1 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 1, "default:dirt") + elseif ra == 2 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 2, "default:dirt") + elseif ra == 3 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 3, "default:dirt") + elseif ra == 4 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 4, "default:dirt") + elseif ra == 5 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 5, "default:dirt") + elseif ra == 6 then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("r1248", 6, "default:dirt") + end + minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "") + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("foxfox", 1, "default:dirt "..1+numdd) + end + end + end + end + end + if self.name == "mobs:tortoise" and self.metadata2 == 1 then + local pos = self.object:getpos() + local all_objects = minetest.get_objects_inside_radius(pos, 15) + local players = {} + local k = 0 + local _,obj + for _,obj in ipairs(all_objects) do + if obj:is_player() then + if self.owner == obj:get_player_name() then + k = 1 + end + end + end + if k == 0 then + if minetest.get_player_by_name(self.owner) then + self.object:setpos({x = minetest.get_player_by_name(self.owner):getpos().x, y = minetest.get_player_by_name(self.owner):getpos().y+1, z = minetest.get_player_by_name(self.owner):getpos().z+1}) + minetest.get_player_by_name(self.owner):get_inventory():set_size("tortoise2",1) + local numd = minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise2", 1):get_count() + if numd > 50 then + if minetest.get_player_by_name(self.owner):get_inventory():get_stack("tortoise", 1):get_name() == "tutorial:dragon_crystal" then + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_gem2") + else + minetest.get_player_by_name(self.owner):get_inventory():add_item("main", "tutorial:geschenk_tortoise") + end + minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "") + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("tortoise2", 1, "default:dirt "..1+numd) + end + end + end + end + if self.name == "mobs:sheep" then + if self.owner then + self.object:set_properties({infotext=self.owner.."'s Sheep"}) + if minetest.get_player_by_name(self.owner) then + local col = minetest.get_player_by_name(self.owner):get_inventory():get_stack("sheep", 1):get_name() + if col == "dye:white" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:white") + self.object:set_properties({textures={"mobs_sheep_white.png"}}) + elseif col == "dye:grey" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:grey") + self.object:set_properties({textures={"mobs_sheep_grey.png"}}) + elseif col == "dye:dark_grey" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_grey") + self.object:set_properties({textures={"mobs_sheep_dark_grey.png"}}) + elseif col == "dye:black" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:black") + self.object:set_properties({textures={"mobs_sheep_black.png"}}) + elseif col == "dye:violet" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:violet") + self.object:set_properties({textures={"mobs_sheep_violet.png"}}) + elseif col == "dye:blue" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:blue") + self.object:set_properties({textures={"mobs_sheep_blue.png"}}) + elseif col == "dye:cyan" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:cyan") + self.object:set_properties({textures={"mobs_sheep_cyan.png"}}) + elseif col == "dye:dark_green" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:dark_green") + self.object:set_properties({textures={"mobs_sheep_dark_green.png"}}) + elseif col == "dye:green" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:green") + self.object:set_properties({textures={"mobs_sheep_green.png"}}) + elseif col == "dye:yellow" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:yellow") + self.object:set_properties({textures={"mobs_sheep_yellow.png"}}) + elseif col == "dye:brown" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:brown") + self.object:set_properties({textures={"mobs_sheep_brown.png"}}) + elseif col == "dye:orange" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:orange") + self.object:set_properties({textures={"mobs_sheep_orange.png"}}) + elseif col == "dye:red" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:red") + self.object:set_properties({textures={"mobs_sheep_red.png"}}) + elseif col == "dye:magenta" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:magenta") + self.object:set_properties({textures={"mobs_sheep_magenta.png"}}) + elseif col == "dye:pink" then + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"wool:pink") + self.object:set_properties({textures={"mobs_sheep_pink.png"}}) + else + minetest.get_player_by_name(self.owner):get_inventory():set_stack("sheep3", 1,"") + self.object:set_properties({textures={"mobs_sheep.png"}}) + end + end + end + end + local pos = self.object:getpos() + local yaw = 0 + + -- when lifetimer expires remove mob (except npc and tamed) + if self.type ~= "npc" + and not self.tamed + and self.state ~= "attack" + and remove_far ~= true + and self.lifetimer < 20000 then + + self.lifetimer = self.lifetimer - dtime + + if self.lifetimer <= 0 then + + -- only despawn away from player + local objs = minetest.get_objects_inside_radius(pos, 15) + + for n = 1, #objs do + + if objs[n]:is_player() then + + self.lifetimer = 20 + + return + end + end + +-- minetest.log("action", +-- S("lifetimer expired, removed @1", self.name)) + + effect(pos, 15, "tnt_smoke.png", 2, 4, 2, 0) + + self.object:remove() + + return + end + end + + falling(self, pos) + + -- knockback timer + if self.pause_timer > 0 then + + self.pause_timer = self.pause_timer - dtime + + if self.pause_timer < 1 then + self.pause_timer = 0 + end + + return + end + + -- run custom function (defined in mob lua file) + if self.do_custom then + + -- when false skip going any further + if self.do_custom(self, dtime) == false then + return + end + end + + -- attack timer + self.timer = self.timer + dtime + + if self.state ~= "attack" then + + if self.timer < 1 then + return + end + + self.timer = 0 + end + + -- never go over 100 + if self.timer > 100 then + self.timer = 1 + end + + -- node replace check (cow eats grass etc.) + replace(self, pos) + + -- mob plays random sound at times + if random(1, 100) == 1 then + mob_sound(self, self.sounds.random) + end + + -- environmental damage timer (every 1 second) + self.env_damage_timer = self.env_damage_timer + dtime + + if (self.state == "attack" and self.env_damage_timer > 1) + or self.state ~= "attack" then + + self.env_damage_timer = 0 + + do_env_damage(self) + end + + monster_attack(self) + + npc_attack(self) + + --breed(self) + + follow_flop(self) + + do_states(self, dtime) + + do_jump(self) + +end + + +-- default function when mobs are blown up with TNT +local do_tnt = function(obj, damage) + + --print ("----- Damage", damage) + + obj.object:punch(obj.object, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, nil) + + return false, true, {} +end +function update(self, clicker) + if self.name == "mobs:dog" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Dog", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("dog",8) + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."list[current_player;dog;0,2;8,1]" + .."list[current_player;main;0,4.5;8,4]" + .."listring[current_player;dog]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata == 1 then + formspec = formspec .."button[0,0;2.0,0.5;texture11;Texture:brown]" + end + if self.metadata == 2 then + formspec = formspec .."button[0,0;2.0,0.5;texture12;Texture:grey]" + end + if self.metadata2 == 1 then + formspec = formspec .."button[3,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[3,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Dog", formspec) + end + end + if self.name == "mobs:cat" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Cat", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("cat",8) + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."list[current_player;cat;0,2;8,1]" + .."list[current_player;main;0,4.5;8,4]" + .."listring[current_player;cat]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata == 1 then + formspec = formspec .."button[0,0;2.0,0.5;texture21;Texture:ginger]" + end + if self.metadata == 2 then + formspec = formspec .."button[0,0;2.0,0.5;texture22;Texture:sandy]" + end + if self.metadata == 3 then + formspec = formspec .."button[0,0;2.0,0.5;texture23;Texture:splotchy]" + end + if self.metadata == 4 then + formspec = formspec .."button[0,0;2.0,0.5;texture24;Texture:striped]" + end + if self.metadata2 == 1 then + formspec = formspec .."button[3,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[3,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Cat", formspec) + end + end + if self.name == "mobs:dragon" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Dragon", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + local player_name = clicker:get_player_name() + inv:set_size("dragon", 1) + local formspec = "size[8,8.5]" + .."list[current_player;dragon;3.5,2.5;1,1]" + .."label[1,1;Dragon produce a dragon gift/gem gift lv.1 after some time]" + .."label[2.4,3.5;Regnum crystal for gem gift]" + .."list[current_player;main;0,4.5;8,4]" + .."listring[current_player;dragon]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata == 1 then + formspec = formspec .."button[0,0;2.0,0.5;texture31;Texture:yellow]" + end + if self.metadata == 2 then + formspec = formspec .."button[0,0;2.0,0.5;texture32;Texture:blue]" + end + if self.metadata == 3 then + formspec = formspec .."button[0,0;2.0,0.5;texture33;Texture:green]" + end + if self.metadata == 4 then + formspec = formspec .."button[0,0;2.0,0.5;texture34;Texture:black]" + end + if self.metadata == 5 then + formspec = formspec .."button[0,0;2.0,0.5;texture35;Texture:great]" + end + if self.metadata == 6 then + formspec = formspec .."button[0,0;2.0,0.5;texture36;Texture:red]" + end + if self.metadata2 == 1 then + formspec = formspec .."button[3,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[3,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Dragon", formspec) + end + end + if self.name == "mobs:sheep" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Sheep", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("sheep",1) + inv:set_size("sheep2",1) + inv:set_size("sheep3",1) + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."list[current_player;main;0,3.5;8,4]" + .."list[current_player;sheep;3.5,1;1,1]" + .."label[3.5,2;Set Color]" + .."listring[current_player;sheep]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata2 == 1 then + formspec = formspec .."button[0,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[0,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Sheep", formspec) + end + end + if self.name == "mobs:fox" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Fox", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."label[0,1.2;Fox produce a Foxkey and Treasures after some time]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata == 1 then + formspec = formspec .."button[0,0;2.0,0.5;texture41;Texture:light]" + end + if self.metadata == 2 then + formspec = formspec .."button[0,0;2.0,0.5;texture42;Texture:dark]" + end + if self.metadata2 == 1 then + formspec = formspec .."button[3,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[3,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Fox", formspec) + end + end + if self.name == "mobs:tortoise" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Tortoise", formspec) + else + local inv = minetest.get_player_by_name(self.owner):get_inventory() + inv:set_size("tortoise", 1) + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."label[1,1;Tortoise produce a tortoise gift/gem gift lv.2 after some time]" + .."label[2.4,3.5;Regnum crystal for gem gift]" + .."list[current_player;main;0,4.5;8,4]" + .."list[current_player;tortoise;3.5,2.5;1,1]" + .."listring[current_player;tortoise]" + .."listring[current_player;main]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata2 == 1 then + formspec = formspec .."button[0,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[0,0;2.0,0.5;move2;Move:follow]" + end + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Tortoise", formspec) + end + end + if self.name == "mobs:knight_1248" then + if self.owner ~= clicker:get_player_name() then + local player_name = clicker:get_player_name() + local formspec = "size[3,1]" + .."label[0,0;You are not the owner!!]" + .."background[3,1;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Knight", formspec) + else + local player_name = clicker:get_player_name() + local formspec = "size[8,8.5]" + .."background[8,8.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if self.metadata2 == 1 then + formspec = formspec .."button[0,0;2.0,0.5;move1;Move:stand]" + end + if self.metadata2 == 2 then + formspec = formspec .."button[0,0;2.0,0.5;move2;Move:follow]" + end + formspec = formspec .."label[0,1;Hello my name is 1248]" + .."label[0,1.3;Bring me an empty color stick and we can leave this world]" + formspec = formspec .."button[3,4;2.0,0.5;leave;I've got color stick]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Knight", formspec) + end + end +end + +mobs.spawning_mobs = {} + +-- register mob entity +function mobs:register_mob(name, def) + + mobs.spawning_mobs[name] = true + +minetest.register_entity(name, { + + stepheight = def.stepheight or 1.1, -- was 0.6 + name = name, + type = def.type, + attack_type = def.attack_type, + fly = def.fly, + fly_in = def.fly_in or "air", + owner = def.owner or "", + order = def.order or "", + on_die = def.on_die, + do_custom = def.do_custom, + jump_height = def.jump_height or 4, -- was 6 + drawtype = def.drawtype, -- DEPRECATED, use rotate instead + rotate = math.rad(def.rotate or 0), -- 0=front, 90=side, 180=back, 270=side2 + lifetimer = def.lifetimer or 180, -- 3 minutes + hp_min = max(1, (def.hp_min or 5) * difficulty), + hp_max = max(1, (def.hp_max or 10) * difficulty), + physical = true, + collisionbox = def.collisionbox, + visual = def.visual, + visual_size = def.visual_size or {x = 1, y = 1}, + mesh = def.mesh, + makes_footstep_sound = def.makes_footstep_sound or false, + view_range = def.view_range or 5, + walk_velocity = def.walk_velocity or 1, + run_velocity = def.run_velocity or 2, + damage = max(1, (def.damage or 0) * difficulty), + light_damage = def.light_damage or 0, + water_damage = def.water_damage or 0, + lava_damage = def.lava_damage or 0, + fall_damage = def.fall_damage or 1, + fall_speed = def.fall_speed or -10, -- must be lower than -2 (default: -10) + drops = def.drops, + armor = def.armor or 100, + arrow = def.arrow, + shoot_interval = def.shoot_interval, + sounds = def.sounds or {}, + animation = def.animation, + follow = def.follow, + metadata = def.metadata, + metadata2 = def.metadata2, + jump = def.jump ~= false, + walk_chance = def.walk_chance or 50, + attacks_monsters = def.attacks_monsters or false, + group_attack = def.group_attack or false, + passive = def.passive or false, + recovery_time = def.recovery_time or 0.5, + knock_back = def.knock_back or 3, + blood_amount = def.blood_amount or 5, + blood_texture = def.blood_texture or "mobs_blood.png", + shoot_offset = def.shoot_offset or 0, + floats = def.floats or 1, -- floats in water by default + replace_rate = def.replace_rate, + replace_what = def.replace_what, + replace_with = def.replace_with, + replace_offset = def.replace_offset or 0, + timer = 0, + env_damage_timer = 0, -- only used when state = "attack" + tamed = false, + pause_timer = 0, + horny = false, + hornytimer = 0, + child = false, + gotten = false, + health = 0, + reach = def.reach or 3, + htimer = 0, + texture_list = def.textures, + child_texture = def.child_texture, + docile_by_day = def.docile_by_day or false, + time_of_day = 0.5, + fear_height = def.fear_height or 0, + runaway = def.runaway, + runaway_timer = 0, + pathfinding = def.pathfinding, + immune_to = def.immune_to or {}, + explosion_radius = def.explosion_radius, + custom_attack = def.custom_attack, + double_melee_attack = def.double_melee_attack, + dogshoot_switch = def.dogshoot_switch, + dogshoot_count = 0, + dogshoot_count_max = def.dogshoot_count_max or 5, + dogshoot_count2_max = def.dogshoot_count2_max or (def.dogshoot_count_max or 5), + attack_animals = def.attack_animals or false, + specific_attack = def.specific_attack, + owner_loyal = def.owner_loyal, + + on_blast = def.on_blast or do_tnt, + + on_step = mob_step, + + on_punch = mob_punch, + + on_activate = function(self, staticdata) + return mob_activate(self, staticdata, def) + end, + + get_staticdata = function(self) + return mob_staticdata(self) + end, + on_rightclick = function(self, clicker) + update(self, clicker) + end, + on_receive_fields = function(self, fields, sender) + if self.owner == sender:get_player_name() then + if fields.leave then + local player_name = sender:get_player_name() + if minetest.get_player_by_name(self.owner):get_inventory():contains_item("main", "tutorial:colorstick_empty") then + local formspec = "size[4,2.5]" + .."label[0,0;You have won Regnum]" + .."label[0,0.3;You have enough technology to leave this world]" + .."label[0,0.6;and to go to another.....]" + .."label[0,0.9;Thank you for playing Regnum]" + .."label[0,1.2;your 1248]" + .."background[4,2.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + minetest.show_formspec(player_name, "npcf_"..self.owner.."'s Knight", formspec) + end + else + if fields.texture11 then + self.object:set_properties({textures={"mobs_dog2.png"}}) + self.metadata = 2 + update(self, sender) + elseif fields.texture12 then + self.object:set_properties({textures={"mobs_dog.png"}}) + self.metadata = 1 + update(self, sender) + elseif fields.texture21 then + self.object:set_properties({textures={"mobs_kitten.png"}}) + self.metadata = 2 + update(self, sender) + elseif fields.texture22 then + self.object:set_properties({textures={"mobs_kitten2.png"}}) + self.metadata = 3 + update(self, sender) + elseif fields.texture23 then + self.object:set_properties({textures={"mobs_kitten3.png"}}) + self.metadata = 4 + update(self, sender) + elseif fields.texture24 then + self.object:set_properties({textures={"mobs_kitten4.png"}}) + self.metadata = 1 + update(self, sender) + elseif fields.texture31 then + self.object:set_properties({textures={"mobs_dragon_yellow.png"}}) + self.metadata = 2 + update(self, sender) + elseif fields.texture32 then + self.object:set_properties({textures={"mobs_dragon_blue.png"}}) + self.metadata = 3 + update(self, sender) + elseif fields.texture33 then + self.object:set_properties({textures={"mobs_dragon_green.png"}}) + self.metadata = 4 + update(self, sender) + elseif fields.texture34 then + self.object:set_properties({textures={"mobs_dragon_black.png"}}) + self.metadata = 5 + update(self, sender) + elseif fields.texture35 then + self.object:set_properties({textures={"mobs_dragon_great.png"}}) + self.metadata = 6 + update(self, sender) + elseif fields.texture36 then + self.object:set_properties({textures={"mobs_dragon_red.png"}}) + self.metadata = 1 + update(self, sender) + elseif fields.texture41 then + self.object:set_properties({textures={"mobs_fox1.png"}}) + self.metadata = 2 + update(self, sender) + elseif fields.texture42 then + self.object:set_properties({textures={"mobs_fox.png"}}) + self.metadata = 1 + update(self, sender) + elseif fields.move1 then + self.walk_velocity = 0 + self.run_velocity = 0 + self.metadata2 = 2 + update(self, sender) + elseif fields.move2 then + self.walk_velocity = 1 + self.run_velocity = 3 + self.metadata2 = 1 + update(self, sender) + end + end + end + end, +}) + +end -- END mobs:register_mob function + + +-- count how many mobs of one type are inside an area +local count_mobs = function(pos, type) + + local num_type = 0 + local num_total = 0 + local objs = minetest.get_objects_inside_radius(pos, aoc_range) + + for n = 1, #objs do + + if not objs[n]:is_player() then + + local obj = objs[n]:get_luaentity() + + -- count mob type and add to total also + if obj and obj.name and obj.name == type then + + num_type = num_type + 1 + num_total = num_total + 1 + + -- add to total mobs + elseif obj and obj.name and obj.health ~= nil then + + num_total = num_total + 1 + end + end + end + + return num_type, num_total +end + + +-- global functions + +function mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, + interval, chance, aoc, min_height, max_height, day_toggle, on_spawn) + + -- chance/spawn number override in minetest.conf for registered mob + local numbers = minetest.setting_get(name) + + if numbers then + numbers = numbers:split(",") + chance = tonumber(numbers[1]) or chance + aoc = tonumber(numbers[2]) or aoc + + if chance == 0 then + print(S("[Mobs Redo] @1 has spawning disabled", name)) + return + end + + print (S("[Mobs Redo] Chance setting for @1 changed to @2", name, chance) + .. " (total: " .. aoc .. ")") + + end + + minetest.register_abm({ + + label = name .. " spawning", + nodenames = nodes, + neighbors = neighbors, + interval = interval, + chance = chance, + catch_up = false, + + action = function(pos, node, active_object_count, active_object_count_wider) + + -- is mob actually registered? + if not mobs.spawning_mobs[name] then +--print ("--- mob doesn't exist", name) + return + end + + -- do not spawn if too many of same mob in area + if active_object_count_wider >= max_per_block + or count_mobs(pos, name) >= aoc then +--print ("--- too many entities", name, aoc, active_object_count_wider) + return + end + + -- if toggle set to nil then ignore day/night check + if day_toggle ~= nil then + + local tod = (minetest.get_timeofday() or 0) * 24000 + + if tod > 4500 and tod < 19500 then + -- daylight, but mob wants night + if day_toggle == false then +--print ("--- mob needs night", name) + return + end + else + -- night time but mob wants day + if day_toggle == true then +--print ("--- mob needs day", name) + return + end + end + end + + -- spawn above node + pos.y = pos.y + 1 + + -- only spawn away from player + local objs = minetest.get_objects_inside_radius(pos, 10) + + for n = 1, #objs do + + if objs[n]:is_player() then +--print ("--- player too close", name) + return + end + end + + -- mobs cannot spawn in protected areas when enabled + if spawn_protected == 1 + and minetest.is_protected(pos, "") then +--print ("--- inside protected area", name) + return + end + + -- are we spawning within height limits? + if pos.y > max_height + or pos.y < min_height then +--print ("--- height limits not met", name, pos.y) + return + end + + -- are light levels ok? + local light = minetest.get_node_light(pos) + if not light + or light > max_light + or light < min_light then +--print ("--- light limits not met", name, light) + return + end + + -- are we spawning inside solid nodes? + if minetest.registered_nodes[node_ok(pos).name].walkable == true then +--print ("--- feet in block", name, node_ok(pos).name) + return + end + + pos.y = pos.y + 1 + + if minetest.registered_nodes[node_ok(pos).name].walkable == true then +--print ("--- head in block", name, node_ok(pos).name) + return + end + + -- spawn mob half block higher than ground + pos.y = pos.y - 0.5 + + local mob = minetest.add_entity(pos, name) + + if mob and mob:get_luaentity() then +-- print ("[mobs] Spawned " .. name .. " at " +-- .. minetest.pos_to_string(pos) .. " on " +-- .. node.name .. " near " .. neighbors[1]) + if on_spawn and not on_spawn(mob, pos) then + return + end + else + print (S("[mobs] @1 failed to spawn at @2", + name, minetest.pos_to_string(pos))) + end + + end + }) +end + + +-- compatibility with older mob registration +function mobs:register_spawn(name, nodes, max_light, min_light, chance, active_object_count, max_height, day_toggle) + + mobs:spawn_specific(name, nodes, {"air"}, min_light, max_light, 30, + chance, active_object_count, -31000, max_height, day_toggle) +end + + +-- MarkBu's spawn function +function mobs:spawn(def) + + local name = def.name + local nodes = def.nodes or {"group:soil", "group:stone"} + local neighbors = def.neighbors or {"air"} + local min_light = def.min_light or 0 + local max_light = def.max_light or 15 + local interval = def.interval or 30 + local chance = def.chance or 5000 + local active_object_count = def.active_object_count or 1 + local min_height = def.min_height or -31000 + local max_height = def.max_height or 31000 + local day_toggle = def.day_toggle + local on_spawn = def.on_spawn + + mobs:spawn_specific(name, nodes, neighbors, min_light, max_light, interval, + chance, active_object_count, min_height, max_height, day_toggle, on_spawn) +end + + +-- set content id's +local c_air = minetest.get_content_id("air") +local c_ignore = minetest.get_content_id("ignore") +local c_obsidian = minetest.get_content_id("default:obsidian") +local c_brick = minetest.get_content_id("default:obsidianbrick") +local c_chest = minetest.get_content_id("default:chest_locked") +local c_fire = minetest.get_content_id("fire:basic_flame") + +-- explosion (cannot break protected or unbreakable nodes) +function mobs:explosion(pos, radius, fire, smoke, sound) + + radius = radius or 0 + fire = fire or 0 + smoke = smoke or 0 + + -- if area protected or near map limits then no blast damage + if minetest.is_protected(pos, "") + or not within_limits(pos, radius) then + return + end + + -- explosion sound + if sound + and sound ~= "" then + + minetest.sound_play(sound, { + pos = pos, + gain = 1.0, + max_hear_distance = 16 + }) + end + + pos = vector.round(pos) -- voxelmanip doesn't work properly unless pos is rounded ?!?! + + local vm = VoxelManip() + local minp, maxp = vm:read_from_map(vector.subtract(pos, radius), vector.add(pos, radius)) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm:get_data() + local p = {} + local pr = PseudoRandom(os.time()) + + for z = -radius, radius do + for y = -radius, radius do + local vi = a:index(pos.x + (-radius), pos.y + y, pos.z + z) + for x = -radius, radius do + + p.x = pos.x + x + p.y = pos.y + y + p.z = pos.z + z + + if (x * x) + (y * y) + (z * z) <= (radius * radius) + pr:next(-radius, radius) + and data[vi] ~= c_air + and data[vi] ~= c_ignore + and data[vi] ~= c_obsidian + and data[vi] ~= c_brick + and data[vi] ~= c_chest + and data[vi] ~= c_fire then + + local n = node_ok(p).name + local on_blast = minetest.registered_nodes[n].on_blast + + if on_blast then + + return on_blast(p) + + elseif minetest.registered_nodes[n].groups.unbreakable == 1 then + + -- do nothing + else + + -- after effects + if fire > 0 + and (minetest.registered_nodes[n].groups.flammable + or random(1, 100) <= 30) then + + minetest.set_node(p, {name = "fire:basic_flame"}) + else + minetest.set_node(p, {name = "air"}) + + if smoke > 0 then + effect(p, 2, "tnt_smoke.png") + end + end + end + end + + vi = vi + 1 + + end + end + end +end + + +-- register arrow for shoot attack +function mobs:register_arrow(name, def) + + if not name or not def then return end -- errorcheck + + 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, + hit_mob = def.hit_mob, + drop = def.drop or false, -- drops arrow as registered item when true + collisionbox = {0, 0, 0, 0, 0, 0}, -- remove box around arrows + timer = 0, + switch = 0, + owner_id = def.owner_id, + rotate = def.rotate, + automatic_face_movement_dir = def.rotate + and (def.rotate - (pi / 180)) or false, + + on_activate = def.on_activate or nil, + + on_step = def.on_step or function(self, dtime) + + self.timer = self.timer + 1 + + local pos = self.object:getpos() + + if self.switch == 0 + or self.timer > 150 + or not within_limits(pos, 0) then + + self.object:remove() ; -- print ("removed arrow") + + return + end + + -- does arrow have a tail (fireball) + if def.tail + and def.tail == 1 + and def.tail_texture then + + minetest.add_particle({ + pos = pos, + velocity = {x = 0, y = 0, z = 0}, + acceleration = {x = 0, y = 0, z = 0}, + expirationtime = def.expire or 0.25, + collisiondetection = false, + texture = def.tail_texture, + size = def.tail_size or 5, + glow = def.glow or 0, + }) + end + + if self.hit_node then + + local node = node_ok(pos).name + + if minetest.registered_nodes[node].walkable then + + self.hit_node(self, pos, node) + + if self.drop == true then + + pos.y = pos.y + 1 + + self.lastpos = (self.lastpos or pos) + + minetest.add_item(self.lastpos, self.object:get_luaentity().name) + end + + self.object:remove() ; -- print ("hit node") + + return + end + end + + if self.hit_player or self.hit_mob then + + for _,player in pairs(minetest.get_objects_inside_radius(pos, 1.0)) do + + if self.hit_player + and player:is_player() then + + self.hit_player(self, player) + self.object:remove() ; -- print ("hit player") + return + end + + local entity = player:get_luaentity() + and player:get_luaentity().name or "" + + if self.hit_mob + and tostring(player) ~= self.owner_id + and entity ~= self.object:get_luaentity().name + and entity ~= "__builtin:item" + and entity ~= "__builtin:falling_node" + and entity ~= "gauges:hp_bar" + and entity ~= "signs:text" + and entity ~= "itemframes:item" then + + self.hit_mob(self, player) + + self.object:remove() ; --print ("hit mob") + + return + end + end + end + + self.lastpos = pos + end + }) +end + + +-- register spawn eggs +function mobs:register_egg(mob, desc, background, addegg, no_creative) + + local grp = {} + + -- do NOT add this egg to creative inventory (e.g. dungeon master) + if creative and no_creative == true then + grp = {not_in_creative_inventory = 1} + end + + local invimg = background + + if addegg == 1 then + invimg = "mobs_chicken_egg.png^(" .. invimg .. + "^[mask:mobs_chicken_egg_overlay.png)" + end + + -- register new spawn egg containing mob information + minetest.register_craftitem(mob .. "_set", { + + description = desc .. " (Tamed)", + inventory_image = invimg, + groups = {not_in_creative_inventory = 1}, + stack_max = 1, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and within_limits(pos, 0) + and not minetest.is_protected(pos, placer:get_player_name()) then + + pos.y = pos.y + 1 + + local data = itemstack:get_metadata() + local mob = minetest.add_entity(pos, mob, data) + local ent = mob:get_luaentity() + + if not ent then + mob:remove() + return + end + + if ent.type ~= "monster" then + -- set owner and tame if not monster + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- since mob is unique we remove egg once spawned + itemstack:take_item() + end + + return itemstack + end, + }) + + + -- register old stackable mob egg + minetest.register_craftitem(mob, { + + description = desc, + inventory_image = invimg, + groups = grp, + + on_place = function(itemstack, placer, pointed_thing) + + local pos = pointed_thing.above + + -- am I clicking on something with existing on_rightclick function? + local under = minetest.get_node(pointed_thing.under) + local def = minetest.registered_nodes[under.name] + if def and def.on_rightclick then + return def.on_rightclick(pointed_thing.under, under, placer, itemstack) + end + + if pos + and within_limits(pos, 0) + and not minetest.is_protected(pos, placer:get_player_name()) then + + pos.y = pos.y + 1 + + local mob = minetest.add_entity(pos, mob) + local ent = mob:get_luaentity() + + if not ent then + mob:remove() + return + end + + if ent.type ~= "monster" then + -- set owner and tame if not monster + ent.owner = placer:get_player_name() + ent.tamed = true + end + + -- if not in creative then take item + if not creative then + itemstack:take_item() + end + end + + return itemstack + end, + }) + +end + + +-- capture critter (thanks to blert2112 for idea) +function mobs:capture_mob(self, clicker, chance_hand, chance_net, chance_lasso, force_take, replacewith) + + if self.child + or not clicker:is_player() + or not clicker:get_inventory() then + return false + end + + -- get name of clicked mob + local mobname = self.name + + -- if not nil change what will be added to inventory + if replacewith then + mobname = replacewith + end + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + -- are we using hand, net or lasso to pick up mob? + if tool:get_name() ~= "" + and tool:get_name() ~= "mobs:net" + and tool:get_name() ~= "mobs:magic_lasso" then + return false + end + + -- is mob tamed? + if self.tamed == false + and force_take == false then + + minetest.chat_send_player(name, S("Not tamed!")) + + return true -- false + end + + -- cannot pick up if not owner + if self.owner ~= name + and force_take == false then + + minetest.chat_send_player(name, S("@1 is owner!", self.owner)) + + return true -- false + end + + if clicker:get_inventory():room_for_item("main", mobname) then + + -- was mob clicked with hand, net, or lasso? + local chance = 0 + + if tool:get_name() == "" then + chance = chance_hand + + elseif tool:get_name() == "mobs:net" then + + chance = chance_net + + tool:add_wear(4000) -- 17 uses + + clicker:set_wielded_item(tool) + + elseif tool:get_name() == "mobs:magic_lasso" then + + chance = chance_lasso + + tool:add_wear(650) -- 100 uses + + clicker:set_wielded_item(tool) + + end + + -- calculate chance.. add to inventory if successful? + if chance > 0 and random(1, 100) <= chance then + + -- default mob egg + local new_stack = ItemStack(mobname) + + -- add special mob egg with all mob information + -- unless 'replacewith' contains new item to use + if not replacewith then + + new_stack = ItemStack(mobname .. "_set") + + local tmp = {} + + for _,stat in pairs(self) do + local t = type(stat) + if t ~= "function" + and t ~= "nil" + and t ~= "userdata" then + tmp[_] = self[_] + end + end + + local data_str = minetest.serialize(tmp) + + new_stack:set_metadata(data_str) + end + + local inv = clicker:get_inventory() + + if inv:room_for_item("main", new_stack) then + inv:add_item("main", new_stack) + else + minetest.add_item(clicker:getpos(), new_stack) + end + + self.object:remove() + + else + minetest.chat_send_player(name, S("Missed!")) + end + end + + return true +end + + +-- protect tamed mob with rune item +function mobs:protect(self, clicker) + + local name = clicker:get_player_name() + local tool = clicker:get_wielded_item() + + if tool:get_name() ~= "mobs:protector" then + return false + end + + if self.tamed == false then + minetest.chat_send_player(name, S("Not tamed!")) + return true -- false + end + + if self.protected == true then + minetest.chat_send_player(name, S("Already protected!")) + return true -- false + end + + tool:take_item() -- take 1 protection rune + clicker:set_wielded_item(tool) + + self.protected = true + minetest.chat_send_player(name, S("Protected!")) + + return true +end + + +local mob_obj = {} +local mob_sta = {} + +-- feeding, taming and breeding (thanks blert2112) +function mobs:feed_tame(self, clicker, feed_count, breed, tame) + + if not self.follow then + return false + end + + -- can eat/tame with item in hand + if follow_holding(self, clicker) then + + -- if not in creative then take item + if not creative then + + local item = clicker:get_wielded_item() + + item:take_item() + + clicker:set_wielded_item(item) + end + + -- increase health + self.health = self.health + 4 + + if self.health >= self.hp_max then + + self.health = self.hp_max + + if self.htimer < 1 then + + minetest.chat_send_player(clicker:get_player_name(), + S("@1 at full health (@2)", + self.name:split(":")[2], tostring(self.health))) + + self.htimer = 5 + end + end + + self.object:set_hp(self.health) + + update_tag(self) + + -- make children grow quicker + if self.child == true then + + self.hornytimer = self.hornytimer + 20 + + return true + end + + -- feed and tame + self.food = (self.food or 0) + 1 + if self.food >= feed_count then + + self.food = 0 + + if breed and self.hornytimer == 0 then + self.horny = true + end + + self.gotten = false + + if tame then + + if self.tamed == false then + minetest.chat_send_player(clicker:get_player_name(), + S("@1 has been tamed!", + self.name:split(":")[2])) + end + + self.tamed = true + + if not self.owner or self.owner == "" then + self.owner = clicker:get_player_name() + end + end + + -- make sound when fed so many times + mob_sound(self, self.sounds.random) + end + + return true + end + + local item = clicker:get_wielded_item() + + -- if mob has been tamed you can name it with a nametag + if item:get_name() == "mobs:nametag" + and clicker:get_player_name() == self.owner then + + local name = clicker:get_player_name() + + -- store mob and nametag stack in external variables + mob_obj[name] = self + mob_sta[name] = item + + local tag = self.nametag or "" + + minetest.show_formspec(name, "mobs_nametag", "size[8,4]" + .. default.gui_bg + .. default.gui_bg_img + .. "field[0.5,1;7.5,0;name;" .. S("Enter name:") .. ";" .. tag .. "]" + .. "button_exit[2.5,3.5;3,1;mob_rename;" .. S("Rename") .. "]") + + end + + return false + +end + + +-- inspired by blockmen's nametag mod +minetest.register_on_player_receive_fields(function(player, formname, fields) + + -- right-clicked with nametag and name entered? + if formname == "mobs_nametag" + and fields.name + and fields.name ~= "" then + + local name = player:get_player_name() + + if not mob_obj[name] + or not mob_obj[name].object then + return + end + + -- limit name entered to 64 characters long + if string.len(fields.name) > 64 then + fields.name = string.sub(fields.name, 1, 64) + end + + -- update nametag + mob_obj[name].nametag = fields.name + + update_tag(mob_obj[name]) + + -- if not in creative then take item + if not creative then + + mob_sta[name]:take_item() + + player:set_wielded_item(mob_sta[name]) + end + + -- reset external variables + mob_obj[name] = nil + mob_sta[name] = nil + + end +end) + + +-- compatibility function for old entities to new modpack entities +function mobs:alias_mob(old_name, new_name) + + -- spawn egg + minetest.register_alias(old_name, new_name) + + -- entity + minetest.register_entity(":" .. old_name, { + + physical = false, + + on_step = function(self) + + local pos = self.object:getpos() + + minetest.add_entity(pos, new_name) + + self.object:remove() + end + }) +end +minetest.register_on_player_receive_fields(function(player, formname, fields) + for _,ref in pairs(minetest.luaentities) do + if ref.object and ref.type and ref.npc_name then + if ref.type == "npc" and ("npcf_"..ref.npc_name) == formname then + ref.on_receive_fields(ref, fields, player) + end + end + end +end) \ No newline at end of file diff --git a/mods/mobs/cat.lua b/mods/mobs/cat.lua new file mode 100644 index 0000000..3c6edc3 --- /dev/null +++ b/mods/mobs/cat.lua @@ -0,0 +1,42 @@ +mobs:register_mob("mobs:cat", { + type = "npc", + passive = false, + attack_type = "dogfight", + damage = 10, + hp_min = 2000, + hp_max = 3000, + armor = 100, + order = "follow", + visual_size= {x=1,y=1,z=1}, + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "mobs_kitten.b3d", + attacks_monsters = true, + textures = { + {"mobs_kitten.png"}, + }, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + tamed = true, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fall_damage = 0, + metadata = 1, + metadata2 = 1, + 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, + }, +}) diff --git a/mods/mobs/dog.lua b/mods/mobs/dog.lua new file mode 100644 index 0000000..23ff93c --- /dev/null +++ b/mods/mobs/dog.lua @@ -0,0 +1,42 @@ +mobs:register_mob("mobs:dog", { + type = "npc", + passive = false, + attack_type = "dogfight", + damage = 10, + hp_min = 2000, + hp_max = 3000, + armor = 100, + order = "follow", + visual_size= {x=1,y=1,z=1}, + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "mobs_dog.b3d", + attacks_monsters = true, + textures = { + {"mobs_dog.png"}, + }, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + tamed = true, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fall_damage = 0, + metadata = 1, + metadata2 = 1, + 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, + }, +}) diff --git a/mods/mobs/dragon.lua b/mods/mobs/dragon.lua new file mode 100644 index 0000000..32f6d7c --- /dev/null +++ b/mods/mobs/dragon.lua @@ -0,0 +1,42 @@ +mobs:register_mob("mobs:dragon", { + type = "npc", + passive = false, + attack_type = "dogfight", + damage = 10, + hp_min = 2000, + hp_max = 3000, + armor = 100, + order = "follow", + visual_size= {x=1,y=1,z=1}, + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "mobs_dragon.b3d", + attacks_monsters = true, + textures = { + {"mobs_dragon_red.png"}, + }, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + tamed = true, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fall_damage = 0, + metadata = 1, + metadata2 = 1, + 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, + }, +}) diff --git a/mods/mobs/egg.lua b/mods/mobs/egg.lua new file mode 100644 index 0000000..0b1b1d3 --- /dev/null +++ b/mods/mobs/egg.lua @@ -0,0 +1,530 @@ +minetest.register_craftitem("mobs:stone_monster_egg", { + description = "Stone monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:stone_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) +minetest.register_craftitem("mobs:random_monster_egg", { + description = "??? monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local x = math.random(1,6) + if x == 1 then + minetest.env:add_entity(pointed_thing.above,"mobs:red_monster") + elseif x == 2 then + minetest.env:add_entity(pointed_thing.above,"mobs:blue_monster") + elseif x == 3 then + minetest.env:add_entity(pointed_thing.above,"mobs:green2_monster") + elseif x == 4 then + minetest.env:add_entity(pointed_thing.above,"mobs:yellow_monster") + elseif x == 5 then + minetest.env:add_entity(pointed_thing.above,"mobs:purple_monster") + elseif x == 6 then + minetest.env:add_entity(pointed_thing.above,"mobs:cyan_monster") + end + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:dirt_monster_egg", { + description = "Dirt monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:dirt_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:sand_monster_egg", { + description = "Sand monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:sand_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:snow_monster_egg", { + description = "Snow monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:snow_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:ice_monster_egg", { + description = "Ice monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:ice_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:grass_monster_egg", { + description = "Grass monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:green_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:rainforest_litter_monster_egg", { + description = "Rainforest litter monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:rainforest_litter_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:dry_grass_monster_egg", { + description = "Dry grass monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:dry_grass_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:silver_sand_monster_egg", { + description = "Silver sand monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:silver_sand_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) +minetest.register_craftitem("mobs:desert_sand_monster_egg", { + description = "Desert sand monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:desert_sand_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:desert_stone_monster_egg", { + description = "Desert stone monster spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs:desert_stone_monster") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:dog_egg", { + description = "Dog spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local obj = minetest.env:add_entity(pointed_thing.above,"mobs:dog") + local name = placer:get_player_name() + local ent = obj:get_luaentity() + ent.owner = placer:get_player_name() + ent.npc_name = placer:get_player_name().."'s Dog" + obj:set_properties({infotext=name.."'s Dog"}) + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) +minetest.register_craftitem("mobs:cat_egg", { + description = "Cat spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local obj = minetest.env:add_entity(pointed_thing.above,"mobs:cat") + local name = placer:get_player_name() + local ent = obj:get_luaentity() + ent.owner = placer:get_player_name() + ent.npc_name = placer:get_player_name().."'s Cat" + obj:set_properties({infotext=name.."'s Cat"}) + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) +minetest.register_craftitem("mobs:sheep_egg", { + description = "Sheep spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local obj = minetest.env:add_entity(pointed_thing.above,"mobs:sheep") + local name = placer:get_player_name() + local ent = obj:get_luaentity() + ent.owner = placer:get_player_name() + ent.npc_name = placer:get_player_name().."'s Sheep" + obj:set_properties({infotext=name.."'s Sheep"}) + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) +minetest.register_craftitem("mobs:dragon_egg", { + description = "Dragon spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local obj = minetest.env:add_entity(pointed_thing.above,"mobs:dragon") + local name = placer:get_player_name() + local ent = obj:get_luaentity() + ent.owner = placer:get_player_name() + ent.npc_name = placer:get_player_name().."'s Dragon" + obj:set_properties({infotext=name.."'s Dragon"}) + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) +minetest.register_craftitem("mobs:fox_egg", { + description = "Fox spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local obj = minetest.env:add_entity(pointed_thing.above,"mobs:fox") + local name = placer:get_player_name() + local ent = obj:get_luaentity() + ent.owner = placer:get_player_name() + ent.npc_name = placer:get_player_name().."'s Fox" + obj:set_properties({infotext=name.."'s Fox"}) + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) +minetest.register_craftitem("mobs:tortoise_egg", { + description = "Tortoise spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local obj = minetest.env:add_entity(pointed_thing.above,"mobs:tortoise") + local name = placer:get_player_name() + local ent = obj:get_luaentity() + ent.owner = placer:get_player_name() + ent.npc_name = placer:get_player_name().."'s Tortoise" + obj:set_properties({infotext=name.."'s Tortoise"}) + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) +minetest.register_craftitem("mobs:knight_1248_egg", { + description = "1248 Knight spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + local obj = minetest.env:add_entity(pointed_thing.above,"mobs:knight_1248") + local name = placer:get_player_name() + local ent = obj:get_luaentity() + ent.owner = placer:get_player_name() + ent.npc_name = placer:get_player_name().."'s Knight" + obj:set_properties({infotext=name.."'s Knight"}) + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + + +minetest.register_craftitem("mobs:watermob_crocodile_lg_egg", { + description = "Crocodile large (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_crocs:crocodile_lg") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_crocodile_md_egg", { + description = "Crocodile medium (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_crocs:crocodile_md") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_crocodile_sm_egg", { + description = "Crocodile small (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_crocs:crocodile_sm") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_clownfish_egg", { + description = "Clownfish (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_fish:clownfish") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_tropical_fish_egg", { + description = "Tropical fish (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_fish:tropical") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_jellyfish_egg", { + description = "Jellyfish (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_jellyfish:jellyfish") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_shark_sm_egg", { + description = "Shark small (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_sharks:shark_sm") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_shark_md_egg", { + description = "Shark medium (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_sharks:shark_md") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_shark_lg_egg", { + description = "Shark large (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_sharks:shark_lg") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_turtle_lg_egg", { + description = "Turtle large (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_turtles:turtle_lg") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:watermob_turtle_sm_egg", { + description = "Turtle small (watermob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_turtles:turtle_sm") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:skymob_butterfly_egg", { + description = "Butterfly (skymob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_butterfly:butterfly") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:skymob_gull_egg", { + description = "Gull (skymob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_birds:gull") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:skymob_bird_sm_egg", { + description = "Bird small (skymob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_birds:bird_sm") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:skymob_bird_lg_egg", { + description = "Bird large (skymob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_birds:bird_lg") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) + +minetest.register_craftitem("mobs:skymob_bat_egg", { + description = "Bat (skymob) spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"mobs_bat:bat") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, +}) \ No newline at end of file diff --git a/mods/mobs/fox.lua b/mods/mobs/fox.lua new file mode 100644 index 0000000..bf61e1a --- /dev/null +++ b/mods/mobs/fox.lua @@ -0,0 +1,42 @@ +mobs:register_mob("mobs:fox", { + type = "npc", + passive = false, + attack_type = "dogfight", + damage = 10, + hp_min = 2000, + hp_max = 3000, + armor = 100, + order = "follow", + visual_size= {x=1.5,y=1.5,z=1.5}, + collisionbox = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + visual = "mesh", + mesh = "mobs_fox.b3d", + attacks_monsters = false, + textures = { + {"mobs_fox1.png"}, + }, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + tamed = true, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fall_damage = 0, + metadata = 1, + metadata2 = 1, + 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, + }, +}) diff --git a/mods/mobs/init.lua b/mods/mobs/init.lua new file mode 100644 index 0000000..e45e49a --- /dev/null +++ b/mods/mobs/init.lua @@ -0,0 +1,11 @@ +local path = minetest.get_modpath("mobs") +dofile(path.."/api.lua") +dofile(path.."/egg.lua") +dofile(path.."/dog.lua") +dofile(path.."/cat.lua") +dofile(path.."/sheep.lua") +dofile(path.."/dragon.lua") +dofile(path.."/fox.lua") +dofile(path.."/tortoise.lua") +dofile(path.."/knight.lua") +dofile(path.."/monsterx1.lua") \ No newline at end of file diff --git a/mods/mobs/intllib.lua b/mods/mobs/intllib.lua new file mode 100644 index 0000000..6669d72 --- /dev/null +++ b/mods/mobs/intllib.lua @@ -0,0 +1,45 @@ + +-- Fallback functions for when `intllib` is not installed. +-- Code released under Unlicense . + +-- Get the latest version of this file at: +-- https://raw.githubusercontent.com/minetest-mods/intllib/master/lib/intllib.lua + +local function format(str, ...) + local args = { ... } + local function repl(escape, open, num, close) + if escape == "" then + local replacement = tostring(args[tonumber(num)]) + if open == "" then + replacement = replacement..close + end + return replacement + else + return "@"..open..num..close + end + end + return (str:gsub("(@?)@(%(?)(%d+)(%)?)", repl)) +end + +local gettext, ngettext +if minetest.get_modpath("intllib") then + if intllib.make_gettext_pair then + -- New method using gettext. + gettext, ngettext = intllib.make_gettext_pair() + else + -- Old method using text files. + gettext = intllib.Getter() + end +end + +-- Fill in missing functions. + +gettext = gettext or function(msgid, ...) + return format(msgid, ...) +end + +ngettext = ngettext or function(msgid, msgid_plural, n, ...) + return format(n==1 and msgid or msgid_plural, ...) +end + +return gettext, ngettext diff --git a/mods/mobs/knight.lua b/mods/mobs/knight.lua new file mode 100644 index 0000000..901e59f --- /dev/null +++ b/mods/mobs/knight.lua @@ -0,0 +1,42 @@ +mobs:register_mob("mobs:knight_1248", { + type = "npc", + passive = false, + attack_type = "dogfight", + damage = 10, + hp_min = 2000, + hp_max = 3000, + armor = 100, + order = "follow", + visual_size= {x=1,y=1,z=1}, + collisionbox = {-0.4, -1.0, -0.4, 0.4, 1.0, 0.4}, + visual = "mesh", + mesh = "mobs_1248_knight.b3d", + attacks_monsters = true, + textures = { + {"mobs_1248_knight.png"}, + }, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + tamed = true, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fall_damage = 0, + metadata = 1, + metadata2 = 1, + 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, + }, +}) diff --git a/mods/mobs/models/mobs_1248_knight.b3d b/mods/mobs/models/mobs_1248_knight.b3d new file mode 100644 index 0000000..2699d65 Binary files /dev/null and b/mods/mobs/models/mobs_1248_knight.b3d differ diff --git a/mods/mobs/models/mobs_dog.b3d b/mods/mobs/models/mobs_dog.b3d new file mode 100644 index 0000000..12a0d3b Binary files /dev/null and b/mods/mobs/models/mobs_dog.b3d differ diff --git a/mods/mobs/models/mobs_dragon.b3d b/mods/mobs/models/mobs_dragon.b3d new file mode 100644 index 0000000..2624055 Binary files /dev/null and b/mods/mobs/models/mobs_dragon.b3d differ diff --git a/mods/mobs/models/mobs_fox.b3d b/mods/mobs/models/mobs_fox.b3d new file mode 100644 index 0000000..bf7f2b0 Binary files /dev/null and b/mods/mobs/models/mobs_fox.b3d differ diff --git a/mods/mobs/models/mobs_kitten.b3d b/mods/mobs/models/mobs_kitten.b3d new file mode 100644 index 0000000..c2478fe Binary files /dev/null and b/mods/mobs/models/mobs_kitten.b3d differ diff --git a/mods/mobs/models/mobs_sheep.b3d b/mods/mobs/models/mobs_sheep.b3d new file mode 100644 index 0000000..cdb6824 Binary files /dev/null and b/mods/mobs/models/mobs_sheep.b3d differ diff --git a/mods/mobs/models/mobs_sheep.x b/mods/mobs/models/mobs_sheep.x new file mode 100644 index 0000000..77d9c26 --- /dev/null +++ b/mods/mobs/models/mobs_sheep.x @@ -0,0 +1,7170 @@ +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;; + TextureFilename {"sheep.png";} + } + } //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_stone_monster.b3d b/mods/mobs/models/mobs_stone_monster.b3d new file mode 100644 index 0000000..0dec5b8 Binary files /dev/null and b/mods/mobs/models/mobs_stone_monster.b3d differ diff --git a/mods/mobs/models/mobs_stone_monster.x b/mods/mobs/models/mobs_stone_monster.x new file mode 100644 index 0000000..eaa41de --- /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_tortoise.b3d b/mods/mobs/models/mobs_tortoise.b3d new file mode 100644 index 0000000..039c5bc Binary files /dev/null and b/mods/mobs/models/mobs_tortoise.b3d differ diff --git a/mods/mobs/monsterx1.lua b/mods/mobs/monsterx1.lua new file mode 100644 index 0000000..26a6827 --- /dev/null +++ b/mods/mobs/monsterx1.lua @@ -0,0 +1,880 @@ +mobs:register_mob("mobs:red_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_red_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:red_tear", + chance = 1, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:blue_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_blue_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:blue_tear", + chance = 1, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:cyan_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_cyan_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:cyan_tear", + chance = 1, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:green2_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_green_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:green_tear", + chance = 1, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:yellow_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_yellow_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:yellow_tear", + chance = 1, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:purple_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_purple_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:purple_tear", + chance = 1, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) +mobs:register_mob("mobs:stone_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + 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"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:dirt_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + 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"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:sand_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_sand_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:silver_sand_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_silver_sand_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:desert_sand_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_desert_sand_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:desert_stone_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_desert_stone_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:snow_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_snow_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:ice_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_ice_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:green_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_grass_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:dry_grass_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_dry_grass_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_mob("mobs:rainforest_litter_monster", { + type = "monster", + passive = false, + attack_type = "dogfight", + damage = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + visual_size = {x=3, y=2.6}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + mesh = "mobs_stone_monster.x", + textures = { + {"mobs_rainforest_litter_monster.png"}, + }, + makes_footstep_sound = true, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + drops = { + {name = "tutorial:geschenkpapier", + chance = 1, + min = 2, + max = 4}, + {name = "tutorial:geschenkpapier_death", + chance = 2, + min = 2, + max = 4}, + {name = "tutorial:dna_string", + chance = 2, + min = 1, + max = 1}, + }, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + 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, + }, +}) + +mobs:register_spawn("mobs:dirt_monster", {"default:dirt"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:rainforest_litter_monster", {"default:dirt_with_rainforest_litter"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:green_monster", {"default:dirt_with_grass"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:dry_grass_monster", {"default:dirt_with_dry_grass"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:sand_monster", {"default:sand"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:silver_sand_monster", {"default:silver_sand"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:stone_monster", {"default:stone", "default:cobble", "default:mossycobble"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:desert_stone_monster", {"default:desert_stone", "default:desert_cobble"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:desert_sand_monster", {"default:desert_sand"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:snow_monster", {"default:snowblock", "default:dirt_with_snow"}, 20, -1, 1, 3, 31000) +mobs:register_spawn("mobs:ice_monster", {"default:ice"}, 20, -1, 1, 3, 31000) \ No newline at end of file diff --git a/mods/mobs/sheep.lua b/mods/mobs/sheep.lua new file mode 100644 index 0000000..62e3459 --- /dev/null +++ b/mods/mobs/sheep.lua @@ -0,0 +1,42 @@ +mobs:register_mob("mobs:sheep", { + type = "npc", + passive = false, + attack_type = "dogfight", + damage = 10, + hp_min = 2000, + hp_max = 3000, + armor = 100, + order = "follow", + visual_size= {x=1,y=1,z=1}, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1, 0.4}, + visual = "mesh", + mesh = "mobs_sheep.x", + attacks_monsters = false, + textures = { + {"mobs_sheep.png"}, + }, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + tamed = true, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fall_damage = 0, + metadata = 1, + metadata2 = 1, + 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, + }, +}) diff --git a/mods/mobs/sounds/default_punch.ogg b/mods/mobs/sounds/default_punch.ogg new file mode 100644 index 0000000..28a500b Binary files /dev/null and b/mods/mobs/sounds/default_punch.ogg differ diff --git a/mods/mobs/sounds/mobs_bee.ogg b/mods/mobs/sounds/mobs_bee.ogg new file mode 100644 index 0000000..5317518 Binary files /dev/null and b/mods/mobs/sounds/mobs_bee.ogg differ diff --git a/mods/mobs/sounds/mobs_chicken.ogg b/mods/mobs/sounds/mobs_chicken.ogg new file mode 100644 index 0000000..be64c94 Binary files /dev/null and b/mods/mobs/sounds/mobs_chicken.ogg differ diff --git a/mods/mobs/sounds/mobs_cow.ogg b/mods/mobs/sounds/mobs_cow.ogg new file mode 100644 index 0000000..e919c6b Binary files /dev/null and b/mods/mobs/sounds/mobs_cow.ogg differ diff --git a/mods/mobs/sounds/mobs_dirtmonster.ogg b/mods/mobs/sounds/mobs_dirtmonster.ogg new file mode 100644 index 0000000..87fdab0 Binary files /dev/null and b/mods/mobs/sounds/mobs_dirtmonster.ogg differ diff --git a/mods/mobs/sounds/mobs_dungeonmaster.ogg b/mods/mobs/sounds/mobs_dungeonmaster.ogg new file mode 100644 index 0000000..4ac5f4a Binary files /dev/null and b/mods/mobs/sounds/mobs_dungeonmaster.ogg differ diff --git a/mods/mobs/sounds/mobs_fireball.ogg b/mods/mobs/sounds/mobs_fireball.ogg new file mode 100644 index 0000000..bdc4ac2 Binary files /dev/null and b/mods/mobs/sounds/mobs_fireball.ogg differ diff --git a/mods/mobs/sounds/mobs_kitten.ogg b/mods/mobs/sounds/mobs_kitten.ogg new file mode 100644 index 0000000..021d3dc Binary files /dev/null and b/mods/mobs/sounds/mobs_kitten.ogg differ diff --git a/mods/mobs/sounds/mobs_lavaflan.ogg b/mods/mobs/sounds/mobs_lavaflan.ogg new file mode 100644 index 0000000..08c8f1d Binary files /dev/null and b/mods/mobs/sounds/mobs_lavaflan.ogg differ diff --git a/mods/mobs/sounds/mobs_mesemonster.ogg b/mods/mobs/sounds/mobs_mesemonster.ogg new file mode 100644 index 0000000..c354dfd Binary files /dev/null and b/mods/mobs/sounds/mobs_mesemonster.ogg differ diff --git a/mods/mobs/sounds/mobs_oerkki.ogg b/mods/mobs/sounds/mobs_oerkki.ogg new file mode 100644 index 0000000..aac6e43 Binary files /dev/null and b/mods/mobs/sounds/mobs_oerkki.ogg differ diff --git a/mods/mobs/sounds/mobs_pig.ogg b/mods/mobs/sounds/mobs_pig.ogg new file mode 100644 index 0000000..e7c7591 Binary files /dev/null and b/mods/mobs/sounds/mobs_pig.ogg differ diff --git a/mods/mobs/sounds/mobs_pig_angry.ogg b/mods/mobs/sounds/mobs_pig_angry.ogg new file mode 100644 index 0000000..2a4f47b Binary files /dev/null and b/mods/mobs/sounds/mobs_pig_angry.ogg differ diff --git a/mods/mobs/sounds/mobs_rat.ogg b/mods/mobs/sounds/mobs_rat.ogg new file mode 100644 index 0000000..0e99267 Binary files /dev/null and b/mods/mobs/sounds/mobs_rat.ogg differ diff --git a/mods/mobs/sounds/mobs_sandmonster.ogg b/mods/mobs/sounds/mobs_sandmonster.ogg new file mode 100644 index 0000000..2feae6a Binary files /dev/null and b/mods/mobs/sounds/mobs_sandmonster.ogg differ diff --git a/mods/mobs/sounds/mobs_sheep.ogg b/mods/mobs/sounds/mobs_sheep.ogg new file mode 100644 index 0000000..54f62cd Binary files /dev/null and b/mods/mobs/sounds/mobs_sheep.ogg differ diff --git a/mods/mobs/sounds/mobs_spider.ogg b/mods/mobs/sounds/mobs_spider.ogg new file mode 100644 index 0000000..4105006 Binary files /dev/null and b/mods/mobs/sounds/mobs_spider.ogg differ diff --git a/mods/mobs/sounds/mobs_stonemonster.ogg b/mods/mobs/sounds/mobs_stonemonster.ogg new file mode 100644 index 0000000..2d2b9f1 Binary files /dev/null and b/mods/mobs/sounds/mobs_stonemonster.ogg differ diff --git a/mods/mobs/sounds/mobs_treemonster.ogg b/mods/mobs/sounds/mobs_treemonster.ogg new file mode 100644 index 0000000..ce4e11e Binary files /dev/null and b/mods/mobs/sounds/mobs_treemonster.ogg differ diff --git a/mods/mobs/textures/mobs_1248_knight.png b/mods/mobs/textures/mobs_1248_knight.png new file mode 100644 index 0000000..f0ba5db Binary files /dev/null and b/mods/mobs/textures/mobs_1248_knight.png differ diff --git a/mods/mobs/textures/mobs_blood.png b/mods/mobs/textures/mobs_blood.png new file mode 100644 index 0000000..f8a4968 Binary files /dev/null and b/mods/mobs/textures/mobs_blood.png differ diff --git a/mods/mobs/textures/mobs_blue_monster.png b/mods/mobs/textures/mobs_blue_monster.png new file mode 100644 index 0000000..7276994 Binary files /dev/null and b/mods/mobs/textures/mobs_blue_monster.png differ diff --git a/mods/mobs/textures/mobs_cyan_monster.png b/mods/mobs/textures/mobs_cyan_monster.png new file mode 100644 index 0000000..d6d8901 Binary files /dev/null and b/mods/mobs/textures/mobs_cyan_monster.png differ diff --git a/mods/mobs/textures/mobs_desert_sand_monster.png b/mods/mobs/textures/mobs_desert_sand_monster.png new file mode 100644 index 0000000..4e5ca22 Binary files /dev/null and b/mods/mobs/textures/mobs_desert_sand_monster.png differ diff --git a/mods/mobs/textures/mobs_desert_stone_monster.png b/mods/mobs/textures/mobs_desert_stone_monster.png new file mode 100644 index 0000000..af35e12 Binary files /dev/null and b/mods/mobs/textures/mobs_desert_stone_monster.png differ diff --git a/mods/mobs/textures/mobs_dirt_monster.png b/mods/mobs/textures/mobs_dirt_monster.png new file mode 100644 index 0000000..76dce8d Binary files /dev/null and b/mods/mobs/textures/mobs_dirt_monster.png differ diff --git a/mods/mobs/textures/mobs_dog.png b/mods/mobs/textures/mobs_dog.png new file mode 100644 index 0000000..28d39cb Binary files /dev/null and b/mods/mobs/textures/mobs_dog.png differ diff --git a/mods/mobs/textures/mobs_dog2.png b/mods/mobs/textures/mobs_dog2.png new file mode 100644 index 0000000..cc89f58 Binary files /dev/null and b/mods/mobs/textures/mobs_dog2.png differ diff --git a/mods/mobs/textures/mobs_dragon_black.png b/mods/mobs/textures/mobs_dragon_black.png new file mode 100644 index 0000000..b4fe74c Binary files /dev/null and b/mods/mobs/textures/mobs_dragon_black.png differ diff --git a/mods/mobs/textures/mobs_dragon_blue.png b/mods/mobs/textures/mobs_dragon_blue.png new file mode 100644 index 0000000..08f06cc Binary files /dev/null and b/mods/mobs/textures/mobs_dragon_blue.png differ diff --git a/mods/mobs/textures/mobs_dragon_great.png b/mods/mobs/textures/mobs_dragon_great.png new file mode 100644 index 0000000..596bc2e Binary files /dev/null and b/mods/mobs/textures/mobs_dragon_great.png differ diff --git a/mods/mobs/textures/mobs_dragon_green.png b/mods/mobs/textures/mobs_dragon_green.png new file mode 100644 index 0000000..427b3bd Binary files /dev/null and b/mods/mobs/textures/mobs_dragon_green.png differ diff --git a/mods/mobs/textures/mobs_dragon_red.png b/mods/mobs/textures/mobs_dragon_red.png new file mode 100644 index 0000000..6a54843 Binary files /dev/null and b/mods/mobs/textures/mobs_dragon_red.png differ diff --git a/mods/mobs/textures/mobs_dragon_yellow.png b/mods/mobs/textures/mobs_dragon_yellow.png new file mode 100644 index 0000000..0561d92 Binary files /dev/null and b/mods/mobs/textures/mobs_dragon_yellow.png differ diff --git a/mods/mobs/textures/mobs_dry_grass_monster.png b/mods/mobs/textures/mobs_dry_grass_monster.png new file mode 100644 index 0000000..9dd0246 Binary files /dev/null and b/mods/mobs/textures/mobs_dry_grass_monster.png differ diff --git a/mods/mobs/textures/mobs_fox.png b/mods/mobs/textures/mobs_fox.png new file mode 100644 index 0000000..ff40c72 Binary files /dev/null and b/mods/mobs/textures/mobs_fox.png differ diff --git a/mods/mobs/textures/mobs_fox1.png b/mods/mobs/textures/mobs_fox1.png new file mode 100644 index 0000000..0a055a4 Binary files /dev/null and b/mods/mobs/textures/mobs_fox1.png differ diff --git a/mods/mobs/textures/mobs_grass_monster.png b/mods/mobs/textures/mobs_grass_monster.png new file mode 100644 index 0000000..2f57b8b Binary files /dev/null and b/mods/mobs/textures/mobs_grass_monster.png differ diff --git a/mods/mobs/textures/mobs_green_monster.png b/mods/mobs/textures/mobs_green_monster.png new file mode 100644 index 0000000..0dd6d48 Binary files /dev/null and b/mods/mobs/textures/mobs_green_monster.png differ diff --git a/mods/mobs/textures/mobs_ice_monster.png b/mods/mobs/textures/mobs_ice_monster.png new file mode 100644 index 0000000..6d5fafa Binary files /dev/null and b/mods/mobs/textures/mobs_ice_monster.png differ diff --git a/mods/mobs/textures/mobs_kitten.png b/mods/mobs/textures/mobs_kitten.png new file mode 100644 index 0000000..1707c2e Binary files /dev/null and b/mods/mobs/textures/mobs_kitten.png differ diff --git a/mods/mobs/textures/mobs_kitten2.png b/mods/mobs/textures/mobs_kitten2.png new file mode 100644 index 0000000..052f04e Binary files /dev/null and b/mods/mobs/textures/mobs_kitten2.png differ diff --git a/mods/mobs/textures/mobs_kitten3.png b/mods/mobs/textures/mobs_kitten3.png new file mode 100644 index 0000000..1fad994 Binary files /dev/null and b/mods/mobs/textures/mobs_kitten3.png differ diff --git a/mods/mobs/textures/mobs_kitten4.png b/mods/mobs/textures/mobs_kitten4.png new file mode 100644 index 0000000..4d1a0cc Binary files /dev/null and b/mods/mobs/textures/mobs_kitten4.png differ diff --git a/mods/mobs/textures/mobs_purple_monster.png b/mods/mobs/textures/mobs_purple_monster.png new file mode 100644 index 0000000..cf89058 Binary files /dev/null and b/mods/mobs/textures/mobs_purple_monster.png differ diff --git a/mods/mobs/textures/mobs_rainforest_litter_monster.png b/mods/mobs/textures/mobs_rainforest_litter_monster.png new file mode 100644 index 0000000..ea5c98b Binary files /dev/null and b/mods/mobs/textures/mobs_rainforest_litter_monster.png differ diff --git a/mods/mobs/textures/mobs_red_monster.png b/mods/mobs/textures/mobs_red_monster.png new file mode 100644 index 0000000..d1d978c Binary files /dev/null and b/mods/mobs/textures/mobs_red_monster.png differ diff --git a/mods/mobs/textures/mobs_sand_monster.png b/mods/mobs/textures/mobs_sand_monster.png new file mode 100644 index 0000000..98ba07d Binary files /dev/null and b/mods/mobs/textures/mobs_sand_monster.png differ diff --git a/mods/mobs/textures/mobs_sheep.png b/mods/mobs/textures/mobs_sheep.png new file mode 100644 index 0000000..8d38af8 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep.png differ diff --git a/mods/mobs/textures/mobs_sheep_black.png b/mods/mobs/textures/mobs_sheep_black.png new file mode 100644 index 0000000..2e98868 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_black.png differ diff --git a/mods/mobs/textures/mobs_sheep_blue.png b/mods/mobs/textures/mobs_sheep_blue.png new file mode 100644 index 0000000..d26ab0b Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_blue.png differ diff --git a/mods/mobs/textures/mobs_sheep_brown.png b/mods/mobs/textures/mobs_sheep_brown.png new file mode 100644 index 0000000..6f1ab97 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_brown.png differ diff --git a/mods/mobs/textures/mobs_sheep_cyan.png b/mods/mobs/textures/mobs_sheep_cyan.png new file mode 100644 index 0000000..e787476 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_cyan.png differ diff --git a/mods/mobs/textures/mobs_sheep_dark_green.png b/mods/mobs/textures/mobs_sheep_dark_green.png new file mode 100644 index 0000000..4321688 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_dark_green.png differ diff --git a/mods/mobs/textures/mobs_sheep_dark_grey.png b/mods/mobs/textures/mobs_sheep_dark_grey.png new file mode 100644 index 0000000..f60ab57 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_dark_grey.png differ diff --git a/mods/mobs/textures/mobs_sheep_green.png b/mods/mobs/textures/mobs_sheep_green.png new file mode 100644 index 0000000..56349c3 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_green.png differ diff --git a/mods/mobs/textures/mobs_sheep_grey.png b/mods/mobs/textures/mobs_sheep_grey.png new file mode 100644 index 0000000..9bae623 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_grey.png differ diff --git a/mods/mobs/textures/mobs_sheep_magenta.png b/mods/mobs/textures/mobs_sheep_magenta.png new file mode 100644 index 0000000..9abfe53 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_magenta.png differ diff --git a/mods/mobs/textures/mobs_sheep_orange.png b/mods/mobs/textures/mobs_sheep_orange.png new file mode 100644 index 0000000..b5276a8 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_orange.png differ diff --git a/mods/mobs/textures/mobs_sheep_pink.png b/mods/mobs/textures/mobs_sheep_pink.png new file mode 100644 index 0000000..f58b695 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_pink.png differ diff --git a/mods/mobs/textures/mobs_sheep_red.png b/mods/mobs/textures/mobs_sheep_red.png new file mode 100644 index 0000000..5a6a3d9 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_red.png differ diff --git a/mods/mobs/textures/mobs_sheep_shaved.png b/mods/mobs/textures/mobs_sheep_shaved.png new file mode 100644 index 0000000..e1f8568 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_shaved.png differ diff --git a/mods/mobs/textures/mobs_sheep_violet.png b/mods/mobs/textures/mobs_sheep_violet.png new file mode 100644 index 0000000..4233d07 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_violet.png differ diff --git a/mods/mobs/textures/mobs_sheep_white.png b/mods/mobs/textures/mobs_sheep_white.png new file mode 100644 index 0000000..fc27f1e Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_white.png differ diff --git a/mods/mobs/textures/mobs_sheep_yellow.png b/mods/mobs/textures/mobs_sheep_yellow.png new file mode 100644 index 0000000..fccaba5 Binary files /dev/null and b/mods/mobs/textures/mobs_sheep_yellow.png differ diff --git a/mods/mobs/textures/mobs_silver_sand_monster.png b/mods/mobs/textures/mobs_silver_sand_monster.png new file mode 100644 index 0000000..59c3993 Binary files /dev/null and b/mods/mobs/textures/mobs_silver_sand_monster.png differ diff --git a/mods/mobs/textures/mobs_snow_monster.png b/mods/mobs/textures/mobs_snow_monster.png new file mode 100644 index 0000000..3028882 Binary files /dev/null and b/mods/mobs/textures/mobs_snow_monster.png differ diff --git a/mods/mobs/textures/mobs_stone_monster.png b/mods/mobs/textures/mobs_stone_monster.png new file mode 100644 index 0000000..54223e1 Binary files /dev/null and b/mods/mobs/textures/mobs_stone_monster.png differ diff --git a/mods/mobs/textures/mobs_stone_monster_2.png b/mods/mobs/textures/mobs_stone_monster_2.png new file mode 100644 index 0000000..70bfc6e Binary files /dev/null and b/mods/mobs/textures/mobs_stone_monster_2.png differ diff --git a/mods/mobs/textures/mobs_tortoise.png b/mods/mobs/textures/mobs_tortoise.png new file mode 100644 index 0000000..f536f10 Binary files /dev/null and b/mods/mobs/textures/mobs_tortoise.png differ diff --git a/mods/mobs/textures/mobs_yellow_monster.png b/mods/mobs/textures/mobs_yellow_monster.png new file mode 100644 index 0000000..4378e78 Binary files /dev/null and b/mods/mobs/textures/mobs_yellow_monster.png differ diff --git a/mods/mobs/tortoise.lua b/mods/mobs/tortoise.lua new file mode 100644 index 0000000..202a6b3 --- /dev/null +++ b/mods/mobs/tortoise.lua @@ -0,0 +1,42 @@ +mobs:register_mob("mobs:tortoise", { + type = "npc", + passive = false, + attack_type = "dogfight", + damage = 10, + hp_min = 2000, + hp_max = 3000, + armor = 100, + order = "follow", + visual_size= {x=2.5,y=2.5}, + collisionbox = {-0.5, 0, -0.5, 0.5, 1, 0.5}, + visual = "mesh", + mesh = "mobs_tortoise.b3d", + attacks_monsters = false, + textures = { + {"mobs_tortoise.png"}, + }, + makes_footstep_sound = true, + view_range = 15, + walk_velocity = 1, + run_velocity = 3, + jump = true, + tamed = true, + water_damage = 0, + lava_damage = 0, + light_damage = 0, + fall_damage = 0, + metadata = 1, + metadata2 = 1, + 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, + }, +}) diff --git a/mods/mobs_sky/README.md b/mods/mobs_sky/README.md new file mode 100644 index 0000000..d8b116f --- /dev/null +++ b/mods/mobs_sky/README.md @@ -0,0 +1,4 @@ +A few sky critters ported from other mob frameworks to "Mobs-Redo". + +License information for the models and textures can be found inside +the respective folders. diff --git a/mods/mobs_sky/mobs_bat/depends.txt b/mods/mobs_sky/mobs_bat/depends.txt new file mode 100644 index 0000000..cc03398 --- /dev/null +++ b/mods/mobs_sky/mobs_bat/depends.txt @@ -0,0 +1,2 @@ +default +mobs diff --git a/mods/mobs_sky/mobs_bat/init.lua b/mods/mobs_sky/mobs_bat/init.lua new file mode 100644 index 0000000..ace2fa7 --- /dev/null +++ b/mods/mobs_sky/mobs_bat/init.lua @@ -0,0 +1,46 @@ + local l_skins = { + {"animal_bat.png"}, + {"animal_bat.png^[colorize:black:150"} + } + local l_spawnnear = {"group:stone"} + local l_spawnchance = 15 + mobs:register_mob("mobs_bat:bat", { + type = "animal", + damage = 1, + reach = 1, + attack_type = "dogfight", + hp_min = 4, + hp_max = 8, + armor = 130, + collisionbox = {-0.4,-0.4,-0.4, 0.4,0.4,0.4}, + visual = "mesh", + mesh = "animal_bat.b3d", + textures = l_skins, + rotate = 270, + walk_velocity = 10, + run_velocity = 23, + fall_speed = 0, + stepheight = 3, + sounds = { + random = "animal_bat", + war_cry = "animal_bat", + damage = "animal_bat", + attack = "animal_bat", + }, + fly = true, + water_damage = 2, + lava_damage = 10, + light_damage = 0, + view_range = 10, + animation = { + speed_normal = 24, speed_run = 24, + stand_start = 30, stand_end = 59, + walk_start = 30, walk_end = 59, + run_start = 30, run_end = 59, + punch_start = 60, punch_end = 89 + }, + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, 5, 60, 0, true, nil) + end + }) + --mobs:spawn_specific("mobs_bat:bat", {"air"}, l_spawnnear, 0, 6, 10, l_spawnchance, 2, -100, 11000) diff --git a/mods/mobs_sky/mobs_bat/license.txt b/mods/mobs_sky/mobs_bat/license.txt new file mode 100644 index 0000000..8b68e7d --- /dev/null +++ b/mods/mobs_sky/mobs_bat/license.txt @@ -0,0 +1,12 @@ +-------------------------- +-------------------------- +-- ANÝMAL BAT -- +-------------------------- +-------------------------- +-- +-- Model and textures from Defense Subgame +-- License of defense mod GPL +-- License of media (models, textures ) (CC BY-SA 3.0) +-- License of Api WTFPL Simple Mobs by PilzAdam > Mob Redo by Ten1plus > Redo+ Mahmutelmas06 +-- Sounds from bigsoundbank and WTFPL ( confirmed by email ) +-- \ No newline at end of file diff --git a/mods/mobs_sky/mobs_bat/models/animal_bat.b3d b/mods/mobs_sky/mobs_bat/models/animal_bat.b3d new file mode 100644 index 0000000..829ced0 Binary files /dev/null and b/mods/mobs_sky/mobs_bat/models/animal_bat.b3d differ diff --git a/mods/mobs_sky/mobs_bat/sounds/animal_bat.ogg b/mods/mobs_sky/mobs_bat/sounds/animal_bat.ogg new file mode 100644 index 0000000..faad6bf Binary files /dev/null and b/mods/mobs_sky/mobs_bat/sounds/animal_bat.ogg differ diff --git a/mods/mobs_sky/mobs_bat/textures/Thumbs.db b/mods/mobs_sky/mobs_bat/textures/Thumbs.db new file mode 100644 index 0000000..417d023 Binary files /dev/null and b/mods/mobs_sky/mobs_bat/textures/Thumbs.db differ diff --git a/mods/mobs_sky/mobs_bat/textures/animal_bat.png b/mods/mobs_sky/mobs_bat/textures/animal_bat.png new file mode 100644 index 0000000..c9c2d60 Binary files /dev/null and b/mods/mobs_sky/mobs_bat/textures/animal_bat.png differ diff --git a/mods/mobs_sky/mobs_bat/textures/animal_bat_inv.png b/mods/mobs_sky/mobs_bat/textures/animal_bat_inv.png new file mode 100644 index 0000000..42f7602 Binary files /dev/null and b/mods/mobs_sky/mobs_bat/textures/animal_bat_inv.png differ diff --git a/mods/mobs_sky/mobs_birds/License.txt b/mods/mobs_sky/mobs_birds/License.txt new file mode 100644 index 0000000..3286a75 --- /dev/null +++ b/mods/mobs_sky/mobs_birds/License.txt @@ -0,0 +1,5 @@ +Licenses + +Model and textures: + CC-BY-SA 3.0, Author sapier + URL: http://creativecommons.org/licenses/by-sa/3.0/de/legalcode \ No newline at end of file diff --git a/mods/mobs_sky/mobs_birds/SETTINGS.txt b/mods/mobs_sky/mobs_birds/SETTINGS.txt new file mode 100644 index 0000000..bb35f4f --- /dev/null +++ b/mods/mobs_sky/mobs_birds/SETTINGS.txt @@ -0,0 +1,6 @@ + +-- SETTINGS + +ENABLE_GULLS = true +ENABLE_LARGE_BIRDS = true +ENABLE_SMALL_BIRDS = true diff --git a/mods/mobs_sky/mobs_birds/depends.txt b/mods/mobs_sky/mobs_birds/depends.txt new file mode 100644 index 0000000..cc03398 --- /dev/null +++ b/mods/mobs_sky/mobs_birds/depends.txt @@ -0,0 +1,2 @@ +default +mobs diff --git a/mods/mobs_sky/mobs_birds/init.lua b/mods/mobs_sky/mobs_birds/init.lua new file mode 100644 index 0000000..fcb6477 --- /dev/null +++ b/mods/mobs_sky/mobs_birds/init.lua @@ -0,0 +1,109 @@ + local l_skins_gull = { + {"animal_gull_mesh.png"}, + {"gull_black.png"}, + {"gull_gray.png"}, + {"gull_grayblue.png"} + } + local l_skins_bird = { + {"bird_blueish.png"}, + {"bird_brown.png"}, + {"bird_gray.png"}, + {"bird_grayblue.png"}, + {"bird_red.png"}, + {"bird_redish.png"} + } + local l_anims = { + speed_normal = 24, speed_run = 24, + stand_start = 1, stand_end = 95, + walk_start = 1, walk_end = 95, + run_start = 1, run_end = 95 + } + local l_model = "animal_gull.b3d" + local l_egg_texture = "default_cloud.png" + local l_capture_chance_h = 5 + local l_capture_chance_n = 60 + local l_spawn_in = {"air"} + local l_spawn_near_gull = {"group:leaves"} + local l_spawn_near_bird = {"group:leaves"} + local l_spawn_chance_gull = 15 + local l_spawn_chance_bird = 15 + mobs:register_mob("mobs_birds:gull", { + type = "animal", + passive = true, + hp_min = 5, + hp_max = 10, + armor = 100, + collisionbox = {-1, -0.3, -1, 1, 0.3, 1}, + visual = "mesh", + mesh = l_model, + textures = l_skins_gull, + rotate = 270, + walk_velocity = 4, + run_velocity = 6, + fall_speed = 0, + stepheight = 3, + fly = true, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + view_range = 14, + animation = l_anims, + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, l_capture_chance_h, l_capture_chance_n, 0, true, nil) + end + }) + --mobs:spawn_specific("mobs_birds:gull", l_spawn_in, l_spawn_near_gull, 5, 20, 10, l_spawn_chance_gull, 1, 0, 31000) + mobs:register_mob("mobs_birds:bird_lg", { + type = "animal", + passive = true, + hp_min = 5, + hp_max = 10, + armor = 250, + collisionbox = {-0.5, -0.3, -0.5, 0.5, 0.3, 0.5}, + visual = "mesh", + mesh = l_model, + textures = l_skins_bird, + visual_size = {x=.5, y=.5}, + rotate = 270, + walk_velocity = 4, + run_velocity = 6, + fall_speed = 0, + stepheight = 3, + fly = true, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + view_range = 12, + animation = l_anims, + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, l_capture_chance_h, l_capture_chance_n, 0, true, nil) + end + }) + --mobs:spawn_specific("mobs_birds:bird_lg", l_spawn_in, l_spawn_near_bird, 5, 20, 10, l_spawn_chance_bird, 1, 0, 31000) + mobs:register_mob("mobs_birds:bird_sm", { + type = "animal", + passive = true, + hp_min = 2, + hp_max = 5, + armor = 200, + collisionbox = {-0.25, -0.3, -0.25, 0.25, 0.3, 0.25}, + visual = "mesh", + mesh = l_model, + textures = l_skins_bird, + visual_size = {x=.25, y=.25}, + rotate = 270, + walk_velocity = 4, + run_velocity = 6, + fall_speed = 0, + stepheight = 3, + fly = true, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + view_range = 10, + animation = l_anims, + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, l_capture_chance_h, l_capture_chance_n, 0, true, nil) + end + }) + --mobs:spawn_specific("mobs_birds:bird_sm", l_spawn_in, l_spawn_near_bird, 5, 20, 10, l_spawn_chance_bird, 1, 0, 31000) diff --git a/mods/mobs_sky/mobs_birds/models/animal_gull.b3d b/mods/mobs_sky/mobs_birds/models/animal_gull.b3d new file mode 100644 index 0000000..03780dd Binary files /dev/null and b/mods/mobs_sky/mobs_birds/models/animal_gull.b3d differ diff --git a/mods/mobs_sky/mobs_birds/models/animal_gull.xcf b/mods/mobs_sky/mobs_birds/models/animal_gull.xcf new file mode 100644 index 0000000..e37b0cc Binary files /dev/null and b/mods/mobs_sky/mobs_birds/models/animal_gull.xcf differ diff --git a/mods/mobs_sky/mobs_birds/models/gull.blend b/mods/mobs_sky/mobs_birds/models/gull.blend new file mode 100644 index 0000000..6ce5e33 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/models/gull.blend differ diff --git a/mods/mobs_sky/mobs_birds/textures/animal_gull_mesh.png b/mods/mobs_sky/mobs_birds/textures/animal_gull_mesh.png new file mode 100644 index 0000000..bed42f0 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/animal_gull_mesh.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/bird_blueish.png b/mods/mobs_sky/mobs_birds/textures/bird_blueish.png new file mode 100644 index 0000000..ee21dfc Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/bird_blueish.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/bird_brown.png b/mods/mobs_sky/mobs_birds/textures/bird_brown.png new file mode 100644 index 0000000..32aba40 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/bird_brown.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/bird_gray.png b/mods/mobs_sky/mobs_birds/textures/bird_gray.png new file mode 100644 index 0000000..5f6d0fe Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/bird_gray.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/bird_grayblue.png b/mods/mobs_sky/mobs_birds/textures/bird_grayblue.png new file mode 100644 index 0000000..5ff0f7c Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/bird_grayblue.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/bird_red.png b/mods/mobs_sky/mobs_birds/textures/bird_red.png new file mode 100644 index 0000000..03ed81f Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/bird_red.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/bird_redish.png b/mods/mobs_sky/mobs_birds/textures/bird_redish.png new file mode 100644 index 0000000..dc57f02 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/bird_redish.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/gull_black.png b/mods/mobs_sky/mobs_birds/textures/gull_black.png new file mode 100644 index 0000000..6a2296e Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/gull_black.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/gull_gray.png b/mods/mobs_sky/mobs_birds/textures/gull_gray.png new file mode 100644 index 0000000..11d5122 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/gull_gray.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/gull_grayblue.png b/mods/mobs_sky/mobs_birds/textures/gull_grayblue.png new file mode 100644 index 0000000..e9314ec Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/gull_grayblue.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/animal_gull_gull.png b/mods/mobs_sky/mobs_birds/textures/originals/animal_gull_gull.png new file mode 100644 index 0000000..78da86d Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/animal_gull_gull.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/animal_gull_gull_item.png b/mods/mobs_sky/mobs_birds/textures/originals/animal_gull_gull_item.png new file mode 100644 index 0000000..636afba Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/animal_gull_gull_item.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/animal_gull_mesh.png b/mods/mobs_sky/mobs_birds/textures/originals/animal_gull_mesh.png new file mode 100644 index 0000000..4f5a678 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/animal_gull_mesh.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/bird_blueish.png b/mods/mobs_sky/mobs_birds/textures/originals/bird_blueish.png new file mode 100644 index 0000000..6ce8882 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/bird_blueish.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/bird_brown.png b/mods/mobs_sky/mobs_birds/textures/originals/bird_brown.png new file mode 100644 index 0000000..8ba3370 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/bird_brown.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/bird_gray.png b/mods/mobs_sky/mobs_birds/textures/originals/bird_gray.png new file mode 100644 index 0000000..8bc6e33 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/bird_gray.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/bird_grayblue.png b/mods/mobs_sky/mobs_birds/textures/originals/bird_grayblue.png new file mode 100644 index 0000000..b500106 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/bird_grayblue.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/bird_red.png b/mods/mobs_sky/mobs_birds/textures/originals/bird_red.png new file mode 100644 index 0000000..e51f768 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/bird_red.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/bird_redish.png b/mods/mobs_sky/mobs_birds/textures/originals/bird_redish.png new file mode 100644 index 0000000..442122f Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/bird_redish.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/gull_black.png b/mods/mobs_sky/mobs_birds/textures/originals/gull_black.png new file mode 100644 index 0000000..b76bb0b Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/gull_black.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/gull_gray.png b/mods/mobs_sky/mobs_birds/textures/originals/gull_gray.png new file mode 100644 index 0000000..b0d8652 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/gull_gray.png differ diff --git a/mods/mobs_sky/mobs_birds/textures/originals/gull_grayblue.png b/mods/mobs_sky/mobs_birds/textures/originals/gull_grayblue.png new file mode 100644 index 0000000..3c67c35 Binary files /dev/null and b/mods/mobs_sky/mobs_birds/textures/originals/gull_grayblue.png differ diff --git a/mods/mobs_sky/mobs_butterfly/License.txt b/mods/mobs_sky/mobs_butterfly/License.txt new file mode 100644 index 0000000..11d9289 --- /dev/null +++ b/mods/mobs_sky/mobs_butterfly/License.txt @@ -0,0 +1,6 @@ +Licenses + +Model/Textures: unknown +Author: AspireMint + +texture modification by: blert2112 diff --git a/mods/mobs_sky/mobs_butterfly/depends.txt b/mods/mobs_sky/mobs_butterfly/depends.txt new file mode 100644 index 0000000..cc03398 --- /dev/null +++ b/mods/mobs_sky/mobs_butterfly/depends.txt @@ -0,0 +1,2 @@ +default +mobs diff --git a/mods/mobs_sky/mobs_butterfly/init.lua b/mods/mobs_sky/mobs_butterfly/init.lua new file mode 100644 index 0000000..4cb05b7 --- /dev/null +++ b/mods/mobs_sky/mobs_butterfly/init.lua @@ -0,0 +1,47 @@ + +if mobs.mod and mobs.mod == "redo" then + +-- local variables + local l_skins = { + {"bf1.png^bf2.png^bf3.png^bf4.png^bf5.png"}, + {"(bf1.png^[colorize:orange)^(bf2.png^[colorize:violet)^(bf3.png^[colorize:yellow)^(bf4.png^[colorize:cyan)^(bf5.png^[colorize:black)"}, + {"(bf1.png^[colorize:magenta)^(bf2.png^[colorize:green)^(bf3.png^[colorize:red)^(bf4.png^[colorize:blue)^(bf5.png^[colorize:white)"}, + {"(bf1.png^[colorize:yellow)^(bf2.png^[colorize:cyan)^(bf3.png^[colorize:green)^(bf4.png^[colorize:violet)^(bf5.png^[colorize:darkgray)"}, + {"(bf1.png^[colorize:pink)^(bf2.png^[colorize:white)^(bf3.png^[colorize:blue)^(bf4.png^[colorize:orange)^(bf5.png^[colorize:gray)"}, + {"(bf1.png^[colorize:darkgreen)^(bf2.png^[colorize:brown)^(bf3.png^[colorize:black)^(bf4.png^[colorize:darkgray)^(bf5.png^[colorize:red)"} + } + local l_spawnnear = {"group:flower","group:leaves"} + local l_spawnchance = 30000 + +-- Butterfly + mobs:register_mob("mobs_butterfly:butterfly", { + type = "animal", + passive = true, + hp_min = 4, + hp_max = 8, + armor = 100, + collisionbox = {-1, -0.3, -1, 1, 0.3, 1}, + visual = "mesh", + mesh = "mobf_butterfly.x", + textures = l_skins, + walk_velocity = 2, + fall_speed = 0, + stepheight = 3, + fly = true, + water_damage = 1, + lava_damage = 1, + light_damage = 0, + fall_damage = 0, + view_range = 10, + animation = { + speed_normal = 15, speed_run = 30, + stand_start = 0, stand_end = 90, + walk_start = 0, walk_end = 90, + }, + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, 10, 80, 0, true, nil) + end + }) + --mobs:spawn_specific("mobs_butterfly:butterfly", {"air"}, l_spawnnear, 5, 20, 30, l_spawnchance, 1, 0, 31000) + +end diff --git a/mods/mobs_sky/mobs_butterfly/models/mobf_butterfly.x b/mods/mobs_sky/mobs_butterfly/models/mobf_butterfly.x new file mode 100644 index 0000000..96a5245 --- /dev/null +++ b/mods/mobs_sky/mobs_butterfly/models/mobf_butterfly.x @@ -0,0 +1,5902 @@ +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_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 { + 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.499813, 0.120000,-3.130000, 1.000000;; + } + Frame Armature_Bone_003 { + FrameTransformMatrix { + 0.707107, 0.707107, 0.000000, 0.000000, + -0.707107, 0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -0.120775, 1.497515, 0.000000, 1.000000;; + } + } // End of Armature_Bone_003 + Frame Armature_Bone_005 { + FrameTransformMatrix { + 0.707107,-0.707107, 0.000000, 0.000000, + 0.707107, 0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.133184, 1.496433, 0.000000, 1.000000;; + } + } // End of Armature_Bone_005 + Frame Armature_Bone_007 { + FrameTransformMatrix { + -0.707107, 0.707107, 0.000000, 0.000000, + -0.707107,-0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -0.119256,-0.501237, 0.000000, 1.000000;; + } + } // End of Armature_Bone_007 + Frame Armature_Bone_009 { + FrameTransformMatrix { + -0.707107,-0.707107, 0.000000, 0.000000, + 0.707107,-0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.135209,-0.501063, 0.000000, 1.000000;; + } + } // End of Armature_Bone_009 + } // End of Armature_Bone_001 + Frame Armature_Bone_002 { + 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.499813, 0.120000, 3.130000, 1.000000;; + } + Frame Armature_Bone_004 { + FrameTransformMatrix { + 0.707107, 0.707107, 0.000000, 0.000000, + -0.707107, 0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -0.120775, 1.497515, 0.000000, 1.000000;; + } + } // End of Armature_Bone_004 + Frame Armature_Bone_006 { + FrameTransformMatrix { + 0.707107,-0.707107, 0.000000, 0.000000, + 0.707107, 0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.133184, 1.496433, 0.000000, 1.000000;; + } + } // End of Armature_Bone_006 + Frame Armature_Bone_008 { + FrameTransformMatrix { + -0.707107, 0.707107, 0.000000, 0.000000, + -0.707107,-0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -0.119256,-0.501237, 0.000000, 1.000000;; + } + } // End of Armature_Bone_008 + Frame Armature_Bone_010 { + FrameTransformMatrix { + -0.707107,-0.707107, 0.000000, 0.000000, + 0.707107,-0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.135209,-0.501063, 0.000000, 1.000000;; + } + } // End of Armature_Bone_010 + } // End of Armature_Bone_002 + } // End of Armature_Bone + Frame Group5 { + 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 { // Group5 mesh + 360; + 3.000000; 3.250000; 0.160000;, + 1.000000; 3.250000; 0.085000;, + 3.000000; 3.250000; 0.085000;, + 1.000000; 3.250000; 0.085000;, + 3.000000; 3.250000; 0.160000;, + 1.000000; 3.250000; 0.160000;, + 3.000000; 3.250000; 0.160000;, + 1.000000; 5.250000; 0.160000;, + 1.000000; 3.250000; 0.160000;, + 1.000000; 5.250000; 0.160000;, + 3.000000; 3.250000; 0.160000;, + 3.000000; 5.250000; 0.160000;, + 3.000000; 3.250000; 0.160000;, + 3.000000; 5.250000; 0.085000;, + 3.000000; 5.250000; 0.160000;, + 3.000000; 5.250000; 0.085000;, + 3.000000; 3.250000; 0.160000;, + 3.000000; 3.250000; 0.085000;, + 1.000000; 3.250000; 0.085000;, + 3.000000; 5.250000; 0.085000;, + 3.000000; 3.250000; 0.085000;, + 3.000000; 5.250000; 0.085000;, + 1.000000; 3.250000; 0.085000;, + 1.000000; 5.250000; 0.085000;, + 1.000000; 3.250000; 0.085000;, + 1.000000; 5.250000; 0.160000;, + 1.000000; 5.250000; 0.085000;, + 1.000000; 5.250000; 0.160000;, + 1.000000; 3.250000; 0.085000;, + 1.000000; 3.250000; 0.160000;, + 1.000000; 5.250000; 0.160000;, + 3.000000; 5.250000; 0.085000;, + 1.000000; 5.250000; 0.085000;, + 3.000000; 5.250000; 0.085000;, + 1.000000; 5.250000; 0.160000;, + 3.000000; 5.250000; 0.160000;, + -1.000000; 3.250000; 0.160000;, + -2.000000; 3.250000; 0.085000;, + -1.000000; 3.250000; 0.085000;, + -2.000000; 3.250000; 0.085000;, + -1.000000; 3.250000; 0.160000;, + -2.000000; 3.250000; 0.160000;, + -1.000000; 3.250000; 0.160000;, + -2.000000; 4.250000; 0.160000;, + -2.000000; 3.250000; 0.160000;, + -2.000000; 4.250000; 0.160000;, + -1.000000; 3.250000; 0.160000;, + -1.000000; 4.250000; 0.160000;, + -1.000000; 3.250000; 0.160000;, + -1.000000; 4.250000; 0.085000;, + -1.000000; 4.250000; 0.160000;, + -1.000000; 4.250000; 0.085000;, + -1.000000; 3.250000; 0.160000;, + -1.000000; 3.250000; 0.085000;, + -2.000000; 3.250000; 0.085000;, + -1.000000; 4.250000; 0.085000;, + -1.000000; 3.250000; 0.085000;, + -1.000000; 4.250000; 0.085000;, + -2.000000; 3.250000; 0.085000;, + -2.000000; 4.250000; 0.085000;, + -2.000000; 3.250000; 0.085000;, + -2.000000; 4.250000; 0.160000;, + -2.000000; 4.250000; 0.085000;, + -2.000000; 4.250000; 0.160000;, + -2.000000; 3.250000; 0.085000;, + -2.000000; 3.250000; 0.160000;, + -2.000000; 4.250000; 0.160000;, + -1.000000; 4.250000; 0.085000;, + -2.000000; 4.250000; 0.085000;, + -1.000000; 4.250000; 0.085000;, + -2.000000; 4.250000; 0.160000;, + -1.000000; 4.250000; 0.160000;, + 0.500000; 3.250000;-0.002500;, + 0.500000; 3.000000; 0.247500;, + 0.500000; 3.000000;-0.002500;, + 0.500000; 3.000000; 0.247500;, + 0.500000; 3.250000;-0.002500;, + 0.500000; 3.250000; 0.247500;, + 0.500000; 3.250000;-0.002500;, + -0.500000; 3.250000; 0.247500;, + 0.500000; 3.250000; 0.247500;, + -0.500000; 3.250000; 0.247500;, + 0.500000; 3.250000;-0.002500;, + -0.500000; 3.250000;-0.002500;, + 0.500000; 3.250000;-0.002500;, + -0.500000; 3.000000;-0.002500;, + -0.500000; 3.250000;-0.002500;, + -0.500000; 3.000000;-0.002500;, + 0.500000; 3.250000;-0.002500;, + 0.500000; 3.000000;-0.002500;, + 0.500000; 3.000000; 0.247500;, + -0.500000; 3.000000;-0.002500;, + 0.500000; 3.000000;-0.002500;, + -0.500000; 3.000000;-0.002500;, + 0.500000; 3.000000; 0.247500;, + -0.500000; 3.000000; 0.247500;, + 0.500000; 3.000000; 0.247500;, + -0.500000; 3.250000; 0.247500;, + -0.500000; 3.000000; 0.247500;, + -0.500000; 3.250000; 0.247500;, + 0.500000; 3.000000; 0.247500;, + 0.500000; 3.250000; 0.247500;, + -0.500000; 3.250000; 0.247500;, + -0.500000; 3.000000;-0.002500;, + -0.500000; 3.000000; 0.247500;, + -0.500000; 3.000000;-0.002500;, + -0.500000; 3.250000; 0.247500;, + -0.500000; 3.250000;-0.002500;, + 3.000000; 3.000000; 0.085000;, + 1.000000; 3.000000; 0.160000;, + 3.000000; 3.000000; 0.160000;, + 1.000000; 3.000000; 0.160000;, + 3.000000; 3.000000; 0.085000;, + 1.000000; 3.000000; 0.085000;, + 3.000000; 3.000000; 0.085000;, + 1.000000; 1.000000; 0.085000;, + 1.000000; 3.000000; 0.085000;, + 1.000000; 1.000000; 0.085000;, + 3.000000; 3.000000; 0.085000;, + 3.000000; 1.000000; 0.085000;, + 3.000000; 3.000000; 0.085000;, + 3.000000; 1.000000; 0.160000;, + 3.000000; 1.000000; 0.085000;, + 3.000000; 1.000000; 0.160000;, + 3.000000; 3.000000; 0.085000;, + 3.000000; 3.000000; 0.160000;, + 1.000000; 3.000000; 0.160000;, + 3.000000; 1.000000; 0.160000;, + 3.000000; 3.000000; 0.160000;, + 3.000000; 1.000000; 0.160000;, + 1.000000; 3.000000; 0.160000;, + 1.000000; 1.000000; 0.160000;, + 1.000000; 3.000000; 0.160000;, + 1.000000; 1.000000; 0.085000;, + 1.000000; 1.000000; 0.160000;, + 1.000000; 1.000000; 0.085000;, + 1.000000; 3.000000; 0.160000;, + 1.000000; 3.000000; 0.085000;, + 1.000000; 1.000000; 0.085000;, + 3.000000; 1.000000; 0.160000;, + 1.000000; 1.000000; 0.160000;, + 3.000000; 1.000000; 0.160000;, + 1.000000; 1.000000; 0.085000;, + 3.000000; 1.000000; 0.085000;, + -1.000000; 3.000000; 0.085000;, + -2.000000; 3.000000; 0.160000;, + -1.000000; 3.000000; 0.160000;, + -2.000000; 3.000000; 0.160000;, + -1.000000; 3.000000; 0.085000;, + -2.000000; 3.000000; 0.085000;, + -1.000000; 3.000000; 0.085000;, + -2.000000; 2.000000; 0.085000;, + -2.000000; 3.000000; 0.085000;, + -2.000000; 2.000000; 0.085000;, + -1.000000; 3.000000; 0.085000;, + -1.000000; 2.000000; 0.085000;, + -1.000000; 3.000000; 0.085000;, + -1.000000; 2.000000; 0.160000;, + -1.000000; 2.000000; 0.085000;, + -1.000000; 2.000000; 0.160000;, + -1.000000; 3.000000; 0.085000;, + -1.000000; 3.000000; 0.160000;, + -2.000000; 3.000000; 0.160000;, + -1.000000; 2.000000; 0.160000;, + -1.000000; 3.000000; 0.160000;, + -1.000000; 2.000000; 0.160000;, + -2.000000; 3.000000; 0.160000;, + -2.000000; 2.000000; 0.160000;, + -2.000000; 3.000000; 0.160000;, + -2.000000; 2.000000; 0.085000;, + -2.000000; 2.000000; 0.160000;, + -2.000000; 2.000000; 0.085000;, + -2.000000; 3.000000; 0.160000;, + -2.000000; 3.000000; 0.085000;, + -2.000000; 2.000000; 0.085000;, + -1.000000; 2.000000; 0.160000;, + -2.000000; 2.000000; 0.160000;, + -1.000000; 2.000000; 0.160000;, + -2.000000; 2.000000; 0.085000;, + -1.000000; 2.000000; 0.085000;, + -1.000000;-3.250000; 0.085000;, + -2.000000;-3.250000; 0.160000;, + -1.000000;-3.250000; 0.160000;, + -2.000000;-3.250000; 0.160000;, + -1.000000;-3.250000; 0.085000;, + -2.000000;-3.250000; 0.085000;, + -1.000000;-3.250000; 0.085000;, + -2.000000;-4.250000; 0.085000;, + -2.000000;-3.250000; 0.085000;, + -2.000000;-4.250000; 0.085000;, + -1.000000;-3.250000; 0.085000;, + -1.000000;-4.250000; 0.085000;, + -1.000000;-3.250000; 0.085000;, + -1.000000;-4.250000; 0.160000;, + -1.000000;-4.250000; 0.085000;, + -1.000000;-4.250000; 0.160000;, + -1.000000;-3.250000; 0.085000;, + -1.000000;-3.250000; 0.160000;, + -2.000000;-3.250000; 0.160000;, + -1.000000;-4.250000; 0.160000;, + -1.000000;-3.250000; 0.160000;, + -1.000000;-4.250000; 0.160000;, + -2.000000;-3.250000; 0.160000;, + -2.000000;-4.250000; 0.160000;, + -2.000000;-3.250000; 0.160000;, + -2.000000;-4.250000; 0.085000;, + -2.000000;-4.250000; 0.160000;, + -2.000000;-4.250000; 0.085000;, + -2.000000;-3.250000; 0.160000;, + -2.000000;-3.250000; 0.085000;, + -2.000000;-4.250000; 0.085000;, + -1.000000;-4.250000; 0.160000;, + -2.000000;-4.250000; 0.160000;, + -1.000000;-4.250000; 0.160000;, + -2.000000;-4.250000; 0.085000;, + -1.000000;-4.250000; 0.085000;, + 3.000000;-3.250000; 0.085000;, + 1.000000;-3.250000; 0.160000;, + 3.000000;-3.250000; 0.160000;, + 1.000000;-3.250000; 0.160000;, + 3.000000;-3.250000; 0.085000;, + 1.000000;-3.250000; 0.085000;, + 3.000000;-3.250000; 0.085000;, + 1.000000;-5.250000; 0.085000;, + 1.000000;-3.250000; 0.085000;, + 1.000000;-5.250000; 0.085000;, + 3.000000;-3.250000; 0.085000;, + 3.000000;-5.250000; 0.085000;, + 3.000000;-3.250000; 0.085000;, + 3.000000;-5.250000; 0.160000;, + 3.000000;-5.250000; 0.085000;, + 3.000000;-5.250000; 0.160000;, + 3.000000;-3.250000; 0.085000;, + 3.000000;-3.250000; 0.160000;, + 1.000000;-3.250000; 0.160000;, + 3.000000;-5.250000; 0.160000;, + 3.000000;-3.250000; 0.160000;, + 3.000000;-5.250000; 0.160000;, + 1.000000;-3.250000; 0.160000;, + 1.000000;-5.250000; 0.160000;, + 1.000000;-3.250000; 0.160000;, + 1.000000;-5.250000; 0.085000;, + 1.000000;-5.250000; 0.160000;, + 1.000000;-5.250000; 0.085000;, + 1.000000;-3.250000; 0.160000;, + 1.000000;-3.250000; 0.085000;, + 1.000000;-5.250000; 0.085000;, + 3.000000;-5.250000; 0.160000;, + 1.000000;-5.250000; 0.160000;, + 3.000000;-5.250000; 0.160000;, + 1.000000;-5.250000; 0.085000;, + 3.000000;-5.250000; 0.085000;, + 0.500000;-3.000000;-0.002500;, + 0.500000;-3.250000; 0.247500;, + 0.500000;-3.250000;-0.002500;, + 0.500000;-3.250000; 0.247500;, + 0.500000;-3.000000;-0.002500;, + 0.500000;-3.000000; 0.247500;, + 0.500000;-3.000000;-0.002500;, + -0.500000;-3.000000; 0.247500;, + 0.500000;-3.000000; 0.247500;, + -0.500000;-3.000000; 0.247500;, + 0.500000;-3.000000;-0.002500;, + -0.500000;-3.000000;-0.002500;, + 0.500000;-3.000000;-0.002500;, + -0.500000;-3.250000;-0.002500;, + -0.500000;-3.000000;-0.002500;, + -0.500000;-3.250000;-0.002500;, + 0.500000;-3.000000;-0.002500;, + 0.500000;-3.250000;-0.002500;, + 0.500000;-3.250000; 0.247500;, + -0.500000;-3.250000;-0.002500;, + 0.500000;-3.250000;-0.002500;, + -0.500000;-3.250000;-0.002500;, + 0.500000;-3.250000; 0.247500;, + -0.500000;-3.250000; 0.247500;, + 0.500000;-3.250000; 0.247500;, + -0.500000;-3.000000; 0.247500;, + -0.500000;-3.250000; 0.247500;, + -0.500000;-3.000000; 0.247500;, + 0.500000;-3.250000; 0.247500;, + 0.500000;-3.000000; 0.247500;, + -0.500000;-3.000000; 0.247500;, + -0.500000;-3.250000;-0.002500;, + -0.500000;-3.250000; 0.247500;, + -0.500000;-3.250000;-0.002500;, + -0.500000;-3.000000; 0.247500;, + -0.500000;-3.000000;-0.002500;, + 3.000000;-3.000000; 0.160000;, + 1.000000;-3.000000; 0.085000;, + 3.000000;-3.000000; 0.085000;, + 1.000000;-3.000000; 0.085000;, + 3.000000;-3.000000; 0.160000;, + 1.000000;-3.000000; 0.160000;, + 3.000000;-3.000000; 0.160000;, + 1.000000;-1.000000; 0.160000;, + 1.000000;-3.000000; 0.160000;, + 1.000000;-1.000000; 0.160000;, + 3.000000;-3.000000; 0.160000;, + 3.000000;-1.000000; 0.160000;, + 3.000000;-3.000000; 0.160000;, + 3.000000;-1.000000; 0.085000;, + 3.000000;-1.000000; 0.160000;, + 3.000000;-1.000000; 0.085000;, + 3.000000;-3.000000; 0.160000;, + 3.000000;-3.000000; 0.085000;, + 1.000000;-3.000000; 0.085000;, + 3.000000;-1.000000; 0.085000;, + 3.000000;-3.000000; 0.085000;, + 3.000000;-1.000000; 0.085000;, + 1.000000;-3.000000; 0.085000;, + 1.000000;-1.000000; 0.085000;, + 1.000000;-3.000000; 0.085000;, + 1.000000;-1.000000; 0.160000;, + 1.000000;-1.000000; 0.085000;, + 1.000000;-1.000000; 0.160000;, + 1.000000;-3.000000; 0.085000;, + 1.000000;-3.000000; 0.160000;, + 1.000000;-1.000000; 0.160000;, + 3.000000;-1.000000; 0.085000;, + 1.000000;-1.000000; 0.085000;, + 3.000000;-1.000000; 0.085000;, + 1.000000;-1.000000; 0.160000;, + 3.000000;-1.000000; 0.160000;, + -1.000000;-3.000000; 0.160000;, + -2.000000;-3.000000; 0.085000;, + -1.000000;-3.000000; 0.085000;, + -2.000000;-3.000000; 0.085000;, + -1.000000;-3.000000; 0.160000;, + -2.000000;-3.000000; 0.160000;, + -1.000000;-3.000000; 0.160000;, + -2.000000;-2.000000; 0.160000;, + -2.000000;-3.000000; 0.160000;, + -2.000000;-2.000000; 0.160000;, + -1.000000;-3.000000; 0.160000;, + -1.000000;-2.000000; 0.160000;, + -1.000000;-3.000000; 0.160000;, + -1.000000;-2.000000; 0.085000;, + -1.000000;-2.000000; 0.160000;, + -1.000000;-2.000000; 0.085000;, + -1.000000;-3.000000; 0.160000;, + -1.000000;-3.000000; 0.085000;, + -2.000000;-3.000000; 0.085000;, + -1.000000;-2.000000; 0.085000;, + -1.000000;-3.000000; 0.085000;, + -1.000000;-2.000000; 0.085000;, + -2.000000;-3.000000; 0.085000;, + -2.000000;-2.000000; 0.085000;, + -2.000000;-3.000000; 0.085000;, + -2.000000;-2.000000; 0.160000;, + -2.000000;-2.000000; 0.085000;, + -2.000000;-2.000000; 0.160000;, + -2.000000;-3.000000; 0.085000;, + -2.000000;-3.000000; 0.160000;, + -2.000000;-2.000000; 0.160000;, + -1.000000;-2.000000; 0.085000;, + -2.000000;-2.000000; 0.085000;, + -1.000000;-2.000000; 0.085000;, + -2.000000;-2.000000; 0.160000;, + -1.000000;-2.000000; 0.160000;; + 120; + 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;; + MeshNormals { // Group5 normals + 120; + 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;-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;, + 1.000000;-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;, + -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;, + 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; 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; 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; 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;, + 1.000000;-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;, + -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;, + 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;-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;; + 120; + 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;; + } // End of Group5 normals + MeshTextureCoords { // Group5 UV coordinates + 360; + 0.917901; 0.137246;, + 0.925601; 0.360911;, + 0.926288; 0.137271;, + 0.925601; 0.360911;, + 0.917901; 0.137246;, + 0.917215; 0.360885;, + 0.257872; 0.494752;, + 0.482198; 0.271798;, + 0.258558; 0.271112;, + 0.482198; 0.271798;, + 0.257872; 0.494752;, + 0.481512; 0.495438;, + 0.338598; 0.248723;, + 0.347671; 0.025109;, + 0.339284; 0.025083;, + 0.347671; 0.025109;, + 0.338598; 0.248723;, + 0.346985; 0.248748;, + 0.728887; 0.518488;, + 0.504562; 0.741442;, + 0.728201; 0.742128;, + 0.504562; 0.741442;, + 0.728887; 0.518488;, + 0.505248; 0.517802;, + 0.100981; 0.271798;, + 0.091908; 0.495412;, + 0.100295; 0.495438;, + 0.091908; 0.495412;, + 0.100981; 0.271798;, + 0.092594; 0.271773;, + 0.948652; 0.764518;, + 0.957724; 0.988132;, + 0.957038; 0.764492;, + 0.957724; 0.988132;, + 0.948652; 0.764518;, + 0.949338; 0.988158;, + 0.886465; 0.003036;, + 0.894508; 0.114881;, + 0.894851; 0.003061;, + 0.894508; 0.114881;, + 0.886465; 0.003036;, + 0.886121; 0.114856;, + 0.504562; 0.248405;, + 0.616724; 0.136929;, + 0.504905; 0.136585;, + 0.616724; 0.136929;, + 0.504562; 0.248405;, + 0.616382; 0.248748;, + 0.698137; 0.002633;, + 0.690094; 0.114479;, + 0.698480; 0.114453;, + 0.690094; 0.114479;, + 0.698137; 0.002633;, + 0.689751; 0.002659;, + 0.751595; 0.629965;, + 0.863071; 0.742128;, + 0.863414; 0.630308;, + 0.863071; 0.742128;, + 0.751595; 0.629965;, + 0.751252; 0.741785;, + 0.608338; 0.114221;, + 0.616381; 0.002376;, + 0.607995; 0.002402;, + 0.616381; 0.002376;, + 0.608338; 0.114221;, + 0.616724; 0.114196;, + 0.852576; 0.114564;, + 0.861305; 0.226358;, + 0.860962; 0.114538;, + 0.861305; 0.226358;, + 0.852576; 0.114564;, + 0.852919; 0.226384;, + 0.779292; 0.579646;, + 0.751252; 0.607515;, + 0.779207; 0.607601;, + 0.751252; 0.607515;, + 0.779292; 0.579646;, + 0.751337; 0.579560;, + 0.914076; 0.495095;, + 0.885778; 0.383361;, + 0.886122; 0.495181;, + 0.885778; 0.383361;, + 0.914076; 0.495095;, + 0.913733; 0.383275;, + 0.700589; 0.248663;, + 0.728887; 0.136928;, + 0.700932; 0.136843;, + 0.728887; 0.136928;, + 0.700589; 0.248663;, + 0.728544; 0.248748;, + 0.751595; 0.114478;, + 0.779206; 0.226384;, + 0.779550; 0.114564;, + 0.779206; 0.226384;, + 0.751595; 0.114478;, + 0.751251; 0.226298;, + 0.123345; 0.226298;, + 0.151643; 0.114564;, + 0.123688; 0.114479;, + 0.151643; 0.114564;, + 0.123345; 0.226298;, + 0.151300; 0.226384;, + 0.751337; 0.517802;, + 0.779206; 0.545843;, + 0.779292; 0.517888;, + 0.779206; 0.545843;, + 0.751337; 0.517802;, + 0.751252; 0.545757;, + 0.100981; 0.249383;, + 0.091908; 0.025769;, + 0.092594; 0.249408;, + 0.091908; 0.025769;, + 0.100981; 0.249383;, + 0.100295; 0.025743;, + 0.258558; 0.742128;, + 0.481512; 0.517802;, + 0.257872; 0.518488;, + 0.481512; 0.517802;, + 0.258558; 0.742128;, + 0.482198; 0.741442;, + 0.894851; 0.764518;, + 0.885778; 0.988132;, + 0.894165; 0.988158;, + 0.885778; 0.988132;, + 0.894851; 0.764518;, + 0.886465; 0.764492;, + 0.482198; 0.988132;, + 0.257872; 0.765178;, + 0.258558; 0.988818;, + 0.257872; 0.765178;, + 0.482198; 0.988132;, + 0.481512; 0.764492;, + 0.011182; 0.495412;, + 0.020255; 0.271798;, + 0.011868; 0.271773;, + 0.020255; 0.271798;, + 0.011182; 0.495412;, + 0.019569; 0.495438;, + 0.925602; 0.742128;, + 0.917901; 0.518463;, + 0.917215; 0.742102;, + 0.917901; 0.518463;, + 0.925602; 0.742128;, + 0.926288; 0.518488;, + 0.988475; 0.630308;, + 0.980431; 0.518463;, + 0.980088; 0.630283;, + 0.980431; 0.518463;, + 0.988475; 0.630308;, + 0.988818; 0.518488;, + 0.751251; 0.249091;, + 0.863414; 0.360568;, + 0.863071; 0.248748;, + 0.863414; 0.360568;, + 0.751251; 0.249091;, + 0.751595; 0.360911;, + 0.988818; 0.114882;, + 0.980088; 0.226676;, + 0.988475; 0.226701;, + 0.980088; 0.226676;, + 0.988818; 0.114882;, + 0.980431; 0.114856;, + 0.123688; 0.383275;, + 0.235165; 0.495438;, + 0.235508; 0.383618;, + 0.235165; 0.495438;, + 0.123688; 0.383275;, + 0.123345; 0.495095;, + 0.967534; 0.495155;, + 0.976264; 0.383361;, + 0.967877; 0.383335;, + 0.976264; 0.383361;, + 0.967534; 0.495155;, + 0.975921; 0.495181;, + 0.957038; 0.114881;, + 0.948995; 0.003036;, + 0.948652; 0.114856;, + 0.948995; 0.003036;, + 0.957038; 0.114881;, + 0.957381; 0.003062;, + 0.925945; 0.114856;, + 0.917215; 0.003062;, + 0.917558; 0.114882;, + 0.917215; 0.003062;, + 0.925945; 0.114856;, + 0.925602; 0.003036;, + 0.370035; 0.248405;, + 0.482198; 0.136929;, + 0.370378; 0.136585;, + 0.482198; 0.136929;, + 0.370035; 0.248405;, + 0.481855; 0.248748;, + 0.276754; 0.114479;, + 0.284798; 0.002633;, + 0.276411; 0.002659;, + 0.284798; 0.002633;, + 0.276754; 0.114479;, + 0.285141; 0.114453;, + 0.751595; 0.876655;, + 0.863071; 0.988818;, + 0.863414; 0.876998;, + 0.863071; 0.988818;, + 0.751595; 0.876655;, + 0.751252; 0.988475;, + 0.988475; 0.764492;, + 0.980431; 0.876338;, + 0.988818; 0.876312;, + 0.980431; 0.876338;, + 0.988475; 0.764492;, + 0.980088; 0.764518;, + 0.667387; 0.114453;, + 0.658657; 0.002659;, + 0.659000; 0.114479;, + 0.658657; 0.002659;, + 0.667387; 0.114453;, + 0.667043; 0.002633;, + 0.051691; 0.249383;, + 0.042619; 0.025769;, + 0.043305; 0.249409;, + 0.042619; 0.025769;, + 0.051691; 0.249383;, + 0.051005; 0.025743;, + 0.504562; 0.494752;, + 0.728887; 0.271798;, + 0.505248; 0.271112;, + 0.728887; 0.271798;, + 0.504562; 0.494752;, + 0.728202; 0.495438;, + 0.894851; 0.137271;, + 0.885778; 0.360885;, + 0.894165; 0.360911;, + 0.885778; 0.360885;, + 0.894851; 0.137271;, + 0.886465; 0.137245;, + 0.728887; 0.765178;, + 0.504562; 0.988132;, + 0.728201; 0.988818;, + 0.504562; 0.988132;, + 0.728887; 0.765178;, + 0.505248; 0.764492;, + 0.885778; 0.742102;, + 0.894851; 0.518488;, + 0.886465; 0.518463;, + 0.894851; 0.518488;, + 0.885778; 0.742102;, + 0.894165; 0.742128;, + 0.019569; 0.249409;, + 0.011868; 0.025743;, + 0.011182; 0.249383;, + 0.011868; 0.025743;, + 0.019569; 0.249409;, + 0.020255; 0.025769;, + 0.779292; 0.764578;, + 0.751252; 0.792447;, + 0.779207; 0.792533;, + 0.751252; 0.792447;, + 0.779292; 0.764578;, + 0.751337; 0.764492;, + 0.235165; 0.226384;, + 0.207553; 0.114479;, + 0.207210; 0.226298;, + 0.207553; 0.114479;, + 0.235165; 0.226384;, + 0.235508; 0.114564;, + 0.287936; 0.248663;, + 0.316234; 0.136929;, + 0.288279; 0.136843;, + 0.316234; 0.136929;, + 0.287936; 0.248663;, + 0.315891; 0.248748;, + 0.802257; 0.114478;, + 0.829869; 0.226384;, + 0.830212; 0.114564;, + 0.829869; 0.226384;, + 0.802257; 0.114478;, + 0.801914; 0.226298;, + 0.639088; 0.248663;, + 0.667386; 0.136928;, + 0.639432; 0.136843;, + 0.667386; 0.136928;, + 0.639088; 0.248663;, + 0.667043; 0.248748;, + 0.751252; 0.854205;, + 0.779292; 0.826336;, + 0.751337; 0.826250;, + 0.779292; 0.826336;, + 0.751252; 0.854205;, + 0.779207; 0.854291;, + 0.949338; 0.137246;, + 0.957038; 0.360911;, + 0.957724; 0.137271;, + 0.957038; 0.360911;, + 0.949338; 0.137246;, + 0.948652; 0.360885;, + 0.011868; 0.742128;, + 0.234822; 0.517802;, + 0.011182; 0.518488;, + 0.234822; 0.517802;, + 0.011868; 0.742128;, + 0.235508; 0.741442;, + 0.917215; 0.988132;, + 0.926288; 0.764518;, + 0.917901; 0.764492;, + 0.926288; 0.764518;, + 0.917215; 0.988132;, + 0.925602; 0.988158;, + 0.235508; 0.988132;, + 0.011182; 0.765178;, + 0.011868; 0.988818;, + 0.011182; 0.765178;, + 0.235508; 0.988132;, + 0.234822; 0.764492;, + 0.051691; 0.271798;, + 0.042619; 0.495412;, + 0.051005; 0.495438;, + 0.042619; 0.495412;, + 0.051691; 0.271798;, + 0.043305; 0.271773;, + 0.948652; 0.518488;, + 0.957724; 0.742102;, + 0.957038; 0.518463;, + 0.957724; 0.742102;, + 0.948652; 0.518488;, + 0.949338; 0.742128;, + 0.307505; 0.002659;, + 0.316234; 0.114453;, + 0.315891; 0.002633;, + 0.316234; 0.114453;, + 0.307505; 0.002659;, + 0.307848; 0.114479;, + 0.751251; 0.383618;, + 0.863414; 0.495095;, + 0.863071; 0.383275;, + 0.863414; 0.495095;, + 0.751251; 0.383618;, + 0.751595; 0.495438;, + 0.980088; 0.360885;, + 0.988818; 0.249091;, + 0.980431; 0.249066;, + 0.988818; 0.249091;, + 0.980088; 0.360885;, + 0.988475; 0.360911;, + 0.123688; 0.248748;, + 0.235165; 0.360911;, + 0.235508; 0.249091;, + 0.235165; 0.360911;, + 0.123688; 0.248748;, + 0.123345; 0.360568;, + 0.184846; 0.114564;, + 0.176116; 0.226358;, + 0.184503; 0.226384;, + 0.176116; 0.226358;, + 0.184846; 0.114564;, + 0.176459; 0.114538;, + 0.936441; 0.383361;, + 0.945170; 0.495155;, + 0.944827; 0.383335;, + 0.945170; 0.495155;, + 0.936441; 0.383361;, + 0.936784; 0.495181;; + } // End of Group5 UV coordinates + MeshMaterialList { // Group5 material list + 1; + 120; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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 Group5 material list + XSkinMeshHeader { + 1; + 3; + 10; + } + SkinWeights { + "Armature_Bone_009"; + 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; + -0.707107,-0.707107, 0.000000, 0.000000, + 0.707107,-0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -2.825364, 1.409910,-0.120000, 1.000000;; + } // End of Armature_Bone_009 skin weights + SkinWeights { + "Armature_Bone_008"; + 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; + 0.707107,-0.707107, 0.000000, 0.000000, + 0.707107, 0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 2.836768, 1.421067,-0.120000, 1.000000;; + } // End of Armature_Bone_008 skin weights + SkinWeights { + "Armature_Bone_007"; + 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.707107,-0.707107, 0.000000, 0.000000, + 0.707107, 0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -1.589723,-3.005420,-0.120000, 1.000000;; + } // End of Armature_Bone_007 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; + -0.707107, 0.707107, 0.000000, 0.000000, + -0.707107,-0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -1.602703,-3.012136,-0.120000, 1.000000;; + } // End of Armature_Bone_006 skin weights + SkinWeights { + "Armature_Bone_005"; + 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.707107, 0.707107, 0.000000, 0.000000, + -0.707107,-0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 2.823786, 1.414353,-0.120000, 1.000000;; + } // End of Armature_Bone_005 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; + 0.707107, 0.707107, 0.000000, 0.000000, + -0.707107, 0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -2.833325, 1.422362,-0.120000, 1.000000;; + } // End of Armature_Bone_004 skin weights + SkinWeights { + "Armature_Bone_003"; + 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; + 0.707107, 0.707107, 0.000000, 0.000000, + -0.707107, 0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 1.593164,-3.004127,-0.120000, 1.000000;; + } // End of Armature_Bone_003 skin weights + SkinWeights { + "Armature_Bone_002"; + 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; + 0.000000, 1.000000, 0.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -3.130000, 0.499814,-0.120000, 1.000000;; + } // End of Armature_Bone_002 skin weights + SkinWeights { + "Armature_Bone_001"; + 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; + 0.000000, 1.000000, 0.000000, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 3.130000, 0.499813,-0.120000, 1.000000;; + } // End of Armature_Bone_001 skin weights + SkinWeights { + "Armature_Bone_010"; + 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; + -0.707107,-0.707107, 0.000000, 0.000000, + 0.707107,-0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 1.601126,-3.016578,-0.120000, 1.000000;; + } // End of Armature_Bone_010 skin weights + } // End of Group5 mesh + } // End of Group5 + } // End of Armature +} // End of Root +AnimationSet Global { + Animation { + {Armature} + 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;;; + } + } + Animation { + {Armature_Bone} + AnimationKey { // Rotation + 0; + 91; + 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;;; + } + 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_001} + AnimationKey { // Rotation + 0; + 91; + 0;4; 0.500000, 0.500000,-0.500000,-0.500000;;, + 1;4; 0.494849, 0.494849,-0.504774,-0.504774;;, + 2;4; 0.478930, 0.478930,-0.519205,-0.519205;;, + 3;4; 0.454690, 0.454690,-0.540393,-0.540393;;, + 4;4; 0.428395, 0.428395,-0.562087,-0.562087;;, + 5;4; 0.405580, 0.405580,-0.579228,-0.579228;;, + 6;4; 0.385261, 0.385261,-0.593130,-0.593130;;, + 7;4; 0.364424, 0.364424,-0.606436,-0.606436;;, + 8;4; 0.342977, 0.342977,-0.618818,-0.618818;;, + 9;4; 0.321035, 0.321035,-0.630211,-0.630211;;, + 10;4; 0.298836, 0.298836,-0.640856,-0.640857;;, + 11;4; 0.276412, 0.276412,-0.651019,-0.651019;;, + 12;4; 0.253581, 0.253581,-0.660504,-0.660504;;, + 13;4; 0.230310, 0.230310,-0.668974,-0.668974;;, + 14;4; 0.206722, 0.206722,-0.676383,-0.676383;;, + 15;4; 0.183012, 0.183012,-0.683013,-0.683013;;, + 16;4; 0.159164, 0.159164,-0.689126,-0.689126;;, + 17;4; 0.135033, 0.135033,-0.694503,-0.694503;;, + 18;4; 0.110644, 0.110644,-0.698803,-0.698803;;, + 19;4; 0.086129, 0.086129,-0.702005,-0.702005;;, + 20;4; 0.061628, 0.061628,-0.704416,-0.704416;;, + 21;4; 0.037081, 0.037081,-0.706296,-0.706296;;, + 22;4; 0.012382, 0.012382,-0.707400,-0.707400;;, + 23;4;-0.012383,-0.012383,-0.707400,-0.707400;;, + 24;4;-0.037081,-0.037081,-0.706296,-0.706296;;, + 25;4;-0.061629,-0.061629,-0.704416,-0.704416;;, + 26;4;-0.086130,-0.086130,-0.702005,-0.702005;;, + 27;4;-0.110645,-0.110645,-0.698803,-0.698803;;, + 28;4;-0.135034,-0.135034,-0.694503,-0.694503;;, + 29;4;-0.159165,-0.159165,-0.689126,-0.689126;;, + 30;4;-0.183013,-0.183013,-0.683013,-0.683013;;, + 31;4;-0.206723,-0.206723,-0.676383,-0.676383;;, + 32;4;-0.230310,-0.230310,-0.668974,-0.668974;;, + 33;4;-0.253581,-0.253581,-0.660504,-0.660504;;, + 34;4;-0.276412,-0.276412,-0.651018,-0.651018;;, + 35;4;-0.298836,-0.298836,-0.640856,-0.640856;;, + 36;4;-0.321035,-0.321035,-0.630211,-0.630211;;, + 37;4;-0.342977,-0.342977,-0.618818,-0.618818;;, + 38;4;-0.364424,-0.364424,-0.606436,-0.606436;;, + 39;4;-0.385261,-0.385261,-0.593130,-0.593130;;, + 40;4;-0.405580,-0.405580,-0.579228,-0.579228;;, + 41;4;-0.425593,-0.425593,-0.564889,-0.564889;;, + 42;4;-0.445223,-0.445223,-0.549860,-0.549860;;, + 43;4;-0.464194,-0.464194,-0.533941,-0.533941;;, + 44;4;-0.482404,-0.482404,-0.517219,-0.517219;;, + 45;4;-0.500000,-0.500000,-0.500000,-0.500000;;, + 46;4;-0.517219,-0.517219,-0.482404,-0.482404;;, + 47;4;-0.533941,-0.533941,-0.464194,-0.464194;;, + 48;4;-0.549860,-0.549860,-0.445223,-0.445223;;, + 49;4;-0.564889,-0.564889,-0.425592,-0.425593;;, + 50;4;-0.579228,-0.579228,-0.405580,-0.405580;;, + 51;4;-0.593130,-0.593130,-0.385261,-0.385261;;, + 52;4;-0.606436,-0.606436,-0.364424,-0.364424;;, + 53;4;-0.618818,-0.618818,-0.342977,-0.342977;;, + 54;4;-0.630211,-0.630211,-0.321035,-0.321035;;, + 55;4;-0.640857,-0.640856,-0.298836,-0.298836;;, + 56;4;-0.651019,-0.651019,-0.276412,-0.276412;;, + 57;4;-0.660504,-0.660504,-0.253581,-0.253581;;, + 58;4;-0.668974,-0.668974,-0.230310,-0.230310;;, + 59;4;-0.676383,-0.676383,-0.206723,-0.206723;;, + 60;4;-0.683013,-0.683013,-0.183013,-0.183013;;, + 61;4;-0.689126,-0.689126,-0.159165,-0.159165;;, + 62;4;-0.694503,-0.694503,-0.135033,-0.135033;;, + 63;4;-0.698803,-0.698803,-0.110645,-0.110645;;, + 64;4;-0.702005,-0.702004,-0.086129,-0.086129;;, + 65;4;-0.704416,-0.704416,-0.061628,-0.061628;;, + 66;4;-0.706296,-0.706296,-0.037081,-0.037081;;, + 67;4;-0.707400,-0.707400,-0.012383,-0.012383;;, + 68;4;-0.707400,-0.707400, 0.012383, 0.012383;;, + 69;4;-0.706296,-0.706296, 0.037081, 0.037081;;, + 70;4;-0.704416,-0.704416, 0.061628, 0.061628;;, + 71;4;-0.702005,-0.702005, 0.086129, 0.086129;;, + 72;4;-0.698804,-0.698803, 0.110645, 0.110645;;, + 73;4;-0.694503,-0.694503, 0.135033, 0.135033;;, + 74;4;-0.689127,-0.689126, 0.159165, 0.159165;;, + 75;4;-0.683013,-0.683013, 0.183013, 0.183013;;, + 76;4;-0.676383,-0.676383, 0.206723, 0.206723;;, + 77;4;-0.668974,-0.668974, 0.230310, 0.230310;;, + 78;4;-0.660504,-0.660504, 0.253581, 0.253581;;, + 79;4;-0.651019,-0.651018, 0.276412, 0.276412;;, + 80;4;-0.640856,-0.640856, 0.298836, 0.298836;;, + 81;4;-0.630211,-0.630211, 0.321035, 0.321035;;, + 82;4;-0.618818,-0.618818, 0.342977, 0.342977;;, + 83;4;-0.606436,-0.606436, 0.364424, 0.364424;;, + 84;4;-0.593130,-0.593130, 0.385261, 0.385261;;, + 85;4;-0.579228,-0.579228, 0.405580, 0.405580;;, + 86;4;-0.562087,-0.562087, 0.428395, 0.428395;;, + 87;4;-0.540393,-0.540392, 0.454690, 0.454691;;, + 88;4;-0.519205,-0.519205, 0.478930, 0.478930;;, + 89;4;-0.504774,-0.504774, 0.494849, 0.494849;;, + 90;4;-0.500000,-0.500000, 0.500000, 0.500000;;; + } + 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.620184, 5.496048,-3.130000;;, + 1;3; 0.554085, 5.402176,-3.130246;;, + 2;3; 0.357848, 5.142645,-3.130939;;, + 3;3; 0.070320, 4.814878,-3.131829;;, + 4;3;-0.232272, 4.560740,-3.132522;;, + 5;3;-0.484111, 4.469998,-3.132768;;, + 6;3;-0.699582, 4.521179,-3.116817;;, + 7;3;-0.915317, 4.665163,-3.064419;;, + 8;3;-1.126731, 4.849949,-2.976805;;, + 9;3;-1.329601, 4.993993,-2.868655;;, + 10;3;-1.522756, 5.045208,-2.757679;;, + 11;3;-1.710620, 4.946950,-2.643825;;, + 12;3;-1.893698, 4.670641,-2.515967;;, + 13;3;-2.066270, 4.316115,-2.371889;;, + 14;3;-2.224849, 4.039728,-2.214518;;, + 15;3;-2.370474, 3.941427,-2.049973;;, + 16;3;-2.508146, 3.988506,-1.878647;;, + 17;3;-2.636603, 4.120883,-1.695758;;, + 18;3;-2.749506, 4.290671,-1.501367;;, + 19;3;-2.844550, 4.422966,-1.299376;;, + 20;3;-2.925020, 4.469998,-1.095009;;, + 21;3;-2.995992, 4.381454,-0.886954;;, + 22;3;-3.054546, 4.132359,-0.671226;;, + 23;3;-3.094311, 3.812712,-0.449969;;, + 24;3;-3.114279, 3.563597,-0.227588;;, + 25;3;-3.119505, 3.475041,-0.007972;;, + 26;3;-3.114599, 3.520666, 0.211672;;, + 27;3;-3.095604, 3.648933, 0.434152;;, + 28;3;-3.057279, 3.813628, 0.655605;;, + 29;3;-3.000225, 3.942244, 0.871620;;, + 30;3;-2.930473, 3.988066, 1.080027;;, + 31;3;-2.851031, 3.865992, 1.284795;;, + 32;3;-2.757004, 3.523594, 1.487260;;, + 33;3;-2.645077, 3.084792, 1.682214;;, + 34;3;-2.517535, 2.742190, 1.865745;;, + 35;3;-2.380723, 2.620000, 2.037759;;, + 36;3;-2.235926, 2.660314, 2.203031;;, + 37;3;-2.078139, 2.773446, 2.361193;;, + 38;3;-1.906292, 2.918204, 2.506134;;, + 39;3;-1.723856, 3.030819, 2.634912;;, + 40;3;-1.536564, 3.070840, 2.749707;;, + 41;3;-1.343937, 3.030817, 2.861595;;, + 42;3;-1.141539, 2.918193, 2.970627;;, + 43;3;-0.930509, 2.773430, 3.059195;;, + 44;3;-0.715066, 2.660306, 3.112721;;, + 45;3;-0.499812, 2.620000, 3.130001;;, + 46;3;-0.282662, 2.740815, 3.131264;;, + 47;3;-0.060178, 3.079683, 3.132145;;, + 48;3; 0.164589, 3.513639, 3.132603;;, + 49;3; 0.387168, 3.851995, 3.132752;;, + 50;3; 0.604483, 3.972520, 3.132769;;, + 51;3; 0.819954, 3.917080, 3.116818;;, + 52;3; 1.035689, 3.761384, 3.064420;;, + 53;3; 1.247103, 3.561777, 2.976806;;, + 54;3; 1.449973, 3.406101, 2.868657;;, + 55;3; 1.643128, 3.350672, 2.757680;;, + 56;3; 1.830992, 3.469919, 2.643827;;, + 57;3; 2.014070, 3.804990, 2.515969;;, + 58;3; 2.186642, 4.234390, 2.371891;;, + 59;3; 2.345221, 4.568782, 2.214520;;, + 60;3; 2.490847, 4.687645, 2.049974;;, + 61;3; 2.628518, 4.601883, 1.878649;;, + 62;3; 2.756976, 4.360470, 1.695759;;, + 63;3; 2.869879, 4.050675, 1.501368;;, + 64;3; 2.964922, 3.809441, 1.299377;;, + 65;3; 3.045392, 3.723780, 1.095011;;, + 66;3; 3.116364, 3.814984, 0.886955;;, + 67;3; 3.174919, 4.071864, 0.671228;;, + 68;3; 3.214684, 4.401701, 0.449970;;, + 69;3; 3.234652, 4.658610, 0.227590;;, + 70;3; 3.239878, 4.749830, 0.007974;;, + 71;3; 3.234972, 4.672443,-0.211669;;, + 72;3; 3.215977, 4.454516,-0.434150;;, + 73;3; 3.177653, 4.174692,-0.655603;;, + 74;3; 3.120599, 3.956679,-0.871618;;, + 75;3; 3.050846, 3.879242,-1.080025;;, + 76;3; 2.971404, 3.958230,-1.284793;;, + 77;3; 2.877378, 4.191067,-1.487258;;, + 78;3; 2.765451, 4.520742,-1.682212;;, + 79;3; 2.637909, 4.838762,-1.865744;;, + 80;3; 2.501097, 5.060754,-2.037757;;, + 81;3; 2.356299, 5.215190,-2.203030;;, + 82;3; 2.198513, 5.345131,-2.361191;;, + 83;3; 2.026666, 5.435854,-2.506133;;, + 84;3; 1.844229, 5.483156,-2.634910;;, + 85;3; 1.656937, 5.496048,-2.749706;;, + 86;3; 1.429896, 5.496048,-2.861784;;, + 87;3; 1.147286, 5.496048,-2.971279;;, + 88;3; 0.873095, 5.496048,-3.060263;;, + 89;3; 0.684062, 5.496048,-3.113683;;, + 90;3; 0.620187, 5.496048,-3.130000;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 1;4;-0.912872, 0.017069, 0.041208, 0.378124;;, + 2;4;-0.881875, 0.065040, 0.157020, 0.365285;;, + 3;4;-0.842088, 0.126507, 0.305415, 0.348804;;, + 4;4;-0.811104, 0.174347, 0.420911, 0.335970;;, + 5;4;-0.800103, 0.191342, 0.461940, 0.331414;;, + 6;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 7;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 8;4;-0.881887, 0.064915, 0.156718, 0.365289;;, + 9;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 10;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 11;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 12;4;-0.881887, 0.064915, 0.156718, 0.365290;;, + 13;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 14;4;-0.811106, 0.174334, 0.420878, 0.335971;;, + 15;4;-0.800103, 0.191342, 0.461940, 0.331414;;, + 16;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 17;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 18;4;-0.881887, 0.064915, 0.156718, 0.365290;;, + 19;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 20;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 21;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 22;4;-0.881887, 0.064915, 0.156718, 0.365289;;, + 23;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 24;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 25;4;-0.800103, 0.191342, 0.461940, 0.331414;;, + 26;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 27;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 28;4;-0.881887, 0.064915, 0.156718, 0.365290;;, + 29;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 30;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 31;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 32;4;-0.881887, 0.064915, 0.156718, 0.365289;;, + 33;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 34;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 35;4;-0.800103, 0.191342, 0.461940, 0.331414;;, + 36;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 37;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 38;4;-0.881887, 0.064915, 0.156718, 0.365290;;, + 39;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 40;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 41;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 42;4;-0.881887, 0.064915, 0.156718, 0.365289;;, + 43;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 44;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 45;4;-0.800103, 0.191342, 0.461940, 0.331414;;, + 46;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 47;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 48;4;-0.881887, 0.064915, 0.156718, 0.365290;;, + 49;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 50;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 51;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 52;4;-0.881887, 0.064915, 0.156718, 0.365289;;, + 53;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 54;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 55;4;-0.800103, 0.191342, 0.461940, 0.331414;;, + 56;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 57;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 58;4;-0.881887, 0.064915, 0.156718, 0.365290;;, + 59;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 60;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 61;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 62;4;-0.881887, 0.064915, 0.156718, 0.365289;;, + 63;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 64;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 65;4;-0.800103, 0.191342, 0.461940, 0.331414;;, + 66;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 67;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 68;4;-0.881887, 0.064915, 0.156718, 0.365290;;, + 69;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 70;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 71;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 72;4;-0.881887, 0.064915, 0.156718, 0.365289;;, + 73;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 74;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 75;4;-0.800103, 0.191342, 0.461940, 0.331414;;, + 76;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 77;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 78;4;-0.881887, 0.064915, 0.156718, 0.365290;;, + 79;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 80;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 81;4;-0.912877, 0.017008, 0.041061, 0.378126;;, + 82;4;-0.881887, 0.064915, 0.156718, 0.365289;;, + 83;4;-0.842096, 0.126427, 0.305221, 0.348807;;, + 84;4;-0.811105, 0.174334, 0.420878, 0.335971;;, + 85;4;-0.800103, 0.191342, 0.461940, 0.331414;;, + 86;4;-0.811104, 0.174347, 0.420911, 0.335970;;, + 87;4;-0.842088, 0.126507, 0.305415, 0.348804;;, + 88;4;-0.881875, 0.065040, 0.157020, 0.365285;;, + 89;4;-0.912872, 0.017069, 0.041207, 0.378124;;, + 90;4;-0.923880, 0.000000, 0.000000, 0.382683;;; + } + 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.120775, 0.497515,-0.000000;;, + 1;3;-0.120741, 0.497515, 0.000059;;, + 2;3;-0.120646, 0.497515, 0.000223;;, + 3;3;-0.120523, 0.497515, 0.000434;;, + 4;3;-0.120428, 0.497515, 0.000598;;, + 5;3;-0.120395, 0.497515, 0.000658;;, + 6;3;-0.120429, 0.497515, 0.000599;;, + 7;3;-0.120523, 0.497515, 0.000434;;, + 8;3;-0.120646, 0.497515, 0.000223;;, + 9;3;-0.120741, 0.497515, 0.000059;;, + 10;3;-0.120775, 0.497515,-0.000000;;, + 11;3;-0.120741, 0.497515, 0.000059;;, + 12;3;-0.120646, 0.497515, 0.000223;;, + 13;3;-0.120523, 0.497515, 0.000434;;, + 14;3;-0.120428, 0.497515, 0.000598;;, + 15;3;-0.120395, 0.497515, 0.000658;;, + 16;3;-0.120429, 0.497515, 0.000599;;, + 17;3;-0.120524, 0.497515, 0.000434;;, + 18;3;-0.120646, 0.497515, 0.000224;;, + 19;3;-0.120741, 0.497515, 0.000059;;, + 20;3;-0.120774, 0.497515,-0.000000;;, + 21;3;-0.120741, 0.497515, 0.000058;;, + 22;3;-0.120646, 0.497515, 0.000223;;, + 23;3;-0.120524, 0.497515, 0.000434;;, + 24;3;-0.120429, 0.497515, 0.000599;;, + 25;3;-0.120395, 0.497515, 0.000657;;, + 26;3;-0.120429, 0.497515, 0.000599;;, + 27;3;-0.120524, 0.497515, 0.000434;;, + 28;3;-0.120646, 0.497515, 0.000223;;, + 29;3;-0.120740, 0.497515, 0.000058;;, + 30;3;-0.120775, 0.497515,-0.000000;;, + 31;3;-0.120741, 0.497515, 0.000059;;, + 32;3;-0.120646, 0.497515, 0.000223;;, + 33;3;-0.120524, 0.497515, 0.000434;;, + 34;3;-0.120429, 0.497515, 0.000599;;, + 35;3;-0.120395, 0.497515, 0.000657;;, + 36;3;-0.120428, 0.497515, 0.000599;;, + 37;3;-0.120524, 0.497515, 0.000434;;, + 38;3;-0.120646, 0.497515, 0.000223;;, + 39;3;-0.120741, 0.497515, 0.000058;;, + 40;3;-0.120775, 0.497515,-0.000000;;, + 41;3;-0.120741, 0.497515, 0.000058;;, + 42;3;-0.120646, 0.497515, 0.000223;;, + 43;3;-0.120524, 0.497515, 0.000434;;, + 44;3;-0.120429, 0.497515, 0.000599;;, + 45;3;-0.120395, 0.497515, 0.000658;;, + 46;3;-0.120428, 0.497515, 0.000599;;, + 47;3;-0.120524, 0.497515, 0.000435;;, + 48;3;-0.120646, 0.497515, 0.000223;;, + 49;3;-0.120741, 0.497515, 0.000058;;, + 50;3;-0.120775, 0.497515,-0.000000;;, + 51;3;-0.120741, 0.497515, 0.000058;;, + 52;3;-0.120646, 0.497515, 0.000223;;, + 53;3;-0.120524, 0.497515, 0.000434;;, + 54;3;-0.120429, 0.497515, 0.000599;;, + 55;3;-0.120395, 0.497515, 0.000657;;, + 56;3;-0.120429, 0.497515, 0.000599;;, + 57;3;-0.120524, 0.497515, 0.000434;;, + 58;3;-0.120646, 0.497515, 0.000223;;, + 59;3;-0.120741, 0.497515, 0.000059;;, + 60;3;-0.120775, 0.497515,-0.000000;;, + 61;3;-0.120741, 0.497515, 0.000058;;, + 62;3;-0.120646, 0.497515, 0.000224;;, + 63;3;-0.120523, 0.497515, 0.000434;;, + 64;3;-0.120429, 0.497515, 0.000599;;, + 65;3;-0.120395, 0.497515, 0.000658;;, + 66;3;-0.120428, 0.497515, 0.000599;;, + 67;3;-0.120524, 0.497515, 0.000434;;, + 68;3;-0.120646, 0.497515, 0.000223;;, + 69;3;-0.120741, 0.497515, 0.000059;;, + 70;3;-0.120775, 0.497515,-0.000000;;, + 71;3;-0.120741, 0.497515, 0.000059;;, + 72;3;-0.120646, 0.497515, 0.000223;;, + 73;3;-0.120524, 0.497515, 0.000434;;, + 74;3;-0.120429, 0.497515, 0.000599;;, + 75;3;-0.120395, 0.497515, 0.000658;;, + 76;3;-0.120429, 0.497515, 0.000599;;, + 77;3;-0.120524, 0.497515, 0.000434;;, + 78;3;-0.120646, 0.497515, 0.000223;;, + 79;3;-0.120741, 0.497515, 0.000059;;, + 80;3;-0.120775, 0.497515, 0.000001;;, + 81;3;-0.120741, 0.497515, 0.000060;;, + 82;3;-0.120646, 0.497515, 0.000223;;, + 83;3;-0.120524, 0.497515, 0.000434;;, + 84;3;-0.120429, 0.497515, 0.000599;;, + 85;3;-0.120395, 0.497515, 0.000658;;, + 86;3;-0.120429, 0.497515, 0.000598;;, + 87;3;-0.120523, 0.497515, 0.000434;;, + 88;3;-0.120646, 0.497515, 0.000224;;, + 89;3;-0.120741, 0.497515, 0.000059;;, + 90;3;-0.120775, 0.497515,-0.000000;;; + } + } + Animation { + {Armature_Bone_005} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 1;4;-0.912871, 0.017069,-0.041208,-0.378124;;, + 2;4;-0.881875, 0.065040,-0.157020,-0.365285;;, + 3;4;-0.842088, 0.126507,-0.305415,-0.348804;;, + 4;4;-0.811104, 0.174347,-0.420911,-0.335970;;, + 5;4;-0.800103, 0.191341,-0.461940,-0.331414;;, + 6;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 7;4;-0.842096, 0.126427,-0.305221,-0.348808;;, + 8;4;-0.881887, 0.064915,-0.156718,-0.365290;;, + 9;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 10;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 11;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 12;4;-0.881887, 0.064915,-0.156718,-0.365290;;, + 13;4;-0.842096, 0.126427,-0.305221,-0.348807;;, + 14;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 15;4;-0.800103, 0.191341,-0.461940,-0.331414;;, + 16;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 17;4;-0.842096, 0.126427,-0.305221,-0.348808;;, + 18;4;-0.881887, 0.064915,-0.156719,-0.365290;;, + 19;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 20;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 21;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 22;4;-0.881887, 0.064915,-0.156718,-0.365290;;, + 23;4;-0.842096, 0.126427,-0.305221,-0.348807;;, + 24;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 25;4;-0.800103, 0.191341,-0.461940,-0.331414;;, + 26;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 27;4;-0.842096, 0.126427,-0.305221,-0.348808;;, + 28;4;-0.881887, 0.064915,-0.156719,-0.365290;;, + 29;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 30;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 31;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 32;4;-0.881887, 0.064915,-0.156718,-0.365290;;, + 33;4;-0.842096, 0.126427,-0.305221,-0.348807;;, + 34;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 35;4;-0.800103, 0.191341,-0.461940,-0.331414;;, + 36;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 37;4;-0.842096, 0.126427,-0.305221,-0.348808;;, + 38;4;-0.881887, 0.064915,-0.156719,-0.365290;;, + 39;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 40;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 41;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 42;4;-0.881887, 0.064915,-0.156718,-0.365290;;, + 43;4;-0.842096, 0.126427,-0.305221,-0.348807;;, + 44;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 45;4;-0.800103, 0.191341,-0.461940,-0.331414;;, + 46;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 47;4;-0.842096, 0.126427,-0.305221,-0.348808;;, + 48;4;-0.881887, 0.064915,-0.156719,-0.365290;;, + 49;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 50;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 51;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 52;4;-0.881887, 0.064915,-0.156718,-0.365290;;, + 53;4;-0.842096, 0.126427,-0.305221,-0.348807;;, + 54;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 55;4;-0.800103, 0.191341,-0.461940,-0.331414;;, + 56;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 57;4;-0.842096, 0.126427,-0.305221,-0.348808;;, + 58;4;-0.881887, 0.064915,-0.156719,-0.365290;;, + 59;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 60;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 61;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 62;4;-0.881887, 0.064915,-0.156718,-0.365290;;, + 63;4;-0.842096, 0.126427,-0.305221,-0.348807;;, + 64;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 65;4;-0.800103, 0.191341,-0.461940,-0.331414;;, + 66;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 67;4;-0.842096, 0.126427,-0.305221,-0.348808;;, + 68;4;-0.881887, 0.064915,-0.156719,-0.365290;;, + 69;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 70;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 71;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 72;4;-0.881887, 0.064915,-0.156718,-0.365290;;, + 73;4;-0.842096, 0.126427,-0.305221,-0.348807;;, + 74;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 75;4;-0.800103, 0.191341,-0.461940,-0.331414;;, + 76;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 77;4;-0.842096, 0.126427,-0.305221,-0.348808;;, + 78;4;-0.881887, 0.064915,-0.156719,-0.365290;;, + 79;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 80;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 81;4;-0.912877, 0.017008,-0.041061,-0.378126;;, + 82;4;-0.881887, 0.064915,-0.156718,-0.365290;;, + 83;4;-0.842096, 0.126427,-0.305221,-0.348807;;, + 84;4;-0.811105, 0.174333,-0.420879,-0.335971;;, + 85;4;-0.800103, 0.191341,-0.461940,-0.331414;;, + 86;4;-0.811104, 0.174347,-0.420911,-0.335970;;, + 87;4;-0.842088, 0.126507,-0.305415,-0.348804;;, + 88;4;-0.881875, 0.065040,-0.157020,-0.365285;;, + 89;4;-0.912871, 0.017069,-0.041208,-0.378124;;, + 90;4;-0.923880, 0.000000, 0.000000,-0.382683;;; + } + 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.133184, 0.496433,-0.000000;;, + 1;3; 0.133229, 0.496433,-0.000077;;, + 2;3; 0.133356, 0.496433,-0.000298;;, + 3;3; 0.133519, 0.496433,-0.000580;;, + 4;3; 0.133645, 0.496433,-0.000800;;, + 5;3; 0.133690, 0.496433,-0.000877;;, + 6;3; 0.133645, 0.496433,-0.000799;;, + 7;3; 0.133519, 0.496433,-0.000579;;, + 8;3; 0.133356, 0.496433,-0.000298;;, + 9;3; 0.133229, 0.496433,-0.000078;;, + 10;3; 0.133184, 0.496433,-0.000000;;, + 11;3; 0.133229, 0.496433,-0.000078;;, + 12;3; 0.133356, 0.496433,-0.000298;;, + 13;3; 0.133519, 0.496433,-0.000579;;, + 14;3; 0.133646, 0.496433,-0.000800;;, + 15;3; 0.133691, 0.496434,-0.000877;;, + 16;3; 0.133645, 0.496433,-0.000799;;, + 17;3; 0.133519, 0.496433,-0.000579;;, + 18;3; 0.133356, 0.496433,-0.000297;;, + 19;3; 0.133229, 0.496433,-0.000078;;, + 20;3; 0.133184, 0.496433,-0.000000;;, + 21;3; 0.133229, 0.496433,-0.000078;;, + 22;3; 0.133356, 0.496433,-0.000298;;, + 23;3; 0.133519, 0.496433,-0.000579;;, + 24;3; 0.133646, 0.496433,-0.000799;;, + 25;3; 0.133690, 0.496433,-0.000877;;, + 26;3; 0.133645, 0.496433,-0.000799;;, + 27;3; 0.133519, 0.496433,-0.000579;;, + 28;3; 0.133356, 0.496433,-0.000298;;, + 29;3; 0.133229, 0.496433,-0.000078;;, + 30;3; 0.133184, 0.496433,-0.000000;;, + 31;3; 0.133229, 0.496433,-0.000078;;, + 32;3; 0.133356, 0.496433,-0.000298;;, + 33;3; 0.133519, 0.496433,-0.000579;;, + 34;3; 0.133645, 0.496434,-0.000799;;, + 35;3; 0.133690, 0.496433,-0.000877;;, + 36;3; 0.133645, 0.496433,-0.000799;;, + 37;3; 0.133519, 0.496433,-0.000579;;, + 38;3; 0.133356, 0.496433,-0.000298;;, + 39;3; 0.133229, 0.496433,-0.000078;;, + 40;3; 0.133184, 0.496433,-0.000000;;, + 41;3; 0.133229, 0.496433,-0.000078;;, + 42;3; 0.133356, 0.496433,-0.000298;;, + 43;3; 0.133519, 0.496433,-0.000579;;, + 44;3; 0.133645, 0.496433,-0.000799;;, + 45;3; 0.133690, 0.496433,-0.000877;;, + 46;3; 0.133645, 0.496433,-0.000799;;, + 47;3; 0.133518, 0.496433,-0.000579;;, + 48;3; 0.133356, 0.496433,-0.000297;;, + 49;3; 0.133229, 0.496433,-0.000078;;, + 50;3; 0.133184, 0.496433,-0.000000;;, + 51;3; 0.133229, 0.496433,-0.000078;;, + 52;3; 0.133356, 0.496434,-0.000298;;, + 53;3; 0.133519, 0.496433,-0.000579;;, + 54;3; 0.133646, 0.496433,-0.000799;;, + 55;3; 0.133690, 0.496433,-0.000877;;, + 56;3; 0.133645, 0.496433,-0.000799;;, + 57;3; 0.133518, 0.496433,-0.000579;;, + 58;3; 0.133356, 0.496433,-0.000298;;, + 59;3; 0.133229, 0.496433,-0.000078;;, + 60;3; 0.133184, 0.496433,-0.000000;;, + 61;3; 0.133229, 0.496433,-0.000078;;, + 62;3; 0.133355, 0.496433,-0.000297;;, + 63;3; 0.133519, 0.496433,-0.000580;;, + 64;3; 0.133645, 0.496433,-0.000799;;, + 65;3; 0.133690, 0.496433,-0.000877;;, + 66;3; 0.133645, 0.496433,-0.000799;;, + 67;3; 0.133519, 0.496433,-0.000579;;, + 68;3; 0.133356, 0.496433,-0.000298;;, + 69;3; 0.133229, 0.496433,-0.000078;;, + 70;3; 0.133184, 0.496433,-0.000000;;, + 71;3; 0.133229, 0.496433,-0.000078;;, + 72;3; 0.133356, 0.496433,-0.000298;;, + 73;3; 0.133518, 0.496433,-0.000579;;, + 74;3; 0.133645, 0.496433,-0.000799;;, + 75;3; 0.133690, 0.496433,-0.000877;;, + 76;3; 0.133645, 0.496433,-0.000799;;, + 77;3; 0.133519, 0.496433,-0.000579;;, + 78;3; 0.133355, 0.496433,-0.000298;;, + 79;3; 0.133229, 0.496434,-0.000078;;, + 80;3; 0.133184, 0.496433, 0.000001;;, + 81;3; 0.133229, 0.496433,-0.000077;;, + 82;3; 0.133356, 0.496433,-0.000298;;, + 83;3; 0.133519, 0.496433,-0.000579;;, + 84;3; 0.133645, 0.496433,-0.000799;;, + 85;3; 0.133691, 0.496433,-0.000876;;, + 86;3; 0.133645, 0.496433,-0.000800;;, + 87;3; 0.133519, 0.496433,-0.000580;;, + 88;3; 0.133356, 0.496433,-0.000297;;, + 89;3; 0.133229, 0.496433,-0.000078;;, + 90;3; 0.133184, 0.496433,-0.000000;;; + } + } + Animation { + {Armature_Bone_007} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 1;4;-0.378124, 0.041208, 0.017069, 0.912872;;, + 2;4;-0.365285, 0.157020, 0.065040, 0.881875;;, + 3;4;-0.348804, 0.305415, 0.126507, 0.842088;;, + 4;4;-0.335970, 0.420911, 0.174347, 0.811104;;, + 5;4;-0.331413, 0.461940, 0.191341, 0.800103;;, + 6;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 7;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 8;4;-0.365289, 0.156718, 0.064915, 0.881887;;, + 9;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 10;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 11;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 12;4;-0.365289, 0.156718, 0.064915, 0.881887;;, + 13;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 14;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 15;4;-0.331413, 0.461940, 0.191341, 0.800103;;, + 16;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 17;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 18;4;-0.365289, 0.156719, 0.064915, 0.881887;;, + 19;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 20;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 21;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 22;4;-0.365289, 0.156718, 0.064915, 0.881887;;, + 23;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 24;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 25;4;-0.331413, 0.461940, 0.191341, 0.800103;;, + 26;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 27;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 28;4;-0.365289, 0.156719, 0.064915, 0.881887;;, + 29;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 30;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 31;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 32;4;-0.365289, 0.156718, 0.064915, 0.881887;;, + 33;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 34;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 35;4;-0.331413, 0.461940, 0.191341, 0.800103;;, + 36;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 37;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 38;4;-0.365289, 0.156719, 0.064915, 0.881887;;, + 39;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 40;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 41;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 42;4;-0.365289, 0.156718, 0.064915, 0.881887;;, + 43;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 44;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 45;4;-0.331413, 0.461940, 0.191341, 0.800103;;, + 46;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 47;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 48;4;-0.365289, 0.156719, 0.064915, 0.881887;;, + 49;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 50;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 51;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 52;4;-0.365289, 0.156718, 0.064915, 0.881887;;, + 53;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 54;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 55;4;-0.331413, 0.461940, 0.191341, 0.800103;;, + 56;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 57;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 58;4;-0.365289, 0.156719, 0.064915, 0.881887;;, + 59;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 60;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 61;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 62;4;-0.365289, 0.156718, 0.064915, 0.881887;;, + 63;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 64;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 65;4;-0.331413, 0.461940, 0.191341, 0.800103;;, + 66;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 67;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 68;4;-0.365289, 0.156719, 0.064915, 0.881887;;, + 69;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 70;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 71;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 72;4;-0.365289, 0.156718, 0.064915, 0.881887;;, + 73;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 74;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 75;4;-0.331413, 0.461940, 0.191341, 0.800103;;, + 76;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 77;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 78;4;-0.365289, 0.156719, 0.064915, 0.881887;;, + 79;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 80;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 81;4;-0.378126, 0.041061, 0.017008, 0.912877;;, + 82;4;-0.365289, 0.156718, 0.064915, 0.881887;;, + 83;4;-0.348807, 0.305221, 0.126427, 0.842096;;, + 84;4;-0.335971, 0.420879, 0.174333, 0.811106;;, + 85;4;-0.331413, 0.461940, 0.191341, 0.800103;;, + 86;4;-0.335970, 0.420911, 0.174347, 0.811104;;, + 87;4;-0.348804, 0.305415, 0.126507, 0.842088;;, + 88;4;-0.365285, 0.157020, 0.065040, 0.881875;;, + 89;4;-0.378124, 0.041208, 0.017069, 0.912872;;, + 90;4;-0.382683, 0.000000, 0.000000, 0.923880;;; + } + 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.119256, 0.498763,-0.000000;;, + 1;3;-0.119290, 0.498763,-0.000058;;, + 2;3;-0.119385, 0.498763,-0.000224;;, + 3;3;-0.119507, 0.498763,-0.000435;;, + 4;3;-0.119602, 0.498763,-0.000599;;, + 5;3;-0.119636, 0.498763,-0.000658;;, + 6;3;-0.119602, 0.498763,-0.000598;;, + 7;3;-0.119507, 0.498763,-0.000434;;, + 8;3;-0.119385, 0.498763,-0.000223;;, + 9;3;-0.119290, 0.498763,-0.000059;;, + 10;3;-0.119256, 0.498763,-0.000000;;, + 11;3;-0.119290, 0.498763,-0.000059;;, + 12;3;-0.119385, 0.498763,-0.000223;;, + 13;3;-0.119507, 0.498763,-0.000434;;, + 14;3;-0.119602, 0.498763,-0.000599;;, + 15;3;-0.119636, 0.498763,-0.000658;;, + 16;3;-0.119602, 0.498763,-0.000599;;, + 17;3;-0.119507, 0.498763,-0.000434;;, + 18;3;-0.119384, 0.498763,-0.000223;;, + 19;3;-0.119290, 0.498763,-0.000059;;, + 20;3;-0.119256, 0.498763,-0.000000;;, + 21;3;-0.119290, 0.498763,-0.000059;;, + 22;3;-0.119385, 0.498763,-0.000223;;, + 23;3;-0.119507, 0.498763,-0.000434;;, + 24;3;-0.119602, 0.498763,-0.000599;;, + 25;3;-0.119636, 0.498763,-0.000658;;, + 26;3;-0.119602, 0.498763,-0.000599;;, + 27;3;-0.119507, 0.498763,-0.000434;;, + 28;3;-0.119385, 0.498763,-0.000223;;, + 29;3;-0.119289, 0.498763,-0.000059;;, + 30;3;-0.119256, 0.498763,-0.000000;;, + 31;3;-0.119289, 0.498763,-0.000058;;, + 32;3;-0.119385, 0.498763,-0.000224;;, + 33;3;-0.119507, 0.498763,-0.000434;;, + 34;3;-0.119602, 0.498763,-0.000599;;, + 35;3;-0.119636, 0.498763,-0.000658;;, + 36;3;-0.119602, 0.498763,-0.000599;;, + 37;3;-0.119507, 0.498763,-0.000434;;, + 38;3;-0.119385, 0.498763,-0.000223;;, + 39;3;-0.119290, 0.498763,-0.000058;;, + 40;3;-0.119256, 0.498763,-0.000000;;, + 41;3;-0.119290, 0.498763,-0.000058;;, + 42;3;-0.119385, 0.498763,-0.000223;;, + 43;3;-0.119507, 0.498763,-0.000434;;, + 44;3;-0.119602, 0.498763,-0.000599;;, + 45;3;-0.119636, 0.498763,-0.000658;;, + 46;3;-0.119602, 0.498763,-0.000599;;, + 47;3;-0.119507, 0.498763,-0.000434;;, + 48;3;-0.119385, 0.498763,-0.000223;;, + 49;3;-0.119290, 0.498763,-0.000059;;, + 50;3;-0.119256, 0.498763,-0.000000;;, + 51;3;-0.119289, 0.498763,-0.000058;;, + 52;3;-0.119385, 0.498763,-0.000223;;, + 53;3;-0.119507, 0.498764,-0.000434;;, + 54;3;-0.119602, 0.498763,-0.000599;;, + 55;3;-0.119636, 0.498763,-0.000658;;, + 56;3;-0.119602, 0.498763,-0.000599;;, + 57;3;-0.119507, 0.498763,-0.000434;;, + 58;3;-0.119385, 0.498763,-0.000223;;, + 59;3;-0.119290, 0.498763,-0.000059;;, + 60;3;-0.119256, 0.498763,-0.000000;;, + 61;3;-0.119290, 0.498763,-0.000059;;, + 62;3;-0.119385, 0.498763,-0.000223;;, + 63;3;-0.119507, 0.498763,-0.000435;;, + 64;3;-0.119602, 0.498763,-0.000599;;, + 65;3;-0.119636, 0.498763,-0.000658;;, + 66;3;-0.119602, 0.498763,-0.000599;;, + 67;3;-0.119507, 0.498763,-0.000434;;, + 68;3;-0.119384, 0.498763,-0.000223;;, + 69;3;-0.119289, 0.498763,-0.000059;;, + 70;3;-0.119256, 0.498763,-0.000000;;, + 71;3;-0.119290, 0.498763,-0.000059;;, + 72;3;-0.119384, 0.498763,-0.000223;;, + 73;3;-0.119507, 0.498763,-0.000434;;, + 74;3;-0.119602, 0.498763,-0.000599;;, + 75;3;-0.119636, 0.498763,-0.000658;;, + 76;3;-0.119602, 0.498763,-0.000599;;, + 77;3;-0.119507, 0.498763,-0.000434;;, + 78;3;-0.119385, 0.498763,-0.000223;;, + 79;3;-0.119290, 0.498763,-0.000059;;, + 80;3;-0.119256, 0.498763, 0.000001;;, + 81;3;-0.119290, 0.498763,-0.000058;;, + 82;3;-0.119385, 0.498763,-0.000224;;, + 83;3;-0.119507, 0.498763,-0.000434;;, + 84;3;-0.119602, 0.498763,-0.000598;;, + 85;3;-0.119636, 0.498763,-0.000657;;, + 86;3;-0.119602, 0.498763,-0.000599;;, + 87;3;-0.119507, 0.498763,-0.000435;;, + 88;3;-0.119385, 0.498763,-0.000223;;, + 89;3;-0.119290, 0.498763,-0.000059;;, + 90;3;-0.119256, 0.498763,-0.000000;;; + } + } + Animation { + {Armature_Bone_009} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 1;4;-0.378124, 0.041208,-0.017069,-0.912872;;, + 2;4;-0.365285, 0.157020,-0.065040,-0.881875;;, + 3;4;-0.348804, 0.305415,-0.126507,-0.842088;;, + 4;4;-0.335970, 0.420911,-0.174347,-0.811104;;, + 5;4;-0.331413, 0.461940,-0.191342,-0.800103;;, + 6;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 7;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 8;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 9;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 10;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 11;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 12;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 13;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 14;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 15;4;-0.331413, 0.461940,-0.191342,-0.800103;;, + 16;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 17;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 18;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 19;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 20;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 21;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 22;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 23;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 24;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 25;4;-0.331413, 0.461940,-0.191342,-0.800103;;, + 26;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 27;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 28;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 29;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 30;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 31;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 32;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 33;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 34;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 35;4;-0.331413, 0.461940,-0.191342,-0.800103;;, + 36;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 37;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 38;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 39;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 40;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 41;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 42;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 43;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 44;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 45;4;-0.331413, 0.461940,-0.191342,-0.800103;;, + 46;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 47;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 48;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 49;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 50;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 51;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 52;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 53;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 54;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 55;4;-0.331413, 0.461940,-0.191342,-0.800103;;, + 56;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 57;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 58;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 59;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 60;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 61;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 62;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 63;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 64;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 65;4;-0.331413, 0.461940,-0.191342,-0.800103;;, + 66;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 67;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 68;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 69;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 70;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 71;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 72;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 73;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 74;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 75;4;-0.331413, 0.461940,-0.191342,-0.800103;;, + 76;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 77;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 78;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 79;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 80;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 81;4;-0.378126, 0.041061,-0.017008,-0.912877;;, + 82;4;-0.365289, 0.156718,-0.064915,-0.881887;;, + 83;4;-0.348807, 0.305221,-0.126427,-0.842096;;, + 84;4;-0.335971, 0.420878,-0.174334,-0.811106;;, + 85;4;-0.331413, 0.461940,-0.191342,-0.800103;;, + 86;4;-0.335970, 0.420911,-0.174347,-0.811104;;, + 87;4;-0.348804, 0.305415,-0.126507,-0.842088;;, + 88;4;-0.365285, 0.157020,-0.065040,-0.881875;;, + 89;4;-0.378124, 0.041207,-0.017069,-0.912872;;, + 90;4;-0.382683, 0.000000, 0.000000,-0.923880;;; + } + 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.135209, 0.498937,-0.000000;;, + 1;3; 0.135164, 0.498937, 0.000078;;, + 2;3; 0.135037, 0.498937, 0.000297;;, + 3;3; 0.134875, 0.498937, 0.000579;;, + 4;3; 0.134748, 0.498937, 0.000798;;, + 5;3; 0.134703, 0.498937, 0.000876;;, + 6;3; 0.134747, 0.498937, 0.000799;;, + 7;3; 0.134875, 0.498937, 0.000579;;, + 8;3; 0.135037, 0.498937, 0.000298;;, + 9;3; 0.135164, 0.498937, 0.000078;;, + 10;3; 0.135209, 0.498937,-0.000000;;, + 11;3; 0.135164, 0.498937, 0.000078;;, + 12;3; 0.135037, 0.498937, 0.000298;;, + 13;3; 0.134875, 0.498937, 0.000579;;, + 14;3; 0.134748, 0.498937, 0.000798;;, + 15;3; 0.134703, 0.498937, 0.000877;;, + 16;3; 0.134748, 0.498937, 0.000798;;, + 17;3; 0.134874, 0.498937, 0.000579;;, + 18;3; 0.135037, 0.498937, 0.000298;;, + 19;3; 0.135164, 0.498937, 0.000078;;, + 20;3; 0.135209, 0.498937,-0.000000;;, + 21;3; 0.135164, 0.498937, 0.000077;;, + 22;3; 0.135037, 0.498937, 0.000298;;, + 23;3; 0.134874, 0.498937, 0.000579;;, + 24;3; 0.134748, 0.498937, 0.000798;;, + 25;3; 0.134702, 0.498937, 0.000876;;, + 26;3; 0.134748, 0.498937, 0.000799;;, + 27;3; 0.134874, 0.498937, 0.000579;;, + 28;3; 0.135037, 0.498937, 0.000297;;, + 29;3; 0.135164, 0.498937, 0.000078;;, + 30;3; 0.135209, 0.498937,-0.000000;;, + 31;3; 0.135164, 0.498937, 0.000078;;, + 32;3; 0.135037, 0.498937, 0.000297;;, + 33;3; 0.134874, 0.498937, 0.000579;;, + 34;3; 0.134748, 0.498937, 0.000799;;, + 35;3; 0.134702, 0.498937, 0.000876;;, + 36;3; 0.134748, 0.498937, 0.000799;;, + 37;3; 0.134874, 0.498937, 0.000579;;, + 38;3; 0.135037, 0.498937, 0.000297;;, + 39;3; 0.135164, 0.498937, 0.000078;;, + 40;3; 0.135209, 0.498937,-0.000000;;, + 41;3; 0.135164, 0.498937, 0.000078;;, + 42;3; 0.135037, 0.498937, 0.000297;;, + 43;3; 0.134874, 0.498937, 0.000579;;, + 44;3; 0.134748, 0.498937, 0.000799;;, + 45;3; 0.134703, 0.498937, 0.000877;;, + 46;3; 0.134748, 0.498937, 0.000799;;, + 47;3; 0.134874, 0.498937, 0.000580;;, + 48;3; 0.135037, 0.498937, 0.000298;;, + 49;3; 0.135164, 0.498937, 0.000077;;, + 50;3; 0.135209, 0.498937,-0.000000;;, + 51;3; 0.135164, 0.498937, 0.000078;;, + 52;3; 0.135037, 0.498937, 0.000297;;, + 53;3; 0.134874, 0.498937, 0.000579;;, + 54;3; 0.134748, 0.498937, 0.000798;;, + 55;3; 0.134703, 0.498937, 0.000876;;, + 56;3; 0.134748, 0.498937, 0.000799;;, + 57;3; 0.134874, 0.498937, 0.000579;;, + 58;3; 0.135037, 0.498937, 0.000298;;, + 59;3; 0.135164, 0.498937, 0.000078;;, + 60;3; 0.135209, 0.498937,-0.000000;;, + 61;3; 0.135164, 0.498937, 0.000077;;, + 62;3; 0.135037, 0.498937, 0.000298;;, + 63;3; 0.134875, 0.498937, 0.000579;;, + 64;3; 0.134748, 0.498937, 0.000799;;, + 65;3; 0.134703, 0.498937, 0.000877;;, + 66;3; 0.134748, 0.498937, 0.000799;;, + 67;3; 0.134874, 0.498937, 0.000579;;, + 68;3; 0.135037, 0.498937, 0.000298;;, + 69;3; 0.135164, 0.498937, 0.000078;;, + 70;3; 0.135209, 0.498937,-0.000000;;, + 71;3; 0.135164, 0.498937, 0.000078;;, + 72;3; 0.135037, 0.498937, 0.000298;;, + 73;3; 0.134874, 0.498937, 0.000579;;, + 74;3; 0.134748, 0.498937, 0.000799;;, + 75;3; 0.134703, 0.498937, 0.000877;;, + 76;3; 0.134748, 0.498937, 0.000799;;, + 77;3; 0.134874, 0.498937, 0.000579;;, + 78;3; 0.135037, 0.498937, 0.000298;;, + 79;3; 0.135164, 0.498937, 0.000078;;, + 80;3; 0.135209, 0.498937, 0.000001;;, + 81;3; 0.135164, 0.498937, 0.000079;;, + 82;3; 0.135037, 0.498937, 0.000297;;, + 83;3; 0.134874, 0.498937, 0.000579;;, + 84;3; 0.134748, 0.498937, 0.000799;;, + 85;3; 0.134703, 0.498937, 0.000877;;, + 86;3; 0.134748, 0.498937, 0.000798;;, + 87;3; 0.134874, 0.498937, 0.000579;;, + 88;3; 0.135037, 0.498937, 0.000298;;, + 89;3; 0.135164, 0.498937, 0.000078;;, + 90;3; 0.135209, 0.498937,-0.000000;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { // Rotation + 0; + 91; + 0;4; 0.500000, 0.500000, 0.500000, 0.500000;;, + 1;4; 0.504774, 0.504774, 0.494849, 0.494849;;, + 2;4; 0.519205, 0.519205, 0.478930, 0.478930;;, + 3;4; 0.540393, 0.540393, 0.454690, 0.454690;;, + 4;4; 0.562087, 0.562087, 0.428395, 0.428395;;, + 5;4; 0.579228, 0.579228, 0.405580, 0.405580;;, + 6;4; 0.593130, 0.593130, 0.385261, 0.385261;;, + 7;4; 0.606436, 0.606436, 0.364424, 0.364424;;, + 8;4; 0.618818, 0.618818, 0.342977, 0.342977;;, + 9;4; 0.630211, 0.630211, 0.321035, 0.321035;;, + 10;4; 0.640857, 0.640857, 0.298836, 0.298836;;, + 11;4; 0.651019, 0.651019, 0.276412, 0.276412;;, + 12;4; 0.660504, 0.660504, 0.253581, 0.253581;;, + 13;4; 0.668974, 0.668974, 0.230310, 0.230310;;, + 14;4; 0.676383, 0.676383, 0.206722, 0.206722;;, + 15;4; 0.683013, 0.683013, 0.183012, 0.183012;;, + 16;4; 0.689127, 0.689126, 0.159164, 0.159164;;, + 17;4; 0.694503, 0.694503, 0.135033, 0.135033;;, + 18;4; 0.698804, 0.698803, 0.110644, 0.110644;;, + 19;4; 0.702005, 0.702005, 0.086129, 0.086129;;, + 20;4; 0.704416, 0.704416, 0.061628, 0.061628;;, + 21;4; 0.706296, 0.706296, 0.037081, 0.037081;;, + 22;4; 0.707400, 0.707400, 0.012382, 0.012382;;, + 23;4; 0.707400, 0.707400,-0.012383,-0.012383;;, + 24;4; 0.706296, 0.706296,-0.037081,-0.037081;;, + 25;4; 0.704416, 0.704416,-0.061629,-0.061629;;, + 26;4; 0.702005, 0.702005,-0.086130,-0.086130;;, + 27;4; 0.698803, 0.698803,-0.110645,-0.110645;;, + 28;4; 0.694503, 0.694503,-0.135034,-0.135034;;, + 29;4; 0.689126, 0.689126,-0.159165,-0.159165;;, + 30;4; 0.683013, 0.683013,-0.183013,-0.183013;;, + 31;4; 0.676383, 0.676383,-0.206723,-0.206723;;, + 32;4; 0.668974, 0.668974,-0.230310,-0.230310;;, + 33;4; 0.660504, 0.660504,-0.253582,-0.253582;;, + 34;4; 0.651018, 0.651018,-0.276412,-0.276413;;, + 35;4; 0.640856, 0.640856,-0.298836,-0.298836;;, + 36;4; 0.630211, 0.630211,-0.321035,-0.321035;;, + 37;4; 0.618818, 0.618818,-0.342977,-0.342977;;, + 38;4; 0.606436, 0.606435,-0.364424,-0.364424;;, + 39;4; 0.593130, 0.593130,-0.385261,-0.385261;;, + 40;4; 0.579228, 0.579228,-0.405580,-0.405580;;, + 41;4; 0.564889, 0.564889,-0.425593,-0.425593;;, + 42;4; 0.549860, 0.549860,-0.445223,-0.445223;;, + 43;4; 0.533941, 0.533941,-0.464194,-0.464194;;, + 44;4; 0.517219, 0.517219,-0.482404,-0.482404;;, + 45;4; 0.500000, 0.500000,-0.500000,-0.500000;;, + 46;4; 0.482404, 0.482404,-0.517219,-0.517219;;, + 47;4; 0.464194, 0.464194,-0.533941,-0.533941;;, + 48;4; 0.445223, 0.445223,-0.549860,-0.549860;;, + 49;4; 0.425593, 0.425592,-0.564889,-0.564889;;, + 50;4; 0.405580, 0.405580,-0.579228,-0.579228;;, + 51;4; 0.385261, 0.385261,-0.593130,-0.593130;;, + 52;4; 0.364424, 0.364424,-0.606436,-0.606436;;, + 53;4; 0.342977, 0.342977,-0.618818,-0.618818;;, + 54;4; 0.321035, 0.321035,-0.630211,-0.630211;;, + 55;4; 0.298836, 0.298836,-0.640856,-0.640857;;, + 56;4; 0.276412, 0.276412,-0.651019,-0.651019;;, + 57;4; 0.253581, 0.253581,-0.660504,-0.660504;;, + 58;4; 0.230310, 0.230310,-0.668974,-0.668974;;, + 59;4; 0.206723, 0.206723,-0.676383,-0.676383;;, + 60;4; 0.183013, 0.183013,-0.683013,-0.683013;;, + 61;4; 0.159165, 0.159165,-0.689126,-0.689127;;, + 62;4; 0.135033, 0.135033,-0.694503,-0.694503;;, + 63;4; 0.110645, 0.110645,-0.698803,-0.698803;;, + 64;4; 0.086129, 0.086129,-0.702005,-0.702005;;, + 65;4; 0.061628, 0.061628,-0.704416,-0.704416;;, + 66;4; 0.037081, 0.037081,-0.706296,-0.706296;;, + 67;4; 0.012382, 0.012382,-0.707400,-0.707400;;, + 68;4;-0.012383,-0.012383,-0.707400,-0.707400;;, + 69;4;-0.037081,-0.037081,-0.706296,-0.706296;;, + 70;4;-0.061628,-0.061628,-0.704416,-0.704416;;, + 71;4;-0.086129,-0.086129,-0.702005,-0.702005;;, + 72;4;-0.110645,-0.110645,-0.698803,-0.698803;;, + 73;4;-0.135033,-0.135033,-0.694503,-0.694503;;, + 74;4;-0.159165,-0.159165,-0.689126,-0.689126;;, + 75;4;-0.183013,-0.183013,-0.683013,-0.683013;;, + 76;4;-0.206723,-0.206723,-0.676383,-0.676383;;, + 77;4;-0.230310,-0.230310,-0.668974,-0.668974;;, + 78;4;-0.253581,-0.253581,-0.660504,-0.660504;;, + 79;4;-0.276412,-0.276412,-0.651018,-0.651019;;, + 80;4;-0.298836,-0.298836,-0.640856,-0.640856;;, + 81;4;-0.321035,-0.321035,-0.630211,-0.630211;;, + 82;4;-0.342977,-0.342977,-0.618818,-0.618818;;, + 83;4;-0.364424,-0.364424,-0.606436,-0.606436;;, + 84;4;-0.385261,-0.385261,-0.593130,-0.593130;;, + 85;4;-0.405580,-0.405580,-0.579228,-0.579228;;, + 86;4;-0.428395,-0.428395,-0.562087,-0.562087;;, + 87;4;-0.454691,-0.454690,-0.540392,-0.540392;;, + 88;4;-0.478930,-0.478930,-0.519205,-0.519205;;, + 89;4;-0.494849,-0.494849,-0.504774,-0.504774;;, + 90;4;-0.500000,-0.500000,-0.500000,-0.500000;;; + } + 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.499812, 2.620000, 3.130001;;, + 1;3;-0.433712, 2.747889, 3.130247;;, + 2;3;-0.237475, 3.096606, 3.130940;;, + 3;3; 0.050053, 3.531640, 3.131829;;, + 4;3; 0.352645, 3.867673, 3.132523;;, + 5;3; 0.604484, 3.988065, 3.132769;;, + 6;3; 0.819955, 3.904147, 3.116817;;, + 7;3; 1.035690, 3.668113, 3.064419;;, + 8;3; 1.247105, 3.365056, 2.976805;;, + 9;3; 1.449975, 3.128560, 2.868656;;, + 10;3; 1.643129, 3.044379, 2.757679;;, + 11;3; 1.830993, 3.194078, 2.643826;;, + 12;3; 2.014071, 3.614709, 2.515968;;, + 13;3; 2.186643, 4.153620, 2.371889;;, + 14;3; 2.345222, 4.573095, 2.214519;;, + 15;3; 2.490847, 4.722137, 2.049973;;, + 16;3; 2.628519, 4.589569, 1.878648;;, + 17;3; 2.756976, 4.216472, 1.695759;;, + 18;3; 2.869879, 3.737125, 1.501367;;, + 19;3; 2.964923, 3.362936, 1.299377;;, + 20;3; 3.045393, 3.229747, 1.095010;;, + 21;3; 3.116365, 3.430140, 0.886954;;, + 22;3; 3.174919, 3.992723, 0.671227;;, + 23;3; 3.214684, 4.714010, 0.449969;;, + 24;3; 3.234652, 5.276875, 0.227589;;, + 25;3; 3.239878, 5.477428, 0.007972;;, + 26;3; 3.234972, 5.349431,-0.211671;;, + 27;3; 3.215977, 4.990002,-0.434152;;, + 28;3; 3.177652, 4.529692,-0.655604;;, + 29;3; 3.120598, 4.171343,-0.871619;;, + 30;3; 3.050846, 4.043959,-1.080027;;, + 31;3; 2.971404, 4.200978,-1.284795;;, + 32;3; 2.877378, 4.643021,-1.487260;;, + 33;3; 2.765450, 5.210365,-1.682214;;, + 34;3; 2.637909, 5.652216,-1.865745;;, + 35;3; 2.501096, 5.809126,-2.037758;;, + 36;3; 2.356140, 5.636627,-2.203030;;, + 37;3; 2.197979, 5.150816,-2.361192;;, + 38;3; 2.025833, 4.527116,-2.506134;;, + 39;3; 1.843520, 4.041383,-2.634911;;, + 40;3; 1.656937, 3.868927,-2.749707;;, + 41;3; 1.465924, 4.044749,-2.861594;;, + 42;3; 1.266149, 4.539900,-2.970627;;, + 43;3; 1.058003, 5.175786,-3.059194;;, + 44;3; 0.844690, 5.671318,-3.112720;;, + 45;3; 0.630185, 5.847357,-3.130000;;, + 46;3; 0.412286, 5.704937,-3.131263;;, + 47;3; 0.187675, 5.304129,-3.132144;;, + 48;3;-0.039972, 4.789665,-3.132603;;, + 49;3;-0.265177, 4.388745,-3.132752;;, + 50;3;-0.484110, 4.246261,-3.132769;;, + 51;3;-0.700287, 4.427953,-3.116818;;, + 52;3;-0.916145, 4.939278,-3.064419;;, + 53;3;-1.127264, 5.595296,-2.976806;;, + 54;3;-1.329760, 6.106106,-2.868656;;, + 55;3;-1.522755, 6.287506,-2.757679;;, + 56;3;-1.710619, 6.114820,-2.643826;;, + 57;3;-1.893698, 5.628438,-2.515968;;, + 58;3;-2.066269, 5.003953,-2.371890;;, + 59;3;-2.224848, 4.517597,-2.214519;;, + 60;3;-2.370473, 4.344926,-2.049974;;, + 61;3;-2.508145, 4.518829,-1.878648;;, + 62;3;-2.636602, 5.008533,-1.695759;;, + 63;3;-2.749506, 5.637492,-1.501368;;, + 64;3;-2.844549, 6.127787,-1.299377;;, + 65;3;-2.925019, 6.302026,-1.095010;;, + 66;3;-2.995991, 6.086444,-0.886954;;, + 67;3;-3.054546, 5.480817,-0.671227;;, + 68;3;-3.094311, 4.702462,-0.449969;;, + 69;3;-3.114278, 4.092904,-0.227589;;, + 70;3;-3.119505, 3.875078,-0.007973;;, + 71;3;-3.114599, 3.985853, 0.211670;;, + 72;3;-3.095603, 4.295668, 0.434151;;, + 73;3;-3.057279, 4.691531, 0.655604;;, + 74;3;-3.000225, 5.000154, 0.871619;;, + 75;3;-2.930473, 5.110244, 1.080026;;, + 76;3;-2.851031, 4.925327, 1.284794;;, + 77;3;-2.757005, 4.406518, 1.487258;;, + 78;3;-2.645078, 3.741669, 1.682213;;, + 79;3;-2.517536, 3.222835, 1.865744;;, + 80;3;-2.380724, 3.037905, 2.037758;;, + 81;3;-2.235926, 3.147732, 2.203031;;, + 82;3;-2.078140, 3.456049, 2.361192;;, + 83;3;-1.906293, 3.850860, 2.506134;;, + 84;3;-1.723856, 4.158282, 2.634911;;, + 85;3;-1.536564, 4.267600, 2.749707;;, + 86;3;-1.309523, 4.123289, 2.861785;;, + 87;3;-1.026913, 3.721862, 2.971280;;, + 88;3;-0.752722, 3.200350, 3.060264;;, + 89;3;-0.563689, 2.777316, 3.113684;;, + 90;3;-0.499813, 2.620000, 3.130000;;; + } + } + Animation { + {Armature_Bone_004} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.779192, 0.205616, 0.496400, 0.322752;;, + 1;4;-0.792062, 0.187264, 0.452094, 0.328083;;, + 2;4;-0.828298, 0.135704, 0.327617, 0.343092;;, + 3;4;-0.874805, 0.069658, 0.168170, 0.362356;;, + 4;4;-0.911020, 0.018260, 0.044084, 0.377357;;, + 5;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 6;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 7;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 8;4;-0.828279, 0.135858, 0.327991, 0.343084;;, + 9;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 10;4;-0.779192, 0.205616, 0.496400, 0.322752;;, + 11;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 12;4;-0.828279, 0.135858, 0.327991, 0.343084;;, + 13;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 14;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 15;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 16;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 17;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 18;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 19;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 20;4;-0.779192, 0.205616, 0.496400, 0.322752;;, + 21;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 22;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 23;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 24;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 25;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 26;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 27;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 28;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 29;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 30;4;-0.779192, 0.205616, 0.496400, 0.322752;;, + 31;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 32;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 33;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 34;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 35;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 36;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 37;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 38;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 39;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 40;4;-0.779192, 0.205616, 0.496400, 0.322752;;, + 41;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 42;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 43;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 44;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 45;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 46;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 47;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 48;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 49;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 50;4;-0.779192, 0.205616, 0.496400, 0.322752;;, + 51;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 52;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 53;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 54;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 55;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 56;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 57;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 58;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 59;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 60;4;-0.779192, 0.205616, 0.496400, 0.322752;;, + 61;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 62;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 63;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 64;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 65;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 66;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 67;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 68;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 69;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 70;4;-0.779192, 0.205616, 0.496400, 0.322752;;, + 71;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 72;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 73;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 74;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 75;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 76;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 77;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 78;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 79;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 80;4;-0.779192, 0.205616, 0.496400, 0.322752;;, + 81;4;-0.792053, 0.187339, 0.452276, 0.328079;;, + 82;4;-0.828279, 0.135858, 0.327990, 0.343084;;, + 83;4;-0.874793, 0.069758, 0.168409, 0.362351;;, + 84;4;-0.911018, 0.018277, 0.044124, 0.377356;;, + 85;4;-0.923880, 0.000000, 0.000000, 0.382683;;, + 86;4;-0.911020, 0.018260, 0.044084, 0.377357;;, + 87;4;-0.874805, 0.069658, 0.168170, 0.362356;;, + 88;4;-0.828298, 0.135704, 0.327617, 0.343092;;, + 89;4;-0.792062, 0.187264, 0.452094, 0.328083;;, + 90;4;-0.779192, 0.205616, 0.496400, 0.322752;;; + } + 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.120336, 0.497515, 0.000689;;, + 1;3;-0.120375, 0.497515, 0.000628;;, + 2;3;-0.120485, 0.497515, 0.000455;;, + 3;3;-0.120626, 0.497515, 0.000233;;, + 4;3;-0.120736, 0.497515, 0.000062;;, + 5;3;-0.120775, 0.497515,-0.000000;;, + 6;3;-0.120736, 0.497515, 0.000061;;, + 7;3;-0.120626, 0.497515, 0.000234;;, + 8;3;-0.120485, 0.497515, 0.000455;;, + 9;3;-0.120375, 0.497515, 0.000627;;, + 10;3;-0.120336, 0.497515, 0.000688;;, + 11;3;-0.120375, 0.497515, 0.000627;;, + 12;3;-0.120485, 0.497515, 0.000454;;, + 13;3;-0.120626, 0.497515, 0.000234;;, + 14;3;-0.120736, 0.497515, 0.000061;;, + 15;3;-0.120775, 0.497515, 0.000000;;, + 16;3;-0.120736, 0.497515, 0.000061;;, + 17;3;-0.120626, 0.497515, 0.000234;;, + 18;3;-0.120485, 0.497515, 0.000455;;, + 19;3;-0.120375, 0.497515, 0.000627;;, + 20;3;-0.120336, 0.497515, 0.000689;;, + 21;3;-0.120375, 0.497515, 0.000627;;, + 22;3;-0.120485, 0.497515, 0.000455;;, + 23;3;-0.120626, 0.497515, 0.000233;;, + 24;3;-0.120736, 0.497515, 0.000061;;, + 25;3;-0.120775, 0.497515,-0.000000;;, + 26;3;-0.120736, 0.497515, 0.000061;;, + 27;3;-0.120626, 0.497515, 0.000233;;, + 28;3;-0.120485, 0.497515, 0.000455;;, + 29;3;-0.120375, 0.497515, 0.000627;;, + 30;3;-0.120336, 0.497514, 0.000689;;, + 31;3;-0.120375, 0.497515, 0.000627;;, + 32;3;-0.120485, 0.497515, 0.000455;;, + 33;3;-0.120626, 0.497515, 0.000234;;, + 34;3;-0.120736, 0.497515, 0.000061;;, + 35;3;-0.120775, 0.497515,-0.000000;;, + 36;3;-0.120736, 0.497515, 0.000061;;, + 37;3;-0.120626, 0.497515, 0.000234;;, + 38;3;-0.120485, 0.497515, 0.000455;;, + 39;3;-0.120375, 0.497515, 0.000627;;, + 40;3;-0.120336, 0.497515, 0.000689;;, + 41;3;-0.120376, 0.497515, 0.000627;;, + 42;3;-0.120485, 0.497515, 0.000455;;, + 43;3;-0.120626, 0.497515, 0.000234;;, + 44;3;-0.120736, 0.497515, 0.000061;;, + 45;3;-0.120775, 0.497515, 0.000000;;, + 46;3;-0.120736, 0.497515, 0.000061;;, + 47;3;-0.120626, 0.497515, 0.000234;;, + 48;3;-0.120485, 0.497515, 0.000455;;, + 49;3;-0.120375, 0.497515, 0.000627;;, + 50;3;-0.120336, 0.497515, 0.000689;;, + 51;3;-0.120375, 0.497515, 0.000627;;, + 52;3;-0.120485, 0.497515, 0.000455;;, + 53;3;-0.120626, 0.497515, 0.000233;;, + 54;3;-0.120736, 0.497515, 0.000061;;, + 55;3;-0.120775, 0.497515, 0.000000;;, + 56;3;-0.120736, 0.497515, 0.000062;;, + 57;3;-0.120626, 0.497515, 0.000234;;, + 58;3;-0.120485, 0.497515, 0.000455;;, + 59;3;-0.120375, 0.497515, 0.000627;;, + 60;3;-0.120336, 0.497515, 0.000689;;, + 61;3;-0.120375, 0.497515, 0.000627;;, + 62;3;-0.120485, 0.497515, 0.000455;;, + 63;3;-0.120626, 0.497515, 0.000234;;, + 64;3;-0.120736, 0.497515, 0.000061;;, + 65;3;-0.120775, 0.497515, 0.000000;;, + 66;3;-0.120736, 0.497515, 0.000061;;, + 67;3;-0.120626, 0.497515, 0.000233;;, + 68;3;-0.120485, 0.497515, 0.000455;;, + 69;3;-0.120375, 0.497515, 0.000627;;, + 70;3;-0.120336, 0.497515, 0.000689;;, + 71;3;-0.120375, 0.497515, 0.000628;;, + 72;3;-0.120485, 0.497515, 0.000455;;, + 73;3;-0.120626, 0.497515, 0.000233;;, + 74;3;-0.120736, 0.497515, 0.000061;;, + 75;3;-0.120775, 0.497514, 0.000000;;, + 76;3;-0.120736, 0.497515, 0.000061;;, + 77;3;-0.120626, 0.497515, 0.000234;;, + 78;3;-0.120486, 0.497515, 0.000455;;, + 79;3;-0.120375, 0.497515, 0.000627;;, + 80;3;-0.120336, 0.497515, 0.000689;;, + 81;3;-0.120375, 0.497515, 0.000627;;, + 82;3;-0.120485, 0.497515, 0.000455;;, + 83;3;-0.120626, 0.497515, 0.000234;;, + 84;3;-0.120736, 0.497515, 0.000061;;, + 85;3;-0.120775, 0.497515,-0.000000;;, + 86;3;-0.120736, 0.497515, 0.000061;;, + 87;3;-0.120626, 0.497515, 0.000234;;, + 88;3;-0.120485, 0.497515, 0.000455;;, + 89;3;-0.120375, 0.497515, 0.000627;;, + 90;3;-0.120336, 0.497515, 0.000689;;; + } + } + Animation { + {Armature_Bone_006} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.779192, 0.205615,-0.496400,-0.322752;;, + 1;4;-0.792062, 0.187263,-0.452094,-0.328083;;, + 2;4;-0.828298, 0.135703,-0.327617,-0.343092;;, + 3;4;-0.874805, 0.069658,-0.168170,-0.362356;;, + 4;4;-0.911020, 0.018260,-0.044084,-0.377357;;, + 5;4;-0.923880, 0.000000,-0.000000,-0.382683;;, + 6;4;-0.911018, 0.018277,-0.044124,-0.377356;;, + 7;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 8;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 9;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 10;4;-0.779192, 0.205615,-0.496400,-0.322752;;, + 11;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 12;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 13;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 14;4;-0.911018, 0.018277,-0.044124,-0.377356;;, + 15;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 16;4;-0.911018, 0.018277,-0.044124,-0.377356;;, + 17;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 18;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 19;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 20;4;-0.779192, 0.205615,-0.496400,-0.322752;;, + 21;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 22;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 23;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 24;4;-0.911018, 0.018277,-0.044125,-0.377356;;, + 25;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 26;4;-0.911018, 0.018277,-0.044124,-0.377356;;, + 27;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 28;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 29;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 30;4;-0.779192, 0.205615,-0.496400,-0.322752;;, + 31;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 32;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 33;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 34;4;-0.911018, 0.018277,-0.044125,-0.377356;;, + 35;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 36;4;-0.911018, 0.018277,-0.044124,-0.377356;;, + 37;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 38;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 39;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 40;4;-0.779192, 0.205615,-0.496400,-0.322752;;, + 41;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 42;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 43;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 44;4;-0.911018, 0.018277,-0.044125,-0.377356;;, + 45;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 46;4;-0.911018, 0.018277,-0.044124,-0.377356;;, + 47;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 48;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 49;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 50;4;-0.779192, 0.205615,-0.496400,-0.322752;;, + 51;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 52;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 53;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 54;4;-0.911018, 0.018277,-0.044125,-0.377356;;, + 55;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 56;4;-0.911018, 0.018277,-0.044124,-0.377356;;, + 57;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 58;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 59;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 60;4;-0.779192, 0.205615,-0.496400,-0.322752;;, + 61;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 62;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 63;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 64;4;-0.911018, 0.018277,-0.044125,-0.377356;;, + 65;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 66;4;-0.911018, 0.018277,-0.044124,-0.377356;;, + 67;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 68;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 69;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 70;4;-0.779192, 0.205615,-0.496400,-0.322752;;, + 71;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 72;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 73;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 74;4;-0.911018, 0.018277,-0.044125,-0.377356;;, + 75;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 76;4;-0.911018, 0.018277,-0.044124,-0.377356;;, + 77;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 78;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 79;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 80;4;-0.779192, 0.205615,-0.496400,-0.322752;;, + 81;4;-0.792053, 0.187338,-0.452276,-0.328079;;, + 82;4;-0.828279, 0.135858,-0.327991,-0.343084;;, + 83;4;-0.874793, 0.069757,-0.168410,-0.362351;;, + 84;4;-0.911018, 0.018277,-0.044125,-0.377356;;, + 85;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 86;4;-0.911020, 0.018260,-0.044084,-0.377357;;, + 87;4;-0.874805, 0.069658,-0.168170,-0.362356;;, + 88;4;-0.828298, 0.135703,-0.327617,-0.343092;;, + 89;4;-0.792062, 0.187263,-0.452094,-0.328083;;, + 90;4;-0.779192, 0.205615,-0.496400,-0.322752;;; + } + 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.133769, 0.496433,-0.000918;;, + 1;3; 0.133717, 0.496433,-0.000836;;, + 2;3; 0.133570, 0.496433,-0.000606;;, + 3;3; 0.133382, 0.496433,-0.000312;;, + 4;3; 0.133236, 0.496433,-0.000081;;, + 5;3; 0.133184, 0.496433,-0.000000;;, + 6;3; 0.133236, 0.496433,-0.000082;;, + 7;3; 0.133382, 0.496433,-0.000311;;, + 8;3; 0.133570, 0.496433,-0.000606;;, + 9;3; 0.133717, 0.496433,-0.000836;;, + 10;3; 0.133769, 0.496433,-0.000918;;, + 11;3; 0.133717, 0.496433,-0.000836;;, + 12;3; 0.133570, 0.496433,-0.000607;;, + 13;3; 0.133382, 0.496433,-0.000311;;, + 14;3; 0.133236, 0.496433,-0.000082;;, + 15;3; 0.133184, 0.496433, 0.000000;;, + 16;3; 0.133236, 0.496433,-0.000082;;, + 17;3; 0.133382, 0.496433,-0.000311;;, + 18;3; 0.133570, 0.496433,-0.000607;;, + 19;3; 0.133717, 0.496433,-0.000836;;, + 20;3; 0.133769, 0.496433,-0.000917;;, + 21;3; 0.133717, 0.496433,-0.000836;;, + 22;3; 0.133570, 0.496433,-0.000607;;, + 23;3; 0.133382, 0.496433,-0.000312;;, + 24;3; 0.133236, 0.496433,-0.000082;;, + 25;3; 0.133184, 0.496433,-0.000000;;, + 26;3; 0.133236, 0.496433,-0.000082;;, + 27;3; 0.133382, 0.496433,-0.000312;;, + 28;3; 0.133570, 0.496433,-0.000606;;, + 29;3; 0.133717, 0.496433,-0.000836;;, + 30;3; 0.133768, 0.496433,-0.000918;;, + 31;3; 0.133716, 0.496433,-0.000836;;, + 32;3; 0.133570, 0.496433,-0.000607;;, + 33;3; 0.133382, 0.496433,-0.000311;;, + 34;3; 0.133236, 0.496433,-0.000082;;, + 35;3; 0.133184, 0.496433,-0.000000;;, + 36;3; 0.133236, 0.496433,-0.000082;;, + 37;3; 0.133382, 0.496433,-0.000311;;, + 38;3; 0.133570, 0.496433,-0.000607;;, + 39;3; 0.133716, 0.496433,-0.000836;;, + 40;3; 0.133769, 0.496433,-0.000918;;, + 41;3; 0.133716, 0.496433,-0.000836;;, + 42;3; 0.133570, 0.496433,-0.000607;;, + 43;3; 0.133382, 0.496433,-0.000311;;, + 44;3; 0.133236, 0.496433,-0.000082;;, + 45;3; 0.133184, 0.496433, 0.000000;;, + 46;3; 0.133236, 0.496433,-0.000082;;, + 47;3; 0.133382, 0.496433,-0.000311;;, + 48;3; 0.133570, 0.496433,-0.000606;;, + 49;3; 0.133716, 0.496433,-0.000836;;, + 50;3; 0.133768, 0.496433,-0.000917;;, + 51;3; 0.133717, 0.496433,-0.000836;;, + 52;3; 0.133570, 0.496433,-0.000606;;, + 53;3; 0.133382, 0.496433,-0.000312;;, + 54;3; 0.133236, 0.496433,-0.000082;;, + 55;3; 0.133184, 0.496434, 0.000000;;, + 56;3; 0.133236, 0.496433,-0.000081;;, + 57;3; 0.133383, 0.496433,-0.000311;;, + 58;3; 0.133570, 0.496433,-0.000607;;, + 59;3; 0.133716, 0.496433,-0.000836;;, + 60;3; 0.133769, 0.496433,-0.000918;;, + 61;3; 0.133717, 0.496433,-0.000836;;, + 62;3; 0.133570, 0.496433,-0.000607;;, + 63;3; 0.133382, 0.496433,-0.000311;;, + 64;3; 0.133236, 0.496433,-0.000082;;, + 65;3; 0.133184, 0.496433, 0.000000;;, + 66;3; 0.133236, 0.496433,-0.000082;;, + 67;3; 0.133382, 0.496433,-0.000312;;, + 68;3; 0.133570, 0.496433,-0.000606;;, + 69;3; 0.133716, 0.496433,-0.000836;;, + 70;3; 0.133768, 0.496433,-0.000917;;, + 71;3; 0.133716, 0.496433,-0.000836;;, + 72;3; 0.133570, 0.496433,-0.000607;;, + 73;3; 0.133382, 0.496433,-0.000312;;, + 74;3; 0.133236, 0.496433,-0.000082;;, + 75;3; 0.133184, 0.496433, 0.000000;;, + 76;3; 0.133236, 0.496433,-0.000082;;, + 77;3; 0.133382, 0.496433,-0.000311;;, + 78;3; 0.133570, 0.496433,-0.000606;;, + 79;3; 0.133717, 0.496433,-0.000836;;, + 80;3; 0.133769, 0.496433,-0.000918;;, + 81;3; 0.133717, 0.496433,-0.000836;;, + 82;3; 0.133570, 0.496433,-0.000606;;, + 83;3; 0.133382, 0.496433,-0.000311;;, + 84;3; 0.133236, 0.496433,-0.000082;;, + 85;3; 0.133184, 0.496433,-0.000000;;, + 86;3; 0.133236, 0.496433,-0.000082;;, + 87;3; 0.133382, 0.496433,-0.000311;;, + 88;3; 0.133570, 0.496433,-0.000607;;, + 89;3; 0.133717, 0.496433,-0.000836;;, + 90;3; 0.133769, 0.496433,-0.000918;;; + } + } + Animation { + {Armature_Bone_008} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.322752, 0.496400, 0.205615, 0.779192;;, + 1;4;-0.328083, 0.452094, 0.187263, 0.792062;;, + 2;4;-0.343092, 0.327617, 0.135703, 0.828298;;, + 3;4;-0.362356, 0.168170, 0.069658, 0.874805;;, + 4;4;-0.377357, 0.044084, 0.018260, 0.911020;;, + 5;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 6;4;-0.377356, 0.044124, 0.018277, 0.911018;;, + 7;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 8;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 9;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 10;4;-0.322752, 0.496400, 0.205615, 0.779192;;, + 11;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 12;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 13;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 14;4;-0.377356, 0.044124, 0.018277, 0.911019;;, + 15;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 16;4;-0.377356, 0.044124, 0.018277, 0.911018;;, + 17;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 18;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 19;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 20;4;-0.322752, 0.496400, 0.205615, 0.779192;;, + 21;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 22;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 23;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 24;4;-0.377356, 0.044125, 0.018277, 0.911018;;, + 25;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 26;4;-0.377356, 0.044124, 0.018277, 0.911018;;, + 27;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 28;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 29;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 30;4;-0.322752, 0.496400, 0.205615, 0.779192;;, + 31;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 32;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 33;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 34;4;-0.377356, 0.044125, 0.018277, 0.911018;;, + 35;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 36;4;-0.377356, 0.044124, 0.018277, 0.911018;;, + 37;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 38;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 39;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 40;4;-0.322752, 0.496400, 0.205615, 0.779192;;, + 41;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 42;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 43;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 44;4;-0.377356, 0.044125, 0.018277, 0.911018;;, + 45;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 46;4;-0.377356, 0.044124, 0.018277, 0.911018;;, + 47;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 48;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 49;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 50;4;-0.322752, 0.496400, 0.205615, 0.779192;;, + 51;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 52;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 53;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 54;4;-0.377356, 0.044125, 0.018277, 0.911018;;, + 55;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 56;4;-0.377356, 0.044124, 0.018277, 0.911018;;, + 57;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 58;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 59;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 60;4;-0.322752, 0.496400, 0.205615, 0.779192;;, + 61;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 62;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 63;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 64;4;-0.377356, 0.044125, 0.018277, 0.911018;;, + 65;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 66;4;-0.377356, 0.044124, 0.018277, 0.911018;;, + 67;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 68;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 69;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 70;4;-0.322752, 0.496400, 0.205615, 0.779192;;, + 71;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 72;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 73;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 74;4;-0.377356, 0.044125, 0.018277, 0.911018;;, + 75;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 76;4;-0.377356, 0.044124, 0.018277, 0.911018;;, + 77;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 78;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 79;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 80;4;-0.322752, 0.496400, 0.205615, 0.779192;;, + 81;4;-0.328079, 0.452276, 0.187338, 0.792053;;, + 82;4;-0.343084, 0.327991, 0.135858, 0.828279;;, + 83;4;-0.362351, 0.168410, 0.069757, 0.874793;;, + 84;4;-0.377356, 0.044125, 0.018277, 0.911018;;, + 85;4;-0.382683, 0.000000, 0.000000, 0.923880;;, + 86;4;-0.377357, 0.044084, 0.018260, 0.911021;;, + 87;4;-0.362356, 0.168170, 0.069658, 0.874805;;, + 88;4;-0.343092, 0.327617, 0.135703, 0.828298;;, + 89;4;-0.328083, 0.452094, 0.187263, 0.792062;;, + 90;4;-0.322752, 0.496400, 0.205615, 0.779192;;; + } + 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.119694, 0.498763,-0.000688;;, + 1;3;-0.119656, 0.498763,-0.000627;;, + 2;3;-0.119545, 0.498763,-0.000455;;, + 3;3;-0.119405, 0.498763,-0.000234;;, + 4;3;-0.119295, 0.498763,-0.000061;;, + 5;3;-0.119256, 0.498763,-0.000000;;, + 6;3;-0.119295, 0.498763,-0.000062;;, + 7;3;-0.119404, 0.498763,-0.000233;;, + 8;3;-0.119546, 0.498763,-0.000455;;, + 9;3;-0.119655, 0.498763,-0.000627;;, + 10;3;-0.119694, 0.498763,-0.000688;;, + 11;3;-0.119655, 0.498763,-0.000627;;, + 12;3;-0.119545, 0.498763,-0.000455;;, + 13;3;-0.119405, 0.498763,-0.000234;;, + 14;3;-0.119294, 0.498763,-0.000061;;, + 15;3;-0.119256, 0.498763, 0.000000;;, + 16;3;-0.119295, 0.498763,-0.000061;;, + 17;3;-0.119404, 0.498763,-0.000234;;, + 18;3;-0.119546, 0.498763,-0.000455;;, + 19;3;-0.119655, 0.498763,-0.000627;;, + 20;3;-0.119694, 0.498763,-0.000688;;, + 21;3;-0.119655, 0.498763,-0.000627;;, + 22;3;-0.119546, 0.498763,-0.000455;;, + 23;3;-0.119404, 0.498763,-0.000234;;, + 24;3;-0.119295, 0.498763,-0.000062;;, + 25;3;-0.119256, 0.498763,-0.000000;;, + 26;3;-0.119295, 0.498763,-0.000061;;, + 27;3;-0.119405, 0.498763,-0.000234;;, + 28;3;-0.119545, 0.498763,-0.000454;;, + 29;3;-0.119655, 0.498763,-0.000627;;, + 30;3;-0.119695, 0.498763,-0.000688;;, + 31;3;-0.119655, 0.498763,-0.000627;;, + 32;3;-0.119545, 0.498763,-0.000455;;, + 33;3;-0.119405, 0.498763,-0.000234;;, + 34;3;-0.119295, 0.498763,-0.000061;;, + 35;3;-0.119256, 0.498763,-0.000000;;, + 36;3;-0.119295, 0.498763,-0.000061;;, + 37;3;-0.119404, 0.498763,-0.000234;;, + 38;3;-0.119546, 0.498763,-0.000455;;, + 39;3;-0.119655, 0.498763,-0.000627;;, + 40;3;-0.119694, 0.498763,-0.000688;;, + 41;3;-0.119656, 0.498763,-0.000627;;, + 42;3;-0.119545, 0.498763,-0.000455;;, + 43;3;-0.119404, 0.498763,-0.000233;;, + 44;3;-0.119295, 0.498763,-0.000062;;, + 45;3;-0.119256, 0.498763, 0.000000;;, + 46;3;-0.119295, 0.498763,-0.000061;;, + 47;3;-0.119404, 0.498763,-0.000234;;, + 48;3;-0.119546, 0.498763,-0.000454;;, + 49;3;-0.119655, 0.498763,-0.000628;;, + 50;3;-0.119695, 0.498763,-0.000688;;, + 51;3;-0.119655, 0.498763,-0.000628;;, + 52;3;-0.119546, 0.498763,-0.000454;;, + 53;3;-0.119404, 0.498763,-0.000234;;, + 54;3;-0.119295, 0.498763,-0.000061;;, + 55;3;-0.119256, 0.498763, 0.000000;;, + 56;3;-0.119295, 0.498763,-0.000061;;, + 57;3;-0.119404, 0.498763,-0.000234;;, + 58;3;-0.119546, 0.498763,-0.000455;;, + 59;3;-0.119655, 0.498763,-0.000627;;, + 60;3;-0.119694, 0.498763,-0.000688;;, + 61;3;-0.119655, 0.498763,-0.000627;;, + 62;3;-0.119545, 0.498763,-0.000455;;, + 63;3;-0.119405, 0.498763,-0.000234;;, + 64;3;-0.119295, 0.498763,-0.000061;;, + 65;3;-0.119256, 0.498763, 0.000000;;, + 66;3;-0.119295, 0.498763,-0.000061;;, + 67;3;-0.119404, 0.498763,-0.000234;;, + 68;3;-0.119546, 0.498763,-0.000454;;, + 69;3;-0.119655, 0.498763,-0.000627;;, + 70;3;-0.119694, 0.498763,-0.000688;;, + 71;3;-0.119655, 0.498763,-0.000627;;, + 72;3;-0.119545, 0.498763,-0.000455;;, + 73;3;-0.119404, 0.498763,-0.000234;;, + 74;3;-0.119295, 0.498763,-0.000061;;, + 75;3;-0.119256, 0.498763, 0.000000;;, + 76;3;-0.119295, 0.498763,-0.000062;;, + 77;3;-0.119405, 0.498763,-0.000234;;, + 78;3;-0.119546, 0.498763,-0.000455;;, + 79;3;-0.119655, 0.498763,-0.000627;;, + 80;3;-0.119694, 0.498763,-0.000688;;, + 81;3;-0.119655, 0.498763,-0.000627;;, + 82;3;-0.119546, 0.498763,-0.000455;;, + 83;3;-0.119404, 0.498763,-0.000233;;, + 84;3;-0.119295, 0.498763,-0.000061;;, + 85;3;-0.119256, 0.498763,-0.000000;;, + 86;3;-0.119295, 0.498763,-0.000061;;, + 87;3;-0.119405, 0.498763,-0.000233;;, + 88;3;-0.119546, 0.498763,-0.000455;;, + 89;3;-0.119656, 0.498763,-0.000627;;, + 90;3;-0.119694, 0.498763,-0.000688;;; + } + } + Animation { + {Armature_Bone_010} + AnimationKey { // Rotation + 0; + 91; + 0;4;-0.322752, 0.496400,-0.205616,-0.779192;;, + 1;4;-0.328083, 0.452094,-0.187264,-0.792062;;, + 2;4;-0.343092, 0.327617,-0.135704,-0.828298;;, + 3;4;-0.362356, 0.168170,-0.069658,-0.874805;;, + 4;4;-0.377357, 0.044084,-0.018260,-0.911021;;, + 5;4;-0.382683, 0.000000,-0.000000,-0.923880;;, + 6;4;-0.377356, 0.044124,-0.018277,-0.911018;;, + 7;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 8;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 9;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 10;4;-0.322752, 0.496400,-0.205616,-0.779192;;, + 11;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 12;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 13;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 14;4;-0.377356, 0.044124,-0.018277,-0.911018;;, + 15;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 16;4;-0.377356, 0.044124,-0.018277,-0.911018;;, + 17;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 18;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 19;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 20;4;-0.322752, 0.496400,-0.205616,-0.779192;;, + 21;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 22;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 23;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 24;4;-0.377356, 0.044125,-0.018277,-0.911019;;, + 25;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 26;4;-0.377356, 0.044124,-0.018277,-0.911018;;, + 27;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 28;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 29;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 30;4;-0.322752, 0.496400,-0.205616,-0.779192;;, + 31;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 32;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 33;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 34;4;-0.377356, 0.044125,-0.018277,-0.911019;;, + 35;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 36;4;-0.377356, 0.044124,-0.018277,-0.911018;;, + 37;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 38;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 39;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 40;4;-0.322752, 0.496400,-0.205616,-0.779192;;, + 41;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 42;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 43;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 44;4;-0.377356, 0.044125,-0.018277,-0.911019;;, + 45;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 46;4;-0.377356, 0.044124,-0.018277,-0.911018;;, + 47;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 48;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 49;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 50;4;-0.322752, 0.496400,-0.205616,-0.779192;;, + 51;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 52;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 53;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 54;4;-0.377356, 0.044125,-0.018277,-0.911019;;, + 55;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 56;4;-0.377356, 0.044124,-0.018277,-0.911018;;, + 57;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 58;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 59;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 60;4;-0.322752, 0.496400,-0.205616,-0.779192;;, + 61;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 62;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 63;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 64;4;-0.377356, 0.044125,-0.018277,-0.911019;;, + 65;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 66;4;-0.377356, 0.044124,-0.018277,-0.911018;;, + 67;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 68;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 69;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 70;4;-0.322752, 0.496400,-0.205616,-0.779192;;, + 71;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 72;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 73;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 74;4;-0.377356, 0.044125,-0.018277,-0.911019;;, + 75;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 76;4;-0.377356, 0.044124,-0.018277,-0.911018;;, + 77;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 78;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 79;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 80;4;-0.322752, 0.496400,-0.205616,-0.779192;;, + 81;4;-0.328079, 0.452276,-0.187339,-0.792053;;, + 82;4;-0.343084, 0.327991,-0.135858,-0.828279;;, + 83;4;-0.362351, 0.168409,-0.069758,-0.874793;;, + 84;4;-0.377356, 0.044125,-0.018277,-0.911019;;, + 85;4;-0.382683, 0.000000, 0.000000,-0.923880;;, + 86;4;-0.377357, 0.044084,-0.018260,-0.911021;;, + 87;4;-0.362356, 0.168170,-0.069658,-0.874805;;, + 88;4;-0.343092, 0.327617,-0.135704,-0.828298;;, + 89;4;-0.328083, 0.452094,-0.187264,-0.792062;;, + 90;4;-0.322752, 0.496400,-0.205616,-0.779192;;; + } + 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.134624, 0.498937, 0.000918;;, + 1;3; 0.134676, 0.498937, 0.000836;;, + 2;3; 0.134823, 0.498937, 0.000606;;, + 3;3; 0.135011, 0.498937, 0.000311;;, + 4;3; 0.135157, 0.498937, 0.000082;;, + 5;3; 0.135209, 0.498937,-0.000000;;, + 6;3; 0.135157, 0.498937, 0.000081;;, + 7;3; 0.135011, 0.498937, 0.000311;;, + 8;3; 0.134823, 0.498937, 0.000606;;, + 9;3; 0.134676, 0.498937, 0.000836;;, + 10;3; 0.134624, 0.498937, 0.000917;;, + 11;3; 0.134677, 0.498937, 0.000836;;, + 12;3; 0.134823, 0.498937, 0.000606;;, + 13;3; 0.135011, 0.498937, 0.000311;;, + 14;3; 0.135157, 0.498937, 0.000082;;, + 15;3; 0.135209, 0.498937, 0.000000;;, + 16;3; 0.135157, 0.498937, 0.000082;;, + 17;3; 0.135011, 0.498937, 0.000311;;, + 18;3; 0.134823, 0.498937, 0.000606;;, + 19;3; 0.134676, 0.498937, 0.000836;;, + 20;3; 0.134625, 0.498937, 0.000918;;, + 21;3; 0.134677, 0.498937, 0.000836;;, + 22;3; 0.134823, 0.498937, 0.000606;;, + 23;3; 0.135011, 0.498937, 0.000311;;, + 24;3; 0.135157, 0.498937, 0.000081;;, + 25;3; 0.135209, 0.498937,-0.000000;;, + 26;3; 0.135157, 0.498937, 0.000082;;, + 27;3; 0.135011, 0.498937, 0.000311;;, + 28;3; 0.134823, 0.498937, 0.000607;;, + 29;3; 0.134677, 0.498937, 0.000836;;, + 30;3; 0.134624, 0.498937, 0.000918;;, + 31;3; 0.134676, 0.498937, 0.000836;;, + 32;3; 0.134823, 0.498937, 0.000607;;, + 33;3; 0.135011, 0.498937, 0.000311;;, + 34;3; 0.135157, 0.498937, 0.000082;;, + 35;3; 0.135209, 0.498937,-0.000000;;, + 36;3; 0.135157, 0.498937, 0.000082;;, + 37;3; 0.135011, 0.498937, 0.000311;;, + 38;3; 0.134823, 0.498937, 0.000607;;, + 39;3; 0.134676, 0.498937, 0.000836;;, + 40;3; 0.134624, 0.498937, 0.000918;;, + 41;3; 0.134676, 0.498937, 0.000836;;, + 42;3; 0.134823, 0.498937, 0.000607;;, + 43;3; 0.135011, 0.498937, 0.000312;;, + 44;3; 0.135157, 0.498937, 0.000081;;, + 45;3; 0.135209, 0.498937, 0.000000;;, + 46;3; 0.135157, 0.498937, 0.000082;;, + 47;3; 0.135011, 0.498937, 0.000311;;, + 48;3; 0.134823, 0.498937, 0.000607;;, + 49;3; 0.134676, 0.498937, 0.000835;;, + 50;3; 0.134624, 0.498937, 0.000918;;, + 51;3; 0.134677, 0.498937, 0.000835;;, + 52;3; 0.134823, 0.498937, 0.000607;;, + 53;3; 0.135011, 0.498937, 0.000311;;, + 54;3; 0.135157, 0.498937, 0.000082;;, + 55;3; 0.135209, 0.498937, 0.000000;;, + 56;3; 0.135157, 0.498937, 0.000082;;, + 57;3; 0.135011, 0.498937, 0.000311;;, + 58;3; 0.134823, 0.498937, 0.000607;;, + 59;3; 0.134676, 0.498937, 0.000836;;, + 60;3; 0.134624, 0.498937, 0.000918;;, + 61;3; 0.134677, 0.498937, 0.000836;;, + 62;3; 0.134823, 0.498937, 0.000607;;, + 63;3; 0.135011, 0.498937, 0.000311;;, + 64;3; 0.135157, 0.498937, 0.000082;;, + 65;3; 0.135209, 0.498937, 0.000000;;, + 66;3; 0.135157, 0.498937, 0.000082;;, + 67;3; 0.135011, 0.498937, 0.000311;;, + 68;3; 0.134823, 0.498937, 0.000607;;, + 69;3; 0.134676, 0.498937, 0.000836;;, + 70;3; 0.134624, 0.498937, 0.000918;;, + 71;3; 0.134676, 0.498937, 0.000836;;, + 72;3; 0.134823, 0.498937, 0.000607;;, + 73;3; 0.135011, 0.498937, 0.000311;;, + 74;3; 0.135157, 0.498937, 0.000082;;, + 75;3; 0.135209, 0.498937, 0.000000;;, + 76;3; 0.135157, 0.498937, 0.000081;;, + 77;3; 0.135011, 0.498937, 0.000311;;, + 78;3; 0.134822, 0.498937, 0.000606;;, + 79;3; 0.134677, 0.498937, 0.000836;;, + 80;3; 0.134625, 0.498937, 0.000918;;, + 81;3; 0.134676, 0.498937, 0.000836;;, + 82;3; 0.134823, 0.498937, 0.000606;;, + 83;3; 0.135011, 0.498937, 0.000312;;, + 84;3; 0.135157, 0.498937, 0.000082;;, + 85;3; 0.135209, 0.498937,-0.000000;;, + 86;3; 0.135157, 0.498937, 0.000082;;, + 87;3; 0.135011, 0.498937, 0.000312;;, + 88;3; 0.134823, 0.498937, 0.000606;;, + 89;3; 0.134676, 0.498937, 0.000836;;, + 90;3; 0.134624, 0.498937, 0.000918;;; + } + } + Animation { + {Group5} + 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_sky/mobs_butterfly/textures/bf1.png b/mods/mobs_sky/mobs_butterfly/textures/bf1.png new file mode 100644 index 0000000..6dfa6e3 Binary files /dev/null and b/mods/mobs_sky/mobs_butterfly/textures/bf1.png differ diff --git a/mods/mobs_sky/mobs_butterfly/textures/bf2.png b/mods/mobs_sky/mobs_butterfly/textures/bf2.png new file mode 100644 index 0000000..88f6644 Binary files /dev/null and b/mods/mobs_sky/mobs_butterfly/textures/bf2.png differ diff --git a/mods/mobs_sky/mobs_butterfly/textures/bf3.png b/mods/mobs_sky/mobs_butterfly/textures/bf3.png new file mode 100644 index 0000000..178083f Binary files /dev/null and b/mods/mobs_sky/mobs_butterfly/textures/bf3.png differ diff --git a/mods/mobs_sky/mobs_butterfly/textures/bf4.png b/mods/mobs_sky/mobs_butterfly/textures/bf4.png new file mode 100644 index 0000000..253f277 Binary files /dev/null and b/mods/mobs_sky/mobs_butterfly/textures/bf4.png differ diff --git a/mods/mobs_sky/mobs_butterfly/textures/bf5.png b/mods/mobs_sky/mobs_butterfly/textures/bf5.png new file mode 100644 index 0000000..db9e697 Binary files /dev/null and b/mods/mobs_sky/mobs_butterfly/textures/bf5.png differ diff --git a/mods/mobs_sky/mobs_butterfly/textures/original/mobf_butterfly.png b/mods/mobs_sky/mobs_butterfly/textures/original/mobf_butterfly.png new file mode 100644 index 0000000..c191f27 Binary files /dev/null and b/mods/mobs_sky/mobs_butterfly/textures/original/mobf_butterfly.png differ diff --git a/mods/mobs_sky/modpack.txt b/mods/mobs_sky/modpack.txt new file mode 100644 index 0000000..e69de29 diff --git a/mods/mobs_water/README.md b/mods/mobs_water/README.md new file mode 100644 index 0000000..ca6cea3 --- /dev/null +++ b/mods/mobs_water/README.md @@ -0,0 +1,4 @@ +A few water critters ported from other mob frameworks to "Mobs-Redo". + +License information for the models and textures can be found inside +the respective folders. diff --git a/mods/mobs_water/mobs_crocs/License.txt b/mods/mobs_water/mobs_crocs/License.txt new file mode 100644 index 0000000..eb859b6 --- /dev/null +++ b/mods/mobs_water/mobs_crocs/License.txt @@ -0,0 +1,4 @@ +Licenses + +Model/Textures: GPL v3 +Author: Team NPX diff --git a/mods/mobs_water/mobs_crocs/SETTINGS.txt b/mods/mobs_water/mobs_crocs/SETTINGS.txt new file mode 100644 index 0000000..616f97e --- /dev/null +++ b/mods/mobs_water/mobs_crocs/SETTINGS.txt @@ -0,0 +1,21 @@ + +-- SETTINGS + +ENABLE_WALKERS = true +-- these guys are spawned on land near water, they do not +-- float so they will not attack you if they happen to +-- stumble into the water (L.O.S. limitation*) + +ENABLE_FLOATERS = true +-- these guys are spawned in shallow water, they float so they +-- will follow you onto land to take a bite out of you + +ENABLE_SWIMMERS = true +-- these guys are spawned in shallow water, they do not float so +-- they will only attack if you attack first (L.O.S. limitation*) + + +-- * note: Mobs not attacking while underwater is a limitation of +-- the MineTest LineOfSight function used in the "mobs_redo" +-- mod to check if there is anything to attack. Seems that +-- mobs can't see through water. \ No newline at end of file diff --git a/mods/mobs_water/mobs_crocs/depends.txt b/mods/mobs_water/mobs_crocs/depends.txt new file mode 100644 index 0000000..cc03398 --- /dev/null +++ b/mods/mobs_water/mobs_crocs/depends.txt @@ -0,0 +1,2 @@ +default +mobs diff --git a/mods/mobs_water/mobs_crocs/init.lua b/mods/mobs_water/mobs_crocs/init.lua new file mode 100644 index 0000000..bd517ab --- /dev/null +++ b/mods/mobs_water/mobs_crocs/init.lua @@ -0,0 +1,105 @@ +-- local variables + local l_skins = { + {"croco.png"}, + {"croco2.png"} + } + local l_anims = { + speed_normal = 24, speed_run = 24, + stand_start = 0, stand_end = 80, + walk_start = 81, walk_end = 170, + run_start = 81, run_end = 170, + punch_start = 205, punch_end = 220 + } + local l_model = "crocodile.x" + local l_sounds = {random = "croco"} + local l_egg_texture = "default_grass.png" + local l_spawn_chance = 30000 + + mobs:register_mob("mobs_crocs:crocodile_lg", { + type = "monster", + attack_type = "dogfight", + damage = 2, + reach = 3, + hp_min = 4, + hp_max = 8, + armor = 250, + collisionbox = {-0.85, -0.30, -0.85, 0.85, 1.5, 0.85}, + drawtype = "front", + visual = "mesh", + mesh = l_model, + textures = l_skins, + visual_size = {x=4, y=4}, + sounds = l_sounds, + fly = false, + fly_in = "default:water_source", + fall_speed = -1, + floats = 0, + stepheight = 1, + view_range = 10, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = l_anims + }) + --mobs:spawn_specific("mobs_crocs:crocodile_lg", + -- {"default:water_flowing","default:water_source"}, + -- {"default:water_flowing","default:water_source"}, + -- 5, 20, 30, l_spawn_chance, 1, -31000, 0) + mobs:register_mob("mobs_crocs:crocodile_md", { + type = "monster", + attack_type = "dogfight", + damage = 2, + reach = 3, + hp_min = 4, + hp_max = 8, + armor = 225, + collisionbox = {-0.85, -0.30, -0.85, 0.85, 1.5, 0.85}, + drawtype = "front", + visual = "mesh", + mesh = l_model, + textures = l_skins, + visual_size = {x=3, y=3}, + sounds = l_sounds, + fly = true, + fly_in = "default:water_source", + fall_speed = -1, + floats = 0, + view_range = 10, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = l_anims + }) + --mobs:spawn_specific("mobs_crocs:crocodile_md", + -- {"default:water_flowing","default:water_source"}, + -- {"default:water_flowing","default:water_source"}, + -- 5, 20, 30, l_spawn_chance, 1, -31000, 0) + mobs:register_mob("mobs_crocs:crocodile_sm", { + type = "monster", + attack_type = "dogfight", + damage = 2, + reach = 3, + hp_min = 4, + hp_max = 8, + armor = 200, + collisionbox = {-0.85, -0.30, -0.85, 0.85, 1.5, 0.85}, + drawtype = "front", + visual = "mesh", + mesh = l_model, + textures = l_skins, + visual_size = {x=2, y=2}, + sounds = l_sounds, + fly = true, + fly_in = "default:water_source", + fall_speed = -1, + floats = 0, + view_range = 10, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = l_anims + }) + --mobs:spawn_specific("mobs_crocs:crocodile_sm", + -- {"default:water_flowing","default:water_source"}, + -- {"default:water_flowing","default:water_source"}, + -- 5, 20, 30, l_spawn_chance, 1, -31000, 0) diff --git a/mods/mobs_water/mobs_crocs/models/crocodile.x b/mods/mobs_water/mobs_crocs/models/crocodile.x new file mode 100644 index 0000000..452a588 --- /dev/null +++ b/mods/mobs_water/mobs_crocs/models/crocodile.x @@ -0,0 +1,20286 @@ +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.000000, 1.000000, 0.000000, 0.000000, + -1.000000,-0.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -0.157836,-0.069149, 2.264753, 1.000000;; + } + Frame Armature_Bone { + FrameTransformMatrix { + 0.033865, 0.000001,-0.999426, 0.000000, + 0.999426,-0.000000, 0.033865, 0.000000, + 0.000000,-1.000000,-0.000001, 0.000000, + -0.844564, 0.035360,-2.311622, 1.000000;; + } + Frame Armature_Bone_009 { + FrameTransformMatrix { + 0.000727, 0.022308, 0.999751, 0.000000, + 0.023948, 0.999464,-0.022319, 0.000000, + -0.999713, 0.023958, 0.000192, 0.000000, + -0.000000, 2.056115,-0.000000, 1.000000;; + } + Frame Armature_Bone_010 { + FrameTransformMatrix { + 0.999554,-0.029848, 0.000268, 0.000000, + 0.029324, 0.983618, 0.177864, 0.000000, + -0.005572,-0.177777, 0.984055, 0.000000, + 0.000000, 0.759654, 0.000000, 1.000000;; + } + Frame Armature_Bone_011 { + FrameTransformMatrix { + 0.999999, 0.001567,-0.000306, 0.000000, + -0.001596, 0.985931,-0.167144, 0.000000, + 0.000040, 0.167144, 0.985932, 0.000000, + 0.000000, 0.932192, 0.000000, 1.000000;; + } + } // End of Armature_Bone_011 + Frame Armature_Bone_016 { + FrameTransformMatrix { + -0.270644, 0.894402, 0.356086, 0.000000, + -0.045647, 0.357551,-0.932777, 0.000000, + -0.961597,-0.268705,-0.055943, 0.000000, + 0.000000, 0.932192, 0.000000, 1.000000;; + } + Frame Armature_Bone_017 { + FrameTransformMatrix { + -0.260533,-0.042490,-0.964529, 0.000000, + 0.819095, 0.519124,-0.244118, 0.000000, + 0.511083,-0.853642,-0.100446, 0.000000, + 0.000000, 0.774397, 0.000000, 1.000000;; + } + } // End of Armature_Bone_017 + } // End of Armature_Bone_016 + } // End of Armature_Bone_010 + Frame Armature_Bone_012 { + FrameTransformMatrix { + 0.013315, 0.999862,-0.009912, 0.000000, + 0.993368,-0.014359,-0.114081, 0.000000, + -0.114207,-0.008327,-0.993422, 0.000000, + 0.000000, 0.759654, 0.000000, 1.000000;; + } + Frame Armature_Bone_013 { + FrameTransformMatrix { + -0.007699, 0.993107,-0.116958, 0.000000, + 0.999465, 0.003922,-0.032489, 0.000000, + -0.031806,-0.117145,-0.992605, 0.000000, + 0.000000, 2.142237, 0.000000, 1.000000;; + } + } // End of Armature_Bone_013 + } // End of Armature_Bone_012 + Frame Armature_Bone_014 { + FrameTransformMatrix { + 0.022930, 0.999688,-0.009910, 0.000000, + -0.995131, 0.021873,-0.096104, 0.000000, + -0.095857, 0.012066, 0.995322, 0.000000, + 0.000000, 0.759654, 0.000000, 1.000000;; + } + Frame Armature_Bone_015 { + FrameTransformMatrix { + -0.045706,-0.994475,-0.094503, 0.000000, + 0.998897,-0.046516, 0.006386, 0.000000, + -0.010747,-0.094106, 0.995504, 0.000000, + 0.000000, 2.190849, 0.000000, 1.000000;; + } + } // End of Armature_Bone_015 + } // End of Armature_Bone_014 + } // End of Armature_Bone_009 + Frame Armature_Bone_018 { + FrameTransformMatrix { + 0.023712, 0.699755,-0.713989, 0.000000, + -0.067016,-0.711471,-0.699513, 0.000000, + -0.997470, 0.064435, 0.030025, 0.000000, + -0.000000, 2.056115,-0.000000, 1.000000;; + } + } // End of Armature_Bone_018 + Frame Armature_Bone_019 { + FrameTransformMatrix { + -0.022175,-0.654462,-0.755770, 0.000000, + 0.010967,-0.756070, 0.654399, 0.000000, + -0.999694, 0.006223, 0.023944, 0.000000, + -0.000000, 2.056115,-0.000000, 1.000000;; + } + } // End of Armature_Bone_019 + } // End of Armature_Bone + Frame Armature_Bone_001 { + FrameTransformMatrix { + 0.002214, 0.999998, 0.000002, 0.000000, + -0.999946, 0.002214,-0.010181, 0.000000, + -0.010181, 0.000020, 0.999948, 0.000000, + -0.898938, 0.035360,-2.311622, 1.000000;; + } + Frame Armature_Bone_002 { + FrameTransformMatrix { + -0.026267,-0.999603,-0.010176, 0.000000, + -0.997128, 0.026922,-0.070785, 0.000000, + 0.071031, 0.008288,-0.997440, 0.000000, + -0.000000, 0.903695,-0.000000, 1.000000;; + } + Frame Armature_Bone_003 { + FrameTransformMatrix { + -0.010648,-0.997416, 0.071054, 0.000000, + -0.999067, 0.007637,-0.042525, 0.000000, + 0.041873,-0.071440,-0.996566, 0.000000, + 0.000000, 2.148945, 0.000000, 1.000000;; + } + } // End of Armature_Bone_003 + } // End of Armature_Bone_002 + Frame Armature_Bone_004 { + FrameTransformMatrix { + 0.019887,-0.999750,-0.010179, 0.000000, + 0.999550, 0.020109,-0.022237, 0.000000, + 0.022436,-0.009732, 0.999701, 0.000000, + -0.000000, 0.903695,-0.000000, 1.000000;; + } + Frame Armature_Bone_005 { + FrameTransformMatrix { + 0.023319, 0.999476, 0.022432, 0.000000, + -0.999686, 0.023516,-0.008603, 0.000000, + -0.009126,-0.022224, 0.999711, 0.000000, + -0.000000, 2.153970,-0.000000, 1.000000;; + } + } // End of Armature_Bone_005 + } // End of Armature_Bone_004 + Frame Armature_Bone_006 { + FrameTransformMatrix { + 0.998060,-0.062261,-0.000636, 0.000000, + 0.062261, 0.998060,-0.000260, 0.000000, + 0.000651, 0.000220, 1.000000, 0.000000, + -0.000000, 0.903695,-0.000000, 1.000000;; + } + Frame Armature_Bone_007 { + FrameTransformMatrix { + 0.998053, 0.062366, 0.000651, 0.000000, + -0.062367, 0.998053, 0.000706, 0.000000, + -0.000606,-0.000745, 1.000000, 0.000000, + -0.000000, 0.738094, 0.000000, 1.000000;; + } + Frame Armature_Bone_008 { + FrameTransformMatrix { + 0.999994, 0.003522, 0.000032, 0.000000, + -0.003522, 0.999994, 0.000247, 0.000000, + -0.000031,-0.000248, 1.000000, 0.000000, + 0.000000, 1.762332,-0.000000, 1.000000;; + } + } // End of Armature_Bone_008 + } // End of Armature_Bone_007 + } // End of Armature_Bone_006 + } // End of Armature_Bone_001 + Frame Cube { + FrameTransformMatrix { + 1.000000, 0.000000, 0.000000, 0.000000, + 0.000000, 1.000000, 0.000000, 0.000000, + 0.000000, 0.000000, 0.500000, 0.000000, + 0.157836, 0.069149,-2.264753, 1.000000;; + } + Mesh { // Cube mesh + 528; + -2.302605;-1.948480;-0.666828;, + -2.302605;-2.348480;-0.666828;, + -3.902605;-2.348480;-0.666828;, + -3.902605;-1.948480;-0.666828;, + -2.302605;-1.948480; 0.133172;, + -3.902605;-1.948480; 0.133172;, + -3.902606;-2.348480; 0.133172;, + -2.302606;-2.348480; 0.133172;, + -2.302605;-1.948480;-0.666828;, + -2.302605;-1.948480; 0.133172;, + -2.302606;-2.348480; 0.133172;, + -2.302605;-2.348480;-0.666828;, + -2.302605;-2.348480;-0.666828;, + -2.302606;-2.348480; 0.133172;, + -3.902606;-2.348480; 0.133172;, + -3.902605;-2.348480;-0.666828;, + -3.902605;-2.348480;-0.666828;, + -3.902606;-2.348480; 0.133172;, + -3.902605;-1.948480; 0.133172;, + -3.902605;-1.948480;-0.666828;, + -2.302605;-1.948480; 0.133172;, + -2.302605;-1.948480;-0.666828;, + -3.902605;-1.948480;-0.666828;, + -3.902605;-1.948480; 0.133172;, + 3.764080;-1.950406;-0.666828;, + 3.764080;-2.350406;-0.666828;, + 2.164080;-2.350406;-0.666828;, + 2.164080;-1.950406;-0.666828;, + 3.764080;-1.950406; 0.133172;, + 2.164080;-1.950406; 0.133172;, + 2.164080;-2.350406; 0.133172;, + 3.764079;-2.350406; 0.133172;, + 3.764080;-1.950406;-0.666828;, + 3.764080;-1.950406; 0.133172;, + 3.764079;-2.350406; 0.133172;, + 3.764080;-2.350406;-0.666828;, + 3.764080;-2.350406;-0.666828;, + 3.764079;-2.350406; 0.133172;, + 2.164080;-2.350406; 0.133172;, + 2.164080;-2.350406;-0.666828;, + 2.164080;-2.350406;-0.666828;, + 2.164080;-2.350406; 0.133172;, + 2.164080;-1.950406; 0.133172;, + 2.164080;-1.950406;-0.666828;, + 3.764080;-1.950406; 0.133172;, + 3.764080;-1.950406;-0.666828;, + 2.164080;-1.950406;-0.666828;, + 2.164080;-1.950406; 0.133172;, + -2.301100; 2.286701;-0.666828;, + -2.301100; 1.886701;-0.666828;, + -3.901100; 1.886701;-0.666828;, + -3.901100; 2.286701;-0.666828;, + -2.301100; 2.286701; 0.133172;, + -3.901100; 2.286701; 0.133172;, + -3.901100; 1.886701; 0.133172;, + -2.301100; 1.886701; 0.133172;, + -2.301100; 2.286701;-0.666828;, + -2.301100; 2.286701; 0.133172;, + -2.301100; 1.886701; 0.133172;, + -2.301100; 1.886701;-0.666828;, + -2.301100; 1.886701;-0.666828;, + -2.301100; 1.886701; 0.133172;, + -3.901100; 1.886701; 0.133172;, + -3.901100; 1.886701;-0.666828;, + -3.901100; 1.886701;-0.666828;, + -3.901100; 1.886701; 0.133172;, + -3.901100; 2.286701; 0.133172;, + -3.901100; 2.286701;-0.666828;, + -2.301100; 2.286701; 0.133172;, + -2.301100; 2.286701;-0.666828;, + -3.901100; 2.286701;-0.666828;, + -3.901100; 2.286701; 0.133172;, + 3.764080; 2.286701;-0.666828;, + 3.764080; 1.886701;-0.666828;, + 2.164080; 1.886701;-0.666828;, + 2.164080; 2.286701;-0.666828;, + 3.764080; 2.286701; 0.133172;, + 2.164080; 2.286701; 0.133172;, + 2.164080; 1.886701; 0.133172;, + 3.764079; 1.886701; 0.133172;, + 3.764080; 2.286701;-0.666828;, + 3.764080; 2.286701; 0.133172;, + 3.764079; 1.886701; 0.133172;, + 3.764080; 1.886701;-0.666828;, + 3.764080; 1.886701;-0.666828;, + 3.764079; 1.886701; 0.133172;, + 2.164080; 1.886701; 0.133172;, + 2.164080; 1.886701;-0.666828;, + 2.164080; 1.886701;-0.666828;, + 2.164080; 1.886701; 0.133172;, + 2.164080; 2.286701; 0.133172;, + 2.164080; 2.286701;-0.666828;, + 3.764080; 2.286701; 0.133172;, + 3.764080; 2.286701;-0.666828;, + 2.164080; 2.286701;-0.666828;, + 2.164080; 2.286701; 0.133172;, + -1.716082; 2.297129;-0.866828;, + -1.716082; 0.697129;-0.866828;, + -2.316082; 0.697129;-0.866828;, + -2.316082; 2.297129;-0.866828;, + -1.716082; 2.297128; 0.333172;, + -2.316082; 2.297129; 0.333172;, + -2.316082; 0.697129; 0.333172;, + -1.716082; 0.697128; 0.333172;, + -1.716082; 2.297129;-0.866828;, + -1.716082; 2.297128; 0.333172;, + -1.716082; 0.697128; 0.333172;, + -1.716082; 0.697129;-0.866828;, + -1.716082; 0.697129;-0.866828;, + -1.716082; 0.697128; 0.333172;, + -2.316082; 0.697129; 0.333172;, + -2.316082; 0.697129;-0.866828;, + -2.316082; 0.697129;-0.866828;, + -2.316082; 0.697129; 0.333172;, + -2.316082; 2.297129; 0.333172;, + -2.316082; 2.297129;-0.866828;, + -1.716082; 2.297128; 0.333172;, + -1.716082; 2.297129;-0.866828;, + -2.316082; 2.297129;-0.866828;, + -2.316082; 2.297129; 0.333172;, + -1.707223;-0.759382;-0.866828;, + -1.707223;-2.359382;-0.866828;, + -2.307223;-2.359382;-0.866828;, + -2.307223;-0.759382;-0.866828;, + -1.707223;-0.759383; 0.333172;, + -2.307223;-0.759382; 0.333172;, + -2.307223;-2.359382; 0.333172;, + -1.707223;-2.359383; 0.333172;, + -1.707223;-0.759382;-0.866828;, + -1.707223;-0.759383; 0.333172;, + -1.707223;-2.359383; 0.333172;, + -1.707223;-2.359382;-0.866828;, + -1.707223;-2.359382;-0.866828;, + -1.707223;-2.359383; 0.333172;, + -2.307223;-2.359382; 0.333172;, + -2.307223;-2.359382;-0.866828;, + -2.307223;-2.359382;-0.866828;, + -2.307223;-2.359382; 0.333172;, + -2.307223;-0.759382; 0.333172;, + -2.307223;-0.759382;-0.866828;, + -1.707223;-0.759383; 0.333172;, + -1.707223;-0.759382;-0.866828;, + -2.307223;-0.759382;-0.866828;, + -2.307223;-0.759382; 0.333172;, + 2.190247;-0.759382;-0.866828;, + 2.190247;-2.359382;-0.866828;, + 1.590247;-2.359382;-0.866828;, + 1.590247;-0.759382;-0.866828;, + 2.190247;-0.759383; 0.333172;, + 1.590247;-0.759382; 0.333172;, + 1.590247;-2.359382; 0.333172;, + 2.190247;-2.359383; 0.333172;, + 2.190247;-0.759382;-0.866828;, + 2.190247;-0.759383; 0.333172;, + 2.190247;-2.359383; 0.333172;, + 2.190247;-2.359382;-0.866828;, + 2.190247;-2.359382;-0.866828;, + 2.190247;-2.359383; 0.333172;, + 1.590247;-2.359382; 0.333172;, + 1.590247;-2.359382;-0.866828;, + 1.590247;-2.359382;-0.866828;, + 1.590247;-2.359382; 0.333172;, + 1.590247;-0.759382; 0.333172;, + 1.590247;-0.759382;-0.866828;, + 2.190247;-0.759383; 0.333172;, + 2.190247;-0.759382;-0.866828;, + 1.590247;-0.759382;-0.866828;, + 1.590247;-0.759382; 0.333172;, + 2.190247; 2.297129;-0.866828;, + 2.190247; 0.697129;-0.866828;, + 1.590247; 0.697129;-0.866828;, + 1.590247; 2.297129;-0.866828;, + 2.190247; 2.297128; 0.333172;, + 1.590247; 2.297129; 0.333172;, + 1.590247; 0.697129; 0.333172;, + 2.190247; 0.697128; 0.333172;, + 2.190247; 2.297129;-0.866828;, + 2.190247; 2.297128; 0.333172;, + 2.190247; 0.697128; 0.333172;, + 2.190247; 0.697129;-0.866828;, + 2.190247; 0.697129;-0.866828;, + 2.190247; 0.697128; 0.333172;, + 1.590247; 0.697129; 0.333172;, + 1.590247; 0.697129;-0.866828;, + 1.590247; 0.697129;-0.866828;, + 1.590247; 0.697129; 0.333172;, + 1.590247; 2.297129; 0.333172;, + 1.590247; 2.297129;-0.866828;, + 2.190247; 2.297128; 0.333172;, + 2.190247; 2.297129;-0.866828;, + 1.590247; 2.297129;-0.866828;, + 1.590247; 2.297129; 0.333172;, + 3.414797; 0.554055; 0.754686;, + 3.414797; 0.354055; 0.754686;, + 3.214797; 0.354055; 0.754686;, + 3.214797; 0.554055; 0.754686;, + 3.414797; 0.554055; 1.154686;, + 3.214797; 0.554055; 1.154686;, + 3.214797; 0.354055; 1.154686;, + 3.414797; 0.354055; 1.154686;, + 3.414797; 0.554055; 0.754686;, + 3.414797; 0.554055; 1.154686;, + 3.414797; 0.354055; 1.154686;, + 3.414797; 0.354055; 0.754686;, + 3.414797; 0.354055; 0.754686;, + 3.414797; 0.354055; 1.154686;, + 3.214797; 0.354055; 1.154686;, + 3.214797; 0.354055; 0.754686;, + 3.214797; 0.354055; 0.754686;, + 3.214797; 0.354055; 1.154686;, + 3.214797; 0.554055; 1.154686;, + 3.214797; 0.554055; 0.754686;, + 3.414797; 0.554055; 1.154686;, + 3.414797; 0.554055; 0.754686;, + 3.214797; 0.554055; 0.754686;, + 3.214797; 0.554055; 1.154686;, + 3.414797;-0.401284; 0.754686;, + 3.414797;-0.601284; 0.754686;, + 3.214797;-0.601284; 0.754686;, + 3.214797;-0.401284; 0.754686;, + 3.414797;-0.401284; 1.154686;, + 3.214797;-0.401284; 1.154686;, + 3.214797;-0.601284; 1.154686;, + 3.414797;-0.601284; 1.154686;, + 3.414797;-0.401284; 0.754686;, + 3.414797;-0.401284; 1.154686;, + 3.414797;-0.601284; 1.154686;, + 3.414797;-0.601284; 0.754686;, + 3.414797;-0.601284; 0.754686;, + 3.414797;-0.601284; 1.154686;, + 3.214797;-0.601284; 1.154686;, + 3.214797;-0.601284; 0.754686;, + 3.214797;-0.601284; 0.754686;, + 3.214797;-0.601284; 1.154686;, + 3.214797;-0.401284; 1.154686;, + 3.214797;-0.401284; 0.754686;, + 3.414797;-0.401284; 1.154686;, + 3.414797;-0.401284; 0.754686;, + 3.214797;-0.401284; 0.754686;, + 3.214797;-0.401284; 1.154686;, + 4.988673; 0.400000; 0.015076;, + 4.988673;-0.400000; 0.015076;, + 4.388673;-0.400000; 0.015076;, + 4.388673; 0.400000; 0.015076;, + 4.988673; 0.400000; 0.815076;, + 4.388673; 0.400000; 0.815076;, + 4.388673;-0.400000; 0.815076;, + 4.988673;-0.400000; 0.815076;, + 4.988673; 0.400000; 0.015076;, + 4.988673; 0.400000; 0.815076;, + 4.988673;-0.400000; 0.815076;, + 4.988673;-0.400000; 0.015076;, + 4.988673;-0.400000; 0.015076;, + 4.988673;-0.400000; 0.815076;, + 4.388673;-0.400000; 0.815076;, + 4.388673;-0.400000; 0.015076;, + 4.388673;-0.400000; 0.015076;, + 4.388673;-0.400000; 0.815076;, + 4.388673; 0.400000; 0.815076;, + 4.388673; 0.400000; 0.015076;, + 4.988673; 0.400000; 0.815076;, + 4.988673; 0.400000; 0.015076;, + 4.388673; 0.400000; 0.015076;, + 4.388673; 0.400000; 0.815076;, + 4.459678; 0.600000; 0.015076;, + 4.459678;-0.600000; 0.015076;, + 3.859678;-0.600000; 0.015076;, + 3.859678; 0.600000; 0.015076;, + 4.459678; 0.600000; 0.815076;, + 3.859678; 0.600000; 0.815076;, + 3.859678;-0.600000; 0.815076;, + 4.459678;-0.600000; 0.815076;, + 4.459678; 0.600000; 0.015076;, + 4.459678; 0.600000; 0.815076;, + 4.459678;-0.600000; 0.815076;, + 4.459678;-0.600000; 0.015076;, + 4.459678;-0.600000; 0.015076;, + 4.459678;-0.600000; 0.815076;, + 3.859678;-0.600000; 0.815076;, + 3.859678;-0.600000; 0.015076;, + 3.859678;-0.600000; 0.015076;, + 3.859678;-0.600000; 0.815076;, + 3.859678; 0.600000; 0.815076;, + 3.859678; 0.600000; 0.015076;, + 4.459678; 0.600000; 0.815076;, + 4.459678; 0.600000; 0.015076;, + 3.859678; 0.600000; 0.015076;, + 3.859678; 0.600000; 0.815076;, + 3.859514; 0.800000; 0.015076;, + 3.859514;-0.800000; 0.015076;, + 3.259514;-0.800000; 0.015076;, + 3.259514; 0.800000; 0.015076;, + 3.859514; 0.800000; 0.815076;, + 3.259514; 0.800000; 0.815076;, + 3.259514;-0.800000; 0.815076;, + 3.859514;-0.800000; 0.815076;, + 3.859514; 0.800000; 0.015076;, + 3.859514; 0.800000; 0.815076;, + 3.859514;-0.800000; 0.815076;, + 3.859514;-0.800000; 0.015076;, + 3.859514;-0.800000; 0.015076;, + 3.859514;-0.800000; 0.815076;, + 3.259514;-0.800000; 0.815076;, + 3.259514;-0.800000; 0.015076;, + 3.259514;-0.800000; 0.015076;, + 3.259514;-0.800000; 0.815076;, + 3.259514; 0.800000; 0.815076;, + 3.259514; 0.800000; 0.015076;, + 3.859514; 0.800000; 0.815076;, + 3.859514; 0.800000; 0.015076;, + 3.259514; 0.800000; 0.015076;, + 3.259514; 0.800000; 0.815076;, + 5.053736; 0.400000;-0.981890;, + 5.053736;-0.400000;-0.981890;, + 4.453735;-0.400000;-0.981890;, + 4.453736; 0.400000;-0.981890;, + 5.053736; 0.400000;-0.581890;, + 4.453735; 0.400000;-0.581890;, + 4.453735;-0.400000;-0.581890;, + 5.053735;-0.400000;-0.581890;, + 5.053736; 0.400000;-0.981890;, + 5.053736; 0.400000;-0.581890;, + 5.053735;-0.400000;-0.581890;, + 5.053736;-0.400000;-0.981890;, + 5.053736;-0.400000;-0.981890;, + 5.053735;-0.400000;-0.581890;, + 4.453735;-0.400000;-0.581890;, + 4.453735;-0.400000;-0.981890;, + 4.453735;-0.400000;-0.981890;, + 4.453735;-0.400000;-0.581890;, + 4.453735; 0.400000;-0.581890;, + 4.453736; 0.400000;-0.981890;, + 5.053736; 0.400000;-0.581890;, + 5.053736; 0.400000;-0.981890;, + 4.453736; 0.400000;-0.981890;, + 4.453735; 0.400000;-0.581890;, + 4.468947; 0.600000;-0.981890;, + 4.468947;-0.600000;-0.981890;, + 3.868947;-0.600000;-0.981890;, + 3.868947; 0.600000;-0.981890;, + 4.468947; 0.600000;-0.581890;, + 3.868947; 0.600000;-0.581890;, + 3.868947;-0.600000;-0.581890;, + 4.468946;-0.600000;-0.581890;, + 4.468947; 0.600000;-0.981890;, + 4.468947; 0.600000;-0.581890;, + 4.468946;-0.600000;-0.581890;, + 4.468947;-0.600000;-0.981890;, + 4.468947;-0.600000;-0.981890;, + 4.468946;-0.600000;-0.581890;, + 3.868947;-0.600000;-0.581890;, + 3.868947;-0.600000;-0.981890;, + 3.868947;-0.600000;-0.981890;, + 3.868947;-0.600000;-0.581890;, + 3.868947; 0.600000;-0.581890;, + 3.868947; 0.600000;-0.981890;, + 4.468947; 0.600000;-0.581890;, + 4.468947; 0.600000;-0.981890;, + 3.868947; 0.600000;-0.981890;, + 3.868947; 0.600000;-0.581890;, + 3.859514; 0.800000;-0.981890;, + 3.859514;-0.800000;-0.981890;, + 3.259514;-0.800000;-0.981890;, + 3.259514; 0.800000;-0.981890;, + 3.859514; 0.800000;-0.581890;, + 3.259514; 0.800000;-0.581890;, + 3.259514;-0.800000;-0.581890;, + 3.859514;-0.800000;-0.581890;, + 3.859514; 0.800000;-0.981890;, + 3.859514; 0.800000;-0.581890;, + 3.859514;-0.800000;-0.581890;, + 3.859514;-0.800000;-0.981890;, + 3.859514;-0.800000;-0.981890;, + 3.859514;-0.800000;-0.581890;, + 3.259514;-0.800000;-0.581890;, + 3.259514;-0.800000;-0.981890;, + 3.259514;-0.800000;-0.981890;, + 3.259514;-0.800000;-0.581890;, + 3.259514; 0.800000;-0.581890;, + 3.259514; 0.800000;-0.981890;, + 3.859514; 0.800000;-0.581890;, + 3.859514; 0.800000;-0.981890;, + 3.259514; 0.800000;-0.981890;, + 3.259514; 0.800000;-0.581890;, + -4.472631; 0.400000;-0.600000;, + -4.472631;-0.400000;-0.600000;, + -6.472631;-0.400000;-0.600000;, + -6.472630; 0.400000;-0.600000;, + -4.472630; 0.400000; 0.600000;, + -6.472631; 0.400000; 0.600000;, + -6.472631;-0.400000; 0.600000;, + -4.472631;-0.400000; 0.600000;, + -4.472631; 0.400000;-0.600000;, + -4.472630; 0.400000; 0.600000;, + -4.472631;-0.400000; 0.600000;, + -4.472631;-0.400000;-0.600000;, + -4.472631;-0.400000;-0.600000;, + -4.472631;-0.400000; 0.600000;, + -6.472631;-0.400000; 0.600000;, + -6.472631;-0.400000;-0.600000;, + -6.472631;-0.400000;-0.600000;, + -6.472631;-0.400000; 0.600000;, + -6.472631; 0.400000; 0.600000;, + -6.472630; 0.400000;-0.600000;, + -4.472630; 0.400000; 0.600000;, + -4.472631; 0.400000;-0.600000;, + -6.472630; 0.400000;-0.600000;, + -6.472631; 0.400000; 0.600000;, + 3.281014; 0.900000;-1.000000;, + 3.281014;-0.900000;-1.000000;, + 2.681014;-0.900000;-1.000000;, + 2.681014; 0.900000;-1.000000;, + 3.281014; 0.899999; 1.000000;, + 2.681014; 0.900000; 1.000000;, + 2.681014;-0.900000; 1.000000;, + 3.281014;-0.900001; 1.000000;, + 3.281014; 0.900000;-1.000000;, + 3.281014; 0.899999; 1.000000;, + 3.281014;-0.900001; 1.000000;, + 3.281014;-0.900000;-1.000000;, + 3.281014;-0.900000;-1.000000;, + 3.281014;-0.900001; 1.000000;, + 2.681014;-0.900000; 1.000000;, + 2.681014;-0.900000;-1.000000;, + 2.681014;-0.900000;-1.000000;, + 2.681014;-0.900000; 1.000000;, + 2.681014; 0.900000; 1.000000;, + 2.681014; 0.900000;-1.000000;, + 3.281014; 0.899999; 1.000000;, + 3.281014; 0.900000;-1.000000;, + 2.681014; 0.900000;-1.000000;, + 2.681014; 0.900000; 1.000000;, + 2.698214; 0.800000;-0.900000;, + 2.698214;-0.800000;-0.900000;, + 0.698214;-0.800000;-0.900000;, + 0.698215; 0.800000;-0.900000;, + 2.698215; 0.800000; 0.900000;, + 0.698214; 0.800000; 0.900000;, + 0.698214;-0.800000; 0.900000;, + 2.698214;-0.800000; 0.900000;, + 2.698214; 0.800000;-0.900000;, + 2.698215; 0.800000; 0.900000;, + 2.698214;-0.800000; 0.900000;, + 2.698214;-0.800000;-0.900000;, + 2.698214;-0.800000;-0.900000;, + 2.698214;-0.800000; 0.900000;, + 0.698214;-0.800000; 0.900000;, + 0.698214;-0.800000;-0.900000;, + 0.698214;-0.800000;-0.900000;, + 0.698214;-0.800000; 0.900000;, + 0.698214; 0.800000; 0.900000;, + 0.698215; 0.800000;-0.900000;, + 2.698215; 0.800000; 0.900000;, + 2.698214; 0.800000;-0.900000;, + 0.698215; 0.800000;-0.900000;, + 0.698214; 0.800000; 0.900000;, + -2.464938; 0.600000;-0.700000;, + -2.464938;-0.600000;-0.700000;, + -4.464938;-0.600000;-0.700000;, + -4.464937; 0.600000;-0.700000;, + -2.464937; 0.600000; 0.700000;, + -4.464938; 0.600000; 0.700000;, + -4.464938;-0.600000; 0.700000;, + -2.464938;-0.600000; 0.700000;, + -2.464938; 0.600000;-0.700000;, + -2.464937; 0.600000; 0.700000;, + -2.464938;-0.600000; 0.700000;, + -2.464938;-0.600000;-0.700000;, + -2.464938;-0.600000;-0.700000;, + -2.464938;-0.600000; 0.700000;, + -4.464938;-0.600000; 0.700000;, + -4.464938;-0.600000;-0.700000;, + -4.464938;-0.600000;-0.700000;, + -4.464938;-0.600000; 0.700000;, + -4.464938; 0.600000; 0.700000;, + -4.464937; 0.600000;-0.700000;, + -2.464937; 0.600000; 0.700000;, + -2.464938; 0.600000;-0.700000;, + -4.464937; 0.600000;-0.700000;, + -4.464938; 0.600000; 0.700000;, + -0.644661; 0.800000;-0.900000;, + -0.644661;-0.800000;-0.900000;, + -2.644661;-0.800000;-0.900000;, + -2.644660; 0.800000;-0.900000;, + -0.644660; 0.800000; 0.900000;, + -2.644661; 0.800000; 0.900000;, + -2.644661;-0.800000; 0.900000;, + -0.644662;-0.800000; 0.900000;, + -0.644661; 0.800000;-0.900000;, + -0.644660; 0.800000; 0.900000;, + -0.644662;-0.800000; 0.900000;, + -0.644661;-0.800000;-0.900000;, + -0.644661;-0.800000;-0.900000;, + -0.644662;-0.800000; 0.900000;, + -2.644661;-0.800000; 0.900000;, + -2.644661;-0.800000;-0.900000;, + -2.644661;-0.800000;-0.900000;, + -2.644661;-0.800000; 0.900000;, + -2.644661; 0.800000; 0.900000;, + -2.644660; 0.800000;-0.900000;, + -0.644660; 0.800000; 0.900000;, + -0.644661; 0.800000;-0.900000;, + -2.644660; 0.800000;-0.900000;, + -2.644661; 0.800000; 0.900000;, + 1.000000; 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;; + 132; + 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;, + 4;195,194,193,192;, + 4;199,198,197,196;, + 4;203,202,201,200;, + 4;207,206,205,204;, + 4;211,210,209,208;, + 4;215,214,213,212;, + 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;, + 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;, + 4;387,386,385,384;, + 4;391,390,389,388;, + 4;395,394,393,392;, + 4;399,398,397,396;, + 4;403,402,401,400;, + 4;407,406,405,404;, + 4;411,410,409,408;, + 4;415,414,413,412;, + 4;419,418,417,416;, + 4;423,422,421,420;, + 4;427,426,425,424;, + 4;431,430,429,428;, + 4;435,434,433,432;, + 4;439,438,437,436;, + 4;443,442,441,440;, + 4;447,446,445,444;, + 4;451,450,449,448;, + 4;455,454,453,452;, + 4;459,458,457,456;, + 4;463,462,461,460;, + 4;467,466,465,464;, + 4;471,470,469,468;, + 4;475,474,473,472;, + 4;479,478,477,476;, + 4;483,482,481,480;, + 4;487,486,485,484;, + 4;491,490,489,488;, + 4;495,494,493,492;, + 4;499,498,497,496;, + 4;503,502,501,500;, + 4;507,506,505,504;, + 4;511,510,509,508;, + 4;515,514,513,512;, + 4;519,518,517,516;, + 4;523,522,521,520;, + 4;527,526,525,524;; + MeshNormals { // Cube normals + 132; + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000001;-0.000000;, + -0.000000;-1.000000; 0.000000;, + -1.000000; 0.000001;-0.000000;, + 0.000000; 1.000000; 0.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;, + -1.000000; 0.000001;-0.000000;, + 0.000000; 1.000000; 0.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;, + -1.000000; 0.000001;-0.000000;, + 0.000000; 1.000000; 0.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;, + -1.000000; 0.000001;-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.000001;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000001; 1.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000;-0.000000;, + -0.000001;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000001; 1.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000;-0.000000;, + -0.000001;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000001; 1.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000;-0.000000;, + -0.000001;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000001; 1.000000; 0.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;, + -1.000000; 0.000001;-0.000000;, + 0.000000; 1.000000;-0.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;, + -1.000000; 0.000001;-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;, + 1.000000;-0.000000; 0.000000;, + -0.000001;-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.000001;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000001; 1.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000; 0.000001;, + -0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000001;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000; 0.000001;, + -0.000001;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000001;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000000;-0.000000;, + -0.000001;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000001; 1.000000; 0.000001;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 1.000000;-0.000001;-0.000000;, + -0.000000;-1.000000;-0.000000;, + -1.000000; 0.000001;-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.000001;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000001; 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;, + 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;, + 1.000000;-0.000000; 0.000000;, + -0.000000;-1.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;; + 132; + 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;; + } // End of Cube normals + MeshTextureCoords { // Cube UV coordinates + 528; + 0.955882; 0.882353;, + 0.926471; 0.882353;, + 0.926471; 1.000000;, + 0.955882; 1.000000;, + 0.941176; 0.735294;, + 0.941177; 0.852941;, + 0.970588; 0.852941;, + 0.970588; 0.735294;, + 0.676471; 0.088235;, + 0.676471; 0.029412;, + 0.647059; 0.029412;, + 0.647059; 0.088235;, + 0.779412; 1.000000;, + 0.838235; 1.000000;, + 0.838235; 0.882353;, + 0.779412; 0.882353;, + 0.250000; 0.058824;, + 0.250000; 0.000000;, + 0.220588; 0.000000;, + 0.220588; 0.058824;, + 0.794118; 0.411765;, + 0.852941; 0.411765;, + 0.852941; 0.294118;, + 0.794118; 0.294118;, + 0.941176; 0.735294;, + 0.911765; 0.735294;, + 0.911765; 0.852941;, + 0.941176; 0.852941;, + 0.926471; 0.235294;, + 0.926471; 0.117647;, + 0.897059; 0.117647;, + 0.897059; 0.235294;, + 1.000000; 0.852941;, + 1.000000; 0.794118;, + 0.970588; 0.794118;, + 0.970588; 0.852941;, + 0.264706; 0.264706;, + 0.323529; 0.264706;, + 0.323529; 0.147059;, + 0.264706; 0.147059;, + 0.955882; 0.058824;, + 0.955882; 0.117647;, + 0.985294; 0.117647;, + 0.985294; 0.058824;, + 0.205882; 0.264706;, + 0.264706; 0.264706;, + 0.264706; 0.147059;, + 0.205882; 0.147059;, + 0.941177; 0.558823;, + 0.970588; 0.558823;, + 0.970588; 0.441176;, + 0.941177; 0.441176;, + 0.485294; 0.147059;, + 0.485294; 0.029412;, + 0.455882; 0.029412;, + 0.455882; 0.147059;, + 0.220588; 0.058824;, + 0.220588; 0.000000;, + 0.191177; 0.000000;, + 0.191177; 0.058824;, + 0.147059; 0.147059;, + 0.088235; 0.147059;, + 0.088235; 0.264706;, + 0.147059; 0.264706;, + 0.955882; 0.176471;, + 0.955882; 0.235294;, + 0.985294; 0.235294;, + 0.985294; 0.176471;, + 0.147059; 0.264706;, + 0.205882; 0.264706;, + 0.205882; 0.147059;, + 0.147059; 0.147059;, + 0.955882; 0.117647;, + 0.926471; 0.117647;, + 0.926471; 0.235294;, + 0.955882; 0.235294;, + 0.941177; 0.588235;, + 0.941177; 0.705882;, + 0.970588; 0.705882;, + 0.970588; 0.588235;, + 0.191177; 0.058824;, + 0.191177; 0.000000;, + 0.161765; 0.000000;, + 0.161765; 0.058823;, + 0.470588; 0.147059;, + 0.411765; 0.147059;, + 0.411765; 0.264706;, + 0.470588; 0.264706;, + 0.161765; 0.058824;, + 0.161765; 0.000000;, + 0.132353; 0.000000;, + 0.132353; 0.058824;, + 0.323529; 0.264706;, + 0.382353; 0.264706;, + 0.382353; 0.147059;, + 0.323529; 0.147059;, + 0.897059; 0.705882;, + 0.897059; 0.588235;, + 0.852941; 0.588235;, + 0.852941; 0.705882;, + 0.852941; 0.470588;, + 0.897059; 0.470588;, + 0.897059; 0.352941;, + 0.852941; 0.352941;, + 0.676471; 0.852941;, + 0.764706; 0.852941;, + 0.764706; 0.735294;, + 0.676471; 0.735294;, + 0.308824; 0.058824;, + 0.308824; 0.147059;, + 0.352941; 0.147059;, + 0.352941; 0.058824;, + 0.794118; 0.294118;, + 0.705882; 0.294118;, + 0.705882; 0.411765;, + 0.794118; 0.411765;, + 0.044118; 0.161765;, + 0.044118; 0.073529;, + 0.000000; 0.073529;, + 0.000000; 0.161765;, + 0.941177; 0.470588;, + 0.941177; 0.352941;, + 0.897059; 0.352941;, + 0.897059; 0.470588;, + 0.882353; 0.882353;, + 0.838235; 0.882353;, + 0.838235; 1.000000;, + 0.882353; 1.000000;, + 0.808823; 0.441176;, + 0.720588; 0.441176;, + 0.720588; 0.558824;, + 0.808823; 0.558823;, + 0.411765; 0.058824;, + 0.411765; 0.147059;, + 0.455882; 0.147059;, + 0.455882; 0.058824;, + 0.779412; 0.882353;, + 0.691176; 0.882353;, + 0.691176; 1.000000;, + 0.779412; 1.000000;, + 0.823529; 0.176471;, + 0.823529; 0.088235;, + 0.779412; 0.088235;, + 0.779412; 0.176471;, + 0.941176; 0.705882;, + 0.941177; 0.588235;, + 0.897059; 0.588235;, + 0.897059; 0.705882;, + 0.852941; 0.352941;, + 0.897059; 0.352941;, + 0.897059; 0.235294;, + 0.852941; 0.235294;, + 0.750000; 0.588235;, + 0.661765; 0.588235;, + 0.661765; 0.705882;, + 0.750000; 0.705882;, + 0.397059; 0.147059;, + 0.397059; 0.058824;, + 0.352941; 0.058824;, + 0.352941; 0.147059;, + 0.705882; 0.294118;, + 0.794118; 0.294118;, + 0.794118; 0.176471;, + 0.705882; 0.176471;, + 0.220588; 0.058824;, + 0.220588; 0.147059;, + 0.264706; 0.147059;, + 0.264706; 0.058824;, + 0.897059; 0.588235;, + 0.897059; 0.470588;, + 0.852941; 0.470588;, + 0.852941; 0.588235;, + 0.882353; 1.000000;, + 0.926471; 1.000000;, + 0.926471; 0.882353;, + 0.882353; 0.882353;, + 0.705882; 0.294118;, + 0.617647; 0.294118;, + 0.617647; 0.411765;, + 0.705882; 0.411765;, + 0.941177; 0.558823;, + 0.941177; 0.470588;, + 0.897059; 0.470588;, + 0.897059; 0.558823;, + 0.705882; 0.176471;, + 0.617647; 0.176471;, + 0.617647; 0.294118;, + 0.705882; 0.294118;, + 0.264706; 0.058824;, + 0.264706; 0.147059;, + 0.308824; 0.147059;, + 0.308824; 0.058824;, + 0.544118; 0.558824;, + 0.544118; 0.573529;, + 0.558824; 0.573529;, + 0.558824; 0.558824;, + 0.588235; 0.867647;, + 0.588235; 0.852941;, + 0.573529; 0.852941;, + 0.573529; 0.867647;, + 0.617647; 0.426471;, + 0.617647; 0.397059;, + 0.602941; 0.397059;, + 0.602941; 0.426471;, + 0.485294; 0.411765;, + 0.485294; 0.382353;, + 0.470588; 0.382353;, + 0.470588; 0.411765;, + 0.617647; 0.397059;, + 0.617647; 0.367647;, + 0.602941; 0.367647;, + 0.602941; 0.397059;, + 0.147059; 0.558824;, + 0.147059; 0.529412;, + 0.132353; 0.529412;, + 0.132353; 0.558824;, + 0.573529; 0.705882;, + 0.573529; 0.720588;, + 0.588235; 0.720588;, + 0.588235; 0.705882;, + 0.558824; 0.720588;, + 0.573529; 0.720588;, + 0.573529; 0.705882;, + 0.558824; 0.705882;, + 0.147059; 0.441177;, + 0.147059; 0.411765;, + 0.132353; 0.411765;, + 0.132353; 0.441177;, + 0.147059; 0.470588;, + 0.147059; 0.441177;, + 0.132353; 0.441177;, + 0.132353; 0.470588;, + 0.132353; 0.500000;, + 0.132353; 0.529412;, + 0.147059; 0.529412;, + 0.147059; 0.500000;, + 0.147059; 0.500000;, + 0.147059; 0.470588;, + 0.132353; 0.470588;, + 0.132353; 0.500000;, + 0.764706; 0.088235;, + 0.764706; 0.029412;, + 0.720588; 0.029412;, + 0.720588; 0.088235;, + 0.602941; 0.029412;, + 0.558823; 0.029412;, + 0.558823; 0.088235;, + 0.602941; 0.088235;, + 0.911765; 0.117647;, + 0.911765; 0.058824;, + 0.852941; 0.058824;, + 0.852941; 0.117647;, + 0.044118; 0.014706;, + 0.044118; 0.073529;, + 0.088235; 0.073529;, + 0.088235; 0.014706;, + 0.558823; 0.029412;, + 0.500000; 0.029412;, + 0.500000; 0.088235;, + 0.558823; 0.088235;, + 0.647059; 0.088235;, + 0.647059; 0.029412;, + 0.602941; 0.029412;, + 0.602941; 0.088235;, + 0.176471; 0.147059;, + 0.176471; 0.058824;, + 0.132353; 0.058824;, + 0.132353; 0.147059;, + 0.088235; 0.147059;, + 0.132353; 0.147059;, + 0.132353; 0.058824;, + 0.088235; 0.058824;, + 0.500000; 0.176471;, + 0.558823; 0.176471;, + 0.558823; 0.088235;, + 0.500000; 0.088235;, + 0.955882; 0.941176;, + 0.955882; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.941176;, + 0.676471; 0.088235;, + 0.617647; 0.088235;, + 0.617647; 0.176471;, + 0.676471; 0.176471;, + 0.955882; 0.117647;, + 0.955882; 0.058824;, + 0.911765; 0.058824;, + 0.911765; 0.117647;, + 0.941176; 0.352941;, + 0.941176; 0.235294;, + 0.897059; 0.235294;, + 0.897059; 0.352941;, + 0.911765; 0.735294;, + 0.867647; 0.735294;, + 0.867647; 0.852941;, + 0.911765; 0.852941;, + 0.823529; 0.735294;, + 0.764706; 0.735294;, + 0.764706; 0.852941;, + 0.823529; 0.852941;, + 0.955882; 0.882353;, + 0.955882; 0.941176;, + 1.000000; 0.941176;, + 1.000000; 0.882353;, + 0.852941; 0.176471;, + 0.794118; 0.176471;, + 0.794118; 0.294118;, + 0.852941; 0.294118;, + 0.132353; 0.058824;, + 0.132353; 0.000000;, + 0.088235; 0.000000;, + 0.088235; 0.058824;, + 0.808824; 0.088235;, + 0.808824; 0.029412;, + 0.764706; 0.029412;, + 0.764706; 0.088235;, + 0.044118; 0.014706;, + 0.000000; 0.014706;, + 0.000000; 0.073529;, + 0.044118; 0.073529;, + 0.985294; 0.117647;, + 0.955882; 0.117647;, + 0.955882; 0.176471;, + 0.985294; 0.176471;, + 0.308824; 0.014706;, + 0.279412; 0.014706;, + 0.279412; 0.058824;, + 0.308824; 0.058824;, + 1.000000; 0.735294;, + 0.970588; 0.735294;, + 0.970588; 0.794118;, + 1.000000; 0.794118;, + 0.250000; 0.058824;, + 0.279412; 0.058824;, + 0.279412; 0.014706;, + 0.250000; 0.014706;, + 0.220588; 0.147059;, + 0.220588; 0.058824;, + 0.176471; 0.058824;, + 0.176471; 0.147059;, + 0.044118; 0.161765;, + 0.088235; 0.161765;, + 0.088235; 0.073529;, + 0.044118; 0.073529;, + 0.617647; 0.191176;, + 0.588235; 0.191176;, + 0.588235; 0.279412;, + 0.617647; 0.279412;, + 0.441177; 0.014706;, + 0.411765; 0.014706;, + 0.411765; 0.058824;, + 0.441176; 0.058824;, + 0.970588; 0.235294;, + 0.941177; 0.235294;, + 0.941177; 0.323529;, + 0.970588; 0.323529;, + 0.367647; 0.058824;, + 0.397059; 0.058824;, + 0.397059; 0.014706;, + 0.367647; 0.014706;, + 0.720588; 0.176471;, + 0.720588; 0.058824;, + 0.676471; 0.058824;, + 0.676471; 0.176471;, + 0.897059; 0.117647;, + 0.852941; 0.117647;, + 0.852941; 0.235294;, + 0.897059; 0.235294;, + 0.852941; 0.058824;, + 0.823529; 0.058824;, + 0.823529; 0.176471;, + 0.852941; 0.176471;, + 0.338235; 0.014706;, + 0.308824; 0.014706;, + 0.308824; 0.058824;, + 0.338235; 0.058824;, + 0.970588; 0.323529;, + 0.941177; 0.323529;, + 0.941177; 0.441176;, + 0.970588; 0.441176;, + 0.338235; 0.058824;, + 0.367647; 0.058824;, + 0.367647; 0.014706;, + 0.338235; 0.014706;, + 0.750000; 0.705882;, + 0.808824; 0.705882;, + 0.808824; 0.558824;, + 0.750000; 0.558824;, + 0.470588; 0.411765;, + 0.470588; 0.264706;, + 0.411765; 0.264706;, + 0.411765; 0.411765;, + 0.617647; 0.176471;, + 0.617647; 0.088235;, + 0.558823; 0.088235;, + 0.558823; 0.176471;, + 0.323529; 0.411765;, + 0.411765; 0.411765;, + 0.411765; 0.264706;, + 0.323529; 0.264706;, + 0.720588; 0.088235;, + 0.720588; 0.176471;, + 0.779412; 0.176471;, + 0.779412; 0.088235;, + 0.147059; 0.411765;, + 0.235294; 0.411765;, + 0.235294; 0.264706;, + 0.147059; 0.264706;, + 0.867647; 0.852941;, + 0.867647; 0.720588;, + 0.823529; 0.720588;, + 0.823529; 0.852941;, + 0.852941; 0.426471;, + 0.808823; 0.426471;, + 0.808823; 0.558823;, + 0.852941; 0.558824;, + 0.294118; 0.705882;, + 0.294118; 0.852941;, + 0.426471; 0.852941;, + 0.426471; 0.705882;, + 0.088235; 0.264706;, + 0.088235; 0.411765;, + 0.132353; 0.411765;, + 0.132353; 0.264706;, + 0.132353; 0.558824;, + 0.132353; 0.411765;, + 0.000000; 0.411765;, + 0.000000; 0.558824;, + 0.808824; 0.558824;, + 0.808824; 0.705882;, + 0.852941; 0.705882;, + 0.852941; 0.558824;, + 0.544118; 0.558824;, + 0.426471; 0.558824;, + 0.426471; 0.705882;, + 0.544118; 0.705882;, + 0.382353; 0.558824;, + 0.382353; 0.411765;, + 0.264706; 0.411765;, + 0.264706; 0.558823;, + 0.500000; 0.426471;, + 0.500000; 0.558823;, + 0.617647; 0.558824;, + 0.617647; 0.426471;, + 0.147059; 0.705882;, + 0.279412; 0.705882;, + 0.279412; 0.558824;, + 0.147059; 0.558824;, + 0.573529; 0.867647;, + 0.573529; 1.000000;, + 0.691176; 1.000000;, + 0.691176; 0.867647;, + 0.441176; 1.000000;, + 0.573529; 1.000000;, + 0.573529; 0.852941;, + 0.441176; 0.852941;, + 0.323529; 0.264706;, + 0.235294; 0.264706;, + 0.235294; 0.411765;, + 0.323529; 0.411765;, + 0.088235; 0.411765;, + 0.088235; 0.264706;, + 0.000000; 0.264706;, + 0.000000; 0.411765;, + 0.588235; 0.279412;, + 0.588235; 0.176471;, + 0.500000; 0.176471;, + 0.500000; 0.279412;, + 0.720588; 0.411765;, + 0.617647; 0.411765;, + 0.617647; 0.558824;, + 0.720588; 0.558823;, + 0.088235; 0.264706;, + 0.088235; 0.161765;, + 0.000000; 0.161765;, + 0.000000; 0.264706;, + 0.500000; 0.426471;, + 0.602941; 0.426471;, + 0.602941; 0.279412;, + 0.500000; 0.279412;, + 0.382353; 0.558823;, + 0.500000; 0.558824;, + 0.500000; 0.411765;, + 0.382353; 0.411765;, + 0.264706; 0.558824;, + 0.264706; 0.411765;, + 0.147059; 0.411765;, + 0.147059; 0.558823;, + 0.661765; 0.705882;, + 0.661765; 0.573529;, + 0.544118; 0.573529;, + 0.544118; 0.705882;, + 0.294118; 0.705882;, + 0.426471; 0.705882;, + 0.426471; 0.558824;, + 0.294118; 0.558824;, + 0.676471; 0.852941;, + 0.676471; 0.720588;, + 0.558824; 0.720588;, + 0.558824; 0.852941;, + 0.426471; 0.852941;, + 0.558823; 0.852941;, + 0.558823; 0.705882;, + 0.426471; 0.705882;, + 0.000000; 0.705882;, + 0.147059; 0.705882;, + 0.147059; 0.558824;, + 0.000000; 0.558824;, + 0.294118; 1.000000;, + 0.294118; 0.852941;, + 0.147059; 0.852941;, + 0.147059; 1.000000;, + 0.147059; 0.852941;, + 0.000000; 0.852941;, + 0.000000; 1.000000;, + 0.147059; 1.000000;, + 0.147059; 0.705882;, + 0.147059; 0.852941;, + 0.294118; 0.852941;, + 0.294118; 0.705882;, + 0.441176; 0.852941;, + 0.294118; 0.852941;, + 0.294118; 1.000000;, + 0.441176; 1.000000;, + 0.000000; 0.852941;, + 0.147059; 0.852941;, + 0.147059; 0.705882;, + 0.000000; 0.705882;; + } // End of Cube UV coordinates + MeshMaterialList { // Cube 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 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; + 20; + } + SkinWeights { + "Armature_Bone_004"; + 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; + 0.515279, + 1.000000, + 1.000000, + 0.594508, + 0.514350, + 0.594299, + 1.000000, + 1.000000, + 0.515279, + 0.514350, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.594299, + 0.594508, + 0.514350, + 0.515279, + 0.594508, + 0.594299; + 0.999844,-0.017669,-0.000397, 0.000000, + 0.017673, 0.999592, 0.022434, 0.000000, + 0.000000,-0.011219, 0.499874, 0.000000, + 1.960676,-0.004121, 0.055991, 1.000000;; + } // End of Armature_Bone_004 skin weights + SkinWeights { + "Armature_Bone_011"; + 132; + 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, + 432, + 433, + 436, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 452, + 453; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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.185070, + 0.028871, + 0.314115, + 0.102778, + 0.185070, + 0.314115, + 0.102778, + 0.028871, + 0.028871, + 0.102778, + 0.314115, + 0.185070; + -0.005935, 0.999767,-0.020790, 0.000000, + -0.999982,-0.005934, 0.000116, 0.000000, + -0.000003, 0.010395, 0.499892, 0.000000, + -0.007540,-2.731346,-0.148423, 1.000000;; + } // End of Armature_Bone_011 skin weights + SkinWeights { + "Armature_Bone_010"; + 36; + 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, + 436, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 452, + 453; + 0.063529, + 0.130233, + 0.121740, + 0.053836, + 0.179645, + 0.165108, + 0.389225, + 0.569477, + 0.063529, + 0.179645, + 0.569477, + 0.130233, + 0.130233, + 0.569477, + 0.389225, + 0.121740, + 0.121740, + 0.389225, + 0.165108, + 0.053836, + 0.179645, + 0.063529, + 0.053836, + 0.165108, + 0.185070, + 0.028871, + 0.314115, + 0.102778, + 0.185070, + 0.314115, + 0.102778, + 0.028871, + 0.028871, + 0.102778, + 0.314115, + 0.185070; + -0.007532, 0.982217,-0.187601, 0.000000, + -0.999972,-0.007398, 0.001413, 0.000000, + 0.000000, 0.093803, 0.491122, 0.000000, + -0.003186,-1.785546, 0.310196, 1.000000;; + } // End of Armature_Bone_010 skin weights + SkinWeights { + "Armature_Bone_001"; + 24; + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503; + 0.704273, + 0.205934, + 0.438470, + 0.488724, + 0.237325, + 0.444137, + 0.488366, + 0.712163, + 0.704273, + 0.237325, + 0.712163, + 0.205934, + 0.205934, + 0.712163, + 0.488366, + 0.438470, + 0.438470, + 0.488366, + 0.444137, + 0.488724, + 0.237325, + 0.704273, + 0.488724, + 0.444137; + 0.002214,-0.999946,-0.010181, 0.000000, + 0.999998, 0.002214, 0.000020, 0.000000, + 0.000001,-0.005091, 0.499974, 0.000000, + 0.036129,-1.057120, 0.036108, 1.000000;; + } // End of Armature_Bone_001 skin weights + SkinWeights { + "Armature_Bone_013"; + 36; + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 145, + 146, + 150, + 151, + 154, + 155, + 156, + 157, + 158, + 159, + 160, + 161; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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.407043, + 0.488466, + 0.482449, + 0.405100, + 0.405100, + 0.407043, + 0.407043, + 0.405100, + 0.482449, + 0.488466, + 0.488466, + 0.482449; + 0.001307, 0.999492,-0.031832, 0.000000, + -0.999995, 0.001395, 0.002747, 0.000000, + 0.001395, 0.015914, 0.499745, 0.000000, + -2.146757,-1.820385, 0.278402, 1.000000;; + } // End of Armature_Bone_013 skin weights + SkinWeights { + "Armature_Bone_012"; + 24; + 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, + 0.592957, + 0.511534, + 1.000000, + 1.000000, + 1.000000, + 0.517551, + 0.594900, + 1.000000, + 1.000000, + 0.594900, + 0.592957, + 0.592957, + 0.594900, + 0.517551, + 0.511534, + 0.511534, + 0.517551, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000; + 0.999960, 0.008947,-0.001029, 0.000000, + 0.009006,-0.993419, 0.114185, 0.000000, + -0.000000,-0.057095,-0.496730, 0.000000, + -1.811737,-0.029476, 0.033879, 1.000000;; + } // End of Armature_Bone_012 skin weights + SkinWeights { + "Armature_Bone_003"; + 39; + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 121, + 122, + 123, + 126, + 127, + 130, + 131, + 132, + 133, + 134, + 135, + 136, + 137, + 139, + 142; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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.523351, + 0.919042, + 0.025091, + 0.648951, + 0.506928, + 0.506928, + 0.523351, + 0.523351, + 0.506928, + 0.648951, + 0.919042, + 0.919042, + 0.648951, + 0.025091, + 0.025091; + 0.017835,-0.998964, 0.041867, 0.000000, + 0.999841, 0.017819,-0.000747, 0.000000, + -0.000000, 0.020937, 0.499561, 0.000000, + 2.210138,-1.971885, 0.291594, 1.000000;; + } // End of Armature_Bone_003 skin weights + SkinWeights { + "Armature_Bone_018"; + 48; + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527; + 0.183371, + 0.008462, + 0.069490, + 0.920881, + 0.024052, + 0.895846, + 0.052408, + 0.019956, + 0.183371, + 0.024052, + 0.019956, + 0.008462, + 0.008462, + 0.019956, + 0.052408, + 0.069490, + 0.069490, + 0.052408, + 0.895846, + 0.920881, + 0.024052, + 0.183371, + 0.920881, + 0.895846, + 0.565994, + 0.407453, + 0.162434, + 0.638058, + 0.598423, + 0.843441, + 0.367817, + 0.439882, + 0.565994, + 0.598423, + 0.439882, + 0.407453, + 0.407453, + 0.439882, + 0.367817, + 0.162434, + 0.162434, + 0.367817, + 0.843441, + 0.638058, + 0.598423, + 0.565994, + 0.638058, + 0.843441; + 0.700157,-0.713332, 0.030619, 0.000000, + 0.713989, 0.699513,-0.030026, 0.000000, + 0.000000, 0.021442, 0.499540, 0.000000, + -0.712815, 0.773466,-0.055982, 1.000000;; + } // End of Armature_Bone_018 skin weights + SkinWeights { + "Armature_Bone_007"; + 24; + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479; + 0.772875, + 0.217474, + 0.746141, + 0.941040, + 0.243012, + 0.803319, + 0.760078, + 0.724730, + 0.772875, + 0.243012, + 0.724730, + 0.217474, + 0.217474, + 0.724730, + 0.760078, + 0.746141, + 0.746141, + 0.760078, + 0.803319, + 0.941040, + 0.243012, + 0.772875, + 0.941040, + 0.803319; + 0.002108,-0.999951,-0.009695, 0.000000, + 0.999998, 0.002108, 0.000019, 0.000000, + 0.000001,-0.004848, 0.499977, 0.000000, + -0.010111,-2.697456, 0.037610, 1.000000;; + } // End of Armature_Bone_007 skin weights + SkinWeights { + "Armature_Bone_019"; + 45; + 432, + 433, + 434, + 435, + 437, + 438, + 439, + 440, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 453, + 454, + 455, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527; + 0.049362, + 0.114711, + 0.895848, + 0.078953, + 0.100157, + 0.947592, + 0.231366, + 0.049362, + 0.231366, + 0.114711, + 0.114711, + 0.231366, + 0.947592, + 0.895848, + 0.895848, + 0.947592, + 0.100157, + 0.078953, + 0.049362, + 0.078953, + 0.100157, + 0.434006, + 0.592547, + 0.837566, + 0.361942, + 0.401577, + 0.156559, + 0.632183, + 0.560118, + 0.434006, + 0.401577, + 0.560118, + 0.592547, + 0.592547, + 0.560118, + 0.632183, + 0.837566, + 0.837566, + 0.632183, + 0.156559, + 0.361942, + 0.401577, + 0.434006, + 0.361942, + 0.156559; + -0.654837,-0.755265,-0.027635, 0.000000, + 0.755770,-0.654399,-0.023945, 0.000000, + -0.000000,-0.018283, 0.499666, 0.000000, + 0.714775, 0.773663, 0.005532, 1.000000;; + } // End of Armature_Bone_019 skin weights + SkinWeights { + "Armature_Bone_002"; + 24; + 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, + 0.476649, + 0.080958, + 0.974909, + 1.000000, + 1.000000, + 0.351049, + 0.493072, + 1.000000, + 1.000000, + 0.493072, + 0.476649, + 0.476649, + 0.493072, + 0.351049, + 0.080958, + 0.080958, + 0.351049, + 1.000000, + 0.974909, + 1.000000, + 1.000000, + 0.974909, + 1.000000; + 0.999594,-0.028408, 0.002025, 0.000000, + -0.028480,-0.997068, 0.071029, 0.000000, + 0.000001,-0.035529,-0.498736, 0.000000, + 1.958720,-0.091371,-0.049699, 1.000000;; + } // End of Armature_Bone_002 skin weights + SkinWeights { + "Armature_Bone_008"; + 24; + 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; + -0.001414,-0.999954,-0.009448, 0.000000, + 0.999999,-0.001414,-0.000013, 0.000000, + -0.000000,-0.004724, 0.499978, 0.000000, + -0.025819,-4.459715, 0.038715, 1.000000;; + } // End of Armature_Bone_008 skin weights + SkinWeights { + "Armature_Bone"; + 24; + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503; + 0.295727, + 0.794066, + 0.561530, + 0.511276, + 0.762675, + 0.555863, + 0.511634, + 0.287837, + 0.295727, + 0.762675, + 0.287837, + 0.794066, + 0.794066, + 0.287837, + 0.511634, + 0.561530, + 0.561530, + 0.511634, + 0.555863, + 0.511276, + 0.762675, + 0.295727, + 0.511276, + 0.555863; + 0.033865, 0.999426, 0.000000, 0.000000, + 0.000001, 0.000000,-1.000000, 0.000000, + -0.499713, 0.016932,-0.000001, 0.000000, + -0.012895, 1.003413,-0.033789, 1.000000;; + } // End of Armature_Bone skin weights + SkinWeights { + "Armature_Bone_016"; + 45; + 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, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 447, + 448, + 450, + 451, + 452, + 453, + 454, + 455; + 0.936471, + 0.869767, + 0.878260, + 0.946164, + 0.820355, + 0.834892, + 0.610775, + 0.430523, + 0.936471, + 0.820355, + 0.430523, + 0.869767, + 0.869767, + 0.430523, + 0.610775, + 0.878260, + 0.878260, + 0.610775, + 0.834892, + 0.946164, + 0.820355, + 0.936471, + 0.946164, + 0.834892, + 0.397128, + 0.819084, + 0.034661, + 0.000166, + 0.347718, + 0.003997, + 0.543121, + 0.397128, + 0.347718, + 0.543121, + 0.819084, + 0.819084, + 0.543121, + 0.034661, + 0.034661, + 0.003997, + 0.000166, + 0.347718, + 0.397128, + 0.000166, + 0.003997; + 0.813733, 0.526526,-0.246189, 0.000000, + 0.264523, 0.041682, 0.963478, 0.000000, + 0.258779,-0.424568,-0.052680, 0.000000, + -2.319432,-1.260929, 0.715981, 1.000000;; + } // End of Armature_Bone_016 skin weights + SkinWeights { + "Armature_Bone_017"; + 72; + 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, + 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, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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.003080, 0.999957,-0.008852, 0.000000, + -0.999991, 0.003105, 0.002834, 0.000000, + 0.001431, 0.004421, 0.499979, 0.000000, + 0.000185,-3.131207, 0.480101, 1.000000;; + } // End of Armature_Bone_017 skin weights + SkinWeights { + "Armature_Bone_014"; + 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; + 0.591772, + 1.000000, + 1.000000, + 0.511334, + 0.593405, + 0.514781, + 1.000000, + 1.000000, + 0.591772, + 0.593405, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 0.514781, + 0.511334, + 0.593405, + 0.591772, + 0.511334, + 0.514781; + 1.000000, 0.000608, 0.000059, 0.000000, + -0.000611, 0.995390, 0.095910, 0.000000, + 0.000000,-0.047955, 0.497695, 0.000000, + -1.811972, 0.018560,-0.028643, 1.000000;; + } // End of Armature_Bone_014 skin weights + SkinWeights { + "Armature_Bone_009"; + 0; + 0.022319, 0.999702,-0.009911, 0.000000, + -0.999751, 0.022319,-0.000193, 0.000000, + 0.000014, 0.004956, 0.499976, 0.000000, + -0.057273,-1.051692,-0.012336, 1.000000;; + } // End of Armature_Bone_009 skin weights + SkinWeights { + "Armature_Bone_005"; + 36; + 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, + 99, + 100, + 101, + 104, + 105, + 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.484721, + 0.405492, + 0.485650, + 0.405701, + 0.484721, + 0.485650, + 0.405701, + 0.405492, + 0.485650, + 0.484721, + 0.405492, + 0.405701; + 0.005646,-0.999942,-0.009129, 0.000000, + 0.999984, 0.005646, 0.000052, 0.000000, + -0.000000,-0.004564, 0.499979, 0.000000, + -2.109985,-2.011293, 0.086043, 1.000000;; + } // End of Armature_Bone_005 skin weights + SkinWeights { + "Armature_Bone_015"; + 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, + 168, + 171, + 172, + 173, + 176, + 177, + 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, + 0.408228, + 0.488666, + 0.406595, + 0.485219, + 0.408228, + 0.406595, + 0.485219, + 0.488666, + 0.406595, + 0.408228, + 0.488666, + 0.485219; + -0.046316, 0.998869,-0.010746, 0.000000, + -0.998926,-0.046299, 0.001813, 0.000000, + 0.000657, 0.005409, 0.499970, 0.000000, + 2.245811,-1.709111, 0.195385, 1.000000;; + } // End of Armature_Bone_015 skin weights + SkinWeights { + "Armature_Bone_006"; + 24; + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463, + 464, + 465, + 466, + 467, + 468, + 469, + 470, + 471, + 472, + 473, + 474, + 475, + 476, + 477, + 478, + 479; + 0.227125, + 0.782526, + 0.253859, + 0.058960, + 0.756988, + 0.196681, + 0.239922, + 0.275270, + 0.227125, + 0.756988, + 0.275270, + 0.782526, + 0.782526, + 0.275270, + 0.239922, + 0.253859, + 0.253859, + 0.239922, + 0.196681, + 0.058960, + 0.756988, + 0.227125, + 0.058960, + 0.196681; + 0.064474,-0.997865,-0.010400, 0.000000, + 0.997919, 0.064470, 0.000672, 0.000000, + 0.000000,-0.005211, 0.499973, 0.000000, + 0.158118,-1.954770, 0.035700, 1.000000;; + } // End of Armature_Bone_006 skin weights + } // End of Cube mesh + } // End of Cube + } // End of Armature +} // End of Root +AnimationSet Global { + Animation { + {Armature} + AnimationKey { // Rotation + 0; + 250; + 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;;, + 91;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 92;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 93;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 94;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 95;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 96;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 97;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 98;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 99;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 100;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 101;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 102;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 103;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 104;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 105;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 106;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 107;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 108;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 109;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 110;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 111;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 112;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 113;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 114;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 115;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 116;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 117;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 118;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 119;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 120;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 121;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 122;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 123;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 124;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 125;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 126;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 127;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 128;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 129;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 130;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 131;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 132;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 133;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 134;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 135;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 136;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 137;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 138;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 139;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 140;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 141;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 142;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 143;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 144;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 145;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 146;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 147;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 148;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 149;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 150;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 151;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 152;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 153;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 154;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 155;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 156;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 157;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 158;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 159;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 160;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 161;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 162;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 163;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 164;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 165;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 166;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 167;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 168;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 169;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 170;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 171;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 172;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 173;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 174;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 175;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 176;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 177;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 178;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 179;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 180;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 181;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 182;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 183;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 184;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 185;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 186;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 187;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 188;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 189;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 190;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 191;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 192;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 193;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 194;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 195;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 196;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 197;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 198;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 199;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 200;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 201;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 202;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 203;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 204;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 205;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 206;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 207;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 208;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 209;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 210;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 211;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 212;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 213;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 214;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 215;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 216;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 217;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 218;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 219;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 220;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 221;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 222;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 223;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 224;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 225;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 226;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 227;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 228;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 229;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 230;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 231;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 232;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 233;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 234;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 235;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 236;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 237;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 238;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 239;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 240;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 241;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 242;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 243;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 244;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 245;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 246;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 247;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 248;4;-0.707107, 0.000000, 0.000000, 0.707107;;, + 249;4;-0.707107, 0.000000, 0.000000, 0.707107;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.157836,-0.069149, 2.264753;;, + 1;3;-0.157836,-0.069149, 2.264753;;, + 2;3;-0.157836,-0.069149, 2.264753;;, + 3;3;-0.157836,-0.069149, 2.264753;;, + 4;3;-0.157836,-0.069149, 2.264753;;, + 5;3;-0.157836,-0.069149, 2.264753;;, + 6;3;-0.157836,-0.069149, 2.264753;;, + 7;3;-0.157836,-0.069149, 2.264753;;, + 8;3;-0.157836,-0.069149, 2.264753;;, + 9;3;-0.157836,-0.069149, 2.264753;;, + 10;3;-0.157836,-0.069149, 2.264753;;, + 11;3;-0.157836,-0.069149, 2.264753;;, + 12;3;-0.157836,-0.069149, 2.264753;;, + 13;3;-0.157836,-0.069149, 2.264753;;, + 14;3;-0.157836,-0.069149, 2.264753;;, + 15;3;-0.157836,-0.069149, 2.264753;;, + 16;3;-0.157836,-0.069149, 2.264753;;, + 17;3;-0.157836,-0.069149, 2.264753;;, + 18;3;-0.157836,-0.069149, 2.264753;;, + 19;3;-0.157836,-0.069149, 2.264753;;, + 20;3;-0.157836,-0.069149, 2.264753;;, + 21;3;-0.157836,-0.069149, 2.264753;;, + 22;3;-0.157836,-0.069149, 2.264753;;, + 23;3;-0.157836,-0.069149, 2.264753;;, + 24;3;-0.157836,-0.069149, 2.264753;;, + 25;3;-0.157836,-0.069149, 2.264753;;, + 26;3;-0.157836,-0.069149, 2.264753;;, + 27;3;-0.157836,-0.069149, 2.264753;;, + 28;3;-0.157836,-0.069149, 2.264753;;, + 29;3;-0.157836,-0.069149, 2.264753;;, + 30;3;-0.157836,-0.069149, 2.264753;;, + 31;3;-0.157836,-0.069149, 2.264753;;, + 32;3;-0.157836,-0.069149, 2.264753;;, + 33;3;-0.157836,-0.069149, 2.264753;;, + 34;3;-0.157836,-0.069149, 2.264753;;, + 35;3;-0.157836,-0.069149, 2.264753;;, + 36;3;-0.157836,-0.069149, 2.264753;;, + 37;3;-0.157836,-0.069149, 2.264753;;, + 38;3;-0.157836,-0.069149, 2.264753;;, + 39;3;-0.157836,-0.069149, 2.264753;;, + 40;3;-0.157836,-0.069149, 2.264753;;, + 41;3;-0.157836,-0.069149, 2.264753;;, + 42;3;-0.157836,-0.069149, 2.264753;;, + 43;3;-0.157836,-0.069149, 2.264753;;, + 44;3;-0.157836,-0.069149, 2.264753;;, + 45;3;-0.157836,-0.069149, 2.264753;;, + 46;3;-0.157836,-0.069149, 2.264753;;, + 47;3;-0.157836,-0.069149, 2.264753;;, + 48;3;-0.157836,-0.069149, 2.264753;;, + 49;3;-0.157836,-0.069149, 2.264753;;, + 50;3;-0.157836,-0.069149, 2.264753;;, + 51;3;-0.157836,-0.069149, 2.264753;;, + 52;3;-0.157836,-0.069149, 2.264753;;, + 53;3;-0.157836,-0.069149, 2.264753;;, + 54;3;-0.157836,-0.069149, 2.264753;;, + 55;3;-0.157836,-0.069149, 2.264753;;, + 56;3;-0.157836,-0.069149, 2.264753;;, + 57;3;-0.157836,-0.069149, 2.264753;;, + 58;3;-0.157836,-0.069149, 2.264753;;, + 59;3;-0.157836,-0.069149, 2.264753;;, + 60;3;-0.157836,-0.069149, 2.264753;;, + 61;3;-0.157836,-0.069149, 2.264753;;, + 62;3;-0.157836,-0.069149, 2.264753;;, + 63;3;-0.157836,-0.069149, 2.264753;;, + 64;3;-0.157836,-0.069149, 2.264753;;, + 65;3;-0.157836,-0.069149, 2.264753;;, + 66;3;-0.157836,-0.069149, 2.264753;;, + 67;3;-0.157836,-0.069149, 2.264753;;, + 68;3;-0.157836,-0.069149, 2.264753;;, + 69;3;-0.157836,-0.069149, 2.264753;;, + 70;3;-0.157836,-0.069149, 2.264753;;, + 71;3;-0.157836,-0.069149, 2.264753;;, + 72;3;-0.157836,-0.069149, 2.264753;;, + 73;3;-0.157836,-0.069149, 2.264753;;, + 74;3;-0.157836,-0.069149, 2.264753;;, + 75;3;-0.157836,-0.069149, 2.264753;;, + 76;3;-0.157836,-0.069149, 2.264753;;, + 77;3;-0.157836,-0.069149, 2.264753;;, + 78;3;-0.157836,-0.069149, 2.264753;;, + 79;3;-0.157836,-0.069149, 2.264753;;, + 80;3;-0.157836,-0.069149, 2.264753;;, + 81;3;-0.157836,-0.069149, 2.264753;;, + 82;3;-0.157836,-0.069149, 2.264753;;, + 83;3;-0.157836,-0.069149, 2.264753;;, + 84;3;-0.157836,-0.069149, 2.264753;;, + 85;3;-0.157836,-0.069149, 2.264753;;, + 86;3;-0.157836,-0.069149, 2.264753;;, + 87;3;-0.157836,-0.069149, 2.264753;;, + 88;3;-0.157836,-0.069149, 2.264753;;, + 89;3;-0.157836,-0.069149, 2.264753;;, + 90;3;-0.157836,-0.069149, 2.264753;;, + 91;3;-0.157836,-0.069149, 2.264753;;, + 92;3;-0.157836,-0.069149, 2.264753;;, + 93;3;-0.157836,-0.069149, 2.264753;;, + 94;3;-0.157836,-0.069149, 2.264753;;, + 95;3;-0.157836,-0.069149, 2.264753;;, + 96;3;-0.157836,-0.069149, 2.264753;;, + 97;3;-0.157836,-0.069149, 2.264753;;, + 98;3;-0.157836,-0.069149, 2.264753;;, + 99;3;-0.157836,-0.069149, 2.264753;;, + 100;3;-0.157836,-0.069149, 2.264753;;, + 101;3;-0.157836,-0.069149, 2.264753;;, + 102;3;-0.157836,-0.069149, 2.264753;;, + 103;3;-0.157836,-0.069149, 2.264753;;, + 104;3;-0.157836,-0.069149, 2.264753;;, + 105;3;-0.157836,-0.069149, 2.264753;;, + 106;3;-0.157836,-0.069149, 2.264753;;, + 107;3;-0.157836,-0.069149, 2.264753;;, + 108;3;-0.157836,-0.069149, 2.264753;;, + 109;3;-0.157836,-0.069149, 2.264753;;, + 110;3;-0.157836,-0.069149, 2.264753;;, + 111;3;-0.157836,-0.069149, 2.264753;;, + 112;3;-0.157836,-0.069149, 2.264753;;, + 113;3;-0.157836,-0.069149, 2.264753;;, + 114;3;-0.157836,-0.069149, 2.264753;;, + 115;3;-0.157836,-0.069149, 2.264753;;, + 116;3;-0.157836,-0.069149, 2.264753;;, + 117;3;-0.157836,-0.069149, 2.264753;;, + 118;3;-0.157836,-0.069149, 2.264753;;, + 119;3;-0.157836,-0.069149, 2.264753;;, + 120;3;-0.157836,-0.069149, 2.264753;;, + 121;3;-0.157836,-0.069149, 2.264753;;, + 122;3;-0.157836,-0.069149, 2.264753;;, + 123;3;-0.157836,-0.069149, 2.264753;;, + 124;3;-0.157836,-0.069149, 2.264753;;, + 125;3;-0.157836,-0.069149, 2.264753;;, + 126;3;-0.157836,-0.069149, 2.264753;;, + 127;3;-0.157836,-0.069149, 2.264753;;, + 128;3;-0.157836,-0.069149, 2.264753;;, + 129;3;-0.157836,-0.069149, 2.264753;;, + 130;3;-0.157836,-0.069149, 2.264753;;, + 131;3;-0.157836,-0.069149, 2.264753;;, + 132;3;-0.157836,-0.069149, 2.264753;;, + 133;3;-0.157836,-0.069149, 2.264753;;, + 134;3;-0.157836,-0.069149, 2.264753;;, + 135;3;-0.157836,-0.069149, 2.264753;;, + 136;3;-0.157836,-0.069149, 2.264753;;, + 137;3;-0.157836,-0.069149, 2.264753;;, + 138;3;-0.157836,-0.069149, 2.264753;;, + 139;3;-0.157836,-0.069149, 2.264753;;, + 140;3;-0.157836,-0.069149, 2.264753;;, + 141;3;-0.157836,-0.069149, 2.264753;;, + 142;3;-0.157836,-0.069149, 2.264753;;, + 143;3;-0.157836,-0.069149, 2.264753;;, + 144;3;-0.157836,-0.069149, 2.264753;;, + 145;3;-0.157836,-0.069149, 2.264753;;, + 146;3;-0.157836,-0.069149, 2.264753;;, + 147;3;-0.157836,-0.069149, 2.264753;;, + 148;3;-0.157836,-0.069149, 2.264753;;, + 149;3;-0.157836,-0.069149, 2.264753;;, + 150;3;-0.157836,-0.069149, 2.264753;;, + 151;3;-0.157836,-0.069149, 2.264753;;, + 152;3;-0.157836,-0.069149, 2.264753;;, + 153;3;-0.157836,-0.069149, 2.264753;;, + 154;3;-0.157836,-0.069149, 2.264753;;, + 155;3;-0.157836,-0.069149, 2.264753;;, + 156;3;-0.157836,-0.069149, 2.264753;;, + 157;3;-0.157836,-0.069149, 2.264753;;, + 158;3;-0.157836,-0.069149, 2.264753;;, + 159;3;-0.157836,-0.069149, 2.264753;;, + 160;3;-0.157836,-0.069149, 2.264753;;, + 161;3;-0.157836,-0.069149, 2.264753;;, + 162;3;-0.157836,-0.069149, 2.264753;;, + 163;3;-0.157836,-0.069149, 2.264753;;, + 164;3;-0.157836,-0.069149, 2.264753;;, + 165;3;-0.157836,-0.069149, 2.264753;;, + 166;3;-0.157836,-0.069149, 2.264753;;, + 167;3;-0.157836,-0.069149, 2.264753;;, + 168;3;-0.157836,-0.069149, 2.264753;;, + 169;3;-0.157836,-0.069149, 2.264753;;, + 170;3;-0.157836,-0.069149, 2.264753;;, + 171;3;-0.157836,-0.069149, 2.264753;;, + 172;3;-0.157836,-0.069149, 2.264753;;, + 173;3;-0.157836,-0.069149, 2.264753;;, + 174;3;-0.157836,-0.069149, 2.264753;;, + 175;3;-0.157836,-0.069149, 2.264753;;, + 176;3;-0.157836,-0.069149, 2.264753;;, + 177;3;-0.157836,-0.069149, 2.264753;;, + 178;3;-0.157836,-0.069149, 2.264753;;, + 179;3;-0.157836,-0.069149, 2.264753;;, + 180;3;-0.157836,-0.069149, 2.264753;;, + 181;3;-0.157836,-0.069149, 2.264753;;, + 182;3;-0.157836,-0.069149, 2.264753;;, + 183;3;-0.157836,-0.069149, 2.264753;;, + 184;3;-0.157836,-0.069149, 2.264753;;, + 185;3;-0.157836,-0.069149, 2.264753;;, + 186;3;-0.157836,-0.069149, 2.264753;;, + 187;3;-0.157836,-0.069149, 2.264753;;, + 188;3;-0.157836,-0.069149, 2.264753;;, + 189;3;-0.157836,-0.069149, 2.264753;;, + 190;3;-0.157836,-0.069149, 2.264753;;, + 191;3;-0.157836,-0.069149, 2.264753;;, + 192;3;-0.157836,-0.069149, 2.264753;;, + 193;3;-0.157836,-0.069149, 2.264753;;, + 194;3;-0.157836,-0.069149, 2.264753;;, + 195;3;-0.157836,-0.069149, 2.264753;;, + 196;3;-0.157836,-0.069149, 2.264753;;, + 197;3;-0.157836,-0.069149, 2.264753;;, + 198;3;-0.157836,-0.069149, 2.264753;;, + 199;3;-0.157836,-0.069149, 2.264753;;, + 200;3;-0.157836,-0.069149, 2.264753;;, + 201;3;-0.157836,-0.069149, 2.264753;;, + 202;3;-0.157836,-0.069149, 2.264753;;, + 203;3;-0.157836,-0.069149, 2.264753;;, + 204;3;-0.157836,-0.069149, 2.264753;;, + 205;3;-0.157836,-0.069149, 2.264753;;, + 206;3;-0.157836,-0.069149, 2.264753;;, + 207;3;-0.157836,-0.069149, 2.264753;;, + 208;3;-0.157836,-0.069149, 2.264753;;, + 209;3;-0.157836,-0.069149, 2.264753;;, + 210;3;-0.157836,-0.069149, 2.264753;;, + 211;3;-0.157836,-0.069149, 2.264753;;, + 212;3;-0.157836,-0.069149, 2.264753;;, + 213;3;-0.157836,-0.069149, 2.264753;;, + 214;3;-0.157836,-0.069149, 2.264753;;, + 215;3;-0.157836,-0.069149, 2.264753;;, + 216;3;-0.157836,-0.069149, 2.264753;;, + 217;3;-0.157836,-0.069149, 2.264753;;, + 218;3;-0.157836,-0.069149, 2.264753;;, + 219;3;-0.157836,-0.069149, 2.264753;;, + 220;3;-0.157836,-0.069149, 2.264753;;, + 221;3;-0.157836,-0.069149, 2.264753;;, + 222;3;-0.157836,-0.069149, 2.264753;;, + 223;3;-0.157836,-0.069149, 2.264753;;, + 224;3;-0.157836,-0.069149, 2.264753;;, + 225;3;-0.157836,-0.069149, 2.264753;;, + 226;3;-0.157836,-0.069149, 2.264753;;, + 227;3;-0.157836,-0.069149, 2.264753;;, + 228;3;-0.157836,-0.069149, 2.264753;;, + 229;3;-0.157836,-0.069149, 2.264753;;, + 230;3;-0.157836,-0.069149, 2.264753;;, + 231;3;-0.157836,-0.069149, 2.264753;;, + 232;3;-0.157836,-0.069149, 2.264753;;, + 233;3;-0.157836,-0.069149, 2.264753;;, + 234;3;-0.157836,-0.069149, 2.264753;;, + 235;3;-0.157836,-0.069149, 2.264753;;, + 236;3;-0.157836,-0.069149, 2.264753;;, + 237;3;-0.157836,-0.069149, 2.264753;;, + 238;3;-0.157836,-0.069149, 2.264753;;, + 239;3;-0.157836,-0.069149, 2.264753;;, + 240;3;-0.157836,-0.069149, 2.264753;;, + 241;3;-0.157836,-0.069149, 2.264753;;, + 242;3;-0.157836,-0.069149, 2.264753;;, + 243;3;-0.157836,-0.069149, 2.264753;;, + 244;3;-0.157836,-0.069149, 2.264753;;, + 245;3;-0.157836,-0.069149, 2.264753;;, + 246;3;-0.157836,-0.069149, 2.264753;;, + 247;3;-0.157836,-0.069149, 2.264753;;, + 248;3;-0.157836,-0.069149, 2.264753;;, + 249;3;-0.157836,-0.069149, 2.264753;;; + } + } + Animation { + {Armature_Bone} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 1;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 2;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 3;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 4;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 5;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 6;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 7;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 8;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 9;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 10;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 11;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 12;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 13;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 14;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 15;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 16;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 17;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 18;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 19;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 20;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 21;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 22;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 23;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 24;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 25;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 26;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 27;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 28;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 29;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 30;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 31;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 32;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 33;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 34;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 35;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 36;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 37;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 38;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 39;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 40;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 41;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 42;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 43;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 44;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 45;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 46;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 47;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 48;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 49;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 50;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 51;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 52;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 53;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 54;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 55;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 56;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 57;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 58;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 59;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 60;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 61;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 62;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 63;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 64;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 65;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 66;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 67;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 68;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 69;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 70;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 71;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 72;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 73;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 74;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 75;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 76;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 77;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 78;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 79;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 80;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 81;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 82;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 83;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 84;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 85;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 86;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 87;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 88;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 89;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 90;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 91;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 92;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 93;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 94;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 95;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 96;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 97;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 98;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 99;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 100;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 101;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 102;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 103;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 104;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 105;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 106;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 107;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 108;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 109;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 110;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 111;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 112;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 113;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 114;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 115;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 116;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 117;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 118;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 119;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 120;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 121;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 122;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 123;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 124;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 125;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 126;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 127;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 128;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 129;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 130;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 131;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 132;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 133;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 134;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 135;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 136;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 137;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 138;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 139;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 140;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 141;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 142;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 143;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 144;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 145;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 146;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 147;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 148;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 149;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 150;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 151;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 152;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 153;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 154;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 155;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 156;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 157;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 158;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 159;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 160;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 161;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 162;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 163;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 164;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 165;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 166;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 167;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 168;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 169;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 170;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 171;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 172;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 173;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 174;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 175;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 176;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 177;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 178;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 179;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 180;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 181;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 182;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 183;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 184;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 185;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 186;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 187;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 188;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 189;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 190;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 191;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 192;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 193;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 194;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 195;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 196;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 197;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 198;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 199;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 200;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 201;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 202;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 203;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 204;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 205;4;-0.508395, 0.508396, 0.491461,-0.491461;;, + 206;4;-0.517367, 0.517367, 0.480743,-0.480743;;, + 207;4;-0.540834, 0.540834, 0.452708,-0.452707;;, + 208;4;-0.564301, 0.564301, 0.424673,-0.424672;;, + 209;4;-0.573273, 0.573273, 0.413955,-0.413954;;, + 210;4;-0.573273, 0.573273, 0.413955,-0.413954;;, + 211;4;-0.573273, 0.573273, 0.413955,-0.413954;;, + 212;4;-0.573273, 0.573273, 0.413955,-0.413954;;, + 213;4;-0.573273, 0.573273, 0.413955,-0.413954;;, + 214;4;-0.573273, 0.573273, 0.413955,-0.413954;;, + 215;4;-0.568493, 0.568494, 0.419799,-0.419798;;, + 216;4;-0.555031, 0.555032, 0.436260,-0.436260;;, + 217;4;-0.537746, 0.537747, 0.457397,-0.457396;;, + 218;4;-0.524284, 0.524285, 0.473858,-0.473858;;, + 219;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 220;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 221;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 222;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 223;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 224;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 225;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 226;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 227;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 228;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 229;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 230;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 231;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 232;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 233;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 234;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 235;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 236;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 237;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 238;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 239;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 240;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 241;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 242;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 243;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 244;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 245;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 246;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 247;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 248;4;-0.519505, 0.519506, 0.479702,-0.479702;;, + 249;4;-0.519505, 0.519506, 0.479702,-0.479702;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.844564, 0.035360,-2.311622;;, + 1;3;-0.844564, 0.035360,-2.311622;;, + 2;3;-0.844564, 0.035360,-2.311622;;, + 3;3;-0.844564, 0.035360,-2.311622;;, + 4;3;-0.844564, 0.035360,-2.311622;;, + 5;3;-0.844564, 0.035360,-2.311622;;, + 6;3;-0.844564, 0.035360,-2.311622;;, + 7;3;-0.844564, 0.035360,-2.311622;;, + 8;3;-0.844564, 0.035360,-2.311622;;, + 9;3;-0.844564, 0.035360,-2.311622;;, + 10;3;-0.844564, 0.035360,-2.311622;;, + 11;3;-0.844564, 0.035360,-2.311622;;, + 12;3;-0.844564, 0.035360,-2.311622;;, + 13;3;-0.844564, 0.035360,-2.311622;;, + 14;3;-0.844564, 0.035360,-2.311622;;, + 15;3;-0.844564, 0.035360,-2.311622;;, + 16;3;-0.844564, 0.035360,-2.311622;;, + 17;3;-0.844564, 0.035360,-2.311622;;, + 18;3;-0.844564, 0.035360,-2.311622;;, + 19;3;-0.844564, 0.035360,-2.311622;;, + 20;3;-0.844564, 0.035360,-2.311622;;, + 21;3;-0.844564, 0.035360,-2.311622;;, + 22;3;-0.844564, 0.035360,-2.311622;;, + 23;3;-0.844564, 0.035360,-2.311622;;, + 24;3;-0.844564, 0.035360,-2.311622;;, + 25;3;-0.844564, 0.035360,-2.311622;;, + 26;3;-0.844564, 0.035360,-2.311622;;, + 27;3;-0.844564, 0.035360,-2.311622;;, + 28;3;-0.844564, 0.035360,-2.311622;;, + 29;3;-0.844564, 0.035360,-2.311622;;, + 30;3;-0.844564, 0.035360,-2.311622;;, + 31;3;-0.844564, 0.035360,-2.311622;;, + 32;3;-0.844564, 0.035360,-2.311622;;, + 33;3;-0.844564, 0.035360,-2.311622;;, + 34;3;-0.844564, 0.035360,-2.311622;;, + 35;3;-0.844564, 0.035360,-2.311622;;, + 36;3;-0.844564, 0.035360,-2.311622;;, + 37;3;-0.844564, 0.035360,-2.311622;;, + 38;3;-0.844564, 0.035360,-2.311622;;, + 39;3;-0.844564, 0.035360,-2.311622;;, + 40;3;-0.844564, 0.035360,-2.311622;;, + 41;3;-0.844564, 0.035360,-2.311622;;, + 42;3;-0.844564, 0.035360,-2.311622;;, + 43;3;-0.844564, 0.035360,-2.311622;;, + 44;3;-0.844564, 0.035360,-2.311622;;, + 45;3;-0.844564, 0.035360,-2.311622;;, + 46;3;-0.844564, 0.035360,-2.311622;;, + 47;3;-0.844564, 0.035360,-2.311622;;, + 48;3;-0.844564, 0.035360,-2.311622;;, + 49;3;-0.844564, 0.035360,-2.311622;;, + 50;3;-0.844564, 0.035360,-2.311622;;, + 51;3;-0.844564, 0.035360,-2.311622;;, + 52;3;-0.844564, 0.035360,-2.311622;;, + 53;3;-0.844564, 0.035360,-2.311622;;, + 54;3;-0.844564, 0.035360,-2.311622;;, + 55;3;-0.844564, 0.035360,-2.311622;;, + 56;3;-0.844564, 0.035360,-2.311622;;, + 57;3;-0.844564, 0.035360,-2.311622;;, + 58;3;-0.844564, 0.035360,-2.311622;;, + 59;3;-0.844564, 0.035360,-2.311622;;, + 60;3;-0.844564, 0.035360,-2.311622;;, + 61;3;-0.844564, 0.035360,-2.311622;;, + 62;3;-0.844564, 0.035360,-2.311622;;, + 63;3;-0.844564, 0.035360,-2.311622;;, + 64;3;-0.844564, 0.035360,-2.311622;;, + 65;3;-0.844564, 0.035360,-2.311622;;, + 66;3;-0.844564, 0.035360,-2.311622;;, + 67;3;-0.844564, 0.035360,-2.311622;;, + 68;3;-0.844564, 0.035360,-2.311622;;, + 69;3;-0.844564, 0.035360,-2.311622;;, + 70;3;-0.844564, 0.035360,-2.311622;;, + 71;3;-0.844564, 0.035360,-2.311622;;, + 72;3;-0.844564, 0.035360,-2.311622;;, + 73;3;-0.844564, 0.035360,-2.311622;;, + 74;3;-0.844564, 0.035360,-2.311622;;, + 75;3;-0.844564, 0.035360,-2.311622;;, + 76;3;-0.844564, 0.035360,-2.311622;;, + 77;3;-0.844564, 0.035360,-2.311622;;, + 78;3;-0.844564, 0.035360,-2.311622;;, + 79;3;-0.844564, 0.035360,-2.311622;;, + 80;3;-0.844564, 0.035360,-1.481889;;, + 81;3;-0.844564, 0.035360,-1.481889;;, + 82;3;-0.844564, 0.035360,-1.481889;;, + 83;3;-0.844564, 0.035360,-1.481889;;, + 84;3;-0.844564, 0.035360,-1.481889;;, + 85;3;-0.844564, 0.035360,-1.481889;;, + 86;3;-0.844564, 0.035360,-1.481889;;, + 87;3;-0.844564, 0.035360,-1.481889;;, + 88;3;-0.844564, 0.035360,-1.481889;;, + 89;3;-0.844564, 0.035360,-1.481889;;, + 90;3;-0.844564, 0.035360,-1.481889;;, + 91;3;-0.844564, 0.035360,-1.481889;;, + 92;3;-0.844564, 0.035360,-1.481889;;, + 93;3;-0.844564, 0.035360,-1.481889;;, + 94;3;-0.844564, 0.035360,-1.481889;;, + 95;3;-0.844564, 0.035360,-1.481889;;, + 96;3;-0.844564, 0.035360,-1.481889;;, + 97;3;-0.844564, 0.035360,-1.481889;;, + 98;3;-0.844564, 0.035360,-1.481889;;, + 99;3;-0.844564, 0.035360,-1.481889;;, + 100;3;-0.844564, 0.035360,-1.481889;;, + 101;3;-0.844564, 0.035360,-1.481889;;, + 102;3;-0.844564, 0.035360,-1.481889;;, + 103;3;-0.844564, 0.035360,-1.481889;;, + 104;3;-0.844564, 0.035360,-1.481889;;, + 105;3;-0.844564, 0.035360,-1.481889;;, + 106;3;-0.844564, 0.035360,-1.481889;;, + 107;3;-0.844564, 0.035360,-1.481889;;, + 108;3;-0.844564, 0.035360,-1.481889;;, + 109;3;-0.844564, 0.035360,-1.481889;;, + 110;3;-0.844564, 0.035360,-1.481889;;, + 111;3;-0.844564, 0.035360,-1.481889;;, + 112;3;-0.844564, 0.035360,-1.481889;;, + 113;3;-0.844564, 0.035360,-1.481889;;, + 114;3;-0.844564, 0.035360,-1.481889;;, + 115;3;-0.844564, 0.035360,-1.481889;;, + 116;3;-0.844564, 0.035360,-1.481889;;, + 117;3;-0.844564, 0.035360,-1.481889;;, + 118;3;-0.844564, 0.035360,-1.481889;;, + 119;3;-0.844564, 0.035360,-1.481889;;, + 120;3;-0.844564, 0.035360,-1.481889;;, + 121;3;-0.844564, 0.035360,-1.481889;;, + 122;3;-0.844564, 0.035360,-1.481889;;, + 123;3;-0.844564, 0.035360,-1.481889;;, + 124;3;-0.844564, 0.035360,-1.481889;;, + 125;3;-0.844564, 0.035360,-1.481889;;, + 126;3;-0.844564, 0.035360,-1.481889;;, + 127;3;-0.844564, 0.035360,-1.481889;;, + 128;3;-0.844564, 0.035360,-1.481889;;, + 129;3;-0.844564, 0.035360,-1.481889;;, + 130;3;-0.844564, 0.035360,-1.481889;;, + 131;3;-0.844564, 0.035360,-1.481889;;, + 132;3;-0.844564, 0.035360,-1.481889;;, + 133;3;-0.844564, 0.035360,-1.481889;;, + 134;3;-0.844564, 0.035360,-1.481889;;, + 135;3;-0.844564, 0.035360,-1.481889;;, + 136;3;-0.844564, 0.035360,-1.481889;;, + 137;3;-0.844564, 0.035360,-1.481889;;, + 138;3;-0.844564, 0.035360,-1.481889;;, + 139;3;-0.844564, 0.035360,-1.481889;;, + 140;3;-0.844564, 0.035360,-1.481889;;, + 141;3;-0.844564, 0.035360,-1.481889;;, + 142;3;-0.844564, 0.035360,-1.481889;;, + 143;3;-0.844564, 0.035360,-1.481889;;, + 144;3;-0.844564, 0.035360,-1.481889;;, + 145;3;-0.844564, 0.035360,-1.481889;;, + 146;3;-0.844564, 0.035360,-1.481889;;, + 147;3;-0.844564, 0.035360,-1.481889;;, + 148;3;-0.844564, 0.035360,-1.481889;;, + 149;3;-0.844564, 0.035360,-1.481889;;, + 150;3;-0.844564, 0.035360,-1.481889;;, + 151;3;-0.844564, 0.035360,-1.481889;;, + 152;3;-0.844564, 0.035360,-1.481889;;, + 153;3;-0.844564, 0.035360,-1.481889;;, + 154;3;-0.844564, 0.035360,-1.481889;;, + 155;3;-0.844564, 0.035360,-1.481889;;, + 156;3;-0.844564, 0.035360,-1.481889;;, + 157;3;-0.844564, 0.035360,-1.481889;;, + 158;3;-0.844564, 0.035360,-1.481889;;, + 159;3;-0.844564, 0.035360,-1.481889;;, + 160;3;-0.844564, 0.035360,-1.481889;;, + 161;3;-0.844564, 0.035360,-1.481889;;, + 162;3;-0.844564, 0.035360,-1.481889;;, + 163;3;-0.844564, 0.035360,-1.481889;;, + 164;3;-0.844564, 0.035360,-1.481889;;, + 165;3;-0.844564, 0.035360,-1.481889;;, + 166;3;-0.844564, 0.035360,-1.481889;;, + 167;3;-0.844564, 0.035360,-1.481889;;, + 168;3;-0.844564, 0.035360,-1.481889;;, + 169;3;-0.844564, 0.035360,-1.481889;;, + 170;3;-0.844564, 0.035360,-2.795841;;, + 171;3;-0.844564, 0.035360,-2.795841;;, + 172;3;-0.844564, 0.035360,-2.795841;;, + 173;3;-0.844564, 0.035360,-2.795841;;, + 174;3;-0.844564, 0.035360,-2.795841;;, + 175;3;-0.844564, 0.035360,-2.795841;;, + 176;3;-0.844564, 0.035360,-2.795841;;, + 177;3;-0.844564, 0.035360,-2.795841;;, + 178;3;-0.844564, 0.035360,-2.795841;;, + 179;3;-0.844564, 0.035360,-2.795841;;, + 180;3;-0.844564, 0.035360,-2.795841;;, + 181;3;-0.844564, 0.035360,-2.795841;;, + 182;3;-0.844564, 0.035360,-2.795841;;, + 183;3;-0.844564, 0.035360,-2.795841;;, + 184;3;-0.844564, 0.035360,-2.795841;;, + 185;3;-0.844564, 0.035360,-2.795841;;, + 186;3;-0.844564, 0.035360,-2.795841;;, + 187;3;-0.844564, 0.035360,-2.795841;;, + 188;3;-0.844564, 0.035360,-2.795841;;, + 189;3;-0.844564, 0.035360,-2.795841;;, + 190;3;-0.844564, 0.035360,-2.795841;;, + 191;3;-0.844564, 0.035360,-2.795841;;, + 192;3;-0.844564, 0.035360,-2.795841;;, + 193;3;-0.844564, 0.035360,-2.795841;;, + 194;3;-0.844564, 0.035360,-2.795841;;, + 195;3;-0.844564, 0.035360,-2.795841;;, + 196;3;-0.844564, 0.035360,-2.795841;;, + 197;3;-0.844564, 0.035360,-2.795841;;, + 198;3;-0.844564, 0.035360,-2.795841;;, + 199;3;-0.844564, 0.035360,-2.795841;;, + 200;3;-0.844564, 0.035360,-2.795841;;, + 201;3;-0.844564, 0.035360,-2.795841;;, + 202;3;-0.844564, 0.035360,-2.795841;;, + 203;3;-0.844564, 0.035360,-2.795841;;, + 204;3;-0.844564, 0.035360,-2.795841;;, + 205;3;-0.844564, 0.035360,-1.827895;;, + 206;3;-0.628672, 0.035360,-1.826067;;, + 207;3;-0.209873, 0.035360,-1.826230;;, + 208;3; 0.181041, 0.035360,-1.827337;;, + 209;3; 0.326536, 0.035360,-1.827895;;, + 210;3; 0.326536, 0.035360,-1.827895;;, + 211;3; 0.326536, 0.035360,-1.827895;;, + 212;3; 0.326536, 0.035360,-1.827895;;, + 213;3; 0.326536, 0.035360,-1.827895;;, + 214;3; 0.326536, 0.035360,-1.827895;;, + 215;3; 0.225135, 0.035360,-1.827895;;, + 216;3;-0.060482, 0.035360,-1.827895;;, + 217;3;-0.427211, 0.035360,-1.827895;;, + 218;3;-0.712828, 0.035360,-1.827895;;, + 219;3;-0.814229, 0.035360,-1.827895;;, + 220;3;-0.814229, 0.035360,-1.827895;;, + 221;3;-0.814229, 0.035360,-1.827895;;, + 222;3;-0.814229, 0.035360,-1.827895;;, + 223;3;-0.814229, 0.035360,-1.827895;;, + 224;3;-0.814229, 0.035360,-1.827895;;, + 225;3;-0.814229, 0.035360,-1.827895;;, + 226;3;-0.814229, 0.035360,-1.827895;;, + 227;3;-0.814229, 0.035360,-1.827895;;, + 228;3;-0.814229, 0.035360,-1.827895;;, + 229;3;-0.814229, 0.035360,-1.827895;;, + 230;3;-0.814229, 0.035360,-1.827895;;, + 231;3;-0.814229, 0.035360,-1.827895;;, + 232;3;-0.814229, 0.035360,-1.827895;;, + 233;3;-0.814229, 0.035360,-1.827895;;, + 234;3;-0.814229, 0.035360,-1.827895;;, + 235;3;-0.814229, 0.035360,-1.827895;;, + 236;3;-0.814229, 0.035360,-1.827895;;, + 237;3;-0.814229, 0.035360,-1.827895;;, + 238;3;-0.814229, 0.035360,-1.827895;;, + 239;3;-0.814229, 0.035360,-1.827895;;, + 240;3;-0.814229, 0.035360,-1.827895;;, + 241;3;-0.814229, 0.035360,-1.827895;;, + 242;3;-0.814229, 0.035360,-1.827895;;, + 243;3;-0.814229, 0.035360,-1.827895;;, + 244;3;-0.814229, 0.035360,-1.827895;;, + 245;3;-0.814229, 0.035360,-1.827895;;, + 246;3;-0.814229, 0.035360,-1.827895;;, + 247;3;-0.814229, 0.035360,-1.827895;;, + 248;3;-0.814229, 0.035360,-1.827895;;, + 249;3;-0.814229, 0.035360,-1.827895;;; + } + } + Animation { + {Armature_Bone_009} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 1;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 2;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 3;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 4;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 5;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 6;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 7;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 8;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 9;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 10;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 11;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 12;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 13;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 14;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 15;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 16;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 17;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 18;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 19;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 20;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 21;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 22;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 23;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 24;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 25;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 26;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 27;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 28;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 29;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 30;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 31;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 32;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 33;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 34;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 35;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 36;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 37;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 38;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 39;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 40;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 41;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 42;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 43;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 44;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 45;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 46;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 47;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 48;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 49;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 50;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 51;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 52;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 53;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 54;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 55;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 56;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 57;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 58;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 59;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 60;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 61;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 62;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 63;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 64;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 65;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 66;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 67;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 68;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 69;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 70;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 71;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 72;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 73;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 74;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 75;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 76;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 77;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 78;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 79;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 80;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 81;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 82;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 83;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 84;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 85;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 86;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 87;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 88;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 89;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 90;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 91;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 92;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 93;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 94;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 95;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 96;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 97;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 98;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 99;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 100;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 101;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 102;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 103;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 104;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 105;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 106;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 107;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 108;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 109;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 110;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 111;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 112;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 113;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 114;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 115;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 116;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 117;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 118;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 119;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 120;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 121;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 122;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 123;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 124;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 125;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 126;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 127;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 128;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 129;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 130;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 131;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 132;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 133;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 134;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 135;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 136;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 137;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 138;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 139;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 140;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 141;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 142;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 143;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 144;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 145;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 146;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 147;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 148;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 149;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 150;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 151;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 152;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 153;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 154;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 155;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 156;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 157;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 158;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 159;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 160;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 161;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 162;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 163;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 164;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 165;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 166;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 167;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 168;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 169;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 170;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 171;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 172;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 173;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 174;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 175;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 176;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 177;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 178;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 179;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 180;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 181;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 182;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 183;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 184;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 185;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 186;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 187;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 188;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 189;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 190;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 191;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 192;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 193;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 194;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 195;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 196;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 197;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 198;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 199;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 200;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 201;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 202;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 203;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 204;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 205;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 206;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 207;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 208;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 209;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 210;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 211;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 212;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 213;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 214;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 215;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 216;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 217;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 218;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 219;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 220;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 221;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 222;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 223;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 224;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 225;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 226;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 227;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 228;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 229;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 230;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 231;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 232;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 233;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 234;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 235;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 236;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 237;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 238;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 239;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 240;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 241;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 242;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 243;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 244;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 245;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 246;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 247;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 248;4;-0.707175,-0.016360,-0.706850,-0.000580;;, + 249;4;-0.707175,-0.016360,-0.706850,-0.000580;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.000000, 2.056115,-0.000000;;, + 1;3;-0.000000, 2.056115,-0.000000;;, + 2;3;-0.000000, 2.056115,-0.000000;;, + 3;3;-0.000000, 2.056115,-0.000000;;, + 4;3;-0.000000, 2.056115,-0.000000;;, + 5;3;-0.000000, 2.056115,-0.000000;;, + 6;3;-0.000000, 2.056115,-0.000000;;, + 7;3;-0.000000, 2.056115,-0.000000;;, + 8;3;-0.000000, 2.056115,-0.000000;;, + 9;3;-0.000000, 2.056115,-0.000000;;, + 10;3;-0.000000, 2.056115,-0.000000;;, + 11;3;-0.000000, 2.056115,-0.000000;;, + 12;3;-0.000000, 2.056115,-0.000000;;, + 13;3;-0.000000, 2.056115,-0.000000;;, + 14;3;-0.000000, 2.056115,-0.000000;;, + 15;3;-0.000000, 2.056115,-0.000000;;, + 16;3;-0.000000, 2.056115,-0.000000;;, + 17;3;-0.000000, 2.056115,-0.000000;;, + 18;3;-0.000000, 2.056115,-0.000000;;, + 19;3;-0.000000, 2.056115,-0.000000;;, + 20;3;-0.000000, 2.056115,-0.000000;;, + 21;3;-0.000000, 2.056115,-0.000000;;, + 22;3;-0.000000, 2.056115,-0.000000;;, + 23;3;-0.000000, 2.056115,-0.000000;;, + 24;3;-0.000000, 2.056115,-0.000000;;, + 25;3;-0.000000, 2.056115,-0.000000;;, + 26;3;-0.000000, 2.056115,-0.000000;;, + 27;3;-0.000000, 2.056115,-0.000000;;, + 28;3;-0.000000, 2.056115,-0.000000;;, + 29;3;-0.000000, 2.056115,-0.000000;;, + 30;3;-0.000000, 2.056115,-0.000000;;, + 31;3;-0.000000, 2.056115,-0.000000;;, + 32;3;-0.000000, 2.056115,-0.000000;;, + 33;3;-0.000000, 2.056115,-0.000000;;, + 34;3;-0.000000, 2.056115,-0.000000;;, + 35;3;-0.000000, 2.056115,-0.000000;;, + 36;3;-0.000000, 2.056115,-0.000000;;, + 37;3;-0.000000, 2.056115,-0.000000;;, + 38;3;-0.000000, 2.056115,-0.000000;;, + 39;3;-0.000000, 2.056115,-0.000000;;, + 40;3;-0.000000, 2.056115,-0.000000;;, + 41;3;-0.000000, 2.056115,-0.000000;;, + 42;3;-0.000000, 2.056115,-0.000000;;, + 43;3;-0.000000, 2.056115,-0.000000;;, + 44;3;-0.000000, 2.056115,-0.000000;;, + 45;3;-0.000000, 2.056115,-0.000000;;, + 46;3;-0.000000, 2.056115,-0.000000;;, + 47;3;-0.000000, 2.056115,-0.000000;;, + 48;3;-0.000000, 2.056115,-0.000000;;, + 49;3;-0.000000, 2.056115,-0.000000;;, + 50;3;-0.000000, 2.056115,-0.000000;;, + 51;3;-0.000000, 2.056115,-0.000000;;, + 52;3;-0.000000, 2.056115,-0.000000;;, + 53;3;-0.000000, 2.056115,-0.000000;;, + 54;3;-0.000000, 2.056115,-0.000000;;, + 55;3;-0.000000, 2.056115,-0.000000;;, + 56;3;-0.000000, 2.056115,-0.000000;;, + 57;3;-0.000000, 2.056115,-0.000000;;, + 58;3;-0.000000, 2.056115,-0.000000;;, + 59;3;-0.000000, 2.056115,-0.000000;;, + 60;3;-0.000000, 2.056115,-0.000000;;, + 61;3;-0.000000, 2.056115,-0.000000;;, + 62;3;-0.000000, 2.056115,-0.000000;;, + 63;3;-0.000000, 2.056115,-0.000000;;, + 64;3;-0.000000, 2.056115,-0.000000;;, + 65;3;-0.000000, 2.056115,-0.000000;;, + 66;3;-0.000000, 2.056115,-0.000000;;, + 67;3;-0.000000, 2.056115,-0.000000;;, + 68;3;-0.000000, 2.056115,-0.000000;;, + 69;3;-0.000000, 2.056115,-0.000000;;, + 70;3;-0.000000, 2.056115,-0.000000;;, + 71;3;-0.000000, 2.056115,-0.000000;;, + 72;3;-0.000000, 2.056115,-0.000000;;, + 73;3;-0.000000, 2.056115,-0.000000;;, + 74;3;-0.000000, 2.056115,-0.000000;;, + 75;3;-0.000000, 2.056115,-0.000000;;, + 76;3;-0.000000, 2.056115,-0.000000;;, + 77;3;-0.000000, 2.056115,-0.000000;;, + 78;3;-0.000000, 2.056115,-0.000000;;, + 79;3;-0.000000, 2.056115,-0.000000;;, + 80;3; 0.000000, 2.056115,-0.000000;;, + 81;3; 0.000000, 2.056115,-0.000000;;, + 82;3; 0.000000, 2.056115,-0.000000;;, + 83;3; 0.000000, 2.056115,-0.000000;;, + 84;3; 0.000000, 2.056115,-0.000000;;, + 85;3; 0.000000, 2.056115,-0.000000;;, + 86;3; 0.000000, 2.056115,-0.000000;;, + 87;3; 0.000000, 2.056115,-0.000000;;, + 88;3; 0.000000, 2.056115,-0.000000;;, + 89;3; 0.000000, 2.056115,-0.000000;;, + 90;3; 0.000000, 2.056115,-0.000000;;, + 91;3; 0.000000, 2.056115,-0.000000;;, + 92;3; 0.000000, 2.056115,-0.000000;;, + 93;3; 0.000000, 2.056115,-0.000000;;, + 94;3; 0.000000, 2.056115,-0.000000;;, + 95;3; 0.000000, 2.056115,-0.000000;;, + 96;3; 0.000000, 2.056115,-0.000000;;, + 97;3; 0.000000, 2.056115,-0.000000;;, + 98;3; 0.000000, 2.056115,-0.000000;;, + 99;3; 0.000000, 2.056115,-0.000000;;, + 100;3; 0.000000, 2.056115,-0.000000;;, + 101;3; 0.000000, 2.056115,-0.000000;;, + 102;3; 0.000000, 2.056115,-0.000000;;, + 103;3; 0.000000, 2.056115,-0.000000;;, + 104;3; 0.000000, 2.056115,-0.000000;;, + 105;3; 0.000000, 2.056115,-0.000000;;, + 106;3; 0.000000, 2.056115,-0.000000;;, + 107;3; 0.000000, 2.056115,-0.000000;;, + 108;3; 0.000000, 2.056115,-0.000000;;, + 109;3; 0.000000, 2.056115,-0.000000;;, + 110;3; 0.000000, 2.056115,-0.000000;;, + 111;3; 0.000000, 2.056115,-0.000000;;, + 112;3; 0.000000, 2.056115,-0.000000;;, + 113;3; 0.000000, 2.056115,-0.000000;;, + 114;3; 0.000000, 2.056115,-0.000000;;, + 115;3; 0.000000, 2.056115,-0.000000;;, + 116;3; 0.000000, 2.056115,-0.000000;;, + 117;3; 0.000000, 2.056115,-0.000000;;, + 118;3; 0.000000, 2.056115,-0.000000;;, + 119;3; 0.000000, 2.056115,-0.000000;;, + 120;3; 0.000000, 2.056115,-0.000000;;, + 121;3; 0.000000, 2.056115,-0.000000;;, + 122;3; 0.000000, 2.056115,-0.000000;;, + 123;3; 0.000000, 2.056115,-0.000000;;, + 124;3; 0.000000, 2.056115,-0.000000;;, + 125;3; 0.000000, 2.056115,-0.000000;;, + 126;3; 0.000000, 2.056115,-0.000000;;, + 127;3; 0.000000, 2.056115,-0.000000;;, + 128;3; 0.000000, 2.056115,-0.000000;;, + 129;3; 0.000000, 2.056115,-0.000000;;, + 130;3; 0.000000, 2.056115,-0.000000;;, + 131;3; 0.000000, 2.056115,-0.000000;;, + 132;3; 0.000000, 2.056115,-0.000000;;, + 133;3; 0.000000, 2.056115,-0.000000;;, + 134;3; 0.000000, 2.056115,-0.000000;;, + 135;3; 0.000000, 2.056115,-0.000000;;, + 136;3; 0.000000, 2.056115,-0.000000;;, + 137;3; 0.000000, 2.056115,-0.000000;;, + 138;3; 0.000000, 2.056115,-0.000000;;, + 139;3; 0.000000, 2.056115,-0.000000;;, + 140;3; 0.000000, 2.056115,-0.000000;;, + 141;3; 0.000000, 2.056115,-0.000000;;, + 142;3; 0.000000, 2.056115,-0.000000;;, + 143;3; 0.000000, 2.056115,-0.000000;;, + 144;3; 0.000000, 2.056115,-0.000000;;, + 145;3; 0.000000, 2.056115,-0.000000;;, + 146;3; 0.000000, 2.056115,-0.000000;;, + 147;3; 0.000000, 2.056115,-0.000000;;, + 148;3; 0.000000, 2.056115,-0.000000;;, + 149;3; 0.000000, 2.056115,-0.000000;;, + 150;3; 0.000000, 2.056115,-0.000000;;, + 151;3; 0.000000, 2.056115,-0.000000;;, + 152;3; 0.000000, 2.056115,-0.000000;;, + 153;3; 0.000000, 2.056115,-0.000000;;, + 154;3; 0.000000, 2.056115,-0.000000;;, + 155;3; 0.000000, 2.056115,-0.000000;;, + 156;3; 0.000000, 2.056115,-0.000000;;, + 157;3; 0.000000, 2.056115,-0.000000;;, + 158;3; 0.000000, 2.056115,-0.000000;;, + 159;3; 0.000000, 2.056115,-0.000000;;, + 160;3; 0.000000, 2.056115,-0.000000;;, + 161;3; 0.000000, 2.056115,-0.000000;;, + 162;3; 0.000000, 2.056115,-0.000000;;, + 163;3; 0.000000, 2.056115,-0.000000;;, + 164;3; 0.000000, 2.056115,-0.000000;;, + 165;3; 0.000000, 2.056115,-0.000000;;, + 166;3; 0.000000, 2.056115,-0.000000;;, + 167;3; 0.000000, 2.056115,-0.000000;;, + 168;3; 0.000000, 2.056115,-0.000000;;, + 169;3; 0.000000, 2.056115,-0.000000;;, + 170;3;-0.000000, 2.056115,-0.000000;;, + 171;3;-0.000000, 2.056115,-0.000000;;, + 172;3;-0.000000, 2.056115,-0.000000;;, + 173;3;-0.000000, 2.056115,-0.000000;;, + 174;3;-0.000000, 2.056115,-0.000000;;, + 175;3;-0.000000, 2.056115,-0.000000;;, + 176;3;-0.000000, 2.056115,-0.000000;;, + 177;3;-0.000000, 2.056115,-0.000000;;, + 178;3;-0.000000, 2.056115,-0.000000;;, + 179;3;-0.000000, 2.056115,-0.000000;;, + 180;3;-0.000000, 2.056115,-0.000000;;, + 181;3;-0.000000, 2.056115,-0.000000;;, + 182;3;-0.000000, 2.056115,-0.000000;;, + 183;3;-0.000000, 2.056115,-0.000000;;, + 184;3;-0.000000, 2.056115,-0.000000;;, + 185;3;-0.000000, 2.056115,-0.000000;;, + 186;3;-0.000000, 2.056115,-0.000000;;, + 187;3;-0.000000, 2.056115,-0.000000;;, + 188;3;-0.000000, 2.056115,-0.000000;;, + 189;3;-0.000000, 2.056115,-0.000000;;, + 190;3;-0.000000, 2.056115,-0.000000;;, + 191;3;-0.000000, 2.056115,-0.000000;;, + 192;3;-0.000000, 2.056115,-0.000000;;, + 193;3;-0.000000, 2.056115,-0.000000;;, + 194;3;-0.000000, 2.056115,-0.000000;;, + 195;3;-0.000000, 2.056115,-0.000000;;, + 196;3;-0.000000, 2.056115,-0.000000;;, + 197;3;-0.000000, 2.056115,-0.000000;;, + 198;3;-0.000000, 2.056115,-0.000000;;, + 199;3;-0.000000, 2.056115,-0.000000;;, + 200;3;-0.000000, 2.056115,-0.000000;;, + 201;3;-0.000000, 2.056115,-0.000000;;, + 202;3;-0.000000, 2.056115,-0.000000;;, + 203;3;-0.000000, 2.056115,-0.000000;;, + 204;3;-0.000000, 2.056115,-0.000000;;, + 205;3;-0.000000, 2.056115,-0.000000;;, + 206;3;-0.000000, 2.056115,-0.000000;;, + 207;3;-0.000000, 2.056115, 0.000000;;, + 208;3; 0.000000, 2.056115,-0.000000;;, + 209;3; 0.000000, 2.056115,-0.000000;;, + 210;3; 0.000000, 2.056115,-0.000000;;, + 211;3; 0.000000, 2.056115,-0.000000;;, + 212;3; 0.000000, 2.056115,-0.000000;;, + 213;3; 0.000000, 2.056115,-0.000000;;, + 214;3; 0.000000, 2.056115,-0.000000;;, + 215;3;-0.000000, 2.056115, 0.000000;;, + 216;3;-0.000000, 2.056115, 0.000000;;, + 217;3;-0.000000, 2.056115, 0.000000;;, + 218;3; 0.000000, 2.056115, 0.000000;;, + 219;3;-0.000000, 2.056115, 0.000000;;, + 220;3;-0.000000, 2.056115, 0.000000;;, + 221;3;-0.000000, 2.056115, 0.000000;;, + 222;3;-0.000000, 2.056115, 0.000000;;, + 223;3;-0.000000, 2.056115, 0.000000;;, + 224;3;-0.000000, 2.056115, 0.000000;;, + 225;3;-0.000000, 2.056115, 0.000000;;, + 226;3;-0.000000, 2.056115, 0.000000;;, + 227;3;-0.000000, 2.056115, 0.000000;;, + 228;3;-0.000000, 2.056115, 0.000000;;, + 229;3;-0.000000, 2.056115, 0.000000;;, + 230;3;-0.000000, 2.056115, 0.000000;;, + 231;3;-0.000000, 2.056115, 0.000000;;, + 232;3;-0.000000, 2.056115, 0.000000;;, + 233;3;-0.000000, 2.056115, 0.000000;;, + 234;3;-0.000000, 2.056115, 0.000000;;, + 235;3;-0.000000, 2.056115, 0.000000;;, + 236;3;-0.000000, 2.056115, 0.000000;;, + 237;3;-0.000000, 2.056115, 0.000000;;, + 238;3;-0.000000, 2.056115, 0.000000;;, + 239;3;-0.000000, 2.056115, 0.000000;;, + 240;3;-0.000000, 2.056115, 0.000000;;, + 241;3;-0.000000, 2.056115, 0.000000;;, + 242;3;-0.000000, 2.056115, 0.000000;;, + 243;3;-0.000000, 2.056115, 0.000000;;, + 244;3;-0.000000, 2.056115, 0.000000;;, + 245;3;-0.000000, 2.056115, 0.000000;;, + 246;3;-0.000000, 2.056115, 0.000000;;, + 247;3;-0.000000, 2.056115, 0.000000;;, + 248;3;-0.000000, 2.056115, 0.000000;;, + 249;3;-0.000000, 2.056115, 0.000000;;; + } + } + Animation { + {Armature_Bone_010} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.995895, 0.089277,-0.001466,-0.014854;;, + 1;4;-0.995892, 0.089276,-0.001485,-0.015039;;, + 2;4;-0.995883, 0.089276,-0.001540,-0.015599;;, + 3;4;-0.995868, 0.089274,-0.001634,-0.016537;;, + 4;4;-0.995845, 0.089272,-0.001765,-0.017852;;, + 5;4;-0.995815, 0.089270,-0.001933,-0.019542;;, + 6;4;-0.995777, 0.089266,-0.002138,-0.021597;;, + 7;4;-0.995729, 0.089262,-0.002378,-0.024005;;, + 8;4;-0.995673, 0.089257,-0.002651,-0.026747;;, + 9;4;-0.995606, 0.089251,-0.002955,-0.029795;;, + 10;4;-0.995529, 0.089244,-0.003286,-0.033119;;, + 11;4;-0.995442, 0.089236,-0.003641,-0.036680;;, + 12;4;-0.995343, 0.089227,-0.004015,-0.040432;;, + 13;4;-0.995234, 0.089217,-0.004403,-0.044325;;, + 14;4;-0.995113, 0.089206,-0.004799,-0.048304;;, + 15;4;-0.994981, 0.089194,-0.005199,-0.052312;;, + 16;4;-0.994839, 0.089182,-0.005595,-0.056291;;, + 17;4;-0.994687, 0.089168,-0.005983,-0.060183;;, + 18;4;-0.994525, 0.089153,-0.006357,-0.063934;;, + 19;4;-0.994354, 0.089138,-0.006711,-0.067493;;, + 20;4;-0.994174, 0.089122,-0.007043,-0.070816;;, + 21;4;-0.993987, 0.089105,-0.007346,-0.073863;;, + 22;4;-0.993793, 0.089087,-0.007619,-0.076602;;, + 23;4;-0.993593, 0.089069,-0.007859,-0.079008;;, + 24;4;-0.993387, 0.089051,-0.008063,-0.081061;;, + 25;4;-0.993177, 0.089032,-0.008231,-0.082748;;, + 26;4;-0.992963, 0.089013,-0.008362,-0.084060;;, + 27;4;-0.992746, 0.088993,-0.008455,-0.084995;;, + 28;4;-0.992525, 0.088974,-0.008511,-0.085551;;, + 29;4;-0.992303, 0.088954,-0.008529,-0.085734;;, + 30;4;-0.992063, 0.088932,-0.008467,-0.085113;;, + 31;4;-0.991794, 0.088908,-0.008281,-0.083247;;, + 32;4;-0.991493, 0.088881,-0.007970,-0.080124;;, + 33;4;-0.991162, 0.088852,-0.007533,-0.075743;;, + 34;4;-0.990803, 0.088819,-0.006973,-0.070114;;, + 35;4;-0.990415, 0.088785,-0.006290,-0.063261;;, + 36;4;-0.990000, 0.088748,-0.005489,-0.055224;;, + 37;4;-0.989562, 0.088709,-0.004576,-0.046061;;, + 38;4;-0.989102, 0.088667,-0.003558,-0.035849;;, + 39;4;-0.988625, 0.088625,-0.002446,-0.024686;;, + 40;4;-0.988132, 0.088581,-0.001251,-0.012690;;, + 41;4;-0.987631, 0.088536, 0.000014, 0.000001;;, + 42;4;-0.987123, 0.088491, 0.001332, 0.013230;;, + 43;4;-0.986616, 0.088446, 0.002687, 0.026827;;, + 44;4;-0.986114, 0.088401, 0.004061, 0.040611;;, + 45;4;-0.985623, 0.088357, 0.005434, 0.054394;;, + 46;4;-0.985147, 0.088314, 0.006789, 0.067991;;, + 47;4;-0.984691, 0.088274, 0.008107, 0.081219;;, + 48;4;-0.984261, 0.088235, 0.009372, 0.093909;;, + 49;4;-0.983859, 0.088199, 0.010567, 0.105903;;, + 50;4;-0.983490, 0.088167, 0.011679, 0.117065;;, + 51;4;-0.983155, 0.088137, 0.012696, 0.127275;;, + 52;4;-0.982858, 0.088110, 0.013609, 0.136436;;, + 53;4;-0.982600, 0.088087, 0.014410, 0.144471;;, + 54;4;-0.982382, 0.088068, 0.015092, 0.151321;;, + 55;4;-0.982203, 0.088052, 0.015653, 0.156947;;, + 56;4;-0.982066, 0.088039, 0.016089, 0.161326;;, + 57;4;-0.981968, 0.088031, 0.016400, 0.164446;;, + 58;4;-0.981910, 0.088026, 0.016586, 0.166309;;, + 59;4;-0.981891, 0.088024, 0.016647, 0.166926;;, + 60;4;-0.981964, 0.088030, 0.016567, 0.166114;;, + 61;4;-0.982169, 0.088049, 0.016340, 0.163836;;, + 62;4;-0.982488, 0.088077, 0.015986, 0.160288;;, + 63;4;-0.982906, 0.088115, 0.015522, 0.155628;;, + 64;4;-0.983413, 0.088160, 0.014960, 0.149988;;, + 65;4;-0.983998, 0.088212, 0.014311, 0.143476;;, + 66;4;-0.984652, 0.088271, 0.013584, 0.136187;;, + 67;4;-0.985370, 0.088335, 0.012789, 0.128201;;, + 68;4;-0.986143, 0.088404, 0.011931, 0.119593;;, + 69;4;-0.986966, 0.088478, 0.011018, 0.110429;;, + 70;4;-0.987834, 0.088556, 0.010055, 0.100772;;, + 71;4;-0.988740, 0.088637, 0.009050, 0.090684;;, + 72;4;-0.989679, 0.088721, 0.008009, 0.080230;;, + 73;4;-0.990644, 0.088807, 0.006937, 0.069481;;, + 74;4;-0.991629, 0.088895, 0.005845, 0.058521;;, + 75;4;-0.992622, 0.088984, 0.004744, 0.047464;;, + 76;4;-0.993609, 0.089073, 0.003649, 0.036475;;, + 77;4;-0.994564, 0.089158, 0.002590, 0.025850;;, + 78;4;-0.995426, 0.089235, 0.001633, 0.016251;;, + 79;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 80;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 81;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 82;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 83;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 84;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 85;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 86;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 87;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 88;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 89;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 90;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 91;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 92;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 93;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 94;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 95;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 96;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 97;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 98;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 99;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 100;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 101;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 102;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 103;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 104;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 105;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 106;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 107;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 108;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 109;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 110;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 111;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 112;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 113;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 114;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 115;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 116;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 117;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 118;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 119;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 120;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 121;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 122;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 123;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 124;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 125;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 126;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 127;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 128;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 129;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 130;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 131;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 132;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 133;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 134;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 135;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 136;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 137;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 138;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 139;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 140;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 141;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 142;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 143;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 144;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 145;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 146;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 147;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 148;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 149;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 150;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 151;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 152;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 153;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 154;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 155;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 156;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 157;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 158;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 159;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 160;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 161;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 162;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 163;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 164;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 165;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 166;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 167;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 168;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 169;4;-0.995952, 0.089282, 0.001050, 0.010396;;, + 170;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 171;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 172;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 173;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 174;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 175;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 176;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 177;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 178;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 179;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 180;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 181;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 182;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 183;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 184;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 185;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 186;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 187;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 188;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 189;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 190;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 191;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 192;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 193;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 194;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 195;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 196;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 197;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 198;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 199;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 200;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 201;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 202;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 203;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 204;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 205;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 206;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 207;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 208;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 209;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 210;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 211;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 212;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 213;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 214;4;-0.988762, 0.149124,-0.000917, 0.010572;;, + 215;4;-0.989685, 0.139418,-0.000599, 0.010541;;, + 216;4;-0.992285, 0.112079, 0.000297, 0.010454;;, + 217;4;-0.995623, 0.076976, 0.001447, 0.010342;;, + 218;4;-0.998224, 0.049637, 0.002343, 0.010254;;, + 219;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 220;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 221;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 222;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 223;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 224;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 225;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 226;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 227;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 228;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 229;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 230;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 231;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 232;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 233;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 234;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 235;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 236;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 237;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 238;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 239;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 240;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 241;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 242;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 243;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 244;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 245;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 246;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 247;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 248;4;-0.999147, 0.039931, 0.002661, 0.010223;;, + 249;4;-0.999147, 0.039931, 0.002661, 0.010223;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 0.759654, 0.000000;;, + 1;3; 0.000000, 0.759654, 0.000000;;, + 2;3; 0.000000, 0.759654, 0.000000;;, + 3;3; 0.000000, 0.759654, 0.000000;;, + 4;3; 0.000000, 0.759654, 0.000000;;, + 5;3; 0.000000, 0.759654, 0.000000;;, + 6;3; 0.000000, 0.759654, 0.000000;;, + 7;3; 0.000000, 0.759654, 0.000000;;, + 8;3; 0.000000, 0.759654, 0.000000;;, + 9;3; 0.000000, 0.759654, 0.000000;;, + 10;3; 0.000000, 0.759654, 0.000000;;, + 11;3; 0.000000, 0.759654, 0.000000;;, + 12;3; 0.000000, 0.759654, 0.000000;;, + 13;3; 0.000000, 0.759654, 0.000000;;, + 14;3; 0.000000, 0.759654, 0.000000;;, + 15;3; 0.000000, 0.759654, 0.000000;;, + 16;3; 0.000000, 0.759654, 0.000000;;, + 17;3; 0.000000, 0.759654, 0.000000;;, + 18;3; 0.000000, 0.759654, 0.000000;;, + 19;3; 0.000000, 0.759654, 0.000000;;, + 20;3; 0.000000, 0.759654, 0.000000;;, + 21;3; 0.000000, 0.759654, 0.000000;;, + 22;3; 0.000000, 0.759654, 0.000000;;, + 23;3; 0.000000, 0.759654, 0.000000;;, + 24;3; 0.000000, 0.759654, 0.000000;;, + 25;3; 0.000000, 0.759654, 0.000000;;, + 26;3; 0.000000, 0.759654, 0.000000;;, + 27;3; 0.000000, 0.759654, 0.000000;;, + 28;3; 0.000000, 0.759654, 0.000000;;, + 29;3; 0.000000, 0.759654, 0.000000;;, + 30;3; 0.000000, 0.759654, 0.000000;;, + 31;3; 0.000000, 0.759654, 0.000000;;, + 32;3; 0.000000, 0.759654, 0.000000;;, + 33;3; 0.000000, 0.759654, 0.000000;;, + 34;3; 0.000000, 0.759654, 0.000000;;, + 35;3; 0.000000, 0.759654, 0.000000;;, + 36;3; 0.000000, 0.759654, 0.000000;;, + 37;3; 0.000000, 0.759654, 0.000000;;, + 38;3; 0.000000, 0.759654, 0.000000;;, + 39;3; 0.000000, 0.759654, 0.000000;;, + 40;3; 0.000000, 0.759654, 0.000000;;, + 41;3; 0.000000, 0.759654, 0.000000;;, + 42;3; 0.000000, 0.759654, 0.000000;;, + 43;3; 0.000000, 0.759654, 0.000000;;, + 44;3; 0.000000, 0.759654, 0.000000;;, + 45;3; 0.000000, 0.759654, 0.000000;;, + 46;3; 0.000000, 0.759654, 0.000000;;, + 47;3; 0.000000, 0.759654, 0.000000;;, + 48;3; 0.000000, 0.759654, 0.000000;;, + 49;3; 0.000000, 0.759654, 0.000000;;, + 50;3; 0.000000, 0.759654, 0.000000;;, + 51;3; 0.000000, 0.759654, 0.000000;;, + 52;3; 0.000000, 0.759654, 0.000000;;, + 53;3; 0.000000, 0.759654, 0.000000;;, + 54;3; 0.000000, 0.759654, 0.000000;;, + 55;3; 0.000000, 0.759654, 0.000000;;, + 56;3; 0.000000, 0.759654, 0.000000;;, + 57;3; 0.000000, 0.759654, 0.000000;;, + 58;3; 0.000000, 0.759654, 0.000000;;, + 59;3; 0.000000, 0.759654, 0.000000;;, + 60;3; 0.000000, 0.759654, 0.000000;;, + 61;3; 0.000000, 0.759654, 0.000000;;, + 62;3; 0.000000, 0.759654, 0.000000;;, + 63;3; 0.000000, 0.759654, 0.000000;;, + 64;3; 0.000000, 0.759654, 0.000000;;, + 65;3; 0.000000, 0.759654, 0.000000;;, + 66;3; 0.000000, 0.759654, 0.000000;;, + 67;3; 0.000000, 0.759654, 0.000000;;, + 68;3; 0.000000, 0.759654, 0.000000;;, + 69;3; 0.000000, 0.759654, 0.000000;;, + 70;3; 0.000000, 0.759654, 0.000000;;, + 71;3; 0.000000, 0.759654, 0.000000;;, + 72;3; 0.000000, 0.759654, 0.000000;;, + 73;3; 0.000000, 0.759654, 0.000000;;, + 74;3; 0.000000, 0.759654, 0.000000;;, + 75;3; 0.000000, 0.759654, 0.000000;;, + 76;3; 0.000000, 0.759654, 0.000000;;, + 77;3; 0.000000, 0.759654, 0.000000;;, + 78;3; 0.000000, 0.759654, 0.000000;;, + 79;3; 0.000000, 0.759654, 0.000000;;, + 80;3; 0.000000, 0.759654,-0.000000;;, + 81;3; 0.000000, 0.759654,-0.000000;;, + 82;3; 0.000000, 0.759654,-0.000000;;, + 83;3; 0.000000, 0.759654,-0.000000;;, + 84;3; 0.000000, 0.759654,-0.000000;;, + 85;3; 0.000000, 0.759654,-0.000000;;, + 86;3; 0.000000, 0.759654,-0.000000;;, + 87;3; 0.000000, 0.759654,-0.000000;;, + 88;3; 0.000000, 0.759654,-0.000000;;, + 89;3; 0.000000, 0.759654,-0.000000;;, + 90;3; 0.000000, 0.759654,-0.000000;;, + 91;3; 0.000000, 0.759654,-0.000000;;, + 92;3; 0.000000, 0.759654,-0.000000;;, + 93;3; 0.000000, 0.759654,-0.000000;;, + 94;3; 0.000000, 0.759654,-0.000000;;, + 95;3; 0.000000, 0.759654,-0.000000;;, + 96;3; 0.000000, 0.759654,-0.000000;;, + 97;3; 0.000000, 0.759654,-0.000000;;, + 98;3; 0.000000, 0.759654,-0.000000;;, + 99;3; 0.000000, 0.759654,-0.000000;;, + 100;3; 0.000000, 0.759654,-0.000000;;, + 101;3; 0.000000, 0.759654,-0.000000;;, + 102;3; 0.000000, 0.759654,-0.000000;;, + 103;3; 0.000000, 0.759654,-0.000000;;, + 104;3; 0.000000, 0.759654,-0.000000;;, + 105;3; 0.000000, 0.759654,-0.000000;;, + 106;3; 0.000000, 0.759654,-0.000000;;, + 107;3; 0.000000, 0.759654,-0.000000;;, + 108;3; 0.000000, 0.759654,-0.000000;;, + 109;3; 0.000000, 0.759654,-0.000000;;, + 110;3; 0.000000, 0.759654,-0.000000;;, + 111;3; 0.000000, 0.759654,-0.000000;;, + 112;3; 0.000000, 0.759654,-0.000000;;, + 113;3; 0.000000, 0.759654,-0.000000;;, + 114;3; 0.000000, 0.759654,-0.000000;;, + 115;3; 0.000000, 0.759654,-0.000000;;, + 116;3; 0.000000, 0.759654,-0.000000;;, + 117;3; 0.000000, 0.759654,-0.000000;;, + 118;3; 0.000000, 0.759654,-0.000000;;, + 119;3; 0.000000, 0.759654,-0.000000;;, + 120;3; 0.000000, 0.759654,-0.000000;;, + 121;3; 0.000000, 0.759654,-0.000000;;, + 122;3; 0.000000, 0.759654,-0.000000;;, + 123;3; 0.000000, 0.759654,-0.000000;;, + 124;3; 0.000000, 0.759654,-0.000000;;, + 125;3; 0.000000, 0.759654,-0.000000;;, + 126;3; 0.000000, 0.759654,-0.000000;;, + 127;3; 0.000000, 0.759654,-0.000000;;, + 128;3; 0.000000, 0.759654,-0.000000;;, + 129;3; 0.000000, 0.759654,-0.000000;;, + 130;3; 0.000000, 0.759654,-0.000000;;, + 131;3; 0.000000, 0.759654,-0.000000;;, + 132;3; 0.000000, 0.759654,-0.000000;;, + 133;3; 0.000000, 0.759654,-0.000000;;, + 134;3; 0.000000, 0.759654,-0.000000;;, + 135;3; 0.000000, 0.759654,-0.000000;;, + 136;3; 0.000000, 0.759654,-0.000000;;, + 137;3; 0.000000, 0.759654,-0.000000;;, + 138;3; 0.000000, 0.759654,-0.000000;;, + 139;3; 0.000000, 0.759654,-0.000000;;, + 140;3; 0.000000, 0.759654,-0.000000;;, + 141;3; 0.000000, 0.759654,-0.000000;;, + 142;3; 0.000000, 0.759654,-0.000000;;, + 143;3; 0.000000, 0.759654,-0.000000;;, + 144;3; 0.000000, 0.759654,-0.000000;;, + 145;3; 0.000000, 0.759654,-0.000000;;, + 146;3; 0.000000, 0.759654,-0.000000;;, + 147;3; 0.000000, 0.759654,-0.000000;;, + 148;3; 0.000000, 0.759654,-0.000000;;, + 149;3; 0.000000, 0.759654,-0.000000;;, + 150;3; 0.000000, 0.759654,-0.000000;;, + 151;3; 0.000000, 0.759654,-0.000000;;, + 152;3; 0.000000, 0.759654,-0.000000;;, + 153;3; 0.000000, 0.759654,-0.000000;;, + 154;3; 0.000000, 0.759654,-0.000000;;, + 155;3; 0.000000, 0.759654,-0.000000;;, + 156;3; 0.000000, 0.759654,-0.000000;;, + 157;3; 0.000000, 0.759654,-0.000000;;, + 158;3; 0.000000, 0.759654,-0.000000;;, + 159;3; 0.000000, 0.759654,-0.000000;;, + 160;3; 0.000000, 0.759654,-0.000000;;, + 161;3; 0.000000, 0.759654,-0.000000;;, + 162;3; 0.000000, 0.759654,-0.000000;;, + 163;3; 0.000000, 0.759654,-0.000000;;, + 164;3; 0.000000, 0.759654,-0.000000;;, + 165;3; 0.000000, 0.759654,-0.000000;;, + 166;3; 0.000000, 0.759654,-0.000000;;, + 167;3; 0.000000, 0.759654,-0.000000;;, + 168;3; 0.000000, 0.759654,-0.000000;;, + 169;3; 0.000000, 0.759654,-0.000000;;, + 170;3; 0.000000, 0.759654, 0.000000;;, + 171;3; 0.000000, 0.759654, 0.000000;;, + 172;3; 0.000000, 0.759654, 0.000000;;, + 173;3; 0.000000, 0.759654, 0.000000;;, + 174;3; 0.000000, 0.759654, 0.000000;;, + 175;3; 0.000000, 0.759654, 0.000000;;, + 176;3; 0.000000, 0.759654, 0.000000;;, + 177;3; 0.000000, 0.759654, 0.000000;;, + 178;3; 0.000000, 0.759654, 0.000000;;, + 179;3; 0.000000, 0.759654, 0.000000;;, + 180;3; 0.000000, 0.759654, 0.000000;;, + 181;3; 0.000000, 0.759654, 0.000000;;, + 182;3; 0.000000, 0.759654, 0.000000;;, + 183;3; 0.000000, 0.759654, 0.000000;;, + 184;3; 0.000000, 0.759654, 0.000000;;, + 185;3; 0.000000, 0.759654, 0.000000;;, + 186;3; 0.000000, 0.759654, 0.000000;;, + 187;3; 0.000000, 0.759654, 0.000000;;, + 188;3; 0.000000, 0.759654, 0.000000;;, + 189;3; 0.000000, 0.759654, 0.000000;;, + 190;3; 0.000000, 0.759654, 0.000000;;, + 191;3; 0.000000, 0.759654, 0.000000;;, + 192;3; 0.000000, 0.759654, 0.000000;;, + 193;3; 0.000000, 0.759654, 0.000000;;, + 194;3; 0.000000, 0.759654, 0.000000;;, + 195;3; 0.000000, 0.759654, 0.000000;;, + 196;3; 0.000000, 0.759654, 0.000000;;, + 197;3; 0.000000, 0.759654, 0.000000;;, + 198;3; 0.000000, 0.759654, 0.000000;;, + 199;3; 0.000000, 0.759654, 0.000000;;, + 200;3; 0.000000, 0.759654, 0.000000;;, + 201;3; 0.000000, 0.759654, 0.000000;;, + 202;3; 0.000000, 0.759654, 0.000000;;, + 203;3; 0.000000, 0.759654, 0.000000;;, + 204;3; 0.000000, 0.759654, 0.000000;;, + 205;3;-0.000000, 0.759654, 0.000000;;, + 206;3; 0.000000, 0.759654, 0.000000;;, + 207;3; 0.000000, 0.759654,-0.000000;;, + 208;3; 0.000000, 0.759654, 0.000000;;, + 209;3;-0.000000, 0.759654,-0.000000;;, + 210;3;-0.000000, 0.759654,-0.000000;;, + 211;3;-0.000000, 0.759654,-0.000000;;, + 212;3;-0.000000, 0.759654,-0.000000;;, + 213;3;-0.000000, 0.759654,-0.000000;;, + 214;3;-0.000000, 0.759654,-0.000000;;, + 215;3; 0.000000, 0.759654,-0.000000;;, + 216;3; 0.000000, 0.759654,-0.000000;;, + 217;3;-0.000000, 0.759654, 0.000000;;, + 218;3;-0.000000, 0.759654,-0.000000;;, + 219;3;-0.000000, 0.759654,-0.000000;;, + 220;3;-0.000000, 0.759654,-0.000000;;, + 221;3;-0.000000, 0.759654,-0.000000;;, + 222;3;-0.000000, 0.759654,-0.000000;;, + 223;3;-0.000000, 0.759654,-0.000000;;, + 224;3;-0.000000, 0.759654,-0.000000;;, + 225;3;-0.000000, 0.759654,-0.000000;;, + 226;3;-0.000000, 0.759654,-0.000000;;, + 227;3;-0.000000, 0.759654,-0.000000;;, + 228;3;-0.000000, 0.759654,-0.000000;;, + 229;3;-0.000000, 0.759654,-0.000000;;, + 230;3;-0.000000, 0.759654,-0.000000;;, + 231;3;-0.000000, 0.759654,-0.000000;;, + 232;3;-0.000000, 0.759654,-0.000000;;, + 233;3;-0.000000, 0.759654,-0.000000;;, + 234;3;-0.000000, 0.759654,-0.000000;;, + 235;3;-0.000000, 0.759654,-0.000000;;, + 236;3;-0.000000, 0.759654,-0.000000;;, + 237;3;-0.000000, 0.759654,-0.000000;;, + 238;3;-0.000000, 0.759654,-0.000000;;, + 239;3;-0.000000, 0.759654,-0.000000;;, + 240;3;-0.000000, 0.759654,-0.000000;;, + 241;3;-0.000000, 0.759654,-0.000000;;, + 242;3;-0.000000, 0.759654,-0.000000;;, + 243;3;-0.000000, 0.759654,-0.000000;;, + 244;3;-0.000000, 0.759654,-0.000000;;, + 245;3;-0.000000, 0.759654,-0.000000;;, + 246;3;-0.000000, 0.759654,-0.000000;;, + 247;3;-0.000000, 0.759654,-0.000000;;, + 248;3;-0.000000, 0.759654,-0.000000;;, + 249;3;-0.000000, 0.759654,-0.000000;;; + } + } + Animation { + {Armature_Bone_011} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 1;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 2;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 3;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 4;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 5;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 6;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 7;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 8;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 9;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 10;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 11;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 12;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 13;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 14;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 15;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 16;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 17;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 18;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 19;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 20;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 21;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 22;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 23;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 24;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 25;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 26;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 27;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 28;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 29;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 30;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 31;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 32;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 33;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 34;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 35;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 36;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 37;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 38;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 39;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 40;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 41;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 42;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 43;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 44;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 45;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 46;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 47;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 48;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 49;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 50;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 51;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 52;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 53;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 54;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 55;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 56;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 57;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 58;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 59;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 60;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 61;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 62;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 63;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 64;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 65;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 66;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 67;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 68;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 69;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 70;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 71;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 72;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 73;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 74;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 75;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 76;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 77;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 78;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 79;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 80;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 81;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 82;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 83;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 84;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 85;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 86;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 87;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 88;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 89;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 90;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 91;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 92;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 93;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 94;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 95;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 96;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 97;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 98;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 99;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 100;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 101;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 102;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 103;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 104;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 105;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 106;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 107;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 108;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 109;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 110;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 111;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 112;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 113;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 114;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 115;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 116;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 117;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 118;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 119;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 120;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 121;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 122;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 123;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 124;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 125;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 126;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 127;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 128;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 129;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 130;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 131;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 132;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 133;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 134;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 135;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 136;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 137;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 138;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 139;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 140;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 141;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 142;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 143;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 144;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 145;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 146;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 147;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 148;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 149;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 150;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 151;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 152;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 153;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 154;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 155;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 156;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 157;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 158;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 159;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 160;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 161;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 162;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 163;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 164;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 165;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 166;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 167;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 168;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 169;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 170;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 171;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 172;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 173;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 174;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 175;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 176;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 177;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 178;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 179;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 180;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 181;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 182;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 183;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 184;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 185;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 186;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 187;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 188;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 189;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 190;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 191;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 192;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 193;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 194;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 195;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 196;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 197;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 198;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 199;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 200;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 201;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 202;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 203;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 204;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 205;4;-0.996477,-0.083868, 0.000087, 0.000794;;, + 206;4;-0.996941,-0.069817,-0.000528, 0.000858;;, + 207;4;-0.998154,-0.033062,-0.002137, 0.001026;;, + 208;4;-0.999368, 0.003692,-0.003746, 0.001193;;, + 209;4;-0.999832, 0.017743,-0.004361, 0.001258;;, + 210;4;-0.999435, 0.007621,-0.003918, 0.001211;;, + 211;4;-0.998318,-0.020890,-0.002669, 0.001081;;, + 212;4;-0.996883,-0.057497,-0.001066, 0.000913;;, + 213;4;-0.995765,-0.086008, 0.000183, 0.000783;;, + 214;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 215;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 216;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 217;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 218;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 219;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 220;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 221;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 222;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 223;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 224;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 225;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 226;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 227;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 228;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 229;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 230;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 231;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 232;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 233;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 234;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 235;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 236;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 237;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 238;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 239;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 240;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 241;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 242;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 243;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 244;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 245;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 246;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 247;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 248;4;-0.995368,-0.096130, 0.000626, 0.000737;;, + 249;4;-0.995368,-0.096130, 0.000626, 0.000737;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 0.932192, 0.000000;;, + 1;3;-0.000000, 0.932193, 0.000000;;, + 2;3; 0.000000, 0.932193, 0.000000;;, + 3;3; 0.000000, 0.932193,-0.000000;;, + 4;3;-0.000000, 0.932193,-0.000000;;, + 5;3; 0.000000, 0.932193, 0.000000;;, + 6;3; 0.000000, 0.932193,-0.000000;;, + 7;3;-0.000000, 0.932193,-0.000000;;, + 8;3;-0.000000, 0.932193, 0.000000;;, + 9;3; 0.000000, 0.932193,-0.000000;;, + 10;3;-0.000000, 0.932193, 0.000000;;, + 11;3;-0.000000, 0.932193,-0.000000;;, + 12;3;-0.000000, 0.932193, 0.000000;;, + 13;3; 0.000000, 0.932193, 0.000000;;, + 14;3; 0.000000, 0.932192, 0.000000;;, + 15;3; 0.000000, 0.932192, 0.000000;;, + 16;3;-0.000000, 0.932193, 0.000000;;, + 17;3; 0.000000, 0.932193, 0.000000;;, + 18;3;-0.000000, 0.932193, 0.000000;;, + 19;3;-0.000000, 0.932193, 0.000000;;, + 20;3;-0.000000, 0.932193, 0.000000;;, + 21;3;-0.000000, 0.932193, 0.000000;;, + 22;3; 0.000000, 0.932193, 0.000000;;, + 23;3; 0.000000, 0.932193, 0.000000;;, + 24;3;-0.000000, 0.932193, 0.000000;;, + 25;3; 0.000000, 0.932193,-0.000000;;, + 26;3;-0.000000, 0.932193, 0.000000;;, + 27;3; 0.000000, 0.932193, 0.000000;;, + 28;3;-0.000000, 0.932193, 0.000000;;, + 29;3; 0.000000, 0.932193,-0.000000;;, + 30;3; 0.000000, 0.932193, 0.000000;;, + 31;3; 0.000000, 0.932192, 0.000000;;, + 32;3;-0.000000, 0.932193,-0.000000;;, + 33;3;-0.000000, 0.932193,-0.000000;;, + 34;3;-0.000000, 0.932192, 0.000000;;, + 35;3;-0.000000, 0.932193, 0.000000;;, + 36;3; 0.000000, 0.932193, 0.000000;;, + 37;3;-0.000000, 0.932193,-0.000000;;, + 38;3; 0.000000, 0.932193, 0.000000;;, + 39;3;-0.000000, 0.932193, 0.000000;;, + 40;3;-0.000000, 0.932193,-0.000000;;, + 41;3;-0.000000, 0.932193, 0.000000;;, + 42;3; 0.000000, 0.932193, 0.000000;;, + 43;3;-0.000000, 0.932193, 0.000000;;, + 44;3; 0.000000, 0.932193, 0.000000;;, + 45;3;-0.000000, 0.932193, 0.000000;;, + 46;3;-0.000000, 0.932193, 0.000000;;, + 47;3; 0.000000, 0.932193, 0.000000;;, + 48;3;-0.000000, 0.932193,-0.000000;;, + 49;3; 0.000000, 0.932193,-0.000000;;, + 50;3; 0.000000, 0.932193, 0.000000;;, + 51;3; 0.000000, 0.932192,-0.000000;;, + 52;3;-0.000000, 0.932193, 0.000000;;, + 53;3; 0.000000, 0.932193, 0.000000;;, + 54;3; 0.000000, 0.932192, 0.000000;;, + 55;3; 0.000000, 0.932192, 0.000000;;, + 56;3; 0.000000, 0.932193, 0.000000;;, + 57;3; 0.000000, 0.932192, 0.000000;;, + 58;3;-0.000000, 0.932192,-0.000000;;, + 59;3; 0.000000, 0.932193, 0.000000;;, + 60;3; 0.000000, 0.932193, 0.000000;;, + 61;3; 0.000000, 0.932192, 0.000000;;, + 62;3; 0.000000, 0.932193, 0.000000;;, + 63;3; 0.000000, 0.932193, 0.000000;;, + 64;3;-0.000000, 0.932193, 0.000000;;, + 65;3;-0.000000, 0.932192, 0.000000;;, + 66;3;-0.000000, 0.932193, 0.000000;;, + 67;3; 0.000000, 0.932192, 0.000000;;, + 68;3;-0.000000, 0.932193, 0.000000;;, + 69;3; 0.000000, 0.932193, 0.000000;;, + 70;3;-0.000000, 0.932193, 0.000000;;, + 71;3;-0.000000, 0.932193,-0.000000;;, + 72;3; 0.000000, 0.932193, 0.000000;;, + 73;3; 0.000000, 0.932193, 0.000000;;, + 74;3; 0.000000, 0.932193, 0.000000;;, + 75;3;-0.000000, 0.932193, 0.000000;;, + 76;3; 0.000000, 0.932193,-0.000000;;, + 77;3;-0.000000, 0.932193,-0.000000;;, + 78;3; 0.000000, 0.932193,-0.000000;;, + 79;3;-0.000000, 0.932193, 0.000000;;, + 80;3;-0.000000, 0.932193,-0.000000;;, + 81;3;-0.000000, 0.932193,-0.000000;;, + 82;3;-0.000000, 0.932193,-0.000000;;, + 83;3;-0.000000, 0.932193,-0.000000;;, + 84;3;-0.000000, 0.932193,-0.000000;;, + 85;3;-0.000000, 0.932193,-0.000000;;, + 86;3;-0.000000, 0.932193,-0.000000;;, + 87;3;-0.000000, 0.932193,-0.000000;;, + 88;3;-0.000000, 0.932193,-0.000000;;, + 89;3;-0.000000, 0.932193,-0.000000;;, + 90;3;-0.000000, 0.932193,-0.000000;;, + 91;3;-0.000000, 0.932193,-0.000000;;, + 92;3;-0.000000, 0.932193,-0.000000;;, + 93;3;-0.000000, 0.932193,-0.000000;;, + 94;3;-0.000000, 0.932193,-0.000000;;, + 95;3;-0.000000, 0.932193,-0.000000;;, + 96;3;-0.000000, 0.932193,-0.000000;;, + 97;3;-0.000000, 0.932193,-0.000000;;, + 98;3;-0.000000, 0.932193,-0.000000;;, + 99;3;-0.000000, 0.932193,-0.000000;;, + 100;3;-0.000000, 0.932193,-0.000000;;, + 101;3;-0.000000, 0.932193,-0.000000;;, + 102;3;-0.000000, 0.932193,-0.000000;;, + 103;3;-0.000000, 0.932193,-0.000000;;, + 104;3;-0.000000, 0.932193,-0.000000;;, + 105;3;-0.000000, 0.932193,-0.000000;;, + 106;3;-0.000000, 0.932193,-0.000000;;, + 107;3;-0.000000, 0.932193,-0.000000;;, + 108;3;-0.000000, 0.932193,-0.000000;;, + 109;3;-0.000000, 0.932193,-0.000000;;, + 110;3;-0.000000, 0.932193,-0.000000;;, + 111;3;-0.000000, 0.932193,-0.000000;;, + 112;3;-0.000000, 0.932193,-0.000000;;, + 113;3;-0.000000, 0.932193,-0.000000;;, + 114;3;-0.000000, 0.932193,-0.000000;;, + 115;3;-0.000000, 0.932193,-0.000000;;, + 116;3;-0.000000, 0.932193,-0.000000;;, + 117;3;-0.000000, 0.932193,-0.000000;;, + 118;3;-0.000000, 0.932193,-0.000000;;, + 119;3;-0.000000, 0.932193,-0.000000;;, + 120;3;-0.000000, 0.932193,-0.000000;;, + 121;3;-0.000000, 0.932193,-0.000000;;, + 122;3;-0.000000, 0.932193,-0.000000;;, + 123;3;-0.000000, 0.932193,-0.000000;;, + 124;3;-0.000000, 0.932193,-0.000000;;, + 125;3;-0.000000, 0.932193,-0.000000;;, + 126;3;-0.000000, 0.932193,-0.000000;;, + 127;3;-0.000000, 0.932193,-0.000000;;, + 128;3;-0.000000, 0.932193,-0.000000;;, + 129;3;-0.000000, 0.932193,-0.000000;;, + 130;3;-0.000000, 0.932193,-0.000000;;, + 131;3;-0.000000, 0.932193,-0.000000;;, + 132;3;-0.000000, 0.932193,-0.000000;;, + 133;3;-0.000000, 0.932193,-0.000000;;, + 134;3;-0.000000, 0.932193,-0.000000;;, + 135;3;-0.000000, 0.932193,-0.000000;;, + 136;3;-0.000000, 0.932193,-0.000000;;, + 137;3;-0.000000, 0.932193,-0.000000;;, + 138;3;-0.000000, 0.932193,-0.000000;;, + 139;3;-0.000000, 0.932193,-0.000000;;, + 140;3;-0.000000, 0.932193,-0.000000;;, + 141;3;-0.000000, 0.932193,-0.000000;;, + 142;3;-0.000000, 0.932193,-0.000000;;, + 143;3;-0.000000, 0.932193,-0.000000;;, + 144;3;-0.000000, 0.932193,-0.000000;;, + 145;3;-0.000000, 0.932193,-0.000000;;, + 146;3;-0.000000, 0.932193,-0.000000;;, + 147;3;-0.000000, 0.932193,-0.000000;;, + 148;3;-0.000000, 0.932193,-0.000000;;, + 149;3;-0.000000, 0.932193,-0.000000;;, + 150;3;-0.000000, 0.932193,-0.000000;;, + 151;3;-0.000000, 0.932193,-0.000000;;, + 152;3;-0.000000, 0.932193,-0.000000;;, + 153;3;-0.000000, 0.932193,-0.000000;;, + 154;3;-0.000000, 0.932193,-0.000000;;, + 155;3;-0.000000, 0.932193,-0.000000;;, + 156;3;-0.000000, 0.932193,-0.000000;;, + 157;3;-0.000000, 0.932193,-0.000000;;, + 158;3;-0.000000, 0.932193,-0.000000;;, + 159;3;-0.000000, 0.932193,-0.000000;;, + 160;3;-0.000000, 0.932193,-0.000000;;, + 161;3;-0.000000, 0.932193,-0.000000;;, + 162;3;-0.000000, 0.932193,-0.000000;;, + 163;3;-0.000000, 0.932193,-0.000000;;, + 164;3;-0.000000, 0.932193,-0.000000;;, + 165;3;-0.000000, 0.932193,-0.000000;;, + 166;3;-0.000000, 0.932193,-0.000000;;, + 167;3;-0.000000, 0.932193,-0.000000;;, + 168;3;-0.000000, 0.932193,-0.000000;;, + 169;3;-0.000000, 0.932193,-0.000000;;, + 170;3;-0.000000, 0.932193,-0.000000;;, + 171;3;-0.000000, 0.932193,-0.000000;;, + 172;3;-0.000000, 0.932193,-0.000000;;, + 173;3;-0.000000, 0.932193,-0.000000;;, + 174;3;-0.000000, 0.932193,-0.000000;;, + 175;3;-0.000000, 0.932193,-0.000000;;, + 176;3;-0.000000, 0.932193,-0.000000;;, + 177;3;-0.000000, 0.932193,-0.000000;;, + 178;3;-0.000000, 0.932193,-0.000000;;, + 179;3;-0.000000, 0.932193,-0.000000;;, + 180;3;-0.000000, 0.932193,-0.000000;;, + 181;3;-0.000000, 0.932193,-0.000000;;, + 182;3;-0.000000, 0.932193,-0.000000;;, + 183;3;-0.000000, 0.932193,-0.000000;;, + 184;3;-0.000000, 0.932193,-0.000000;;, + 185;3;-0.000000, 0.932193,-0.000000;;, + 186;3;-0.000000, 0.932193,-0.000000;;, + 187;3;-0.000000, 0.932193,-0.000000;;, + 188;3;-0.000000, 0.932193,-0.000000;;, + 189;3;-0.000000, 0.932193,-0.000000;;, + 190;3;-0.000000, 0.932193,-0.000000;;, + 191;3;-0.000000, 0.932193,-0.000000;;, + 192;3;-0.000000, 0.932193,-0.000000;;, + 193;3;-0.000000, 0.932193,-0.000000;;, + 194;3;-0.000000, 0.932193,-0.000000;;, + 195;3;-0.000000, 0.932193,-0.000000;;, + 196;3;-0.000000, 0.932193,-0.000000;;, + 197;3;-0.000000, 0.932193,-0.000000;;, + 198;3;-0.000000, 0.932193,-0.000000;;, + 199;3;-0.000000, 0.932193,-0.000000;;, + 200;3;-0.000000, 0.932193,-0.000000;;, + 201;3;-0.000000, 0.932193,-0.000000;;, + 202;3;-0.000000, 0.932193,-0.000000;;, + 203;3;-0.000000, 0.932193,-0.000000;;, + 204;3;-0.000000, 0.932193,-0.000000;;, + 205;3;-0.000000, 0.932193,-0.000000;;, + 206;3; 0.000000, 0.932193,-0.000000;;, + 207;3; 0.000000, 0.932193,-0.000000;;, + 208;3;-0.000000, 0.932192, 0.000000;;, + 209;3; 0.000000, 0.932193,-0.000000;;, + 210;3; 0.000000, 0.932193,-0.000000;;, + 211;3; 0.000000, 0.932193,-0.000000;;, + 212;3; 0.000000, 0.932193,-0.000000;;, + 213;3; 0.000000, 0.932193,-0.000000;;, + 214;3; 0.000000, 0.932193,-0.000000;;, + 215;3;-0.000000, 0.932192, 0.000000;;, + 216;3; 0.000000, 0.932193,-0.000000;;, + 217;3; 0.000000, 0.932193, 0.000000;;, + 218;3; 0.000000, 0.932193,-0.000000;;, + 219;3; 0.000000, 0.932193, 0.000000;;, + 220;3; 0.000000, 0.932193, 0.000000;;, + 221;3; 0.000000, 0.932193, 0.000000;;, + 222;3; 0.000000, 0.932193, 0.000000;;, + 223;3; 0.000000, 0.932193, 0.000000;;, + 224;3; 0.000000, 0.932193, 0.000000;;, + 225;3; 0.000000, 0.932193, 0.000000;;, + 226;3; 0.000000, 0.932193, 0.000000;;, + 227;3; 0.000000, 0.932193, 0.000000;;, + 228;3; 0.000000, 0.932193, 0.000000;;, + 229;3; 0.000000, 0.932193, 0.000000;;, + 230;3; 0.000000, 0.932193, 0.000000;;, + 231;3; 0.000000, 0.932193, 0.000000;;, + 232;3; 0.000000, 0.932193, 0.000000;;, + 233;3; 0.000000, 0.932193, 0.000000;;, + 234;3; 0.000000, 0.932193, 0.000000;;, + 235;3; 0.000000, 0.932193, 0.000000;;, + 236;3; 0.000000, 0.932193, 0.000000;;, + 237;3; 0.000000, 0.932193, 0.000000;;, + 238;3; 0.000000, 0.932193, 0.000000;;, + 239;3; 0.000000, 0.932193, 0.000000;;, + 240;3; 0.000000, 0.932193, 0.000000;;, + 241;3; 0.000000, 0.932193, 0.000000;;, + 242;3; 0.000000, 0.932193, 0.000000;;, + 243;3; 0.000000, 0.932193, 0.000000;;, + 244;3; 0.000000, 0.932193, 0.000000;;, + 245;3; 0.000000, 0.932193, 0.000000;;, + 246;3; 0.000000, 0.932193, 0.000000;;, + 247;3; 0.000000, 0.932193, 0.000000;;, + 248;3; 0.000000, 0.932193, 0.000000;;, + 249;3; 0.000000, 0.932193, 0.000000;;; + } + } + Animation { + {Armature_Bone_016} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 1;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 2;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 3;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 4;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 5;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 6;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 7;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 8;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 9;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 10;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 11;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 12;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 13;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 14;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 15;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 16;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 17;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 18;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 19;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 20;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 21;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 22;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 23;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 24;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 25;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 26;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 27;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 28;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 29;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 30;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 31;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 32;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 33;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 34;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 35;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 36;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 37;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 38;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 39;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 40;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 41;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 42;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 43;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 44;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 45;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 46;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 47;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 48;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 49;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 50;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 51;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 52;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 53;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 54;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 55;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 56;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 57;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 58;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 59;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 60;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 61;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 62;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 63;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 64;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 65;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 66;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 67;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 68;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 69;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 70;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 71;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 72;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 73;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 74;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 75;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 76;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 77;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 78;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 79;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 80;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 81;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 82;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 83;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 84;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 85;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 86;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 87;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 88;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 89;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 90;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 91;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 92;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 93;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 94;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 95;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 96;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 97;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 98;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 99;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 100;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 101;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 102;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 103;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 104;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 105;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 106;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 107;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 108;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 109;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 110;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 111;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 112;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 113;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 114;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 115;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 116;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 117;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 118;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 119;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 120;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 121;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 122;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 123;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 124;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 125;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 126;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 127;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 128;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 129;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 130;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 131;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 132;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 133;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 134;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 135;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 136;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 137;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 138;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 139;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 140;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 141;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 142;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 143;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 144;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 145;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 146;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 147;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 148;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 149;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 150;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 151;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 152;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 153;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 154;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 155;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 156;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 157;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 158;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 159;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 160;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 161;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 162;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 163;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 164;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 165;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 166;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 167;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 168;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 169;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 170;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 171;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 172;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 173;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 174;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 175;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 176;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 177;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 178;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 179;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 180;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 181;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 182;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 183;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 184;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 185;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 186;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 187;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 188;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 189;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 190;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 191;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 192;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 193;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 194;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 195;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 196;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 197;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 198;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 199;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 200;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 201;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 202;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 203;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 204;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 205;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 206;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 207;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 208;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 209;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 210;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 211;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 212;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 213;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 214;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 215;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 216;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 217;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 218;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 219;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 220;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 221;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 222;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 223;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 224;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 225;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 226;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 227;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 228;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 229;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 230;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 231;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 232;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 233;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 234;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 235;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 236;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 237;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 238;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 239;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 240;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 241;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 242;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 243;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 244;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 245;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 246;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 247;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 248;4;-0.507682,-0.327012,-0.648872, 0.462912;;, + 249;4;-0.507682,-0.327012,-0.648872, 0.462912;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 0.932192, 0.000000;;, + 1;3;-0.000000, 0.932193, 0.000000;;, + 2;3; 0.000000, 0.932193, 0.000000;;, + 3;3; 0.000000, 0.932193,-0.000000;;, + 4;3;-0.000000, 0.932193,-0.000000;;, + 5;3; 0.000000, 0.932193, 0.000000;;, + 6;3; 0.000000, 0.932193,-0.000000;;, + 7;3;-0.000000, 0.932193,-0.000000;;, + 8;3;-0.000000, 0.932193, 0.000000;;, + 9;3; 0.000000, 0.932193,-0.000000;;, + 10;3;-0.000000, 0.932193, 0.000000;;, + 11;3;-0.000000, 0.932193,-0.000000;;, + 12;3;-0.000000, 0.932193, 0.000000;;, + 13;3; 0.000000, 0.932193, 0.000000;;, + 14;3; 0.000000, 0.932192, 0.000000;;, + 15;3; 0.000000, 0.932192, 0.000000;;, + 16;3;-0.000000, 0.932193, 0.000000;;, + 17;3; 0.000000, 0.932193, 0.000000;;, + 18;3;-0.000000, 0.932193, 0.000000;;, + 19;3;-0.000000, 0.932193, 0.000000;;, + 20;3;-0.000000, 0.932193, 0.000000;;, + 21;3;-0.000000, 0.932193, 0.000000;;, + 22;3; 0.000000, 0.932193, 0.000000;;, + 23;3; 0.000000, 0.932193, 0.000000;;, + 24;3;-0.000000, 0.932193, 0.000000;;, + 25;3; 0.000000, 0.932193,-0.000000;;, + 26;3;-0.000000, 0.932193, 0.000000;;, + 27;3; 0.000000, 0.932193, 0.000000;;, + 28;3;-0.000000, 0.932193, 0.000000;;, + 29;3; 0.000000, 0.932193,-0.000000;;, + 30;3; 0.000000, 0.932193, 0.000000;;, + 31;3; 0.000000, 0.932192, 0.000000;;, + 32;3;-0.000000, 0.932193,-0.000000;;, + 33;3;-0.000000, 0.932193,-0.000000;;, + 34;3;-0.000000, 0.932192, 0.000000;;, + 35;3;-0.000000, 0.932193, 0.000000;;, + 36;3; 0.000000, 0.932193, 0.000000;;, + 37;3;-0.000000, 0.932193,-0.000000;;, + 38;3; 0.000000, 0.932193, 0.000000;;, + 39;3;-0.000000, 0.932193, 0.000000;;, + 40;3;-0.000000, 0.932193,-0.000000;;, + 41;3;-0.000000, 0.932193, 0.000000;;, + 42;3; 0.000000, 0.932193, 0.000000;;, + 43;3;-0.000000, 0.932193, 0.000000;;, + 44;3; 0.000000, 0.932193, 0.000000;;, + 45;3;-0.000000, 0.932193, 0.000000;;, + 46;3;-0.000000, 0.932193, 0.000000;;, + 47;3; 0.000000, 0.932193, 0.000000;;, + 48;3;-0.000000, 0.932193,-0.000000;;, + 49;3; 0.000000, 0.932193,-0.000000;;, + 50;3; 0.000000, 0.932193, 0.000000;;, + 51;3; 0.000000, 0.932192,-0.000000;;, + 52;3;-0.000000, 0.932193, 0.000000;;, + 53;3; 0.000000, 0.932193, 0.000000;;, + 54;3; 0.000000, 0.932192, 0.000000;;, + 55;3; 0.000000, 0.932192, 0.000000;;, + 56;3; 0.000000, 0.932193, 0.000000;;, + 57;3; 0.000000, 0.932192, 0.000000;;, + 58;3;-0.000000, 0.932192,-0.000000;;, + 59;3; 0.000000, 0.932193, 0.000000;;, + 60;3; 0.000000, 0.932193, 0.000000;;, + 61;3; 0.000000, 0.932192, 0.000000;;, + 62;3; 0.000000, 0.932193, 0.000000;;, + 63;3; 0.000000, 0.932193, 0.000000;;, + 64;3;-0.000000, 0.932193, 0.000000;;, + 65;3;-0.000000, 0.932192, 0.000000;;, + 66;3;-0.000000, 0.932193, 0.000000;;, + 67;3; 0.000000, 0.932192, 0.000000;;, + 68;3;-0.000000, 0.932193, 0.000000;;, + 69;3; 0.000000, 0.932193, 0.000000;;, + 70;3;-0.000000, 0.932193, 0.000000;;, + 71;3;-0.000000, 0.932193,-0.000000;;, + 72;3; 0.000000, 0.932193, 0.000000;;, + 73;3; 0.000000, 0.932193, 0.000000;;, + 74;3; 0.000000, 0.932193, 0.000000;;, + 75;3;-0.000000, 0.932193, 0.000000;;, + 76;3; 0.000000, 0.932193,-0.000000;;, + 77;3;-0.000000, 0.932193,-0.000000;;, + 78;3; 0.000000, 0.932193,-0.000000;;, + 79;3;-0.000000, 0.932193, 0.000000;;, + 80;3;-0.000000, 0.932193,-0.000000;;, + 81;3;-0.000000, 0.932193,-0.000000;;, + 82;3;-0.000000, 0.932193,-0.000000;;, + 83;3;-0.000000, 0.932193,-0.000000;;, + 84;3;-0.000000, 0.932193,-0.000000;;, + 85;3;-0.000000, 0.932193,-0.000000;;, + 86;3;-0.000000, 0.932193,-0.000000;;, + 87;3;-0.000000, 0.932193,-0.000000;;, + 88;3;-0.000000, 0.932193,-0.000000;;, + 89;3;-0.000000, 0.932193,-0.000000;;, + 90;3;-0.000000, 0.932193,-0.000000;;, + 91;3;-0.000000, 0.932193,-0.000000;;, + 92;3;-0.000000, 0.932193,-0.000000;;, + 93;3;-0.000000, 0.932193,-0.000000;;, + 94;3;-0.000000, 0.932193,-0.000000;;, + 95;3;-0.000000, 0.932193,-0.000000;;, + 96;3;-0.000000, 0.932193,-0.000000;;, + 97;3;-0.000000, 0.932193,-0.000000;;, + 98;3;-0.000000, 0.932193,-0.000000;;, + 99;3;-0.000000, 0.932193,-0.000000;;, + 100;3;-0.000000, 0.932193,-0.000000;;, + 101;3;-0.000000, 0.932193,-0.000000;;, + 102;3;-0.000000, 0.932193,-0.000000;;, + 103;3;-0.000000, 0.932193,-0.000000;;, + 104;3;-0.000000, 0.932193,-0.000000;;, + 105;3;-0.000000, 0.932193,-0.000000;;, + 106;3;-0.000000, 0.932193,-0.000000;;, + 107;3;-0.000000, 0.932193,-0.000000;;, + 108;3;-0.000000, 0.932193,-0.000000;;, + 109;3;-0.000000, 0.932193,-0.000000;;, + 110;3;-0.000000, 0.932193,-0.000000;;, + 111;3;-0.000000, 0.932193,-0.000000;;, + 112;3;-0.000000, 0.932193,-0.000000;;, + 113;3;-0.000000, 0.932193,-0.000000;;, + 114;3;-0.000000, 0.932193,-0.000000;;, + 115;3;-0.000000, 0.932193,-0.000000;;, + 116;3;-0.000000, 0.932193,-0.000000;;, + 117;3;-0.000000, 0.932193,-0.000000;;, + 118;3;-0.000000, 0.932193,-0.000000;;, + 119;3;-0.000000, 0.932193,-0.000000;;, + 120;3;-0.000000, 0.932193,-0.000000;;, + 121;3;-0.000000, 0.932193,-0.000000;;, + 122;3;-0.000000, 0.932193,-0.000000;;, + 123;3;-0.000000, 0.932193,-0.000000;;, + 124;3;-0.000000, 0.932193,-0.000000;;, + 125;3;-0.000000, 0.932193,-0.000000;;, + 126;3;-0.000000, 0.932193,-0.000000;;, + 127;3;-0.000000, 0.932193,-0.000000;;, + 128;3;-0.000000, 0.932193,-0.000000;;, + 129;3;-0.000000, 0.932193,-0.000000;;, + 130;3;-0.000000, 0.932193,-0.000000;;, + 131;3;-0.000000, 0.932193,-0.000000;;, + 132;3;-0.000000, 0.932193,-0.000000;;, + 133;3;-0.000000, 0.932193,-0.000000;;, + 134;3;-0.000000, 0.932193,-0.000000;;, + 135;3;-0.000000, 0.932193,-0.000000;;, + 136;3;-0.000000, 0.932193,-0.000000;;, + 137;3;-0.000000, 0.932193,-0.000000;;, + 138;3;-0.000000, 0.932193,-0.000000;;, + 139;3;-0.000000, 0.932193,-0.000000;;, + 140;3;-0.000000, 0.932193,-0.000000;;, + 141;3;-0.000000, 0.932193,-0.000000;;, + 142;3;-0.000000, 0.932193,-0.000000;;, + 143;3;-0.000000, 0.932193,-0.000000;;, + 144;3;-0.000000, 0.932193,-0.000000;;, + 145;3;-0.000000, 0.932193,-0.000000;;, + 146;3;-0.000000, 0.932193,-0.000000;;, + 147;3;-0.000000, 0.932193,-0.000000;;, + 148;3;-0.000000, 0.932193,-0.000000;;, + 149;3;-0.000000, 0.932193,-0.000000;;, + 150;3;-0.000000, 0.932193,-0.000000;;, + 151;3;-0.000000, 0.932193,-0.000000;;, + 152;3;-0.000000, 0.932193,-0.000000;;, + 153;3;-0.000000, 0.932193,-0.000000;;, + 154;3;-0.000000, 0.932193,-0.000000;;, + 155;3;-0.000000, 0.932193,-0.000000;;, + 156;3;-0.000000, 0.932193,-0.000000;;, + 157;3;-0.000000, 0.932193,-0.000000;;, + 158;3;-0.000000, 0.932193,-0.000000;;, + 159;3;-0.000000, 0.932193,-0.000000;;, + 160;3;-0.000000, 0.932193,-0.000000;;, + 161;3;-0.000000, 0.932193,-0.000000;;, + 162;3;-0.000000, 0.932193,-0.000000;;, + 163;3;-0.000000, 0.932193,-0.000000;;, + 164;3;-0.000000, 0.932193,-0.000000;;, + 165;3;-0.000000, 0.932193,-0.000000;;, + 166;3;-0.000000, 0.932193,-0.000000;;, + 167;3;-0.000000, 0.932193,-0.000000;;, + 168;3;-0.000000, 0.932193,-0.000000;;, + 169;3;-0.000000, 0.932193,-0.000000;;, + 170;3;-0.000000, 0.932193,-0.000000;;, + 171;3;-0.000000, 0.932193,-0.000000;;, + 172;3;-0.000000, 0.932193,-0.000000;;, + 173;3;-0.000000, 0.932193,-0.000000;;, + 174;3;-0.000000, 0.932193,-0.000000;;, + 175;3;-0.000000, 0.932193,-0.000000;;, + 176;3;-0.000000, 0.932193,-0.000000;;, + 177;3;-0.000000, 0.932193,-0.000000;;, + 178;3;-0.000000, 0.932193,-0.000000;;, + 179;3;-0.000000, 0.932193,-0.000000;;, + 180;3;-0.000000, 0.932193,-0.000000;;, + 181;3;-0.000000, 0.932193,-0.000000;;, + 182;3;-0.000000, 0.932193,-0.000000;;, + 183;3;-0.000000, 0.932193,-0.000000;;, + 184;3;-0.000000, 0.932193,-0.000000;;, + 185;3;-0.000000, 0.932193,-0.000000;;, + 186;3;-0.000000, 0.932193,-0.000000;;, + 187;3;-0.000000, 0.932193,-0.000000;;, + 188;3;-0.000000, 0.932193,-0.000000;;, + 189;3;-0.000000, 0.932193,-0.000000;;, + 190;3;-0.000000, 0.932193,-0.000000;;, + 191;3;-0.000000, 0.932193,-0.000000;;, + 192;3;-0.000000, 0.932193,-0.000000;;, + 193;3;-0.000000, 0.932193,-0.000000;;, + 194;3;-0.000000, 0.932193,-0.000000;;, + 195;3;-0.000000, 0.932193,-0.000000;;, + 196;3;-0.000000, 0.932193,-0.000000;;, + 197;3;-0.000000, 0.932193,-0.000000;;, + 198;3;-0.000000, 0.932193,-0.000000;;, + 199;3;-0.000000, 0.932193,-0.000000;;, + 200;3;-0.000000, 0.932193,-0.000000;;, + 201;3;-0.000000, 0.932193,-0.000000;;, + 202;3;-0.000000, 0.932193,-0.000000;;, + 203;3;-0.000000, 0.932193,-0.000000;;, + 204;3;-0.000000, 0.932193,-0.000000;;, + 205;3;-0.000000, 0.932193,-0.000000;;, + 206;3; 0.000000, 0.932193,-0.000000;;, + 207;3; 0.000000, 0.932193,-0.000000;;, + 208;3;-0.000000, 0.932192, 0.000000;;, + 209;3; 0.000000, 0.932193,-0.000000;;, + 210;3; 0.000000, 0.932193,-0.000000;;, + 211;3; 0.000000, 0.932193,-0.000000;;, + 212;3; 0.000000, 0.932193,-0.000000;;, + 213;3; 0.000000, 0.932193,-0.000000;;, + 214;3; 0.000000, 0.932193,-0.000000;;, + 215;3;-0.000000, 0.932192, 0.000000;;, + 216;3; 0.000000, 0.932193,-0.000000;;, + 217;3; 0.000000, 0.932193, 0.000000;;, + 218;3; 0.000000, 0.932193,-0.000000;;, + 219;3; 0.000000, 0.932193, 0.000000;;, + 220;3; 0.000000, 0.932193, 0.000000;;, + 221;3; 0.000000, 0.932193, 0.000000;;, + 222;3; 0.000000, 0.932193, 0.000000;;, + 223;3; 0.000000, 0.932193, 0.000000;;, + 224;3; 0.000000, 0.932193, 0.000000;;, + 225;3; 0.000000, 0.932193, 0.000000;;, + 226;3; 0.000000, 0.932193, 0.000000;;, + 227;3; 0.000000, 0.932193, 0.000000;;, + 228;3; 0.000000, 0.932193, 0.000000;;, + 229;3; 0.000000, 0.932193, 0.000000;;, + 230;3; 0.000000, 0.932193, 0.000000;;, + 231;3; 0.000000, 0.932193, 0.000000;;, + 232;3; 0.000000, 0.932193, 0.000000;;, + 233;3; 0.000000, 0.932193, 0.000000;;, + 234;3; 0.000000, 0.932193, 0.000000;;, + 235;3; 0.000000, 0.932193, 0.000000;;, + 236;3; 0.000000, 0.932193, 0.000000;;, + 237;3; 0.000000, 0.932193, 0.000000;;, + 238;3; 0.000000, 0.932193, 0.000000;;, + 239;3; 0.000000, 0.932193, 0.000000;;, + 240;3; 0.000000, 0.932193, 0.000000;;, + 241;3; 0.000000, 0.932193, 0.000000;;, + 242;3; 0.000000, 0.932193, 0.000000;;, + 243;3; 0.000000, 0.932193, 0.000000;;, + 244;3; 0.000000, 0.932193, 0.000000;;, + 245;3; 0.000000, 0.932193, 0.000000;;, + 246;3; 0.000000, 0.932193, 0.000000;;, + 247;3; 0.000000, 0.932193, 0.000000;;, + 248;3; 0.000000, 0.932193, 0.000000;;, + 249;3; 0.000000, 0.932193, 0.000000;;; + } + } + Animation { + {Armature_Bone_017} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 1;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 2;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 3;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 4;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 5;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 6;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 7;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 8;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 9;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 10;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 11;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 12;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 13;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 14;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 15;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 16;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 17;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 18;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 19;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 20;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 21;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 22;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 23;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 24;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 25;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 26;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 27;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 28;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 29;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 30;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 31;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 32;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 33;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 34;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 35;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 36;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 37;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 38;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 39;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 40;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 41;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 42;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 43;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 44;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 45;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 46;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 47;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 48;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 49;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 50;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 51;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 52;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 53;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 54;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 55;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 56;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 57;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 58;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 59;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 60;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 61;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 62;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 63;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 64;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 65;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 66;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 67;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 68;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 69;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 70;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 71;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 72;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 73;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 74;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 75;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 76;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 77;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 78;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 79;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 80;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 81;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 82;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 83;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 84;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 85;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 86;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 87;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 88;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 89;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 90;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 91;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 92;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 93;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 94;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 95;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 96;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 97;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 98;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 99;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 100;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 101;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 102;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 103;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 104;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 105;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 106;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 107;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 108;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 109;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 110;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 111;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 112;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 113;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 114;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 115;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 116;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 117;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 118;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 119;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 120;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 121;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 122;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 123;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 124;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 125;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 126;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 127;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 128;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 129;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 130;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 131;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 132;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 133;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 134;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 135;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 136;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 137;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 138;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 139;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 140;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 141;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 142;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 143;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 144;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 145;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 146;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 147;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 148;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 149;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 150;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 151;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 152;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 153;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 154;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 155;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 156;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 157;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 158;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 159;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 160;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 161;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 162;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 163;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 164;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 165;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 166;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 167;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 168;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 169;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 170;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 171;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 172;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 173;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 174;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 175;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 176;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 177;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 178;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 179;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 180;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 181;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 182;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 183;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 184;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 185;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 186;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 187;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 188;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 189;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 190;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 191;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 192;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 193;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 194;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 195;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 196;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 197;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 198;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 199;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 200;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 201;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 202;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 203;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 204;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 205;4;-0.538086, 0.283191, 0.685584,-0.400301;;, + 206;4;-0.540873, 0.276587, 0.690558,-0.391286;;, + 207;4;-0.548164, 0.259311, 0.703569,-0.367706;;, + 208;4;-0.555454, 0.242035, 0.716580,-0.344126;;, + 209;4;-0.558242, 0.235430, 0.721554,-0.335111;;, + 210;4;-0.555035, 0.242394, 0.715943,-0.344611;;, + 211;4;-0.546003, 0.262010, 0.700140,-0.371369;;, + 212;4;-0.534406, 0.287197, 0.679848,-0.405727;;, + 213;4;-0.525374, 0.306813, 0.664045,-0.432485;;, + 214;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 215;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 216;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 217;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 218;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 219;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 220;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 221;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 222;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 223;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 224;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 225;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 226;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 227;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 228;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 229;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 230;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 231;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 232;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 233;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 234;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 235;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 236;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 237;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 238;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 239;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 240;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 241;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 242;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 243;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 244;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 245;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 246;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 247;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 248;4;-0.522167, 0.313777, 0.658434,-0.441985;;, + 249;4;-0.522167, 0.313777, 0.658434,-0.441985;;; + } + AnimationKey { // Scale + 1; + 250; + 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, 0.999999, 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 0.774397, 0.000000;;, + 1;3; 0.000000, 0.774398,-0.000000;;, + 2;3;-0.000000, 0.774398, 0.000000;;, + 3;3; 0.000000, 0.774398, 0.000000;;, + 4;3; 0.000000, 0.774397,-0.000000;;, + 5;3; 0.000000, 0.774398, 0.000000;;, + 6;3;-0.000000, 0.774398,-0.000000;;, + 7;3; 0.000000, 0.774397,-0.000000;;, + 8;3; 0.000000, 0.774398,-0.000000;;, + 9;3;-0.000000, 0.774398, 0.000000;;, + 10;3; 0.000000, 0.774397,-0.000000;;, + 11;3;-0.000000, 0.774398, 0.000000;;, + 12;3; 0.000000, 0.774398,-0.000000;;, + 13;3; 0.000000, 0.774397,-0.000000;;, + 14;3; 0.000000, 0.774397, 0.000000;;, + 15;3;-0.000000, 0.774397, 0.000000;;, + 16;3; 0.000000, 0.774398, 0.000000;;, + 17;3; 0.000000, 0.774398, 0.000000;;, + 18;3; 0.000000, 0.774398, 0.000000;;, + 19;3;-0.000000, 0.774397, 0.000000;;, + 20;3; 0.000000, 0.774398, 0.000000;;, + 21;3; 0.000000, 0.774398, 0.000000;;, + 22;3;-0.000000, 0.774398, 0.000000;;, + 23;3;-0.000000, 0.774398,-0.000000;;, + 24;3;-0.000000, 0.774398, 0.000000;;, + 25;3;-0.000000, 0.774398, 0.000000;;, + 26;3; 0.000000, 0.774398,-0.000000;;, + 27;3;-0.000000, 0.774397, 0.000000;;, + 28;3; 0.000000, 0.774398, 0.000000;;, + 29;3;-0.000000, 0.774397, 0.000000;;, + 30;3;-0.000000, 0.774397, 0.000000;;, + 31;3; 0.000000, 0.774398, 0.000000;;, + 32;3;-0.000000, 0.774398, 0.000000;;, + 33;3; 0.000000, 0.774398,-0.000000;;, + 34;3; 0.000000, 0.774397, 0.000000;;, + 35;3; 0.000000, 0.774398,-0.000000;;, + 36;3; 0.000000, 0.774398, 0.000000;;, + 37;3; 0.000000, 0.774398, 0.000000;;, + 38;3; 0.000000, 0.774398, 0.000000;;, + 39;3; 0.000000, 0.774397, 0.000000;;, + 40;3;-0.000000, 0.774398,-0.000000;;, + 41;3;-0.000000, 0.774398,-0.000000;;, + 42;3;-0.000000, 0.774398, 0.000000;;, + 43;3; 0.000000, 0.774397,-0.000000;;, + 44;3; 0.000000, 0.774398,-0.000000;;, + 45;3; 0.000000, 0.774398, 0.000000;;, + 46;3; 0.000000, 0.774397,-0.000000;;, + 47;3;-0.000000, 0.774398,-0.000000;;, + 48;3;-0.000000, 0.774398, 0.000000;;, + 49;3;-0.000000, 0.774397, 0.000000;;, + 50;3;-0.000000, 0.774398, 0.000000;;, + 51;3;-0.000000, 0.774398, 0.000000;;, + 52;3; 0.000000, 0.774398, 0.000000;;, + 53;3; 0.000000, 0.774398, 0.000000;;, + 54;3;-0.000000, 0.774398, 0.000000;;, + 55;3; 0.000000, 0.774398, 0.000000;;, + 56;3; 0.000000, 0.774397,-0.000000;;, + 57;3;-0.000000, 0.774398,-0.000000;;, + 58;3;-0.000000, 0.774398, 0.000000;;, + 59;3;-0.000000, 0.774398,-0.000000;;, + 60;3; 0.000000, 0.774398, 0.000000;;, + 61;3; 0.000000, 0.774397,-0.000000;;, + 62;3;-0.000000, 0.774398, 0.000000;;, + 63;3;-0.000000, 0.774398, 0.000000;;, + 64;3; 0.000000, 0.774397,-0.000000;;, + 65;3;-0.000000, 0.774398, 0.000000;;, + 66;3;-0.000000, 0.774398,-0.000000;;, + 67;3; 0.000000, 0.774398, 0.000000;;, + 68;3;-0.000000, 0.774398,-0.000000;;, + 69;3;-0.000000, 0.774398,-0.000000;;, + 70;3;-0.000000, 0.774398,-0.000000;;, + 71;3;-0.000000, 0.774397,-0.000000;;, + 72;3; 0.000000, 0.774398,-0.000000;;, + 73;3;-0.000000, 0.774397,-0.000000;;, + 74;3; 0.000000, 0.774398, 0.000000;;, + 75;3;-0.000000, 0.774398, 0.000000;;, + 76;3; 0.000000, 0.774398, 0.000000;;, + 77;3;-0.000000, 0.774397,-0.000000;;, + 78;3; 0.000000, 0.774398,-0.000000;;, + 79;3; 0.000000, 0.774398, 0.000000;;, + 80;3; 0.000000, 0.774398,-0.000000;;, + 81;3; 0.000000, 0.774398,-0.000000;;, + 82;3; 0.000000, 0.774398,-0.000000;;, + 83;3; 0.000000, 0.774398,-0.000000;;, + 84;3; 0.000000, 0.774398,-0.000000;;, + 85;3; 0.000000, 0.774398,-0.000000;;, + 86;3; 0.000000, 0.774398,-0.000000;;, + 87;3; 0.000000, 0.774398,-0.000000;;, + 88;3; 0.000000, 0.774398,-0.000000;;, + 89;3; 0.000000, 0.774398,-0.000000;;, + 90;3; 0.000000, 0.774398,-0.000000;;, + 91;3; 0.000000, 0.774398,-0.000000;;, + 92;3; 0.000000, 0.774398,-0.000000;;, + 93;3; 0.000000, 0.774398,-0.000000;;, + 94;3; 0.000000, 0.774398,-0.000000;;, + 95;3; 0.000000, 0.774398,-0.000000;;, + 96;3; 0.000000, 0.774398,-0.000000;;, + 97;3; 0.000000, 0.774398,-0.000000;;, + 98;3; 0.000000, 0.774398,-0.000000;;, + 99;3; 0.000000, 0.774398,-0.000000;;, + 100;3; 0.000000, 0.774398,-0.000000;;, + 101;3; 0.000000, 0.774398,-0.000000;;, + 102;3; 0.000000, 0.774398,-0.000000;;, + 103;3; 0.000000, 0.774398,-0.000000;;, + 104;3; 0.000000, 0.774398,-0.000000;;, + 105;3; 0.000000, 0.774398,-0.000000;;, + 106;3; 0.000000, 0.774398,-0.000000;;, + 107;3; 0.000000, 0.774398,-0.000000;;, + 108;3; 0.000000, 0.774398,-0.000000;;, + 109;3; 0.000000, 0.774398,-0.000000;;, + 110;3; 0.000000, 0.774398,-0.000000;;, + 111;3; 0.000000, 0.774398,-0.000000;;, + 112;3; 0.000000, 0.774398,-0.000000;;, + 113;3; 0.000000, 0.774398,-0.000000;;, + 114;3; 0.000000, 0.774398,-0.000000;;, + 115;3; 0.000000, 0.774398,-0.000000;;, + 116;3; 0.000000, 0.774398,-0.000000;;, + 117;3; 0.000000, 0.774398,-0.000000;;, + 118;3; 0.000000, 0.774398,-0.000000;;, + 119;3; 0.000000, 0.774398,-0.000000;;, + 120;3; 0.000000, 0.774398,-0.000000;;, + 121;3; 0.000000, 0.774398,-0.000000;;, + 122;3; 0.000000, 0.774398,-0.000000;;, + 123;3; 0.000000, 0.774398,-0.000000;;, + 124;3; 0.000000, 0.774398,-0.000000;;, + 125;3; 0.000000, 0.774398,-0.000000;;, + 126;3; 0.000000, 0.774398,-0.000000;;, + 127;3; 0.000000, 0.774398,-0.000000;;, + 128;3; 0.000000, 0.774398,-0.000000;;, + 129;3; 0.000000, 0.774398,-0.000000;;, + 130;3; 0.000000, 0.774398,-0.000000;;, + 131;3; 0.000000, 0.774398,-0.000000;;, + 132;3; 0.000000, 0.774398,-0.000000;;, + 133;3; 0.000000, 0.774398,-0.000000;;, + 134;3; 0.000000, 0.774398,-0.000000;;, + 135;3; 0.000000, 0.774398,-0.000000;;, + 136;3; 0.000000, 0.774398,-0.000000;;, + 137;3; 0.000000, 0.774398,-0.000000;;, + 138;3; 0.000000, 0.774398,-0.000000;;, + 139;3; 0.000000, 0.774398,-0.000000;;, + 140;3; 0.000000, 0.774398,-0.000000;;, + 141;3; 0.000000, 0.774398,-0.000000;;, + 142;3; 0.000000, 0.774398,-0.000000;;, + 143;3; 0.000000, 0.774398,-0.000000;;, + 144;3; 0.000000, 0.774398,-0.000000;;, + 145;3; 0.000000, 0.774398,-0.000000;;, + 146;3; 0.000000, 0.774398,-0.000000;;, + 147;3; 0.000000, 0.774398,-0.000000;;, + 148;3; 0.000000, 0.774398,-0.000000;;, + 149;3; 0.000000, 0.774398,-0.000000;;, + 150;3; 0.000000, 0.774398,-0.000000;;, + 151;3; 0.000000, 0.774398,-0.000000;;, + 152;3; 0.000000, 0.774398,-0.000000;;, + 153;3; 0.000000, 0.774398,-0.000000;;, + 154;3; 0.000000, 0.774398,-0.000000;;, + 155;3; 0.000000, 0.774398,-0.000000;;, + 156;3; 0.000000, 0.774398,-0.000000;;, + 157;3; 0.000000, 0.774398,-0.000000;;, + 158;3; 0.000000, 0.774398,-0.000000;;, + 159;3; 0.000000, 0.774398,-0.000000;;, + 160;3; 0.000000, 0.774398,-0.000000;;, + 161;3; 0.000000, 0.774398,-0.000000;;, + 162;3; 0.000000, 0.774398,-0.000000;;, + 163;3; 0.000000, 0.774398,-0.000000;;, + 164;3; 0.000000, 0.774398,-0.000000;;, + 165;3; 0.000000, 0.774398,-0.000000;;, + 166;3; 0.000000, 0.774398,-0.000000;;, + 167;3; 0.000000, 0.774398,-0.000000;;, + 168;3; 0.000000, 0.774398,-0.000000;;, + 169;3; 0.000000, 0.774398,-0.000000;;, + 170;3;-0.000000, 0.774398, 0.000000;;, + 171;3;-0.000000, 0.774398, 0.000000;;, + 172;3;-0.000000, 0.774398, 0.000000;;, + 173;3;-0.000000, 0.774398, 0.000000;;, + 174;3;-0.000000, 0.774398, 0.000000;;, + 175;3;-0.000000, 0.774398, 0.000000;;, + 176;3;-0.000000, 0.774398, 0.000000;;, + 177;3;-0.000000, 0.774398, 0.000000;;, + 178;3;-0.000000, 0.774398, 0.000000;;, + 179;3;-0.000000, 0.774398, 0.000000;;, + 180;3;-0.000000, 0.774398, 0.000000;;, + 181;3;-0.000000, 0.774398, 0.000000;;, + 182;3;-0.000000, 0.774398, 0.000000;;, + 183;3;-0.000000, 0.774398, 0.000000;;, + 184;3;-0.000000, 0.774398, 0.000000;;, + 185;3;-0.000000, 0.774398, 0.000000;;, + 186;3;-0.000000, 0.774398, 0.000000;;, + 187;3;-0.000000, 0.774398, 0.000000;;, + 188;3;-0.000000, 0.774398, 0.000000;;, + 189;3;-0.000000, 0.774398, 0.000000;;, + 190;3;-0.000000, 0.774398, 0.000000;;, + 191;3;-0.000000, 0.774398, 0.000000;;, + 192;3;-0.000000, 0.774398, 0.000000;;, + 193;3;-0.000000, 0.774398, 0.000000;;, + 194;3;-0.000000, 0.774398, 0.000000;;, + 195;3;-0.000000, 0.774398, 0.000000;;, + 196;3;-0.000000, 0.774398, 0.000000;;, + 197;3;-0.000000, 0.774398, 0.000000;;, + 198;3;-0.000000, 0.774398, 0.000000;;, + 199;3;-0.000000, 0.774398, 0.000000;;, + 200;3;-0.000000, 0.774398, 0.000000;;, + 201;3;-0.000000, 0.774398, 0.000000;;, + 202;3;-0.000000, 0.774398, 0.000000;;, + 203;3;-0.000000, 0.774398, 0.000000;;, + 204;3;-0.000000, 0.774398, 0.000000;;, + 205;3;-0.000000, 0.774398, 0.000000;;, + 206;3;-0.000000, 0.774398,-0.000000;;, + 207;3; 0.000000, 0.774398,-0.000000;;, + 208;3;-0.000000, 0.774398,-0.000000;;, + 209;3;-0.000000, 0.774398, 0.000000;;, + 210;3;-0.000000, 0.774398, 0.000000;;, + 211;3;-0.000000, 0.774398, 0.000000;;, + 212;3;-0.000000, 0.774398, 0.000000;;, + 213;3;-0.000000, 0.774398, 0.000000;;, + 214;3;-0.000000, 0.774398, 0.000000;;, + 215;3;-0.000000, 0.774397,-0.000000;;, + 216;3;-0.000000, 0.774398,-0.000000;;, + 217;3; 0.000000, 0.774398, 0.000000;;, + 218;3;-0.000000, 0.774398, 0.000000;;, + 219;3;-0.000000, 0.774398, 0.000000;;, + 220;3;-0.000000, 0.774398, 0.000000;;, + 221;3;-0.000000, 0.774398, 0.000000;;, + 222;3;-0.000000, 0.774398, 0.000000;;, + 223;3;-0.000000, 0.774398, 0.000000;;, + 224;3;-0.000000, 0.774398, 0.000000;;, + 225;3;-0.000000, 0.774398, 0.000000;;, + 226;3;-0.000000, 0.774398, 0.000000;;, + 227;3;-0.000000, 0.774398, 0.000000;;, + 228;3;-0.000000, 0.774398, 0.000000;;, + 229;3;-0.000000, 0.774398, 0.000000;;, + 230;3;-0.000000, 0.774398, 0.000000;;, + 231;3;-0.000000, 0.774398, 0.000000;;, + 232;3;-0.000000, 0.774398, 0.000000;;, + 233;3;-0.000000, 0.774398, 0.000000;;, + 234;3;-0.000000, 0.774398, 0.000000;;, + 235;3;-0.000000, 0.774398, 0.000000;;, + 236;3;-0.000000, 0.774398, 0.000000;;, + 237;3;-0.000000, 0.774398, 0.000000;;, + 238;3;-0.000000, 0.774398, 0.000000;;, + 239;3;-0.000000, 0.774398, 0.000000;;, + 240;3;-0.000000, 0.774398, 0.000000;;, + 241;3;-0.000000, 0.774398, 0.000000;;, + 242;3;-0.000000, 0.774398, 0.000000;;, + 243;3;-0.000000, 0.774398, 0.000000;;, + 244;3;-0.000000, 0.774398, 0.000000;;, + 245;3;-0.000000, 0.774398, 0.000000;;, + 246;3;-0.000000, 0.774398, 0.000000;;, + 247;3;-0.000000, 0.774398, 0.000000;;, + 248;3;-0.000000, 0.774398, 0.000000;;, + 249;3;-0.000000, 0.774398, 0.000000;;; + } + } + Animation { + {Armature_Bone_012} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 1;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 2;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 3;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 4;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 5;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 6;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 7;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 8;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 9;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 10;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 11;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 12;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 13;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 14;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 15;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 16;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 17;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 18;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 19;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 20;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 21;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 22;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 23;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 24;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 25;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 26;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 27;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 28;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 29;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 30;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 31;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 32;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 33;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 34;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 35;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 36;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 37;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 38;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 39;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 40;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 41;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 42;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 43;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 44;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 45;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 46;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 47;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 48;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 49;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 50;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 51;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 52;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 53;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 54;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 55;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 56;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 57;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 58;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 59;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 60;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 61;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 62;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 63;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 64;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 65;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 66;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 67;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 68;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 69;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 70;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 71;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 72;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 73;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 74;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 75;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 76;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 77;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 78;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 79;4;-0.044404,-0.848710,-0.525971, 0.032757;;, + 80;4; 0.118387,-0.738757,-0.623247, 0.227565;;, + 81;4; 0.152834,-0.739974,-0.613904, 0.252717;;, + 82;4; 0.177653,-0.751108,-0.597401, 0.258043;;, + 83;4; 0.197295,-0.765666,-0.577826, 0.254358;;, + 84;4; 0.213860,-0.780456,-0.557162, 0.246883;;, + 85;4; 0.228577,-0.793463,-0.536628, 0.238795;;, + 86;4; 0.242273,-0.803173,-0.517109, 0.232369;;, + 87;4; 0.255569,-0.808272,-0.499343, 0.229472;;, + 88;4; 0.268984,-0.807488,-0.484017, 0.231810;;, + 89;4; 0.282993,-0.799474,-0.471833, 0.241103;;, + 90;4; 0.298008,-0.786034,-0.460488, 0.256139;;, + 91;4; 0.314099,-0.769947,-0.447191, 0.274501;;, + 92;4; 0.331193,-0.751246,-0.432001, 0.296139;;, + 93;4; 0.349175,-0.730029,-0.415031, 0.320925;;, + 94;4; 0.367887,-0.706476,-0.396460, 0.348625;;, + 95;4; 0.387119,-0.680861,-0.376544, 0.378889;;, + 96;4; 0.406610,-0.653558,-0.355618, 0.411234;;, + 97;4; 0.426053,-0.625044,-0.334095, 0.445055;;, + 98;4; 0.445106,-0.595885,-0.312455, 0.479630;;, + 99;4; 0.463411,-0.566708,-0.291215, 0.514164;;, + 100;4; 0.480614,-0.538166,-0.270905, 0.547829;;, + 101;4; 0.496392,-0.510895,-0.252030, 0.579821;;, + 102;4; 0.510470,-0.485475,-0.235039, 0.609409;;, + 103;4; 0.522635,-0.462394,-0.220298, 0.635977;;, + 104;4; 0.532745,-0.442037,-0.208084, 0.659045;;, + 105;4; 0.540720,-0.424673,-0.198578, 0.678277;;, + 106;4; 0.546542,-0.410466,-0.191875, 0.693471;;, + 107;4; 0.550237,-0.399488,-0.187998, 0.704541;;, + 108;4; 0.551868,-0.391736,-0.186911, 0.711497;;, + 109;4; 0.551522,-0.387152,-0.188535, 0.714417;;, + 110;4; 0.549350,-0.384620,-0.192107, 0.714515;;, + 111;4; 0.545423,-0.383100,-0.196936, 0.712909;;, + 112;4; 0.539729,-0.382602,-0.203030, 0.709583;;, + 113;4; 0.532259,-0.383135,-0.210392, 0.704530;;, + 114;4; 0.523016,-0.384702,-0.219018, 0.697747;;, + 115;4; 0.512011,-0.387304,-0.228898, 0.689241;;, + 116;4; 0.499264,-0.390933,-0.240012, 0.679031;;, + 117;4; 0.484811,-0.395576,-0.252333, 0.667145;;, + 118;4; 0.468697,-0.401214,-0.265824, 0.653624;;, + 119;4; 0.450984,-0.407819,-0.280437, 0.638524;;, + 120;4; 0.431749,-0.415354,-0.296113, 0.621915;;, + 121;4; 0.411083,-0.423774,-0.312782, 0.603881;;, + 122;4; 0.389097,-0.433024,-0.330360, 0.584524;;, + 123;4; 0.365915,-0.443042,-0.348753, 0.563961;;, + 124;4; 0.341680,-0.453753,-0.367855, 0.542324;;, + 125;4; 0.316548,-0.465077,-0.387549, 0.519760;;, + 126;4; 0.290691,-0.476922,-0.407708, 0.496432;;, + 127;4; 0.264289,-0.489193,-0.428196, 0.472509;;, + 128;4; 0.237535,-0.501786,-0.448874, 0.448175;;, + 129;4; 0.210627,-0.514595,-0.469596, 0.423617;;, + 130;4; 0.183763,-0.527510,-0.490215, 0.399025;;, + 131;4; 0.157146,-0.540421,-0.510584, 0.374593;;, + 132;4; 0.130970,-0.553219,-0.530560, 0.350506;;, + 133;4; 0.105427,-0.565797,-0.550007, 0.326950;;, + 134;4; 0.080697,-0.578055,-0.568792, 0.304096;;, + 135;4; 0.056946,-0.589896,-0.586797, 0.282108;;, + 136;4; 0.034330,-0.601232,-0.603908, 0.261134;;, + 137;4; 0.012987,-0.611983,-0.620029, 0.241311;;, + 138;4;-0.006961,-0.622075,-0.635073, 0.222757;;, + 139;4;-0.025408,-0.631446,-0.648964, 0.205577;;, + 140;4;-0.042266,-0.640043,-0.661641, 0.189857;;, + 141;4;-0.057462,-0.647819,-0.673055, 0.175672;;, + 142;4;-0.070940,-0.654737,-0.683165, 0.163078;;, + 143;4;-0.082655,-0.660769,-0.691944, 0.152121;;, + 144;4;-0.092578,-0.665892,-0.699372, 0.142832;;, + 145;4;-0.100691,-0.670092,-0.705440, 0.135230;;, + 146;4;-0.106988,-0.673359,-0.710145, 0.129326;;, + 147;4;-0.111469,-0.675689,-0.713491, 0.125121;;, + 148;4;-0.114145,-0.677083,-0.715488, 0.122609;;, + 149;4;-0.115032,-0.677546,-0.716149, 0.121775;;, + 150;4;-0.113822,-0.677864,-0.715668, 0.122324;;, + 151;4;-0.110424,-0.678755,-0.714315, 0.123864;;, + 152;4;-0.105133,-0.680142,-0.712209, 0.126262;;, + 153;4;-0.098184,-0.681965,-0.709444, 0.129411;;, + 154;4;-0.089773,-0.684170,-0.706096, 0.133223;;, + 155;4;-0.080063,-0.686716,-0.702232, 0.137624;;, + 156;4;-0.069193,-0.689567,-0.697905, 0.142550;;, + 157;4;-0.057286,-0.692690,-0.693166, 0.147947;;, + 158;4;-0.044449,-0.696056,-0.688057, 0.153765;;, + 159;4;-0.030783,-0.699640,-0.682618, 0.159958;;, + 160;4;-0.016382,-0.703416,-0.676886, 0.166485;;, + 161;4;-0.001339,-0.707361,-0.670899, 0.173303;;, + 162;4; 0.014250,-0.711449,-0.664694, 0.180368;;, + 163;4; 0.030279,-0.715652,-0.658315, 0.187633;;, + 164;4; 0.046622,-0.719938,-0.651810, 0.195040;;, + 165;4; 0.063111,-0.724262,-0.645247, 0.202513;;, + 166;4; 0.079497,-0.728559,-0.638725, 0.209939;;, + 167;4; 0.095342,-0.732714,-0.632419, 0.217120;;, + 168;4; 0.109656,-0.736468,-0.626722, 0.223608;;, + 169;4; 0.118387,-0.738757,-0.623247, 0.227565;;, + 170;4; 0.118387,-0.738757,-0.623247, 0.227565;;, + 171;4; 0.142318,-0.716543,-0.601950, 0.266311;;, + 172;4; 0.192599,-0.667718,-0.554937, 0.347373;;, + 173;4; 0.252801,-0.605799,-0.495006, 0.443876;;, + 174;4; 0.314883,-0.537255,-0.428261, 0.542639;;, + 175;4; 0.373819,-0.465958,-0.358341, 0.635397;;, + 176;4; 0.425866,-0.394614,-0.287769, 0.715971;;, + 177;4; 0.467827,-0.325376,-0.218530, 0.779048;;, + 178;4; 0.496638,-0.260148,-0.152363, 0.819519;;, + 179;4; 0.509090,-0.200790,-0.090942, 0.832010;;, + 180;4; 0.510487,-0.142127,-0.029419, 0.824345;;, + 181;4; 0.508229,-0.077954, 0.037968, 0.807923;;, + 182;4; 0.502030,-0.008885, 0.110615, 0.782431;;, + 183;4; 0.491674, 0.064065, 0.187505, 0.747835;;, + 184;4; 0.477072, 0.139427, 0.267151, 0.704498;;, + 185;4; 0.458314, 0.215275, 0.347591, 0.653276;;, + 186;4; 0.435702, 0.289329, 0.426484, 0.595547;;, + 187;4; 0.409755, 0.359151, 0.501314, 0.533152;;, + 188;4; 0.381167, 0.422415, 0.569668, 0.468212;;, + 189;4; 0.350730, 0.477176, 0.629512, 0.402893;;, + 190;4; 0.319239, 0.522041, 0.679371, 0.339171;;, + 191;4; 0.287414, 0.556226, 0.718399, 0.278663;;, + 192;4; 0.255852, 0.579500, 0.746318, 0.222561;;, + 193;4; 0.225011, 0.592063, 0.763297, 0.171641;;, + 194;4; 0.195217, 0.594407, 0.769813, 0.126330;;, + 195;4; 0.169642, 0.595113, 0.768080, 0.088435;;, + 196;4; 0.149769, 0.601469, 0.760685, 0.057923;;, + 197;4; 0.133443, 0.612318, 0.748677, 0.032432;;, + 198;4; 0.118541, 0.626618, 0.732980, 0.009677;;, + 199;4; 0.102758, 0.643346, 0.714476,-0.012771;;, + 200;4; 0.083324, 0.661390, 0.694094,-0.037786;;, + 201;4; 0.056499, 0.679380, 0.672940,-0.069184;;, + 202;4; 0.016542, 0.695349, 0.652564,-0.112769;;, + 203;4;-0.047002, 0.705863, 0.635620,-0.179043;;, + 204;4;-0.159188, 0.702856, 0.628288,-0.293101;;, + 205;4;-0.644825, 0.430700, 0.525558,-0.349984;;, + 206;4;-0.618455, 0.456610, 0.507233,-0.371018;;, + 207;4;-0.544301, 0.524113, 0.458983,-0.431141;;, + 208;4;-0.456183, 0.590885, 0.409876,-0.505036;;, + 209;4;-0.394562, 0.614951, 0.389387,-0.560835;;, + 210;4;-0.353066, 0.609123, 0.384408,-0.602075;;, + 211;4;-0.315700, 0.596275, 0.375843,-0.640245;;, + 212;4;-0.288185, 0.579257, 0.367644,-0.670228;;, + 213;4;-0.274063, 0.563288, 0.364710,-0.688618;;, + 214;4;-0.272113, 0.552148, 0.369311,-0.696203;;, + 215;4;-0.281812, 0.541385, 0.381344,-0.695086;;, + 216;4;-0.303464, 0.526631, 0.399526,-0.686043;;, + 217;4;-0.329843, 0.511591, 0.418929,-0.672951;;, + 218;4;-0.349944, 0.501094, 0.432812,-0.662295;;, + 219;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 220;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 221;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 222;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 223;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 224;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 225;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 226;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 227;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 228;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 229;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 230;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 231;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 232;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 233;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 234;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 235;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 236;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 237;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 238;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 239;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 240;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 241;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 242;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 243;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 244;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 245;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 246;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 247;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 248;4;-0.357006, 0.497574, 0.437532,-0.658433;;, + 249;4;-0.357006, 0.497574, 0.437532,-0.658433;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 0.759654, 0.000000;;, + 1;3; 0.000000, 0.759654, 0.000000;;, + 2;3; 0.000000, 0.759654, 0.000000;;, + 3;3; 0.000000, 0.759654, 0.000000;;, + 4;3; 0.000000, 0.759654, 0.000000;;, + 5;3; 0.000000, 0.759654, 0.000000;;, + 6;3; 0.000000, 0.759654, 0.000000;;, + 7;3; 0.000000, 0.759654, 0.000000;;, + 8;3; 0.000000, 0.759654, 0.000000;;, + 9;3; 0.000000, 0.759654, 0.000000;;, + 10;3; 0.000000, 0.759654, 0.000000;;, + 11;3; 0.000000, 0.759654, 0.000000;;, + 12;3; 0.000000, 0.759654, 0.000000;;, + 13;3; 0.000000, 0.759654, 0.000000;;, + 14;3; 0.000000, 0.759654, 0.000000;;, + 15;3; 0.000000, 0.759654, 0.000000;;, + 16;3; 0.000000, 0.759654, 0.000000;;, + 17;3; 0.000000, 0.759654, 0.000000;;, + 18;3; 0.000000, 0.759654, 0.000000;;, + 19;3; 0.000000, 0.759654, 0.000000;;, + 20;3; 0.000000, 0.759654, 0.000000;;, + 21;3; 0.000000, 0.759654, 0.000000;;, + 22;3; 0.000000, 0.759654, 0.000000;;, + 23;3; 0.000000, 0.759654, 0.000000;;, + 24;3; 0.000000, 0.759654, 0.000000;;, + 25;3; 0.000000, 0.759654, 0.000000;;, + 26;3; 0.000000, 0.759654, 0.000000;;, + 27;3; 0.000000, 0.759654, 0.000000;;, + 28;3; 0.000000, 0.759654, 0.000000;;, + 29;3; 0.000000, 0.759654, 0.000000;;, + 30;3; 0.000000, 0.759654, 0.000000;;, + 31;3; 0.000000, 0.759654, 0.000000;;, + 32;3; 0.000000, 0.759654, 0.000000;;, + 33;3; 0.000000, 0.759654, 0.000000;;, + 34;3; 0.000000, 0.759654, 0.000000;;, + 35;3; 0.000000, 0.759654, 0.000000;;, + 36;3; 0.000000, 0.759654, 0.000000;;, + 37;3; 0.000000, 0.759654, 0.000000;;, + 38;3; 0.000000, 0.759654, 0.000000;;, + 39;3; 0.000000, 0.759654, 0.000000;;, + 40;3; 0.000000, 0.759654, 0.000000;;, + 41;3; 0.000000, 0.759654, 0.000000;;, + 42;3; 0.000000, 0.759654, 0.000000;;, + 43;3; 0.000000, 0.759654, 0.000000;;, + 44;3; 0.000000, 0.759654, 0.000000;;, + 45;3; 0.000000, 0.759654, 0.000000;;, + 46;3; 0.000000, 0.759654, 0.000000;;, + 47;3; 0.000000, 0.759654, 0.000000;;, + 48;3; 0.000000, 0.759654, 0.000000;;, + 49;3; 0.000000, 0.759654, 0.000000;;, + 50;3; 0.000000, 0.759654, 0.000000;;, + 51;3; 0.000000, 0.759654, 0.000000;;, + 52;3; 0.000000, 0.759654, 0.000000;;, + 53;3; 0.000000, 0.759654, 0.000000;;, + 54;3; 0.000000, 0.759654, 0.000000;;, + 55;3; 0.000000, 0.759654, 0.000000;;, + 56;3; 0.000000, 0.759654, 0.000000;;, + 57;3; 0.000000, 0.759654, 0.000000;;, + 58;3; 0.000000, 0.759654, 0.000000;;, + 59;3; 0.000000, 0.759654, 0.000000;;, + 60;3; 0.000000, 0.759654, 0.000000;;, + 61;3; 0.000000, 0.759654, 0.000000;;, + 62;3; 0.000000, 0.759654, 0.000000;;, + 63;3; 0.000000, 0.759654, 0.000000;;, + 64;3; 0.000000, 0.759654, 0.000000;;, + 65;3; 0.000000, 0.759654, 0.000000;;, + 66;3; 0.000000, 0.759654, 0.000000;;, + 67;3; 0.000000, 0.759654, 0.000000;;, + 68;3; 0.000000, 0.759654, 0.000000;;, + 69;3; 0.000000, 0.759654, 0.000000;;, + 70;3; 0.000000, 0.759654, 0.000000;;, + 71;3; 0.000000, 0.759654, 0.000000;;, + 72;3; 0.000000, 0.759654, 0.000000;;, + 73;3; 0.000000, 0.759654, 0.000000;;, + 74;3; 0.000000, 0.759654, 0.000000;;, + 75;3; 0.000000, 0.759654, 0.000000;;, + 76;3; 0.000000, 0.759654, 0.000000;;, + 77;3; 0.000000, 0.759654, 0.000000;;, + 78;3; 0.000000, 0.759654, 0.000000;;, + 79;3; 0.000000, 0.759654, 0.000000;;, + 80;3; 0.000000, 0.759654,-0.000000;;, + 81;3; 0.000000, 0.759654,-0.000000;;, + 82;3; 0.000000, 0.759654,-0.000000;;, + 83;3; 0.000000, 0.759654,-0.000000;;, + 84;3; 0.000000, 0.759654,-0.000000;;, + 85;3; 0.000000, 0.759654,-0.000000;;, + 86;3; 0.000000, 0.759654,-0.000000;;, + 87;3; 0.000000, 0.759654,-0.000000;;, + 88;3; 0.000000, 0.759654,-0.000000;;, + 89;3; 0.000000, 0.759654,-0.000000;;, + 90;3; 0.000000, 0.759654,-0.000000;;, + 91;3; 0.000000, 0.759654,-0.000000;;, + 92;3; 0.000000, 0.759654,-0.000000;;, + 93;3; 0.000000, 0.759654,-0.000000;;, + 94;3; 0.000000, 0.759654,-0.000000;;, + 95;3; 0.000000, 0.759654,-0.000000;;, + 96;3; 0.000000, 0.759654,-0.000000;;, + 97;3; 0.000000, 0.759654,-0.000000;;, + 98;3; 0.000000, 0.759654,-0.000000;;, + 99;3; 0.000000, 0.759654,-0.000000;;, + 100;3; 0.000000, 0.759654,-0.000000;;, + 101;3; 0.000000, 0.759654,-0.000000;;, + 102;3; 0.000000, 0.759654,-0.000000;;, + 103;3; 0.000000, 0.759654,-0.000000;;, + 104;3; 0.000000, 0.759654,-0.000000;;, + 105;3; 0.000000, 0.759654,-0.000000;;, + 106;3; 0.000000, 0.759654,-0.000000;;, + 107;3; 0.000000, 0.759654,-0.000000;;, + 108;3; 0.000000, 0.759654,-0.000000;;, + 109;3; 0.000000, 0.759654,-0.000000;;, + 110;3; 0.000000, 0.759654,-0.000000;;, + 111;3; 0.000000, 0.759654,-0.000000;;, + 112;3; 0.000000, 0.759654,-0.000000;;, + 113;3; 0.000000, 0.759654,-0.000000;;, + 114;3; 0.000000, 0.759654,-0.000000;;, + 115;3; 0.000000, 0.759654,-0.000000;;, + 116;3; 0.000000, 0.759654,-0.000000;;, + 117;3; 0.000000, 0.759654,-0.000000;;, + 118;3; 0.000000, 0.759654,-0.000000;;, + 119;3; 0.000000, 0.759654,-0.000000;;, + 120;3; 0.000000, 0.759654,-0.000000;;, + 121;3; 0.000000, 0.759654,-0.000000;;, + 122;3; 0.000000, 0.759654,-0.000000;;, + 123;3; 0.000000, 0.759654,-0.000000;;, + 124;3; 0.000000, 0.759654,-0.000000;;, + 125;3; 0.000000, 0.759654,-0.000000;;, + 126;3; 0.000000, 0.759654,-0.000000;;, + 127;3; 0.000000, 0.759654,-0.000000;;, + 128;3; 0.000000, 0.759654,-0.000000;;, + 129;3; 0.000000, 0.759654,-0.000000;;, + 130;3; 0.000000, 0.759654,-0.000000;;, + 131;3; 0.000000, 0.759654,-0.000000;;, + 132;3; 0.000000, 0.759654,-0.000000;;, + 133;3; 0.000000, 0.759654,-0.000000;;, + 134;3; 0.000000, 0.759654,-0.000000;;, + 135;3; 0.000000, 0.759654,-0.000000;;, + 136;3; 0.000000, 0.759654,-0.000000;;, + 137;3; 0.000000, 0.759654,-0.000000;;, + 138;3; 0.000000, 0.759654,-0.000000;;, + 139;3; 0.000000, 0.759654,-0.000000;;, + 140;3; 0.000000, 0.759654,-0.000000;;, + 141;3; 0.000000, 0.759654,-0.000000;;, + 142;3; 0.000000, 0.759654,-0.000000;;, + 143;3; 0.000000, 0.759654,-0.000000;;, + 144;3; 0.000000, 0.759654,-0.000000;;, + 145;3; 0.000000, 0.759654,-0.000000;;, + 146;3; 0.000000, 0.759654,-0.000000;;, + 147;3; 0.000000, 0.759654,-0.000000;;, + 148;3; 0.000000, 0.759654,-0.000000;;, + 149;3; 0.000000, 0.759654,-0.000000;;, + 150;3; 0.000000, 0.759654,-0.000000;;, + 151;3; 0.000000, 0.759654,-0.000000;;, + 152;3; 0.000000, 0.759654,-0.000000;;, + 153;3; 0.000000, 0.759654,-0.000000;;, + 154;3; 0.000000, 0.759654,-0.000000;;, + 155;3; 0.000000, 0.759654,-0.000000;;, + 156;3; 0.000000, 0.759654,-0.000000;;, + 157;3; 0.000000, 0.759654,-0.000000;;, + 158;3; 0.000000, 0.759654,-0.000000;;, + 159;3; 0.000000, 0.759654,-0.000000;;, + 160;3; 0.000000, 0.759654,-0.000000;;, + 161;3; 0.000000, 0.759654,-0.000000;;, + 162;3; 0.000000, 0.759654,-0.000000;;, + 163;3; 0.000000, 0.759654,-0.000000;;, + 164;3; 0.000000, 0.759654,-0.000000;;, + 165;3; 0.000000, 0.759654,-0.000000;;, + 166;3; 0.000000, 0.759654,-0.000000;;, + 167;3; 0.000000, 0.759654,-0.000000;;, + 168;3; 0.000000, 0.759654,-0.000000;;, + 169;3; 0.000000, 0.759654,-0.000000;;, + 170;3; 0.000000, 0.759654, 0.000000;;, + 171;3; 0.000000, 0.759654, 0.000000;;, + 172;3; 0.000000, 0.759654, 0.000000;;, + 173;3; 0.000000, 0.759654, 0.000000;;, + 174;3; 0.000000, 0.759654, 0.000000;;, + 175;3; 0.000000, 0.759654, 0.000000;;, + 176;3; 0.000000, 0.759654, 0.000000;;, + 177;3; 0.000000, 0.759654, 0.000000;;, + 178;3; 0.000000, 0.759654, 0.000000;;, + 179;3; 0.000000, 0.759654, 0.000000;;, + 180;3; 0.000000, 0.759654, 0.000000;;, + 181;3; 0.000000, 0.759654, 0.000000;;, + 182;3; 0.000000, 0.759654, 0.000000;;, + 183;3; 0.000000, 0.759654, 0.000000;;, + 184;3; 0.000000, 0.759654, 0.000000;;, + 185;3; 0.000000, 0.759654, 0.000000;;, + 186;3; 0.000000, 0.759654, 0.000000;;, + 187;3; 0.000000, 0.759654, 0.000000;;, + 188;3; 0.000000, 0.759654, 0.000000;;, + 189;3; 0.000000, 0.759654, 0.000000;;, + 190;3; 0.000000, 0.759654, 0.000000;;, + 191;3; 0.000000, 0.759654, 0.000000;;, + 192;3; 0.000000, 0.759654, 0.000000;;, + 193;3; 0.000000, 0.759654, 0.000000;;, + 194;3; 0.000000, 0.759654, 0.000000;;, + 195;3; 0.000000, 0.759654, 0.000000;;, + 196;3; 0.000000, 0.759654, 0.000000;;, + 197;3; 0.000000, 0.759654, 0.000000;;, + 198;3; 0.000000, 0.759654, 0.000000;;, + 199;3; 0.000000, 0.759654, 0.000000;;, + 200;3; 0.000000, 0.759654, 0.000000;;, + 201;3; 0.000000, 0.759654, 0.000000;;, + 202;3; 0.000000, 0.759654, 0.000000;;, + 203;3; 0.000000, 0.759654, 0.000000;;, + 204;3; 0.000000, 0.759654, 0.000000;;, + 205;3;-0.000000, 0.759654, 0.000000;;, + 206;3; 0.000000, 0.759654, 0.000000;;, + 207;3; 0.000000, 0.759654,-0.000000;;, + 208;3; 0.000000, 0.759654, 0.000000;;, + 209;3;-0.000000, 0.759654,-0.000000;;, + 210;3;-0.000000, 0.759654,-0.000000;;, + 211;3;-0.000000, 0.759654,-0.000000;;, + 212;3;-0.000000, 0.759654,-0.000000;;, + 213;3;-0.000000, 0.759654,-0.000000;;, + 214;3;-0.000000, 0.759654,-0.000000;;, + 215;3; 0.000000, 0.759654,-0.000000;;, + 216;3; 0.000000, 0.759654,-0.000000;;, + 217;3;-0.000000, 0.759654, 0.000000;;, + 218;3;-0.000000, 0.759654,-0.000000;;, + 219;3;-0.000000, 0.759654,-0.000000;;, + 220;3;-0.000000, 0.759654,-0.000000;;, + 221;3;-0.000000, 0.759654,-0.000000;;, + 222;3;-0.000000, 0.759654,-0.000000;;, + 223;3;-0.000000, 0.759654,-0.000000;;, + 224;3;-0.000000, 0.759654,-0.000000;;, + 225;3;-0.000000, 0.759654,-0.000000;;, + 226;3;-0.000000, 0.759654,-0.000000;;, + 227;3;-0.000000, 0.759654,-0.000000;;, + 228;3;-0.000000, 0.759654,-0.000000;;, + 229;3;-0.000000, 0.759654,-0.000000;;, + 230;3;-0.000000, 0.759654,-0.000000;;, + 231;3;-0.000000, 0.759654,-0.000000;;, + 232;3;-0.000000, 0.759654,-0.000000;;, + 233;3;-0.000000, 0.759654,-0.000000;;, + 234;3;-0.000000, 0.759654,-0.000000;;, + 235;3;-0.000000, 0.759654,-0.000000;;, + 236;3;-0.000000, 0.759654,-0.000000;;, + 237;3;-0.000000, 0.759654,-0.000000;;, + 238;3;-0.000000, 0.759654,-0.000000;;, + 239;3;-0.000000, 0.759654,-0.000000;;, + 240;3;-0.000000, 0.759654,-0.000000;;, + 241;3;-0.000000, 0.759654,-0.000000;;, + 242;3;-0.000000, 0.759654,-0.000000;;, + 243;3;-0.000000, 0.759654,-0.000000;;, + 244;3;-0.000000, 0.759654,-0.000000;;, + 245;3;-0.000000, 0.759654,-0.000000;;, + 246;3;-0.000000, 0.759654,-0.000000;;, + 247;3;-0.000000, 0.759654,-0.000000;;, + 248;3;-0.000000, 0.759654,-0.000000;;, + 249;3;-0.000000, 0.759654,-0.000000;;; + } + } + Animation { + {Armature_Bone_013} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 1;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 2;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 3;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 4;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 5;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 6;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 7;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 8;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 9;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 10;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 11;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 12;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 13;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 14;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 15;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 16;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 17;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 18;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 19;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 20;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 21;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 22;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 23;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 24;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 25;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 26;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 27;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 28;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 29;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 30;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 31;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 32;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 33;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 34;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 35;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 36;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 37;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 38;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 39;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 40;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 41;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 42;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 43;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 44;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 45;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 46;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 47;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 48;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 49;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 50;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 51;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 52;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 53;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 54;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 55;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 56;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 57;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 58;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 59;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 60;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 61;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 62;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 63;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 64;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 65;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 66;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 67;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 68;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 69;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 70;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 71;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 72;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 73;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 74;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 75;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 76;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 77;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 78;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 79;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 80;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 81;4;-0.301108, 0.636416, 0.702993,-0.077693;;, + 82;4;-0.276527, 0.656365, 0.691089,-0.065587;;, + 83;4;-0.246864, 0.680184, 0.676860,-0.051475;;, + 84;4;-0.215961, 0.704657, 0.662219,-0.037440;;, + 85;4;-0.186209, 0.727768, 0.648362,-0.024805;;, + 86;4;-0.159373, 0.748016, 0.636181,-0.014572;;, + 87;4;-0.136955, 0.764113, 0.626441,-0.007618;;, + 88;4;-0.120380, 0.774823, 0.619874,-0.004798;;, + 89;4;-0.111133, 0.778849, 0.617247,-0.007023;;, + 90;4;-0.106913, 0.778304, 0.617435,-0.012870;;, + 91;4;-0.104385, 0.776215, 0.618772,-0.020254;;, + 92;4;-0.103583, 0.772573, 0.621261,-0.029155;;, + 93;4;-0.104509, 0.767401, 0.624883,-0.039519;;, + 94;4;-0.107125, 0.760759, 0.629589,-0.051241;;, + 95;4;-0.111346, 0.752759, 0.635291,-0.064165;;, + 96;4;-0.117028, 0.743566, 0.641862,-0.078074;;, + 97;4;-0.123968, 0.733402, 0.649132,-0.092692;;, + 98;4;-0.131908, 0.722540, 0.656891,-0.107694;;, + 99;4;-0.140538, 0.711296, 0.664901,-0.122717;;, + 100;4;-0.149519, 0.700006, 0.672907,-0.137383;;, + 101;4;-0.158504, 0.689010, 0.680654,-0.151322;;, + 102;4;-0.167157, 0.678625, 0.687904,-0.164201;;, + 103;4;-0.175178, 0.669129, 0.694449,-0.175734;;, + 104;4;-0.182310, 0.660753, 0.700118,-0.185699;;, + 105;4;-0.188354, 0.653669, 0.704785,-0.193939;;, + 106;4;-0.193161, 0.647995, 0.708363,-0.200358;;, + 107;4;-0.196636, 0.643801, 0.710803,-0.204915;;, + 108;4;-0.198724, 0.641116, 0.712087,-0.207608;;, + 109;4;-0.199408, 0.639937, 0.712219,-0.208473;;, + 110;4;-0.199545, 0.639500, 0.711792,-0.208270;;, + 111;4;-0.199998, 0.639056, 0.711386,-0.207723;;, + 112;4;-0.200767, 0.638606, 0.711000,-0.206831;;, + 113;4;-0.201856, 0.638151, 0.710635,-0.205591;;, + 114;4;-0.203264, 0.637691, 0.710292,-0.204003;;, + 115;4;-0.204989, 0.637227, 0.709971,-0.202070;;, + 116;4;-0.207028, 0.636759, 0.709674,-0.199794;;, + 117;4;-0.209375, 0.636289, 0.709399,-0.197183;;, + 118;4;-0.212023, 0.635817, 0.709148,-0.194245;;, + 119;4;-0.214960, 0.635344, 0.708921,-0.190991;;, + 120;4;-0.218174, 0.634872, 0.708717,-0.187436;;, + 121;4;-0.221649, 0.634401, 0.708538,-0.183597;;, + 122;4;-0.225366, 0.633934, 0.708381,-0.179497;;, + 123;4;-0.229302, 0.633471, 0.708248,-0.175158;;, + 124;4;-0.233433, 0.633015, 0.708137,-0.170607;;, + 125;4;-0.237731, 0.632566, 0.708048,-0.165876;;, + 126;4;-0.242166, 0.632126, 0.707979,-0.160996;;, + 127;4;-0.246706, 0.631697, 0.707930,-0.156004;;, + 128;4;-0.251317, 0.631280, 0.707899,-0.150936;;, + 129;4;-0.255965, 0.630877, 0.707886,-0.145829;;, + 130;4;-0.260613, 0.630489, 0.707887,-0.140724;;, + 131;4;-0.265226, 0.630118, 0.707902,-0.135659;;, + 132;4;-0.269769, 0.629764, 0.707929,-0.130673;;, + 133;4;-0.274209, 0.629429, 0.707966,-0.125801;;, + 134;4;-0.278513, 0.629114, 0.708011,-0.121080;;, + 135;4;-0.282650, 0.628819, 0.708063,-0.116542;;, + 136;4;-0.286594, 0.628545, 0.708119,-0.112217;;, + 137;4;-0.290320, 0.628293, 0.708179,-0.108132;;, + 138;4;-0.293805, 0.628062, 0.708240,-0.104312;;, + 139;4;-0.297031, 0.627852, 0.708301,-0.100776;;, + 140;4;-0.299980, 0.627665, 0.708361,-0.097544;;, + 141;4;-0.302641, 0.627499, 0.708418,-0.094629;;, + 142;4;-0.305002, 0.627354, 0.708471,-0.092042;;, + 143;4;-0.307056, 0.627230, 0.708519,-0.089792;;, + 144;4;-0.308796, 0.627127, 0.708562,-0.087885;;, + 145;4;-0.310220, 0.627044, 0.708598,-0.086326;;, + 146;4;-0.311326, 0.626980, 0.708627,-0.085115;;, + 147;4;-0.312113, 0.626936, 0.708648,-0.084254;;, + 148;4;-0.312583, 0.626909, 0.708661,-0.083739;;, + 149;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 150;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 151;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 152;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 153;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 154;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 155;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 156;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 157;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 158;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 159;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 160;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 161;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 162;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 163;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 164;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 165;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 166;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 167;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 168;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 169;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 170;4;-0.312739, 0.626901, 0.708665,-0.083568;;, + 171;4;-0.320011, 0.596711, 0.719812,-0.084669;;, + 172;4;-0.335250, 0.533442, 0.743173,-0.086975;;, + 173;4;-0.353435, 0.457946, 0.771048,-0.089728;;, + 174;4;-0.372104, 0.380441, 0.799665,-0.092554;;, + 175;4;-0.389715, 0.307328, 0.826660,-0.095219;;, + 176;4;-0.405118, 0.243382, 0.850271,-0.097551;;, + 177;4;-0.417325, 0.192700, 0.868984,-0.099399;;, + 178;4;-0.425390, 0.159217, 0.881347,-0.100619;;, + 179;4;-0.428318, 0.147061, 0.885835,-0.101062;;, + 180;4;-0.426902, 0.151434, 0.884573,-0.100759;;, + 181;4;-0.422627, 0.164719, 0.880693,-0.099839;;, + 182;4;-0.415523, 0.186966, 0.874096,-0.098302;;, + 183;4;-0.405750, 0.217868, 0.864765,-0.096174;;, + 184;4;-0.393632, 0.256645, 0.852799,-0.093513;;, + 185;4;-0.379676, 0.301969, 0.838444,-0.090417;;, + 186;4;-0.364565, 0.351968, 0.822105,-0.087021;;, + 187;4;-0.349111, 0.404348, 0.804320,-0.083489;;, + 188;4;-0.334170, 0.456621, 0.785719,-0.079996;;, + 189;4;-0.320546, 0.506391, 0.766945,-0.076711;;, + 190;4;-0.308908, 0.551597, 0.748587,-0.073777;;, + 191;4;-0.299746, 0.590671, 0.731131,-0.071302;;, + 192;4;-0.293362, 0.622572, 0.714937,-0.069355;;, + 193;4;-0.289899, 0.646737, 0.700240,-0.067973;;, + 194;4;-0.289369, 0.662982, 0.687175,-0.067165;;, + 195;4;-0.297068, 0.671081, 0.673239,-0.069457;;, + 196;4;-0.316657, 0.671752, 0.656365,-0.076691;;, + 197;4;-0.345940, 0.666254, 0.637202,-0.087961;;, + 198;4;-0.382978, 0.655677, 0.616341,-0.102470;;, + 199;4;-0.425924, 0.641029, 0.594375,-0.119460;;, + 200;4;-0.472835, 0.623336, 0.571960,-0.138138;;, + 201;4;-0.521392, 0.603778, 0.549917,-0.157559;;, + 202;4;-0.568355, 0.583950, 0.529448,-0.176407;;, + 203;4;-0.608177, 0.566521, 0.512666,-0.192431;;, + 204;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 205;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 206;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 207;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 208;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 209;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 210;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 211;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 212;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 213;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 214;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 215;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 216;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 217;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 218;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 219;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 220;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 221;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 222;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 223;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 224;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 225;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 226;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 227;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 228;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 229;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 230;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 231;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 232;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 233;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 234;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 235;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 236;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 237;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 238;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 239;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 240;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 241;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 242;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 243;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 244;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 245;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 246;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 247;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 248;4;-0.627934, 0.557636, 0.504562,-0.200399;;, + 249;4;-0.627934, 0.557636, 0.504562,-0.200399;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.000000, 2.142237,-0.000000;;, + 1;3;-0.000000, 2.142237,-0.000000;;, + 2;3;-0.000000, 2.142237,-0.000000;;, + 3;3;-0.000000, 2.142237,-0.000000;;, + 4;3;-0.000000, 2.142237,-0.000000;;, + 5;3;-0.000000, 2.142237,-0.000000;;, + 6;3;-0.000000, 2.142237,-0.000000;;, + 7;3;-0.000000, 2.142237,-0.000000;;, + 8;3;-0.000000, 2.142237,-0.000000;;, + 9;3;-0.000000, 2.142237,-0.000000;;, + 10;3;-0.000000, 2.142237,-0.000000;;, + 11;3;-0.000000, 2.142237,-0.000000;;, + 12;3;-0.000000, 2.142237,-0.000000;;, + 13;3;-0.000000, 2.142237,-0.000000;;, + 14;3;-0.000000, 2.142237,-0.000000;;, + 15;3;-0.000000, 2.142237,-0.000000;;, + 16;3;-0.000000, 2.142237,-0.000000;;, + 17;3;-0.000000, 2.142237,-0.000000;;, + 18;3;-0.000000, 2.142237,-0.000000;;, + 19;3;-0.000000, 2.142237,-0.000000;;, + 20;3;-0.000000, 2.142237,-0.000000;;, + 21;3;-0.000000, 2.142237,-0.000000;;, + 22;3;-0.000000, 2.142237,-0.000000;;, + 23;3;-0.000000, 2.142237,-0.000000;;, + 24;3;-0.000000, 2.142237,-0.000000;;, + 25;3;-0.000000, 2.142237,-0.000000;;, + 26;3;-0.000000, 2.142237,-0.000000;;, + 27;3;-0.000000, 2.142237,-0.000000;;, + 28;3;-0.000000, 2.142237,-0.000000;;, + 29;3;-0.000000, 2.142237,-0.000000;;, + 30;3;-0.000000, 2.142237,-0.000000;;, + 31;3;-0.000000, 2.142237,-0.000000;;, + 32;3;-0.000000, 2.142237,-0.000000;;, + 33;3;-0.000000, 2.142237,-0.000000;;, + 34;3;-0.000000, 2.142237,-0.000000;;, + 35;3;-0.000000, 2.142237,-0.000000;;, + 36;3;-0.000000, 2.142237,-0.000000;;, + 37;3;-0.000000, 2.142237,-0.000000;;, + 38;3;-0.000000, 2.142237,-0.000000;;, + 39;3;-0.000000, 2.142237,-0.000000;;, + 40;3;-0.000000, 2.142237,-0.000000;;, + 41;3;-0.000000, 2.142237,-0.000000;;, + 42;3;-0.000000, 2.142237,-0.000000;;, + 43;3;-0.000000, 2.142237,-0.000000;;, + 44;3;-0.000000, 2.142237,-0.000000;;, + 45;3;-0.000000, 2.142237,-0.000000;;, + 46;3;-0.000000, 2.142237,-0.000000;;, + 47;3;-0.000000, 2.142237,-0.000000;;, + 48;3;-0.000000, 2.142237,-0.000000;;, + 49;3;-0.000000, 2.142237,-0.000000;;, + 50;3;-0.000000, 2.142237,-0.000000;;, + 51;3;-0.000000, 2.142237,-0.000000;;, + 52;3;-0.000000, 2.142237,-0.000000;;, + 53;3;-0.000000, 2.142237,-0.000000;;, + 54;3;-0.000000, 2.142237,-0.000000;;, + 55;3;-0.000000, 2.142237,-0.000000;;, + 56;3;-0.000000, 2.142237,-0.000000;;, + 57;3;-0.000000, 2.142237,-0.000000;;, + 58;3;-0.000000, 2.142237,-0.000000;;, + 59;3;-0.000000, 2.142237,-0.000000;;, + 60;3;-0.000000, 2.142237,-0.000000;;, + 61;3;-0.000000, 2.142237,-0.000000;;, + 62;3;-0.000000, 2.142237,-0.000000;;, + 63;3;-0.000000, 2.142237,-0.000000;;, + 64;3;-0.000000, 2.142237,-0.000000;;, + 65;3;-0.000000, 2.142237,-0.000000;;, + 66;3;-0.000000, 2.142237,-0.000000;;, + 67;3;-0.000000, 2.142237,-0.000000;;, + 68;3;-0.000000, 2.142237,-0.000000;;, + 69;3;-0.000000, 2.142237,-0.000000;;, + 70;3;-0.000000, 2.142237,-0.000000;;, + 71;3;-0.000000, 2.142237,-0.000000;;, + 72;3;-0.000000, 2.142237,-0.000000;;, + 73;3;-0.000000, 2.142237,-0.000000;;, + 74;3;-0.000000, 2.142237,-0.000000;;, + 75;3;-0.000000, 2.142237,-0.000000;;, + 76;3;-0.000000, 2.142237,-0.000000;;, + 77;3;-0.000000, 2.142237,-0.000000;;, + 78;3;-0.000000, 2.142237,-0.000000;;, + 79;3;-0.000000, 2.142237,-0.000000;;, + 80;3;-0.000000, 2.142237, 0.000000;;, + 81;3;-0.000000, 2.142237, 0.000000;;, + 82;3;-0.000000, 2.142237, 0.000000;;, + 83;3;-0.000000, 2.142237,-0.000000;;, + 84;3; 0.000000, 2.142237,-0.000000;;, + 85;3; 0.000000, 2.142237, 0.000000;;, + 86;3; 0.000000, 2.142237,-0.000000;;, + 87;3; 0.000000, 2.142237,-0.000000;;, + 88;3;-0.000000, 2.142237,-0.000000;;, + 89;3;-0.000000, 2.142237, 0.000000;;, + 90;3;-0.000000, 2.142237, 0.000000;;, + 91;3; 0.000000, 2.142237, 0.000000;;, + 92;3;-0.000000, 2.142237,-0.000000;;, + 93;3;-0.000000, 2.142237,-0.000000;;, + 94;3; 0.000000, 2.142237, 0.000000;;, + 95;3; 0.000000, 2.142237,-0.000000;;, + 96;3;-0.000000, 2.142237, 0.000000;;, + 97;3;-0.000000, 2.142237, 0.000000;;, + 98;3;-0.000000, 2.142237,-0.000000;;, + 99;3;-0.000000, 2.142237, 0.000000;;, + 100;3; 0.000000, 2.142237, 0.000000;;, + 101;3;-0.000000, 2.142237, 0.000000;;, + 102;3; 0.000000, 2.142237,-0.000000;;, + 103;3; 0.000000, 2.142237,-0.000000;;, + 104;3;-0.000000, 2.142237,-0.000000;;, + 105;3; 0.000000, 2.142237, 0.000000;;, + 106;3;-0.000000, 2.142237,-0.000000;;, + 107;3; 0.000000, 2.142237, 0.000000;;, + 108;3;-0.000000, 2.142237, 0.000000;;, + 109;3;-0.000000, 2.142237,-0.000000;;, + 110;3;-0.000000, 2.142237, 0.000000;;, + 111;3;-0.000000, 2.142237,-0.000000;;, + 112;3;-0.000000, 2.142237,-0.000000;;, + 113;3;-0.000000, 2.142237,-0.000000;;, + 114;3;-0.000000, 2.142237, 0.000000;;, + 115;3; 0.000000, 2.142237,-0.000000;;, + 116;3;-0.000000, 2.142237,-0.000000;;, + 117;3; 0.000000, 2.142236,-0.000000;;, + 118;3; 0.000000, 2.142237, 0.000000;;, + 119;3; 0.000000, 2.142237, 0.000000;;, + 120;3; 0.000000, 2.142237, 0.000000;;, + 121;3; 0.000000, 2.142237, 0.000000;;, + 122;3; 0.000000, 2.142237, 0.000000;;, + 123;3;-0.000000, 2.142237, 0.000000;;, + 124;3;-0.000000, 2.142237,-0.000000;;, + 125;3; 0.000000, 2.142237, 0.000000;;, + 126;3;-0.000000, 2.142237, 0.000000;;, + 127;3; 0.000000, 2.142237, 0.000000;;, + 128;3; 0.000000, 2.142237, 0.000000;;, + 129;3;-0.000000, 2.142237, 0.000000;;, + 130;3;-0.000000, 2.142237, 0.000000;;, + 131;3;-0.000000, 2.142237, 0.000000;;, + 132;3;-0.000000, 2.142237,-0.000000;;, + 133;3; 0.000000, 2.142237, 0.000000;;, + 134;3;-0.000000, 2.142237,-0.000000;;, + 135;3;-0.000000, 2.142237,-0.000000;;, + 136;3;-0.000000, 2.142237, 0.000000;;, + 137;3;-0.000000, 2.142237, 0.000000;;, + 138;3; 0.000000, 2.142237, 0.000000;;, + 139;3;-0.000000, 2.142237, 0.000000;;, + 140;3; 0.000000, 2.142237, 0.000000;;, + 141;3; 0.000000, 2.142237,-0.000000;;, + 142;3; 0.000000, 2.142237, 0.000000;;, + 143;3; 0.000000, 2.142237, 0.000000;;, + 144;3;-0.000000, 2.142237,-0.000000;;, + 145;3;-0.000000, 2.142237,-0.000000;;, + 146;3;-0.000000, 2.142237, 0.000000;;, + 147;3; 0.000000, 2.142237, 0.000000;;, + 148;3;-0.000000, 2.142237, 0.000000;;, + 149;3;-0.000000, 2.142237, 0.000000;;, + 150;3; 0.000000, 2.142237,-0.000000;;, + 151;3;-0.000000, 2.142237, 0.000000;;, + 152;3; 0.000000, 2.142237,-0.000000;;, + 153;3; 0.000000, 2.142237,-0.000000;;, + 154;3; 0.000000, 2.142237, 0.000000;;, + 155;3; 0.000000, 2.142237,-0.000000;;, + 156;3;-0.000000, 2.142237,-0.000000;;, + 157;3; 0.000000, 2.142237, 0.000000;;, + 158;3; 0.000000, 2.142237, 0.000000;;, + 159;3;-0.000000, 2.142237, 0.000000;;, + 160;3; 0.000000, 2.142237, 0.000000;;, + 161;3;-0.000000, 2.142237,-0.000000;;, + 162;3;-0.000000, 2.142237, 0.000000;;, + 163;3; 0.000000, 2.142237, 0.000000;;, + 164;3; 0.000000, 2.142237, 0.000000;;, + 165;3; 0.000000, 2.142237, 0.000000;;, + 166;3; 0.000000, 2.142237,-0.000000;;, + 167;3;-0.000000, 2.142237,-0.000000;;, + 168;3; 0.000000, 2.142237,-0.000000;;, + 169;3;-0.000000, 2.142237, 0.000000;;, + 170;3;-0.000000, 2.142237, 0.000000;;, + 171;3; 0.000000, 2.142237,-0.000000;;, + 172;3; 0.000000, 2.142237,-0.000000;;, + 173;3; 0.000000, 2.142237, 0.000000;;, + 174;3; 0.000000, 2.142237, 0.000000;;, + 175;3; 0.000000, 2.142237, 0.000000;;, + 176;3;-0.000000, 2.142237, 0.000000;;, + 177;3;-0.000000, 2.142237, 0.000000;;, + 178;3; 0.000000, 2.142237,-0.000000;;, + 179;3;-0.000000, 2.142237,-0.000000;;, + 180;3;-0.000000, 2.142236,-0.000000;;, + 181;3;-0.000000, 2.142237, 0.000000;;, + 182;3;-0.000000, 2.142237, 0.000000;;, + 183;3; 0.000000, 2.142237,-0.000000;;, + 184;3; 0.000000, 2.142237,-0.000000;;, + 185;3; 0.000000, 2.142237,-0.000000;;, + 186;3; 0.000000, 2.142237,-0.000000;;, + 187;3;-0.000000, 2.142237, 0.000000;;, + 188;3;-0.000000, 2.142237,-0.000000;;, + 189;3; 0.000000, 2.142237,-0.000000;;, + 190;3; 0.000000, 2.142237, 0.000000;;, + 191;3; 0.000000, 2.142237, 0.000000;;, + 192;3;-0.000000, 2.142237,-0.000000;;, + 193;3; 0.000000, 2.142237, 0.000000;;, + 194;3;-0.000000, 2.142237,-0.000000;;, + 195;3;-0.000000, 2.142237, 0.000000;;, + 196;3; 0.000000, 2.142237, 0.000000;;, + 197;3; 0.000000, 2.142237, 0.000000;;, + 198;3;-0.000000, 2.142237, 0.000000;;, + 199;3; 0.000000, 2.142237, 0.000000;;, + 200;3;-0.000000, 2.142237, 0.000000;;, + 201;3; 0.000000, 2.142237,-0.000000;;, + 202;3; 0.000000, 2.142237, 0.000000;;, + 203;3; 0.000000, 2.142237,-0.000000;;, + 204;3; 0.000000, 2.142237, 0.000000;;, + 205;3; 0.000000, 2.142237, 0.000000;;, + 206;3; 0.000000, 2.142237,-0.000000;;, + 207;3;-0.000000, 2.142237,-0.000000;;, + 208;3; 0.000000, 2.142237,-0.000000;;, + 209;3; 0.000000, 2.142237, 0.000000;;, + 210;3; 0.000000, 2.142237, 0.000000;;, + 211;3; 0.000000, 2.142237, 0.000000;;, + 212;3;-0.000000, 2.142237,-0.000000;;, + 213;3; 0.000000, 2.142237, 0.000000;;, + 214;3; 0.000000, 2.142237, 0.000000;;, + 215;3;-0.000000, 2.142237, 0.000000;;, + 216;3; 0.000000, 2.142237, 0.000000;;, + 217;3;-0.000000, 2.142237, 0.000000;;, + 218;3; 0.000000, 2.142237, 0.000000;;, + 219;3;-0.000000, 2.142237,-0.000000;;, + 220;3;-0.000000, 2.142237,-0.000000;;, + 221;3;-0.000000, 2.142237,-0.000000;;, + 222;3;-0.000000, 2.142237,-0.000000;;, + 223;3;-0.000000, 2.142237,-0.000000;;, + 224;3;-0.000000, 2.142237,-0.000000;;, + 225;3;-0.000000, 2.142237,-0.000000;;, + 226;3;-0.000000, 2.142237,-0.000000;;, + 227;3;-0.000000, 2.142237,-0.000000;;, + 228;3;-0.000000, 2.142237,-0.000000;;, + 229;3;-0.000000, 2.142237,-0.000000;;, + 230;3;-0.000000, 2.142237,-0.000000;;, + 231;3;-0.000000, 2.142237,-0.000000;;, + 232;3;-0.000000, 2.142237,-0.000000;;, + 233;3;-0.000000, 2.142237,-0.000000;;, + 234;3;-0.000000, 2.142237,-0.000000;;, + 235;3;-0.000000, 2.142237,-0.000000;;, + 236;3;-0.000000, 2.142237,-0.000000;;, + 237;3;-0.000000, 2.142237,-0.000000;;, + 238;3;-0.000000, 2.142237,-0.000000;;, + 239;3;-0.000000, 2.142237,-0.000000;;, + 240;3;-0.000000, 2.142237,-0.000000;;, + 241;3;-0.000000, 2.142237,-0.000000;;, + 242;3;-0.000000, 2.142237,-0.000000;;, + 243;3;-0.000000, 2.142237,-0.000000;;, + 244;3;-0.000000, 2.142237,-0.000000;;, + 245;3;-0.000000, 2.142237,-0.000000;;, + 246;3;-0.000000, 2.142237,-0.000000;;, + 247;3;-0.000000, 2.142237,-0.000000;;, + 248;3;-0.000000, 2.142237,-0.000000;;, + 249;3;-0.000000, 2.142237,-0.000000;;; + } + } + Animation { + {Armature_Bone_014} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 1;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 2;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 3;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 4;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 5;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 6;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 7;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 8;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 9;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 10;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 11;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 12;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 13;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 14;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 15;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 16;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 17;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 18;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 19;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 20;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 21;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 22;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 23;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 24;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 25;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 26;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 27;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 28;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 29;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 30;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 31;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 32;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 33;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 34;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 35;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 36;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 37;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 38;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 39;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 40;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 41;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 42;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 43;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 44;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 45;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 46;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 47;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 48;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 49;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 50;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 51;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 52;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 53;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 54;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 55;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 56;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 57;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 58;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 59;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 60;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 61;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 62;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 63;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 64;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 65;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 66;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 67;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 68;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 69;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 70;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 71;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 72;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 73;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 74;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 75;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 76;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 77;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 78;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 79;4;-0.506167,-0.026832,-0.037111, 0.861219;;, + 80;4;-0.644919,-0.330536, 0.308342, 0.616239;;, + 81;4;-0.636672,-0.316134, 0.313189, 0.627240;;, + 82;4;-0.618788,-0.298069, 0.311162, 0.649844;;, + 83;4;-0.597388,-0.278880, 0.305886, 0.676810;;, + 84;4;-0.575475,-0.259825, 0.299104, 0.704594;;, + 85;4;-0.554932,-0.241701, 0.291867, 0.730980;;, + 86;4;-0.537168,-0.225118, 0.284923, 0.754319;;, + 87;4;-0.523392,-0.210612, 0.278872, 0.773201;;, + 88;4;-0.514769,-0.198706, 0.274259, 0.786273;;, + 89;4;-0.512524,-0.189964, 0.271624, 0.792120;;, + 90;4;-0.515348,-0.183120, 0.270123, 0.792375;;, + 91;4;-0.521079,-0.176524, 0.268538, 0.789652;;, + 92;4;-0.529723,-0.170212, 0.266877, 0.783929;;, + 93;4;-0.541223,-0.164222, 0.265150, 0.775245;;, + 94;4;-0.555443,-0.158592, 0.263370, 0.763717;;, + 95;4;-0.572154,-0.153362, 0.261556, 0.749554;;, + 96;4;-0.591020,-0.148566, 0.259731, 0.733071;;, + 97;4;-0.611600,-0.144232, 0.257920, 0.714693;;, + 98;4;-0.633353,-0.140381, 0.256152, 0.694942;;, + 99;4;-0.655663,-0.137020, 0.254457, 0.674424;;, + 100;4;-0.677876,-0.134146, 0.252864, 0.653785;;, + 101;4;-0.699341,-0.131740, 0.251399, 0.633677;;, + 102;4;-0.719449,-0.129775, 0.250084, 0.614711;;, + 103;4;-0.737672,-0.128212, 0.248937, 0.597426;;, + 104;4;-0.753581,-0.127008, 0.247967, 0.582265;;, + 105;4;-0.766858,-0.126117, 0.247181, 0.569561;;, + 106;4;-0.777289,-0.125494, 0.246578, 0.559547;;, + 107;4;-0.784755,-0.125096, 0.246156, 0.552358;;, + 108;4;-0.789215,-0.124882, 0.245909, 0.548052;;, + 109;4;-0.790689,-0.124818, 0.245829, 0.546626;;, + 110;4;-0.789890,-0.125584, 0.246407, 0.546170;;, + 111;4;-0.787481,-0.127892, 0.248149, 0.544795;;, + 112;4;-0.783447,-0.131756, 0.251066, 0.542494;;, + 113;4;-0.777783,-0.137183, 0.255162, 0.539261;;, + 114;4;-0.770486,-0.144174, 0.260438, 0.535098;;, + 115;4;-0.761566,-0.152719, 0.266888, 0.530008;;, + 116;4;-0.751041,-0.162803, 0.274499, 0.524002;;, + 117;4;-0.738939,-0.174397, 0.283249, 0.517096;;, + 118;4;-0.725301,-0.187463, 0.293111, 0.509314;;, + 119;4;-0.710182,-0.201948, 0.304044, 0.500687;;, + 120;4;-0.693648,-0.217789, 0.316000, 0.491252;;, + 121;4;-0.675782,-0.234905, 0.328918, 0.481058;;, + 122;4;-0.656682,-0.253204, 0.342730, 0.470159;;, + 123;4;-0.636460,-0.272577, 0.357352, 0.458620;;, + 124;4;-0.615244,-0.292903, 0.372693, 0.446514;;, + 125;4;-0.593175,-0.314046, 0.388651, 0.433921;;, + 126;4;-0.570407,-0.335859, 0.405115, 0.420929;;, + 127;4;-0.547104,-0.358184, 0.421964, 0.407632;;, + 128;4;-0.523441,-0.380855, 0.439076, 0.394129;;, + 129;4;-0.499595,-0.403701, 0.456319, 0.380522;;, + 130;4;-0.475749,-0.426546, 0.473561, 0.366915;;, + 131;4;-0.452085,-0.449217, 0.490673, 0.353412;;, + 132;4;-0.428783,-0.471542, 0.507523, 0.340115;;, + 133;4;-0.406015,-0.493355, 0.523986, 0.327124;;, + 134;4;-0.383946,-0.514498, 0.539944, 0.314531;;, + 135;4;-0.362730,-0.534824, 0.555285, 0.302424;;, + 136;4;-0.342508,-0.554198, 0.569908, 0.290885;;, + 137;4;-0.323408,-0.572496, 0.583719, 0.279987;;, + 138;4;-0.305542,-0.589613, 0.596638, 0.269792;;, + 139;4;-0.289008,-0.605453, 0.608593, 0.260357;;, + 140;4;-0.273888,-0.619939, 0.619526, 0.251730;;, + 141;4;-0.260251,-0.633004, 0.629388, 0.243948;;, + 142;4;-0.248149,-0.644598, 0.638139, 0.237042;;, + 143;4;-0.237623,-0.654682, 0.645749, 0.231036;;, + 144;4;-0.228704,-0.663228, 0.652199, 0.225946;;, + 145;4;-0.221407,-0.670218, 0.657475, 0.221783;;, + 146;4;-0.215742,-0.675646, 0.661572, 0.218550;;, + 147;4;-0.211709,-0.679510, 0.664488, 0.216249;;, + 148;4;-0.209300,-0.681818, 0.666230, 0.214874;;, + 149;4;-0.208501,-0.682584, 0.666808, 0.214418;;, + 150;4;-0.210763,-0.680758, 0.664949, 0.216502;;, + 151;4;-0.217116,-0.675634, 0.659731, 0.222351;;, + 152;4;-0.227009,-0.667653, 0.651606, 0.231459;;, + 153;4;-0.240000,-0.657174, 0.640935, 0.243421;;, + 154;4;-0.255726,-0.644488, 0.628018, 0.257900;;, + 155;4;-0.273881,-0.629843, 0.613106, 0.274615;;, + 156;4;-0.294204,-0.613449, 0.596413, 0.293327;;, + 157;4;-0.316468,-0.595489, 0.578126, 0.313826;;, + 158;4;-0.340468,-0.576128, 0.558412, 0.335924;;, + 159;4;-0.366019,-0.555517, 0.537425, 0.359449;;, + 160;4;-0.392944,-0.533798, 0.515310, 0.384240;;, + 161;4;-0.421070,-0.511109, 0.492208, 0.410136;;, + 162;4;-0.450217,-0.487598, 0.468267, 0.436972;;, + 163;4;-0.480186,-0.463422, 0.443651, 0.464565;;, + 164;4;-0.510742,-0.438774, 0.418553, 0.492699;;, + 165;4;-0.541571,-0.413904, 0.393231, 0.521084;;, + 166;4;-0.572208,-0.389191, 0.368066, 0.549292;;, + 167;4;-0.601833,-0.365293, 0.343733, 0.576568;;, + 168;4;-0.628596,-0.343704, 0.321750, 0.601210;;, + 169;4;-0.644919,-0.330536, 0.308342, 0.616239;;, + 170;4;-0.644919,-0.330536, 0.308342, 0.616239;;, + 171;4;-0.657870,-0.323360, 0.313812, 0.603318;;, + 172;4;-0.684525,-0.308297, 0.325295, 0.575764;;, + 173;4;-0.715549,-0.290280, 0.339031, 0.542119;;, + 174;4;-0.746331,-0.271728, 0.353177, 0.506537;;, + 175;4;-0.773947,-0.254151, 0.366581, 0.471580;;, + 176;4;-0.796176,-0.238676, 0.378386, 0.439124;;, + 177;4;-0.811075,-0.226267, 0.387856, 0.410742;;, + 178;4;-0.816744,-0.217848, 0.394289, 0.387909;;, + 179;4;-0.811159,-0.214386, 0.396946, 0.372148;;, + 180;4;-0.791253,-0.219647, 0.398686, 0.355564;;, + 181;4;-0.755314,-0.236838, 0.402926, 0.329131;;, + 182;4;-0.703586,-0.265870, 0.409640, 0.293041;;, + 183;4;-0.637049,-0.306133, 0.418693, 0.247950;;, + 184;4;-0.557614,-0.356348, 0.429808, 0.195097;;, + 185;4;-0.468242,-0.414471, 0.442544, 0.136375;;, + 186;4;-0.372881,-0.477726, 0.456312, 0.074281;;, + 187;4;-0.276184,-0.542800, 0.470404, 0.011743;;, + 188;4;-0.183033,-0.606173, 0.484078,-0.048189;;, + 189;4;-0.097980,-0.664525, 0.496633,-0.102688;;, + 190;4;-0.024792,-0.715071, 0.507485,-0.149432;;, + 191;4; 0.033805,-0.755755, 0.516203,-0.186760;;, + 192;4; 0.076153,-0.785284, 0.522522,-0.213678;;, + 193;4; 0.101520,-0.803035, 0.526316,-0.229774;;, + 194;4; 0.109890,-0.808908, 0.527571,-0.235078;;, + 195;4; 0.096325,-0.806274, 0.523732,-0.222068;;, + 196;4; 0.058943,-0.798699, 0.513473,-0.186217;;, + 197;4; 0.002100,-0.786540, 0.498513,-0.131710;;, + 198;4;-0.070370,-0.770003, 0.480480,-0.062226;;, + 199;4;-0.154826,-0.749140, 0.461059, 0.018737;;, + 200;4;-0.247451,-0.723833, 0.442194, 0.107509;;, + 201;4;-0.343710,-0.693723, 0.426412, 0.199730;;, + 202;4;-0.437287,-0.658045, 0.417495, 0.289325;;, + 203;4;-0.517389,-0.615181, 0.422225, 0.365910;;, + 204;4;-0.558909,-0.561003, 0.456736, 0.405326;;, + 205;4;-0.168288,-0.552969, 0.791279, 0.199456;;, + 206;4;-0.108197,-0.572617, 0.776881, 0.245579;;, + 207;4;-0.069704,-0.623296, 0.729650, 0.272098;;, + 208;4;-0.053450,-0.681570, 0.672344, 0.280307;;, + 209;4;-0.049501,-0.720390, 0.632513, 0.280207;;, + 210;4;-0.074958,-0.741284, 0.606469, 0.252905;;, + 211;4;-0.149549,-0.752889, 0.583502, 0.178143;;, + 212;4;-0.246488,-0.755963, 0.566636, 0.083116;;, + 213;4;-0.323142,-0.754713, 0.557401, 0.010184;;, + 214;4;-0.352108,-0.753732, 0.554719,-0.014004;;, + 215;4;-0.342135,-0.751535, 0.561359, 0.003031;;, + 216;4;-0.309210,-0.745090, 0.580267, 0.046289;;, + 217;4;-0.265723,-0.736751, 0.604596, 0.100646;;, + 218;4;-0.231477,-0.730236, 0.623560, 0.142611;;, + 219;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 220;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 221;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 222;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 223;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 224;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 225;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 226;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 227;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 228;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 229;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 230;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 231;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 232;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 233;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 234;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 235;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 236;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 237;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 238;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 239;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 240;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 241;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 242;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 243;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 244;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 245;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 246;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 247;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 248;4;-0.219254,-0.727920, 0.630295, 0.157447;;, + 249;4;-0.219254,-0.727920, 0.630295, 0.157447;;; + } + AnimationKey { // Scale + 1; + 250; + 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; 0.999999, 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 0.759654, 0.000000;;, + 1;3; 0.000000, 0.759654, 0.000000;;, + 2;3; 0.000000, 0.759654, 0.000000;;, + 3;3; 0.000000, 0.759654, 0.000000;;, + 4;3; 0.000000, 0.759654, 0.000000;;, + 5;3; 0.000000, 0.759654, 0.000000;;, + 6;3; 0.000000, 0.759654, 0.000000;;, + 7;3; 0.000000, 0.759654, 0.000000;;, + 8;3; 0.000000, 0.759654, 0.000000;;, + 9;3; 0.000000, 0.759654, 0.000000;;, + 10;3; 0.000000, 0.759654, 0.000000;;, + 11;3; 0.000000, 0.759654, 0.000000;;, + 12;3; 0.000000, 0.759654, 0.000000;;, + 13;3; 0.000000, 0.759654, 0.000000;;, + 14;3; 0.000000, 0.759654, 0.000000;;, + 15;3; 0.000000, 0.759654, 0.000000;;, + 16;3; 0.000000, 0.759654, 0.000000;;, + 17;3; 0.000000, 0.759654, 0.000000;;, + 18;3; 0.000000, 0.759654, 0.000000;;, + 19;3; 0.000000, 0.759654, 0.000000;;, + 20;3; 0.000000, 0.759654, 0.000000;;, + 21;3; 0.000000, 0.759654, 0.000000;;, + 22;3; 0.000000, 0.759654, 0.000000;;, + 23;3; 0.000000, 0.759654, 0.000000;;, + 24;3; 0.000000, 0.759654, 0.000000;;, + 25;3; 0.000000, 0.759654, 0.000000;;, + 26;3; 0.000000, 0.759654, 0.000000;;, + 27;3; 0.000000, 0.759654, 0.000000;;, + 28;3; 0.000000, 0.759654, 0.000000;;, + 29;3; 0.000000, 0.759654, 0.000000;;, + 30;3; 0.000000, 0.759654, 0.000000;;, + 31;3; 0.000000, 0.759654, 0.000000;;, + 32;3; 0.000000, 0.759654, 0.000000;;, + 33;3; 0.000000, 0.759654, 0.000000;;, + 34;3; 0.000000, 0.759654, 0.000000;;, + 35;3; 0.000000, 0.759654, 0.000000;;, + 36;3; 0.000000, 0.759654, 0.000000;;, + 37;3; 0.000000, 0.759654, 0.000000;;, + 38;3; 0.000000, 0.759654, 0.000000;;, + 39;3; 0.000000, 0.759654, 0.000000;;, + 40;3; 0.000000, 0.759654, 0.000000;;, + 41;3; 0.000000, 0.759654, 0.000000;;, + 42;3; 0.000000, 0.759654, 0.000000;;, + 43;3; 0.000000, 0.759654, 0.000000;;, + 44;3; 0.000000, 0.759654, 0.000000;;, + 45;3; 0.000000, 0.759654, 0.000000;;, + 46;3; 0.000000, 0.759654, 0.000000;;, + 47;3; 0.000000, 0.759654, 0.000000;;, + 48;3; 0.000000, 0.759654, 0.000000;;, + 49;3; 0.000000, 0.759654, 0.000000;;, + 50;3; 0.000000, 0.759654, 0.000000;;, + 51;3; 0.000000, 0.759654, 0.000000;;, + 52;3; 0.000000, 0.759654, 0.000000;;, + 53;3; 0.000000, 0.759654, 0.000000;;, + 54;3; 0.000000, 0.759654, 0.000000;;, + 55;3; 0.000000, 0.759654, 0.000000;;, + 56;3; 0.000000, 0.759654, 0.000000;;, + 57;3; 0.000000, 0.759654, 0.000000;;, + 58;3; 0.000000, 0.759654, 0.000000;;, + 59;3; 0.000000, 0.759654, 0.000000;;, + 60;3; 0.000000, 0.759654, 0.000000;;, + 61;3; 0.000000, 0.759654, 0.000000;;, + 62;3; 0.000000, 0.759654, 0.000000;;, + 63;3; 0.000000, 0.759654, 0.000000;;, + 64;3; 0.000000, 0.759654, 0.000000;;, + 65;3; 0.000000, 0.759654, 0.000000;;, + 66;3; 0.000000, 0.759654, 0.000000;;, + 67;3; 0.000000, 0.759654, 0.000000;;, + 68;3; 0.000000, 0.759654, 0.000000;;, + 69;3; 0.000000, 0.759654, 0.000000;;, + 70;3; 0.000000, 0.759654, 0.000000;;, + 71;3; 0.000000, 0.759654, 0.000000;;, + 72;3; 0.000000, 0.759654, 0.000000;;, + 73;3; 0.000000, 0.759654, 0.000000;;, + 74;3; 0.000000, 0.759654, 0.000000;;, + 75;3; 0.000000, 0.759654, 0.000000;;, + 76;3; 0.000000, 0.759654, 0.000000;;, + 77;3; 0.000000, 0.759654, 0.000000;;, + 78;3; 0.000000, 0.759654, 0.000000;;, + 79;3; 0.000000, 0.759654, 0.000000;;, + 80;3; 0.000000, 0.759654,-0.000000;;, + 81;3; 0.000000, 0.759654,-0.000000;;, + 82;3; 0.000000, 0.759654,-0.000000;;, + 83;3; 0.000000, 0.759654,-0.000000;;, + 84;3; 0.000000, 0.759654,-0.000000;;, + 85;3; 0.000000, 0.759654,-0.000000;;, + 86;3; 0.000000, 0.759654,-0.000000;;, + 87;3; 0.000000, 0.759654,-0.000000;;, + 88;3; 0.000000, 0.759654,-0.000000;;, + 89;3; 0.000000, 0.759654,-0.000000;;, + 90;3; 0.000000, 0.759654,-0.000000;;, + 91;3; 0.000000, 0.759654,-0.000000;;, + 92;3; 0.000000, 0.759654,-0.000000;;, + 93;3; 0.000000, 0.759654,-0.000000;;, + 94;3; 0.000000, 0.759654,-0.000000;;, + 95;3; 0.000000, 0.759654,-0.000000;;, + 96;3; 0.000000, 0.759654,-0.000000;;, + 97;3; 0.000000, 0.759654,-0.000000;;, + 98;3; 0.000000, 0.759654,-0.000000;;, + 99;3; 0.000000, 0.759654,-0.000000;;, + 100;3; 0.000000, 0.759654,-0.000000;;, + 101;3; 0.000000, 0.759654,-0.000000;;, + 102;3; 0.000000, 0.759654,-0.000000;;, + 103;3; 0.000000, 0.759654,-0.000000;;, + 104;3; 0.000000, 0.759654,-0.000000;;, + 105;3; 0.000000, 0.759654,-0.000000;;, + 106;3; 0.000000, 0.759654,-0.000000;;, + 107;3; 0.000000, 0.759654,-0.000000;;, + 108;3; 0.000000, 0.759654,-0.000000;;, + 109;3; 0.000000, 0.759654,-0.000000;;, + 110;3; 0.000000, 0.759654,-0.000000;;, + 111;3; 0.000000, 0.759654,-0.000000;;, + 112;3; 0.000000, 0.759654,-0.000000;;, + 113;3; 0.000000, 0.759654,-0.000000;;, + 114;3; 0.000000, 0.759654,-0.000000;;, + 115;3; 0.000000, 0.759654,-0.000000;;, + 116;3; 0.000000, 0.759654,-0.000000;;, + 117;3; 0.000000, 0.759654,-0.000000;;, + 118;3; 0.000000, 0.759654,-0.000000;;, + 119;3; 0.000000, 0.759654,-0.000000;;, + 120;3; 0.000000, 0.759654,-0.000000;;, + 121;3; 0.000000, 0.759654,-0.000000;;, + 122;3; 0.000000, 0.759654,-0.000000;;, + 123;3; 0.000000, 0.759654,-0.000000;;, + 124;3; 0.000000, 0.759654,-0.000000;;, + 125;3; 0.000000, 0.759654,-0.000000;;, + 126;3; 0.000000, 0.759654,-0.000000;;, + 127;3; 0.000000, 0.759654,-0.000000;;, + 128;3; 0.000000, 0.759654,-0.000000;;, + 129;3; 0.000000, 0.759654,-0.000000;;, + 130;3; 0.000000, 0.759654,-0.000000;;, + 131;3; 0.000000, 0.759654,-0.000000;;, + 132;3; 0.000000, 0.759654,-0.000000;;, + 133;3; 0.000000, 0.759654,-0.000000;;, + 134;3; 0.000000, 0.759654,-0.000000;;, + 135;3; 0.000000, 0.759654,-0.000000;;, + 136;3; 0.000000, 0.759654,-0.000000;;, + 137;3; 0.000000, 0.759654,-0.000000;;, + 138;3; 0.000000, 0.759654,-0.000000;;, + 139;3; 0.000000, 0.759654,-0.000000;;, + 140;3; 0.000000, 0.759654,-0.000000;;, + 141;3; 0.000000, 0.759654,-0.000000;;, + 142;3; 0.000000, 0.759654,-0.000000;;, + 143;3; 0.000000, 0.759654,-0.000000;;, + 144;3; 0.000000, 0.759654,-0.000000;;, + 145;3; 0.000000, 0.759654,-0.000000;;, + 146;3; 0.000000, 0.759654,-0.000000;;, + 147;3; 0.000000, 0.759654,-0.000000;;, + 148;3; 0.000000, 0.759654,-0.000000;;, + 149;3; 0.000000, 0.759654,-0.000000;;, + 150;3; 0.000000, 0.759654,-0.000000;;, + 151;3; 0.000000, 0.759654,-0.000000;;, + 152;3; 0.000000, 0.759654,-0.000000;;, + 153;3; 0.000000, 0.759654,-0.000000;;, + 154;3; 0.000000, 0.759654,-0.000000;;, + 155;3; 0.000000, 0.759654,-0.000000;;, + 156;3; 0.000000, 0.759654,-0.000000;;, + 157;3; 0.000000, 0.759654,-0.000000;;, + 158;3; 0.000000, 0.759654,-0.000000;;, + 159;3; 0.000000, 0.759654,-0.000000;;, + 160;3; 0.000000, 0.759654,-0.000000;;, + 161;3; 0.000000, 0.759654,-0.000000;;, + 162;3; 0.000000, 0.759654,-0.000000;;, + 163;3; 0.000000, 0.759654,-0.000000;;, + 164;3; 0.000000, 0.759654,-0.000000;;, + 165;3; 0.000000, 0.759654,-0.000000;;, + 166;3; 0.000000, 0.759654,-0.000000;;, + 167;3; 0.000000, 0.759654,-0.000000;;, + 168;3; 0.000000, 0.759654,-0.000000;;, + 169;3; 0.000000, 0.759654,-0.000000;;, + 170;3; 0.000000, 0.759654, 0.000000;;, + 171;3; 0.000000, 0.759654, 0.000000;;, + 172;3; 0.000000, 0.759654, 0.000000;;, + 173;3; 0.000000, 0.759654, 0.000000;;, + 174;3; 0.000000, 0.759654, 0.000000;;, + 175;3; 0.000000, 0.759654, 0.000000;;, + 176;3; 0.000000, 0.759654, 0.000000;;, + 177;3; 0.000000, 0.759654, 0.000000;;, + 178;3; 0.000000, 0.759654, 0.000000;;, + 179;3; 0.000000, 0.759654, 0.000000;;, + 180;3; 0.000000, 0.759654, 0.000000;;, + 181;3; 0.000000, 0.759654, 0.000000;;, + 182;3; 0.000000, 0.759654, 0.000000;;, + 183;3; 0.000000, 0.759654, 0.000000;;, + 184;3; 0.000000, 0.759654, 0.000000;;, + 185;3; 0.000000, 0.759654, 0.000000;;, + 186;3; 0.000000, 0.759654, 0.000000;;, + 187;3; 0.000000, 0.759654, 0.000000;;, + 188;3; 0.000000, 0.759654, 0.000000;;, + 189;3; 0.000000, 0.759654, 0.000000;;, + 190;3; 0.000000, 0.759654, 0.000000;;, + 191;3; 0.000000, 0.759654, 0.000000;;, + 192;3; 0.000000, 0.759654, 0.000000;;, + 193;3; 0.000000, 0.759654, 0.000000;;, + 194;3; 0.000000, 0.759654, 0.000000;;, + 195;3; 0.000000, 0.759654, 0.000000;;, + 196;3; 0.000000, 0.759654, 0.000000;;, + 197;3; 0.000000, 0.759654, 0.000000;;, + 198;3; 0.000000, 0.759654, 0.000000;;, + 199;3; 0.000000, 0.759654, 0.000000;;, + 200;3; 0.000000, 0.759654, 0.000000;;, + 201;3; 0.000000, 0.759654, 0.000000;;, + 202;3; 0.000000, 0.759654, 0.000000;;, + 203;3; 0.000000, 0.759654, 0.000000;;, + 204;3; 0.000000, 0.759654, 0.000000;;, + 205;3;-0.000000, 0.759654, 0.000000;;, + 206;3; 0.000000, 0.759654, 0.000000;;, + 207;3; 0.000000, 0.759654,-0.000000;;, + 208;3; 0.000000, 0.759654, 0.000000;;, + 209;3;-0.000000, 0.759654,-0.000000;;, + 210;3;-0.000000, 0.759654,-0.000000;;, + 211;3;-0.000000, 0.759654,-0.000000;;, + 212;3;-0.000000, 0.759654,-0.000000;;, + 213;3;-0.000000, 0.759654,-0.000000;;, + 214;3;-0.000000, 0.759654,-0.000000;;, + 215;3; 0.000000, 0.759654,-0.000000;;, + 216;3; 0.000000, 0.759654,-0.000000;;, + 217;3;-0.000000, 0.759654, 0.000000;;, + 218;3;-0.000000, 0.759654,-0.000000;;, + 219;3;-0.000000, 0.759654,-0.000000;;, + 220;3;-0.000000, 0.759654,-0.000000;;, + 221;3;-0.000000, 0.759654,-0.000000;;, + 222;3;-0.000000, 0.759654,-0.000000;;, + 223;3;-0.000000, 0.759654,-0.000000;;, + 224;3;-0.000000, 0.759654,-0.000000;;, + 225;3;-0.000000, 0.759654,-0.000000;;, + 226;3;-0.000000, 0.759654,-0.000000;;, + 227;3;-0.000000, 0.759654,-0.000000;;, + 228;3;-0.000000, 0.759654,-0.000000;;, + 229;3;-0.000000, 0.759654,-0.000000;;, + 230;3;-0.000000, 0.759654,-0.000000;;, + 231;3;-0.000000, 0.759654,-0.000000;;, + 232;3;-0.000000, 0.759654,-0.000000;;, + 233;3;-0.000000, 0.759654,-0.000000;;, + 234;3;-0.000000, 0.759654,-0.000000;;, + 235;3;-0.000000, 0.759654,-0.000000;;, + 236;3;-0.000000, 0.759654,-0.000000;;, + 237;3;-0.000000, 0.759654,-0.000000;;, + 238;3;-0.000000, 0.759654,-0.000000;;, + 239;3;-0.000000, 0.759654,-0.000000;;, + 240;3;-0.000000, 0.759654,-0.000000;;, + 241;3;-0.000000, 0.759654,-0.000000;;, + 242;3;-0.000000, 0.759654,-0.000000;;, + 243;3;-0.000000, 0.759654,-0.000000;;, + 244;3;-0.000000, 0.759654,-0.000000;;, + 245;3;-0.000000, 0.759654,-0.000000;;, + 246;3;-0.000000, 0.759654,-0.000000;;, + 247;3;-0.000000, 0.759654,-0.000000;;, + 248;3;-0.000000, 0.759654,-0.000000;;, + 249;3;-0.000000, 0.759654,-0.000000;;; + } + } + Animation { + {Armature_Bone_015} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 1;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 2;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 3;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 4;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 5;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 6;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 7;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 8;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 9;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 10;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 11;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 12;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 13;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 14;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 15;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 16;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 17;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 18;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 19;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 20;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 21;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 22;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 23;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 24;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 25;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 26;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 27;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 28;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 29;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 30;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 31;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 32;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 33;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 34;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 35;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 36;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 37;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 38;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 39;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 40;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 41;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 42;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 43;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 44;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 45;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 46;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 47;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 48;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 49;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 50;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 51;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 52;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 53;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 54;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 55;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 56;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 57;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 58;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 59;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 60;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 61;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 62;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 63;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 64;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 65;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 66;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 67;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 68;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 69;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 70;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 71;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 72;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 73;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 74;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 75;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 76;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 77;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 78;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 79;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 80;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 81;4;-0.777595,-0.029580,-0.121061,-0.612168;;, + 82;4;-0.760934,-0.020807,-0.093729,-0.631018;;, + 83;4;-0.741074,-0.010728,-0.060708,-0.653494;;, + 84;4;-0.720714,-0.000909,-0.026255,-0.676546;;, + 85;4;-0.701544, 0.007649, 0.006985,-0.698260;;, + 86;4;-0.684829, 0.014178, 0.037057,-0.717209;;, + 87;4;-0.671652, 0.018005, 0.062303,-0.732169;;, + 88;4;-0.663055, 0.018463, 0.081151,-0.741961;;, + 89;4;-0.660135, 0.014839, 0.091963,-0.745349;;, + 90;4;-0.661168, 0.008365, 0.097343,-0.744220;;, + 91;4;-0.663657, 0.000800, 0.101031,-0.741336;;, + 92;4;-0.667607,-0.007833, 0.102987,-0.736691;;, + 93;4;-0.672992,-0.017485, 0.103197,-0.730316;;, + 94;4;-0.679747,-0.028068, 0.101688,-0.722288;;, + 95;4;-0.687760,-0.039458, 0.098532,-0.712742;;, + 96;4;-0.696867,-0.051483, 0.093856,-0.701875;;, + 97;4;-0.706850,-0.063932, 0.087849,-0.689949;;, + 98;4;-0.717442,-0.076556, 0.080753,-0.677286;;, + 99;4;-0.728339,-0.089083, 0.072864,-0.664251;;, + 100;4;-0.739216,-0.101230, 0.064508,-0.651236;;, + 101;4;-0.749747,-0.112728, 0.056023,-0.638632;;, + 102;4;-0.759631,-0.123331, 0.047739,-0.626804;;, + 103;4;-0.768602,-0.132835, 0.039955,-0.616070;;, + 104;4;-0.776447,-0.141086, 0.032929,-0.606689;;, + 105;4;-0.783003,-0.147975, 0.026865,-0.598857;;, + 106;4;-0.788163,-0.153442, 0.021917,-0.592702;;, + 107;4;-0.791865,-0.157465, 0.018188,-0.588300;;, + 108;4;-0.794086,-0.160054, 0.015742,-0.585679;;, + 109;4;-0.794835,-0.161242, 0.014605,-0.584829;;, + 110;4;-0.794842,-0.161553, 0.013937,-0.584879;;, + 111;4;-0.794823,-0.161478, 0.012891,-0.584978;;, + 112;4;-0.794776,-0.161012, 0.011464,-0.585126;;, + 113;4;-0.794702,-0.160153, 0.009655,-0.585323;;, + 114;4;-0.794600,-0.158900, 0.007465,-0.585570;;, + 115;4;-0.794471,-0.157255, 0.004896,-0.585867;;, + 116;4;-0.794314,-0.155222, 0.001953,-0.586212;;, + 117;4;-0.794131,-0.152805,-0.001357,-0.586605;;, + 118;4;-0.793921,-0.150015,-0.005022,-0.587044;;, + 119;4;-0.793687,-0.146863,-0.009029,-0.587528;;, + 120;4;-0.793428,-0.143364,-0.013361,-0.588055;;, + 121;4;-0.793147,-0.139537,-0.017999,-0.588622;;, + 122;4;-0.792844,-0.135404,-0.022918,-0.589226;;, + 123;4;-0.792522,-0.130992,-0.028089,-0.589863;;, + 124;4;-0.792183,-0.126329,-0.033484,-0.590530;;, + 125;4;-0.791829,-0.121449,-0.039066,-0.591223;;, + 126;4;-0.791462,-0.116387,-0.044800,-0.591936;;, + 127;4;-0.791086,-0.111182,-0.050644,-0.592665;;, + 128;4;-0.790703,-0.105875,-0.056559,-0.593403;;, + 129;4;-0.790317,-0.100506,-0.062500,-0.594147;;, + 130;4;-0.789929,-0.095120,-0.068424,-0.594889;;, + 131;4;-0.789544,-0.089760,-0.074288,-0.595626;;, + 132;4;-0.789164,-0.084467,-0.080050,-0.596350;;, + 133;4;-0.788793,-0.079284,-0.085667,-0.597057;;, + 134;4;-0.788432,-0.074249,-0.091102,-0.597741;;, + 135;4;-0.788085,-0.069399,-0.096317,-0.598399;;, + 136;4;-0.787754,-0.064768,-0.101280,-0.599026;;, + 137;4;-0.787441,-0.060387,-0.105961,-0.599617;;, + 138;4;-0.787148,-0.056282,-0.110334,-0.600170;;, + 139;4;-0.786876,-0.052479,-0.114376,-0.600681;;, + 140;4;-0.786627,-0.048996,-0.118068,-0.601149;;, + 141;4;-0.786403,-0.045851,-0.121394,-0.601570;;, + 142;4;-0.786204,-0.043058,-0.124343,-0.601944;;, + 143;4;-0.786031,-0.040625,-0.126905,-0.602269;;, + 144;4;-0.785884,-0.038562,-0.129075,-0.602544;;, + 145;4;-0.785764,-0.036873,-0.130849,-0.602770;;, + 146;4;-0.785670,-0.035561,-0.132225,-0.602944;;, + 147;4;-0.785604,-0.034626,-0.133204,-0.603069;;, + 148;4;-0.785564,-0.034067,-0.133788,-0.603143;;, + 149;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 150;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 151;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 152;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 153;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 154;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 155;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 156;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 157;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 158;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 159;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 160;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 161;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 162;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 163;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 164;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 165;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 166;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 167;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 168;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 169;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 170;4;-0.785551,-0.033881,-0.133982,-0.603168;;, + 171;4;-0.785113,-0.014468,-0.142252,-0.596598;;, + 172;4;-0.784478, 0.026226,-0.159608,-0.582332;;, + 173;4;-0.784178, 0.074801,-0.180358,-0.564504;;, + 174;4;-0.784492, 0.124693,-0.201716,-0.545106;;, + 175;4;-0.785618, 0.171789,-0.221937,-0.525347;;, + 176;4;-0.787725, 0.213023,-0.239722,-0.506088;;, + 177;4;-0.790981, 0.245762,-0.253958,-0.488032;;, + 178;4;-0.795566, 0.267484,-0.263579,-0.471817;;, + 179;4;-0.801688, 0.275537,-0.267465,-0.458081;;, + 180;4;-0.809326, 0.274422,-0.266664,-0.445368;;, + 181;4;-0.818280, 0.270502,-0.263008,-0.431831;;, + 182;4;-0.828473, 0.263770,-0.256538,-0.417599;;, + 183;4;-0.839750, 0.254335,-0.247427,-0.402868;;, + 184;4;-0.851867, 0.242454,-0.236014,-0.387914;;, + 185;4;-0.864483, 0.228560,-0.222823,-0.373086;;, + 186;4;-0.877173, 0.213258,-0.208556,-0.358788;;, + 187;4;-0.889464, 0.197283,-0.194038,-0.345443;;, + 188;4;-0.900886, 0.181427,-0.180139,-0.333440;;, + 189;4;-0.911023, 0.166452,-0.167667,-0.323099;;, + 190;4;-0.919557, 0.153008,-0.157294,-0.314632;;, + 191;4;-0.926279, 0.141584,-0.149505,-0.308148;;, + 192;4;-0.931091, 0.132504,-0.144597,-0.303657;;, + 193;4;-0.933981, 0.125937,-0.142701,-0.301099;;, + 194;4;-0.935001, 0.121933,-0.143821,-0.300367;;, + 195;4;-0.932385, 0.119756,-0.147732,-0.305311;;, + 196;4;-0.924976, 0.118564,-0.153917,-0.318689;;, + 197;4;-0.913657, 0.118197,-0.161937,-0.338945;;, + 198;4;-0.899203, 0.118524,-0.171395,-0.364711;;, + 199;4;-0.882354, 0.119422,-0.181913,-0.394681;;, + 200;4;-0.863886, 0.120772,-0.193082,-0.427486;;, + 201;4;-0.844723, 0.122440,-0.204408,-0.461491;;, + 202;4;-0.826155, 0.124252,-0.215190,-0.494417;;, + 203;4;-0.810387, 0.125923,-0.224216,-0.522360;;, + 204;4;-0.802555, 0.126804,-0.228650,-0.536234;;, + 205;4;-0.802555, 0.126804,-0.228650,-0.536234;;, + 206;4;-0.802555, 0.126804,-0.228650,-0.536234;;, + 207;4;-0.802555, 0.126804,-0.228650,-0.536234;;, + 208;4;-0.802555, 0.126804,-0.228650,-0.536234;;, + 209;4;-0.802555, 0.126804,-0.228650,-0.536234;;, + 210;4;-0.802155, 0.115982,-0.223521,-0.539928;;, + 211;4;-0.801030, 0.085500,-0.209073,-0.550335;;, + 212;4;-0.799586, 0.046361,-0.190523,-0.563696;;, + 213;4;-0.798461, 0.015879,-0.176076,-0.574103;;, + 214;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 215;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 216;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 217;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 218;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 219;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 220;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 221;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 222;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 223;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 224;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 225;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 226;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 227;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 228;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 229;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 230;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 231;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 232;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 233;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 234;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 235;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 236;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 237;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 238;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 239;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 240;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 241;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 242;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 243;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 244;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 245;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 246;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 247;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 248;4;-0.798062, 0.005057,-0.170947,-0.577797;;, + 249;4;-0.798062, 0.005057,-0.170947,-0.577797;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 2.190849,-0.000000;;, + 1;3; 0.000000, 2.190849,-0.000000;;, + 2;3; 0.000000, 2.190849,-0.000000;;, + 3;3; 0.000000, 2.190849,-0.000000;;, + 4;3; 0.000000, 2.190849,-0.000000;;, + 5;3; 0.000000, 2.190849,-0.000000;;, + 6;3; 0.000000, 2.190849,-0.000000;;, + 7;3; 0.000000, 2.190849,-0.000000;;, + 8;3; 0.000000, 2.190849,-0.000000;;, + 9;3; 0.000000, 2.190849,-0.000000;;, + 10;3; 0.000000, 2.190849,-0.000000;;, + 11;3; 0.000000, 2.190849,-0.000000;;, + 12;3; 0.000000, 2.190849,-0.000000;;, + 13;3; 0.000000, 2.190849,-0.000000;;, + 14;3; 0.000000, 2.190849,-0.000000;;, + 15;3; 0.000000, 2.190849,-0.000000;;, + 16;3; 0.000000, 2.190849,-0.000000;;, + 17;3; 0.000000, 2.190849,-0.000000;;, + 18;3; 0.000000, 2.190849,-0.000000;;, + 19;3; 0.000000, 2.190849,-0.000000;;, + 20;3; 0.000000, 2.190849,-0.000000;;, + 21;3; 0.000000, 2.190849,-0.000000;;, + 22;3; 0.000000, 2.190849,-0.000000;;, + 23;3; 0.000000, 2.190849,-0.000000;;, + 24;3; 0.000000, 2.190849,-0.000000;;, + 25;3; 0.000000, 2.190849,-0.000000;;, + 26;3; 0.000000, 2.190849,-0.000000;;, + 27;3; 0.000000, 2.190849,-0.000000;;, + 28;3; 0.000000, 2.190849,-0.000000;;, + 29;3; 0.000000, 2.190849,-0.000000;;, + 30;3; 0.000000, 2.190849,-0.000000;;, + 31;3; 0.000000, 2.190849,-0.000000;;, + 32;3; 0.000000, 2.190849,-0.000000;;, + 33;3; 0.000000, 2.190849,-0.000000;;, + 34;3; 0.000000, 2.190849,-0.000000;;, + 35;3; 0.000000, 2.190849,-0.000000;;, + 36;3; 0.000000, 2.190849,-0.000000;;, + 37;3; 0.000000, 2.190849,-0.000000;;, + 38;3; 0.000000, 2.190849,-0.000000;;, + 39;3; 0.000000, 2.190849,-0.000000;;, + 40;3; 0.000000, 2.190849,-0.000000;;, + 41;3; 0.000000, 2.190849,-0.000000;;, + 42;3; 0.000000, 2.190849,-0.000000;;, + 43;3; 0.000000, 2.190849,-0.000000;;, + 44;3; 0.000000, 2.190849,-0.000000;;, + 45;3; 0.000000, 2.190849,-0.000000;;, + 46;3; 0.000000, 2.190849,-0.000000;;, + 47;3; 0.000000, 2.190849,-0.000000;;, + 48;3; 0.000000, 2.190849,-0.000000;;, + 49;3; 0.000000, 2.190849,-0.000000;;, + 50;3; 0.000000, 2.190849,-0.000000;;, + 51;3; 0.000000, 2.190849,-0.000000;;, + 52;3; 0.000000, 2.190849,-0.000000;;, + 53;3; 0.000000, 2.190849,-0.000000;;, + 54;3; 0.000000, 2.190849,-0.000000;;, + 55;3; 0.000000, 2.190849,-0.000000;;, + 56;3; 0.000000, 2.190849,-0.000000;;, + 57;3; 0.000000, 2.190849,-0.000000;;, + 58;3; 0.000000, 2.190849,-0.000000;;, + 59;3; 0.000000, 2.190849,-0.000000;;, + 60;3; 0.000000, 2.190849,-0.000000;;, + 61;3; 0.000000, 2.190849,-0.000000;;, + 62;3; 0.000000, 2.190849,-0.000000;;, + 63;3; 0.000000, 2.190849,-0.000000;;, + 64;3; 0.000000, 2.190849,-0.000000;;, + 65;3; 0.000000, 2.190849,-0.000000;;, + 66;3; 0.000000, 2.190849,-0.000000;;, + 67;3; 0.000000, 2.190849,-0.000000;;, + 68;3; 0.000000, 2.190849,-0.000000;;, + 69;3; 0.000000, 2.190849,-0.000000;;, + 70;3; 0.000000, 2.190849,-0.000000;;, + 71;3; 0.000000, 2.190849,-0.000000;;, + 72;3; 0.000000, 2.190849,-0.000000;;, + 73;3; 0.000000, 2.190849,-0.000000;;, + 74;3; 0.000000, 2.190849,-0.000000;;, + 75;3; 0.000000, 2.190849,-0.000000;;, + 76;3; 0.000000, 2.190849,-0.000000;;, + 77;3; 0.000000, 2.190849,-0.000000;;, + 78;3; 0.000000, 2.190849,-0.000000;;, + 79;3; 0.000000, 2.190849,-0.000000;;, + 80;3;-0.000000, 2.190849,-0.000000;;, + 81;3;-0.000000, 2.190849,-0.000000;;, + 82;3; 0.000000, 2.190849,-0.000000;;, + 83;3;-0.000000, 2.190849, 0.000000;;, + 84;3;-0.000000, 2.190849, 0.000000;;, + 85;3;-0.000000, 2.190849, 0.000000;;, + 86;3; 0.000000, 2.190849,-0.000000;;, + 87;3; 0.000000, 2.190849, 0.000000;;, + 88;3;-0.000000, 2.190849, 0.000000;;, + 89;3;-0.000000, 2.190849, 0.000000;;, + 90;3; 0.000000, 2.190849,-0.000000;;, + 91;3; 0.000000, 2.190849, 0.000000;;, + 92;3;-0.000000, 2.190849, 0.000000;;, + 93;3; 0.000000, 2.190849, 0.000000;;, + 94;3;-0.000000, 2.190849, 0.000000;;, + 95;3; 0.000000, 2.190849, 0.000000;;, + 96;3;-0.000000, 2.190849,-0.000000;;, + 97;3;-0.000000, 2.190849,-0.000000;;, + 98;3; 0.000000, 2.190849,-0.000000;;, + 99;3;-0.000000, 2.190849, 0.000000;;, + 100;3; 0.000000, 2.190849, 0.000000;;, + 101;3;-0.000000, 2.190849,-0.000000;;, + 102;3;-0.000000, 2.190849,-0.000000;;, + 103;3;-0.000000, 2.190849,-0.000000;;, + 104;3; 0.000000, 2.190849,-0.000000;;, + 105;3; 0.000000, 2.190849,-0.000000;;, + 106;3;-0.000000, 2.190849,-0.000000;;, + 107;3;-0.000000, 2.190849,-0.000000;;, + 108;3;-0.000000, 2.190849,-0.000000;;, + 109;3; 0.000000, 2.190849,-0.000000;;, + 110;3;-0.000000, 2.190849,-0.000000;;, + 111;3;-0.000000, 2.190849,-0.000000;;, + 112;3; 0.000000, 2.190849, 0.000000;;, + 113;3; 0.000000, 2.190849,-0.000000;;, + 114;3; 0.000000, 2.190849, 0.000000;;, + 115;3; 0.000000, 2.190849,-0.000000;;, + 116;3; 0.000000, 2.190849,-0.000000;;, + 117;3; 0.000000, 2.190849, 0.000000;;, + 118;3;-0.000000, 2.190849, 0.000000;;, + 119;3; 0.000000, 2.190849,-0.000000;;, + 120;3;-0.000000, 2.190849, 0.000000;;, + 121;3; 0.000000, 2.190849, 0.000000;;, + 122;3; 0.000000, 2.190849,-0.000000;;, + 123;3;-0.000000, 2.190849,-0.000000;;, + 124;3;-0.000000, 2.190849,-0.000000;;, + 125;3;-0.000000, 2.190849, 0.000000;;, + 126;3; 0.000000, 2.190849,-0.000000;;, + 127;3; 0.000000, 2.190849,-0.000000;;, + 128;3; 0.000000, 2.190849, 0.000000;;, + 129;3; 0.000000, 2.190849,-0.000000;;, + 130;3;-0.000000, 2.190849,-0.000000;;, + 131;3;-0.000000, 2.190849, 0.000000;;, + 132;3;-0.000000, 2.190849,-0.000000;;, + 133;3;-0.000000, 2.190849,-0.000000;;, + 134;3; 0.000000, 2.190849, 0.000000;;, + 135;3;-0.000000, 2.190849,-0.000000;;, + 136;3; 0.000000, 2.190849,-0.000000;;, + 137;3; 0.000000, 2.190849, 0.000000;;, + 138;3;-0.000000, 2.190849, 0.000000;;, + 139;3;-0.000000, 2.190849,-0.000000;;, + 140;3;-0.000000, 2.190849, 0.000000;;, + 141;3; 0.000000, 2.190849,-0.000000;;, + 142;3; 0.000000, 2.190849,-0.000000;;, + 143;3;-0.000000, 2.190849,-0.000001;;, + 144;3;-0.000000, 2.190849,-0.000000;;, + 145;3;-0.000000, 2.190849, 0.000000;;, + 146;3; 0.000000, 2.190849, 0.000000;;, + 147;3; 0.000000, 2.190849, 0.000000;;, + 148;3;-0.000000, 2.190849, 0.000000;;, + 149;3;-0.000000, 2.190849, 0.000000;;, + 150;3;-0.000000, 2.190849, 0.000000;;, + 151;3; 0.000000, 2.190849,-0.000000;;, + 152;3;-0.000000, 2.190849,-0.000000;;, + 153;3; 0.000000, 2.190849,-0.000000;;, + 154;3; 0.000000, 2.190849,-0.000000;;, + 155;3;-0.000000, 2.190849,-0.000000;;, + 156;3;-0.000000, 2.190849,-0.000000;;, + 157;3; 0.000000, 2.190849, 0.000000;;, + 158;3; 0.000000, 2.190849,-0.000000;;, + 159;3;-0.000000, 2.190849,-0.000000;;, + 160;3;-0.000000, 2.190849,-0.000000;;, + 161;3;-0.000000, 2.190849,-0.000000;;, + 162;3;-0.000000, 2.190849, 0.000000;;, + 163;3; 0.000000, 2.190849, 0.000000;;, + 164;3;-0.000000, 2.190849,-0.000000;;, + 165;3;-0.000000, 2.190849, 0.000000;;, + 166;3;-0.000000, 2.190849, 0.000000;;, + 167;3; 0.000000, 2.190849,-0.000000;;, + 168;3;-0.000000, 2.190849, 0.000000;;, + 169;3;-0.000000, 2.190849,-0.000000;;, + 170;3; 0.000000, 2.190849,-0.000000;;, + 171;3; 0.000000, 2.190849,-0.000000;;, + 172;3;-0.000000, 2.190849, 0.000000;;, + 173;3;-0.000000, 2.190849,-0.000000;;, + 174;3; 0.000000, 2.190849,-0.000000;;, + 175;3; 0.000000, 2.190849, 0.000000;;, + 176;3;-0.000000, 2.190849, 0.000000;;, + 177;3; 0.000000, 2.190849,-0.000000;;, + 178;3; 0.000000, 2.190849,-0.000000;;, + 179;3; 0.000000, 2.190849, 0.000000;;, + 180;3; 0.000000, 2.190848, 0.000000;;, + 181;3; 0.000000, 2.190849,-0.000000;;, + 182;3;-0.000000, 2.190849, 0.000000;;, + 183;3; 0.000000, 2.190849,-0.000000;;, + 184;3;-0.000000, 2.190849,-0.000000;;, + 185;3;-0.000000, 2.190849,-0.000000;;, + 186;3; 0.000000, 2.190849, 0.000000;;, + 187;3;-0.000000, 2.190849,-0.000000;;, + 188;3; 0.000000, 2.190849, 0.000000;;, + 189;3; 0.000000, 2.190849, 0.000000;;, + 190;3;-0.000000, 2.190849, 0.000000;;, + 191;3;-0.000000, 2.190849,-0.000000;;, + 192;3;-0.000000, 2.190849,-0.000000;;, + 193;3; 0.000000, 2.190849, 0.000000;;, + 194;3;-0.000000, 2.190849,-0.000000;;, + 195;3; 0.000000, 2.190849,-0.000000;;, + 196;3; 0.000000, 2.190849, 0.000000;;, + 197;3; 0.000000, 2.190849,-0.000000;;, + 198;3; 0.000000, 2.190849,-0.000000;;, + 199;3;-0.000000, 2.190849,-0.000000;;, + 200;3;-0.000000, 2.190849, 0.000000;;, + 201;3; 0.000000, 2.190849, 0.000000;;, + 202;3; 0.000000, 2.190849, 0.000000;;, + 203;3;-0.000000, 2.190849, 0.000000;;, + 204;3;-0.000000, 2.190849,-0.000000;;, + 205;3;-0.000000, 2.190849,-0.000000;;, + 206;3; 0.000000, 2.190849,-0.000000;;, + 207;3; 0.000000, 2.190849,-0.000000;;, + 208;3; 0.000000, 2.190849,-0.000000;;, + 209;3;-0.000000, 2.190849,-0.000000;;, + 210;3; 0.000000, 2.190849, 0.000000;;, + 211;3; 0.000000, 2.190849,-0.000000;;, + 212;3; 0.000000, 2.190849, 0.000000;;, + 213;3;-0.000000, 2.190849,-0.000000;;, + 214;3;-0.000000, 2.190849,-0.000000;;, + 215;3;-0.000000, 2.190849,-0.000000;;, + 216;3;-0.000000, 2.190849, 0.000000;;, + 217;3;-0.000000, 2.190849, 0.000000;;, + 218;3;-0.000000, 2.190849,-0.000000;;, + 219;3;-0.000000, 2.190849, 0.000000;;, + 220;3;-0.000000, 2.190849, 0.000000;;, + 221;3;-0.000000, 2.190849, 0.000000;;, + 222;3;-0.000000, 2.190849, 0.000000;;, + 223;3;-0.000000, 2.190849, 0.000000;;, + 224;3;-0.000000, 2.190849, 0.000000;;, + 225;3;-0.000000, 2.190849, 0.000000;;, + 226;3;-0.000000, 2.190849, 0.000000;;, + 227;3;-0.000000, 2.190849, 0.000000;;, + 228;3;-0.000000, 2.190849, 0.000000;;, + 229;3;-0.000000, 2.190849, 0.000000;;, + 230;3;-0.000000, 2.190849, 0.000000;;, + 231;3;-0.000000, 2.190849, 0.000000;;, + 232;3;-0.000000, 2.190849, 0.000000;;, + 233;3;-0.000000, 2.190849, 0.000000;;, + 234;3;-0.000000, 2.190849, 0.000000;;, + 235;3;-0.000000, 2.190849, 0.000000;;, + 236;3;-0.000000, 2.190849, 0.000000;;, + 237;3;-0.000000, 2.190849, 0.000000;;, + 238;3;-0.000000, 2.190849, 0.000000;;, + 239;3;-0.000000, 2.190849, 0.000000;;, + 240;3;-0.000000, 2.190849, 0.000000;;, + 241;3;-0.000000, 2.190849, 0.000000;;, + 242;3;-0.000000, 2.190849, 0.000000;;, + 243;3;-0.000000, 2.190849, 0.000000;;, + 244;3;-0.000000, 2.190849, 0.000000;;, + 245;3;-0.000000, 2.190849, 0.000000;;, + 246;3;-0.000000, 2.190849, 0.000000;;, + 247;3;-0.000000, 2.190849, 0.000000;;, + 248;3;-0.000000, 2.190849, 0.000000;;, + 249;3;-0.000000, 2.190849, 0.000000;;; + } + } + Animation { + {Armature_Bone_018} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 1;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 2;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 3;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 4;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 5;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 6;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 7;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 8;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 9;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 10;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 11;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 12;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 13;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 14;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 15;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 16;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 17;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 18;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 19;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 20;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 21;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 22;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 23;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 24;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 25;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 26;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 27;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 28;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 29;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 30;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 31;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 32;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 33;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 34;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 35;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 36;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 37;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 38;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 39;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 40;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 41;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 42;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 43;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 44;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 45;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 46;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 47;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 48;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 49;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 50;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 51;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 52;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 53;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 54;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 55;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 56;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 57;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 58;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 59;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 60;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 61;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 62;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 63;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 64;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 65;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 66;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 67;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 68;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 69;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 70;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 71;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 72;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 73;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 74;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 75;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 76;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 77;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 78;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 79;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 80;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 81;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 82;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 83;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 84;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 85;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 86;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 87;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 88;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 89;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 90;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 91;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 92;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 93;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 94;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 95;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 96;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 97;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 98;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 99;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 100;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 101;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 102;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 103;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 104;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 105;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 106;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 107;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 108;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 109;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 110;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 111;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 112;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 113;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 114;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 115;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 116;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 117;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 118;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 119;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 120;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 121;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 122;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 123;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 124;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 125;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 126;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 127;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 128;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 129;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 130;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 131;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 132;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 133;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 134;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 135;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 136;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 137;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 138;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 139;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 140;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 141;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 142;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 143;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 144;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 145;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 146;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 147;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 148;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 149;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 150;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 151;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 152;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 153;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 154;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 155;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 156;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 157;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 158;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 159;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 160;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 161;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 162;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 163;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 164;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 165;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 166;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 167;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 168;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 169;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 170;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 171;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 172;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 173;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 174;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 175;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 176;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 177;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 178;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 179;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 180;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 181;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 182;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 183;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 184;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 185;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 186;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 187;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 188;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 189;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 190;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 191;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 192;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 193;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 194;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 195;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 196;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 197;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 198;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 199;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 200;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 201;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 202;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 203;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 204;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 205;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 206;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 207;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 208;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 209;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 210;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 211;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 212;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 213;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 214;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 215;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 216;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 217;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 218;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 219;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 220;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 221;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 222;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 223;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 224;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 225;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 226;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 227;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 228;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 229;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 230;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 231;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 232;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 233;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 234;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 235;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 236;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 237;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 238;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 239;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 240;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 241;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 242;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 243;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 244;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 245;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 246;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 247;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 248;4;-0.292517,-0.652908,-0.242277, 0.655321;;, + 249;4;-0.292517,-0.652908,-0.242277, 0.655321;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.000000, 2.056115,-0.000000;;, + 1;3;-0.000000, 2.056115,-0.000000;;, + 2;3;-0.000000, 2.056115,-0.000000;;, + 3;3;-0.000000, 2.056115,-0.000000;;, + 4;3;-0.000000, 2.056115,-0.000000;;, + 5;3;-0.000000, 2.056115,-0.000000;;, + 6;3;-0.000000, 2.056115,-0.000000;;, + 7;3;-0.000000, 2.056115,-0.000000;;, + 8;3;-0.000000, 2.056115,-0.000000;;, + 9;3;-0.000000, 2.056115,-0.000000;;, + 10;3;-0.000000, 2.056115,-0.000000;;, + 11;3;-0.000000, 2.056115,-0.000000;;, + 12;3;-0.000000, 2.056115,-0.000000;;, + 13;3;-0.000000, 2.056115,-0.000000;;, + 14;3;-0.000000, 2.056115,-0.000000;;, + 15;3;-0.000000, 2.056115,-0.000000;;, + 16;3;-0.000000, 2.056115,-0.000000;;, + 17;3;-0.000000, 2.056115,-0.000000;;, + 18;3;-0.000000, 2.056115,-0.000000;;, + 19;3;-0.000000, 2.056115,-0.000000;;, + 20;3;-0.000000, 2.056115,-0.000000;;, + 21;3;-0.000000, 2.056115,-0.000000;;, + 22;3;-0.000000, 2.056115,-0.000000;;, + 23;3;-0.000000, 2.056115,-0.000000;;, + 24;3;-0.000000, 2.056115,-0.000000;;, + 25;3;-0.000000, 2.056115,-0.000000;;, + 26;3;-0.000000, 2.056115,-0.000000;;, + 27;3;-0.000000, 2.056115,-0.000000;;, + 28;3;-0.000000, 2.056115,-0.000000;;, + 29;3;-0.000000, 2.056115,-0.000000;;, + 30;3;-0.000000, 2.056115,-0.000000;;, + 31;3;-0.000000, 2.056115,-0.000000;;, + 32;3;-0.000000, 2.056115,-0.000000;;, + 33;3;-0.000000, 2.056115,-0.000000;;, + 34;3;-0.000000, 2.056115,-0.000000;;, + 35;3;-0.000000, 2.056115,-0.000000;;, + 36;3;-0.000000, 2.056115,-0.000000;;, + 37;3;-0.000000, 2.056115,-0.000000;;, + 38;3;-0.000000, 2.056115,-0.000000;;, + 39;3;-0.000000, 2.056115,-0.000000;;, + 40;3;-0.000000, 2.056115,-0.000000;;, + 41;3;-0.000000, 2.056115,-0.000000;;, + 42;3;-0.000000, 2.056115,-0.000000;;, + 43;3;-0.000000, 2.056115,-0.000000;;, + 44;3;-0.000000, 2.056115,-0.000000;;, + 45;3;-0.000000, 2.056115,-0.000000;;, + 46;3;-0.000000, 2.056115,-0.000000;;, + 47;3;-0.000000, 2.056115,-0.000000;;, + 48;3;-0.000000, 2.056115,-0.000000;;, + 49;3;-0.000000, 2.056115,-0.000000;;, + 50;3;-0.000000, 2.056115,-0.000000;;, + 51;3;-0.000000, 2.056115,-0.000000;;, + 52;3;-0.000000, 2.056115,-0.000000;;, + 53;3;-0.000000, 2.056115,-0.000000;;, + 54;3;-0.000000, 2.056115,-0.000000;;, + 55;3;-0.000000, 2.056115,-0.000000;;, + 56;3;-0.000000, 2.056115,-0.000000;;, + 57;3;-0.000000, 2.056115,-0.000000;;, + 58;3;-0.000000, 2.056115,-0.000000;;, + 59;3;-0.000000, 2.056115,-0.000000;;, + 60;3;-0.000000, 2.056115,-0.000000;;, + 61;3;-0.000000, 2.056115,-0.000000;;, + 62;3;-0.000000, 2.056115,-0.000000;;, + 63;3;-0.000000, 2.056115,-0.000000;;, + 64;3;-0.000000, 2.056115,-0.000000;;, + 65;3;-0.000000, 2.056115,-0.000000;;, + 66;3;-0.000000, 2.056115,-0.000000;;, + 67;3;-0.000000, 2.056115,-0.000000;;, + 68;3;-0.000000, 2.056115,-0.000000;;, + 69;3;-0.000000, 2.056115,-0.000000;;, + 70;3;-0.000000, 2.056115,-0.000000;;, + 71;3;-0.000000, 2.056115,-0.000000;;, + 72;3;-0.000000, 2.056115,-0.000000;;, + 73;3;-0.000000, 2.056115,-0.000000;;, + 74;3;-0.000000, 2.056115,-0.000000;;, + 75;3;-0.000000, 2.056115,-0.000000;;, + 76;3;-0.000000, 2.056115,-0.000000;;, + 77;3;-0.000000, 2.056115,-0.000000;;, + 78;3;-0.000000, 2.056115,-0.000000;;, + 79;3;-0.000000, 2.056115,-0.000000;;, + 80;3; 0.000000, 2.056115,-0.000000;;, + 81;3; 0.000000, 2.056115,-0.000000;;, + 82;3; 0.000000, 2.056115,-0.000000;;, + 83;3; 0.000000, 2.056115,-0.000000;;, + 84;3; 0.000000, 2.056115,-0.000000;;, + 85;3; 0.000000, 2.056115,-0.000000;;, + 86;3; 0.000000, 2.056115,-0.000000;;, + 87;3; 0.000000, 2.056115,-0.000000;;, + 88;3; 0.000000, 2.056115,-0.000000;;, + 89;3; 0.000000, 2.056115,-0.000000;;, + 90;3; 0.000000, 2.056115,-0.000000;;, + 91;3; 0.000000, 2.056115,-0.000000;;, + 92;3; 0.000000, 2.056115,-0.000000;;, + 93;3; 0.000000, 2.056115,-0.000000;;, + 94;3; 0.000000, 2.056115,-0.000000;;, + 95;3; 0.000000, 2.056115,-0.000000;;, + 96;3; 0.000000, 2.056115,-0.000000;;, + 97;3; 0.000000, 2.056115,-0.000000;;, + 98;3; 0.000000, 2.056115,-0.000000;;, + 99;3; 0.000000, 2.056115,-0.000000;;, + 100;3; 0.000000, 2.056115,-0.000000;;, + 101;3; 0.000000, 2.056115,-0.000000;;, + 102;3; 0.000000, 2.056115,-0.000000;;, + 103;3; 0.000000, 2.056115,-0.000000;;, + 104;3; 0.000000, 2.056115,-0.000000;;, + 105;3; 0.000000, 2.056115,-0.000000;;, + 106;3; 0.000000, 2.056115,-0.000000;;, + 107;3; 0.000000, 2.056115,-0.000000;;, + 108;3; 0.000000, 2.056115,-0.000000;;, + 109;3; 0.000000, 2.056115,-0.000000;;, + 110;3; 0.000000, 2.056115,-0.000000;;, + 111;3; 0.000000, 2.056115,-0.000000;;, + 112;3; 0.000000, 2.056115,-0.000000;;, + 113;3; 0.000000, 2.056115,-0.000000;;, + 114;3; 0.000000, 2.056115,-0.000000;;, + 115;3; 0.000000, 2.056115,-0.000000;;, + 116;3; 0.000000, 2.056115,-0.000000;;, + 117;3; 0.000000, 2.056115,-0.000000;;, + 118;3; 0.000000, 2.056115,-0.000000;;, + 119;3; 0.000000, 2.056115,-0.000000;;, + 120;3; 0.000000, 2.056115,-0.000000;;, + 121;3; 0.000000, 2.056115,-0.000000;;, + 122;3; 0.000000, 2.056115,-0.000000;;, + 123;3; 0.000000, 2.056115,-0.000000;;, + 124;3; 0.000000, 2.056115,-0.000000;;, + 125;3; 0.000000, 2.056115,-0.000000;;, + 126;3; 0.000000, 2.056115,-0.000000;;, + 127;3; 0.000000, 2.056115,-0.000000;;, + 128;3; 0.000000, 2.056115,-0.000000;;, + 129;3; 0.000000, 2.056115,-0.000000;;, + 130;3; 0.000000, 2.056115,-0.000000;;, + 131;3; 0.000000, 2.056115,-0.000000;;, + 132;3; 0.000000, 2.056115,-0.000000;;, + 133;3; 0.000000, 2.056115,-0.000000;;, + 134;3; 0.000000, 2.056115,-0.000000;;, + 135;3; 0.000000, 2.056115,-0.000000;;, + 136;3; 0.000000, 2.056115,-0.000000;;, + 137;3; 0.000000, 2.056115,-0.000000;;, + 138;3; 0.000000, 2.056115,-0.000000;;, + 139;3; 0.000000, 2.056115,-0.000000;;, + 140;3; 0.000000, 2.056115,-0.000000;;, + 141;3; 0.000000, 2.056115,-0.000000;;, + 142;3; 0.000000, 2.056115,-0.000000;;, + 143;3; 0.000000, 2.056115,-0.000000;;, + 144;3; 0.000000, 2.056115,-0.000000;;, + 145;3; 0.000000, 2.056115,-0.000000;;, + 146;3; 0.000000, 2.056115,-0.000000;;, + 147;3; 0.000000, 2.056115,-0.000000;;, + 148;3; 0.000000, 2.056115,-0.000000;;, + 149;3; 0.000000, 2.056115,-0.000000;;, + 150;3; 0.000000, 2.056115,-0.000000;;, + 151;3; 0.000000, 2.056115,-0.000000;;, + 152;3; 0.000000, 2.056115,-0.000000;;, + 153;3; 0.000000, 2.056115,-0.000000;;, + 154;3; 0.000000, 2.056115,-0.000000;;, + 155;3; 0.000000, 2.056115,-0.000000;;, + 156;3; 0.000000, 2.056115,-0.000000;;, + 157;3; 0.000000, 2.056115,-0.000000;;, + 158;3; 0.000000, 2.056115,-0.000000;;, + 159;3; 0.000000, 2.056115,-0.000000;;, + 160;3; 0.000000, 2.056115,-0.000000;;, + 161;3; 0.000000, 2.056115,-0.000000;;, + 162;3; 0.000000, 2.056115,-0.000000;;, + 163;3; 0.000000, 2.056115,-0.000000;;, + 164;3; 0.000000, 2.056115,-0.000000;;, + 165;3; 0.000000, 2.056115,-0.000000;;, + 166;3; 0.000000, 2.056115,-0.000000;;, + 167;3; 0.000000, 2.056115,-0.000000;;, + 168;3; 0.000000, 2.056115,-0.000000;;, + 169;3; 0.000000, 2.056115,-0.000000;;, + 170;3;-0.000000, 2.056115,-0.000000;;, + 171;3;-0.000000, 2.056115,-0.000000;;, + 172;3;-0.000000, 2.056115,-0.000000;;, + 173;3;-0.000000, 2.056115,-0.000000;;, + 174;3;-0.000000, 2.056115,-0.000000;;, + 175;3;-0.000000, 2.056115,-0.000000;;, + 176;3;-0.000000, 2.056115,-0.000000;;, + 177;3;-0.000000, 2.056115,-0.000000;;, + 178;3;-0.000000, 2.056115,-0.000000;;, + 179;3;-0.000000, 2.056115,-0.000000;;, + 180;3;-0.000000, 2.056115,-0.000000;;, + 181;3;-0.000000, 2.056115,-0.000000;;, + 182;3;-0.000000, 2.056115,-0.000000;;, + 183;3;-0.000000, 2.056115,-0.000000;;, + 184;3;-0.000000, 2.056115,-0.000000;;, + 185;3;-0.000000, 2.056115,-0.000000;;, + 186;3;-0.000000, 2.056115,-0.000000;;, + 187;3;-0.000000, 2.056115,-0.000000;;, + 188;3;-0.000000, 2.056115,-0.000000;;, + 189;3;-0.000000, 2.056115,-0.000000;;, + 190;3;-0.000000, 2.056115,-0.000000;;, + 191;3;-0.000000, 2.056115,-0.000000;;, + 192;3;-0.000000, 2.056115,-0.000000;;, + 193;3;-0.000000, 2.056115,-0.000000;;, + 194;3;-0.000000, 2.056115,-0.000000;;, + 195;3;-0.000000, 2.056115,-0.000000;;, + 196;3;-0.000000, 2.056115,-0.000000;;, + 197;3;-0.000000, 2.056115,-0.000000;;, + 198;3;-0.000000, 2.056115,-0.000000;;, + 199;3;-0.000000, 2.056115,-0.000000;;, + 200;3;-0.000000, 2.056115,-0.000000;;, + 201;3;-0.000000, 2.056115,-0.000000;;, + 202;3;-0.000000, 2.056115,-0.000000;;, + 203;3;-0.000000, 2.056115,-0.000000;;, + 204;3;-0.000000, 2.056115,-0.000000;;, + 205;3;-0.000000, 2.056115,-0.000000;;, + 206;3;-0.000000, 2.056115,-0.000000;;, + 207;3;-0.000000, 2.056115, 0.000000;;, + 208;3; 0.000000, 2.056115,-0.000000;;, + 209;3; 0.000000, 2.056115,-0.000000;;, + 210;3; 0.000000, 2.056115,-0.000000;;, + 211;3; 0.000000, 2.056115,-0.000000;;, + 212;3; 0.000000, 2.056115,-0.000000;;, + 213;3; 0.000000, 2.056115,-0.000000;;, + 214;3; 0.000000, 2.056115,-0.000000;;, + 215;3;-0.000000, 2.056115, 0.000000;;, + 216;3;-0.000000, 2.056115, 0.000000;;, + 217;3;-0.000000, 2.056115, 0.000000;;, + 218;3; 0.000000, 2.056115, 0.000000;;, + 219;3;-0.000000, 2.056115, 0.000000;;, + 220;3;-0.000000, 2.056115, 0.000000;;, + 221;3;-0.000000, 2.056115, 0.000000;;, + 222;3;-0.000000, 2.056115, 0.000000;;, + 223;3;-0.000000, 2.056115, 0.000000;;, + 224;3;-0.000000, 2.056115, 0.000000;;, + 225;3;-0.000000, 2.056115, 0.000000;;, + 226;3;-0.000000, 2.056115, 0.000000;;, + 227;3;-0.000000, 2.056115, 0.000000;;, + 228;3;-0.000000, 2.056115, 0.000000;;, + 229;3;-0.000000, 2.056115, 0.000000;;, + 230;3;-0.000000, 2.056115, 0.000000;;, + 231;3;-0.000000, 2.056115, 0.000000;;, + 232;3;-0.000000, 2.056115, 0.000000;;, + 233;3;-0.000000, 2.056115, 0.000000;;, + 234;3;-0.000000, 2.056115, 0.000000;;, + 235;3;-0.000000, 2.056115, 0.000000;;, + 236;3;-0.000000, 2.056115, 0.000000;;, + 237;3;-0.000000, 2.056115, 0.000000;;, + 238;3;-0.000000, 2.056115, 0.000000;;, + 239;3;-0.000000, 2.056115, 0.000000;;, + 240;3;-0.000000, 2.056115, 0.000000;;, + 241;3;-0.000000, 2.056115, 0.000000;;, + 242;3;-0.000000, 2.056115, 0.000000;;, + 243;3;-0.000000, 2.056115, 0.000000;;, + 244;3;-0.000000, 2.056115, 0.000000;;, + 245;3;-0.000000, 2.056115, 0.000000;;, + 246;3;-0.000000, 2.056115, 0.000000;;, + 247;3;-0.000000, 2.056115, 0.000000;;, + 248;3;-0.000000, 2.056115, 0.000000;;, + 249;3;-0.000000, 2.056115, 0.000000;;; + } + } + Animation { + {Armature_Bone_019} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 1;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 2;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 3;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 4;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 5;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 6;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 7;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 8;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 9;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 10;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 11;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 12;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 13;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 14;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 15;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 16;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 17;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 18;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 19;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 20;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 21;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 22;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 23;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 24;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 25;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 26;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 27;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 28;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 29;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 30;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 31;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 32;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 33;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 34;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 35;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 36;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 37;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 38;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 39;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 40;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 41;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 42;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 43;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 44;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 45;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 46;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 47;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 48;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 49;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 50;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 51;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 52;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 53;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 54;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 55;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 56;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 57;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 58;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 59;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 60;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 61;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 62;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 63;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 64;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 65;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 66;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 67;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 68;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 69;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 70;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 71;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 72;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 73;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 74;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 75;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 76;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 77;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 78;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 79;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 80;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 81;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 82;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 83;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 84;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 85;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 86;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 87;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 88;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 89;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 90;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 91;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 92;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 93;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 94;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 95;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 96;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 97;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 98;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 99;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 100;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 101;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 102;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 103;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 104;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 105;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 106;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 107;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 108;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 109;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 110;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 111;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 112;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 113;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 114;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 115;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 116;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 117;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 118;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 119;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 120;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 121;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 122;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 123;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 124;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 125;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 126;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 127;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 128;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 129;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 130;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 131;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 132;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 133;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 134;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 135;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 136;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 137;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 138;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 139;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 140;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 141;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 142;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 143;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 144;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 145;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 146;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 147;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 148;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 149;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 150;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 151;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 152;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 153;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 154;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 155;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 156;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 157;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 158;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 159;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 160;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 161;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 162;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 163;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 164;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 165;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 166;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 167;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 168;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 169;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 170;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 171;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 172;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 173;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 174;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 175;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 176;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 177;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 178;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 179;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 180;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 181;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 182;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 183;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 184;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 185;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 186;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 187;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 188;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 189;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 190;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 191;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 192;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 193;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 194;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 195;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 196;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 197;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 198;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 199;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 200;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 201;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 202;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 203;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 204;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 205;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 206;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 207;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 208;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 209;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 210;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 211;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 212;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 213;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 214;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 215;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 216;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 217;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 218;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 219;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 220;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 221;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 222;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 223;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 224;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 225;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 226;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 227;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 228;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 229;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 230;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 231;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 232;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 233;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 234;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 235;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 236;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 237;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 238;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 239;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 240;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 241;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 242;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 243;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 244;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 245;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 246;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 247;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 248;4;-0.247840, 0.653826,-0.246050,-0.671228;;, + 249;4;-0.247840, 0.653826,-0.246050,-0.671228;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.000000, 2.056115,-0.000000;;, + 1;3;-0.000000, 2.056115,-0.000000;;, + 2;3;-0.000000, 2.056115,-0.000000;;, + 3;3;-0.000000, 2.056115,-0.000000;;, + 4;3;-0.000000, 2.056115,-0.000000;;, + 5;3;-0.000000, 2.056115,-0.000000;;, + 6;3;-0.000000, 2.056115,-0.000000;;, + 7;3;-0.000000, 2.056115,-0.000000;;, + 8;3;-0.000000, 2.056115,-0.000000;;, + 9;3;-0.000000, 2.056115,-0.000000;;, + 10;3;-0.000000, 2.056115,-0.000000;;, + 11;3;-0.000000, 2.056115,-0.000000;;, + 12;3;-0.000000, 2.056115,-0.000000;;, + 13;3;-0.000000, 2.056115,-0.000000;;, + 14;3;-0.000000, 2.056115,-0.000000;;, + 15;3;-0.000000, 2.056115,-0.000000;;, + 16;3;-0.000000, 2.056115,-0.000000;;, + 17;3;-0.000000, 2.056115,-0.000000;;, + 18;3;-0.000000, 2.056115,-0.000000;;, + 19;3;-0.000000, 2.056115,-0.000000;;, + 20;3;-0.000000, 2.056115,-0.000000;;, + 21;3;-0.000000, 2.056115,-0.000000;;, + 22;3;-0.000000, 2.056115,-0.000000;;, + 23;3;-0.000000, 2.056115,-0.000000;;, + 24;3;-0.000000, 2.056115,-0.000000;;, + 25;3;-0.000000, 2.056115,-0.000000;;, + 26;3;-0.000000, 2.056115,-0.000000;;, + 27;3;-0.000000, 2.056115,-0.000000;;, + 28;3;-0.000000, 2.056115,-0.000000;;, + 29;3;-0.000000, 2.056115,-0.000000;;, + 30;3;-0.000000, 2.056115,-0.000000;;, + 31;3;-0.000000, 2.056115,-0.000000;;, + 32;3;-0.000000, 2.056115,-0.000000;;, + 33;3;-0.000000, 2.056115,-0.000000;;, + 34;3;-0.000000, 2.056115,-0.000000;;, + 35;3;-0.000000, 2.056115,-0.000000;;, + 36;3;-0.000000, 2.056115,-0.000000;;, + 37;3;-0.000000, 2.056115,-0.000000;;, + 38;3;-0.000000, 2.056115,-0.000000;;, + 39;3;-0.000000, 2.056115,-0.000000;;, + 40;3;-0.000000, 2.056115,-0.000000;;, + 41;3;-0.000000, 2.056115,-0.000000;;, + 42;3;-0.000000, 2.056115,-0.000000;;, + 43;3;-0.000000, 2.056115,-0.000000;;, + 44;3;-0.000000, 2.056115,-0.000000;;, + 45;3;-0.000000, 2.056115,-0.000000;;, + 46;3;-0.000000, 2.056115,-0.000000;;, + 47;3;-0.000000, 2.056115,-0.000000;;, + 48;3;-0.000000, 2.056115,-0.000000;;, + 49;3;-0.000000, 2.056115,-0.000000;;, + 50;3;-0.000000, 2.056115,-0.000000;;, + 51;3;-0.000000, 2.056115,-0.000000;;, + 52;3;-0.000000, 2.056115,-0.000000;;, + 53;3;-0.000000, 2.056115,-0.000000;;, + 54;3;-0.000000, 2.056115,-0.000000;;, + 55;3;-0.000000, 2.056115,-0.000000;;, + 56;3;-0.000000, 2.056115,-0.000000;;, + 57;3;-0.000000, 2.056115,-0.000000;;, + 58;3;-0.000000, 2.056115,-0.000000;;, + 59;3;-0.000000, 2.056115,-0.000000;;, + 60;3;-0.000000, 2.056115,-0.000000;;, + 61;3;-0.000000, 2.056115,-0.000000;;, + 62;3;-0.000000, 2.056115,-0.000000;;, + 63;3;-0.000000, 2.056115,-0.000000;;, + 64;3;-0.000000, 2.056115,-0.000000;;, + 65;3;-0.000000, 2.056115,-0.000000;;, + 66;3;-0.000000, 2.056115,-0.000000;;, + 67;3;-0.000000, 2.056115,-0.000000;;, + 68;3;-0.000000, 2.056115,-0.000000;;, + 69;3;-0.000000, 2.056115,-0.000000;;, + 70;3;-0.000000, 2.056115,-0.000000;;, + 71;3;-0.000000, 2.056115,-0.000000;;, + 72;3;-0.000000, 2.056115,-0.000000;;, + 73;3;-0.000000, 2.056115,-0.000000;;, + 74;3;-0.000000, 2.056115,-0.000000;;, + 75;3;-0.000000, 2.056115,-0.000000;;, + 76;3;-0.000000, 2.056115,-0.000000;;, + 77;3;-0.000000, 2.056115,-0.000000;;, + 78;3;-0.000000, 2.056115,-0.000000;;, + 79;3;-0.000000, 2.056115,-0.000000;;, + 80;3; 0.000000, 2.056115,-0.000000;;, + 81;3; 0.000000, 2.056115,-0.000000;;, + 82;3; 0.000000, 2.056115,-0.000000;;, + 83;3; 0.000000, 2.056115,-0.000000;;, + 84;3; 0.000000, 2.056115,-0.000000;;, + 85;3; 0.000000, 2.056115,-0.000000;;, + 86;3; 0.000000, 2.056115,-0.000000;;, + 87;3; 0.000000, 2.056115,-0.000000;;, + 88;3; 0.000000, 2.056115,-0.000000;;, + 89;3; 0.000000, 2.056115,-0.000000;;, + 90;3; 0.000000, 2.056115,-0.000000;;, + 91;3; 0.000000, 2.056115,-0.000000;;, + 92;3; 0.000000, 2.056115,-0.000000;;, + 93;3; 0.000000, 2.056115,-0.000000;;, + 94;3; 0.000000, 2.056115,-0.000000;;, + 95;3; 0.000000, 2.056115,-0.000000;;, + 96;3; 0.000000, 2.056115,-0.000000;;, + 97;3; 0.000000, 2.056115,-0.000000;;, + 98;3; 0.000000, 2.056115,-0.000000;;, + 99;3; 0.000000, 2.056115,-0.000000;;, + 100;3; 0.000000, 2.056115,-0.000000;;, + 101;3; 0.000000, 2.056115,-0.000000;;, + 102;3; 0.000000, 2.056115,-0.000000;;, + 103;3; 0.000000, 2.056115,-0.000000;;, + 104;3; 0.000000, 2.056115,-0.000000;;, + 105;3; 0.000000, 2.056115,-0.000000;;, + 106;3; 0.000000, 2.056115,-0.000000;;, + 107;3; 0.000000, 2.056115,-0.000000;;, + 108;3; 0.000000, 2.056115,-0.000000;;, + 109;3; 0.000000, 2.056115,-0.000000;;, + 110;3; 0.000000, 2.056115,-0.000000;;, + 111;3; 0.000000, 2.056115,-0.000000;;, + 112;3; 0.000000, 2.056115,-0.000000;;, + 113;3; 0.000000, 2.056115,-0.000000;;, + 114;3; 0.000000, 2.056115,-0.000000;;, + 115;3; 0.000000, 2.056115,-0.000000;;, + 116;3; 0.000000, 2.056115,-0.000000;;, + 117;3; 0.000000, 2.056115,-0.000000;;, + 118;3; 0.000000, 2.056115,-0.000000;;, + 119;3; 0.000000, 2.056115,-0.000000;;, + 120;3; 0.000000, 2.056115,-0.000000;;, + 121;3; 0.000000, 2.056115,-0.000000;;, + 122;3; 0.000000, 2.056115,-0.000000;;, + 123;3; 0.000000, 2.056115,-0.000000;;, + 124;3; 0.000000, 2.056115,-0.000000;;, + 125;3; 0.000000, 2.056115,-0.000000;;, + 126;3; 0.000000, 2.056115,-0.000000;;, + 127;3; 0.000000, 2.056115,-0.000000;;, + 128;3; 0.000000, 2.056115,-0.000000;;, + 129;3; 0.000000, 2.056115,-0.000000;;, + 130;3; 0.000000, 2.056115,-0.000000;;, + 131;3; 0.000000, 2.056115,-0.000000;;, + 132;3; 0.000000, 2.056115,-0.000000;;, + 133;3; 0.000000, 2.056115,-0.000000;;, + 134;3; 0.000000, 2.056115,-0.000000;;, + 135;3; 0.000000, 2.056115,-0.000000;;, + 136;3; 0.000000, 2.056115,-0.000000;;, + 137;3; 0.000000, 2.056115,-0.000000;;, + 138;3; 0.000000, 2.056115,-0.000000;;, + 139;3; 0.000000, 2.056115,-0.000000;;, + 140;3; 0.000000, 2.056115,-0.000000;;, + 141;3; 0.000000, 2.056115,-0.000000;;, + 142;3; 0.000000, 2.056115,-0.000000;;, + 143;3; 0.000000, 2.056115,-0.000000;;, + 144;3; 0.000000, 2.056115,-0.000000;;, + 145;3; 0.000000, 2.056115,-0.000000;;, + 146;3; 0.000000, 2.056115,-0.000000;;, + 147;3; 0.000000, 2.056115,-0.000000;;, + 148;3; 0.000000, 2.056115,-0.000000;;, + 149;3; 0.000000, 2.056115,-0.000000;;, + 150;3; 0.000000, 2.056115,-0.000000;;, + 151;3; 0.000000, 2.056115,-0.000000;;, + 152;3; 0.000000, 2.056115,-0.000000;;, + 153;3; 0.000000, 2.056115,-0.000000;;, + 154;3; 0.000000, 2.056115,-0.000000;;, + 155;3; 0.000000, 2.056115,-0.000000;;, + 156;3; 0.000000, 2.056115,-0.000000;;, + 157;3; 0.000000, 2.056115,-0.000000;;, + 158;3; 0.000000, 2.056115,-0.000000;;, + 159;3; 0.000000, 2.056115,-0.000000;;, + 160;3; 0.000000, 2.056115,-0.000000;;, + 161;3; 0.000000, 2.056115,-0.000000;;, + 162;3; 0.000000, 2.056115,-0.000000;;, + 163;3; 0.000000, 2.056115,-0.000000;;, + 164;3; 0.000000, 2.056115,-0.000000;;, + 165;3; 0.000000, 2.056115,-0.000000;;, + 166;3; 0.000000, 2.056115,-0.000000;;, + 167;3; 0.000000, 2.056115,-0.000000;;, + 168;3; 0.000000, 2.056115,-0.000000;;, + 169;3; 0.000000, 2.056115,-0.000000;;, + 170;3;-0.000000, 2.056115,-0.000000;;, + 171;3;-0.000000, 2.056115,-0.000000;;, + 172;3;-0.000000, 2.056115,-0.000000;;, + 173;3;-0.000000, 2.056115,-0.000000;;, + 174;3;-0.000000, 2.056115,-0.000000;;, + 175;3;-0.000000, 2.056115,-0.000000;;, + 176;3;-0.000000, 2.056115,-0.000000;;, + 177;3;-0.000000, 2.056115,-0.000000;;, + 178;3;-0.000000, 2.056115,-0.000000;;, + 179;3;-0.000000, 2.056115,-0.000000;;, + 180;3;-0.000000, 2.056115,-0.000000;;, + 181;3;-0.000000, 2.056115,-0.000000;;, + 182;3;-0.000000, 2.056115,-0.000000;;, + 183;3;-0.000000, 2.056115,-0.000000;;, + 184;3;-0.000000, 2.056115,-0.000000;;, + 185;3;-0.000000, 2.056115,-0.000000;;, + 186;3;-0.000000, 2.056115,-0.000000;;, + 187;3;-0.000000, 2.056115,-0.000000;;, + 188;3;-0.000000, 2.056115,-0.000000;;, + 189;3;-0.000000, 2.056115,-0.000000;;, + 190;3;-0.000000, 2.056115,-0.000000;;, + 191;3;-0.000000, 2.056115,-0.000000;;, + 192;3;-0.000000, 2.056115,-0.000000;;, + 193;3;-0.000000, 2.056115,-0.000000;;, + 194;3;-0.000000, 2.056115,-0.000000;;, + 195;3;-0.000000, 2.056115,-0.000000;;, + 196;3;-0.000000, 2.056115,-0.000000;;, + 197;3;-0.000000, 2.056115,-0.000000;;, + 198;3;-0.000000, 2.056115,-0.000000;;, + 199;3;-0.000000, 2.056115,-0.000000;;, + 200;3;-0.000000, 2.056115,-0.000000;;, + 201;3;-0.000000, 2.056115,-0.000000;;, + 202;3;-0.000000, 2.056115,-0.000000;;, + 203;3;-0.000000, 2.056115,-0.000000;;, + 204;3;-0.000000, 2.056115,-0.000000;;, + 205;3;-0.000000, 2.056115,-0.000000;;, + 206;3;-0.000000, 2.056115,-0.000000;;, + 207;3;-0.000000, 2.056115, 0.000000;;, + 208;3; 0.000000, 2.056115,-0.000000;;, + 209;3; 0.000000, 2.056115,-0.000000;;, + 210;3; 0.000000, 2.056115,-0.000000;;, + 211;3; 0.000000, 2.056115,-0.000000;;, + 212;3; 0.000000, 2.056115,-0.000000;;, + 213;3; 0.000000, 2.056115,-0.000000;;, + 214;3; 0.000000, 2.056115,-0.000000;;, + 215;3;-0.000000, 2.056115, 0.000000;;, + 216;3;-0.000000, 2.056115, 0.000000;;, + 217;3;-0.000000, 2.056115, 0.000000;;, + 218;3; 0.000000, 2.056115, 0.000000;;, + 219;3;-0.000000, 2.056115, 0.000000;;, + 220;3;-0.000000, 2.056115, 0.000000;;, + 221;3;-0.000000, 2.056115, 0.000000;;, + 222;3;-0.000000, 2.056115, 0.000000;;, + 223;3;-0.000000, 2.056115, 0.000000;;, + 224;3;-0.000000, 2.056115, 0.000000;;, + 225;3;-0.000000, 2.056115, 0.000000;;, + 226;3;-0.000000, 2.056115, 0.000000;;, + 227;3;-0.000000, 2.056115, 0.000000;;, + 228;3;-0.000000, 2.056115, 0.000000;;, + 229;3;-0.000000, 2.056115, 0.000000;;, + 230;3;-0.000000, 2.056115, 0.000000;;, + 231;3;-0.000000, 2.056115, 0.000000;;, + 232;3;-0.000000, 2.056115, 0.000000;;, + 233;3;-0.000000, 2.056115, 0.000000;;, + 234;3;-0.000000, 2.056115, 0.000000;;, + 235;3;-0.000000, 2.056115, 0.000000;;, + 236;3;-0.000000, 2.056115, 0.000000;;, + 237;3;-0.000000, 2.056115, 0.000000;;, + 238;3;-0.000000, 2.056115, 0.000000;;, + 239;3;-0.000000, 2.056115, 0.000000;;, + 240;3;-0.000000, 2.056115, 0.000000;;, + 241;3;-0.000000, 2.056115, 0.000000;;, + 242;3;-0.000000, 2.056115, 0.000000;;, + 243;3;-0.000000, 2.056115, 0.000000;;, + 244;3;-0.000000, 2.056115, 0.000000;;, + 245;3;-0.000000, 2.056115, 0.000000;;, + 246;3;-0.000000, 2.056115, 0.000000;;, + 247;3;-0.000000, 2.056115, 0.000000;;, + 248;3;-0.000000, 2.056115, 0.000000;;, + 249;3;-0.000000, 2.056115, 0.000000;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 1;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 2;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 3;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 4;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 5;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 6;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 7;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 8;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 9;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 10;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 11;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 12;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 13;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 14;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 15;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 16;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 17;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 18;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 19;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 20;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 21;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 22;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 23;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 24;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 25;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 26;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 27;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 28;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 29;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 30;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 31;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 32;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 33;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 34;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 35;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 36;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 37;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 38;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 39;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 40;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 41;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 42;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 43;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 44;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 45;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 46;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 47;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 48;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 49;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 50;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 51;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 52;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 53;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 54;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 55;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 56;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 57;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 58;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 59;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 60;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 61;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 62;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 63;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 64;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 65;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 66;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 67;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 68;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 69;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 70;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 71;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 72;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 73;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 74;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 75;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 76;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 77;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 78;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 79;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 80;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 81;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 82;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 83;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 84;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 85;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 86;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 87;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 88;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 89;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 90;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 91;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 92;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 93;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 94;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 95;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 96;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 97;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 98;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 99;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 100;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 101;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 102;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 103;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 104;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 105;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 106;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 107;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 108;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 109;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 110;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 111;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 112;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 113;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 114;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 115;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 116;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 117;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 118;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 119;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 120;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 121;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 122;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 123;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 124;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 125;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 126;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 127;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 128;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 129;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 130;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 131;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 132;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 133;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 134;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 135;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 136;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 137;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 138;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 139;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 140;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 141;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 142;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 143;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 144;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 145;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 146;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 147;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 148;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 149;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 150;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 151;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 152;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 153;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 154;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 155;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 156;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 157;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 158;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 159;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 160;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 161;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 162;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 163;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 164;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 165;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 166;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 167;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 168;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 169;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 170;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 171;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 172;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 173;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 174;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 175;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 176;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 177;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 178;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 179;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 180;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 181;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 182;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 183;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 184;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 185;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 186;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 187;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 188;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 189;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 190;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 191;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 192;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 193;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 194;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 195;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 196;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 197;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 198;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 199;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 200;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 201;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 202;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 203;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 204;4;-0.707880,-0.003603,-0.003596, 0.706314;;, + 205;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 206;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 207;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 208;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 209;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 210;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 211;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 212;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 213;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 214;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 215;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 216;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 217;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 218;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 219;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 220;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 221;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 222;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 223;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 224;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 225;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 226;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 227;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 228;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 229;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 230;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 231;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 232;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 233;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 234;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 235;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 236;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 237;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 238;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 239;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 240;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 241;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 242;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 243;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 244;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 245;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 246;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 247;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 248;4;-0.706533, 0.043686, 0.043797, 0.704971;;, + 249;4;-0.706533, 0.043686, 0.043797, 0.704971;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.898938, 0.035360,-2.311622;;, + 1;3;-0.898938, 0.035360,-2.311622;;, + 2;3;-0.898938, 0.035360,-2.311622;;, + 3;3;-0.898938, 0.035360,-2.311622;;, + 4;3;-0.898938, 0.035360,-2.311622;;, + 5;3;-0.898938, 0.035360,-2.311622;;, + 6;3;-0.898938, 0.035360,-2.311622;;, + 7;3;-0.898938, 0.035360,-2.311622;;, + 8;3;-0.898938, 0.035360,-2.311622;;, + 9;3;-0.898938, 0.035360,-2.311622;;, + 10;3;-0.898938, 0.035360,-2.311622;;, + 11;3;-0.898938, 0.035360,-2.311622;;, + 12;3;-0.898938, 0.035360,-2.311622;;, + 13;3;-0.898938, 0.035360,-2.311622;;, + 14;3;-0.898938, 0.035360,-2.311622;;, + 15;3;-0.898938, 0.035360,-2.311622;;, + 16;3;-0.898938, 0.035360,-2.311622;;, + 17;3;-0.898938, 0.035360,-2.311622;;, + 18;3;-0.898938, 0.035360,-2.311622;;, + 19;3;-0.898938, 0.035360,-2.311622;;, + 20;3;-0.898938, 0.035360,-2.311622;;, + 21;3;-0.898938, 0.035360,-2.311622;;, + 22;3;-0.898938, 0.035360,-2.311622;;, + 23;3;-0.898938, 0.035360,-2.311622;;, + 24;3;-0.898938, 0.035360,-2.311622;;, + 25;3;-0.898938, 0.035360,-2.311622;;, + 26;3;-0.898938, 0.035360,-2.311622;;, + 27;3;-0.898938, 0.035360,-2.311622;;, + 28;3;-0.898938, 0.035360,-2.311622;;, + 29;3;-0.898938, 0.035360,-2.311622;;, + 30;3;-0.898938, 0.035360,-2.311622;;, + 31;3;-0.898938, 0.035360,-2.311622;;, + 32;3;-0.898938, 0.035360,-2.311622;;, + 33;3;-0.898938, 0.035360,-2.311622;;, + 34;3;-0.898938, 0.035360,-2.311622;;, + 35;3;-0.898938, 0.035360,-2.311622;;, + 36;3;-0.898938, 0.035360,-2.311622;;, + 37;3;-0.898938, 0.035360,-2.311622;;, + 38;3;-0.898938, 0.035360,-2.311622;;, + 39;3;-0.898938, 0.035360,-2.311622;;, + 40;3;-0.898938, 0.035360,-2.311622;;, + 41;3;-0.898938, 0.035360,-2.311622;;, + 42;3;-0.898938, 0.035360,-2.311622;;, + 43;3;-0.898938, 0.035360,-2.311622;;, + 44;3;-0.898938, 0.035360,-2.311622;;, + 45;3;-0.898938, 0.035360,-2.311622;;, + 46;3;-0.898938, 0.035360,-2.311622;;, + 47;3;-0.898938, 0.035360,-2.311622;;, + 48;3;-0.898938, 0.035360,-2.311622;;, + 49;3;-0.898938, 0.035360,-2.311622;;, + 50;3;-0.898938, 0.035360,-2.311622;;, + 51;3;-0.898938, 0.035360,-2.311622;;, + 52;3;-0.898938, 0.035360,-2.311622;;, + 53;3;-0.898938, 0.035360,-2.311622;;, + 54;3;-0.898938, 0.035360,-2.311622;;, + 55;3;-0.898938, 0.035360,-2.311622;;, + 56;3;-0.898938, 0.035360,-2.311622;;, + 57;3;-0.898938, 0.035360,-2.311622;;, + 58;3;-0.898938, 0.035360,-2.311622;;, + 59;3;-0.898938, 0.035360,-2.311622;;, + 60;3;-0.898938, 0.035360,-2.311622;;, + 61;3;-0.898938, 0.035360,-2.311622;;, + 62;3;-0.898938, 0.035360,-2.311622;;, + 63;3;-0.898938, 0.035360,-2.311622;;, + 64;3;-0.898938, 0.035360,-2.311622;;, + 65;3;-0.898938, 0.035360,-2.311622;;, + 66;3;-0.898938, 0.035360,-2.311622;;, + 67;3;-0.898938, 0.035360,-2.311622;;, + 68;3;-0.898938, 0.035360,-2.311622;;, + 69;3;-0.898938, 0.035360,-2.311622;;, + 70;3;-0.898938, 0.035360,-2.311622;;, + 71;3;-0.898938, 0.035360,-2.311622;;, + 72;3;-0.898938, 0.035360,-2.311622;;, + 73;3;-0.898938, 0.035360,-2.311622;;, + 74;3;-0.898938, 0.035360,-2.311622;;, + 75;3;-0.898938, 0.035360,-2.311622;;, + 76;3;-0.898938, 0.035360,-2.311622;;, + 77;3;-0.898938, 0.035360,-2.311622;;, + 78;3;-0.898938, 0.035360,-2.311622;;, + 79;3;-0.898938, 0.035360,-2.311622;;, + 80;3;-0.898938, 0.035360,-1.481889;;, + 81;3;-0.898938, 0.035360,-1.481889;;, + 82;3;-0.898938, 0.035360,-1.481889;;, + 83;3;-0.898938, 0.035360,-1.481889;;, + 84;3;-0.898938, 0.035360,-1.481889;;, + 85;3;-0.898938, 0.035360,-1.481889;;, + 86;3;-0.898938, 0.035360,-1.481889;;, + 87;3;-0.898938, 0.035360,-1.481889;;, + 88;3;-0.898938, 0.035360,-1.481889;;, + 89;3;-0.898938, 0.035360,-1.481889;;, + 90;3;-0.898938, 0.035360,-1.481889;;, + 91;3;-0.898938, 0.035360,-1.481889;;, + 92;3;-0.898938, 0.035360,-1.481889;;, + 93;3;-0.898938, 0.035360,-1.481889;;, + 94;3;-0.898938, 0.035360,-1.481889;;, + 95;3;-0.898938, 0.035360,-1.481889;;, + 96;3;-0.898938, 0.035360,-1.481889;;, + 97;3;-0.898938, 0.035360,-1.481889;;, + 98;3;-0.898938, 0.035360,-1.481889;;, + 99;3;-0.898938, 0.035360,-1.481889;;, + 100;3;-0.898938, 0.035360,-1.481889;;, + 101;3;-0.898938, 0.035360,-1.481889;;, + 102;3;-0.898938, 0.035360,-1.481889;;, + 103;3;-0.898938, 0.035360,-1.481889;;, + 104;3;-0.898938, 0.035360,-1.481889;;, + 105;3;-0.898938, 0.035360,-1.481889;;, + 106;3;-0.898938, 0.035360,-1.481889;;, + 107;3;-0.898938, 0.035360,-1.481889;;, + 108;3;-0.898938, 0.035360,-1.481889;;, + 109;3;-0.898938, 0.035360,-1.481889;;, + 110;3;-0.898938, 0.035360,-1.481889;;, + 111;3;-0.898938, 0.035360,-1.481889;;, + 112;3;-0.898938, 0.035360,-1.481889;;, + 113;3;-0.898938, 0.035360,-1.481889;;, + 114;3;-0.898938, 0.035360,-1.481889;;, + 115;3;-0.898938, 0.035360,-1.481889;;, + 116;3;-0.898938, 0.035360,-1.481889;;, + 117;3;-0.898938, 0.035360,-1.481889;;, + 118;3;-0.898938, 0.035360,-1.481889;;, + 119;3;-0.898938, 0.035360,-1.481889;;, + 120;3;-0.898938, 0.035360,-1.481889;;, + 121;3;-0.898938, 0.035360,-1.481889;;, + 122;3;-0.898938, 0.035360,-1.481889;;, + 123;3;-0.898938, 0.035360,-1.481889;;, + 124;3;-0.898938, 0.035360,-1.481889;;, + 125;3;-0.898938, 0.035360,-1.481889;;, + 126;3;-0.898938, 0.035360,-1.481889;;, + 127;3;-0.898938, 0.035360,-1.481889;;, + 128;3;-0.898938, 0.035360,-1.481889;;, + 129;3;-0.898938, 0.035360,-1.481889;;, + 130;3;-0.898938, 0.035360,-1.481889;;, + 131;3;-0.898938, 0.035360,-1.481889;;, + 132;3;-0.898938, 0.035360,-1.481889;;, + 133;3;-0.898938, 0.035360,-1.481889;;, + 134;3;-0.898938, 0.035360,-1.481889;;, + 135;3;-0.898938, 0.035360,-1.481889;;, + 136;3;-0.898938, 0.035360,-1.481889;;, + 137;3;-0.898938, 0.035360,-1.481889;;, + 138;3;-0.898938, 0.035360,-1.481889;;, + 139;3;-0.898938, 0.035360,-1.481889;;, + 140;3;-0.898938, 0.035360,-1.481889;;, + 141;3;-0.898938, 0.035360,-1.481889;;, + 142;3;-0.898938, 0.035360,-1.481889;;, + 143;3;-0.898938, 0.035360,-1.481889;;, + 144;3;-0.898938, 0.035360,-1.481889;;, + 145;3;-0.898938, 0.035360,-1.481889;;, + 146;3;-0.898938, 0.035360,-1.481889;;, + 147;3;-0.898938, 0.035360,-1.481889;;, + 148;3;-0.898938, 0.035360,-1.481889;;, + 149;3;-0.898938, 0.035360,-1.481889;;, + 150;3;-0.898938, 0.035360,-1.481889;;, + 151;3;-0.898938, 0.035360,-1.481889;;, + 152;3;-0.898938, 0.035360,-1.481889;;, + 153;3;-0.898938, 0.035360,-1.481889;;, + 154;3;-0.898938, 0.035360,-1.481889;;, + 155;3;-0.898938, 0.035360,-1.481889;;, + 156;3;-0.898938, 0.035360,-1.481889;;, + 157;3;-0.898938, 0.035360,-1.481889;;, + 158;3;-0.898938, 0.035360,-1.481889;;, + 159;3;-0.898938, 0.035360,-1.481889;;, + 160;3;-0.898938, 0.035360,-1.481889;;, + 161;3;-0.898938, 0.035360,-1.481889;;, + 162;3;-0.898938, 0.035360,-1.481889;;, + 163;3;-0.898938, 0.035360,-1.481889;;, + 164;3;-0.898938, 0.035360,-1.481889;;, + 165;3;-0.898938, 0.035360,-1.481889;;, + 166;3;-0.898938, 0.035360,-1.481889;;, + 167;3;-0.898938, 0.035360,-1.481889;;, + 168;3;-0.898938, 0.035360,-1.481889;;, + 169;3;-0.898938, 0.035360,-1.481889;;, + 170;3;-0.898938, 0.035360,-2.795841;;, + 171;3;-0.898938, 0.035360,-2.795841;;, + 172;3;-0.898938, 0.035360,-2.795841;;, + 173;3;-0.898938, 0.035360,-2.795841;;, + 174;3;-0.898938, 0.035360,-2.795841;;, + 175;3;-0.898938, 0.035360,-2.795841;;, + 176;3;-0.898938, 0.035360,-2.795841;;, + 177;3;-0.898938, 0.035360,-2.795841;;, + 178;3;-0.898938, 0.035360,-2.795841;;, + 179;3;-0.898938, 0.035360,-2.795841;;, + 180;3;-0.898938, 0.035360,-2.795841;;, + 181;3;-0.898938, 0.035360,-2.795841;;, + 182;3;-0.898938, 0.035360,-2.795841;;, + 183;3;-0.898938, 0.035360,-2.795841;;, + 184;3;-0.898938, 0.035360,-2.795841;;, + 185;3;-0.898938, 0.035360,-2.795841;;, + 186;3;-0.898938, 0.035360,-2.795841;;, + 187;3;-0.898938, 0.035360,-2.795841;;, + 188;3;-0.898938, 0.035360,-2.795841;;, + 189;3;-0.898938, 0.035360,-2.795841;;, + 190;3;-0.898938, 0.035360,-2.795841;;, + 191;3;-0.898938, 0.035360,-2.795841;;, + 192;3;-0.898938, 0.035360,-2.795841;;, + 193;3;-0.898938, 0.035360,-2.795841;;, + 194;3;-0.898938, 0.035360,-2.795841;;, + 195;3;-0.898938, 0.035360,-2.795841;;, + 196;3;-0.898938, 0.035360,-2.795841;;, + 197;3;-0.898938, 0.035360,-2.795841;;, + 198;3;-0.898938, 0.035360,-2.795841;;, + 199;3;-0.898938, 0.035360,-2.795841;;, + 200;3;-0.898938, 0.035360,-2.795841;;, + 201;3;-0.898938, 0.035360,-2.795841;;, + 202;3;-0.898938, 0.035360,-2.795841;;, + 203;3;-0.898938, 0.035360,-2.795841;;, + 204;3;-0.898938, 0.035360,-2.795841;;, + 205;3;-0.898938, 0.035360,-1.827895;;, + 206;3;-0.720766, 0.035328,-1.827729;;, + 207;3;-0.298607, 0.035331,-1.827744;;, + 208;3; 0.115165, 0.035350,-1.827844;;, + 209;3; 0.272162, 0.035360,-1.827895;;, + 210;3; 0.272162, 0.035360,-1.827895;;, + 211;3; 0.272162, 0.035360,-1.827895;;, + 212;3; 0.272162, 0.035360,-1.827895;;, + 213;3; 0.272162, 0.035360,-1.827895;;, + 214;3; 0.272162, 0.035360,-1.827895;;, + 215;3; 0.170761, 0.035360,-1.827895;;, + 216;3;-0.114856, 0.035360,-1.827895;;, + 217;3;-0.481585, 0.035360,-1.827895;;, + 218;3;-0.767202, 0.035360,-1.827895;;, + 219;3;-0.868603, 0.035360,-1.827895;;, + 220;3;-0.868603, 0.035360,-1.827895;;, + 221;3;-0.868603, 0.035360,-1.827895;;, + 222;3;-0.868603, 0.035360,-1.827895;;, + 223;3;-0.868603, 0.035360,-1.827895;;, + 224;3;-0.868603, 0.035360,-1.827895;;, + 225;3;-0.868603, 0.035360,-1.827895;;, + 226;3;-0.868603, 0.035360,-1.827895;;, + 227;3;-0.868603, 0.035360,-1.827895;;, + 228;3;-0.868603, 0.035360,-1.827895;;, + 229;3;-0.868603, 0.035360,-1.827895;;, + 230;3;-0.868603, 0.035360,-1.827895;;, + 231;3;-0.868603, 0.035360,-1.827895;;, + 232;3;-0.868603, 0.035360,-1.827895;;, + 233;3;-0.868603, 0.035360,-1.827895;;, + 234;3;-0.868603, 0.035360,-1.827895;;, + 235;3;-0.868603, 0.035360,-1.827895;;, + 236;3;-0.868603, 0.035360,-1.827895;;, + 237;3;-0.868603, 0.035360,-1.827895;;, + 238;3;-0.868603, 0.035360,-1.827895;;, + 239;3;-0.868603, 0.035360,-1.827895;;, + 240;3;-0.868603, 0.035360,-1.827895;;, + 241;3;-0.868603, 0.035360,-1.827895;;, + 242;3;-0.868603, 0.035360,-1.827895;;, + 243;3;-0.868603, 0.035360,-1.827895;;, + 244;3;-0.868603, 0.035360,-1.827895;;, + 245;3;-0.868603, 0.035360,-1.827895;;, + 246;3;-0.868603, 0.035360,-1.827895;;, + 247;3;-0.868603, 0.035360,-1.827895;;, + 248;3;-0.868603, 0.035360,-1.827895;;, + 249;3;-0.868603, 0.035360,-1.827895;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { // Rotation + 0; + 250; + 0;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 1;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 2;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 3;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 4;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 5;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 6;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 7;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 8;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 9;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 10;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 11;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 12;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 13;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 14;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 15;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 16;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 17;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 18;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 19;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 20;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 21;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 22;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 23;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 24;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 25;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 26;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 27;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 28;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 29;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 30;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 31;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 32;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 33;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 34;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 35;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 36;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 37;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 38;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 39;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 40;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 41;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 42;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 43;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 44;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 45;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 46;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 47;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 48;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 49;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 50;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 51;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 52;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 53;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 54;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 55;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 56;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 57;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 58;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 59;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 60;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 61;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 62;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 63;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 64;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 65;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 66;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 67;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 68;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 69;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 70;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 71;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 72;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 73;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 74;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 75;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 76;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 77;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 78;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 79;4; 0.091340,-0.692323, 0.709555, 0.094216;;, + 80;4; 0.330455,-0.621452, 0.623417,-0.340512;;, + 81;4; 0.323945,-0.635476, 0.617658,-0.322428;;, + 82;4; 0.309890,-0.651400, 0.618701,-0.283995;;, + 83;4; 0.293032,-0.667547, 0.622724,-0.238022;;, + 84;4; 0.275694,-0.683072, 0.627878,-0.190784;;, + 85;4; 0.259329,-0.697421, 0.633030,-0.146211;;, + 86;4; 0.245021,-0.710151, 0.637359,-0.107234;;, + 87;4; 0.233701,-0.720860, 0.640187,-0.076367;;, + 88;4; 0.226258,-0.729136, 0.640887,-0.056021;;, + 89;4; 0.223629,-0.734526, 0.638817,-0.048730;;, + 90;4; 0.226135,-0.735977, 0.632844,-0.052112;;, + 91;4; 0.233476,-0.732706, 0.622241,-0.062033;;, + 92;4; 0.245673,-0.724675, 0.607008,-0.078520;;, + 93;4; 0.262646,-0.711938, 0.587243,-0.101464;;, + 94;4; 0.284184,-0.694672, 0.563172,-0.130581;;, + 95;4; 0.309922,-0.673203, 0.535174,-0.165379;;, + 96;4; 0.339324,-0.648018, 0.503795,-0.205131;;, + 97;4; 0.371674,-0.619782, 0.469754,-0.248869;;, + 98;4; 0.406093,-0.589315, 0.433925,-0.295405;;, + 99;4; 0.441577,-0.557564, 0.397301,-0.343381;;, + 100;4; 0.477053,-0.525550, 0.360933,-0.391347;;, + 101;4; 0.511448,-0.494297, 0.325870,-0.437852;;, + 102;4; 0.543759,-0.464774, 0.293081,-0.481539;;, + 103;4; 0.573107,-0.437834, 0.263413,-0.521221;;, + 104;4; 0.598779,-0.414176, 0.237545,-0.555933;;, + 105;4; 0.620239,-0.394336, 0.215981,-0.584948;;, + 106;4; 0.637123,-0.378684, 0.199055,-0.607777;;, + 107;4; 0.649222,-0.367440, 0.186950,-0.624136;;, + 108;4; 0.656457,-0.360702, 0.179724,-0.633920;;, + 109;4; 0.658851,-0.358469, 0.177336,-0.637156;;, + 110;4; 0.658435,-0.358767, 0.177999,-0.636721;;, + 111;4; 0.657180,-0.359665, 0.179996,-0.635408;;, + 112;4; 0.655079,-0.361169, 0.183339,-0.633209;;, + 113;4; 0.652128,-0.363281, 0.188035,-0.630122;;, + 114;4; 0.648326,-0.366002, 0.194084,-0.626144;;, + 115;4; 0.643677,-0.369330, 0.201480,-0.621280;;, + 116;4; 0.638192,-0.373257, 0.210208,-0.615541;;, + 117;4; 0.631883,-0.377774, 0.220244,-0.608941;;, + 118;4; 0.624773,-0.382866, 0.231556,-0.601502;;, + 119;4; 0.616888,-0.388513, 0.244099,-0.593254;;, + 120;4; 0.608264,-0.394690, 0.257817,-0.584233;;, + 121;4; 0.598944,-0.401367, 0.272642,-0.574482;;, + 122;4; 0.588977,-0.408508, 0.288494,-0.564057;;, + 123;4; 0.578422,-0.416072, 0.305280,-0.553016;;, + 124;4; 0.567345,-0.424011, 0.322896,-0.541430;;, + 125;4; 0.555819,-0.432274, 0.341223,-0.529375;;, + 126;4; 0.543924,-0.440804, 0.360137,-0.516934;;, + 127;4; 0.531745,-0.449540, 0.379499,-0.504198;;, + 128;4; 0.519372,-0.458417, 0.399167,-0.491259;;, + 129;4; 0.506898,-0.467369, 0.418994,-0.478215;;, + 130;4; 0.494418,-0.476329, 0.438828,-0.465166;;, + 131;4; 0.482026,-0.485229, 0.458519,-0.452210;;, + 132;4; 0.469815,-0.494003, 0.477918,-0.439445;;, + 133;4; 0.457875,-0.502585, 0.496883,-0.426965;;, + 134;4; 0.446293,-0.510916, 0.515276,-0.414859;;, + 135;4; 0.435147,-0.518938, 0.532971,-0.403212;;, + 136;4; 0.424513,-0.526597, 0.549850,-0.392101;;, + 137;4; 0.414455,-0.533847, 0.565808,-0.381594;;, + 138;4; 0.405033,-0.540645, 0.580750,-0.371754;;, + 139;4; 0.396298,-0.546955, 0.594597,-0.362633;;, + 140;4; 0.388293,-0.552746, 0.607280,-0.354277;;, + 141;4; 0.381053,-0.557993, 0.618742,-0.346723;;, + 142;4; 0.374606,-0.562675, 0.628938,-0.340000;;, + 143;4; 0.368975,-0.566776, 0.637835,-0.334131;;, + 144;4; 0.364174,-0.570286, 0.645408,-0.329131;;, + 145;4; 0.360213,-0.573198, 0.651643,-0.325012;;, + 146;4; 0.357096,-0.575508, 0.656531,-0.321776;;, + 147;4; 0.354823,-0.577217, 0.660073,-0.319425;;, + 148;4; 0.353392,-0.578326, 0.662275,-0.317955;;, + 149;4; 0.352794,-0.578841, 0.663148,-0.317358;;, + 150;4; 0.352512,-0.579261, 0.663135,-0.317329;;, + 151;4; 0.352051,-0.580043, 0.662713,-0.317546;;, + 152;4; 0.351437,-0.581138, 0.661938,-0.317974;;, + 153;4; 0.350688,-0.582507, 0.660853,-0.318589;;, + 154;4; 0.349820,-0.584117, 0.659494,-0.319367;;, + 155;4; 0.348847,-0.585942, 0.657892,-0.320291;;, + 156;4; 0.347781,-0.587958, 0.656072,-0.321346;;, + 157;4; 0.346630,-0.590144, 0.654058,-0.322518;;, + 158;4; 0.345406,-0.592483, 0.651868,-0.323795;;, + 159;4; 0.344115,-0.594957, 0.649523,-0.325166;;, + 160;4; 0.342766,-0.597552, 0.647038,-0.326620;;, + 161;4; 0.341366,-0.600250, 0.644431,-0.328148;;, + 162;4; 0.339925,-0.603035, 0.641719,-0.329739;;, + 163;4; 0.338450,-0.605890, 0.638921,-0.331383;;, + 164;4; 0.336954,-0.608792, 0.636061,-0.333064;;, + 165;4; 0.335451,-0.611713, 0.633167,-0.334767;;, + 166;4; 0.333963,-0.614608, 0.630285,-0.336464;;, + 167;4; 0.332530,-0.617402, 0.627492,-0.338109;;, + 168;4; 0.331239,-0.619920, 0.624963,-0.339600;;, + 169;4; 0.330455,-0.621452, 0.623417,-0.340512;;, + 170;4; 0.330455,-0.621452, 0.623417,-0.340512;;, + 171;4; 0.322073,-0.632669, 0.607224,-0.347229;;, + 172;4; 0.304383,-0.656179, 0.573282,-0.361185;;, + 173;4; 0.283071,-0.684240, 0.532771,-0.377641;;, + 174;4; 0.260917,-0.713056, 0.491172,-0.394267;;, + 175;4; 0.239653,-0.740250, 0.451916,-0.409595;;, + 176;4; 0.220559,-0.764049, 0.417562,-0.422518;;, + 177;4; 0.204725,-0.782933, 0.390307,-0.432078;;, + 178;4; 0.193188,-0.795442, 0.372258,-0.437347;;, + 179;4; 0.187031,-0.800043, 0.365627,-0.437342;;, + 180;4; 0.185945,-0.796851, 0.369508,-0.431865;;, + 181;4; 0.188907,-0.787024, 0.381496,-0.421390;;, + 182;4; 0.195913,-0.770634, 0.401552,-0.405985;;, + 183;4; 0.206791,-0.748050, 0.429284,-0.385949;;, + 184;4; 0.221150,-0.720021, 0.463851,-0.361866;;, + 185;4; 0.238341,-0.687722, 0.503896,-0.334650;;, + 186;4; 0.257471,-0.652740, 0.547565,-0.305519;;, + 187;4; 0.277458,-0.616954, 0.592634,-0.275916;;, + 188;4; 0.297142,-0.582351, 0.636733,-0.247352;;, + 189;4; 0.315415,-0.550795, 0.677620,-0.221244;;, + 190;4; 0.331337,-0.523840, 0.713404,-0.198764;;, + 191;4; 0.344203,-0.502621, 0.742683,-0.180763;;, + 192;4; 0.353557,-0.487844, 0.764567,-0.167765;;, + 193;4; 0.359165,-0.479834, 0.778615,-0.160001;;, + 194;4; 0.360967,-0.478625, 0.784742,-0.157483;;, + 195;4; 0.357223,-0.484370, 0.782988,-0.161589;;, + 196;4; 0.347086,-0.496516, 0.774175,-0.172804;;, + 197;4; 0.331776,-0.514043, 0.759411,-0.189860;;, + 198;4; 0.312372,-0.536082, 0.739636,-0.211646;;, + 199;4; 0.289916,-0.561847, 0.715695,-0.237116;;, + 200;4; 0.265513,-0.590564, 0.688414,-0.265183;;, + 201;4; 0.240496,-0.621370, 0.658703,-0.294568;;, + 202;4; 0.216745,-0.653137, 0.627742,-0.323506;;, + 203;4; 0.197503,-0.684024, 0.597441,-0.348998;;, + 204;4; 0.190340,-0.709849, 0.572124,-0.364089;;, + 205;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 206;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 207;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 208;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 209;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 210;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 211;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 212;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 213;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 214;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 215;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 216;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 217;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 218;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 219;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 220;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 221;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 222;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 223;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 224;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 225;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 226;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 227;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 228;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 229;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 230;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 231;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 232;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 233;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 234;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 235;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 236;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 237;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 238;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 239;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 240;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 241;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 242;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 243;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 244;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 245;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 246;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 247;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 248;4; 0.316748,-0.662904, 0.495948,-0.462888;;, + 249;4; 0.316748,-0.662904, 0.495948,-0.462888;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.000000, 0.903695,-0.000000;;, + 1;3;-0.000000, 0.903695,-0.000000;;, + 2;3;-0.000000, 0.903695,-0.000000;;, + 3;3;-0.000000, 0.903695,-0.000000;;, + 4;3;-0.000000, 0.903695,-0.000000;;, + 5;3;-0.000000, 0.903695,-0.000000;;, + 6;3;-0.000000, 0.903695,-0.000000;;, + 7;3;-0.000000, 0.903695,-0.000000;;, + 8;3;-0.000000, 0.903695,-0.000000;;, + 9;3;-0.000000, 0.903695,-0.000000;;, + 10;3;-0.000000, 0.903695,-0.000000;;, + 11;3;-0.000000, 0.903695,-0.000000;;, + 12;3;-0.000000, 0.903695,-0.000000;;, + 13;3;-0.000000, 0.903695,-0.000000;;, + 14;3;-0.000000, 0.903695,-0.000000;;, + 15;3;-0.000000, 0.903695,-0.000000;;, + 16;3;-0.000000, 0.903695,-0.000000;;, + 17;3;-0.000000, 0.903695,-0.000000;;, + 18;3;-0.000000, 0.903695,-0.000000;;, + 19;3;-0.000000, 0.903695,-0.000000;;, + 20;3;-0.000000, 0.903695,-0.000000;;, + 21;3;-0.000000, 0.903695,-0.000000;;, + 22;3;-0.000000, 0.903695,-0.000000;;, + 23;3;-0.000000, 0.903695,-0.000000;;, + 24;3;-0.000000, 0.903695,-0.000000;;, + 25;3;-0.000000, 0.903695,-0.000000;;, + 26;3;-0.000000, 0.903695,-0.000000;;, + 27;3;-0.000000, 0.903695,-0.000000;;, + 28;3;-0.000000, 0.903695,-0.000000;;, + 29;3;-0.000000, 0.903695,-0.000000;;, + 30;3;-0.000000, 0.903695,-0.000000;;, + 31;3;-0.000000, 0.903695,-0.000000;;, + 32;3;-0.000000, 0.903695,-0.000000;;, + 33;3;-0.000000, 0.903695,-0.000000;;, + 34;3;-0.000000, 0.903695,-0.000000;;, + 35;3;-0.000000, 0.903695,-0.000000;;, + 36;3;-0.000000, 0.903695,-0.000000;;, + 37;3;-0.000000, 0.903695,-0.000000;;, + 38;3;-0.000000, 0.903695,-0.000000;;, + 39;3;-0.000000, 0.903695,-0.000000;;, + 40;3;-0.000000, 0.903695,-0.000000;;, + 41;3;-0.000000, 0.903695,-0.000000;;, + 42;3;-0.000000, 0.903695,-0.000000;;, + 43;3;-0.000000, 0.903695,-0.000000;;, + 44;3;-0.000000, 0.903695,-0.000000;;, + 45;3;-0.000000, 0.903695,-0.000000;;, + 46;3;-0.000000, 0.903695,-0.000000;;, + 47;3;-0.000000, 0.903695,-0.000000;;, + 48;3;-0.000000, 0.903695,-0.000000;;, + 49;3;-0.000000, 0.903695,-0.000000;;, + 50;3;-0.000000, 0.903695,-0.000000;;, + 51;3;-0.000000, 0.903695,-0.000000;;, + 52;3;-0.000000, 0.903695,-0.000000;;, + 53;3;-0.000000, 0.903695,-0.000000;;, + 54;3;-0.000000, 0.903695,-0.000000;;, + 55;3;-0.000000, 0.903695,-0.000000;;, + 56;3;-0.000000, 0.903695,-0.000000;;, + 57;3;-0.000000, 0.903695,-0.000000;;, + 58;3;-0.000000, 0.903695,-0.000000;;, + 59;3;-0.000000, 0.903695,-0.000000;;, + 60;3;-0.000000, 0.903695,-0.000000;;, + 61;3;-0.000000, 0.903695,-0.000000;;, + 62;3;-0.000000, 0.903695,-0.000000;;, + 63;3;-0.000000, 0.903695,-0.000000;;, + 64;3;-0.000000, 0.903695,-0.000000;;, + 65;3;-0.000000, 0.903695,-0.000000;;, + 66;3;-0.000000, 0.903695,-0.000000;;, + 67;3;-0.000000, 0.903695,-0.000000;;, + 68;3;-0.000000, 0.903695,-0.000000;;, + 69;3;-0.000000, 0.903695,-0.000000;;, + 70;3;-0.000000, 0.903695,-0.000000;;, + 71;3;-0.000000, 0.903695,-0.000000;;, + 72;3;-0.000000, 0.903695,-0.000000;;, + 73;3;-0.000000, 0.903695,-0.000000;;, + 74;3;-0.000000, 0.903695,-0.000000;;, + 75;3;-0.000000, 0.903695,-0.000000;;, + 76;3;-0.000000, 0.903695,-0.000000;;, + 77;3;-0.000000, 0.903695,-0.000000;;, + 78;3;-0.000000, 0.903695,-0.000000;;, + 79;3;-0.000000, 0.903695,-0.000000;;, + 80;3; 0.000000, 0.903694, 0.000000;;, + 81;3; 0.000000, 0.903694, 0.000000;;, + 82;3; 0.000000, 0.903694, 0.000000;;, + 83;3; 0.000000, 0.903694, 0.000000;;, + 84;3; 0.000000, 0.903694, 0.000000;;, + 85;3; 0.000000, 0.903694, 0.000000;;, + 86;3; 0.000000, 0.903694, 0.000000;;, + 87;3; 0.000000, 0.903694, 0.000000;;, + 88;3; 0.000000, 0.903694, 0.000000;;, + 89;3; 0.000000, 0.903694, 0.000000;;, + 90;3; 0.000000, 0.903694, 0.000000;;, + 91;3; 0.000000, 0.903694, 0.000000;;, + 92;3; 0.000000, 0.903694, 0.000000;;, + 93;3; 0.000000, 0.903694, 0.000000;;, + 94;3; 0.000000, 0.903694, 0.000000;;, + 95;3; 0.000000, 0.903694, 0.000000;;, + 96;3; 0.000000, 0.903694, 0.000000;;, + 97;3; 0.000000, 0.903694, 0.000000;;, + 98;3; 0.000000, 0.903694, 0.000000;;, + 99;3; 0.000000, 0.903694, 0.000000;;, + 100;3; 0.000000, 0.903694, 0.000000;;, + 101;3; 0.000000, 0.903694, 0.000000;;, + 102;3; 0.000000, 0.903694, 0.000000;;, + 103;3; 0.000000, 0.903694, 0.000000;;, + 104;3; 0.000000, 0.903694, 0.000000;;, + 105;3; 0.000000, 0.903694, 0.000000;;, + 106;3; 0.000000, 0.903694, 0.000000;;, + 107;3; 0.000000, 0.903694, 0.000000;;, + 108;3; 0.000000, 0.903694, 0.000000;;, + 109;3; 0.000000, 0.903694, 0.000000;;, + 110;3; 0.000000, 0.903694, 0.000000;;, + 111;3; 0.000000, 0.903694, 0.000000;;, + 112;3; 0.000000, 0.903694, 0.000000;;, + 113;3; 0.000000, 0.903694, 0.000000;;, + 114;3; 0.000000, 0.903694, 0.000000;;, + 115;3; 0.000000, 0.903694, 0.000000;;, + 116;3; 0.000000, 0.903694, 0.000000;;, + 117;3; 0.000000, 0.903694, 0.000000;;, + 118;3; 0.000000, 0.903694, 0.000000;;, + 119;3; 0.000000, 0.903694, 0.000000;;, + 120;3; 0.000000, 0.903694, 0.000000;;, + 121;3; 0.000000, 0.903694, 0.000000;;, + 122;3; 0.000000, 0.903694, 0.000000;;, + 123;3; 0.000000, 0.903694, 0.000000;;, + 124;3; 0.000000, 0.903694, 0.000000;;, + 125;3; 0.000000, 0.903694, 0.000000;;, + 126;3; 0.000000, 0.903694, 0.000000;;, + 127;3; 0.000000, 0.903694, 0.000000;;, + 128;3; 0.000000, 0.903694, 0.000000;;, + 129;3; 0.000000, 0.903694, 0.000000;;, + 130;3; 0.000000, 0.903694, 0.000000;;, + 131;3; 0.000000, 0.903694, 0.000000;;, + 132;3; 0.000000, 0.903694, 0.000000;;, + 133;3; 0.000000, 0.903694, 0.000000;;, + 134;3; 0.000000, 0.903694, 0.000000;;, + 135;3; 0.000000, 0.903694, 0.000000;;, + 136;3; 0.000000, 0.903694, 0.000000;;, + 137;3; 0.000000, 0.903694, 0.000000;;, + 138;3; 0.000000, 0.903694, 0.000000;;, + 139;3; 0.000000, 0.903694, 0.000000;;, + 140;3; 0.000000, 0.903694, 0.000000;;, + 141;3; 0.000000, 0.903694, 0.000000;;, + 142;3; 0.000000, 0.903694, 0.000000;;, + 143;3; 0.000000, 0.903694, 0.000000;;, + 144;3; 0.000000, 0.903694, 0.000000;;, + 145;3; 0.000000, 0.903694, 0.000000;;, + 146;3; 0.000000, 0.903694, 0.000000;;, + 147;3; 0.000000, 0.903694, 0.000000;;, + 148;3; 0.000000, 0.903694, 0.000000;;, + 149;3; 0.000000, 0.903694, 0.000000;;, + 150;3; 0.000000, 0.903694, 0.000000;;, + 151;3; 0.000000, 0.903694, 0.000000;;, + 152;3; 0.000000, 0.903694, 0.000000;;, + 153;3; 0.000000, 0.903694, 0.000000;;, + 154;3; 0.000000, 0.903694, 0.000000;;, + 155;3; 0.000000, 0.903694, 0.000000;;, + 156;3; 0.000000, 0.903694, 0.000000;;, + 157;3; 0.000000, 0.903694, 0.000000;;, + 158;3; 0.000000, 0.903694, 0.000000;;, + 159;3; 0.000000, 0.903694, 0.000000;;, + 160;3; 0.000000, 0.903694, 0.000000;;, + 161;3; 0.000000, 0.903694, 0.000000;;, + 162;3; 0.000000, 0.903694, 0.000000;;, + 163;3; 0.000000, 0.903694, 0.000000;;, + 164;3; 0.000000, 0.903694, 0.000000;;, + 165;3; 0.000000, 0.903694, 0.000000;;, + 166;3; 0.000000, 0.903694, 0.000000;;, + 167;3; 0.000000, 0.903694, 0.000000;;, + 168;3; 0.000000, 0.903694, 0.000000;;, + 169;3; 0.000000, 0.903694, 0.000000;;, + 170;3;-0.000000, 0.903695,-0.000000;;, + 171;3;-0.000000, 0.903695,-0.000000;;, + 172;3;-0.000000, 0.903695,-0.000000;;, + 173;3;-0.000000, 0.903695,-0.000000;;, + 174;3;-0.000000, 0.903695,-0.000000;;, + 175;3;-0.000000, 0.903695,-0.000000;;, + 176;3;-0.000000, 0.903695,-0.000000;;, + 177;3;-0.000000, 0.903695,-0.000000;;, + 178;3;-0.000000, 0.903695,-0.000000;;, + 179;3;-0.000000, 0.903695,-0.000000;;, + 180;3;-0.000000, 0.903695,-0.000000;;, + 181;3;-0.000000, 0.903695,-0.000000;;, + 182;3;-0.000000, 0.903695,-0.000000;;, + 183;3;-0.000000, 0.903695,-0.000000;;, + 184;3;-0.000000, 0.903695,-0.000000;;, + 185;3;-0.000000, 0.903695,-0.000000;;, + 186;3;-0.000000, 0.903695,-0.000000;;, + 187;3;-0.000000, 0.903695,-0.000000;;, + 188;3;-0.000000, 0.903695,-0.000000;;, + 189;3;-0.000000, 0.903695,-0.000000;;, + 190;3;-0.000000, 0.903695,-0.000000;;, + 191;3;-0.000000, 0.903695,-0.000000;;, + 192;3;-0.000000, 0.903695,-0.000000;;, + 193;3;-0.000000, 0.903695,-0.000000;;, + 194;3;-0.000000, 0.903695,-0.000000;;, + 195;3;-0.000000, 0.903695,-0.000000;;, + 196;3;-0.000000, 0.903695,-0.000000;;, + 197;3;-0.000000, 0.903695,-0.000000;;, + 198;3;-0.000000, 0.903695,-0.000000;;, + 199;3;-0.000000, 0.903695,-0.000000;;, + 200;3;-0.000000, 0.903695,-0.000000;;, + 201;3;-0.000000, 0.903695,-0.000000;;, + 202;3;-0.000000, 0.903695,-0.000000;;, + 203;3;-0.000000, 0.903695,-0.000000;;, + 204;3;-0.000000, 0.903695,-0.000000;;, + 205;3; 0.000000, 0.903694, 0.000000;;, + 206;3; 0.000000, 0.903694,-0.000000;;, + 207;3; 0.000000, 0.903695,-0.000000;;, + 208;3;-0.000000, 0.903694,-0.000000;;, + 209;3;-0.000000, 0.903694, 0.000000;;, + 210;3;-0.000000, 0.903694, 0.000000;;, + 211;3;-0.000000, 0.903694, 0.000000;;, + 212;3;-0.000000, 0.903694, 0.000000;;, + 213;3;-0.000000, 0.903694, 0.000000;;, + 214;3;-0.000000, 0.903694, 0.000000;;, + 215;3;-0.000000, 0.903695, 0.000000;;, + 216;3;-0.000000, 0.903695, 0.000000;;, + 217;3;-0.000000, 0.903695, 0.000000;;, + 218;3;-0.000000, 0.903695, 0.000000;;, + 219;3;-0.000000, 0.903695, 0.000000;;, + 220;3;-0.000000, 0.903695, 0.000000;;, + 221;3;-0.000000, 0.903695, 0.000000;;, + 222;3;-0.000000, 0.903695, 0.000000;;, + 223;3;-0.000000, 0.903695, 0.000000;;, + 224;3;-0.000000, 0.903695, 0.000000;;, + 225;3;-0.000000, 0.903695, 0.000000;;, + 226;3;-0.000000, 0.903695, 0.000000;;, + 227;3;-0.000000, 0.903695, 0.000000;;, + 228;3;-0.000000, 0.903695, 0.000000;;, + 229;3;-0.000000, 0.903695, 0.000000;;, + 230;3;-0.000000, 0.903695, 0.000000;;, + 231;3;-0.000000, 0.903695, 0.000000;;, + 232;3;-0.000000, 0.903695, 0.000000;;, + 233;3;-0.000000, 0.903695, 0.000000;;, + 234;3;-0.000000, 0.903695, 0.000000;;, + 235;3;-0.000000, 0.903695, 0.000000;;, + 236;3;-0.000000, 0.903695, 0.000000;;, + 237;3;-0.000000, 0.903695, 0.000000;;, + 238;3;-0.000000, 0.903695, 0.000000;;, + 239;3;-0.000000, 0.903695, 0.000000;;, + 240;3;-0.000000, 0.903695, 0.000000;;, + 241;3;-0.000000, 0.903695, 0.000000;;, + 242;3;-0.000000, 0.903695, 0.000000;;, + 243;3;-0.000000, 0.903695, 0.000000;;, + 244;3;-0.000000, 0.903695, 0.000000;;, + 245;3;-0.000000, 0.903695, 0.000000;;, + 246;3;-0.000000, 0.903695, 0.000000;;, + 247;3;-0.000000, 0.903695, 0.000000;;, + 248;3;-0.000000, 0.903695, 0.000000;;, + 249;3;-0.000000, 0.903695, 0.000000;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 1;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 2;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 3;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 4;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 5;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 6;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 7;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 8;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 9;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 10;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 11;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 12;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 13;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 14;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 15;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 16;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 17;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 18;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 19;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 20;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 21;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 22;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 23;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 24;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 25;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 26;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 27;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 28;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 29;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 30;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 31;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 32;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 33;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 34;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 35;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 36;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 37;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 38;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 39;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 40;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 41;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 42;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 43;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 44;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 45;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 46;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 47;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 48;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 49;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 50;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 51;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 52;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 53;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 54;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 55;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 56;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 57;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 58;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 59;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 60;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 61;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 62;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 63;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 64;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 65;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 66;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 67;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 68;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 69;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 70;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 71;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 72;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 73;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 74;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 75;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 76;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 77;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 78;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 79;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 80;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 81;4;-0.065454, 0.645585,-0.729264, 0.196438;;, + 82;4;-0.077903, 0.668296,-0.707069, 0.157570;;, + 83;4;-0.092756, 0.695333,-0.680521, 0.111185;;, + 84;4;-0.108003, 0.723005,-0.653181, 0.063562;;, + 85;4;-0.122385, 0.748996,-0.627276, 0.018631;;, + 86;4;-0.134961, 0.771575,-0.604465,-0.020676;;, + 87;4;-0.144926, 0.789254,-0.586167,-0.051841;;, + 88;4;-0.151504, 0.800602,-0.573743,-0.072450;;, + 89;4;-0.153883, 0.804113,-0.568619,-0.079966;;, + 90;4;-0.153817, 0.802748,-0.567879,-0.077714;;, + 91;4;-0.153644, 0.800537,-0.567594,-0.070796;;, + 92;4;-0.153364, 0.797466,-0.567788,-0.059192;;, + 93;4;-0.152976, 0.793535,-0.568478,-0.042978;;, + 94;4;-0.152485, 0.788763,-0.569675,-0.022355;;, + 95;4;-0.151898, 0.783195,-0.571379, 0.002327;;, + 96;4;-0.151223, 0.776904,-0.573577, 0.030552;;, + 97;4;-0.150476, 0.769993,-0.576241, 0.061629;;, + 98;4;-0.149673, 0.762593,-0.579328, 0.094715;;, + 99;4;-0.148837, 0.754861,-0.582779, 0.128842;;, + 100;4;-0.147988, 0.746967,-0.586523, 0.162976;;, + 101;4;-0.147151, 0.739085,-0.590483, 0.196083;;, + 102;4;-0.146345, 0.731383,-0.594578, 0.227196;;, + 103;4;-0.145591, 0.724012,-0.598729, 0.255467;;, + 104;4;-0.144904, 0.717100,-0.602866, 0.280208;;, + 105;4;-0.144296, 0.710746,-0.606926, 0.300900;;, + 106;4;-0.143777, 0.705023,-0.610859, 0.317193;;, + 107;4;-0.143351, 0.699978,-0.614625, 0.328883;;, + 108;4;-0.143021, 0.695636,-0.618196, 0.335894;;, + 109;4;-0.142788, 0.692008,-0.621552, 0.338246;;, + 110;4;-0.142495, 0.688766,-0.624849, 0.338122;;, + 111;4;-0.141984, 0.685589,-0.628251, 0.337655;;, + 112;4;-0.141254, 0.682482,-0.631756, 0.336840;;, + 113;4;-0.140303, 0.679449,-0.635360, 0.335677;;, + 114;4;-0.139133, 0.676494,-0.639060, 0.334164;;, + 115;4;-0.137744, 0.673621,-0.642849, 0.332304;;, + 116;4;-0.136140, 0.670836,-0.646722, 0.330101;;, + 117;4;-0.134324, 0.668141,-0.650671, 0.327561;;, + 118;4;-0.132302, 0.665542,-0.654687, 0.324692;;, + 119;4;-0.130082, 0.663042,-0.658762, 0.321505;;, + 120;4;-0.127674, 0.660647,-0.662883, 0.318016;;, + 121;4;-0.125088, 0.658359,-0.667039, 0.314241;;, + 122;4;-0.122339, 0.656181,-0.671215, 0.310201;;, + 123;4;-0.119443, 0.654117,-0.675397, 0.305921;;, + 124;4;-0.116416, 0.652169,-0.679570, 0.301427;;, + 125;4;-0.113279, 0.650338,-0.683716, 0.296750;;, + 126;4;-0.110052, 0.648626,-0.687819, 0.291922;;, + 127;4;-0.106758, 0.647033,-0.691860, 0.286978;;, + 128;4;-0.103422, 0.645558,-0.695823, 0.281955;;, + 129;4;-0.100067, 0.644199,-0.699689, 0.276892;;, + 130;4;-0.096718, 0.642955,-0.703442, 0.271828;;, + 131;4;-0.093401, 0.641823,-0.707065, 0.266800;;, + 132;4;-0.090140, 0.640798,-0.710543, 0.261848;;, + 133;4;-0.086958, 0.639878,-0.713861, 0.257009;;, + 134;4;-0.083878, 0.639056,-0.717008, 0.252317;;, + 135;4;-0.080920, 0.638328,-0.719972, 0.247805;;, + 136;4;-0.078104, 0.637687,-0.722744, 0.243504;;, + 137;4;-0.075446, 0.637129,-0.725316, 0.239441;;, + 138;4;-0.072963, 0.636646,-0.727682, 0.235640;;, + 139;4;-0.070667, 0.636234,-0.729838, 0.232122;;, + 140;4;-0.068568, 0.635885,-0.731781, 0.228904;;, + 141;4;-0.066677, 0.635594,-0.733511, 0.226002;;, + 142;4;-0.065000, 0.635356,-0.735026, 0.223426;;, + 143;4;-0.063542, 0.635165,-0.736328, 0.221185;;, + 144;4;-0.062308, 0.635015,-0.737419, 0.219286;;, + 145;4;-0.061298, 0.634902,-0.738302, 0.217733;;, + 146;4;-0.060515, 0.634821,-0.738981, 0.216526;;, + 147;4;-0.059957, 0.634768,-0.739460, 0.215667;;, + 148;4;-0.059625, 0.634739,-0.739743, 0.215154;;, + 149;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 150;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 151;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 152;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 153;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 154;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 155;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 156;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 157;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 158;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 159;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 160;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 161;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 162;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 163;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 164;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 165;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 166;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 167;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 168;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 169;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 170;4;-0.059514, 0.634730,-0.739837, 0.214984;;, + 171;4;-0.047317, 0.639075,-0.728271, 0.227964;;, + 172;4;-0.021755, 0.648181,-0.704033, 0.255166;;, + 173;4; 0.008746, 0.659046,-0.675110, 0.287625;;, + 174;4; 0.040060, 0.670201,-0.645418, 0.320948;;, + 175;4; 0.069599, 0.680724,-0.617408, 0.352383;;, + 176;4; 0.095434, 0.689927,-0.592910, 0.379876;;, + 177;4; 0.115911, 0.697222,-0.573493, 0.401667;;, + 178;4; 0.129438, 0.702041,-0.560666, 0.416063;;, + 179;4; 0.134349, 0.703790,-0.556009, 0.421289;;, + 180;4; 0.135837, 0.701784,-0.558098, 0.419950;;, + 181;4; 0.140309, 0.695728,-0.564424, 0.415877;;, + 182;4; 0.147693, 0.685671,-0.574973, 0.409044;;, + 183;4; 0.157772, 0.671841,-0.589550, 0.399531;;, + 184;4; 0.170150, 0.654702,-0.607728, 0.387561;;, + 185;4; 0.184231, 0.634978,-0.628809, 0.373523;;, + 186;4; 0.199232, 0.613643,-0.651840, 0.357973;;, + 187;4; 0.214247, 0.591849,-0.675669, 0.341599;;, + 188;4; 0.228335, 0.570814,-0.699069, 0.325149;;, + 189;4; 0.240628, 0.551678,-0.720872, 0.309351;;, + 190;4; 0.250422, 0.535389,-0.740092, 0.294837;;, + 191;4; 0.257216, 0.522641,-0.755995, 0.282089;;, + 192;4; 0.260718, 0.513860,-0.768110, 0.271435;;, + 193;4; 0.260816, 0.509243,-0.776200, 0.263056;;, + 194;4; 0.257531, 0.508807,-0.780215, 0.257018;;, + 195;4; 0.247344, 0.513902,-0.780379, 0.250640;;, + 196;4; 0.227983, 0.525074,-0.777321, 0.241637;;, + 197;4; 0.201180, 0.541190,-0.771617, 0.230536;;, + 198;4; 0.168472, 0.561248,-0.763771, 0.217807;;, + 199;4; 0.131330, 0.584292,-0.754257, 0.203912;;, + 200;4; 0.091317, 0.609310,-0.743571, 0.189347;;, + 201;4; 0.050309, 0.635094,-0.732292, 0.174723;;, + 202;4; 0.010947, 0.659951,-0.721225, 0.160909;;, + 203;4;-0.022227, 0.680972,-0.711733, 0.149418;;, + 204;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 205;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 206;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 207;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 208;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 209;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 210;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 211;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 212;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 213;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 214;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 215;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 216;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 217;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 218;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 219;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 220;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 221;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 222;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 223;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 224;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 225;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 226;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 227;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 228;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 229;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 230;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 231;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 232;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 233;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 234;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 235;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 236;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 237;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 238;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 239;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 240;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 241;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 242;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 243;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 244;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 245;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 246;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 247;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 248;4;-0.038607, 0.691380,-0.706983, 0.143804;;, + 249;4;-0.038607, 0.691380,-0.706983, 0.143804;;; + } + AnimationKey { // Scale + 1; + 250; + 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.000001, 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.000001, 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.000001, 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.000001, 1.000000;;, + 99;3; 1.000000, 1.000001, 1.000000;;, + 100;3; 1.000000, 1.000000, 1.000000;;, + 101;3; 1.000000, 1.000001, 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.000001, 1.000000;;, + 106;3; 1.000000, 1.000001, 1.000000;;, + 107;3; 1.000000, 1.000000, 1.000000;;, + 108;3; 1.000000, 1.000000, 1.000000;;, + 109;3; 1.000000, 1.000001, 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.000001, 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.000001, 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.000001, 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.000001, 1.000000;;, + 126;3; 1.000000, 1.000000, 1.000000;;, + 127;3; 1.000000, 1.000000, 1.000000;;, + 128;3; 1.000000, 1.000001, 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.000001, 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.000001, 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.000001, 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.000001, 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.000001, 1.000000;;, + 170;3; 1.000000, 1.000001, 1.000000;;, + 171;3; 1.000000, 1.000000, 1.000000;;, + 172;3; 1.000000, 1.000001, 1.000000;;, + 173;3; 1.000000, 1.000000, 1.000000;;, + 174;3; 1.000000, 1.000001, 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 2.148945,-0.000000;;, + 1;3; 0.000000, 2.148945,-0.000000;;, + 2;3; 0.000000, 2.148945,-0.000000;;, + 3;3; 0.000000, 2.148945,-0.000000;;, + 4;3; 0.000000, 2.148945,-0.000000;;, + 5;3; 0.000000, 2.148945,-0.000000;;, + 6;3; 0.000000, 2.148945,-0.000000;;, + 7;3; 0.000000, 2.148945,-0.000000;;, + 8;3; 0.000000, 2.148945,-0.000000;;, + 9;3; 0.000000, 2.148945,-0.000000;;, + 10;3; 0.000000, 2.148945,-0.000000;;, + 11;3; 0.000000, 2.148945,-0.000000;;, + 12;3; 0.000000, 2.148945,-0.000000;;, + 13;3; 0.000000, 2.148945,-0.000000;;, + 14;3; 0.000000, 2.148945,-0.000000;;, + 15;3; 0.000000, 2.148945,-0.000000;;, + 16;3; 0.000000, 2.148945,-0.000000;;, + 17;3; 0.000000, 2.148945,-0.000000;;, + 18;3; 0.000000, 2.148945,-0.000000;;, + 19;3; 0.000000, 2.148945,-0.000000;;, + 20;3; 0.000000, 2.148945,-0.000000;;, + 21;3; 0.000000, 2.148945,-0.000000;;, + 22;3; 0.000000, 2.148945,-0.000000;;, + 23;3; 0.000000, 2.148945,-0.000000;;, + 24;3; 0.000000, 2.148945,-0.000000;;, + 25;3; 0.000000, 2.148945,-0.000000;;, + 26;3; 0.000000, 2.148945,-0.000000;;, + 27;3; 0.000000, 2.148945,-0.000000;;, + 28;3; 0.000000, 2.148945,-0.000000;;, + 29;3; 0.000000, 2.148945,-0.000000;;, + 30;3; 0.000000, 2.148945,-0.000000;;, + 31;3; 0.000000, 2.148945,-0.000000;;, + 32;3; 0.000000, 2.148945,-0.000000;;, + 33;3; 0.000000, 2.148945,-0.000000;;, + 34;3; 0.000000, 2.148945,-0.000000;;, + 35;3; 0.000000, 2.148945,-0.000000;;, + 36;3; 0.000000, 2.148945,-0.000000;;, + 37;3; 0.000000, 2.148945,-0.000000;;, + 38;3; 0.000000, 2.148945,-0.000000;;, + 39;3; 0.000000, 2.148945,-0.000000;;, + 40;3; 0.000000, 2.148945,-0.000000;;, + 41;3; 0.000000, 2.148945,-0.000000;;, + 42;3; 0.000000, 2.148945,-0.000000;;, + 43;3; 0.000000, 2.148945,-0.000000;;, + 44;3; 0.000000, 2.148945,-0.000000;;, + 45;3; 0.000000, 2.148945,-0.000000;;, + 46;3; 0.000000, 2.148945,-0.000000;;, + 47;3; 0.000000, 2.148945,-0.000000;;, + 48;3; 0.000000, 2.148945,-0.000000;;, + 49;3; 0.000000, 2.148945,-0.000000;;, + 50;3; 0.000000, 2.148945,-0.000000;;, + 51;3; 0.000000, 2.148945,-0.000000;;, + 52;3; 0.000000, 2.148945,-0.000000;;, + 53;3; 0.000000, 2.148945,-0.000000;;, + 54;3; 0.000000, 2.148945,-0.000000;;, + 55;3; 0.000000, 2.148945,-0.000000;;, + 56;3; 0.000000, 2.148945,-0.000000;;, + 57;3; 0.000000, 2.148945,-0.000000;;, + 58;3; 0.000000, 2.148945,-0.000000;;, + 59;3; 0.000000, 2.148945,-0.000000;;, + 60;3; 0.000000, 2.148945,-0.000000;;, + 61;3; 0.000000, 2.148945,-0.000000;;, + 62;3; 0.000000, 2.148945,-0.000000;;, + 63;3; 0.000000, 2.148945,-0.000000;;, + 64;3; 0.000000, 2.148945,-0.000000;;, + 65;3; 0.000000, 2.148945,-0.000000;;, + 66;3; 0.000000, 2.148945,-0.000000;;, + 67;3; 0.000000, 2.148945,-0.000000;;, + 68;3; 0.000000, 2.148945,-0.000000;;, + 69;3; 0.000000, 2.148945,-0.000000;;, + 70;3; 0.000000, 2.148945,-0.000000;;, + 71;3; 0.000000, 2.148945,-0.000000;;, + 72;3; 0.000000, 2.148945,-0.000000;;, + 73;3; 0.000000, 2.148945,-0.000000;;, + 74;3; 0.000000, 2.148945,-0.000000;;, + 75;3; 0.000000, 2.148945,-0.000000;;, + 76;3; 0.000000, 2.148945,-0.000000;;, + 77;3; 0.000000, 2.148945,-0.000000;;, + 78;3; 0.000000, 2.148945,-0.000000;;, + 79;3; 0.000000, 2.148945,-0.000000;;, + 80;3;-0.000000, 2.148945,-0.000000;;, + 81;3; 0.000000, 2.148945, 0.000000;;, + 82;3; 0.000000, 2.148945,-0.000000;;, + 83;3; 0.000000, 2.148945,-0.000000;;, + 84;3;-0.000000, 2.148945, 0.000000;;, + 85;3; 0.000000, 2.148945, 0.000000;;, + 86;3;-0.000000, 2.148945, 0.000000;;, + 87;3;-0.000000, 2.148945, 0.000000;;, + 88;3; 0.000000, 2.148945,-0.000000;;, + 89;3;-0.000000, 2.148945, 0.000000;;, + 90;3;-0.000000, 2.148945,-0.000000;;, + 91;3; 0.000000, 2.148945, 0.000000;;, + 92;3;-0.000000, 2.148945, 0.000000;;, + 93;3;-0.000000, 2.148945, 0.000000;;, + 94;3;-0.000000, 2.148945, 0.000000;;, + 95;3;-0.000000, 2.148945, 0.000000;;, + 96;3;-0.000000, 2.148945, 0.000000;;, + 97;3;-0.000000, 2.148945, 0.000000;;, + 98;3; 0.000000, 2.148945, 0.000000;;, + 99;3; 0.000000, 2.148945, 0.000000;;, + 100;3; 0.000000, 2.148945,-0.000000;;, + 101;3;-0.000000, 2.148945,-0.000000;;, + 102;3;-0.000000, 2.148945,-0.000000;;, + 103;3;-0.000000, 2.148945,-0.000000;;, + 104;3;-0.000000, 2.148945,-0.000000;;, + 105;3;-0.000000, 2.148945, 0.000000;;, + 106;3;-0.000000, 2.148945, 0.000000;;, + 107;3;-0.000000, 2.148945,-0.000000;;, + 108;3; 0.000000, 2.148945, 0.000000;;, + 109;3;-0.000000, 2.148945,-0.000000;;, + 110;3; 0.000000, 2.148945,-0.000000;;, + 111;3;-0.000000, 2.148945, 0.000000;;, + 112;3;-0.000000, 2.148945, 0.000000;;, + 113;3;-0.000000, 2.148945, 0.000000;;, + 114;3;-0.000000, 2.148945, 0.000000;;, + 115;3;-0.000000, 2.148945, 0.000000;;, + 116;3; 0.000000, 2.148945,-0.000000;;, + 117;3;-0.000000, 2.148945, 0.000000;;, + 118;3;-0.000000, 2.148946,-0.000000;;, + 119;3; 0.000000, 2.148945, 0.000000;;, + 120;3; 0.000000, 2.148945, 0.000000;;, + 121;3;-0.000000, 2.148945,-0.000000;;, + 122;3; 0.000000, 2.148945,-0.000000;;, + 123;3;-0.000000, 2.148945,-0.000000;;, + 124;3; 0.000000, 2.148945,-0.000000;;, + 125;3;-0.000000, 2.148945, 0.000000;;, + 126;3; 0.000000, 2.148945,-0.000000;;, + 127;3; 0.000000, 2.148945,-0.000000;;, + 128;3; 0.000000, 2.148945, 0.000000;;, + 129;3; 0.000000, 2.148945,-0.000000;;, + 130;3; 0.000000, 2.148945,-0.000000;;, + 131;3;-0.000000, 2.148945, 0.000000;;, + 132;3;-0.000000, 2.148945,-0.000000;;, + 133;3;-0.000000, 2.148945, 0.000000;;, + 134;3; 0.000000, 2.148945,-0.000000;;, + 135;3;-0.000000, 2.148945, 0.000000;;, + 136;3; 0.000000, 2.148945,-0.000000;;, + 137;3; 0.000000, 2.148945, 0.000000;;, + 138;3;-0.000000, 2.148945, 0.000000;;, + 139;3; 0.000000, 2.148945, 0.000000;;, + 140;3;-0.000000, 2.148945, 0.000000;;, + 141;3; 0.000000, 2.148945, 0.000000;;, + 142;3;-0.000000, 2.148945,-0.000000;;, + 143;3;-0.000000, 2.148945, 0.000000;;, + 144;3;-0.000000, 2.148945,-0.000000;;, + 145;3; 0.000000, 2.148945,-0.000000;;, + 146;3; 0.000000, 2.148946, 0.000000;;, + 147;3;-0.000000, 2.148945, 0.000000;;, + 148;3; 0.000000, 2.148945,-0.000000;;, + 149;3; 0.000000, 2.148945, 0.000000;;, + 150;3;-0.000000, 2.148945,-0.000000;;, + 151;3;-0.000000, 2.148945, 0.000000;;, + 152;3;-0.000000, 2.148945, 0.000000;;, + 153;3; 0.000000, 2.148945,-0.000000;;, + 154;3;-0.000000, 2.148945, 0.000000;;, + 155;3; 0.000000, 2.148945, 0.000000;;, + 156;3; 0.000000, 2.148945, 0.000000;;, + 157;3;-0.000000, 2.148945, 0.000000;;, + 158;3; 0.000000, 2.148945, 0.000000;;, + 159;3;-0.000000, 2.148945, 0.000000;;, + 160;3;-0.000000, 2.148945, 0.000000;;, + 161;3; 0.000000, 2.148945,-0.000000;;, + 162;3; 0.000000, 2.148945, 0.000000;;, + 163;3;-0.000000, 2.148945, 0.000000;;, + 164;3;-0.000000, 2.148945, 0.000000;;, + 165;3; 0.000000, 2.148945, 0.000000;;, + 166;3; 0.000000, 2.148945,-0.000000;;, + 167;3; 0.000000, 2.148945,-0.000000;;, + 168;3; 0.000000, 2.148945, 0.000000;;, + 169;3;-0.000000, 2.148945,-0.000000;;, + 170;3;-0.000000, 2.148945,-0.000000;;, + 171;3; 0.000000, 2.148945, 0.000000;;, + 172;3;-0.000000, 2.148945, 0.000000;;, + 173;3; 0.000000, 2.148945,-0.000000;;, + 174;3; 0.000000, 2.148945, 0.000000;;, + 175;3; 0.000000, 2.148945,-0.000000;;, + 176;3;-0.000000, 2.148945, 0.000000;;, + 177;3;-0.000000, 2.148945, 0.000000;;, + 178;3;-0.000000, 2.148945, 0.000000;;, + 179;3; 0.000000, 2.148945,-0.000000;;, + 180;3; 0.000000, 2.148945, 0.000000;;, + 181;3; 0.000000, 2.148945, 0.000000;;, + 182;3; 0.000000, 2.148945, 0.000000;;, + 183;3; 0.000000, 2.148945, 0.000000;;, + 184;3;-0.000000, 2.148945, 0.000000;;, + 185;3; 0.000000, 2.148945,-0.000000;;, + 186;3;-0.000000, 2.148945,-0.000000;;, + 187;3; 0.000000, 2.148945, 0.000000;;, + 188;3;-0.000000, 2.148945, 0.000000;;, + 189;3; 0.000000, 2.148945,-0.000000;;, + 190;3;-0.000000, 2.148945,-0.000000;;, + 191;3;-0.000000, 2.148945, 0.000000;;, + 192;3; 0.000000, 2.148945, 0.000000;;, + 193;3;-0.000000, 2.148945, 0.000000;;, + 194;3;-0.000001, 2.148945, 0.000000;;, + 195;3;-0.000000, 2.148945, 0.000000;;, + 196;3; 0.000000, 2.148945,-0.000000;;, + 197;3; 0.000000, 2.148945, 0.000000;;, + 198;3; 0.000000, 2.148945,-0.000000;;, + 199;3;-0.000000, 2.148945, 0.000000;;, + 200;3; 0.000000, 2.148945,-0.000000;;, + 201;3;-0.000000, 2.148945,-0.000000;;, + 202;3; 0.000000, 2.148945,-0.000000;;, + 203;3; 0.000000, 2.148945,-0.000000;;, + 204;3;-0.000000, 2.148945, 0.000000;;, + 205;3;-0.000000, 2.148945,-0.000000;;, + 206;3; 0.000000, 2.148945, 0.000000;;, + 207;3;-0.000000, 2.148945,-0.000000;;, + 208;3;-0.000000, 2.148945, 0.000000;;, + 209;3; 0.000000, 2.148945,-0.000000;;, + 210;3; 0.000000, 2.148945,-0.000000;;, + 211;3; 0.000000, 2.148945,-0.000000;;, + 212;3; 0.000000, 2.148945,-0.000000;;, + 213;3; 0.000000, 2.148945,-0.000000;;, + 214;3; 0.000000, 2.148945,-0.000000;;, + 215;3; 0.000000, 2.148945,-0.000000;;, + 216;3;-0.000000, 2.148945,-0.000000;;, + 217;3;-0.000000, 2.148945, 0.000000;;, + 218;3;-0.000000, 2.148945, 0.000000;;, + 219;3;-0.000000, 2.148945,-0.000000;;, + 220;3;-0.000000, 2.148945,-0.000000;;, + 221;3;-0.000000, 2.148945,-0.000000;;, + 222;3;-0.000000, 2.148945,-0.000000;;, + 223;3;-0.000000, 2.148945,-0.000000;;, + 224;3;-0.000000, 2.148945,-0.000000;;, + 225;3;-0.000000, 2.148945,-0.000000;;, + 226;3;-0.000000, 2.148945,-0.000000;;, + 227;3;-0.000000, 2.148945,-0.000000;;, + 228;3;-0.000000, 2.148945,-0.000000;;, + 229;3;-0.000000, 2.148945,-0.000000;;, + 230;3;-0.000000, 2.148945,-0.000000;;, + 231;3;-0.000000, 2.148945,-0.000000;;, + 232;3;-0.000000, 2.148945,-0.000000;;, + 233;3;-0.000000, 2.148945,-0.000000;;, + 234;3;-0.000000, 2.148945,-0.000000;;, + 235;3;-0.000000, 2.148945,-0.000000;;, + 236;3;-0.000000, 2.148945,-0.000000;;, + 237;3;-0.000000, 2.148945,-0.000000;;, + 238;3;-0.000000, 2.148945,-0.000000;;, + 239;3;-0.000000, 2.148945,-0.000000;;, + 240;3;-0.000000, 2.148945,-0.000000;;, + 241;3;-0.000000, 2.148945,-0.000000;;, + 242;3;-0.000000, 2.148945,-0.000000;;, + 243;3;-0.000000, 2.148945,-0.000000;;, + 244;3;-0.000000, 2.148945,-0.000000;;, + 245;3;-0.000000, 2.148945,-0.000000;;, + 246;3;-0.000000, 2.148945,-0.000000;;, + 247;3;-0.000000, 2.148945,-0.000000;;, + 248;3;-0.000000, 2.148945,-0.000000;;, + 249;3;-0.000000, 2.148945,-0.000000;;; + } + } + Animation { + {Armature_Bone_004} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 1;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 2;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 3;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 4;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 5;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 6;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 7;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 8;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 9;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 10;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 11;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 12;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 13;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 14;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 15;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 16;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 17;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 18;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 19;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 20;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 21;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 22;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 23;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 24;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 25;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 26;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 27;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 28;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 29;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 30;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 31;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 32;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 33;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 34;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 35;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 36;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 37;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 38;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 39;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 40;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 41;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 42;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 43;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 44;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 45;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 46;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 47;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 48;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 49;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 50;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 51;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 52;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 53;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 54;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 55;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 56;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 57;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 58;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 59;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 60;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 61;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 62;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 63;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 64;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 65;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 66;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 67;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 68;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 69;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 70;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 71;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 72;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 73;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 74;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 75;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 76;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 77;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 78;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 79;4;-0.623587,-0.166444,-0.316513,-0.695166;;, + 80;4;-0.351442,-0.619740,-0.576276,-0.400396;;, + 81;4;-0.367143,-0.603147,-0.569497,-0.409609;;, + 82;4;-0.394488,-0.568030,-0.555532,-0.434595;;, + 83;4;-0.426009,-0.525448,-0.539210,-0.465552;;, + 84;4;-0.458038,-0.480790,-0.522910,-0.497683;;, + 85;4;-0.488271,-0.437398,-0.508141,-0.527991;;, + 86;4;-0.514984,-0.397731,-0.496042,-0.554248;;, + 87;4;-0.536687,-0.363867,-0.487611,-0.574550;;, + 88;4;-0.551946,-0.337768,-0.483815,-0.587076;;, + 89;4;-0.559250,-0.321471,-0.485687,-0.589919;;, + 90;4;-0.562435,-0.310981,-0.490716,-0.586816;;, + 91;4;-0.566431,-0.300882,-0.495625,-0.582873;;, + 92;4;-0.571224,-0.291230,-0.500388,-0.578095;;, + 93;4;-0.576778,-0.282082,-0.504976,-0.572506;;, + 94;4;-0.583031,-0.273498,-0.509359,-0.566155;;, + 95;4;-0.589891,-0.265535,-0.513504,-0.559120;;, + 96;4;-0.597235,-0.258245,-0.517379,-0.551510;;, + 97;4;-0.604909,-0.251672,-0.520955,-0.543466;;, + 98;4;-0.612729,-0.245842,-0.524205,-0.535155;;, + 99;4;-0.620497,-0.240767,-0.527111,-0.526769;;, + 100;4;-0.628004,-0.236437,-0.529663,-0.518506;;, + 101;4;-0.635050,-0.232824,-0.531861,-0.510561;;, + 102;4;-0.641456,-0.229879,-0.533711,-0.503115;;, + 103;4;-0.647070,-0.227545,-0.535232,-0.496322;;, + 104;4;-0.651775,-0.225753,-0.536445,-0.490305;;, + 105;4;-0.655491,-0.224432,-0.537378,-0.485152;;, + 106;4;-0.658172,-0.223510,-0.538058,-0.480919;;, + 107;4;-0.659800,-0.222921,-0.538515,-0.477636;;, + 108;4;-0.660380,-0.222605,-0.538776,-0.475306;;, + 109;4;-0.659936,-0.222506,-0.538868,-0.473917;;, + 110;4;-0.657920,-0.223109,-0.539143,-0.472267;;, + 111;4;-0.653747,-0.224942,-0.539941,-0.469160;;, + 112;4;-0.647400,-0.228015,-0.541263,-0.464585;;, + 113;4;-0.638870,-0.232339,-0.543111,-0.458536;;, + 114;4;-0.628158,-0.237914,-0.545481,-0.451013;;, + 115;4;-0.615275,-0.244739,-0.548367,-0.442027;;, + 116;4;-0.600249,-0.252802,-0.551762,-0.431594;;, + 117;4;-0.583119,-0.262085,-0.555652,-0.419742;;, + 118;4;-0.563940,-0.272560,-0.560020,-0.406509;;, + 119;4;-0.542788,-0.284191,-0.564845,-0.391946;;, + 120;4;-0.519755,-0.296929,-0.570101,-0.376117;;, + 121;4;-0.494953,-0.310717,-0.575756,-0.359097;;, + 122;4;-0.468515,-0.325484,-0.581776,-0.340976;;, + 123;4;-0.440595,-0.341149,-0.588118,-0.321860;;, + 124;4;-0.411363,-0.357620,-0.594737,-0.301865;;, + 125;4;-0.381013,-0.374792,-0.601582,-0.281120;;, + 126;4;-0.349753,-0.392554,-0.608599,-0.259768;;, + 127;4;-0.317804,-0.410784,-0.615730,-0.237958;;, + 128;4;-0.285400,-0.429353,-0.622916,-0.215850;;, + 129;4;-0.252784,-0.448129,-0.630094,-0.193607;;, + 130;4;-0.220201,-0.466975,-0.637203,-0.171396;;, + 131;4;-0.187895,-0.485757,-0.644180,-0.149381;;, + 132;4;-0.156108,-0.504338,-0.650965,-0.127727;;, + 133;4;-0.125073,-0.522589,-0.657500,-0.106591;;, + 134;4;-0.095011,-0.540386,-0.663730,-0.086122;;, + 135;4;-0.066127,-0.557611,-0.669606,-0.066460;;, + 136;4;-0.038612,-0.574156,-0.675081,-0.047732;;, + 137;4;-0.012635,-0.589925,-0.680115,-0.030055;;, + 138;4; 0.011652,-0.604829,-0.684670,-0.013528;;, + 139;4; 0.034120,-0.618794,-0.688718, 0.001760;;, + 140;4; 0.054659,-0.631755,-0.692234, 0.015735;;, + 141;4; 0.073179,-0.643658,-0.695196, 0.028337;;, + 142;4; 0.089610,-0.654460,-0.697590, 0.039518;;, + 143;4; 0.103897,-0.664127,-0.699404, 0.049242;;, + 144;4; 0.116003,-0.672636,-0.700632, 0.057485;;, + 145;4; 0.125905,-0.679969,-0.701271, 0.064231;;, + 146;4; 0.133594,-0.686118,-0.701321, 0.069473;;, + 147;4; 0.139071,-0.691080,-0.700784, 0.073214;;, + 148;4; 0.142346,-0.694858,-0.699664, 0.075461;;, + 149;4; 0.143441,-0.697461,-0.697970, 0.076227;;, + 150;4; 0.140886,-0.698887,-0.695546, 0.073785;;, + 151;4; 0.133691,-0.699242,-0.692318, 0.066871;;, + 152;4; 0.122480,-0.698668,-0.688396, 0.056086;;, + 153;4; 0.107755,-0.697278,-0.683867, 0.041913;;, + 154;4; 0.089927,-0.695168,-0.678806, 0.024749;;, + 155;4; 0.069343,-0.692414,-0.673274, 0.004930;;, + 156;4; 0.046298,-0.689083,-0.667324,-0.017261;;, + 157;4; 0.021053,-0.685234,-0.661002,-0.041574;;, + 158;4;-0.006163,-0.680918,-0.654350,-0.067787;;, + 159;4;-0.035138,-0.676181,-0.647409,-0.095694;;, + 160;4;-0.065672,-0.671066,-0.640214,-0.125105;;, + 161;4;-0.097568,-0.665616,-0.632805,-0.155829;;, + 162;4;-0.130622,-0.659871,-0.625220,-0.187669;;, + 163;4;-0.164611,-0.653879,-0.617505,-0.220410;;, + 164;4;-0.199264,-0.647692,-0.609715,-0.253792;;, + 165;4;-0.234229,-0.641379,-0.601925,-0.287475;;, + 166;4;-0.268975,-0.635041,-0.594246,-0.320948;;, + 167;4;-0.302574,-0.628854,-0.586879,-0.353317;;, + 168;4;-0.332928,-0.623212,-0.580274,-0.382560;;, + 169;4;-0.351442,-0.619740,-0.576276,-0.400396;;, + 170;4;-0.351442,-0.619740,-0.576276,-0.400396;;, + 171;4;-0.373249,-0.600948,-0.570557,-0.402596;;, + 172;4;-0.418948,-0.561448,-0.558452,-0.407206;;, + 173;4;-0.473476,-0.514126,-0.543817,-0.412709;;, + 174;4;-0.529451,-0.465289,-0.528532,-0.418360;;, + 175;4;-0.582248,-0.418880,-0.513765,-0.423693;;, + 176;4;-0.628419,-0.377828,-0.500380,-0.428360;;, + 177;4;-0.665001,-0.344641,-0.489107,-0.432063;;, + 178;4;-0.689153,-0.321716,-0.480640,-0.434515;;, + 179;4;-0.697891,-0.311563,-0.475699,-0.435417;;, + 180;4;-0.694959,-0.310412,-0.471358,-0.438341;;, + 181;4;-0.686180,-0.312782,-0.464114,-0.447136;;, + 182;4;-0.671586,-0.318757,-0.453935,-0.461737;;, + 183;4;-0.651458,-0.328297,-0.440905,-0.481820;;, + 184;4;-0.626405,-0.341191,-0.425257,-0.506724;;, + 185;4;-0.597406,-0.357023,-0.407400,-0.535409;;, + 186;4;-0.565799,-0.375165,-0.387921,-0.566476;;, + 187;4;-0.533188,-0.394810,-0.367545,-0.598260;;, + 188;4;-0.501283,-0.415055,-0.347067,-0.629007;;, + 189;4;-0.471702,-0.434997,-0.327257,-0.657068;;, + 190;4;-0.445807,-0.453834,-0.308784,-0.681068;;, + 191;4;-0.424609,-0.470928,-0.292163,-0.700003;;, + 192;4;-0.408750,-0.485827,-0.277743,-0.713249;;, + 193;4;-0.398547,-0.498255,-0.265718,-0.720515;;, + 194;4;-0.394060,-0.508080,-0.256162,-0.721772;;, + 195;4;-0.392799,-0.517582,-0.250351,-0.718047;;, + 196;4;-0.392054,-0.528936,-0.249146,-0.710608;;, + 197;4;-0.391426,-0.541977,-0.252034,-0.699835;;, + 198;4;-0.390496,-0.556600,-0.258638,-0.685998;;, + 199;4;-0.388791,-0.572749,-0.268680,-0.669278;;, + 200;4;-0.385714,-0.590422,-0.281978,-0.649767;;, + 201;4;-0.380434,-0.609687,-0.298449,-0.627455;;, + 202;4;-0.371646,-0.630723,-0.318137,-0.602182;;, + 203;4;-0.356941,-0.653941,-0.341309,-0.573501;;, + 204;4;-0.330513,-0.680408,-0.368805,-0.540176;;, + 205;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 206;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 207;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 208;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 209;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 210;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 211;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 212;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 213;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 214;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 215;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 216;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 217;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 218;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 219;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 220;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 221;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 222;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 223;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 224;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 225;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 226;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 227;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 228;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 229;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 230;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 231;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 232;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 233;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 234;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 235;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 236;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 237;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 238;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 239;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 240;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 241;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 242;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 243;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 244;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 245;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 246;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 247;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 248;4;-0.252917,-0.712736,-0.426521,-0.496106;;, + 249;4;-0.252917,-0.712736,-0.426521,-0.496106;;; + } + AnimationKey { // Scale + 1; + 250; + 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, 0.999999;;, + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.000000, 0.903695,-0.000000;;, + 1;3;-0.000000, 0.903695,-0.000000;;, + 2;3;-0.000000, 0.903695,-0.000000;;, + 3;3;-0.000000, 0.903695,-0.000000;;, + 4;3;-0.000000, 0.903695,-0.000000;;, + 5;3;-0.000000, 0.903695,-0.000000;;, + 6;3;-0.000000, 0.903695,-0.000000;;, + 7;3;-0.000000, 0.903695,-0.000000;;, + 8;3;-0.000000, 0.903695,-0.000000;;, + 9;3;-0.000000, 0.903695,-0.000000;;, + 10;3;-0.000000, 0.903695,-0.000000;;, + 11;3;-0.000000, 0.903695,-0.000000;;, + 12;3;-0.000000, 0.903695,-0.000000;;, + 13;3;-0.000000, 0.903695,-0.000000;;, + 14;3;-0.000000, 0.903695,-0.000000;;, + 15;3;-0.000000, 0.903695,-0.000000;;, + 16;3;-0.000000, 0.903695,-0.000000;;, + 17;3;-0.000000, 0.903695,-0.000000;;, + 18;3;-0.000000, 0.903695,-0.000000;;, + 19;3;-0.000000, 0.903695,-0.000000;;, + 20;3;-0.000000, 0.903695,-0.000000;;, + 21;3;-0.000000, 0.903695,-0.000000;;, + 22;3;-0.000000, 0.903695,-0.000000;;, + 23;3;-0.000000, 0.903695,-0.000000;;, + 24;3;-0.000000, 0.903695,-0.000000;;, + 25;3;-0.000000, 0.903695,-0.000000;;, + 26;3;-0.000000, 0.903695,-0.000000;;, + 27;3;-0.000000, 0.903695,-0.000000;;, + 28;3;-0.000000, 0.903695,-0.000000;;, + 29;3;-0.000000, 0.903695,-0.000000;;, + 30;3;-0.000000, 0.903695,-0.000000;;, + 31;3;-0.000000, 0.903695,-0.000000;;, + 32;3;-0.000000, 0.903695,-0.000000;;, + 33;3;-0.000000, 0.903695,-0.000000;;, + 34;3;-0.000000, 0.903695,-0.000000;;, + 35;3;-0.000000, 0.903695,-0.000000;;, + 36;3;-0.000000, 0.903695,-0.000000;;, + 37;3;-0.000000, 0.903695,-0.000000;;, + 38;3;-0.000000, 0.903695,-0.000000;;, + 39;3;-0.000000, 0.903695,-0.000000;;, + 40;3;-0.000000, 0.903695,-0.000000;;, + 41;3;-0.000000, 0.903695,-0.000000;;, + 42;3;-0.000000, 0.903695,-0.000000;;, + 43;3;-0.000000, 0.903695,-0.000000;;, + 44;3;-0.000000, 0.903695,-0.000000;;, + 45;3;-0.000000, 0.903695,-0.000000;;, + 46;3;-0.000000, 0.903695,-0.000000;;, + 47;3;-0.000000, 0.903695,-0.000000;;, + 48;3;-0.000000, 0.903695,-0.000000;;, + 49;3;-0.000000, 0.903695,-0.000000;;, + 50;3;-0.000000, 0.903695,-0.000000;;, + 51;3;-0.000000, 0.903695,-0.000000;;, + 52;3;-0.000000, 0.903695,-0.000000;;, + 53;3;-0.000000, 0.903695,-0.000000;;, + 54;3;-0.000000, 0.903695,-0.000000;;, + 55;3;-0.000000, 0.903695,-0.000000;;, + 56;3;-0.000000, 0.903695,-0.000000;;, + 57;3;-0.000000, 0.903695,-0.000000;;, + 58;3;-0.000000, 0.903695,-0.000000;;, + 59;3;-0.000000, 0.903695,-0.000000;;, + 60;3;-0.000000, 0.903695,-0.000000;;, + 61;3;-0.000000, 0.903695,-0.000000;;, + 62;3;-0.000000, 0.903695,-0.000000;;, + 63;3;-0.000000, 0.903695,-0.000000;;, + 64;3;-0.000000, 0.903695,-0.000000;;, + 65;3;-0.000000, 0.903695,-0.000000;;, + 66;3;-0.000000, 0.903695,-0.000000;;, + 67;3;-0.000000, 0.903695,-0.000000;;, + 68;3;-0.000000, 0.903695,-0.000000;;, + 69;3;-0.000000, 0.903695,-0.000000;;, + 70;3;-0.000000, 0.903695,-0.000000;;, + 71;3;-0.000000, 0.903695,-0.000000;;, + 72;3;-0.000000, 0.903695,-0.000000;;, + 73;3;-0.000000, 0.903695,-0.000000;;, + 74;3;-0.000000, 0.903695,-0.000000;;, + 75;3;-0.000000, 0.903695,-0.000000;;, + 76;3;-0.000000, 0.903695,-0.000000;;, + 77;3;-0.000000, 0.903695,-0.000000;;, + 78;3;-0.000000, 0.903695,-0.000000;;, + 79;3;-0.000000, 0.903695,-0.000000;;, + 80;3; 0.000000, 0.903694, 0.000000;;, + 81;3; 0.000000, 0.903694, 0.000000;;, + 82;3; 0.000000, 0.903694, 0.000000;;, + 83;3; 0.000000, 0.903694, 0.000000;;, + 84;3; 0.000000, 0.903694, 0.000000;;, + 85;3; 0.000000, 0.903694, 0.000000;;, + 86;3; 0.000000, 0.903694, 0.000000;;, + 87;3; 0.000000, 0.903694, 0.000000;;, + 88;3; 0.000000, 0.903694, 0.000000;;, + 89;3; 0.000000, 0.903694, 0.000000;;, + 90;3; 0.000000, 0.903694, 0.000000;;, + 91;3; 0.000000, 0.903694, 0.000000;;, + 92;3; 0.000000, 0.903694, 0.000000;;, + 93;3; 0.000000, 0.903694, 0.000000;;, + 94;3; 0.000000, 0.903694, 0.000000;;, + 95;3; 0.000000, 0.903694, 0.000000;;, + 96;3; 0.000000, 0.903694, 0.000000;;, + 97;3; 0.000000, 0.903694, 0.000000;;, + 98;3; 0.000000, 0.903694, 0.000000;;, + 99;3; 0.000000, 0.903694, 0.000000;;, + 100;3; 0.000000, 0.903694, 0.000000;;, + 101;3; 0.000000, 0.903694, 0.000000;;, + 102;3; 0.000000, 0.903694, 0.000000;;, + 103;3; 0.000000, 0.903694, 0.000000;;, + 104;3; 0.000000, 0.903694, 0.000000;;, + 105;3; 0.000000, 0.903694, 0.000000;;, + 106;3; 0.000000, 0.903694, 0.000000;;, + 107;3; 0.000000, 0.903694, 0.000000;;, + 108;3; 0.000000, 0.903694, 0.000000;;, + 109;3; 0.000000, 0.903694, 0.000000;;, + 110;3; 0.000000, 0.903694, 0.000000;;, + 111;3; 0.000000, 0.903694, 0.000000;;, + 112;3; 0.000000, 0.903694, 0.000000;;, + 113;3; 0.000000, 0.903694, 0.000000;;, + 114;3; 0.000000, 0.903694, 0.000000;;, + 115;3; 0.000000, 0.903694, 0.000000;;, + 116;3; 0.000000, 0.903694, 0.000000;;, + 117;3; 0.000000, 0.903694, 0.000000;;, + 118;3; 0.000000, 0.903694, 0.000000;;, + 119;3; 0.000000, 0.903694, 0.000000;;, + 120;3; 0.000000, 0.903694, 0.000000;;, + 121;3; 0.000000, 0.903694, 0.000000;;, + 122;3; 0.000000, 0.903694, 0.000000;;, + 123;3; 0.000000, 0.903694, 0.000000;;, + 124;3; 0.000000, 0.903694, 0.000000;;, + 125;3; 0.000000, 0.903694, 0.000000;;, + 126;3; 0.000000, 0.903694, 0.000000;;, + 127;3; 0.000000, 0.903694, 0.000000;;, + 128;3; 0.000000, 0.903694, 0.000000;;, + 129;3; 0.000000, 0.903694, 0.000000;;, + 130;3; 0.000000, 0.903694, 0.000000;;, + 131;3; 0.000000, 0.903694, 0.000000;;, + 132;3; 0.000000, 0.903694, 0.000000;;, + 133;3; 0.000000, 0.903694, 0.000000;;, + 134;3; 0.000000, 0.903694, 0.000000;;, + 135;3; 0.000000, 0.903694, 0.000000;;, + 136;3; 0.000000, 0.903694, 0.000000;;, + 137;3; 0.000000, 0.903694, 0.000000;;, + 138;3; 0.000000, 0.903694, 0.000000;;, + 139;3; 0.000000, 0.903694, 0.000000;;, + 140;3; 0.000000, 0.903694, 0.000000;;, + 141;3; 0.000000, 0.903694, 0.000000;;, + 142;3; 0.000000, 0.903694, 0.000000;;, + 143;3; 0.000000, 0.903694, 0.000000;;, + 144;3; 0.000000, 0.903694, 0.000000;;, + 145;3; 0.000000, 0.903694, 0.000000;;, + 146;3; 0.000000, 0.903694, 0.000000;;, + 147;3; 0.000000, 0.903694, 0.000000;;, + 148;3; 0.000000, 0.903694, 0.000000;;, + 149;3; 0.000000, 0.903694, 0.000000;;, + 150;3; 0.000000, 0.903694, 0.000000;;, + 151;3; 0.000000, 0.903694, 0.000000;;, + 152;3; 0.000000, 0.903694, 0.000000;;, + 153;3; 0.000000, 0.903694, 0.000000;;, + 154;3; 0.000000, 0.903694, 0.000000;;, + 155;3; 0.000000, 0.903694, 0.000000;;, + 156;3; 0.000000, 0.903694, 0.000000;;, + 157;3; 0.000000, 0.903694, 0.000000;;, + 158;3; 0.000000, 0.903694, 0.000000;;, + 159;3; 0.000000, 0.903694, 0.000000;;, + 160;3; 0.000000, 0.903694, 0.000000;;, + 161;3; 0.000000, 0.903694, 0.000000;;, + 162;3; 0.000000, 0.903694, 0.000000;;, + 163;3; 0.000000, 0.903694, 0.000000;;, + 164;3; 0.000000, 0.903694, 0.000000;;, + 165;3; 0.000000, 0.903694, 0.000000;;, + 166;3; 0.000000, 0.903694, 0.000000;;, + 167;3; 0.000000, 0.903694, 0.000000;;, + 168;3; 0.000000, 0.903694, 0.000000;;, + 169;3; 0.000000, 0.903694, 0.000000;;, + 170;3;-0.000000, 0.903695,-0.000000;;, + 171;3;-0.000000, 0.903695,-0.000000;;, + 172;3;-0.000000, 0.903695,-0.000000;;, + 173;3;-0.000000, 0.903695,-0.000000;;, + 174;3;-0.000000, 0.903695,-0.000000;;, + 175;3;-0.000000, 0.903695,-0.000000;;, + 176;3;-0.000000, 0.903695,-0.000000;;, + 177;3;-0.000000, 0.903695,-0.000000;;, + 178;3;-0.000000, 0.903695,-0.000000;;, + 179;3;-0.000000, 0.903695,-0.000000;;, + 180;3;-0.000000, 0.903695,-0.000000;;, + 181;3;-0.000000, 0.903695,-0.000000;;, + 182;3;-0.000000, 0.903695,-0.000000;;, + 183;3;-0.000000, 0.903695,-0.000000;;, + 184;3;-0.000000, 0.903695,-0.000000;;, + 185;3;-0.000000, 0.903695,-0.000000;;, + 186;3;-0.000000, 0.903695,-0.000000;;, + 187;3;-0.000000, 0.903695,-0.000000;;, + 188;3;-0.000000, 0.903695,-0.000000;;, + 189;3;-0.000000, 0.903695,-0.000000;;, + 190;3;-0.000000, 0.903695,-0.000000;;, + 191;3;-0.000000, 0.903695,-0.000000;;, + 192;3;-0.000000, 0.903695,-0.000000;;, + 193;3;-0.000000, 0.903695,-0.000000;;, + 194;3;-0.000000, 0.903695,-0.000000;;, + 195;3;-0.000000, 0.903695,-0.000000;;, + 196;3;-0.000000, 0.903695,-0.000000;;, + 197;3;-0.000000, 0.903695,-0.000000;;, + 198;3;-0.000000, 0.903695,-0.000000;;, + 199;3;-0.000000, 0.903695,-0.000000;;, + 200;3;-0.000000, 0.903695,-0.000000;;, + 201;3;-0.000000, 0.903695,-0.000000;;, + 202;3;-0.000000, 0.903695,-0.000000;;, + 203;3;-0.000000, 0.903695,-0.000000;;, + 204;3;-0.000000, 0.903695,-0.000000;;, + 205;3; 0.000000, 0.903694, 0.000000;;, + 206;3; 0.000000, 0.903694,-0.000000;;, + 207;3; 0.000000, 0.903695,-0.000000;;, + 208;3;-0.000000, 0.903694,-0.000000;;, + 209;3;-0.000000, 0.903694, 0.000000;;, + 210;3;-0.000000, 0.903694, 0.000000;;, + 211;3;-0.000000, 0.903694, 0.000000;;, + 212;3;-0.000000, 0.903694, 0.000000;;, + 213;3;-0.000000, 0.903694, 0.000000;;, + 214;3;-0.000000, 0.903694, 0.000000;;, + 215;3;-0.000000, 0.903695, 0.000000;;, + 216;3;-0.000000, 0.903695, 0.000000;;, + 217;3;-0.000000, 0.903695, 0.000000;;, + 218;3;-0.000000, 0.903695, 0.000000;;, + 219;3;-0.000000, 0.903695, 0.000000;;, + 220;3;-0.000000, 0.903695, 0.000000;;, + 221;3;-0.000000, 0.903695, 0.000000;;, + 222;3;-0.000000, 0.903695, 0.000000;;, + 223;3;-0.000000, 0.903695, 0.000000;;, + 224;3;-0.000000, 0.903695, 0.000000;;, + 225;3;-0.000000, 0.903695, 0.000000;;, + 226;3;-0.000000, 0.903695, 0.000000;;, + 227;3;-0.000000, 0.903695, 0.000000;;, + 228;3;-0.000000, 0.903695, 0.000000;;, + 229;3;-0.000000, 0.903695, 0.000000;;, + 230;3;-0.000000, 0.903695, 0.000000;;, + 231;3;-0.000000, 0.903695, 0.000000;;, + 232;3;-0.000000, 0.903695, 0.000000;;, + 233;3;-0.000000, 0.903695, 0.000000;;, + 234;3;-0.000000, 0.903695, 0.000000;;, + 235;3;-0.000000, 0.903695, 0.000000;;, + 236;3;-0.000000, 0.903695, 0.000000;;, + 237;3;-0.000000, 0.903695, 0.000000;;, + 238;3;-0.000000, 0.903695, 0.000000;;, + 239;3;-0.000000, 0.903695, 0.000000;;, + 240;3;-0.000000, 0.903695, 0.000000;;, + 241;3;-0.000000, 0.903695, 0.000000;;, + 242;3;-0.000000, 0.903695, 0.000000;;, + 243;3;-0.000000, 0.903695, 0.000000;;, + 244;3;-0.000000, 0.903695, 0.000000;;, + 245;3;-0.000000, 0.903695, 0.000000;;, + 246;3;-0.000000, 0.903695, 0.000000;;, + 247;3;-0.000000, 0.903695, 0.000000;;, + 248;3;-0.000000, 0.903695, 0.000000;;, + 249;3;-0.000000, 0.903695, 0.000000;;; + } + } + Animation { + {Armature_Bone_005} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 1;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 2;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 3;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 4;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 5;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 6;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 7;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 8;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 9;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 10;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 11;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 12;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 13;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 14;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 15;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 16;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 17;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 18;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 19;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 20;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 21;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 22;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 23;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 24;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 25;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 26;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 27;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 28;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 29;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 30;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 31;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 32;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 33;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 34;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 35;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 36;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 37;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 38;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 39;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 40;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 41;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 42;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 43;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 44;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 45;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 46;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 47;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 48;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 49;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 50;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 51;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 52;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 53;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 54;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 55;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 56;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 57;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 58;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 59;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 60;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 61;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 62;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 63;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 64;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 65;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 66;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 67;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 68;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 69;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 70;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 71;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 72;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 73;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 74;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 75;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 76;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 77;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 78;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 79;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 80;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 81;4;-0.572973, 0.167848, 0.495666, 0.623252;;, + 82;4;-0.577965, 0.144585, 0.453419, 0.643781;;, + 83;4;-0.583922, 0.116825, 0.403007, 0.668277;;, + 84;4;-0.590038, 0.088327, 0.351254, 0.693425;;, + 85;4;-0.595807, 0.061444, 0.302433, 0.717148;;, + 86;4;-0.600852, 0.037931, 0.259734, 0.737897;;, + 87;4;-0.604851, 0.019296, 0.225892, 0.754342;;, + 88;4;-0.607493, 0.006984, 0.203534, 0.765206;;, + 89;4;-0.608452, 0.002515, 0.195417, 0.769150;;, + 90;4;-0.609036, 0.002258, 0.196223, 0.768327;;, + 91;4;-0.610794, 0.001492, 0.198670, 0.765833;;, + 92;4;-0.613725, 0.000236, 0.202786, 0.761653;;, + 93;4;-0.617798,-0.001476, 0.208567, 0.755807;;, + 94;4;-0.622950,-0.003595, 0.215972, 0.748354;;, + 95;4;-0.629079,-0.006047, 0.224911, 0.739407;;, + 96;4;-0.636039,-0.008741, 0.235237, 0.729138;;, + 97;4;-0.643641,-0.011561, 0.246746, 0.717779;;, + 98;4;-0.651655,-0.014379, 0.259177, 0.705618;;, + 99;4;-0.659824,-0.017053, 0.272225, 0.692988;;, + 100;4;-0.667874,-0.019441, 0.285556, 0.680249;;, + 101;4;-0.675535,-0.021407, 0.298826, 0.667762;;, + 102;4;-0.682559,-0.022834, 0.311710, 0.655868;;, + 103;4;-0.688729,-0.023623, 0.323912, 0.644869;;, + 104;4;-0.693874,-0.023706, 0.335188, 0.635013;;, + 105;4;-0.697868,-0.023034, 0.345343, 0.626491;;, + 106;4;-0.700629,-0.021587, 0.354239, 0.619432;;, + 107;4;-0.702115,-0.019361, 0.361787, 0.613918;;, + 108;4;-0.702314,-0.016369, 0.367938, 0.609983;;, + 109;4;-0.701241,-0.012634, 0.372679, 0.607629;;, + 110;4;-0.699418,-0.008413, 0.376777, 0.606119;;, + 111;4;-0.697351,-0.003943, 0.380996, 0.604733;;, + 112;4;-0.695039, 0.000776, 0.385330, 0.603473;;, + 113;4;-0.692482, 0.005738, 0.389777, 0.602341;;, + 114;4;-0.689682, 0.010938, 0.394330, 0.601341;;, + 115;4;-0.686644, 0.016370, 0.398984, 0.600473;;, + 116;4;-0.683373, 0.022023, 0.403731, 0.599739;;, + 117;4;-0.679876, 0.027888, 0.408562, 0.599138;;, + 118;4;-0.676163, 0.033949, 0.413466, 0.598671;;, + 119;4;-0.672244, 0.040190, 0.418432, 0.598337;;, + 120;4;-0.668135, 0.046594, 0.423446, 0.598134;;, + 121;4;-0.663850, 0.053137, 0.428493, 0.598058;;, + 122;4;-0.659409, 0.059795, 0.433557, 0.598106;;, + 123;4;-0.654832, 0.066543, 0.438621, 0.598273;;, + 124;4;-0.650143, 0.073351, 0.443666, 0.598552;;, + 125;4;-0.645368, 0.080187, 0.448672, 0.598936;;, + 126;4;-0.640532, 0.087019, 0.453619, 0.599417;;, + 127;4;-0.635666, 0.093812, 0.458486, 0.599986;;, + 128;4;-0.630799, 0.100532, 0.463252, 0.600632;;, + 129;4;-0.625960, 0.107143, 0.467897, 0.601344;;, + 130;4;-0.621181, 0.113611, 0.472401, 0.602112;;, + 131;4;-0.616492, 0.119902, 0.476744, 0.602923;;, + 132;4;-0.611921, 0.125984, 0.480910, 0.603764;;, + 133;4;-0.607497, 0.131825, 0.484880, 0.604625;;, + 134;4;-0.603245, 0.137399, 0.488642, 0.605494;;, + 135;4;-0.599190, 0.142680, 0.492182, 0.606358;;, + 136;4;-0.595353, 0.147647, 0.495490, 0.607208;;, + 137;4;-0.591752, 0.152280, 0.498557, 0.608032;;, + 138;4;-0.588405, 0.156563, 0.501377, 0.608823;;, + 139;4;-0.585325, 0.160485, 0.503945, 0.609571;;, + 140;4;-0.582524, 0.164036, 0.506258, 0.610269;;, + 141;4;-0.580009, 0.167208, 0.508314, 0.610910;;, + 142;4;-0.577788, 0.169999, 0.510115, 0.611488;;, + 143;4;-0.575865, 0.172406, 0.511662, 0.611998;;, + 144;4;-0.574241, 0.174431, 0.512957, 0.612437;;, + 145;4;-0.572918, 0.176075, 0.514005, 0.612800;;, + 146;4;-0.571894, 0.177343, 0.514810, 0.613085;;, + 147;4;-0.571167, 0.178241, 0.515378, 0.613291;;, + 148;4;-0.570734, 0.178773, 0.515714, 0.613415;;, + 149;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 150;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 151;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 152;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 153;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 154;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 155;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 156;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 157;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 158;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 159;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 160;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 161;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 162;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 163;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 164;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 165;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 166;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 167;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 168;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 169;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 170;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 171;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 172;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 173;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 174;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 175;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 176;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 177;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 178;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 179;4;-0.570591, 0.178949, 0.515825, 0.613456;;, + 180;4;-0.569161, 0.179925, 0.513918, 0.615279;;, + 181;4;-0.564836, 0.182874, 0.508155, 0.620789;;, + 182;4;-0.557641, 0.187780, 0.498565, 0.629957;;, + 183;4;-0.547724, 0.194543, 0.485348, 0.642593;;, + 184;4;-0.535399, 0.202948, 0.468921, 0.658297;;, + 185;4;-0.521164, 0.212655, 0.449948, 0.676436;;, + 186;4;-0.505695, 0.223205, 0.429330, 0.696147;;, + 187;4;-0.489798, 0.234045, 0.408143, 0.716402;;, + 188;4;-0.474329, 0.244595, 0.387525, 0.736114;;, + 189;4;-0.460093, 0.254302, 0.368552, 0.754252;;, + 190;4;-0.447769, 0.262707, 0.352126, 0.769956;;, + 191;4;-0.437852, 0.269470, 0.338909, 0.782592;;, + 192;4;-0.430657, 0.274377, 0.329318, 0.791760;;, + 193;4;-0.426332, 0.277325, 0.323555, 0.797270;;, + 194;4;-0.424902, 0.278301, 0.321648, 0.799093;;, + 195;4;-0.425079, 0.276985, 0.324017, 0.798257;;, + 196;4;-0.425567, 0.273362, 0.330541, 0.795954;;, + 197;4;-0.426309, 0.267855, 0.340455, 0.792455;;, + 198;4;-0.427254, 0.260839, 0.353085, 0.787996;;, + 199;4;-0.428355, 0.252671, 0.367790, 0.782806;;, + 200;4;-0.429560, 0.243726, 0.383894, 0.777121;;, + 201;4;-0.430810, 0.234450, 0.400594, 0.771226;;, + 202;4;-0.432020, 0.225466, 0.416769, 0.765517;;, + 203;4;-0.433048, 0.217839, 0.430499, 0.760670;;, + 204;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 205;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 206;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 207;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 208;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 209;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 210;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 211;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 212;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 213;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 214;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 215;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 216;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 217;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 218;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 219;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 220;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 221;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 222;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 223;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 224;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 225;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 226;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 227;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 228;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 229;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 230;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 231;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 232;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 233;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 234;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 235;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 236;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 237;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 238;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 239;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 240;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 241;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 242;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 243;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 244;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 245;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 246;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 247;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 248;4;-0.433558, 0.214052, 0.437317, 0.758263;;, + 249;4;-0.433558, 0.214052, 0.437317, 0.758263;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 2.153970,-0.000000;;, + 1;3; 0.000000, 2.153970,-0.000000;;, + 2;3; 0.000000, 2.153970,-0.000000;;, + 3;3; 0.000000, 2.153970,-0.000000;;, + 4;3; 0.000000, 2.153970,-0.000000;;, + 5;3; 0.000000, 2.153970,-0.000000;;, + 6;3; 0.000000, 2.153970,-0.000000;;, + 7;3; 0.000000, 2.153970,-0.000000;;, + 8;3; 0.000000, 2.153970,-0.000000;;, + 9;3; 0.000000, 2.153970,-0.000000;;, + 10;3; 0.000000, 2.153970,-0.000000;;, + 11;3; 0.000000, 2.153970,-0.000000;;, + 12;3; 0.000000, 2.153970,-0.000000;;, + 13;3; 0.000000, 2.153970,-0.000000;;, + 14;3; 0.000000, 2.153970,-0.000000;;, + 15;3; 0.000000, 2.153970,-0.000000;;, + 16;3; 0.000000, 2.153970,-0.000000;;, + 17;3; 0.000000, 2.153970,-0.000000;;, + 18;3; 0.000000, 2.153970,-0.000000;;, + 19;3; 0.000000, 2.153970,-0.000000;;, + 20;3; 0.000000, 2.153970,-0.000000;;, + 21;3; 0.000000, 2.153970,-0.000000;;, + 22;3; 0.000000, 2.153970,-0.000000;;, + 23;3; 0.000000, 2.153970,-0.000000;;, + 24;3; 0.000000, 2.153970,-0.000000;;, + 25;3; 0.000000, 2.153970,-0.000000;;, + 26;3; 0.000000, 2.153970,-0.000000;;, + 27;3; 0.000000, 2.153970,-0.000000;;, + 28;3; 0.000000, 2.153970,-0.000000;;, + 29;3; 0.000000, 2.153970,-0.000000;;, + 30;3; 0.000000, 2.153970,-0.000000;;, + 31;3; 0.000000, 2.153970,-0.000000;;, + 32;3; 0.000000, 2.153970,-0.000000;;, + 33;3; 0.000000, 2.153970,-0.000000;;, + 34;3; 0.000000, 2.153970,-0.000000;;, + 35;3; 0.000000, 2.153970,-0.000000;;, + 36;3; 0.000000, 2.153970,-0.000000;;, + 37;3; 0.000000, 2.153970,-0.000000;;, + 38;3; 0.000000, 2.153970,-0.000000;;, + 39;3; 0.000000, 2.153970,-0.000000;;, + 40;3; 0.000000, 2.153970,-0.000000;;, + 41;3; 0.000000, 2.153970,-0.000000;;, + 42;3; 0.000000, 2.153970,-0.000000;;, + 43;3; 0.000000, 2.153970,-0.000000;;, + 44;3; 0.000000, 2.153970,-0.000000;;, + 45;3; 0.000000, 2.153970,-0.000000;;, + 46;3; 0.000000, 2.153970,-0.000000;;, + 47;3; 0.000000, 2.153970,-0.000000;;, + 48;3; 0.000000, 2.153970,-0.000000;;, + 49;3; 0.000000, 2.153970,-0.000000;;, + 50;3; 0.000000, 2.153970,-0.000000;;, + 51;3; 0.000000, 2.153970,-0.000000;;, + 52;3; 0.000000, 2.153970,-0.000000;;, + 53;3; 0.000000, 2.153970,-0.000000;;, + 54;3; 0.000000, 2.153970,-0.000000;;, + 55;3; 0.000000, 2.153970,-0.000000;;, + 56;3; 0.000000, 2.153970,-0.000000;;, + 57;3; 0.000000, 2.153970,-0.000000;;, + 58;3; 0.000000, 2.153970,-0.000000;;, + 59;3; 0.000000, 2.153970,-0.000000;;, + 60;3; 0.000000, 2.153970,-0.000000;;, + 61;3; 0.000000, 2.153970,-0.000000;;, + 62;3; 0.000000, 2.153970,-0.000000;;, + 63;3; 0.000000, 2.153970,-0.000000;;, + 64;3; 0.000000, 2.153970,-0.000000;;, + 65;3; 0.000000, 2.153970,-0.000000;;, + 66;3; 0.000000, 2.153970,-0.000000;;, + 67;3; 0.000000, 2.153970,-0.000000;;, + 68;3; 0.000000, 2.153970,-0.000000;;, + 69;3; 0.000000, 2.153970,-0.000000;;, + 70;3; 0.000000, 2.153970,-0.000000;;, + 71;3; 0.000000, 2.153970,-0.000000;;, + 72;3; 0.000000, 2.153970,-0.000000;;, + 73;3; 0.000000, 2.153970,-0.000000;;, + 74;3; 0.000000, 2.153970,-0.000000;;, + 75;3; 0.000000, 2.153970,-0.000000;;, + 76;3; 0.000000, 2.153970,-0.000000;;, + 77;3; 0.000000, 2.153970,-0.000000;;, + 78;3; 0.000000, 2.153970,-0.000000;;, + 79;3; 0.000000, 2.153970,-0.000000;;, + 80;3;-0.000000, 2.153970, 0.000000;;, + 81;3; 0.000000, 2.153970,-0.000000;;, + 82;3; 0.000000, 2.153970,-0.000000;;, + 83;3; 0.000000, 2.153970,-0.000000;;, + 84;3; 0.000000, 2.153970, 0.000000;;, + 85;3;-0.000000, 2.153970,-0.000000;;, + 86;3; 0.000000, 2.153970, 0.000000;;, + 87;3; 0.000000, 2.153970, 0.000000;;, + 88;3;-0.000000, 2.153970, 0.000000;;, + 89;3;-0.000000, 2.153970, 0.000000;;, + 90;3;-0.000000, 2.153970, 0.000000;;, + 91;3; 0.000000, 2.153970, 0.000000;;, + 92;3;-0.000000, 2.153970,-0.000000;;, + 93;3; 0.000000, 2.153970,-0.000000;;, + 94;3; 0.000000, 2.153970,-0.000000;;, + 95;3;-0.000000, 2.153970, 0.000000;;, + 96;3; 0.000000, 2.153970, 0.000000;;, + 97;3;-0.000000, 2.153970, 0.000000;;, + 98;3; 0.000000, 2.153970, 0.000000;;, + 99;3; 0.000000, 2.153970, 0.000000;;, + 100;3; 0.000000, 2.153970,-0.000000;;, + 101;3;-0.000000, 2.153970,-0.000000;;, + 102;3; 0.000000, 2.153970,-0.000000;;, + 103;3;-0.000000, 2.153970, 0.000000;;, + 104;3;-0.000000, 2.153970,-0.000000;;, + 105;3; 0.000000, 2.153970,-0.000000;;, + 106;3; 0.000000, 2.153970,-0.000000;;, + 107;3;-0.000000, 2.153970,-0.000000;;, + 108;3; 0.000000, 2.153970, 0.000000;;, + 109;3; 0.000000, 2.153970, 0.000000;;, + 110;3; 0.000000, 2.153970,-0.000000;;, + 111;3;-0.000000, 2.153970, 0.000000;;, + 112;3; 0.000000, 2.153970,-0.000000;;, + 113;3;-0.000000, 2.153970,-0.000000;;, + 114;3; 0.000000, 2.153970,-0.000000;;, + 115;3;-0.000000, 2.153970,-0.000000;;, + 116;3; 0.000000, 2.153970,-0.000000;;, + 117;3;-0.000000, 2.153970,-0.000000;;, + 118;3;-0.000000, 2.153970,-0.000000;;, + 119;3;-0.000000, 2.153970,-0.000000;;, + 120;3;-0.000000, 2.153969,-0.000000;;, + 121;3; 0.000000, 2.153970,-0.000000;;, + 122;3; 0.000000, 2.153970,-0.000000;;, + 123;3;-0.000000, 2.153970,-0.000000;;, + 124;3; 0.000000, 2.153970, 0.000000;;, + 125;3;-0.000000, 2.153970, 0.000000;;, + 126;3; 0.000000, 2.153970, 0.000000;;, + 127;3; 0.000000, 2.153970, 0.000000;;, + 128;3; 0.000000, 2.153970, 0.000000;;, + 129;3;-0.000000, 2.153970, 0.000000;;, + 130;3; 0.000000, 2.153970, 0.000000;;, + 131;3;-0.000000, 2.153970, 0.000000;;, + 132;3;-0.000000, 2.153970, 0.000000;;, + 133;3;-0.000000, 2.153969, 0.000000;;, + 134;3; 0.000000, 2.153970, 0.000000;;, + 135;3; 0.000000, 2.153970,-0.000000;;, + 136;3;-0.000000, 2.153970, 0.000000;;, + 137;3;-0.000000, 2.153970, 0.000000;;, + 138;3; 0.000000, 2.153970, 0.000000;;, + 139;3;-0.000000, 2.153970,-0.000000;;, + 140;3; 0.000000, 2.153970, 0.000000;;, + 141;3;-0.000000, 2.153970,-0.000000;;, + 142;3; 0.000000, 2.153970, 0.000000;;, + 143;3;-0.000000, 2.153970, 0.000000;;, + 144;3; 0.000000, 2.153970,-0.000000;;, + 145;3; 0.000000, 2.153970,-0.000000;;, + 146;3; 0.000000, 2.153970,-0.000000;;, + 147;3; 0.000000, 2.153970,-0.000000;;, + 148;3; 0.000000, 2.153970, 0.000000;;, + 149;3; 0.000000, 2.153970,-0.000000;;, + 150;3; 0.000000, 2.153970, 0.000000;;, + 151;3;-0.000000, 2.153970, 0.000000;;, + 152;3; 0.000000, 2.153970, 0.000000;;, + 153;3; 0.000000, 2.153970,-0.000000;;, + 154;3;-0.000000, 2.153970,-0.000000;;, + 155;3;-0.000000, 2.153970,-0.000000;;, + 156;3;-0.000000, 2.153970, 0.000000;;, + 157;3;-0.000000, 2.153970, 0.000000;;, + 158;3; 0.000000, 2.153970, 0.000000;;, + 159;3; 0.000000, 2.153970, 0.000000;;, + 160;3;-0.000000, 2.153970,-0.000000;;, + 161;3; 0.000000, 2.153970, 0.000000;;, + 162;3; 0.000000, 2.153970, 0.000000;;, + 163;3; 0.000000, 2.153970,-0.000000;;, + 164;3; 0.000000, 2.153970,-0.000000;;, + 165;3; 0.000000, 2.153970, 0.000000;;, + 166;3; 0.000000, 2.153970, 0.000000;;, + 167;3;-0.000000, 2.153970,-0.000000;;, + 168;3;-0.000000, 2.153970,-0.000000;;, + 169;3;-0.000000, 2.153970, 0.000000;;, + 170;3;-0.000000, 2.153970, 0.000000;;, + 171;3;-0.000000, 2.153970, 0.000000;;, + 172;3;-0.000000, 2.153970,-0.000000;;, + 173;3;-0.000000, 2.153970, 0.000000;;, + 174;3;-0.000000, 2.153970,-0.000000;;, + 175;3; 0.000000, 2.153970,-0.000000;;, + 176;3; 0.000000, 2.153970, 0.000000;;, + 177;3; 0.000000, 2.153970, 0.000000;;, + 178;3; 0.000000, 2.153970,-0.000000;;, + 179;3; 0.000000, 2.153970, 0.000000;;, + 180;3; 0.000000, 2.153970, 0.000000;;, + 181;3; 0.000000, 2.153970,-0.000000;;, + 182;3; 0.000000, 2.153970, 0.000000;;, + 183;3; 0.000000, 2.153970,-0.000000;;, + 184;3; 0.000000, 2.153970, 0.000000;;, + 185;3;-0.000000, 2.153970, 0.000000;;, + 186;3; 0.000000, 2.153970, 0.000000;;, + 187;3;-0.000000, 2.153970, 0.000000;;, + 188;3; 0.000000, 2.153970, 0.000000;;, + 189;3; 0.000000, 2.153970, 0.000000;;, + 190;3;-0.000000, 2.153970, 0.000000;;, + 191;3;-0.000000, 2.153970, 0.000000;;, + 192;3;-0.000000, 2.153970, 0.000000;;, + 193;3; 0.000000, 2.153970, 0.000000;;, + 194;3; 0.000000, 2.153970, 0.000000;;, + 195;3;-0.000000, 2.153970,-0.000000;;, + 196;3;-0.000000, 2.153970, 0.000000;;, + 197;3;-0.000000, 2.153970,-0.000000;;, + 198;3;-0.000000, 2.153970, 0.000000;;, + 199;3;-0.000000, 2.153970,-0.000000;;, + 200;3;-0.000000, 2.153970,-0.000000;;, + 201;3;-0.000000, 2.153970,-0.000000;;, + 202;3;-0.000000, 2.153970,-0.000000;;, + 203;3; 0.000000, 2.153970, 0.000000;;, + 204;3; 0.000000, 2.153970,-0.000000;;, + 205;3; 0.000000, 2.153970, 0.000000;;, + 206;3; 0.000000, 2.153970, 0.000000;;, + 207;3; 0.000000, 2.153970, 0.000000;;, + 208;3; 0.000000, 2.153970, 0.000000;;, + 209;3;-0.000000, 2.153970, 0.000000;;, + 210;3;-0.000000, 2.153970, 0.000000;;, + 211;3;-0.000000, 2.153970, 0.000000;;, + 212;3;-0.000000, 2.153970, 0.000000;;, + 213;3;-0.000000, 2.153970, 0.000000;;, + 214;3;-0.000000, 2.153970, 0.000000;;, + 215;3; 0.000000, 2.153970, 0.000000;;, + 216;3;-0.000000, 2.153970, 0.000000;;, + 217;3;-0.000000, 2.153970, 0.000000;;, + 218;3; 0.000000, 2.153970, 0.000000;;, + 219;3; 0.000000, 2.153970, 0.000000;;, + 220;3; 0.000000, 2.153970, 0.000000;;, + 221;3; 0.000000, 2.153970, 0.000000;;, + 222;3; 0.000000, 2.153970, 0.000000;;, + 223;3; 0.000000, 2.153970, 0.000000;;, + 224;3; 0.000000, 2.153970, 0.000000;;, + 225;3; 0.000000, 2.153970, 0.000000;;, + 226;3; 0.000000, 2.153970, 0.000000;;, + 227;3; 0.000000, 2.153970, 0.000000;;, + 228;3; 0.000000, 2.153970, 0.000000;;, + 229;3; 0.000000, 2.153970, 0.000000;;, + 230;3; 0.000000, 2.153970, 0.000000;;, + 231;3; 0.000000, 2.153970, 0.000000;;, + 232;3; 0.000000, 2.153970, 0.000000;;, + 233;3; 0.000000, 2.153970, 0.000000;;, + 234;3; 0.000000, 2.153970, 0.000000;;, + 235;3; 0.000000, 2.153970, 0.000000;;, + 236;3; 0.000000, 2.153970, 0.000000;;, + 237;3; 0.000000, 2.153970, 0.000000;;, + 238;3; 0.000000, 2.153970, 0.000000;;, + 239;3; 0.000000, 2.153970, 0.000000;;, + 240;3; 0.000000, 2.153970, 0.000000;;, + 241;3; 0.000000, 2.153970, 0.000000;;, + 242;3; 0.000000, 2.153970, 0.000000;;, + 243;3; 0.000000, 2.153970, 0.000000;;, + 244;3; 0.000000, 2.153970, 0.000000;;, + 245;3; 0.000000, 2.153970, 0.000000;;, + 246;3; 0.000000, 2.153970, 0.000000;;, + 247;3; 0.000000, 2.153970, 0.000000;;, + 248;3; 0.000000, 2.153970, 0.000000;;, + 249;3; 0.000000, 2.153970, 0.000000;;; + } + } + Animation { + {Armature_Bone_006} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 1;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 2;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 3;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 4;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 5;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 6;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 7;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 8;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 9;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 10;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 11;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 12;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 13;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 14;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 15;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 16;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 17;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 18;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 19;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 20;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 21;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 22;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 23;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 24;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 25;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 26;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 27;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 28;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 29;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 30;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 31;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 32;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 33;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 34;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 35;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 36;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 37;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 38;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 39;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 40;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 41;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 42;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 43;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 44;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 45;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 46;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 47;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 48;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 49;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 50;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 51;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 52;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 53;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 54;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 55;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 56;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 57;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 58;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 59;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 60;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 61;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 62;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 63;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 64;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 65;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 66;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 67;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 68;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 69;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 70;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 71;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 72;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 73;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 74;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 75;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 76;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 77;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 78;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 79;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 80;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 81;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 82;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 83;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 84;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 85;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 86;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 87;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 88;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 89;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 90;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 91;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 92;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 93;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 94;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 95;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 96;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 97;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 98;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 99;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 100;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 101;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 102;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 103;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 104;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 105;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 106;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 107;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 108;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 109;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 110;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 111;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 112;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 113;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 114;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 115;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 116;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 117;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 118;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 119;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 120;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 121;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 122;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 123;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 124;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 125;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 126;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 127;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 128;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 129;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 130;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 131;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 132;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 133;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 134;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 135;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 136;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 137;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 138;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 139;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 140;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 141;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 142;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 143;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 144;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 145;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 146;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 147;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 148;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 149;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 150;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 151;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 152;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 153;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 154;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 155;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 156;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 157;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 158;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 159;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 160;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 161;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 162;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 163;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 164;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 165;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 166;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 167;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 168;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 169;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 170;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 171;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 172;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 173;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 174;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 175;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 176;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 177;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 178;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 179;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 180;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 181;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 182;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 183;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 184;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 185;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 186;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 187;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 188;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 189;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 190;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 191;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 192;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 193;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 194;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 195;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 196;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 197;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 198;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 199;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 200;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 201;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 202;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 203;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 204;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 205;4;-0.999515,-0.000120, 0.000322,-0.031146;;, + 206;4;-0.994415,-0.037299,-0.000921,-0.031000;;, + 207;4;-0.981076,-0.134549,-0.004171,-0.030618;;, + 208;4;-0.967737,-0.231800,-0.007421,-0.030236;;, + 209;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 210;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 211;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 212;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 213;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 214;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 215;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 216;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 217;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 218;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 219;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 220;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 221;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 222;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 223;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 224;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 225;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 226;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 227;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 228;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 229;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 230;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 231;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 232;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 233;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 234;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 235;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 236;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 237;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 238;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 239;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 240;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 241;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 242;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 243;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 244;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 245;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 246;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 247;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 248;4;-0.962637,-0.268979,-0.008664,-0.030090;;, + 249;4;-0.962637,-0.268979,-0.008664,-0.030090;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.000000, 0.903695,-0.000000;;, + 1;3;-0.000000, 0.903695,-0.000000;;, + 2;3;-0.000000, 0.903695,-0.000000;;, + 3;3;-0.000000, 0.903695,-0.000000;;, + 4;3;-0.000000, 0.903695,-0.000000;;, + 5;3;-0.000000, 0.903695,-0.000000;;, + 6;3;-0.000000, 0.903695,-0.000000;;, + 7;3;-0.000000, 0.903695,-0.000000;;, + 8;3;-0.000000, 0.903695,-0.000000;;, + 9;3;-0.000000, 0.903695,-0.000000;;, + 10;3;-0.000000, 0.903695,-0.000000;;, + 11;3;-0.000000, 0.903695,-0.000000;;, + 12;3;-0.000000, 0.903695,-0.000000;;, + 13;3;-0.000000, 0.903695,-0.000000;;, + 14;3;-0.000000, 0.903695,-0.000000;;, + 15;3;-0.000000, 0.903695,-0.000000;;, + 16;3;-0.000000, 0.903695,-0.000000;;, + 17;3;-0.000000, 0.903695,-0.000000;;, + 18;3;-0.000000, 0.903695,-0.000000;;, + 19;3;-0.000000, 0.903695,-0.000000;;, + 20;3;-0.000000, 0.903695,-0.000000;;, + 21;3;-0.000000, 0.903695,-0.000000;;, + 22;3;-0.000000, 0.903695,-0.000000;;, + 23;3;-0.000000, 0.903695,-0.000000;;, + 24;3;-0.000000, 0.903695,-0.000000;;, + 25;3;-0.000000, 0.903695,-0.000000;;, + 26;3;-0.000000, 0.903695,-0.000000;;, + 27;3;-0.000000, 0.903695,-0.000000;;, + 28;3;-0.000000, 0.903695,-0.000000;;, + 29;3;-0.000000, 0.903695,-0.000000;;, + 30;3;-0.000000, 0.903695,-0.000000;;, + 31;3;-0.000000, 0.903695,-0.000000;;, + 32;3;-0.000000, 0.903695,-0.000000;;, + 33;3;-0.000000, 0.903695,-0.000000;;, + 34;3;-0.000000, 0.903695,-0.000000;;, + 35;3;-0.000000, 0.903695,-0.000000;;, + 36;3;-0.000000, 0.903695,-0.000000;;, + 37;3;-0.000000, 0.903695,-0.000000;;, + 38;3;-0.000000, 0.903695,-0.000000;;, + 39;3;-0.000000, 0.903695,-0.000000;;, + 40;3;-0.000000, 0.903695,-0.000000;;, + 41;3;-0.000000, 0.903695,-0.000000;;, + 42;3;-0.000000, 0.903695,-0.000000;;, + 43;3;-0.000000, 0.903695,-0.000000;;, + 44;3;-0.000000, 0.903695,-0.000000;;, + 45;3;-0.000000, 0.903695,-0.000000;;, + 46;3;-0.000000, 0.903695,-0.000000;;, + 47;3;-0.000000, 0.903695,-0.000000;;, + 48;3;-0.000000, 0.903695,-0.000000;;, + 49;3;-0.000000, 0.903695,-0.000000;;, + 50;3;-0.000000, 0.903695,-0.000000;;, + 51;3;-0.000000, 0.903695,-0.000000;;, + 52;3;-0.000000, 0.903695,-0.000000;;, + 53;3;-0.000000, 0.903695,-0.000000;;, + 54;3;-0.000000, 0.903695,-0.000000;;, + 55;3;-0.000000, 0.903695,-0.000000;;, + 56;3;-0.000000, 0.903695,-0.000000;;, + 57;3;-0.000000, 0.903695,-0.000000;;, + 58;3;-0.000000, 0.903695,-0.000000;;, + 59;3;-0.000000, 0.903695,-0.000000;;, + 60;3;-0.000000, 0.903695,-0.000000;;, + 61;3;-0.000000, 0.903695,-0.000000;;, + 62;3;-0.000000, 0.903695,-0.000000;;, + 63;3;-0.000000, 0.903695,-0.000000;;, + 64;3;-0.000000, 0.903695,-0.000000;;, + 65;3;-0.000000, 0.903695,-0.000000;;, + 66;3;-0.000000, 0.903695,-0.000000;;, + 67;3;-0.000000, 0.903695,-0.000000;;, + 68;3;-0.000000, 0.903695,-0.000000;;, + 69;3;-0.000000, 0.903695,-0.000000;;, + 70;3;-0.000000, 0.903695,-0.000000;;, + 71;3;-0.000000, 0.903695,-0.000000;;, + 72;3;-0.000000, 0.903695,-0.000000;;, + 73;3;-0.000000, 0.903695,-0.000000;;, + 74;3;-0.000000, 0.903695,-0.000000;;, + 75;3;-0.000000, 0.903695,-0.000000;;, + 76;3;-0.000000, 0.903695,-0.000000;;, + 77;3;-0.000000, 0.903695,-0.000000;;, + 78;3;-0.000000, 0.903695,-0.000000;;, + 79;3;-0.000000, 0.903695,-0.000000;;, + 80;3; 0.000000, 0.903694, 0.000000;;, + 81;3; 0.000000, 0.903694, 0.000000;;, + 82;3; 0.000000, 0.903694, 0.000000;;, + 83;3; 0.000000, 0.903694, 0.000000;;, + 84;3; 0.000000, 0.903694, 0.000000;;, + 85;3; 0.000000, 0.903694, 0.000000;;, + 86;3; 0.000000, 0.903694, 0.000000;;, + 87;3; 0.000000, 0.903694, 0.000000;;, + 88;3; 0.000000, 0.903694, 0.000000;;, + 89;3; 0.000000, 0.903694, 0.000000;;, + 90;3; 0.000000, 0.903694, 0.000000;;, + 91;3; 0.000000, 0.903694, 0.000000;;, + 92;3; 0.000000, 0.903694, 0.000000;;, + 93;3; 0.000000, 0.903694, 0.000000;;, + 94;3; 0.000000, 0.903694, 0.000000;;, + 95;3; 0.000000, 0.903694, 0.000000;;, + 96;3; 0.000000, 0.903694, 0.000000;;, + 97;3; 0.000000, 0.903694, 0.000000;;, + 98;3; 0.000000, 0.903694, 0.000000;;, + 99;3; 0.000000, 0.903694, 0.000000;;, + 100;3; 0.000000, 0.903694, 0.000000;;, + 101;3; 0.000000, 0.903694, 0.000000;;, + 102;3; 0.000000, 0.903694, 0.000000;;, + 103;3; 0.000000, 0.903694, 0.000000;;, + 104;3; 0.000000, 0.903694, 0.000000;;, + 105;3; 0.000000, 0.903694, 0.000000;;, + 106;3; 0.000000, 0.903694, 0.000000;;, + 107;3; 0.000000, 0.903694, 0.000000;;, + 108;3; 0.000000, 0.903694, 0.000000;;, + 109;3; 0.000000, 0.903694, 0.000000;;, + 110;3; 0.000000, 0.903694, 0.000000;;, + 111;3; 0.000000, 0.903694, 0.000000;;, + 112;3; 0.000000, 0.903694, 0.000000;;, + 113;3; 0.000000, 0.903694, 0.000000;;, + 114;3; 0.000000, 0.903694, 0.000000;;, + 115;3; 0.000000, 0.903694, 0.000000;;, + 116;3; 0.000000, 0.903694, 0.000000;;, + 117;3; 0.000000, 0.903694, 0.000000;;, + 118;3; 0.000000, 0.903694, 0.000000;;, + 119;3; 0.000000, 0.903694, 0.000000;;, + 120;3; 0.000000, 0.903694, 0.000000;;, + 121;3; 0.000000, 0.903694, 0.000000;;, + 122;3; 0.000000, 0.903694, 0.000000;;, + 123;3; 0.000000, 0.903694, 0.000000;;, + 124;3; 0.000000, 0.903694, 0.000000;;, + 125;3; 0.000000, 0.903694, 0.000000;;, + 126;3; 0.000000, 0.903694, 0.000000;;, + 127;3; 0.000000, 0.903694, 0.000000;;, + 128;3; 0.000000, 0.903694, 0.000000;;, + 129;3; 0.000000, 0.903694, 0.000000;;, + 130;3; 0.000000, 0.903694, 0.000000;;, + 131;3; 0.000000, 0.903694, 0.000000;;, + 132;3; 0.000000, 0.903694, 0.000000;;, + 133;3; 0.000000, 0.903694, 0.000000;;, + 134;3; 0.000000, 0.903694, 0.000000;;, + 135;3; 0.000000, 0.903694, 0.000000;;, + 136;3; 0.000000, 0.903694, 0.000000;;, + 137;3; 0.000000, 0.903694, 0.000000;;, + 138;3; 0.000000, 0.903694, 0.000000;;, + 139;3; 0.000000, 0.903694, 0.000000;;, + 140;3; 0.000000, 0.903694, 0.000000;;, + 141;3; 0.000000, 0.903694, 0.000000;;, + 142;3; 0.000000, 0.903694, 0.000000;;, + 143;3; 0.000000, 0.903694, 0.000000;;, + 144;3; 0.000000, 0.903694, 0.000000;;, + 145;3; 0.000000, 0.903694, 0.000000;;, + 146;3; 0.000000, 0.903694, 0.000000;;, + 147;3; 0.000000, 0.903694, 0.000000;;, + 148;3; 0.000000, 0.903694, 0.000000;;, + 149;3; 0.000000, 0.903694, 0.000000;;, + 150;3; 0.000000, 0.903694, 0.000000;;, + 151;3; 0.000000, 0.903694, 0.000000;;, + 152;3; 0.000000, 0.903694, 0.000000;;, + 153;3; 0.000000, 0.903694, 0.000000;;, + 154;3; 0.000000, 0.903694, 0.000000;;, + 155;3; 0.000000, 0.903694, 0.000000;;, + 156;3; 0.000000, 0.903694, 0.000000;;, + 157;3; 0.000000, 0.903694, 0.000000;;, + 158;3; 0.000000, 0.903694, 0.000000;;, + 159;3; 0.000000, 0.903694, 0.000000;;, + 160;3; 0.000000, 0.903694, 0.000000;;, + 161;3; 0.000000, 0.903694, 0.000000;;, + 162;3; 0.000000, 0.903694, 0.000000;;, + 163;3; 0.000000, 0.903694, 0.000000;;, + 164;3; 0.000000, 0.903694, 0.000000;;, + 165;3; 0.000000, 0.903694, 0.000000;;, + 166;3; 0.000000, 0.903694, 0.000000;;, + 167;3; 0.000000, 0.903694, 0.000000;;, + 168;3; 0.000000, 0.903694, 0.000000;;, + 169;3; 0.000000, 0.903694, 0.000000;;, + 170;3;-0.000000, 0.903695,-0.000000;;, + 171;3;-0.000000, 0.903695,-0.000000;;, + 172;3;-0.000000, 0.903695,-0.000000;;, + 173;3;-0.000000, 0.903695,-0.000000;;, + 174;3;-0.000000, 0.903695,-0.000000;;, + 175;3;-0.000000, 0.903695,-0.000000;;, + 176;3;-0.000000, 0.903695,-0.000000;;, + 177;3;-0.000000, 0.903695,-0.000000;;, + 178;3;-0.000000, 0.903695,-0.000000;;, + 179;3;-0.000000, 0.903695,-0.000000;;, + 180;3;-0.000000, 0.903695,-0.000000;;, + 181;3;-0.000000, 0.903695,-0.000000;;, + 182;3;-0.000000, 0.903695,-0.000000;;, + 183;3;-0.000000, 0.903695,-0.000000;;, + 184;3;-0.000000, 0.903695,-0.000000;;, + 185;3;-0.000000, 0.903695,-0.000000;;, + 186;3;-0.000000, 0.903695,-0.000000;;, + 187;3;-0.000000, 0.903695,-0.000000;;, + 188;3;-0.000000, 0.903695,-0.000000;;, + 189;3;-0.000000, 0.903695,-0.000000;;, + 190;3;-0.000000, 0.903695,-0.000000;;, + 191;3;-0.000000, 0.903695,-0.000000;;, + 192;3;-0.000000, 0.903695,-0.000000;;, + 193;3;-0.000000, 0.903695,-0.000000;;, + 194;3;-0.000000, 0.903695,-0.000000;;, + 195;3;-0.000000, 0.903695,-0.000000;;, + 196;3;-0.000000, 0.903695,-0.000000;;, + 197;3;-0.000000, 0.903695,-0.000000;;, + 198;3;-0.000000, 0.903695,-0.000000;;, + 199;3;-0.000000, 0.903695,-0.000000;;, + 200;3;-0.000000, 0.903695,-0.000000;;, + 201;3;-0.000000, 0.903695,-0.000000;;, + 202;3;-0.000000, 0.903695,-0.000000;;, + 203;3;-0.000000, 0.903695,-0.000000;;, + 204;3;-0.000000, 0.903695,-0.000000;;, + 205;3; 0.000000, 0.903694, 0.000000;;, + 206;3; 0.000000, 0.903694,-0.000000;;, + 207;3; 0.000000, 0.903695,-0.000000;;, + 208;3;-0.000000, 0.903694,-0.000000;;, + 209;3;-0.000000, 0.903694, 0.000000;;, + 210;3;-0.000000, 0.903694, 0.000000;;, + 211;3;-0.000000, 0.903694, 0.000000;;, + 212;3;-0.000000, 0.903694, 0.000000;;, + 213;3;-0.000000, 0.903694, 0.000000;;, + 214;3;-0.000000, 0.903694, 0.000000;;, + 215;3;-0.000000, 0.903695, 0.000000;;, + 216;3;-0.000000, 0.903695, 0.000000;;, + 217;3;-0.000000, 0.903695, 0.000000;;, + 218;3;-0.000000, 0.903695, 0.000000;;, + 219;3;-0.000000, 0.903695, 0.000000;;, + 220;3;-0.000000, 0.903695, 0.000000;;, + 221;3;-0.000000, 0.903695, 0.000000;;, + 222;3;-0.000000, 0.903695, 0.000000;;, + 223;3;-0.000000, 0.903695, 0.000000;;, + 224;3;-0.000000, 0.903695, 0.000000;;, + 225;3;-0.000000, 0.903695, 0.000000;;, + 226;3;-0.000000, 0.903695, 0.000000;;, + 227;3;-0.000000, 0.903695, 0.000000;;, + 228;3;-0.000000, 0.903695, 0.000000;;, + 229;3;-0.000000, 0.903695, 0.000000;;, + 230;3;-0.000000, 0.903695, 0.000000;;, + 231;3;-0.000000, 0.903695, 0.000000;;, + 232;3;-0.000000, 0.903695, 0.000000;;, + 233;3;-0.000000, 0.903695, 0.000000;;, + 234;3;-0.000000, 0.903695, 0.000000;;, + 235;3;-0.000000, 0.903695, 0.000000;;, + 236;3;-0.000000, 0.903695, 0.000000;;, + 237;3;-0.000000, 0.903695, 0.000000;;, + 238;3;-0.000000, 0.903695, 0.000000;;, + 239;3;-0.000000, 0.903695, 0.000000;;, + 240;3;-0.000000, 0.903695, 0.000000;;, + 241;3;-0.000000, 0.903695, 0.000000;;, + 242;3;-0.000000, 0.903695, 0.000000;;, + 243;3;-0.000000, 0.903695, 0.000000;;, + 244;3;-0.000000, 0.903695, 0.000000;;, + 245;3;-0.000000, 0.903695, 0.000000;;, + 246;3;-0.000000, 0.903695, 0.000000;;, + 247;3;-0.000000, 0.903695, 0.000000;;, + 248;3;-0.000000, 0.903695, 0.000000;;, + 249;3;-0.000000, 0.903695, 0.000000;;; + } + } + Animation { + {Armature_Bone_007} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.999513, 0.000363,-0.000314, 0.031198;;, + 1;4;-0.999516, 0.000363,-0.000312, 0.030980;;, + 2;4;-0.999524, 0.000363,-0.000306, 0.030319;;, + 3;4;-0.999537, 0.000363,-0.000295, 0.029213;;, + 4;4;-0.999555, 0.000363,-0.000279, 0.027661;;, + 5;4;-0.999577, 0.000363,-0.000259, 0.025668;;, + 6;4;-0.999603, 0.000363,-0.000234, 0.023243;;, + 7;4;-0.999631, 0.000363,-0.000206, 0.020402;;, + 8;4;-0.999660, 0.000363,-0.000173, 0.017167;;, + 9;4;-0.999691, 0.000363,-0.000137, 0.013570;;, + 10;4;-0.999721, 0.000363,-0.000098, 0.009648;;, + 11;4;-0.999748, 0.000363,-0.000055, 0.005446;;, + 12;4;-0.999773, 0.000363,-0.000011, 0.001018;;, + 13;4;-0.999792, 0.000363, 0.000035,-0.003576;;, + 14;4;-0.999805, 0.000363, 0.000083,-0.008273;;, + 15;4;-0.999811, 0.000363, 0.000130,-0.013004;;, + 16;4;-0.999807, 0.000363, 0.000177,-0.017701;;, + 17;4;-0.999793, 0.000363, 0.000224,-0.022297;;, + 18;4;-0.999767, 0.000363, 0.000268,-0.026726;;, + 19;4;-0.999730, 0.000363, 0.000310,-0.030930;;, + 20;4;-0.999679, 0.000363, 0.000350,-0.034855;;, + 21;4;-0.999615, 0.000363, 0.000386,-0.038455;;, + 22;4;-0.999538, 0.000363, 0.000419,-0.041693;;, + 23;4;-0.999446, 0.000363, 0.000447,-0.044538;;, + 24;4;-0.999341, 0.000363, 0.000472,-0.046967;;, + 25;4;-0.999222, 0.000363, 0.000492,-0.048964;;, + 26;4;-0.999091, 0.000363, 0.000508,-0.050521;;, + 27;4;-0.998946, 0.000363, 0.000519,-0.051632;;, + 28;4;-0.998789, 0.000362, 0.000525,-0.052298;;, + 29;4;-0.998620, 0.000362, 0.000528,-0.052522;;, + 30;4;-0.998418, 0.000362, 0.000522,-0.051972;;, + 31;4;-0.998164, 0.000362, 0.000505,-0.050303;;, + 32;4;-0.997858, 0.000362, 0.000477,-0.047503;;, + 33;4;-0.997498, 0.000362, 0.000438,-0.043572;;, + 34;4;-0.997087, 0.000362, 0.000387,-0.038519;;, + 35;4;-0.996626, 0.000362, 0.000325,-0.032366;;, + 36;4;-0.996117, 0.000362, 0.000252,-0.025148;;, + 37;4;-0.995563, 0.000361, 0.000170,-0.016917;;, + 38;4;-0.994968, 0.000361, 0.000077,-0.007743;;, + 39;4;-0.994337, 0.000361,-0.000024, 0.002287;;, + 40;4;-0.993676, 0.000361,-0.000132, 0.013065;;, + 41;4;-0.992991, 0.000360,-0.000247, 0.024469;;, + 42;4;-0.992290, 0.000360,-0.000366, 0.036357;;, + 43;4;-0.991580, 0.000360,-0.000489, 0.048576;;, + 44;4;-0.990870, 0.000360,-0.000614, 0.060963;;, + 45;4;-0.990168, 0.000359,-0.000738, 0.073350;;, + 46;4;-0.989482, 0.000359,-0.000861, 0.085570;;, + 47;4;-0.988821, 0.000359,-0.000981, 0.097460;;, + 48;4;-0.988192, 0.000359,-0.001096, 0.108865;;, + 49;4;-0.987601, 0.000359,-0.001204, 0.119646;;, + 50;4;-0.987055, 0.000358,-0.001305, 0.129678;;, + 51;4;-0.986559, 0.000358,-0.001397, 0.138855;;, + 52;4;-0.986115, 0.000358,-0.001480, 0.147089;;, + 53;4;-0.985728, 0.000358,-0.001553, 0.154311;;, + 54;4;-0.985399, 0.000358,-0.001615, 0.160469;;, + 55;4;-0.985130, 0.000358,-0.001666, 0.165526;;, + 56;4;-0.984922, 0.000358,-0.001705, 0.169461;;, + 57;4;-0.984774, 0.000358,-0.001733, 0.172266;;, + 58;4;-0.984686, 0.000358,-0.001750, 0.173941;;, + 59;4;-0.984656, 0.000357,-0.001756, 0.174496;;, + 60;4;-0.984732, 0.000358,-0.001749, 0.173804;;, + 61;4;-0.984944, 0.000358,-0.001729, 0.171859;;, + 62;4;-0.985274, 0.000358,-0.001699, 0.168822;;, + 63;4;-0.985707, 0.000358,-0.001659, 0.164824;;, + 64;4;-0.986233, 0.000358,-0.001610, 0.159970;;, + 65;4;-0.986840, 0.000358,-0.001553, 0.154350;;, + 66;4;-0.987520, 0.000359,-0.001490, 0.148035;;, + 67;4;-0.988267, 0.000359,-0.001420, 0.141092;;, + 68;4;-0.989072, 0.000359,-0.001344, 0.133574;;, + 69;4;-0.989931, 0.000359,-0.001263, 0.125530;;, + 70;4;-0.990837, 0.000360,-0.001178, 0.117005;;, + 71;4;-0.991786, 0.000360,-0.001087, 0.108038;;, + 72;4;-0.992772, 0.000360,-0.000993, 0.098670;;, + 73;4;-0.993788, 0.000361,-0.000895, 0.088940;;, + 74;4;-0.994828, 0.000361,-0.000794, 0.078890;;, + 75;4;-0.995884, 0.000361,-0.000690, 0.068571;;, + 76;4;-0.996940, 0.000362,-0.000585, 0.058053;;, + 77;4;-0.997976, 0.000362,-0.000478, 0.047456;;, + 78;4;-0.998937, 0.000363,-0.000373, 0.037042;;, + 79;4;-0.999611, 0.000363,-0.000281, 0.027903;;, + 80;4;-0.999769, 0.000363,-0.000217, 0.021497;;, + 81;4;-0.999759, 0.000363,-0.000221, 0.021900;;, + 82;4;-0.999738, 0.000363,-0.000229, 0.022745;;, + 83;4;-0.999713, 0.000363,-0.000240, 0.023753;;, + 84;4;-0.999688, 0.000363,-0.000250, 0.024787;;, + 85;4;-0.999664, 0.000363,-0.000260, 0.025763;;, + 86;4;-0.999642, 0.000363,-0.000268, 0.026617;;, + 87;4;-0.999626, 0.000363,-0.000275, 0.027294;;, + 88;4;-0.999615, 0.000363,-0.000280, 0.027741;;, + 89;4;-0.999611, 0.000363,-0.000281, 0.027903;;, + 90;4;-0.999601, 0.000363,-0.000274, 0.027211;;, + 91;4;-0.999572, 0.000363,-0.000253, 0.025121;;, + 92;4;-0.999522, 0.000363,-0.000218, 0.021626;;, + 93;4;-0.999448, 0.000363,-0.000169, 0.016749;;, + 94;4;-0.999349, 0.000363,-0.000107, 0.010550;;, + 95;4;-0.999224, 0.000363,-0.000032, 0.003135;;, + 96;4;-0.999071, 0.000363, 0.000053,-0.005341;;, + 97;4;-0.998891, 0.000363, 0.000147,-0.014672;;, + 98;4;-0.998683, 0.000362, 0.000247,-0.024604;;, + 99;4;-0.998449, 0.000362, 0.000350,-0.034847;;, + 100;4;-0.998189, 0.000362, 0.000453,-0.045091;;, + 101;4;-0.997908, 0.000362, 0.000553,-0.055025;;, + 102;4;-0.997607, 0.000362, 0.000647,-0.064360;;, + 103;4;-0.997291, 0.000362, 0.000732,-0.072841;;, + 104;4;-0.996961, 0.000362, 0.000807,-0.080262;;, + 105;4;-0.996622, 0.000362, 0.000869,-0.086469;;, + 106;4;-0.996276, 0.000362, 0.000918,-0.091354;;, + 107;4;-0.995925, 0.000361, 0.000954,-0.094859;;, + 108;4;-0.995573, 0.000361, 0.000975,-0.096959;;, + 109;4;-0.995219, 0.000361, 0.000982,-0.097661;;, + 110;4;-0.994848, 0.000361, 0.000977,-0.097223;;, + 111;4;-0.994441, 0.000361, 0.000964,-0.095880;;, + 112;4;-0.993997, 0.000361, 0.000941,-0.093625;;, + 113;4;-0.993518, 0.000361, 0.000909,-0.090453;;, + 114;4;-0.993003, 0.000360, 0.000868,-0.086364;;, + 115;4;-0.992453, 0.000360, 0.000818,-0.081362;;, + 116;4;-0.991869, 0.000360, 0.000758,-0.075458;;, + 117;4;-0.991253, 0.000360, 0.000690,-0.068668;;, + 118;4;-0.990605, 0.000359, 0.000613,-0.061016;;, + 119;4;-0.989929, 0.000359, 0.000528,-0.052530;;, + 120;4;-0.989226, 0.000359, 0.000434,-0.043249;;, + 121;4;-0.988498, 0.000359, 0.000333,-0.033220;;, + 122;4;-0.987749, 0.000358, 0.000226,-0.022496;;, + 123;4;-0.986982, 0.000358, 0.000111,-0.011143;;, + 124;4;-0.986201, 0.000358,-0.000008, 0.000770;;, + 125;4;-0.985410, 0.000358,-0.000133, 0.013162;;, + 126;4;-0.984612, 0.000357,-0.000262, 0.025947;;, + 127;4;-0.983813, 0.000357,-0.000393, 0.039033;;, + 128;4;-0.983017, 0.000357,-0.000527, 0.052323;;, + 129;4;-0.982229, 0.000357,-0.000662, 0.065715;;, + 130;4;-0.981453, 0.000356,-0.000796, 0.079107;;, + 131;4;-0.980694, 0.000356,-0.000930, 0.092397;;, + 132;4;-0.979956, 0.000356,-0.001062, 0.105485;;, + 133;4;-0.979244, 0.000355,-0.001190, 0.118273;;, + 134;4;-0.978561, 0.000355,-0.001315, 0.130669;;, + 135;4;-0.977911, 0.000355,-0.001435, 0.142586;;, + 136;4;-0.977298, 0.000355,-0.001549, 0.153944;;, + 137;4;-0.976724, 0.000355,-0.001657, 0.164673;;, + 138;4;-0.976191, 0.000354,-0.001758, 0.174708;;, + 139;4;-0.975701, 0.000354,-0.001851, 0.183995;;, + 140;4;-0.975257, 0.000354,-0.001937, 0.192489;;, + 141;4;-0.974858, 0.000354,-0.002014, 0.200149;;, + 142;4;-0.974507, 0.000354,-0.002082, 0.206947;;, + 143;4;-0.974203, 0.000354,-0.002142, 0.212860;;, + 144;4;-0.973947, 0.000354,-0.002192, 0.217871;;, + 145;4;-0.973738, 0.000354,-0.002233, 0.221969;;, + 146;4;-0.973577, 0.000354,-0.002265, 0.225152;;, + 147;4;-0.973463, 0.000353,-0.002288, 0.227417;;, + 148;4;-0.973395, 0.000353,-0.002302, 0.228771;;, + 149;4;-0.973372, 0.000353,-0.002306, 0.229220;;, + 150;4;-0.973509, 0.000353,-0.002295, 0.228143;;, + 151;4;-0.973893, 0.000354,-0.002265, 0.225119;;, + 152;4;-0.974492, 0.000354,-0.002218, 0.220410;;, + 153;4;-0.975277, 0.000354,-0.002156, 0.214227;;, + 154;4;-0.976229, 0.000354,-0.002080, 0.206742;;, + 155;4;-0.977327, 0.000355,-0.001993, 0.198101;;, + 156;4;-0.978556, 0.000355,-0.001896, 0.188427;;, + 157;4;-0.979903, 0.000356,-0.001789, 0.177830;;, + 158;4;-0.981354, 0.000356,-0.001675, 0.166407;;, + 159;4;-0.982900, 0.000357,-0.001552, 0.154245;;, + 160;4;-0.984528, 0.000357,-0.001423, 0.141430;;, + 161;4;-0.986229, 0.000358,-0.001289, 0.128043;;, + 162;4;-0.987992, 0.000359,-0.001149, 0.114170;;, + 163;4;-0.989805, 0.000359,-0.001006, 0.099905;;, + 164;4;-0.991653, 0.000360,-0.000859, 0.085362;;, + 165;4;-0.993518, 0.000361,-0.000712, 0.070688;;, + 166;4;-0.995371, 0.000361,-0.000565, 0.056106;;, + 167;4;-0.997163, 0.000362,-0.000423, 0.042005;;, + 168;4;-0.998782, 0.000363,-0.000295, 0.029266;;, + 169;4;-0.999769, 0.000363,-0.000217, 0.021497;;, + 170;4;-0.999769, 0.000363,-0.000217, 0.021497;;, + 171;4;-0.994039, 0.000361,-0.000469, 0.046521;;, + 172;4;-0.982019, 0.000356,-0.000996, 0.098964;;, + 173;4;-0.967661, 0.000351,-0.001626, 0.161543;;, + 174;4;-0.952899, 0.000346,-0.002272, 0.225785;;, + 175;4;-0.938945, 0.000341,-0.002881, 0.286387;;, + 176;4;-0.926700, 0.000337,-0.003414, 0.339388;;, + 177;4;-0.916940, 0.000333,-0.003837, 0.381394;;, + 178;4;-0.910407, 0.000331,-0.004116, 0.409143;;, + 179;4;-0.907879, 0.000330,-0.004217, 0.419212;;, + 180;4;-0.907883, 0.000330,-0.004140, 0.411503;;, + 181;4;-0.908391, 0.000330,-0.003906, 0.388216;;, + 182;4;-0.909402, 0.000330,-0.003516, 0.349472;;, + 183;4;-0.910893, 0.000331,-0.002979, 0.296079;;, + 184;4;-0.912812, 0.000331,-0.002311, 0.229721;;, + 185;4;-0.915077, 0.000332,-0.001540, 0.153080;;, + 186;4;-0.917575, 0.000333,-0.000703, 0.069795;;, + 187;4;-0.920168, 0.000334, 0.000158,-0.015791;;, + 188;4;-0.922711, 0.000335, 0.000996,-0.099074;;, + 189;4;-0.925065, 0.000336, 0.001767,-0.175712;;, + 190;4;-0.927112, 0.000336, 0.002434,-0.242066;;, + 191;4;-0.928765, 0.000337, 0.002971,-0.295455;;, + 192;4;-0.929968, 0.000337, 0.003361,-0.334192;;, + 193;4;-0.930692, 0.000338, 0.003595,-0.357473;;, + 194;4;-0.930932, 0.000338, 0.003673,-0.365174;;, + 195;4;-0.932342, 0.000338, 0.003598,-0.357269;;, + 196;4;-0.936225, 0.000339, 0.003391,-0.335493;;, + 197;4;-0.942127, 0.000341, 0.003075,-0.302401;;, + 198;4;-0.949645, 0.000343, 0.002670,-0.260244;;, + 199;4;-0.958397, 0.000345, 0.002196,-0.211165;;, + 200;4;-0.967983, 0.000348, 0.001673,-0.157413;;, + 201;4;-0.977923, 0.000352, 0.001123,-0.101672;;, + 202;4;-0.987551, 0.000355, 0.000578,-0.047684;;, + 203;4;-0.995723, 0.000359, 0.000092,-0.001856;;, + 204;4;-0.999782, 0.000363,-0.000211, 0.020902;;, + 205;4;-0.999776,-0.003328,-0.000372, 0.020900;;, + 206;4;-0.998093, 0.016688, 0.008661, 0.019230;;, + 207;4;-0.993729, 0.069045, 0.032288, 0.014509;;, + 208;4;-0.989400, 0.121402, 0.055916, 0.008828;;, + 209;4;-0.987806, 0.141419, 0.064949, 0.004737;;, + 210;4;-0.988812, 0.127671, 0.064066, 0.001885;;, + 211;4;-0.991474, 0.088946, 0.061575,-0.000700;;, + 212;4;-0.994849, 0.039224, 0.058377,-0.002652;;, + 213;4;-0.997465, 0.000499, 0.055887,-0.003747;;, + 214;4;-0.998391,-0.013250, 0.055002,-0.004063;;, + 215;4;-0.997164, 0.002309, 0.055994,-0.003177;;, + 216;4;-0.993708, 0.046133, 0.058787,-0.000682;;, + 217;4;-0.989272, 0.102403, 0.062372, 0.002521;;, + 218;4;-0.985816, 0.146227, 0.065165, 0.005016;;, + 219;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 220;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 221;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 222;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 223;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 224;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 225;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 226;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 227;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 228;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 229;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 230;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 231;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 232;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 233;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 234;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 235;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 236;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 237;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 238;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 239;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 240;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 241;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 242;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 243;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 244;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 245;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 246;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 247;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 248;4;-0.984589, 0.161785, 0.066157, 0.005902;;, + 249;4;-0.984589, 0.161785, 0.066157, 0.005902;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3;-0.000000, 0.738094, 0.000000;;, + 1;3;-0.000000, 0.738094, 0.000000;;, + 2;3;-0.000000, 0.738094, 0.000000;;, + 3;3;-0.000000, 0.738094, 0.000000;;, + 4;3;-0.000000, 0.738094, 0.000000;;, + 5;3;-0.000000, 0.738094, 0.000000;;, + 6;3;-0.000000, 0.738094, 0.000000;;, + 7;3;-0.000000, 0.738094, 0.000000;;, + 8;3;-0.000000, 0.738094, 0.000000;;, + 9;3;-0.000000, 0.738094, 0.000000;;, + 10;3;-0.000000, 0.738094, 0.000000;;, + 11;3;-0.000000, 0.738094, 0.000000;;, + 12;3;-0.000000, 0.738094, 0.000000;;, + 13;3;-0.000000, 0.738094, 0.000000;;, + 14;3;-0.000000, 0.738094, 0.000000;;, + 15;3;-0.000000, 0.738094, 0.000000;;, + 16;3;-0.000000, 0.738094, 0.000000;;, + 17;3;-0.000000, 0.738094, 0.000000;;, + 18;3;-0.000000, 0.738094, 0.000000;;, + 19;3;-0.000000, 0.738094, 0.000000;;, + 20;3;-0.000000, 0.738094, 0.000000;;, + 21;3;-0.000000, 0.738094, 0.000000;;, + 22;3;-0.000000, 0.738094, 0.000000;;, + 23;3;-0.000000, 0.738094, 0.000000;;, + 24;3;-0.000000, 0.738094, 0.000000;;, + 25;3;-0.000000, 0.738094, 0.000000;;, + 26;3;-0.000000, 0.738094, 0.000000;;, + 27;3;-0.000000, 0.738094, 0.000000;;, + 28;3;-0.000000, 0.738094, 0.000000;;, + 29;3;-0.000000, 0.738094, 0.000000;;, + 30;3;-0.000000, 0.738094, 0.000000;;, + 31;3;-0.000000, 0.738094, 0.000000;;, + 32;3;-0.000000, 0.738094, 0.000000;;, + 33;3;-0.000000, 0.738094, 0.000000;;, + 34;3;-0.000000, 0.738094, 0.000000;;, + 35;3;-0.000000, 0.738094, 0.000000;;, + 36;3;-0.000000, 0.738094, 0.000000;;, + 37;3;-0.000000, 0.738094, 0.000000;;, + 38;3;-0.000000, 0.738094, 0.000000;;, + 39;3;-0.000000, 0.738094, 0.000000;;, + 40;3;-0.000000, 0.738094, 0.000000;;, + 41;3;-0.000000, 0.738094, 0.000000;;, + 42;3;-0.000000, 0.738094, 0.000000;;, + 43;3;-0.000000, 0.738094, 0.000000;;, + 44;3;-0.000000, 0.738094, 0.000000;;, + 45;3;-0.000000, 0.738094, 0.000000;;, + 46;3;-0.000000, 0.738094, 0.000000;;, + 47;3;-0.000000, 0.738094, 0.000000;;, + 48;3;-0.000000, 0.738094, 0.000000;;, + 49;3;-0.000000, 0.738094, 0.000000;;, + 50;3;-0.000000, 0.738094, 0.000000;;, + 51;3;-0.000000, 0.738094, 0.000000;;, + 52;3;-0.000000, 0.738094, 0.000000;;, + 53;3;-0.000000, 0.738094, 0.000000;;, + 54;3;-0.000000, 0.738094, 0.000000;;, + 55;3;-0.000000, 0.738094, 0.000000;;, + 56;3;-0.000000, 0.738094, 0.000000;;, + 57;3;-0.000000, 0.738094, 0.000000;;, + 58;3;-0.000000, 0.738094, 0.000000;;, + 59;3;-0.000000, 0.738094, 0.000000;;, + 60;3;-0.000000, 0.738094, 0.000000;;, + 61;3;-0.000000, 0.738094, 0.000000;;, + 62;3;-0.000000, 0.738094, 0.000000;;, + 63;3;-0.000000, 0.738094, 0.000000;;, + 64;3;-0.000000, 0.738094, 0.000000;;, + 65;3;-0.000000, 0.738094, 0.000000;;, + 66;3;-0.000000, 0.738094, 0.000000;;, + 67;3;-0.000000, 0.738094, 0.000000;;, + 68;3;-0.000000, 0.738094, 0.000000;;, + 69;3;-0.000000, 0.738094, 0.000000;;, + 70;3;-0.000000, 0.738094, 0.000000;;, + 71;3;-0.000000, 0.738094, 0.000000;;, + 72;3;-0.000000, 0.738094, 0.000000;;, + 73;3;-0.000000, 0.738094, 0.000000;;, + 74;3;-0.000000, 0.738094, 0.000000;;, + 75;3;-0.000000, 0.738094, 0.000000;;, + 76;3;-0.000000, 0.738094, 0.000000;;, + 77;3;-0.000000, 0.738094, 0.000000;;, + 78;3;-0.000000, 0.738094, 0.000000;;, + 79;3;-0.000000, 0.738094, 0.000000;;, + 80;3;-0.000000, 0.738094,-0.000000;;, + 81;3;-0.000000, 0.738094,-0.000000;;, + 82;3;-0.000000, 0.738094,-0.000000;;, + 83;3;-0.000000, 0.738094,-0.000000;;, + 84;3;-0.000000, 0.738094,-0.000000;;, + 85;3;-0.000000, 0.738094,-0.000000;;, + 86;3;-0.000000, 0.738094,-0.000000;;, + 87;3;-0.000000, 0.738094,-0.000000;;, + 88;3;-0.000000, 0.738094,-0.000000;;, + 89;3;-0.000000, 0.738094,-0.000000;;, + 90;3;-0.000000, 0.738094,-0.000000;;, + 91;3;-0.000000, 0.738094,-0.000000;;, + 92;3;-0.000000, 0.738094,-0.000000;;, + 93;3;-0.000000, 0.738094,-0.000000;;, + 94;3;-0.000000, 0.738094,-0.000000;;, + 95;3;-0.000000, 0.738094,-0.000000;;, + 96;3;-0.000000, 0.738094,-0.000000;;, + 97;3;-0.000000, 0.738094,-0.000000;;, + 98;3;-0.000000, 0.738094,-0.000000;;, + 99;3;-0.000000, 0.738094,-0.000000;;, + 100;3;-0.000000, 0.738094,-0.000000;;, + 101;3;-0.000000, 0.738094,-0.000000;;, + 102;3;-0.000000, 0.738094,-0.000000;;, + 103;3;-0.000000, 0.738094,-0.000000;;, + 104;3;-0.000000, 0.738094,-0.000000;;, + 105;3;-0.000000, 0.738094,-0.000000;;, + 106;3;-0.000000, 0.738094,-0.000000;;, + 107;3;-0.000000, 0.738094,-0.000000;;, + 108;3;-0.000000, 0.738094,-0.000000;;, + 109;3;-0.000000, 0.738094,-0.000000;;, + 110;3;-0.000000, 0.738094,-0.000000;;, + 111;3;-0.000000, 0.738094,-0.000000;;, + 112;3;-0.000000, 0.738094,-0.000000;;, + 113;3;-0.000000, 0.738094,-0.000000;;, + 114;3;-0.000000, 0.738094,-0.000000;;, + 115;3;-0.000000, 0.738094,-0.000000;;, + 116;3;-0.000000, 0.738094,-0.000000;;, + 117;3;-0.000000, 0.738094,-0.000000;;, + 118;3;-0.000000, 0.738094,-0.000000;;, + 119;3;-0.000000, 0.738094,-0.000000;;, + 120;3;-0.000000, 0.738094,-0.000000;;, + 121;3;-0.000000, 0.738094,-0.000000;;, + 122;3;-0.000000, 0.738094,-0.000000;;, + 123;3;-0.000000, 0.738094,-0.000000;;, + 124;3;-0.000000, 0.738094,-0.000000;;, + 125;3;-0.000000, 0.738094,-0.000000;;, + 126;3;-0.000000, 0.738094,-0.000000;;, + 127;3;-0.000000, 0.738094,-0.000000;;, + 128;3;-0.000000, 0.738094,-0.000000;;, + 129;3;-0.000000, 0.738094,-0.000000;;, + 130;3;-0.000000, 0.738094,-0.000000;;, + 131;3;-0.000000, 0.738094,-0.000000;;, + 132;3;-0.000000, 0.738094,-0.000000;;, + 133;3;-0.000000, 0.738094,-0.000000;;, + 134;3;-0.000000, 0.738094,-0.000000;;, + 135;3;-0.000000, 0.738094,-0.000000;;, + 136;3;-0.000000, 0.738094,-0.000000;;, + 137;3;-0.000000, 0.738094,-0.000000;;, + 138;3;-0.000000, 0.738094,-0.000000;;, + 139;3;-0.000000, 0.738094,-0.000000;;, + 140;3;-0.000000, 0.738094,-0.000000;;, + 141;3;-0.000000, 0.738094,-0.000000;;, + 142;3;-0.000000, 0.738094,-0.000000;;, + 143;3;-0.000000, 0.738094,-0.000000;;, + 144;3;-0.000000, 0.738094,-0.000000;;, + 145;3;-0.000000, 0.738094,-0.000000;;, + 146;3;-0.000000, 0.738094,-0.000000;;, + 147;3;-0.000000, 0.738094,-0.000000;;, + 148;3;-0.000000, 0.738094,-0.000000;;, + 149;3;-0.000000, 0.738094,-0.000000;;, + 150;3;-0.000000, 0.738094,-0.000000;;, + 151;3;-0.000000, 0.738094,-0.000000;;, + 152;3;-0.000000, 0.738094,-0.000000;;, + 153;3;-0.000000, 0.738094,-0.000000;;, + 154;3;-0.000000, 0.738094,-0.000000;;, + 155;3;-0.000000, 0.738094,-0.000000;;, + 156;3;-0.000000, 0.738094,-0.000000;;, + 157;3;-0.000000, 0.738094,-0.000000;;, + 158;3;-0.000000, 0.738094,-0.000000;;, + 159;3;-0.000000, 0.738094,-0.000000;;, + 160;3;-0.000000, 0.738094,-0.000000;;, + 161;3;-0.000000, 0.738094,-0.000000;;, + 162;3;-0.000000, 0.738094,-0.000000;;, + 163;3;-0.000000, 0.738094,-0.000000;;, + 164;3;-0.000000, 0.738094,-0.000000;;, + 165;3;-0.000000, 0.738094,-0.000000;;, + 166;3;-0.000000, 0.738094,-0.000000;;, + 167;3;-0.000000, 0.738094,-0.000000;;, + 168;3;-0.000000, 0.738094,-0.000000;;, + 169;3;-0.000000, 0.738094,-0.000000;;, + 170;3;-0.000000, 0.738094, 0.000000;;, + 171;3;-0.000000, 0.738094, 0.000000;;, + 172;3;-0.000000, 0.738094, 0.000000;;, + 173;3;-0.000000, 0.738094, 0.000000;;, + 174;3;-0.000000, 0.738094, 0.000000;;, + 175;3;-0.000000, 0.738094, 0.000000;;, + 176;3;-0.000000, 0.738094, 0.000000;;, + 177;3;-0.000000, 0.738094, 0.000000;;, + 178;3;-0.000000, 0.738094, 0.000000;;, + 179;3;-0.000000, 0.738094, 0.000000;;, + 180;3;-0.000000, 0.738094, 0.000000;;, + 181;3;-0.000000, 0.738094, 0.000000;;, + 182;3;-0.000000, 0.738094, 0.000000;;, + 183;3;-0.000000, 0.738094, 0.000000;;, + 184;3;-0.000000, 0.738094, 0.000000;;, + 185;3;-0.000000, 0.738094, 0.000000;;, + 186;3;-0.000000, 0.738094, 0.000000;;, + 187;3;-0.000000, 0.738094, 0.000000;;, + 188;3;-0.000000, 0.738094, 0.000000;;, + 189;3;-0.000000, 0.738094, 0.000000;;, + 190;3;-0.000000, 0.738094, 0.000000;;, + 191;3;-0.000000, 0.738094, 0.000000;;, + 192;3;-0.000000, 0.738094, 0.000000;;, + 193;3;-0.000000, 0.738094, 0.000000;;, + 194;3;-0.000000, 0.738094, 0.000000;;, + 195;3;-0.000000, 0.738094, 0.000000;;, + 196;3;-0.000000, 0.738094, 0.000000;;, + 197;3;-0.000000, 0.738094, 0.000000;;, + 198;3;-0.000000, 0.738094, 0.000000;;, + 199;3;-0.000000, 0.738094, 0.000000;;, + 200;3;-0.000000, 0.738094, 0.000000;;, + 201;3;-0.000000, 0.738094, 0.000000;;, + 202;3;-0.000000, 0.738094, 0.000000;;, + 203;3;-0.000000, 0.738094, 0.000000;;, + 204;3;-0.000000, 0.738094, 0.000000;;, + 205;3;-0.000000, 0.738094,-0.000000;;, + 206;3;-0.000000, 0.738094, 0.000000;;, + 207;3;-0.000000, 0.738094, 0.000000;;, + 208;3; 0.000000, 0.738093, 0.000000;;, + 209;3; 0.000000, 0.738093,-0.000000;;, + 210;3; 0.000000, 0.738093,-0.000000;;, + 211;3; 0.000000, 0.738093,-0.000000;;, + 212;3; 0.000000, 0.738093,-0.000000;;, + 213;3; 0.000000, 0.738093,-0.000000;;, + 214;3; 0.000000, 0.738093,-0.000000;;, + 215;3; 0.000000, 0.738094, 0.000000;;, + 216;3; 0.000000, 0.738093,-0.000000;;, + 217;3; 0.000000, 0.738093, 0.000000;;, + 218;3; 0.000000, 0.738094,-0.000000;;, + 219;3;-0.000000, 0.738094,-0.000000;;, + 220;3;-0.000000, 0.738094,-0.000000;;, + 221;3;-0.000000, 0.738094,-0.000000;;, + 222;3;-0.000000, 0.738094,-0.000000;;, + 223;3;-0.000000, 0.738094,-0.000000;;, + 224;3;-0.000000, 0.738094,-0.000000;;, + 225;3;-0.000000, 0.738094,-0.000000;;, + 226;3;-0.000000, 0.738094,-0.000000;;, + 227;3;-0.000000, 0.738094,-0.000000;;, + 228;3;-0.000000, 0.738094,-0.000000;;, + 229;3;-0.000000, 0.738094,-0.000000;;, + 230;3;-0.000000, 0.738094,-0.000000;;, + 231;3;-0.000000, 0.738094,-0.000000;;, + 232;3;-0.000000, 0.738094,-0.000000;;, + 233;3;-0.000000, 0.738094,-0.000000;;, + 234;3;-0.000000, 0.738094,-0.000000;;, + 235;3;-0.000000, 0.738094,-0.000000;;, + 236;3;-0.000000, 0.738094,-0.000000;;, + 237;3;-0.000000, 0.738094,-0.000000;;, + 238;3;-0.000000, 0.738094,-0.000000;;, + 239;3;-0.000000, 0.738094,-0.000000;;, + 240;3;-0.000000, 0.738094,-0.000000;;, + 241;3;-0.000000, 0.738094,-0.000000;;, + 242;3;-0.000000, 0.738094,-0.000000;;, + 243;3;-0.000000, 0.738094,-0.000000;;, + 244;3;-0.000000, 0.738094,-0.000000;;, + 245;3;-0.000000, 0.738094,-0.000000;;, + 246;3;-0.000000, 0.738094,-0.000000;;, + 247;3;-0.000000, 0.738094,-0.000000;;, + 248;3;-0.000000, 0.738094,-0.000000;;, + 249;3;-0.000000, 0.738094,-0.000000;;; + } + } + Animation { + {Armature_Bone_008} + AnimationKey { // Rotation + 0; + 250; + 0;4;-0.999998, 0.000124,-0.000016, 0.001761;;, + 1;4;-0.999977, 0.000124,-0.000013, 0.001420;;, + 2;4;-0.999911, 0.000124,-0.000003, 0.000390;;, + 3;4;-0.999801, 0.000124, 0.000014,-0.001335;;, + 4;4;-0.999647, 0.000124, 0.000037,-0.003756;;, + 5;4;-0.999448, 0.000124, 0.000067,-0.006865;;, + 6;4;-0.999207, 0.000124, 0.000103,-0.010647;;, + 7;4;-0.998925, 0.000124, 0.000145,-0.015078;;, + 8;4;-0.998603, 0.000124, 0.000194,-0.020122;;, + 9;4;-0.998246, 0.000124, 0.000247,-0.025733;;, + 10;4;-0.997856, 0.000123, 0.000306,-0.031850;;, + 11;4;-0.997438, 0.000123, 0.000369,-0.038402;;, + 12;4;-0.996998, 0.000123, 0.000435,-0.045307;;, + 13;4;-0.996541, 0.000123, 0.000503,-0.052471;;, + 14;4;-0.996074, 0.000123, 0.000573,-0.059795;;, + 15;4;-0.995604, 0.000123, 0.000644,-0.067172;;, + 16;4;-0.995137, 0.000123, 0.000714,-0.074495;;, + 17;4;-0.994680, 0.000123, 0.000783,-0.081659;;, + 18;4;-0.994240, 0.000123, 0.000849,-0.088564;;, + 19;4;-0.993822, 0.000123, 0.000911,-0.095116;;, + 20;4;-0.993432, 0.000123, 0.000970,-0.101233;;, + 21;4;-0.993074, 0.000123, 0.001024,-0.106844;;, + 22;4;-0.992753, 0.000123, 0.001072,-0.111888;;, + 23;4;-0.992470, 0.000123, 0.001114,-0.116319;;, + 24;4;-0.992229, 0.000123, 0.001151,-0.120101;;, + 25;4;-0.992031, 0.000123, 0.001180,-0.123210;;, + 26;4;-0.991877, 0.000123, 0.001204,-0.125631;;, + 27;4;-0.991767, 0.000123, 0.001220,-0.127356;;, + 28;4;-0.991701, 0.000123, 0.001230,-0.128386;;, + 29;4;-0.991679, 0.000123, 0.001233,-0.128727;;, + 30;4;-0.991686, 0.000123, 0.001228,-0.128206;;, + 31;4;-0.991706, 0.000123, 0.001213,-0.126631;;, + 32;4;-0.991741, 0.000123, 0.001188,-0.123993;;, + 33;4;-0.991790, 0.000123, 0.001152,-0.120292;;, + 34;4;-0.991854, 0.000123, 0.001107,-0.115535;;, + 35;4;-0.991933, 0.000123, 0.001051,-0.109744;;, + 36;4;-0.992027, 0.000123, 0.000986,-0.102952;;, + 37;4;-0.992136, 0.000123, 0.000912,-0.095208;;, + 38;4;-0.992260, 0.000123, 0.000830,-0.086577;;, + 39;4;-0.992399, 0.000123, 0.000739,-0.077141;;, + 40;4;-0.992552, 0.000123, 0.000642,-0.067002;;, + 41;4;-0.992718, 0.000123, 0.000540,-0.056275;;, + 42;4;-0.992897, 0.000123, 0.000433,-0.045092;;, + 43;4;-0.993086, 0.000123, 0.000323,-0.033599;;, + 44;4;-0.993285, 0.000123, 0.000211,-0.021947;;, + 45;4;-0.993491, 0.000123, 0.000100,-0.010296;;, + 46;4;-0.993704, 0.000123,-0.000010, 0.001198;;, + 47;4;-0.993922, 0.000123,-0.000118, 0.012381;;, + 48;4;-0.994143, 0.000123,-0.000220, 0.023108;;, + 49;4;-0.994365, 0.000123,-0.000317, 0.033247;;, + 50;4;-0.994587, 0.000123,-0.000408, 0.042683;;, + 51;4;-0.994808, 0.000123,-0.000490, 0.051314;;, + 52;4;-0.995025, 0.000123,-0.000564, 0.059059;;, + 53;4;-0.995239, 0.000123,-0.000629, 0.065851;;, + 54;4;-0.995447, 0.000123,-0.000685, 0.071643;;, + 55;4;-0.995650, 0.000123,-0.000730, 0.076399;;, + 56;4;-0.995847, 0.000123,-0.000766, 0.080101;;, + 57;4;-0.996037, 0.000123,-0.000791, 0.082738;;, + 58;4;-0.996220, 0.000123,-0.000806, 0.084314;;, + 59;4;-0.996395, 0.000123,-0.000811, 0.084836;;, + 60;4;-0.996569, 0.000123,-0.000807, 0.084401;;, + 61;4;-0.996747, 0.000123,-0.000795, 0.083179;;, + 62;4;-0.996930, 0.000123,-0.000777, 0.081277;;, + 63;4;-0.997115, 0.000123,-0.000753, 0.078778;;, + 64;4;-0.997304, 0.000123,-0.000724, 0.075754;;, + 65;4;-0.997495, 0.000123,-0.000691, 0.072262;;, + 66;4;-0.997687, 0.000123,-0.000653, 0.068354;;, + 67;4;-0.997881, 0.000124,-0.000612, 0.064072;;, + 68;4;-0.998075, 0.000124,-0.000568, 0.059456;;, + 69;4;-0.998270, 0.000124,-0.000521, 0.054542;;, + 70;4;-0.998466, 0.000124,-0.000472, 0.049363;;, + 71;4;-0.998661, 0.000124,-0.000420, 0.043954;;, + 72;4;-0.998854, 0.000124,-0.000366, 0.038348;;, + 73;4;-0.999046, 0.000124,-0.000311, 0.032584;;, + 74;4;-0.999236, 0.000124,-0.000255, 0.026707;;, + 75;4;-0.999420, 0.000124,-0.000198, 0.020778;;, + 76;4;-0.999599, 0.000124,-0.000141, 0.014885;;, + 77;4;-0.999766, 0.000124,-0.000087, 0.009187;;, + 78;4;-0.999913, 0.000124,-0.000038, 0.004040;;, + 79;4;-1.000000, 0.000124,-0.000008, 0.000900;;, + 80;4;-0.999903, 0.000124,-0.000132, 0.013910;;, + 81;4;-0.999909, 0.000124,-0.000127, 0.013393;;, + 82;4;-0.999921, 0.000124,-0.000116, 0.012249;;, + 83;4;-0.999935, 0.000124,-0.000102, 0.010790;;, + 84;4;-0.999949, 0.000124,-0.000087, 0.009164;;, + 85;4;-0.999964, 0.000124,-0.000070, 0.007457;;, + 86;4;-0.999976, 0.000124,-0.000054, 0.005733;;, + 87;4;-0.999987, 0.000124,-0.000038, 0.004037;;, + 88;4;-0.999995, 0.000124,-0.000022, 0.002413;;, + 89;4;-1.000000, 0.000124,-0.000008, 0.000900;;, + 90;4;-1.000002, 0.000124, 0.000007,-0.000604;;, + 91;4;-1.000005, 0.000124, 0.000022,-0.002227;;, + 92;4;-1.000007, 0.000124, 0.000039,-0.003963;;, + 93;4;-1.000009, 0.000124, 0.000057,-0.005801;;, + 94;4;-1.000009, 0.000124, 0.000075,-0.007724;;, + 95;4;-1.000008, 0.000124, 0.000094,-0.009714;;, + 96;4;-1.000005, 0.000124, 0.000113,-0.011743;;, + 97;4;-0.999999, 0.000124, 0.000133,-0.013779;;, + 98;4;-0.999990, 0.000124, 0.000152,-0.015790;;, + 99;4;-0.999977, 0.000124, 0.000171,-0.017736;;, + 100;4;-0.999961, 0.000124, 0.000188,-0.019581;;, + 101;4;-0.999939, 0.000124, 0.000205,-0.021291;;, + 102;4;-0.999914, 0.000124, 0.000220,-0.022837;;, + 103;4;-0.999883, 0.000124, 0.000233,-0.024195;;, + 104;4;-0.999848, 0.000124, 0.000244,-0.025349;;, + 105;4;-0.999808, 0.000124, 0.000253,-0.026290;;, + 106;4;-0.999764, 0.000124, 0.000260,-0.027014;;, + 107;4;-0.999717, 0.000124, 0.000264,-0.027523;;, + 108;4;-0.999665, 0.000124, 0.000267,-0.027822;;, + 109;4;-0.999610, 0.000124, 0.000268,-0.027920;;, + 110;4;-0.999543, 0.000124, 0.000266,-0.027691;;, + 111;4;-0.999454, 0.000124, 0.000259,-0.027001;;, + 112;4;-0.999343, 0.000124, 0.000248,-0.025845;;, + 113;4;-0.999210, 0.000124, 0.000233,-0.024222;;, + 114;4;-0.999054, 0.000124, 0.000213,-0.022131;;, + 115;4;-0.998877, 0.000124, 0.000188,-0.019575;;, + 116;4;-0.998679, 0.000124, 0.000159,-0.016559;;, + 117;4;-0.998460, 0.000124, 0.000126,-0.013091;;, + 118;4;-0.998220, 0.000124, 0.000089,-0.009183;;, + 119;4;-0.997961, 0.000124, 0.000047,-0.004851;;, + 120;4;-0.997683, 0.000123, 0.000002,-0.000113;;, + 121;4;-0.997389, 0.000123,-0.000047, 0.005007;;, + 122;4;-0.997078, 0.000123,-0.000099, 0.010480;;, + 123;4;-0.996754, 0.000123,-0.000155, 0.016274;;, + 124;4;-0.996417, 0.000123,-0.000213, 0.022354;;, + 125;4;-0.996070, 0.000123,-0.000274, 0.028678;;, + 126;4;-0.995715, 0.000123,-0.000336, 0.035202;;, + 127;4;-0.995355, 0.000123,-0.000400, 0.041880;;, + 128;4;-0.994991, 0.000123,-0.000465, 0.048661;;, + 129;4;-0.994627, 0.000123,-0.000530, 0.055494;;, + 130;4;-0.994265, 0.000123,-0.000596, 0.062327;;, + 131;4;-0.993907, 0.000123,-0.000661, 0.069108;;, + 132;4;-0.993557, 0.000123,-0.000724, 0.075785;;, + 133;4;-0.993216, 0.000123,-0.000787, 0.082310;;, + 134;4;-0.992886, 0.000123,-0.000847, 0.088634;;, + 135;4;-0.992570, 0.000123,-0.000906, 0.094713;;, + 136;4;-0.992270, 0.000123,-0.000961, 0.100508;;, + 137;4;-0.991988, 0.000123,-0.001013, 0.105981;;, + 138;4;-0.991724, 0.000123,-0.001062, 0.111101;;, + 139;4;-0.991481, 0.000123,-0.001108, 0.115839;;, + 140;4;-0.991259, 0.000123,-0.001149, 0.120171;;, + 141;4;-0.991059, 0.000123,-0.001187, 0.124079;;, + 142;4;-0.990882, 0.000123,-0.001220, 0.127547;;, + 143;4;-0.990728, 0.000123,-0.001249, 0.130563;;, + 144;4;-0.990598, 0.000123,-0.001273, 0.133119;;, + 145;4;-0.990492, 0.000123,-0.001293, 0.135210;;, + 146;4;-0.990409, 0.000123,-0.001309, 0.136833;;, + 147;4;-0.990351, 0.000123,-0.001320, 0.137989;;, + 148;4;-0.990316, 0.000123,-0.001326, 0.138680;;, + 149;4;-0.990304, 0.000123,-0.001329, 0.138909;;, + 150;4;-0.990354, 0.000123,-0.001322, 0.138261;;, + 151;4;-0.990494, 0.000123,-0.001305, 0.136441;;, + 152;4;-0.990712, 0.000123,-0.001278, 0.133607;;, + 153;4;-0.990997, 0.000123,-0.001242, 0.129887;;, + 154;4;-0.991343, 0.000123,-0.001199, 0.125382;;, + 155;4;-0.991742, 0.000123,-0.001149, 0.120183;;, + 156;4;-0.992189, 0.000123,-0.001094, 0.114362;;, + 157;4;-0.992679, 0.000123,-0.001033, 0.107985;;, + 158;4;-0.993207, 0.000123,-0.000967, 0.101111;;, + 159;4;-0.993769, 0.000123,-0.000897, 0.093792;;, + 160;4;-0.994361, 0.000123,-0.000823, 0.086081;;, + 161;4;-0.994980, 0.000123,-0.000746, 0.078025;;, + 162;4;-0.995621, 0.000123,-0.000666, 0.069677;;, + 163;4;-0.996280, 0.000123,-0.000584, 0.061093;;, + 164;4;-0.996952, 0.000123,-0.000500, 0.052341;;, + 165;4;-0.997630, 0.000123,-0.000416, 0.043511;;, + 166;4;-0.998304, 0.000124,-0.000332, 0.034736;;, + 167;4;-0.998956, 0.000124,-0.000250, 0.026251;;, + 168;4;-0.999544, 0.000124,-0.000177, 0.018586;;, + 169;4;-0.999903, 0.000124,-0.000132, 0.013910;;, + 170;4;-0.999903, 0.000124,-0.000132, 0.013910;;, + 171;4;-0.996906, 0.000123,-0.000308, 0.032241;;, + 172;4;-0.990624, 0.000123,-0.000675, 0.070658;;, + 173;4;-0.983129, 0.000122,-0.001114, 0.116499;;, + 174;4;-0.975434, 0.000121,-0.001565, 0.163559;;, + 175;4;-0.968175, 0.000120,-0.001990, 0.207953;;, + 176;4;-0.961826, 0.000119,-0.002361, 0.246781;;, + 177;4;-0.956794, 0.000119,-0.002656, 0.277555;;, + 178;4;-0.953470, 0.000118,-0.002850, 0.297886;;, + 179;4;-0.952263, 0.000118,-0.002921, 0.305266;;, + 180;4;-0.952431, 0.000118,-0.002874, 0.300324;;, + 181;4;-0.952948, 0.000118,-0.002731, 0.285385;;, + 182;4;-0.953831, 0.000118,-0.002493, 0.260527;;, + 183;4;-0.955085, 0.000118,-0.002165, 0.226268;;, + 184;4;-0.956701, 0.000118,-0.001757, 0.183690;;, + 185;4;-0.958649, 0.000119,-0.001287, 0.134512;;, + 186;4;-0.960880, 0.000119,-0.000775, 0.081071;;, + 187;4;-0.963327, 0.000119,-0.000249, 0.026152;;, + 188;4;-0.965908, 0.000120, 0.000262,-0.027288;;, + 189;4;-0.968538, 0.000120, 0.000733,-0.076465;;, + 190;4;-0.971141, 0.000120, 0.001140,-0.119042;;, + 191;4;-0.973650, 0.000120, 0.001468,-0.153298;;, + 192;4;-0.976015, 0.000121, 0.001706,-0.178154;;, + 193;4;-0.978204, 0.000121, 0.001849,-0.193090;;, + 194;4;-0.980195, 0.000121, 0.001897,-0.198029;;, + 195;4;-0.982166, 0.000121, 0.001852,-0.193344;;, + 196;4;-0.984272, 0.000122, 0.001728,-0.180446;;, + 197;4;-0.986471, 0.000122, 0.001541,-0.160847;;, + 198;4;-0.988725, 0.000122, 0.001302,-0.135880;;, + 199;4;-0.990990, 0.000123, 0.001023,-0.106814;;, + 200;4;-0.993218, 0.000123, 0.000719,-0.074981;;, + 201;4;-0.995342, 0.000123, 0.000403,-0.041971;;, + 202;4;-0.997263, 0.000123, 0.000097,-0.009999;;, + 203;4;-0.998802, 0.000124,-0.000163, 0.017141;;, + 204;4;-0.999531, 0.000124,-0.000292, 0.030618;;, + 205;4;-0.988369,-0.149030, 0.000892, 0.030287;;, + 206;4;-0.988742,-0.111953, 0.004537, 0.034111;;, + 207;4;-0.989718,-0.014962, 0.009718, 0.044112;;, + 208;4;-0.990694, 0.082030, 0.014066, 0.054113;;, + 209;4;-0.991067, 0.119111, 0.015610, 0.057937;;, + 210;4;-0.991067, 0.119111, 0.015610, 0.057937;;, + 211;4;-0.991067, 0.119111, 0.015610, 0.057937;;, + 212;4;-0.991067, 0.119111, 0.015610, 0.057937;;, + 213;4;-0.991067, 0.119111, 0.015610, 0.057937;;, + 214;4;-0.991067, 0.119111, 0.015610, 0.057937;;, + 215;4;-0.991771, 0.108370, 0.015315, 0.056620;;, + 216;4;-0.993756, 0.078117, 0.014482, 0.052911;;, + 217;4;-0.996304, 0.039273, 0.013412, 0.048150;;, + 218;4;-0.998289, 0.009020, 0.012579, 0.044441;;, + 219;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 220;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 221;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 222;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 223;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 224;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 225;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 226;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 227;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 228;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 229;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 230;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 231;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 232;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 233;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 234;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 235;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 236;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 237;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 238;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 239;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 240;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 241;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 242;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 243;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 244;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 245;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 246;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 247;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 248;4;-0.998993,-0.001721, 0.012284, 0.043124;;, + 249;4;-0.998993,-0.001721, 0.012284, 0.043124;;; + } + AnimationKey { // Scale + 1; + 250; + 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;;, + 221;3; 1.000000, 1.000000, 1.000000;;, + 222;3; 1.000000, 1.000000, 1.000000;;, + 223;3; 1.000000, 1.000000, 1.000000;;, + 224;3; 1.000000, 1.000000, 1.000000;;, + 225;3; 1.000000, 1.000000, 1.000000;;, + 226;3; 1.000000, 1.000000, 1.000000;;, + 227;3; 1.000000, 1.000000, 1.000000;;, + 228;3; 1.000000, 1.000000, 1.000000;;, + 229;3; 1.000000, 1.000000, 1.000000;;, + 230;3; 1.000000, 1.000000, 1.000000;;, + 231;3; 1.000000, 1.000000, 1.000000;;, + 232;3; 1.000000, 1.000000, 1.000000;;, + 233;3; 1.000000, 1.000000, 1.000000;;, + 234;3; 1.000000, 1.000000, 1.000000;;, + 235;3; 1.000000, 1.000000, 1.000000;;, + 236;3; 1.000000, 1.000000, 1.000000;;, + 237;3; 1.000000, 1.000000, 1.000000;;, + 238;3; 1.000000, 1.000000, 1.000000;;, + 239;3; 1.000000, 1.000000, 1.000000;;, + 240;3; 1.000000, 1.000000, 1.000000;;, + 241;3; 1.000000, 1.000000, 1.000000;;, + 242;3; 1.000000, 1.000000, 1.000000;;, + 243;3; 1.000000, 1.000000, 1.000000;;, + 244;3; 1.000000, 1.000000, 1.000000;;, + 245;3; 1.000000, 1.000000, 1.000000;;, + 246;3; 1.000000, 1.000000, 1.000000;;, + 247;3; 1.000000, 1.000000, 1.000000;;, + 248;3; 1.000000, 1.000000, 1.000000;;, + 249;3; 1.000000, 1.000000, 1.000000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.000000, 1.762332,-0.000000;;, + 1;3;-0.000000, 1.762332,-0.000000;;, + 2;3; 0.000000, 1.762332,-0.000000;;, + 3;3; 0.000000, 1.762332, 0.000000;;, + 4;3;-0.000000, 1.762332,-0.000000;;, + 5;3; 0.000000, 1.762331,-0.000000;;, + 6;3; 0.000000, 1.762332,-0.000000;;, + 7;3; 0.000000, 1.762332,-0.000000;;, + 8;3; 0.000000, 1.762332,-0.000000;;, + 9;3;-0.000000, 1.762332, 0.000000;;, + 10;3; 0.000000, 1.762332, 0.000000;;, + 11;3;-0.000000, 1.762332,-0.000000;;, + 12;3; 0.000000, 1.762331,-0.000000;;, + 13;3; 0.000000, 1.762332,-0.000000;;, + 14;3; 0.000000, 1.762332,-0.000000;;, + 15;3;-0.000000, 1.762331, 0.000000;;, + 16;3; 0.000000, 1.762332,-0.000000;;, + 17;3;-0.000000, 1.762331, 0.000000;;, + 18;3; 0.000000, 1.762332,-0.000000;;, + 19;3; 0.000000, 1.762331, 0.000000;;, + 20;3;-0.000000, 1.762332, 0.000000;;, + 21;3; 0.000000, 1.762332,-0.000000;;, + 22;3;-0.000000, 1.762332,-0.000000;;, + 23;3; 0.000000, 1.762331, 0.000000;;, + 24;3;-0.000000, 1.762332,-0.000000;;, + 25;3;-0.000000, 1.762332, 0.000000;;, + 26;3;-0.000000, 1.762331, 0.000000;;, + 27;3;-0.000000, 1.762332,-0.000000;;, + 28;3;-0.000000, 1.762332, 0.000000;;, + 29;3;-0.000000, 1.762332,-0.000000;;, + 30;3; 0.000000, 1.762331,-0.000000;;, + 31;3;-0.000000, 1.762332,-0.000000;;, + 32;3;-0.000000, 1.762332,-0.000000;;, + 33;3; 0.000000, 1.762331, 0.000000;;, + 34;3;-0.000000, 1.762332, 0.000000;;, + 35;3; 0.000000, 1.762332, 0.000000;;, + 36;3;-0.000000, 1.762332,-0.000000;;, + 37;3; 0.000000, 1.762332, 0.000000;;, + 38;3;-0.000000, 1.762332, 0.000000;;, + 39;3;-0.000000, 1.762331, 0.000000;;, + 40;3; 0.000000, 1.762332, 0.000000;;, + 41;3; 0.000000, 1.762331,-0.000000;;, + 42;3; 0.000000, 1.762332, 0.000000;;, + 43;3;-0.000000, 1.762331,-0.000000;;, + 44;3; 0.000000, 1.762332,-0.000000;;, + 45;3; 0.000000, 1.762332, 0.000000;;, + 46;3;-0.000000, 1.762331, 0.000000;;, + 47;3;-0.000000, 1.762332,-0.000000;;, + 48;3;-0.000000, 1.762332,-0.000000;;, + 49;3;-0.000000, 1.762332, 0.000000;;, + 50;3;-0.000000, 1.762331,-0.000000;;, + 51;3;-0.000000, 1.762332,-0.000000;;, + 52;3; 0.000000, 1.762332, 0.000000;;, + 53;3;-0.000000, 1.762331,-0.000000;;, + 54;3;-0.000000, 1.762332,-0.000000;;, + 55;3;-0.000000, 1.762331,-0.000000;;, + 56;3;-0.000000, 1.762332,-0.000000;;, + 57;3; 0.000000, 1.762331,-0.000000;;, + 58;3; 0.000000, 1.762331,-0.000000;;, + 59;3; 0.000000, 1.762331,-0.000000;;, + 60;3;-0.000000, 1.762331,-0.000000;;, + 61;3;-0.000000, 1.762331, 0.000000;;, + 62;3; 0.000000, 1.762332,-0.000000;;, + 63;3;-0.000000, 1.762332, 0.000000;;, + 64;3;-0.000000, 1.762332, 0.000000;;, + 65;3;-0.000000, 1.762332, 0.000000;;, + 66;3; 0.000000, 1.762332, 0.000000;;, + 67;3; 0.000000, 1.762331, 0.000000;;, + 68;3;-0.000000, 1.762332,-0.000000;;, + 69;3;-0.000000, 1.762332, 0.000000;;, + 70;3; 0.000000, 1.762332,-0.000000;;, + 71;3;-0.000000, 1.762331, 0.000000;;, + 72;3; 0.000000, 1.762332, 0.000000;;, + 73;3;-0.000000, 1.762332,-0.000000;;, + 74;3; 0.000000, 1.762331,-0.000000;;, + 75;3;-0.000000, 1.762331, 0.000000;;, + 76;3;-0.000000, 1.762332,-0.000000;;, + 77;3;-0.000000, 1.762331, 0.000000;;, + 78;3; 0.000000, 1.762332, 0.000000;;, + 79;3; 0.000000, 1.762332,-0.000000;;, + 80;3;-0.000000, 1.762332, 0.000000;;, + 81;3; 0.000000, 1.762332, 0.000000;;, + 82;3; 0.000000, 1.762331, 0.000000;;, + 83;3; 0.000000, 1.762332,-0.000000;;, + 84;3; 0.000000, 1.762332, 0.000000;;, + 85;3; 0.000000, 1.762331, 0.000000;;, + 86;3; 0.000000, 1.762332,-0.000000;;, + 87;3; 0.000000, 1.762332, 0.000000;;, + 88;3;-0.000000, 1.762331, 0.000000;;, + 89;3; 0.000000, 1.762332, 0.000000;;, + 90;3;-0.000000, 1.762332, 0.000000;;, + 91;3; 0.000000, 1.762331, 0.000000;;, + 92;3; 0.000000, 1.762332, 0.000000;;, + 93;3;-0.000000, 1.762332, 0.000000;;, + 94;3; 0.000000, 1.762331, 0.000000;;, + 95;3;-0.000000, 1.762332,-0.000000;;, + 96;3; 0.000000, 1.762332, 0.000000;;, + 97;3; 0.000000, 1.762331, 0.000000;;, + 98;3;-0.000000, 1.762331, 0.000000;;, + 99;3;-0.000000, 1.762332, 0.000000;;, + 100;3; 0.000000, 1.762331, 0.000000;;, + 101;3;-0.000000, 1.762332, 0.000000;;, + 102;3; 0.000000, 1.762332, 0.000000;;, + 103;3; 0.000000, 1.762332, 0.000000;;, + 104;3; 0.000000, 1.762332, 0.000000;;, + 105;3; 0.000000, 1.762331, 0.000000;;, + 106;3;-0.000000, 1.762332, 0.000000;;, + 107;3;-0.000000, 1.762331, 0.000000;;, + 108;3; 0.000000, 1.762331, 0.000000;;, + 109;3;-0.000000, 1.762332, 0.000000;;, + 110;3;-0.000000, 1.762332,-0.000000;;, + 111;3;-0.000000, 1.762332, 0.000000;;, + 112;3; 0.000000, 1.762332, 0.000000;;, + 113;3; 0.000000, 1.762332, 0.000000;;, + 114;3;-0.000000, 1.762331, 0.000000;;, + 115;3;-0.000000, 1.762332, 0.000000;;, + 116;3; 0.000000, 1.762331, 0.000000;;, + 117;3; 0.000000, 1.762331, 0.000000;;, + 118;3; 0.000000, 1.762332,-0.000000;;, + 119;3; 0.000000, 1.762331,-0.000000;;, + 120;3;-0.000000, 1.762331, 0.000000;;, + 121;3;-0.000000, 1.762332, 0.000000;;, + 122;3; 0.000000, 1.762332, 0.000000;;, + 123;3;-0.000000, 1.762331, 0.000000;;, + 124;3; 0.000000, 1.762332, 0.000000;;, + 125;3; 0.000000, 1.762332, 0.000000;;, + 126;3; 0.000000, 1.762332, 0.000000;;, + 127;3; 0.000000, 1.762332, 0.000000;;, + 128;3; 0.000000, 1.762332,-0.000000;;, + 129;3; 0.000000, 1.762331, 0.000000;;, + 130;3; 0.000000, 1.762332, 0.000000;;, + 131;3; 0.000000, 1.762332, 0.000000;;, + 132;3;-0.000000, 1.762332, 0.000000;;, + 133;3;-0.000000, 1.762331, 0.000000;;, + 134;3;-0.000000, 1.762332, 0.000000;;, + 135;3; 0.000000, 1.762331, 0.000000;;, + 136;3;-0.000000, 1.762331,-0.000000;;, + 137;3;-0.000000, 1.762332,-0.000000;;, + 138;3; 0.000000, 1.762332, 0.000000;;, + 139;3; 0.000000, 1.762332, 0.000000;;, + 140;3;-0.000000, 1.762331, 0.000000;;, + 141;3; 0.000000, 1.762331, 0.000000;;, + 142;3; 0.000000, 1.762332, 0.000000;;, + 143;3;-0.000000, 1.762332,-0.000000;;, + 144;3; 0.000000, 1.762332, 0.000000;;, + 145;3; 0.000000, 1.762331,-0.000000;;, + 146;3; 0.000000, 1.762332, 0.000000;;, + 147;3;-0.000000, 1.762331, 0.000000;;, + 148;3;-0.000000, 1.762332, 0.000000;;, + 149;3;-0.000000, 1.762332, 0.000000;;, + 150;3;-0.000000, 1.762331, 0.000000;;, + 151;3;-0.000000, 1.762331, 0.000000;;, + 152;3;-0.000000, 1.762332, 0.000000;;, + 153;3; 0.000000, 1.762332, 0.000000;;, + 154;3; 0.000000, 1.762331, 0.000000;;, + 155;3; 0.000000, 1.762332, 0.000000;;, + 156;3;-0.000000, 1.762332, 0.000000;;, + 157;3;-0.000000, 1.762332, 0.000000;;, + 158;3;-0.000000, 1.762332,-0.000000;;, + 159;3;-0.000000, 1.762332,-0.000000;;, + 160;3; 0.000000, 1.762331, 0.000000;;, + 161;3;-0.000000, 1.762332, 0.000000;;, + 162;3;-0.000000, 1.762332, 0.000000;;, + 163;3;-0.000000, 1.762332, 0.000000;;, + 164;3;-0.000000, 1.762332, 0.000000;;, + 165;3;-0.000000, 1.762331, 0.000000;;, + 166;3;-0.000000, 1.762331, 0.000000;;, + 167;3;-0.000000, 1.762332,-0.000000;;, + 168;3;-0.000000, 1.762332, 0.000000;;, + 169;3;-0.000000, 1.762332, 0.000000;;, + 170;3;-0.000000, 1.762331,-0.000000;;, + 171;3;-0.000000, 1.762331,-0.000000;;, + 172;3; 0.000000, 1.762332,-0.000000;;, + 173;3; 0.000000, 1.762332,-0.000000;;, + 174;3;-0.000000, 1.762331,-0.000000;;, + 175;3; 0.000000, 1.762332,-0.000000;;, + 176;3;-0.000000, 1.762332, 0.000000;;, + 177;3;-0.000000, 1.762332, 0.000000;;, + 178;3; 0.000000, 1.762332,-0.000000;;, + 179;3;-0.000000, 1.762332,-0.000000;;, + 180;3; 0.000000, 1.762331, 0.000000;;, + 181;3; 0.000000, 1.762332, 0.000000;;, + 182;3; 0.000000, 1.762331, 0.000000;;, + 183;3; 0.000000, 1.762331,-0.000000;;, + 184;3; 0.000000, 1.762331,-0.000000;;, + 185;3;-0.000000, 1.762332, 0.000000;;, + 186;3; 0.000000, 1.762331,-0.000000;;, + 187;3; 0.000000, 1.762332, 0.000000;;, + 188;3;-0.000000, 1.762331, 0.000000;;, + 189;3;-0.000000, 1.762332,-0.000000;;, + 190;3; 0.000000, 1.762332,-0.000000;;, + 191;3; 0.000000, 1.762332,-0.000000;;, + 192;3; 0.000000, 1.762332, 0.000000;;, + 193;3; 0.000000, 1.762332,-0.000000;;, + 194;3; 0.000000, 1.762332,-0.000000;;, + 195;3;-0.000000, 1.762332, 0.000000;;, + 196;3; 0.000000, 1.762331,-0.000000;;, + 197;3; 0.000000, 1.762331, 0.000000;;, + 198;3; 0.000000, 1.762331, 0.000000;;, + 199;3; 0.000000, 1.762331, 0.000000;;, + 200;3; 0.000000, 1.762332,-0.000000;;, + 201;3; 0.000000, 1.762332,-0.000000;;, + 202;3;-0.000000, 1.762331,-0.000000;;, + 203;3; 0.000000, 1.762331,-0.000000;;, + 204;3; 0.000000, 1.762332, 0.000000;;, + 205;3; 0.000000, 1.762332,-0.000000;;, + 206;3; 0.000000, 1.762331, 0.000000;;, + 207;3; 0.000000, 1.762332,-0.000000;;, + 208;3; 0.000000, 1.762332, 0.000000;;, + 209;3; 0.000000, 1.762332,-0.000000;;, + 210;3; 0.000000, 1.762332,-0.000000;;, + 211;3; 0.000000, 1.762332, 0.000000;;, + 212;3; 0.000000, 1.762332,-0.000000;;, + 213;3; 0.000000, 1.762331, 0.000000;;, + 214;3; 0.000000, 1.762331, 0.000000;;, + 215;3; 0.000000, 1.762331,-0.000000;;, + 216;3; 0.000000, 1.762331,-0.000000;;, + 217;3;-0.000000, 1.762332, 0.000000;;, + 218;3; 0.000000, 1.762331,-0.000000;;, + 219;3; 0.000000, 1.762332,-0.000000;;, + 220;3; 0.000000, 1.762332,-0.000000;;, + 221;3; 0.000000, 1.762332,-0.000000;;, + 222;3; 0.000000, 1.762332,-0.000000;;, + 223;3; 0.000000, 1.762332,-0.000000;;, + 224;3; 0.000000, 1.762332,-0.000000;;, + 225;3; 0.000000, 1.762332,-0.000000;;, + 226;3; 0.000000, 1.762332,-0.000000;;, + 227;3; 0.000000, 1.762332,-0.000000;;, + 228;3; 0.000000, 1.762332,-0.000000;;, + 229;3; 0.000000, 1.762332,-0.000000;;, + 230;3; 0.000000, 1.762332,-0.000000;;, + 231;3; 0.000000, 1.762332,-0.000000;;, + 232;3; 0.000000, 1.762332,-0.000000;;, + 233;3; 0.000000, 1.762332,-0.000000;;, + 234;3; 0.000000, 1.762332,-0.000000;;, + 235;3; 0.000000, 1.762332,-0.000000;;, + 236;3; 0.000000, 1.762332,-0.000000;;, + 237;3; 0.000000, 1.762332,-0.000000;;, + 238;3; 0.000000, 1.762332,-0.000000;;, + 239;3; 0.000000, 1.762332,-0.000000;;, + 240;3; 0.000000, 1.762332,-0.000000;;, + 241;3; 0.000000, 1.762332,-0.000000;;, + 242;3; 0.000000, 1.762332,-0.000000;;, + 243;3; 0.000000, 1.762332,-0.000000;;, + 244;3; 0.000000, 1.762332,-0.000000;;, + 245;3; 0.000000, 1.762332,-0.000000;;, + 246;3; 0.000000, 1.762332,-0.000000;;, + 247;3; 0.000000, 1.762332,-0.000000;;, + 248;3; 0.000000, 1.762332,-0.000000;;, + 249;3; 0.000000, 1.762332,-0.000000;;; + } + } + Animation { + {Cube} + AnimationKey { // Rotation + 0; + 250; + 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;;, + 221;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 222;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 223;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 224;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 225;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 226;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 227;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 228;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 229;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 230;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 231;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 232;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 233;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 234;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 235;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 236;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 237;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 238;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 239;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 240;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 241;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 242;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 243;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 244;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 245;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 246;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 247;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 248;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 249;4;-1.000000, 0.000000, 0.000000, 0.000000;;; + } + AnimationKey { // Scale + 1; + 250; + 0;3; 1.000000, 1.000000, 0.500000;;, + 1;3; 1.000000, 1.000000, 0.500000;;, + 2;3; 1.000000, 1.000000, 0.500000;;, + 3;3; 1.000000, 1.000000, 0.500000;;, + 4;3; 1.000000, 1.000000, 0.500000;;, + 5;3; 1.000000, 1.000000, 0.500000;;, + 6;3; 1.000000, 1.000000, 0.500000;;, + 7;3; 1.000000, 1.000000, 0.500000;;, + 8;3; 1.000000, 1.000000, 0.500000;;, + 9;3; 1.000000, 1.000000, 0.500000;;, + 10;3; 1.000000, 1.000000, 0.500000;;, + 11;3; 1.000000, 1.000000, 0.500000;;, + 12;3; 1.000000, 1.000000, 0.500000;;, + 13;3; 1.000000, 1.000000, 0.500000;;, + 14;3; 1.000000, 1.000000, 0.500000;;, + 15;3; 1.000000, 1.000000, 0.500000;;, + 16;3; 1.000000, 1.000000, 0.500000;;, + 17;3; 1.000000, 1.000000, 0.500000;;, + 18;3; 1.000000, 1.000000, 0.500000;;, + 19;3; 1.000000, 1.000000, 0.500000;;, + 20;3; 1.000000, 1.000000, 0.500000;;, + 21;3; 1.000000, 1.000000, 0.500000;;, + 22;3; 1.000000, 1.000000, 0.500000;;, + 23;3; 1.000000, 1.000000, 0.500000;;, + 24;3; 1.000000, 1.000000, 0.500000;;, + 25;3; 1.000000, 1.000000, 0.500000;;, + 26;3; 1.000000, 1.000000, 0.500000;;, + 27;3; 1.000000, 1.000000, 0.500000;;, + 28;3; 1.000000, 1.000000, 0.500000;;, + 29;3; 1.000000, 1.000000, 0.500000;;, + 30;3; 1.000000, 1.000000, 0.500000;;, + 31;3; 1.000000, 1.000000, 0.500000;;, + 32;3; 1.000000, 1.000000, 0.500000;;, + 33;3; 1.000000, 1.000000, 0.500000;;, + 34;3; 1.000000, 1.000000, 0.500000;;, + 35;3; 1.000000, 1.000000, 0.500000;;, + 36;3; 1.000000, 1.000000, 0.500000;;, + 37;3; 1.000000, 1.000000, 0.500000;;, + 38;3; 1.000000, 1.000000, 0.500000;;, + 39;3; 1.000000, 1.000000, 0.500000;;, + 40;3; 1.000000, 1.000000, 0.500000;;, + 41;3; 1.000000, 1.000000, 0.500000;;, + 42;3; 1.000000, 1.000000, 0.500000;;, + 43;3; 1.000000, 1.000000, 0.500000;;, + 44;3; 1.000000, 1.000000, 0.500000;;, + 45;3; 1.000000, 1.000000, 0.500000;;, + 46;3; 1.000000, 1.000000, 0.500000;;, + 47;3; 1.000000, 1.000000, 0.500000;;, + 48;3; 1.000000, 1.000000, 0.500000;;, + 49;3; 1.000000, 1.000000, 0.500000;;, + 50;3; 1.000000, 1.000000, 0.500000;;, + 51;3; 1.000000, 1.000000, 0.500000;;, + 52;3; 1.000000, 1.000000, 0.500000;;, + 53;3; 1.000000, 1.000000, 0.500000;;, + 54;3; 1.000000, 1.000000, 0.500000;;, + 55;3; 1.000000, 1.000000, 0.500000;;, + 56;3; 1.000000, 1.000000, 0.500000;;, + 57;3; 1.000000, 1.000000, 0.500000;;, + 58;3; 1.000000, 1.000000, 0.500000;;, + 59;3; 1.000000, 1.000000, 0.500000;;, + 60;3; 1.000000, 1.000000, 0.500000;;, + 61;3; 1.000000, 1.000000, 0.500000;;, + 62;3; 1.000000, 1.000000, 0.500000;;, + 63;3; 1.000000, 1.000000, 0.500000;;, + 64;3; 1.000000, 1.000000, 0.500000;;, + 65;3; 1.000000, 1.000000, 0.500000;;, + 66;3; 1.000000, 1.000000, 0.500000;;, + 67;3; 1.000000, 1.000000, 0.500000;;, + 68;3; 1.000000, 1.000000, 0.500000;;, + 69;3; 1.000000, 1.000000, 0.500000;;, + 70;3; 1.000000, 1.000000, 0.500000;;, + 71;3; 1.000000, 1.000000, 0.500000;;, + 72;3; 1.000000, 1.000000, 0.500000;;, + 73;3; 1.000000, 1.000000, 0.500000;;, + 74;3; 1.000000, 1.000000, 0.500000;;, + 75;3; 1.000000, 1.000000, 0.500000;;, + 76;3; 1.000000, 1.000000, 0.500000;;, + 77;3; 1.000000, 1.000000, 0.500000;;, + 78;3; 1.000000, 1.000000, 0.500000;;, + 79;3; 1.000000, 1.000000, 0.500000;;, + 80;3; 1.000000, 1.000000, 0.500000;;, + 81;3; 1.000000, 1.000000, 0.500000;;, + 82;3; 1.000000, 1.000000, 0.500000;;, + 83;3; 1.000000, 1.000000, 0.500000;;, + 84;3; 1.000000, 1.000000, 0.500000;;, + 85;3; 1.000000, 1.000000, 0.500000;;, + 86;3; 1.000000, 1.000000, 0.500000;;, + 87;3; 1.000000, 1.000000, 0.500000;;, + 88;3; 1.000000, 1.000000, 0.500000;;, + 89;3; 1.000000, 1.000000, 0.500000;;, + 90;3; 1.000000, 1.000000, 0.500000;;, + 91;3; 1.000000, 1.000000, 0.500000;;, + 92;3; 1.000000, 1.000000, 0.500000;;, + 93;3; 1.000000, 1.000000, 0.500000;;, + 94;3; 1.000000, 1.000000, 0.500000;;, + 95;3; 1.000000, 1.000000, 0.500000;;, + 96;3; 1.000000, 1.000000, 0.500000;;, + 97;3; 1.000000, 1.000000, 0.500000;;, + 98;3; 1.000000, 1.000000, 0.500000;;, + 99;3; 1.000000, 1.000000, 0.500000;;, + 100;3; 1.000000, 1.000000, 0.500000;;, + 101;3; 1.000000, 1.000000, 0.500000;;, + 102;3; 1.000000, 1.000000, 0.500000;;, + 103;3; 1.000000, 1.000000, 0.500000;;, + 104;3; 1.000000, 1.000000, 0.500000;;, + 105;3; 1.000000, 1.000000, 0.500000;;, + 106;3; 1.000000, 1.000000, 0.500000;;, + 107;3; 1.000000, 1.000000, 0.500000;;, + 108;3; 1.000000, 1.000000, 0.500000;;, + 109;3; 1.000000, 1.000000, 0.500000;;, + 110;3; 1.000000, 1.000000, 0.500000;;, + 111;3; 1.000000, 1.000000, 0.500000;;, + 112;3; 1.000000, 1.000000, 0.500000;;, + 113;3; 1.000000, 1.000000, 0.500000;;, + 114;3; 1.000000, 1.000000, 0.500000;;, + 115;3; 1.000000, 1.000000, 0.500000;;, + 116;3; 1.000000, 1.000000, 0.500000;;, + 117;3; 1.000000, 1.000000, 0.500000;;, + 118;3; 1.000000, 1.000000, 0.500000;;, + 119;3; 1.000000, 1.000000, 0.500000;;, + 120;3; 1.000000, 1.000000, 0.500000;;, + 121;3; 1.000000, 1.000000, 0.500000;;, + 122;3; 1.000000, 1.000000, 0.500000;;, + 123;3; 1.000000, 1.000000, 0.500000;;, + 124;3; 1.000000, 1.000000, 0.500000;;, + 125;3; 1.000000, 1.000000, 0.500000;;, + 126;3; 1.000000, 1.000000, 0.500000;;, + 127;3; 1.000000, 1.000000, 0.500000;;, + 128;3; 1.000000, 1.000000, 0.500000;;, + 129;3; 1.000000, 1.000000, 0.500000;;, + 130;3; 1.000000, 1.000000, 0.500000;;, + 131;3; 1.000000, 1.000000, 0.500000;;, + 132;3; 1.000000, 1.000000, 0.500000;;, + 133;3; 1.000000, 1.000000, 0.500000;;, + 134;3; 1.000000, 1.000000, 0.500000;;, + 135;3; 1.000000, 1.000000, 0.500000;;, + 136;3; 1.000000, 1.000000, 0.500000;;, + 137;3; 1.000000, 1.000000, 0.500000;;, + 138;3; 1.000000, 1.000000, 0.500000;;, + 139;3; 1.000000, 1.000000, 0.500000;;, + 140;3; 1.000000, 1.000000, 0.500000;;, + 141;3; 1.000000, 1.000000, 0.500000;;, + 142;3; 1.000000, 1.000000, 0.500000;;, + 143;3; 1.000000, 1.000000, 0.500000;;, + 144;3; 1.000000, 1.000000, 0.500000;;, + 145;3; 1.000000, 1.000000, 0.500000;;, + 146;3; 1.000000, 1.000000, 0.500000;;, + 147;3; 1.000000, 1.000000, 0.500000;;, + 148;3; 1.000000, 1.000000, 0.500000;;, + 149;3; 1.000000, 1.000000, 0.500000;;, + 150;3; 1.000000, 1.000000, 0.500000;;, + 151;3; 1.000000, 1.000000, 0.500000;;, + 152;3; 1.000000, 1.000000, 0.500000;;, + 153;3; 1.000000, 1.000000, 0.500000;;, + 154;3; 1.000000, 1.000000, 0.500000;;, + 155;3; 1.000000, 1.000000, 0.500000;;, + 156;3; 1.000000, 1.000000, 0.500000;;, + 157;3; 1.000000, 1.000000, 0.500000;;, + 158;3; 1.000000, 1.000000, 0.500000;;, + 159;3; 1.000000, 1.000000, 0.500000;;, + 160;3; 1.000000, 1.000000, 0.500000;;, + 161;3; 1.000000, 1.000000, 0.500000;;, + 162;3; 1.000000, 1.000000, 0.500000;;, + 163;3; 1.000000, 1.000000, 0.500000;;, + 164;3; 1.000000, 1.000000, 0.500000;;, + 165;3; 1.000000, 1.000000, 0.500000;;, + 166;3; 1.000000, 1.000000, 0.500000;;, + 167;3; 1.000000, 1.000000, 0.500000;;, + 168;3; 1.000000, 1.000000, 0.500000;;, + 169;3; 1.000000, 1.000000, 0.500000;;, + 170;3; 1.000000, 1.000000, 0.500000;;, + 171;3; 1.000000, 1.000000, 0.500000;;, + 172;3; 1.000000, 1.000000, 0.500000;;, + 173;3; 1.000000, 1.000000, 0.500000;;, + 174;3; 1.000000, 1.000000, 0.500000;;, + 175;3; 1.000000, 1.000000, 0.500000;;, + 176;3; 1.000000, 1.000000, 0.500000;;, + 177;3; 1.000000, 1.000000, 0.500000;;, + 178;3; 1.000000, 1.000000, 0.500000;;, + 179;3; 1.000000, 1.000000, 0.500000;;, + 180;3; 1.000000, 1.000000, 0.500000;;, + 181;3; 1.000000, 1.000000, 0.500000;;, + 182;3; 1.000000, 1.000000, 0.500000;;, + 183;3; 1.000000, 1.000000, 0.500000;;, + 184;3; 1.000000, 1.000000, 0.500000;;, + 185;3; 1.000000, 1.000000, 0.500000;;, + 186;3; 1.000000, 1.000000, 0.500000;;, + 187;3; 1.000000, 1.000000, 0.500000;;, + 188;3; 1.000000, 1.000000, 0.500000;;, + 189;3; 1.000000, 1.000000, 0.500000;;, + 190;3; 1.000000, 1.000000, 0.500000;;, + 191;3; 1.000000, 1.000000, 0.500000;;, + 192;3; 1.000000, 1.000000, 0.500000;;, + 193;3; 1.000000, 1.000000, 0.500000;;, + 194;3; 1.000000, 1.000000, 0.500000;;, + 195;3; 1.000000, 1.000000, 0.500000;;, + 196;3; 1.000000, 1.000000, 0.500000;;, + 197;3; 1.000000, 1.000000, 0.500000;;, + 198;3; 1.000000, 1.000000, 0.500000;;, + 199;3; 1.000000, 1.000000, 0.500000;;, + 200;3; 1.000000, 1.000000, 0.500000;;, + 201;3; 1.000000, 1.000000, 0.500000;;, + 202;3; 1.000000, 1.000000, 0.500000;;, + 203;3; 1.000000, 1.000000, 0.500000;;, + 204;3; 1.000000, 1.000000, 0.500000;;, + 205;3; 1.000000, 1.000000, 0.500000;;, + 206;3; 1.000000, 1.000000, 0.500000;;, + 207;3; 1.000000, 1.000000, 0.500000;;, + 208;3; 1.000000, 1.000000, 0.500000;;, + 209;3; 1.000000, 1.000000, 0.500000;;, + 210;3; 1.000000, 1.000000, 0.500000;;, + 211;3; 1.000000, 1.000000, 0.500000;;, + 212;3; 1.000000, 1.000000, 0.500000;;, + 213;3; 1.000000, 1.000000, 0.500000;;, + 214;3; 1.000000, 1.000000, 0.500000;;, + 215;3; 1.000000, 1.000000, 0.500000;;, + 216;3; 1.000000, 1.000000, 0.500000;;, + 217;3; 1.000000, 1.000000, 0.500000;;, + 218;3; 1.000000, 1.000000, 0.500000;;, + 219;3; 1.000000, 1.000000, 0.500000;;, + 220;3; 1.000000, 1.000000, 0.500000;;, + 221;3; 1.000000, 1.000000, 0.500000;;, + 222;3; 1.000000, 1.000000, 0.500000;;, + 223;3; 1.000000, 1.000000, 0.500000;;, + 224;3; 1.000000, 1.000000, 0.500000;;, + 225;3; 1.000000, 1.000000, 0.500000;;, + 226;3; 1.000000, 1.000000, 0.500000;;, + 227;3; 1.000000, 1.000000, 0.500000;;, + 228;3; 1.000000, 1.000000, 0.500000;;, + 229;3; 1.000000, 1.000000, 0.500000;;, + 230;3; 1.000000, 1.000000, 0.500000;;, + 231;3; 1.000000, 1.000000, 0.500000;;, + 232;3; 1.000000, 1.000000, 0.500000;;, + 233;3; 1.000000, 1.000000, 0.500000;;, + 234;3; 1.000000, 1.000000, 0.500000;;, + 235;3; 1.000000, 1.000000, 0.500000;;, + 236;3; 1.000000, 1.000000, 0.500000;;, + 237;3; 1.000000, 1.000000, 0.500000;;, + 238;3; 1.000000, 1.000000, 0.500000;;, + 239;3; 1.000000, 1.000000, 0.500000;;, + 240;3; 1.000000, 1.000000, 0.500000;;, + 241;3; 1.000000, 1.000000, 0.500000;;, + 242;3; 1.000000, 1.000000, 0.500000;;, + 243;3; 1.000000, 1.000000, 0.500000;;, + 244;3; 1.000000, 1.000000, 0.500000;;, + 245;3; 1.000000, 1.000000, 0.500000;;, + 246;3; 1.000000, 1.000000, 0.500000;;, + 247;3; 1.000000, 1.000000, 0.500000;;, + 248;3; 1.000000, 1.000000, 0.500000;;, + 249;3; 1.000000, 1.000000, 0.500000;;; + } + AnimationKey { // Position + 2; + 250; + 0;3; 0.157836, 0.069149,-2.264753;;, + 1;3; 0.157836, 0.069149,-2.264753;;, + 2;3; 0.157836, 0.069149,-2.264753;;, + 3;3; 0.157836, 0.069149,-2.264753;;, + 4;3; 0.157836, 0.069149,-2.264753;;, + 5;3; 0.157836, 0.069149,-2.264753;;, + 6;3; 0.157836, 0.069149,-2.264753;;, + 7;3; 0.157836, 0.069149,-2.264753;;, + 8;3; 0.157836, 0.069149,-2.264753;;, + 9;3; 0.157836, 0.069149,-2.264753;;, + 10;3; 0.157836, 0.069149,-2.264753;;, + 11;3; 0.157836, 0.069149,-2.264753;;, + 12;3; 0.157836, 0.069149,-2.264753;;, + 13;3; 0.157836, 0.069149,-2.264753;;, + 14;3; 0.157836, 0.069149,-2.264753;;, + 15;3; 0.157836, 0.069149,-2.264753;;, + 16;3; 0.157836, 0.069149,-2.264753;;, + 17;3; 0.157836, 0.069149,-2.264753;;, + 18;3; 0.157836, 0.069149,-2.264753;;, + 19;3; 0.157836, 0.069149,-2.264753;;, + 20;3; 0.157836, 0.069149,-2.264753;;, + 21;3; 0.157836, 0.069149,-2.264753;;, + 22;3; 0.157836, 0.069149,-2.264753;;, + 23;3; 0.157836, 0.069149,-2.264753;;, + 24;3; 0.157836, 0.069149,-2.264753;;, + 25;3; 0.157836, 0.069149,-2.264753;;, + 26;3; 0.157836, 0.069149,-2.264753;;, + 27;3; 0.157836, 0.069149,-2.264753;;, + 28;3; 0.157836, 0.069149,-2.264753;;, + 29;3; 0.157836, 0.069149,-2.264753;;, + 30;3; 0.157836, 0.069149,-2.264753;;, + 31;3; 0.157836, 0.069149,-2.264753;;, + 32;3; 0.157836, 0.069149,-2.264753;;, + 33;3; 0.157836, 0.069149,-2.264753;;, + 34;3; 0.157836, 0.069149,-2.264753;;, + 35;3; 0.157836, 0.069149,-2.264753;;, + 36;3; 0.157836, 0.069149,-2.264753;;, + 37;3; 0.157836, 0.069149,-2.264753;;, + 38;3; 0.157836, 0.069149,-2.264753;;, + 39;3; 0.157836, 0.069149,-2.264753;;, + 40;3; 0.157836, 0.069149,-2.264753;;, + 41;3; 0.157836, 0.069149,-2.264753;;, + 42;3; 0.157836, 0.069149,-2.264753;;, + 43;3; 0.157836, 0.069149,-2.264753;;, + 44;3; 0.157836, 0.069149,-2.264753;;, + 45;3; 0.157836, 0.069149,-2.264753;;, + 46;3; 0.157836, 0.069149,-2.264753;;, + 47;3; 0.157836, 0.069149,-2.264753;;, + 48;3; 0.157836, 0.069149,-2.264753;;, + 49;3; 0.157836, 0.069149,-2.264753;;, + 50;3; 0.157836, 0.069149,-2.264753;;, + 51;3; 0.157836, 0.069149,-2.264753;;, + 52;3; 0.157836, 0.069149,-2.264753;;, + 53;3; 0.157836, 0.069149,-2.264753;;, + 54;3; 0.157836, 0.069149,-2.264753;;, + 55;3; 0.157836, 0.069149,-2.264753;;, + 56;3; 0.157836, 0.069149,-2.264753;;, + 57;3; 0.157836, 0.069149,-2.264753;;, + 58;3; 0.157836, 0.069149,-2.264753;;, + 59;3; 0.157836, 0.069149,-2.264753;;, + 60;3; 0.157836, 0.069149,-2.264753;;, + 61;3; 0.157836, 0.069149,-2.264753;;, + 62;3; 0.157836, 0.069149,-2.264753;;, + 63;3; 0.157836, 0.069149,-2.264753;;, + 64;3; 0.157836, 0.069149,-2.264753;;, + 65;3; 0.157836, 0.069149,-2.264753;;, + 66;3; 0.157836, 0.069149,-2.264753;;, + 67;3; 0.157836, 0.069149,-2.264753;;, + 68;3; 0.157836, 0.069149,-2.264753;;, + 69;3; 0.157836, 0.069149,-2.264753;;, + 70;3; 0.157836, 0.069149,-2.264753;;, + 71;3; 0.157836, 0.069149,-2.264753;;, + 72;3; 0.157836, 0.069149,-2.264753;;, + 73;3; 0.157836, 0.069149,-2.264753;;, + 74;3; 0.157836, 0.069149,-2.264753;;, + 75;3; 0.157836, 0.069149,-2.264753;;, + 76;3; 0.157836, 0.069149,-2.264753;;, + 77;3; 0.157836, 0.069149,-2.264753;;, + 78;3; 0.157836, 0.069149,-2.264753;;, + 79;3; 0.157836, 0.069149,-2.264753;;, + 80;3; 0.157836, 0.069149,-2.264753;;, + 81;3; 0.157836, 0.069149,-2.264753;;, + 82;3; 0.157836, 0.069149,-2.264753;;, + 83;3; 0.157836, 0.069149,-2.264753;;, + 84;3; 0.157836, 0.069149,-2.264753;;, + 85;3; 0.157836, 0.069149,-2.264753;;, + 86;3; 0.157836, 0.069149,-2.264753;;, + 87;3; 0.157836, 0.069149,-2.264753;;, + 88;3; 0.157836, 0.069149,-2.264753;;, + 89;3; 0.157836, 0.069149,-2.264753;;, + 90;3; 0.157836, 0.069149,-2.264753;;, + 91;3; 0.157836, 0.069149,-2.264753;;, + 92;3; 0.157836, 0.069149,-2.264753;;, + 93;3; 0.157836, 0.069149,-2.264753;;, + 94;3; 0.157836, 0.069149,-2.264753;;, + 95;3; 0.157836, 0.069149,-2.264753;;, + 96;3; 0.157836, 0.069149,-2.264753;;, + 97;3; 0.157836, 0.069149,-2.264753;;, + 98;3; 0.157836, 0.069149,-2.264753;;, + 99;3; 0.157836, 0.069149,-2.264753;;, + 100;3; 0.157836, 0.069149,-2.264753;;, + 101;3; 0.157836, 0.069149,-2.264753;;, + 102;3; 0.157836, 0.069149,-2.264753;;, + 103;3; 0.157836, 0.069149,-2.264753;;, + 104;3; 0.157836, 0.069149,-2.264753;;, + 105;3; 0.157836, 0.069149,-2.264753;;, + 106;3; 0.157836, 0.069149,-2.264753;;, + 107;3; 0.157836, 0.069149,-2.264753;;, + 108;3; 0.157836, 0.069149,-2.264753;;, + 109;3; 0.157836, 0.069149,-2.264753;;, + 110;3; 0.157836, 0.069149,-2.264753;;, + 111;3; 0.157836, 0.069149,-2.264753;;, + 112;3; 0.157836, 0.069149,-2.264753;;, + 113;3; 0.157836, 0.069149,-2.264753;;, + 114;3; 0.157836, 0.069149,-2.264753;;, + 115;3; 0.157836, 0.069149,-2.264753;;, + 116;3; 0.157836, 0.069149,-2.264753;;, + 117;3; 0.157836, 0.069149,-2.264753;;, + 118;3; 0.157836, 0.069149,-2.264753;;, + 119;3; 0.157836, 0.069149,-2.264753;;, + 120;3; 0.157836, 0.069149,-2.264753;;, + 121;3; 0.157836, 0.069149,-2.264753;;, + 122;3; 0.157836, 0.069149,-2.264753;;, + 123;3; 0.157836, 0.069149,-2.264753;;, + 124;3; 0.157836, 0.069149,-2.264753;;, + 125;3; 0.157836, 0.069149,-2.264753;;, + 126;3; 0.157836, 0.069149,-2.264753;;, + 127;3; 0.157836, 0.069149,-2.264753;;, + 128;3; 0.157836, 0.069149,-2.264753;;, + 129;3; 0.157836, 0.069149,-2.264753;;, + 130;3; 0.157836, 0.069149,-2.264753;;, + 131;3; 0.157836, 0.069149,-2.264753;;, + 132;3; 0.157836, 0.069149,-2.264753;;, + 133;3; 0.157836, 0.069149,-2.264753;;, + 134;3; 0.157836, 0.069149,-2.264753;;, + 135;3; 0.157836, 0.069149,-2.264753;;, + 136;3; 0.157836, 0.069149,-2.264753;;, + 137;3; 0.157836, 0.069149,-2.264753;;, + 138;3; 0.157836, 0.069149,-2.264753;;, + 139;3; 0.157836, 0.069149,-2.264753;;, + 140;3; 0.157836, 0.069149,-2.264753;;, + 141;3; 0.157836, 0.069149,-2.264753;;, + 142;3; 0.157836, 0.069149,-2.264753;;, + 143;3; 0.157836, 0.069149,-2.264753;;, + 144;3; 0.157836, 0.069149,-2.264753;;, + 145;3; 0.157836, 0.069149,-2.264753;;, + 146;3; 0.157836, 0.069149,-2.264753;;, + 147;3; 0.157836, 0.069149,-2.264753;;, + 148;3; 0.157836, 0.069149,-2.264753;;, + 149;3; 0.157836, 0.069149,-2.264753;;, + 150;3; 0.157836, 0.069149,-2.264753;;, + 151;3; 0.157836, 0.069149,-2.264753;;, + 152;3; 0.157836, 0.069149,-2.264753;;, + 153;3; 0.157836, 0.069149,-2.264753;;, + 154;3; 0.157836, 0.069149,-2.264753;;, + 155;3; 0.157836, 0.069149,-2.264753;;, + 156;3; 0.157836, 0.069149,-2.264753;;, + 157;3; 0.157836, 0.069149,-2.264753;;, + 158;3; 0.157836, 0.069149,-2.264753;;, + 159;3; 0.157836, 0.069149,-2.264753;;, + 160;3; 0.157836, 0.069149,-2.264753;;, + 161;3; 0.157836, 0.069149,-2.264753;;, + 162;3; 0.157836, 0.069149,-2.264753;;, + 163;3; 0.157836, 0.069149,-2.264753;;, + 164;3; 0.157836, 0.069149,-2.264753;;, + 165;3; 0.157836, 0.069149,-2.264753;;, + 166;3; 0.157836, 0.069149,-2.264753;;, + 167;3; 0.157836, 0.069149,-2.264753;;, + 168;3; 0.157836, 0.069149,-2.264753;;, + 169;3; 0.157836, 0.069149,-2.264753;;, + 170;3; 0.157836, 0.069149,-2.264753;;, + 171;3; 0.157836, 0.069149,-2.264753;;, + 172;3; 0.157836, 0.069149,-2.264753;;, + 173;3; 0.157836, 0.069149,-2.264753;;, + 174;3; 0.157836, 0.069149,-2.264753;;, + 175;3; 0.157836, 0.069149,-2.264753;;, + 176;3; 0.157836, 0.069149,-2.264753;;, + 177;3; 0.157836, 0.069149,-2.264753;;, + 178;3; 0.157836, 0.069149,-2.264753;;, + 179;3; 0.157836, 0.069149,-2.264753;;, + 180;3; 0.157836, 0.069149,-2.264753;;, + 181;3; 0.157836, 0.069149,-2.264753;;, + 182;3; 0.157836, 0.069149,-2.264753;;, + 183;3; 0.157836, 0.069149,-2.264753;;, + 184;3; 0.157836, 0.069149,-2.264753;;, + 185;3; 0.157836, 0.069149,-2.264753;;, + 186;3; 0.157836, 0.069149,-2.264753;;, + 187;3; 0.157836, 0.069149,-2.264753;;, + 188;3; 0.157836, 0.069149,-2.264753;;, + 189;3; 0.157836, 0.069149,-2.264753;;, + 190;3; 0.157836, 0.069149,-2.264753;;, + 191;3; 0.157836, 0.069149,-2.264753;;, + 192;3; 0.157836, 0.069149,-2.264753;;, + 193;3; 0.157836, 0.069149,-2.264753;;, + 194;3; 0.157836, 0.069149,-2.264753;;, + 195;3; 0.157836, 0.069149,-2.264753;;, + 196;3; 0.157836, 0.069149,-2.264753;;, + 197;3; 0.157836, 0.069149,-2.264753;;, + 198;3; 0.157836, 0.069149,-2.264753;;, + 199;3; 0.157836, 0.069149,-2.264753;;, + 200;3; 0.157836, 0.069149,-2.264753;;, + 201;3; 0.157836, 0.069149,-2.264753;;, + 202;3; 0.157836, 0.069149,-2.264753;;, + 203;3; 0.157836, 0.069149,-2.264753;;, + 204;3; 0.157836, 0.069149,-2.264753;;, + 205;3; 0.157836, 0.069149,-2.264753;;, + 206;3; 0.157836, 0.069149,-2.264753;;, + 207;3; 0.157836, 0.069149,-2.264753;;, + 208;3; 0.157836, 0.069149,-2.264753;;, + 209;3; 0.157836, 0.069149,-2.264753;;, + 210;3; 0.157836, 0.069149,-2.264753;;, + 211;3; 0.157836, 0.069149,-2.264753;;, + 212;3; 0.157836, 0.069149,-2.264753;;, + 213;3; 0.157836, 0.069149,-2.264753;;, + 214;3; 0.157836, 0.069149,-2.264753;;, + 215;3; 0.157836, 0.069149,-2.264753;;, + 216;3; 0.157836, 0.069149,-2.264753;;, + 217;3; 0.157836, 0.069149,-2.264753;;, + 218;3; 0.157836, 0.069149,-2.264753;;, + 219;3; 0.157836, 0.069149,-2.264753;;, + 220;3; 0.157836, 0.069149,-2.264753;;, + 221;3; 0.157836, 0.069149,-2.264753;;, + 222;3; 0.157836, 0.069149,-2.264753;;, + 223;3; 0.157836, 0.069149,-2.264753;;, + 224;3; 0.157836, 0.069149,-2.264753;;, + 225;3; 0.157836, 0.069149,-2.264753;;, + 226;3; 0.157836, 0.069149,-2.264753;;, + 227;3; 0.157836, 0.069149,-2.264753;;, + 228;3; 0.157836, 0.069149,-2.264753;;, + 229;3; 0.157836, 0.069149,-2.264753;;, + 230;3; 0.157836, 0.069149,-2.264753;;, + 231;3; 0.157836, 0.069149,-2.264753;;, + 232;3; 0.157836, 0.069149,-2.264753;;, + 233;3; 0.157836, 0.069149,-2.264753;;, + 234;3; 0.157836, 0.069149,-2.264753;;, + 235;3; 0.157836, 0.069149,-2.264753;;, + 236;3; 0.157836, 0.069149,-2.264753;;, + 237;3; 0.157836, 0.069149,-2.264753;;, + 238;3; 0.157836, 0.069149,-2.264753;;, + 239;3; 0.157836, 0.069149,-2.264753;;, + 240;3; 0.157836, 0.069149,-2.264753;;, + 241;3; 0.157836, 0.069149,-2.264753;;, + 242;3; 0.157836, 0.069149,-2.264753;;, + 243;3; 0.157836, 0.069149,-2.264753;;, + 244;3; 0.157836, 0.069149,-2.264753;;, + 245;3; 0.157836, 0.069149,-2.264753;;, + 246;3; 0.157836, 0.069149,-2.264753;;, + 247;3; 0.157836, 0.069149,-2.264753;;, + 248;3; 0.157836, 0.069149,-2.264753;;, + 249;3; 0.157836, 0.069149,-2.264753;;; + } + } +} // End of AnimationSet Global diff --git a/mods/mobs_water/mobs_crocs/sounds/croco.ogg b/mods/mobs_water/mobs_crocs/sounds/croco.ogg new file mode 100644 index 0000000..56dcc05 Binary files /dev/null and b/mods/mobs_water/mobs_crocs/sounds/croco.ogg differ diff --git a/mods/mobs_water/mobs_crocs/textures/croco.png b/mods/mobs_water/mobs_crocs/textures/croco.png new file mode 100644 index 0000000..974e9ba Binary files /dev/null and b/mods/mobs_water/mobs_crocs/textures/croco.png differ diff --git a/mods/mobs_water/mobs_crocs/textures/croco2.png b/mods/mobs_water/mobs_crocs/textures/croco2.png new file mode 100644 index 0000000..ef23dea Binary files /dev/null and b/mods/mobs_water/mobs_crocs/textures/croco2.png differ diff --git a/mods/mobs_water/mobs_fish/License.txt b/mods/mobs_water/mobs_fish/License.txt new file mode 100644 index 0000000..76852f6 --- /dev/null +++ b/mods/mobs_water/mobs_fish/License.txt @@ -0,0 +1,6 @@ +Licenses + +Model/Textures: CC-BY-SA 3.0 +Author: Sapier + +URL: http://creativecommons.org/licenses/by-sa/3.0/de/legalcode diff --git a/mods/mobs_water/mobs_fish/depends.txt b/mods/mobs_water/mobs_fish/depends.txt new file mode 100644 index 0000000..cc03398 --- /dev/null +++ b/mods/mobs_water/mobs_fish/depends.txt @@ -0,0 +1,2 @@ +default +mobs diff --git a/mods/mobs_water/mobs_fish/init.lua b/mods/mobs_water/mobs_fish/init.lua new file mode 100644 index 0000000..aef6897 --- /dev/null +++ b/mods/mobs_water/mobs_fish/init.lua @@ -0,0 +1,102 @@ + +if mobs.mod and mobs.mod == "redo" then + +local SPRITE_VERSION = false -- set to true to use upright sprites instead of meshes + +-- local variables + local l_spawn_in = {"default:water_source", "default:water_flowing", "default:river_water_source", "default:river_water_flowing"} + local l_spawn_near = {"default:sand","default:dirt","group:seaplants","group:seacoral"} + local l_spawn_chance = 10000 + local l_cc_hand = 25 + local l_cc_net = 80 + local l_water_level = minetest.setting_get("water_level") - 1 + local l_anims = { + speed_normal = 24, speed_run = 24, + stand_start = 1, stand_end = 80, + walk_start = 81, walk_end = 155, + run_start = 81, run_end = 155 + } + local l_visual = "mesh" + local l_visual_size = {x=.75, y=.75} + local l_clown_mesh = "animal_clownfish.b3d" + local l_trop_mesh = "fish_blue_white.b3d" + local l_clown_textures = { + {"clownfish.png"}, + {"clownfish2.png"} + } + local l_trop_textures = { + {"fish.png"}, + {"fish2.png"}, + {"fish3.png"} + } + + if SPRITE_VERSION then + l_visual = "upright_sprite" + l_visual_size = {x=.5, y=.5} + l_clown_mesh = nil + l_trop_mesh = nil + l_clown_textures = {{"animal_clownfish_clownfish_item.png"}} + l_trop_textures = {{"animal_fish_blue_white_fish_blue_white_item.png"}} + end + +-- Clownfish + mobs:register_mob("mobs_fish:clownfish", { + type = "animal", + passive = true, + hp_min = 1, + hp_max = 4, + armor = 100, + collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, + rotate = 270, + visual = l_visual, + mesh = l_clown_mesh, + textures = l_clown_textures, + visual_size = l_visual_size, + makes_footstep_sound = false, + stepheight = 0.1, + fly = true, + fly_in = "default:water_source", + fall_speed = 0, + view_range = 8, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + animation = l_anims, + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, l_cc_hand, l_cc_net, 0, true, nil) + end + }) + --name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height + --mobs:spawn_specific("mobs_fish:clownfish", l_spawn_in, l_spawn_near, 5, 20, 30, l_spawn_chance, 1, -31000, l_water_level) + +-- Tropical fish + mobs:register_mob("mobs_fish:tropical", { + type = "animal", + passive = true, + hp_min = 1, + hp_max = 4, + armor = 100, + collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, + rotate = 270, + visual = l_visual, + mesh = l_trop_mesh, + textures = l_trop_textures, + visual_size = l_visual_size, + makes_footstep_sound = false, + stepheight = 0.1, + fly = true, + fly_in = "default:water_source", + fall_speed = 0, + view_range = 8, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + animation = l_anims, + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, l_cc_hand, l_cc_net, 0, true, nil) + end + }) + --name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height + --mobs:spawn_specific("mobs_fish:tropical", l_spawn_in, l_spawn_near, 5, 20, 30, l_spawn_chance, 1, -31000, l_water_level) + +end diff --git a/mods/mobs_water/mobs_fish/models/animal_clownfish.b3d b/mods/mobs_water/mobs_fish/models/animal_clownfish.b3d new file mode 100644 index 0000000..f6b7bec Binary files /dev/null and b/mods/mobs_water/mobs_fish/models/animal_clownfish.b3d differ diff --git a/mods/mobs_water/mobs_fish/models/base/clownfish.blend b/mods/mobs_water/mobs_fish/models/base/clownfish.blend new file mode 100644 index 0000000..878fa84 Binary files /dev/null and b/mods/mobs_water/mobs_fish/models/base/clownfish.blend differ diff --git a/mods/mobs_water/mobs_fish/models/base/fish_blue_white.blend b/mods/mobs_water/mobs_fish/models/base/fish_blue_white.blend new file mode 100644 index 0000000..ce99508 Binary files /dev/null and b/mods/mobs_water/mobs_fish/models/base/fish_blue_white.blend differ diff --git a/mods/mobs_water/mobs_fish/models/base/fish_blue_white.xcf b/mods/mobs_water/mobs_fish/models/base/fish_blue_white.xcf new file mode 100644 index 0000000..0e654aa Binary files /dev/null and b/mods/mobs_water/mobs_fish/models/base/fish_blue_white.xcf differ diff --git a/mods/mobs_water/mobs_fish/models/base/fish_clownfish_mesh.xcf b/mods/mobs_water/mobs_fish/models/base/fish_clownfish_mesh.xcf new file mode 100644 index 0000000..0ec5909 Binary files /dev/null and b/mods/mobs_water/mobs_fish/models/base/fish_clownfish_mesh.xcf differ diff --git a/mods/mobs_water/mobs_fish/models/fish_blue_white.b3d b/mods/mobs_water/mobs_fish/models/fish_blue_white.b3d new file mode 100644 index 0000000..0008a86 Binary files /dev/null and b/mods/mobs_water/mobs_fish/models/fish_blue_white.b3d differ diff --git a/mods/mobs_water/mobs_fish/textures/animal_clownfish_clownfish_item.png b/mods/mobs_water/mobs_fish/textures/animal_clownfish_clownfish_item.png new file mode 100644 index 0000000..151d48e Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/animal_clownfish_clownfish_item.png differ diff --git a/mods/mobs_water/mobs_fish/textures/animal_fish_blue_white_fish_blue_white_item.png b/mods/mobs_water/mobs_fish/textures/animal_fish_blue_white_fish_blue_white_item.png new file mode 100644 index 0000000..e0a883d Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/animal_fish_blue_white_fish_blue_white_item.png differ diff --git a/mods/mobs_water/mobs_fish/textures/clownfish.png b/mods/mobs_water/mobs_fish/textures/clownfish.png new file mode 100644 index 0000000..9503fd3 Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/clownfish.png differ diff --git a/mods/mobs_water/mobs_fish/textures/clownfish2.png b/mods/mobs_water/mobs_fish/textures/clownfish2.png new file mode 100644 index 0000000..86d3179 Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/clownfish2.png differ diff --git a/mods/mobs_water/mobs_fish/textures/fish.png b/mods/mobs_water/mobs_fish/textures/fish.png new file mode 100644 index 0000000..55dd017 Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/fish.png differ diff --git a/mods/mobs_water/mobs_fish/textures/fish2.png b/mods/mobs_water/mobs_fish/textures/fish2.png new file mode 100644 index 0000000..b3e0528 Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/fish2.png differ diff --git a/mods/mobs_water/mobs_fish/textures/fish3.png b/mods/mobs_water/mobs_fish/textures/fish3.png new file mode 100644 index 0000000..2e7b1df Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/fish3.png differ diff --git a/mods/mobs_water/mobs_fish/textures/originals/animal_clownfish_clownfish.png b/mods/mobs_water/mobs_fish/textures/originals/animal_clownfish_clownfish.png new file mode 100644 index 0000000..651b5dd Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/originals/animal_clownfish_clownfish.png differ diff --git a/mods/mobs_water/mobs_fish/textures/originals/animal_clownfish_mesh.png b/mods/mobs_water/mobs_fish/textures/originals/animal_clownfish_mesh.png new file mode 100644 index 0000000..a696187 Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/originals/animal_clownfish_mesh.png differ diff --git a/mods/mobs_water/mobs_fish/textures/originals/animal_clownfish_mesh2.png b/mods/mobs_water/mobs_fish/textures/originals/animal_clownfish_mesh2.png new file mode 100644 index 0000000..39c617a Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/originals/animal_clownfish_mesh2.png differ diff --git a/mods/mobs_water/mobs_fish/textures/originals/animal_fish_blue_white_fish_blue_white.png b/mods/mobs_water/mobs_fish/textures/originals/animal_fish_blue_white_fish_blue_white.png new file mode 100644 index 0000000..e0a883d Binary files /dev/null and b/mods/mobs_water/mobs_fish/textures/originals/animal_fish_blue_white_fish_blue_white.png differ diff --git a/mods/mobs_water/mobs_jellyfish/License.txt b/mods/mobs_water/mobs_jellyfish/License.txt new file mode 100644 index 0000000..f10d72f --- /dev/null +++ b/mods/mobs_water/mobs_jellyfish/License.txt @@ -0,0 +1,21 @@ +Licenses + +Model/Textures: WTFPL +Author: blert2112 + +*************** + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + + Copyright (C) 2004 Sam Hocevar + + Everyone is permitted to copy and distribute verbatim or modified + copies of this license document, and changing it is allowed as long + as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. + \ No newline at end of file diff --git a/mods/mobs_water/mobs_jellyfish/depends.txt b/mods/mobs_water/mobs_jellyfish/depends.txt new file mode 100644 index 0000000..0980886 --- /dev/null +++ b/mods/mobs_water/mobs_jellyfish/depends.txt @@ -0,0 +1,3 @@ +default + +mobs diff --git a/mods/mobs_water/mobs_jellyfish/init.lua b/mods/mobs_water/mobs_jellyfish/init.lua new file mode 100644 index 0000000..2161aaa --- /dev/null +++ b/mods/mobs_water/mobs_jellyfish/init.lua @@ -0,0 +1,39 @@ + +if mobs.mod and mobs.mod == "redo" then + + mobs:register_mob("mobs_jellyfish:jellyfish", { + type = "animal", + attack_type = "dogfight", + damage = 1, + reach = 1, + hp_min = 4, + hp_max = 8, + armor = 100, + collisionbox = {-0.25, -0.25, -0.25, 0.25, 0.25, 0.25}, + visual = "mesh", + mesh = "jellyfish.b3d", + textures = { + {"jellyfish.png"} + }, + makes_footstep_sound = false, + walk_velocity = 0.1, + run_velocity = 0.1, + fly = true, + fly_in = "default:water_source", + fall_speed = 0, + view_range = 10, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, 80, 100, 0, true, nil) + end + }) + --name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height + --mobs:spawn_specific("mobs_jellyfish:jellyfish", + --{"default:water_source"}, + --{"default:water_flowing","default:water_source"}, + --5, 20, 30, 10000, 1, -31000, 0) + +end + diff --git a/mods/mobs_water/mobs_jellyfish/models/jellyfish.b3d b/mods/mobs_water/mobs_jellyfish/models/jellyfish.b3d new file mode 100644 index 0000000..16b7fd3 Binary files /dev/null and b/mods/mobs_water/mobs_jellyfish/models/jellyfish.b3d differ diff --git a/mods/mobs_water/mobs_jellyfish/textures/jellyfish.png b/mods/mobs_water/mobs_jellyfish/textures/jellyfish.png new file mode 100644 index 0000000..3f0db90 Binary files /dev/null and b/mods/mobs_water/mobs_jellyfish/textures/jellyfish.png differ diff --git a/mods/mobs_water/mobs_jellyfish/textures/jellyfish_inv.png b/mods/mobs_water/mobs_jellyfish/textures/jellyfish_inv.png new file mode 100644 index 0000000..641b388 Binary files /dev/null and b/mods/mobs_water/mobs_jellyfish/textures/jellyfish_inv.png differ diff --git a/mods/mobs_water/mobs_sharks/License.txt b/mods/mobs_water/mobs_sharks/License.txt new file mode 100644 index 0000000..0ce650a --- /dev/null +++ b/mods/mobs_water/mobs_sharks/License.txt @@ -0,0 +1,7 @@ +Licenses + +Model/Textures: CC-BY-SA 3.0 + http://creativecommons.org/licenses/by-sa/3.0/de/legalcode +Author: Sapier + +texture modification by: blert2112 diff --git a/mods/mobs_water/mobs_sharks/SETTINGS.txt b/mods/mobs_water/mobs_sharks/SETTINGS.txt new file mode 100644 index 0000000..bf27b35 --- /dev/null +++ b/mods/mobs_water/mobs_sharks/SETTINGS.txt @@ -0,0 +1,8 @@ + +-- SETTINGS + +ENABLE_SHARK_LARGE = true +ENABLE_SHARK_MEDIUM = true +ENABLE_SHARK_SMALL = true + +HELP_WITH_EXPERIMENT = false diff --git a/mods/mobs_water/mobs_sharks/depends.txt b/mods/mobs_water/mobs_sharks/depends.txt new file mode 100644 index 0000000..cc03398 --- /dev/null +++ b/mods/mobs_water/mobs_sharks/depends.txt @@ -0,0 +1,2 @@ +default +mobs diff --git a/mods/mobs_water/mobs_sharks/init.lua b/mods/mobs_water/mobs_sharks/init.lua new file mode 100644 index 0000000..f4101c5 --- /dev/null +++ b/mods/mobs_water/mobs_sharks/init.lua @@ -0,0 +1,151 @@ + +if mobs.mod and mobs.mod == "redo" then + +-- local variables + local l_colors = { + "#604000:175", --brown + "#ffffff:150", --white + "#404040:150", --dark_grey + "#a0a0a0:150" --grey + } + local l_skins = { + {"(shark_first.png^[colorize:"..l_colors[3]..")^(shark_second.png^[colorize:"..l_colors[4]..")^shark_third.png"}, + {"(shark_first.png^[colorize:"..l_colors[1]..")^(shark_second.png^[colorize:"..l_colors[2]..")^shark_third.png"}, + {"(shark_first.png^[colorize:"..l_colors[4]..")^(shark_second.png^[colorize:"..l_colors[2]..")^shark_third.png"} + } + local l_anims = { + speed_normal = 24, speed_run = 24, + stand_start = 1, stand_end = 80, + walk_start = 80, walk_end = 160, + run_start = 80, run_end = 160 + } + local l_model = "mob_shark.b3d" + local l_egg_texture = "mob_shark_shark_item.png" + local l_spawn_in = {"default:water_flowing","default:water_source"} + local l_spawn_near = {"default:water_flowing","default:water_source","seawrecks:woodship","seawrecks:uboot"} + local l_spawn_chance = 30000 + +-- load settings + dofile(minetest.get_modpath("mobs_sharks").."/SETTINGS.txt") + if not ENABLE_SHARK_LARGE then + l_spawn_chance = l_spawn_chance - 20000 + end + if not ENABLE_SHARK_MEDIUM then + l_spawn_chance = l_spawn_chance - 20000 + end + if not ENABLE_SHARK_SMALL then + l_spawn_chance = l_spawn_chance - 20000 + end + +-- large + if ENABLE_SHARK_LARGE then + mobs:register_mob("mobs_sharks:shark_lg", { + type = "monster", + attack_type = "dogfight", + damage = 2, + reach = 3, + hp_min = 4, + hp_max = 8, + armor = 250, + collisionbox = {-0.75, -0.5, -0.75, 0.75, 0.5, 0.75}, + visual = "mesh", + mesh = l_model, + textures = l_skins, + makes_footstep_sound = false, + walk_velocity = 4, + run_velocity = 6, + fly = true, + fly_in = "default:water_source", + fall_speed = 0, + rotate = 270, + view_range = 10, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = l_anims, + do_custom = function(self) + if HELP_WITH_EXPERIMENT then + local p = self.object:getpos() + local a = self.object:getvelocity() + if p.y > 0 and a.y > 0 then + a.y = -1 + else + local r = math.random(100) + if r >= 1 and r <=25 then a.y = 0.25 + elseif r > 25 and r <= 50 then a.y = 0 + elseif r > 50 and r <= 75 then a.y = -0.25 + end + end + self.object:setvelocity(a) + end + end + }) + --name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height + --mobs:spawn_specific("mobs_sharks:shark_lg", l_spawn_in, l_spawn_near, -1, 20, 30, l_spawn_chance, 1, -31000, 0) + end + +-- medium + if ENABLE_SHARK_MEDIUM then + mobs:register_mob("mobs_sharks:shark_md", { + type = "monster", + attack_type = "dogfight", + damage = 2, + reach = 2, + hp_min = 4, + hp_max = 8, + armor = 225, + collisionbox = {-0.57, -0.38, -0.57, 0.57, 0.38, 0.57}, + visual = "mesh", + visual_size = {x=0.75, y=0.75}, + mesh = l_model, + textures = l_skins, + makes_footstep_sound = false, + walk_velocity = 2, + run_velocity = 4, + fly = true, + fly_in = "default:water_source", + fall_speed = -1, + rotate = 270, + view_range = 10, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = l_anims + }) + --name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height + --mobs:spawn_specific("mobs_sharks:shark_md", l_spawn_in, l_spawn_near, -1, 20, 30, l_spawn_chance, 1, -31000, 0) + end + +-- small + if ENABLE_SHARK_SMALL then + mobs:register_mob("mobs_sharks:shark_sm", { + type = "monster", + attack_type = "dogfight", + damage = 2, + reach = 1, + hp_min = 4, + hp_max = 8, + armor = 200, + collisionbox = {-0.38, -0.25, -0.38, 0.38, 0.25, 0.38}, + visual = "mesh", + visual_size = {x=0.5, y=0.5}, + mesh = l_model, + textures = l_skins, + makes_footstep_sound = false, + walk_velocity = 2, + run_velocity = 4, + fly = true, + fly_in = "default:water_source", + fall_speed = -1, + rotate = 270, + view_range = 10, + water_damage = 0, + lava_damage = 10, + light_damage = 0, + animation = l_anims + }) + --name, nodes, neighbours, minlight, maxlight, interval, chance, active_object_count, min_height, max_height + --mobs:spawn_specific("mobs_sharks:shark_sm", l_spawn_in, l_spawn_near, -1, 20, 30, l_spawn_chance, 1, -31000, 0) + end + +end diff --git a/mods/mobs_water/mobs_sharks/models/mob_shark.b3d b/mods/mobs_water/mobs_sharks/models/mob_shark.b3d new file mode 100644 index 0000000..c076e59 Binary files /dev/null and b/mods/mobs_water/mobs_sharks/models/mob_shark.b3d differ diff --git a/mods/mobs_water/mobs_sharks/models/mob_shark.blend b/mods/mobs_water/mobs_sharks/models/mob_shark.blend new file mode 100644 index 0000000..a985bc3 Binary files /dev/null and b/mods/mobs_water/mobs_sharks/models/mob_shark.blend differ diff --git a/mods/mobs_water/mobs_sharks/textures/mob_shark_shark_item.png b/mods/mobs_water/mobs_sharks/textures/mob_shark_shark_item.png new file mode 100644 index 0000000..375890b Binary files /dev/null and b/mods/mobs_water/mobs_sharks/textures/mob_shark_shark_item.png differ diff --git a/mods/mobs_water/mobs_sharks/textures/original/mob_shark_shark_mesh.png b/mods/mobs_water/mobs_sharks/textures/original/mob_shark_shark_mesh.png new file mode 100644 index 0000000..6c3bc69 Binary files /dev/null and b/mods/mobs_water/mobs_sharks/textures/original/mob_shark_shark_mesh.png differ diff --git a/mods/mobs_water/mobs_sharks/textures/shark_first.png b/mods/mobs_water/mobs_sharks/textures/shark_first.png new file mode 100644 index 0000000..26adb8c Binary files /dev/null and b/mods/mobs_water/mobs_sharks/textures/shark_first.png differ diff --git a/mods/mobs_water/mobs_sharks/textures/shark_second.png b/mods/mobs_water/mobs_sharks/textures/shark_second.png new file mode 100644 index 0000000..5cd3542 Binary files /dev/null and b/mods/mobs_water/mobs_sharks/textures/shark_second.png differ diff --git a/mods/mobs_water/mobs_sharks/textures/shark_third.png b/mods/mobs_water/mobs_sharks/textures/shark_third.png new file mode 100644 index 0000000..3b59782 Binary files /dev/null and b/mods/mobs_water/mobs_sharks/textures/shark_third.png differ diff --git a/mods/mobs_water/mobs_turtles/License.txt b/mods/mobs_water/mobs_turtles/License.txt new file mode 100644 index 0000000..2b26bff --- /dev/null +++ b/mods/mobs_water/mobs_turtles/License.txt @@ -0,0 +1,4 @@ +Licenses + +Model/textures: unknown +Author: AspireMint diff --git a/mods/mobs_water/mobs_turtles/depends.txt b/mods/mobs_water/mobs_turtles/depends.txt new file mode 100644 index 0000000..cc03398 --- /dev/null +++ b/mods/mobs_water/mobs_turtles/depends.txt @@ -0,0 +1,2 @@ +default +mobs diff --git a/mods/mobs_water/mobs_turtles/init.lua b/mods/mobs_water/mobs_turtles/init.lua new file mode 100644 index 0000000..dad1851 --- /dev/null +++ b/mods/mobs_water/mobs_turtles/init.lua @@ -0,0 +1,94 @@ + local l_colors = { + "#604000:175", --brown + "#604000:100", --brown2 + "#ffffff:150", --white + "#404040:150", --dark_grey + "#a0a0a0:150", --grey + "#808000:150", --olive + "#ff0000:150" --red + } + local l_skins = { + {"turtle1.png^turtle2.png^turtle3.png^turtle4.png^turtle5.png^turtle6.png^turtle7.png"}, + {"turtle1.png^(turtle2.png^[colorize:"..l_colors[5]..")^(turtle3.png^[colorize:"..l_colors[4]..")^(turtle4.png^[colorize:"..l_colors[1]..")^(turtle5.png^[colorize:"..l_colors[2]..")^(turtle6.png^[colorize:"..l_colors[6]..")^turtle7.png"} + } + local l_anims = { + speed_normal = 24, speed_run = 24, + stand_start = 1, stand_end = 50, + walk_start = 60, walk_end = 90, + run_start = 60, run_end = 90, + hide_start = 95, hide_end = 100 + } + local l_model = "mobf_turtle.x" + local l_spawn_chance = 30000 + + mobs:register_mob("mobs_turtles:turtle_sm", { + type = "animal", + passive = true, + hp_min = 4, + hp_max = 8, + armor = 200, + collisionbox = {-0.4, 0.0, -0.4, 0.4, 0.35, 0.4}, + visual = "mesh", + mesh = l_model, + textures = l_skins, + makes_footstep_sound = false, + view_range = 10, + rotate = 270, + walk_velocity = 1, + run_velocity = 1.5, + stepheight = 1, + jump = true, + fly = true, + fly_in = "default:water_source", + fall_speed = -10, + floats = 1, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fall_damage = 0, + animation = l_anims, + follow = "default:stick", + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, 0, 0, 80, true, nil) + end + }) + --mobs:spawn_specific("mobs_turtles:turtle_sm", + -- {"default:water_flowing","default:water_source"}, + -- {"default:water_flowing","default:water_source"}, + -- 5, 20, 30, l_spawn_chance, 1, -31000, 0) + mobs:register_mob("mobs_turtles:turtle_lg", { + type = "animal", + passive = true, + hp_min = 4, + hp_max = 8, + armor = 250, + collisionbox = {-0.8, 0.0, -0.8, 0.8, 0.7, 0.8}, + visual = "mesh", + visual_size = {x=2,y=2}, + mesh = l_model, + textures = l_skins, + makes_footstep_sound = false, + view_range = 10, + rotate = 270, + walk_velocity = 1, + run_velocity = 1.5, + stepheight = 1, + jump = false, + fly = true, + fly_in = "default:water_source", + fall_speed = -10, + floats = 1, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fall_damage = 0, + animation = l_anims, + follow = "default:stick", + on_rightclick = function(self, clicker) + mobs:capture_mob(self, clicker, 0, 0, 80, true, nil) + end + }) + --mobs:spawn_specific("mobs_turtles:turtle_lg", + -- {"default:water_flowing","default:water_source"}, + -- {"default:water_flowing","default:water_source"}, + -- 5, 20, 30, l_spawn_chance, 1, -31000, 0) diff --git a/mods/mobs_water/mobs_turtles/models/mobf_turtle.x b/mods/mobs_water/mobs_turtles/models/mobf_turtle.x new file mode 100644 index 0000000..073d998 --- /dev/null +++ b/mods/mobs_water/mobs_turtles/models/mobf_turtle.x @@ -0,0 +1,11058 @@ +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_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, + -3.892252,-0.000000, 1.176455, 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.327682,10.463408, 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.000001,-2.648392,-0.000001, 1.000000;; + } + } // End of Armature_Bone_002 + Frame Armature_Bone_003 { + FrameTransformMatrix { + 0.000000, 1.000000,-0.000530, 0.000000, + 0.000000, 0.000530, 1.000000, 0.000000, + 1.000000,-0.000000,-0.000000, 0.000000, + 0.000001, 7.151846, 6.618314, 1.000000;; + } + } // End of Armature_Bone_003 + Frame Armature_Bone_004 { + FrameTransformMatrix { + 0.000000, 0.999997, 0.002319, 0.000000, + -0.000000, 0.002319,-0.999997, 0.000000, + -1.000000, 0.000000, 0.000000, 0.000000, + -0.000001, 7.147045,-6.565950, 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.000001, 0.655543, 6.627153, 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.000001, 0.653455,-6.572360, 1.000000;; + } + } // End of Armature_Bone_006 + } // End of Armature_Bone + Frame Group { + 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 { // Group mesh + 1170; + 2.610081; 6.575115; 1.819720;, + 2.610081; 5.275315; 0.519920;, + 2.610081; 5.275315; 1.819720;, + 2.610081; 5.275315; 0.519920;, + 2.610081; 6.575115; 1.819720;, + 2.610081; 5.925215; 0.519920;, + 2.610081; 5.925215; 0.519920;, + 2.610081; 6.575115; 1.819720;, + 2.610081; 6.575115; 0.519920;, + 2.610081; 6.575115; 0.519920;, + 2.610081; 6.575115; 1.819720;, + 2.610081; 9.174715; 1.819720;, + 2.610081; 5.275315; 1.819720;, + 2.610081; 9.174715; 1.819720;, + 2.610081; 6.575115; 1.819720;, + 2.610081; 9.174715; 1.819720;, + 2.610081; 5.275315; 1.819720;, + 3.909881; 9.174715; 1.819720;, + 3.909881; 9.174715; 1.819720;, + 2.610081; 5.275315; 1.819720;, + 3.909881; 5.275315; 1.819720;, + 2.610081; 5.275315; 0.519920;, + 3.909881; 5.275315; 1.819720;, + 2.610081; 5.275315; 1.819720;, + 3.909881; 5.275315; 1.819720;, + 2.610081; 5.275315; 0.519920;, + 3.909881; 5.275315; 0.519920;, + 2.610081; 5.275315; 0.519920;, + 3.909881; 9.174715; 0.519920;, + 3.909881; 5.275315; 0.519920;, + 2.610081; 5.925215; 0.519920;, + 3.909881; 9.174715; 0.519920;, + 2.610081; 5.275315; 0.519920;, + 2.610081; 6.575115; 0.519920;, + 3.909881; 9.174715; 0.519920;, + 2.610081; 5.925215; 0.519920;, + 2.610081; 7.225015; 0.519920;, + 3.909881; 9.174715; 0.519920;, + 2.610081; 6.575115; 0.519920;, + 3.909881; 9.174715; 0.519920;, + 2.610081; 7.225015; 0.519920;, + 2.610081; 9.174715; 0.519920;, + 2.610081; 7.225015; 0.519920;, + 2.610081; 9.174715; 1.819720;, + 2.610081; 9.174715; 0.519920;, + 2.610081; 6.575115; 0.519920;, + 2.610081; 9.174715; 1.819720;, + 2.610081; 7.225015; 0.519920;, + 2.610081; 9.174715; 1.819720;, + 3.909881; 9.174715; 0.519920;, + 2.610081; 9.174715; 0.519920;, + 3.909881; 9.174715; 0.519920;, + 2.610081; 9.174715; 1.819720;, + 3.909881; 9.174715; 1.169820;, + 3.909881; 9.174715; 1.169820;, + 2.610081; 9.174715; 1.819720;, + 3.909881; 9.174715; 1.819720;, + 3.909881; 9.174715; 1.819720;, + 3.909881; 9.174715; 0.519920;, + 3.909881; 9.174715; 1.169820;, + 3.909881; 5.275315; 1.819720;, + 3.909881; 9.174715; 0.519920;, + 3.909881; 9.174715; 1.819720;, + 3.909881; 9.174715; 0.519920;, + 3.909881; 5.275315; 1.819720;, + 3.909881; 5.275315; 0.519920;, + -2.589118; 5.275315; 1.819720;, + -3.888918; 6.575115; 1.819720;, + -3.888918; 5.275315; 1.819720;, + -2.589118; 5.275315; 1.819720;, + -2.589118; 9.174715; 1.819720;, + -3.888918; 6.575115; 1.819720;, + -4.213868; 9.174715; 1.819720;, + -3.888918; 6.575115; 1.819720;, + -2.589118; 9.174715; 1.819720;, + -3.888918; 6.575115; 1.819720;, + -4.213868; 9.174715; 1.819720;, + -4.213868; 6.575115; 1.819720;, + -4.213868; 9.174715; 1.819720;, + -4.213868; 6.575115; 0.519920;, + -4.213868; 6.575115; 1.819720;, + -4.213868; 6.575115; 0.519920;, + -4.213868; 9.174715; 1.819720;, + -4.213868; 9.174715; 0.519920;, + -4.213868; 9.174715; 1.819720;, + -2.589118; 9.174715; 0.519920;, + -4.213868; 9.174715; 0.519920;, + -2.589118; 9.174715; 0.519920;, + -4.213868; 9.174715; 1.819720;, + -2.589118; 9.174715; 1.819720;, + -2.589118; 8.524815; 1.819720;, + -2.589118; 9.174715; 0.519920;, + -2.589118; 9.174715; 1.819720;, + -2.589118; 9.174715; 0.519920;, + -2.589118; 8.524815; 1.819720;, + -2.589118; 5.275315; 0.519920;, + -2.589118; 5.275315; 0.519920;, + -2.589118; 8.524815; 1.819720;, + -2.589118; 7.874915; 1.819720;, + -2.589118; 9.174715; 1.819720;, + -2.589118; 7.874915; 1.819720;, + -2.589118; 8.524815; 1.819720;, + -2.589118; 9.174715; 1.819720;, + -2.589118; 5.275315; 1.819720;, + -2.589118; 7.874915; 1.819720;, + -2.589118; 5.275315; 0.519920;, + -2.589118; 7.874915; 1.819720;, + -2.589118; 5.275315; 1.819720;, + -2.589118; 5.275315; 1.819720;, + -3.888918; 5.275315; 0.519920;, + -2.589118; 5.275315; 0.519920;, + -3.888918; 5.275315; 0.519920;, + -2.589118; 5.275315; 1.819720;, + -3.888918; 5.275315; 1.819720;, + -3.888918; 5.275315; 1.819720;, + -3.888918; 6.575115; 0.519920;, + -3.888918; 5.275315; 0.519920;, + -3.888918; 6.575115; 0.519920;, + -3.888918; 5.275315; 1.819720;, + -3.888918; 6.575115; 1.819720;, + -3.888918; 6.575115; 1.819720;, + -4.213868; 6.575115; 1.169820;, + -3.888918; 6.575115; 0.519920;, + -4.213868; 6.575115; 1.169820;, + -3.888918; 6.575115; 1.819720;, + -4.213868; 6.575115; 1.819720;, + -4.213868; 6.575115; 1.819720;, + -4.213868; 6.575115; 0.519920;, + -4.213868; 6.575115; 1.169820;, + -3.888918; 6.575115; 0.519920;, + -4.213868; 6.575115; 1.169820;, + -4.213868; 6.575115; 0.519920;, + -4.213868; 6.575115; 0.519920;, + -2.589118; 9.174715; 0.519920;, + -3.888918; 6.575115; 0.519920;, + -2.589118; 9.174715; 0.519920;, + -4.213868; 6.575115; 0.519920;, + -4.213868; 9.174715; 0.519920;, + -3.888918; 6.575115; 0.519920;, + -2.589118; 9.174715; 0.519920;, + -2.589118; 5.275315; 0.519920;, + -2.589118; 5.275315; 0.519920;, + -3.888918; 5.275315; 0.519920;, + -3.888918; 6.575115; 0.519920;, + 2.610081;-7.923884; 1.819720;, + 2.610081;-9.223684; 0.519920;, + 2.610081;-9.223684; 1.819720;, + 2.610081;-9.223684; 0.519920;, + 2.610081;-7.923884; 1.819720;, + 2.610081;-8.573784; 0.519920;, + 2.610081;-8.573784; 0.519920;, + 2.610081;-7.923884; 1.819720;, + 2.610081;-7.923884; 0.519920;, + 2.610081;-7.923884; 0.519920;, + 2.610081;-7.923884; 1.819720;, + 2.610081;-5.324285; 1.819720;, + 2.610081;-9.223684; 1.819720;, + 2.610081;-5.324285; 1.819720;, + 2.610081;-7.923884; 1.819720;, + 2.610081;-5.324285; 1.819720;, + 2.610081;-9.223684; 1.819720;, + 3.909881;-5.324285; 1.819720;, + 3.909881;-5.324285; 1.819720;, + 2.610081;-9.223684; 1.819720;, + 3.909881;-9.223684; 1.819720;, + 2.610081;-9.223684; 0.519920;, + 3.909881;-9.223684; 1.819720;, + 2.610081;-9.223684; 1.819720;, + 3.909881;-9.223684; 1.819720;, + 2.610081;-9.223684; 0.519920;, + 3.909881;-9.223684; 0.519920;, + 2.610081;-9.223684; 0.519920;, + 3.909881;-5.324285; 0.519920;, + 3.909881;-9.223684; 0.519920;, + 2.610081;-8.573784; 0.519920;, + 3.909881;-5.324285; 0.519920;, + 2.610081;-9.223684; 0.519920;, + 2.610081;-7.923884; 0.519920;, + 3.909881;-5.324285; 0.519920;, + 2.610081;-8.573784; 0.519920;, + 2.610081;-7.273984; 0.519920;, + 3.909881;-5.324285; 0.519920;, + 2.610081;-7.923884; 0.519920;, + 3.909881;-5.324285; 0.519920;, + 2.610081;-7.273984; 0.519920;, + 2.610081;-5.324285; 0.519920;, + 2.610081;-7.273984; 0.519920;, + 2.610081;-5.324285; 1.819720;, + 2.610081;-5.324285; 0.519920;, + 2.610081;-7.923884; 0.519920;, + 2.610081;-5.324285; 1.819720;, + 2.610081;-7.273984; 0.519920;, + 2.610081;-5.324285; 1.819720;, + 3.909881;-5.324285; 0.519920;, + 2.610081;-5.324285; 0.519920;, + 3.909881;-5.324285; 0.519920;, + 2.610081;-5.324285; 1.819720;, + 3.909881;-5.324285; 1.169820;, + 3.909881;-5.324285; 1.169820;, + 2.610081;-5.324285; 1.819720;, + 3.909881;-5.324285; 1.819720;, + 3.909881;-5.324285; 1.819720;, + 3.909881;-5.324285; 0.519920;, + 3.909881;-5.324285; 1.169820;, + 3.909881;-9.223684; 1.819720;, + 3.909881;-5.324285; 0.519920;, + 3.909881;-5.324285; 1.819720;, + 3.909881;-5.324285; 0.519920;, + 3.909881;-9.223684; 1.819720;, + 3.909881;-9.223684; 0.519920;, + -5.758938; 0.641792; 0.519920;, + -7.513668;-0.658008; 0.519920;, + -7.513668; 0.641792; 0.519920;, + -7.513668;-0.658008; 0.519920;, + -5.758938; 0.641792; 0.519920;, + -5.758938;-0.658008; 0.519920;, + -5.758938; 0.641792; 0.519920;, + -5.758938;-0.658008; 1.819720;, + -5.758938;-0.658008; 0.519920;, + -5.758938;-0.658008; 1.819720;, + -5.758938; 0.641792; 0.519920;, + -5.758938; 0.641792; 1.819720;, + -5.758938; 0.641792; 0.519920;, + -7.513668; 0.641792; 1.819720;, + -5.758938; 0.641792; 1.819720;, + -7.513668; 0.641792; 1.819720;, + -5.758938; 0.641792; 0.519920;, + -7.513668; 0.641792; 0.519920;, + -7.513668;-0.658008; 0.519920;, + -7.513668; 0.641792; 1.819720;, + -7.513668; 0.641792; 0.519920;, + -7.513668; 0.641792; 1.819720;, + -7.513668;-0.658008; 0.519920;, + -7.513668;-0.658008; 1.819720;, + -7.513668;-0.658008; 0.519920;, + -5.758938;-0.658008; 1.819720;, + -7.513668;-0.658008; 1.819720;, + -5.758938;-0.658008; 1.819720;, + -7.513668;-0.658008; 0.519920;, + -5.758938;-0.658008; 0.519920;, + -5.758938;-0.658008; 1.819720;, + -7.513668; 0.641792; 1.819720;, + -7.513668;-0.658008; 1.819720;, + -7.513668; 0.641792; 1.819720;, + -5.758938;-0.658008; 1.819720;, + -5.758938; 0.641792; 1.819720;, + -2.589118;-2.624084; 3.119520;, + -3.888918; 2.575115; 3.119520;, + -3.888918;-2.624084; 3.119520;, + -3.888918; 2.575115; 3.119520;, + -2.589118;-2.624084; 3.119520;, + -2.589118; 2.575115; 3.119520;, + -2.589118;-2.624084; 3.119520;, + -2.589118; 2.575115; 4.094369;, + -2.589118; 2.575115; 3.119520;, + -2.589118; 2.575115; 4.094369;, + -2.589118;-2.624084; 3.119520;, + -2.589118;-2.624084; 4.094369;, + -2.589118;-2.624084; 3.119520;, + 2.610081;-2.624084; 4.094369;, + -2.589118;-2.624084; 4.094369;, + 2.610081;-2.624084; 4.094369;, + -2.589118;-2.624084; 3.119520;, + 2.610081;-2.624084; 3.119520;, + -2.589118;-2.624084; 3.119520;, + 2.610081;-2.624084; 3.119520;, + -2.589118; 2.575115; 3.119520;, + -2.589118; 2.575115; 3.119520;, + 2.610081;-2.624084; 3.119520;, + 2.610081; 2.575115; 3.119520;, + 2.610081; 2.575115; 3.119520;, + 2.610081;-2.624084; 4.094369;, + 2.610081;-2.624084; 3.119520;, + 2.610081;-2.624084; 4.094369;, + 2.610081; 2.575115; 3.119520;, + 2.610081; 2.575115; 4.094369;, + 2.610081; 2.575115; 3.119520;, + -2.589118; 2.575115; 4.094369;, + 2.610081; 2.575115; 4.094369;, + -2.589118; 2.575115; 4.094369;, + 2.610081; 2.575115; 3.119520;, + -2.589118; 2.575115; 3.119520;, + 2.610081; 2.575115; 3.119520;, + -2.589118; 3.874915; 3.119520;, + -2.589118; 2.575115; 3.119520;, + -2.589118; 3.874915; 3.119520;, + 2.610081; 2.575115; 3.119520;, + 2.610081; 3.874915; 3.119520;, + 2.610081; 2.575115; 3.119520;, + 2.610081; 3.874915; 1.169820;, + 2.610081; 3.874915; 3.119520;, + 2.610081; 3.874915; 1.169820;, + 2.610081; 2.575115; 3.119520;, + 2.610081; 2.575115; 1.169820;, + 2.610081; 2.575115; 3.119520;, + 3.909881; 2.575115; 1.169820;, + 2.610081; 2.575115; 1.169820;, + 3.909881; 2.575115; 1.169820;, + 2.610081; 2.575115; 3.119520;, + 3.909881; 2.575115; 3.119520;, + 2.610081; 2.575115; 3.119520;, + 3.909881;-2.624084; 3.119520;, + 3.909881; 2.575115; 3.119520;, + 3.909881;-2.624084; 3.119520;, + 2.610081; 2.575115; 3.119520;, + 2.610081;-2.624084; 3.119520;, + 2.610081;-2.624084; 1.169820;, + 3.909881;-2.624084; 3.119520;, + 2.610081;-2.624084; 3.119520;, + 3.909881;-2.624084; 3.119520;, + 2.610081;-2.624084; 1.169820;, + 3.909881;-2.624084; 1.169820;, + 2.610081;-2.624084; 1.169820;, + 3.259981;-3.273984; 1.169820;, + 3.909881;-2.624084; 1.169820;, + 2.610081;-2.624084; 1.169820;, + 3.259981;-3.923884; 1.169820;, + 3.259981;-3.273984; 1.169820;, + 3.259981;-3.923884; 1.169820;, + 2.610081;-2.624084; 1.169820;, + 2.610081;-3.923884; 1.169820;, + 2.610081;-2.624084; 1.169820;, + 2.610081;-3.923884; 3.119520;, + 2.610081;-3.923884; 1.169820;, + 2.610081;-3.923884; 3.119520;, + 2.610081;-2.624084; 1.169820;, + 2.610081;-2.624084; 3.119520;, + -2.589118;-2.624084; 3.119520;, + 2.610081;-3.923884; 3.119520;, + 2.610081;-2.624084; 3.119520;, + 2.610081;-3.923884; 3.119520;, + -2.589118;-2.624084; 3.119520;, + -2.589118;-3.923884; 3.119520;, + -2.589118;-2.624084; 3.119520;, + -2.589118;-3.923884; 1.169820;, + -2.589118;-3.923884; 3.119520;, + -2.589118;-3.923884; 1.169820;, + -2.589118;-2.624084; 3.119520;, + -2.589118;-2.624084; 1.169820;, + -2.589118;-2.624084; 3.119520;, + -3.888918;-2.624084; 1.169820;, + -2.589118;-2.624084; 1.169820;, + -3.888918;-2.624084; 1.169820;, + -2.589118;-2.624084; 3.119520;, + -3.888918;-2.624084; 3.119520;, + -3.888918;-2.624084; 3.119520;, + -3.888918;-0.674384; 2.469620;, + -3.888918;-2.624084; 1.169820;, + -3.888918;-0.674384; 2.469620;, + -3.888918;-2.624084; 3.119520;, + -3.888918; 2.575115; 3.119520;, + -3.888918;-0.674384; 2.469620;, + -3.888918; 2.575115; 3.119520;, + -3.888918; 0.625415; 2.469620;, + -3.888918; 0.625415; 2.469620;, + -3.888918; 2.575115; 3.119520;, + -3.888918; 0.625415; 1.819720;, + -3.888918; 0.625415; 1.819720;, + -3.888918; 2.575115; 3.119520;, + -3.888918; 1.275315; 1.819720;, + -3.888918; 1.275315; 1.819720;, + -3.888918; 2.575115; 3.119520;, + -3.888918; 1.275315; 1.169820;, + -3.888918; 1.275315; 1.169820;, + -3.888918; 2.575115; 3.119520;, + -3.888918; 2.575115; 1.169820;, + -3.888918; 2.575115; 3.119520;, + -2.589118; 2.575115; 1.169820;, + -3.888918; 2.575115; 1.169820;, + -2.589118; 2.575115; 1.169820;, + -3.888918; 2.575115; 3.119520;, + -2.589118; 2.575115; 3.119520;, + -2.589118; 3.874915; 3.119520;, + -2.589118; 2.575115; 1.169820;, + -2.589118; 2.575115; 3.119520;, + -2.589118; 2.575115; 1.169820;, + -2.589118; 3.874915; 3.119520;, + -2.589118; 3.874915; 1.169820;, + -2.589118; 3.874915; 3.119520;, + 2.610081; 3.874915; 1.169820;, + -2.589118; 3.874915; 1.169820;, + 2.610081; 3.874915; 1.169820;, + -2.589118; 3.874915; 3.119520;, + 2.610081; 3.874915; 3.119520;, + 2.610081; 3.874915; 1.169820;, + -2.589118; 4.524815; 1.169820;, + -2.589118; 3.874915; 1.169820;, + -2.589118; 4.524815; 1.169820;, + 2.610081; 3.874915; 1.169820;, + 2.610081; 4.524815; 1.169820;, + 2.610081; 3.874915; 1.169820;, + 2.610081; 4.524815; 0.519920;, + 2.610081; 4.524815; 1.169820;, + 2.610081; 4.524815; 0.519920;, + 2.610081; 3.874915; 1.169820;, + 2.610081; 3.874915; 0.519920;, + 2.610081; 3.874915; 1.169820;, + 3.259981; 3.874915; 0.519920;, + 2.610081; 3.874915; 0.519920;, + 3.259981; 3.874915; 0.519920;, + 2.610081; 3.874915; 1.169820;, + 3.259981; 3.874915; 1.169820;, + 3.259981; 3.874915; 1.169820;, + 2.610081; 3.874915; 1.169820;, + 3.259981; 3.225015; 1.169820;, + 2.610081; 3.874915; 1.169820;, + 3.909881; 2.575115; 1.169820;, + 3.259981; 3.225015; 1.169820;, + 3.909881; 2.575115; 1.169820;, + 2.610081; 3.874915; 1.169820;, + 2.610081; 2.575115; 1.169820;, + 3.259981; 3.225015; 1.169820;, + 3.909881; 2.575115; 1.169820;, + 3.909881; 3.225015; 1.169820;, + 3.909881; 2.575115; 1.169820;, + 3.909881; 3.225015; 0.519920;, + 3.909881; 3.225015; 1.169820;, + 3.909881; 3.225015; 0.519920;, + 3.909881; 2.575115; 1.169820;, + 3.909881; 2.575115; 0.519920;, + 3.909881; 2.575115; 1.169820;, + 4.559781; 2.575115; 0.519920;, + 3.909881; 2.575115; 0.519920;, + 4.559781; 2.575115; 0.519920;, + 3.909881; 2.575115; 1.169820;, + 4.559781; 2.575115; 1.169820;, + 3.909881; 2.575115; 1.169820;, + 4.559781; 1.925215; 1.169820;, + 4.559781; 2.575115; 1.169820;, + 4.559781; 1.925215; 1.169820;, + 3.909881; 2.575115; 1.169820;, + 3.909881; 1.925215; 1.169820;, + 3.909881; 2.575115; 1.169820;, + 3.909881; 1.925215; 2.469620;, + 3.909881; 1.925215; 1.169820;, + 3.909881; 2.575115; 3.119520;, + 3.909881; 1.925215; 2.469620;, + 3.909881; 2.575115; 1.169820;, + 3.909881; 1.275315; 3.119520;, + 3.909881; 1.925215; 2.469620;, + 3.909881; 2.575115; 3.119520;, + 3.909881; 1.925215; 2.469620;, + 3.909881; 1.275315; 3.119520;, + 3.909881; 1.275315; 2.469620;, + 3.909881; 1.275315; 3.119520;, + 4.559781; 1.275315; 2.469620;, + 3.909881; 1.275315; 2.469620;, + 4.559781; 1.275315; 2.469620;, + 3.909881; 1.275315; 3.119520;, + 4.559781; 1.275315; 3.119520;, + 3.909881; 1.275315; 3.119520;, + 4.559781;-1.324284; 3.119520;, + 4.559781; 1.275315; 3.119520;, + 4.559781;-1.324284; 3.119520;, + 3.909881; 1.275315; 3.119520;, + 3.909881;-1.324284; 3.119520;, + 3.909881; 2.575115; 3.119520;, + 3.909881;-1.324284; 3.119520;, + 3.909881; 1.275315; 3.119520;, + 3.909881; 2.575115; 3.119520;, + 3.909881;-2.624084; 3.119520;, + 3.909881;-1.324284; 3.119520;, + 3.909881;-2.624084; 3.119520;, + 3.909881;-1.974184; 2.469620;, + 3.909881;-1.324284; 3.119520;, + 3.909881;-2.624084; 3.119520;, + 3.909881;-1.974184; 1.169820;, + 3.909881;-1.974184; 2.469620;, + 3.909881;-1.974184; 1.169820;, + 3.909881;-2.624084; 3.119520;, + 3.909881;-2.624084; 1.169820;, + 4.559781;-2.624084; 1.169820;, + 3.909881;-1.974184; 1.169820;, + 3.909881;-2.624084; 1.169820;, + 3.909881;-1.974184; 1.169820;, + 4.559781;-2.624084; 1.169820;, + 4.559781;-1.974184; 1.169820;, + 4.559781;-2.624084; 1.169820;, + 4.559781; 2.575115; 0.519920;, + 4.559781;-1.974184; 1.169820;, + 4.559781; 2.575115; 0.519920;, + 4.559781;-2.624084; 1.169820;, + 4.559781;-2.624084; 0.519920;, + 4.559781;-2.624084; 1.169820;, + 3.909881;-2.624084; 0.519920;, + 4.559781;-2.624084; 0.519920;, + 3.909881;-2.624084; 0.519920;, + 4.559781;-2.624084; 1.169820;, + 3.909881;-2.624084; 1.169820;, + 3.909881;-3.273984; 1.169820;, + 3.909881;-2.624084; 0.519920;, + 3.909881;-2.624084; 1.169820;, + 3.909881;-2.624084; 0.519920;, + 3.909881;-3.273984; 1.169820;, + 3.909881;-3.273984; 0.519920;, + 3.909881;-3.273984; 1.169820;, + 3.259981;-3.273984; 0.519920;, + 3.909881;-3.273984; 0.519920;, + 3.259981;-3.273984; 0.519920;, + 3.909881;-3.273984; 1.169820;, + 3.259981;-3.273984; 1.169820;, + 3.909881;-2.624084; 1.169820;, + 3.259981;-3.273984; 1.169820;, + 3.909881;-3.273984; 1.169820;, + 3.259981;-3.923884; 1.169820;, + 3.259981;-3.273984; 0.519920;, + 3.259981;-3.273984; 1.169820;, + 3.259981;-3.273984; 0.519920;, + 3.259981;-3.923884; 1.169820;, + 3.259981;-3.923884; 0.519920;, + 3.259981;-3.923884; 1.169820;, + 2.610081;-3.923884; 0.519920;, + 3.259981;-3.923884; 0.519920;, + 2.610081;-3.923884; 0.519920;, + 3.259981;-3.923884; 1.169820;, + 2.610081;-3.923884; 1.169820;, + 2.610081;-4.573784; 1.169820;, + 2.610081;-3.923884; 0.519920;, + 2.610081;-3.923884; 1.169820;, + 2.610081;-3.923884; 0.519920;, + 2.610081;-4.573784; 1.169820;, + 2.610081;-4.573784; 0.519920;, + 2.610081;-4.573784; 1.169820;, + -2.589118;-4.573784; 0.519920;, + 2.610081;-4.573784; 0.519920;, + -2.589118;-4.573784; 0.519920;, + 2.610081;-4.573784; 1.169820;, + -2.589118;-4.573784; 1.169820;, + 2.610081;-4.573784; 1.169820;, + -2.589118;-3.923884; 1.169820;, + -2.589118;-4.573784; 1.169820;, + -2.589118;-3.923884; 1.169820;, + 2.610081;-4.573784; 1.169820;, + 2.610081;-3.923884; 1.169820;, + 2.610081;-3.923884; 3.119520;, + -2.589118;-3.923884; 1.169820;, + 2.610081;-3.923884; 1.169820;, + -2.589118;-3.923884; 1.169820;, + 2.610081;-3.923884; 3.119520;, + -2.589118;-3.923884; 3.119520;, + -2.589118;-3.923884; 1.169820;, + -2.589118;-4.573784; 0.519920;, + -2.589118;-4.573784; 1.169820;, + -2.589118;-4.573784; 0.519920;, + -2.589118;-3.923884; 1.169820;, + -2.589118;-3.923884; 0.519920;, + -2.589118;-3.923884; 1.169820;, + -3.239018;-3.923884; 0.519920;, + -2.589118;-3.923884; 0.519920;, + -3.239018;-3.923884; 0.519920;, + -2.589118;-3.923884; 1.169820;, + -3.239018;-3.923884; 1.169820;, + -2.589118;-3.923884; 1.169820;, + -3.239018;-3.273984; 1.169820;, + -3.239018;-3.923884; 1.169820;, + -2.589118;-2.624084; 1.169820;, + -3.239018;-3.273984; 1.169820;, + -2.589118;-3.923884; 1.169820;, + -3.888918;-2.624084; 1.169820;, + -3.239018;-3.273984; 1.169820;, + -2.589118;-2.624084; 1.169820;, + -3.239018;-3.273984; 1.169820;, + -3.888918;-2.624084; 1.169820;, + -3.888918;-3.273984; 1.169820;, + -3.888918;-2.624084; 1.169820;, + -3.888918;-3.273984; 0.519920;, + -3.888918;-3.273984; 1.169820;, + -3.888918;-3.273984; 0.519920;, + -3.888918;-2.624084; 1.169820;, + -3.888918;-2.624084; 0.519920;, + -3.888918;-2.624084; 1.169820;, + -4.538818;-2.624084; 0.519920;, + -3.888918;-2.624084; 0.519920;, + -4.538818;-2.624084; 0.519920;, + -3.888918;-2.624084; 1.169820;, + -4.538818;-2.624084; 1.169820;, + -3.888918;-2.624084; 1.169820;, + -4.538818;-1.324284; 1.169820;, + -4.538818;-2.624084; 1.169820;, + -4.538818;-1.324284; 1.169820;, + -3.888918;-2.624084; 1.169820;, + -3.888918;-1.324284; 1.169820;, + -3.888918;-1.324284; 1.169820;, + -3.888918;-2.624084; 1.169820;, + -3.888918;-1.324284; 1.819720;, + -3.888918;-2.624084; 1.169820;, + -3.888918;-0.674384; 2.469620;, + -3.888918;-1.324284; 1.819720;, + -3.888918;-0.674384; 1.819720;, + -3.888918;-1.324284; 1.819720;, + -3.888918;-0.674384; 2.469620;, + -4.538818;-0.674384; 1.819720;, + -3.888918;-1.324284; 1.819720;, + -3.888918;-0.674384; 1.819720;, + -3.888918;-1.324284; 1.819720;, + -4.538818;-0.674384; 1.819720;, + -4.538818;-1.324284; 1.819720;, + -4.538818;-0.674384; 1.819720;, + -4.538818;-1.324284; 1.169820;, + -4.538818;-1.324284; 1.819720;, + -4.538818; 2.575115; 0.519920;, + -4.538818;-1.324284; 1.169820;, + -4.538818;-0.674384; 1.819720;, + -4.538818;-2.624084; 0.519920;, + -4.538818;-1.324284; 1.169820;, + -4.538818; 2.575115; 0.519920;, + -4.538818;-1.324284; 1.169820;, + -4.538818;-2.624084; 0.519920;, + -4.538818;-2.624084; 1.169820;, + -3.888918; 2.575115; 0.519920;, + -4.538818;-2.624084; 0.519920;, + -4.538818; 2.575115; 0.519920;, + -4.538818;-2.624084; 0.519920;, + -3.888918; 2.575115; 0.519920;, + -3.888918;-2.624084; 0.519920;, + -3.888918; 2.575115; 0.519920;, + -3.888918;-2.624084; 0.259960;, + -3.888918;-2.624084; 0.519920;, + -3.888918;-2.624084; 0.259960;, + -3.888918; 2.575115; 0.519920;, + -3.888918; 2.575115; 0.259960;, + -3.888918; 2.575115; 0.519920;, + -2.589118; 2.575115; 0.259960;, + -3.888918; 2.575115; 0.259960;, + -2.589118; 2.575115; 0.259960;, + -3.888918; 2.575115; 0.519920;, + -2.589118; 2.575115; 0.519920;, + -3.888918; 2.575115; 0.519920;, + -3.239018; 3.225015; 0.519920;, + -2.589118; 2.575115; 0.519920;, + -3.239018; 3.225015; 0.519920;, + -3.888918; 2.575115; 0.519920;, + -3.888918; 3.225015; 0.519920;, + -3.888918; 2.575115; 0.519920;, + -3.888918; 3.225015; 1.169820;, + -3.888918; 3.225015; 0.519920;, + -3.888918; 3.225015; 1.169820;, + -3.888918; 2.575115; 0.519920;, + -3.888918; 2.575115; 1.169820;, + -3.888918; 2.575115; 0.519920;, + -4.538818; 2.575115; 1.169820;, + -3.888918; 2.575115; 1.169820;, + -4.538818; 2.575115; 1.169820;, + -3.888918; 2.575115; 0.519920;, + -4.538818; 2.575115; 0.519920;, + -4.538818; 2.575115; 0.519920;, + -4.538818; 1.275315; 1.169820;, + -4.538818; 2.575115; 1.169820;, + -4.538818; 2.575115; 0.519920;, + -4.538818;-0.674384; 1.819720;, + -4.538818; 1.275315; 1.169820;, + -4.538818; 1.275315; 1.169820;, + -4.538818;-0.674384; 1.819720;, + -4.538818; 0.625415; 1.819720;, + -4.538818; 0.625415; 1.819720;, + -4.538818;-0.674384; 1.819720;, + -4.538818; 0.625415; 2.469620;, + -4.538818; 0.625415; 2.469620;, + -4.538818;-0.674384; 1.819720;, + -4.538818;-0.674384; 2.469620;, + -4.538818;-0.674384; 1.819720;, + -3.888918;-0.674384; 2.469620;, + -4.538818;-0.674384; 2.469620;, + -3.888918;-0.674384; 2.469620;, + -4.538818;-0.674384; 1.819720;, + -3.888918;-0.674384; 1.819720;, + -3.888918;-0.674384; 2.469620;, + -4.538818; 0.625415; 2.469620;, + -4.538818;-0.674384; 2.469620;, + -4.538818; 0.625415; 2.469620;, + -3.888918;-0.674384; 2.469620;, + -3.888918; 0.625415; 2.469620;, + -3.888918; 0.625415; 1.819720;, + -4.538818; 0.625415; 2.469620;, + -3.888918; 0.625415; 2.469620;, + -4.538818; 0.625415; 2.469620;, + -3.888918; 0.625415; 1.819720;, + -4.538818; 0.625415; 1.819720;, + -3.888918; 0.625415; 1.819720;, + -4.538818; 1.275315; 1.819720;, + -4.538818; 0.625415; 1.819720;, + -4.538818; 1.275315; 1.819720;, + -3.888918; 0.625415; 1.819720;, + -3.888918; 1.275315; 1.819720;, + -3.888918; 1.275315; 1.169820;, + -4.538818; 1.275315; 1.819720;, + -3.888918; 1.275315; 1.819720;, + -4.538818; 1.275315; 1.819720;, + -3.888918; 1.275315; 1.169820;, + -4.538818; 1.275315; 1.169820;, + -3.888918; 1.275315; 1.169820;, + -4.538818; 2.575115; 1.169820;, + -4.538818; 1.275315; 1.169820;, + -4.538818; 2.575115; 1.169820;, + -3.888918; 1.275315; 1.169820;, + -3.888918; 2.575115; 1.169820;, + -4.538818; 1.275315; 1.169820;, + -4.538818; 0.625415; 1.819720;, + -4.538818; 1.275315; 1.819720;, + -2.589118; 2.575115; 1.169820;, + -3.888918; 3.225015; 1.169820;, + -3.888918; 2.575115; 1.169820;, + -3.888918; 3.225015; 1.169820;, + -2.589118; 2.575115; 1.169820;, + -3.239018; 3.225015; 1.169820;, + -3.239018; 3.225015; 1.169820;, + -2.589118; 2.575115; 1.169820;, + -3.239018; 3.874915; 1.169820;, + -3.239018; 3.874915; 1.169820;, + -2.589118; 2.575115; 1.169820;, + -2.589118; 3.874915; 1.169820;, + -2.589118; 3.874915; 0.519920;, + -3.239018; 3.874915; 1.169820;, + -2.589118; 3.874915; 1.169820;, + -3.239018; 3.874915; 1.169820;, + -2.589118; 3.874915; 0.519920;, + -3.239018; 3.874915; 0.519920;, + -2.589118; 3.874915; 0.519920;, + -3.239018; 3.225015; 0.519920;, + -3.239018; 3.874915; 0.519920;, + -3.239018; 3.225015; 0.519920;, + -2.589118; 3.874915; 0.519920;, + -2.589118; 2.575115; 0.519920;, + -2.589118; 3.874915; 0.519920;, + -2.589118; 2.575115; 0.259960;, + -2.589118; 2.575115; 0.519920;, + -2.589118; 2.575115; 0.259960;, + -2.589118; 3.874915; 0.519920;, + -2.589118; 3.874915; 0.259960;, + -2.589118; 3.874915; 0.519920;, + 2.610081; 3.874915; 0.259960;, + -2.589118; 3.874915; 0.259960;, + 2.610081; 3.874915; 0.259960;, + -2.589118; 3.874915; 0.519920;, + 2.610081; 3.874915; 0.519920;, + -2.589118; 3.874915; 0.519920;, + 2.610081; 4.524815; 0.519920;, + 2.610081; 3.874915; 0.519920;, + 2.610081; 4.524815; 0.519920;, + -2.589118; 3.874915; 0.519920;, + -2.589118; 4.524815; 0.519920;, + -2.589118; 3.874915; 0.519920;, + -2.589118; 4.524815; 1.169820;, + -2.589118; 4.524815; 0.519920;, + -2.589118; 4.524815; 1.169820;, + -2.589118; 3.874915; 0.519920;, + -2.589118; 3.874915; 1.169820;, + -2.589118; 4.524815; 1.169820;, + 2.610081; 4.524815; 0.519920;, + -2.589118; 4.524815; 0.519920;, + 2.610081; 4.524815; 0.519920;, + -2.589118; 4.524815; 1.169820;, + 2.610081; 4.524815; 1.169820;, + 2.610081; 2.575115; 0.519920;, + 2.610081; 3.874915; 0.259960;, + 2.610081; 3.874915; 0.519920;, + 2.610081; 3.874915; 0.259960;, + 2.610081; 2.575115; 0.519920;, + 2.610081; 2.575115; 0.259960;, + 2.610081; 2.575115; 0.519920;, + 3.909881; 2.575115; 0.259960;, + 2.610081; 2.575115; 0.259960;, + 3.909881; 2.575115; 0.259960;, + 2.610081; 2.575115; 0.519920;, + 3.909881; 2.575115; 0.519920;, + 2.610081; 2.575115; 0.519920;, + 3.259981; 3.225015; 0.519920;, + 3.909881; 2.575115; 0.519920;, + 2.610081; 2.575115; 0.519920;, + 3.259981; 3.874915; 0.519920;, + 3.259981; 3.225015; 0.519920;, + 3.259981; 3.874915; 0.519920;, + 2.610081; 2.575115; 0.519920;, + 2.610081; 3.874915; 0.519920;, + 3.259981; 3.874915; 0.519920;, + 3.259981; 3.225015; 1.169820;, + 3.259981; 3.225015; 0.519920;, + 3.259981; 3.225015; 1.169820;, + 3.259981; 3.874915; 0.519920;, + 3.259981; 3.874915; 1.169820;, + 3.259981; 3.225015; 1.169820;, + 3.909881; 3.225015; 0.519920;, + 3.259981; 3.225015; 0.519920;, + 3.909881; 3.225015; 0.519920;, + 3.259981; 3.225015; 1.169820;, + 3.909881; 3.225015; 1.169820;, + 3.909881; 2.575115; 0.519920;, + 3.259981; 3.225015; 0.519920;, + 3.909881; 3.225015; 0.519920;, + 3.909881;-2.624084; 0.519920;, + 3.909881; 2.575115; 0.259960;, + 3.909881; 2.575115; 0.519920;, + 3.909881; 2.575115; 0.259960;, + 3.909881;-2.624084; 0.519920;, + 3.909881;-2.624084; 0.259960;, + 3.909881;-2.624084; 0.519920;, + 2.610081;-2.624084; 0.259960;, + 3.909881;-2.624084; 0.259960;, + 2.610081;-2.624084; 0.259960;, + 3.909881;-2.624084; 0.519920;, + 2.610081;-2.624084; 0.519920;, + 3.259981;-3.273984; 0.519920;, + 2.610081;-2.624084; 0.519920;, + 3.909881;-2.624084; 0.519920;, + 2.610081;-2.624084; 0.519920;, + 3.259981;-3.273984; 0.519920;, + 2.610081;-3.923884; 0.519920;, + 3.259981;-3.923884; 0.519920;, + 2.610081;-3.923884; 0.519920;, + 3.259981;-3.273984; 0.519920;, + 2.610081;-3.923884; 0.519920;, + 2.610081;-2.624084; 0.259960;, + 2.610081;-2.624084; 0.519920;, + 2.610081;-2.624084; 0.259960;, + 2.610081;-3.923884; 0.519920;, + 2.610081;-3.923884; 0.259960;, + 2.610081;-3.923884; 0.519920;, + -2.589118;-3.923884; 0.259960;, + 2.610081;-3.923884; 0.259960;, + -2.589118;-3.923884; 0.259960;, + 2.610081;-3.923884; 0.519920;, + -2.589118;-3.923884; 0.519920;, + 2.610081;-3.923884; 0.519920;, + -2.589118;-4.573784; 0.519920;, + -2.589118;-3.923884; 0.519920;, + -2.589118;-4.573784; 0.519920;, + 2.610081;-3.923884; 0.519920;, + 2.610081;-4.573784; 0.519920;, + -2.589118;-2.624084; 0.519920;, + -2.589118;-3.923884; 0.259960;, + -2.589118;-3.923884; 0.519920;, + -2.589118;-3.923884; 0.259960;, + -2.589118;-2.624084; 0.519920;, + -2.589118;-2.624084; 0.259960;, + -2.589118;-2.624084; 0.519920;, + -3.888918;-2.624084; 0.259960;, + -2.589118;-2.624084; 0.259960;, + -3.888918;-2.624084; 0.259960;, + -2.589118;-2.624084; 0.519920;, + -3.888918;-2.624084; 0.519920;, + -2.589118;-2.624084; 0.519920;, + -3.888918;-3.273984; 0.519920;, + -3.888918;-2.624084; 0.519920;, + -3.888918;-3.273984; 0.519920;, + -2.589118;-2.624084; 0.519920;, + -3.239018;-3.273984; 0.519920;, + -3.239018;-3.273984; 0.519920;, + -2.589118;-2.624084; 0.519920;, + -3.239018;-3.923884; 0.519920;, + -3.239018;-3.923884; 0.519920;, + -2.589118;-2.624084; 0.519920;, + -2.589118;-3.923884; 0.519920;, + -3.239018;-3.923884; 0.519920;, + -3.239018;-3.273984; 1.169820;, + -3.239018;-3.273984; 0.519920;, + -3.239018;-3.273984; 1.169820;, + -3.239018;-3.923884; 0.519920;, + -3.239018;-3.923884; 1.169820;, + -3.239018;-3.273984; 1.169820;, + -3.888918;-3.273984; 0.519920;, + -3.239018;-3.273984; 0.519920;, + -3.888918;-3.273984; 0.519920;, + -3.239018;-3.273984; 1.169820;, + -3.888918;-3.273984; 1.169820;, + -3.888918;-2.624084; 0.259960;, + -2.589118; 2.575115; 0.259960;, + -2.589118;-2.624084; 0.259960;, + -2.589118; 2.575115; 0.259960;, + -3.888918;-2.624084; 0.259960;, + -3.888918; 2.575115; 0.259960;, + -2.589118; 2.575115; 0.259960;, + -2.589118;-2.624084; 0.000000;, + -2.589118;-2.624084; 0.259960;, + -2.589118;-2.624084; 0.000000;, + -2.589118; 2.575115; 0.259960;, + -2.589118; 2.575115; 0.000000;, + -2.589118; 2.575115; 0.259960;, + 2.610081; 2.575115; 0.000000;, + -2.589118; 2.575115; 0.000000;, + 2.610081; 2.575115; 0.000000;, + -2.589118; 2.575115; 0.259960;, + 2.610081; 2.575115; 0.259960;, + -2.589118; 3.874915; 0.259960;, + 2.610081; 2.575115; 0.259960;, + -2.589118; 2.575115; 0.259960;, + 2.610081; 2.575115; 0.259960;, + -2.589118; 3.874915; 0.259960;, + 2.610081; 3.874915; 0.259960;, + 2.610081;-2.624084; 0.259960;, + 2.610081; 2.575115; 0.000000;, + 2.610081; 2.575115; 0.259960;, + 2.610081; 2.575115; 0.000000;, + 2.610081;-2.624084; 0.259960;, + 2.610081;-2.624084; 0.000000;, + 2.610081;-2.624084; 0.259960;, + -2.589118;-2.624084; 0.000000;, + 2.610081;-2.624084; 0.000000;, + -2.589118;-2.624084; 0.000000;, + 2.610081;-2.624084; 0.259960;, + -2.589118;-2.624084; 0.259960;, + 2.610081;-2.624084; 0.259960;, + -2.589118;-3.923884; 0.259960;, + -2.589118;-2.624084; 0.259960;, + -2.589118;-3.923884; 0.259960;, + 2.610081;-2.624084; 0.259960;, + 2.610081;-3.923884; 0.259960;, + -2.589118;-2.624084; 0.000000;, + 2.610081; 2.575115; 0.000000;, + 2.610081;-2.624084; 0.000000;, + 2.610081; 2.575115; 0.000000;, + -2.589118;-2.624084; 0.000000;, + -2.589118; 2.575115; 0.000000;, + 3.909881; 2.575115; 0.259960;, + 2.610081;-2.624084; 0.259960;, + 2.610081; 2.575115; 0.259960;, + 2.610081;-2.624084; 0.259960;, + 3.909881; 2.575115; 0.259960;, + 3.909881;-2.624084; 0.259960;, + 3.259981;-3.273984; 0.519920;, + 3.909881;-2.624084; 0.519920;, + 3.909881;-3.273984; 0.519920;, + 4.559781; 2.575115; 0.519920;, + 3.909881;-2.624084; 0.519920;, + 3.909881; 2.575115; 0.519920;, + 3.909881;-2.624084; 0.519920;, + 4.559781; 2.575115; 0.519920;, + 4.559781;-2.624084; 0.519920;, + -3.239018; 3.225015; 0.519920;, + -3.239018; 3.874915; 1.169820;, + -3.239018; 3.874915; 0.519920;, + -3.239018; 3.874915; 1.169820;, + -3.239018; 3.225015; 0.519920;, + -3.239018; 3.225015; 1.169820;, + -3.239018; 3.225015; 0.519920;, + -3.888918; 3.225015; 1.169820;, + -3.239018; 3.225015; 1.169820;, + -3.888918; 3.225015; 1.169820;, + -3.239018; 3.225015; 0.519920;, + -3.888918; 3.225015; 0.519920;, + -4.538818;-1.324284; 1.169820;, + -3.888918;-1.324284; 1.819720;, + -4.538818;-1.324284; 1.819720;, + -3.888918;-1.324284; 1.819720;, + -4.538818;-1.324284; 1.169820;, + -3.888918;-1.324284; 1.169820;, + 4.559781;-1.974184; 1.169820;, + 4.559781; 2.575115; 0.519920;, + 4.559781;-1.974184; 2.469620;, + 4.559781;-1.974184; 2.469620;, + 4.559781; 2.575115; 0.519920;, + 4.559781;-1.324284; 2.469620;, + 4.559781;-1.324284; 2.469620;, + 4.559781; 2.575115; 0.519920;, + 4.559781;-1.324284; 3.119520;, + 4.559781;-1.324284; 3.119520;, + 4.559781; 2.575115; 0.519920;, + 4.559781; 1.925215; 1.169820;, + 4.559781; 1.925215; 1.169820;, + 4.559781; 2.575115; 0.519920;, + 4.559781; 2.575115; 1.169820;, + 4.559781;-1.324284; 3.119520;, + 4.559781; 1.925215; 1.169820;, + 4.559781; 1.275315; 2.469620;, + 4.559781; 1.925215; 2.469620;, + 4.559781; 1.275315; 2.469620;, + 4.559781; 1.925215; 1.169820;, + 3.909881; 1.925215; 2.469620;, + 4.559781; 1.275315; 2.469620;, + 4.559781; 1.925215; 2.469620;, + 4.559781; 1.275315; 2.469620;, + 3.909881; 1.925215; 2.469620;, + 3.909881; 1.275315; 2.469620;, + 4.559781; 1.925215; 1.169820;, + 3.909881; 1.925215; 2.469620;, + 4.559781; 1.925215; 2.469620;, + 3.909881; 1.925215; 2.469620;, + 4.559781; 1.925215; 1.169820;, + 3.909881; 1.925215; 1.169820;, + 4.559781; 1.275315; 3.119520;, + 4.559781;-1.324284; 3.119520;, + 4.559781; 1.275315; 2.469620;, + 4.559781;-1.324284; 3.119520;, + 3.909881;-1.324284; 2.469620;, + 4.559781;-1.324284; 2.469620;, + 3.909881;-1.324284; 2.469620;, + 4.559781;-1.324284; 3.119520;, + 3.909881;-1.324284; 3.119520;, + 3.909881;-1.324284; 3.119520;, + 3.909881;-1.974184; 2.469620;, + 3.909881;-1.324284; 2.469620;, + 4.559781;-1.974184; 2.469620;, + 3.909881;-1.324284; 2.469620;, + 3.909881;-1.974184; 2.469620;, + 3.909881;-1.324284; 2.469620;, + 4.559781;-1.974184; 2.469620;, + 4.559781;-1.324284; 2.469620;, + 3.909881;-1.974184; 1.169820;, + 4.559781;-1.974184; 2.469620;, + 3.909881;-1.974184; 2.469620;, + 4.559781;-1.974184; 2.469620;, + 3.909881;-1.974184; 1.169820;, + 4.559781;-1.974184; 1.169820;, + -2.589118; 2.575115; 4.094369;, + 2.610081;-2.624084; 4.094369;, + 2.610081; 2.575115; 4.094369;, + 2.610081;-2.624084; 4.094369;, + -2.589118; 2.575115; 4.094369;, + -2.589118;-2.624084; 4.094369;, + 5.909881; 1.275315; 2.469620;, + 5.909881;-1.324284; 0.519920;, + 5.909881;-1.324284; 2.469620;, + 5.909881;-1.324284; 0.519920;, + 5.909881; 1.275315; 2.469620;, + 5.909881; 1.275315; 0.519920;, + 5.909881; 1.275315; 2.469620;, + 8.327509; 1.275315; 0.519920;, + 5.909881; 1.275315; 0.519920;, + 8.327509; 1.275315; 0.519920;, + 5.909881; 1.275315; 2.469620;, + 8.327509; 1.275315; 2.469620;, + 5.909881; 1.275315; 2.469620;, + 8.327509;-1.324284; 2.469620;, + 8.327509; 1.275315; 2.469620;, + 8.327509;-1.324284; 2.469620;, + 5.909881; 1.275315; 2.469620;, + 5.909881;-1.324284; 2.469620;, + 5.909881;-1.324284; 0.519920;, + 8.327509;-1.324284; 2.469620;, + 5.909881;-1.324284; 2.469620;, + 8.327509;-1.324284; 2.469620;, + 5.909881;-1.324284; 0.519920;, + 8.327509;-1.324284; 0.519920;, + 5.909881;-1.324284; 0.519920;, + 8.327509; 1.275315; 0.519920;, + 8.327509;-1.324284; 0.519920;, + 8.327509; 1.275315; 0.519920;, + 5.909881;-1.324284; 0.519920;, + 5.909881; 1.275315; 0.519920;, + 8.327509;-1.064324; 0.779880;, + 8.327509;-1.324284; 0.519920;, + 8.327509; 1.275315; 0.519920;, + 8.327509;-1.324284; 0.519920;, + 8.327509;-1.064324; 0.779880;, + 8.327509;-1.324284; 2.469620;, + 8.327509;-1.064324; 2.209660;, + 8.327509;-1.324284; 2.469620;, + 8.327509;-1.064324; 0.779880;, + 8.327509;-1.324284; 2.469620;, + 8.327509;-1.064324; 2.209660;, + 8.327509; 1.275315; 2.469620;, + 8.327509; 1.275315; 2.469620;, + 8.327509;-1.064324; 2.209660;, + 8.327509; 1.015355; 2.209660;, + 8.587469;-1.064324; 2.209660;, + 8.327509; 1.015355; 2.209660;, + 8.327509;-1.064324; 2.209660;, + 8.327509; 1.015355; 2.209660;, + 8.587469;-1.064324; 2.209660;, + 8.587469; 1.015355; 2.209660;, + 8.587469;-1.064324; 2.209660;, + 8.587469; 1.015355; 0.779880;, + 8.587469; 1.015355; 2.209660;, + 8.587469; 1.015355; 0.779880;, + 8.587469;-1.064324; 2.209660;, + 8.587469;-1.064324; 0.779880;, + 8.587469;-1.064324; 2.209660;, + 8.327509;-1.064324; 0.779880;, + 8.587469;-1.064324; 0.779880;, + 8.327509;-1.064324; 0.779880;, + 8.587469;-1.064324; 2.209660;, + 8.327509;-1.064324; 2.209660;, + 8.327509;-1.064324; 0.779880;, + 8.587469; 1.015355; 0.779880;, + 8.587469;-1.064324; 0.779880;, + 8.587469; 1.015355; 0.779880;, + 8.327509;-1.064324; 0.779880;, + 8.327509; 1.015355; 0.779880;, + 8.327509;-1.064324; 0.779880;, + 8.327509; 1.275315; 0.519920;, + 8.327509; 1.015355; 0.779880;, + 8.327509; 1.015355; 0.779880;, + 8.327509; 1.275315; 0.519920;, + 8.327509; 1.015355; 2.209660;, + 8.327509; 1.275315; 2.469620;, + 8.327509; 1.015355; 2.209660;, + 8.327509; 1.275315; 0.519920;, + 8.327509; 1.015355; 2.209660;, + 8.587469; 1.015355; 0.779880;, + 8.327509; 1.015355; 0.779880;, + 8.587469; 1.015355; 0.779880;, + 8.327509; 1.015355; 2.209660;, + 8.587469; 1.015355; 2.209660;, + -2.589118;-5.324285; 0.507232;, + -3.888918;-6.624084; 0.507232;, + -3.888918;-5.324285; 0.507232;, + -2.589118;-5.324285; 0.507232;, + -2.589118;-9.223684; 0.507232;, + -3.888918;-6.624084; 0.507232;, + -4.213868;-9.223684; 0.507232;, + -3.888918;-6.624084; 0.507232;, + -2.589118;-9.223684; 0.507232;, + -3.888918;-6.624084; 0.507232;, + -4.213868;-9.223684; 0.507232;, + -4.213868;-6.624084; 0.507232;, + -4.213868;-9.223684; 0.507232;, + -4.213868;-6.624084; 1.807031;, + -4.213868;-6.624084; 0.507232;, + -4.213868;-6.624084; 1.807031;, + -4.213868;-9.223684; 0.507232;, + -4.213868;-9.223684; 1.807031;, + -4.213868;-9.223684; 0.507232;, + -2.589118;-9.223684; 1.807031;, + -4.213868;-9.223684; 1.807031;, + -2.589118;-9.223684; 1.807031;, + -4.213868;-9.223684; 0.507232;, + -2.589118;-9.223684; 0.507232;, + -2.589118;-8.573784; 0.507232;, + -2.589118;-9.223684; 1.807031;, + -2.589118;-9.223684; 0.507232;, + -2.589118;-9.223684; 1.807031;, + -2.589118;-8.573784; 0.507232;, + -2.589118;-5.324285; 1.807031;, + -2.589118;-5.324285; 1.807031;, + -2.589118;-8.573784; 0.507232;, + -2.589118;-7.923884; 0.507232;, + -2.589118;-9.223684; 0.507232;, + -2.589118;-7.923884; 0.507232;, + -2.589118;-8.573784; 0.507232;, + -2.589118;-9.223684; 0.507232;, + -2.589118;-5.324285; 0.507232;, + -2.589118;-7.923884; 0.507232;, + -2.589118;-5.324285; 1.807031;, + -2.589118;-7.923884; 0.507232;, + -2.589118;-5.324285; 0.507232;, + -2.589118;-5.324285; 0.507232;, + -3.888918;-5.324285; 1.807031;, + -2.589118;-5.324285; 1.807031;, + -3.888918;-5.324285; 1.807031;, + -2.589118;-5.324285; 0.507232;, + -3.888918;-5.324285; 0.507232;, + -3.888918;-5.324285; 0.507232;, + -3.888918;-6.624084; 1.807031;, + -3.888918;-5.324285; 1.807031;, + -3.888918;-6.624084; 1.807031;, + -3.888918;-5.324285; 0.507232;, + -3.888918;-6.624084; 0.507232;, + -3.888918;-6.624084; 0.507232;, + -4.213868;-6.624084; 1.157131;, + -3.888918;-6.624084; 1.807031;, + -4.213868;-6.624084; 1.157131;, + -3.888918;-6.624084; 0.507232;, + -4.213868;-6.624084; 0.507232;, + -4.213868;-6.624084; 0.507232;, + -4.213868;-6.624084; 1.807031;, + -4.213868;-6.624084; 1.157131;, + -3.888918;-6.624084; 1.807031;, + -4.213868;-6.624084; 1.157131;, + -4.213868;-6.624084; 1.807031;, + -4.213868;-6.624084; 1.807031;, + -2.589118;-9.223684; 1.807031;, + -3.888918;-6.624084; 1.807031;, + -2.589118;-9.223684; 1.807031;, + -4.213868;-6.624084; 1.807031;, + -4.213868;-9.223684; 1.807031;, + -3.888918;-6.624084; 1.807031;, + -2.589118;-9.223684; 1.807031;, + -2.589118;-5.324285; 1.807031;, + -2.589118;-5.324285; 1.807031;, + -3.888918;-5.324285; 1.807031;, + -3.888918;-6.624084; 1.807031;; + 390; + 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;, + 3;398,397,396;, + 3;401,400,399;, + 3;404,403,402;, + 3;407,406,405;, + 3;410,409,408;, + 3;413,412,411;, + 3;416,415,414;, + 3;419,418,417;, + 3;422,421,420;, + 3;425,424,423;, + 3;428,427,426;, + 3;431,430,429;, + 3;434,433,432;, + 3;437,436,435;, + 3;440,439,438;, + 3;443,442,441;, + 3;446,445,444;, + 3;449,448,447;, + 3;452,451,450;, + 3;455,454,453;, + 3;458,457,456;, + 3;461,460,459;, + 3;464,463,462;, + 3;467,466,465;, + 3;470,469,468;, + 3;473,472,471;, + 3;476,475,474;, + 3;479,478,477;, + 3;482,481,480;, + 3;485,484,483;, + 3;488,487,486;, + 3;491,490,489;, + 3;494,493,492;, + 3;497,496,495;, + 3;500,499,498;, + 3;503,502,501;, + 3;506,505,504;, + 3;509,508,507;, + 3;512,511,510;, + 3;515,514,513;, + 3;518,517,516;, + 3;521,520,519;, + 3;524,523,522;, + 3;527,526,525;, + 3;530,529,528;, + 3;533,532,531;, + 3;536,535,534;, + 3;539,538,537;, + 3;542,541,540;, + 3;545,544,543;, + 3;548,547,546;, + 3;551,550,549;, + 3;554,553,552;, + 3;557,556,555;, + 3;560,559,558;, + 3;563,562,561;, + 3;566,565,564;, + 3;569,568,567;, + 3;572,571,570;, + 3;575,574,573;, + 3;578,577,576;, + 3;581,580,579;, + 3;584,583,582;, + 3;587,586,585;, + 3;590,589,588;, + 3;593,592,591;, + 3;596,595,594;, + 3;599,598,597;, + 3;602,601,600;, + 3;605,604,603;, + 3;608,607,606;, + 3;611,610,609;, + 3;614,613,612;, + 3;617,616,615;, + 3;620,619,618;, + 3;623,622,621;, + 3;626,625,624;, + 3;629,628,627;, + 3;632,631,630;, + 3;635,634,633;, + 3;638,637,636;, + 3;641,640,639;, + 3;644,643,642;, + 3;647,646,645;, + 3;650,649,648;, + 3;653,652,651;, + 3;656,655,654;, + 3;659,658,657;, + 3;662,661,660;, + 3;665,664,663;, + 3;668,667,666;, + 3;671,670,669;, + 3;674,673,672;, + 3;677,676,675;, + 3;680,679,678;, + 3;683,682,681;, + 3;686,685,684;, + 3;689,688,687;, + 3;692,691,690;, + 3;695,694,693;, + 3;698,697,696;, + 3;701,700,699;, + 3;704,703,702;, + 3;707,706,705;, + 3;710,709,708;, + 3;713,712,711;, + 3;716,715,714;, + 3;719,718,717;, + 3;722,721,720;, + 3;725,724,723;, + 3;728,727,726;, + 3;731,730,729;, + 3;734,733,732;, + 3;737,736,735;, + 3;740,739,738;, + 3;743,742,741;, + 3;746,745,744;, + 3;749,748,747;, + 3;752,751,750;, + 3;755,754,753;, + 3;758,757,756;, + 3;761,760,759;, + 3;764,763,762;, + 3;767,766,765;, + 3;770,769,768;, + 3;773,772,771;, + 3;776,775,774;, + 3;779,778,777;, + 3;782,781,780;, + 3;785,784,783;, + 3;788,787,786;, + 3;791,790,789;, + 3;794,793,792;, + 3;797,796,795;, + 3;800,799,798;, + 3;803,802,801;, + 3;806,805,804;, + 3;809,808,807;, + 3;812,811,810;, + 3;815,814,813;, + 3;818,817,816;, + 3;821,820,819;, + 3;824,823,822;, + 3;827,826,825;, + 3;830,829,828;, + 3;833,832,831;, + 3;836,835,834;, + 3;839,838,837;, + 3;842,841,840;, + 3;845,844,843;, + 3;848,847,846;, + 3;851,850,849;, + 3;854,853,852;, + 3;857,856,855;, + 3;860,859,858;, + 3;863,862,861;, + 3;866,865,864;, + 3;869,868,867;, + 3;872,871,870;, + 3;875,874,873;, + 3;878,877,876;, + 3;881,880,879;, + 3;884,883,882;, + 3;887,886,885;, + 3;890,889,888;, + 3;893,892,891;, + 3;896,895,894;, + 3;899,898,897;, + 3;902,901,900;, + 3;905,904,903;, + 3;908,907,906;, + 3;911,910,909;, + 3;914,913,912;, + 3;917,916,915;, + 3;920,919,918;, + 3;923,922,921;, + 3;926,925,924;, + 3;929,928,927;, + 3;932,931,930;, + 3;935,934,933;, + 3;938,937,936;, + 3;941,940,939;, + 3;944,943,942;, + 3;947,946,945;, + 3;950,949,948;, + 3;953,952,951;, + 3;956,955,954;, + 3;959,958,957;, + 3;962,961,960;, + 3;965,964,963;, + 3;968,967,966;, + 3;971,970,969;, + 3;974,973,972;, + 3;977,976,975;, + 3;980,979,978;, + 3;983,982,981;, + 3;986,985,984;, + 3;989,988,987;, + 3;992,991,990;, + 3;995,994,993;, + 3;998,997,996;, + 3;1001,1000,999;, + 3;1004,1003,1002;, + 3;1007,1006,1005;, + 3;1010,1009,1008;, + 3;1013,1012,1011;, + 3;1016,1015,1014;, + 3;1019,1018,1017;, + 3;1022,1021,1020;, + 3;1025,1024,1023;, + 3;1028,1027,1026;, + 3;1031,1030,1029;, + 3;1034,1033,1032;, + 3;1037,1036,1035;, + 3;1040,1039,1038;, + 3;1043,1042,1041;, + 3;1046,1045,1044;, + 3;1049,1048,1047;, + 3;1052,1051,1050;, + 3;1055,1054,1053;, + 3;1058,1057,1056;, + 3;1061,1060,1059;, + 3;1064,1063,1062;, + 3;1067,1066,1065;, + 3;1070,1069,1068;, + 3;1073,1072,1071;, + 3;1076,1075,1074;, + 3;1079,1078,1077;, + 3;1082,1081,1080;, + 3;1085,1084,1083;, + 3;1088,1087,1086;, + 3;1091,1090,1089;, + 3;1094,1093,1092;, + 3;1097,1096,1095;, + 3;1100,1099,1098;, + 3;1103,1102,1101;, + 3;1106,1105,1104;, + 3;1109,1108,1107;, + 3;1112,1111,1110;, + 3;1115,1114,1113;, + 3;1118,1117,1116;, + 3;1121,1120,1119;, + 3;1124,1123,1122;, + 3;1127,1126,1125;, + 3;1130,1129,1128;, + 3;1133,1132,1131;, + 3;1136,1135,1134;, + 3;1139,1138,1137;, + 3;1142,1141,1140;, + 3;1145,1144,1143;, + 3;1148,1147,1146;, + 3;1151,1150,1149;, + 3;1154,1153,1152;, + 3;1157,1156,1155;, + 3;1160,1159,1158;, + 3;1163,1162,1161;, + 3;1166,1165,1164;, + 3;1169,1168,1167;; + MeshNormals { // Group normals + 390; + -1.000000; 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; 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; 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;, + 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;, + -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;, + 0.000000; 1.000000;-0.000000;, + 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; 0.000000; 0.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;, + 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;-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; 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;, + -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;, + 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;, + 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;, + -1.000000;-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; 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;, + 1.000000;-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;, + 1.000000; 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;, + 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;, + 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;, + -1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000;-0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -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; 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; 1.000000;-0.000000;, + 0.000000; 1.000000; 0.000000;, + 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;, + 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;, + 1.000000; 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; 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;, + -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;, + 1.000000; 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;, + 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;-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;, + -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;, + 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;, + -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;, + -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;, + -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;, + -1.000000;-0.000000;-0.000000;, + -1.000000; 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;, + -0.000000; 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;, + -0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 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; 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; 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;, + -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;, + 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;-1.000000; 0.000000;, + 0.000000;-1.000000;-0.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;, + 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;-1.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 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;, + 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; 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;-1.000000; 0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.000000;-1.000000;, + -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;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000;-1.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 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; 1.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; 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; 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;-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;, + -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;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 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; 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;, + 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;, + 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; 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; 1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;; + 390; + 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;, + 3;132,132,132;, + 3;133,133,133;, + 3;134,134,134;, + 3;135,135,135;, + 3;136,136,136;, + 3;137,137,137;, + 3;138,138,138;, + 3;139,139,139;, + 3;140,140,140;, + 3;141,141,141;, + 3;142,142,142;, + 3;143,143,143;, + 3;144,144,144;, + 3;145,145,145;, + 3;146,146,146;, + 3;147,147,147;, + 3;148,148,148;, + 3;149,149,149;, + 3;150,150,150;, + 3;151,151,151;, + 3;152,152,152;, + 3;153,153,153;, + 3;154,154,154;, + 3;155,155,155;, + 3;156,156,156;, + 3;157,157,157;, + 3;158,158,158;, + 3;159,159,159;, + 3;160,160,160;, + 3;161,161,161;, + 3;162,162,162;, + 3;163,163,163;, + 3;164,164,164;, + 3;165,165,165;, + 3;166,166,166;, + 3;167,167,167;, + 3;168,168,168;, + 3;169,169,169;, + 3;170,170,170;, + 3;171,171,171;, + 3;172,172,172;, + 3;173,173,173;, + 3;174,174,174;, + 3;175,175,175;, + 3;176,176,176;, + 3;177,177,177;, + 3;178,178,178;, + 3;179,179,179;, + 3;180,180,180;, + 3;181,181,181;, + 3;182,182,182;, + 3;183,183,183;, + 3;184,184,184;, + 3;185,185,185;, + 3;186,186,186;, + 3;187,187,187;, + 3;188,188,188;, + 3;189,189,189;, + 3;190,190,190;, + 3;191,191,191;, + 3;192,192,192;, + 3;193,193,193;, + 3;194,194,194;, + 3;195,195,195;, + 3;196,196,196;, + 3;197,197,197;, + 3;198,198,198;, + 3;199,199,199;, + 3;200,200,200;, + 3;201,201,201;, + 3;202,202,202;, + 3;203,203,203;, + 3;204,204,204;, + 3;205,205,205;, + 3;206,206,206;, + 3;207,207,207;, + 3;208,208,208;, + 3;209,209,209;, + 3;210,210,210;, + 3;211,211,211;, + 3;212,212,212;, + 3;213,213,213;, + 3;214,214,214;, + 3;215,215,215;, + 3;216,216,216;, + 3;217,217,217;, + 3;218,218,218;, + 3;219,219,219;, + 3;220,220,220;, + 3;221,221,221;, + 3;222,222,222;, + 3;223,223,223;, + 3;224,224,224;, + 3;225,225,225;, + 3;226,226,226;, + 3;227,227,227;, + 3;228,228,228;, + 3;229,229,229;, + 3;230,230,230;, + 3;231,231,231;, + 3;232,232,232;, + 3;233,233,233;, + 3;234,234,234;, + 3;235,235,235;, + 3;236,236,236;, + 3;237,237,237;, + 3;238,238,238;, + 3;239,239,239;, + 3;240,240,240;, + 3;241,241,241;, + 3;242,242,242;, + 3;243,243,243;, + 3;244,244,244;, + 3;245,245,245;, + 3;246,246,246;, + 3;247,247,247;, + 3;248,248,248;, + 3;249,249,249;, + 3;250,250,250;, + 3;251,251,251;, + 3;252,252,252;, + 3;253,253,253;, + 3;254,254,254;, + 3;255,255,255;, + 3;256,256,256;, + 3;257,257,257;, + 3;258,258,258;, + 3;259,259,259;, + 3;260,260,260;, + 3;261,261,261;, + 3;262,262,262;, + 3;263,263,263;, + 3;264,264,264;, + 3;265,265,265;, + 3;266,266,266;, + 3;267,267,267;, + 3;268,268,268;, + 3;269,269,269;, + 3;270,270,270;, + 3;271,271,271;, + 3;272,272,272;, + 3;273,273,273;, + 3;274,274,274;, + 3;275,275,275;, + 3;276,276,276;, + 3;277,277,277;, + 3;278,278,278;, + 3;279,279,279;, + 3;280,280,280;, + 3;281,281,281;, + 3;282,282,282;, + 3;283,283,283;, + 3;284,284,284;, + 3;285,285,285;, + 3;286,286,286;, + 3;287,287,287;, + 3;288,288,288;, + 3;289,289,289;, + 3;290,290,290;, + 3;291,291,291;, + 3;292,292,292;, + 3;293,293,293;, + 3;294,294,294;, + 3;295,295,295;, + 3;296,296,296;, + 3;297,297,297;, + 3;298,298,298;, + 3;299,299,299;, + 3;300,300,300;, + 3;301,301,301;, + 3;302,302,302;, + 3;303,303,303;, + 3;304,304,304;, + 3;305,305,305;, + 3;306,306,306;, + 3;307,307,307;, + 3;308,308,308;, + 3;309,309,309;, + 3;310,310,310;, + 3;311,311,311;, + 3;312,312,312;, + 3;313,313,313;, + 3;314,314,314;, + 3;315,315,315;, + 3;316,316,316;, + 3;317,317,317;, + 3;318,318,318;, + 3;319,319,319;, + 3;320,320,320;, + 3;321,321,321;, + 3;322,322,322;, + 3;323,323,323;, + 3;324,324,324;, + 3;325,325,325;, + 3;326,326,326;, + 3;327,327,327;, + 3;328,328,328;, + 3;329,329,329;, + 3;330,330,330;, + 3;331,331,331;, + 3;332,332,332;, + 3;333,333,333;, + 3;334,334,334;, + 3;335,335,335;, + 3;336,336,336;, + 3;337,337,337;, + 3;338,338,338;, + 3;339,339,339;, + 3;340,340,340;, + 3;341,341,341;, + 3;342,342,342;, + 3;343,343,343;, + 3;344,344,344;, + 3;345,345,345;, + 3;346,346,346;, + 3;347,347,347;, + 3;348,348,348;, + 3;349,349,349;, + 3;350,350,350;, + 3;351,351,351;, + 3;352,352,352;, + 3;353,353,353;, + 3;354,354,354;, + 3;355,355,355;, + 3;356,356,356;, + 3;357,357,357;, + 3;358,358,358;, + 3;359,359,359;, + 3;360,360,360;, + 3;361,361,361;, + 3;362,362,362;, + 3;363,363,363;, + 3;364,364,364;, + 3;365,365,365;, + 3;366,366,366;, + 3;367,367,367;, + 3;368,368,368;, + 3;369,369,369;, + 3;370,370,370;, + 3;371,371,371;, + 3;372,372,372;, + 3;373,373,373;, + 3;374,374,374;, + 3;375,375,375;, + 3;376,376,376;, + 3;377,377,377;, + 3;378,378,378;, + 3;379,379,379;, + 3;380,380,380;, + 3;381,381,381;, + 3;382,382,382;, + 3;383,383,383;, + 3;384,384,384;, + 3;385,385,385;, + 3;386,386,386;, + 3;387,387,387;, + 3;388,388,388;, + 3;389,389,389;; + } // End of Group normals + MeshTextureCoords { // Group UV coordinates + 1170; + 0.689883; 0.276347;, + 0.738835; 0.227695;, + 0.690033; 0.227546;, + 0.738835; 0.227695;, + 0.689883; 0.276347;, + 0.738760; 0.252096;, + 0.738760; 0.252096;, + 0.689883; 0.276347;, + 0.738685; 0.276497;, + 0.738685; 0.276497;, + 0.689883; 0.276347;, + 0.689584; 0.373950;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.544867; 0.373912;, + 0.544418; 0.227508;, + 0.496066; 0.374062;, + 0.496066; 0.374062;, + 0.544418; 0.227508;, + 0.495617; 0.227658;, + 0.411001; 0.131629;, + 0.362349; 0.082678;, + 0.362200; 0.131479;, + 0.362349; 0.082678;, + 0.411001; 0.131629;, + 0.411151; 0.082828;, + 0.787298; 0.531767;, + 0.738048; 0.385513;, + 0.738497; 0.531917;, + 0.787223; 0.507367;, + 0.738048; 0.385513;, + 0.787298; 0.531767;, + 0.787148; 0.482966;, + 0.738048; 0.385513;, + 0.787223; 0.507367;, + 0.787074; 0.458565;, + 0.738048; 0.385513;, + 0.787148; 0.482966;, + 0.738048; 0.385513;, + 0.787074; 0.458565;, + 0.786849; 0.385363;, + 0.738610; 0.300897;, + 0.689584; 0.373950;, + 0.738385; 0.374100;, + 0.738685; 0.276497;, + 0.689584; 0.373950;, + 0.738610; 0.300897;, + 0.690033; 0.077820;, + 0.738685; 0.126771;, + 0.738835; 0.077970;, + 0.738685; 0.126771;, + 0.690033; 0.077820;, + 0.714284; 0.126697;, + 0.714284; 0.126697;, + 0.690033; 0.077820;, + 0.689883; 0.126622;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.617019; 0.422676;, + 0.666270; 0.276422;, + 0.617468; 0.276272;, + 0.666270; 0.276422;, + 0.617019; 0.422676;, + 0.665821; 0.422826;, + 0.690559; 0.945155;, + 0.641907; 0.896204;, + 0.641758; 0.945005;, + 0.690559; 0.945155;, + 0.691008; 0.798751;, + 0.641907; 0.896204;, + 0.630006; 0.798564;, + 0.641907; 0.896204;, + 0.691008; 0.798751;, + 0.641907; 0.896204;, + 0.630006; 0.798564;, + 0.629707; 0.896167;, + 0.617169; 0.264859;, + 0.666270; 0.167406;, + 0.617468; 0.167256;, + 0.666270; 0.167406;, + 0.617169; 0.264859;, + 0.665970; 0.265009;, + 0.422714; 0.070478;, + 0.471328; 0.131629;, + 0.471515; 0.070628;, + 0.471328; 0.131629;, + 0.422714; 0.070478;, + 0.422527; 0.131480;, + 0.556505; 0.251909;, + 0.605381; 0.227658;, + 0.556580; 0.227508;, + 0.605381; 0.227658;, + 0.556505; 0.251909;, + 0.604932; 0.374062;, + 0.604932; 0.374062;, + 0.556505; 0.251909;, + 0.556430; 0.276310;, + 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.604932; 0.374062;, + 0.556430; 0.276310;, + 0.556131; 0.373912;, + 0.495617; 0.131480;, + 0.544568; 0.082828;, + 0.495766; 0.082678;, + 0.544568; 0.082828;, + 0.495617; 0.131480;, + 0.544418; 0.131629;, + 0.350711; 0.067007;, + 0.301760; 0.115659;, + 0.350562; 0.115808;, + 0.301760; 0.115659;, + 0.350711; 0.067007;, + 0.301910; 0.066857;, + 0.066783; 0.212683;, + 0.079058; 0.188320;, + 0.066933; 0.163882;, + 0.079058; 0.188320;, + 0.066783; 0.212683;, + 0.078984; 0.212721;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.066933; 0.163882;, + 0.079058; 0.188320;, + 0.079133; 0.163920;, + 0.678320; 0.531693;, + 0.617019; 0.434277;, + 0.666120; 0.531730;, + 0.617019; 0.434277;, + 0.678320; 0.531693;, + 0.678021; 0.434090;, + 0.666120; 0.531730;, + 0.617019; 0.434277;, + 0.617468; 0.580681;, + 0.617468; 0.580681;, + 0.666270; 0.580531;, + 0.666120; 0.531730;, + 0.435402; 0.276310;, + 0.484353; 0.227658;, + 0.435552; 0.227508;, + 0.484353; 0.227658;, + 0.435402; 0.276310;, + 0.484278; 0.252059;, + 0.484278; 0.252059;, + 0.435402; 0.276310;, + 0.484203; 0.276459;, + 0.484203; 0.276459;, + 0.435402; 0.276310;, + 0.435102; 0.373912;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.362424; 0.227508;, + 0.361975; 0.373912;, + 0.411226; 0.227658;, + 0.411226; 0.227658;, + 0.361975; 0.373912;, + 0.410776; 0.374062;, + 0.078984; 0.128106;, + 0.030332; 0.079154;, + 0.030182; 0.127956;, + 0.030332; 0.079154;, + 0.078984; 0.128106;, + 0.079133; 0.079304;, + 0.799986; 0.993732;, + 0.750735; 0.847477;, + 0.751184; 0.993882;, + 0.799911; 0.969331;, + 0.750735; 0.847477;, + 0.799986; 0.993732;, + 0.799836; 0.944931;, + 0.750735; 0.847477;, + 0.799911; 0.969331;, + 0.799761; 0.920530;, + 0.750735; 0.847477;, + 0.799836; 0.944931;, + 0.750735; 0.847477;, + 0.799761; 0.920530;, + 0.799537; 0.847328;, + 0.484128; 0.300860;, + 0.435102; 0.373912;, + 0.483904; 0.374062;, + 0.484203; 0.276459;, + 0.435102; 0.373912;, + 0.484128; 0.300860;, + 0.556131; 0.131479;, + 0.605082; 0.082828;, + 0.556280; 0.082678;, + 0.605082; 0.082828;, + 0.556131; 0.131479;, + 0.605007; 0.107228;, + 0.605007; 0.107228;, + 0.556131; 0.131479;, + 0.604932; 0.131629;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.738048; 0.787113;, + 0.787298; 0.640858;, + 0.738497; 0.640709;, + 0.787298; 0.640858;, + 0.738048; 0.787113;, + 0.786849; 0.787263;, + 0.810814; 0.167555;, + 0.859414; 0.101524;, + 0.810612; 0.101674;, + 0.859414; 0.101524;, + 0.810814; 0.167555;, + 0.859616; 0.167406;, + 0.139348; 0.079304;, + 0.090397; 0.127956;, + 0.139198; 0.128106;, + 0.090397; 0.127956;, + 0.139348; 0.079304;, + 0.090547; 0.079154;, + 0.919681; 0.167555;, + 0.871082; 0.101524;, + 0.870880; 0.167406;, + 0.871082; 0.101524;, + 0.919681; 0.167555;, + 0.919883; 0.101674;, + 0.859563; 0.041459;, + 0.810612; 0.090110;, + 0.859414; 0.090260;, + 0.810612; 0.090110;, + 0.859563; 0.041459;, + 0.810762; 0.041309;, + 0.932107; 0.531917;, + 0.883508; 0.465885;, + 0.883306; 0.531767;, + 0.883508; 0.465885;, + 0.932107; 0.531917;, + 0.932309; 0.466035;, + 0.617266; 0.155843;, + 0.666270; 0.090110;, + 0.617468; 0.089961;, + 0.666270; 0.090110;, + 0.617266; 0.155843;, + 0.666068; 0.155992;, + 0.178172; 0.683797;, + 0.350711; 0.787320;, + 0.212680; 0.649289;, + 0.350711; 0.787320;, + 0.178172; 0.683797;, + 0.316203; 0.821828;, + 0.739472; 0.798676;, + 0.702272; 0.993769;, + 0.738873; 0.993882;, + 0.702272; 0.993769;, + 0.739472; 0.798676;, + 0.702871; 0.798564;, + 0.726185; 0.787263;, + 0.690183; 0.591945;, + 0.689584; 0.787150;, + 0.690183; 0.591945;, + 0.726185; 0.787263;, + 0.726784; 0.592057;, + 0.178172; 0.683797;, + 0.040140; 0.821828;, + 0.316203; 0.821828;, + 0.316203; 0.821828;, + 0.040140; 0.821828;, + 0.178172; 0.959860;, + 0.350711; 0.236200;, + 0.313512; 0.431294;, + 0.350113; 0.431406;, + 0.313512; 0.431294;, + 0.350711; 0.236200;, + 0.314110; 0.236088;, + 0.726185; 0.580681;, + 0.690183; 0.385363;, + 0.689584; 0.580569;, + 0.690183; 0.385363;, + 0.726185; 0.580681;, + 0.726784; 0.385476;, + 0.178172; 0.959860;, + 0.350711; 0.856336;, + 0.316203; 0.821828;, + 0.350711; 0.856336;, + 0.178172; 0.959860;, + 0.212680; 0.994368;, + 0.738272; 0.556093;, + 0.786849; 0.629445;, + 0.787074; 0.556243;, + 0.786849; 0.629445;, + 0.738272; 0.556093;, + 0.738048; 0.629295;, + 0.139198; 0.139369;, + 0.090622; 0.212721;, + 0.139423; 0.212571;, + 0.090622; 0.212721;, + 0.139198; 0.139369;, + 0.090397; 0.139519;, + 0.178172; 0.959860;, + 0.005632; 0.856336;, + 0.143664; 0.994368;, + 0.005632; 0.856336;, + 0.178172; 0.959860;, + 0.040140; 0.821828;, + 0.605157; 0.143043;, + 0.556131; 0.216095;, + 0.604932; 0.216245;, + 0.556131; 0.216095;, + 0.605157; 0.143043;, + 0.556355; 0.142893;, + 0.139348; 0.067741;, + 0.114873; 0.043415;, + 0.090547; 0.067891;, + 0.139348; 0.067741;, + 0.114798; 0.019015;, + 0.114873; 0.043415;, + 0.114798; 0.019015;, + 0.139348; 0.067741;, + 0.139198; 0.018940;, + 0.544418; 0.216245;, + 0.495841; 0.142893;, + 0.495617; 0.216095;, + 0.495841; 0.142893;, + 0.544418; 0.216245;, + 0.544643; 0.143043;, + 0.178172; 0.683797;, + 0.005632; 0.787320;, + 0.040140; 0.821828;, + 0.005632; 0.787320;, + 0.178172; 0.683797;, + 0.143664; 0.649289;, + 0.362200; 0.143043;, + 0.411226; 0.216095;, + 0.411001; 0.142893;, + 0.411226; 0.216095;, + 0.362200; 0.143043;, + 0.362424; 0.216245;, + 0.005632; 0.212571;, + 0.054658; 0.139519;, + 0.005856; 0.139369;, + 0.054658; 0.139519;, + 0.005632; 0.212571;, + 0.054433; 0.212721;, + 0.471890; 0.591870;, + 0.496066; 0.665147;, + 0.545092; 0.592094;, + 0.496066; 0.665147;, + 0.471890; 0.591870;, + 0.471291; 0.787075;, + 0.496066; 0.665147;, + 0.471291; 0.787075;, + 0.495916; 0.713948;, + 0.495916; 0.713948;, + 0.471291; 0.787075;, + 0.520317; 0.714023;, + 0.520317; 0.714023;, + 0.471291; 0.787075;, + 0.520242; 0.738424;, + 0.520242; 0.738424;, + 0.471291; 0.787075;, + 0.544642; 0.738499;, + 0.544642; 0.738499;, + 0.471291; 0.787075;, + 0.544493; 0.787300;, + 0.471291; 0.142893;, + 0.422714; 0.216245;, + 0.471515; 0.216095;, + 0.422714; 0.216245;, + 0.471291; 0.142893;, + 0.422489; 0.143043;, + 0.750323; 0.142930;, + 0.798900; 0.216282;, + 0.799124; 0.143080;, + 0.798900; 0.216282;, + 0.750323; 0.142930;, + 0.750098; 0.216132;, + 0.362574; 0.385326;, + 0.435177; 0.580756;, + 0.435776; 0.385550;, + 0.435177; 0.580756;, + 0.362574; 0.385326;, + 0.361975; 0.580531;, + 0.871088; 0.738386;, + 0.896088; 0.543256;, + 0.871687; 0.543181;, + 0.896088; 0.543256;, + 0.871088; 0.738386;, + 0.895489; 0.738461;, + 0.678695; 0.042081;, + 0.703021; 0.066557;, + 0.703095; 0.042156;, + 0.703021; 0.066557;, + 0.678695; 0.042081;, + 0.678620; 0.066482;, + 0.798637; 0.749725;, + 0.822962; 0.774200;, + 0.823037; 0.749800;, + 0.822962; 0.774200;, + 0.798637; 0.749725;, + 0.798562; 0.774126;, + 0.634273; 0.767054;, + 0.617019; 0.749800;, + 0.617019; 0.784308;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.917814; 0.454622;, + 0.917814; 0.385606;, + 0.883306; 0.420114;, + 0.629707; 0.956419;, + 0.629707; 0.990927;, + 0.646961; 0.973673;, + 0.326236; 0.055519;, + 0.350711; 0.031193;, + 0.326311; 0.031118;, + 0.350711; 0.031193;, + 0.326236; 0.055519;, + 0.350637; 0.055594;, + 0.931222; 0.034139;, + 0.955547; 0.058614;, + 0.955622; 0.034213;, + 0.955547; 0.058614;, + 0.931222; 0.034139;, + 0.931147; 0.058539;, + 0.678695; 0.006342;, + 0.703021; 0.030818;, + 0.703095; 0.006417;, + 0.703021; 0.030818;, + 0.678695; 0.006342;, + 0.678620; 0.030743;, + 0.285956; 0.171217;, + 0.261705; 0.122341;, + 0.261555; 0.171143;, + 0.286180; 0.098015;, + 0.261705; 0.122341;, + 0.285956; 0.171217;, + 0.237379; 0.097866;, + 0.261705; 0.122341;, + 0.286180; 0.098015;, + 0.261705; 0.122341;, + 0.237379; 0.097866;, + 0.237304; 0.122266;, + 0.950672; 0.713986;, + 0.974998; 0.738461;, + 0.975073; 0.714061;, + 0.974998; 0.738461;, + 0.950672; 0.713986;, + 0.950597; 0.738386;, + 0.955847; 0.167481;, + 0.931147; 0.069953;, + 0.931446; 0.167555;, + 0.931147; 0.069953;, + 0.955847; 0.167481;, + 0.955547; 0.069878;, + 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.150687; 0.139519;, + 0.175162; 0.163845;, + 0.199488; 0.139369;, + 0.150687; 0.139519;, + 0.175312; 0.212646;, + 0.175162; 0.163845;, + 0.175312; 0.212646;, + 0.150687; 0.139519;, + 0.150911; 0.212721;, + 0.186351; 0.067816;, + 0.210827; 0.043490;, + 0.186426; 0.043415;, + 0.210827; 0.043490;, + 0.186351; 0.067816;, + 0.210752; 0.067891;, + 0.435027; 0.787225;, + 0.460027; 0.592095;, + 0.435102; 0.762825;, + 0.460027; 0.592095;, + 0.435027; 0.787225;, + 0.459428; 0.787300;, + 0.714359; 0.030743;, + 0.738835; 0.006417;, + 0.714434; 0.006342;, + 0.738835; 0.006417;, + 0.714359; 0.030743;, + 0.738760; 0.030818;, + 0.175012; 0.043415;, + 0.150687; 0.067891;, + 0.175087; 0.067816;, + 0.150687; 0.067891;, + 0.175012; 0.043415;, + 0.150612; 0.043490;, + 0.870639; 0.749725;, + 0.894965; 0.774200;, + 0.895040; 0.749800;, + 0.894965; 0.774200;, + 0.870639; 0.749725;, + 0.870564; 0.774126;, + 0.090547; 0.067891;, + 0.114873; 0.043415;, + 0.090472; 0.043490;, + 0.967185; 0.143080;, + 0.991511; 0.167555;, + 0.991586; 0.143155;, + 0.991511; 0.167555;, + 0.967185; 0.143080;, + 0.967110; 0.167481;, + 0.966961; 0.034139;, + 0.991287; 0.058614;, + 0.991361; 0.034213;, + 0.991287; 0.058614;, + 0.966961; 0.034139;, + 0.966886; 0.058539;, + 0.669937; 0.749800;, + 0.645612; 0.774275;, + 0.670012; 0.774200;, + 0.645612; 0.774275;, + 0.669937; 0.749800;, + 0.645537; 0.749875;, + 0.848112; 0.798601;, + 0.871913; 0.993882;, + 0.872512; 0.798676;, + 0.871913; 0.993882;, + 0.848112; 0.798601;, + 0.847513; 0.993807;, + 0.810612; 0.374025;, + 0.835612; 0.178894;, + 0.811211; 0.178819;, + 0.835612; 0.178894;, + 0.810612; 0.374025;, + 0.835013; 0.374100;, + 0.213299; 0.442595;, + 0.285902; 0.638025;, + 0.286501; 0.442819;, + 0.285902; 0.638025;, + 0.213299; 0.442595;, + 0.212700; 0.637800;, + 0.750735; 0.835989;, + 0.775211; 0.811663;, + 0.750810; 0.811588;, + 0.775211; 0.811663;, + 0.750735; 0.835989;, + 0.775136; 0.836064;, + 0.834301; 0.385438;, + 0.858777; 0.409764;, + 0.858702; 0.385363;, + 0.858777; 0.409764;, + 0.834301; 0.385438;, + 0.834376; 0.409839;, + 0.556280; 0.071414;, + 0.580606; 0.046939;, + 0.556206; 0.047014;, + 0.605082; 0.071265;, + 0.580606; 0.046939;, + 0.556280; 0.071414;, + 0.604932; 0.022463;, + 0.580606; 0.046939;, + 0.605082; 0.071265;, + 0.580606; 0.046939;, + 0.604932; 0.022463;, + 0.580531; 0.022538;, + 0.799012; 0.034776;, + 0.774686; 0.059251;, + 0.799087; 0.059177;, + 0.774686; 0.059251;, + 0.799012; 0.034776;, + 0.774611; 0.034851;, + 0.950672; 0.668341;, + 0.974998; 0.692816;, + 0.975073; 0.668416;, + 0.974998; 0.692816;, + 0.950672; 0.668341;, + 0.950597; 0.692741;, + 0.948644; 0.945035;, + 0.973195; 0.993762;, + 0.973045; 0.944960;, + 0.973195; 0.993762;, + 0.948644; 0.945035;, + 0.948794; 0.993837;, + 0.544942; 0.640896;, + 0.545092; 0.592094;, + 0.520541; 0.640821;, + 0.545092; 0.592094;, + 0.496066; 0.665147;, + 0.520541; 0.640821;, + 0.520466; 0.665222;, + 0.520541; 0.640821;, + 0.496066; 0.665147;, + 0.079208; 0.032077;, + 0.054733; 0.007751;, + 0.054808; 0.032152;, + 0.054733; 0.007751;, + 0.079208; 0.032077;, + 0.079133; 0.007676;, + 0.495841; 0.458453;, + 0.520317; 0.434127;, + 0.495916; 0.434052;, + 0.544268; 0.580606;, + 0.520317; 0.434127;, + 0.495841; 0.458453;, + 0.544867; 0.385401;, + 0.520317; 0.434127;, + 0.544268; 0.580606;, + 0.520317; 0.434127;, + 0.544867; 0.385401;, + 0.520466; 0.385326;, + 0.871276; 0.374100;, + 0.847474; 0.178819;, + 0.846876; 0.374025;, + 0.847474; 0.178819;, + 0.871276; 0.374100;, + 0.871875; 0.178894;, + 0.941025; 0.374070;, + 0.951384; 0.178894;, + 0.941624; 0.178864;, + 0.951384; 0.178894;, + 0.941025; 0.374070;, + 0.950785; 0.374100;, + 0.753438; 0.010450;, + 0.763348; 0.059222;, + 0.763198; 0.010420;, + 0.763348; 0.059222;, + 0.753438; 0.010450;, + 0.753587; 0.059251;, + 0.286031; 0.037651;, + 0.261705; 0.062126;, + 0.286180; 0.086452;, + 0.261705; 0.062126;, + 0.286031; 0.037651;, + 0.261630; 0.037726;, + 0.987123; 0.239004;, + 0.962647; 0.214678;, + 0.962722; 0.239079;, + 0.962647; 0.214678;, + 0.987123; 0.239004;, + 0.987048; 0.214603;, + 0.987123; 0.302546;, + 0.962647; 0.278220;, + 0.962722; 0.302621;, + 0.962647; 0.278220;, + 0.987123; 0.302546;, + 0.987048; 0.278146;, + 0.544268; 0.580606;, + 0.520017; 0.531730;, + 0.519867; 0.580531;, + 0.544268; 0.580606;, + 0.495841; 0.458453;, + 0.520017; 0.531730;, + 0.520017; 0.531730;, + 0.495841; 0.458453;, + 0.495691; 0.507254;, + 0.495691; 0.507254;, + 0.495841; 0.458453;, + 0.471291; 0.507180;, + 0.471291; 0.507180;, + 0.495841; 0.458453;, + 0.471440; 0.458378;, + 0.906378; 0.774200;, + 0.930704; 0.749725;, + 0.906303; 0.749800;, + 0.930704; 0.749725;, + 0.906378; 0.774200;, + 0.930779; 0.774126;, + 0.974998; 0.592102;, + 0.950747; 0.543226;, + 0.950597; 0.592027;, + 0.950747; 0.543226;, + 0.974998; 0.592102;, + 0.975147; 0.543301;, + 0.682700; 0.980819;, + 0.658225; 0.956494;, + 0.658300; 0.980894;, + 0.658225; 0.956494;, + 0.682700; 0.980819;, + 0.682625; 0.956419;, + 0.822962; 0.409839;, + 0.798637; 0.385363;, + 0.798562; 0.409764;, + 0.798637; 0.385363;, + 0.822962; 0.409839;, + 0.823037; 0.385438;, + 0.079133; 0.067891;, + 0.054808; 0.043415;, + 0.054733; 0.067816;, + 0.054808; 0.043415;, + 0.079133; 0.067891;, + 0.079208; 0.043490;, + 0.943573; 0.465960;, + 0.968123; 0.514687;, + 0.967974; 0.465885;, + 0.968123; 0.514687;, + 0.943573; 0.465960;, + 0.943723; 0.514762;, + 0.520017; 0.531730;, + 0.495691; 0.507254;, + 0.495617; 0.531655;, + 0.362275; 0.022613;, + 0.411151; 0.046864;, + 0.411076; 0.022463;, + 0.411151; 0.046864;, + 0.362275; 0.022613;, + 0.386750; 0.046939;, + 0.386750; 0.046939;, + 0.362275; 0.022613;, + 0.386825; 0.071340;, + 0.386825; 0.071340;, + 0.362275; 0.022613;, + 0.362424; 0.071414;, + 0.738835; 0.042156;, + 0.714359; 0.066482;, + 0.738760; 0.066557;, + 0.714359; 0.066482;, + 0.738835; 0.042156;, + 0.714434; 0.042081;, + 0.237379; 0.086602;, + 0.261705; 0.062126;, + 0.237304; 0.062201;, + 0.261705; 0.062126;, + 0.237379; 0.086602;, + 0.286180; 0.086452;, + 0.301760; 0.055564;, + 0.311670; 0.006792;, + 0.301910; 0.006762;, + 0.311670; 0.006792;, + 0.301760; 0.055564;, + 0.311521; 0.055594;, + 0.927620; 0.798601;, + 0.936782; 0.993837;, + 0.937380; 0.798631;, + 0.936782; 0.993837;, + 0.927620; 0.798601;, + 0.927021; 0.993807;, + 0.823561; 0.543256;, + 0.798562; 0.738386;, + 0.822963; 0.738461;, + 0.798562; 0.738386;, + 0.823561; 0.543256;, + 0.799161; 0.543181;, + 0.033394; 0.063130;, + 0.009068; 0.038655;, + 0.008994; 0.063056;, + 0.009068; 0.038655;, + 0.033394; 0.063130;, + 0.033469; 0.038730;, + 0.835424; 0.543181;, + 0.859226; 0.738461;, + 0.859825; 0.543256;, + 0.859226; 0.738461;, + 0.835424; 0.543181;, + 0.834825; 0.738386;, + 0.984458; 0.847403;, + 0.994368; 0.798631;, + 0.984608; 0.798601;, + 0.994368; 0.798631;, + 0.984458; 0.847403;, + 0.994218; 0.847432;, + 0.979387; 0.465960;, + 0.989297; 0.514732;, + 0.989147; 0.465930;, + 0.989297; 0.514732;, + 0.979387; 0.465960;, + 0.979537; 0.514762;, + 0.977954; 0.434407;, + 0.953478; 0.410081;, + 0.929152; 0.434557;, + 0.977954; 0.434407;, + 0.953403; 0.385681;, + 0.953478; 0.410081;, + 0.953403; 0.385681;, + 0.977954; 0.434407;, + 0.977804; 0.385606;, + 0.966518; 0.749800;, + 0.942043; 0.774126;, + 0.966443; 0.774200;, + 0.942043; 0.774126;, + 0.966518; 0.749800;, + 0.942118; 0.749725;, + 0.447040; 0.034813;, + 0.471515; 0.059139;, + 0.471440; 0.034739;, + 0.471515; 0.059139;, + 0.447040; 0.034813;, + 0.447115; 0.059214;, + 0.929152; 0.434557;, + 0.953478; 0.410081;, + 0.929078; 0.410156;, + 0.907351; 0.738431;, + 0.917711; 0.543256;, + 0.907950; 0.543226;, + 0.917711; 0.543256;, + 0.907351; 0.738431;, + 0.917112; 0.738461;, + 0.426016; 0.010383;, + 0.435626; 0.059214;, + 0.435776; 0.010413;, + 0.435626; 0.059214;, + 0.426016; 0.010383;, + 0.425866; 0.059184;, + 0.520092; 0.046939;, + 0.495617; 0.022613;, + 0.495766; 0.071414;, + 0.495617; 0.022613;, + 0.520092; 0.046939;, + 0.544418; 0.022463;, + 0.544493; 0.046864;, + 0.544418; 0.022463;, + 0.520092; 0.046939;, + 0.971786; 0.652167;, + 0.981696; 0.603395;, + 0.971935; 0.603366;, + 0.981696; 0.603395;, + 0.971786; 0.652167;, + 0.981546; 0.652197;, + 0.905997; 0.798601;, + 0.915159; 0.993837;, + 0.915758; 0.798631;, + 0.915159; 0.993837;, + 0.905997; 0.798601;, + 0.905399; 0.993807;, + 0.811249; 0.993807;, + 0.836249; 0.798676;, + 0.811848; 0.798601;, + 0.836249; 0.798676;, + 0.811249; 0.993807;, + 0.835650; 0.993882;, + 0.984458; 0.907587;, + 0.994368; 0.858816;, + 0.984608; 0.858786;, + 0.994368; 0.858816;, + 0.984458; 0.907587;, + 0.994218; 0.907617;, + 0.984608; 0.918881;, + 0.994218; 0.967712;, + 0.994368; 0.918911;, + 0.994218; 0.967712;, + 0.984608; 0.918881;, + 0.984458; 0.967682;, + 0.617266; 0.029896;, + 0.666142; 0.054147;, + 0.666068; 0.029746;, + 0.666142; 0.054147;, + 0.617266; 0.029896;, + 0.641742; 0.054222;, + 0.641742; 0.054222;, + 0.617266; 0.029896;, + 0.641817; 0.078622;, + 0.641817; 0.078622;, + 0.617266; 0.029896;, + 0.617416; 0.078697;, + 0.987123; 0.203265;, + 0.962647; 0.178939;, + 0.962722; 0.203340;, + 0.962647; 0.178939;, + 0.987123; 0.203265;, + 0.987048; 0.178864;, + 0.186351; 0.032077;, + 0.210827; 0.007751;, + 0.186426; 0.007676;, + 0.210827; 0.007751;, + 0.186351; 0.032077;, + 0.210752; 0.032152;, + 0.301910; 0.442670;, + 0.350113; 0.638025;, + 0.350711; 0.442819;, + 0.350113; 0.638025;, + 0.301910; 0.442670;, + 0.301311; 0.637875;, + 0.447040; 0.580726;, + 0.457399; 0.385550;, + 0.447639; 0.385521;, + 0.457399; 0.385550;, + 0.447040; 0.580726;, + 0.456800; 0.580756;, + 0.884375; 0.798601;, + 0.893536; 0.993837;, + 0.894135; 0.798631;, + 0.893536; 0.993837;, + 0.884375; 0.798601;, + 0.883776; 0.993807;, + 0.569642; 0.798564;, + 0.617844; 0.993919;, + 0.618443; 0.798713;, + 0.617844; 0.993919;, + 0.569642; 0.798564;, + 0.569043; 0.993769;, + 0.928974; 0.738431;, + 0.939333; 0.543256;, + 0.929573; 0.543226;, + 0.939333; 0.543256;, + 0.928974; 0.738431;, + 0.938734; 0.738461;, + 0.920001; 0.178864;, + 0.929162; 0.374100;, + 0.929761; 0.178894;, + 0.929162; 0.374100;, + 0.920001; 0.178864;, + 0.919402; 0.374070;, + 0.556355; 0.787150;, + 0.605756; 0.592095;, + 0.556954; 0.591945;, + 0.605756; 0.592095;, + 0.556355; 0.787150;, + 0.605157; 0.787300;, + 0.201436; 0.442819;, + 0.005632; 0.637426;, + 0.200837; 0.638025;, + 0.005632; 0.637426;, + 0.201436; 0.442819;, + 0.006231; 0.442221;, + 0.605157; 0.580681;, + 0.556954; 0.385326;, + 0.556355; 0.580531;, + 0.556954; 0.385326;, + 0.605157; 0.580681;, + 0.605756; 0.385476;, + 0.520092; 0.046939;, + 0.495766; 0.071414;, + 0.520167; 0.071339;, + 0.883139; 0.178894;, + 0.908138; 0.374025;, + 0.907539; 0.178819;, + 0.908138; 0.374025;, + 0.883139; 0.178894;, + 0.883738; 0.374100;, + 0.962722; 0.338360;, + 0.987048; 0.313885;, + 0.962647; 0.313960;, + 0.987048; 0.313885;, + 0.962722; 0.338360;, + 0.987123; 0.338286;, + 0.987123; 0.349699;, + 0.962647; 0.374025;, + 0.987048; 0.374100;, + 0.962647; 0.374025;, + 0.987123; 0.349699;, + 0.962722; 0.349624;, + 0.834900; 0.774200;, + 0.859226; 0.749725;, + 0.834825; 0.749800;, + 0.859226; 0.749725;, + 0.834900; 0.774200;, + 0.859301; 0.774126;, + 0.435102; 0.762825;, + 0.460027; 0.592095;, + 0.386301; 0.762675;, + 0.386301; 0.762675;, + 0.460027; 0.592095;, + 0.386376; 0.738274;, + 0.386376; 0.738274;, + 0.460027; 0.592095;, + 0.361975; 0.738199;, + 0.361975; 0.738199;, + 0.460027; 0.592095;, + 0.435551; 0.616420;, + 0.435551; 0.616420;, + 0.460027; 0.592095;, + 0.435626; 0.592020;, + 0.361975; 0.738199;, + 0.435551; 0.616420;, + 0.386675; 0.640671;, + 0.386750; 0.616271;, + 0.386675; 0.640671;, + 0.435551; 0.616420;, + 0.991586; 0.069953;, + 0.967110; 0.094279;, + 0.991511; 0.094353;, + 0.967110; 0.094279;, + 0.991586; 0.069953;, + 0.967185; 0.069878;, + 0.948794; 0.907617;, + 0.973045; 0.858741;, + 0.948644; 0.858816;, + 0.973045; 0.858741;, + 0.948794; 0.907617;, + 0.973195; 0.907542;, + 0.362274; 0.640596;, + 0.361975; 0.738199;, + 0.386675; 0.640671;, + 0.991511; 0.105617;, + 0.967185; 0.130093;, + 0.991586; 0.130018;, + 0.967185; 0.130093;, + 0.991511; 0.105617;, + 0.967110; 0.105692;, + 0.199488; 0.139369;, + 0.175162; 0.163845;, + 0.199563; 0.163770;, + 0.150687; 0.032152;, + 0.175012; 0.007676;, + 0.150612; 0.007751;, + 0.175012; 0.007676;, + 0.150687; 0.032152;, + 0.175087; 0.032077;, + 0.973195; 0.798676;, + 0.948644; 0.847403;, + 0.973045; 0.847477;, + 0.948644; 0.847403;, + 0.973195; 0.798676;, + 0.948794; 0.798601;, + 0.557779; 0.799163;, + 0.361975; 0.993769;, + 0.557181; 0.994368;, + 0.361975; 0.993769;, + 0.557779; 0.799163;, + 0.362574; 0.798564;, + 0.005632; 0.321587;, + 0.079133; 0.224209;, + 0.005931; 0.223985;, + 0.079133; 0.224209;, + 0.005632; 0.321587;, + 0.078834; 0.321812;, + 0.798840; 0.440922;, + 0.871764; 0.531917;, + 0.872042; 0.441146;, + 0.871764; 0.531917;, + 0.798840; 0.440922;, + 0.798562; 0.531693;, + 0.005931; 0.333076;, + 0.096402; 0.430957;, + 0.096702; 0.333354;, + 0.096402; 0.430957;, + 0.005931; 0.333076;, + 0.005632; 0.430678;, + 0.285902; 0.273476;, + 0.212978; 0.182481;, + 0.212700; 0.273252;, + 0.212978; 0.182481;, + 0.285902; 0.273476;, + 0.286180; 0.182706;, + 0.201436; 0.430678;, + 0.110366; 0.333354;, + 0.110666; 0.430957;, + 0.110366; 0.333354;, + 0.201436; 0.430678;, + 0.201137; 0.333076;, + 0.171437; 0.312022;, + 0.181167; 0.321812;, + 0.181467; 0.224209;, + 0.181167; 0.321812;, + 0.171437; 0.312022;, + 0.107965; 0.321587;, + 0.117756; 0.311857;, + 0.107965; 0.321587;, + 0.171437; 0.312022;, + 0.107965; 0.321587;, + 0.117756; 0.311857;, + 0.108265; 0.223985;, + 0.108265; 0.223985;, + 0.117756; 0.311857;, + 0.117995; 0.233775;, + 0.295025; 0.431331;, + 0.285504; 0.353219;, + 0.285265; 0.431301;, + 0.285504; 0.353219;, + 0.295025; 0.431331;, + 0.295265; 0.353249;, + 0.684914; 0.216117;, + 0.738835; 0.138200;, + 0.685153; 0.138035;, + 0.738835; 0.138200;, + 0.684914; 0.216117;, + 0.738595; 0.216282;, + 0.950597; 0.657047;, + 0.960522; 0.603395;, + 0.950762; 0.603366;, + 0.960522; 0.603395;, + 0.950597; 0.657047;, + 0.960357; 0.657077;, + 0.222700; 0.171187;, + 0.212700; 0.093135;, + 0.212939; 0.171217;, + 0.212700; 0.093135;, + 0.222700; 0.171187;, + 0.222460; 0.093105;, + 0.171437; 0.312022;, + 0.181467; 0.224209;, + 0.171677; 0.233939;, + 0.171677; 0.233939;, + 0.181467; 0.224209;, + 0.117995; 0.233775;, + 0.108265; 0.223985;, + 0.117995; 0.233775;, + 0.181467; 0.224209;, + 0.008994; 0.128076;, + 0.018919; 0.074424;, + 0.009158; 0.074394;, + 0.018919; 0.074424;, + 0.008994; 0.128076;, + 0.018754; 0.128106;, + 0.273552; 0.431331;, + 0.224900; 0.382380;, + 0.224751; 0.431181;, + 0.273552; 0.431331;, + 0.274001; 0.284927;, + 0.224900; 0.382380;, + 0.212999; 0.284740;, + 0.224900; 0.382380;, + 0.274001; 0.284927;, + 0.224900; 0.382380;, + 0.212999; 0.284740;, + 0.212700; 0.382343;, + 0.350711; 0.127222;, + 0.301611; 0.224675;, + 0.350412; 0.224824;, + 0.301611; 0.224675;, + 0.350711; 0.127222;, + 0.301910; 0.127072;, + 0.798900; 0.131667;, + 0.750285; 0.070515;, + 0.750098; 0.131517;, + 0.750285; 0.070515;, + 0.798900; 0.131667;, + 0.799087; 0.070665;, + 0.798974; 0.349699;, + 0.750098; 0.373950;, + 0.798900; 0.374100;, + 0.750098; 0.373950;, + 0.798974; 0.349699;, + 0.750547; 0.227546;, + 0.750547; 0.227546;, + 0.798974; 0.349699;, + 0.799049; 0.325298;, + 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.750547; 0.227546;, + 0.799049; 0.325298;, + 0.799349; 0.227695;, + 0.199413; 0.128105;, + 0.150761; 0.079154;, + 0.150612; 0.127956;, + 0.150761; 0.079154;, + 0.199413; 0.128105;, + 0.199563; 0.079304;, + 0.870880; 0.090110;, + 0.919831; 0.041459;, + 0.871029; 0.041309;, + 0.919831; 0.041459;, + 0.870880; 0.090110;, + 0.919681; 0.090260;, + 0.297615; 0.293154;, + 0.285340; 0.317517;, + 0.297465; 0.341955;, + 0.285340; 0.317517;, + 0.297615; 0.293154;, + 0.285414; 0.293116;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.000000; 1.000000;, + 0.297465; 0.341955;, + 0.285340; 0.317517;, + 0.285265; 0.341918;, + 0.678320; 0.689548;, + 0.617019; 0.592132;, + 0.666120; 0.689585;, + 0.617019; 0.592132;, + 0.678320; 0.689548;, + 0.678021; 0.591945;, + 0.666120; 0.689585;, + 0.617019; 0.592132;, + 0.617468; 0.738536;, + 0.617468; 0.738536;, + 0.666270; 0.738386;, + 0.666120; 0.689585;; + } // End of Group UV coordinates + MeshMaterialList { // Group material list + 1; + 390; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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 Group material list + XSkinMeshHeader { + 1; + 3; + 7; + } + SkinWeights { + "Armature_Bone_003"; + 66; + 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; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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.000530,-0.000000, 0.000000, + 0.000530,-1.000000, 0.000000, 0.000000, + -0.000000,-0.000000,-1.000000, 0.000000, + -3.256083,-6.620042, 1.176457, 1.000000;; + } // End of Armature_Bone_003 skin weights + SkinWeights { + "Armature_Bone_002"; + 36; + 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; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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.000001,-6.540645,-1.176457, 1.000000;; + } // End of Armature_Bone_002 skin weights + SkinWeights { + "Armature_Bone_001"; + 84; + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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,-6.571156,-1.504138, 1.000000;; + } // End of Armature_Bone_001 skin weights + SkinWeights { + "Armature_Bone_006"; + 78; + 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; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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, + 3.238797,-6.572360,-1.176455, 1.000000;; + } // End of Armature_Bone_006 skin weights + SkinWeights { + "Armature_Bone_005"; + 78; + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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, + -3.236709,-6.627153,-1.176456, 1.000000;; + } // End of Armature_Bone_005 skin weights + SkinWeights { + "Armature_Bone_004"; + 66; + 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; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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.999997, 0.002319,-0.000000, 0.000000, + -0.002319, 0.999997,-0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + -3.239560,-6.573480,-1.176455, 1.000000;; + } // End of Armature_Bone_004 skin weights + SkinWeights { + "Armature_Bone"; + 762; + 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, + 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, + 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, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 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, + 680, + 681, + 682, + 683, + 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, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007; + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 1.000000, + 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, + 1.176456, 3.892252,-0.000000, 1.000000;; + } // End of Armature_Bone skin weights + } // End of Group mesh + } // End of Group + } // End of Armature + Frame Camera { + 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;; + } + } // End of Camera + Frame Model { + 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;; + } + } // End of Model +} // End of Root +AnimationSet Global { + Animation { + {Armature} + AnimationKey { // Rotation + 0; + 135; + 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;;; + } + AnimationKey { // Scale + 1; + 135; + 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;;; + } + AnimationKey { // Position + 2; + 135; + 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;;; + } + } + Animation { + {Armature_Bone} + AnimationKey { // Rotation + 0; + 135; + 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.500000, 0.500000, 0.500000,-0.500000;;, + 42;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 43;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 44;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 45;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 46;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 47;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 48;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 49;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 50;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 51;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 52;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 53;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 54;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 55;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 56;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 57;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 58;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 59;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 60;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 61;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 62;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 63;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 64;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 65;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 66;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 67;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 68;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 69;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 70;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 71;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 72;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 73;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 74;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 75;4;-0.501896, 0.501896, 0.498019,-0.498019;;, + 76;4;-0.507238, 0.507238, 0.492439,-0.492439;;, + 77;4;-0.514096, 0.514096, 0.485275,-0.485275;;, + 78;4;-0.519438, 0.519437, 0.479695,-0.479695;;, + 79;4;-0.521334, 0.521334, 0.477714,-0.477714;;, + 80;4;-0.521209, 0.521209, 0.477875,-0.477875;;, + 81;4;-0.520042, 0.520042, 0.479166,-0.479166;;, + 82;4;-0.517145, 0.517145, 0.482246,-0.482246;;, + 83;4;-0.508966, 0.508966, 0.490743,-0.490743;;, + 84;4;-0.502239, 0.502239, 0.497696,-0.497696;;, + 85;4;-0.501218, 0.501217, 0.498747,-0.498747;;, + 86;4;-0.500505, 0.500505, 0.499480,-0.499480;;, + 87;4;-0.500134, 0.500134, 0.499862,-0.499862;;, + 88;4;-0.500014, 0.500014, 0.499986,-0.499986;;, + 89;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 90;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 91;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 92;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 93;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 94;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 95;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 96;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 97;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 98;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 99;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 100;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 101;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 102;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 103;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 104;4;-0.500000, 0.500000, 0.500000,-0.500000;;, + 105;4;-0.500184, 0.500130, 0.499850,-0.499831;;, + 106;4;-0.500740, 0.500521, 0.499396,-0.499320;;, + 107;4;-0.501651, 0.501163, 0.498652,-0.498484;;, + 108;4;-0.502864, 0.502019, 0.497661,-0.497369;;, + 109;4;-0.504285, 0.503020, 0.496502,-0.496064;;, + 110;4;-0.505779, 0.504074, 0.495281,-0.494691;;, + 111;4;-0.507200, 0.505075, 0.494121,-0.493386;;, + 112;4;-0.508413, 0.505931, 0.493131,-0.492271;;, + 113;4;-0.509324, 0.506573, 0.492387,-0.491434;;, + 114;4;-0.509880, 0.506964, 0.491933,-0.490924;;, + 115;4;-0.510064, 0.507094, 0.491783,-0.490754;;, + 116;4;-0.509850, 0.506944, 0.491959,-0.490953;;, + 117;4;-0.509197, 0.506485, 0.492499,-0.491559;;, + 118;4;-0.508175, 0.505766, 0.493341,-0.492507;;, + 119;4;-0.506993, 0.504934, 0.494315,-0.493602;;, + 120;4;-0.505900, 0.504164, 0.495215,-0.494613;;, + 121;4;-0.505051, 0.503566, 0.495910,-0.495396;;, + 122;4;-0.504337, 0.503063, 0.496494,-0.496053;;, + 123;4;-0.503611, 0.502551, 0.497085,-0.496718;;, + 124;4;-0.502897, 0.502047, 0.497664,-0.497369;;, + 125;4;-0.502229, 0.501575, 0.498205,-0.497978;;, + 126;4;-0.501640, 0.501159, 0.498680,-0.498513;;, + 127;4;-0.501152, 0.500814, 0.499073,-0.498956;;, + 128;4;-0.500768, 0.500543, 0.499382,-0.499304;;, + 129;4;-0.500480, 0.500339, 0.499614,-0.499565;;, + 130;4;-0.500261, 0.500184, 0.499790,-0.499764;;, + 131;4;-0.500108, 0.500076, 0.499913,-0.499902;;, + 132;4;-0.500029, 0.500020, 0.499977,-0.499974;;, + 133;4;-0.500003, 0.500002, 0.499998,-0.499997;;, + 134;4;-0.500000, 0.500000, 0.500000,-0.500000;;; + } + AnimationKey { // Scale + 1; + 135; + 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;;; + } + AnimationKey { // Position + 2; + 135; + 0;3;-3.892252,-0.000000, 1.176455;;, + 1;3;-3.892252,-0.000000, 1.176455;;, + 2;3;-3.892252,-0.000000, 1.176455;;, + 3;3;-3.892252,-0.000000, 1.176455;;, + 4;3;-3.892252,-0.000000, 1.176455;;, + 5;3;-3.892252,-0.000000, 1.176455;;, + 6;3;-3.892252,-0.000000, 1.176455;;, + 7;3;-3.892252,-0.000000, 1.176455;;, + 8;3;-3.892252,-0.000000, 1.176455;;, + 9;3;-3.892252,-0.000000, 1.176455;;, + 10;3;-3.892252,-0.000000, 1.176455;;, + 11;3;-3.892252,-0.000000, 1.176455;;, + 12;3;-3.892252,-0.000000, 1.176455;;, + 13;3;-3.892252,-0.000000, 1.176455;;, + 14;3;-3.892252,-0.000000, 1.176455;;, + 15;3;-3.892252,-0.000000, 1.176455;;, + 16;3;-3.892252,-0.000000, 1.176455;;, + 17;3;-3.892252,-0.000000, 1.176455;;, + 18;3;-3.892252,-0.000000, 1.176455;;, + 19;3;-3.892252,-0.000000, 1.176455;;, + 20;3;-3.892252,-0.000000, 1.176455;;, + 21;3;-3.892252,-0.000000, 1.176455;;, + 22;3;-3.892252,-0.000000, 1.176455;;, + 23;3;-3.892252,-0.000000, 1.176455;;, + 24;3;-3.892252,-0.000000, 1.176455;;, + 25;3;-3.892252,-0.000000, 1.176455;;, + 26;3;-3.892252,-0.000000, 1.176455;;, + 27;3;-3.892252,-0.000000, 1.176455;;, + 28;3;-3.892252,-0.000000, 1.176455;;, + 29;3;-3.892252,-0.000000, 1.176455;;, + 30;3;-3.892252,-0.000000, 1.176455;;, + 31;3;-3.892252,-0.000000, 1.176455;;, + 32;3;-3.892252,-0.000000, 1.176455;;, + 33;3;-3.892252,-0.000000, 1.176455;;, + 34;3;-3.892252,-0.000000, 1.176455;;, + 35;3;-3.892252,-0.000000, 1.176455;;, + 36;3;-3.892252,-0.000000, 1.176455;;, + 37;3;-3.892252,-0.000000, 1.176455;;, + 38;3;-3.892252,-0.000000, 1.176455;;, + 39;3;-3.892252,-0.000000, 1.176455;;, + 40;3;-3.892252,-0.000000, 1.176455;;, + 41;3;-3.892252,-0.000000, 1.176455;;, + 42;3;-3.892252,-0.000000, 1.176455;;, + 43;3;-3.892252,-0.000000, 1.176455;;, + 44;3;-3.892252,-0.000000, 1.176455;;, + 45;3;-3.892252,-0.000000, 1.176455;;, + 46;3;-3.892252,-0.000000, 1.176455;;, + 47;3;-3.892252,-0.000000, 1.176455;;, + 48;3;-3.892252,-0.000000, 1.176455;;, + 49;3;-3.892252,-0.000000, 1.176455;;, + 50;3;-3.892252,-0.000000, 1.176455;;, + 51;3;-3.892252,-0.000000, 1.176455;;, + 52;3;-3.892252,-0.000000, 1.176455;;, + 53;3;-3.892252,-0.000000, 1.176455;;, + 54;3;-3.892252,-0.000000, 1.176455;;, + 55;3;-3.892252,-0.000000, 1.176455;;, + 56;3;-3.892252,-0.000000, 1.176455;;, + 57;3;-3.892252,-0.000000, 1.176455;;, + 58;3;-3.892252,-0.000000, 1.176455;;, + 59;3;-3.892252,-0.000000, 1.176455;;, + 60;3;-3.901372,-0.000000, 1.176455;;, + 61;3;-3.929474,-0.000000, 1.176455;;, + 62;3;-3.976703,-0.000000, 1.176455;;, + 63;3;-4.041287,-0.000000, 1.176455;;, + 64;3;-4.119045,-0.000000, 1.176455;;, + 65;3;-4.203746,-0.000000, 1.176455;;, + 66;3;-4.288462,-0.000000, 1.176455;;, + 67;3;-4.367190,-0.000000, 1.176455;;, + 68;3;-4.435832,-0.000000, 1.176455;;, + 69;3;-4.492252,-0.000000, 1.176455;;, + 70;3;-4.545861,-0.000000, 1.176455;;, + 71;3;-4.602494,-0.000000, 1.176455;;, + 72;3;-4.651581,-0.000000, 1.176455;;, + 73;3;-4.682503,-0.000000, 1.176455;;, + 74;3;-4.692252,-0.000000, 1.176455;;, + 75;3;-4.634608,-0.000000, 1.176455;;, + 76;3;-4.463247,-0.000000, 1.176455;;, + 77;3;-4.217097,-0.000000, 1.176455;;, + 78;3;-3.973085,-0.000000, 1.176455;;, + 79;3;-3.792252,-0.000000, 1.176455;;, + 80;3;-3.647005,-0.000000, 1.176455;;, + 81;3;-3.530641,-0.000000, 1.176455;;, + 82;3;-3.492252,-0.000000, 1.176455;;, + 83;3;-3.645425,-0.000000, 1.176455;;, + 84;3;-3.820419,-0.000000, 1.176455;;, + 85;3;-3.853267,-0.000000, 1.176455;;, + 86;3;-3.876095,-0.000000, 1.176455;;, + 87;3;-3.887969,-0.000000, 1.176455;;, + 88;3;-3.891807,-0.000000, 1.176455;;, + 89;3;-3.892252,-0.000000, 1.176455;;, + 90;3;-3.883363,-0.000000, 1.176455;;, + 91;3;-3.858326,-0.000000, 1.176455;;, + 92;3;-3.826179,-0.000000, 1.176455;;, + 93;3;-3.801142,-0.000000, 1.176455;;, + 94;3;-3.792252,-0.000000, 1.176455;;, + 95;3;-3.792252,-0.000000, 1.176455;;, + 96;3;-3.792252,-0.000000, 1.176455;;, + 97;3;-3.792252,-0.000000, 1.176455;;, + 98;3;-3.792252,-0.000000, 1.176455;;, + 99;3;-3.792252,-0.000000, 1.176455;;, + 100;3;-3.792252,-0.000000, 1.176455;;, + 101;3;-3.792252,-0.000000, 1.176455;;, + 102;3;-3.792252,-0.000000, 1.176455;;, + 103;3;-3.792252,-0.000000, 1.176455;;, + 104;3;-3.792252,-0.000000, 1.176455;;, + 105;3;-3.792252,-0.000000, 1.176455;;, + 106;3;-3.792252,-0.000000, 1.176455;;, + 107;3;-3.792252,-0.000000, 1.176455;;, + 108;3;-3.792252,-0.000000, 1.176455;;, + 109;3;-3.792252,-0.000000, 1.176455;;, + 110;3;-3.792252,-0.000000, 1.176455;;, + 111;3;-3.792252,-0.000000, 1.176455;;, + 112;3;-3.792252,-0.000000, 1.176455;;, + 113;3;-3.792252,-0.000000, 1.176455;;, + 114;3;-3.792252,-0.000000, 1.176455;;, + 115;3;-3.792252,-0.000000, 1.176455;;, + 116;3;-3.792252,-0.000000, 1.176455;;, + 117;3;-3.792252,-0.000000, 1.176455;;, + 118;3;-3.792252,-0.000000, 1.176455;;, + 119;3;-3.792252,-0.000000, 1.176455;;, + 120;3;-3.792252,-0.000000, 1.176455;;, + 121;3;-3.792252,-0.000000, 1.176455;;, + 122;3;-3.792252,-0.000000, 1.176455;;, + 123;3;-3.792252,-0.000000, 1.176455;;, + 124;3;-3.792252,-0.000000, 1.176455;;, + 125;3;-3.792252,-0.000000, 1.176455;;, + 126;3;-3.792252,-0.000000, 1.176455;;, + 127;3;-3.792252,-0.000000, 1.176455;;, + 128;3;-3.792252,-0.000000, 1.176455;;, + 129;3;-3.792252,-0.000000, 1.176455;;, + 130;3;-3.792252,-0.000000, 1.176455;;, + 131;3;-3.792252,-0.000000, 1.176455;;, + 132;3;-3.792252,-0.000000, 1.176455;;, + 133;3;-3.792252,-0.000000, 1.176455;;, + 134;3;-3.792252,-0.000000, 1.176455;;; + } + } + Animation { + {Armature_Bone_001} + AnimationKey { // Rotation + 0; + 135; + 0;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 1;4;-0.707104, 0.000338,-0.707104,-0.000338;;, + 2;4;-0.707095, 0.001352,-0.707095,-0.001352;;, + 3;4;-0.707081, 0.002981,-0.707081,-0.002981;;, + 4;4;-0.707063, 0.005053,-0.707063,-0.005053;;, + 5;4;-0.707043, 0.007288,-0.707043,-0.007288;;, + 6;4;-0.707025, 0.009360,-0.707025,-0.009360;;, + 7;4;-0.707011, 0.010988,-0.707011,-0.010988;;, + 8;4;-0.707002, 0.012003,-0.707002,-0.012003;;, + 9;4;-0.706999, 0.012341,-0.706999,-0.012341;;, + 10;4;-0.707002, 0.012171,-0.707001,-0.012171;;, + 11;4;-0.707009, 0.011642,-0.707009,-0.011642;;, + 12;4;-0.707020, 0.010744,-0.707020,-0.010744;;, + 13;4;-0.707036, 0.009500,-0.707036,-0.009500;;, + 14;4;-0.707053, 0.007977,-0.707053,-0.007977;;, + 15;4;-0.707070, 0.006283,-0.707070,-0.006283;;, + 16;4;-0.707086, 0.004542,-0.707085,-0.004542;;, + 17;4;-0.707097, 0.002866,-0.707097,-0.002867;;, + 18;4;-0.707105, 0.001337,-0.707104,-0.001338;;, + 19;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 20;4;-0.707105,-0.001338,-0.707104, 0.001337;;, + 21;4;-0.707097,-0.002867,-0.707097, 0.002866;;, + 22;4;-0.707086,-0.004542,-0.707085, 0.004542;;, + 23;4;-0.707070,-0.006283,-0.707070, 0.006283;;, + 24;4;-0.707053,-0.007977,-0.707053, 0.007977;;, + 25;4;-0.707036,-0.009500,-0.707036, 0.009500;;, + 26;4;-0.707020,-0.010744,-0.707020, 0.010744;;, + 27;4;-0.707009,-0.011642,-0.707009, 0.011642;;, + 28;4;-0.707002,-0.012171,-0.707001, 0.012171;;, + 29;4;-0.706999,-0.012341,-0.706999, 0.012341;;, + 30;4;-0.707002,-0.012067,-0.707001, 0.012067;;, + 31;4;-0.707009,-0.011244,-0.707009, 0.011244;;, + 32;4;-0.707020,-0.009905,-0.707020, 0.009905;;, + 33;4;-0.707036,-0.008154,-0.707036, 0.008154;;, + 34;4;-0.707053,-0.006170,-0.707053, 0.006170;;, + 35;4;-0.707070,-0.004187,-0.707070, 0.004187;;, + 36;4;-0.707086,-0.002436,-0.707085, 0.002436;;, + 37;4;-0.707097,-0.001097,-0.707097, 0.001097;;, + 38;4;-0.707105,-0.000274,-0.707104, 0.000274;;, + 39;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 40;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 41;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 42;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 43;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 44;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 45;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 46;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 47;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 48;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 49;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 50;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 51;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 52;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 53;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 54;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 55;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 56;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 57;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 58;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 59;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 60;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 61;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 62;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 63;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 64;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 65;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 66;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 67;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 68;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 69;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 70;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 71;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 72;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 73;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 74;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 75;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 76;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 77;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 78;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 79;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 80;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 81;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 82;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 83;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 84;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 85;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 86;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 87;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 88;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 89;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 90;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 91;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 92;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 93;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 94;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 95;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 96;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 97;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 98;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 99;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 100;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 101;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 102;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 103;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 104;4;-0.707107,-0.000000,-0.707107,-0.000000;;, + 105;4;-0.707106,-0.000226,-0.707104,-0.000226;;, + 106;4;-0.707103,-0.000908,-0.707095,-0.000906;;, + 107;4;-0.707097,-0.002026,-0.707081,-0.002022;;, + 108;4;-0.707090,-0.003515,-0.707062,-0.003509;;, + 109;4;-0.707082,-0.005259,-0.707040,-0.005249;;, + 110;4;-0.707074,-0.007094,-0.707016,-0.007079;;, + 111;4;-0.707065,-0.008839,-0.706994,-0.008818;;, + 112;4;-0.707058,-0.010330,-0.706975,-0.010304;;, + 113;4;-0.707053,-0.011450,-0.706961,-0.011417;;, + 114;4;-0.707050,-0.012134,-0.706952,-0.012095;;, + 115;4;-0.707049,-0.012364,-0.706949,-0.012318;;, + 116;4;-0.707045,-0.012105,-0.706961,-0.012050;;, + 117;4;-0.707035,-0.011306,-0.706994,-0.011239;;, + 118;4;-0.707021,-0.010053,-0.707044,-0.009974;;, + 119;4;-0.707008,-0.008604,-0.707095,-0.008513;;, + 120;4;-0.707003,-0.007262,-0.707134,-0.007163;;, + 121;4;-0.707007,-0.006221,-0.707153,-0.006119;;, + 122;4;-0.707016,-0.005343,-0.707159,-0.005244;;, + 123;4;-0.707027,-0.004451,-0.707161,-0.004358;;, + 124;4;-0.707039,-0.003574,-0.707159,-0.003491;;, + 125;4;-0.707052,-0.002751,-0.707153,-0.002682;;, + 126;4;-0.707065,-0.002025,-0.707144,-0.001971;;, + 127;4;-0.707076,-0.001423,-0.707135,-0.001382;;, + 128;4;-0.707085,-0.000950,-0.707127,-0.000921;;, + 129;4;-0.707091,-0.000595,-0.707121,-0.000574;;, + 130;4;-0.707096,-0.000325,-0.707116,-0.000311;;, + 131;4;-0.707101,-0.000136,-0.707112,-0.000128;;, + 132;4;-0.707104,-0.000037,-0.707109,-0.000033;;, + 133;4;-0.707106,-0.000004,-0.707107,-0.000003;;, + 134;4;-0.707107,-0.000000,-0.707107,-0.000000;;; + } + AnimationKey { // Scale + 1; + 135; + 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; 0.955494, 0.955494, 0.955494;;, + 91;3; 0.830311, 0.830311, 0.830311;;, + 92;3; 0.669689, 0.669689, 0.669689;;, + 93;3; 0.544506, 0.544506, 0.544506;;, + 94;3; 0.500000, 0.500000, 0.500000;;, + 95;3; 0.500000, 0.500000, 0.500000;;, + 96;3; 0.500000, 0.500000, 0.500000;;, + 97;3; 0.500000, 0.500000, 0.500000;;, + 98;3; 0.500000, 0.500000, 0.500000;;, + 99;3; 0.500000, 0.500000, 0.500000;;, + 100;3; 0.544506, 0.544506, 0.544506;;, + 101;3; 0.669689, 0.669689, 0.669689;;, + 102;3; 0.830311, 0.830311, 0.830311;;, + 103;3; 0.955494, 0.955494, 0.955494;;, + 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;;; + } + AnimationKey { // Position + 2; + 135; + 0;3;-0.327682, 8.463408, 0.000000;;, + 1;3;-0.327682, 8.463408, 0.000000;;, + 2;3;-0.327682, 8.463408, 0.000000;;, + 3;3;-0.327682, 8.463408, 0.000000;;, + 4;3;-0.327682, 8.463408, 0.000000;;, + 5;3;-0.327682, 8.463408, 0.000000;;, + 6;3;-0.327682, 8.463408, 0.000000;;, + 7;3;-0.327682, 8.463408, 0.000000;;, + 8;3;-0.327682, 8.463408, 0.000000;;, + 9;3;-0.327682, 8.463408, 0.000000;;, + 10;3;-0.327682, 8.463408, 0.000000;;, + 11;3;-0.327682, 8.463408, 0.000000;;, + 12;3;-0.327682, 8.463408, 0.000000;;, + 13;3;-0.327682, 8.463408, 0.000000;;, + 14;3;-0.327682, 8.463408, 0.000000;;, + 15;3;-0.327682, 8.463408, 0.000000;;, + 16;3;-0.327682, 8.463408, 0.000000;;, + 17;3;-0.327682, 8.463408, 0.000000;;, + 18;3;-0.327682, 8.463408, 0.000000;;, + 19;3;-0.327682, 8.463408, 0.000000;;, + 20;3;-0.327682, 8.463408, 0.000000;;, + 21;3;-0.327682, 8.463408, 0.000000;;, + 22;3;-0.327682, 8.463408, 0.000000;;, + 23;3;-0.327682, 8.463408, 0.000000;;, + 24;3;-0.327682, 8.463408, 0.000000;;, + 25;3;-0.327682, 8.463408, 0.000000;;, + 26;3;-0.327682, 8.463408, 0.000000;;, + 27;3;-0.327682, 8.463408, 0.000000;;, + 28;3;-0.327682, 8.463408, 0.000000;;, + 29;3;-0.327682, 8.463408, 0.000000;;, + 30;3;-0.327682, 8.463408, 0.000000;;, + 31;3;-0.327682, 8.463408, 0.000000;;, + 32;3;-0.327682, 8.463408, 0.000000;;, + 33;3;-0.327682, 8.463408, 0.000000;;, + 34;3;-0.327682, 8.463408, 0.000000;;, + 35;3;-0.327682, 8.463408, 0.000000;;, + 36;3;-0.327682, 8.463408, 0.000000;;, + 37;3;-0.327682, 8.463408, 0.000000;;, + 38;3;-0.327682, 8.463408, 0.000000;;, + 39;3;-0.327682, 8.463408, 0.000000;;, + 40;3;-0.327682, 8.463408, 0.000000;;, + 41;3;-0.327682, 8.463408, 0.000000;;, + 42;3;-0.327682, 8.463408, 0.000000;;, + 43;3;-0.327682, 8.463408, 0.000000;;, + 44;3;-0.327682, 8.463408, 0.000000;;, + 45;3;-0.327682, 8.463408, 0.000000;;, + 46;3;-0.327682, 8.463408, 0.000000;;, + 47;3;-0.327682, 8.463408, 0.000000;;, + 48;3;-0.327682, 8.463408, 0.000000;;, + 49;3;-0.327682, 8.463408, 0.000000;;, + 50;3;-0.327682, 8.463408, 0.000000;;, + 51;3;-0.327682, 8.463408, 0.000000;;, + 52;3;-0.327682, 8.463408, 0.000000;;, + 53;3;-0.327682, 8.463408, 0.000000;;, + 54;3;-0.327682, 8.463408, 0.000000;;, + 55;3;-0.327682, 8.463408, 0.000000;;, + 56;3;-0.327682, 8.463408, 0.000000;;, + 57;3;-0.327682, 8.463408, 0.000000;;, + 58;3;-0.327682, 8.463408, 0.000000;;, + 59;3;-0.327682, 8.463408, 0.000000;;, + 60;3;-0.327682, 8.463408, 0.000000;;, + 61;3;-0.327682, 8.463408, 0.000000;;, + 62;3;-0.327682, 8.463408, 0.000000;;, + 63;3;-0.327682, 8.463408, 0.000000;;, + 64;3;-0.327682, 8.463408, 0.000000;;, + 65;3;-0.327682, 8.463408, 0.000000;;, + 66;3;-0.327682, 8.463408, 0.000000;;, + 67;3;-0.327682, 8.463408, 0.000000;;, + 68;3;-0.327682, 8.463408, 0.000000;;, + 69;3;-0.327682, 8.463408, 0.000000;;, + 70;3;-0.327682, 8.463408, 0.000000;;, + 71;3;-0.327682, 8.463408, 0.000000;;, + 72;3;-0.327682, 8.463408, 0.000000;;, + 73;3;-0.327682, 8.463408, 0.000000;;, + 74;3;-0.327682, 8.463408, 0.000000;;, + 75;3;-0.327682, 8.463408, 0.000000;;, + 76;3;-0.327682, 8.463408, 0.000000;;, + 77;3;-0.327682, 8.463408, 0.000000;;, + 78;3;-0.327682, 8.463408, 0.000000;;, + 79;3;-0.327682, 8.463408, 0.000000;;, + 80;3;-0.327682, 8.463407, 0.000000;;, + 81;3;-0.327682, 8.463408, 0.000000;;, + 82;3;-0.327682, 8.463407, 0.000000;;, + 83;3;-0.327682, 8.463408, 0.000000;;, + 84;3;-0.327682, 8.463408, 0.000000;;, + 85;3;-0.327682, 8.463408, 0.000000;;, + 86;3;-0.327682, 8.463408, 0.000000;;, + 87;3;-0.327682, 8.463408, 0.000000;;, + 88;3;-0.327682, 8.463408, 0.000000;;, + 89;3;-0.327682, 8.463408, 0.000000;;, + 90;3;-0.315545, 8.255070, 0.000794;;, + 91;3;-0.281360, 7.684577, 0.003030;;, + 92;3;-0.237470, 6.962128, 0.005900;;, + 93;3;-0.203286, 6.391635, 0.008136;;, + 94;3;-0.191148, 6.183297, 0.008930;;, + 95;3;-0.191148, 6.183297, 0.008930;;, + 96;3;-0.191148, 6.183297, 0.008930;;, + 97;3;-0.191148, 6.183297, 0.008930;;, + 98;3;-0.191148, 6.183297, 0.008930;;, + 99;3;-0.191148, 6.183297, 0.008930;;, + 100;3;-0.203286, 6.391635, 0.008136;;, + 101;3;-0.237470, 6.962128, 0.005900;;, + 102;3;-0.281360, 7.684577, 0.003030;;, + 103;3;-0.315545, 8.255070, 0.000794;;, + 104;3;-0.327682, 8.463408, 0.000000;;, + 105;3;-0.327682, 8.463408, 0.000000;;, + 106;3;-0.327682, 8.463408, 0.000000;;, + 107;3;-0.327682, 8.463408, 0.000000;;, + 108;3;-0.327682, 8.463407, 0.000000;;, + 109;3;-0.327682, 8.463408, 0.000000;;, + 110;3;-0.327682, 8.463408, 0.000000;;, + 111;3;-0.327682, 8.463408, 0.000000;;, + 112;3;-0.327682, 8.463408, 0.000000;;, + 113;3;-0.327682, 8.463408, 0.000000;;, + 114;3;-0.327682, 8.463408, 0.000000;;, + 115;3;-0.327682, 8.463408, 0.000000;;, + 116;3;-0.327682, 8.463407, 0.000000;;, + 117;3;-0.327682, 8.463408, 0.000000;;, + 118;3;-0.327682, 8.463408, 0.000000;;, + 119;3;-0.327682, 8.463408, 0.000000;;, + 120;3;-0.327682, 8.463408, 0.000000;;, + 121;3;-0.327682, 8.463408, 0.000000;;, + 122;3;-0.327682, 8.463408, 0.000000;;, + 123;3;-0.327682, 8.463408, 0.000000;;, + 124;3;-0.327682, 8.463408, 0.000000;;, + 125;3;-0.327682, 8.463407, 0.000000;;, + 126;3;-0.327682, 8.463408, 0.000000;;, + 127;3;-0.327682, 8.463408, 0.000000;;, + 128;3;-0.327682, 8.463408, 0.000000;;, + 129;3;-0.327682, 8.463408, 0.000000;;, + 130;3;-0.327682, 8.463408, 0.000000;;, + 131;3;-0.327682, 8.463408, 0.000000;;, + 132;3;-0.327682, 8.463408, 0.000000;;, + 133;3;-0.327682, 8.463408, 0.000000;;, + 134;3;-0.327682, 8.463408, 0.000000;;; + } + } + Animation { + {Armature_Bone_002} + AnimationKey { // Rotation + 0; + 135; + 0;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 1;4;-0.000507, 0.707100, 0.000507,-0.707100;;, + 2;4;-0.002028, 0.707080, 0.002029,-0.707080;;, + 3;4;-0.004471, 0.707048, 0.004471,-0.707048;;, + 4;4;-0.007579, 0.707008, 0.007579,-0.707008;;, + 5;4;-0.010931, 0.706964, 0.010931,-0.706964;;, + 6;4;-0.014039, 0.706923, 0.014039,-0.706923;;, + 7;4;-0.016482, 0.706891, 0.016482,-0.706891;;, + 8;4;-0.018003, 0.706871, 0.018003,-0.706871;;, + 9;4;-0.018510, 0.706865, 0.018510,-0.706865;;, + 10;4;-0.018100, 0.706870, 0.018100,-0.706870;;, + 11;4;-0.016865, 0.706886, 0.016865,-0.706886;;, + 12;4;-0.014857, 0.706912, 0.014857,-0.706912;;, + 13;4;-0.012230, 0.706947, 0.012230,-0.706947;;, + 14;4;-0.009255, 0.706986, 0.009255,-0.706986;;, + 15;4;-0.006280, 0.707025, 0.006280,-0.707025;;, + 16;4;-0.003653, 0.707059, 0.003653,-0.707059;;, + 17;4;-0.001645, 0.707085, 0.001645,-0.707085;;, + 18;4;-0.000410, 0.707101, 0.000410,-0.707101;;, + 19;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 20;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 21;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 22;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 23;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 24;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 25;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 26;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 27;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 28;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 29;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 30;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 31;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 32;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 33;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 34;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 35;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 36;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 37;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 38;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 39;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 40;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 41;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 42;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 43;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 44;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 45;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 46;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 47;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 48;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 49;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 50;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 51;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 52;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 53;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 54;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 55;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 56;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 57;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 58;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 59;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 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.000000, 0.707107, 0.000000,-0.707107;;, + 82;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 83;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 84;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 85;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 86;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 87;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 88;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 89;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 90;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 91;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 92;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 93;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 94;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 95;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 96;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 97;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 98;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 99;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 100;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 101;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 102;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 103;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 104;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 105;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 106;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 107;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 108;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 109;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 110;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 111;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 112;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 113;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 114;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 115;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 116;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 117;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 118;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 119;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 120;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 121;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 122;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 123;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 124;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 125;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 126;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 127;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 128;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 129;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 130;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 131;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 132;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 133;4;-0.000000, 0.707107, 0.000000,-0.707107;;, + 134;4;-0.000000, 0.707107, 0.000000,-0.707107;;; + } + AnimationKey { // Scale + 1; + 135; + 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; 0.955494, 0.955494, 0.955494;;, + 91;3; 0.830311, 0.830311, 0.830311;;, + 92;3; 0.669689, 0.669689, 0.669689;;, + 93;3; 0.544506, 0.544506, 0.544506;;, + 94;3; 0.500000, 0.500000, 0.500000;;, + 95;3; 0.500000, 0.500000, 0.500000;;, + 96;3; 0.500000, 0.500000, 0.500000;;, + 97;3; 0.500000, 0.500000, 0.500000;;, + 98;3; 0.500000, 0.500000, 0.500000;;, + 99;3; 0.500000, 0.500000, 0.500000;;, + 100;3; 0.544506, 0.544506, 0.544506;;, + 101;3; 0.669689, 0.669689, 0.669689;;, + 102;3; 0.830311, 0.830311, 0.830311;;, + 103;3; 0.955494, 0.955494, 0.955494;;, + 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;;; + } + AnimationKey { // Position + 2; + 135; + 0;3;-0.000001,-0.648392,-0.000000;;, + 1;3;-0.000001,-0.648392,-0.000000;;, + 2;3;-0.000001,-0.648392,-0.000000;;, + 3;3;-0.000001,-0.648392,-0.000000;;, + 4;3;-0.000001,-0.648392,-0.000000;;, + 5;3;-0.000001,-0.648392,-0.000000;;, + 6;3;-0.000001,-0.648392,-0.000000;;, + 7;3;-0.000001,-0.648392,-0.000000;;, + 8;3;-0.000001,-0.648392,-0.000000;;, + 9;3;-0.000001,-0.648392,-0.000000;;, + 10;3;-0.000001,-0.648392,-0.000000;;, + 11;3;-0.000001,-0.648392,-0.000000;;, + 12;3;-0.000001,-0.648392,-0.000000;;, + 13;3;-0.000001,-0.648392,-0.000000;;, + 14;3;-0.000001,-0.648392,-0.000000;;, + 15;3;-0.000001,-0.648392,-0.000000;;, + 16;3;-0.000001,-0.648392,-0.000000;;, + 17;3;-0.000001,-0.648392,-0.000000;;, + 18;3;-0.000001,-0.648392,-0.000000;;, + 19;3;-0.000001,-0.648392,-0.000000;;, + 20;3;-0.000001,-0.648392,-0.000000;;, + 21;3;-0.000001,-0.648392,-0.000000;;, + 22;3;-0.000001,-0.648392,-0.000000;;, + 23;3;-0.000001,-0.648392,-0.000000;;, + 24;3;-0.000001,-0.648392,-0.000000;;, + 25;3;-0.000001,-0.648392,-0.000000;;, + 26;3;-0.000001,-0.648392,-0.000000;;, + 27;3;-0.000001,-0.648392,-0.000000;;, + 28;3;-0.000001,-0.648392,-0.000000;;, + 29;3;-0.000001,-0.648392,-0.000000;;, + 30;3;-0.000001,-0.648392,-0.000000;;, + 31;3;-0.000001,-0.648392,-0.000000;;, + 32;3;-0.000001,-0.648392,-0.000000;;, + 33;3;-0.000001,-0.648392,-0.000000;;, + 34;3;-0.000001,-0.648392,-0.000000;;, + 35;3;-0.000001,-0.648392,-0.000000;;, + 36;3;-0.000001,-0.648392,-0.000000;;, + 37;3;-0.000001,-0.648392,-0.000000;;, + 38;3;-0.000001,-0.648392,-0.000000;;, + 39;3;-0.000001,-0.648392,-0.000000;;, + 40;3;-0.000001,-0.648392,-0.000000;;, + 41;3;-0.000001,-0.648392,-0.000000;;, + 42;3;-0.000001,-0.648392,-0.000000;;, + 43;3;-0.000001,-0.648392,-0.000000;;, + 44;3;-0.000001,-0.648392,-0.000000;;, + 45;3;-0.000001,-0.648392,-0.000000;;, + 46;3;-0.000001,-0.648392,-0.000000;;, + 47;3;-0.000001,-0.648392,-0.000000;;, + 48;3;-0.000001,-0.648392,-0.000000;;, + 49;3;-0.000001,-0.648392,-0.000000;;, + 50;3;-0.000001,-0.648392,-0.000000;;, + 51;3;-0.000001,-0.648392,-0.000000;;, + 52;3;-0.000001,-0.648392,-0.000000;;, + 53;3;-0.000001,-0.648392,-0.000000;;, + 54;3;-0.000001,-0.648392,-0.000000;;, + 55;3;-0.000001,-0.648392,-0.000000;;, + 56;3;-0.000001,-0.648392,-0.000000;;, + 57;3;-0.000001,-0.648392,-0.000000;;, + 58;3;-0.000001,-0.648392,-0.000000;;, + 59;3;-0.000001,-0.648392,-0.000000;;, + 60;3;-0.000001,-0.648392,-0.000000;;, + 61;3;-0.000001,-0.648392,-0.000000;;, + 62;3;-0.000001,-0.648392,-0.000000;;, + 63;3;-0.000001,-0.648392,-0.000000;;, + 64;3;-0.000001,-0.648392,-0.000000;;, + 65;3;-0.000001,-0.648392,-0.000000;;, + 66;3;-0.000001,-0.648392,-0.000000;;, + 67;3;-0.000001,-0.648392,-0.000000;;, + 68;3;-0.000001,-0.648392,-0.000000;;, + 69;3;-0.000001,-0.648392,-0.000000;;, + 70;3;-0.000001,-0.648392,-0.000000;;, + 71;3;-0.000001,-0.648392,-0.000000;;, + 72;3;-0.000001,-0.648392,-0.000000;;, + 73;3;-0.000001,-0.648392,-0.000000;;, + 74;3;-0.000001,-0.648392,-0.000000;;, + 75;3;-0.000001,-0.648392,-0.000000;;, + 76;3;-0.000001,-0.648392,-0.000000;;, + 77;3;-0.000001,-0.648392,-0.000000;;, + 78;3;-0.000001,-0.648392,-0.000000;;, + 79;3;-0.000001,-0.648392,-0.000000;;, + 80;3;-0.000001,-0.648393,-0.000000;;, + 81;3;-0.000001,-0.648392,-0.000000;;, + 82;3;-0.000001,-0.648392,-0.000000;;, + 83;3;-0.000001,-0.648392,-0.000000;;, + 84;3;-0.000001,-0.648392,-0.000000;;, + 85;3;-0.000001,-0.648392,-0.000000;;, + 86;3;-0.000001,-0.648392,-0.000000;;, + 87;3;-0.000001,-0.648393,-0.000000;;, + 88;3;-0.000001,-0.648392,-0.000000;;, + 89;3;-0.000001,-0.648392,-0.000000;;, + 90;3;-0.002428,-0.440470, 0.000793;;, + 91;3;-0.009265, 0.128944, 0.003029;;, + 92;3;-0.018043, 0.850061, 0.005900;;, + 93;3;-0.024880, 1.419475, 0.008136;;, + 94;3;-0.027307, 1.627397, 0.008929;;, + 95;3;-0.027307, 1.627397, 0.008929;;, + 96;3;-0.027307, 1.627397, 0.008929;;, + 97;3;-0.027307, 1.627397, 0.008929;;, + 98;3;-0.027307, 1.627397, 0.008929;;, + 99;3;-0.027307, 1.627397, 0.008929;;, + 100;3;-0.024880, 1.380496, 0.008136;;, + 101;3;-0.018043, 0.711232, 0.005900;;, + 102;3;-0.009265,-0.132227, 0.003029;;, + 103;3;-0.002428,-0.801491, 0.000793;;, + 104;3;-0.000001,-1.048393,-0.000000;;, + 105;3;-0.000001,-1.048393,-0.000000;;, + 106;3;-0.000001,-1.048393,-0.000000;;, + 107;3;-0.000001,-1.048393,-0.000000;;, + 108;3;-0.000001,-1.048393,-0.000000;;, + 109;3;-0.000001,-1.048392,-0.000000;;, + 110;3;-0.000001,-1.048393,-0.000000;;, + 111;3;-0.000001,-1.048393,-0.000000;;, + 112;3;-0.000001,-1.048393,-0.000000;;, + 113;3;-0.000001,-1.048392,-0.000000;;, + 114;3;-0.000001,-1.048393,-0.000000;;, + 115;3;-0.000001,-1.048392,-0.000000;;, + 116;3;-0.000001,-1.048393,-0.000000;;, + 117;3;-0.000001,-1.048393,-0.000000;;, + 118;3;-0.000001,-1.048392,-0.000000;;, + 119;3;-0.000001,-1.048393,-0.000000;;, + 120;3;-0.000001,-1.048393,-0.000000;;, + 121;3;-0.000001,-1.048393,-0.000000;;, + 122;3;-0.000001,-1.048393,-0.000000;;, + 123;3;-0.000001,-1.048393,-0.000000;;, + 124;3;-0.000001,-1.048393,-0.000000;;, + 125;3;-0.000001,-1.048392,-0.000000;;, + 126;3;-0.000001,-1.048393,-0.000000;;, + 127;3;-0.000001,-1.048393,-0.000000;;, + 128;3;-0.000001,-1.048392,-0.000000;;, + 129;3;-0.000001,-1.048392,-0.000000;;, + 130;3;-0.000001,-1.048393,-0.000000;;, + 131;3;-0.000001,-1.048393,-0.000000;;, + 132;3;-0.000001,-1.048393,-0.000000;;, + 133;3;-0.000001,-1.048393,-0.000000;;, + 134;3;-0.000001,-1.048393,-0.000000;;; + } + } + Animation { + {Armature_Bone_003} + AnimationKey { // Rotation + 0; + 135; + 0;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 1;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 2;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 3;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 4;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 5;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 6;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 7;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 8;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 9;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 10;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 11;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 12;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 13;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 14;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 15;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 16;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 17;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 18;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 19;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 20;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 21;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 22;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 23;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 24;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 25;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 26;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 27;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 28;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 29;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 30;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 31;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 32;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 33;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 34;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 35;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 36;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 37;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 38;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 39;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 40;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 41;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 42;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 43;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 44;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 45;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 46;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 47;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 48;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 49;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 50;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 51;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 52;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 53;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 54;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 55;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 56;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 57;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 58;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 59;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 60;4;-0.449249, 0.542003, 0.552532, 0.442344;;, + 61;4;-0.461675, 0.519790, 0.561127, 0.434701;;, + 62;4;-0.481843, 0.483639, 0.575065, 0.422242;;, + 63;4;-0.508154, 0.436296, 0.593228, 0.405885;;, + 64;4;-0.537854, 0.382562, 0.613698, 0.387253;;, + 65;4;-0.567398, 0.328671, 0.634013, 0.368466;;, + 66;4;-0.593256, 0.280875, 0.651724, 0.351656;;, + 67;4;-0.612713, 0.244017, 0.664954, 0.338490;;, + 68;4;-0.624228, 0.220892, 0.672638, 0.329937;;, + 69;4;-0.627298, 0.212452, 0.674436, 0.326339;;, + 70;4;-0.634290, 0.221335, 0.665431, 0.315466;;, + 71;4;-0.654862, 0.249714, 0.643365, 0.285789;;, + 72;4;-0.678475, 0.290014, 0.618722, 0.245063;;, + 73;4;-0.690542, 0.328057, 0.605842, 0.207363;;, + 74;4;-0.683061, 0.353391, 0.612466, 0.182832;;, + 75;4;-0.644742, 0.377681, 0.637155, 0.174833;;, + 76;4;-0.568666, 0.414546, 0.673851, 0.185489;;, + 77;4;-0.475621, 0.458112, 0.709364, 0.211651;;, + 78;4;-0.398514, 0.498377, 0.727337, 0.243412;;, + 79;4;-0.358441, 0.528451, 0.720170, 0.271320;;, + 80;4;-0.340851, 0.555993, 0.695296, 0.292027;;, + 81;4;-0.330681, 0.586319, 0.665671, 0.306758;;, + 82;4;-0.328908, 0.610699, 0.644691, 0.321309;;, + 83;4;-0.374963, 0.594738, 0.602188, 0.375352;;, + 84;4;-0.426082, 0.562960, 0.563908, 0.425694;;, + 85;4;-0.433569, 0.557784, 0.558436, 0.433254;;, + 86;4;-0.436770, 0.555897, 0.556350, 0.436514;;, + 87;4;-0.437673, 0.555567, 0.555919, 0.437449;;, + 88;4;-0.439675, 0.554002, 0.554315, 0.439456;;, + 89;4;-0.445115, 0.549380, 0.549671, 0.444879;;, + 90;4;-0.455328, 0.540439, 0.540711, 0.455071;;, + 91;4;-0.470084, 0.527206, 0.527467, 0.469817;;, + 92;4;-0.485516, 0.513212, 0.513473, 0.485247;;, + 93;4;-0.496440, 0.503247, 0.503510, 0.496173;;, + 94;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 95;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 96;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 97;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 98;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 99;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 100;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 101;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 102;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 103;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 104;4;-0.500133, 0.499867, 0.500133, 0.499867;;, + 105;4;-0.504658, 0.495343, 0.497751, 0.498936;;, + 106;4;-0.518403, 0.481599, 0.490669, 0.496028;;, + 107;4;-0.541171, 0.458832, 0.479293, 0.491025;;, + 108;4;-0.571923, 0.428082, 0.464550, 0.483943;;, + 109;4;-0.608589, 0.391418, 0.447964, 0.474983;;, + 110;4;-0.648166, 0.351843, 0.431516, 0.464553;;, + 111;4;-0.687206, 0.312804, 0.417305, 0.453216;;, + 112;4;-0.722513, 0.277496, 0.407121, 0.441573;;, + 113;4;-0.751694, 0.248314, 0.402160, 0.430152;;, + 114;4;-0.773339, 0.226666, 0.402981, 0.419337;;, + 115;4;-0.786897, 0.213103, 0.409633, 0.409367;;, + 116;4;-0.790950, 0.206559, 0.424578, 0.396979;;, + 117;4;-0.783646, 0.206527, 0.450256, 0.379272;;, + 118;4;-0.766473, 0.212907, 0.483853, 0.358489;;, + 119;4;-0.744416, 0.223688, 0.519078, 0.338704;;, + 120;4;-0.723687, 0.235752, 0.549230, 0.323740;;, + 121;4;-0.708400, 0.246633, 0.570618, 0.315309;;, + 122;4;-0.690841, 0.263966, 0.581443, 0.317930;;, + 123;4;-0.662392, 0.296011, 0.580376, 0.336018;;, + 124;4;-0.625126, 0.340288, 0.568236, 0.367713;;, + 125;4;-0.583586, 0.391069, 0.548100, 0.407977;;, + 126;4;-0.544120, 0.440175, 0.525108, 0.449137;;, + 127;4;-0.512759, 0.479678, 0.504835, 0.483388;;, + 128;4;-0.493284, 0.504469, 0.491410, 0.505357;;, + 129;4;-0.486899, 0.512768, 0.486854, 0.512808;;, + 130;4;-0.488130, 0.511691, 0.488106, 0.511713;;, + 131;4;-0.491454, 0.508474, 0.491444, 0.508483;;, + 132;4;-0.495685, 0.504297, 0.495682, 0.504299;;, + 133;4;-0.498969, 0.501030, 0.498968, 0.501030;;, + 134;4;-0.500133, 0.499867, 0.500133, 0.499867;;; + } + AnimationKey { // Scale + 1; + 135; + 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; 0.955494, 0.955494, 0.955494;;, + 91;3; 0.830311, 0.830311, 0.830311;;, + 92;3; 0.669689, 0.669689, 0.669689;;, + 93;3; 0.544506, 0.544506, 0.544506;;, + 94;3; 0.500000, 0.500000, 0.500000;;, + 95;3; 0.500000, 0.500000, 0.500000;;, + 96;3; 0.500000, 0.500000, 0.500000;;, + 97;3; 0.500000, 0.500000, 0.500000;;, + 98;3; 0.500000, 0.500000, 0.500000;;, + 99;3; 0.500000, 0.500000, 0.500000;;, + 100;3; 0.544506, 0.544506, 0.544506;;, + 101;3; 0.669689, 0.669689, 0.669689;;, + 102;3; 0.830311, 0.830311, 0.830311;;, + 103;3; 0.955494, 0.955494, 0.955494;;, + 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;;; + } + AnimationKey { // Position + 2; + 135; + 0;3;-0.000000, 7.151142, 2.618314;;, + 1;3;-0.000000, 7.151142, 2.618314;;, + 2;3;-0.000000, 7.151142, 2.618314;;, + 3;3;-0.000000, 7.151142, 2.618314;;, + 4;3;-0.000000, 7.151142, 2.618314;;, + 5;3;-0.000000, 7.151142, 2.618314;;, + 6;3;-0.000000, 7.151142, 2.618314;;, + 7;3;-0.000000, 7.151142, 2.618314;;, + 8;3;-0.000000, 7.151142, 2.618314;;, + 9;3;-0.000000, 7.151142, 2.618314;;, + 10;3;-0.000000, 7.151142, 2.618314;;, + 11;3;-0.000000, 7.151142, 2.618314;;, + 12;3;-0.000000, 7.151142, 2.618314;;, + 13;3;-0.000000, 7.151142, 2.618314;;, + 14;3;-0.000000, 7.151142, 2.618314;;, + 15;3;-0.000000, 7.151142, 2.618314;;, + 16;3;-0.000000, 7.151142, 2.618314;;, + 17;3;-0.000000, 7.151142, 2.618314;;, + 18;3;-0.000000, 7.151142, 2.618314;;, + 19;3;-0.000000, 7.151142, 2.618314;;, + 20;3;-0.000000, 7.151142, 2.618314;;, + 21;3;-0.000000, 7.151142, 2.618314;;, + 22;3;-0.000000, 7.151142, 2.618314;;, + 23;3;-0.000000, 7.151142, 2.618314;;, + 24;3;-0.000000, 7.151142, 2.618314;;, + 25;3;-0.000000, 7.151142, 2.618314;;, + 26;3;-0.000000, 7.151142, 2.618314;;, + 27;3;-0.000000, 7.151142, 2.618314;;, + 28;3;-0.000000, 7.151142, 2.618314;;, + 29;3;-0.000000, 7.151142, 2.618314;;, + 30;3;-0.000000, 7.151142, 2.618314;;, + 31;3;-0.000000, 7.151142, 2.618314;;, + 32;3;-0.000000, 7.151142, 2.618314;;, + 33;3;-0.000000, 7.151142, 2.618314;;, + 34;3;-0.000000, 7.151142, 2.618314;;, + 35;3;-0.000000, 7.151142, 2.618314;;, + 36;3;-0.000000, 7.151142, 2.618314;;, + 37;3;-0.000000, 7.151142, 2.618314;;, + 38;3;-0.000000, 7.151142, 2.618314;;, + 39;3;-0.000000, 7.151142, 2.618314;;, + 40;3;-0.000000, 7.151142, 2.618314;;, + 41;3;-0.000000, 7.151142, 2.618314;;, + 42;3;-0.000000, 7.151142, 2.618314;;, + 43;3;-0.000000, 7.151142, 2.618314;;, + 44;3;-0.000000, 7.151142, 2.618314;;, + 45;3;-0.000000, 7.151142, 2.618314;;, + 46;3;-0.000000, 7.151142, 2.618314;;, + 47;3;-0.000000, 7.151142, 2.618314;;, + 48;3;-0.000000, 7.151142, 2.618314;;, + 49;3;-0.000000, 7.151142, 2.618314;;, + 50;3;-0.000000, 7.151142, 2.618314;;, + 51;3;-0.000000, 7.151142, 2.618314;;, + 52;3;-0.000000, 7.151142, 2.618314;;, + 53;3;-0.000000, 7.151142, 2.618314;;, + 54;3;-0.000000, 7.151142, 2.618314;;, + 55;3;-0.000000, 7.151142, 2.618314;;, + 56;3;-0.000000, 7.151142, 2.618314;;, + 57;3;-0.000000, 7.151142, 2.618314;;, + 58;3;-0.000000, 7.151142, 2.618314;;, + 59;3;-0.000000, 7.151142, 2.618314;;, + 60;3;-0.000000, 7.151142, 2.618314;;, + 61;3;-0.000000, 7.151142, 2.618314;;, + 62;3;-0.000000, 7.151142, 2.618314;;, + 63;3;-0.000000, 7.151142, 2.618314;;, + 64;3; 0.000000, 7.151142, 2.618314;;, + 65;3; 0.000000, 7.151142, 2.618314;;, + 66;3; 0.000000, 7.151142, 2.618314;;, + 67;3; 0.000000, 7.151142, 2.618314;;, + 68;3; 0.000000, 7.151142, 2.618314;;, + 69;3; 0.000000, 7.151142, 2.618314;;, + 70;3; 0.000000, 7.151142, 2.618314;;, + 71;3; 0.000000, 7.151142, 2.618314;;, + 72;3; 0.000000, 7.151142, 2.618314;;, + 73;3; 0.000000, 7.151142, 2.618314;;, + 74;3; 0.000000, 7.151142, 2.618314;;, + 75;3;-0.017714, 7.152692, 2.618314;;, + 76;3;-0.067598, 7.157056, 2.618314;;, + 77;3;-0.131641, 7.162659, 2.618314;;, + 78;3;-0.181525, 7.167024, 2.618314;;, + 79;3;-0.199239, 7.168574, 2.618314;;, + 80;3;-0.199239, 7.168573, 2.618314;;, + 81;3;-0.199239, 7.168573, 2.618314;;, + 82;3;-0.199239, 7.168573, 2.618314;;, + 83;3;-0.122866, 7.161892, 2.618314;;, + 84;3;-0.035779, 7.154272, 2.618314;;, + 85;3;-0.019448, 7.153105, 2.618314;;, + 86;3;-0.008069, 7.152724, 2.618314;;, + 87;3;-0.002139, 7.152692, 2.618314;;, + 88;3;-0.000222, 7.152318, 2.618314;;, + 89;3;-0.000000, 7.151142, 2.618314;;, + 90;3;-0.002427, 7.003605, 2.501667;;, + 91;3;-0.009264, 6.596964, 2.176184;;, + 92;3;-0.018043, 6.079250, 1.760217;;, + 93;3;-0.024880, 5.673338, 1.434734;;, + 94;3;-0.027307, 5.527164, 1.318086;;, + 95;3;-0.027307, 5.527164, 1.318086;;, + 96;3;-0.027307, 5.527164, 1.318086;;, + 97;3;-0.027307, 5.527164, 1.318086;;, + 98;3;-0.027307, 5.527164, 1.318086;;, + 99;3;-0.027307, 5.527164, 1.318086;;, + 100;3;-0.024880, 5.662300, 1.423411;;, + 101;3;-0.018043, 6.042881, 1.722508;;, + 102;3;-0.009265, 6.540624, 2.117665;;, + 103;3;-0.002428, 6.955214, 2.451799;;, + 104;3;-0.000000, 7.151142, 2.618314;;, + 105;3;-0.007324, 7.216349, 2.683282;;, + 106;3;-0.029407, 7.269654, 2.736558;;, + 107;3;-0.065611, 7.310823, 2.777849;;, + 108;3;-0.113849, 7.340499, 2.807723;;, + 109;3;-0.170311, 7.360460, 2.827884;;, + 110;3;-0.229711, 7.373590, 2.841161;;, + 111;3;-0.286169, 7.383459, 2.851100;;, + 112;3;-0.334401, 7.393634, 2.861266;;, + 113;3;-0.370599, 7.407079, 2.874632;;, + 114;3;-0.392677, 7.425855, 2.893255;;, + 115;3;-0.400000, 7.451142, 2.918314;;, + 116;3;-0.389894, 7.484374, 2.951136;;, + 117;3;-0.359148, 7.524864, 2.990964;;, + 118;3;-0.311450, 7.567104, 3.032404;;, + 119;3;-0.256961, 7.602792, 3.067355;;, + 120;3;-0.207551, 7.625269, 3.089342;;, + 121;3;-0.170564, 7.632551, 3.096458;;, + 122;3;-0.140034, 7.615844, 3.079865;;, + 123;3;-0.108687, 7.565982, 3.030340;;, + 124;3;-0.078085, 7.487494, 2.952384;;, + 125;3;-0.050407, 7.391885, 2.857424;;, + 126;3;-0.027870, 7.296265, 2.762452;;, + 127;3;-0.011915, 7.217749, 2.684468;;, + 128;3;-0.002823, 7.167860, 2.634918;;, + 129;3;-0.000000, 7.151142, 2.618314;;, + 130;3; 0.000000, 7.151142, 2.618314;;, + 131;3; 0.000000, 7.151142, 2.618314;;, + 132;3; 0.000000, 7.151142, 2.618314;;, + 133;3;-0.000000, 7.151142, 2.618313;;, + 134;3;-0.000000, 7.151142, 2.618314;;; + } + } + Animation { + {Armature_Bone_004} + AnimationKey { // Rotation + 0; + 135; + 0;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 1;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 2;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 3;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 4;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 5;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 6;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 7;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 8;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 9;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 10;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 11;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 12;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 13;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 14;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 15;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 16;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 17;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 18;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 19;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 20;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 21;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 22;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 23;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 24;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 25;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 26;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 27;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 28;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 29;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 30;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 31;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 32;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 33;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 34;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 35;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 36;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 37;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 38;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 39;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 40;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 41;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 42;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 43;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 44;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 45;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 46;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 47;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 48;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 49;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 50;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 51;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 52;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 53;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 54;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 55;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 56;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 57;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 58;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 59;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 60;4;-0.449645,-0.541509,-0.553017, 0.441942;;, + 61;4;-0.462064,-0.519288,-0.561592, 0.434288;;, + 62;4;-0.482220,-0.483125,-0.575497, 0.421811;;, + 63;4;-0.508516,-0.435765,-0.593617, 0.405430;;, + 64;4;-0.538200,-0.382013,-0.614040, 0.386772;;, + 65;4;-0.567728,-0.328104,-0.634306, 0.367958;;, + 66;4;-0.593570,-0.280292,-0.651975, 0.351126;;, + 67;4;-0.613016,-0.243422,-0.665172, 0.337942;;, + 68;4;-0.624522,-0.220290,-0.672835, 0.329379;;, + 69;4;-0.627590,-0.211849,-0.674626, 0.325778;;, + 70;4;-0.634567,-0.220735,-0.665633, 0.314905;;, + 71;4;-0.655102,-0.249121,-0.643603, 0.285222;;, + 72;4;-0.678670,-0.289432,-0.619005, 0.244485;;, + 73;4;-0.690707,-0.327491,-0.606155, 0.206770;;, + 74;4;-0.683224,-0.352843,-0.612782, 0.182221;;, + 75;4;-0.644918,-0.377135,-0.637472, 0.174233;;, + 76;4;-0.568856,-0.413971,-0.674198, 0.184952;;, + 77;4;-0.475826,-0.457496,-0.709758, 0.211208;;, + 78;4;-0.398736,-0.497732,-0.727778, 0.243051;;, + 79;4;-0.358683,-0.527807,-0.720643, 0.270999;;, + 80;4;-0.341108,-0.555356,-0.695797, 0.291737;;, + 81;4;-0.330946,-0.585693,-0.666205, 0.306493;;, + 82;4;-0.329195,-0.610122,-0.645237, 0.321015;;, + 83;4;-0.375314,-0.594241,-0.602705, 0.374975;;, + 84;4;-0.426477,-0.562493,-0.564396, 0.425276;;, + 85;4;-0.433964,-0.557305,-0.558926, 0.432846;;, + 86;4;-0.437164,-0.555409,-0.556844, 0.436114;;, + 87;4;-0.438065,-0.555074,-0.556415, 0.437054;;, + 88;4;-0.440068,-0.553508,-0.554810, 0.439061;;, + 89;4;-0.445512,-0.548888,-0.550162, 0.444481;;, + 90;4;-0.455735,-0.539954,-0.541193, 0.454666;;, + 91;4;-0.470504,-0.526732,-0.527938, 0.469398;;, + 92;4;-0.485950,-0.512751,-0.513931, 0.484814;;, + 93;4;-0.496884,-0.502796,-0.503960, 0.495730;;, + 94;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 95;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 96;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 97;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 98;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 99;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 100;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 101;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 102;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 103;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 104;4;-0.500579,-0.499420,-0.500579, 0.499420;;, + 105;4;-0.505104,-0.494897,-0.498193, 0.498485;;, + 106;4;-0.518846,-0.481160,-0.491100, 0.495564;;, + 107;4;-0.541610,-0.458404,-0.479703, 0.490541;;, + 108;4;-0.572356,-0.427666,-0.464933, 0.483432;;, + 109;4;-0.609014,-0.391017,-0.448313, 0.474439;;, + 110;4;-0.648581,-0.351457,-0.431830, 0.463973;;, + 111;4;-0.687611,-0.312431,-0.417584, 0.452601;;, + 112;4;-0.722908,-0.277132,-0.407369, 0.440927;;, + 113;4;-0.752079,-0.247954,-0.402382, 0.429479;;, + 114;4;-0.773714,-0.226305,-0.403183, 0.418645;;, + 115;4;-0.787263,-0.212737,-0.409823, 0.408664;;, + 116;4;-0.791305,-0.206179,-0.424762, 0.396272;;, + 117;4;-0.783985,-0.206125,-0.450440, 0.378571;;, + 118;4;-0.766793,-0.212474,-0.484043, 0.357804;;, + 119;4;-0.744719,-0.223223,-0.519278, 0.338038;;, + 120;4;-0.723977,-0.235260,-0.549440, 0.323093;;, + 121;4;-0.708682,-0.246123,-0.570838, 0.314676;;, + 122;4;-0.691125,-0.263445,-0.581679, 0.317313;;, + 123;4;-0.662692,-0.295491,-0.580641, 0.335427;;, + 124;4;-0.625453,-0.339778,-0.568541, 0.367156;;, + 125;4;-0.583949,-0.390577,-0.548451, 0.407457;;, + 126;4;-0.544519,-0.439703,-0.525504, 0.448653;;, + 127;4;-0.513188,-0.479223,-0.505266, 0.482932;;, + 128;4;-0.493733,-0.504026,-0.491864, 0.504918;;, + 129;4;-0.487355,-0.512330,-0.487314, 0.512375;;, + 130;4;-0.488586,-0.511253,-0.488565, 0.511278;;, + 131;4;-0.491907,-0.508033,-0.491899, 0.508044;;, + 132;4;-0.496135,-0.503853,-0.496133, 0.503857;;, + 133;4;-0.499416,-0.500583,-0.499416, 0.500584;;, + 134;4;-0.500579,-0.499420,-0.500579, 0.499420;;; + } + AnimationKey { // Scale + 1; + 135; + 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; 0.955494, 0.955494, 0.955494;;, + 91;3; 0.830311, 0.830311, 0.830311;;, + 92;3; 0.669689, 0.669689, 0.669689;;, + 93;3; 0.544506, 0.544506, 0.544506;;, + 94;3; 0.500000, 0.500000, 0.500000;;, + 95;3; 0.500000, 0.500000, 0.500000;;, + 96;3; 0.500000, 0.500000, 0.500000;;, + 97;3; 0.500000, 0.500000, 0.500000;;, + 98;3; 0.500000, 0.500000, 0.500000;;, + 99;3; 0.500000, 0.500000, 0.500000;;, + 100;3; 0.544506, 0.544506, 0.544506;;, + 101;3; 0.669689, 0.669689, 0.669689;;, + 102;3; 0.830311, 0.830311, 0.830311;;, + 103;3; 0.955494, 0.955494, 0.955494;;, + 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;;; + } + AnimationKey { // Position + 2; + 135; + 0;3;-0.000001, 7.143965,-2.565951;;, + 1;3;-0.000001, 7.143965,-2.565951;;, + 2;3;-0.000001, 7.143965,-2.565951;;, + 3;3;-0.000001, 7.143965,-2.565951;;, + 4;3;-0.000001, 7.143965,-2.565951;;, + 5;3;-0.000001, 7.143965,-2.565951;;, + 6;3;-0.000001, 7.143965,-2.565951;;, + 7;3;-0.000001, 7.143965,-2.565951;;, + 8;3;-0.000001, 7.143965,-2.565951;;, + 9;3;-0.000001, 7.143965,-2.565951;;, + 10;3;-0.000001, 7.143965,-2.565951;;, + 11;3;-0.000001, 7.143965,-2.565951;;, + 12;3;-0.000001, 7.143965,-2.565951;;, + 13;3;-0.000001, 7.143965,-2.565951;;, + 14;3;-0.000001, 7.143965,-2.565951;;, + 15;3;-0.000001, 7.143965,-2.565951;;, + 16;3;-0.000001, 7.143965,-2.565951;;, + 17;3;-0.000001, 7.143965,-2.565951;;, + 18;3;-0.000001, 7.143965,-2.565951;;, + 19;3;-0.000001, 7.143965,-2.565951;;, + 20;3;-0.000001, 7.143965,-2.565951;;, + 21;3;-0.000001, 7.143965,-2.565951;;, + 22;3;-0.000001, 7.143965,-2.565951;;, + 23;3;-0.000001, 7.143965,-2.565951;;, + 24;3;-0.000001, 7.143965,-2.565951;;, + 25;3;-0.000001, 7.143965,-2.565951;;, + 26;3;-0.000001, 7.143965,-2.565951;;, + 27;3;-0.000001, 7.143965,-2.565951;;, + 28;3;-0.000001, 7.143965,-2.565951;;, + 29;3;-0.000001, 7.143965,-2.565951;;, + 30;3;-0.000001, 7.143965,-2.565951;;, + 31;3;-0.000001, 7.143965,-2.565951;;, + 32;3;-0.000001, 7.143965,-2.565951;;, + 33;3;-0.000001, 7.143965,-2.565951;;, + 34;3;-0.000001, 7.143965,-2.565951;;, + 35;3;-0.000001, 7.143965,-2.565951;;, + 36;3;-0.000001, 7.143965,-2.565951;;, + 37;3;-0.000001, 7.143965,-2.565951;;, + 38;3;-0.000001, 7.143965,-2.565951;;, + 39;3;-0.000001, 7.143965,-2.565951;;, + 40;3;-0.000001, 7.143965,-2.565951;;, + 41;3;-0.000001, 7.143965,-2.565951;;, + 42;3;-0.000001, 7.143965,-2.565951;;, + 43;3;-0.000001, 7.143965,-2.565951;;, + 44;3;-0.000001, 7.143965,-2.565951;;, + 45;3;-0.000001, 7.143965,-2.565951;;, + 46;3;-0.000001, 7.143965,-2.565951;;, + 47;3;-0.000001, 7.143965,-2.565951;;, + 48;3;-0.000001, 7.143965,-2.565951;;, + 49;3;-0.000001, 7.143965,-2.565951;;, + 50;3;-0.000001, 7.143965,-2.565951;;, + 51;3;-0.000001, 7.143965,-2.565951;;, + 52;3;-0.000001, 7.143965,-2.565951;;, + 53;3;-0.000001, 7.143965,-2.565951;;, + 54;3;-0.000001, 7.143965,-2.565951;;, + 55;3;-0.000001, 7.143965,-2.565951;;, + 56;3;-0.000001, 7.143965,-2.565951;;, + 57;3;-0.000001, 7.143965,-2.565951;;, + 58;3;-0.000001, 7.143965,-2.565951;;, + 59;3;-0.000001, 7.143965,-2.565951;;, + 60;3;-0.000001, 7.143965,-2.565951;;, + 61;3;-0.000001, 7.143965,-2.565951;;, + 62;3;-0.000001, 7.143965,-2.565951;;, + 63;3;-0.000001, 7.143965,-2.565951;;, + 64;3;-0.000000, 7.143965,-2.565951;;, + 65;3;-0.000000, 7.143965,-2.565951;;, + 66;3;-0.000000, 7.143965,-2.565951;;, + 67;3;-0.000000, 7.143965,-2.565951;;, + 68;3;-0.000000, 7.143965,-2.565951;;, + 69;3;-0.000000, 7.143965,-2.565951;;, + 70;3;-0.000000, 7.143965,-2.565951;;, + 71;3;-0.000000, 7.143965,-2.565951;;, + 72;3;-0.000000, 7.143965,-2.565951;;, + 73;3;-0.000000, 7.143965,-2.565951;;, + 74;3;-0.000000, 7.143965,-2.565951;;, + 75;3;-0.017714, 7.145515,-2.565951;;, + 76;3;-0.067598, 7.149879,-2.565951;;, + 77;3;-0.131641, 7.155483,-2.565951;;, + 78;3;-0.181525, 7.159847,-2.565951;;, + 79;3;-0.199239, 7.161397,-2.565951;;, + 80;3;-0.199239, 7.161397,-2.565951;;, + 81;3;-0.199239, 7.161397,-2.565951;;, + 82;3;-0.199239, 7.161396,-2.565951;;, + 83;3;-0.122867, 7.154716,-2.565951;;, + 84;3;-0.035779, 7.147096,-2.565951;;, + 85;3;-0.019448, 7.145928,-2.565951;;, + 86;3;-0.008070, 7.145547,-2.565951;;, + 87;3;-0.002139, 7.145515,-2.565951;;, + 88;3;-0.000222, 7.145142,-2.565951;;, + 89;3;-0.000001, 7.143965,-2.565951;;, + 90;3;-0.002428, 6.996767,-2.450060;;, + 91;3;-0.009265, 6.591022,-2.126660;;, + 92;3;-0.018043, 6.074424,-1.713337;;, + 93;3;-0.024880, 5.669410,-1.389936;;, + 94;3;-0.027307, 5.523576,-1.274046;;, + 95;3;-0.027307, 5.523576,-1.274046;;, + 96;3;-0.027307, 5.523576,-1.274046;;, + 97;3;-0.027307, 5.523576,-1.274046;;, + 98;3;-0.027307, 5.523576,-1.274046;;, + 99;3;-0.027307, 5.523576,-1.274046;;, + 100;3;-0.024880, 5.658372,-1.378614;;, + 101;3;-0.018044, 6.038046,-1.675619;;, + 102;3;-0.009265, 6.534667,-2.068125;;, + 103;3;-0.002428, 6.948370,-2.400186;;, + 104;3;-0.000000, 7.143965,-2.565952;;, + 105;3;-0.007324, 7.209167,-2.630919;;, + 106;3;-0.029408, 7.262470,-2.684201;;, + 107;3;-0.065612, 7.303640,-2.725502;;, + 108;3;-0.113850, 7.333318,-2.755392;;, + 109;3;-0.170312, 7.353280,-2.775567;;, + 110;3;-0.229711, 7.366412,-2.788857;;, + 111;3;-0.286170, 7.376281,-2.798799;;, + 112;3;-0.334401, 7.386456,-2.808964;;, + 113;3;-0.370599, 7.399901,-2.822317;;, + 114;3;-0.392678, 7.418678,-2.840922;;, + 115;3;-0.400000, 7.443965,-2.865952;;, + 116;3;-0.389894, 7.477197,-2.898725;;, + 117;3;-0.359148, 7.517688,-2.938473;;, + 118;3;-0.311451, 7.559928,-2.979817;;, + 119;3;-0.256962, 7.595616,-3.014677;;, + 120;3;-0.207552, 7.618093,-3.036605;;, + 121;3;-0.170564, 7.625375,-3.043701;;, + 122;3;-0.140035, 7.608667,-3.027121;;, + 123;3;-0.108687, 7.558805,-2.977638;;, + 124;3;-0.078085, 7.480318,-2.899747;;, + 125;3;-0.050407, 7.384709,-2.804865;;, + 126;3;-0.027871, 7.289088,-2.709971;;, + 127;3;-0.011915, 7.210572,-2.632051;;, + 128;3;-0.002823, 7.160683,-2.582542;;, + 129;3;-0.000000, 7.143965,-2.565952;;, + 130;3;-0.000000, 7.143966,-2.565952;;, + 131;3;-0.000000, 7.143966,-2.565952;;, + 132;3;-0.000000, 7.143966,-2.565952;;, + 133;3;-0.000000, 7.143966,-2.565952;;, + 134;3;-0.000000, 7.143965,-2.565952;;; + } + } + Animation { + {Armature_Bone_005} + AnimationKey { // Rotation + 0; + 135; + 0;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 1;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 2;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 3;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 4;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 5;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 6;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 7;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 8;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 9;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 10;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 11;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 12;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 13;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 14;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 15;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 16;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 17;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 18;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 19;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 20;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 21;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 22;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 23;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 24;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 25;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 26;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 27;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 28;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 29;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 30;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 31;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 32;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 33;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 34;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 35;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 36;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 37;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 38;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 39;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 40;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 41;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 42;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 43;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 44;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 45;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 46;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 47;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 48;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 49;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 50;4;-0.543330, 0.448853,-0.438420,-0.552532;;, + 51;4;-0.524687, 0.460458,-0.418627,-0.561579;;, + 52;4;-0.494378, 0.479323,-0.386447,-0.576285;;, + 53;4;-0.454739, 0.503994,-0.344363,-0.595517;;, + 54;4;-0.409838, 0.531939,-0.296691,-0.617300;;, + 55;4;-0.364940, 0.559882,-0.249023,-0.639081;;, + 56;4;-0.325307, 0.584547,-0.206944,-0.658307;;, + 57;4;-0.295005, 0.603406,-0.174772,-0.673006;;, + 58;4;-0.276367, 0.615005,-0.154985,-0.682048;;, + 59;4;-0.270174, 0.618860,-0.148409,-0.685053;;, + 60;4;-0.273225, 0.617897,-0.151373,-0.684315;;, + 61;4;-0.282638, 0.614826,-0.160545,-0.681955;;, + 62;4;-0.298480, 0.609420,-0.176045,-0.677794;;, + 63;4;-0.320179, 0.601601,-0.197389,-0.671763;;, + 64;4;-0.346353, 0.591526,-0.223309,-0.663970;;, + 65;4;-0.374928, 0.579615,-0.251855,-0.654730;;, + 66;4;-0.403586, 0.566474,-0.280808,-0.644503;;, + 67;4;-0.430317, 0.552740,-0.308215,-0.633777;;, + 68;4;-0.453744, 0.538950,-0.332710,-0.622969;;, + 69;4;-0.473147, 0.525483,-0.353553,-0.612373;;, + 70;4;-0.492551, 0.509176,-0.375013,-0.598987;;, + 71;4;-0.514485, 0.488054,-0.399883,-0.581095;;, + 72;4;-0.534202, 0.466812,-0.423123,-0.563442;;, + 73;4;-0.546505, 0.451470,-0.438939,-0.551978;;, + 74;4;-0.549525, 0.444997,-0.444997,-0.549525;;, + 75;4;-0.546086, 0.444311,-0.443725,-0.554660;;, + 76;4;-0.535830, 0.448587,-0.434417,-0.567682;;, + 77;4;-0.514839, 0.461455,-0.413350,-0.589863;;, + 78;4;-0.482155, 0.484321,-0.380203,-0.619384;;, + 79;4;-0.440494, 0.515325,-0.338310,-0.652650;;, + 80;4;-0.359295, 0.568445,-0.251348,-0.686290;;, + 81;4;-0.248046, 0.634645,-0.127768,-0.710808;;, + 82;4;-0.201207, 0.661680,-0.075166,-0.718363;;, + 83;4;-0.211413, 0.655344,-0.086005,-0.713435;;, + 84;4;-0.228001, 0.645048,-0.103623,-0.705428;;, + 85;4;-0.236154, 0.639963,-0.112145,-0.701590;;, + 86;4;-0.240015, 0.637506,-0.115921,-0.699959;;, + 87;4;-0.243818, 0.635098,-0.119703,-0.698307;;, + 88;4;-0.252982, 0.629428,-0.129547,-0.693800;;, + 89;4;-0.270174, 0.618860,-0.148409,-0.685053;;, + 90;4;-0.305823, 0.598947,-0.196430,-0.660803;;, + 91;4;-0.366156, 0.567478,-0.287535,-0.613047;;, + 92;4;-0.433568, 0.533251,-0.393435,-0.556885;;, + 93;4;-0.482973, 0.508483,-0.472498,-0.514716;;, + 94;4;-0.500000, 0.500000,-0.500000,-0.500000;;, + 95;4;-0.500000, 0.500000,-0.500000,-0.500000;;, + 96;4;-0.500000, 0.500000,-0.500000,-0.500000;;, + 97;4;-0.500000, 0.500000,-0.500000,-0.500000;;, + 98;4;-0.500000, 0.500000,-0.500000,-0.500000;;, + 99;4;-0.500000, 0.500000,-0.500000,-0.500000;;, + 100;4;-0.449956, 0.518269,-0.449956,-0.518269;;, + 101;4;-0.309346, 0.569444,-0.309346,-0.569445;;, + 102;4;-0.129026, 0.634972,-0.129026,-0.634972;;, + 103;4; 0.011585, 0.686147, 0.011585,-0.686147;;, + 104;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 105;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 106;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 107;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 108;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 109;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 110;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 111;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 112;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 113;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 114;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 115;4; 0.061628, 0.704416, 0.061628,-0.704416;;, + 116;4; 0.060866, 0.704348, 0.062385,-0.704478;;, + 117;4; 0.058647, 0.704148, 0.064588,-0.704655;;, + 118;4; 0.055461, 0.703857, 0.067757,-0.704908;;, + 119;4; 0.052280, 0.703561, 0.070931,-0.705156;;, + 120;4; 0.050076, 0.703347, 0.073149,-0.705319;;, + 121;4; 0.049335, 0.703257, 0.073927,-0.705359;;, + 122;4; 0.049816, 0.703243, 0.073911,-0.705300;;, + 123;4; 0.051224, 0.703251, 0.073798,-0.705171;;, + 124;4; 0.053472, 0.703283, 0.073556,-0.704979;;, + 125;4; 0.056294, 0.703337, 0.073165,-0.704744;;, + 126;4; 0.059262, 0.703408, 0.072620,-0.704501;;, + 127;4; 0.061924, 0.703487, 0.071942,-0.704285;;, + 128;4; 0.063960, 0.703568, 0.071166,-0.704119;;, + 129;4; 0.065223, 0.703644, 0.070324,-0.704015;;, + 130;4; 0.065523, 0.703764, 0.068931,-0.703998;;, + 131;4; 0.064737, 0.703967, 0.066640,-0.704089;;, + 132;4; 0.063319, 0.704194, 0.064107,-0.704240;;, + 133;4; 0.062087, 0.704359, 0.062262,-0.704369;;, + 134;4; 0.061628, 0.704416, 0.061628,-0.704416;;; + } + AnimationKey { // Scale + 1; + 135; + 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; 0.955494, 0.955494, 0.955494;;, + 91;3; 0.830311, 0.830311, 0.830311;;, + 92;3; 0.669689, 0.669689, 0.669689;;, + 93;3; 0.544506, 0.544506, 0.544506;;, + 94;3; 0.500000, 0.500000, 0.500000;;, + 95;3; 0.500000, 0.500000, 0.500000;;, + 96;3; 0.500000, 0.500000, 0.500000;;, + 97;3; 0.500000, 0.500000, 0.500000;;, + 98;3; 0.500000, 0.500000, 0.500000;;, + 99;3; 0.500000, 0.500000, 0.500000;;, + 100;3; 0.544506, 0.544506, 0.544506;;, + 101;3; 0.669689, 0.669689, 0.669689;;, + 102;3; 0.830311, 0.830311, 0.830311;;, + 103;3; 0.955494, 0.955494, 0.955494;;, + 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;;; + } + AnimationKey { // Position + 2; + 135; + 0;3; 0.000000, 0.655544, 2.627153;;, + 1;3; 0.000000, 0.655544, 2.627153;;, + 2;3; 0.000000, 0.655544, 2.627153;;, + 3;3; 0.000000, 0.655544, 2.627153;;, + 4;3; 0.000000, 0.655544, 2.627153;;, + 5;3; 0.000000, 0.655544, 2.627153;;, + 6;3; 0.000000, 0.655544, 2.627153;;, + 7;3; 0.000000, 0.655544, 2.627153;;, + 8;3; 0.000000, 0.655544, 2.627153;;, + 9;3; 0.000000, 0.655544, 2.627153;;, + 10;3; 0.000000, 0.655544, 2.627153;;, + 11;3; 0.000000, 0.655544, 2.627153;;, + 12;3; 0.000000, 0.655544, 2.627153;;, + 13;3; 0.000000, 0.655544, 2.627153;;, + 14;3; 0.000000, 0.655544, 2.627153;;, + 15;3; 0.000000, 0.655544, 2.627153;;, + 16;3; 0.000000, 0.655544, 2.627153;;, + 17;3; 0.000000, 0.655544, 2.627153;;, + 18;3; 0.000000, 0.655544, 2.627153;;, + 19;3; 0.000000, 0.655544, 2.627153;;, + 20;3; 0.000000, 0.655544, 2.627153;;, + 21;3; 0.000000, 0.655544, 2.627153;;, + 22;3; 0.000000, 0.655544, 2.627153;;, + 23;3; 0.000000, 0.655544, 2.627153;;, + 24;3; 0.000000, 0.655544, 2.627153;;, + 25;3; 0.000000, 0.655544, 2.627153;;, + 26;3; 0.000000, 0.655544, 2.627153;;, + 27;3; 0.000000, 0.655544, 2.627153;;, + 28;3; 0.000000, 0.655544, 2.627153;;, + 29;3; 0.000000, 0.655544, 2.627153;;, + 30;3; 0.000000, 0.655544, 2.627153;;, + 31;3; 0.000000, 0.655544, 2.627153;;, + 32;3; 0.000000, 0.655544, 2.627153;;, + 33;3; 0.000000, 0.655544, 2.627153;;, + 34;3; 0.000000, 0.655544, 2.627153;;, + 35;3; 0.000000, 0.655544, 2.627153;;, + 36;3; 0.000000, 0.655544, 2.627153;;, + 37;3; 0.000000, 0.655544, 2.627153;;, + 38;3; 0.000000, 0.655544, 2.627153;;, + 39;3; 0.000000, 0.655544, 2.627153;;, + 40;3; 0.000000, 0.655544, 2.627153;;, + 41;3; 0.000000, 0.655544, 2.627153;;, + 42;3; 0.000000, 0.655544, 2.627153;;, + 43;3; 0.000000, 0.655544, 2.627153;;, + 44;3; 0.000000, 0.655544, 2.627153;;, + 45;3; 0.000000, 0.655544, 2.627153;;, + 46;3; 0.000000, 0.655544, 2.627153;;, + 47;3; 0.000000, 0.655544, 2.627153;;, + 48;3; 0.000000, 0.655544, 2.627153;;, + 49;3; 0.000000, 0.655544, 2.627153;;, + 50;3; 0.000000, 0.655544, 2.641408;;, + 51;3; 0.000000, 0.655544, 2.684302;;, + 52;3; 0.000000, 0.655544, 2.754026;;, + 53;3; 0.000000, 0.655544, 2.845196;;, + 54;3; 0.000000, 0.655544, 2.948456;;, + 55;3; 0.000000, 0.655544, 3.051702;;, + 56;3; 0.000000, 0.655544, 3.142840;;, + 57;3; 0.000000, 0.655544, 3.212525;;, + 58;3; 0.000000, 0.655544, 3.255390;;, + 59;3; 0.000000, 0.655544, 3.269634;;, + 60;3; 0.000000, 0.655544, 3.265988;;, + 61;3; 0.000000, 0.655544, 3.254390;;, + 62;3; 0.000000, 0.655544, 3.234070;;, + 63;3; 0.000000, 0.655544, 3.204830;;, + 64;3; 0.000000, 0.655544, 3.167369;;, + 65;3; 0.000000, 0.655544, 3.123368;;, + 66;3; 0.000000, 0.655544, 3.075166;;, + 67;3; 0.000000, 0.655544, 3.025171;;, + 68;3; 0.000000, 0.655544, 2.975374;;, + 69;3; 0.000000, 0.655544, 2.927153;;, + 70;3; 0.000000, 0.655544, 2.866679;;, + 71;3; 0.000000, 0.655544, 2.785321;;, + 72;3; 0.000000, 0.655544, 2.703211;;, + 73;3; 0.000000, 0.655544, 2.646215;;, + 74;3; 0.000000, 0.655544, 2.627153;;, + 75;3; 0.000000, 0.655543, 2.635624;;, + 76;3; 0.000000, 0.655544, 2.667345;;, + 77;3; 0.000000, 0.655543, 2.729331;;, + 78;3; 0.000000, 0.655544, 2.819288;;, + 79;3;-0.000000, 0.655544, 2.927153;;, + 80;3; 0.000000, 0.655543, 3.107117;;, + 81;3; 0.000000, 0.655544, 3.333982;;, + 82;3; 0.000000, 0.655544, 3.427153;;, + 83;3; 0.000000, 0.655544, 3.403851;;, + 84;3; 0.000000, 0.655544, 3.366007;;, + 85;3; 0.000000, 0.655544, 3.347583;;, + 86;3; 0.000000, 0.655543, 3.339150;;, + 87;3; 0.000000, 0.655543, 3.330880;;, + 88;3; 0.000000, 0.655544, 3.310014;;, + 89;3; 0.000000, 0.655544, 3.269634;;, + 90;3;-0.002427, 0.801957, 3.058650;;, + 91;3;-0.009264, 1.208398, 2.566390;;, + 92;3;-0.018043, 1.726511, 1.960995;;, + 93;3;-0.024880, 2.132951, 1.491267;;, + 94;3;-0.027307, 2.279365, 1.322506;;, + 95;3;-0.027307, 2.279365, 1.322506;;, + 96;3;-0.027307, 2.279365, 1.322506;;, + 97;3;-0.027307, 2.279365, 1.322506;;, + 98;3;-0.027307, 2.279365, 1.322506;;, + 99;3;-0.027307, 2.279365, 1.322506;;, + 100;3;-0.024880, 2.037588, 1.476426;;, + 101;3;-0.018043, 1.381288, 1.903081;;, + 102;3;-0.009264, 0.553621, 2.446577;;, + 103;3;-0.002427,-0.102679, 2.873233;;, + 104;3; 0.000000,-0.344456, 3.027152;;, + 105;3; 0.000000,-0.344457, 3.027152;;, + 106;3; 0.000000,-0.344457, 3.027153;;, + 107;3; 0.000000,-0.344457, 3.027153;;, + 108;3; 0.000000,-0.344456, 3.027152;;, + 109;3; 0.000000,-0.344456, 3.027152;;, + 110;3; 0.000000,-0.344457, 3.027152;;, + 111;3; 0.000000,-0.344457, 3.027153;;, + 112;3; 0.000000,-0.344457, 3.027153;;, + 113;3; 0.000000,-0.344457, 3.027152;;, + 114;3; 0.000000,-0.344457, 3.027152;;, + 115;3; 0.000000,-0.344456, 3.027152;;, + 116;3;-0.000015,-0.344463, 3.027152;;, + 117;3;-0.000059,-0.344482, 3.027153;;, + 118;3;-0.000122,-0.344509, 3.027152;;, + 119;3;-0.000185,-0.344535, 3.027153;;, + 120;3;-0.000230,-0.344554, 3.027152;;, + 121;3;-0.000245,-0.344561, 3.027152;;, + 122;3;-0.000240,-0.344558, 3.027152;;, + 123;3;-0.000225,-0.344552, 3.027153;;, + 124;3;-0.000200,-0.344541, 3.027153;;, + 125;3;-0.000168,-0.344528, 3.027152;;, + 126;3;-0.000133,-0.344513, 3.027153;;, + 127;3;-0.000099,-0.344499, 3.027152;;, + 128;3;-0.000072,-0.344487, 3.027152;;, + 129;3;-0.000051,-0.344478, 3.027153;;, + 130;3;-0.000034,-0.344471, 3.027152;;, + 131;3;-0.000019,-0.344464, 3.027152;;, + 132;3;-0.000008,-0.344460, 3.027152;;, + 133;3;-0.000001,-0.344457, 3.027152;;, + 134;3; 0.000000,-0.344456, 3.027152;;; + } + } + Animation { + {Armature_Bone_006} + AnimationKey { // Rotation + 0; + 135; + 0;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 1;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 2;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 3;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 4;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 5;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 6;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 7;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 8;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 9;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 10;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 11;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 12;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 13;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 14;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 15;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 16;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 17;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 18;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 19;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 20;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 21;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 22;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 23;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 24;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 25;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 26;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 27;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 28;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 29;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 30;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 31;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 32;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 33;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 34;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 35;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 36;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 37;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 38;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 39;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 40;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 41;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 42;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 43;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 44;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 45;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 46;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 47;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 48;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 49;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 50;4;-0.438420,-0.552532,-0.543330, 0.448853;;, + 51;4;-0.418627,-0.561579,-0.524687, 0.460458;;, + 52;4;-0.386447,-0.576285,-0.494378, 0.479323;;, + 53;4;-0.344363,-0.595517,-0.454739, 0.503995;;, + 54;4;-0.296691,-0.617300,-0.409838, 0.531939;;, + 55;4;-0.249023,-0.639080,-0.364940, 0.559882;;, + 56;4;-0.206944,-0.658306,-0.325307, 0.584547;;, + 57;4;-0.174772,-0.673006,-0.295004, 0.603406;;, + 58;4;-0.154985,-0.682048,-0.276367, 0.615006;;, + 59;4;-0.148410,-0.685052,-0.270174, 0.618860;;, + 60;4;-0.151373,-0.684314,-0.273225, 0.617898;;, + 61;4;-0.160545,-0.681954,-0.282638, 0.614826;;, + 62;4;-0.176045,-0.677794,-0.298480, 0.609420;;, + 63;4;-0.197389,-0.671762,-0.320179, 0.601601;;, + 64;4;-0.223309,-0.663970,-0.346353, 0.591526;;, + 65;4;-0.251855,-0.654730,-0.374927, 0.579615;;, + 66;4;-0.280808,-0.644503,-0.403586, 0.566474;;, + 67;4;-0.308215,-0.633777,-0.430317, 0.552741;;, + 68;4;-0.332710,-0.622968,-0.453744, 0.538950;;, + 69;4;-0.353554,-0.612372,-0.473147, 0.525483;;, + 70;4;-0.375013,-0.598986,-0.492551, 0.509176;;, + 71;4;-0.399883,-0.581095,-0.514484, 0.488054;;, + 72;4;-0.423123,-0.563442,-0.534202, 0.466812;;, + 73;4;-0.438939,-0.551978,-0.546505, 0.451470;;, + 74;4;-0.444997,-0.549525,-0.549525, 0.444997;;, + 75;4;-0.443725,-0.554660,-0.546086, 0.444311;;, + 76;4;-0.434417,-0.567682,-0.535830, 0.448587;;, + 77;4;-0.413350,-0.589863,-0.514839, 0.461455;;, + 78;4;-0.380203,-0.619384,-0.482155, 0.484322;;, + 79;4;-0.338310,-0.652649,-0.440494, 0.515325;;, + 80;4;-0.251348,-0.686290,-0.359295, 0.568445;;, + 81;4;-0.127768,-0.710808,-0.248046, 0.634645;;, + 82;4;-0.075167,-0.718363,-0.201206, 0.661680;;, + 83;4;-0.086006,-0.713434,-0.211413, 0.655344;;, + 84;4;-0.103623,-0.705428,-0.228001, 0.645049;;, + 85;4;-0.112145,-0.701590,-0.236154, 0.639963;;, + 86;4;-0.115921,-0.699958,-0.240015, 0.637506;;, + 87;4;-0.119703,-0.698306,-0.243818, 0.635098;;, + 88;4;-0.129547,-0.693800,-0.252982, 0.629428;;, + 89;4;-0.148410,-0.685052,-0.270174, 0.618860;;, + 90;4;-0.196430,-0.660803,-0.305823, 0.598947;;, + 91;4;-0.287535,-0.613046,-0.366156, 0.567478;;, + 92;4;-0.393435,-0.556885,-0.433568, 0.533251;;, + 93;4;-0.472498,-0.514716,-0.482973, 0.508484;;, + 94;4;-0.500000,-0.500000,-0.500000, 0.500000;;, + 95;4;-0.500000,-0.500000,-0.500000, 0.500000;;, + 96;4;-0.500000,-0.500000,-0.500000, 0.500000;;, + 97;4;-0.500000,-0.500000,-0.500000, 0.500000;;, + 98;4;-0.500000,-0.500000,-0.500000, 0.500000;;, + 99;4;-0.500000,-0.500000,-0.500000, 0.500000;;, + 100;4;-0.449956,-0.518269,-0.449956, 0.518269;;, + 101;4;-0.309346,-0.569444,-0.309346, 0.569445;;, + 102;4;-0.129026,-0.634971,-0.129026, 0.634972;;, + 103;4; 0.011585,-0.686147, 0.011585, 0.686147;;, + 104;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 105;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 106;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 107;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 108;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 109;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 110;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 111;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 112;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 113;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 114;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 115;4; 0.061628,-0.704416, 0.061628, 0.704416;;, + 116;4; 0.062384,-0.704480, 0.060865, 0.704344;;, + 117;4; 0.064584,-0.704665, 0.058645, 0.704134;;, + 118;4; 0.067748,-0.704929, 0.055456, 0.703829;;, + 119;4; 0.070916,-0.705189, 0.052271, 0.703520;;, + 120;4; 0.073127,-0.705363, 0.050062, 0.703298;;, + 121;4; 0.073899,-0.705410, 0.049316, 0.703210;;, + 122;4; 0.073880,-0.705355, 0.049793, 0.703201;;, + 123;4; 0.073766,-0.705225, 0.051199, 0.703215;;, + 124;4; 0.073528,-0.705028, 0.053450, 0.703252;;, + 125;4; 0.073142,-0.704785, 0.056276, 0.703311;;, + 126;4; 0.072604,-0.704533, 0.059248, 0.703387;;, + 127;4; 0.071932,-0.704307, 0.061915, 0.703470;;, + 128;4; 0.071159,-0.704134, 0.063954, 0.703554;;, + 129;4; 0.070319,-0.704025, 0.065218, 0.703634;;, + 130;4; 0.068927,-0.704005, 0.065518, 0.703758;;, + 131;4; 0.066637,-0.704093, 0.064734, 0.703964;;, + 132;4; 0.064106,-0.704242, 0.063317, 0.704192;;, + 133;4; 0.062262,-0.704369, 0.062087, 0.704359;;, + 134;4; 0.061628,-0.704416, 0.061628, 0.704416;;; + } + AnimationKey { // Scale + 1; + 135; + 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; 0.955494, 0.955494, 0.955494;;, + 91;3; 0.830311, 0.830311, 0.830311;;, + 92;3; 0.669689, 0.669689, 0.669689;;, + 93;3; 0.544506, 0.544506, 0.544506;;, + 94;3; 0.500000, 0.500000, 0.500000;;, + 95;3; 0.500000, 0.500000, 0.500000;;, + 96;3; 0.500000, 0.500000, 0.500000;;, + 97;3; 0.500000, 0.500000, 0.500000;;, + 98;3; 0.500000, 0.500000, 0.500000;;, + 99;3; 0.500000, 0.500000, 0.500000;;, + 100;3; 0.544506, 0.544506, 0.544506;;, + 101;3; 0.669689, 0.669689, 0.669689;;, + 102;3; 0.830311, 0.830311, 0.830311;;, + 103;3; 0.955494, 0.955494, 0.955494;;, + 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;;; + } + AnimationKey { // Position + 2; + 135; + 0;3;-0.000001, 0.653455,-2.572360;;, + 1;3;-0.000001, 0.653455,-2.572360;;, + 2;3;-0.000001, 0.653455,-2.572360;;, + 3;3;-0.000001, 0.653455,-2.572360;;, + 4;3;-0.000001, 0.653455,-2.572360;;, + 5;3;-0.000001, 0.653455,-2.572360;;, + 6;3;-0.000001, 0.653455,-2.572360;;, + 7;3;-0.000001, 0.653455,-2.572360;;, + 8;3;-0.000001, 0.653455,-2.572360;;, + 9;3;-0.000001, 0.653455,-2.572360;;, + 10;3;-0.000001, 0.653455,-2.572360;;, + 11;3;-0.000001, 0.653455,-2.572360;;, + 12;3;-0.000001, 0.653455,-2.572360;;, + 13;3;-0.000001, 0.653455,-2.572360;;, + 14;3;-0.000001, 0.653455,-2.572360;;, + 15;3;-0.000001, 0.653455,-2.572360;;, + 16;3;-0.000001, 0.653455,-2.572360;;, + 17;3;-0.000001, 0.653455,-2.572360;;, + 18;3;-0.000001, 0.653455,-2.572360;;, + 19;3;-0.000001, 0.653455,-2.572360;;, + 20;3;-0.000001, 0.653455,-2.572360;;, + 21;3;-0.000001, 0.653455,-2.572360;;, + 22;3;-0.000001, 0.653455,-2.572360;;, + 23;3;-0.000001, 0.653455,-2.572360;;, + 24;3;-0.000001, 0.653455,-2.572360;;, + 25;3;-0.000001, 0.653455,-2.572360;;, + 26;3;-0.000001, 0.653455,-2.572360;;, + 27;3;-0.000001, 0.653455,-2.572360;;, + 28;3;-0.000001, 0.653455,-2.572360;;, + 29;3;-0.000001, 0.653455,-2.572360;;, + 30;3;-0.000001, 0.653455,-2.572360;;, + 31;3;-0.000001, 0.653455,-2.572360;;, + 32;3;-0.000001, 0.653455,-2.572360;;, + 33;3;-0.000001, 0.653455,-2.572360;;, + 34;3;-0.000001, 0.653455,-2.572360;;, + 35;3;-0.000001, 0.653455,-2.572360;;, + 36;3;-0.000001, 0.653455,-2.572360;;, + 37;3;-0.000001, 0.653455,-2.572360;;, + 38;3;-0.000001, 0.653455,-2.572360;;, + 39;3;-0.000001, 0.653455,-2.572360;;, + 40;3;-0.000001, 0.653455,-2.572360;;, + 41;3;-0.000001, 0.653455,-2.572360;;, + 42;3;-0.000001, 0.653455,-2.572360;;, + 43;3;-0.000001, 0.653455,-2.572360;;, + 44;3;-0.000001, 0.653455,-2.572360;;, + 45;3;-0.000001, 0.653455,-2.572360;;, + 46;3;-0.000001, 0.653455,-2.572360;;, + 47;3;-0.000001, 0.653455,-2.572360;;, + 48;3;-0.000001, 0.653455,-2.572360;;, + 49;3;-0.000001, 0.653455,-2.572360;;, + 50;3;-0.000001, 0.653455,-2.586616;;, + 51;3;-0.000001, 0.653455,-2.629509;;, + 52;3;-0.000001, 0.653455,-2.699233;;, + 53;3;-0.000001, 0.653455,-2.790404;;, + 54;3;-0.000001, 0.653455,-2.893663;;, + 55;3;-0.000001, 0.653455,-2.996909;;, + 56;3;-0.000001, 0.653455,-3.088047;;, + 57;3;-0.000001, 0.653455,-3.157732;;, + 58;3;-0.000001, 0.653455,-3.200597;;, + 59;3;-0.000001, 0.653455,-3.214842;;, + 60;3;-0.000001, 0.653455,-3.211195;;, + 61;3;-0.000001, 0.653455,-3.199597;;, + 62;3;-0.000001, 0.653455,-3.179277;;, + 63;3;-0.000001, 0.653455,-3.150037;;, + 64;3;-0.000001, 0.653455,-3.112576;;, + 65;3;-0.000001, 0.653455,-3.068575;;, + 66;3;-0.000001, 0.653455,-3.020373;;, + 67;3;-0.000001, 0.653455,-2.970378;;, + 68;3;-0.000001, 0.653455,-2.920582;;, + 69;3;-0.000001, 0.653455,-2.872360;;, + 70;3;-0.000001, 0.653455,-2.811886;;, + 71;3;-0.000001, 0.653455,-2.730528;;, + 72;3;-0.000001, 0.653455,-2.648418;;, + 73;3;-0.000001, 0.653455,-2.591422;;, + 74;3;-0.000001, 0.653455,-2.572360;;, + 75;3;-0.000001, 0.653455,-2.580831;;, + 76;3;-0.000001, 0.653455,-2.612552;;, + 77;3;-0.000001, 0.653454,-2.674538;;, + 78;3;-0.000001, 0.653455,-2.764495;;, + 79;3;-0.000001, 0.653455,-2.872360;;, + 80;3;-0.000001, 0.653455,-3.052324;;, + 81;3;-0.000001, 0.653454,-3.279190;;, + 82;3;-0.000001, 0.653455,-3.372360;;, + 83;3;-0.000001, 0.653455,-3.349058;;, + 84;3;-0.000001, 0.653455,-3.311214;;, + 85;3;-0.000001, 0.653455,-3.292789;;, + 86;3;-0.000001, 0.653455,-3.284356;;, + 87;3;-0.000001, 0.653455,-3.276085;;, + 88;3;-0.000001, 0.653455,-3.255218;;, + 89;3;-0.000001, 0.653455,-3.214842;;, + 90;3;-0.002428, 0.799965,-3.004742;;, + 91;3;-0.009265, 1.206666,-2.514848;;, + 92;3;-0.018043, 1.725109,-1.912437;;, + 93;3;-0.024880, 2.131810,-1.445110;;, + 94;3;-0.027307, 2.278321,-1.277250;;, + 95;3;-0.027307, 2.278321,-1.277250;;, + 96;3;-0.027307, 2.278321,-1.277250;;, + 97;3;-0.027307, 2.278321,-1.277250;;, + 98;3;-0.027307, 2.278321,-1.277250;;, + 99;3;-0.027307, 2.278321,-1.277250;;, + 100;3;-0.024880, 2.036441,-1.430283;;, + 101;3;-0.018043, 1.379881,-1.854553;;, + 102;3;-0.009265, 0.551895,-2.395057;;, + 103;3;-0.002428,-0.104666,-2.819328;;, + 104;3;-0.000001,-0.346545,-2.972360;;, + 105;3;-0.000001,-0.346545,-2.972360;;, + 106;3;-0.000001,-0.346545,-2.972360;;, + 107;3;-0.000001,-0.346546,-2.972361;;, + 108;3;-0.000001,-0.346546,-2.972360;;, + 109;3;-0.000001,-0.346545,-2.972360;;, + 110;3;-0.000001,-0.346545,-2.972361;;, + 111;3;-0.000001,-0.346546,-2.972360;;, + 112;3;-0.000001,-0.346545,-2.972360;;, + 113;3;-0.000001,-0.346545,-2.972360;;, + 114;3;-0.000001,-0.346545,-2.972361;;, + 115;3;-0.000001,-0.346546,-2.972360;;, + 116;3; 0.000014,-0.346539,-2.972360;;, + 117;3; 0.000058,-0.346520,-2.972361;;, + 118;3; 0.000122,-0.346493,-2.972360;;, + 119;3; 0.000185,-0.346466,-2.972360;;, + 120;3; 0.000229,-0.346448,-2.972360;;, + 121;3; 0.000244,-0.346441,-2.972360;;, + 122;3; 0.000239,-0.346444,-2.972360;;, + 123;3; 0.000224,-0.346450,-2.972360;;, + 124;3; 0.000199,-0.346460,-2.972360;;, + 125;3; 0.000167,-0.346474,-2.972360;;, + 126;3; 0.000132,-0.346489,-2.972361;;, + 127;3; 0.000099,-0.346503,-2.972361;;, + 128;3; 0.000071,-0.346515,-2.972360;;, + 129;3; 0.000050,-0.346524,-2.972360;;, + 130;3; 0.000033,-0.346531,-2.972360;;, + 131;3; 0.000018,-0.346538,-2.972360;;, + 132;3; 0.000007,-0.346542,-2.972361;;, + 133;3; 0.000001,-0.346545,-2.972361;;, + 134;3;-0.000001,-0.346545,-2.972360;;; + } + } + Animation { + {Camera} + AnimationKey { // Rotation + 0; + 135; + 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;;; + } + AnimationKey { // Scale + 1; + 135; + 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;;; + } + AnimationKey { // Position + 2; + 135; + 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;;; + } + } + Animation { + {Group} + AnimationKey { // Rotation + 0; + 135; + 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;;; + } + AnimationKey { // Scale + 1; + 135; + 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;;; + } + AnimationKey { // Position + 2; + 135; + 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;;; + } + } + Animation { + {Model} + AnimationKey { // Rotation + 0; + 135; + 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;;; + } + AnimationKey { // Scale + 1; + 135; + 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;;; + } + AnimationKey { // Position + 2; + 135; + 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;;; + } + } +} // End of AnimationSet Global diff --git a/mods/mobs_water/mobs_turtles/textures/original/mobf_turtle.png b/mods/mobs_water/mobs_turtles/textures/original/mobf_turtle.png new file mode 100644 index 0000000..3e01b3f Binary files /dev/null and b/mods/mobs_water/mobs_turtles/textures/original/mobf_turtle.png differ diff --git a/mods/mobs_water/mobs_turtles/textures/turtle1.png b/mods/mobs_water/mobs_turtles/textures/turtle1.png new file mode 100644 index 0000000..e553603 Binary files /dev/null and b/mods/mobs_water/mobs_turtles/textures/turtle1.png differ diff --git a/mods/mobs_water/mobs_turtles/textures/turtle2.png b/mods/mobs_water/mobs_turtles/textures/turtle2.png new file mode 100644 index 0000000..bc08cec Binary files /dev/null and b/mods/mobs_water/mobs_turtles/textures/turtle2.png differ diff --git a/mods/mobs_water/mobs_turtles/textures/turtle3.png b/mods/mobs_water/mobs_turtles/textures/turtle3.png new file mode 100644 index 0000000..9688fe1 Binary files /dev/null and b/mods/mobs_water/mobs_turtles/textures/turtle3.png differ diff --git a/mods/mobs_water/mobs_turtles/textures/turtle4.png b/mods/mobs_water/mobs_turtles/textures/turtle4.png new file mode 100644 index 0000000..0bdedd3 Binary files /dev/null and b/mods/mobs_water/mobs_turtles/textures/turtle4.png differ diff --git a/mods/mobs_water/mobs_turtles/textures/turtle5.png b/mods/mobs_water/mobs_turtles/textures/turtle5.png new file mode 100644 index 0000000..fadd14e Binary files /dev/null and b/mods/mobs_water/mobs_turtles/textures/turtle5.png differ diff --git a/mods/mobs_water/mobs_turtles/textures/turtle6.png b/mods/mobs_water/mobs_turtles/textures/turtle6.png new file mode 100644 index 0000000..25469df Binary files /dev/null and b/mods/mobs_water/mobs_turtles/textures/turtle6.png differ diff --git a/mods/mobs_water/mobs_turtles/textures/turtle7.png b/mods/mobs_water/mobs_turtles/textures/turtle7.png new file mode 100644 index 0000000..a0cfbaa Binary files /dev/null and b/mods/mobs_water/mobs_turtles/textures/turtle7.png differ diff --git a/mods/mobs_water/modpack.txt b/mods/mobs_water/modpack.txt new file mode 100644 index 0000000..e69de29 diff --git a/mods/more_chests/.gitignore b/mods/more_chests/.gitignore new file mode 100644 index 0000000..d9c069a --- /dev/null +++ b/mods/more_chests/.gitignore @@ -0,0 +1,4 @@ +## Generic ignorable patterns and files +*~ +.*.swp +debug.txt diff --git a/mods/more_chests/LICENSE b/mods/more_chests/LICENSE new file mode 100644 index 0000000..22fbe5d --- /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 100644 index 0000000..d5dc1f1 --- /dev/null +++ b/mods/more_chests/README.md @@ -0,0 +1,47 @@ +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 + +Megaf's more_chests fixes several bugs, uses new textures and adds compatibility with [VanessaE's Pipeworks] (https://github.com/VanessaE/pipeworks) mod. + +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 100644 index 0000000..07a8686 --- /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 100644 index 0000000..c8342b2 --- /dev/null +++ b/mods/more_chests/cobble.lua @@ -0,0 +1,106 @@ +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, tubedevice = 1, tubedevice_receiver = 1}, +-- First attempt to add a way to connect to pipeworks. + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.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.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} + }, + 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 "") + + 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("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 100644 index 0000000..4ad96d5 --- /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 100644 index 0000000..d0d3b61 --- /dev/null +++ b/mods/more_chests/dropbox.lua @@ -0,0 +1,102 @@ +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, tubedevice = 1, tubedevice_receiver = 1}, +-- Pipeworks + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.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.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} + }, + legacy_facedir_simple = true, + 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", "Dropbox (owned by ".. + meta:get_string("owner")..")") + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,9]".. + "list[current_name;main;0,0;8,4;]".. + "list[current_player;main;0,5;8,4;]") + meta:set_string("infotext", "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, + 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 dropbox belonging to ".. + meta:get_string("owner").." at ".. + minetest.pos_to_string(pos)) + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if has_locked_chest_privilege(meta, player) then + return stack:get_count() + end + local target = meta:get_inventory():get_list(listname)[index] + local target_name = target:get_name() + local stack_count = stack:get_count() + if target_name == stack:get_name() + and target:get_count() < stack_count then + return stack_count + end + if target_name ~= "" then + return 0 + end + return stack_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 100644 index 0000000..bca279a --- /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 100644 index 0000000..d0ee5bf --- /dev/null +++ b/mods/more_chests/secret.lua @@ -0,0 +1,122 @@ +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, tubedevice = 1, tubedevice_receiver = 1}, +-- Pipeworks + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.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.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} + }, + 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 100644 index 0000000..3628567 --- /dev/null +++ b/mods/more_chests/shared.lua @@ -0,0 +1,128 @@ +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 = "Looked Uran chest+outher player", + tiles = {"tutorial_uran_chest_top.png", "tutorial_uran_chest_side.png", "tutorial_uran_chest_side.png", + "tutorial_uran_chest_side.png", "tutorial_uran_chest_side.png", "tutorial_uran_chest_front_lockp.png"}, + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, tubedevice = 1, tubedevice_receiver = 1}, +-- Pipeworks + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.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.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} + }, + 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 = { + {'tutorial:uranium9','tutorial:uranium9','tutorial:uranium9'}, + {'tutorial:uranium9','tutorial:admin','tutorial:uranium9'}, + {'tutorial:uranium9','tutorial:uranium9','tutorial:uranium9'}, + } +}) + diff --git a/mods/more_chests/textures/cobblechest_front.png b/mods/more_chests/textures/cobblechest_front.png new file mode 100644 index 0000000..d6155da 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 100644 index 0000000..b0b184d 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 100644 index 0000000..6d53444 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 100644 index 0000000..b024f6e 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 100644 index 0000000..2821c0c Binary files /dev/null and b/mods/more_chests/textures/shared_front.png differ diff --git a/mods/more_chests/textures/tutorial_uran_chest_front_lock.png b/mods/more_chests/textures/tutorial_uran_chest_front_lock.png new file mode 100644 index 0000000..643f417 Binary files /dev/null and b/mods/more_chests/textures/tutorial_uran_chest_front_lock.png differ diff --git a/mods/more_chests/textures/tutorial_uran_chest_front_lockp.png b/mods/more_chests/textures/tutorial_uran_chest_front_lockp.png new file mode 100644 index 0000000..dc169ff Binary files /dev/null and b/mods/more_chests/textures/tutorial_uran_chest_front_lockp.png differ diff --git a/mods/more_chests/textures/tutorial_uran_chest_side.png b/mods/more_chests/textures/tutorial_uran_chest_side.png new file mode 100644 index 0000000..8fc3dcb Binary files /dev/null and b/mods/more_chests/textures/tutorial_uran_chest_side.png differ diff --git a/mods/more_chests/textures/tutorial_uran_chest_top.png b/mods/more_chests/textures/tutorial_uran_chest_top.png new file mode 100644 index 0000000..32ae5da Binary files /dev/null and b/mods/more_chests/textures/tutorial_uran_chest_top.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 100644 index 0000000..77bcb44 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 100644 index 0000000..f58fae9 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 100644 index 0000000..35c01d0 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 100644 index 0000000..830986f --- /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/moreores/LICENSE.md b/mods/moreores/LICENSE.md new file mode 100644 index 0000000..45c5ff5 --- /dev/null +++ b/mods/moreores/LICENSE.md @@ -0,0 +1,14 @@ +zlib license +============ + +Copyright (c) 2011-2015 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/moreores/README.md b/mods/moreores/README.md new file mode 100644 index 0000000..f54dda7 --- /dev/null +++ b/mods/moreores/README.md @@ -0,0 +1,11 @@ +More Ores +========= + +More Ores for Minetest , a free/libre infinite +world block sandbox game. + +To install, just clone this repository into your "mods" directory. + +More Ores code is licensed under the zlib license, textures are by Calinou and are licensed under CC BY-SA 3.0 Unported. + +**Forum topic:** diff --git a/mods/moreores/_config.txt b/mods/moreores/_config.txt new file mode 100644 index 0000000..68c6658 --- /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 100644 index 0000000..0219052 --- /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 100644 index 0000000..314a4f2 --- /dev/null +++ b/mods/moreores/init.lua @@ -0,0 +1,347 @@ +--[[ +===================================================================== +** More Ores ** +By Calinou, with the help of Nore. + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +===================================================================== +--]] + +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function(s) return s end +end + +local modpath = minetest.get_modpath("moreores") + +dofile(modpath .. "/_config.txt") + +-- `mg` support: +if minetest.get_modpath("mg") then + dofile(modpath .. "/mg.lua") +end + +-- 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 == "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 lump_item = 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 = lump_item + }) + end + + if oredef.makes.block then + local block_item = item_base .. "_block" + minetest.register_node(block_item, { + 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", block_item) + if oredef.makes.ingot then + minetest.register_craft( { + output = block_item, + recipe = get_recipe(ingot, "block") + }) + minetest.register_craft( { + output = ingot .. " 9", + recipe = { + { block_item } + } + }) + end + end + + if oredef.makes.lump then + minetest.register_craftitem(lump_item, { + description = S("%s Lump"):format(S(description)), + inventory_image = img_base .. "_lump.png", + }) + minetest.register_alias(mineral_name .. "_lump", lump_item) + if oredef.makes.ingot then + minetest.register_craft({ + type = "cooking", + output = ingot, + recipe = lump_item + }) + 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 tool_name, tooldef in pairs(oredef.tools) do + local tdef = { + description = "", + inventory_image = toolimg_base .. tool_name .. ".png", + tool_capabilities = { + max_drop_level = 3, + groupcaps = tooldef + } + } + + if tool_name == "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 tool_name == "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 tool_name == "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 tool_name == "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 tool_name == "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 fulltool_name = tool_base .. tool_name .. tool_post + minetest.register_tool(fulltool_name, tdef) + minetest.register_alias(tool_name .. tool_post, fulltool_name) + if oredef.makes.ingot then + + end + end +end + +-- Add everything: +local modname = "moreores" + +local oredefs = { + silver = { + description = "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 = { + description = "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 = { + description = "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.description, orename, def) +end + +-- Copper rail (special node): +minetest.register_craft({ + output = "moreores:copper_rail 24", + 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, + }, + }, +}) + + +if minetest.setting_getbool("log_mods") then + minetest.log("action", S("[moreores] loaded.")) +end diff --git a/mods/moreores/locale/de.txt b/mods/moreores/locale/de.txt new file mode 100644 index 0000000..2eb6075 --- /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 100644 index 0000000..1344a5a --- /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 100644 index 0000000..65687fa --- /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 100644 index 0000000..dcd8c52 --- /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 100644 index 0000000..e323b74 --- /dev/null +++ b/mods/moreores/mg.lua @@ -0,0 +1,53 @@ +--[[ +More Ores: `mg` mod support + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +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/textures/moreores_bronze_block.png b/mods/moreores/textures/moreores_bronze_block.png new file mode 100644 index 0000000..3f714df 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 100644 index 0000000..99b3f02 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 100644 index 0000000..9a164af 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 100644 index 0000000..1a4e4e1 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 100644 index 0000000..45702a9 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 100644 index 0000000..73963f6 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 100644 index 0000000..6ff1153 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 100644 index 0000000..6cfc8c2 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 100644 index 0000000..5775919 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 100644 index 0000000..2f54afd 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 100644 index 0000000..b8dbcf8 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 100644 index 0000000..9f79149 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 100644 index 0000000..bc3d9c1 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 100644 index 0000000..c8aede3 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 100644 index 0000000..126daea 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 100644 index 0000000..6b57c62 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 100644 index 0000000..8ec4d8b 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 100644 index 0000000..1b3398f 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 100644 index 0000000..6f178d0 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 100644 index 0000000..3aa7255 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 100644 index 0000000..556af1c 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 100644 index 0000000..1357a71 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 100644 index 0000000..f71f5e3 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 100644 index 0000000..9dd053c 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 100644 index 0000000..4481928 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 100644 index 0000000..5114985 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 100644 index 0000000..cea9f35 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 100644 index 0000000..e9d3ca7 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 100644 index 0000000..cdc7384 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 100644 index 0000000..aa6adc3 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 100644 index 0000000..0290f3f 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 100644 index 0000000..129e449 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 100644 index 0000000..1d07af8 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 100644 index 0000000..e94ec05 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 100644 index 0000000..f243a29 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 100644 index 0000000..9d226f7 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 100644 index 0000000..ff1ed7c 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 100644 index 0000000..18a7de0 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 100644 index 0000000..09a030c 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 100644 index 0000000..d33edd5 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 100644 index 0000000..066b908 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 100644 index 0000000..69de097 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 100644 index 0000000..d55185b 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 100644 index 0000000..220ba2b Binary files /dev/null and b/mods/moreores/textures/moreores_tool_silversword.png differ diff --git a/mods/nether/README.txt b/mods/nether/README.txt new file mode 100644 index 0000000..4206d0e --- /dev/null +++ b/mods/nether/README.txt @@ -0,0 +1,25 @@ +Minetest 0.4 mod: nether +======================== + +License of source code: +----------------------- +Copyright (C) 2013 PilzAdam + +This program is free software. It comes without any warranty, to +the extent permitted by applicable law. You can redistribute it +and/or modify it under the terms of the Do What The Fuck You Want +To Public License, Version 2, as published by Sam Hocevar. See +http://sam.zoy.org/wtfpl/COPYING for more details. + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +----------------------- +Everything not listed in here: +Copyright (C) 2013 PilzAdam + +nether_rack.png: Zeg9 +nether_glowstone.png: BlockMen diff --git a/mods/nether/depends.txt b/mods/nether/depends.txt new file mode 100644 index 0000000..c5f1f37 --- /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 100644 index 0000000..844143b --- /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(":nether:admin", { + description = "Admin Nether", + inventory_image = "tutorial_adminbattleaxe.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=13,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/init.lua~ b/mods/nether/init.lua~ new file mode 100644 index 0000000..8a86f4c --- /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(":nether:admin", { + description = "Admin Nether", + inventory_image = "tutorial_adminbattleaxe.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=14,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/textures/nether_brick.png b/mods/nether/textures/nether_brick.png new file mode 100644 index 0000000..3e8c803 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 100644 index 0000000..9016eac 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 100644 index 0000000..56a5b78 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 100644 index 0000000..824d652 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 100644 index 0000000..201a11a 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 100644 index 0000000..8ec343d 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 100644 index 0000000..4883728 Binary files /dev/null and b/mods/nether/textures/nether_transparent.png differ diff --git a/mods/nyancat/README.txt b/mods/nyancat/README.txt new file mode 100644 index 0000000..fadc1d2 --- /dev/null +++ b/mods/nyancat/README.txt @@ -0,0 +1,16 @@ +Minetest Game mod: nyancat +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by celeron55, Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +Authors of media files +---------------------- +VanessaE (CC BY-SA 3.0): + nyancat_front.png + nyancat_back.png + nyancat_side.png + nyancat_rainbow.png diff --git a/mods/nyancat/depends.txt b/mods/nyancat/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/nyancat/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/nyancat/init.lua b/mods/nyancat/init.lua new file mode 100644 index 0000000..7192beb --- /dev/null +++ b/mods/nyancat/init.lua @@ -0,0 +1,89 @@ +minetest.register_node("nyancat:nyancat", { + description = "Nyan Cat", + tiles = {"nyancat_side.png", "nyancat_side.png", "nyancat_side.png", + "nyancat_side.png", "nyancat_back.png", "nyancat_front.png"}, + paramtype = "light", + light_source = default.LIGHT_MAX, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + legacy_facedir_simple = true, + sounds = default.node_sound_defaults(), +}) + +minetest.register_node("nyancat:nyancat_rainbow", { + description = "Nyan Cat Rainbow", + tiles = { + "nyancat_rainbow.png^[transformR90", + "nyancat_rainbow.png^[transformR90", + "nyancat_rainbow.png" + }, + paramtype = "light", + light_source = default.LIGHT_MAX, + paramtype2 = "facedir", + groups = {cracky = 2}, + is_ground_content = false, + sounds = default.node_sound_defaults(), +}) + +minetest.register_craft({ + type = "fuel", + recipe = "nyancat:nyancat", + burntime = 1, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "nyancat:nyancat_rainbow", + burntime = 1, +}) + +nyancat = {} + +function nyancat.place(pos, facedir, length) + if facedir > 3 then + facedir = 0 + end + local tailvec = minetest.facedir_to_dir(facedir) + local p = {x = pos.x, y = pos.y, z = pos.z} + minetest.set_node(p, {name = "nyancat:nyancat", param2 = facedir}) + for i = 1, length do + p.x = p.x + tailvec.x + p.z = p.z + tailvec.z + minetest.set_node(p, {name = "nyancat:nyancat_rainbow", param2 = facedir}) + end +end + +function nyancat.generate(minp, maxp, seed) + local height_min = -31000 + local height_max = -32 + if maxp.y < height_min or minp.y > height_max then + return + end + local y_min = math.max(minp.y, height_min) + local y_max = math.min(maxp.y, height_max) + local volume = (maxp.x - minp.x + 1) * (y_max - y_min + 1) * (maxp.z - minp.z + 1) + local pr = PseudoRandom(seed + 9324342) + local max_num_nyancats = math.floor(volume / (16 * 16 * 16)) + for i = 1, max_num_nyancats do + if pr:next(0, 1000) == 0 then + local x0 = pr:next(minp.x, maxp.x) + local y0 = pr:next(minp.y, maxp.y) + local z0 = pr:next(minp.z, maxp.z) + local p0 = {x = x0, y = y0, z = z0} + nyancat.place(p0, pr:next(0, 3), pr:next(3, 15)) + end + end +end + +minetest.register_on_generated(function(minp, maxp, seed) + nyancat.generate(minp, maxp, seed) +end) + +-- Legacy +minetest.register_alias("default:nyancat", "nyancat:nyancat") +minetest.register_alias("default:nyancat_rainbow", "nyancat:nyancat_rainbow") +minetest.register_alias("nyancat", "nyancat:nyancat") +minetest.register_alias("nyancat_rainbow", "nyancat:nyancat_rainbow") +default.make_nyancat = nyancat.place +default.generate_nyancats = nyancat.generate diff --git a/mods/nyancat/license.txt b/mods/nyancat/license.txt new file mode 100644 index 0000000..3aa3861 --- /dev/null +++ b/mods/nyancat/license.txt @@ -0,0 +1,50 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 VanessaE + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/nyancat/textures/nyancat_back.png b/mods/nyancat/textures/nyancat_back.png new file mode 100644 index 0000000..e479ace Binary files /dev/null and b/mods/nyancat/textures/nyancat_back.png differ diff --git a/mods/nyancat/textures/nyancat_front.png b/mods/nyancat/textures/nyancat_front.png new file mode 100644 index 0000000..c9dd6a3 Binary files /dev/null and b/mods/nyancat/textures/nyancat_front.png differ diff --git a/mods/nyancat/textures/nyancat_rainbow.png b/mods/nyancat/textures/nyancat_rainbow.png new file mode 100644 index 0000000..685a22c Binary files /dev/null and b/mods/nyancat/textures/nyancat_rainbow.png differ diff --git a/mods/nyancat/textures/nyancat_side.png b/mods/nyancat/textures/nyancat_side.png new file mode 100644 index 0000000..3152c33 Binary files /dev/null and b/mods/nyancat/textures/nyancat_side.png differ diff --git a/mods/pipeworks/LICENSE b/mods/pipeworks/LICENSE new file mode 100644 index 0000000..eb930e9 --- /dev/null +++ b/mods/pipeworks/LICENSE @@ -0,0 +1,17 @@ + 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". diff --git a/mods/pipeworks/README b/mods/pipeworks/README new file mode 100644 index 0000000..b9c68f9 --- /dev/null +++ b/mods/pipeworks/README @@ -0,0 +1,22 @@ +This mod uses nodeboxes to supply a complete set of 3D pipes and tubes, +along devices that work with them. + +See http://vanessae.github.io/pipeworks/ for detailed information about usage of this mod. + +Unlike the previous version of this mod, these pipes are rounded, and when +placed, they'll automatically join together as needed. Pipes can go vertically +or horizontally, and there are enough nodes defined to allow for all possible +connections. Valves and pumps can only be placed horizontally, and will +automatically rotate and join with neighboring pipes as objects are added, as +well as joining with each other under certain circumstances. + +Pipes come in two variants: one type bears one or more dark windows on each +pipe, suggesting they're empty, while the other type bears green-tinted +windows, as if full (the two colors should also be easy to select if you want +to change them in a paint program). These windows only appear on straight +lengths and on certain junctions. + +This mod is a work in progress. + +Please note that owing to the nature of this mod, I have opted to use 64px +textures. Anything less just looks terrible. diff --git a/mods/pipeworks/autocrafter.lua b/mods/pipeworks/autocrafter.lua new file mode 100644 index 0000000..d352362 --- /dev/null +++ b/mods/pipeworks/autocrafter.lua @@ -0,0 +1,231 @@ +local autocrafterCache = {} -- caches some recipe data to avoid to call the slow function minetest.get_craft_result() every second + +local function make_inventory_cache(invlist) + local l = {} + for _, stack in ipairs(invlist) do + l[stack:get_name()] = (l[stack:get_name()] or 0) + stack:get_count() + end + return l +end + +local function autocraft(inventory, pos) + if not inventory then return end + local recipe = inventory:get_list("recipe") + if not recipe then return end + local recipe_last + local result + local new + + if autocrafterCache[minetest.hash_node_position(pos)] == nil then + recipe_last = {} + for i = 1, 9 do + recipe_last[i] = recipe[i] + recipe[i] = ItemStack({name = recipe[i]:get_name(), count = 1}) + end + result, new = minetest.get_craft_result({method = "normal", width = 3, items = recipe}) + autocrafterCache[minetest.hash_node_position(pos)] = {["recipe"] = recipe, ["result"] = result, ["new"] = new} + else + local autocrafterCacheEntry = autocrafterCache[minetest.hash_node_position(pos)] + recipe_last = autocrafterCacheEntry["recipe"] + result = autocrafterCacheEntry["result"] + new = autocrafterCacheEntry["new"] + local recipeUnchanged = true + for i = 1, 9 do + if recipe[i]:get_name() ~= recipe_last[i]:get_name() then + recipeUnchanged = false + break + end + if recipe[i]:get_count() ~= recipe_last[i]:get_count() then + recipeUnchanged = false + break + end + end + if recipeUnchanged then + else + for i = 1, 9 do + recipe_last[i] = recipe[i] + recipe[i] = ItemStack({name = recipe[i]:get_name(), count = 1}) + end + result, new = minetest.get_craft_result({method = "normal", width = 3, items = recipe}) + autocrafterCache[minetest.hash_node_position(pos)] = {["recipe"] = recipe, ["result"] = result, ["new"] = new} + end + end + + if result.item:is_empty() then return end + result = result.item + if not inventory:room_for_item("dst", result) then return end + local to_use = {} + for _, item in ipairs(recipe) do + if item~= nil and not item:is_empty() then + if to_use[item:get_name()] == nil then + to_use[item:get_name()] = 1 + else + to_use[item:get_name()] = to_use[item:get_name()]+1 + end + end + end + local invcache = make_inventory_cache(inventory:get_list("src")) + for itemname, number in pairs(to_use) do + if (not invcache[itemname]) or invcache[itemname] < number then return end + end + for itemname, number in pairs(to_use) do + for i = 1, number do -- We have to do that since remove_item does not work if count > stack_max + inventory:remove_item("src", ItemStack(itemname)) + end + end + inventory:add_item("dst", result) + for i = 1, 9 do + inventory:add_item("dst", new.items[i]) + end +end + +local function update_autocrafter(pos) + local meta = minetest.get_meta(pos) + if meta:get_string("virtual_items") == "" then + meta:set_string("virtual_items", "1") + local inv = meta:get_inventory() + for _, stack in ipairs(inv:get_list("recipe")) do + minetest.item_drop(stack, "", pos) + end + end +end + +minetest.register_node("pipeworks:autocrafter", { + description = "Autocrafter", + drawtype = "normal", + tiles = {"pipeworks_autocrafter.png"}, + groups = {snappy = 3, tubedevice = 1, tubedevice_receiver = 1}, + tube = {insert_object = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:add_item("src", stack) + end, + can_insert = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:room_for_item("src", stack) + end, + input_inventory = "dst", + connect_sides = {left = 1, right = 1, front = 1, back = 1, top = 1, bottom = 1}}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,11]".. + "list[current_name;recipe;0,0;3,3;]".. + "list[current_name;src;0,3.5;8,3;]".. + "list[current_name;dst;4,0;4,3;]".. + "list[current_player;main;0,7;8,4;]".. + "listring[current_name;dst]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]" + ) + meta:set_string("infotext", "Autocrafter") + meta:set_string("virtual_items", "1") + local inv = meta:get_inventory() + inv:set_size("src", 3*8) + inv:set_size("recipe", 3*3) + inv:set_size("dst", 4*3) + end, + on_rightclick = function(pos, node, player, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,11]".. + "list[current_name;recipe;0,0;3,3;]".. + "list[current_name;src;0,3.5;8,3;]".. + "list[current_name;dst;4,0;4,3;]".. + "list[current_player;main;0,7;8,4;]".. + "listring[current_name;dst]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]" + ) + end, + on_punch = update_autocrafter, + can_dig = function(pos, player) + update_autocrafter(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return (inv:is_empty("src") and inv:is_empty("dst")) + end, + after_place_node = function(pos) + pipeworks.scan_for_tube_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_tube_objects(pos) + autocrafterCache[minetest.hash_node_position(pos)] = nil + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + update_autocrafter(pos) + local inv = minetest.get_meta(pos):get_inventory() + if listname == "recipe" then + local stack_copy = ItemStack(stack) + stack_copy:set_count(1) + inv:set_stack(listname, index, stack_copy) + return 0 + else + return stack:get_count() + end + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + update_autocrafter(pos) + local inv = minetest.get_meta(pos):get_inventory() + if listname == "recipe" then + inv:set_stack(listname, index, ItemStack("")) + return 0 + else + return stack:get_count() + end + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + update_autocrafter(pos) + local inv = minetest.get_meta(pos):get_inventory() + local stack = inv:get_stack(from_list, from_index) + stack:set_count(count) + if from_list == "recipe" then + inv:set_stack(from_list, from_index, ItemStack("")) + return 0 + elseif to_list == "recipe" then + local stack_copy = ItemStack(stack) + stack_copy:set_count(1) + inv:set_stack(to_list, to_index, stack_copy) + return 0 + else + return stack:get_count() + end + end, +}) + +minetest.register_abm({nodenames = {"pipeworks:autocrafter"}, interval = 1, chance = 1, + action = function(pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + autocraft(inv, pos) + meta:set_string("formspec", + "size[8,11]".. + "list[current_name;recipe;0,0;3,3;]".. + "list[current_name;src;0,3.5;8,3;]".. + "list[current_name;dst;4,0;4,3;]".. + "list[current_player;main;0,7;8,4;]".. + "listring[current_name;dst]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]" + ) + end +}) + + + + + + + +minetest.register_craft( { + output = "pipeworks:autocrafter", + recipe = { + { "gems:pearl_gem", "", "" }, + { "gems:pearl_gem", "", "" }, + { "", "", "" } + }, +}) diff --git a/mods/pipeworks/autoplace_pipes.lua b/mods/pipeworks/autoplace_pipes.lua new file mode 100644 index 0000000..69bd90e --- /dev/null +++ b/mods/pipeworks/autoplace_pipes.lua @@ -0,0 +1,200 @@ +-- autorouting for pipes +local tube_table = {[0] = 1, 2, 2, 4, 2, 4, 4, 5, 2, 3, 4, 6, 4, 6, 5, 7, 2, 4, 3, 6, 4, 5, 6, 7, 4, 6, 6, 8, 5, 7, 7, 9, 2, 4, 4, 5, 3, 6, 6, 7, 4, 6, 5, 7, 6, 8, 7, 9, 4, 5, 6, 7, 6, 7, 8, 9, 5, 7, 7, 9, 7, 9, 9, 10} +local tube_table_facedirs = {[0] = 0, 0, 5, 0, 3, 4, 3, 0, 2, 0, 2, 0, 6, 4, 3, 0, 7, 12, 5, 12, 7, 4, 5, 5, 18, 20, 16, 0, 7, 4, 7, 0, 1, 8, 1, 1, 1, 13, 1, 1, 10, 8, 2, 2, 17, 4, 3, 6, 9, 9, 9, 9, 21, 13, 1, 1, 10, 10, 11, 2, 19, 4, 3, 0} +local function autoroute_pipes(pos) + local nctr = minetest.get_node(pos) + local state = "_empty" + if (string.find(nctr.name, "pipeworks:pipe_") == nil) then return end + if (string.find(nctr.name, "_loaded") ~= nil) then state = "_loaded" end + local nsurround = pipeworks.scan_pipe_surroundings(pos) + + if nsurround == 0 then nsurround = 9 end + minetest.add_node(pos, {name = "pipeworks:pipe_"..tube_table[nsurround]..state, + param2 = tube_table_facedirs[nsurround]}) +end + +function pipeworks.scan_for_pipe_objects(pos) + autoroute_pipes({ x=pos.x-1, y=pos.y , z=pos.z }) + autoroute_pipes({ x=pos.x+1, y=pos.y , z=pos.z }) + autoroute_pipes({ x=pos.x , y=pos.y-1, z=pos.z }) + autoroute_pipes({ x=pos.x , y=pos.y+1, z=pos.z }) + autoroute_pipes({ x=pos.x , y=pos.y , z=pos.z-1 }) + autoroute_pipes({ x=pos.x , y=pos.y , z=pos.z+1 }) + autoroute_pipes(pos) +end + +-- auto-rotation code for various devices the tubes attach to + +function pipeworks.scan_pipe_surroundings(pos) + local pxm=0 + local pxp=0 + local pym=0 + local pyp=0 + local pzm=0 + local pzp=0 + + local nxm = minetest.get_node({ x=pos.x-1, y=pos.y , z=pos.z }) + local nxp = minetest.get_node({ x=pos.x+1, y=pos.y , z=pos.z }) + local nym = minetest.get_node({ x=pos.x , y=pos.y-1, z=pos.z }) + local nyp = minetest.get_node({ x=pos.x , y=pos.y+1, z=pos.z }) + local nzm = minetest.get_node({ x=pos.x , y=pos.y , z=pos.z-1 }) + local nzp = minetest.get_node({ x=pos.x , y=pos.y , z=pos.z+1 }) + + if (string.find(nxm.name, "pipeworks:pipe_") ~= nil) then pxm=1 end + if (string.find(nxp.name, "pipeworks:pipe_") ~= nil) then pxp=1 end + if (string.find(nym.name, "pipeworks:pipe_") ~= nil) then pym=1 end + if (string.find(nyp.name, "pipeworks:pipe_") ~= nil) then pyp=1 end + if (string.find(nzm.name, "pipeworks:pipe_") ~= nil) then pzm=1 end + if (string.find(nzp.name, "pipeworks:pipe_") ~= nil) then pzp=1 end + +-- Special handling for valves... + + if (string.find(nxm.name, "pipeworks:valve") ~= nil) + and (nxm.param2 == 0 or nxm.param2 == 2) then + pxm=1 + end + + if (string.find(nxp.name, "pipeworks:valve") ~= nil) + and (nxp.param2 == 0 or nxp.param2 == 2) then + pxp=1 + end + + if (string.find(nzm.name, "pipeworks:valve") ~= nil) + and (nzm.param2 == 1 or nzm.param2 == 3) then + pzm=1 + end + + if (string.find(nzp.name, "pipeworks:valve") ~= nil) + and (nzp.param2 == 1 or nzp.param2 == 3) then + pzp=1 + end + +-- ...flow sensors... + + if (string.find(nxm.name, "pipeworks:flow_sensor") ~= nil) + and (nxm.param2 == 0 or nxm.param2 == 2) then + pxm=1 + end + + if (string.find(nxp.name, "pipeworks:flow_sensor") ~= nil) + and (nxp.param2 == 0 or nxp.param2 == 2) then + pxp=1 + end + + if (string.find(nzm.name, "pipeworks:flow_sensor") ~= nil) + and (nzm.param2 == 1 or nzm.param2 == 3) then + pzm=1 + end + + if (string.find(nzp.name, "pipeworks:flow_sensor") ~= nil) + and (nzp.param2 == 1 or nzp.param2 == 3) then + pzp=1 + end + +-- ...spigots... + + if (string.find(nxm.name, "pipeworks:spigot") ~= nil) + and nxm.param2 == 1 then + pxm=1 + end + + if (string.find(nxp.name, "pipeworks:spigot") ~= nil) + and nxp.param2 == 3 then + pxp=1 + end + + if (string.find(nzm.name, "pipeworks:spigot") ~= nil) + and nzm.param2 == 0 then + pzm=1 + end + + if (string.find(nzp.name, "pipeworks:spigot") ~= nil) + and nzp.param2 == 2 then + pzp=1 + end + +-- ...sealed pipe entry/exit... + + if (string.find(nxm.name, "pipeworks:entry_panel") ~= nil) + and (nxm.param2 == 1 or nxm.param2 == 3) then + pxm=1 + end + + if (string.find(nxp.name, "pipeworks:entry_panel") ~= nil) + and (nxp.param2 == 1 or nxp.param2 == 3) then + pxp=1 + end + + if (string.find(nzm.name, "pipeworks:entry_panel") ~= nil) + and (nzm.param2 == 0 or nzm.param2 == 2) then + pzm=1 + end + + if (string.find(nzp.name, "pipeworks:entry_panel") ~= nil) + and (nzp.param2 == 0 or nzp.param2 == 2) then + pzp=1 + end + + if (string.find(nym.name, "pipeworks:entry_panel") ~= nil) + and nym.param2 == 13 then + pym=1 + end + + if (string.find(nyp.name, "pipeworks:entry_panel") ~= nil) + and nyp.param2 == 13 then + pyp=1 + end + + +-- ...pumps, grates... + + if (string.find(nym.name, "pipeworks:grating") ~= nil) or + (string.find(nym.name, "pipeworks:pump") ~= nil) then + pym=1 + end + +-- ...fountainheads... + + if (string.find(nyp.name, "pipeworks:fountainhead") ~= nil) then + pyp=1 + end + +-- ... and storage tanks. + + if (string.find(nym.name, "pipeworks:storage_tank_") ~= nil) then + pym=1 + end + + if (string.find(nyp.name, "pipeworks:storage_tank_") ~= nil) then + pyp=1 + end + +-- ...extra devices specified via the function's parameters +-- ...except that this part is not implemented yet +-- +-- xxx = nxm, nxp, nym, nyp, nzm, or nzp depending on the direction to check +-- yyy = pxm, pxp, pym, pyp, pzm, or pzp accordingly. +-- +-- if string.find(xxx.name, "modname:nodename") ~= nil then +-- yyy = 1 +-- end +-- +-- for example: +-- +-- if string.find(nym.name, "aero:outlet") ~= nil then +-- pym = 1 +-- end +-- + + return pxm+8*pxp+2*pym+16*pyp+4*pzm+32*pzp +end + +function pipeworks.look_for_stackable_tanks(pos) + local tym = minetest.get_node({ x=pos.x , y=pos.y-1, z=pos.z }) + + if string.find(tym.name, "pipeworks:storage_tank_") ~= nil or + string.find(tym.name, "pipeworks:expansion_tank_") ~= nil then + minetest.add_node(pos, { name = "pipeworks:expansion_tank_0", param2 = tym.param2}) + end +end + diff --git a/mods/pipeworks/autoplace_tubes.lua b/mods/pipeworks/autoplace_tubes.lua new file mode 100644 index 0000000..b6ed8b7 --- /dev/null +++ b/mods/pipeworks/autoplace_tubes.lua @@ -0,0 +1,130 @@ +-- autorouting for pneumatic tubes + +local function is_tube(nodename) + return table.contains(pipeworks.tubenodes, nodename) +end + +--a function for determining which side of the node we are on +local function nodeside(node, tubedir) + if node.param2 < 0 or node.param2 > 23 then + node.param2 = 0 + end + + local backdir = minetest.facedir_to_dir(node.param2) + local back = vector.dot(backdir, tubedir) + if back == 1 then + return "back" + elseif back == -1 then + return "front" + end + + local topdir = minetest.facedir_to_top_dir(node.param2) + local top = vector.dot(topdir, tubedir) + if top == 1 then + return "top" + elseif top == -1 then + return "bottom" + end + + local rightdir = minetest.facedir_to_right_dir(node.param2) + local right = vector.dot(rightdir, tubedir) + if right == 1 then + return "right" + else + return "left" + end +end + +local vts = {0, 3, 1, 4, 2, 5} +local tube_table = {[0] = 1, 2, 2, 4, 2, 4, 4, 5, 2, 3, 4, 6, 4, 6, 5, 7, 2, 4, 3, 6, 4, 5, 6, 7, 4, 6, 6, 8, 5, 7, 7, 9, 2, 4, 4, 5, 3, 6, 6, 7, 4, 6, 5, 7, 6, 8, 7, 9, 4, 5, 6, 7, 6, 7, 8, 9, 5, 7, 7, 9, 7, 9, 9, 10} +local tube_table_facedirs = {[0] = 0, 0, 5, 0, 3, 4, 3, 0, 2, 0, 2, 0, 6, 4, 3, 0, 7, 12, 5, 12, 7, 4, 5, 5, 18, 20, 16, 0, 7, 4, 7, 0, 1, 8, 1, 1, 1, 13, 1, 1, 10, 8, 2, 2, 17, 4, 3, 6, 9, 9, 9, 9, 21, 13, 1, 1, 10, 10, 11, 2, 19, 4, 3, 0} +local function tube_autoroute(pos) + local active = {0, 0, 0, 0, 0, 0} + local nctr = minetest.get_node(pos) + if not is_tube(nctr.name) then return end + + local adjustments = { + {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} + } + -- xm = 1, xp = 2, ym = 3, yp = 4, zm = 5, zp = 6 + + local positions = {} + local nodes = {} + for i, adj in ipairs(adjustments) do + positions[i] = vector.add(pos, adj) + nodes[i] = minetest.get_node(positions[i]) + end + + for i, node in ipairs(nodes) do + local idef = minetest.registered_nodes[node.name] + -- handle the tubes themselves + if is_tube(node.name) then + active[i] = 1 + -- handle new style connectors + elseif idef and idef.tube and idef.tube.connect_sides then + local dir = adjustments[i] + if idef.tube.connect_sides[nodeside(node, vector.multiply(dir, -1))] then + active[i] = 1 + end + end + end + + -- all sides checked, now figure which tube to use. + + local nodedef = minetest.registered_nodes[nctr.name] + local basename = nodedef.basename + if nodedef.style == "old" then + local nsurround = "" + for i, n in ipairs(active) do + nsurround = nsurround..n + end + nctr.name = basename.."_"..nsurround + elseif nodedef.style == "6d" then + local s = 0 + for i, n in ipairs(active) do + if n == 1 then + s = s + 2^vts[i] + end + end + nctr.name = basename.."_"..tube_table[s] + nctr.param2 = tube_table_facedirs[s] + end + minetest.swap_node(pos, nctr) +end + +function pipeworks.scan_for_tube_objects(pos) + for side = 0, 6 do + tube_autoroute(vector.add(pos, directions.side_to_dir(side))) + end +end + +minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack) + if minetest.registered_items[newnode.name] + and minetest.registered_items[newnode.name].tube + and minetest.registered_items[newnode.name].tube.connect_sides then + pipeworks.scan_for_tube_objects(pos) + end +end) + +minetest.register_on_dignode(function(pos, oldnode, digger) + if minetest.registered_items[oldnode.name] + and minetest.registered_items[oldnode.name].tube + and minetest.registered_items[oldnode.name].tube.connect_sides then + pipeworks.scan_for_tube_objects(pos) + end +end) + +if minetest.get_modpath("mesecons_mvps") then + mesecon.register_on_mvps_move(function(moved_nodes) + for _, n in ipairs(moved_nodes) do + pipeworks.scan_for_tube_objects(n.pos) + pipeworks.scan_for_tube_objects(n.oldpos) + end + end) +end + diff --git a/mods/pipeworks/changelog.txt b/mods/pipeworks/changelog.txt new file mode 100644 index 0000000..251df29 --- /dev/null +++ b/mods/pipeworks/changelog.txt @@ -0,0 +1,93 @@ +Changelog +--------- + +2013-01-13: Tubes can transport items now! Namely, I added Novatux/Nore's item +transport mod as a default part of this mod, to make tubes do something useful! +Thanks to Nore and RealBadAngel for the code contributions! + +2013-01-05: made storage tanks connect from top/bottom, made storage tank and +pipe textures use the ^ combine operator so they can show the actual liquid +going through the pipes/tanks. + +2013-01-04 (a bit later): Made pipes able to carry water! It was just a minor +logic error resulting from moving the water flowing code into it's own file +when I originally imported it. Many thanks to Mauvebic for writing it! + +2013-01-04: First stage of integrating Mauvebic's water flowing code. This is +experimental and doesn't move water yet - but at least it doesn't break +anything :-) + +2013-01-01: Various minor tweaks to textures, facedir settings, some other +stuff. Changed crafting recipes to account for revamped pumps, valves, etc. +Now requires the moreores mod and most recent git (for mese crystal fragments) +to craft a pump. Added a "sealed" entry/exit panel (really just a horizontal +pipe with a metal panel overlayed into the middle). Also, tweaked pipes to +always drop the empty ones. Revamped pumps so that now they should sit in/on +liquid and be connected only from the top, relegated grates to decorational- +only, added outlet spigot. Got rid of a few obsolete textures. Got rid of +that whole _x and _z naming thing - now all directional devices (pumps, valves, +spigots, tanks) use facedir. Valves, spigots no longer auto-rotate to find +nearby pipes. + +2012-09-17: Added test object for pneumatic tube autorouting code, made tubes +connect to it and any object that bears groups={tubedevice=1} (connects to any +side) + +2012-09-05: All recipes doubled except for junglegrass -> plastic sheet (since +that is derived from home decor) + +2012-09-02: Fixed plastic sheeting recipe. Added crafting recipes for various +objects, with options: If homedecor is installed, use the plastic sheeting +therein. If not, we define it manually. If the Technic mod is installed, +don't define any recipes at all. Also removed the extra "loaded!" messages and +tweaked the default pipe alias to point to something that is actually visible +:-) + +2012-09-01: flattened wielded pipe segment. + +2012-08-24: Added square-ish pneumatic tubes with their own autoplace code +(does not connect to steel pipes or pipe-oriented devices), then revised their +textures shortly after. Fixed a recursion bug that sometimes caused a stack +overflow. Old pipes were overriding the pipeworks:pipe defintion that belongs +with the new pipes. + +2012-08-22: Added outlet grate, made it participate in autoplace algorithm. +Extended storage tank to show fill level in 10% steps (0% to 100%). Added +"expansion tank" that appears if the user stacks tanks upwards. (Downwards is +not checked). + +2012-08-21: Made storage tank participate in autoplace algorithm. Tuned API a +little to allow for more flexible placement. Re-organized code a bit to allow +for some upcoming rules changes. Made storage tanks' upper/lower fittins and +intake grate participate in autoplace algorithm. + +2012-08-20: Added temporary nodes for storage tank and intake grating, but +without autoplace. + +2012-08-19: Pumps and valves now fully participate in the +auto-rotate/auto-place algorithm. + +2012-08-18: Total rewrite again. All pipes are now nice and round-looking, and +they auto-connect! Also added temporary nodes for pump and valve (each with an +on/off setting - punch to change). No crafting recipes yet and the pipes still +don't do anything useful yet. Soon. + +2012-08-06: Moved this changelog off the forum post and into a separate file. + +2012-08-05 (multiple updates): Rewrote pipeworks to use loops and tables to +create the nodes. Requires far less code now. Added -X, +X, -Y, +Y, -Z, +Z +capped stubs and a short centered horizontal segment. Changed node definitions +so that the aforementioned "short centered" segment is given on dig/drop. +Renamed it to just "pipeworks:pipe" (and pipe_loaded). Added empty/loaded +indicator images to the capped ends, removed some redundant comments. Made the +empty/loaded indication at the capped end more prominent. + +2012-07-21: Added screenshot showing pipes as they look now that nodebox +texture rotation is fixed. + +2012-07-18: Changed the mod name and all internals to 'pipeworks' instead of +'pipes'... after a couple of mistakes :-) + +2012-07-12: moved project to github. + +2012-06-23: Initial release, followed by reworking the textures a bit. diff --git a/mods/pipeworks/common.lua b/mods/pipeworks/common.lua new file mode 100644 index 0000000..9be13d0 --- /dev/null +++ b/mods/pipeworks/common.lua @@ -0,0 +1,155 @@ +---------------------- +-- Vector functions -- +---------------------- + +function vector.cross(a, b) + return { + x = a.y * b.z - a.z * b.y, + y = a.z * b.x - a.x * b.z, + z = a.x * b.y - a.y * b.x + } +end + +function vector.dot(a, b) + return a.x * b.x + a.y * b.y + a.z * b.z +end + +----------------------- +-- Facedir functions -- +----------------------- + +function minetest.facedir_to_top_dir(facedir) + return ({[0] = {x = 0, y = 1, z = 0}, + {x = 0, y = 0, z = 1}, + {x = 0, y = 0, z = -1}, + {x = 1, y = 0, z = 0}, + {x = -1, y = 0, z = 0}, + {x = 0, y = -1, z = 0}}) + [math.floor(facedir / 4)] +end + +function minetest.facedir_to_right_dir(facedir) + return vector.cross( + minetest.facedir_to_top_dir(facedir), + minetest.facedir_to_dir(facedir) + ) +end + +directions = {} +function directions.side_to_dir(side) + return ({[0] = vector.new(), + vector.new( 0, 1, 0), + vector.new( 0, -1, 0), + vector.new( 1, 0, 0), + vector.new(-1, 0, 0), + vector.new( 0, 0, 1), + vector.new( 0, 0, -1) + })[side] +end + +function directions.dir_to_side(dir) + local c = vector.dot(dir, vector.new(1, 2, 3)) + 4 + return ({6, 2, 4, 0, 3, 1, 5})[c] +end + +---------------------- +-- String functions -- +---------------------- + +--[[function string.split(str, sep) + local fields = {} + local index = 1 + local expr = "([^"..sep.."])+" + string.gsub(str, expr, function(substring) + fields[index] = substring + index = index + 1 + end) + return fields +end]] + +function string.startswith(str, substr) + return str:sub(1, substr:len()) == substr +end + +--------------------- +-- Table functions -- +--------------------- + +function table.contains(tbl, element) + for _, elt in pairs(tbl) do + if elt == element then + return true + end + end + return false +end + +function table.extend(tbl, tbl2) + local index = #tbl + 1 + for _, elt in ipairs(tbl2) do + tbl[index] = elt + index = index + 1 + end +end + +function table.recursive_replace(tbl, pattern, replace_with) + if type(tbl) == "table" then + local tbl2 = {} + for key, value in pairs(tbl) do + tbl2[key] = table.recursive_replace(value, pattern, replace_with) + end + return tbl2 + elseif type(tbl) == "string" then + return tbl:gsub(pattern, replace_with) + else + return tbl + end +end + +------------------------ +-- Formspec functions -- +------------------------ + +fs_helpers = {} +function fs_helpers.on_receive_fields(pos, fields) + local meta = minetest.get_meta(pos) + for field, value in pairs(fields) do + if field:startswith("fs_helpers_cycling:") then + local l = field:split(":") + local new_value = tonumber(l[2]) + local meta_name = l[3] + meta:set_int(meta_name, new_value) + end + end +end + +function fs_helpers.cycling_button(meta, base, meta_name, values) + local current_value = meta:get_int(meta_name) + local new_value = (current_value + 1) % (#values) + local val = values[current_value + 1] + local text + local texture_name = nil + --when we get a table, we know the caller wants an image_button + if type(val) == "table" then + text = val["text"] + texture_name = val["texture"] + else + text = val + end + local field = "fs_helpers_cycling:"..new_value..":"..meta_name + return base..";"..(texture_name and texture_name..";" or "")..field..";"..minetest.formspec_escape(text).."]" +end + +--------- +-- Env -- +--------- + +function minetest.load_position(pos) + if pos.x < -30912 or pos.y < -30912 or pos.z < -30912 or + pos.x > 30927 or pos.y > 30927 or pos.z > 30927 then return end + if minetest.get_node_or_nil(pos) then + return + end + local vm = minetest.get_voxel_manip() + vm:read_from_map(pos, pos) +end diff --git a/mods/pipeworks/compat.lua b/mods/pipeworks/compat.lua new file mode 100644 index 0000000..dd21c09 --- /dev/null +++ b/mods/pipeworks/compat.lua @@ -0,0 +1,138 @@ +-- this bit of code modifies the default chests and furnaces to be compatible +-- with pipeworks. + +minetest.override_item("default:furnace", { + tiles = { + "default_furnace_top.png^pipeworks_tube_connection_stony.png", + "default_furnace_bottom.png^pipeworks_tube_connection_stony.png", + "default_furnace_side.png^pipeworks_tube_connection_stony.png", + "default_furnace_side.png^pipeworks_tube_connection_stony.png", + "default_furnace_side.png^pipeworks_tube_connection_stony.png", + "default_furnace_front.png" + }, + groups = {cracky = 2, tubedevice = 1, tubedevice_receiver = 1}, + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local timer = minetest.get_node_timer(pos) + if not timer:is_started() then + timer:start(1.0) + end + if direction.y == 1 then + return inv:add_item("fuel",stack) + else + return inv:add_item("src",stack) + end + end, + can_insert = function(pos,node,stack,direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if direction.y == 1 then + return inv:room_for_item("fuel", stack) + else + return inv:room_for_item("src", stack) + end + end, + input_inventory = "dst", + connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1} + }, +}) + +minetest.override_item("default:furnace_active", { + tiles = { + "default_furnace_top.png^pipeworks_tube_connection_stony.png", + "default_furnace_bottom.png^pipeworks_tube_connection_stony.png", + "default_furnace_side.png^pipeworks_tube_connection_stony.png", + "default_furnace_side.png^pipeworks_tube_connection_stony.png", + "default_furnace_side.png^pipeworks_tube_connection_stony.png", + { + image = "default_furnace_front_active.png", + backface_culling = false, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.5 + }, + } + }, + groups = {cracky = 2, tubedevice = 1, tubedevice_receiver = 1, not_in_creative_inventory = 1}, + tube = { + insert_object = function(pos,node,stack,direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local timer = minetest.get_node_timer(pos) + if not timer:is_started() then + timer:start(1.0) + end + if direction.y == 1 then + return inv:add_item("fuel", stack) + else + return inv:add_item("src", stack) + end + end, + can_insert = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if direction.y == 1 then + return inv:room_for_item("fuel", stack) + else + return inv:room_for_item("src", stack) + end + end, + input_inventory = "dst", + connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1} + }, +}) + +minetest.override_item("default:chest", { + tiles = { + "default_chest_top.png^pipeworks_tube_connection_wooden.png", + "default_chest_top.png^pipeworks_tube_connection_wooden.png", + "default_chest_side.png^pipeworks_tube_connection_wooden.png", + "default_chest_side.png^pipeworks_tube_connection_wooden.png", + "default_chest_side.png^pipeworks_tube_connection_wooden.png", + "default_chest_front.png" + }, + groups = {choppy = 2, oddly_breakable_by_hand = 2, tubedevice = 1, tubedevice_receiver = 1}, + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.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.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} + }, +}) + +minetest.override_item("default:chest_locked", { + tiles = { + "default_chest_top.png^pipeworks_tube_connection_wooden.png", + "default_chest_top.png^pipeworks_tube_connection_wooden.png", + "default_chest_side.png^pipeworks_tube_connection_wooden.png", + "default_chest_side.png^pipeworks_tube_connection_wooden.png", + "default_chest_side.png^pipeworks_tube_connection_wooden.png", + "default_chest_lock.png" + }, + groups = {choppy = 2, oddly_breakable_by_hand = 2, tubedevice = 1, tubedevice_receiver = 1}, + tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.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.get_meta(pos) + local inv = meta:get_inventory() + return inv:room_for_item("main", stack) + end, + connect_sides = {left = 1, right = 1, back = 1, front = 1, bottom = 1, top = 1} + }, +}) diff --git a/mods/pipeworks/crafts.lua b/mods/pipeworks/crafts.lua new file mode 100644 index 0000000..114d839 --- /dev/null +++ b/mods/pipeworks/crafts.lua @@ -0,0 +1,55 @@ + + +minetest.register_craft( { + output = "pipeworks:one_way_tube 2", + recipe = { + { "gems:sapphire_gem", "gems:sapphire_gem", "gems:sapphire_gem" }, + { "", "", "" }, + { "gems:sapphire_gem", "gems:sapphire_gem", "gems:sapphire_gem" } + }, +}) + + +minetest.register_craft( { + output = "pipeworks:tube_1 64", + recipe = { + { "", "", "" }, + { "", "", "" }, + { "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" } + }, +}) + + + + + +minetest.register_craft( { + output = "pipeworks:mese_sand_tube_1 2", + recipe = { + { "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" }, + { "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" }, + { "", "", "" } + }, +}) + + + +minetest.register_craft( { + output = "pipeworks:filter 1", + recipe = { + { "", "", "" }, + { "", "default:mese_crystal", "gems:ruby_gem" }, + { "", "", "" } + }, +}) + +minetest.register_craft( { + output = "pipeworks:mese_filter 1", + recipe = { + { "pipeworks:filter", "pipeworks:filter", "" }, + { "", "", "" }, + { "", "", "" } + }, +}) + + diff --git a/mods/pipeworks/default_settings.txt b/mods/pipeworks/default_settings.txt new file mode 100644 index 0000000..4aa4150 --- /dev/null +++ b/mods/pipeworks/default_settings.txt @@ -0,0 +1,19 @@ +-- Various settings + +pipeworks.enable_pipes = true +pipeworks.enable_autocrafter = true +pipeworks.enable_deployer = true +pipeworks.enable_dispenser = true +pipeworks.enable_node_breaker = true +pipeworks.enable_teleport_tube = true +pipeworks.enable_pipe_devices = true +pipeworks.enable_redefines = true +pipeworks.enable_mese_tube = true +pipeworks.enable_detector_tube = true +pipeworks.enable_conductor_tube = true +pipeworks.enable_accelerator_tube = true +pipeworks.enable_crossing_tube = true +pipeworks.enable_sand_tube = true +pipeworks.enable_mese_sand_tube = true +pipeworks.enable_one_way_tube = true +pipeworks.enable_cyclic_mode = true diff --git a/mods/pipeworks/depends.txt b/mods/pipeworks/depends.txt new file mode 100644 index 0000000..02a542c --- /dev/null +++ b/mods/pipeworks/depends.txt @@ -0,0 +1,3 @@ +default +mesecons? +mesecons_mvps? diff --git a/mods/pipeworks/devices.lua b/mods/pipeworks/devices.lua new file mode 100644 index 0000000..14db4d5 --- /dev/null +++ b/mods/pipeworks/devices.lua @@ -0,0 +1,570 @@ +-- List of devices that should participate in the autoplace algorithm + +local pipereceptor_on = nil +local pipereceptor_off = nil + +if minetest.get_modpath("mesecons") then + pipereceptor_on = { + receptor = { + state = mesecon.state.on, + rules = pipeworks.mesecons_rules + } + } + + pipereceptor_off = { + receptor = { + state = mesecon.state.off, + rules = pipeworks.mesecons_rules + } + } +end + +local pipes_devicelist = { + "pump", + "valve", + "storage_tank_0", + "storage_tank_1", + "storage_tank_2", + "storage_tank_3", + "storage_tank_4", + "storage_tank_5", + "storage_tank_6", + "storage_tank_7", + "storage_tank_8", + "storage_tank_9", + "storage_tank_10" +} + +-- Now define the nodes. + +local states = { "on", "off" } +local dgroups = "" + +for s in ipairs(states) do + + if states[s] == "off" then + dgroups = {snappy=3, pipe=1} + else + dgroups = {snappy=3, pipe=1, not_in_creative_inventory=1} + end + + minetest.register_node("pipeworks:pump_"..states[s], { + description = "Pump/Intake Module", + drawtype = "mesh", + mesh = "pipeworks_pump.obj", + tiles = { "pipeworks_pump_"..states[s]..".png" }, + paramtype = "light", + paramtype2 = "facedir", + groups = dgroups, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + drop = "pipeworks:pump_off", + mesecons = {effector = { + action_on = function (pos, node) + minetest.add_node(pos,{name="pipeworks:pump_on", param2 = node.param2}) + end, + action_off = function (pos, node) + minetest.add_node(pos,{name="pipeworks:pump_off", param2 = node.param2}) + end + }}, + on_punch = function(pos, node, puncher) + local fdir = minetest.get_node(pos).param2 + minetest.add_node(pos, { name = "pipeworks:pump_"..states[3-s], param2 = fdir }) + end + }) + + minetest.register_node("pipeworks:valve_"..states[s].."_empty", { + description = "Valve", + drawtype = "mesh", + mesh = "pipeworks_valve_"..states[s]..".obj", + tiles = { "pipeworks_valve.png" }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -8/16, -4/16, -5/16, 8/16, 5/16, 5/16 } + }, + collision_box = { + type = "fixed", + fixed = { -8/16, -4/16, -5/16, 8/16, 5/16, 5/16 } + }, + groups = dgroups, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + drop = "pipeworks:valve_off_empty", + mesecons = {effector = { + action_on = function (pos, node) + minetest.add_node(pos,{name="pipeworks:valve_on_empty", param2 = node.param2}) + end, + action_off = function (pos, node) + minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2}) + end + }}, + on_punch = function(pos, node, puncher) + local fdir = minetest.get_node(pos).param2 + minetest.add_node(pos, { name = "pipeworks:valve_"..states[3-s].."_empty", param2 = fdir }) + end + }) +end + +minetest.register_node("pipeworks:valve_on_loaded", { + description = "Valve", + drawtype = "mesh", + mesh = "pipeworks_valve_on.obj", + tiles = { "pipeworks_valve.png" }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { -8/16, -4/16, -5/16, 8/16, 5/16, 5/16 } + }, + collision_box = { + type = "fixed", + fixed = { -8/16, -4/16, -5/16, 8/16, 5/16, 5/16 } + }, + groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + drop = "pipeworks:valve_off_empty", + mesecons = {effector = { + action_on = function (pos, node) + minetest.add_node(pos,{name="pipeworks:valve_on_empty", param2 = node.param2}) + end, + action_off = function (pos, node) + minetest.add_node(pos,{name="pipeworks:valve_off_empty", param2 = node.param2}) + end + }}, + on_punch = function(pos, node, puncher) + local fdir = minetest.get_node(pos).param2 + minetest.add_node(pos, { name = "pipeworks:valve_off_empty", param2 = fdir }) + end +}) + +-- grating + +minetest.register_node("pipeworks:grating", { + description = "Decorative grating", + tiles = { + "pipeworks_grating_top.png", + "pipeworks_grating_sides.png", + "pipeworks_grating_sides.png", + "pipeworks_grating_sides.png", + "pipeworks_grating_sides.png", + "pipeworks_grating_sides.png" + }, + sunlight_propagates = true, + paramtype = "light", + groups = {snappy=3, pipe=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, +}) + +-- outlet spigot + +minetest.register_node("pipeworks:spigot", { + description = "Spigot outlet", + drawtype = "mesh", + mesh = "pipeworks_spigot.obj", + tiles = { "pipeworks_spigot.png" }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, pipe=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + selection_box = { + type = "fixed", + fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 } + }, + collision_box = { + type = "fixed", + fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 } + } +}) + +minetest.register_node("pipeworks:spigot_pouring", { + description = "Spigot outlet", + drawtype = "mesh", + mesh = "pipeworks_spigot_pouring.obj", + tiles = { + { + name = "default_water_flowing_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 0.8, + }, + }, + { name = "pipeworks_spigot.png" } + }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + selection_box = { + type = "fixed", + fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 } + }, + collision_box = { + type = "fixed", + fixed = { -2/16, -6/16, -2/16, 2/16, 2/16, 8/16 } + }, + drop = "pipeworks:spigot", +}) + +-- sealed pipe entry/exit (horizontal pipe passing through a metal +-- wall, for use in places where walls should look like they're airtight) + +local panel_cbox = { + type = "fixed", + fixed = { + { -2/16, -2/16, -8/16, 2/16, 2/16, 8/16 }, + { -8/16, -8/16, -1/16, 8/16, 8/16, 1/16 } + } +} + +minetest.register_node("pipeworks:entry_panel_empty", { + description = "Airtight Pipe entry/exit", + drawtype = "mesh", + mesh = "pipeworks_entry_panel.obj", + tiles = { "pipeworks_entry_panel.png" }, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, pipe=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + selection_box = panel_cbox, + collision_box = panel_cbox, + on_place = function(itemstack, placer, pointed_thing) + if not pipeworks.node_is_owned(pointed_thing.under, placer) + and not pipeworks.node_is_owned(pointed_thing.above, placer) then + local node = minetest.get_node(pointed_thing.under) + + if not minetest.registered_nodes[node.name] + or not minetest.registered_nodes[node.name].on_rightclick then + local pitch = placer:get_look_pitch() + local above = pointed_thing.above + local under = pointed_thing.under + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local undernode = minetest.get_node(under) + local abovenode = minetest.get_node(above) + local uname = undernode.name + local aname = abovenode.name + local isabove = (above.x == under.x) and (above.z == under.z) and (pitch > 0) + local pos1 = above + + if above.x == under.x + and above.z == under.z + and ( string.find(uname, "pipeworks:pipe_") + or string.find(uname, "pipeworks:storage_") + or string.find(uname, "pipeworks:expansion_") + or ( string.find(uname, "pipeworks:grating") and not isabove ) + or ( string.find(uname, "pipeworks:pump_") and not isabove ) + or ( string.find(uname, "pipeworks:entry_panel") + and undernode.param2 == 13 ) + ) + then + fdir = 13 + end + + if minetest.registered_nodes[uname]["buildable_to"] then + pos1 = under + end + + if not minetest.registered_nodes[minetest.get_node(pos1).name]["buildable_to"] then return end + + minetest.add_node(pos1, {name = "pipeworks:entry_panel_empty", param2 = fdir }) + pipeworks.scan_for_pipe_objects(pos1) + + if not pipeworks.expect_infinite_stacks then + itemstack:take_item() + end + + else + minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) + end + end + return itemstack + end +}) + +minetest.register_node("pipeworks:entry_panel_loaded", { + description = "Airtight Pipe entry/exit", + drawtype = "mesh", + mesh = "pipeworks_entry_panel.obj", + tiles = { "pipeworks_entry_panel.png" }, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + selection_box = panel_cbox, + collision_box = panel_cbox, + drop = "pipeworks:entry_panel_empty" +}) + +minetest.register_node("pipeworks:flow_sensor_empty", { + description = "Flow Sensor", + drawtype = "mesh", + mesh = "pipeworks_flow_sensor.obj", + tiles = { "pipeworks_flow_sensor_off.png" }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, pipe=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + on_construct = function(pos) + if mesecon then + mesecon.receptor_off(pos, rules) + end + end, + selection_box = { + type = "fixed", + fixed = { + { -8/16, -2/16, -2/16, 8/16, 2/16, 2/16 }, + { -4/16, -3/16, -3/16, 4/16, 3/16, 3/16 }, + } + }, + collision_box = { + type = "fixed", + fixed = { + { -8/16, -2/16, -2/16, 8/16, 2/16, 2/16 }, + { -4/16, -3/16, -3/16, 4/16, 3/16, 3/16 }, + } + }, + mesecons = pipereceptor_off +}) + +minetest.register_node("pipeworks:flow_sensor_loaded", { + description = "Flow sensor (on)", + drawtype = "mesh", + mesh = "pipeworks_flow_sensor.obj", + tiles = { "pipeworks_flow_sensor_on.png" }, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + on_construct = function(pos) + if mesecon then + mesecon.receptor_on(pos, rules) + end + end, + selection_box = { + type = "fixed", + fixed = { + { -8/16, -2/16, -2/16, 8/16, 2/16, 2/16 }, + { -4/16, -3/16, -3/16, 4/16, 3/16, 3/16 }, + } + }, + collision_box = { + type = "fixed", + fixed = { + { -8/16, -2/16, -2/16, 8/16, 2/16, 2/16 }, + { -4/16, -3/16, -3/16, 4/16, 3/16, 3/16 }, + } + }, + drop = "pipeworks:flow_sensor_empty", + mesecons = pipereceptor_on +}) + +-- tanks + +for fill = 0, 10 do + local filldesc="empty" + local sgroups = {snappy=3, pipe=1, tankfill=fill+1} + local image = nil + + if fill ~= 0 then + filldesc=fill.."0% full" + sgroups = {snappy=3, pipe=1, tankfill=fill+1, not_in_creative_inventory=1} + image = "pipeworks_storage_tank_fittings.png" + end + + minetest.register_node("pipeworks:expansion_tank_"..fill, { + description = "Expansion Tank ("..filldesc..")... You hacker, you.", + tiles = { + "pipeworks_storage_tank_fittings.png", + "pipeworks_storage_tank_fittings.png", + "pipeworks_storage_tank_back.png", + "pipeworks_storage_tank_back.png", + "pipeworks_storage_tank_back.png", + pipeworks.liquid_texture.."^pipeworks_storage_tank_front_"..fill..".png" + }, + inventory_image = image, + paramtype = "light", + paramtype2 = "facedir", + groups = {snappy=3, pipe=1, tankfill=fill+1, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + drop = "pipeworks:storage_tank_0", + after_place_node = function(pos) + pipeworks.look_for_stackable_tanks(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + }) + + minetest.register_node("pipeworks:storage_tank_"..fill, { + description = "Fluid Storage Tank ("..filldesc..")", + tiles = { + "pipeworks_storage_tank_fittings.png", + "pipeworks_storage_tank_fittings.png", + "pipeworks_storage_tank_back.png", + "pipeworks_storage_tank_back.png", + "pipeworks_storage_tank_back.png", + pipeworks.liquid_texture.."^pipeworks_storage_tank_front_"..fill..".png" + }, + inventory_image = image, + paramtype = "light", + paramtype2 = "facedir", + groups = sgroups, + sounds = default.node_sound_wood_defaults(), + walkable = true, + drop = "pipeworks:storage_tank_0", + after_place_node = function(pos) + pipeworks.look_for_stackable_tanks(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + }) +end + +-- fountainhead + +minetest.register_node("pipeworks:fountainhead", { + description = "Fountainhead", + drawtype = "mesh", + mesh = "pipeworks_fountainhead.obj", + tiles = { "pipeworks_fountainhead.png" }, + sunlight_propagates = true, + paramtype = "light", + groups = {snappy=3, pipe=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + on_construct = function(pos) + if mesecon then + mesecon.receptor_on(pos, rules) + end + end, + selection_box = { + type = "fixed", + fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 } + }, + collision_box = { + type = "fixed", + fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 } + }, +}) + +minetest.register_node("pipeworks:fountainhead_pouring", { + description = "Fountainhead", + drawtype = "mesh", + mesh = "pipeworks_fountainhead.obj", + tiles = { "pipeworks_fountainhead.png" }, + sunlight_propagates = true, + paramtype = "light", + groups = {snappy=3, pipe=1, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), + walkable = true, + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + on_construct = function(pos) + if mesecon then + mesecon.receptor_on(pos, rules) + end + end, + selection_box = { + type = "fixed", + fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 } + }, + collision_box = { + type = "fixed", + fixed = { -2/16, -8/16, -2/16, 2/16, 8/16, 2/16 } + }, + drop = "pipeworks:fountainhead" +}) + +minetest.register_alias("pipeworks:valve_off_loaded", "pipeworks:valve_off_empty") + diff --git a/mods/pipeworks/flowing_logic.lua b/mods/pipeworks/flowing_logic.lua new file mode 100644 index 0000000..5166b15 --- /dev/null +++ b/mods/pipeworks/flowing_logic.lua @@ -0,0 +1,121 @@ +-- This file provides the actual flow and pathfinding logic that makes water +-- move through the pipes. +-- +-- Contributed by mauvebic, 2013-01-03, rewritten a bit by Vanessa Ezekowitz +-- + +local finitewater = minetest.setting_getbool("liquid_finite") + +pipeworks.check_for_liquids = function(pos) + local coords = { + {x=pos.x,y=pos.y-1,z=pos.z}, + {x=pos.x,y=pos.y+1,z=pos.z}, + {x=pos.x-1,y=pos.y,z=pos.z}, + {x=pos.x+1,y=pos.y,z=pos.z}, + {x=pos.x,y=pos.y,z=pos.z-1}, + {x=pos.x,y=pos.y,z=pos.z+1}, } + for i =1,6 do + local name = minetest.get_node(coords[i]).name + if name and string.find(name,"water") then + if finitewater then minetest.remove_node(coords[i]) end + return true + end + end + return false +end + +pipeworks.check_for_inflows = function(pos,node) + local coords = { + {x=pos.x,y=pos.y-1,z=pos.z}, + {x=pos.x,y=pos.y+1,z=pos.z}, + {x=pos.x-1,y=pos.y,z=pos.z}, + {x=pos.x+1,y=pos.y,z=pos.z}, + {x=pos.x,y=pos.y,z=pos.z-1}, + {x=pos.x,y=pos.y,z=pos.z+1}, } + local newnode = false + local source = false + for i =1,6 do + if newnode then break end + local name = minetest.get_node(coords[i]).name + if name and (name == "pipeworks:pump_on" and pipeworks.check_for_liquids(coords[i])) or string.find(name,"_loaded") then + if string.find(name,"_loaded") then + source = minetest.get_meta(coords[i]):get_string("source") + if source == minetest.pos_to_string(pos) then break end + end + newnode = string.gsub(node.name,"empty","loaded") + source = {x=coords[i].x,y=coords[i].y,z=coords[i].z} + end + end + if newnode then + minetest.add_node(pos,{name=newnode, param2 = node.param2}) + minetest.get_meta(pos):set_string("source",minetest.pos_to_string(source)) + end +end + +pipeworks.check_sources = function(pos,node) + local sourcepos = minetest.string_to_pos(minetest.get_meta(pos):get_string("source")) + if not sourcepos then return end + local source = minetest.get_node(sourcepos).name + local newnode = false + if source and not ((source == "pipeworks:pump_on" and pipeworks.check_for_liquids(sourcepos)) or string.find(source,"_loaded") or source == "ignore" ) then + newnode = string.gsub(node.name,"loaded","empty") + end + + if newnode then + minetest.add_node(pos,{name=newnode, param2 = node.param2}) + minetest.get_meta(pos):set_string("source","") + end +end + +pipeworks.spigot_check = function(pos, node) + local belowname = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}).name + if belowname and (belowname == "air" or belowname == "default:water_flowing" or belowname == "default:water_source") then + local spigotname = minetest.get_node(pos).name + local fdir=node.param2 % 4 + local check = { + {x=pos.x,y=pos.y,z=pos.z+1}, + {x=pos.x+1,y=pos.y,z=pos.z}, + {x=pos.x,y=pos.y,z=pos.z-1}, + {x=pos.x-1,y=pos.y,z=pos.z} + } + local near_node = minetest.get_node(check[fdir+1]) + if near_node and string.find(near_node.name, "_loaded") then + if spigotname and spigotname == "pipeworks:spigot" then + minetest.add_node(pos,{name = "pipeworks:spigot_pouring", param2 = fdir}) + if finitewater or belowname ~= "default:water_source" then + minetest.add_node({x=pos.x,y=pos.y-1,z=pos.z},{name = "default:water_source"}) + end + end + else + if spigotname == "pipeworks:spigot_pouring" then + minetest.add_node({x=pos.x,y=pos.y,z=pos.z},{name = "pipeworks:spigot", param2 = fdir}) + if belowname == "default:water_source" and not finitewater then + minetest.remove_node({x=pos.x,y=pos.y-1,z=pos.z}) + end + end + end + end +end + +pipeworks.fountainhead_check = function(pos, node) + local abovename = minetest.get_node({x=pos.x,y=pos.y+1,z=pos.z}).name + if abovename and (abovename == "air" or abovename == "default:water_flowing" or abovename == "default:water_source") then + local fountainhead_name = minetest.get_node(pos).name + local near_node = minetest.get_node({x=pos.x,y=pos.y-1,z=pos.z}) + if near_node and string.find(near_node.name, "_loaded") then + if fountainhead_name and fountainhead_name == "pipeworks:fountainhead" then + minetest.add_node(pos,{name = "pipeworks:fountainhead_pouring"}) + if finitewater or abovename ~= "default:water_source" then + minetest.add_node({x=pos.x,y=pos.y+1,z=pos.z},{name = "default:water_source"}) + end + end + else + if fountainhead_name == "pipeworks:fountainhead_pouring" then + minetest.add_node({x=pos.x,y=pos.y,z=pos.z},{name = "pipeworks:fountainhead"}) + if abovename == "default:water_source" and not finitewater then + minetest.remove_node({x=pos.x,y=pos.y+1,z=pos.z}) + end + end + end + end +end diff --git a/mods/pipeworks/init.lua b/mods/pipeworks/init.lua new file mode 100644 index 0000000..200bed3 --- /dev/null +++ b/mods/pipeworks/init.lua @@ -0,0 +1,131 @@ +-- Pipeworks mod by Vanessa Ezekowitz - 2013-07-13 +-- +-- This mod supplies various steel pipes and plastic pneumatic tubes +-- and devices that they can connect to. +-- +-- License: WTFPL +-- + +pipeworks = {} + +local DEBUG = false + +pipeworks.worldpath = minetest.get_worldpath() +pipeworks.modpath = minetest.get_modpath("pipeworks") + +dofile(pipeworks.modpath.."/default_settings.txt") + +-- Read the external config file if it exists. +if io.open(pipeworks.worldpath.."/pipeworks_settings.txt","r") then + dofile(pipeworks.worldpath.."/pipeworks_settings.txt") + io.close() +end + +-- Random variables + +pipeworks.expect_infinite_stacks = true +if minetest.get_modpath("unified_inventory") or not minetest.setting_getbool("creative_mode") then + pipeworks.expect_infinite_stacks = false +end + +pipeworks.meseadjlist={{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=0,y=1,z=0},{x=0,y=-1,z=0},{x=1,y=0,z=0},{x=-1,y=0,z=0}} + +pipeworks.rules_all = {{x=0, y=0, z=1},{x=0, y=0, z=-1},{x=1, y=0, z=0},{x=-1, y=0, z=0}, + {x=0, y=1, z=1},{x=0, y=1, 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},{x=1, y=-1, z=0},{x=-1, y=-1, z=0}, + {x=0, y=1, z=0}, {x=0, y=-1, z=0}} + +pipeworks.mesecons_rules={{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=1,z=0},{x=0,y=-1,z=0}} + +pipeworks.liquid_texture = "default_water.png" + +-- Helper functions + +function pipeworks.fix_image_names(table, replacement) + local outtable={} + for i in ipairs(table) do + outtable[i]=string.gsub(table[i], "_XXXXX", replacement) + end + + return outtable +end + +function pipeworks.add_node_box(t, b) + if not t or not b then return end + for i in ipairs(b) + do table.insert(t, b[i]) + end +end + +function pipeworks.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 + +function pipeworks.replace_name(tbl,tr,name) + local ntbl={} + for key,i in pairs(tbl) do + if type(i)=="string" then + ntbl[key]=string.gsub(i,tr,name) + elseif type(i)=="table" then + ntbl[key]=pipeworks.replace_name(i,tr,name) + else + ntbl[key]=i + end + end + return ntbl +end + +------------------------------------------- +-- Load the various other parts of the mod + +dofile(pipeworks.modpath.."/common.lua") +dofile(pipeworks.modpath.."/models.lua") +dofile(pipeworks.modpath.."/autoplace_pipes.lua") +dofile(pipeworks.modpath.."/autoplace_tubes.lua") +dofile(pipeworks.modpath.."/luaentity.lua") +dofile(pipeworks.modpath.."/item_transport.lua") +dofile(pipeworks.modpath.."/flowing_logic.lua") +dofile(pipeworks.modpath.."/crafts.lua") +dofile(pipeworks.modpath.."/tubes.lua") +dofile(pipeworks.modpath.."/trashcan.lua") +dofile(pipeworks.modpath.."/wielder.lua") + +if pipeworks.enable_pipes then dofile(pipeworks.modpath.."/pipes.lua") end +if pipeworks.enable_teleport_tube then dofile(pipeworks.modpath.."/teleport_tube.lua") end +if pipeworks.enable_pipe_devices then dofile(pipeworks.modpath.."/devices.lua") end +if pipeworks.enable_redefines then dofile(pipeworks.modpath.."/compat.lua") end +if pipeworks.enable_autocrafter then dofile(pipeworks.modpath.."/autocrafter.lua") end + +minetest.register_alias("pipeworks:pipe", "pipeworks:pipe_110000_empty") + +print("Pipeworks loaded!") + diff --git a/mods/pipeworks/item_transport.lua b/mods/pipeworks/item_transport.lua new file mode 100644 index 0000000..0ba780b --- /dev/null +++ b/mods/pipeworks/item_transport.lua @@ -0,0 +1,487 @@ +local function delay(x) + return (function() return x end) +end + +function pipeworks.tube_item(pos, item) + error("obsolete pipeworks.tube_item() called; change caller to use pipeworks.tube_inject_item() instead") +end + +function pipeworks.tube_inject_item(pos, start_pos, velocity, item) + -- Take item in any format + local stack = ItemStack(item) + local obj = luaentity.add_entity(pos, "pipeworks:tubed_item") + obj:set_item(stack:to_string()) + obj.start_pos = vector.new(start_pos) + obj:setvelocity(velocity) + --obj:set_color("red") -- todo: this is test-only code + return obj +end + +-- adding two tube functions +-- can_remove(pos,node,stack,dir) returns the maximum number of items of that stack that can be removed +-- remove_items(pos,node,stack,dir,count) removes count items and returns them +-- both optional w/ sensible defaults and fallback to normal allow_* function +-- XXX: possibly change insert_object to insert_item + +local function set_filter_infotext(data, meta) + local infotext = data.wise_desc.." Filter-Injector" + if meta:get_int("slotseq_mode") == 2 then + infotext = infotext .. " (slot #"..meta:get_int("slotseq_index").." next)" + end + meta:set_string("infotext", infotext) +end + +local function set_filter_formspec(data, meta) + local itemname = data.wise_desc.." Filter-Injector" + local formspec = "size[8,8.5]".. + "item_image[0,0;1,1;pipeworks:"..data.name.."]".. + "label[1,0;"..minetest.formspec_escape(itemname).."]".. + "label[0,1;Prefer item types:]".. + "list[current_name;main;0,1.5;8,2;]".. + fs_helpers.cycling_button(meta, "button[0,3.5;4,1", "slotseq_mode", + {"Sequence slots by Priority", + "Sequence slots Randomly", + "Sequence slots by Rotation"}).. + "list[current_player;main;0,4.5;8,4;]" + meta:set_string("formspec", formspec) +end + +-- todo SOON: this function has *way too many* parameters +local function grabAndFire(data,slotseq_mode,filtmeta,frominv,frominvname,frompos,fromnode,filtername,fromtube,fromdef,dir,fakePlayer,all) + local sposes = {} + for spos,stack in ipairs(frominv:get_list(frominvname)) do + local matches + if filtername == "" then + matches = stack:get_name() ~= "" + else + matches = stack:get_name() == filtername + end + if matches then table.insert(sposes, spos) end + end + if #sposes == 0 then return false end + if slotseq_mode == 1 then + for i = #sposes, 2, -1 do + local j = math.random(i) + local t = sposes[j] + sposes[j] = sposes[i] + sposes[i] = t + end + elseif slotseq_mode == 2 then + local headpos = filtmeta:get_int("slotseq_index") + table.sort(sposes, function (a, b) + if a >= headpos then + if b < headpos then return true end + else + if b >= headpos then return false end + end + return a < b + end) + end + for _, spos in ipairs(sposes) do + local stack = frominv:get_stack(frominvname, spos) + local doRemove = stack:get_count() + if fromtube.can_remove then + doRemove = fromtube.can_remove(frompos, fromnode, stack, dir) + elseif fromdef.allow_metadata_inventory_take then + doRemove = fromdef.allow_metadata_inventory_take(frompos, frominvname,spos, stack, fakePlayer) + end + -- stupid lack of continue statements grumble + if doRemove > 0 then + if slotseq_mode == 2 then + local nextpos = spos + 1 + if nextpos > frominv:get_size(frominvname) then + nextpos = 1 + end + filtmeta:set_int("slotseq_index", nextpos) + set_filter_infotext(data, filtmeta) + end + local item + local count + if all then + count = math.min(stack:get_count(), doRemove) + else + count = 1 + end + if fromtube.remove_items then + -- it could be the entire stack... + item = fromtube.remove_items(frompos, fromnode, stack, dir, count) + else + item = stack:take_item(count) + frominv:set_stack(frominvname, spos, stack) + if fromdef.on_metadata_inventory_take then + fromdef.on_metadata_inventory_take(frompos, frominvname, spos, item, fakePlayer) + end + end + local pos = vector.add(frompos, vector.multiply(dir, 1.4)) + local start_pos = vector.add(frompos, dir) + local item1 = pipeworks.tube_inject_item(pos, start_pos, dir, item) + return true-- only fire one item, please + end + end + return false +end + +local function punch_filter(data, filtpos, filtnode) + local filtmeta = minetest.get_meta(filtpos) + local filtinv = filtmeta:get_inventory() + local owner = filtmeta:get_string("owner") + local fakePlayer = { + get_player_name = delay(owner), + } -- TODO: use a mechanism as the wielder one + local dir = minetest.facedir_to_right_dir(filtnode.param2) + local frompos = vector.subtract(filtpos, dir) + local fromnode = minetest.get_node(frompos) + if not fromnode then return end + local fromdef = minetest.registered_nodes[fromnode.name] + if not fromdef then return end + local fromtube = fromdef.tube + if not (fromtube and fromtube.input_inventory) then return end + local filters = {} + for _, filterstack in ipairs(filtinv:get_list("main")) do + local filtername = filterstack:get_name() + if filtername ~= "" then table.insert(filters, filtername) end + end + if #filters == 0 then table.insert(filters, "") end + local slotseq_mode = filtmeta:get_int("slotseq_mode") + local frommeta = minetest.get_meta(frompos) + local frominv = frommeta:get_inventory() + if fromtube.before_filter then fromtube.before_filter(frompos) end + for _, frominvname in ipairs(type(fromtube.input_inventory) == "table" and fromtube.input_inventory or {fromtube.input_inventory}) do + local done = false + for _, filtername in ipairs(filters) do + if grabAndFire(data, slotseq_mode, filtmeta, frominv, frominvname, frompos, fromnode, filtername, fromtube, fromdef, dir, fakePlayer, data.stackwise) then + done = true + break + end + end + if done then break end + end + if fromtube.after_filter then fromtube.after_filter(frompos) end +end + +for _, data in ipairs({ + { + name = "filter", + wise_desc = "Itemwise", + stackwise = false, + }, + { + name = "mese_filter", + wise_desc = "Stackwise", + stackwise = true, + }, +}) do + minetest.register_node("pipeworks:"..data.name, { + description = data.wise_desc.." Filter-Injector", + tiles = { + "pipeworks_"..data.name.."_top.png", + "pipeworks_"..data.name.."_top.png", + "pipeworks_"..data.name.."_output.png", + "pipeworks_"..data.name.."_input.png", + "pipeworks_"..data.name.."_side.png", + "pipeworks_"..data.name.."_top.png", + }, + paramtype2 = "facedir", + groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, mesecon = 2}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + set_filter_formspec(data, meta) + set_filter_infotext(data, meta) + local inv = meta:get_inventory() + inv:set_size("main", 8*2) + end, + after_place_node = function (pos, placer) + minetest.get_meta(pos):set_string("owner", placer:get_player_name()) + end, + on_receive_fields = function(pos, formname, fields, sender) + fs_helpers.on_receive_fields(pos, fields) + local meta = minetest.get_meta(pos) + meta:set_int("slotseq_index", 1) + set_filter_formspec(data, meta) + set_filter_infotext(data, meta) + end, + can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + mesecons = { + effector = { + action_on = function(pos, node) + punch_filter(data, pos, node) + end, + }, + }, + tube = {connect_sides = {right = 1}}, + on_punch = function (pos, node, puncher) + punch_filter(data, pos, node) + end, + }) +end + +local adjlist={{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=0,y=1,z=0},{x=0,y=-1,z=0},{x=1,y=0,z=0},{x=-1,y=0,z=0}} + +function pipeworks.notvel(tbl, vel) + local tbl2={} + for _,val in ipairs(tbl) do + if val.x ~= -vel.x or val.y ~= -vel.y or val.z ~= -vel.z then table.insert(tbl2, val) end + end + return tbl2 +end + +local function go_next(pos, velocity, stack) + local next_positions = {} + local max_priority = 0 + local cnode = minetest.get_node(pos) + local cmeta = minetest.get_meta(pos) + local can_go + local speed = math.abs(velocity.x + velocity.y + velocity.z) + if speed == 0 then + speed = 1 + end + local vel = {x = velocity.x/speed, y = velocity.y/speed, z = velocity.z/speed,speed=speed} + if speed >= 4.1 then + speed = 4 + elseif speed >= 1.1 then + speed = speed - 0.1 + else + speed = 1 + end + vel.speed = speed + if minetest.registered_nodes[cnode.name] and minetest.registered_nodes[cnode.name].tube and minetest.registered_nodes[cnode.name].tube.can_go then + can_go = minetest.registered_nodes[cnode.name].tube.can_go(pos, cnode, vel, stack) + else + can_go = pipeworks.notvel(adjlist, vel) + end + for _, vect in ipairs(can_go) do + local npos = vector.add(pos, vect) + local node = minetest.get_node(npos) + local reg_node = minetest.registered_nodes[node.name] + if reg_node then + local tube_def = reg_node.tube + local tubedevice = minetest.get_item_group(node.name, "tubedevice") + local tube_priority = (tube_def and tube_def.priority) or 100 + if tubedevice > 0 and tube_priority >= max_priority then + if not tube_def or not tube_def.can_insert or + tube_def.can_insert(npos, node, stack, vect) then + if tube_priority > max_priority then + max_priority = tube_priority + next_positions = {} + end + next_positions[#next_positions + 1] = {pos = npos, vect = vect} + end + end + end + end + + if not next_positions[1] then + return false, nil + end + + local n = (cmeta:get_int("tubedir") % (#next_positions)) + 1 + if pipeworks.enable_cyclic_mode then + cmeta:set_int("tubedir", n) + end + local new_velocity = vector.multiply(next_positions[n].vect, vel.speed) + return true, new_velocity +end + +minetest.register_entity("pipeworks:tubed_item", { + initial_properties = { + hp_max = 1, + physical = false, + collisionbox = {0.1, 0.1, 0.1, 0.1, 0.1, 0.1}, + visual = "wielditem", + visual_size = {x = 0.15, y = 0.15}, + textures = {""}, + spritediv = {x = 1, y = 1}, + initial_sprite_basepos = {x = 0, y = 0}, + is_visible = false, + }, + + physical_state = false, + + from_data = function(self, 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 + self.object:set_properties({ + is_visible = true, + textures = {stack:get_name()} + }) + local def = stack:get_definition() + self.object:setyaw((def and def.type == "node") and 0 or math.pi * 0.25) + end, + + get_staticdata = luaentity.get_staticdata, + on_activate = function(self, staticdata) -- Legacy code, should be replaced later by luaentity.on_activate + if staticdata == "" or staticdata == nil then + return + end + if staticdata == "toremove" then + self.object:remove() + return + end + local item = minetest.deserialize(staticdata) + pipeworks.tube_inject_item(self.object:getpos(), item.start_pos, item.velocity, item.itemstring) + self.object:remove() + end, +}) + +minetest.register_entity("pipeworks:color_entity", { + initial_properties = { + hp_max = 1, + physical = false, + collisionbox = {0.1, 0.1, 0.1, 0.1, 0.1, 0.1}, + visual = "cube", + visual_size = {x = 3.5, y = 3.5, z = 3.5}, -- todo: find correct size + textures = {""}, + is_visible = false, + }, + + physical_state = false, + + from_data = function(self, color) + local t = "pipeworks_color_"..color..".png" + local prop = { + is_visible = true, + visual = "cube", + textures = {t, t, t, t, t, t} -- todo: textures + } + self.object:set_properties(prop) + end, + + get_staticdata = luaentity.get_staticdata, + on_activate = luaentity.on_activate, +}) + +luaentity.register_entity("pipeworks:tubed_item", { + itemstring = '', + item_entity = nil, + color_entity = nil, + color = nil, + start_pos = nil, + + set_item = function(self, item) + local itemstring = ItemStack(item):to_string() -- Accept any input format + if self.itemstring == itemstring then + return + end + if self.item_entity then + self:remove_attached_entity(self.item_entity) + end + self.itemstring = itemstring + self.item_entity = self:add_attached_entity("pipeworks:tubed_item", itemstring) + end, + + set_color = function(self, color) + if self.color == color then + return + end + self.color = color + if self.color_entity then + self:remove_attached_entity(self.color_entity) + end + if color then + self.color_entity = self:add_attached_entity("pipeworks:color_entity", color) + else + self.color_entity = nil + end + end, + + on_step = function(self, dtime) + if self.start_pos == nil then + local pos = self:getpos() + self.start_pos = vector.round(pos) + self:setpos(pos) + end + + local pos = self:getpos() + local stack = ItemStack(self.itemstring) + local drop_pos + + local velocity = self:getvelocity() + + local moved = false + local speed = math.abs(velocity.x + velocity.y + velocity.z) + if speed == 0 then + speed = 1 + moved = true + end + local vel = {x = velocity.x / speed, y = velocity.y / speed, z = velocity.z / speed, speed = speed} + + if vector.distance(pos, self.start_pos) >= 1 then + self.start_pos = vector.add(self.start_pos, vel) + moved = true + end + + minetest.load_position(self.start_pos) + local node = minetest.get_node(self.start_pos) + if moved and minetest.get_item_group(node.name, "tubedevice_receiver") == 1 then + local leftover + if minetest.registered_nodes[node.name].tube and minetest.registered_nodes[node.name].tube.insert_object then + leftover = minetest.registered_nodes[node.name].tube.insert_object(self.start_pos, node, stack, vel) + else + leftover = stack + end + if leftover:is_empty() then + self:remove() + return + end + velocity = vector.multiply(velocity, -1) + self:setvelocity(velocity) + self:set_item(leftover:to_string()) + return + end + + if moved then + local found_next, new_velocity = go_next(self.start_pos, velocity, stack) -- todo: color + if not found_next then + drop_pos = minetest.find_node_near(vector.add(self.start_pos, velocity), 1, "air") + if drop_pos then + minetest.add_item(drop_pos,stack) + self:remove() + return + end + end + + if new_velocity and not vector.equals(velocity, new_velocity) then + self:setpos(self.start_pos) + self:setvelocity(new_velocity) + end + end + end +}) + +if minetest.get_modpath("mesecons_mvps") then + mesecon.register_mvps_unmov("pipeworks:tubed_item") + mesecon.register_mvps_unmov("pipeworks:color_entity") + mesecon.register_on_mvps_move(function(moved_nodes) + local moved = {} + for _, n in ipairs(moved_nodes) do + moved[minetest.hash_node_position(n.oldpos)] = vector.subtract(n.pos, n.oldpos) + end + for id, entity in pairs(luaentity.entities) do + if entity.name == "pipeworks:tubed_item" then + local pos = entity:getpos() + local rpos = vector.round(pos) + local dir = moved[minetest.hash_node_position(rpos)] + if dir then + entity:setpos(vector.add(pos, dir)) + entity.start_pos = vector.add(entity.start_pos, dir) + end + end + end + end) +end diff --git a/mods/pipeworks/legacy.lua b/mods/pipeworks/legacy.lua new file mode 100644 index 0000000..401f3c1 --- /dev/null +++ b/mods/pipeworks/legacy.lua @@ -0,0 +1,61 @@ + +if not minetest.get_modpath("auto_tree_tap") and + minetest.get_modpath("technic") then + + minetest.register_abm({ + nodenames = { "auto_tree_tap:off", "auto_tree_tap:on" }, + chance = 1, + interval = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local fdir = node.param2 + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size("pick", 1) + inv:set_size("ghost_pick", 1) + inv:set_size("main", 100) + minetest.set_node(pos, {name = "pipeworks:nodebreaker_off", param2 = fdir}) + minetest.registered_nodes["pipeworks:nodebreaker_off"].on_punch(pos, node) + inv:set_stack("pick", 1, ItemStack("technic:treetap")) + end + }) + local node_breaker_on = nil + local node_breaker_off = nil + minetest.register_node(":auto_tree_tap:off", { + description = "Auto-Tap", + tiles = {"pipeworks_nodebreaker_top_off.png","pipeworks_nodebreaker_bottom_off.png","pipeworks_nodebreaker_side2_off.png","pipeworks_nodebreaker_side1_off.png", + "pipeworks_nodebreaker_back.png","pipeworks_nodebreaker_front_off.png"}, + is_ground_content = true, + paramtype2 = "facedir", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2, mesecon = 2,tubedevice=1, not_in_creative_inventory=1 }, + mesecons= {effector={rules=pipeworks.rules_all,action_on=node_breaker_on, action_off=node_breaker_off}}, + sounds = default.node_sound_stone_defaults(), + tube = {connect_sides={back=1}}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + inv:set_size("pick", 1) + inv:set_stack("pick", 1, ItemStack("default:pick_mese")) + end, + after_place_node = function (pos, placer) + pipeworks.scan_for_tube_objects(pos, placer) + local placer_pos = placer:getpos() + + --correct for the player's height + if placer:is_player() then placer_pos.y = placer_pos.y + 1.5 end + + --correct for 6d facedir + if placer_pos then + local dir = { + x = pos.x - placer_pos.x, + y = pos.y - placer_pos.y, + z = pos.z - placer_pos.z + } + local node = minetest.get_node(pos) + node.param2 = minetest.dir_to_facedir(dir, true) + minetest.set_node(pos, node) + minetest.log("action", "real (6d) facedir: " .. node.param2) + end + end, + after_dig_node = pipeworks.scan_for_tube_objects, + }) +end diff --git a/mods/pipeworks/luaentity.lua b/mods/pipeworks/luaentity.lua new file mode 100644 index 0000000..241da14 --- /dev/null +++ b/mods/pipeworks/luaentity.lua @@ -0,0 +1,334 @@ +local max_entity_id = 1000000000000 -- If you need more, there's a problem with your code + +luaentity = {} + +luaentity.registered_entities = {} + +local filename = minetest.get_worldpath().."/luaentities" +local function read_file() + 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 write_file(tbl) + local f = io.open(filename, "w") + f:write(minetest.serialize(tbl)) + f:close() +end + +local function read_entities() + local t = read_file() + for _, entity in pairs(t) do + setmetatable(entity, luaentity.registered_entities[entity.name]) + end + return t +end + +local function write_entities() + for _, entity in pairs(luaentity.entities) do + setmetatable(entity, nil) + for _, attached in pairs(entity._attached_entities) do + if attached.entity then + attached.entity:remove() + attached.entity = nil + end + end + entity._attached_entities_master = nil + end + write_file(luaentity.entities) +end + +minetest.register_on_shutdown(write_entities) +luaentity.entities_index = 0 + +local function get_blockpos(pos) + return {x = math.floor(pos.x / 16), + y = math.floor(pos.y / 16), + z = math.floor(pos.z / 16)} +end + +local active_blocks = {} -- These only contain active blocks near players (i.e., not forceloaded ones) +local handle_active_blocks_step = 2 +local handle_active_blocks_timer = 0 +minetest.register_globalstep(function(dtime) + handle_active_blocks_timer = handle_active_blocks_timer + dtime + if handle_active_blocks_timer >= handle_active_blocks_step then + handle_active_blocks_timer = handle_active_blocks_timer - handle_active_blocks_step + local active_block_range = tonumber(minetest.setting_get("active_block_range")) or 2 + local new_active_blocks = {} + for _, player in ipairs(minetest.get_connected_players()) do + local blockpos = get_blockpos(player:getpos()) + local minp = vector.subtract(blockpos, active_block_range) + local maxp = vector.add(blockpos, active_block_range) + + for x = minp.x, maxp.x do + for y = minp.y, maxp.y do + for z = minp.z, maxp.z do + local pos = {x = x, y = y, z = z} + new_active_blocks[minetest.hash_node_position(pos)] = pos + end + end + end + end + active_blocks = new_active_blocks + -- todo: callbacks on block load/unload + end +end) + +local function is_active(pos) + return active_blocks[minetest.hash_node_position(get_blockpos(pos))] ~= nil +end + +local entitydef_default = { + _attach = function(self, attached, attach_to) + local attached_def = self._attached_entities[attached] + local attach_to_def = self._attached_entities[attach_to] + attached_def.entity:set_attach( + attach_to_def.entity, "", + vector.subtract(attached_def.offset, attach_to_def.offset), -- todo: Does not work because is object space + vector.new(0, 0, 0) + ) + end, + _set_master = function(self, index) + self._attached_entities_master = index + if not index then + return + end + local def = self._attached_entities[index] + if not def.entity then + return + end + def.entity:setpos(vector.add(self._pos, def.offset)) + def.entity:setvelocity(self._velocity) + def.entity:setacceleration(self._acceleration) + end, + _attach_all = function(self) + local master = self._attached_entities_master + if not master then + return + end + for id, entity in pairs(self._attached_entities) do + if id ~= master and entity.entity then + self:_attach(id, master) + end + end + end, + _detach_all = function(self) + local master = self._attached_entities_master + for id, entity in pairs(self._attached_entities) do + if id ~= master and entity.entity then + entity.entity:set_detach() + end + end + end, + _add_attached = function(self, index) + local entity = self._attached_entities[index] + if entity.entity then + return + end + local entity_pos = vector.add(self._pos, entity.offset) + if not is_active(entity_pos) then + return + end + local ent = minetest.add_entity(entity_pos, entity.name):get_luaentity() + ent:from_data(entity.data) + ent.parent_id = self._id + ent.attached_id = index + entity.entity = ent.object + local master = self._attached_entities_master + if master then + self:_attach(index, master) + else + self:_set_master(index) + end + end, + _remove_attached = function(self, index) + local master = self._attached_entities_master + local entity = self._attached_entities[index] + local ent = entity.entity + entity.entity = nil + if index == master then + self:_detach_all() + local newmaster + for id, attached in pairs(self._attached_entities) do + if id ~= master and attached.entity then + newmaster = id + break + end + end + self:_set_master(newmaster) + self:_attach_all() + elseif master and ent then + ent:set_detach() + end + if ent then + ent:remove() + end + end, + _add_loaded = function(self) + for id, _ in pairs(self._attached_entities) do + self:_add_attached(id) + end + end, + getid = function(self) + return self._id + end, + getpos = function(self) + return vector.new(self._pos) + end, + setpos = function(self, pos) + self._pos = vector.new(pos) + --for _, entity in pairs(self._attached_entities) do + -- if entity.entity then + -- entity.entity:setpos(vector.add(self._pos, entity.offset)) + -- end + --end + local master = self._attached_entities_master + if master then + local master_def = self._attached_entities[master] + master_def.entity:setpos(vector.add(self._pos, master_def.offset)) + end + end, + getvelocity = function(self) + return vector.new(self._velocity) + end, + setvelocity = function(self, velocity) + self._velocity = vector.new(velocity) + local master = self._attached_entities_master + if master then + self._attached_entities[master].entity:setvelocity(self._velocity) + end + end, + getacceleration = function(self) + return vector.new(self._acceleration) + end, + setacceleration = function(self, acceleration) + self._acceleration = vector.new(acceleration) + local master = self._attached_entities_master + if master then + self._attached_entities[master].entity:setacceleration(self._acceleration) + end + end, + remove = function(self) + self:_detach_all() + for _, entity in pairs(self._attached_entities) do + if entity.entity then + entity.entity:remove() + end + end + luaentity.entities[self._id] = nil + end, + add_attached_entity = function(self, name, data, offset) + local index = #self._attached_entities + 1 + self._attached_entities[index] = { + name = name, + data = data, + offset = vector.new(offset), + } + self:_add_attached(index) + return index + end, + remove_attached_entity = function(self, index) + self:_remove_attached(index) + self._attached_entities[index] = nil + end, +} + +function luaentity.register_entity(name, prototype) + -- name = check_modname_prefix(name) + prototype.name = name + setmetatable(prototype, {__index = entitydef_default}) + prototype.__index = prototype -- Make it possible to use it as metatable + luaentity.registered_entities[name] = prototype +end + +-- function luaentity.get_entity_definition(entity) +-- return luaentity.registered_entities[entity.name] +-- end + +function luaentity.add_entity(pos, name) + local index = luaentity.entities_index + while luaentity.entities[index] do + index = index + 1 + if index >= max_entity_id then + index = 0 + end + end + luaentity.entities_index = index + + local entity = { + name = name, + _id = index, + _pos = vector.new(pos), + _velocity = {x = 0, y = 0, z = 0}, + _acceleration = {x = 0, y = 0, z = 0}, + _attached_entities = {}, + } + + local prototype = luaentity.registered_entities[name] + setmetatable(entity, prototype) -- Default to prototype for other methods + luaentity.entities[index] = entity + + if entity.on_activate then + entity:on_activate() + end + return entity +end + +-- todo: check if remove in get_staticdata works +function luaentity.get_staticdata(self) + local parent = luaentity.entities[self.parent_id] + if parent and parent._remove_attached then + parent:_remove_attached(self.attached_id) + end + return "toremove" +end + +function luaentity.on_activate(self, staticdata) + if staticdata == "toremove" then + self.object:remove() + end +end + +function luaentity.get_objects_inside_radius(pos, radius) + local objects = {} + local index = 1 + for id, entity in pairs(luaentity.entities) do + if vector.distance(pos, entity:getpos()) <= radius then + objects[index] = entity + index = index + 1 + end + end +end + +minetest.register_globalstep(function(dtime) + if not luaentity.entities then + luaentity.entities = read_entities() + end + for id, entity in pairs(luaentity.entities) do + local master = entity._attached_entities_master + if master then + local master_def = entity._attached_entities[master] + local master_entity = master_def.entity + entity._pos = vector.subtract(master_entity:getpos(), master_def.offset) + entity._velocity = master_entity:getvelocity() + entity._acceleration = master_entity:getacceleration() + else + entity._pos = vector.add(vector.add( + entity._pos, + vector.multiply(entity._velocity, dtime)), + vector.multiply(entity._acceleration, 0.5 * dtime * dtime)) + entity._velocity = vector.add( + entity._velocity, + vector.multiply(entity._acceleration, dtime)) + end + entity:_add_loaded() + if entity.on_step then + entity:on_step(dtime) + end + end +end) diff --git a/mods/pipeworks/models.lua b/mods/pipeworks/models.lua new file mode 100644 index 0000000..3be773c --- /dev/null +++ b/mods/pipeworks/models.lua @@ -0,0 +1,49 @@ +----------------------------------- +-- The various pipe select boxes + +pipeworks.pipe_selectboxes = { + { -32/64, -8/64, -8/64, 8/64, 8/64, 8/64 }, + { -8/64 , -8/64, -8/64, 32/64, 8/64, 8/64 }, + { -8/64 , -32/64, -8/64, 8/64, 8/64, 8/64 }, + { -8/64 , -8/64, -8/64, 8/64, 32/64, 8/64 }, + { -8/64 , -8/64, -32/64, 8/64, 8/64, 8/64 }, + { -8/64 , -8/64, -8/64, 8/64, 8/64, 32/64 } +} + +-- Tube models + +pipeworks.tube_leftstub = { + { -32/64, -9/64, -9/64, 9/64, 9/64, 9/64 }, -- tube segment against -X face +} + +pipeworks.tube_rightstub = { + { -9/64, -9/64, -9/64, 32/64, 9/64, 9/64 }, -- tube segment against +X face +} + +pipeworks.tube_bottomstub = { + { -9/64, -32/64, -9/64, 9/64, 9/64, 9/64 }, -- tube segment against -Y face +} + +pipeworks.tube_topstub = { + { -9/64, -9/64, -9/64, 9/64, 32/64, 9/64 }, -- tube segment against +Y face +} + +pipeworks.tube_frontstub = { + { -9/64, -9/64, -32/64, 9/64, 9/64, 9/64 }, -- tube segment against -Z face +} + +pipeworks.tube_backstub = { + { -9/64, -9/64, -9/64, 9/64, 9/64, 32/64 }, -- tube segment against -Z face +} + +pipeworks.tube_boxes = {pipeworks.tube_leftstub, pipeworks.tube_rightstub, pipeworks.tube_bottomstub, pipeworks.tube_topstub, pipeworks.tube_frontstub, pipeworks.tube_backstub} + +pipeworks.tube_selectboxes = { + { -32/64, -10/64, -10/64, 10/64, 10/64, 10/64 }, + { -10/64 , -10/64, -10/64, 32/64, 10/64, 10/64 }, + { -10/64 , -32/64, -10/64, 10/64, 10/64, 10/64 }, + { -10/64 , -10/64, -10/64, 10/64, 32/64, 10/64 }, + { -10/64 , -10/64, -32/64, 10/64, 10/64, 10/64 }, + { -10/64 , -10/64, -10/64, 10/64, 10/64, 32/64 } +} + diff --git a/mods/pipeworks/models/pipeworks_entry_panel.obj b/mods/pipeworks/models/pipeworks_entry_panel.obj new file mode 100644 index 0000000..27577d7 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_entry_panel.obj @@ -0,0 +1,390 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-entry-panel.blend' +# www.blender.org +o Cube.001 +v 0.030483 -0.153248 -0.468750 +v 0.030483 -0.153248 -0.500000 +v -0.030483 -0.153248 -0.468750 +v -0.030483 -0.153248 -0.500000 +v -0.086808 -0.129917 -0.468750 +v -0.086808 -0.129917 -0.500000 +v -0.129917 -0.086808 -0.468750 +v -0.129917 -0.086808 -0.500000 +v -0.153248 -0.030483 -0.468750 +v -0.153248 -0.030483 -0.500000 +v -0.153248 0.030483 -0.468750 +v -0.153248 0.030483 -0.500000 +v -0.129917 0.086808 -0.468750 +v -0.129917 0.086808 -0.500000 +v -0.086808 0.129917 -0.468750 +v -0.086808 0.129917 -0.500000 +v -0.030483 0.153248 -0.468750 +v -0.030483 0.153247 -0.500000 +v 0.030483 0.153248 -0.468750 +v 0.030483 0.153248 -0.500000 +v 0.086808 0.129917 -0.468750 +v 0.086808 0.129917 -0.500000 +v 0.129917 0.086808 -0.468750 +v 0.129917 0.086808 -0.500000 +v 0.153248 0.030483 -0.468750 +v 0.153248 0.030483 -0.500000 +v 0.153248 -0.030483 -0.468750 +v 0.153248 -0.030483 -0.500000 +v 0.129917 -0.086808 -0.468750 +v 0.129917 -0.086808 -0.500000 +v 0.086808 -0.129917 -0.468750 +v 0.086808 -0.129917 -0.500000 +v 0.024386 -0.122598 -0.468750 +v -0.024386 -0.122598 -0.468750 +v -0.069446 -0.103934 -0.468750 +v -0.103934 -0.069446 -0.468750 +v -0.122598 -0.024386 -0.468750 +v -0.122598 0.024386 -0.468750 +v -0.103934 0.069446 -0.468750 +v -0.069446 0.103934 -0.468750 +v -0.024386 0.122598 -0.468750 +v 0.024386 0.122598 -0.468750 +v 0.069446 0.103934 -0.468750 +v 0.103934 0.069446 -0.468750 +v 0.122598 0.024386 -0.468750 +v 0.122598 -0.024387 -0.468750 +v 0.103934 -0.069447 -0.468750 +v 0.069446 -0.103934 -0.468750 +v 0.000000 -0.000000 -0.468750 +v 0.000000 -0.000000 -0.500000 +v -0.103934 -0.069446 0.468750 +v -0.069447 -0.103933 0.468750 +v -0.024387 -0.122598 0.468750 +v 0.024386 -0.122598 0.468750 +v 0.086808 -0.129917 0.500000 +v 0.086808 -0.129917 0.468750 +v 0.129917 -0.086808 0.500000 +v 0.129917 -0.086808 0.468750 +v 0.153247 -0.030483 0.500000 +v 0.153247 -0.030483 0.468750 +v 0.153247 0.030483 0.500000 +v 0.153247 0.030483 0.468750 +v 0.129917 0.086808 0.500000 +v 0.129917 0.086808 0.468750 +v 0.086808 0.129917 0.500000 +v 0.086808 0.129917 0.468750 +v 0.030483 0.153248 0.500000 +v 0.030483 0.153248 0.468750 +v -0.030483 0.153248 0.500000 +v -0.030483 0.153248 0.468750 +v -0.086808 0.129917 0.500000 +v -0.086808 0.129917 0.468750 +v -0.129917 0.086808 0.500000 +v -0.129917 0.086808 0.468750 +v -0.153248 0.030483 0.500000 +v -0.153248 0.030483 0.468750 +v -0.153248 -0.030483 0.500000 +v -0.153248 -0.030483 0.468750 +v -0.129917 -0.086808 0.500000 +v -0.129917 -0.086808 0.468750 +v -0.086808 -0.129917 0.500000 +v -0.086808 -0.129917 0.468750 +v -0.030483 -0.153247 0.500000 +v -0.030483 -0.153247 0.468750 +v 0.030483 -0.153247 0.500000 +v 0.030483 -0.153247 0.468750 +v -0.122598 -0.024386 0.468750 +v -0.122598 0.024387 0.468750 +v -0.103934 0.069447 0.468750 +v -0.069447 0.103934 0.468750 +v -0.024387 0.122598 0.468750 +v 0.024386 0.122598 0.468750 +v 0.069446 0.103934 0.468750 +v 0.103933 0.069447 0.468750 +v 0.122598 0.024387 0.468750 +v 0.122598 -0.024386 0.468750 +v 0.103933 -0.069446 0.468750 +v 0.069446 -0.103933 0.468750 +v -0.000000 0.000000 0.468750 +v -0.000000 0.000000 0.500000 +v 0.500000 -0.500000 0.062500 +v -0.500000 -0.500000 0.062500 +v -0.500000 -0.500000 -0.062500 +v 0.500000 -0.500000 -0.062500 +v 0.500000 0.500000 0.062500 +v -0.500000 0.500000 0.062500 +v -0.500000 0.500000 -0.062500 +v 0.500000 0.500000 -0.062500 +vt 0.871212 0.265152 +vt 0.840909 0.265152 +vt 0.840909 0.295455 +vt 0.871212 0.295455 +vt 0.810606 0.265152 +vt 0.810606 0.295455 +vt 0.780303 0.265152 +vt 0.780303 0.295455 +vt 0.750000 0.265152 +vt 0.750000 0.295455 +vt 0.719697 0.265152 +vt 0.719697 0.295455 +vt 0.689394 0.265152 +vt 0.689394 0.295455 +vt 0.659091 0.265152 +vt 0.659091 0.295455 +vt 0.628788 0.265152 +vt 0.628788 0.295455 +vt 0.598485 0.265152 +vt 0.598485 0.295455 +vt 0.568182 0.265152 +vt 0.568182 0.295455 +vt 0.537879 0.265152 +vt 0.537879 0.295455 +vt 0.507576 0.265152 +vt 0.507576 0.295455 +vt 0.992424 0.265152 +vt 0.962121 0.265152 +vt 0.962121 0.295455 +vt 0.992424 0.295455 +vt 0.931818 0.265152 +vt 0.931818 0.295455 +vt 0.901515 0.265152 +vt 0.901515 0.295455 +vt 0.613449 0.318703 +vt 0.597693 0.397916 +vt 0.581936 0.318703 +vt 0.765436 0.318703 +vt 0.781192 0.397916 +vt 0.796949 0.318703 +vt 0.826063 0.330762 +vt 0.848346 0.353045 +vt 0.860405 0.382159 +vt 0.860405 0.413672 +vt 0.848346 0.442786 +vt 0.826063 0.465069 +vt 0.796949 0.477128 +vt 0.765436 0.477128 +vt 0.736322 0.465069 +vt 0.714039 0.442786 +vt 0.701980 0.413672 +vt 0.701980 0.382159 +vt 0.714039 0.353045 +vt 0.736322 0.330762 +vt 0.552823 0.330762 +vt 0.530540 0.353045 +vt 0.518480 0.382159 +vt 0.518480 0.413672 +vt 0.530540 0.442786 +vt 0.552822 0.465069 +vt 0.581936 0.477128 +vt 0.613449 0.477128 +vt 0.642563 0.465069 +vt 0.664846 0.442786 +vt 0.676906 0.413672 +vt 0.676906 0.382159 +vt 0.664846 0.353045 +vt 0.642563 0.330762 +vt 0.598485 0.250000 +vt 0.598485 0.007576 +vt 0.628788 0.007576 +vt 0.628788 0.250000 +vt 0.552823 0.330759 +vt 0.581937 0.318699 +vt 0.597694 0.397912 +vt 0.530540 0.353042 +vt 0.518481 0.382156 +vt 0.518481 0.413668 +vt 0.530540 0.442782 +vt 0.552823 0.465065 +vt 0.581937 0.477125 +vt 0.613450 0.477125 +vt 0.642564 0.465065 +vt 0.664847 0.442782 +vt 0.676906 0.413668 +vt 0.676906 0.382156 +vt 0.664847 0.353042 +vt 0.642564 0.330759 +vt 0.613450 0.318699 +vt 0.736320 0.330759 +vt 0.765434 0.318699 +vt 0.781190 0.397912 +vt 0.714037 0.353041 +vt 0.701978 0.382156 +vt 0.701978 0.413668 +vt 0.714037 0.442782 +vt 0.736320 0.465065 +vt 0.765434 0.477125 +vt 0.796947 0.477125 +vt 0.826061 0.465065 +vt 0.848344 0.442782 +vt 0.860403 0.413668 +vt 0.860403 0.382156 +vt 0.848344 0.353041 +vt 0.826061 0.330759 +vt 0.796947 0.318699 +vt 0.931818 0.250000 +vt 0.931818 0.007576 +vt 0.962121 0.007576 +vt 0.962121 0.250000 +vt 0.871212 0.250000 +vt 0.871212 0.007576 +vt 0.901515 0.007576 +vt 0.901515 0.250000 +vt 0.780303 0.250000 +vt 0.780303 0.007576 +vt 0.810606 0.007576 +vt 0.810606 0.250000 +vt 0.840909 0.250000 +vt 0.840909 0.007576 +vt 0.750000 0.250000 +vt 0.750000 0.007576 +vt 0.719697 0.250000 +vt 0.719697 0.007576 +vt 0.689394 0.250000 +vt 0.689394 0.007576 +vt 0.659091 0.250000 +vt 0.659091 0.007576 +vt 0.568182 0.250000 +vt 0.568182 0.007576 +vt 0.537879 0.250000 +vt 0.537879 0.007576 +vt 0.507576 0.250000 +vt 0.507576 0.007576 +vt 0.992424 0.007576 +vt 0.992424 0.250000 +vt 0.507576 0.507576 +vt 0.992424 0.507576 +vt 0.992424 0.992424 +vt 0.507576 0.992424 +vt 0.068182 0.492424 +vt 0.007576 0.492424 +vt 0.007576 0.007576 +vt 0.068182 0.007576 +vt 0.492424 0.992424 +vt 0.007576 0.992424 +vt 0.007576 0.507576 +vt 0.492424 0.507576 +vt 0.295455 0.492424 +vt 0.234848 0.492424 +vt 0.234848 0.007576 +vt 0.295455 0.007576 +vt 0.219697 0.007576 +vt 0.219697 0.492424 +vt 0.159091 0.492424 +vt 0.159091 0.007576 +vt 0.083333 0.492424 +vt 0.083333 0.007576 +vt 0.143939 0.007576 +vt 0.143939 0.492424 +s off +f 1/1 3/2 4/3 2/4 +f 3/2 5/5 6/6 4/3 +f 5/5 7/7 8/8 6/6 +f 7/7 9/9 10/10 8/8 +f 9/9 11/11 12/12 10/10 +f 11/11 13/13 14/14 12/12 +f 13/13 15/15 16/16 14/14 +f 15/15 17/17 18/18 16/16 +f 17/17 19/19 20/20 18/18 +f 19/19 21/21 22/22 20/20 +f 21/21 23/23 24/24 22/22 +f 23/23 25/25 26/26 24/24 +f 25/27 27/28 28/29 26/30 +f 27/28 29/31 30/32 28/29 +f 31/33 1/1 2/4 32/34 +f 29/31 31/33 32/34 30/32 +f 4/35 50/36 2/37 +f 1/38 49/39 3/40 +f 3/40 49/39 5/41 +f 5/41 49/39 7/42 +f 7/42 49/39 9/43 +f 9/43 49/39 11/44 +f 11/44 49/39 13/45 +f 13/45 49/39 15/46 +f 15/46 49/39 17/47 +f 17/47 49/39 19/48 +f 19/48 49/39 21/49 +f 21/49 49/39 23/50 +f 23/50 49/39 25/51 +f 25/51 49/39 27/52 +f 27/52 49/39 29/53 +f 29/53 49/39 31/54 +f 31/54 49/39 1/38 +f 2/37 50/36 32/55 +f 32/55 50/36 30/56 +f 30/56 50/36 28/57 +f 28/57 50/36 26/58 +f 26/58 50/36 24/59 +f 24/59 50/36 22/60 +f 22/60 50/36 20/61 +f 20/61 50/36 18/62 +f 18/62 50/36 16/63 +f 16/63 50/36 14/64 +f 14/64 50/36 12/65 +f 12/65 50/36 10/66 +f 10/66 50/36 8/67 +f 8/67 50/36 6/68 +f 6/68 50/36 4/35 +f 41/69 91/70 92/71 42/72 +f 81/73 83/74 100/75 +f 79/76 81/73 100/75 +f 77/77 79/76 100/75 +f 75/78 77/77 100/75 +f 73/79 75/78 100/75 +f 71/80 73/79 100/75 +f 69/81 71/80 100/75 +f 67/82 69/81 100/75 +f 65/83 67/82 100/75 +f 63/84 65/83 100/75 +f 61/85 63/84 100/75 +f 59/86 61/85 100/75 +f 57/87 59/86 100/75 +f 55/88 57/87 100/75 +f 85/89 55/88 100/75 +f 56/90 86/91 99/92 +f 58/93 56/90 99/92 +f 60/94 58/93 99/92 +f 62/95 60/94 99/92 +f 64/96 62/95 99/92 +f 66/97 64/96 99/92 +f 68/98 66/97 99/92 +f 70/99 68/98 99/92 +f 72/100 70/99 99/92 +f 74/101 72/100 99/92 +f 76/102 74/101 99/92 +f 78/103 76/102 99/92 +f 80/104 78/103 99/92 +f 82/105 80/104 99/92 +f 84/106 82/105 99/92 +f 86/91 84/106 99/92 +f 83/74 85/89 100/75 +f 58/22 57/21 55/19 56/20 +f 56/20 55/19 85/17 86/18 +f 60/24 59/23 57/21 58/22 +f 62/26 61/25 59/23 60/24 +f 64/29 63/28 61/27 62/30 +f 66/32 65/31 63/28 64/29 +f 68/34 67/33 65/31 66/32 +f 70/4 69/1 67/33 68/34 +f 72/3 71/2 69/1 70/4 +f 74/6 73/5 71/2 72/3 +f 76/8 75/7 73/5 74/6 +f 78/10 77/9 75/7 76/8 +f 80/12 79/11 77/9 78/10 +f 82/14 81/13 79/11 80/12 +f 84/16 83/15 81/13 82/14 +f 86/18 85/17 83/15 84/16 +f 36/107 51/108 87/109 37/110 +f 34/111 53/112 52/113 35/114 +f 47/115 97/116 98/117 48/118 +f 33/119 54/120 53/112 34/111 +f 35/114 52/113 51/108 36/107 +f 48/118 98/117 54/120 33/119 +f 46/121 96/122 97/116 47/115 +f 45/123 95/124 96/122 46/121 +f 44/125 94/126 95/124 45/123 +f 43/127 93/128 94/126 44/125 +f 42/72 92/71 93/128 43/127 +f 40/129 90/130 91/70 41/69 +f 39/131 89/132 90/130 40/129 +f 38/133 88/134 89/132 39/131 +f 37/110 87/109 88/135 38/136 +f 105/137 106/138 102/139 101/140 +f 106/141 107/142 103/143 102/144 +f 107/145 108/146 104/147 103/148 +f 108/149 105/150 101/151 104/152 +f 101/153 102/154 103/155 104/156 +f 108/157 107/158 106/159 105/160 diff --git a/mods/pipeworks/models/pipeworks_flow_sensor.obj b/mods/pipeworks/models/pipeworks_flow_sensor.obj new file mode 100644 index 0000000..f0ba87e --- /dev/null +++ b/mods/pipeworks/models/pipeworks_flow_sensor.obj @@ -0,0 +1,390 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-flow-sensor.blend' +# www.blender.org +o Cube.001 +v -0.468750 -0.153248 -0.030483 +v -0.500000 -0.153248 -0.030483 +v -0.468750 -0.153248 0.030483 +v -0.500000 -0.153248 0.030483 +v -0.468750 -0.129917 0.086808 +v -0.500000 -0.129917 0.086808 +v -0.468750 -0.086808 0.129917 +v -0.500000 -0.086808 0.129917 +v -0.468750 -0.030483 0.153248 +v -0.500000 -0.030483 0.153248 +v -0.468750 0.030483 0.153248 +v -0.500000 0.030483 0.153248 +v -0.468750 0.086808 0.129917 +v -0.500000 0.086808 0.129917 +v -0.468750 0.129917 0.086808 +v -0.500000 0.129917 0.086808 +v -0.468750 0.153248 0.030483 +v -0.500000 0.153247 0.030483 +v -0.468750 0.153248 -0.030483 +v -0.500000 0.153248 -0.030483 +v -0.468750 0.129917 -0.086808 +v -0.500000 0.129917 -0.086808 +v -0.468750 0.086808 -0.129917 +v -0.500000 0.086808 -0.129917 +v -0.468750 0.030483 -0.153248 +v -0.500000 0.030483 -0.153248 +v -0.468750 -0.030483 -0.153248 +v -0.500000 -0.030483 -0.153248 +v -0.468750 -0.086808 -0.129917 +v -0.500000 -0.086808 -0.129917 +v -0.468750 -0.129917 -0.086808 +v -0.500000 -0.129917 -0.086808 +v -0.468750 -0.122598 -0.024386 +v -0.468750 -0.122598 0.024386 +v -0.468750 -0.103934 0.069446 +v -0.468750 -0.069446 0.103934 +v -0.468750 -0.024386 0.122598 +v -0.468750 0.024386 0.122598 +v -0.468750 0.069446 0.103934 +v -0.468750 0.103934 0.069446 +v -0.468750 0.122598 0.024386 +v -0.468750 0.122598 -0.024386 +v -0.468750 0.103934 -0.069446 +v -0.468750 0.069446 -0.103934 +v -0.468750 0.024386 -0.122598 +v -0.468750 -0.024387 -0.122598 +v -0.468750 -0.069447 -0.103934 +v -0.468750 -0.103934 -0.069446 +v -0.468750 -0.000000 -0.000000 +v -0.500000 -0.000000 -0.000000 +v 0.468750 -0.069446 0.103934 +v 0.468750 -0.103933 0.069447 +v 0.468750 -0.122598 0.024387 +v 0.468750 -0.122598 -0.024386 +v 0.500000 -0.129917 -0.086807 +v 0.468750 -0.129917 -0.086807 +v 0.500000 -0.086808 -0.129917 +v 0.468750 -0.086808 -0.129917 +v 0.500000 -0.030483 -0.153247 +v 0.468750 -0.030483 -0.153247 +v 0.500000 0.030483 -0.153247 +v 0.468750 0.030483 -0.153247 +v 0.500000 0.086808 -0.129917 +v 0.468750 0.086808 -0.129917 +v 0.500000 0.129917 -0.086808 +v 0.468750 0.129917 -0.086808 +v 0.500000 0.153248 -0.030483 +v 0.468750 0.153248 -0.030483 +v 0.500000 0.153248 0.030483 +v 0.468750 0.153248 0.030483 +v 0.500000 0.129917 0.086808 +v 0.468750 0.129917 0.086808 +v 0.500000 0.086808 0.129917 +v 0.468750 0.086808 0.129917 +v 0.500000 0.030483 0.153248 +v 0.468750 0.030483 0.153248 +v 0.500000 -0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.500000 -0.086808 0.129917 +v 0.468750 -0.086808 0.129917 +v 0.500000 -0.129917 0.086808 +v 0.468750 -0.129917 0.086808 +v 0.500000 -0.153247 0.030483 +v 0.468750 -0.153247 0.030483 +v 0.500000 -0.153247 -0.030483 +v 0.468750 -0.153247 -0.030483 +v 0.468750 -0.024386 0.122598 +v 0.468750 0.024387 0.122598 +v 0.468750 0.069447 0.103934 +v 0.468750 0.103934 0.069447 +v 0.468750 0.122598 0.024387 +v 0.468750 0.122598 -0.024386 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.069447 -0.103933 +v 0.468750 0.024387 -0.122598 +v 0.468750 -0.024386 -0.122598 +v 0.468750 -0.069446 -0.103933 +v 0.468750 -0.103933 -0.069446 +v 0.468750 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +v 0.250000 -0.187500 0.187500 +v -0.250000 -0.187500 0.187500 +v -0.250000 -0.187500 -0.187500 +v 0.250000 -0.187500 -0.187500 +v 0.250000 0.187500 0.187500 +v -0.250000 0.187500 0.187500 +v -0.250000 0.187500 -0.187500 +v 0.250000 0.187500 -0.187500 +vt 0.813725 0.460784 +vt 0.774510 0.460784 +vt 0.774510 0.500000 +vt 0.813725 0.500000 +vt 0.735294 0.460784 +vt 0.735294 0.500000 +vt 0.696078 0.460784 +vt 0.696078 0.500000 +vt 0.656863 0.460784 +vt 0.656863 0.500000 +vt 0.617647 0.460784 +vt 0.617647 0.500000 +vt 0.578431 0.460784 +vt 0.578431 0.500000 +vt 0.539216 0.460784 +vt 0.539216 0.500000 +vt 0.500000 0.460784 +vt 0.500000 0.500000 +vt 0.460784 0.460784 +vt 0.460784 0.500000 +vt 0.421569 0.460784 +vt 0.421569 0.500000 +vt 0.382353 0.460784 +vt 0.382353 0.500000 +vt 0.343137 0.460784 +vt 0.343137 0.500000 +vt 0.970588 0.460784 +vt 0.931373 0.460784 +vt 0.931373 0.500000 +vt 0.970588 0.500000 +vt 0.892157 0.460784 +vt 0.892157 0.500000 +vt 0.852941 0.460784 +vt 0.852941 0.500000 +vt 0.480968 0.531171 +vt 0.460590 0.633014 +vt 0.440211 0.531171 +vt 0.677539 0.531171 +vt 0.697917 0.633014 +vt 0.718296 0.531171 +vt 0.755950 0.546676 +vt 0.784770 0.575325 +vt 0.800366 0.612756 +vt 0.800366 0.653272 +vt 0.784770 0.690703 +vt 0.755950 0.719352 +vt 0.718296 0.734857 +vt 0.677539 0.734857 +vt 0.639884 0.719352 +vt 0.611065 0.690703 +vt 0.595468 0.653272 +vt 0.595468 0.612756 +vt 0.611065 0.575325 +vt 0.639885 0.546676 +vt 0.402557 0.546676 +vt 0.373737 0.575325 +vt 0.358140 0.612756 +vt 0.358140 0.653272 +vt 0.373737 0.690703 +vt 0.402557 0.719352 +vt 0.440211 0.734857 +vt 0.480968 0.734857 +vt 0.518622 0.719352 +vt 0.547442 0.690703 +vt 0.563039 0.653272 +vt 0.563039 0.612756 +vt 0.547442 0.575325 +vt 0.518622 0.546676 +vt 0.460784 0.441176 +vt 0.460784 0.127451 +vt 0.500000 0.127451 +vt 0.500000 0.441176 +vt 0.402558 0.546671 +vt 0.440212 0.531167 +vt 0.460591 0.633009 +vt 0.373738 0.575320 +vt 0.358141 0.612752 +vt 0.358141 0.653267 +vt 0.373738 0.690699 +vt 0.402558 0.719348 +vt 0.440212 0.734852 +vt 0.480969 0.734852 +vt 0.518623 0.719348 +vt 0.547443 0.690699 +vt 0.563040 0.653267 +vt 0.563040 0.612752 +vt 0.547443 0.575320 +vt 0.518623 0.546671 +vt 0.480969 0.531167 +vt 0.639882 0.546671 +vt 0.677537 0.531167 +vt 0.697915 0.633009 +vt 0.611063 0.575320 +vt 0.595466 0.612752 +vt 0.595466 0.653267 +vt 0.611063 0.690699 +vt 0.639882 0.719347 +vt 0.677537 0.734852 +vt 0.718293 0.734852 +vt 0.755947 0.719347 +vt 0.784767 0.690699 +vt 0.800364 0.653267 +vt 0.800364 0.612752 +vt 0.784767 0.575320 +vt 0.755948 0.546671 +vt 0.718293 0.531167 +vt 0.892157 0.441176 +vt 0.892157 0.127451 +vt 0.931373 0.127451 +vt 0.931373 0.441176 +vt 0.813725 0.441176 +vt 0.813725 0.127451 +vt 0.852941 0.127451 +vt 0.852941 0.441176 +vt 0.696078 0.441176 +vt 0.696078 0.127451 +vt 0.735294 0.127451 +vt 0.735294 0.441176 +vt 0.774510 0.441176 +vt 0.774510 0.127451 +vt 0.656863 0.441176 +vt 0.656863 0.127451 +vt 0.617647 0.441176 +vt 0.617647 0.127451 +vt 0.578431 0.441176 +vt 0.578431 0.127451 +vt 0.539216 0.441176 +vt 0.539216 0.127451 +vt 0.421569 0.441176 +vt 0.421569 0.127451 +vt 0.382353 0.441176 +vt 0.382353 0.127451 +vt 0.343137 0.441176 +vt 0.343137 0.127451 +vt 0.970588 0.127451 +vt 0.970588 0.441176 +vt 0.009804 0.500000 +vt 0.323529 0.500000 +vt 0.323529 0.735294 +vt 0.009804 0.735294 +vt 0.264706 0.990196 +vt 0.264706 0.754902 +vt 0.500000 0.754902 +vt 0.500000 0.990196 +vt 0.519608 0.754902 +vt 0.833333 0.754902 +vt 0.833333 0.990196 +vt 0.519608 0.990196 +vt 0.245098 0.754902 +vt 0.245098 0.990196 +vt 0.009804 0.990196 +vt 0.009804 0.754902 +vt 0.323529 0.245098 +vt 0.009804 0.245098 +vt 0.009804 0.009804 +vt 0.323529 0.009804 +vt 0.009804 0.254902 +vt 0.323529 0.254902 +vt 0.323529 0.490196 +vt 0.009804 0.490196 +s off +f 1/1 3/2 4/3 2/4 +f 3/2 5/5 6/6 4/3 +f 5/5 7/7 8/8 6/6 +f 7/7 9/9 10/10 8/8 +f 9/9 11/11 12/12 10/10 +f 11/11 13/13 14/14 12/12 +f 13/13 15/15 16/16 14/14 +f 15/15 17/17 18/18 16/16 +f 17/17 19/19 20/20 18/18 +f 19/19 21/21 22/22 20/20 +f 21/21 23/23 24/24 22/22 +f 23/23 25/25 26/26 24/24 +f 25/27 27/28 28/29 26/30 +f 27/28 29/31 30/32 28/29 +f 31/33 1/1 2/4 32/34 +f 29/31 31/33 32/34 30/32 +f 4/35 50/36 2/37 +f 1/38 49/39 3/40 +f 3/40 49/39 5/41 +f 5/41 49/39 7/42 +f 7/42 49/39 9/43 +f 9/43 49/39 11/44 +f 11/44 49/39 13/45 +f 13/45 49/39 15/46 +f 15/46 49/39 17/47 +f 17/47 49/39 19/48 +f 19/48 49/39 21/49 +f 21/49 49/39 23/50 +f 23/50 49/39 25/51 +f 25/51 49/39 27/52 +f 27/52 49/39 29/53 +f 29/53 49/39 31/54 +f 31/54 49/39 1/38 +f 2/37 50/36 32/55 +f 32/55 50/36 30/56 +f 30/56 50/36 28/57 +f 28/57 50/36 26/58 +f 26/58 50/36 24/59 +f 24/59 50/36 22/60 +f 22/60 50/36 20/61 +f 20/61 50/36 18/62 +f 18/62 50/36 16/63 +f 16/63 50/36 14/64 +f 14/64 50/36 12/65 +f 12/65 50/36 10/66 +f 10/66 50/36 8/67 +f 8/67 50/36 6/68 +f 6/68 50/36 4/35 +f 41/69 91/70 92/71 42/72 +f 81/73 83/74 100/75 +f 79/76 81/73 100/75 +f 77/77 79/76 100/75 +f 75/78 77/77 100/75 +f 73/79 75/78 100/75 +f 71/80 73/79 100/75 +f 69/81 71/80 100/75 +f 67/82 69/81 100/75 +f 65/83 67/82 100/75 +f 63/84 65/83 100/75 +f 61/85 63/84 100/75 +f 59/86 61/85 100/75 +f 57/87 59/86 100/75 +f 55/88 57/87 100/75 +f 85/89 55/88 100/75 +f 56/90 86/91 99/92 +f 58/93 56/90 99/92 +f 60/94 58/93 99/92 +f 62/95 60/94 99/92 +f 64/96 62/95 99/92 +f 66/97 64/96 99/92 +f 68/98 66/97 99/92 +f 70/99 68/98 99/92 +f 72/100 70/99 99/92 +f 74/101 72/100 99/92 +f 76/102 74/101 99/92 +f 78/103 76/102 99/92 +f 80/104 78/103 99/92 +f 82/105 80/104 99/92 +f 84/106 82/105 99/92 +f 86/91 84/106 99/92 +f 83/74 85/89 100/75 +f 58/22 57/21 55/19 56/20 +f 56/20 55/19 85/17 86/18 +f 60/24 59/23 57/21 58/22 +f 62/26 61/25 59/23 60/24 +f 64/29 63/28 61/27 62/30 +f 66/32 65/31 63/28 64/29 +f 68/34 67/33 65/31 66/32 +f 70/4 69/1 67/33 68/34 +f 72/3 71/2 69/1 70/4 +f 74/6 73/5 71/2 72/3 +f 76/8 75/7 73/5 74/6 +f 78/10 77/9 75/7 76/8 +f 80/12 79/11 77/9 78/10 +f 82/14 81/13 79/11 80/12 +f 84/16 83/15 81/13 82/14 +f 86/18 85/17 83/15 84/16 +f 36/107 51/108 87/109 37/110 +f 34/111 53/112 52/113 35/114 +f 47/115 97/116 98/117 48/118 +f 33/119 54/120 53/112 34/111 +f 35/114 52/113 51/108 36/107 +f 48/118 98/117 54/120 33/119 +f 46/121 96/122 97/116 47/115 +f 45/123 95/124 96/122 46/121 +f 44/125 94/126 95/124 45/123 +f 43/127 93/128 94/126 44/125 +f 42/72 92/71 93/128 43/127 +f 40/129 90/130 91/70 41/69 +f 39/131 89/132 90/130 40/129 +f 38/133 88/134 89/132 39/131 +f 37/110 87/109 88/135 38/136 +f 105/137 106/138 102/139 101/140 +f 106/141 107/142 103/143 102/144 +f 107/145 108/146 104/147 103/148 +f 108/149 105/150 101/151 104/152 +f 101/153 102/154 103/155 104/156 +f 108/157 107/158 106/159 105/160 diff --git a/mods/pipeworks/models/pipeworks_fountainhead.obj b/mods/pipeworks/models/pipeworks_fountainhead.obj new file mode 100644 index 0000000..7685dbf --- /dev/null +++ b/mods/pipeworks/models/pipeworks_fountainhead.obj @@ -0,0 +1,352 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-fountainhead.blend' +# www.blender.org +o Cube.001 +v 0.153248 -0.468750 -0.030483 +v 0.153248 -0.500000 -0.030483 +v 0.153248 -0.468750 0.030483 +v 0.153248 -0.500000 0.030483 +v 0.129917 -0.468750 0.086808 +v 0.129917 -0.500000 0.086808 +v 0.086808 -0.468750 0.129917 +v 0.086808 -0.500000 0.129917 +v 0.030483 -0.468750 0.153248 +v 0.030483 -0.500000 0.153248 +v -0.030483 -0.468750 0.153248 +v -0.030483 -0.500000 0.153248 +v -0.086808 -0.468750 0.129917 +v -0.086808 -0.500000 0.129917 +v -0.129917 -0.468750 0.086808 +v -0.129917 -0.500000 0.086808 +v -0.153247 -0.468750 0.030483 +v -0.153247 -0.500000 0.030483 +v -0.153247 -0.468750 -0.030483 +v -0.153247 -0.500000 -0.030483 +v -0.129917 -0.468750 -0.086808 +v -0.129917 -0.500000 -0.086808 +v -0.086808 -0.468750 -0.129917 +v -0.086807 -0.500000 -0.129917 +v -0.030482 -0.468750 -0.153248 +v -0.030482 -0.500000 -0.153248 +v 0.030483 -0.468750 -0.153248 +v 0.030483 -0.500000 -0.153248 +v 0.086808 -0.468750 -0.129917 +v 0.086808 -0.500000 -0.129917 +v 0.129918 -0.468750 -0.086808 +v 0.129918 -0.500000 -0.086808 +v 0.122598 -0.468750 -0.024386 +v 0.122598 -0.468750 0.024386 +v 0.103934 -0.468750 0.069446 +v 0.069447 -0.468750 0.103934 +v 0.024387 -0.468750 0.122598 +v -0.024386 -0.468750 0.122598 +v -0.069446 -0.468750 0.103934 +v -0.103933 -0.468750 0.069446 +v -0.122598 -0.468750 0.024386 +v -0.122598 -0.468750 -0.024386 +v -0.103933 -0.468750 -0.069446 +v -0.069446 -0.468750 -0.103934 +v -0.024386 -0.468750 -0.122598 +v 0.024387 -0.468750 -0.122598 +v 0.069447 -0.468750 -0.103934 +v 0.103934 -0.468750 -0.069446 +v 0.000000 -0.468750 0.000000 +v 0.000000 -0.500000 -0.000000 +v 0.069446 0.312500 0.103934 +v 0.103933 0.312500 0.069447 +v 0.122598 0.312500 0.024387 +v 0.122598 0.312500 -0.024386 +v 0.129917 0.500000 -0.086808 +v 0.129917 0.312500 -0.086808 +v 0.086808 0.500000 -0.129917 +v 0.086808 0.312500 -0.129917 +v 0.030483 0.500000 -0.153247 +v 0.030483 0.312500 -0.153248 +v -0.030483 0.500000 -0.153247 +v -0.030483 0.312500 -0.153248 +v -0.086808 0.500000 -0.129917 +v -0.086808 0.312500 -0.129917 +v -0.129918 0.500000 -0.086808 +v -0.129918 0.312500 -0.086808 +v -0.153248 0.500000 -0.030483 +v -0.153248 0.312500 -0.030483 +v -0.153248 0.500000 0.030483 +v -0.153248 0.312500 0.030483 +v -0.129918 0.500000 0.086808 +v -0.129918 0.312500 0.086808 +v -0.086808 0.500000 0.129917 +v -0.086808 0.312500 0.129917 +v -0.030483 0.500000 0.153248 +v -0.030483 0.312500 0.153248 +v 0.030482 0.500000 0.153248 +v 0.030482 0.312500 0.153248 +v 0.086807 0.500000 0.129917 +v 0.086807 0.312500 0.129917 +v 0.129917 0.500000 0.086808 +v 0.129917 0.312500 0.086808 +v 0.153247 0.500000 0.030483 +v 0.153247 0.312500 0.030483 +v 0.153247 0.500000 -0.030483 +v 0.153247 0.312500 -0.030483 +v 0.024386 0.312500 0.122598 +v -0.024387 0.312500 0.122598 +v -0.069447 0.312500 0.103934 +v -0.103934 0.312500 0.069446 +v -0.122599 0.312500 0.024386 +v -0.122599 0.312500 -0.024386 +v -0.103934 0.312500 -0.069446 +v -0.069447 0.312500 -0.103934 +v -0.024387 0.312500 -0.122598 +v 0.024386 0.312500 -0.122598 +v 0.069446 0.312500 -0.103933 +v 0.103933 0.312500 -0.069446 +v -0.000000 0.312500 0.000000 +v -0.000000 0.500000 0.000000 +vt 0.680556 0.486111 +vt 0.625000 0.486111 +vt 0.625000 0.652778 +vt 0.680556 0.652778 +vt 0.569444 0.486111 +vt 0.569444 0.652778 +vt 0.513889 0.486111 +vt 0.513889 0.652778 +vt 0.458333 0.486111 +vt 0.458333 0.652778 +vt 0.402778 0.486111 +vt 0.402778 0.652778 +vt 0.347222 0.486111 +vt 0.347222 0.652778 +vt 0.291667 0.486111 +vt 0.291667 0.652778 +vt 0.236111 0.486111 +vt 0.236111 0.652778 +vt 0.180556 0.486111 +vt 0.180556 0.652778 +vt 0.125000 0.486111 +vt 0.125000 0.652778 +vt 0.069444 0.486111 +vt 0.069444 0.652778 +vt 0.013889 0.486111 +vt 0.013889 0.652778 +vt 0.902778 0.486111 +vt 0.847222 0.486111 +vt 0.847222 0.652778 +vt 0.902778 0.652778 +vt 0.791667 0.486111 +vt 0.791667 0.652778 +vt 0.736111 0.486111 +vt 0.736111 0.652778 +vt 0.194034 0.696809 +vt 0.165430 0.839757 +vt 0.136827 0.696809 +vt 0.469943 0.696809 +vt 0.498546 0.839757 +vt 0.527150 0.696809 +vt 0.580002 0.718572 +vt 0.620453 0.758784 +vt 0.642345 0.811323 +vt 0.642345 0.868191 +vt 0.620453 0.920730 +vt 0.580002 0.960942 +vt 0.527149 0.982704 +vt 0.469943 0.982704 +vt 0.417091 0.960942 +vt 0.376639 0.920730 +vt 0.354747 0.868191 +vt 0.354747 0.811323 +vt 0.376639 0.758784 +vt 0.417091 0.718572 +vt 0.083975 0.718572 +vt 0.043524 0.758784 +vt 0.021631 0.811323 +vt 0.021631 0.868191 +vt 0.043523 0.920730 +vt 0.083975 0.960942 +vt 0.136827 0.982704 +vt 0.194034 0.982704 +vt 0.246886 0.960942 +vt 0.287337 0.920730 +vt 0.309229 0.868191 +vt 0.309229 0.811323 +vt 0.287337 0.758784 +vt 0.246886 0.718572 +vt 0.180556 0.458333 +vt 0.180556 0.013889 +vt 0.236111 0.013889 +vt 0.236111 0.458333 +vt 0.750889 0.718565 +vt 0.803741 0.696803 +vt 0.832345 0.839750 +vt 0.710438 0.758777 +vt 0.688546 0.811316 +vt 0.688546 0.868184 +vt 0.710438 0.920723 +vt 0.750889 0.960935 +vt 0.803741 0.982698 +vt 0.860948 0.982698 +vt 0.913800 0.960935 +vt 0.954251 0.920723 +vt 0.976143 0.868184 +vt 0.976143 0.811316 +vt 0.954251 0.758777 +vt 0.913800 0.718565 +vt 0.860948 0.696803 +vt 0.417087 0.718565 +vt 0.469939 0.696803 +vt 0.498543 0.839750 +vt 0.376636 0.758777 +vt 0.354744 0.811316 +vt 0.354744 0.868184 +vt 0.376636 0.920723 +vt 0.417087 0.960935 +vt 0.469939 0.982698 +vt 0.527146 0.982698 +vt 0.579998 0.960935 +vt 0.620449 0.920723 +vt 0.642341 0.868184 +vt 0.642341 0.811316 +vt 0.620449 0.758777 +vt 0.579998 0.718565 +vt 0.527146 0.696803 +vt 0.791667 0.458333 +vt 0.791667 0.013889 +vt 0.847222 0.013889 +vt 0.847222 0.458333 +vt 0.680556 0.458333 +vt 0.680556 0.013889 +vt 0.736111 0.013889 +vt 0.736111 0.458333 +vt 0.513889 0.458333 +vt 0.513889 0.013889 +vt 0.569444 0.013889 +vt 0.569444 0.458333 +vt 0.625000 0.458333 +vt 0.625000 0.013889 +vt 0.458333 0.458333 +vt 0.458333 0.013889 +vt 0.402778 0.458333 +vt 0.402778 0.013889 +vt 0.347222 0.458333 +vt 0.347222 0.013889 +vt 0.291667 0.458333 +vt 0.291667 0.013889 +vt 0.125000 0.458333 +vt 0.125000 0.013889 +vt 0.069444 0.458333 +vt 0.069444 0.013889 +vt 0.013889 0.458333 +vt 0.013889 0.013889 +vt 0.902778 0.013889 +vt 0.902778 0.458333 +s off +f 1/1 3/2 4/3 2/4 +f 3/2 5/5 6/6 4/3 +f 5/5 7/7 8/8 6/6 +f 7/7 9/9 10/10 8/8 +f 9/9 11/11 12/12 10/10 +f 11/11 13/13 14/14 12/12 +f 13/13 15/15 16/16 14/14 +f 15/15 17/17 18/18 16/16 +f 17/17 19/19 20/20 18/18 +f 19/19 21/21 22/22 20/20 +f 21/21 23/23 24/24 22/22 +f 23/23 25/25 26/26 24/24 +f 25/27 27/28 28/29 26/30 +f 27/28 29/31 30/32 28/29 +f 31/33 1/1 2/4 32/34 +f 29/31 31/33 32/34 30/32 +f 4/35 50/36 2/37 +f 1/38 49/39 3/40 +f 3/40 49/39 5/41 +f 5/41 49/39 7/42 +f 7/42 49/39 9/43 +f 9/43 49/39 11/44 +f 11/44 49/39 13/45 +f 13/45 49/39 15/46 +f 15/46 49/39 17/47 +f 17/47 49/39 19/48 +f 19/48 49/39 21/49 +f 21/49 49/39 23/50 +f 23/50 49/39 25/51 +f 25/51 49/39 27/52 +f 27/52 49/39 29/53 +f 29/53 49/39 31/54 +f 31/54 49/39 1/38 +f 2/37 50/36 32/55 +f 32/55 50/36 30/56 +f 30/56 50/36 28/57 +f 28/57 50/36 26/58 +f 26/58 50/36 24/59 +f 24/59 50/36 22/60 +f 22/60 50/36 20/61 +f 20/61 50/36 18/62 +f 18/62 50/36 16/63 +f 16/63 50/36 14/64 +f 14/64 50/36 12/65 +f 12/65 50/36 10/66 +f 10/66 50/36 8/67 +f 8/67 50/36 6/68 +f 6/68 50/36 4/35 +f 41/69 91/70 92/71 42/72 +f 81/73 83/74 100/75 +f 79/76 81/73 100/75 +f 77/77 79/76 100/75 +f 75/78 77/77 100/75 +f 73/79 75/78 100/75 +f 71/80 73/79 100/75 +f 69/81 71/80 100/75 +f 67/82 69/81 100/75 +f 65/83 67/82 100/75 +f 63/84 65/83 100/75 +f 61/85 63/84 100/75 +f 59/86 61/85 100/75 +f 57/87 59/86 100/75 +f 55/88 57/87 100/75 +f 85/89 55/88 100/75 +f 56/90 86/91 99/92 +f 58/93 56/90 99/92 +f 60/94 58/93 99/92 +f 62/95 60/94 99/92 +f 64/96 62/95 99/92 +f 66/97 64/96 99/92 +f 68/98 66/97 99/92 +f 70/99 68/98 99/92 +f 72/100 70/99 99/92 +f 74/101 72/100 99/92 +f 76/102 74/101 99/92 +f 78/103 76/102 99/92 +f 80/104 78/103 99/92 +f 82/105 80/104 99/92 +f 84/106 82/105 99/92 +f 86/91 84/106 99/92 +f 83/74 85/89 100/75 +f 58/22 57/21 55/19 56/20 +f 56/20 55/19 85/17 86/18 +f 60/24 59/23 57/21 58/22 +f 62/26 61/25 59/23 60/24 +f 64/29 63/28 61/27 62/30 +f 66/32 65/31 63/28 64/29 +f 68/34 67/33 65/31 66/32 +f 70/4 69/1 67/33 68/34 +f 72/3 71/2 69/1 70/4 +f 74/6 73/5 71/2 72/3 +f 76/8 75/7 73/5 74/6 +f 78/10 77/9 75/7 76/8 +f 80/12 79/11 77/9 78/10 +f 82/14 81/13 79/11 80/12 +f 84/16 83/15 81/13 82/14 +f 86/18 85/17 83/15 84/16 +f 36/107 51/108 87/109 37/110 +f 34/111 53/112 52/113 35/114 +f 47/115 97/116 98/117 48/118 +f 33/119 54/120 53/112 34/111 +f 35/114 52/113 51/108 36/107 +f 48/118 98/117 54/120 33/119 +f 46/121 96/122 97/116 47/115 +f 45/123 95/124 96/122 46/121 +f 44/125 94/126 95/124 45/123 +f 43/127 93/128 94/126 44/125 +f 42/72 92/71 93/128 43/127 +f 40/129 90/130 91/70 41/69 +f 39/131 89/132 90/130 40/129 +f 38/133 88/134 89/132 39/131 +f 37/110 87/109 88/135 38/136 diff --git a/mods/pipeworks/models/pipeworks_pipe_10.obj b/mods/pipeworks/models/pipeworks_pipe_10.obj new file mode 100644 index 0000000..9edb938 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pipe_10.obj @@ -0,0 +1,891 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-6way.blend' +# www.blender.org +mtllib pipeworks_pipe_10.mtl +o Cube.000 +v 0.069446 -0.468750 -0.103934 +v 0.103933 -0.468750 -0.069446 +v 0.122598 -0.468750 -0.024386 +v 0.122598 -0.468750 0.024386 +v 0.129917 -0.500000 0.086808 +v 0.129917 -0.468750 0.086808 +v 0.086808 -0.500000 0.129917 +v 0.086808 -0.468750 0.129917 +v 0.030483 -0.500000 0.153247 +v 0.030483 -0.468750 0.153248 +v -0.030483 -0.500000 0.153247 +v -0.030483 -0.468750 0.153248 +v -0.086808 -0.500000 0.129917 +v -0.086808 -0.468750 0.129917 +v -0.129918 -0.500000 0.086808 +v -0.129917 -0.468750 0.086808 +v -0.153248 -0.500000 0.030483 +v -0.153248 -0.468750 0.030483 +v -0.153248 -0.500000 -0.030483 +v -0.153248 -0.468750 -0.030483 +v -0.129918 -0.500000 -0.086808 +v -0.129917 -0.468750 -0.086808 +v -0.086808 -0.500000 -0.129917 +v -0.086808 -0.468750 -0.129917 +v -0.030483 -0.500000 -0.153248 +v -0.030483 -0.468750 -0.153248 +v 0.030482 -0.500000 -0.153248 +v 0.030482 -0.468750 -0.153248 +v 0.086807 -0.500000 -0.129917 +v 0.086807 -0.468750 -0.129917 +v 0.129917 -0.500000 -0.086808 +v 0.129917 -0.468750 -0.086808 +v 0.153247 -0.500000 -0.030483 +v 0.153247 -0.468750 -0.030483 +v 0.153247 -0.500000 0.030483 +v 0.153247 -0.468750 0.030483 +v 0.024386 -0.468750 -0.122598 +v -0.024387 -0.468750 -0.122598 +v -0.069447 -0.468750 -0.103934 +v -0.103934 -0.468750 -0.069446 +v -0.122599 -0.468750 -0.024386 +v -0.122599 -0.468750 0.024386 +v -0.103934 -0.468750 0.069446 +v -0.069447 -0.468750 0.103934 +v -0.024387 -0.468750 0.122598 +v 0.024386 -0.468750 0.122598 +v 0.069446 -0.468750 0.103933 +v 0.103933 -0.468750 0.069446 +v -0.000000 -0.468750 -0.000000 +v -0.000000 -0.500000 -0.000000 +v -0.024386 -0.024391 -0.122598 +v -0.069446 -0.024391 -0.103934 +v -0.103934 -0.024391 -0.069446 +v -0.122598 -0.024391 -0.024386 +v -0.122598 -0.024391 0.024386 +v -0.103934 -0.024391 0.069446 +v -0.069446 -0.024391 0.103934 +v -0.024386 -0.024391 0.122598 +v 0.024386 -0.024391 0.122598 +v 0.103934 -0.024391 0.069446 +v 0.069446 -0.024391 0.103934 +v 0.103934 -0.024391 -0.069446 +v 0.122598 -0.024391 -0.024386 +v 0.122598 -0.024391 0.024386 +v 0.069446 -0.024391 -0.103934 +v 0.024386 -0.024391 -0.122598 +v 0.153248 0.468750 0.030483 +v 0.153248 0.500000 0.030483 +v 0.153248 0.468750 -0.030483 +v 0.153248 0.500000 -0.030483 +v 0.129917 0.468750 -0.086808 +v 0.129917 0.500000 -0.086808 +v 0.086808 0.468750 -0.129917 +v 0.086808 0.500000 -0.129917 +v 0.030483 0.468750 -0.153248 +v 0.030483 0.500000 -0.153248 +v -0.030483 0.468750 -0.153248 +v -0.030483 0.500000 -0.153248 +v -0.086808 0.468750 -0.129917 +v -0.086808 0.500000 -0.129917 +v -0.129917 0.468750 -0.086808 +v -0.129917 0.500000 -0.086808 +v -0.153247 0.468750 -0.030483 +v -0.153247 0.500000 -0.030483 +v -0.153247 0.468750 0.030483 +v -0.153247 0.500000 0.030483 +v -0.129917 0.468750 0.086808 +v -0.129917 0.500000 0.086808 +v -0.086808 0.468750 0.129917 +v -0.086808 0.500000 0.129917 +v -0.030483 0.468750 0.153248 +v -0.030483 0.500000 0.153248 +v 0.030483 0.468750 0.153248 +v 0.030483 0.500000 0.153248 +v 0.086808 0.468750 0.129917 +v 0.086808 0.500000 0.129917 +v 0.129917 0.468750 0.086808 +v 0.129918 0.500000 0.086808 +v 0.122598 0.468750 0.024386 +v 0.122598 0.468750 -0.024386 +v 0.103934 0.468750 -0.069446 +v 0.069447 0.468750 -0.103934 +v 0.024387 0.468750 -0.122598 +v -0.024386 0.468750 -0.122598 +v -0.069446 0.468750 -0.103934 +v -0.103933 0.468750 -0.069446 +v -0.122598 0.468750 -0.024386 +v -0.122598 0.468750 0.024386 +v -0.103933 0.468750 0.069446 +v -0.069446 0.468750 0.103934 +v -0.024386 0.468750 0.122598 +v 0.024387 0.468750 0.122598 +v 0.069447 0.468750 0.103934 +v 0.103934 0.468750 0.069446 +v 0.000000 0.468750 -0.000000 +v 0.000000 0.500000 0.000000 +v -0.024386 0.024390 -0.122598 +v -0.069446 0.024390 -0.103934 +v -0.103934 0.024390 -0.069446 +v -0.122598 0.024390 -0.024386 +v -0.122598 0.024390 0.024386 +v -0.103934 0.024390 0.069446 +v -0.069446 0.024390 0.103934 +v -0.024386 0.024389 0.122598 +v 0.024386 0.024389 0.122598 +v 0.103934 0.024390 0.069446 +v 0.069446 0.024390 0.103934 +v 0.103934 0.024390 -0.069446 +v 0.122598 0.024390 -0.024386 +v 0.122598 0.024390 0.024386 +v 0.069446 0.024390 -0.103934 +v 0.024386 0.024390 -0.122598 +v 0.468750 -0.153248 0.030483 +v 0.500000 -0.153248 0.030483 +v 0.468750 -0.153248 -0.030483 +v 0.500000 -0.153248 -0.030483 +v 0.468750 -0.129917 -0.086808 +v 0.500000 -0.129917 -0.086808 +v 0.468750 -0.086808 -0.129917 +v 0.500000 -0.086808 -0.129917 +v 0.468750 -0.030483 -0.153248 +v 0.500000 -0.030483 -0.153248 +v 0.468750 0.030483 -0.153248 +v 0.500000 0.030483 -0.153248 +v 0.468750 0.086808 -0.129917 +v 0.500000 0.086808 -0.129917 +v 0.468750 0.129917 -0.086808 +v 0.500000 0.129917 -0.086808 +v 0.468750 0.153248 -0.030483 +v 0.500000 0.153247 -0.030483 +v 0.468750 0.153248 0.030483 +v 0.500000 0.153248 0.030483 +v 0.468750 0.129917 0.086808 +v 0.500000 0.129917 0.086808 +v 0.468750 0.086808 0.129917 +v 0.500000 0.086808 0.129917 +v 0.468750 0.030483 0.153248 +v 0.500000 0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.500000 -0.030483 0.153248 +v 0.468750 -0.086808 0.129917 +v 0.500000 -0.086808 0.129917 +v 0.468750 -0.129917 0.086808 +v 0.500000 -0.129917 0.086808 +v 0.468750 -0.122598 0.024386 +v 0.468750 -0.122598 -0.024386 +v 0.468750 -0.103934 -0.069446 +v 0.468750 -0.069446 -0.103934 +v 0.468750 -0.024386 -0.122598 +v 0.468750 0.024386 -0.122598 +v 0.468750 0.069446 -0.103934 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.122598 -0.024386 +v 0.468750 0.122598 0.024386 +v 0.468750 0.103934 0.069446 +v 0.468750 0.069446 0.103934 +v 0.468750 0.024386 0.122598 +v 0.468750 -0.024387 0.122598 +v 0.468750 -0.069447 0.103934 +v 0.468750 -0.103934 0.069446 +v 0.468750 -0.000000 -0.000000 +v 0.500000 -0.000000 0.000000 +v -0.468750 -0.069446 -0.103934 +v -0.468750 -0.103933 -0.069446 +v -0.468750 -0.122598 -0.024387 +v -0.468750 -0.122598 0.024386 +v -0.500000 -0.129917 0.086808 +v -0.468750 -0.129917 0.086808 +v -0.500000 -0.086808 0.129917 +v -0.468750 -0.086808 0.129917 +v -0.500000 -0.030483 0.153247 +v -0.468750 -0.030483 0.153248 +v -0.500000 0.030483 0.153247 +v -0.468750 0.030483 0.153248 +v -0.500000 0.086808 0.129917 +v -0.468750 0.086808 0.129917 +v -0.500000 0.129917 0.086808 +v -0.468750 0.129917 0.086808 +v -0.500000 0.153248 0.030483 +v -0.468750 0.153248 0.030483 +v -0.500000 0.153248 -0.030483 +v -0.468750 0.153248 -0.030483 +v -0.500000 0.129917 -0.086808 +v -0.468750 0.129917 -0.086808 +v -0.500000 0.086808 -0.129917 +v -0.468750 0.086808 -0.129917 +v -0.500000 0.030483 -0.153248 +v -0.468750 0.030483 -0.153248 +v -0.500000 -0.030483 -0.153248 +v -0.468750 -0.030483 -0.153248 +v -0.500000 -0.086808 -0.129917 +v -0.468750 -0.086808 -0.129917 +v -0.500000 -0.129917 -0.086808 +v -0.468750 -0.129917 -0.086808 +v -0.500000 -0.153247 -0.030483 +v -0.468750 -0.153247 -0.030483 +v -0.500000 -0.153247 0.030483 +v -0.468750 -0.153247 0.030483 +v -0.468750 -0.024386 -0.122598 +v -0.468750 0.024387 -0.122598 +v -0.468750 0.069447 -0.103934 +v -0.468750 0.103934 -0.069446 +v -0.468750 0.122598 -0.024386 +v -0.468750 0.122598 0.024386 +v -0.468750 0.103934 0.069446 +v -0.468750 0.069447 0.103934 +v -0.468750 0.024387 0.122598 +v -0.468750 -0.024386 0.122598 +v -0.468750 -0.069446 0.103933 +v -0.468750 -0.103933 0.069446 +v -0.468750 0.000000 -0.000000 +v -0.500000 0.000000 -0.000000 +v 0.069446 -0.103934 0.468750 +v 0.103933 -0.069447 0.468750 +v 0.122598 -0.024387 0.468750 +v 0.122598 0.024386 0.468750 +v 0.129917 0.086807 0.500000 +v 0.129917 0.086807 0.468750 +v 0.086808 0.129917 0.500000 +v 0.086808 0.129917 0.468750 +v 0.030483 0.153247 0.500000 +v 0.030483 0.153247 0.468750 +v -0.030483 0.153247 0.500000 +v -0.030483 0.153247 0.468750 +v -0.086808 0.129917 0.500000 +v -0.086808 0.129917 0.468750 +v -0.129918 0.086808 0.500000 +v -0.129917 0.086808 0.468750 +v -0.153248 0.030483 0.500000 +v -0.153248 0.030483 0.468750 +v -0.153248 -0.030483 0.500000 +v -0.153248 -0.030483 0.468750 +v -0.129918 -0.086808 0.500000 +v -0.129917 -0.086808 0.468750 +v -0.086808 -0.129917 0.500000 +v -0.086808 -0.129917 0.468750 +v -0.030483 -0.153248 0.500000 +v -0.030483 -0.153248 0.468750 +v 0.030482 -0.153248 0.500000 +v 0.030482 -0.153248 0.468750 +v 0.086807 -0.129917 0.500000 +v 0.086807 -0.129917 0.468750 +v 0.129917 -0.086808 0.500000 +v 0.129917 -0.086808 0.468750 +v 0.153247 -0.030483 0.500000 +v 0.153247 -0.030483 0.468750 +v 0.153247 0.030483 0.500000 +v 0.153247 0.030483 0.468750 +v 0.024386 -0.122598 0.468750 +v -0.024387 -0.122598 0.468750 +v -0.069447 -0.103934 0.468750 +v -0.103934 -0.069447 0.468750 +v -0.122599 -0.024387 0.468750 +v -0.122599 0.024386 0.468750 +v -0.103934 0.069446 0.468750 +v -0.069447 0.103933 0.468750 +v -0.024387 0.122598 0.468750 +v 0.024386 0.122598 0.468750 +v 0.069446 0.103933 0.468750 +v 0.103933 0.069446 0.468750 +v -0.000000 -0.000000 0.468750 +v -0.000000 -0.000000 0.500000 +v -0.024386 -0.122598 0.024391 +v -0.069446 -0.103934 0.024391 +v -0.103934 -0.069446 0.024391 +v -0.122598 -0.024386 0.024391 +v -0.122598 0.024386 0.024391 +v -0.103934 0.069446 0.024391 +v -0.069446 0.103934 0.024391 +v -0.024386 0.122598 0.024391 +v 0.024386 0.122598 0.024391 +v 0.103934 0.069446 0.024391 +v 0.069446 0.103934 0.024391 +v 0.103934 -0.069446 0.024391 +v 0.122598 -0.024386 0.024391 +v 0.122598 0.024386 0.024391 +v 0.069446 -0.103934 0.024391 +v 0.024386 -0.122598 0.024391 +v 0.153248 0.030483 -0.468750 +v 0.153248 0.030483 -0.500000 +v 0.153248 -0.030483 -0.468750 +v 0.153248 -0.030483 -0.500000 +v 0.129917 -0.086808 -0.468750 +v 0.129917 -0.086808 -0.500000 +v 0.086808 -0.129917 -0.468750 +v 0.086808 -0.129917 -0.500000 +v 0.030483 -0.153248 -0.468750 +v 0.030483 -0.153248 -0.500000 +v -0.030483 -0.153248 -0.468750 +v -0.030483 -0.153248 -0.500000 +v -0.086808 -0.129917 -0.468750 +v -0.086808 -0.129917 -0.500000 +v -0.129917 -0.086808 -0.468750 +v -0.129917 -0.086808 -0.500000 +v -0.153247 -0.030483 -0.468750 +v -0.153247 -0.030483 -0.500000 +v -0.153247 0.030483 -0.468750 +v -0.153247 0.030483 -0.500000 +v -0.129917 0.086808 -0.468750 +v -0.129917 0.086808 -0.500000 +v -0.086808 0.129917 -0.468750 +v -0.086808 0.129917 -0.500000 +v -0.030483 0.153248 -0.468750 +v -0.030483 0.153248 -0.500000 +v 0.030483 0.153248 -0.468750 +v 0.030483 0.153248 -0.500000 +v 0.086808 0.129917 -0.468750 +v 0.086808 0.129917 -0.500000 +v 0.129917 0.086808 -0.468750 +v 0.129918 0.086808 -0.500000 +v 0.122598 0.024386 -0.468750 +v 0.122598 -0.024386 -0.468750 +v 0.103934 -0.069446 -0.468750 +v 0.069447 -0.103934 -0.468750 +v 0.024387 -0.122598 -0.468750 +v -0.024386 -0.122598 -0.468750 +v -0.069446 -0.103934 -0.468750 +v -0.103933 -0.069446 -0.468750 +v -0.122598 -0.024386 -0.468750 +v -0.122598 0.024386 -0.468750 +v -0.103933 0.069446 -0.468750 +v -0.069446 0.103934 -0.468750 +v -0.024386 0.122598 -0.468750 +v 0.024387 0.122598 -0.468750 +v 0.069447 0.103934 -0.468750 +v 0.103934 0.069446 -0.468750 +v 0.000000 -0.000000 -0.468750 +v 0.000000 0.000000 -0.500000 +v -0.024386 -0.122598 -0.024390 +v -0.069446 -0.103934 -0.024391 +v -0.103934 -0.069446 -0.024391 +v -0.122598 -0.024386 -0.024391 +v -0.122598 0.024386 -0.024391 +v -0.103934 0.069446 -0.024390 +v -0.069446 0.103934 -0.024390 +v -0.024386 0.122598 -0.024389 +v 0.024386 0.122598 -0.024389 +v 0.103934 0.069446 -0.024390 +v 0.069446 0.103934 -0.024390 +v 0.103934 -0.069446 -0.024390 +v 0.122598 -0.024386 -0.024390 +v 0.122598 0.024386 -0.024390 +v 0.069446 -0.103934 -0.024390 +v 0.024386 -0.122598 -0.024390 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.250000 0.015625 +vt 0.250000 0.265625 +vt 0.093322 0.682190 +vt 0.153370 0.657318 +vt 0.185867 0.820694 +vt 0.047364 0.728149 +vt 0.022491 0.788196 +vt 0.022491 0.853192 +vt 0.047364 0.913239 +vt 0.093322 0.959198 +vt 0.153370 0.984070 +vt 0.218365 0.984070 +vt 0.278413 0.959198 +vt 0.324371 0.913239 +vt 0.349244 0.853192 +vt 0.349244 0.788196 +vt 0.324371 0.728149 +vt 0.278413 0.682190 +vt 0.218365 0.657318 +vt 0.471785 0.682190 +vt 0.531832 0.657318 +vt 0.564330 0.820694 +vt 0.425826 0.728149 +vt 0.400953 0.788196 +vt 0.400953 0.853192 +vt 0.425826 0.913239 +vt 0.471785 0.959198 +vt 0.531832 0.984070 +vt 0.596827 0.984070 +vt 0.656875 0.959198 +vt 0.702834 0.913239 +vt 0.727706 0.853192 +vt 0.727706 0.788196 +vt 0.702834 0.728149 +vt 0.656875 0.682190 +vt 0.596827 0.657318 +vt 0.125000 0.609375 +vt 0.125000 0.546875 +vt 0.187500 0.546875 +vt 0.187500 0.609375 +vt 0.250000 0.546875 +vt 0.250000 0.609375 +vt 0.062500 0.609375 +vt 0.062500 0.546875 +vt 0.000000 0.609375 +vt 0.000000 0.546875 +vt 0.937500 0.609375 +vt 0.937500 0.546875 +vt 1.000000 0.546875 +vt 1.000000 0.609375 +vt 0.875000 0.609375 +vt 0.875000 0.546875 +vt 0.812500 0.609375 +vt 0.812500 0.546875 +vt 0.750000 0.609375 +vt 0.750000 0.546875 +vt 0.687500 0.609375 +vt 0.687500 0.546875 +vt 0.625000 0.609375 +vt 0.625000 0.546875 +vt 0.562500 0.609375 +vt 0.562500 0.546875 +vt 0.500000 0.609375 +vt 0.500000 0.546875 +vt 0.437500 0.609375 +vt 0.437500 0.546875 +vt 0.375000 0.609375 +vt 0.375000 0.546875 +vt 0.312500 0.609375 +vt 0.312500 0.546875 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.812500 0.015625 +vt 0.812500 0.265625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.625000 0.015625 +vt 0.625000 0.265625 +vt 0.687500 0.265625 +vt 0.687500 0.015625 +vt 0.500000 0.265625 +vt 0.500000 0.015625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.125000 0.265625 +vt 0.125000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.218363 0.657325 +vt 0.185866 0.820702 +vt 0.153368 0.657325 +vt 0.531836 0.657325 +vt 0.564334 0.820702 +vt 0.596832 0.657325 +vt 0.656879 0.682198 +vt 0.702838 0.728156 +vt 0.727710 0.788204 +vt 0.727710 0.853199 +vt 0.702838 0.913247 +vt 0.656879 0.959205 +vt 0.596831 0.984078 +vt 0.531836 0.984078 +vt 0.471788 0.959205 +vt 0.425830 0.913247 +vt 0.400957 0.853199 +vt 0.400957 0.788204 +vt 0.425830 0.728156 +vt 0.471789 0.682198 +vt 0.093321 0.682198 +vt 0.047362 0.728156 +vt 0.022489 0.788204 +vt 0.022489 0.853199 +vt 0.047362 0.913247 +vt 0.093320 0.959205 +vt 0.153368 0.984078 +vt 0.218363 0.984078 +vt 0.278411 0.959205 +vt 0.324369 0.913247 +vt 0.349242 0.853199 +vt 0.349242 0.788204 +vt 0.324369 0.728156 +vt 0.278411 0.682198 +vt 0.187500 0.515625 +vt 0.250000 0.515625 +vt 0.875000 0.515625 +vt 0.937500 0.515625 +vt 0.750000 0.515625 +vt 0.812500 0.515625 +vt 0.562500 0.515625 +vt 0.625000 0.515625 +vt 0.687500 0.515625 +vt 0.500000 0.515625 +vt 0.437500 0.515625 +vt 0.375000 0.515625 +vt 0.312500 0.515625 +vt 0.125000 0.515625 +vt 0.062500 0.515625 +vt 0.000000 0.515625 +vt 1.000000 0.515625 +usemtl None +s off +f 54/1 41/2 42/3 55/4 +f 31/5 33/6 50/7 +f 29/8 31/5 50/7 +f 27/9 29/8 50/7 +f 25/10 27/9 50/7 +f 23/11 25/10 50/7 +f 21/12 23/11 50/7 +f 19/13 21/12 50/7 +f 17/14 19/13 50/7 +f 15/15 17/14 50/7 +f 13/16 15/15 50/7 +f 11/17 13/16 50/7 +f 9/18 11/17 50/7 +f 7/19 9/18 50/7 +f 5/20 7/19 50/7 +f 35/21 5/20 50/7 +f 6/22 36/23 49/24 +f 8/25 6/22 49/24 +f 10/26 8/25 49/24 +f 12/27 10/26 49/24 +f 14/28 12/27 49/24 +f 16/29 14/28 49/24 +f 18/30 16/29 49/24 +f 20/31 18/30 49/24 +f 22/32 20/31 49/24 +f 24/33 22/32 49/24 +f 26/34 24/33 49/24 +f 28/35 26/34 49/24 +f 30/36 28/35 49/24 +f 32/37 30/36 49/24 +f 34/38 32/37 49/24 +f 36/23 34/38 49/24 +f 33/6 35/21 50/7 +f 8/39 7/40 5/41 6/42 +f 6/42 5/41 35/43 36/44 +f 10/45 9/46 7/40 8/39 +f 12/47 11/48 9/46 10/45 +f 14/49 13/50 11/51 12/52 +f 16/53 15/54 13/50 14/49 +f 18/55 17/56 15/54 16/53 +f 20/57 19/58 17/56 18/55 +f 22/59 21/60 19/58 20/57 +f 24/61 23/62 21/60 22/59 +f 26/63 25/64 23/62 24/61 +f 28/65 27/66 25/64 26/63 +f 30/67 29/68 27/66 28/65 +f 32/69 31/70 29/68 30/67 +f 34/71 33/72 31/70 32/69 +f 36/44 35/43 33/72 34/71 +f 65/73 1/74 37/75 66/76 +f 63/77 3/78 2/79 62/80 +f 61/81 47/82 48/83 60/84 +f 64/85 4/86 3/78 63/77 +f 62/80 2/79 1/74 65/73 +f 60/84 48/83 4/86 64/85 +f 59/87 46/88 47/82 61/81 +f 58/89 45/90 46/88 59/87 +f 57/91 44/92 45/90 58/89 +f 56/93 43/94 44/92 57/91 +f 55/4 42/3 43/94 56/93 +f 53/95 40/96 41/2 54/1 +f 52/97 39/98 40/96 53/95 +f 51/99 38/100 39/98 52/97 +f 66/76 37/75 38/101 51/102 +f 67/58 69/60 70/59 68/57 +f 69/60 71/62 72/61 70/59 +f 71/62 73/64 74/63 72/61 +f 73/64 75/66 76/65 74/63 +f 75/66 77/68 78/67 76/65 +f 77/68 79/70 80/69 78/67 +f 79/70 81/72 82/71 80/69 +f 81/72 83/43 84/44 82/71 +f 83/43 85/41 86/42 84/44 +f 85/41 87/40 88/39 86/42 +f 87/40 89/46 90/45 88/39 +f 89/46 91/48 92/47 90/45 +f 91/51 93/50 94/49 92/52 +f 93/50 95/54 96/53 94/49 +f 97/56 67/58 68/57 98/55 +f 95/54 97/56 98/55 96/53 +f 70/103 116/104 68/105 +f 67/106 115/107 69/108 +f 69/108 115/107 71/109 +f 71/109 115/107 73/110 +f 73/110 115/107 75/111 +f 75/111 115/107 77/112 +f 77/112 115/107 79/113 +f 79/113 115/107 81/114 +f 81/114 115/107 83/115 +f 83/115 115/107 85/116 +f 85/116 115/107 87/117 +f 87/117 115/107 89/118 +f 89/118 115/107 91/119 +f 91/119 115/107 93/120 +f 93/120 115/107 95/121 +f 95/121 115/107 97/122 +f 97/122 115/107 67/106 +f 68/105 116/104 98/123 +f 98/123 116/104 96/124 +f 96/124 116/104 94/125 +f 94/125 116/104 92/126 +f 92/126 116/104 90/127 +f 90/127 116/104 88/128 +f 88/128 116/104 86/129 +f 86/129 116/104 84/130 +f 84/130 116/104 82/131 +f 82/131 116/104 80/132 +f 80/132 116/104 78/133 +f 78/133 116/104 76/134 +f 76/134 116/104 74/135 +f 74/135 116/104 72/136 +f 72/136 116/104 70/103 +f 107/137 120/1 121/4 108/138 +f 102/139 131/73 132/76 103/140 +f 100/141 129/77 128/80 101/142 +f 113/143 127/81 126/84 114/144 +f 99/145 130/85 129/77 100/141 +f 101/142 128/80 131/73 102/139 +f 114/144 126/84 130/85 99/145 +f 112/146 125/87 127/81 113/143 +f 111/147 124/89 125/87 112/146 +f 110/148 123/91 124/89 111/147 +f 109/149 122/93 123/91 110/148 +f 108/138 121/4 122/93 109/149 +f 106/150 119/95 120/1 107/137 +f 105/151 118/97 119/95 106/150 +f 104/152 117/99 118/97 105/151 +f 103/140 132/76 117/102 104/153 +f 133/58 135/60 136/59 134/57 +f 135/60 137/62 138/61 136/59 +f 137/62 139/64 140/63 138/61 +f 139/64 141/66 142/65 140/63 +f 141/66 143/68 144/67 142/65 +f 143/68 145/70 146/69 144/67 +f 145/70 147/72 148/71 146/69 +f 147/72 149/43 150/44 148/71 +f 149/43 151/41 152/42 150/44 +f 151/41 153/40 154/39 152/42 +f 153/40 155/46 156/45 154/39 +f 155/46 157/48 158/47 156/45 +f 157/51 159/50 160/49 158/52 +f 159/50 161/54 162/53 160/49 +f 163/56 133/58 134/57 164/55 +f 161/54 163/56 164/55 162/53 +f 136/103 182/104 134/105 +f 133/106 181/107 135/108 +f 135/108 181/107 137/109 +f 137/109 181/107 139/110 +f 139/110 181/107 141/111 +f 141/111 181/107 143/112 +f 143/112 181/107 145/113 +f 145/113 181/107 147/114 +f 147/114 181/107 149/115 +f 149/115 181/107 151/116 +f 151/116 181/107 153/117 +f 153/117 181/107 155/118 +f 155/118 181/107 157/119 +f 157/119 181/107 159/120 +f 159/120 181/107 161/121 +f 161/121 181/107 163/122 +f 163/122 181/107 133/106 +f 134/105 182/104 164/123 +f 164/123 182/104 162/124 +f 162/124 182/104 160/125 +f 160/125 182/104 158/126 +f 158/126 182/104 156/127 +f 156/127 182/104 154/128 +f 154/128 182/104 152/129 +f 152/129 182/104 150/130 +f 150/130 182/104 148/131 +f 148/131 182/104 146/132 +f 146/132 182/104 144/133 +f 144/133 182/104 142/134 +f 142/134 182/104 140/135 +f 140/135 182/104 138/136 +f 138/136 182/104 136/103 +f 173/137 223/2 224/3 174/138 +f 213/5 215/6 232/7 +f 211/8 213/5 232/7 +f 209/9 211/8 232/7 +f 207/10 209/9 232/7 +f 205/11 207/10 232/7 +f 203/12 205/11 232/7 +f 201/13 203/12 232/7 +f 199/14 201/13 232/7 +f 197/15 199/14 232/7 +f 195/16 197/15 232/7 +f 193/17 195/16 232/7 +f 191/18 193/17 232/7 +f 189/19 191/18 232/7 +f 187/20 189/19 232/7 +f 217/21 187/20 232/7 +f 188/22 218/23 231/24 +f 190/25 188/22 231/24 +f 192/26 190/25 231/24 +f 194/27 192/26 231/24 +f 196/28 194/27 231/24 +f 198/29 196/28 231/24 +f 200/30 198/29 231/24 +f 202/31 200/30 231/24 +f 204/32 202/31 231/24 +f 206/33 204/32 231/24 +f 208/34 206/33 231/24 +f 210/35 208/34 231/24 +f 212/36 210/35 231/24 +f 214/37 212/36 231/24 +f 216/38 214/37 231/24 +f 218/23 216/38 231/24 +f 215/6 217/21 232/7 +f 190/39 189/40 187/41 188/42 +f 188/42 187/41 217/43 218/44 +f 192/45 191/46 189/40 190/39 +f 194/47 193/48 191/46 192/45 +f 196/49 195/50 193/51 194/52 +f 198/53 197/54 195/50 196/49 +f 200/55 199/56 197/54 198/53 +f 202/57 201/58 199/56 200/55 +f 204/59 203/60 201/58 202/57 +f 206/61 205/62 203/60 204/59 +f 208/63 207/64 205/62 206/61 +f 210/65 209/66 207/64 208/63 +f 212/67 211/68 209/66 210/65 +f 214/69 213/70 211/68 212/67 +f 216/71 215/72 213/70 214/69 +f 218/44 217/43 215/72 216/71 +f 168/139 183/74 219/75 169/140 +f 166/141 185/78 184/79 167/142 +f 179/143 229/82 230/83 180/144 +f 165/145 186/86 185/78 166/141 +f 167/142 184/79 183/74 168/139 +f 180/144 230/83 186/86 165/145 +f 178/146 228/88 229/82 179/143 +f 177/147 227/90 228/88 178/146 +f 176/148 226/92 227/90 177/147 +f 175/149 225/94 226/92 176/148 +f 174/138 224/3 225/94 175/149 +f 172/150 222/96 223/2 173/137 +f 171/151 221/98 222/96 172/150 +f 170/152 220/100 221/98 171/151 +f 169/140 219/75 220/101 170/153 +f 286/1 273/2 274/3 287/4 +f 263/5 265/6 282/7 +f 261/8 263/5 282/7 +f 259/9 261/8 282/7 +f 257/10 259/9 282/7 +f 255/11 257/10 282/7 +f 253/12 255/11 282/7 +f 251/13 253/12 282/7 +f 249/14 251/13 282/7 +f 247/15 249/14 282/7 +f 245/16 247/15 282/7 +f 243/17 245/16 282/7 +f 241/18 243/17 282/7 +f 239/19 241/18 282/7 +f 237/20 239/19 282/7 +f 267/21 237/20 282/7 +f 238/22 268/23 281/24 +f 240/25 238/22 281/24 +f 242/26 240/25 281/24 +f 244/27 242/26 281/24 +f 246/28 244/27 281/24 +f 248/29 246/28 281/24 +f 250/30 248/29 281/24 +f 252/31 250/30 281/24 +f 254/32 252/31 281/24 +f 256/33 254/32 281/24 +f 258/34 256/33 281/24 +f 260/35 258/34 281/24 +f 262/36 260/35 281/24 +f 264/37 262/36 281/24 +f 266/38 264/37 281/24 +f 268/23 266/38 281/24 +f 265/6 267/21 282/7 +f 240/39 239/40 237/41 238/42 +f 238/42 237/41 267/43 268/44 +f 242/45 241/46 239/40 240/39 +f 244/47 243/48 241/46 242/45 +f 246/49 245/50 243/51 244/52 +f 248/53 247/54 245/50 246/49 +f 250/55 249/56 247/54 248/53 +f 252/57 251/58 249/56 250/55 +f 254/59 253/60 251/58 252/57 +f 256/61 255/62 253/60 254/59 +f 258/63 257/64 255/62 256/61 +f 260/65 259/66 257/64 258/63 +f 262/67 261/68 259/66 260/65 +f 264/69 263/70 261/68 262/67 +f 266/71 265/72 263/70 264/69 +f 268/44 267/43 265/72 266/71 +f 297/73 233/74 269/75 298/76 +f 295/77 235/78 234/79 294/80 +f 293/81 279/82 280/83 292/84 +f 296/85 236/86 235/78 295/77 +f 294/80 234/79 233/74 297/73 +f 292/84 280/83 236/86 296/85 +f 291/87 278/88 279/82 293/81 +f 290/89 277/90 278/88 291/87 +f 289/91 276/92 277/90 290/89 +f 288/93 275/94 276/92 289/91 +f 287/4 274/3 275/94 288/93 +f 285/95 272/96 273/2 286/1 +f 284/97 271/98 272/96 285/95 +f 283/99 270/100 271/98 284/97 +f 298/76 269/75 270/101 283/102 +f 299/58 301/60 302/59 300/57 +f 301/60 303/62 304/61 302/59 +f 303/62 305/64 306/63 304/61 +f 305/64 307/66 308/65 306/63 +f 307/66 309/68 310/67 308/65 +f 309/68 311/70 312/69 310/67 +f 311/70 313/72 314/71 312/69 +f 313/72 315/43 316/44 314/71 +f 315/43 317/41 318/42 316/44 +f 317/41 319/40 320/39 318/42 +f 319/40 321/46 322/45 320/39 +f 321/46 323/48 324/47 322/45 +f 323/51 325/50 326/49 324/52 +f 325/50 327/54 328/53 326/49 +f 329/56 299/58 300/57 330/55 +f 327/54 329/56 330/55 328/53 +f 302/103 348/104 300/105 +f 299/106 347/107 301/108 +f 301/108 347/107 303/109 +f 303/109 347/107 305/110 +f 305/110 347/107 307/111 +f 307/111 347/107 309/112 +f 309/112 347/107 311/113 +f 311/113 347/107 313/114 +f 313/114 347/107 315/115 +f 315/115 347/107 317/116 +f 317/116 347/107 319/117 +f 319/117 347/107 321/118 +f 321/118 347/107 323/119 +f 323/119 347/107 325/120 +f 325/120 347/107 327/121 +f 327/121 347/107 329/122 +f 329/122 347/107 299/106 +f 300/105 348/104 330/123 +f 330/123 348/104 328/124 +f 328/124 348/104 326/125 +f 326/125 348/104 324/126 +f 324/126 348/104 322/127 +f 322/127 348/104 320/128 +f 320/128 348/104 318/129 +f 318/129 348/104 316/130 +f 316/130 348/104 314/131 +f 314/131 348/104 312/132 +f 312/132 348/104 310/133 +f 310/133 348/104 308/134 +f 308/134 348/104 306/135 +f 306/135 348/104 304/136 +f 304/136 348/104 302/103 +f 339/137 352/1 353/4 340/138 +f 334/139 363/73 364/76 335/140 +f 332/141 361/77 360/80 333/142 +f 345/143 359/81 358/84 346/144 +f 331/145 362/85 361/77 332/141 +f 333/142 360/80 363/73 334/139 +f 346/144 358/84 362/85 331/145 +f 344/146 357/87 359/81 345/143 +f 343/147 356/89 357/87 344/146 +f 342/148 355/91 356/89 343/147 +f 341/149 354/93 355/91 342/148 +f 340/138 353/4 354/93 341/149 +f 338/150 351/95 352/1 339/137 +f 337/151 350/97 351/95 338/150 +f 336/152 349/99 350/97 337/151 +f 335/140 364/76 349/102 336/153 diff --git a/mods/pipeworks/models/pipeworks_pipe_2.obj b/mods/pipeworks/models/pipeworks_pipe_2.obj new file mode 100644 index 0000000..c75bca4 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pipe_2.obj @@ -0,0 +1,392 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-stub-end.blend' +# www.blender.org +o pipe.001_Cylinder.000 +v 0.024386 -0.024391 0.122598 +v 0.024386 -0.024391 -0.122598 +v 0.468750 -0.024387 0.122599 +v 0.468750 0.024386 0.122599 +v 0.024391 0.024386 0.122598 +v 0.500000 -0.086808 -0.129917 +v 0.500000 -0.030483 -0.153247 +v 0.500000 -0.000000 0.000001 +v 0.500000 -0.129917 -0.086807 +v 0.500000 -0.153248 -0.030482 +v 0.500000 -0.153248 0.030483 +v 0.500000 -0.129917 0.086808 +v 0.500000 -0.086808 0.129918 +v 0.500000 -0.030483 0.153248 +v 0.500000 0.030483 0.153248 +v 0.500000 0.086808 0.129918 +v 0.500000 0.129917 0.086808 +v 0.500000 0.153247 0.030483 +v 0.500000 0.153247 -0.030482 +v 0.500000 0.129917 -0.086807 +v 0.500000 0.086808 -0.129917 +v 0.500000 0.030483 -0.153247 +v 0.468750 0.086808 -0.129917 +v 0.468750 0.030483 -0.153247 +v 0.468750 -0.000000 -0.000000 +v 0.468750 0.129917 -0.086807 +v 0.468750 0.153247 -0.030482 +v 0.468750 0.153247 0.030483 +v 0.468750 0.129917 0.086808 +v 0.468750 0.086808 0.129918 +v 0.468750 0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.468750 -0.086808 0.129918 +v 0.468750 -0.129917 0.086808 +v 0.468750 -0.153248 0.030483 +v 0.468750 -0.153248 -0.030482 +v 0.468750 -0.129917 -0.086807 +v 0.468750 -0.086808 -0.129917 +v 0.468750 -0.030483 -0.153247 +v 0.024391 -0.103934 -0.069446 +v 0.468750 -0.103934 -0.069446 +v 0.468750 -0.122598 -0.024386 +v 0.024391 -0.122598 -0.024386 +v 0.468750 -0.024387 -0.122598 +v 0.468750 -0.069447 -0.103933 +v 0.024391 -0.069446 -0.103934 +v 0.468750 0.103933 -0.069446 +v 0.468750 0.069446 -0.103933 +v 0.024391 0.069446 -0.103934 +v 0.024391 0.024386 -0.122598 +v 0.468750 0.024386 -0.122598 +v 0.024391 0.122598 -0.024386 +v 0.468750 0.122598 -0.024386 +v 0.024391 0.122598 0.024386 +v 0.468750 0.122598 0.024387 +v 0.024391 0.103934 0.069446 +v 0.468750 0.103933 0.069447 +v 0.024391 0.069446 0.103934 +v 0.468750 0.069446 0.103934 +v 0.024391 -0.069446 0.103934 +v 0.468750 -0.069447 0.103934 +v 0.024391 -0.103934 0.069446 +v 0.468750 -0.103934 0.069447 +v 0.024391 -0.122598 0.024386 +v 0.468750 -0.122598 0.024387 +v 0.024390 0.103934 -0.069446 +v -0.042016 -0.000000 0.000000 +v -0.034206 -0.012195 0.061299 +v -0.034203 -0.034723 0.051967 +v -0.034203 -0.061299 0.012193 +v -0.034203 -0.061299 -0.012193 +v -0.034203 -0.051967 -0.034723 +v -0.034203 -0.051967 0.034723 +v -0.034203 -0.034723 -0.051967 +v -0.034206 -0.012196 -0.061299 +v -0.034203 0.012193 -0.061299 +v -0.034203 0.034723 -0.051967 +v -0.034203 0.051967 -0.034723 +v -0.034203 0.061299 -0.012193 +v -0.034203 0.061299 0.012193 +v -0.034203 0.051967 0.034723 +v -0.034203 0.034723 0.051967 +v -0.034203 0.012193 0.061299 +v -0.042017 -0.006098 0.030650 +v -0.042016 -0.017362 0.025984 +v -0.042016 -0.030650 0.006097 +v -0.042016 -0.030650 -0.006096 +v -0.042016 -0.025984 -0.017361 +v -0.014672 -0.077950 0.052085 +v -0.042016 -0.017362 -0.025983 +v -0.042017 -0.006098 -0.030649 +v -0.042016 0.006096 -0.030649 +v -0.042016 0.017361 -0.025983 +v -0.042016 0.025983 -0.017362 +v -0.042016 0.030649 -0.006096 +v -0.042016 0.030649 0.006097 +v -0.042016 0.025983 0.017362 +v -0.042016 0.017361 0.025984 +v -0.042016 0.006096 0.030650 +v -0.014675 -0.018293 0.091949 +v -0.014672 -0.052084 0.077951 +v -0.014672 -0.091948 0.018290 +v -0.014672 -0.091949 -0.018289 +v -0.014672 -0.077951 -0.052084 +v -0.042016 -0.025984 0.017362 +v -0.014672 -0.052085 -0.077950 +v -0.014675 -0.018293 -0.091948 +v -0.014672 0.018289 -0.091948 +v -0.014672 0.052084 -0.077950 +v -0.014672 0.077950 -0.052085 +v -0.014672 0.091948 -0.018289 +v -0.014672 0.091949 0.018290 +v -0.014672 0.077951 0.052085 +v -0.014672 0.052085 0.077951 +v -0.014672 0.018290 0.091949 +vt 0.093322 0.682190 +vt 0.153370 0.657318 +vt 0.185867 0.820694 +vt 0.047364 0.728149 +vt 0.022491 0.788196 +vt 0.022491 0.853192 +vt 0.047364 0.913239 +vt 0.093322 0.959198 +vt 0.153370 0.984070 +vt 0.218365 0.984070 +vt 0.278413 0.959198 +vt 0.324371 0.913239 +vt 0.349244 0.853192 +vt 0.349244 0.788196 +vt 0.324371 0.728149 +vt 0.278413 0.682190 +vt 0.218365 0.657318 +vt 0.471785 0.682190 +vt 0.531832 0.657318 +vt 0.564330 0.820694 +vt 0.425826 0.728149 +vt 0.400953 0.788196 +vt 0.400953 0.853192 +vt 0.425826 0.913239 +vt 0.471785 0.959198 +vt 0.531832 0.984070 +vt 0.596827 0.984070 +vt 0.656875 0.959198 +vt 0.702834 0.913239 +vt 0.727706 0.853192 +vt 0.727706 0.788196 +vt 0.702834 0.728149 +vt 0.656875 0.682190 +vt 0.596827 0.657318 +vt 0.125000 0.609375 +vt 0.125000 0.546875 +vt 0.187500 0.546875 +vt 0.187500 0.609375 +vt 0.250000 0.546875 +vt 0.250000 0.609375 +vt 0.062500 0.609375 +vt 0.062500 0.546875 +vt 0.000000 0.609375 +vt 0.000000 0.546875 +vt 0.937500 0.609375 +vt 0.937500 0.546875 +vt 1.000000 0.546875 +vt 1.000000 0.609375 +vt 0.875000 0.609375 +vt 0.875000 0.546875 +vt 0.812500 0.609375 +vt 0.812500 0.546875 +vt 0.750000 0.609375 +vt 0.750000 0.546875 +vt 0.687500 0.609375 +vt 0.687500 0.546875 +vt 0.625000 0.609375 +vt 0.625000 0.546875 +vt 0.562500 0.609375 +vt 0.562500 0.546875 +vt 0.500000 0.609375 +vt 0.500000 0.546875 +vt 0.437500 0.609375 +vt 0.437500 0.546875 +vt 0.375000 0.609375 +vt 0.375000 0.546875 +vt 0.312500 0.609375 +vt 0.312500 0.546875 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.812500 0.265625 +vt 0.812500 0.015625 +vt 0.625000 0.265625 +vt 0.625000 0.015625 +vt 0.687500 0.015625 +vt 0.687500 0.265625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.500000 0.015625 +vt 0.500000 0.265625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.250000 0.265625 +vt 0.250000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.125000 0.015625 +vt 0.125000 0.265625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.648437 0.265625 +vt 0.414062 0.265625 +vt 0.531250 0.265625 +vt 0.632812 0.265625 +vt 0.617187 0.265625 +vt 0.601562 0.265625 +vt 0.585937 0.265625 +vt 0.570312 0.265625 +vt 0.554687 0.265625 +vt 0.539062 0.265625 +vt 0.523437 0.265625 +vt 0.507812 0.265625 +vt 0.492187 0.265625 +vt 0.476562 0.265625 +vt 0.460937 0.265625 +vt 0.445312 0.265625 +vt 0.429687 0.265625 +vt 0.882812 0.265625 +vt 0.179687 0.265625 +vt 0.296875 0.265625 +vt 0.765625 0.265625 +vt 0.835937 0.265625 +vt 0.734375 0.265625 +vt 0.789062 0.265625 +vt 0.703125 0.265625 +vt 0.742187 0.265625 +vt 0.671875 0.265625 +vt 0.695312 0.265625 +vt 0.640625 0.265625 +vt 0.609375 0.265625 +vt 0.578125 0.265625 +vt 0.546875 0.265625 +vt 0.515625 0.265625 +vt 0.484375 0.265625 +vt 0.453125 0.265625 +vt 0.367187 0.265625 +vt 0.421875 0.265625 +vt 0.320312 0.265625 +vt 0.390625 0.265625 +vt 0.273437 0.265625 +vt 0.359375 0.265625 +vt 0.226562 0.265625 +vt 0.328125 0.265625 +s off +f 6/1 7/2 8/3 +f 9/4 6/1 8/3 +f 10/5 9/4 8/3 +f 11/6 10/5 8/3 +f 12/7 11/6 8/3 +f 13/8 12/7 8/3 +f 14/9 13/8 8/3 +f 15/10 14/9 8/3 +f 16/11 15/10 8/3 +f 17/12 16/11 8/3 +f 18/13 17/12 8/3 +f 19/14 18/13 8/3 +f 20/15 19/14 8/3 +f 21/16 20/15 8/3 +f 22/17 21/16 8/3 +f 23/18 24/19 25/20 +f 26/21 23/18 25/20 +f 27/22 26/21 25/20 +f 28/23 27/22 25/20 +f 29/24 28/23 25/20 +f 30/25 29/24 25/20 +f 31/26 30/25 25/20 +f 32/27 31/26 25/20 +f 33/28 32/27 25/20 +f 34/29 33/28 25/20 +f 35/30 34/29 25/20 +f 36/31 35/30 25/20 +f 37/32 36/31 25/20 +f 38/33 37/32 25/20 +f 39/34 38/33 25/20 +f 24/19 39/34 25/20 +f 7/2 22/17 8/3 +f 26/35 20/36 21/37 23/38 +f 23/38 21/37 22/39 24/40 +f 27/41 19/42 20/36 26/35 +f 28/43 18/44 19/42 27/41 +f 29/45 17/46 18/47 28/48 +f 30/49 16/50 17/46 29/45 +f 31/51 15/52 16/50 30/49 +f 32/53 14/54 15/52 31/51 +f 33/55 13/56 14/54 32/53 +f 34/57 12/58 13/56 33/55 +f 35/59 11/60 12/58 34/57 +f 36/61 10/62 11/60 35/59 +f 37/63 9/64 10/62 36/61 +f 38/65 6/66 9/64 37/63 +f 39/67 7/68 6/66 38/65 +f 24/40 22/39 7/68 39/67 +f 40/69 41/70 42/71 43/72 +f 46/73 45/74 41/70 40/69 +f 49/75 48/76 51/77 50/78 +f 54/79 55/80 53/81 52/82 +f 56/83 57/84 55/80 54/79 +f 58/85 59/86 57/84 56/83 +f 5/87 4/88 59/86 58/85 +f 62/89 63/90 61/91 60/92 +f 64/93 65/94 63/90 62/89 +f 43/72 42/71 65/95 64/96 +f 1/97 3/98 4/88 5/87 +f 2/99 44/100 45/74 46/73 +f 66/101 47/102 48/76 49/75 +f 50/78 51/77 44/100 2/99 +f 52/82 53/81 47/102 66/101 +f 60/92 61/91 3/98 1/97 +f 86/103 105/104 67/105 +f 87/106 86/103 67/105 +f 88/107 87/106 67/105 +f 90/108 88/107 67/105 +f 91/109 90/108 67/105 +f 92/110 91/109 67/105 +f 93/111 92/110 67/105 +f 94/112 93/111 67/105 +f 95/113 94/112 67/105 +f 96/114 95/113 67/105 +f 97/115 96/114 67/105 +f 98/116 97/115 67/105 +f 99/117 98/116 67/105 +f 84/118 99/117 67/105 +f 85/119 84/118 67/105 +f 105/104 85/119 67/105 +f 102/120 89/121 73/122 70/123 +f 103/124 102/120 70/123 71/125 +f 104/126 103/124 71/125 72/127 +f 106/128 104/126 72/127 74/129 +f 107/130 106/128 74/129 75/131 +f 108/103 107/130 75/131 76/132 +f 109/108 108/103 76/132 77/133 +f 110/111 109/108 77/133 78/134 +f 111/114 110/111 78/134 79/135 +f 112/117 111/114 79/135 80/136 +f 113/104 112/117 80/136 81/137 +f 114/138 113/104 81/137 82/139 +f 115/140 114/138 82/139 83/141 +f 100/142 115/140 83/141 68/143 +f 101/144 100/142 68/143 69/145 +f 89/121 101/144 69/145 73/122 +f 70/123 73/122 105/104 86/103 +f 71/125 70/123 86/103 87/106 +f 72/127 71/125 87/106 88/107 +f 74/129 72/127 88/107 90/108 +f 75/131 74/129 90/108 91/109 +f 76/132 75/131 91/109 92/110 +f 77/133 76/132 92/110 93/111 +f 78/134 77/133 93/111 94/112 +f 79/135 78/134 94/112 95/113 +f 80/136 79/135 95/113 96/114 +f 81/137 80/136 96/114 97/115 +f 82/139 81/137 97/115 98/116 +f 83/141 82/139 98/116 99/117 +f 68/143 83/141 99/117 84/118 +f 69/145 68/143 84/118 85/119 +f 73/122 69/145 85/119 105/104 +f 64/96 62/89 89/121 102/120 +f 43/72 64/96 102/120 103/124 +f 40/69 43/72 103/124 104/126 +f 46/73 40/69 104/126 106/128 +f 2/99 46/73 106/128 107/130 +f 50/78 2/99 107/130 108/103 +f 49/75 50/78 108/103 109/108 +f 66/101 49/75 109/108 110/111 +f 52/82 66/101 110/111 111/114 +f 54/79 52/82 111/114 112/117 +f 56/83 54/79 112/117 113/104 +f 58/85 56/83 113/104 114/138 +f 5/87 58/85 114/138 115/140 +f 1/97 5/87 115/140 100/142 +f 60/92 1/97 100/142 101/144 +f 62/89 60/92 101/144 89/121 diff --git a/mods/pipeworks/models/pipeworks_pipe_3.obj b/mods/pipeworks/models/pipeworks_pipe_3.obj new file mode 100644 index 0000000..f126551 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pipe_3.obj @@ -0,0 +1,354 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-2way-straight.blend' +# www.blender.org +mtllib pipeworks_pipe_3.mtl +o Cube.001 +v 0.468750 -0.153248 0.030483 +v 0.500000 -0.153248 0.030483 +v 0.468750 -0.153248 -0.030483 +v 0.500000 -0.153248 -0.030483 +v 0.468750 -0.129917 -0.086808 +v 0.500000 -0.129917 -0.086808 +v 0.468750 -0.086808 -0.129917 +v 0.500000 -0.086808 -0.129917 +v 0.468750 -0.030483 -0.153248 +v 0.500000 -0.030483 -0.153248 +v 0.468750 0.030483 -0.153248 +v 0.500000 0.030483 -0.153248 +v 0.468750 0.086808 -0.129917 +v 0.500000 0.086808 -0.129917 +v 0.468750 0.129917 -0.086808 +v 0.500000 0.129917 -0.086808 +v 0.468750 0.153248 -0.030483 +v 0.500000 0.153247 -0.030483 +v 0.468750 0.153248 0.030483 +v 0.500000 0.153248 0.030483 +v 0.468750 0.129917 0.086808 +v 0.500000 0.129917 0.086808 +v 0.468750 0.086808 0.129917 +v 0.500000 0.086808 0.129917 +v 0.468750 0.030483 0.153248 +v 0.500000 0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.500000 -0.030483 0.153248 +v 0.468750 -0.086808 0.129917 +v 0.500000 -0.086808 0.129917 +v 0.468750 -0.129917 0.086808 +v 0.500000 -0.129917 0.086808 +v 0.468750 -0.122598 0.024386 +v 0.468750 -0.122598 -0.024386 +v 0.468750 -0.103934 -0.069446 +v 0.468750 -0.069446 -0.103934 +v 0.468750 -0.024386 -0.122598 +v 0.468750 0.024386 -0.122598 +v 0.468750 0.069446 -0.103934 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.122598 -0.024386 +v 0.468750 0.122598 0.024386 +v 0.468750 0.103934 0.069446 +v 0.468750 0.069446 0.103934 +v 0.468750 0.024386 0.122598 +v 0.468750 -0.024387 0.122598 +v 0.468750 -0.069447 0.103934 +v 0.468750 -0.103934 0.069446 +v 0.468750 -0.000000 -0.000000 +v 0.500000 -0.000000 0.000000 +v -0.468750 -0.069446 -0.103934 +v -0.468750 -0.103933 -0.069446 +v -0.468750 -0.122598 -0.024387 +v -0.468750 -0.122598 0.024386 +v -0.500000 -0.129917 0.086808 +v -0.468750 -0.129917 0.086808 +v -0.500000 -0.086808 0.129917 +v -0.468750 -0.086808 0.129917 +v -0.500000 -0.030483 0.153247 +v -0.468750 -0.030483 0.153248 +v -0.500000 0.030483 0.153247 +v -0.468750 0.030483 0.153248 +v -0.500000 0.086808 0.129917 +v -0.468750 0.086808 0.129917 +v -0.500000 0.129917 0.086808 +v -0.468750 0.129917 0.086808 +v -0.500000 0.153248 0.030483 +v -0.468750 0.153248 0.030483 +v -0.500000 0.153248 -0.030483 +v -0.468750 0.153248 -0.030483 +v -0.500000 0.129917 -0.086808 +v -0.468750 0.129917 -0.086808 +v -0.500000 0.086808 -0.129917 +v -0.468750 0.086808 -0.129917 +v -0.500000 0.030483 -0.153248 +v -0.468750 0.030483 -0.153248 +v -0.500000 -0.030483 -0.153248 +v -0.468750 -0.030483 -0.153248 +v -0.500000 -0.086808 -0.129917 +v -0.468750 -0.086808 -0.129917 +v -0.500000 -0.129917 -0.086808 +v -0.468750 -0.129917 -0.086808 +v -0.500000 -0.153247 -0.030483 +v -0.468750 -0.153247 -0.030483 +v -0.500000 -0.153247 0.030483 +v -0.468750 -0.153247 0.030483 +v -0.468750 -0.024386 -0.122598 +v -0.468750 0.024387 -0.122598 +v -0.468750 0.069447 -0.103934 +v -0.468750 0.103934 -0.069446 +v -0.468750 0.122598 -0.024386 +v -0.468750 0.122598 0.024386 +v -0.468750 0.103934 0.069446 +v -0.468750 0.069447 0.103934 +v -0.468750 0.024387 0.122598 +v -0.468750 -0.024386 0.122598 +v -0.468750 -0.069446 0.103933 +v -0.468750 -0.103933 0.069446 +v -0.468750 0.000000 -0.000000 +v -0.500000 0.000000 -0.000000 +vt 0.750000 0.546875 +vt 0.687500 0.546875 +vt 0.687500 0.609375 +vt 0.750000 0.609375 +vt 0.625000 0.546875 +vt 0.625000 0.609375 +vt 0.562500 0.546875 +vt 0.562500 0.609375 +vt 0.500000 0.546875 +vt 0.500000 0.609375 +vt 0.437500 0.546875 +vt 0.437500 0.609375 +vt 0.375000 0.546875 +vt 0.375000 0.609375 +vt 0.312500 0.546875 +vt 0.312500 0.609375 +vt 0.250000 0.546875 +vt 0.250000 0.609375 +vt 0.187500 0.546875 +vt 0.187500 0.609375 +vt 0.125000 0.546875 +vt 0.125000 0.609375 +vt 0.062500 0.546875 +vt 0.062500 0.609375 +vt 0.000000 0.546875 +vt 0.000000 0.609375 +vt 1.000000 0.546875 +vt 0.937500 0.546875 +vt 0.937500 0.609375 +vt 1.000000 0.609375 +vt 0.875000 0.546875 +vt 0.875000 0.609375 +vt 0.812500 0.546875 +vt 0.812500 0.609375 +vt 0.218363 0.657325 +vt 0.185866 0.820702 +vt 0.153368 0.657325 +vt 0.531836 0.657325 +vt 0.564334 0.820702 +vt 0.596832 0.657325 +vt 0.656879 0.682198 +vt 0.702838 0.728156 +vt 0.727710 0.788204 +vt 0.727710 0.853199 +vt 0.702838 0.913247 +vt 0.656879 0.959205 +vt 0.596831 0.984078 +vt 0.531836 0.984078 +vt 0.471788 0.959205 +vt 0.425830 0.913247 +vt 0.400957 0.853199 +vt 0.400957 0.788204 +vt 0.425830 0.728156 +vt 0.471789 0.682198 +vt 0.093321 0.682198 +vt 0.047362 0.728156 +vt 0.022489 0.788204 +vt 0.022489 0.853199 +vt 0.047362 0.913247 +vt 0.093320 0.959205 +vt 0.153368 0.984078 +vt 0.218363 0.984078 +vt 0.278411 0.959205 +vt 0.324369 0.913247 +vt 0.349242 0.853199 +vt 0.349242 0.788204 +vt 0.324369 0.728156 +vt 0.278411 0.682198 +vt 0.187500 0.515625 +vt 0.187500 0.015625 +vt 0.250000 0.015625 +vt 0.250000 0.515625 +vt 0.093322 0.682190 +vt 0.153370 0.657318 +vt 0.185867 0.820694 +vt 0.047364 0.728149 +vt 0.022491 0.788196 +vt 0.022491 0.853192 +vt 0.047364 0.913239 +vt 0.093322 0.959198 +vt 0.153370 0.984070 +vt 0.218365 0.984070 +vt 0.278413 0.959198 +vt 0.324371 0.913239 +vt 0.349244 0.853192 +vt 0.349244 0.788196 +vt 0.324371 0.728149 +vt 0.278413 0.682190 +vt 0.218365 0.657318 +vt 0.471785 0.682190 +vt 0.531832 0.657318 +vt 0.564330 0.820694 +vt 0.425826 0.728149 +vt 0.400953 0.788196 +vt 0.400953 0.853192 +vt 0.425826 0.913239 +vt 0.471785 0.959198 +vt 0.531832 0.984070 +vt 0.596827 0.984070 +vt 0.656875 0.959198 +vt 0.702834 0.913239 +vt 0.727706 0.853192 +vt 0.727706 0.788196 +vt 0.702834 0.728149 +vt 0.656875 0.682190 +vt 0.596827 0.657318 +vt 0.875000 0.515625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.515625 +vt 0.750000 0.515625 +vt 0.750000 0.015625 +vt 0.812500 0.015625 +vt 0.812500 0.515625 +vt 0.562500 0.515625 +vt 0.562500 0.015625 +vt 0.625000 0.015625 +vt 0.625000 0.515625 +vt 0.687500 0.515625 +vt 0.687500 0.015625 +vt 0.500000 0.515625 +vt 0.500000 0.015625 +vt 0.437500 0.515625 +vt 0.437500 0.015625 +vt 0.375000 0.515625 +vt 0.375000 0.015625 +vt 0.312500 0.515625 +vt 0.312500 0.015625 +vt 0.125000 0.515625 +vt 0.125000 0.015625 +vt 0.062500 0.515625 +vt 0.062500 0.015625 +vt 0.000000 0.515625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.515625 +usemtl None +s off +f 1/1 3/2 4/3 2/4 +f 3/2 5/5 6/6 4/3 +f 5/5 7/7 8/8 6/6 +f 7/7 9/9 10/10 8/8 +f 9/9 11/11 12/12 10/10 +f 11/11 13/13 14/14 12/12 +f 13/13 15/15 16/16 14/14 +f 15/15 17/17 18/18 16/16 +f 17/17 19/19 20/20 18/18 +f 19/19 21/21 22/22 20/20 +f 21/21 23/23 24/24 22/22 +f 23/23 25/25 26/26 24/24 +f 25/27 27/28 28/29 26/30 +f 27/28 29/31 30/32 28/29 +f 31/33 1/1 2/4 32/34 +f 29/31 31/33 32/34 30/32 +f 4/35 50/36 2/37 +f 1/38 49/39 3/40 +f 3/40 49/39 5/41 +f 5/41 49/39 7/42 +f 7/42 49/39 9/43 +f 9/43 49/39 11/44 +f 11/44 49/39 13/45 +f 13/45 49/39 15/46 +f 15/46 49/39 17/47 +f 17/47 49/39 19/48 +f 19/48 49/39 21/49 +f 21/49 49/39 23/50 +f 23/50 49/39 25/51 +f 25/51 49/39 27/52 +f 27/52 49/39 29/53 +f 29/53 49/39 31/54 +f 31/54 49/39 1/38 +f 2/37 50/36 32/55 +f 32/55 50/36 30/56 +f 30/56 50/36 28/57 +f 28/57 50/36 26/58 +f 26/58 50/36 24/59 +f 24/59 50/36 22/60 +f 22/60 50/36 20/61 +f 20/61 50/36 18/62 +f 18/62 50/36 16/63 +f 16/63 50/36 14/64 +f 14/64 50/36 12/65 +f 12/65 50/36 10/66 +f 10/66 50/36 8/67 +f 8/67 50/36 6/68 +f 6/68 50/36 4/35 +f 41/69 91/70 92/71 42/72 +f 81/73 83/74 100/75 +f 79/76 81/73 100/75 +f 77/77 79/76 100/75 +f 75/78 77/77 100/75 +f 73/79 75/78 100/75 +f 71/80 73/79 100/75 +f 69/81 71/80 100/75 +f 67/82 69/81 100/75 +f 65/83 67/82 100/75 +f 63/84 65/83 100/75 +f 61/85 63/84 100/75 +f 59/86 61/85 100/75 +f 57/87 59/86 100/75 +f 55/88 57/87 100/75 +f 85/89 55/88 100/75 +f 56/90 86/91 99/92 +f 58/93 56/90 99/92 +f 60/94 58/93 99/92 +f 62/95 60/94 99/92 +f 64/96 62/95 99/92 +f 66/97 64/96 99/92 +f 68/98 66/97 99/92 +f 70/99 68/98 99/92 +f 72/100 70/99 99/92 +f 74/101 72/100 99/92 +f 76/102 74/101 99/92 +f 78/103 76/102 99/92 +f 80/104 78/103 99/92 +f 82/105 80/104 99/92 +f 84/106 82/105 99/92 +f 86/91 84/106 99/92 +f 83/74 85/89 100/75 +f 58/22 57/21 55/19 56/20 +f 56/20 55/19 85/17 86/18 +f 60/24 59/23 57/21 58/22 +f 62/26 61/25 59/23 60/24 +f 64/29 63/28 61/27 62/30 +f 66/32 65/31 63/28 64/29 +f 68/34 67/33 65/31 66/32 +f 70/4 69/1 67/33 68/34 +f 72/3 71/2 69/1 70/4 +f 74/6 73/5 71/2 72/3 +f 76/8 75/7 73/5 74/6 +f 78/10 77/9 75/7 76/8 +f 80/12 79/11 77/9 78/10 +f 82/14 81/13 79/11 80/12 +f 84/16 83/15 81/13 82/14 +f 86/18 85/17 83/15 84/16 +f 36/107 51/108 87/109 37/110 +f 34/111 53/112 52/113 35/114 +f 47/115 97/116 98/117 48/118 +f 33/119 54/120 53/112 34/111 +f 35/114 52/113 51/108 36/107 +f 48/118 98/117 54/120 33/119 +f 46/121 96/122 97/116 47/115 +f 45/123 95/124 96/122 46/121 +f 44/125 94/126 95/124 45/123 +f 43/127 93/128 94/126 44/125 +f 42/72 92/71 93/128 43/127 +f 40/129 90/130 91/70 41/69 +f 39/131 89/132 90/130 40/129 +f 38/133 88/134 89/132 39/131 +f 37/110 87/109 88/135 38/136 diff --git a/mods/pipeworks/models/pipeworks_pipe_4.obj b/mods/pipeworks/models/pipeworks_pipe_4.obj new file mode 100644 index 0000000..0ef583f --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pipe_4.obj @@ -0,0 +1,478 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-2way-corner.blend' +# www.blender.org +mtllib pipeworks_pipe_4.mtl +o pipe.001_Cylinder.000 +v -0.024386 -0.024391 0.122598 +v -0.024387 -0.468750 0.122598 +v 0.024386 -0.468750 0.122598 +v 0.024386 -0.024391 0.122598 +v -0.086808 -0.500000 -0.129917 +v -0.030483 -0.500000 -0.153247 +v -0.000000 -0.500000 0.000000 +v -0.129917 -0.500000 -0.086808 +v -0.153248 -0.500000 -0.030483 +v -0.153248 -0.500000 0.030483 +v -0.129917 -0.500000 0.086808 +v -0.086808 -0.500000 0.129917 +v -0.030483 -0.500000 0.153248 +v 0.030483 -0.500000 0.153248 +v 0.086808 -0.500000 0.129917 +v 0.129917 -0.500000 0.086808 +v 0.153247 -0.500000 0.030483 +v 0.153248 -0.500000 -0.030483 +v 0.129917 -0.500000 -0.086808 +v 0.086808 -0.500000 -0.129917 +v 0.030483 -0.500000 -0.153247 +v 0.086808 -0.468750 -0.129917 +v 0.030483 -0.468750 -0.153248 +v -0.000000 -0.468750 0.000000 +v 0.129917 -0.468750 -0.086808 +v 0.153248 -0.468750 -0.030483 +v 0.153247 -0.468750 0.030483 +v 0.129917 -0.468750 0.086808 +v 0.086808 -0.468750 0.129917 +v 0.030483 -0.468750 0.153248 +v -0.030483 -0.468750 0.153248 +v -0.086808 -0.468750 0.129917 +v -0.129917 -0.468750 0.086808 +v -0.153248 -0.468750 0.030483 +v -0.153248 -0.468750 -0.030483 +v -0.129917 -0.468750 -0.086808 +v -0.086808 -0.468750 -0.129917 +v -0.030483 -0.468750 -0.153248 +v -0.103934 -0.024391 -0.069446 +v -0.103934 -0.468750 -0.069446 +v -0.122598 -0.468750 -0.024386 +v -0.122598 -0.024391 -0.024386 +v -0.024386 -0.024391 -0.122598 +v -0.024386 -0.468750 -0.122598 +v -0.069446 -0.468750 -0.103933 +v -0.069446 -0.024391 -0.103934 +v 0.103934 -0.024391 -0.069446 +v 0.103933 -0.468750 -0.069446 +v 0.069446 -0.468750 -0.103934 +v 0.069446 -0.024391 -0.103934 +v 0.024386 -0.024391 -0.122598 +v 0.024386 -0.468750 -0.122598 +v 0.122598 -0.024391 -0.024386 +v 0.122598 -0.468750 -0.024386 +v 0.122598 -0.024391 0.024386 +v 0.122598 -0.468750 0.024386 +v 0.103934 -0.024391 0.069446 +v 0.103933 -0.468750 0.069447 +v 0.069446 -0.024391 0.103934 +v 0.069446 -0.468750 0.103934 +v -0.069446 -0.024391 0.103934 +v -0.069447 -0.468750 0.103934 +v -0.103934 -0.024391 0.069446 +v -0.103934 -0.468750 0.069446 +v -0.122598 -0.024391 0.024386 +v -0.122598 -0.468750 0.024386 +v -0.041924 0.041589 0.103934 +v -0.041925 0.041589 -0.103934 +v -0.010062 0.009727 -0.122598 +v -0.079509 0.079173 -0.024386 +v -0.066311 0.065976 -0.069446 +v -0.024663 0.094826 -0.069446 +v -0.011464 0.062964 0.103934 +v -0.024662 0.094827 0.069446 +v -0.031805 0.112070 0.024386 +v -0.031805 0.112070 -0.024386 +v 0.005779 0.021334 -0.122598 +v -0.011464 0.062964 -0.103934 +v 0.005780 0.021334 0.122598 +v -0.079509 0.079173 0.024386 +v -0.066311 0.065976 0.069446 +v 0.468750 -0.024387 0.122599 +v 0.468750 0.024386 0.122599 +v 0.024391 0.024386 0.122598 +v 0.500000 -0.086808 -0.129917 +v 0.500000 -0.030483 -0.153247 +v 0.500000 -0.000000 0.000001 +v 0.500000 -0.129917 -0.086807 +v 0.500000 -0.153248 -0.030482 +v 0.500000 -0.153248 0.030483 +v 0.500000 -0.129917 0.086808 +v 0.500000 -0.086808 0.129918 +v 0.500000 -0.030483 0.153248 +v 0.500000 0.030483 0.153248 +v 0.500000 0.086808 0.129918 +v 0.500000 0.129917 0.086808 +v 0.500000 0.153247 0.030483 +v 0.500000 0.153247 -0.030482 +v 0.500000 0.129917 -0.086807 +v 0.500000 0.086808 -0.129917 +v 0.500000 0.030483 -0.153247 +v 0.468750 0.086808 -0.129917 +v 0.468750 0.030483 -0.153247 +v 0.468750 -0.000000 -0.000000 +v 0.468750 0.129917 -0.086807 +v 0.468750 0.153247 -0.030482 +v 0.468750 0.153247 0.030483 +v 0.468750 0.129917 0.086808 +v 0.468750 0.086808 0.129918 +v 0.468750 0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.468750 -0.086808 0.129918 +v 0.468750 -0.129917 0.086808 +v 0.468750 -0.153248 0.030483 +v 0.468750 -0.153248 -0.030482 +v 0.468750 -0.129917 -0.086807 +v 0.468750 -0.086808 -0.129917 +v 0.468750 -0.030483 -0.153247 +v 0.024391 -0.103934 -0.069446 +v 0.468750 -0.103934 -0.069446 +v 0.468750 -0.122598 -0.024386 +v 0.024391 -0.122598 -0.024386 +v 0.468750 -0.024387 -0.122598 +v 0.468750 -0.069447 -0.103933 +v 0.024391 -0.069446 -0.103934 +v 0.468750 0.103933 -0.069446 +v 0.468750 0.069446 -0.103933 +v 0.024391 0.069446 -0.103934 +v 0.024391 0.024386 -0.122598 +v 0.468750 0.024386 -0.122598 +v 0.024391 0.122598 -0.024386 +v 0.468750 0.122598 -0.024386 +v 0.024391 0.122598 0.024386 +v 0.468750 0.122598 0.024387 +v 0.024391 0.103934 0.069446 +v 0.468750 0.103933 0.069447 +v 0.024391 0.069446 0.103934 +v 0.468750 0.069446 0.103934 +v 0.024391 -0.069446 0.103934 +v 0.468750 -0.069447 0.103934 +v 0.024391 -0.103934 0.069446 +v 0.468750 -0.103934 0.069447 +v 0.024391 -0.122598 0.024386 +v 0.468750 -0.122598 0.024387 +v 0.024390 0.103934 -0.069446 +v -0.020763 -0.005780 0.122598 +v -0.111499 0.031804 0.024386 +v -0.094256 0.024662 0.069446 +v -0.062393 0.011464 0.103934 +v -0.062393 0.011464 -0.103934 +v -0.020763 -0.005780 -0.122598 +v -0.111499 0.031804 -0.024386 +v -0.094256 0.024662 -0.069446 +v -0.010062 0.009727 0.122598 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.250000 0.015625 +vt 0.250000 0.265625 +vt 0.093322 0.682190 +vt 0.153370 0.657318 +vt 0.185867 0.820694 +vt 0.047364 0.728149 +vt 0.022491 0.788196 +vt 0.022491 0.853192 +vt 0.047364 0.913239 +vt 0.093322 0.959198 +vt 0.153370 0.984070 +vt 0.218365 0.984070 +vt 0.278413 0.959198 +vt 0.324371 0.913239 +vt 0.349244 0.853192 +vt 0.349244 0.788196 +vt 0.324371 0.728149 +vt 0.278413 0.682190 +vt 0.218365 0.657318 +vt 0.471785 0.682190 +vt 0.531832 0.657318 +vt 0.564330 0.820694 +vt 0.425826 0.728149 +vt 0.400953 0.788196 +vt 0.400953 0.853192 +vt 0.425826 0.913239 +vt 0.471785 0.959198 +vt 0.531832 0.984070 +vt 0.596827 0.984070 +vt 0.656875 0.959198 +vt 0.702834 0.913239 +vt 0.727706 0.853192 +vt 0.727706 0.788196 +vt 0.702834 0.728149 +vt 0.656875 0.682190 +vt 0.596827 0.657318 +vt 0.125000 0.609375 +vt 0.125000 0.546875 +vt 0.187500 0.546875 +vt 0.187500 0.609375 +vt 0.250000 0.546875 +vt 0.250000 0.609375 +vt 0.062500 0.609375 +vt 0.062500 0.546875 +vt 0.000000 0.609375 +vt 0.000000 0.546875 +vt 0.937500 0.609375 +vt 0.937500 0.546875 +vt 1.000000 0.546875 +vt 1.000000 0.609375 +vt 0.875000 0.609375 +vt 0.875000 0.546875 +vt 0.812500 0.609375 +vt 0.812500 0.546875 +vt 0.750000 0.609375 +vt 0.750000 0.546875 +vt 0.687500 0.609375 +vt 0.687500 0.546875 +vt 0.625000 0.609375 +vt 0.625000 0.546875 +vt 0.562500 0.609375 +vt 0.562500 0.546875 +vt 0.500000 0.609375 +vt 0.500000 0.546875 +vt 0.437500 0.609375 +vt 0.437500 0.546875 +vt 0.375000 0.609375 +vt 0.375000 0.546875 +vt 0.312500 0.609375 +vt 0.312500 0.546875 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.812500 0.015625 +vt 0.812500 0.265625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.625000 0.015625 +vt 0.625000 0.265625 +vt 0.687500 0.265625 +vt 0.687500 0.015625 +vt 0.500000 0.265625 +vt 0.500000 0.015625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.125000 0.265625 +vt 0.125000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.201671 0.341280 +vt 0.315528 0.341280 +vt 0.307071 0.384726 +vt 0.531250 0.296875 +vt 0.531250 0.343750 +vt 0.484375 0.343750 +vt 0.484375 0.296875 +vt 0.437500 0.343750 +vt 0.437500 0.296875 +vt 0.390625 0.296875 +vt 0.390625 0.343750 +vt 0.343750 0.343750 +vt 0.343750 0.296875 +vt 0.578125 0.296875 +vt 0.578125 0.343750 +vt 0.625000 0.296875 +vt 0.625000 0.343750 +vt 0.671875 0.296875 +vt 0.671875 0.343750 +vt 0.801371 0.340121 +vt 0.695971 0.383568 +vt 0.687514 0.340121 +vt 0.720953 0.419768 +vt 0.757935 0.446864 +vt 0.801382 0.453989 +vt 0.625000 0.484375 +vt 0.625000 0.437500 +vt 0.671875 0.437500 +vt 0.671875 0.484375 +vt 0.625000 0.390625 +vt 0.671875 0.390625 +vt 0.578125 0.390625 +vt 0.531250 0.390625 +vt 0.484375 0.390625 +vt 0.437500 0.390625 +vt 0.282090 0.420927 +vt 0.245108 0.448023 +vt 0.201660 0.455148 +vt 0.390625 0.390625 +vt 0.343750 0.390625 +vt 0.390625 0.437500 +vt 0.343750 0.437500 +vt 0.343750 0.484375 +vt 0.390625 0.484375 +vt 0.437500 0.437500 +vt 0.437500 0.484375 +vt 0.484375 0.437500 +vt 0.484375 0.484375 +vt 0.531250 0.437500 +vt 0.531250 0.484375 +vt 0.578125 0.484375 +vt 0.578125 0.437500 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 5/5 6/6 7/7 +f 8/8 5/5 7/7 +f 9/9 8/8 7/7 +f 10/10 9/9 7/7 +f 11/11 10/10 7/7 +f 12/12 11/11 7/7 +f 13/13 12/12 7/7 +f 14/14 13/13 7/7 +f 15/15 14/14 7/7 +f 16/16 15/15 7/7 +f 17/17 16/16 7/7 +f 18/18 17/17 7/7 +f 19/19 18/18 7/7 +f 20/20 19/19 7/7 +f 21/21 20/20 7/7 +f 22/22 23/23 24/24 +f 25/25 22/22 24/24 +f 26/26 25/25 24/24 +f 27/27 26/26 24/24 +f 28/28 27/27 24/24 +f 29/29 28/28 24/24 +f 30/30 29/29 24/24 +f 31/31 30/30 24/24 +f 32/32 31/31 24/24 +f 33/33 32/32 24/24 +f 34/34 33/33 24/24 +f 35/35 34/34 24/24 +f 36/36 35/35 24/24 +f 37/37 36/36 24/24 +f 38/38 37/37 24/24 +f 23/23 38/38 24/24 +f 6/6 21/21 7/7 +f 25/39 19/40 20/41 22/42 +f 22/42 20/41 21/43 23/44 +f 26/45 18/46 19/40 25/39 +f 27/47 17/48 18/46 26/45 +f 28/49 16/50 17/51 27/52 +f 29/53 15/54 16/50 28/49 +f 30/55 14/56 15/54 29/53 +f 31/57 13/58 14/56 30/55 +f 32/59 12/60 13/58 31/57 +f 33/61 11/62 12/60 32/59 +f 34/63 10/64 11/62 33/61 +f 35/65 9/66 10/64 34/63 +f 36/67 8/68 9/66 35/65 +f 37/69 5/70 8/68 36/67 +f 38/71 6/72 5/70 37/69 +f 23/44 21/43 6/72 38/71 +f 39/73 40/74 41/75 42/76 +f 43/77 44/78 45/79 46/80 +f 47/81 48/82 49/83 50/84 +f 51/85 52/86 44/78 43/77 +f 46/80 45/79 40/74 39/73 +f 50/84 49/83 52/86 51/85 +f 53/87 54/88 48/82 47/81 +f 55/89 56/90 54/88 53/87 +f 57/91 58/92 56/90 55/89 +f 59/93 60/94 58/92 57/91 +f 4/4 3/3 60/94 59/93 +f 2/2 1/1 61/95 62/96 +f 63/97 64/98 62/96 61/95 +f 65/99 66/100 64/98 63/97 +f 42/76 41/75 66/101 65/102 +f 85/5 86/6 87/7 +f 88/8 85/5 87/7 +f 89/9 88/8 87/7 +f 90/10 89/9 87/7 +f 91/11 90/10 87/7 +f 92/12 91/11 87/7 +f 93/13 92/12 87/7 +f 94/14 93/13 87/7 +f 95/15 94/14 87/7 +f 96/16 95/15 87/7 +f 97/17 96/16 87/7 +f 98/18 97/17 87/7 +f 99/19 98/18 87/7 +f 100/20 99/19 87/7 +f 101/21 100/20 87/7 +f 102/22 103/23 104/24 +f 105/25 102/22 104/24 +f 106/26 105/25 104/24 +f 107/27 106/26 104/24 +f 108/28 107/27 104/24 +f 109/29 108/28 104/24 +f 110/30 109/29 104/24 +f 111/31 110/30 104/24 +f 112/32 111/31 104/24 +f 113/33 112/32 104/24 +f 114/34 113/33 104/24 +f 115/35 114/34 104/24 +f 116/36 115/35 104/24 +f 117/37 116/36 104/24 +f 118/38 117/37 104/24 +f 103/23 118/38 104/24 +f 86/6 101/21 87/7 +f 105/39 99/40 100/41 102/42 +f 102/42 100/41 101/43 103/44 +f 106/45 98/46 99/40 105/39 +f 107/47 97/48 98/46 106/45 +f 108/49 96/50 97/51 107/52 +f 109/53 95/54 96/50 108/49 +f 110/55 94/56 95/54 109/53 +f 111/57 93/58 94/56 110/55 +f 112/59 92/60 93/58 111/57 +f 113/61 91/62 92/60 112/59 +f 114/63 90/64 91/62 113/61 +f 115/65 89/66 90/64 114/63 +f 116/67 88/68 89/66 115/65 +f 117/69 85/70 88/68 116/67 +f 118/71 86/72 85/70 117/69 +f 103/44 101/43 86/72 118/71 +f 119/73 120/74 121/75 122/76 +f 125/80 124/79 120/74 119/73 +f 128/84 127/83 130/86 129/85 +f 133/89 134/90 132/88 131/87 +f 135/91 136/92 134/90 133/89 +f 137/93 138/94 136/92 135/91 +f 84/4 83/3 138/94 137/93 +f 141/97 142/98 140/96 139/95 +f 143/99 144/100 142/98 141/97 +f 122/76 121/75 144/101 143/102 +f 4/1 82/2 83/3 84/4 +f 51/77 123/78 124/79 125/80 +f 145/81 126/82 127/83 128/84 +f 129/85 130/86 123/78 51/77 +f 131/87 132/88 126/82 145/81 +f 139/95 140/96 82/2 4/1 +f 51/103 43/104 151/105 +f 65/106 147/107 152/108 42/109 +f 42/109 152/108 153/110 39/111 +f 46/112 39/111 153/110 150/113 +f 46/112 150/113 151/114 43/115 +f 65/106 63/116 148/117 147/107 +f 63/116 61/118 149/119 148/117 +f 61/118 1/120 146/121 149/119 +f 4/122 146/123 1/124 +f 4/122 154/125 146/123 +f 4/122 79/126 154/125 +f 79/126 4/122 84/127 +f 137/128 73/129 79/130 84/131 +f 73/129 67/132 154/133 79/130 +f 149/119 146/121 154/133 67/132 +f 81/134 148/117 149/119 67/132 +f 80/135 147/107 148/117 81/134 +f 80/135 70/136 152/108 147/107 +f 70/136 71/137 153/110 152/108 +f 51/103 151/105 69/138 +f 51/103 69/138 77/139 +f 77/139 129/140 51/103 +f 150/113 68/141 69/142 151/114 +f 78/143 77/144 69/142 68/141 +f 68/141 150/113 153/110 71/137 +f 129/145 77/144 78/143 128/146 +f 78/143 68/141 71/137 72/147 +f 78/143 72/147 145/148 128/146 +f 76/149 72/147 71/137 70/136 +f 76/149 131/150 145/148 72/147 +f 80/135 75/151 76/149 70/136 +f 133/152 131/150 76/149 75/151 +f 135/153 133/152 75/151 74/154 +f 75/151 80/135 81/134 74/154 +f 74/154 81/134 67/132 73/129 +f 137/128 135/153 74/154 73/129 diff --git a/mods/pipeworks/models/pipeworks_pipe_5.obj b/mods/pipeworks/models/pipeworks_pipe_5.obj new file mode 100644 index 0000000..abf8b97 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pipe_5.obj @@ -0,0 +1,542 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-3way-corner.blend' +# www.blender.org +o pipe.001_Cylinder.000 +v 0.122598 -0.024391 0.024386 +v 0.122598 -0.468750 0.024387 +v 0.122598 -0.468750 -0.024386 +v 0.122598 -0.024391 -0.024386 +v -0.129917 -0.500000 0.086808 +v -0.153247 -0.500000 0.030483 +v 0.000000 -0.500000 -0.000000 +v -0.086808 -0.500000 0.129917 +v -0.030483 -0.500000 0.153248 +v 0.030483 -0.500000 0.153248 +v 0.086808 -0.500000 0.129917 +v 0.129917 -0.500000 0.086808 +v 0.153248 -0.500000 0.030483 +v 0.153248 -0.500000 -0.030483 +v 0.129917 -0.500000 -0.086808 +v 0.086808 -0.500000 -0.129917 +v 0.030483 -0.500000 -0.153247 +v -0.030483 -0.500000 -0.153248 +v -0.086808 -0.500000 -0.129917 +v -0.129917 -0.500000 -0.086808 +v -0.153247 -0.500000 -0.030483 +v -0.129917 -0.468750 -0.086808 +v -0.153248 -0.468750 -0.030483 +v 0.000000 -0.468750 -0.000000 +v -0.086808 -0.468750 -0.129917 +v -0.030483 -0.468750 -0.153248 +v 0.030483 -0.468750 -0.153247 +v 0.086808 -0.468750 -0.129917 +v 0.129917 -0.468750 -0.086808 +v 0.153248 -0.468750 -0.030483 +v 0.153248 -0.468750 0.030483 +v 0.129917 -0.468750 0.086808 +v 0.086808 -0.468750 0.129917 +v 0.030483 -0.468750 0.153248 +v -0.030483 -0.468750 0.153248 +v -0.086808 -0.468750 0.129917 +v -0.129917 -0.468750 0.086808 +v -0.153248 -0.468750 0.030483 +v -0.069446 -0.024391 0.103934 +v -0.069446 -0.468750 0.103934 +v -0.024386 -0.468750 0.122598 +v -0.024386 -0.024391 0.122598 +v -0.122598 -0.024391 0.024386 +v -0.122598 -0.468750 0.024386 +v -0.103933 -0.468750 0.069446 +v -0.103934 -0.024391 0.069446 +v -0.069446 -0.024391 -0.103934 +v -0.069446 -0.468750 -0.103933 +v -0.103934 -0.468750 -0.069446 +v -0.103934 -0.024391 -0.069446 +v -0.122598 -0.024391 -0.024386 +v -0.122598 -0.468750 -0.024386 +v -0.024386 -0.024391 -0.122598 +v -0.024386 -0.468750 -0.122598 +v 0.024386 -0.024391 -0.122598 +v 0.024386 -0.468750 -0.122598 +v 0.069446 -0.024391 -0.103934 +v 0.069447 -0.468750 -0.103933 +v 0.103934 -0.024391 -0.069446 +v 0.103934 -0.468750 -0.069446 +v 0.103934 -0.024391 0.069446 +v 0.103934 -0.468750 0.069447 +v 0.069446 -0.024391 0.103934 +v 0.069446 -0.468750 0.103934 +v 0.024386 -0.024391 0.122598 +v 0.024386 -0.468750 0.122598 +v 0.468750 0.122598 0.024387 +v 0.468750 0.122598 -0.024386 +v 0.500000 -0.129917 0.086808 +v 0.500000 -0.153248 0.030483 +v 0.500000 0.000000 0.000000 +v 0.500000 -0.086808 0.129917 +v 0.500000 -0.030483 0.153248 +v 0.500000 0.030483 0.153248 +v 0.500000 0.086808 0.129917 +v 0.500000 0.129917 0.086808 +v 0.500000 0.153248 0.030483 +v 0.500000 0.153248 -0.030483 +v 0.500000 0.129917 -0.086808 +v 0.500000 0.086808 -0.129917 +v 0.500000 0.030483 -0.153247 +v 0.500000 -0.030483 -0.153247 +v 0.500000 -0.086808 -0.129917 +v 0.500000 -0.129917 -0.086807 +v 0.500000 -0.153248 -0.030482 +v 0.468750 -0.129917 -0.086807 +v 0.468750 -0.153248 -0.030483 +v 0.468750 -0.000000 0.000000 +v 0.468750 -0.086808 -0.129917 +v 0.468750 -0.030483 -0.153247 +v 0.468750 0.030483 -0.153247 +v 0.468750 0.086808 -0.129917 +v 0.468750 0.129917 -0.086808 +v 0.468750 0.153248 -0.030483 +v 0.468750 0.153248 0.030483 +v 0.468750 0.129917 0.086808 +v 0.468750 0.086808 0.129917 +v 0.468750 0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.468750 -0.086808 0.129917 +v 0.468750 -0.129917 0.086808 +v 0.468750 -0.153248 0.030483 +v 0.024386 -0.069446 0.103934 +v 0.468750 -0.069446 0.103934 +v 0.468750 -0.024386 0.122598 +v 0.024386 -0.122598 0.024386 +v 0.468750 -0.122598 0.024387 +v 0.468750 -0.103934 0.069447 +v 0.024386 -0.103934 0.069446 +v 0.024386 -0.069446 -0.103934 +v 0.468750 -0.069446 -0.103933 +v 0.468750 -0.103934 -0.069446 +v 0.024386 -0.103934 -0.069446 +v 0.468750 -0.122598 -0.024386 +v 0.468750 -0.024386 -0.122598 +v 0.024386 0.024386 -0.122598 +v 0.468750 0.024386 -0.122598 +v 0.024386 0.069446 -0.103934 +v 0.468750 0.069446 -0.103933 +v 0.024386 0.103934 -0.069446 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.103934 0.069447 +v 0.468750 0.069446 0.103934 +v 0.468750 0.024386 0.122598 +v 0.122599 -0.024387 -0.468750 +v 0.122599 0.024386 -0.468750 +v 0.122598 0.024386 -0.024391 +v -0.129917 -0.086808 -0.500000 +v -0.153247 -0.030483 -0.500000 +v 0.000001 0.000000 -0.500000 +v -0.086807 -0.129917 -0.500000 +v -0.030482 -0.153248 -0.500000 +v 0.030483 -0.153248 -0.500000 +v 0.086808 -0.129917 -0.500000 +v 0.129918 -0.086808 -0.500000 +v 0.153248 -0.030483 -0.500000 +v 0.153248 0.030483 -0.500000 +v 0.129918 0.086808 -0.500000 +v 0.086808 0.129917 -0.500000 +v 0.030483 0.153247 -0.500000 +v -0.030482 0.153247 -0.500000 +v -0.086807 0.129917 -0.500000 +v -0.129917 0.086808 -0.500000 +v -0.153247 0.030483 -0.500000 +v -0.129917 0.086808 -0.468750 +v -0.153247 0.030483 -0.468750 +v 0.000000 0.000000 -0.468750 +v -0.086807 0.129917 -0.468750 +v -0.030482 0.153247 -0.468750 +v 0.030483 0.153247 -0.468750 +v 0.086808 0.129917 -0.468750 +v 0.129918 0.086808 -0.468750 +v 0.153248 0.030483 -0.468750 +v 0.153248 -0.030483 -0.468750 +v 0.129918 -0.086808 -0.468750 +v 0.086808 -0.129917 -0.468750 +v 0.030483 -0.153248 -0.468750 +v -0.030482 -0.153248 -0.468750 +v -0.086807 -0.129917 -0.468750 +v -0.129917 -0.086808 -0.468750 +v -0.153247 -0.030483 -0.468750 +v -0.069446 -0.103934 -0.024391 +v -0.069446 -0.103934 -0.468750 +v -0.024386 -0.122598 -0.468750 +v -0.024386 -0.122598 -0.024391 +v -0.122598 -0.024387 -0.468750 +v -0.103933 -0.069447 -0.468750 +v -0.103934 -0.069446 -0.024391 +v -0.069446 0.103933 -0.468750 +v -0.103933 0.069446 -0.468750 +v -0.103934 0.069446 -0.024391 +v -0.122598 0.024386 -0.024391 +v -0.122598 0.024386 -0.468750 +v -0.024386 0.122598 -0.024391 +v -0.024386 0.122598 -0.468750 +v 0.024386 0.122598 -0.024391 +v 0.024387 0.122598 -0.468750 +v 0.069446 0.103934 -0.024391 +v 0.069447 0.103933 -0.468750 +v 0.103934 0.069446 -0.024391 +v 0.103934 0.069446 -0.468750 +v 0.103934 -0.069446 -0.024391 +v 0.103934 -0.069447 -0.468750 +v 0.069446 -0.103934 -0.024391 +v 0.069447 -0.103934 -0.468750 +v 0.024386 -0.122598 -0.024391 +v 0.024387 -0.122598 -0.468750 +v -0.069446 0.103934 -0.024390 +v 0.024386 0.024386 0.122594 +v 0.024386 0.069446 0.103930 +v 0.024386 0.103933 0.069442 +v 0.024386 0.122598 0.024382 +v -0.028389 0.109793 0.028385 +v -0.109793 0.028389 0.028387 +v -0.028389 0.028389 0.109791 +v -0.073974 0.029365 0.073972 +v -0.073974 0.070067 0.028386 +v -0.028389 0.070067 0.073971 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.250000 0.015625 +vt 0.250000 0.265625 +vt 0.093322 0.682190 +vt 0.153370 0.657318 +vt 0.185867 0.820694 +vt 0.047364 0.728149 +vt 0.022491 0.788196 +vt 0.022491 0.853192 +vt 0.047364 0.913239 +vt 0.093322 0.959198 +vt 0.153370 0.984070 +vt 0.218365 0.984070 +vt 0.278413 0.959198 +vt 0.324371 0.913239 +vt 0.349244 0.853192 +vt 0.349244 0.788196 +vt 0.324371 0.728149 +vt 0.278413 0.682190 +vt 0.218365 0.657318 +vt 0.471785 0.682190 +vt 0.531832 0.657318 +vt 0.564330 0.820694 +vt 0.425826 0.728149 +vt 0.400953 0.788196 +vt 0.400953 0.853192 +vt 0.425826 0.913239 +vt 0.471785 0.959198 +vt 0.531832 0.984070 +vt 0.596827 0.984070 +vt 0.656875 0.959198 +vt 0.702834 0.913239 +vt 0.727706 0.853192 +vt 0.727706 0.788196 +vt 0.702834 0.728149 +vt 0.656875 0.682190 +vt 0.596827 0.657318 +vt 0.125000 0.609375 +vt 0.125000 0.546875 +vt 0.187500 0.546875 +vt 0.187500 0.609375 +vt 0.250000 0.546875 +vt 0.250000 0.609375 +vt 0.062500 0.609375 +vt 0.062500 0.546875 +vt 0.000000 0.609375 +vt 0.000000 0.546875 +vt 0.937500 0.609375 +vt 0.937500 0.546875 +vt 1.000000 0.546875 +vt 1.000000 0.609375 +vt 0.875000 0.609375 +vt 0.875000 0.546875 +vt 0.812500 0.609375 +vt 0.812500 0.546875 +vt 0.750000 0.609375 +vt 0.750000 0.546875 +vt 0.687500 0.609375 +vt 0.687500 0.546875 +vt 0.625000 0.609375 +vt 0.625000 0.546875 +vt 0.562500 0.609375 +vt 0.562500 0.546875 +vt 0.500000 0.609375 +vt 0.500000 0.546875 +vt 0.437500 0.609375 +vt 0.437500 0.546875 +vt 0.375000 0.609375 +vt 0.375000 0.546875 +vt 0.312500 0.609375 +vt 0.312500 0.546875 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.812500 0.015625 +vt 0.812500 0.265625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.625000 0.015625 +vt 0.625000 0.265625 +vt 0.687500 0.265625 +vt 0.687500 0.015625 +vt 0.500000 0.265625 +vt 0.500000 0.015625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.125000 0.265625 +vt 0.125000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.934657 0.863213 +vt 0.901601 0.899049 +vt 0.865820 0.861492 +vt 0.925541 0.762929 +vt 0.899262 0.810455 +vt 0.865821 0.758725 +vt 0.832379 0.810455 +vt 0.806102 0.762929 +vt 0.959958 0.821457 +vt 0.796982 0.863213 +vt 0.973651 0.780138 +vt 0.830039 0.899049 +vt 0.865820 0.923510 +vt 0.757989 0.745545 +vt 0.793772 0.721082 +vt 0.757989 0.780138 +vt 0.937873 0.721082 +vt 0.973654 0.745543 +vt 0.771681 0.821457 +vt 0.840522 0.707845 +vt 0.891124 0.707845 +s off +f 1/1 2/2 3/3 4/4 +f 5/5 6/6 7/7 +f 8/8 5/5 7/7 +f 9/9 8/8 7/7 +f 10/10 9/9 7/7 +f 11/11 10/10 7/7 +f 12/12 11/11 7/7 +f 13/13 12/12 7/7 +f 14/14 13/13 7/7 +f 15/15 14/14 7/7 +f 16/16 15/15 7/7 +f 17/17 16/16 7/7 +f 18/18 17/17 7/7 +f 19/19 18/18 7/7 +f 20/20 19/19 7/7 +f 21/21 20/20 7/7 +f 22/22 23/23 24/24 +f 25/25 22/22 24/24 +f 26/26 25/25 24/24 +f 27/27 26/26 24/24 +f 28/28 27/27 24/24 +f 29/29 28/28 24/24 +f 30/30 29/29 24/24 +f 31/31 30/30 24/24 +f 32/32 31/31 24/24 +f 33/33 32/32 24/24 +f 34/34 33/33 24/24 +f 35/35 34/34 24/24 +f 36/36 35/35 24/24 +f 37/37 36/36 24/24 +f 38/38 37/37 24/24 +f 23/23 38/38 24/24 +f 6/6 21/21 7/7 +f 25/39 19/40 20/41 22/42 +f 22/42 20/41 21/43 23/44 +f 26/45 18/46 19/40 25/39 +f 27/47 17/48 18/46 26/45 +f 28/49 16/50 17/51 27/52 +f 29/53 15/54 16/50 28/49 +f 30/55 14/56 15/54 29/53 +f 31/57 13/58 14/56 30/55 +f 32/59 12/60 13/58 31/57 +f 33/61 11/62 12/60 32/59 +f 34/63 10/64 11/62 33/61 +f 35/65 9/66 10/64 34/63 +f 36/67 8/68 9/66 35/65 +f 37/69 5/70 8/68 36/67 +f 38/71 6/72 5/70 37/69 +f 23/44 21/43 6/72 38/71 +f 39/73 40/74 41/75 42/76 +f 43/77 44/78 45/79 46/80 +f 47/81 48/82 49/83 50/84 +f 51/85 52/86 44/78 43/77 +f 46/80 45/79 40/74 39/73 +f 50/84 49/83 52/86 51/85 +f 53/87 54/88 48/82 47/81 +f 55/89 56/90 54/88 53/87 +f 57/91 58/92 56/90 55/89 +f 59/93 60/94 58/92 57/91 +f 4/4 3/3 60/94 59/93 +f 2/2 1/1 61/95 62/96 +f 63/97 64/98 62/96 61/95 +f 65/99 66/100 64/98 63/97 +f 42/76 41/75 66/101 65/102 +f 69/5 70/6 71/7 +f 72/8 69/5 71/7 +f 73/9 72/8 71/7 +f 74/10 73/9 71/7 +f 75/11 74/10 71/7 +f 76/12 75/11 71/7 +f 77/13 76/12 71/7 +f 78/14 77/13 71/7 +f 79/15 78/14 71/7 +f 80/16 79/15 71/7 +f 81/17 80/16 71/7 +f 82/18 81/17 71/7 +f 83/19 82/18 71/7 +f 84/20 83/19 71/7 +f 85/21 84/20 71/7 +f 86/22 87/23 88/24 +f 89/25 86/22 88/24 +f 90/26 89/25 88/24 +f 91/27 90/26 88/24 +f 92/28 91/27 88/24 +f 93/29 92/28 88/24 +f 94/30 93/29 88/24 +f 95/31 94/30 88/24 +f 96/32 95/31 88/24 +f 97/33 96/32 88/24 +f 98/34 97/33 88/24 +f 99/35 98/34 88/24 +f 100/36 99/35 88/24 +f 101/37 100/36 88/24 +f 102/38 101/37 88/24 +f 87/23 102/38 88/24 +f 70/6 85/21 71/7 +f 89/39 83/40 84/41 86/42 +f 86/42 84/41 85/43 87/44 +f 90/45 82/46 83/40 89/39 +f 91/47 81/48 82/46 90/45 +f 92/49 80/50 81/51 91/52 +f 93/53 79/54 80/50 92/49 +f 94/55 78/56 79/54 93/53 +f 95/57 77/58 78/56 94/55 +f 96/59 76/60 77/58 95/57 +f 97/61 75/62 76/60 96/59 +f 98/63 74/64 75/62 97/61 +f 99/65 73/66 74/64 98/63 +f 100/67 72/68 73/66 99/65 +f 101/69 69/70 72/68 100/67 +f 102/71 70/72 69/70 101/69 +f 87/44 85/43 70/72 102/71 +f 106/77 107/78 108/79 109/80 +f 110/81 111/82 112/83 113/84 +f 109/80 108/79 104/74 103/73 +f 118/91 119/92 117/90 116/89 +f 120/93 121/94 119/92 118/91 +f 128/5 129/6 130/7 +f 131/8 128/5 130/7 +f 132/9 131/8 130/7 +f 133/10 132/9 130/7 +f 134/11 133/10 130/7 +f 135/12 134/11 130/7 +f 136/13 135/12 130/7 +f 137/14 136/13 130/7 +f 138/15 137/14 130/7 +f 139/16 138/15 130/7 +f 140/17 139/16 130/7 +f 141/18 140/17 130/7 +f 142/19 141/18 130/7 +f 143/20 142/19 130/7 +f 144/21 143/20 130/7 +f 145/22 146/23 147/24 +f 148/25 145/22 147/24 +f 149/26 148/25 147/24 +f 150/27 149/26 147/24 +f 151/28 150/27 147/24 +f 152/29 151/28 147/24 +f 153/30 152/29 147/24 +f 154/31 153/30 147/24 +f 155/32 154/31 147/24 +f 156/33 155/32 147/24 +f 157/34 156/33 147/24 +f 158/35 157/34 147/24 +f 159/36 158/35 147/24 +f 160/37 159/36 147/24 +f 161/38 160/37 147/24 +f 146/23 161/38 147/24 +f 129/6 144/21 130/7 +f 148/39 142/40 143/41 145/42 +f 145/42 143/41 144/43 146/44 +f 149/45 141/46 142/40 148/39 +f 150/47 140/48 141/46 149/45 +f 151/49 139/50 140/51 150/52 +f 152/53 138/54 139/50 151/49 +f 153/55 137/56 138/54 152/53 +f 154/57 136/58 137/56 153/55 +f 155/59 135/60 136/58 154/57 +f 156/61 134/62 135/60 155/59 +f 157/63 133/64 134/62 156/61 +f 158/65 132/66 133/64 157/63 +f 159/67 131/68 132/66 158/65 +f 160/69 128/70 131/68 159/67 +f 161/71 129/72 128/70 160/69 +f 146/44 144/43 129/72 161/71 +f 162/73 163/74 164/75 165/76 +f 168/80 167/79 163/74 162/73 +f 171/84 170/83 173/86 172/85 +f 176/89 177/90 175/88 174/87 +f 178/91 179/92 177/90 176/89 +f 180/93 181/94 179/92 178/91 +f 127/4 126/3 181/94 180/93 +f 184/97 185/98 183/96 182/95 +f 186/99 187/100 185/98 184/97 +f 165/76 164/75 187/101 186/102 +f 191/103 192/104 193/105 +f 195/106 198/107 196/108 +f 198/107 193/105 197/109 +f 198/107 197/109 196/108 +f 196/108 197/109 194/110 +f 190/111 191/103 198/107 +f 193/105 188/112 197/109 +f 193/105 198/107 191/103 +f 195/106 190/111 198/107 +f 190/111 195/106 189/113 +f 192/1 67/2 68/3 176/4 +f 103/73 104/74 105/75 65/76 +f 186/85 114/86 107/78 106/77 +f 113/84 112/83 114/86 186/85 +f 55/87 115/88 111/82 110/81 +f 116/89 117/90 115/88 55/87 +f 176/4 68/3 121/94 120/93 +f 191/95 122/96 67/2 192/1 +f 190/97 123/98 122/96 191/95 +f 189/99 124/100 123/98 190/97 +f 65/76 105/75 124/101 189/102 +f 4/1 125/2 126/3 127/4 +f 51/77 166/78 167/79 168/80 +f 188/81 169/82 170/83 171/84 +f 172/85 173/86 166/78 51/77 +f 174/87 175/88 169/82 188/81 +f 182/95 183/96 125/2 4/1 +f 174/114 192/104 176/115 +f 51/116 43/117 172/118 +f 42/119 65/120 189/113 +f 192/104 174/114 193/105 +f 188/112 193/105 174/114 +f 188/112 171/121 197/109 +f 46/122 39/123 196/108 +f 195/106 196/108 39/123 +f 194/110 46/122 196/108 +f 194/110 197/109 171/121 +f 171/121 172/118 194/110 +f 43/117 194/110 172/118 +f 46/122 194/110 43/117 +f 39/123 42/119 195/106 +f 189/113 195/106 42/119 diff --git a/mods/pipeworks/models/pipeworks_pipe_6.obj b/mods/pipeworks/models/pipeworks_pipe_6.obj new file mode 100644 index 0000000..0744c45 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pipe_6.obj @@ -0,0 +1,499 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-3way.blend' +# www.blender.org +o Cube.000 +v -0.069446 -0.468750 0.103934 +v -0.103933 -0.468750 0.069446 +v -0.122598 -0.468750 0.024386 +v -0.122598 -0.468750 -0.024386 +v -0.129917 -0.500000 -0.086808 +v -0.129917 -0.468750 -0.086808 +v -0.086808 -0.500000 -0.129917 +v -0.086808 -0.468750 -0.129917 +v -0.030483 -0.500000 -0.153248 +v -0.030483 -0.468750 -0.153248 +v 0.030483 -0.500000 -0.153247 +v 0.030483 -0.468750 -0.153247 +v 0.086808 -0.500000 -0.129917 +v 0.086808 -0.468750 -0.129917 +v 0.129917 -0.500000 -0.086808 +v 0.129917 -0.468750 -0.086808 +v 0.153248 -0.500000 -0.030483 +v 0.153248 -0.468750 -0.030483 +v 0.153248 -0.500000 0.030483 +v 0.153248 -0.468750 0.030483 +v 0.129917 -0.500000 0.086808 +v 0.129917 -0.468750 0.086808 +v 0.086808 -0.500000 0.129917 +v 0.086808 -0.468750 0.129917 +v 0.030483 -0.500000 0.153248 +v 0.030483 -0.468750 0.153248 +v -0.030483 -0.500000 0.153248 +v -0.030483 -0.468750 0.153248 +v -0.086808 -0.500000 0.129917 +v -0.086808 -0.468750 0.129917 +v -0.129917 -0.500000 0.086808 +v -0.129917 -0.468750 0.086808 +v -0.153247 -0.500000 0.030483 +v -0.153248 -0.468750 0.030483 +v -0.153247 -0.500000 -0.030483 +v -0.153248 -0.468750 -0.030483 +v -0.024386 -0.468750 0.122598 +v 0.024386 -0.468750 0.122598 +v 0.069446 -0.468750 0.103934 +v 0.103934 -0.468750 0.069447 +v 0.122598 -0.468750 0.024387 +v 0.122598 -0.468750 -0.024386 +v 0.103934 -0.468750 -0.069446 +v 0.069447 -0.468750 -0.103933 +v 0.024386 -0.468750 -0.122598 +v -0.024386 -0.468750 -0.122598 +v -0.069446 -0.468750 -0.103933 +v -0.103934 -0.468750 -0.069446 +v 0.000000 -0.468750 0.000000 +v 0.000000 -0.500000 0.000000 +v 0.024386 -0.024391 0.122598 +v 0.069446 -0.024391 0.103934 +v 0.103934 -0.024391 0.069446 +v 0.122598 -0.024391 0.024386 +v 0.122598 -0.024391 -0.024386 +v 0.103934 -0.024391 -0.069446 +v 0.069446 -0.024391 -0.103934 +v 0.024386 -0.024391 -0.122598 +v -0.024386 -0.024391 -0.122598 +v -0.103934 -0.024391 -0.069446 +v -0.069446 -0.024391 -0.103934 +v -0.103934 -0.024391 0.069446 +v -0.122598 -0.024391 0.024386 +v -0.122598 -0.024391 -0.024386 +v -0.069446 -0.024391 0.103934 +v -0.024386 -0.024391 0.122598 +v -0.468750 -0.153248 -0.030483 +v -0.500000 -0.153248 -0.030483 +v -0.468750 -0.153248 0.030483 +v -0.500000 -0.153248 0.030483 +v -0.468750 -0.129917 0.086808 +v -0.500000 -0.129917 0.086808 +v -0.468750 -0.086808 0.129917 +v -0.500000 -0.086808 0.129917 +v -0.468750 -0.030483 0.153248 +v -0.500000 -0.030483 0.153248 +v -0.468750 0.030483 0.153248 +v -0.500000 0.030483 0.153248 +v -0.468750 0.086808 0.129917 +v -0.500000 0.086808 0.129917 +v -0.468750 0.129917 0.086808 +v -0.500000 0.129917 0.086808 +v -0.468750 0.153248 0.030483 +v -0.500000 0.153248 0.030483 +v -0.468750 0.153248 -0.030483 +v -0.500000 0.153248 -0.030483 +v -0.468750 0.129917 -0.086808 +v -0.500000 0.129917 -0.086808 +v -0.468750 0.086808 -0.129917 +v -0.500000 0.086808 -0.129917 +v -0.468750 0.030483 -0.153248 +v -0.500000 0.030483 -0.153248 +v -0.468750 -0.030483 -0.153248 +v -0.500000 -0.030483 -0.153248 +v -0.468750 -0.086808 -0.129917 +v -0.500000 -0.086808 -0.129917 +v -0.468750 -0.129917 -0.086808 +v -0.500000 -0.129917 -0.086808 +v -0.468750 -0.122598 -0.024386 +v -0.468750 -0.122598 0.024386 +v -0.468750 -0.103934 0.069446 +v -0.468750 -0.069446 0.103934 +v -0.468750 -0.024386 0.122598 +v -0.468750 0.024386 0.122598 +v -0.468750 0.069446 0.103934 +v -0.468750 0.103934 0.069446 +v -0.468750 0.122598 0.024386 +v -0.468750 0.122598 -0.024386 +v -0.468750 0.103934 -0.069446 +v -0.468750 0.069446 -0.103934 +v -0.468750 0.024386 -0.122598 +v -0.468750 -0.024386 -0.122598 +v -0.468750 -0.069446 -0.103934 +v -0.468750 -0.103934 -0.069446 +v -0.468750 0.000000 -0.000000 +v -0.500000 -0.000000 -0.000000 +v 0.468750 -0.069446 0.103934 +v 0.468750 -0.103934 0.069447 +v 0.468750 -0.122598 0.024387 +v 0.468750 -0.122598 -0.024386 +v 0.500000 -0.129917 -0.086807 +v 0.468750 -0.129917 -0.086807 +v 0.500000 -0.086808 -0.129917 +v 0.468750 -0.086808 -0.129917 +v 0.500000 -0.030483 -0.153247 +v 0.468750 -0.030483 -0.153247 +v 0.500000 0.030483 -0.153247 +v 0.468750 0.030483 -0.153247 +v 0.500000 0.086808 -0.129917 +v 0.468750 0.086808 -0.129917 +v 0.500000 0.129917 -0.086808 +v 0.468750 0.129917 -0.086808 +v 0.500000 0.153248 -0.030483 +v 0.468750 0.153248 -0.030483 +v 0.500000 0.153248 0.030483 +v 0.468750 0.153248 0.030483 +v 0.500000 0.129917 0.086808 +v 0.468750 0.129917 0.086808 +v 0.500000 0.086808 0.129917 +v 0.468750 0.086808 0.129917 +v 0.500000 0.030483 0.153248 +v 0.468750 0.030483 0.153248 +v 0.500000 -0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.500000 -0.086808 0.129917 +v 0.468750 -0.086808 0.129917 +v 0.500000 -0.129917 0.086808 +v 0.468750 -0.129917 0.086808 +v 0.500000 -0.153248 0.030483 +v 0.468750 -0.153248 0.030483 +v 0.500000 -0.153248 -0.030482 +v 0.468750 -0.153248 -0.030483 +v 0.468750 -0.024386 0.122598 +v 0.468750 0.024386 0.122598 +v 0.468750 0.069446 0.103934 +v 0.468750 0.103934 0.069447 +v 0.468750 0.122598 0.024387 +v 0.468750 0.122598 -0.024386 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.069446 -0.103933 +v 0.468750 0.024386 -0.122598 +v 0.468750 -0.024386 -0.122598 +v 0.468750 -0.069446 -0.103933 +v 0.468750 -0.103934 -0.069446 +v 0.468750 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.250000 0.015625 +vt 0.250000 0.265625 +vt 0.093322 0.682190 +vt 0.153370 0.657318 +vt 0.185867 0.820694 +vt 0.047364 0.728149 +vt 0.022491 0.788196 +vt 0.022491 0.853192 +vt 0.047364 0.913239 +vt 0.093322 0.959198 +vt 0.153370 0.984070 +vt 0.218365 0.984070 +vt 0.278413 0.959198 +vt 0.324371 0.913239 +vt 0.349244 0.853192 +vt 0.349244 0.788196 +vt 0.324371 0.728149 +vt 0.278413 0.682190 +vt 0.218365 0.657318 +vt 0.471785 0.682190 +vt 0.531832 0.657318 +vt 0.564330 0.820694 +vt 0.425826 0.728149 +vt 0.400953 0.788196 +vt 0.400953 0.853192 +vt 0.425826 0.913239 +vt 0.471785 0.959198 +vt 0.531832 0.984070 +vt 0.596827 0.984070 +vt 0.656875 0.959198 +vt 0.702834 0.913239 +vt 0.727706 0.853192 +vt 0.727706 0.788196 +vt 0.702834 0.728149 +vt 0.656875 0.682190 +vt 0.596827 0.657318 +vt 0.125000 0.609375 +vt 0.125000 0.546875 +vt 0.187500 0.546875 +vt 0.187500 0.609375 +vt 0.250000 0.546875 +vt 0.250000 0.609375 +vt 0.062500 0.609375 +vt 0.062500 0.546875 +vt 0.000000 0.609375 +vt 0.000000 0.546875 +vt 0.937500 0.609375 +vt 0.937500 0.546875 +vt 1.000000 0.546875 +vt 1.000000 0.609375 +vt 0.875000 0.609375 +vt 0.875000 0.546875 +vt 0.812500 0.609375 +vt 0.812500 0.546875 +vt 0.750000 0.609375 +vt 0.750000 0.546875 +vt 0.687500 0.609375 +vt 0.687500 0.546875 +vt 0.625000 0.609375 +vt 0.625000 0.546875 +vt 0.562500 0.609375 +vt 0.562500 0.546875 +vt 0.500000 0.609375 +vt 0.500000 0.546875 +vt 0.437500 0.609375 +vt 0.437500 0.546875 +vt 0.375000 0.609375 +vt 0.375000 0.546875 +vt 0.312500 0.609375 +vt 0.312500 0.546875 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.812500 0.015625 +vt 0.812500 0.265625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.625000 0.015625 +vt 0.625000 0.265625 +vt 0.687500 0.265625 +vt 0.687500 0.015625 +vt 0.500000 0.265625 +vt 0.500000 0.015625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.125000 0.265625 +vt 0.125000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.218363 0.657325 +vt 0.185866 0.820702 +vt 0.153368 0.657325 +vt 0.531836 0.657325 +vt 0.564334 0.820702 +vt 0.596832 0.657325 +vt 0.656879 0.682198 +vt 0.702838 0.728156 +vt 0.727710 0.788204 +vt 0.727710 0.853199 +vt 0.702838 0.913247 +vt 0.656879 0.959205 +vt 0.596831 0.984078 +vt 0.531836 0.984078 +vt 0.471788 0.959205 +vt 0.425830 0.913247 +vt 0.400957 0.853199 +vt 0.400957 0.788204 +vt 0.425830 0.728156 +vt 0.471789 0.682198 +vt 0.093321 0.682198 +vt 0.047362 0.728156 +vt 0.022489 0.788204 +vt 0.022489 0.853199 +vt 0.047362 0.913247 +vt 0.093320 0.959205 +vt 0.153368 0.984078 +vt 0.218363 0.984078 +vt 0.278411 0.959205 +vt 0.324369 0.913247 +vt 0.349242 0.853199 +vt 0.349242 0.788204 +vt 0.324369 0.728156 +vt 0.278411 0.682198 +vt 0.187500 0.515625 +vt 0.250000 0.515625 +vt 0.875000 0.515625 +vt 0.937500 0.515625 +vt 0.750000 0.515625 +vt 0.812500 0.515625 +vt 0.562500 0.515625 +vt 0.625000 0.515625 +vt 0.687500 0.515625 +vt 0.500000 0.515625 +vt 0.437500 0.515625 +vt 0.375000 0.515625 +vt 0.312500 0.515625 +vt 0.125000 0.515625 +vt 0.062500 0.515625 +vt 0.000000 0.515625 +vt 1.000000 0.515625 +s off +f 54/1 41/2 42/3 55/4 +f 31/5 33/6 50/7 +f 29/8 31/5 50/7 +f 27/9 29/8 50/7 +f 25/10 27/9 50/7 +f 23/11 25/10 50/7 +f 21/12 23/11 50/7 +f 19/13 21/12 50/7 +f 17/14 19/13 50/7 +f 15/15 17/14 50/7 +f 13/16 15/15 50/7 +f 11/17 13/16 50/7 +f 9/18 11/17 50/7 +f 7/19 9/18 50/7 +f 5/20 7/19 50/7 +f 35/21 5/20 50/7 +f 6/22 36/23 49/24 +f 8/25 6/22 49/24 +f 10/26 8/25 49/24 +f 12/27 10/26 49/24 +f 14/28 12/27 49/24 +f 16/29 14/28 49/24 +f 18/30 16/29 49/24 +f 20/31 18/30 49/24 +f 22/32 20/31 49/24 +f 24/33 22/32 49/24 +f 26/34 24/33 49/24 +f 28/35 26/34 49/24 +f 30/36 28/35 49/24 +f 32/37 30/36 49/24 +f 34/38 32/37 49/24 +f 36/23 34/38 49/24 +f 33/6 35/21 50/7 +f 8/39 7/40 5/41 6/42 +f 6/42 5/41 35/43 36/44 +f 10/45 9/46 7/40 8/39 +f 12/47 11/48 9/46 10/45 +f 14/49 13/50 11/51 12/52 +f 16/53 15/54 13/50 14/49 +f 18/55 17/56 15/54 16/53 +f 20/57 19/58 17/56 18/55 +f 22/59 21/60 19/58 20/57 +f 24/61 23/62 21/60 22/59 +f 26/63 25/64 23/62 24/61 +f 28/65 27/66 25/64 26/63 +f 30/67 29/68 27/66 28/65 +f 32/69 31/70 29/68 30/67 +f 34/71 33/72 31/70 32/69 +f 36/44 35/43 33/72 34/71 +f 65/73 1/74 37/75 66/76 +f 63/77 3/78 2/79 62/80 +f 61/81 47/82 48/83 60/84 +f 64/85 4/86 3/78 63/77 +f 62/80 2/79 1/74 65/73 +f 60/84 48/83 4/86 64/85 +f 59/87 46/88 47/82 61/81 +f 58/89 45/90 46/88 59/87 +f 57/91 44/92 45/90 58/89 +f 56/93 43/94 44/92 57/91 +f 55/4 42/3 43/94 56/93 +f 53/95 40/96 41/2 54/1 +f 52/97 39/98 40/96 53/95 +f 51/99 38/100 39/98 52/97 +f 66/76 37/75 38/101 51/102 +f 67/58 69/60 70/59 68/57 +f 69/60 71/62 72/61 70/59 +f 71/62 73/64 74/63 72/61 +f 73/64 75/66 76/65 74/63 +f 75/66 77/68 78/67 76/65 +f 77/68 79/70 80/69 78/67 +f 79/70 81/72 82/71 80/69 +f 81/72 83/43 84/44 82/71 +f 83/43 85/41 86/42 84/44 +f 85/41 87/40 88/39 86/42 +f 87/40 89/46 90/45 88/39 +f 89/46 91/48 92/47 90/45 +f 91/51 93/50 94/49 92/52 +f 93/50 95/54 96/53 94/49 +f 97/56 67/58 68/57 98/55 +f 95/54 97/56 98/55 96/53 +f 70/103 116/104 68/105 +f 67/106 115/107 69/108 +f 69/108 115/107 71/109 +f 71/109 115/107 73/110 +f 73/110 115/107 75/111 +f 75/111 115/107 77/112 +f 77/112 115/107 79/113 +f 79/113 115/107 81/114 +f 81/114 115/107 83/115 +f 83/115 115/107 85/116 +f 85/116 115/107 87/117 +f 87/117 115/107 89/118 +f 89/118 115/107 91/119 +f 91/119 115/107 93/120 +f 93/120 115/107 95/121 +f 95/121 115/107 97/122 +f 97/122 115/107 67/106 +f 68/105 116/104 98/123 +f 98/123 116/104 96/124 +f 96/124 116/104 94/125 +f 94/125 116/104 92/126 +f 92/126 116/104 90/127 +f 90/127 116/104 88/128 +f 88/128 116/104 86/129 +f 86/129 116/104 84/130 +f 84/130 116/104 82/131 +f 82/131 116/104 80/132 +f 80/132 116/104 78/133 +f 78/133 116/104 76/134 +f 76/134 116/104 74/135 +f 74/135 116/104 72/136 +f 72/136 116/104 70/103 +f 107/137 157/2 158/3 108/138 +f 147/5 149/6 166/7 +f 145/8 147/5 166/7 +f 143/9 145/8 166/7 +f 141/10 143/9 166/7 +f 139/11 141/10 166/7 +f 137/12 139/11 166/7 +f 135/13 137/12 166/7 +f 133/14 135/13 166/7 +f 131/15 133/14 166/7 +f 129/16 131/15 166/7 +f 127/17 129/16 166/7 +f 125/18 127/17 166/7 +f 123/19 125/18 166/7 +f 121/20 123/19 166/7 +f 151/21 121/20 166/7 +f 122/22 152/23 165/24 +f 124/25 122/22 165/24 +f 126/26 124/25 165/24 +f 128/27 126/26 165/24 +f 130/28 128/27 165/24 +f 132/29 130/28 165/24 +f 134/30 132/29 165/24 +f 136/31 134/30 165/24 +f 138/32 136/31 165/24 +f 140/33 138/32 165/24 +f 142/34 140/33 165/24 +f 144/35 142/34 165/24 +f 146/36 144/35 165/24 +f 148/37 146/36 165/24 +f 150/38 148/37 165/24 +f 152/23 150/38 165/24 +f 149/6 151/21 166/7 +f 124/39 123/40 121/41 122/42 +f 122/42 121/41 151/43 152/44 +f 126/45 125/46 123/40 124/39 +f 128/47 127/48 125/46 126/45 +f 130/49 129/50 127/51 128/52 +f 132/53 131/54 129/50 130/49 +f 134/55 133/56 131/54 132/53 +f 136/57 135/58 133/56 134/55 +f 138/59 137/60 135/58 136/57 +f 140/61 139/62 137/60 138/59 +f 142/63 141/64 139/62 140/61 +f 144/65 143/66 141/64 142/63 +f 146/67 145/68 143/66 144/65 +f 148/69 147/70 145/68 146/67 +f 150/71 149/72 147/70 148/69 +f 152/44 151/43 149/72 150/71 +f 102/139 117/74 153/75 103/140 +f 100/141 119/78 118/79 101/142 +f 113/143 163/82 164/83 114/144 +f 99/145 120/86 119/78 100/141 +f 101/142 118/79 117/74 102/139 +f 114/144 164/83 120/86 99/145 +f 112/146 162/88 163/82 113/143 +f 111/147 161/90 162/88 112/146 +f 110/148 160/92 161/90 111/147 +f 109/149 159/94 160/92 110/148 +f 108/138 158/3 159/94 109/149 +f 106/150 156/96 157/2 107/137 +f 105/151 155/98 156/96 106/150 +f 104/152 154/100 155/98 105/151 +f 103/140 153/75 154/101 104/153 diff --git a/mods/pipeworks/models/pipeworks_pipe_7.obj b/mods/pipeworks/models/pipeworks_pipe_7.obj new file mode 100644 index 0000000..d299361 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pipe_7.obj @@ -0,0 +1,629 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-4way-corner.blend' +# www.blender.org +o Cube.000 +v -0.069446 -0.468750 0.103934 +v -0.103933 -0.468750 0.069446 +v -0.122598 -0.468750 0.024386 +v -0.122598 -0.468750 -0.024386 +v -0.129917 -0.500000 -0.086808 +v -0.129917 -0.468750 -0.086808 +v -0.086808 -0.500000 -0.129917 +v -0.086808 -0.468750 -0.129917 +v -0.030483 -0.500000 -0.153248 +v -0.030483 -0.468750 -0.153248 +v 0.030483 -0.500000 -0.153247 +v 0.030483 -0.468750 -0.153247 +v 0.086808 -0.500000 -0.129917 +v 0.086808 -0.468750 -0.129917 +v 0.129917 -0.500000 -0.086808 +v 0.129917 -0.468750 -0.086808 +v 0.153248 -0.500000 -0.030483 +v 0.153248 -0.468750 -0.030483 +v 0.153248 -0.500000 0.030483 +v 0.153248 -0.468750 0.030483 +v 0.129917 -0.500000 0.086808 +v 0.129917 -0.468750 0.086808 +v 0.086808 -0.500000 0.129917 +v 0.086808 -0.468750 0.129917 +v 0.030483 -0.500000 0.153248 +v 0.030483 -0.468750 0.153248 +v -0.030483 -0.500000 0.153248 +v -0.030483 -0.468750 0.153248 +v -0.086808 -0.500000 0.129917 +v -0.086808 -0.468750 0.129917 +v -0.129917 -0.500000 0.086808 +v -0.129917 -0.468750 0.086808 +v -0.153247 -0.500000 0.030483 +v -0.153248 -0.468750 0.030483 +v -0.153247 -0.500000 -0.030483 +v -0.153248 -0.468750 -0.030483 +v -0.024386 -0.468750 0.122598 +v 0.024386 -0.468750 0.122598 +v 0.069446 -0.468750 0.103934 +v 0.103934 -0.468750 0.069447 +v 0.122598 -0.468750 0.024387 +v 0.122598 -0.468750 -0.024386 +v 0.103934 -0.468750 -0.069446 +v 0.069447 -0.468750 -0.103933 +v 0.024386 -0.468750 -0.122598 +v -0.024386 -0.468750 -0.122598 +v -0.069446 -0.468750 -0.103933 +v -0.103934 -0.468750 -0.069446 +v 0.000000 -0.468750 0.000000 +v 0.000000 -0.500000 0.000000 +v 0.024386 -0.024391 0.122598 +v 0.069446 -0.024391 0.103934 +v 0.103934 -0.024391 0.069446 +v 0.122598 -0.024391 0.024386 +v 0.122598 -0.024391 -0.024386 +v 0.103934 -0.024391 -0.069446 +v 0.069446 -0.024391 -0.103934 +v 0.024386 -0.024391 -0.122598 +v -0.024386 -0.024391 -0.122598 +v -0.103934 -0.024391 -0.069446 +v -0.069446 -0.024391 -0.103934 +v -0.103934 -0.024391 0.069446 +v -0.122598 -0.024391 0.024386 +v -0.122598 -0.024391 -0.024386 +v -0.069446 -0.024391 0.103934 +v -0.024386 -0.024391 0.122598 +v -0.468750 -0.153248 -0.030483 +v -0.500000 -0.153248 -0.030483 +v -0.468750 -0.153248 0.030483 +v -0.500000 -0.153248 0.030483 +v -0.468750 -0.129917 0.086808 +v -0.500000 -0.129917 0.086808 +v -0.468750 -0.086808 0.129917 +v -0.500000 -0.086808 0.129917 +v -0.468750 -0.030483 0.153248 +v -0.500000 -0.030483 0.153248 +v -0.468750 0.030483 0.153248 +v -0.500000 0.030483 0.153248 +v -0.468750 0.086808 0.129917 +v -0.500000 0.086808 0.129917 +v -0.468750 0.129917 0.086808 +v -0.500000 0.129917 0.086808 +v -0.468750 0.153248 0.030483 +v -0.500000 0.153248 0.030483 +v -0.468750 0.153248 -0.030483 +v -0.500000 0.153248 -0.030483 +v -0.468750 0.129917 -0.086808 +v -0.500000 0.129917 -0.086808 +v -0.468750 0.086808 -0.129917 +v -0.500000 0.086808 -0.129917 +v -0.468750 0.030483 -0.153248 +v -0.500000 0.030483 -0.153248 +v -0.468750 -0.030483 -0.153248 +v -0.500000 -0.030483 -0.153248 +v -0.468750 -0.086808 -0.129917 +v -0.500000 -0.086808 -0.129917 +v -0.468750 -0.129917 -0.086808 +v -0.500000 -0.129917 -0.086808 +v -0.468750 -0.122598 -0.024386 +v -0.468750 -0.122598 0.024386 +v -0.468750 -0.103934 0.069446 +v -0.468750 -0.069446 0.103934 +v -0.468750 -0.024386 0.122598 +v -0.468750 0.024386 0.122598 +v -0.468750 0.069446 0.103934 +v -0.468750 0.103934 0.069446 +v -0.468750 0.122598 0.024386 +v -0.468750 0.122598 -0.024386 +v -0.468750 0.103934 -0.069446 +v -0.468750 0.069446 -0.103934 +v -0.468750 0.024386 -0.122598 +v -0.468750 -0.024386 -0.122598 +v -0.468750 -0.069446 -0.103934 +v -0.468750 -0.103934 -0.069446 +v -0.468750 0.000000 -0.000000 +v -0.500000 -0.000000 -0.000000 +v 0.468750 -0.069446 0.103934 +v 0.468750 -0.103934 0.069447 +v 0.468750 -0.122598 0.024387 +v 0.468750 -0.122598 -0.024386 +v 0.500000 -0.129917 -0.086807 +v 0.468750 -0.129917 -0.086807 +v 0.500000 -0.086808 -0.129917 +v 0.468750 -0.086808 -0.129917 +v 0.500000 -0.030483 -0.153247 +v 0.468750 -0.030483 -0.153247 +v 0.500000 0.030483 -0.153247 +v 0.468750 0.030483 -0.153247 +v 0.500000 0.086808 -0.129917 +v 0.468750 0.086808 -0.129917 +v 0.500000 0.129917 -0.086808 +v 0.468750 0.129917 -0.086808 +v 0.500000 0.153248 -0.030483 +v 0.468750 0.153248 -0.030483 +v 0.500000 0.153248 0.030483 +v 0.468750 0.153248 0.030483 +v 0.500000 0.129917 0.086808 +v 0.468750 0.129917 0.086808 +v 0.500000 0.086808 0.129917 +v 0.468750 0.086808 0.129917 +v 0.500000 0.030483 0.153248 +v 0.468750 0.030483 0.153248 +v 0.500000 -0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.500000 -0.086808 0.129917 +v 0.468750 -0.086808 0.129917 +v 0.500000 -0.129917 0.086808 +v 0.468750 -0.129917 0.086808 +v 0.500000 -0.153248 0.030483 +v 0.468750 -0.153248 0.030483 +v 0.500000 -0.153248 -0.030482 +v 0.468750 -0.153248 -0.030483 +v 0.468750 -0.024386 0.122598 +v 0.468750 0.024386 0.122598 +v 0.468750 0.069446 0.103934 +v 0.468750 0.103934 0.069447 +v 0.468750 0.122598 0.024387 +v 0.468750 0.122598 -0.024386 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.069446 -0.103933 +v 0.468750 0.024386 -0.122598 +v 0.468750 -0.024386 -0.122598 +v 0.468750 -0.069446 -0.103933 +v 0.468750 -0.103934 -0.069446 +v 0.468750 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +v -0.069446 -0.103934 -0.468750 +v -0.103933 -0.069447 -0.468750 +v -0.122598 -0.024387 -0.468750 +v -0.122598 0.024386 -0.468750 +v -0.129917 0.086808 -0.500000 +v -0.129917 0.086808 -0.468750 +v -0.086807 0.129917 -0.500000 +v -0.086807 0.129917 -0.468750 +v -0.030482 0.153247 -0.500000 +v -0.030482 0.153247 -0.468750 +v 0.030483 0.153247 -0.500000 +v 0.030483 0.153247 -0.468750 +v 0.086808 0.129917 -0.500000 +v 0.086808 0.129917 -0.468750 +v 0.129918 0.086808 -0.500000 +v 0.129918 0.086808 -0.468750 +v 0.153248 0.030483 -0.500000 +v 0.153248 0.030483 -0.468750 +v 0.153248 -0.030483 -0.500000 +v 0.153248 -0.030483 -0.468750 +v 0.129918 -0.086808 -0.500000 +v 0.129918 -0.086808 -0.468750 +v 0.086808 -0.129917 -0.500000 +v 0.086808 -0.129917 -0.468750 +v 0.030483 -0.153248 -0.500000 +v 0.030483 -0.153248 -0.468750 +v -0.030482 -0.153248 -0.500000 +v -0.030482 -0.153248 -0.468750 +v -0.086807 -0.129917 -0.500000 +v -0.086807 -0.129917 -0.468750 +v -0.129917 -0.086808 -0.500000 +v -0.129917 -0.086808 -0.468750 +v -0.153247 -0.030483 -0.500000 +v -0.153247 -0.030483 -0.468750 +v -0.153247 0.030483 -0.500000 +v -0.153247 0.030483 -0.468750 +v -0.024386 -0.122598 -0.468750 +v 0.024387 -0.122598 -0.468750 +v 0.069447 -0.103934 -0.468750 +v 0.103934 -0.069447 -0.468750 +v 0.122599 -0.024387 -0.468750 +v 0.122599 0.024386 -0.468750 +v 0.103934 0.069446 -0.468750 +v 0.069447 0.103933 -0.468750 +v 0.024387 0.122598 -0.468750 +v -0.024386 0.122598 -0.468750 +v -0.069446 0.103933 -0.468750 +v -0.103933 0.069446 -0.468750 +v 0.000000 -0.000000 -0.468750 +v 0.000001 -0.000000 -0.500000 +v 0.024386 -0.122598 -0.024391 +v 0.069446 -0.103934 -0.024391 +v 0.103934 -0.069446 -0.024391 +v 0.122598 -0.024386 -0.024391 +v 0.122598 0.024386 -0.024391 +v 0.103934 0.069446 -0.024391 +v 0.069446 0.103934 -0.024391 +v 0.024386 0.122598 -0.024391 +v -0.024386 0.122598 -0.024391 +v -0.103934 0.069446 -0.024391 +v -0.069446 0.103934 -0.024391 +v -0.103934 -0.069446 -0.024391 +v -0.122598 -0.024386 -0.024391 +v -0.122598 0.024386 -0.024391 +v -0.069446 -0.103934 -0.024391 +v -0.024386 -0.122598 -0.024391 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.250000 0.015625 +vt 0.250000 0.265625 +vt 0.093322 0.682190 +vt 0.153370 0.657318 +vt 0.185867 0.820694 +vt 0.047364 0.728149 +vt 0.022491 0.788196 +vt 0.022491 0.853192 +vt 0.047364 0.913239 +vt 0.093322 0.959198 +vt 0.153370 0.984070 +vt 0.218365 0.984070 +vt 0.278413 0.959198 +vt 0.324371 0.913239 +vt 0.349244 0.853192 +vt 0.349244 0.788196 +vt 0.324371 0.728149 +vt 0.278413 0.682190 +vt 0.218365 0.657318 +vt 0.471785 0.682190 +vt 0.531832 0.657318 +vt 0.564330 0.820694 +vt 0.425826 0.728149 +vt 0.400953 0.788196 +vt 0.400953 0.853192 +vt 0.425826 0.913239 +vt 0.471785 0.959198 +vt 0.531832 0.984070 +vt 0.596827 0.984070 +vt 0.656875 0.959198 +vt 0.702834 0.913239 +vt 0.727706 0.853192 +vt 0.727706 0.788196 +vt 0.702834 0.728149 +vt 0.656875 0.682190 +vt 0.596827 0.657318 +vt 0.125000 0.609375 +vt 0.125000 0.546875 +vt 0.187500 0.546875 +vt 0.187500 0.609375 +vt 0.250000 0.546875 +vt 0.250000 0.609375 +vt 0.062500 0.609375 +vt 0.062500 0.546875 +vt 0.000000 0.609375 +vt 0.000000 0.546875 +vt 0.937500 0.609375 +vt 0.937500 0.546875 +vt 1.000000 0.546875 +vt 1.000000 0.609375 +vt 0.875000 0.609375 +vt 0.875000 0.546875 +vt 0.812500 0.609375 +vt 0.812500 0.546875 +vt 0.750000 0.609375 +vt 0.750000 0.546875 +vt 0.687500 0.609375 +vt 0.687500 0.546875 +vt 0.625000 0.609375 +vt 0.625000 0.546875 +vt 0.562500 0.609375 +vt 0.562500 0.546875 +vt 0.500000 0.609375 +vt 0.500000 0.546875 +vt 0.437500 0.609375 +vt 0.437500 0.546875 +vt 0.375000 0.609375 +vt 0.375000 0.546875 +vt 0.312500 0.609375 +vt 0.312500 0.546875 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.812500 0.015625 +vt 0.812500 0.265625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.625000 0.015625 +vt 0.625000 0.265625 +vt 0.687500 0.265625 +vt 0.687500 0.015625 +vt 0.500000 0.265625 +vt 0.500000 0.015625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.125000 0.265625 +vt 0.125000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.218363 0.657325 +vt 0.185866 0.820702 +vt 0.153368 0.657325 +vt 0.531836 0.657325 +vt 0.564334 0.820702 +vt 0.596832 0.657325 +vt 0.656879 0.682198 +vt 0.702838 0.728156 +vt 0.727710 0.788204 +vt 0.727710 0.853199 +vt 0.702838 0.913247 +vt 0.656879 0.959205 +vt 0.596831 0.984078 +vt 0.531836 0.984078 +vt 0.471788 0.959205 +vt 0.425830 0.913247 +vt 0.400957 0.853199 +vt 0.400957 0.788204 +vt 0.425830 0.728156 +vt 0.471789 0.682198 +vt 0.093321 0.682198 +vt 0.047362 0.728156 +vt 0.022489 0.788204 +vt 0.022489 0.853199 +vt 0.047362 0.913247 +vt 0.093320 0.959205 +vt 0.153368 0.984078 +vt 0.218363 0.984078 +vt 0.278411 0.959205 +vt 0.324369 0.913247 +vt 0.349242 0.853199 +vt 0.349242 0.788204 +vt 0.324369 0.728156 +vt 0.278411 0.682198 +vt 0.187500 0.515625 +vt 0.250000 0.515625 +vt 0.875000 0.515625 +vt 0.937500 0.515625 +vt 0.750000 0.515625 +vt 0.812500 0.515625 +vt 0.562500 0.515625 +vt 0.625000 0.515625 +vt 0.687500 0.515625 +vt 0.500000 0.515625 +vt 0.437500 0.515625 +vt 0.375000 0.515625 +vt 0.312500 0.515625 +vt 0.125000 0.515625 +vt 0.062500 0.515625 +vt 0.000000 0.515625 +vt 1.000000 0.515625 +s off +f 54/1 41/2 42/3 55/4 +f 31/5 33/6 50/7 +f 29/8 31/5 50/7 +f 27/9 29/8 50/7 +f 25/10 27/9 50/7 +f 23/11 25/10 50/7 +f 21/12 23/11 50/7 +f 19/13 21/12 50/7 +f 17/14 19/13 50/7 +f 15/15 17/14 50/7 +f 13/16 15/15 50/7 +f 11/17 13/16 50/7 +f 9/18 11/17 50/7 +f 7/19 9/18 50/7 +f 5/20 7/19 50/7 +f 35/21 5/20 50/7 +f 6/22 36/23 49/24 +f 8/25 6/22 49/24 +f 10/26 8/25 49/24 +f 12/27 10/26 49/24 +f 14/28 12/27 49/24 +f 16/29 14/28 49/24 +f 18/30 16/29 49/24 +f 20/31 18/30 49/24 +f 22/32 20/31 49/24 +f 24/33 22/32 49/24 +f 26/34 24/33 49/24 +f 28/35 26/34 49/24 +f 30/36 28/35 49/24 +f 32/37 30/36 49/24 +f 34/38 32/37 49/24 +f 36/23 34/38 49/24 +f 33/6 35/21 50/7 +f 8/39 7/40 5/41 6/42 +f 6/42 5/41 35/43 36/44 +f 10/45 9/46 7/40 8/39 +f 12/47 11/48 9/46 10/45 +f 14/49 13/50 11/51 12/52 +f 16/53 15/54 13/50 14/49 +f 18/55 17/56 15/54 16/53 +f 20/57 19/58 17/56 18/55 +f 22/59 21/60 19/58 20/57 +f 24/61 23/62 21/60 22/59 +f 26/63 25/64 23/62 24/61 +f 28/65 27/66 25/64 26/63 +f 30/67 29/68 27/66 28/65 +f 32/69 31/70 29/68 30/67 +f 34/71 33/72 31/70 32/69 +f 36/44 35/43 33/72 34/71 +f 65/73 1/74 37/75 66/76 +f 63/77 3/78 2/79 62/80 +f 61/81 47/82 48/83 60/84 +f 64/85 4/86 3/78 63/77 +f 62/80 2/79 1/74 65/73 +f 60/84 48/83 4/86 64/85 +f 59/87 46/88 47/82 61/81 +f 58/89 45/90 46/88 59/87 +f 57/91 44/92 45/90 58/89 +f 56/93 43/94 44/92 57/91 +f 55/4 42/3 43/94 56/93 +f 53/95 40/96 41/2 54/1 +f 52/97 39/98 40/96 53/95 +f 51/99 38/100 39/98 52/97 +f 66/76 37/75 38/101 51/102 +f 67/58 69/60 70/59 68/57 +f 69/60 71/62 72/61 70/59 +f 71/62 73/64 74/63 72/61 +f 73/64 75/66 76/65 74/63 +f 75/66 77/68 78/67 76/65 +f 77/68 79/70 80/69 78/67 +f 79/70 81/72 82/71 80/69 +f 81/72 83/43 84/44 82/71 +f 83/43 85/41 86/42 84/44 +f 85/41 87/40 88/39 86/42 +f 87/40 89/46 90/45 88/39 +f 89/46 91/48 92/47 90/45 +f 91/51 93/50 94/49 92/52 +f 93/50 95/54 96/53 94/49 +f 97/56 67/58 68/57 98/55 +f 95/54 97/56 98/55 96/53 +f 70/103 116/104 68/105 +f 67/106 115/107 69/108 +f 69/108 115/107 71/109 +f 71/109 115/107 73/110 +f 73/110 115/107 75/111 +f 75/111 115/107 77/112 +f 77/112 115/107 79/113 +f 79/113 115/107 81/114 +f 81/114 115/107 83/115 +f 83/115 115/107 85/116 +f 85/116 115/107 87/117 +f 87/117 115/107 89/118 +f 89/118 115/107 91/119 +f 91/119 115/107 93/120 +f 93/120 115/107 95/121 +f 95/121 115/107 97/122 +f 97/122 115/107 67/106 +f 68/105 116/104 98/123 +f 98/123 116/104 96/124 +f 96/124 116/104 94/125 +f 94/125 116/104 92/126 +f 92/126 116/104 90/127 +f 90/127 116/104 88/128 +f 88/128 116/104 86/129 +f 86/129 116/104 84/130 +f 84/130 116/104 82/131 +f 82/131 116/104 80/132 +f 80/132 116/104 78/133 +f 78/133 116/104 76/134 +f 76/134 116/104 74/135 +f 74/135 116/104 72/136 +f 72/136 116/104 70/103 +f 107/137 157/2 158/3 108/138 +f 147/5 149/6 166/7 +f 145/8 147/5 166/7 +f 143/9 145/8 166/7 +f 141/10 143/9 166/7 +f 139/11 141/10 166/7 +f 137/12 139/11 166/7 +f 135/13 137/12 166/7 +f 133/14 135/13 166/7 +f 131/15 133/14 166/7 +f 129/16 131/15 166/7 +f 127/17 129/16 166/7 +f 125/18 127/17 166/7 +f 123/19 125/18 166/7 +f 121/20 123/19 166/7 +f 151/21 121/20 166/7 +f 122/22 152/23 165/24 +f 124/25 122/22 165/24 +f 126/26 124/25 165/24 +f 128/27 126/26 165/24 +f 130/28 128/27 165/24 +f 132/29 130/28 165/24 +f 134/30 132/29 165/24 +f 136/31 134/30 165/24 +f 138/32 136/31 165/24 +f 140/33 138/32 165/24 +f 142/34 140/33 165/24 +f 144/35 142/34 165/24 +f 146/36 144/35 165/24 +f 148/37 146/36 165/24 +f 150/38 148/37 165/24 +f 152/23 150/38 165/24 +f 149/6 151/21 166/7 +f 124/39 123/40 121/41 122/42 +f 122/42 121/41 151/43 152/44 +f 126/45 125/46 123/40 124/39 +f 128/47 127/48 125/46 126/45 +f 130/49 129/50 127/51 128/52 +f 132/53 131/54 129/50 130/49 +f 134/55 133/56 131/54 132/53 +f 136/57 135/58 133/56 134/55 +f 138/59 137/60 135/58 136/57 +f 140/61 139/62 137/60 138/59 +f 142/63 141/64 139/62 140/61 +f 144/65 143/66 141/64 142/63 +f 146/67 145/68 143/66 144/65 +f 148/69 147/70 145/68 146/67 +f 150/71 149/72 147/70 148/69 +f 152/44 151/43 149/72 150/71 +f 102/139 117/74 153/75 103/140 +f 100/141 119/78 118/79 101/142 +f 113/143 163/82 164/83 114/144 +f 99/145 120/86 119/78 100/141 +f 101/142 118/79 117/74 102/139 +f 114/144 164/83 120/86 99/145 +f 112/146 162/88 163/82 113/143 +f 111/147 161/90 162/88 112/146 +f 110/148 160/92 161/90 111/147 +f 109/149 159/94 160/92 110/148 +f 108/138 158/3 159/94 109/149 +f 106/150 156/96 157/2 107/137 +f 105/151 155/98 156/96 106/150 +f 104/152 154/100 155/98 105/151 +f 103/140 153/75 154/101 104/153 +f 220/1 207/2 208/3 221/4 +f 197/5 199/6 216/7 +f 195/8 197/5 216/7 +f 193/9 195/8 216/7 +f 191/10 193/9 216/7 +f 189/11 191/10 216/7 +f 187/12 189/11 216/7 +f 185/13 187/12 216/7 +f 183/14 185/13 216/7 +f 181/15 183/14 216/7 +f 179/16 181/15 216/7 +f 177/17 179/16 216/7 +f 175/18 177/17 216/7 +f 173/19 175/18 216/7 +f 171/20 173/19 216/7 +f 201/21 171/20 216/7 +f 172/22 202/23 215/24 +f 174/25 172/22 215/24 +f 176/26 174/25 215/24 +f 178/27 176/26 215/24 +f 180/28 178/27 215/24 +f 182/29 180/28 215/24 +f 184/30 182/29 215/24 +f 186/31 184/30 215/24 +f 188/32 186/31 215/24 +f 190/33 188/32 215/24 +f 192/34 190/33 215/24 +f 194/35 192/34 215/24 +f 196/36 194/35 215/24 +f 198/37 196/36 215/24 +f 200/38 198/37 215/24 +f 202/23 200/38 215/24 +f 199/6 201/21 216/7 +f 174/39 173/40 171/41 172/42 +f 172/42 171/41 201/43 202/44 +f 176/45 175/46 173/40 174/39 +f 178/47 177/48 175/46 176/45 +f 180/49 179/50 177/51 178/52 +f 182/53 181/54 179/50 180/49 +f 184/55 183/56 181/54 182/53 +f 186/57 185/58 183/56 184/55 +f 188/59 187/60 185/58 186/57 +f 190/61 189/62 187/60 188/59 +f 192/63 191/64 189/62 190/61 +f 194/65 193/66 191/64 192/63 +f 196/67 195/68 193/66 194/65 +f 198/69 197/70 195/68 196/67 +f 200/71 199/72 197/70 198/69 +f 202/44 201/43 199/72 200/71 +f 231/73 167/74 203/75 232/76 +f 229/77 169/78 168/79 228/80 +f 227/81 213/82 214/83 226/84 +f 230/85 170/86 169/78 229/77 +f 228/80 168/79 167/74 231/73 +f 226/84 214/83 170/86 230/85 +f 225/87 212/88 213/82 227/81 +f 224/89 211/90 212/88 225/87 +f 223/91 210/92 211/90 224/89 +f 222/93 209/94 210/92 223/91 +f 221/4 208/3 209/94 222/93 +f 219/95 206/96 207/2 220/1 +f 218/97 205/98 206/96 219/95 +f 217/99 204/100 205/98 218/97 +f 232/76 203/75 204/101 217/102 diff --git a/mods/pipeworks/models/pipeworks_pipe_8.obj b/mods/pipeworks/models/pipeworks_pipe_8.obj new file mode 100644 index 0000000..5dc58f9 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pipe_8.obj @@ -0,0 +1,631 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-4way.blend' +# www.blender.org +mtllib pipeworks_pipe_8.mtl +o Cube.000 +v 0.069446 -0.468750 -0.103934 +v 0.103933 -0.468750 -0.069446 +v 0.122598 -0.468750 -0.024386 +v 0.122598 -0.468750 0.024386 +v 0.129917 -0.500000 0.086808 +v 0.129917 -0.468750 0.086808 +v 0.086808 -0.500000 0.129917 +v 0.086808 -0.468750 0.129917 +v 0.030483 -0.500000 0.153247 +v 0.030483 -0.468750 0.153248 +v -0.030483 -0.500000 0.153247 +v -0.030483 -0.468750 0.153248 +v -0.086808 -0.500000 0.129917 +v -0.086808 -0.468750 0.129917 +v -0.129918 -0.500000 0.086808 +v -0.129917 -0.468750 0.086808 +v -0.153248 -0.500000 0.030483 +v -0.153248 -0.468750 0.030483 +v -0.153248 -0.500000 -0.030483 +v -0.153248 -0.468750 -0.030483 +v -0.129918 -0.500000 -0.086808 +v -0.129917 -0.468750 -0.086808 +v -0.086808 -0.500000 -0.129917 +v -0.086808 -0.468750 -0.129917 +v -0.030483 -0.500000 -0.153248 +v -0.030483 -0.468750 -0.153248 +v 0.030482 -0.500000 -0.153248 +v 0.030482 -0.468750 -0.153248 +v 0.086807 -0.500000 -0.129917 +v 0.086807 -0.468750 -0.129917 +v 0.129917 -0.500000 -0.086808 +v 0.129917 -0.468750 -0.086808 +v 0.153247 -0.500000 -0.030483 +v 0.153247 -0.468750 -0.030483 +v 0.153247 -0.500000 0.030483 +v 0.153247 -0.468750 0.030483 +v 0.024386 -0.468750 -0.122598 +v -0.024387 -0.468750 -0.122598 +v -0.069447 -0.468750 -0.103934 +v -0.103934 -0.468750 -0.069446 +v -0.122599 -0.468750 -0.024386 +v -0.122599 -0.468750 0.024386 +v -0.103934 -0.468750 0.069446 +v -0.069447 -0.468750 0.103934 +v -0.024387 -0.468750 0.122598 +v 0.024386 -0.468750 0.122598 +v 0.069446 -0.468750 0.103933 +v 0.103933 -0.468750 0.069446 +v -0.000000 -0.468750 -0.000000 +v -0.000000 -0.500000 -0.000000 +v -0.024386 -0.024391 -0.122598 +v -0.069446 -0.024391 -0.103934 +v -0.103934 -0.024391 -0.069446 +v -0.122598 -0.024391 -0.024386 +v -0.122598 -0.024391 0.024386 +v -0.103934 -0.024391 0.069446 +v -0.069446 -0.024391 0.103934 +v -0.024386 -0.024391 0.122598 +v 0.024386 -0.024391 0.122598 +v 0.103934 -0.024391 0.069446 +v 0.069446 -0.024391 0.103934 +v 0.103934 -0.024391 -0.069446 +v 0.122598 -0.024391 -0.024386 +v 0.122598 -0.024391 0.024386 +v 0.069446 -0.024391 -0.103934 +v 0.024386 -0.024391 -0.122598 +v 0.153248 0.468750 0.030483 +v 0.153248 0.500000 0.030483 +v 0.153248 0.468750 -0.030483 +v 0.153248 0.500000 -0.030483 +v 0.129917 0.468750 -0.086808 +v 0.129917 0.500000 -0.086808 +v 0.086808 0.468750 -0.129917 +v 0.086808 0.500000 -0.129917 +v 0.030483 0.468750 -0.153248 +v 0.030483 0.500000 -0.153248 +v -0.030483 0.468750 -0.153248 +v -0.030483 0.500000 -0.153248 +v -0.086808 0.468750 -0.129917 +v -0.086808 0.500000 -0.129917 +v -0.129917 0.468750 -0.086808 +v -0.129917 0.500000 -0.086808 +v -0.153247 0.468750 -0.030483 +v -0.153247 0.500000 -0.030483 +v -0.153247 0.468750 0.030483 +v -0.153247 0.500000 0.030483 +v -0.129917 0.468750 0.086808 +v -0.129917 0.500000 0.086808 +v -0.086808 0.468750 0.129917 +v -0.086808 0.500000 0.129917 +v -0.030483 0.468750 0.153248 +v -0.030483 0.500000 0.153248 +v 0.030483 0.468750 0.153248 +v 0.030483 0.500000 0.153248 +v 0.086808 0.468750 0.129917 +v 0.086808 0.500000 0.129917 +v 0.129917 0.468750 0.086808 +v 0.129918 0.500000 0.086808 +v 0.122598 0.468750 0.024386 +v 0.122598 0.468750 -0.024386 +v 0.103934 0.468750 -0.069446 +v 0.069447 0.468750 -0.103934 +v 0.024387 0.468750 -0.122598 +v -0.024386 0.468750 -0.122598 +v -0.069446 0.468750 -0.103934 +v -0.103933 0.468750 -0.069446 +v -0.122598 0.468750 -0.024386 +v -0.122598 0.468750 0.024386 +v -0.103933 0.468750 0.069446 +v -0.069446 0.468750 0.103934 +v -0.024386 0.468750 0.122598 +v 0.024387 0.468750 0.122598 +v 0.069447 0.468750 0.103934 +v 0.103934 0.468750 0.069446 +v 0.000000 0.468750 -0.000000 +v 0.000000 0.500000 0.000000 +v -0.024386 0.024390 -0.122598 +v -0.069446 0.024390 -0.103934 +v -0.103934 0.024390 -0.069446 +v -0.122598 0.024390 -0.024386 +v -0.122598 0.024390 0.024386 +v -0.103934 0.024390 0.069446 +v -0.069446 0.024390 0.103934 +v -0.024386 0.024389 0.122598 +v 0.024386 0.024389 0.122598 +v 0.103934 0.024390 0.069446 +v 0.069446 0.024390 0.103934 +v 0.103934 0.024390 -0.069446 +v 0.122598 0.024390 -0.024386 +v 0.122598 0.024390 0.024386 +v 0.069446 0.024390 -0.103934 +v 0.024386 0.024390 -0.122598 +v 0.468750 -0.153248 0.030483 +v 0.500000 -0.153248 0.030483 +v 0.468750 -0.153248 -0.030483 +v 0.500000 -0.153248 -0.030483 +v 0.468750 -0.129917 -0.086808 +v 0.500000 -0.129917 -0.086808 +v 0.468750 -0.086808 -0.129917 +v 0.500000 -0.086808 -0.129917 +v 0.468750 -0.030483 -0.153248 +v 0.500000 -0.030483 -0.153248 +v 0.468750 0.030483 -0.153248 +v 0.500000 0.030483 -0.153248 +v 0.468750 0.086808 -0.129917 +v 0.500000 0.086808 -0.129917 +v 0.468750 0.129917 -0.086808 +v 0.500000 0.129917 -0.086808 +v 0.468750 0.153248 -0.030483 +v 0.500000 0.153247 -0.030483 +v 0.468750 0.153248 0.030483 +v 0.500000 0.153248 0.030483 +v 0.468750 0.129917 0.086808 +v 0.500000 0.129917 0.086808 +v 0.468750 0.086808 0.129917 +v 0.500000 0.086808 0.129917 +v 0.468750 0.030483 0.153248 +v 0.500000 0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.500000 -0.030483 0.153248 +v 0.468750 -0.086808 0.129917 +v 0.500000 -0.086808 0.129917 +v 0.468750 -0.129917 0.086808 +v 0.500000 -0.129917 0.086808 +v 0.468750 -0.122598 0.024386 +v 0.468750 -0.122598 -0.024386 +v 0.468750 -0.103934 -0.069446 +v 0.468750 -0.069446 -0.103934 +v 0.468750 -0.024386 -0.122598 +v 0.468750 0.024386 -0.122598 +v 0.468750 0.069446 -0.103934 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.122598 -0.024386 +v 0.468750 0.122598 0.024386 +v 0.468750 0.103934 0.069446 +v 0.468750 0.069446 0.103934 +v 0.468750 0.024386 0.122598 +v 0.468750 -0.024387 0.122598 +v 0.468750 -0.069447 0.103934 +v 0.468750 -0.103934 0.069446 +v 0.468750 -0.000000 -0.000000 +v 0.500000 -0.000000 0.000000 +v -0.468750 -0.069446 -0.103934 +v -0.468750 -0.103933 -0.069446 +v -0.468750 -0.122598 -0.024387 +v -0.468750 -0.122598 0.024386 +v -0.500000 -0.129917 0.086808 +v -0.468750 -0.129917 0.086808 +v -0.500000 -0.086808 0.129917 +v -0.468750 -0.086808 0.129917 +v -0.500000 -0.030483 0.153247 +v -0.468750 -0.030483 0.153248 +v -0.500000 0.030483 0.153247 +v -0.468750 0.030483 0.153248 +v -0.500000 0.086808 0.129917 +v -0.468750 0.086808 0.129917 +v -0.500000 0.129917 0.086808 +v -0.468750 0.129917 0.086808 +v -0.500000 0.153248 0.030483 +v -0.468750 0.153248 0.030483 +v -0.500000 0.153248 -0.030483 +v -0.468750 0.153248 -0.030483 +v -0.500000 0.129917 -0.086808 +v -0.468750 0.129917 -0.086808 +v -0.500000 0.086808 -0.129917 +v -0.468750 0.086808 -0.129917 +v -0.500000 0.030483 -0.153248 +v -0.468750 0.030483 -0.153248 +v -0.500000 -0.030483 -0.153248 +v -0.468750 -0.030483 -0.153248 +v -0.500000 -0.086808 -0.129917 +v -0.468750 -0.086808 -0.129917 +v -0.500000 -0.129917 -0.086808 +v -0.468750 -0.129917 -0.086808 +v -0.500000 -0.153247 -0.030483 +v -0.468750 -0.153247 -0.030483 +v -0.500000 -0.153247 0.030483 +v -0.468750 -0.153247 0.030483 +v -0.468750 -0.024386 -0.122598 +v -0.468750 0.024387 -0.122598 +v -0.468750 0.069447 -0.103934 +v -0.468750 0.103934 -0.069446 +v -0.468750 0.122598 -0.024386 +v -0.468750 0.122598 0.024386 +v -0.468750 0.103934 0.069446 +v -0.468750 0.069447 0.103934 +v -0.468750 0.024387 0.122598 +v -0.468750 -0.024386 0.122598 +v -0.468750 -0.069446 0.103933 +v -0.468750 -0.103933 0.069446 +v -0.468750 0.000000 -0.000000 +v -0.500000 0.000000 -0.000000 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.250000 0.015625 +vt 0.250000 0.265625 +vt 0.093322 0.682190 +vt 0.153370 0.657318 +vt 0.185867 0.820694 +vt 0.047364 0.728149 +vt 0.022491 0.788196 +vt 0.022491 0.853192 +vt 0.047364 0.913239 +vt 0.093322 0.959198 +vt 0.153370 0.984070 +vt 0.218365 0.984070 +vt 0.278413 0.959198 +vt 0.324371 0.913239 +vt 0.349244 0.853192 +vt 0.349244 0.788196 +vt 0.324371 0.728149 +vt 0.278413 0.682190 +vt 0.218365 0.657318 +vt 0.471785 0.682190 +vt 0.531832 0.657318 +vt 0.564330 0.820694 +vt 0.425826 0.728149 +vt 0.400953 0.788196 +vt 0.400953 0.853192 +vt 0.425826 0.913239 +vt 0.471785 0.959198 +vt 0.531832 0.984070 +vt 0.596827 0.984070 +vt 0.656875 0.959198 +vt 0.702834 0.913239 +vt 0.727706 0.853192 +vt 0.727706 0.788196 +vt 0.702834 0.728149 +vt 0.656875 0.682190 +vt 0.596827 0.657318 +vt 0.125000 0.609375 +vt 0.125000 0.546875 +vt 0.187500 0.546875 +vt 0.187500 0.609375 +vt 0.250000 0.546875 +vt 0.250000 0.609375 +vt 0.062500 0.609375 +vt 0.062500 0.546875 +vt 0.000000 0.609375 +vt 0.000000 0.546875 +vt 0.937500 0.609375 +vt 0.937500 0.546875 +vt 1.000000 0.546875 +vt 1.000000 0.609375 +vt 0.875000 0.609375 +vt 0.875000 0.546875 +vt 0.812500 0.609375 +vt 0.812500 0.546875 +vt 0.750000 0.609375 +vt 0.750000 0.546875 +vt 0.687500 0.609375 +vt 0.687500 0.546875 +vt 0.625000 0.609375 +vt 0.625000 0.546875 +vt 0.562500 0.609375 +vt 0.562500 0.546875 +vt 0.500000 0.609375 +vt 0.500000 0.546875 +vt 0.437500 0.609375 +vt 0.437500 0.546875 +vt 0.375000 0.609375 +vt 0.375000 0.546875 +vt 0.312500 0.609375 +vt 0.312500 0.546875 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.812500 0.015625 +vt 0.812500 0.265625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.625000 0.015625 +vt 0.625000 0.265625 +vt 0.687500 0.265625 +vt 0.687500 0.015625 +vt 0.500000 0.265625 +vt 0.500000 0.015625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.125000 0.265625 +vt 0.125000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.218363 0.657325 +vt 0.185866 0.820702 +vt 0.153368 0.657325 +vt 0.531836 0.657325 +vt 0.564334 0.820702 +vt 0.596832 0.657325 +vt 0.656879 0.682198 +vt 0.702838 0.728156 +vt 0.727710 0.788204 +vt 0.727710 0.853199 +vt 0.702838 0.913247 +vt 0.656879 0.959205 +vt 0.596831 0.984078 +vt 0.531836 0.984078 +vt 0.471788 0.959205 +vt 0.425830 0.913247 +vt 0.400957 0.853199 +vt 0.400957 0.788204 +vt 0.425830 0.728156 +vt 0.471789 0.682198 +vt 0.093321 0.682198 +vt 0.047362 0.728156 +vt 0.022489 0.788204 +vt 0.022489 0.853199 +vt 0.047362 0.913247 +vt 0.093320 0.959205 +vt 0.153368 0.984078 +vt 0.218363 0.984078 +vt 0.278411 0.959205 +vt 0.324369 0.913247 +vt 0.349242 0.853199 +vt 0.349242 0.788204 +vt 0.324369 0.728156 +vt 0.278411 0.682198 +vt 0.187500 0.515625 +vt 0.250000 0.515625 +vt 0.875000 0.515625 +vt 0.937500 0.515625 +vt 0.750000 0.515625 +vt 0.812500 0.515625 +vt 0.562500 0.515625 +vt 0.625000 0.515625 +vt 0.687500 0.515625 +vt 0.500000 0.515625 +vt 0.437500 0.515625 +vt 0.375000 0.515625 +vt 0.312500 0.515625 +vt 0.125000 0.515625 +vt 0.062500 0.515625 +vt 0.000000 0.515625 +vt 1.000000 0.515625 +usemtl None +s off +f 54/1 41/2 42/3 55/4 +f 31/5 33/6 50/7 +f 29/8 31/5 50/7 +f 27/9 29/8 50/7 +f 25/10 27/9 50/7 +f 23/11 25/10 50/7 +f 21/12 23/11 50/7 +f 19/13 21/12 50/7 +f 17/14 19/13 50/7 +f 15/15 17/14 50/7 +f 13/16 15/15 50/7 +f 11/17 13/16 50/7 +f 9/18 11/17 50/7 +f 7/19 9/18 50/7 +f 5/20 7/19 50/7 +f 35/21 5/20 50/7 +f 6/22 36/23 49/24 +f 8/25 6/22 49/24 +f 10/26 8/25 49/24 +f 12/27 10/26 49/24 +f 14/28 12/27 49/24 +f 16/29 14/28 49/24 +f 18/30 16/29 49/24 +f 20/31 18/30 49/24 +f 22/32 20/31 49/24 +f 24/33 22/32 49/24 +f 26/34 24/33 49/24 +f 28/35 26/34 49/24 +f 30/36 28/35 49/24 +f 32/37 30/36 49/24 +f 34/38 32/37 49/24 +f 36/23 34/38 49/24 +f 33/6 35/21 50/7 +f 8/39 7/40 5/41 6/42 +f 6/42 5/41 35/43 36/44 +f 10/45 9/46 7/40 8/39 +f 12/47 11/48 9/46 10/45 +f 14/49 13/50 11/51 12/52 +f 16/53 15/54 13/50 14/49 +f 18/55 17/56 15/54 16/53 +f 20/57 19/58 17/56 18/55 +f 22/59 21/60 19/58 20/57 +f 24/61 23/62 21/60 22/59 +f 26/63 25/64 23/62 24/61 +f 28/65 27/66 25/64 26/63 +f 30/67 29/68 27/66 28/65 +f 32/69 31/70 29/68 30/67 +f 34/71 33/72 31/70 32/69 +f 36/44 35/43 33/72 34/71 +f 65/73 1/74 37/75 66/76 +f 63/77 3/78 2/79 62/80 +f 61/81 47/82 48/83 60/84 +f 64/85 4/86 3/78 63/77 +f 62/80 2/79 1/74 65/73 +f 60/84 48/83 4/86 64/85 +f 59/87 46/88 47/82 61/81 +f 58/89 45/90 46/88 59/87 +f 57/91 44/92 45/90 58/89 +f 56/93 43/94 44/92 57/91 +f 55/4 42/3 43/94 56/93 +f 53/95 40/96 41/2 54/1 +f 52/97 39/98 40/96 53/95 +f 51/99 38/100 39/98 52/97 +f 66/76 37/75 38/101 51/102 +f 67/58 69/60 70/59 68/57 +f 69/60 71/62 72/61 70/59 +f 71/62 73/64 74/63 72/61 +f 73/64 75/66 76/65 74/63 +f 75/66 77/68 78/67 76/65 +f 77/68 79/70 80/69 78/67 +f 79/70 81/72 82/71 80/69 +f 81/72 83/43 84/44 82/71 +f 83/43 85/41 86/42 84/44 +f 85/41 87/40 88/39 86/42 +f 87/40 89/46 90/45 88/39 +f 89/46 91/48 92/47 90/45 +f 91/51 93/50 94/49 92/52 +f 93/50 95/54 96/53 94/49 +f 97/56 67/58 68/57 98/55 +f 95/54 97/56 98/55 96/53 +f 70/103 116/104 68/105 +f 67/106 115/107 69/108 +f 69/108 115/107 71/109 +f 71/109 115/107 73/110 +f 73/110 115/107 75/111 +f 75/111 115/107 77/112 +f 77/112 115/107 79/113 +f 79/113 115/107 81/114 +f 81/114 115/107 83/115 +f 83/115 115/107 85/116 +f 85/116 115/107 87/117 +f 87/117 115/107 89/118 +f 89/118 115/107 91/119 +f 91/119 115/107 93/120 +f 93/120 115/107 95/121 +f 95/121 115/107 97/122 +f 97/122 115/107 67/106 +f 68/105 116/104 98/123 +f 98/123 116/104 96/124 +f 96/124 116/104 94/125 +f 94/125 116/104 92/126 +f 92/126 116/104 90/127 +f 90/127 116/104 88/128 +f 88/128 116/104 86/129 +f 86/129 116/104 84/130 +f 84/130 116/104 82/131 +f 82/131 116/104 80/132 +f 80/132 116/104 78/133 +f 78/133 116/104 76/134 +f 76/134 116/104 74/135 +f 74/135 116/104 72/136 +f 72/136 116/104 70/103 +f 107/137 120/1 121/4 108/138 +f 102/139 131/73 132/76 103/140 +f 100/141 129/77 128/80 101/142 +f 113/143 127/81 126/84 114/144 +f 99/145 130/85 129/77 100/141 +f 101/142 128/80 131/73 102/139 +f 114/144 126/84 130/85 99/145 +f 112/146 125/87 127/81 113/143 +f 111/147 124/89 125/87 112/146 +f 110/148 123/91 124/89 111/147 +f 109/149 122/93 123/91 110/148 +f 108/138 121/4 122/93 109/149 +f 106/150 119/95 120/1 107/137 +f 105/151 118/97 119/95 106/150 +f 104/152 117/99 118/97 105/151 +f 103/140 132/76 117/102 104/153 +f 133/58 135/60 136/59 134/57 +f 135/60 137/62 138/61 136/59 +f 137/62 139/64 140/63 138/61 +f 139/64 141/66 142/65 140/63 +f 141/66 143/68 144/67 142/65 +f 143/68 145/70 146/69 144/67 +f 145/70 147/72 148/71 146/69 +f 147/72 149/43 150/44 148/71 +f 149/43 151/41 152/42 150/44 +f 151/41 153/40 154/39 152/42 +f 153/40 155/46 156/45 154/39 +f 155/46 157/48 158/47 156/45 +f 157/51 159/50 160/49 158/52 +f 159/50 161/54 162/53 160/49 +f 163/56 133/58 134/57 164/55 +f 161/54 163/56 164/55 162/53 +f 136/103 182/104 134/105 +f 133/106 181/107 135/108 +f 135/108 181/107 137/109 +f 137/109 181/107 139/110 +f 139/110 181/107 141/111 +f 141/111 181/107 143/112 +f 143/112 181/107 145/113 +f 145/113 181/107 147/114 +f 147/114 181/107 149/115 +f 149/115 181/107 151/116 +f 151/116 181/107 153/117 +f 153/117 181/107 155/118 +f 155/118 181/107 157/119 +f 157/119 181/107 159/120 +f 159/120 181/107 161/121 +f 161/121 181/107 163/122 +f 163/122 181/107 133/106 +f 134/105 182/104 164/123 +f 164/123 182/104 162/124 +f 162/124 182/104 160/125 +f 160/125 182/104 158/126 +f 158/126 182/104 156/127 +f 156/127 182/104 154/128 +f 154/128 182/104 152/129 +f 152/129 182/104 150/130 +f 150/130 182/104 148/131 +f 148/131 182/104 146/132 +f 146/132 182/104 144/133 +f 144/133 182/104 142/134 +f 142/134 182/104 140/135 +f 140/135 182/104 138/136 +f 138/136 182/104 136/103 +f 173/137 223/2 224/3 174/138 +f 213/5 215/6 232/7 +f 211/8 213/5 232/7 +f 209/9 211/8 232/7 +f 207/10 209/9 232/7 +f 205/11 207/10 232/7 +f 203/12 205/11 232/7 +f 201/13 203/12 232/7 +f 199/14 201/13 232/7 +f 197/15 199/14 232/7 +f 195/16 197/15 232/7 +f 193/17 195/16 232/7 +f 191/18 193/17 232/7 +f 189/19 191/18 232/7 +f 187/20 189/19 232/7 +f 217/21 187/20 232/7 +f 188/22 218/23 231/24 +f 190/25 188/22 231/24 +f 192/26 190/25 231/24 +f 194/27 192/26 231/24 +f 196/28 194/27 231/24 +f 198/29 196/28 231/24 +f 200/30 198/29 231/24 +f 202/31 200/30 231/24 +f 204/32 202/31 231/24 +f 206/33 204/32 231/24 +f 208/34 206/33 231/24 +f 210/35 208/34 231/24 +f 212/36 210/35 231/24 +f 214/37 212/36 231/24 +f 216/38 214/37 231/24 +f 218/23 216/38 231/24 +f 215/6 217/21 232/7 +f 190/39 189/40 187/41 188/42 +f 188/42 187/41 217/43 218/44 +f 192/45 191/46 189/40 190/39 +f 194/47 193/48 191/46 192/45 +f 196/49 195/50 193/51 194/52 +f 198/53 197/54 195/50 196/49 +f 200/55 199/56 197/54 198/53 +f 202/57 201/58 199/56 200/55 +f 204/59 203/60 201/58 202/57 +f 206/61 205/62 203/60 204/59 +f 208/63 207/64 205/62 206/61 +f 210/65 209/66 207/64 208/63 +f 212/67 211/68 209/66 210/65 +f 214/69 213/70 211/68 212/67 +f 216/71 215/72 213/70 214/69 +f 218/44 217/43 215/72 216/71 +f 168/139 183/74 219/75 169/140 +f 166/141 185/78 184/79 167/142 +f 179/143 229/82 230/83 180/144 +f 165/145 186/86 185/78 166/141 +f 167/142 184/79 183/74 168/139 +f 180/144 230/83 186/86 165/145 +f 178/146 228/88 229/82 179/143 +f 177/147 227/90 228/88 178/146 +f 176/148 226/92 227/90 177/147 +f 175/149 225/94 226/92 176/148 +f 174/138 224/3 225/94 175/149 +f 172/150 222/96 223/2 173/137 +f 171/151 221/98 222/96 172/150 +f 170/152 220/100 221/98 171/151 +f 169/140 219/75 220/101 170/153 diff --git a/mods/pipeworks/models/pipeworks_pipe_9.obj b/mods/pipeworks/models/pipeworks_pipe_9.obj new file mode 100644 index 0000000..8c6e03b --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pipe_9.obj @@ -0,0 +1,759 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-5way.blend' +# www.blender.org +o Cube.000 +v -0.069446 -0.468750 0.103934 +v -0.103933 -0.468750 0.069446 +v -0.122598 -0.468750 0.024386 +v -0.122598 -0.468750 -0.024386 +v -0.129917 -0.500000 -0.086808 +v -0.129917 -0.468750 -0.086808 +v -0.086808 -0.500000 -0.129917 +v -0.086808 -0.468750 -0.129917 +v -0.030483 -0.500000 -0.153248 +v -0.030483 -0.468750 -0.153248 +v 0.030483 -0.500000 -0.153247 +v 0.030483 -0.468750 -0.153247 +v 0.086808 -0.500000 -0.129917 +v 0.086808 -0.468750 -0.129917 +v 0.129917 -0.500000 -0.086808 +v 0.129917 -0.468750 -0.086808 +v 0.153248 -0.500000 -0.030483 +v 0.153248 -0.468750 -0.030483 +v 0.153248 -0.500000 0.030483 +v 0.153248 -0.468750 0.030483 +v 0.129917 -0.500000 0.086808 +v 0.129917 -0.468750 0.086808 +v 0.086808 -0.500000 0.129917 +v 0.086808 -0.468750 0.129917 +v 0.030483 -0.500000 0.153248 +v 0.030483 -0.468750 0.153248 +v -0.030483 -0.500000 0.153248 +v -0.030483 -0.468750 0.153248 +v -0.086808 -0.500000 0.129917 +v -0.086808 -0.468750 0.129917 +v -0.129917 -0.500000 0.086808 +v -0.129917 -0.468750 0.086808 +v -0.153247 -0.500000 0.030483 +v -0.153248 -0.468750 0.030483 +v -0.153247 -0.500000 -0.030483 +v -0.153248 -0.468750 -0.030483 +v -0.024386 -0.468750 0.122598 +v 0.024386 -0.468750 0.122598 +v 0.069446 -0.468750 0.103934 +v 0.103934 -0.468750 0.069447 +v 0.122598 -0.468750 0.024387 +v 0.122598 -0.468750 -0.024386 +v 0.103934 -0.468750 -0.069446 +v 0.069447 -0.468750 -0.103933 +v 0.024386 -0.468750 -0.122598 +v -0.024386 -0.468750 -0.122598 +v -0.069446 -0.468750 -0.103933 +v -0.103934 -0.468750 -0.069446 +v 0.000000 -0.468750 0.000000 +v 0.000000 -0.500000 0.000000 +v 0.024386 -0.024391 0.122598 +v 0.069446 -0.024391 0.103934 +v 0.103934 -0.024391 0.069446 +v 0.122598 -0.024391 0.024386 +v 0.122598 -0.024391 -0.024386 +v 0.103934 -0.024391 -0.069446 +v 0.069446 -0.024391 -0.103934 +v 0.024386 -0.024391 -0.122598 +v -0.024386 -0.024391 -0.122598 +v -0.103934 -0.024391 -0.069446 +v -0.069446 -0.024391 -0.103934 +v -0.103934 -0.024391 0.069446 +v -0.122598 -0.024391 0.024386 +v -0.122598 -0.024391 -0.024386 +v -0.069446 -0.024391 0.103934 +v -0.024386 -0.024391 0.122598 +v -0.153248 0.468750 -0.030483 +v -0.153248 0.500000 -0.030483 +v -0.153248 0.468750 0.030483 +v -0.153248 0.500000 0.030483 +v -0.129917 0.468750 0.086808 +v -0.129917 0.500000 0.086808 +v -0.086808 0.468750 0.129917 +v -0.086808 0.500000 0.129917 +v -0.030483 0.468750 0.153248 +v -0.030483 0.500000 0.153248 +v 0.030483 0.468750 0.153248 +v 0.030483 0.500000 0.153248 +v 0.086808 0.468750 0.129917 +v 0.086808 0.500000 0.129917 +v 0.129917 0.468750 0.086808 +v 0.129917 0.500000 0.086808 +v 0.153248 0.468750 0.030483 +v 0.153248 0.500000 0.030483 +v 0.153248 0.468750 -0.030483 +v 0.153248 0.500000 -0.030483 +v 0.129917 0.468750 -0.086808 +v 0.129917 0.500000 -0.086808 +v 0.086808 0.468750 -0.129917 +v 0.086808 0.500000 -0.129917 +v 0.030483 0.468750 -0.153248 +v 0.030483 0.500000 -0.153248 +v -0.030483 0.468750 -0.153248 +v -0.030483 0.500000 -0.153248 +v -0.086808 0.468750 -0.129917 +v -0.086808 0.500000 -0.129917 +v -0.129917 0.468750 -0.086808 +v -0.129917 0.500000 -0.086808 +v -0.122598 0.468750 -0.024386 +v -0.122598 0.468750 0.024386 +v -0.103934 0.468750 0.069446 +v -0.069446 0.468750 0.103934 +v -0.024386 0.468750 0.122598 +v 0.024386 0.468750 0.122598 +v 0.069446 0.468750 0.103934 +v 0.103934 0.468750 0.069446 +v 0.122598 0.468750 0.024386 +v 0.122598 0.468750 -0.024386 +v 0.103934 0.468750 -0.069446 +v 0.069446 0.468750 -0.103934 +v 0.024386 0.468750 -0.122598 +v -0.024386 0.468750 -0.122598 +v -0.069446 0.468750 -0.103934 +v -0.103934 0.468750 -0.069446 +v -0.000000 0.468750 0.000000 +v -0.000000 0.500000 -0.000000 +v 0.024386 0.024390 0.122598 +v 0.069446 0.024390 0.103934 +v 0.103934 0.024390 0.069446 +v 0.122598 0.024390 0.024386 +v 0.122598 0.024390 -0.024386 +v 0.103934 0.024390 -0.069446 +v 0.069446 0.024390 -0.103934 +v 0.024386 0.024389 -0.122598 +v -0.024386 0.024389 -0.122598 +v -0.103934 0.024390 -0.069446 +v -0.069446 0.024390 -0.103934 +v -0.103934 0.024390 0.069446 +v -0.122598 0.024390 0.024386 +v -0.122598 0.024390 -0.024386 +v -0.069446 0.024390 0.103934 +v -0.024386 0.024390 0.122598 +v -0.468750 -0.153248 -0.030483 +v -0.500000 -0.153248 -0.030483 +v -0.468750 -0.153248 0.030483 +v -0.500000 -0.153248 0.030483 +v -0.468750 -0.129917 0.086808 +v -0.500000 -0.129917 0.086808 +v -0.468750 -0.086808 0.129917 +v -0.500000 -0.086808 0.129917 +v -0.468750 -0.030483 0.153248 +v -0.500000 -0.030483 0.153248 +v -0.468750 0.030483 0.153248 +v -0.500000 0.030483 0.153248 +v -0.468750 0.086808 0.129917 +v -0.500000 0.086808 0.129917 +v -0.468750 0.129917 0.086808 +v -0.500000 0.129917 0.086808 +v -0.468750 0.153248 0.030483 +v -0.500000 0.153248 0.030483 +v -0.468750 0.153248 -0.030483 +v -0.500000 0.153248 -0.030483 +v -0.468750 0.129917 -0.086808 +v -0.500000 0.129917 -0.086808 +v -0.468750 0.086808 -0.129917 +v -0.500000 0.086808 -0.129917 +v -0.468750 0.030483 -0.153248 +v -0.500000 0.030483 -0.153248 +v -0.468750 -0.030483 -0.153248 +v -0.500000 -0.030483 -0.153248 +v -0.468750 -0.086808 -0.129917 +v -0.500000 -0.086808 -0.129917 +v -0.468750 -0.129917 -0.086808 +v -0.500000 -0.129917 -0.086808 +v -0.468750 -0.122598 -0.024386 +v -0.468750 -0.122598 0.024386 +v -0.468750 -0.103934 0.069446 +v -0.468750 -0.069446 0.103934 +v -0.468750 -0.024386 0.122598 +v -0.468750 0.024386 0.122598 +v -0.468750 0.069446 0.103934 +v -0.468750 0.103934 0.069446 +v -0.468750 0.122598 0.024386 +v -0.468750 0.122598 -0.024386 +v -0.468750 0.103934 -0.069446 +v -0.468750 0.069446 -0.103934 +v -0.468750 0.024386 -0.122598 +v -0.468750 -0.024386 -0.122598 +v -0.468750 -0.069446 -0.103934 +v -0.468750 -0.103934 -0.069446 +v -0.468750 0.000000 -0.000000 +v -0.500000 -0.000000 -0.000000 +v 0.468750 -0.069446 0.103934 +v 0.468750 -0.103934 0.069447 +v 0.468750 -0.122598 0.024387 +v 0.468750 -0.122598 -0.024386 +v 0.500000 -0.129917 -0.086807 +v 0.468750 -0.129917 -0.086807 +v 0.500000 -0.086808 -0.129917 +v 0.468750 -0.086808 -0.129917 +v 0.500000 -0.030483 -0.153247 +v 0.468750 -0.030483 -0.153247 +v 0.500000 0.030483 -0.153247 +v 0.468750 0.030483 -0.153247 +v 0.500000 0.086808 -0.129917 +v 0.468750 0.086808 -0.129917 +v 0.500000 0.129917 -0.086808 +v 0.468750 0.129917 -0.086808 +v 0.500000 0.153248 -0.030483 +v 0.468750 0.153248 -0.030483 +v 0.500000 0.153248 0.030483 +v 0.468750 0.153248 0.030483 +v 0.500000 0.129917 0.086808 +v 0.468750 0.129917 0.086808 +v 0.500000 0.086808 0.129917 +v 0.468750 0.086808 0.129917 +v 0.500000 0.030483 0.153248 +v 0.468750 0.030483 0.153248 +v 0.500000 -0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.500000 -0.086808 0.129917 +v 0.468750 -0.086808 0.129917 +v 0.500000 -0.129917 0.086808 +v 0.468750 -0.129917 0.086808 +v 0.500000 -0.153248 0.030483 +v 0.468750 -0.153248 0.030483 +v 0.500000 -0.153248 -0.030482 +v 0.468750 -0.153248 -0.030483 +v 0.468750 -0.024386 0.122598 +v 0.468750 0.024386 0.122598 +v 0.468750 0.069446 0.103934 +v 0.468750 0.103934 0.069447 +v 0.468750 0.122598 0.024387 +v 0.468750 0.122598 -0.024386 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.069446 -0.103933 +v 0.468750 0.024386 -0.122598 +v 0.468750 -0.024386 -0.122598 +v 0.468750 -0.069446 -0.103933 +v 0.468750 -0.103934 -0.069446 +v 0.468750 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +v -0.069446 -0.103934 -0.468750 +v -0.103933 -0.069447 -0.468750 +v -0.122598 -0.024387 -0.468750 +v -0.122598 0.024386 -0.468750 +v -0.129917 0.086808 -0.500000 +v -0.129917 0.086808 -0.468750 +v -0.086807 0.129917 -0.500000 +v -0.086807 0.129917 -0.468750 +v -0.030482 0.153247 -0.500000 +v -0.030482 0.153247 -0.468750 +v 0.030483 0.153247 -0.500000 +v 0.030483 0.153247 -0.468750 +v 0.086808 0.129917 -0.500000 +v 0.086808 0.129917 -0.468750 +v 0.129918 0.086808 -0.500000 +v 0.129918 0.086808 -0.468750 +v 0.153248 0.030483 -0.500000 +v 0.153248 0.030483 -0.468750 +v 0.153248 -0.030483 -0.500000 +v 0.153248 -0.030483 -0.468750 +v 0.129918 -0.086808 -0.500000 +v 0.129918 -0.086808 -0.468750 +v 0.086808 -0.129917 -0.500000 +v 0.086808 -0.129917 -0.468750 +v 0.030483 -0.153248 -0.500000 +v 0.030483 -0.153248 -0.468750 +v -0.030482 -0.153248 -0.500000 +v -0.030482 -0.153248 -0.468750 +v -0.086807 -0.129917 -0.500000 +v -0.086807 -0.129917 -0.468750 +v -0.129917 -0.086808 -0.500000 +v -0.129917 -0.086808 -0.468750 +v -0.153247 -0.030483 -0.500000 +v -0.153247 -0.030483 -0.468750 +v -0.153247 0.030483 -0.500000 +v -0.153247 0.030483 -0.468750 +v -0.024386 -0.122598 -0.468750 +v 0.024387 -0.122598 -0.468750 +v 0.069447 -0.103934 -0.468750 +v 0.103934 -0.069447 -0.468750 +v 0.122599 -0.024387 -0.468750 +v 0.122599 0.024386 -0.468750 +v 0.103934 0.069446 -0.468750 +v 0.069447 0.103933 -0.468750 +v 0.024387 0.122598 -0.468750 +v -0.024386 0.122598 -0.468750 +v -0.069446 0.103933 -0.468750 +v -0.103933 0.069446 -0.468750 +v 0.000000 -0.000000 -0.468750 +v 0.000001 -0.000000 -0.500000 +v 0.024386 -0.122598 -0.024391 +v 0.069446 -0.103934 -0.024391 +v 0.103934 -0.069446 -0.024391 +v 0.122598 -0.024386 -0.024391 +v 0.122598 0.024386 -0.024391 +v 0.103934 0.069446 -0.024391 +v 0.069446 0.103934 -0.024391 +v 0.024386 0.122598 -0.024391 +v -0.024386 0.122598 -0.024391 +v -0.103934 0.069446 -0.024391 +v -0.069446 0.103934 -0.024391 +v -0.103934 -0.069446 -0.024391 +v -0.122598 -0.024386 -0.024391 +v -0.122598 0.024386 -0.024391 +v -0.069446 -0.103934 -0.024391 +v -0.024386 -0.122598 -0.024391 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.250000 0.015625 +vt 0.250000 0.265625 +vt 0.093322 0.682190 +vt 0.153370 0.657318 +vt 0.185867 0.820694 +vt 0.047364 0.728149 +vt 0.022491 0.788196 +vt 0.022491 0.853192 +vt 0.047364 0.913239 +vt 0.093322 0.959198 +vt 0.153370 0.984070 +vt 0.218365 0.984070 +vt 0.278413 0.959198 +vt 0.324371 0.913239 +vt 0.349244 0.853192 +vt 0.349244 0.788196 +vt 0.324371 0.728149 +vt 0.278413 0.682190 +vt 0.218365 0.657318 +vt 0.471785 0.682190 +vt 0.531832 0.657318 +vt 0.564330 0.820694 +vt 0.425826 0.728149 +vt 0.400953 0.788196 +vt 0.400953 0.853192 +vt 0.425826 0.913239 +vt 0.471785 0.959198 +vt 0.531832 0.984070 +vt 0.596827 0.984070 +vt 0.656875 0.959198 +vt 0.702834 0.913239 +vt 0.727706 0.853192 +vt 0.727706 0.788196 +vt 0.702834 0.728149 +vt 0.656875 0.682190 +vt 0.596827 0.657318 +vt 0.125000 0.609375 +vt 0.125000 0.546875 +vt 0.187500 0.546875 +vt 0.187500 0.609375 +vt 0.250000 0.546875 +vt 0.250000 0.609375 +vt 0.062500 0.609375 +vt 0.062500 0.546875 +vt 0.000000 0.609375 +vt 0.000000 0.546875 +vt 0.937500 0.609375 +vt 0.937500 0.546875 +vt 1.000000 0.546875 +vt 1.000000 0.609375 +vt 0.875000 0.609375 +vt 0.875000 0.546875 +vt 0.812500 0.609375 +vt 0.812500 0.546875 +vt 0.750000 0.609375 +vt 0.750000 0.546875 +vt 0.687500 0.609375 +vt 0.687500 0.546875 +vt 0.625000 0.609375 +vt 0.625000 0.546875 +vt 0.562500 0.609375 +vt 0.562500 0.546875 +vt 0.500000 0.609375 +vt 0.500000 0.546875 +vt 0.437500 0.609375 +vt 0.437500 0.546875 +vt 0.375000 0.609375 +vt 0.375000 0.546875 +vt 0.312500 0.609375 +vt 0.312500 0.546875 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.812500 0.015625 +vt 0.812500 0.265625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.625000 0.015625 +vt 0.625000 0.265625 +vt 0.687500 0.265625 +vt 0.687500 0.015625 +vt 0.500000 0.265625 +vt 0.500000 0.015625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.125000 0.265625 +vt 0.125000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.218363 0.657325 +vt 0.185866 0.820702 +vt 0.153368 0.657325 +vt 0.531836 0.657325 +vt 0.564334 0.820702 +vt 0.596832 0.657325 +vt 0.656879 0.682198 +vt 0.702838 0.728156 +vt 0.727710 0.788204 +vt 0.727710 0.853199 +vt 0.702838 0.913247 +vt 0.656879 0.959205 +vt 0.596831 0.984078 +vt 0.531836 0.984078 +vt 0.471788 0.959205 +vt 0.425830 0.913247 +vt 0.400957 0.853199 +vt 0.400957 0.788204 +vt 0.425830 0.728156 +vt 0.471789 0.682198 +vt 0.093321 0.682198 +vt 0.047362 0.728156 +vt 0.022489 0.788204 +vt 0.022489 0.853199 +vt 0.047362 0.913247 +vt 0.093320 0.959205 +vt 0.153368 0.984078 +vt 0.218363 0.984078 +vt 0.278411 0.959205 +vt 0.324369 0.913247 +vt 0.349242 0.853199 +vt 0.349242 0.788204 +vt 0.324369 0.728156 +vt 0.278411 0.682198 +vt 0.187500 0.515625 +vt 0.250000 0.515625 +vt 0.875000 0.515625 +vt 0.937500 0.515625 +vt 0.750000 0.515625 +vt 0.812500 0.515625 +vt 0.562500 0.515625 +vt 0.625000 0.515625 +vt 0.687500 0.515625 +vt 0.500000 0.515625 +vt 0.437500 0.515625 +vt 0.375000 0.515625 +vt 0.312500 0.515625 +vt 0.125000 0.515625 +vt 0.062500 0.515625 +vt 0.000000 0.515625 +vt 1.000000 0.515625 +s off +f 54/1 41/2 42/3 55/4 +f 31/5 33/6 50/7 +f 29/8 31/5 50/7 +f 27/9 29/8 50/7 +f 25/10 27/9 50/7 +f 23/11 25/10 50/7 +f 21/12 23/11 50/7 +f 19/13 21/12 50/7 +f 17/14 19/13 50/7 +f 15/15 17/14 50/7 +f 13/16 15/15 50/7 +f 11/17 13/16 50/7 +f 9/18 11/17 50/7 +f 7/19 9/18 50/7 +f 5/20 7/19 50/7 +f 35/21 5/20 50/7 +f 6/22 36/23 49/24 +f 8/25 6/22 49/24 +f 10/26 8/25 49/24 +f 12/27 10/26 49/24 +f 14/28 12/27 49/24 +f 16/29 14/28 49/24 +f 18/30 16/29 49/24 +f 20/31 18/30 49/24 +f 22/32 20/31 49/24 +f 24/33 22/32 49/24 +f 26/34 24/33 49/24 +f 28/35 26/34 49/24 +f 30/36 28/35 49/24 +f 32/37 30/36 49/24 +f 34/38 32/37 49/24 +f 36/23 34/38 49/24 +f 33/6 35/21 50/7 +f 8/39 7/40 5/41 6/42 +f 6/42 5/41 35/43 36/44 +f 10/45 9/46 7/40 8/39 +f 12/47 11/48 9/46 10/45 +f 14/49 13/50 11/51 12/52 +f 16/53 15/54 13/50 14/49 +f 18/55 17/56 15/54 16/53 +f 20/57 19/58 17/56 18/55 +f 22/59 21/60 19/58 20/57 +f 24/61 23/62 21/60 22/59 +f 26/63 25/64 23/62 24/61 +f 28/65 27/66 25/64 26/63 +f 30/67 29/68 27/66 28/65 +f 32/69 31/70 29/68 30/67 +f 34/71 33/72 31/70 32/69 +f 36/44 35/43 33/72 34/71 +f 65/73 1/74 37/75 66/76 +f 63/77 3/78 2/79 62/80 +f 61/81 47/82 48/83 60/84 +f 64/85 4/86 3/78 63/77 +f 62/80 2/79 1/74 65/73 +f 60/84 48/83 4/86 64/85 +f 59/87 46/88 47/82 61/81 +f 58/89 45/90 46/88 59/87 +f 57/91 44/92 45/90 58/89 +f 56/93 43/94 44/92 57/91 +f 55/4 42/3 43/94 56/93 +f 53/95 40/96 41/2 54/1 +f 52/97 39/98 40/96 53/95 +f 51/99 38/100 39/98 52/97 +f 66/76 37/75 38/101 51/102 +f 67/58 69/60 70/59 68/57 +f 69/60 71/62 72/61 70/59 +f 71/62 73/64 74/63 72/61 +f 73/64 75/66 76/65 74/63 +f 75/66 77/68 78/67 76/65 +f 77/68 79/70 80/69 78/67 +f 79/70 81/72 82/71 80/69 +f 81/72 83/43 84/44 82/71 +f 83/43 85/41 86/42 84/44 +f 85/41 87/40 88/39 86/42 +f 87/40 89/46 90/45 88/39 +f 89/46 91/48 92/47 90/45 +f 91/51 93/50 94/49 92/52 +f 93/50 95/54 96/53 94/49 +f 97/56 67/58 68/57 98/55 +f 95/54 97/56 98/55 96/53 +f 70/103 116/104 68/105 +f 67/106 115/107 69/108 +f 69/108 115/107 71/109 +f 71/109 115/107 73/110 +f 73/110 115/107 75/111 +f 75/111 115/107 77/112 +f 77/112 115/107 79/113 +f 79/113 115/107 81/114 +f 81/114 115/107 83/115 +f 83/115 115/107 85/116 +f 85/116 115/107 87/117 +f 87/117 115/107 89/118 +f 89/118 115/107 91/119 +f 91/119 115/107 93/120 +f 93/120 115/107 95/121 +f 95/121 115/107 97/122 +f 97/122 115/107 67/106 +f 68/105 116/104 98/123 +f 98/123 116/104 96/124 +f 96/124 116/104 94/125 +f 94/125 116/104 92/126 +f 92/126 116/104 90/127 +f 90/127 116/104 88/128 +f 88/128 116/104 86/129 +f 86/129 116/104 84/130 +f 84/130 116/104 82/131 +f 82/131 116/104 80/132 +f 80/132 116/104 78/133 +f 78/133 116/104 76/134 +f 76/134 116/104 74/135 +f 74/135 116/104 72/136 +f 72/136 116/104 70/103 +f 107/137 120/1 121/4 108/138 +f 102/139 131/73 132/76 103/140 +f 100/141 129/77 128/80 101/142 +f 113/143 127/81 126/84 114/144 +f 99/145 130/85 129/77 100/141 +f 101/142 128/80 131/73 102/139 +f 114/144 126/84 130/85 99/145 +f 112/146 125/87 127/81 113/143 +f 111/147 124/89 125/87 112/146 +f 110/148 123/91 124/89 111/147 +f 109/149 122/93 123/91 110/148 +f 108/138 121/4 122/93 109/149 +f 106/150 119/95 120/1 107/137 +f 105/151 118/97 119/95 106/150 +f 104/152 117/99 118/97 105/151 +f 103/140 132/76 117/102 104/153 +f 133/58 135/60 136/59 134/57 +f 135/60 137/62 138/61 136/59 +f 137/62 139/64 140/63 138/61 +f 139/64 141/66 142/65 140/63 +f 141/66 143/68 144/67 142/65 +f 143/68 145/70 146/69 144/67 +f 145/70 147/72 148/71 146/69 +f 147/72 149/43 150/44 148/71 +f 149/43 151/41 152/42 150/44 +f 151/41 153/40 154/39 152/42 +f 153/40 155/46 156/45 154/39 +f 155/46 157/48 158/47 156/45 +f 157/51 159/50 160/49 158/52 +f 159/50 161/54 162/53 160/49 +f 163/56 133/58 134/57 164/55 +f 161/54 163/56 164/55 162/53 +f 136/103 182/104 134/105 +f 133/106 181/107 135/108 +f 135/108 181/107 137/109 +f 137/109 181/107 139/110 +f 139/110 181/107 141/111 +f 141/111 181/107 143/112 +f 143/112 181/107 145/113 +f 145/113 181/107 147/114 +f 147/114 181/107 149/115 +f 149/115 181/107 151/116 +f 151/116 181/107 153/117 +f 153/117 181/107 155/118 +f 155/118 181/107 157/119 +f 157/119 181/107 159/120 +f 159/120 181/107 161/121 +f 161/121 181/107 163/122 +f 163/122 181/107 133/106 +f 134/105 182/104 164/123 +f 164/123 182/104 162/124 +f 162/124 182/104 160/125 +f 160/125 182/104 158/126 +f 158/126 182/104 156/127 +f 156/127 182/104 154/128 +f 154/128 182/104 152/129 +f 152/129 182/104 150/130 +f 150/130 182/104 148/131 +f 148/131 182/104 146/132 +f 146/132 182/104 144/133 +f 144/133 182/104 142/134 +f 142/134 182/104 140/135 +f 140/135 182/104 138/136 +f 138/136 182/104 136/103 +f 173/137 223/2 224/3 174/138 +f 213/5 215/6 232/7 +f 211/8 213/5 232/7 +f 209/9 211/8 232/7 +f 207/10 209/9 232/7 +f 205/11 207/10 232/7 +f 203/12 205/11 232/7 +f 201/13 203/12 232/7 +f 199/14 201/13 232/7 +f 197/15 199/14 232/7 +f 195/16 197/15 232/7 +f 193/17 195/16 232/7 +f 191/18 193/17 232/7 +f 189/19 191/18 232/7 +f 187/20 189/19 232/7 +f 217/21 187/20 232/7 +f 188/22 218/23 231/24 +f 190/25 188/22 231/24 +f 192/26 190/25 231/24 +f 194/27 192/26 231/24 +f 196/28 194/27 231/24 +f 198/29 196/28 231/24 +f 200/30 198/29 231/24 +f 202/31 200/30 231/24 +f 204/32 202/31 231/24 +f 206/33 204/32 231/24 +f 208/34 206/33 231/24 +f 210/35 208/34 231/24 +f 212/36 210/35 231/24 +f 214/37 212/36 231/24 +f 216/38 214/37 231/24 +f 218/23 216/38 231/24 +f 215/6 217/21 232/7 +f 190/39 189/40 187/41 188/42 +f 188/42 187/41 217/43 218/44 +f 192/45 191/46 189/40 190/39 +f 194/47 193/48 191/46 192/45 +f 196/49 195/50 193/51 194/52 +f 198/53 197/54 195/50 196/49 +f 200/55 199/56 197/54 198/53 +f 202/57 201/58 199/56 200/55 +f 204/59 203/60 201/58 202/57 +f 206/61 205/62 203/60 204/59 +f 208/63 207/64 205/62 206/61 +f 210/65 209/66 207/64 208/63 +f 212/67 211/68 209/66 210/65 +f 214/69 213/70 211/68 212/67 +f 216/71 215/72 213/70 214/69 +f 218/44 217/43 215/72 216/71 +f 168/139 183/74 219/75 169/140 +f 166/141 185/78 184/79 167/142 +f 179/143 229/82 230/83 180/144 +f 165/145 186/86 185/78 166/141 +f 167/142 184/79 183/74 168/139 +f 180/144 230/83 186/86 165/145 +f 178/146 228/88 229/82 179/143 +f 177/147 227/90 228/88 178/146 +f 176/148 226/92 227/90 177/147 +f 175/149 225/94 226/92 176/148 +f 174/138 224/3 225/94 175/149 +f 172/150 222/96 223/2 173/137 +f 171/151 221/98 222/96 172/150 +f 170/152 220/100 221/98 171/151 +f 169/140 219/75 220/101 170/153 +f 286/1 273/2 274/3 287/4 +f 263/5 265/6 282/7 +f 261/8 263/5 282/7 +f 259/9 261/8 282/7 +f 257/10 259/9 282/7 +f 255/11 257/10 282/7 +f 253/12 255/11 282/7 +f 251/13 253/12 282/7 +f 249/14 251/13 282/7 +f 247/15 249/14 282/7 +f 245/16 247/15 282/7 +f 243/17 245/16 282/7 +f 241/18 243/17 282/7 +f 239/19 241/18 282/7 +f 237/20 239/19 282/7 +f 267/21 237/20 282/7 +f 238/22 268/23 281/24 +f 240/25 238/22 281/24 +f 242/26 240/25 281/24 +f 244/27 242/26 281/24 +f 246/28 244/27 281/24 +f 248/29 246/28 281/24 +f 250/30 248/29 281/24 +f 252/31 250/30 281/24 +f 254/32 252/31 281/24 +f 256/33 254/32 281/24 +f 258/34 256/33 281/24 +f 260/35 258/34 281/24 +f 262/36 260/35 281/24 +f 264/37 262/36 281/24 +f 266/38 264/37 281/24 +f 268/23 266/38 281/24 +f 265/6 267/21 282/7 +f 240/39 239/40 237/41 238/42 +f 238/42 237/41 267/43 268/44 +f 242/45 241/46 239/40 240/39 +f 244/47 243/48 241/46 242/45 +f 246/49 245/50 243/51 244/52 +f 248/53 247/54 245/50 246/49 +f 250/55 249/56 247/54 248/53 +f 252/57 251/58 249/56 250/55 +f 254/59 253/60 251/58 252/57 +f 256/61 255/62 253/60 254/59 +f 258/63 257/64 255/62 256/61 +f 260/65 259/66 257/64 258/63 +f 262/67 261/68 259/66 260/65 +f 264/69 263/70 261/68 262/67 +f 266/71 265/72 263/70 264/69 +f 268/44 267/43 265/72 266/71 +f 297/73 233/74 269/75 298/76 +f 295/77 235/78 234/79 294/80 +f 293/81 279/82 280/83 292/84 +f 296/85 236/86 235/78 295/77 +f 294/80 234/79 233/74 297/73 +f 292/84 280/83 236/86 296/85 +f 291/87 278/88 279/82 293/81 +f 290/89 277/90 278/88 291/87 +f 289/91 276/92 277/90 290/89 +f 288/93 275/94 276/92 289/91 +f 287/4 274/3 275/94 288/93 +f 285/95 272/96 273/2 286/1 +f 284/97 271/98 272/96 285/95 +f 283/99 270/100 271/98 284/97 +f 298/76 269/75 270/101 283/102 diff --git a/mods/pipeworks/models/pipeworks_pump.obj b/mods/pipeworks/models/pipeworks_pump.obj new file mode 100644 index 0000000..f05dd02 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_pump.obj @@ -0,0 +1,282 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-pump.blend' +# www.blender.org +mtllib pipeworks_pump.mtl +o Cube +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.375000 0.500000 +v -0.500000 -0.375000 -0.500000 +v 0.500000 -0.375000 -0.500000 +v 0.500000 -0.375000 0.500000 +v -0.437500 -0.375000 0.437500 +v -0.437500 -0.375000 -0.437500 +v 0.437500 -0.375000 -0.437500 +v 0.437500 -0.375000 0.437500 +v -0.437500 0.375000 0.437500 +v -0.437500 0.375000 -0.437500 +v 0.437500 0.375000 -0.437500 +v 0.437500 0.375000 0.437500 +v 0.153248 0.468750 0.030483 +v 0.153248 0.500000 0.030483 +v 0.153248 0.468750 -0.030483 +v 0.153248 0.500000 -0.030483 +v 0.129917 0.468750 -0.086808 +v 0.129917 0.500000 -0.086808 +v 0.086808 0.468750 -0.129917 +v 0.086808 0.500000 -0.129917 +v 0.030483 0.468750 -0.153248 +v 0.030483 0.500000 -0.153248 +v -0.030483 0.468750 -0.153248 +v -0.030483 0.500000 -0.153248 +v -0.086808 0.468750 -0.129917 +v -0.086808 0.500000 -0.129917 +v -0.129917 0.468750 -0.086808 +v -0.129917 0.500000 -0.086808 +v -0.153247 0.468750 -0.030483 +v -0.153247 0.500000 -0.030483 +v -0.153247 0.468750 0.030483 +v -0.153247 0.500000 0.030483 +v -0.129917 0.468750 0.086808 +v -0.129917 0.500000 0.086808 +v -0.086808 0.468750 0.129917 +v -0.086808 0.500000 0.129917 +v -0.030483 0.468750 0.153248 +v -0.030483 0.500000 0.153248 +v 0.030483 0.468750 0.153248 +v 0.030483 0.500000 0.153248 +v 0.086808 0.468750 0.129917 +v 0.086808 0.500000 0.129917 +v 0.129917 0.468750 0.086808 +v 0.129918 0.500000 0.086808 +v 0.122598 0.468750 0.024386 +v 0.122598 0.468750 -0.024386 +v 0.103934 0.468750 -0.069446 +v 0.069447 0.468750 -0.103934 +v 0.024387 0.468750 -0.122598 +v -0.024386 0.468750 -0.122598 +v -0.069446 0.468750 -0.103934 +v -0.103933 0.468750 -0.069446 +v -0.122598 0.468750 -0.024386 +v -0.122598 0.468750 0.024386 +v -0.103933 0.468750 0.069446 +v -0.069446 0.468750 0.103934 +v -0.024386 0.468750 0.122598 +v 0.024387 0.468750 0.122598 +v 0.069447 0.468750 0.103934 +v 0.103934 0.468750 0.069446 +v 0.000000 0.468750 -0.000000 +v 0.000000 0.500000 0.000000 +v 0.122598 0.375003 0.024386 +v 0.122598 0.375003 -0.024386 +v 0.103934 0.375003 -0.069446 +v 0.069446 0.375003 0.103934 +v 0.103934 0.375003 0.069446 +v 0.024386 0.375003 0.122598 +v -0.024386 0.375003 0.122598 +v -0.069446 0.375003 0.103934 +v -0.103934 0.375003 0.069446 +v -0.122598 0.375003 0.024386 +v -0.122598 0.375003 -0.024386 +v -0.103934 0.375003 -0.069446 +v -0.069446 0.375003 -0.103934 +v -0.024386 0.375003 -0.122598 +v 0.069446 0.375003 -0.103934 +v 0.024386 0.375003 -0.122598 +vt 0.714844 0.761719 +vt 0.714844 0.511719 +vt 0.746094 0.511719 +vt 0.746094 0.761719 +vt 0.621094 0.761719 +vt 0.621094 0.511719 +vt 0.652344 0.511719 +vt 0.652344 0.761719 +vt 0.683594 0.761719 +vt 0.683594 0.511719 +vt 0.996094 0.511719 +vt 0.996094 0.761719 +vt 0.996094 0.261719 +vt 0.746094 0.261719 +vt 0.230469 0.261719 +vt 0.449219 0.261719 +vt 0.449219 0.433594 +vt 0.230469 0.433594 +vt 0.222656 0.613281 +vt 0.003906 0.613281 +vt 0.003906 0.441406 +vt 0.222656 0.441406 +vt 0.222656 0.433594 +vt 0.003906 0.433594 +vt 0.003906 0.261719 +vt 0.222656 0.261719 +vt 0.675781 0.433594 +vt 0.457031 0.433594 +vt 0.457031 0.261719 +vt 0.675781 0.261719 +vt 0.230469 0.660156 +vt 0.230469 0.441406 +vt 0.449219 0.441406 +vt 0.449219 0.660156 +vt 0.750000 0.996094 +vt 0.812500 0.996094 +vt 0.812500 0.945313 +vt 0.750000 0.945313 +vt 0.875000 0.996094 +vt 0.875000 0.945313 +vt 0.937500 0.996094 +vt 0.937500 0.945313 +vt 1.000000 0.996094 +vt 1.000000 0.945313 +vt 0.000000 0.996094 +vt 0.062500 0.996094 +vt 0.062500 0.945313 +vt 0.000000 0.945313 +vt 0.125000 0.996094 +vt 0.125000 0.945313 +vt 0.187500 0.996094 +vt 0.187500 0.945313 +vt 0.250000 0.996094 +vt 0.250000 0.945313 +vt 0.312500 0.996094 +vt 0.312500 0.945313 +vt 0.375000 0.996094 +vt 0.375000 0.945313 +vt 0.437500 0.996094 +vt 0.437500 0.945313 +vt 0.500000 0.996094 +vt 0.500000 0.945313 +vt 0.562500 0.996094 +vt 0.562500 0.945313 +vt 0.625000 0.996094 +vt 0.625000 0.945313 +vt 0.687500 0.996094 +vt 0.687500 0.945313 +vt 0.007550 0.738767 +vt 0.046892 0.730976 +vt 0.007550 0.723186 +vt 0.101275 0.738767 +vt 0.140617 0.730976 +vt 0.101275 0.723186 +vt 0.107265 0.708790 +vt 0.118332 0.697773 +vt 0.132792 0.691810 +vt 0.148443 0.691810 +vt 0.162903 0.697773 +vt 0.173970 0.708790 +vt 0.179959 0.723186 +vt 0.179959 0.738767 +vt 0.173970 0.753163 +vt 0.162903 0.764180 +vt 0.148443 0.770143 +vt 0.132792 0.770143 +vt 0.118332 0.764180 +vt 0.107265 0.753163 +vt 0.013540 0.708790 +vt 0.024607 0.697773 +vt 0.039067 0.691810 +vt 0.054718 0.691810 +vt 0.069178 0.697773 +vt 0.080245 0.708790 +vt 0.086234 0.723186 +vt 0.086234 0.738767 +vt 0.080245 0.753162 +vt 0.069178 0.764180 +vt 0.054718 0.770143 +vt 0.039067 0.770143 +vt 0.024607 0.764180 +vt 0.013540 0.753162 +vt 0.250000 0.777344 +vt 0.312500 0.777344 +vt 0.937500 0.777344 +vt 1.000000 0.777344 +vt 0.812500 0.777344 +vt 0.875000 0.777344 +vt 0.625000 0.777344 +vt 0.687500 0.777344 +vt 0.750000 0.777344 +vt 0.562500 0.777344 +vt 0.500000 0.777344 +vt 0.437500 0.777344 +vt 0.375000 0.777344 +vt 0.187500 0.777344 +vt 0.125000 0.777344 +vt 0.062500 0.777344 +vt 0.000000 0.777344 +usemtl None +s off +f 5/1 6/2 2/3 1/4 +f 6/5 7/6 3/7 2/8 +f 7/9 8/10 4/2 3/1 +f 8/10 5/9 1/8 4/7 +f 1/4 2/3 3/11 4/12 +f 8/13 7/11 6/3 5/14 +f 13/15 14/16 10/17 9/18 +f 14/19 15/20 11/21 10/22 +f 15/23 16/24 12/25 11/26 +f 16/27 13/28 9/29 12/30 +f 16/31 15/32 14/33 13/34 +f 17/35 19/36 20/37 18/38 +f 19/36 21/39 22/40 20/37 +f 21/39 23/41 24/42 22/40 +f 23/41 25/43 26/44 24/42 +f 25/45 27/46 28/47 26/48 +f 27/46 29/49 30/50 28/47 +f 29/49 31/51 32/52 30/50 +f 31/51 33/53 34/54 32/52 +f 33/53 35/55 36/56 34/54 +f 35/55 37/57 38/58 36/56 +f 37/57 39/59 40/60 38/58 +f 39/59 41/61 42/62 40/60 +f 41/61 43/63 44/64 42/62 +f 43/63 45/65 46/66 44/64 +f 47/67 17/35 18/38 48/68 +f 45/65 47/67 48/68 46/66 +f 20/69 66/70 18/71 +f 17/72 65/73 19/74 +f 19/74 65/73 21/75 +f 21/75 65/73 23/76 +f 23/76 65/73 25/77 +f 25/77 65/73 27/78 +f 27/78 65/73 29/79 +f 29/79 65/73 31/80 +f 31/80 65/73 33/81 +f 33/81 65/73 35/82 +f 35/82 65/73 37/83 +f 37/83 65/73 39/84 +f 39/84 65/73 41/85 +f 41/85 65/73 43/86 +f 43/86 65/73 45/87 +f 45/87 65/73 47/88 +f 47/88 65/73 17/72 +f 18/71 66/70 48/89 +f 48/89 66/70 46/90 +f 46/90 66/70 44/91 +f 44/91 66/70 42/92 +f 42/92 66/70 40/93 +f 40/93 66/70 38/94 +f 38/94 66/70 36/95 +f 36/95 66/70 34/96 +f 34/96 66/70 32/97 +f 32/97 66/70 30/98 +f 30/98 66/70 28/99 +f 28/99 66/70 26/100 +f 26/100 66/70 24/101 +f 24/101 66/70 22/102 +f 22/102 66/70 20/69 +f 57/54 77/103 76/104 58/56 +f 52/42 81/105 82/106 53/44 +f 50/37 68/107 69/108 51/40 +f 63/66 70/109 71/110 64/68 +f 49/38 67/111 68/107 50/37 +f 51/40 69/108 81/105 52/42 +f 64/68 71/110 67/111 49/38 +f 62/64 72/112 70/109 63/66 +f 61/62 73/113 72/112 62/64 +f 60/60 74/114 73/113 61/62 +f 59/58 75/115 74/114 60/60 +f 58/56 76/104 75/115 59/58 +f 56/52 78/116 77/103 57/54 +f 55/50 79/117 78/116 56/52 +f 54/47 80/118 79/117 55/50 +f 53/48 82/119 80/118 54/47 diff --git a/mods/pipeworks/models/pipeworks_spigot.obj b/mods/pipeworks/models/pipeworks_spigot.obj new file mode 100644 index 0000000..f6e80c9 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_spigot.obj @@ -0,0 +1,512 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-spigot.blend' +# www.blender.org +mtllib pipeworks_spigot.mtl +o pipe.000_Cylinder.001 +v -0.122598 -0.024391 -0.024386 +v -0.122598 -0.024391 0.024386 +v 0.129917 -0.250000 -0.086808 +v 0.153247 -0.250000 -0.030483 +v -0.000000 -0.250000 -0.000000 +v 0.086808 -0.250000 -0.129917 +v 0.030483 -0.250000 -0.153248 +v -0.030483 -0.250000 -0.153248 +v -0.086808 -0.250000 -0.129917 +v -0.129917 -0.250000 -0.086808 +v -0.153248 -0.250000 -0.030483 +v -0.153248 -0.250000 0.030483 +v -0.129917 -0.250000 0.086808 +v -0.086808 -0.250000 0.129917 +v -0.030483 -0.250000 0.153247 +v 0.030483 -0.250000 0.153248 +v 0.086808 -0.250000 0.129917 +v 0.129917 -0.250000 0.086808 +v 0.153247 -0.250000 0.030483 +v 0.129917 -0.187500 0.086808 +v 0.153248 -0.187500 0.030483 +v -0.000000 -0.187500 -0.000000 +v 0.086808 -0.187500 0.129917 +v 0.030483 -0.187500 0.153248 +v -0.030483 -0.187500 0.153247 +v -0.086808 -0.187500 0.129917 +v -0.129917 -0.187500 0.086808 +v -0.153248 -0.187500 0.030483 +v -0.153248 -0.187500 -0.030483 +v -0.129917 -0.187500 -0.086808 +v -0.086808 -0.187500 -0.129917 +v -0.030483 -0.187500 -0.153248 +v 0.030483 -0.187500 -0.153248 +v 0.086808 -0.187500 -0.129917 +v 0.129917 -0.187500 -0.086808 +v 0.153248 -0.187500 -0.030483 +v 0.069446 -0.024391 -0.103934 +v 0.024386 -0.024391 -0.122598 +v 0.122598 -0.024391 -0.024386 +v 0.103934 -0.024391 -0.069446 +v 0.069446 -0.024391 0.103934 +v 0.103934 -0.024391 0.069446 +v 0.122598 -0.024391 0.024386 +v 0.024386 -0.024391 0.122598 +v -0.024386 -0.024391 0.122598 +v -0.069446 -0.024391 0.103934 +v -0.103934 -0.024391 0.069446 +v -0.103934 -0.024391 -0.069446 +v -0.069446 -0.024391 -0.103934 +v -0.024386 -0.024391 -0.122598 +v -0.103934 0.041589 -0.041924 +v 0.103934 0.041589 -0.041925 +v 0.122598 0.009727 -0.010062 +v 0.024386 0.079173 -0.079509 +v 0.069446 0.065976 -0.066311 +v 0.069446 0.094826 -0.024663 +v -0.103934 0.062964 -0.011464 +v -0.069446 0.094827 -0.024662 +v -0.024386 0.112070 -0.031805 +v 0.024386 0.112070 -0.031805 +v 0.122598 0.021334 0.005779 +v 0.103934 0.062964 -0.011464 +v -0.122598 0.021334 0.005780 +v -0.024386 0.079173 -0.079509 +v -0.069446 0.065976 -0.066311 +v -0.122599 -0.024387 0.468750 +v -0.122599 0.024386 0.468750 +v -0.122598 0.024386 0.024391 +v 0.129917 -0.086808 0.500000 +v 0.153247 -0.030483 0.500000 +v -0.000001 0.000000 0.500000 +v 0.086807 -0.129917 0.500000 +v 0.030482 -0.153248 0.500000 +v -0.030483 -0.153248 0.500000 +v -0.086808 -0.129917 0.500000 +v -0.129918 -0.086808 0.500000 +v -0.153248 -0.030483 0.500000 +v -0.153248 0.030483 0.500000 +v -0.129918 0.086808 0.500000 +v -0.086808 0.129917 0.500000 +v -0.030483 0.153247 0.500000 +v 0.030482 0.153247 0.500000 +v 0.086807 0.129917 0.500000 +v 0.129917 0.086808 0.500000 +v 0.153247 0.030483 0.500000 +v 0.129917 0.086808 0.468750 +v 0.153247 0.030483 0.468750 +v 0.000000 0.000000 0.468750 +v 0.086807 0.129917 0.468750 +v 0.030482 0.153247 0.468750 +v -0.030483 0.153247 0.468750 +v -0.086808 0.129917 0.468750 +v -0.129918 0.086808 0.468750 +v -0.153248 0.030483 0.468750 +v -0.153248 -0.030483 0.468750 +v -0.129918 -0.086808 0.468750 +v -0.086808 -0.129917 0.468750 +v -0.030483 -0.153248 0.468750 +v 0.030482 -0.153248 0.468750 +v 0.086807 -0.129917 0.468750 +v 0.129917 -0.086808 0.468750 +v 0.153247 -0.030483 0.468750 +v 0.069446 -0.103934 0.024391 +v 0.069446 -0.103934 0.468750 +v 0.024386 -0.122598 0.468750 +v 0.024386 -0.122598 0.024391 +v 0.122598 -0.024387 0.468750 +v 0.103933 -0.069447 0.468750 +v 0.103934 -0.069446 0.024391 +v 0.069446 0.103933 0.468750 +v 0.103933 0.069446 0.468750 +v 0.103934 0.069446 0.024391 +v 0.122598 0.024386 0.024391 +v 0.122598 0.024386 0.468750 +v 0.024386 0.122598 0.024391 +v 0.024386 0.122598 0.468750 +v -0.024386 0.122598 0.024391 +v -0.024387 0.122598 0.468750 +v -0.069446 0.103934 0.024391 +v -0.069447 0.103933 0.468750 +v -0.103934 0.069446 0.024391 +v -0.103934 0.069446 0.468750 +v -0.103934 -0.069446 0.024391 +v -0.103934 -0.069447 0.468750 +v -0.069446 -0.103934 0.024391 +v -0.069447 -0.103934 0.468750 +v -0.024386 -0.122598 0.024391 +v -0.024387 -0.122598 0.468750 +v 0.069446 0.103934 0.024390 +v -0.122598 -0.005780 -0.020763 +v -0.024386 0.031804 -0.111499 +v -0.069446 0.024662 -0.094256 +v -0.103934 0.011464 -0.062393 +v 0.103934 0.011464 -0.062393 +v 0.122598 -0.005780 -0.020763 +v 0.024386 0.031804 -0.111499 +v 0.069446 0.024662 -0.094256 +v -0.122598 0.009727 -0.010062 +v -0.122598 -0.246570 0.024386 +v -0.103934 -0.246570 0.069446 +v -0.069447 -0.246570 0.103934 +v -0.122598 -0.246570 -0.024386 +v 0.069446 -0.246571 0.103933 +v 0.122598 -0.246571 0.024386 +v 0.103934 -0.246571 0.069446 +v 0.103933 -0.246571 -0.069446 +v -0.024386 -0.246570 0.122598 +v 0.122598 -0.246571 -0.024386 +v -0.024386 -0.246571 -0.122598 +v 0.024386 -0.246571 -0.122598 +v 0.069446 -0.246571 -0.103934 +v -0.103934 -0.246570 -0.069446 +v -0.069446 -0.246570 -0.103934 +v 0.024386 -0.246570 0.122598 +vt 0.139725 0.682190 +vt 0.199773 0.657318 +vt 0.232270 0.820694 +vt 0.093767 0.728149 +vt 0.068894 0.788196 +vt 0.068894 0.853192 +vt 0.093767 0.913239 +vt 0.139725 0.959198 +vt 0.199773 0.984070 +vt 0.264768 0.984070 +vt 0.324816 0.959198 +vt 0.370774 0.913239 +vt 0.395647 0.853192 +vt 0.395647 0.788196 +vt 0.370774 0.728149 +vt 0.324816 0.682190 +vt 0.264768 0.657318 +vt 0.487410 0.682190 +vt 0.547457 0.657318 +vt 0.579955 0.820694 +vt 0.441451 0.728149 +vt 0.416578 0.788196 +vt 0.416578 0.853192 +vt 0.441451 0.913239 +vt 0.487410 0.959198 +vt 0.547457 0.984070 +vt 0.612452 0.984070 +vt 0.672500 0.959198 +vt 0.718459 0.913239 +vt 0.743331 0.853192 +vt 0.743331 0.788196 +vt 0.718459 0.728149 +vt 0.672500 0.682190 +vt 0.612452 0.657318 +vt 0.125000 0.640625 +vt 0.125000 0.578125 +vt 0.187500 0.578125 +vt 0.187500 0.640625 +vt 0.250000 0.578125 +vt 0.250000 0.640625 +vt 0.062500 0.640625 +vt 0.062500 0.578125 +vt 0.000000 0.640625 +vt 0.000000 0.578125 +vt 0.937500 0.640625 +vt 0.937500 0.578125 +vt 1.000000 0.578125 +vt 1.000000 0.640625 +vt 0.875000 0.640625 +vt 0.875000 0.578125 +vt 0.812500 0.640625 +vt 0.812500 0.578125 +vt 0.750000 0.640625 +vt 0.750000 0.578125 +vt 0.687500 0.640625 +vt 0.687500 0.578125 +vt 0.625000 0.640625 +vt 0.625000 0.578125 +vt 0.562500 0.640625 +vt 0.562500 0.578125 +vt 0.500000 0.640625 +vt 0.500000 0.578125 +vt 0.437500 0.640625 +vt 0.437500 0.578125 +vt 0.375000 0.640625 +vt 0.375000 0.578125 +vt 0.312500 0.640625 +vt 0.312500 0.578125 +vt 0.187500 0.453125 +vt 0.125000 0.453125 +vt 0.139892 0.682190 +vt 0.199940 0.657318 +vt 0.232437 0.820694 +vt 0.093934 0.728149 +vt 0.069061 0.788196 +vt 0.069061 0.853192 +vt 0.093934 0.913239 +vt 0.139892 0.959198 +vt 0.199940 0.984070 +vt 0.264935 0.984070 +vt 0.324983 0.959198 +vt 0.370941 0.913239 +vt 0.395814 0.853192 +vt 0.395814 0.788196 +vt 0.370941 0.728149 +vt 0.324983 0.682190 +vt 0.264935 0.657318 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.812500 0.265625 +vt 0.812500 0.015625 +vt 0.625000 0.265625 +vt 0.625000 0.015625 +vt 0.687500 0.015625 +vt 0.687500 0.265625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.500000 0.015625 +vt 0.500000 0.265625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.250000 0.265625 +vt 0.250000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.125000 0.015625 +vt 0.125000 0.265625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.000000 0.999989 +vt 0.000000 0.890943 +vt 0.041611 0.899043 +vt 0.941956 0.794823 +vt 0.941956 0.841698 +vt 0.895081 0.841698 +vt 0.895081 0.794823 +vt 0.848206 0.841698 +vt 0.848206 0.794823 +vt 0.801331 0.794823 +vt 0.801331 0.841698 +vt 0.754456 0.841698 +vt 0.754456 0.794823 +vt 0.988831 0.794823 +vt 0.988831 0.841698 +vt 0.941956 0.701073 +vt 0.941956 0.747948 +vt 0.895081 0.747948 +vt 0.895081 0.701073 +vt 0.041611 0.741571 +vt 0.000000 0.749671 +vt 0.076282 0.717645 +vt 0.102233 0.682226 +vt 0.109057 0.640614 +vt 0.754456 0.747948 +vt 0.801331 0.747948 +vt 0.848206 0.747948 +vt 0.848206 0.701073 +vt 0.941956 0.888573 +vt 0.988831 0.888573 +vt 0.895081 0.888573 +vt 0.848206 0.888573 +vt 0.076282 0.922969 +vt 0.102233 0.958388 +vt 0.109057 1.000000 +vt 0.801331 0.888573 +vt 0.754456 0.888573 +vt 0.801331 0.935448 +vt 0.754456 0.935448 +vt 0.754456 0.982323 +vt 0.801331 0.982323 +vt 0.848206 0.935448 +vt 0.848206 0.982323 +vt 0.895081 0.935448 +vt 0.895081 0.982323 +vt 0.941956 0.935448 +vt 0.941956 0.982323 +vt 0.988831 0.982323 +vt 0.988831 0.935448 +vt 0.801331 0.701073 +vt 0.754456 0.701073 +vt 0.250000 0.453125 +vt 0.875000 0.453125 +vt 0.937500 0.453125 +vt 0.750000 0.453125 +vt 0.812500 0.453125 +vt 0.562500 0.453125 +vt 0.625000 0.453125 +vt 0.687500 0.453125 +vt 0.500000 0.453125 +vt 0.437500 0.453125 +vt 0.375000 0.453125 +vt 0.312500 0.453125 +vt 0.062500 0.453125 +vt 0.000000 0.453125 +vt 1.000000 0.453125 +g pipe.000_Cylinder.001_metal +usemtl metal +s off +f 3/1 4/2 5/3 +f 6/4 3/1 5/3 +f 7/5 6/4 5/3 +f 8/6 7/5 5/3 +f 9/7 8/6 5/3 +f 10/8 9/7 5/3 +f 11/9 10/8 5/3 +f 12/10 11/9 5/3 +f 13/11 12/10 5/3 +f 14/12 13/11 5/3 +f 15/13 14/12 5/3 +f 16/14 15/13 5/3 +f 17/15 16/14 5/3 +f 18/16 17/15 5/3 +f 19/17 18/16 5/3 +f 20/18 21/19 22/20 +f 23/21 20/18 22/20 +f 24/22 23/21 22/20 +f 25/23 24/22 22/20 +f 26/24 25/23 22/20 +f 27/25 26/24 22/20 +f 28/26 27/25 22/20 +f 29/27 28/26 22/20 +f 30/28 29/27 22/20 +f 31/29 30/28 22/20 +f 32/30 31/29 22/20 +f 33/31 32/30 22/20 +f 34/32 33/31 22/20 +f 35/33 34/32 22/20 +f 36/34 35/33 22/20 +f 21/19 36/34 22/20 +f 4/2 19/17 5/3 +f 23/35 17/36 18/37 20/38 +f 20/38 18/37 19/39 21/40 +f 24/41 16/42 17/36 23/35 +f 25/43 15/44 16/42 24/41 +f 26/45 14/46 15/47 25/48 +f 27/49 13/50 14/46 26/45 +f 28/51 12/52 13/50 27/49 +f 29/53 11/54 12/52 28/51 +f 30/55 10/56 11/54 29/53 +f 31/57 9/58 10/56 30/55 +f 32/59 8/60 9/58 31/57 +f 33/61 7/62 8/60 32/59 +f 34/63 6/64 7/62 33/61 +f 35/65 3/66 6/64 34/63 +f 36/67 4/68 3/66 35/65 +f 21/40 19/39 4/68 36/67 +f 142/69 1/37 48/36 152/70 +f 69/71 70/72 71/73 +f 72/74 69/71 71/73 +f 73/75 72/74 71/73 +f 74/76 73/75 71/73 +f 75/77 74/76 71/73 +f 76/78 75/77 71/73 +f 77/79 76/78 71/73 +f 78/80 77/79 71/73 +f 79/81 78/80 71/73 +f 80/82 79/81 71/73 +f 81/83 80/82 71/73 +f 82/84 81/83 71/73 +f 83/85 82/84 71/73 +f 84/86 83/85 71/73 +f 85/87 84/86 71/73 +f 86/18 87/19 88/20 +f 89/21 86/18 88/20 +f 90/22 89/21 88/20 +f 91/23 90/22 88/20 +f 92/24 91/23 88/20 +f 93/25 92/24 88/20 +f 94/26 93/25 88/20 +f 95/27 94/26 88/20 +f 96/28 95/27 88/20 +f 97/29 96/28 88/20 +f 98/30 97/29 88/20 +f 99/31 98/30 88/20 +f 100/32 99/31 88/20 +f 101/33 100/32 88/20 +f 102/34 101/33 88/20 +f 87/19 102/34 88/20 +f 70/72 85/87 71/73 +f 89/35 83/36 84/37 86/38 +f 86/38 84/37 85/39 87/40 +f 90/41 82/42 83/36 89/35 +f 91/43 81/44 82/42 90/41 +f 92/45 80/46 81/47 91/48 +f 93/49 79/50 80/46 92/45 +f 94/51 78/52 79/50 93/49 +f 95/53 77/54 78/52 94/51 +f 96/55 76/56 77/54 95/53 +f 97/57 75/58 76/56 96/55 +f 98/59 74/60 75/58 97/57 +f 99/61 73/62 74/60 98/59 +f 100/63 72/64 73/62 99/61 +f 101/65 69/66 72/64 100/63 +f 102/67 70/68 69/66 101/65 +f 87/40 85/39 70/68 102/67 +f 103/88 104/89 105/90 106/91 +f 109/92 108/93 104/89 103/88 +f 112/94 111/95 114/96 113/97 +f 117/98 118/99 116/100 115/101 +f 119/102 120/103 118/99 117/98 +f 121/104 122/105 120/103 119/102 +f 68/106 67/107 122/105 121/104 +f 125/108 126/109 124/110 123/111 +f 127/112 128/113 126/109 125/108 +f 106/91 105/90 128/114 127/115 +f 2/116 66/117 67/107 68/106 +f 43/118 107/119 108/93 109/92 +f 129/120 110/121 111/95 112/94 +f 113/97 114/96 107/119 43/118 +f 115/101 116/100 110/121 129/120 +f 123/111 124/110 66/117 2/116 +f 43/122 39/123 135/124 +f 50/125 131/126 136/127 38/128 +f 38/128 136/127 137/129 37/130 +f 40/131 37/130 137/129 134/132 +f 40/131 134/132 135/133 39/134 +f 50/125 49/135 132/136 131/126 +f 49/137 48/138 133/139 132/140 +f 48/138 1/125 130/128 133/139 +f 2/43 130/141 1/142 +f 2/43 138/143 130/141 +f 2/43 63/144 138/143 +f 63/144 2/43 68/145 +f 121/146 57/147 63/131 68/134 +f 57/147 51/148 138/130 63/131 +f 133/139 130/128 138/130 51/148 +f 65/149 132/140 133/139 51/148 +f 64/150 131/126 132/136 65/151 +f 64/150 54/152 136/127 131/126 +f 54/152 55/153 137/129 136/127 +f 43/122 135/124 53/154 +f 43/122 53/154 61/155 +f 61/155 113/156 43/122 +f 134/132 52/157 53/158 135/133 +f 62/159 61/160 53/158 52/157 +f 52/157 134/132 137/129 55/153 +f 113/161 61/160 62/159 112/162 +f 62/159 52/157 55/153 56/163 +f 62/159 56/163 129/164 112/162 +f 60/165 56/163 55/153 54/152 +f 60/165 115/166 129/164 56/163 +f 64/150 59/167 60/165 54/152 +f 117/168 115/166 60/165 59/167 +f 119/169 117/168 59/167 58/170 +f 59/167 64/150 65/151 58/170 +f 58/171 65/149 51/148 57/147 +f 121/146 119/172 58/171 57/147 +f 1/37 142/69 139/173 2/39 +f 37/50 151/174 150/175 38/46 +f 39/54 148/176 146/177 40/52 +f 41/60 143/178 145/179 42/58 +f 43/56 144/180 148/176 39/54 +f 40/52 146/177 151/174 37/50 +f 42/58 145/179 144/180 43/56 +f 44/62 154/181 143/178 41/60 +f 45/64 147/182 154/181 44/62 +f 46/66 141/183 147/182 45/64 +f 47/68 140/184 141/183 46/66 +f 2/39 139/173 140/184 47/68 +f 49/42 153/185 152/70 48/36 +f 50/44 149/186 153/185 49/42 +f 38/46 150/175 149/187 50/47 diff --git a/mods/pipeworks/models/pipeworks_spigot_pouring.obj b/mods/pipeworks/models/pipeworks_spigot_pouring.obj new file mode 100644 index 0000000..50f653c --- /dev/null +++ b/mods/pipeworks/models/pipeworks_spigot_pouring.obj @@ -0,0 +1,634 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-spigot-pouring.blend' +# www.blender.org +mtllib pipeworks_spigot_pouring.mtl +o pipe.001_Cylinder.000 +v -0.094401 -0.559070 0.018777 +v -0.080029 -0.559070 0.053473 +v -0.053474 -0.559070 0.080029 +v -0.094401 -0.559070 -0.018778 +v 0.053473 -0.559070 0.080029 +v 0.094400 -0.559070 0.018777 +v 0.080029 -0.559070 0.053473 +v 0.080029 -0.559071 -0.053474 +v -0.018777 -0.559070 0.094400 +v 0.094400 -0.559071 -0.018777 +v -0.018777 -0.559071 -0.094401 +v 0.018777 -0.559071 -0.094401 +v 0.053473 -0.559071 -0.080029 +v -0.080029 -0.559070 -0.053474 +v -0.053474 -0.559070 -0.080029 +v 0.018777 -0.559070 0.094400 +v -0.000000 -0.559070 -0.000000 +v -0.094401 -0.243141 0.018777 +v -0.080029 -0.243141 0.053473 +v -0.053474 -0.243141 0.080029 +v -0.094401 -0.243141 -0.018778 +v 0.053473 -0.243141 0.080029 +v 0.094400 -0.243141 0.018777 +v 0.080029 -0.243141 0.053473 +v 0.080029 -0.243141 -0.053474 +v -0.018777 -0.243141 0.094400 +v 0.094400 -0.243141 -0.018777 +v -0.018777 -0.243141 -0.094401 +v 0.018777 -0.243141 -0.094401 +v 0.053473 -0.243141 -0.080029 +v -0.080029 -0.243141 -0.053474 +v -0.053474 -0.243141 -0.080029 +v 0.018777 -0.243141 0.094400 +vt 0.499995 0.000000 +vt 0.374998 0.000000 +vt 0.375003 1.000000 +vt 0.500001 1.000000 +vt 0.249999 0.000000 +vt 0.250003 1.000000 +vt 0.124999 0.000000 +vt 0.125002 1.000000 +vt 0.874999 0.000000 +vt 0.750001 0.000000 +vt 0.750000 1.000000 +vt 0.874999 1.000000 +vt 0.625002 0.000000 +vt 0.624999 1.000000 +vt 0.500003 0.000000 +vt 0.499998 1.000000 +vt 0.375006 0.000000 +vt 0.375000 1.000000 +vt 0.250008 0.000000 +vt 0.250001 1.000000 +vt 0.125008 0.000000 +vt 0.000010 0.000000 +vt 0.000000 1.000000 +vt 0.125000 1.000000 +vt 0.749993 0.000000 +vt 0.624993 0.000000 +vt 0.625001 1.000000 +vt 0.750002 1.000000 +vt 0.999987 0.000000 +vt 0.874991 0.000000 +vt 0.875002 1.000000 +vt 1.000000 1.000000 +vt 0.999997 0.000000 +vt 0.999998 1.000000 +vt 0.000003 1.000000 +vt 0.000002 0.000000 +vt 0.000000 0.400543 +vt 0.076119 0.216772 +vt 0.500000 0.500000 +vt 0.216773 0.076119 +vt 0.400545 0.000000 +vt 0.599455 0.000000 +vt 0.783226 0.076119 +vt 0.923879 0.216773 +vt 1.000000 0.400544 +vt 1.000000 0.599455 +vt 0.923881 0.783226 +vt 0.783227 0.923879 +vt 0.599455 1.000000 +vt 0.400545 1.000000 +vt 0.216772 0.923879 +vt 0.076119 0.783227 +vt 0.000000 0.599455 +g pipe.001_Cylinder.000_water +usemtl water +s off +f 12/1 11/2 28/3 29/4 +f 11/2 15/5 32/6 28/3 +f 15/5 14/7 31/8 32/6 +f 1/9 2/10 19/11 18/12 +f 2/10 3/13 20/14 19/11 +f 3/13 9/15 26/16 20/14 +f 9/15 16/17 33/18 26/16 +f 16/17 5/19 22/20 33/18 +f 7/21 6/22 23/23 24/24 +f 8/25 13/26 30/27 25/28 +f 6/29 10/30 27/31 23/32 +f 5/19 7/21 24/24 22/20 +f 10/30 8/25 25/28 27/31 +f 13/26 12/1 29/4 30/27 +f 4/33 1/9 18/12 21/34 +f 21/35 31/8 14/7 4/36 +f 4/37 14/38 17/39 +f 14/38 15/40 17/39 +f 15/40 11/41 17/39 +f 11/41 12/42 17/39 +f 12/42 13/43 17/39 +f 13/43 8/44 17/39 +f 8/44 10/45 17/39 +f 10/45 6/46 17/39 +f 6/46 7/47 17/39 +f 7/47 5/48 17/39 +f 5/48 16/49 17/39 +f 16/49 9/50 17/39 +f 9/50 3/51 17/39 +f 3/51 2/52 17/39 +f 2/52 1/53 17/39 +f 1/53 4/37 17/39 +o pipe.000_Cylinder.001 +v -0.122598 -0.024391 -0.024386 +v -0.122598 -0.024391 0.024386 +v 0.129917 -0.250000 -0.086808 +v 0.153247 -0.250000 -0.030483 +v -0.000000 -0.250000 -0.000000 +v 0.086808 -0.250000 -0.129917 +v 0.030483 -0.250000 -0.153248 +v -0.030483 -0.250000 -0.153248 +v -0.086808 -0.250000 -0.129917 +v -0.129917 -0.250000 -0.086808 +v -0.153248 -0.250000 -0.030483 +v -0.153248 -0.250000 0.030483 +v -0.129917 -0.250000 0.086808 +v -0.086808 -0.250000 0.129917 +v -0.030483 -0.250000 0.153247 +v 0.030483 -0.250000 0.153248 +v 0.086808 -0.250000 0.129917 +v 0.129917 -0.250000 0.086808 +v 0.153247 -0.250000 0.030483 +v 0.129917 -0.187500 0.086808 +v 0.153248 -0.187500 0.030483 +v -0.000000 -0.187500 -0.000000 +v 0.086808 -0.187500 0.129917 +v 0.030483 -0.187500 0.153248 +v -0.030483 -0.187500 0.153247 +v -0.086808 -0.187500 0.129917 +v -0.129917 -0.187500 0.086808 +v -0.153248 -0.187500 0.030483 +v -0.153248 -0.187500 -0.030483 +v -0.129917 -0.187500 -0.086808 +v -0.086808 -0.187500 -0.129917 +v -0.030483 -0.187500 -0.153248 +v 0.030483 -0.187500 -0.153248 +v 0.086808 -0.187500 -0.129917 +v 0.129917 -0.187500 -0.086808 +v 0.153248 -0.187500 -0.030483 +v 0.069446 -0.024391 -0.103934 +v 0.024386 -0.024391 -0.122598 +v 0.122598 -0.024391 -0.024386 +v 0.103934 -0.024391 -0.069446 +v 0.069446 -0.024391 0.103934 +v 0.103934 -0.024391 0.069446 +v 0.122598 -0.024391 0.024386 +v 0.024386 -0.024391 0.122598 +v -0.024386 -0.024391 0.122598 +v -0.069446 -0.024391 0.103934 +v -0.103934 -0.024391 0.069446 +v -0.103934 -0.024391 -0.069446 +v -0.069446 -0.024391 -0.103934 +v -0.024386 -0.024391 -0.122598 +v -0.103934 0.041589 -0.041924 +v 0.103934 0.041589 -0.041925 +v 0.122598 0.009727 -0.010062 +v 0.024386 0.079173 -0.079509 +v 0.069446 0.065976 -0.066311 +v 0.069446 0.094826 -0.024663 +v -0.103934 0.062964 -0.011464 +v -0.069446 0.094827 -0.024662 +v -0.024386 0.112070 -0.031805 +v 0.024386 0.112070 -0.031805 +v 0.122598 0.021334 0.005779 +v 0.103934 0.062964 -0.011464 +v -0.122598 0.021334 0.005780 +v -0.024386 0.079173 -0.079509 +v -0.069446 0.065976 -0.066311 +v -0.122599 -0.024387 0.468750 +v -0.122599 0.024386 0.468750 +v -0.122598 0.024386 0.024391 +v 0.129917 -0.086808 0.500000 +v 0.153247 -0.030483 0.500000 +v -0.000001 0.000000 0.500000 +v 0.086807 -0.129917 0.500000 +v 0.030482 -0.153248 0.500000 +v -0.030483 -0.153248 0.500000 +v -0.086808 -0.129917 0.500000 +v -0.129918 -0.086808 0.500000 +v -0.153248 -0.030483 0.500000 +v -0.153248 0.030483 0.500000 +v -0.129918 0.086808 0.500000 +v -0.086808 0.129917 0.500000 +v -0.030483 0.153247 0.500000 +v 0.030482 0.153247 0.500000 +v 0.086807 0.129917 0.500000 +v 0.129917 0.086808 0.500000 +v 0.153247 0.030483 0.500000 +v 0.129917 0.086808 0.468750 +v 0.153247 0.030483 0.468750 +v 0.000000 0.000000 0.468750 +v 0.086807 0.129917 0.468750 +v 0.030482 0.153247 0.468750 +v -0.030483 0.153247 0.468750 +v -0.086808 0.129917 0.468750 +v -0.129918 0.086808 0.468750 +v -0.153248 0.030483 0.468750 +v -0.153248 -0.030483 0.468750 +v -0.129918 -0.086808 0.468750 +v -0.086808 -0.129917 0.468750 +v -0.030483 -0.153248 0.468750 +v 0.030482 -0.153248 0.468750 +v 0.086807 -0.129917 0.468750 +v 0.129917 -0.086808 0.468750 +v 0.153247 -0.030483 0.468750 +v 0.069446 -0.103934 0.024391 +v 0.069446 -0.103934 0.468750 +v 0.024386 -0.122598 0.468750 +v 0.024386 -0.122598 0.024391 +v 0.122598 -0.024387 0.468750 +v 0.103933 -0.069447 0.468750 +v 0.103934 -0.069446 0.024391 +v 0.069446 0.103933 0.468750 +v 0.103933 0.069446 0.468750 +v 0.103934 0.069446 0.024391 +v 0.122598 0.024386 0.024391 +v 0.122598 0.024386 0.468750 +v 0.024386 0.122598 0.024391 +v 0.024386 0.122598 0.468750 +v -0.024386 0.122598 0.024391 +v -0.024387 0.122598 0.468750 +v -0.069446 0.103934 0.024391 +v -0.069447 0.103933 0.468750 +v -0.103934 0.069446 0.024391 +v -0.103934 0.069446 0.468750 +v -0.103934 -0.069446 0.024391 +v -0.103934 -0.069447 0.468750 +v -0.069446 -0.103934 0.024391 +v -0.069447 -0.103934 0.468750 +v -0.024386 -0.122598 0.024391 +v -0.024387 -0.122598 0.468750 +v 0.069446 0.103934 0.024390 +v -0.122598 -0.005780 -0.020763 +v -0.024386 0.031804 -0.111499 +v -0.069446 0.024662 -0.094256 +v -0.103934 0.011464 -0.062393 +v 0.103934 0.011464 -0.062393 +v 0.122598 -0.005780 -0.020763 +v 0.024386 0.031804 -0.111499 +v 0.069446 0.024662 -0.094256 +v -0.122598 0.009727 -0.010062 +v -0.122598 -0.246570 0.024386 +v -0.103934 -0.246570 0.069446 +v -0.069447 -0.246570 0.103934 +v -0.122598 -0.246570 -0.024386 +v 0.069446 -0.246571 0.103933 +v 0.122598 -0.246571 0.024386 +v 0.103934 -0.246571 0.069446 +v 0.103933 -0.246571 -0.069446 +v -0.024386 -0.246570 0.122598 +v 0.122598 -0.246571 -0.024386 +v -0.024386 -0.246571 -0.122598 +v 0.024386 -0.246571 -0.122598 +v 0.069446 -0.246571 -0.103934 +v -0.103934 -0.246570 -0.069446 +v -0.069446 -0.246570 -0.103934 +v 0.024386 -0.246570 0.122598 +vt 0.139725 0.682190 +vt 0.199773 0.657318 +vt 0.232270 0.820694 +vt 0.093767 0.728149 +vt 0.068894 0.788196 +vt 0.068894 0.853192 +vt 0.093767 0.913239 +vt 0.139725 0.959198 +vt 0.199773 0.984070 +vt 0.264768 0.984070 +vt 0.324816 0.959198 +vt 0.370774 0.913239 +vt 0.395647 0.853192 +vt 0.395647 0.788196 +vt 0.370774 0.728149 +vt 0.324816 0.682190 +vt 0.264768 0.657318 +vt 0.487410 0.682190 +vt 0.547457 0.657318 +vt 0.579955 0.820694 +vt 0.441451 0.728149 +vt 0.416578 0.788196 +vt 0.416578 0.853192 +vt 0.441451 0.913239 +vt 0.487410 0.959198 +vt 0.547457 0.984070 +vt 0.612452 0.984070 +vt 0.672500 0.959198 +vt 0.718459 0.913239 +vt 0.743331 0.853192 +vt 0.743331 0.788196 +vt 0.718459 0.728149 +vt 0.672500 0.682190 +vt 0.612452 0.657318 +vt 0.125000 0.640625 +vt 0.125000 0.578125 +vt 0.187500 0.578125 +vt 0.187500 0.640625 +vt 0.250000 0.578125 +vt 0.250000 0.640625 +vt 0.062500 0.640625 +vt 0.062500 0.578125 +vt 0.000000 0.640625 +vt 0.000000 0.578125 +vt 0.937500 0.640625 +vt 0.937500 0.578125 +vt 1.000000 0.578125 +vt 1.000000 0.640625 +vt 0.875000 0.640625 +vt 0.875000 0.578125 +vt 0.812500 0.640625 +vt 0.812500 0.578125 +vt 0.750000 0.640625 +vt 0.750000 0.578125 +vt 0.687500 0.640625 +vt 0.687500 0.578125 +vt 0.625000 0.640625 +vt 0.625000 0.578125 +vt 0.562500 0.640625 +vt 0.562500 0.578125 +vt 0.500000 0.640625 +vt 0.500000 0.578125 +vt 0.437500 0.640625 +vt 0.437500 0.578125 +vt 0.375000 0.640625 +vt 0.375000 0.578125 +vt 0.312500 0.640625 +vt 0.312500 0.578125 +vt 0.187500 0.453125 +vt 0.125000 0.453125 +vt 0.139892 0.682190 +vt 0.199940 0.657318 +vt 0.232437 0.820694 +vt 0.093934 0.728149 +vt 0.069061 0.788196 +vt 0.069061 0.853192 +vt 0.093934 0.913239 +vt 0.139892 0.959198 +vt 0.199940 0.984070 +vt 0.264935 0.984070 +vt 0.324983 0.959198 +vt 0.370941 0.913239 +vt 0.395814 0.853192 +vt 0.395814 0.788196 +vt 0.370941 0.728149 +vt 0.324983 0.682190 +vt 0.264935 0.657318 +vt 0.875000 0.265625 +vt 0.875000 0.015625 +vt 0.937500 0.015625 +vt 0.937500 0.265625 +vt 0.812500 0.265625 +vt 0.812500 0.015625 +vt 0.625000 0.265625 +vt 0.625000 0.015625 +vt 0.687500 0.015625 +vt 0.687500 0.265625 +vt 0.437500 0.265625 +vt 0.437500 0.015625 +vt 0.500000 0.015625 +vt 0.500000 0.265625 +vt 0.375000 0.265625 +vt 0.375000 0.015625 +vt 0.312500 0.265625 +vt 0.312500 0.015625 +vt 0.250000 0.265625 +vt 0.250000 0.015625 +vt 0.062500 0.265625 +vt 0.062500 0.015625 +vt 0.125000 0.015625 +vt 0.125000 0.265625 +vt 0.000000 0.265625 +vt 0.000000 0.015625 +vt 1.000000 0.015625 +vt 1.000000 0.265625 +vt 0.187500 0.265625 +vt 0.187500 0.015625 +vt 0.750000 0.265625 +vt 0.750000 0.015625 +vt 0.562500 0.265625 +vt 0.562500 0.015625 +vt 0.000000 0.999989 +vt 0.000000 0.890943 +vt 0.041611 0.899043 +vt 0.941956 0.794823 +vt 0.941956 0.841698 +vt 0.895081 0.841698 +vt 0.895081 0.794823 +vt 0.848206 0.841698 +vt 0.848206 0.794823 +vt 0.801331 0.794823 +vt 0.801331 0.841698 +vt 0.754456 0.841698 +vt 0.754456 0.794823 +vt 0.988831 0.794823 +vt 0.988831 0.841698 +vt 0.941956 0.701073 +vt 0.941956 0.747948 +vt 0.895081 0.747948 +vt 0.895081 0.701073 +vt 0.041611 0.741571 +vt 0.000000 0.749671 +vt 0.076282 0.717645 +vt 0.102233 0.682226 +vt 0.109057 0.640614 +vt 0.754456 0.747948 +vt 0.801331 0.747948 +vt 0.848206 0.747948 +vt 0.848206 0.701073 +vt 0.941956 0.888573 +vt 0.988831 0.888573 +vt 0.895081 0.888573 +vt 0.848206 0.888573 +vt 0.076282 0.922969 +vt 0.102233 0.958388 +vt 0.109057 1.000000 +vt 0.801331 0.888573 +vt 0.754456 0.888573 +vt 0.801331 0.935448 +vt 0.754456 0.935448 +vt 0.754456 0.982323 +vt 0.801331 0.982323 +vt 0.848206 0.935448 +vt 0.848206 0.982323 +vt 0.895081 0.935448 +vt 0.895081 0.982323 +vt 0.941956 0.935448 +vt 0.941956 0.982323 +vt 0.988831 0.982323 +vt 0.988831 0.935448 +vt 0.801331 0.701073 +vt 0.754456 0.701073 +vt 0.250000 0.453125 +vt 0.875000 0.453125 +vt 0.937500 0.453125 +vt 0.750000 0.453125 +vt 0.812500 0.453125 +vt 0.562500 0.453125 +vt 0.625000 0.453125 +vt 0.687500 0.453125 +vt 0.500000 0.453125 +vt 0.437500 0.453125 +vt 0.375000 0.453125 +vt 0.312500 0.453125 +vt 0.062500 0.453125 +vt 0.000000 0.453125 +vt 1.000000 0.453125 +g pipe.000_Cylinder.001_metal +usemtl metal +s off +f 36/54 37/55 38/56 +f 39/57 36/54 38/56 +f 40/58 39/57 38/56 +f 41/59 40/58 38/56 +f 42/60 41/59 38/56 +f 43/61 42/60 38/56 +f 44/62 43/61 38/56 +f 45/63 44/62 38/56 +f 46/64 45/63 38/56 +f 47/65 46/64 38/56 +f 48/66 47/65 38/56 +f 49/67 48/66 38/56 +f 50/68 49/67 38/56 +f 51/69 50/68 38/56 +f 52/70 51/69 38/56 +f 53/71 54/72 55/73 +f 56/74 53/71 55/73 +f 57/75 56/74 55/73 +f 58/76 57/75 55/73 +f 59/77 58/76 55/73 +f 60/78 59/77 55/73 +f 61/79 60/78 55/73 +f 62/80 61/79 55/73 +f 63/81 62/80 55/73 +f 64/82 63/81 55/73 +f 65/83 64/82 55/73 +f 66/84 65/83 55/73 +f 67/85 66/84 55/73 +f 68/86 67/85 55/73 +f 69/87 68/86 55/73 +f 54/72 69/87 55/73 +f 37/55 52/70 38/56 +f 56/88 50/89 51/90 53/91 +f 53/91 51/90 52/92 54/93 +f 57/94 49/95 50/89 56/88 +f 58/96 48/97 49/95 57/94 +f 59/98 47/99 48/100 58/101 +f 60/102 46/103 47/99 59/98 +f 61/104 45/105 46/103 60/102 +f 62/106 44/107 45/105 61/104 +f 63/108 43/109 44/107 62/106 +f 64/110 42/111 43/109 63/108 +f 65/112 41/113 42/111 64/110 +f 66/114 40/115 41/113 65/112 +f 67/116 39/117 40/115 66/114 +f 68/118 36/119 39/117 67/116 +f 69/120 37/121 36/119 68/118 +f 54/93 52/92 37/121 69/120 +f 175/122 34/90 81/89 185/123 +f 102/124 103/125 104/126 +f 105/127 102/124 104/126 +f 106/128 105/127 104/126 +f 107/129 106/128 104/126 +f 108/130 107/129 104/126 +f 109/131 108/130 104/126 +f 110/132 109/131 104/126 +f 111/133 110/132 104/126 +f 112/134 111/133 104/126 +f 113/135 112/134 104/126 +f 114/136 113/135 104/126 +f 115/137 114/136 104/126 +f 116/138 115/137 104/126 +f 117/139 116/138 104/126 +f 118/140 117/139 104/126 +f 119/71 120/72 121/73 +f 122/74 119/71 121/73 +f 123/75 122/74 121/73 +f 124/76 123/75 121/73 +f 125/77 124/76 121/73 +f 126/78 125/77 121/73 +f 127/79 126/78 121/73 +f 128/80 127/79 121/73 +f 129/81 128/80 121/73 +f 130/82 129/81 121/73 +f 131/83 130/82 121/73 +f 132/84 131/83 121/73 +f 133/85 132/84 121/73 +f 134/86 133/85 121/73 +f 135/87 134/86 121/73 +f 120/72 135/87 121/73 +f 103/125 118/140 104/126 +f 122/88 116/89 117/90 119/91 +f 119/91 117/90 118/92 120/93 +f 123/94 115/95 116/89 122/88 +f 124/96 114/97 115/95 123/94 +f 125/98 113/99 114/100 124/101 +f 126/102 112/103 113/99 125/98 +f 127/104 111/105 112/103 126/102 +f 128/106 110/107 111/105 127/104 +f 129/108 109/109 110/107 128/106 +f 130/110 108/111 109/109 129/108 +f 131/112 107/113 108/111 130/110 +f 132/114 106/115 107/113 131/112 +f 133/116 105/117 106/115 132/114 +f 134/118 102/119 105/117 133/116 +f 135/120 103/121 102/119 134/118 +f 120/93 118/92 103/121 135/120 +f 136/141 137/142 138/143 139/144 +f 142/145 141/146 137/142 136/141 +f 145/147 144/148 147/149 146/150 +f 150/151 151/152 149/153 148/154 +f 152/155 153/156 151/152 150/151 +f 154/157 155/158 153/156 152/155 +f 101/159 100/160 155/158 154/157 +f 158/161 159/162 157/163 156/164 +f 160/165 161/166 159/162 158/161 +f 139/144 138/143 161/167 160/168 +f 35/169 99/170 100/160 101/159 +f 76/171 140/172 141/146 142/145 +f 162/173 143/174 144/148 145/147 +f 146/150 147/149 140/172 76/171 +f 148/154 149/153 143/174 162/173 +f 156/164 157/163 99/170 35/169 +f 76/175 72/176 168/177 +f 83/178 164/179 169/180 71/181 +f 71/181 169/180 170/182 70/183 +f 73/184 70/183 170/182 167/185 +f 73/184 167/185 168/186 72/187 +f 83/178 82/188 165/189 164/179 +f 82/190 81/191 166/192 165/193 +f 81/191 34/178 163/181 166/192 +f 35/96 163/194 34/195 +f 35/96 171/196 163/194 +f 35/96 96/197 171/196 +f 96/197 35/96 101/198 +f 154/199 90/200 96/184 101/187 +f 90/200 84/201 171/183 96/184 +f 166/192 163/181 171/183 84/201 +f 98/202 165/193 166/192 84/201 +f 97/203 164/179 165/189 98/204 +f 97/203 87/205 169/180 164/179 +f 87/205 88/206 170/182 169/180 +f 76/175 168/177 86/207 +f 76/175 86/207 94/208 +f 94/208 146/209 76/175 +f 167/185 85/210 86/211 168/186 +f 95/212 94/213 86/211 85/210 +f 85/210 167/185 170/182 88/206 +f 146/214 94/213 95/212 145/215 +f 95/212 85/210 88/206 89/216 +f 95/212 89/216 162/217 145/215 +f 93/218 89/216 88/206 87/205 +f 93/218 148/219 162/217 89/216 +f 97/203 92/220 93/218 87/205 +f 150/221 148/219 93/218 92/220 +f 152/222 150/221 92/220 91/223 +f 92/220 97/203 98/204 91/223 +f 91/224 98/202 84/201 90/200 +f 154/199 152/225 91/224 90/200 +f 34/90 175/122 172/226 35/92 +f 70/103 184/227 183/228 71/99 +f 72/107 181/229 179/230 73/105 +f 74/113 176/231 178/232 75/111 +f 76/109 177/233 181/229 72/107 +f 73/105 179/230 184/227 70/103 +f 75/111 178/232 177/233 76/109 +f 77/115 187/234 176/231 74/113 +f 78/117 180/235 187/234 77/115 +f 79/119 174/236 180/235 78/117 +f 80/121 173/237 174/236 79/119 +f 35/92 172/226 173/237 80/121 +f 82/95 186/238 185/123 81/89 +f 83/97 182/239 186/238 82/95 +f 71/99 183/228 182/240 83/100 diff --git a/mods/pipeworks/models/pipeworks_valve_off.obj b/mods/pipeworks/models/pipeworks_valve_off.obj new file mode 100644 index 0000000..c5f71be --- /dev/null +++ b/mods/pipeworks/models/pipeworks_valve_off.obj @@ -0,0 +1,458 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-valve-off.blend' +# www.blender.org +mtllib pipeworks_valve_off.mtl +o Cube.003 +v 0.062500 0.281250 -0.312500 +v 0.062500 0.281250 0.093750 +v -0.062500 0.281250 0.093750 +v -0.062500 0.281250 -0.312500 +v 0.062500 0.343750 -0.312500 +v 0.062500 0.343750 0.093750 +v -0.062500 0.343750 0.093750 +v -0.062500 0.343750 -0.312500 +v 0.031250 0.250000 -0.031250 +v 0.031250 0.250000 0.031250 +v -0.031250 0.250000 0.031250 +v -0.031250 0.250000 -0.031250 +v 0.031250 0.281250 -0.031250 +v 0.031250 0.281250 0.031250 +v -0.031250 0.281250 0.031250 +v -0.031250 0.281250 -0.031250 +v 0.250000 -0.250000 -0.250000 +v 0.250000 -0.250000 0.250000 +v -0.250000 -0.250000 0.250000 +v -0.250000 -0.250000 -0.250000 +v 0.250000 0.250000 -0.250000 +v 0.250000 0.250000 0.250000 +v -0.250000 0.250000 0.250000 +v -0.250000 0.250000 -0.250000 +v -0.468750 -0.153248 -0.030483 +v -0.500000 -0.153248 -0.030483 +v -0.468750 -0.153248 0.030483 +v -0.500000 -0.153248 0.030483 +v -0.468750 -0.129917 0.086808 +v -0.500000 -0.129917 0.086808 +v -0.468750 -0.086808 0.129917 +v -0.500000 -0.086808 0.129917 +v -0.468750 -0.030483 0.153248 +v -0.500000 -0.030483 0.153248 +v -0.468750 0.030483 0.153248 +v -0.500000 0.030483 0.153248 +v -0.468750 0.086808 0.129917 +v -0.500000 0.086808 0.129917 +v -0.468750 0.129917 0.086808 +v -0.500000 0.129917 0.086808 +v -0.468750 0.153248 0.030483 +v -0.500000 0.153247 0.030483 +v -0.468750 0.153248 -0.030483 +v -0.500000 0.153248 -0.030483 +v -0.468750 0.129917 -0.086808 +v -0.500000 0.129917 -0.086808 +v -0.468750 0.086808 -0.129917 +v -0.500000 0.086808 -0.129917 +v -0.468750 0.030483 -0.153248 +v -0.500000 0.030483 -0.153248 +v -0.468750 -0.030483 -0.153248 +v -0.500000 -0.030483 -0.153248 +v -0.468750 -0.086808 -0.129917 +v -0.500000 -0.086808 -0.129917 +v -0.468750 -0.129917 -0.086808 +v -0.500000 -0.129917 -0.086808 +v -0.468750 -0.122598 -0.024386 +v -0.468750 -0.122598 0.024386 +v -0.468750 -0.103934 0.069446 +v -0.468750 -0.069446 0.103934 +v -0.468750 -0.024386 0.122598 +v -0.468750 0.024386 0.122598 +v -0.468750 0.069446 0.103934 +v -0.468750 0.103934 0.069446 +v -0.468750 0.122598 0.024386 +v -0.468750 0.122598 -0.024386 +v -0.468750 0.103934 -0.069446 +v -0.468750 0.069446 -0.103934 +v -0.468750 0.024386 -0.122598 +v -0.468750 -0.024387 -0.122598 +v -0.468750 -0.069447 -0.103934 +v -0.468750 -0.103934 -0.069446 +v -0.468750 -0.000000 -0.000000 +v -0.500000 -0.000000 -0.000000 +v 0.468750 -0.069446 0.103934 +v 0.468750 -0.103933 0.069447 +v 0.468750 -0.122598 0.024387 +v 0.468750 -0.122598 -0.024386 +v 0.500000 -0.129917 -0.086807 +v 0.468750 -0.129917 -0.086807 +v 0.500000 -0.086808 -0.129917 +v 0.468750 -0.086808 -0.129917 +v 0.500000 -0.030483 -0.153247 +v 0.468750 -0.030483 -0.153247 +v 0.500000 0.030483 -0.153247 +v 0.468750 0.030483 -0.153247 +v 0.500000 0.086808 -0.129917 +v 0.468750 0.086808 -0.129917 +v 0.500000 0.129917 -0.086808 +v 0.468750 0.129917 -0.086808 +v 0.500000 0.153248 -0.030483 +v 0.468750 0.153248 -0.030483 +v 0.500000 0.153248 0.030483 +v 0.468750 0.153248 0.030483 +v 0.500000 0.129917 0.086808 +v 0.468750 0.129917 0.086808 +v 0.500000 0.086808 0.129917 +v 0.468750 0.086808 0.129917 +v 0.500000 0.030483 0.153248 +v 0.468750 0.030483 0.153248 +v 0.500000 -0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.500000 -0.086807 0.129917 +v 0.468750 -0.086808 0.129917 +v 0.500000 -0.129917 0.086808 +v 0.468750 -0.129917 0.086808 +v 0.500000 -0.153247 0.030483 +v 0.468750 -0.153247 0.030483 +v 0.500000 -0.153247 -0.030483 +v 0.468750 -0.153247 -0.030483 +v 0.468750 -0.024386 0.122598 +v 0.468750 0.024387 0.122598 +v 0.468750 0.069447 0.103934 +v 0.468750 0.103934 0.069447 +v 0.468750 0.122598 0.024387 +v 0.468750 0.122598 -0.024386 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.069447 -0.103933 +v 0.468750 0.024387 -0.122598 +v 0.468750 -0.024386 -0.122598 +v 0.468750 -0.069446 -0.103933 +v 0.468750 -0.103933 -0.069446 +v 0.468750 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +vt 0.265625 0.234375 +vt 0.468750 0.234375 +vt 0.468750 0.265625 +vt 0.265625 0.265625 +vt 0.265625 0.187500 +vt 0.328125 0.187500 +vt 0.328125 0.218750 +vt 0.265625 0.218750 +vt 0.468750 0.312500 +vt 0.265625 0.312500 +vt 0.265625 0.281250 +vt 0.468750 0.281250 +vt 0.406250 0.218750 +vt 0.343750 0.218750 +vt 0.343750 0.187500 +vt 0.406250 0.187500 +vt 0.468750 0.468750 +vt 0.265625 0.468750 +vt 0.265625 0.406250 +vt 0.468750 0.406250 +vt 0.468750 0.390625 +vt 0.265625 0.390625 +vt 0.265625 0.328125 +vt 0.468750 0.328125 +vt 0.039062 0.203125 +vt 0.007812 0.203125 +vt 0.007812 0.187500 +vt 0.039062 0.187500 +vt 0.085938 0.203125 +vt 0.054688 0.203125 +vt 0.054688 0.187500 +vt 0.085938 0.187500 +vt 0.148438 0.187500 +vt 0.179688 0.187500 +vt 0.179688 0.203125 +vt 0.148438 0.203125 +vt 0.132812 0.203125 +vt 0.101562 0.203125 +vt 0.101562 0.187500 +vt 0.132812 0.187500 +vt 0.515625 0.484375 +vt 0.515625 0.734375 +vt 0.265625 0.734375 +vt 0.265625 0.484375 +vt 0.000000 0.468750 +vt 0.000000 0.218750 +vt 0.250000 0.218750 +vt 0.250000 0.468750 +vt 0.515625 1.000000 +vt 0.265625 1.000000 +vt 0.265625 0.750000 +vt 0.515625 0.750000 +vt 0.250000 0.734375 +vt 0.000000 0.734375 +vt 0.000000 0.484375 +vt 0.250000 0.484375 +vt 0.781250 1.000000 +vt 0.531250 1.000000 +vt 0.531250 0.750000 +vt 0.781250 0.750000 +vt 0.000847 0.750015 +vt 0.250216 0.750015 +vt 0.250216 0.999385 +vt 0.000847 0.999385 +vt 0.867188 0.273438 +vt 0.835938 0.273438 +vt 0.835938 0.304688 +vt 0.867188 0.304688 +vt 0.804688 0.273438 +vt 0.804688 0.304688 +vt 0.773438 0.273438 +vt 0.773438 0.304688 +vt 0.742188 0.273438 +vt 0.742188 0.304688 +vt 0.710938 0.273438 +vt 0.710938 0.304688 +vt 0.679688 0.273438 +vt 0.679688 0.304688 +vt 0.648438 0.273438 +vt 0.648438 0.304688 +vt 0.617188 0.273438 +vt 0.617188 0.304688 +vt 0.585938 0.273438 +vt 0.585938 0.304688 +vt 0.554688 0.273438 +vt 0.554688 0.304688 +vt 0.523438 0.273438 +vt 0.523438 0.304688 +vt 0.492188 0.273438 +vt 0.492188 0.304688 +vt 0.992188 0.273438 +vt 0.960938 0.273438 +vt 0.960938 0.304688 +vt 0.992188 0.304688 +vt 0.929688 0.273438 +vt 0.929688 0.304688 +vt 0.898438 0.273438 +vt 0.898438 0.304688 +vt 0.600936 0.328499 +vt 0.584692 0.410164 +vt 0.568448 0.328499 +vt 0.757628 0.328499 +vt 0.773872 0.410164 +vt 0.790117 0.328499 +vt 0.820132 0.340932 +vt 0.843105 0.363905 +vt 0.855537 0.393920 +vt 0.855537 0.426408 +vt 0.843105 0.456424 +vt 0.820132 0.479396 +vt 0.790117 0.491829 +vt 0.757628 0.491829 +vt 0.727613 0.479396 +vt 0.704640 0.456424 +vt 0.692207 0.426408 +vt 0.692207 0.393920 +vt 0.704640 0.363905 +vt 0.727613 0.340932 +vt 0.538432 0.340932 +vt 0.515460 0.363905 +vt 0.503027 0.393920 +vt 0.503027 0.426408 +vt 0.515460 0.456424 +vt 0.538432 0.479396 +vt 0.568448 0.491829 +vt 0.600936 0.491829 +vt 0.630951 0.479396 +vt 0.653924 0.456424 +vt 0.666357 0.426408 +vt 0.666357 0.393920 +vt 0.653924 0.363905 +vt 0.630951 0.340932 +vt 0.585938 0.257812 +vt 0.585938 0.007812 +vt 0.617188 0.007812 +vt 0.617188 0.257812 +vt 0.538433 0.340928 +vt 0.568449 0.328495 +vt 0.584693 0.410160 +vt 0.515460 0.363901 +vt 0.503028 0.393916 +vt 0.503028 0.426405 +vt 0.515460 0.456420 +vt 0.538433 0.479393 +vt 0.568449 0.491826 +vt 0.600937 0.491826 +vt 0.630952 0.479393 +vt 0.653925 0.456420 +vt 0.666358 0.426405 +vt 0.666358 0.393916 +vt 0.653925 0.363901 +vt 0.630952 0.340928 +vt 0.600937 0.328495 +vt 0.727611 0.340928 +vt 0.757626 0.328495 +vt 0.773870 0.410160 +vt 0.704638 0.363901 +vt 0.692205 0.393916 +vt 0.692205 0.426405 +vt 0.704638 0.456420 +vt 0.727611 0.479393 +vt 0.757626 0.491826 +vt 0.790115 0.491826 +vt 0.820130 0.479393 +vt 0.843103 0.456420 +vt 0.855535 0.426405 +vt 0.855535 0.393916 +vt 0.843103 0.363901 +vt 0.820130 0.340928 +vt 0.790115 0.328495 +vt 0.929688 0.257812 +vt 0.929688 0.007812 +vt 0.960938 0.007812 +vt 0.960938 0.257812 +vt 0.867188 0.257812 +vt 0.867188 0.007812 +vt 0.898438 0.007812 +vt 0.898438 0.257812 +vt 0.773438 0.257812 +vt 0.773438 0.007812 +vt 0.804688 0.007812 +vt 0.804688 0.257812 +vt 0.835938 0.257812 +vt 0.835938 0.007812 +vt 0.742188 0.257812 +vt 0.742188 0.007812 +vt 0.710938 0.257812 +vt 0.710938 0.007812 +vt 0.679688 0.257812 +vt 0.679688 0.007812 +vt 0.648438 0.257812 +vt 0.648438 0.007812 +vt 0.554688 0.257812 +vt 0.554688 0.007812 +vt 0.523438 0.257812 +vt 0.523438 0.007812 +vt 0.492188 0.257812 +vt 0.492188 0.007812 +vt 0.992188 0.007812 +vt 0.992188 0.257812 +usemtl None +s off +f 5/1 6/2 2/3 1/4 +f 6/5 7/6 3/7 2/8 +f 7/9 8/10 4/11 3/12 +f 8/13 5/14 1/15 4/16 +f 1/17 2/18 3/19 4/20 +f 8/21 7/22 6/23 5/24 +f 13/25 14/26 10/27 9/28 +f 14/29 15/30 11/31 10/32 +f 15/33 16/34 12/35 11/36 +f 16/37 13/38 9/39 12/40 +f 21/41 22/42 18/43 17/44 +f 22/45 23/46 19/47 18/48 +f 23/49 24/50 20/51 19/52 +f 24/53 21/54 17/55 20/56 +f 17/57 18/58 19/59 20/60 +f 24/61 23/62 22/63 21/64 +f 25/65 27/66 28/67 26/68 +f 27/66 29/69 30/70 28/67 +f 29/69 31/71 32/72 30/70 +f 31/71 33/73 34/74 32/72 +f 33/73 35/75 36/76 34/74 +f 35/75 37/77 38/78 36/76 +f 37/77 39/79 40/80 38/78 +f 39/79 41/81 42/82 40/80 +f 41/81 43/83 44/84 42/82 +f 43/83 45/85 46/86 44/84 +f 45/85 47/87 48/88 46/86 +f 47/87 49/89 50/90 48/88 +f 49/91 51/92 52/93 50/94 +f 51/92 53/95 54/96 52/93 +f 55/97 25/65 26/68 56/98 +f 53/95 55/97 56/98 54/96 +f 28/99 74/100 26/101 +f 25/102 73/103 27/104 +f 27/104 73/103 29/105 +f 29/105 73/103 31/106 +f 31/106 73/103 33/107 +f 33/107 73/103 35/108 +f 35/108 73/103 37/109 +f 37/109 73/103 39/110 +f 39/110 73/103 41/111 +f 41/111 73/103 43/112 +f 43/112 73/103 45/113 +f 45/113 73/103 47/114 +f 47/114 73/103 49/115 +f 49/115 73/103 51/116 +f 51/116 73/103 53/117 +f 53/117 73/103 55/118 +f 55/118 73/103 25/102 +f 26/101 74/100 56/119 +f 56/119 74/100 54/120 +f 54/120 74/100 52/121 +f 52/121 74/100 50/122 +f 50/122 74/100 48/123 +f 48/123 74/100 46/124 +f 46/124 74/100 44/125 +f 44/125 74/100 42/126 +f 42/126 74/100 40/127 +f 40/127 74/100 38/128 +f 38/128 74/100 36/129 +f 36/129 74/100 34/130 +f 34/130 74/100 32/131 +f 32/131 74/100 30/132 +f 30/132 74/100 28/99 +f 65/133 115/134 116/135 66/136 +f 105/137 107/138 124/139 +f 103/140 105/137 124/139 +f 101/141 103/140 124/139 +f 99/142 101/141 124/139 +f 97/143 99/142 124/139 +f 95/144 97/143 124/139 +f 93/145 95/144 124/139 +f 91/146 93/145 124/139 +f 89/147 91/146 124/139 +f 87/148 89/147 124/139 +f 85/149 87/148 124/139 +f 83/150 85/149 124/139 +f 81/151 83/150 124/139 +f 79/152 81/151 124/139 +f 109/153 79/152 124/139 +f 80/154 110/155 123/156 +f 82/157 80/154 123/156 +f 84/158 82/157 123/156 +f 86/159 84/158 123/156 +f 88/160 86/159 123/156 +f 90/161 88/160 123/156 +f 92/162 90/161 123/156 +f 94/163 92/162 123/156 +f 96/164 94/163 123/156 +f 98/165 96/164 123/156 +f 100/166 98/165 123/156 +f 102/167 100/166 123/156 +f 104/168 102/167 123/156 +f 106/169 104/168 123/156 +f 108/170 106/169 123/156 +f 110/155 108/170 123/156 +f 107/138 109/153 124/139 +f 82/86 81/85 79/83 80/84 +f 80/84 79/83 109/81 110/82 +f 84/88 83/87 81/85 82/86 +f 86/90 85/89 83/87 84/88 +f 88/93 87/92 85/91 86/94 +f 90/96 89/95 87/92 88/93 +f 92/98 91/97 89/95 90/96 +f 94/68 93/65 91/97 92/98 +f 96/67 95/66 93/65 94/68 +f 98/70 97/69 95/66 96/67 +f 100/72 99/71 97/69 98/70 +f 102/74 101/73 99/71 100/72 +f 104/76 103/75 101/73 102/74 +f 106/78 105/77 103/75 104/76 +f 108/80 107/79 105/77 106/78 +f 110/82 109/81 107/79 108/80 +f 60/171 75/172 111/173 61/174 +f 58/175 77/176 76/177 59/178 +f 71/179 121/180 122/181 72/182 +f 57/183 78/184 77/176 58/175 +f 59/178 76/177 75/172 60/171 +f 72/182 122/181 78/184 57/183 +f 70/185 120/186 121/180 71/179 +f 69/187 119/188 120/186 70/185 +f 68/189 118/190 119/188 69/187 +f 67/191 117/192 118/190 68/189 +f 66/136 116/135 117/192 67/191 +f 64/193 114/194 115/134 65/133 +f 63/195 113/196 114/194 64/193 +f 62/197 112/198 113/196 63/195 +f 61/174 111/173 112/199 62/200 diff --git a/mods/pipeworks/models/pipeworks_valve_on.obj b/mods/pipeworks/models/pipeworks_valve_on.obj new file mode 100644 index 0000000..ba08b30 --- /dev/null +++ b/mods/pipeworks/models/pipeworks_valve_on.obj @@ -0,0 +1,458 @@ +# Blender v2.69 (sub 0) OBJ File: 'pipe-valve-on.blend' +# www.blender.org +mtllib pipeworks_valve_on.mtl +o Cube.003 +v 0.312500 0.281250 0.062500 +v -0.093750 0.281250 0.062500 +v -0.093750 0.281250 -0.062500 +v 0.312500 0.281250 -0.062500 +v 0.312500 0.343750 0.062500 +v -0.093750 0.343750 0.062500 +v -0.093750 0.343750 -0.062500 +v 0.312500 0.343750 -0.062500 +v 0.031250 0.250000 -0.031250 +v 0.031250 0.250000 0.031250 +v -0.031250 0.250000 0.031250 +v -0.031250 0.250000 -0.031250 +v 0.031250 0.281250 -0.031250 +v 0.031250 0.281250 0.031250 +v -0.031250 0.281250 0.031250 +v -0.031250 0.281250 -0.031250 +v 0.250000 -0.250000 -0.250000 +v 0.250000 -0.250000 0.250000 +v -0.250000 -0.250000 0.250000 +v -0.250000 -0.250000 -0.250000 +v 0.250000 0.250000 -0.250000 +v 0.250000 0.250000 0.250000 +v -0.250000 0.250000 0.250000 +v -0.250000 0.250000 -0.250000 +v -0.468750 -0.153248 -0.030483 +v -0.500000 -0.153248 -0.030483 +v -0.468750 -0.153248 0.030483 +v -0.500000 -0.153248 0.030483 +v -0.468750 -0.129917 0.086808 +v -0.500000 -0.129917 0.086808 +v -0.468750 -0.086808 0.129917 +v -0.500000 -0.086808 0.129917 +v -0.468750 -0.030483 0.153248 +v -0.500000 -0.030483 0.153248 +v -0.468750 0.030483 0.153248 +v -0.500000 0.030483 0.153248 +v -0.468750 0.086808 0.129917 +v -0.500000 0.086808 0.129917 +v -0.468750 0.129917 0.086808 +v -0.500000 0.129917 0.086808 +v -0.468750 0.153248 0.030483 +v -0.500000 0.153247 0.030483 +v -0.468750 0.153248 -0.030483 +v -0.500000 0.153248 -0.030483 +v -0.468750 0.129917 -0.086808 +v -0.500000 0.129917 -0.086808 +v -0.468750 0.086808 -0.129917 +v -0.500000 0.086808 -0.129917 +v -0.468750 0.030483 -0.153248 +v -0.500000 0.030483 -0.153248 +v -0.468750 -0.030483 -0.153248 +v -0.500000 -0.030483 -0.153248 +v -0.468750 -0.086808 -0.129917 +v -0.500000 -0.086808 -0.129917 +v -0.468750 -0.129917 -0.086808 +v -0.500000 -0.129917 -0.086808 +v -0.468750 -0.122598 -0.024386 +v -0.468750 -0.122598 0.024386 +v -0.468750 -0.103934 0.069446 +v -0.468750 -0.069446 0.103934 +v -0.468750 -0.024386 0.122598 +v -0.468750 0.024386 0.122598 +v -0.468750 0.069446 0.103934 +v -0.468750 0.103934 0.069446 +v -0.468750 0.122598 0.024386 +v -0.468750 0.122598 -0.024386 +v -0.468750 0.103934 -0.069446 +v -0.468750 0.069446 -0.103934 +v -0.468750 0.024386 -0.122598 +v -0.468750 -0.024387 -0.122598 +v -0.468750 -0.069447 -0.103934 +v -0.468750 -0.103934 -0.069446 +v -0.468750 -0.000000 -0.000000 +v -0.500000 -0.000000 -0.000000 +v 0.468750 -0.069446 0.103934 +v 0.468750 -0.103933 0.069447 +v 0.468750 -0.122598 0.024387 +v 0.468750 -0.122598 -0.024386 +v 0.500000 -0.129917 -0.086807 +v 0.468750 -0.129917 -0.086807 +v 0.500000 -0.086808 -0.129917 +v 0.468750 -0.086808 -0.129917 +v 0.500000 -0.030483 -0.153247 +v 0.468750 -0.030483 -0.153247 +v 0.500000 0.030483 -0.153247 +v 0.468750 0.030483 -0.153247 +v 0.500000 0.086808 -0.129917 +v 0.468750 0.086808 -0.129917 +v 0.500000 0.129917 -0.086808 +v 0.468750 0.129917 -0.086808 +v 0.500000 0.153248 -0.030483 +v 0.468750 0.153248 -0.030483 +v 0.500000 0.153248 0.030483 +v 0.468750 0.153248 0.030483 +v 0.500000 0.129917 0.086808 +v 0.468750 0.129917 0.086808 +v 0.500000 0.086808 0.129917 +v 0.468750 0.086808 0.129917 +v 0.500000 0.030483 0.153248 +v 0.468750 0.030483 0.153248 +v 0.500000 -0.030483 0.153248 +v 0.468750 -0.030483 0.153248 +v 0.500000 -0.086807 0.129917 +v 0.468750 -0.086808 0.129917 +v 0.500000 -0.129917 0.086808 +v 0.468750 -0.129917 0.086808 +v 0.500000 -0.153247 0.030483 +v 0.468750 -0.153247 0.030483 +v 0.500000 -0.153247 -0.030483 +v 0.468750 -0.153247 -0.030483 +v 0.468750 -0.024386 0.122598 +v 0.468750 0.024387 0.122598 +v 0.468750 0.069447 0.103934 +v 0.468750 0.103934 0.069447 +v 0.468750 0.122598 0.024387 +v 0.468750 0.122598 -0.024386 +v 0.468750 0.103934 -0.069446 +v 0.468750 0.069447 -0.103933 +v 0.468750 0.024387 -0.122598 +v 0.468750 -0.024386 -0.122598 +v 0.468750 -0.069446 -0.103933 +v 0.468750 -0.103933 -0.069446 +v 0.468750 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +vt 0.265625 0.234375 +vt 0.468750 0.234375 +vt 0.468750 0.265625 +vt 0.265625 0.265625 +vt 0.265625 0.187500 +vt 0.328125 0.187500 +vt 0.328125 0.218750 +vt 0.265625 0.218750 +vt 0.468750 0.312500 +vt 0.265625 0.312500 +vt 0.265625 0.281250 +vt 0.468750 0.281250 +vt 0.406250 0.218750 +vt 0.343750 0.218750 +vt 0.343750 0.187500 +vt 0.406250 0.187500 +vt 0.468750 0.468750 +vt 0.265625 0.468750 +vt 0.265625 0.406250 +vt 0.468750 0.406250 +vt 0.468750 0.390625 +vt 0.265625 0.390625 +vt 0.265625 0.328125 +vt 0.468750 0.328125 +vt 0.039062 0.203125 +vt 0.007812 0.203125 +vt 0.007812 0.187500 +vt 0.039062 0.187500 +vt 0.085938 0.203125 +vt 0.054688 0.203125 +vt 0.054688 0.187500 +vt 0.085938 0.187500 +vt 0.148438 0.187500 +vt 0.179688 0.187500 +vt 0.179688 0.203125 +vt 0.148438 0.203125 +vt 0.132812 0.203125 +vt 0.101562 0.203125 +vt 0.101562 0.187500 +vt 0.132812 0.187500 +vt 0.515625 0.484375 +vt 0.515625 0.734375 +vt 0.265625 0.734375 +vt 0.265625 0.484375 +vt 0.000000 0.468750 +vt 0.000000 0.218750 +vt 0.250000 0.218750 +vt 0.250000 0.468750 +vt 0.515625 1.000000 +vt 0.265625 1.000000 +vt 0.265625 0.750000 +vt 0.515625 0.750000 +vt 0.250000 0.734375 +vt 0.000000 0.734375 +vt 0.000000 0.484375 +vt 0.250000 0.484375 +vt 0.781250 1.000000 +vt 0.531250 1.000000 +vt 0.531250 0.750000 +vt 0.781250 0.750000 +vt 0.000847 0.750015 +vt 0.250216 0.750015 +vt 0.250216 0.999385 +vt 0.000847 0.999385 +vt 0.867188 0.273438 +vt 0.835938 0.273438 +vt 0.835938 0.304688 +vt 0.867188 0.304688 +vt 0.804688 0.273438 +vt 0.804688 0.304688 +vt 0.773438 0.273438 +vt 0.773438 0.304688 +vt 0.742188 0.273438 +vt 0.742188 0.304688 +vt 0.710938 0.273438 +vt 0.710938 0.304688 +vt 0.679688 0.273438 +vt 0.679688 0.304688 +vt 0.648438 0.273438 +vt 0.648438 0.304688 +vt 0.617188 0.273438 +vt 0.617188 0.304688 +vt 0.585938 0.273438 +vt 0.585938 0.304688 +vt 0.554688 0.273438 +vt 0.554688 0.304688 +vt 0.523438 0.273438 +vt 0.523438 0.304688 +vt 0.492188 0.273438 +vt 0.492188 0.304688 +vt 0.992188 0.273438 +vt 0.960938 0.273438 +vt 0.960938 0.304688 +vt 0.992188 0.304688 +vt 0.929688 0.273438 +vt 0.929688 0.304688 +vt 0.898438 0.273438 +vt 0.898438 0.304688 +vt 0.600936 0.328499 +vt 0.584692 0.410164 +vt 0.568448 0.328499 +vt 0.757628 0.328499 +vt 0.773872 0.410164 +vt 0.790117 0.328499 +vt 0.820132 0.340932 +vt 0.843105 0.363905 +vt 0.855537 0.393920 +vt 0.855537 0.426408 +vt 0.843105 0.456424 +vt 0.820132 0.479396 +vt 0.790117 0.491829 +vt 0.757628 0.491829 +vt 0.727613 0.479396 +vt 0.704640 0.456424 +vt 0.692207 0.426408 +vt 0.692207 0.393920 +vt 0.704640 0.363905 +vt 0.727613 0.340932 +vt 0.538432 0.340932 +vt 0.515460 0.363905 +vt 0.503027 0.393920 +vt 0.503027 0.426408 +vt 0.515460 0.456424 +vt 0.538432 0.479396 +vt 0.568448 0.491829 +vt 0.600936 0.491829 +vt 0.630951 0.479396 +vt 0.653924 0.456424 +vt 0.666357 0.426408 +vt 0.666357 0.393920 +vt 0.653924 0.363905 +vt 0.630951 0.340932 +vt 0.585938 0.257812 +vt 0.585938 0.007812 +vt 0.617188 0.007812 +vt 0.617188 0.257812 +vt 0.538433 0.340928 +vt 0.568449 0.328495 +vt 0.584693 0.410160 +vt 0.515460 0.363901 +vt 0.503028 0.393916 +vt 0.503028 0.426405 +vt 0.515460 0.456420 +vt 0.538433 0.479393 +vt 0.568449 0.491826 +vt 0.600937 0.491826 +vt 0.630952 0.479393 +vt 0.653925 0.456420 +vt 0.666358 0.426405 +vt 0.666358 0.393916 +vt 0.653925 0.363901 +vt 0.630952 0.340928 +vt 0.600937 0.328495 +vt 0.727611 0.340928 +vt 0.757626 0.328495 +vt 0.773870 0.410160 +vt 0.704638 0.363901 +vt 0.692205 0.393916 +vt 0.692205 0.426405 +vt 0.704638 0.456420 +vt 0.727611 0.479393 +vt 0.757626 0.491826 +vt 0.790115 0.491826 +vt 0.820130 0.479393 +vt 0.843103 0.456420 +vt 0.855535 0.426405 +vt 0.855535 0.393916 +vt 0.843103 0.363901 +vt 0.820130 0.340928 +vt 0.790115 0.328495 +vt 0.929688 0.257812 +vt 0.929688 0.007812 +vt 0.960938 0.007812 +vt 0.960938 0.257812 +vt 0.867188 0.257812 +vt 0.867188 0.007812 +vt 0.898438 0.007812 +vt 0.898438 0.257812 +vt 0.773438 0.257812 +vt 0.773438 0.007812 +vt 0.804688 0.007812 +vt 0.804688 0.257812 +vt 0.835938 0.257812 +vt 0.835938 0.007812 +vt 0.742188 0.257812 +vt 0.742188 0.007812 +vt 0.710938 0.257812 +vt 0.710938 0.007812 +vt 0.679688 0.257812 +vt 0.679688 0.007812 +vt 0.648438 0.257812 +vt 0.648438 0.007812 +vt 0.554688 0.257812 +vt 0.554688 0.007812 +vt 0.523438 0.257812 +vt 0.523438 0.007812 +vt 0.492188 0.257812 +vt 0.492188 0.007812 +vt 0.992188 0.007812 +vt 0.992188 0.257812 +usemtl None +s off +f 5/1 6/2 2/3 1/4 +f 6/5 7/6 3/7 2/8 +f 7/9 8/10 4/11 3/12 +f 8/13 5/14 1/15 4/16 +f 1/17 2/18 3/19 4/20 +f 8/21 7/22 6/23 5/24 +f 13/25 14/26 10/27 9/28 +f 14/29 15/30 11/31 10/32 +f 15/33 16/34 12/35 11/36 +f 16/37 13/38 9/39 12/40 +f 21/41 22/42 18/43 17/44 +f 22/45 23/46 19/47 18/48 +f 23/49 24/50 20/51 19/52 +f 24/53 21/54 17/55 20/56 +f 17/57 18/58 19/59 20/60 +f 24/61 23/62 22/63 21/64 +f 25/65 27/66 28/67 26/68 +f 27/66 29/69 30/70 28/67 +f 29/69 31/71 32/72 30/70 +f 31/71 33/73 34/74 32/72 +f 33/73 35/75 36/76 34/74 +f 35/75 37/77 38/78 36/76 +f 37/77 39/79 40/80 38/78 +f 39/79 41/81 42/82 40/80 +f 41/81 43/83 44/84 42/82 +f 43/83 45/85 46/86 44/84 +f 45/85 47/87 48/88 46/86 +f 47/87 49/89 50/90 48/88 +f 49/91 51/92 52/93 50/94 +f 51/92 53/95 54/96 52/93 +f 55/97 25/65 26/68 56/98 +f 53/95 55/97 56/98 54/96 +f 28/99 74/100 26/101 +f 25/102 73/103 27/104 +f 27/104 73/103 29/105 +f 29/105 73/103 31/106 +f 31/106 73/103 33/107 +f 33/107 73/103 35/108 +f 35/108 73/103 37/109 +f 37/109 73/103 39/110 +f 39/110 73/103 41/111 +f 41/111 73/103 43/112 +f 43/112 73/103 45/113 +f 45/113 73/103 47/114 +f 47/114 73/103 49/115 +f 49/115 73/103 51/116 +f 51/116 73/103 53/117 +f 53/117 73/103 55/118 +f 55/118 73/103 25/102 +f 26/101 74/100 56/119 +f 56/119 74/100 54/120 +f 54/120 74/100 52/121 +f 52/121 74/100 50/122 +f 50/122 74/100 48/123 +f 48/123 74/100 46/124 +f 46/124 74/100 44/125 +f 44/125 74/100 42/126 +f 42/126 74/100 40/127 +f 40/127 74/100 38/128 +f 38/128 74/100 36/129 +f 36/129 74/100 34/130 +f 34/130 74/100 32/131 +f 32/131 74/100 30/132 +f 30/132 74/100 28/99 +f 65/133 115/134 116/135 66/136 +f 105/137 107/138 124/139 +f 103/140 105/137 124/139 +f 101/141 103/140 124/139 +f 99/142 101/141 124/139 +f 97/143 99/142 124/139 +f 95/144 97/143 124/139 +f 93/145 95/144 124/139 +f 91/146 93/145 124/139 +f 89/147 91/146 124/139 +f 87/148 89/147 124/139 +f 85/149 87/148 124/139 +f 83/150 85/149 124/139 +f 81/151 83/150 124/139 +f 79/152 81/151 124/139 +f 109/153 79/152 124/139 +f 80/154 110/155 123/156 +f 82/157 80/154 123/156 +f 84/158 82/157 123/156 +f 86/159 84/158 123/156 +f 88/160 86/159 123/156 +f 90/161 88/160 123/156 +f 92/162 90/161 123/156 +f 94/163 92/162 123/156 +f 96/164 94/163 123/156 +f 98/165 96/164 123/156 +f 100/166 98/165 123/156 +f 102/167 100/166 123/156 +f 104/168 102/167 123/156 +f 106/169 104/168 123/156 +f 108/170 106/169 123/156 +f 110/155 108/170 123/156 +f 107/138 109/153 124/139 +f 82/86 81/85 79/83 80/84 +f 80/84 79/83 109/81 110/82 +f 84/88 83/87 81/85 82/86 +f 86/90 85/89 83/87 84/88 +f 88/93 87/92 85/91 86/94 +f 90/96 89/95 87/92 88/93 +f 92/98 91/97 89/95 90/96 +f 94/68 93/65 91/97 92/98 +f 96/67 95/66 93/65 94/68 +f 98/70 97/69 95/66 96/67 +f 100/72 99/71 97/69 98/70 +f 102/74 101/73 99/71 100/72 +f 104/76 103/75 101/73 102/74 +f 106/78 105/77 103/75 104/76 +f 108/80 107/79 105/77 106/78 +f 110/82 109/81 107/79 108/80 +f 60/171 75/172 111/173 61/174 +f 58/175 77/176 76/177 59/178 +f 71/179 121/180 122/181 72/182 +f 57/183 78/184 77/176 58/175 +f 59/178 76/177 75/172 60/171 +f 72/182 122/181 78/184 57/183 +f 70/185 120/186 121/180 71/179 +f 69/187 119/188 120/186 70/185 +f 68/189 118/190 119/188 69/187 +f 67/191 117/192 118/190 68/189 +f 66/136 116/135 117/192 67/191 +f 64/193 114/194 115/134 65/133 +f 63/195 113/196 114/194 64/193 +f 62/197 112/198 113/196 63/195 +f 61/174 111/173 112/199 62/200 diff --git a/mods/pipeworks/pipes.lua b/mods/pipeworks/pipes.lua new file mode 100644 index 0000000..2056fdf --- /dev/null +++ b/mods/pipeworks/pipes.lua @@ -0,0 +1,222 @@ +-- This file supplies the steel pipes + +local REGISTER_COMPATIBILITY = true + +local pipes_empty_nodenames = {} +local pipes_full_nodenames = {} + +local vti = {4, 3, 2, 1, 6, 5} +local cconnects = {{}, {1}, {1, 2}, {1, 3}, {1, 3, 5}, {1, 2, 3}, {1, 2, 3, 5}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}} +for index, connects in ipairs(cconnects) do + local outsel = {} + + local jx = 0 + local jy = 0 + local jz = 0 + for _, v in ipairs(connects) do + if v == 1 or v == 2 then + jx = jx + 1 + elseif v == 3 or v == 4 then + jy = jy + 1 + else + jz = jz + 1 + end + table.insert(outsel, pipeworks.pipe_selectboxes[v]) + end + + if #connects == 1 then + local v = connects[1] + v = v-1 + 2*(v%2) -- Opposite side + end + + local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1} + local pipedesc = "Pipe segement".." "..dump(connects).."... You hacker, you." + local image = nil + + if #connects == 0 then + pgroups = {snappy = 3, tube = 1} + pipedesc = "Pipe segment" + image = "pipeworks_pipe_inv.png" + end + + local outimg_e = { "pipeworks_pipe_plain.png" } + local outimg_l = { "pipeworks_pipe_plain.png" } + + if index == 3 then + outimg_e = { "pipeworks_pipe_3_empty.png" } + outimg_l = { "pipeworks_pipe_3_loaded.png" } + end + + local mesh = "pipeworks_pipe_"..index..".obj" + + if index == 1 then + mesh = "pipeworks_pipe_3.obj" + end + + minetest.register_node("pipeworks:pipe_"..index.."_empty", { + description = pipedesc, + drawtype = "mesh", + mesh = mesh, + tiles = outimg_e, + sunlight_propagates = true, + inventory_image = image, + wield_image = image, + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = outsel + }, + collision_box = { + type = "fixed", + fixed = outsel + }, + groups = pgroups, + sounds = default.node_sound_wood_defaults(), + walkable = true, + drop = "pipeworks:pipe_1_empty", + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end + }) + + local pgroups = {snappy = 3, pipe = 1, not_in_creative_inventory = 1} + + minetest.register_node("pipeworks:pipe_"..index.."_loaded", { + description = pipedesc, + drawtype = "mesh", + mesh = mesh, + tiles = outimg_l, + sunlight_propagates = true, + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = outsel + }, + collision_box = { + type = "fixed", + fixed = outsel + }, + groups = pgroups, + sounds = default.node_sound_wood_defaults(), + walkable = true, + drop = "pipeworks:pipe_1_empty", + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end + }) + + table.insert(pipes_empty_nodenames, "pipeworks:pipe_"..index.."_empty") + table.insert(pipes_full_nodenames, "pipeworks:pipe_"..index.."_loaded") +end + + + +if REGISTER_COMPATIBILITY then + local cempty = "pipeworks:pipe_compatibility_empty" + local cloaded = "pipeworks:pipe_compatibility_loaded" + minetest.register_node(cempty, { + drawtype = "airlike", + sunlight_propagates = true, + paramtype = "light", + inventory_image = "pipeworks_pipe_inv.png", + wield_image = "pipeworks_pipe_inv.png", + description = "Pipe Segment (legacy)", + groups = {not_in_creative_inventory = 1, pipe_to_update = 1}, + drop = "pipeworks:pipe_1_empty", + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + }) + minetest.register_node(cloaded, { + drawtype = "airlike", + sunlight_propagates = true, + paramtype = "light", + inventory_image = "pipeworks_pipe_inv.png", + groups = {not_in_creative_inventory = 1, pipe_to_update = 1}, + drop = "pipeworks:pipe_1_empty", + after_place_node = function(pos) + pipeworks.scan_for_pipe_objects(pos) + end, + }) + for xm = 0, 1 do + for xp = 0, 1 do + for ym = 0, 1 do + for yp = 0, 1 do + for zm = 0, 1 do + for zp = 0, 1 do + local pname = xm..xp..ym..yp..zm..zp + minetest.register_alias("pipeworks:pipe_"..pname.."_empty", cempty) + minetest.register_alias("pipeworks:pipe_"..pname.."_loaded", cloaded) + end + end + end + end + end + end + minetest.register_abm({ + nodenames = {"group:pipe_to_update"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local minp = {x = pos.x-1, y = pos.y-1, z = pos.z-1} + local maxp = {x = pos.x+1, y = pos.y+1, z = pos.z+1} + if table.getn(minetest.find_nodes_in_area(minp, maxp, "ignore")) == 0 then + pipeworks.scan_for_pipe_objects(pos) + end + end + }) +end + +table.insert(pipes_empty_nodenames,"pipeworks:valve_on_empty") +table.insert(pipes_empty_nodenames,"pipeworks:valve_off_empty") +table.insert(pipes_empty_nodenames,"pipeworks:entry_panel_empty") +table.insert(pipes_empty_nodenames,"pipeworks:flow_sensor_empty") + +table.insert(pipes_full_nodenames,"pipeworks:valve_on_loaded") +table.insert(pipes_full_nodenames,"pipeworks:entry_panel_loaded") +table.insert(pipes_full_nodenames,"pipeworks:flow_sensor_loaded") + +minetest.register_abm({ + nodenames = pipes_empty_nodenames, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + pipeworks.check_for_inflows(pos,node) + end +}) + +minetest.register_abm({ + nodenames = pipes_full_nodenames, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + pipeworks.check_sources(pos,node) + end +}) + +minetest.register_abm({ + nodenames = {"pipeworks:spigot","pipeworks:spigot_pouring"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + pipeworks.spigot_check(pos,node) + end +}) + +minetest.register_abm({ + nodenames = {"pipeworks:fountainhead","pipeworks:fountainhead_pouring"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + pipeworks.fountainhead_check(pos,node) + end +}) + diff --git a/mods/pipeworks/teleport_tube.lua b/mods/pipeworks/teleport_tube.lua new file mode 100644 index 0000000..5c2a7de --- /dev/null +++ b/mods/pipeworks/teleport_tube.lua @@ -0,0 +1,225 @@ +local filename=minetest.get_worldpath() .. "/teleport_tubes" + +local tp_tube_db = nil -- nil forces a read +local tp_tube_db_version = 2.0 + +local function hash(pos) + return string.format("%d", minetest.hash_node_position(pos)) +end + +local function save_tube_db() + local file, err = io.open(filename, "w") + if file then + tp_tube_db.version = tp_tube_db_version + file:write(minetest.serialize(tp_tube_db)) + tp_tube_db.version = nil + io.close(file) + else + error(err) + end +end + +local function migrate_tube_db() + local tmp_db = {} + tp_tube_db.version = nil + for key, val in pairs(tp_tube_db) do + if(val.channel ~= "") then -- skip unconfigured tubes + tmp_db[hash(val)] = val + end + end + tp_tube_db = tmp_db + save_tube_db() +end + +local function read_tube_db() + local file = io.open(filename, "r") + if file ~= nil then + local file_content = file:read("*all") + io.close(file) + + if file_content and file_content ~= "" then + tp_tube_db = minetest.deserialize(file_content) + if(not tp_tube_db.version or tonumber(tp_tube_db.version) < tp_tube_db_version) then + migrate_tube_db() + end + tp_tube_db.version = nil -- we add it back when saving + return tp_tube_db -- we read sucessfully + end + end + tp_tube_db = {} + return tp_tube_db +end + +-- updates or adds a tube +local function set_tube(pos, channel, can_receive) + local tubes = tp_tube_db or read_tube_db() + local hash = hash(pos) + local tube = tubes[hash] + if tube then + tube.channel = channel + tube.cr = can_receive + save_tube_db() + return + end + + -- we haven't found any tp tube to update, so lets add it + tp_tube_db[hash] = {x=pos.x,y=pos.y,z=pos.z,channel=channel,cr=can_receive} + save_tube_db() +end + +local function remove_tube(pos) + local tubes = tp_tube_db or read_tube_db() + tubes[hash(pos)] = nil + save_tube_db() +end + +local function read_node_with_vm(pos) + local vm = VoxelManip() + local MinEdge, MaxEdge = vm:read_from_map(pos, pos) + local data = vm:get_data() + local area = VoxelArea:new({MinEdge = MinEdge, MaxEdge = MaxEdge}) + return minetest.get_name_from_content_id(data[area:index(pos.x, pos.y, pos.z)]) +end + +local function get_receivers(pos, channel) + local tubes = tp_tube_db or read_tube_db() + local receivers = {} + local dirty = false + for key, val in pairs(tubes) do + -- skip all non-receivers and the tube that it came from as early as possible, as this is called often + if (val.cr == 1 and val.channel == channel and (val.x ~= pos.x or val.y ~= pos.y or val.z ~= pos.z)) then + local is_loaded = (minetest.get_node_or_nil(val) ~= nil) + local node_name = is_loaded and minetest.get_node(pos).name or read_node_with_vm(val) + + if minetest.registered_nodes[node_name] and minetest.registered_nodes[node_name].is_teleport_tube then + table.insert(receivers, val) + else + tp_tube_db[key] = nil + dirty = true + end + end + end + if dirty then + save_tube_db() + end + return receivers +end + +local teleport_noctr_textures={"pipeworks_teleport_tube_noctr.png","pipeworks_teleport_tube_noctr.png","pipeworks_teleport_tube_noctr.png", + "pipeworks_teleport_tube_noctr.png","pipeworks_teleport_tube_noctr.png","pipeworks_teleport_tube_noctr.png"} +local teleport_plain_textures={"pipeworks_teleport_tube_plain.png","pipeworks_teleport_tube_plain.png","pipeworks_teleport_tube_plain.png", + "pipeworks_teleport_tube_plain.png","pipeworks_teleport_tube_plain.png","pipeworks_teleport_tube_plain.png"} +local teleport_end_textures={"pipeworks_teleport_tube_end.png","pipeworks_teleport_tube_end.png","pipeworks_teleport_tube_end.png", + "pipeworks_teleport_tube_end.png","pipeworks_teleport_tube_end.png","pipeworks_teleport_tube_end.png"} +local teleport_short_texture="pipeworks_teleport_tube_short.png" +local teleport_inv_texture="pipeworks_teleport_tube_inv.png" + +local function set_teleport_tube_formspec(meta, can_receive) + local cr = (can_receive ~= 0) + meta:set_string("formspec","size[10.5,1;]".. + "field[0,0.5;7,1;channel;Channel:;${channel}]".. + "button[8,0;2.5,1;"..(cr and "cr0" or "cr1")..";".. + (cr and "Send and Receive" or "Send only").."]") +end + +pipeworks.register_tube("pipeworks:teleport_tube","Teleporting Pneumatic Tube Segment",teleport_plain_textures, + teleport_noctr_textures,teleport_end_textures,teleport_short_texture,teleport_inv_texture, { + is_teleport_tube = true, + tube = { + can_go = function(pos,node,velocity,stack) + velocity.x = 0 + velocity.y = 0 + velocity.z = 0 + + local channel = minetest.get_meta(pos):get_string("channel") + if channel == "" then return {} end + + local target = get_receivers(pos, channel) + if target[1] == nil then return {} end + + local d = math.random(1,#target) + pos.x = target[d].x + pos.y = target[d].y + pos.z = target[d].z + return pipeworks.meseadjlist + end + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("can_receive", 1) + set_teleport_tube_formspec(meta, 1) + end, + on_receive_fields = function(pos,formname,fields,sender) + if not fields.channel then + return -- ignore escaping or clientside manipulation of the form + end + + local meta = minetest.get_meta(pos) + local can_receive = meta:get_int("can_receive") + + -- check for private channels each time before actually changing anything + -- to not even allow switching between can_receive states of private channels + if fields.channel ~= "" then + local sender_name = sender:get_player_name() + local name, mode = fields.channel:match("^([^:;]+)([:;])") + if name and mode and name ~= sender_name then + --channels starting with '[name]:' can only be used by the named player + if mode == ":" then + minetest.chat_send_player(sender_name, "Sorry, channel '"..fields.channel.."' is reserved for exclusive use by "..name) + return + + --channels starting with '[name];' can be used by other players, but cannot be received from + elseif mode == ";" and (fields.cr1 or (can_receive ~= 0 and not fields.cr0)) then + minetest.chat_send_player(sender_name, "Sorry, receiving from channel '"..fields.channel.."' is reserved for "..name) + return + end + end + end + + local dirty = false + + -- test if a can_receive button was pressed + if fields.cr0 and can_receive ~= 0 then + can_receive = 0 + meta:set_int("can_receive", can_receive) + dirty = true + elseif fields.cr1 and can_receive ~= 1 then + can_receive = 1 + meta:set_int("can_receive", can_receive) + dirty = true + end + + -- was the channel changed? + local channel = meta:get_string("channel") + if fields.channel ~= channel then + channel = fields.channel + meta:set_string("channel", channel) + dirty = true + end + + -- save if we changed something, handle the empty channel while we're at it + if dirty then + if channel ~= "" then + set_tube(pos, channel, can_receive) + else + -- remove empty channel tubes, to not have to search through them + remove_tube(pos) + end + set_teleport_tube_formspec(meta, can_receive) + end + end, + on_destruct = function(pos) + remove_tube(pos) + end +}) + +if minetest.get_modpath("mesecons_mvps") ~= nil then + mesecon.register_on_mvps_move(function(moved_nodes) + for _, n in ipairs(moved_nodes) do + if string.find(n.node.name, "pipeworks:teleport_tube") ~= nil then + local meta = minetest.get_meta(n.pos) + set_tube(n.pos, meta:get_string("channel"), meta:get_int("can_receive")) + end + end + end) +end diff --git a/mods/pipeworks/textures/homedecor_oil_extract.png b/mods/pipeworks/textures/homedecor_oil_extract.png new file mode 100644 index 0000000..48e6dff Binary files /dev/null and b/mods/pipeworks/textures/homedecor_oil_extract.png differ diff --git a/mods/pipeworks/textures/homedecor_paraffin.png b/mods/pipeworks/textures/homedecor_paraffin.png new file mode 100644 index 0000000..77d2bbd Binary files /dev/null and b/mods/pipeworks/textures/homedecor_paraffin.png differ diff --git a/mods/pipeworks/textures/homedecor_plastic_sheeting.png b/mods/pipeworks/textures/homedecor_plastic_sheeting.png new file mode 100644 index 0000000..034dcc2 Binary files /dev/null and b/mods/pipeworks/textures/homedecor_plastic_sheeting.png differ diff --git a/mods/pipeworks/textures/pipeworks_accelerator_tube_end.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_end.png new file mode 100644 index 0000000..f841d20 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_accelerator_tube_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_accelerator_tube_inv.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_inv.png new file mode 100644 index 0000000..3f68082 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_accelerator_tube_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_accelerator_tube_noctr.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_noctr.png new file mode 100644 index 0000000..61a46a3 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_accelerator_tube_noctr.png differ diff --git a/mods/pipeworks/textures/pipeworks_accelerator_tube_plain.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_plain.png new file mode 100644 index 0000000..0baa541 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_accelerator_tube_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_accelerator_tube_short.png b/mods/pipeworks/textures/pipeworks_accelerator_tube_short.png new file mode 100644 index 0000000..4f389d9 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_accelerator_tube_short.png differ diff --git a/mods/pipeworks/textures/pipeworks_autocrafter.png b/mods/pipeworks/textures/pipeworks_autocrafter.png new file mode 100644 index 0000000..6c7c84d Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_autocrafter.png differ diff --git a/mods/pipeworks/textures/pipeworks_black.png b/mods/pipeworks/textures/pipeworks_black.png new file mode 100644 index 0000000..34afad8 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_black.png differ diff --git a/mods/pipeworks/textures/pipeworks_blue.png b/mods/pipeworks/textures/pipeworks_blue.png new file mode 100644 index 0000000..64c8a6f Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_blue.png differ diff --git a/mods/pipeworks/textures/pipeworks_button_off.png b/mods/pipeworks/textures/pipeworks_button_off.png new file mode 100644 index 0000000..1933742 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_button_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_button_on.png b/mods/pipeworks/textures/pipeworks_button_on.png new file mode 100644 index 0000000..bb34ceb Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_button_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_conductor_tube_end.png b/mods/pipeworks/textures/pipeworks_conductor_tube_end.png new file mode 100644 index 0000000..49bf788 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_conductor_tube_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_conductor_tube_inv.png b/mods/pipeworks/textures/pipeworks_conductor_tube_inv.png new file mode 100644 index 0000000..bffb5ae Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_conductor_tube_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_conductor_tube_noctr.png b/mods/pipeworks/textures/pipeworks_conductor_tube_noctr.png new file mode 100644 index 0000000..2cbd109 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_conductor_tube_noctr.png differ diff --git a/mods/pipeworks/textures/pipeworks_conductor_tube_on_end.png b/mods/pipeworks/textures/pipeworks_conductor_tube_on_end.png new file mode 100644 index 0000000..1fd0c53 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_conductor_tube_on_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_conductor_tube_on_noctr.png b/mods/pipeworks/textures/pipeworks_conductor_tube_on_noctr.png new file mode 100644 index 0000000..934ca1d Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_conductor_tube_on_noctr.png differ diff --git a/mods/pipeworks/textures/pipeworks_conductor_tube_on_plain.png b/mods/pipeworks/textures/pipeworks_conductor_tube_on_plain.png new file mode 100644 index 0000000..ecf3eaa Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_conductor_tube_on_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_conductor_tube_plain.png b/mods/pipeworks/textures/pipeworks_conductor_tube_plain.png new file mode 100644 index 0000000..2c4ad99 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_conductor_tube_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_conductor_tube_short.png b/mods/pipeworks/textures/pipeworks_conductor_tube_short.png new file mode 100644 index 0000000..7ec809a Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_conductor_tube_short.png differ diff --git a/mods/pipeworks/textures/pipeworks_crossing_tube_end.png b/mods/pipeworks/textures/pipeworks_crossing_tube_end.png new file mode 100644 index 0000000..7b51ce3 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_crossing_tube_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_crossing_tube_inv.png b/mods/pipeworks/textures/pipeworks_crossing_tube_inv.png new file mode 100644 index 0000000..a547f05 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_crossing_tube_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_crossing_tube_noctr.png b/mods/pipeworks/textures/pipeworks_crossing_tube_noctr.png new file mode 100644 index 0000000..fdef1be Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_crossing_tube_noctr.png differ diff --git a/mods/pipeworks/textures/pipeworks_crossing_tube_plain.png b/mods/pipeworks/textures/pipeworks_crossing_tube_plain.png new file mode 100644 index 0000000..385c7e7 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_crossing_tube_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_crossing_tube_short.png b/mods/pipeworks/textures/pipeworks_crossing_tube_short.png new file mode 100644 index 0000000..ef191de Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_crossing_tube_short.png differ diff --git a/mods/pipeworks/textures/pipeworks_deployer_back.png b/mods/pipeworks/textures/pipeworks_deployer_back.png new file mode 100644 index 0000000..4e08be3 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_deployer_back.png differ diff --git a/mods/pipeworks/textures/pipeworks_deployer_bottom.png b/mods/pipeworks/textures/pipeworks_deployer_bottom.png new file mode 100644 index 0000000..b5ebd43 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_deployer_bottom.png differ diff --git a/mods/pipeworks/textures/pipeworks_deployer_front_off.png b/mods/pipeworks/textures/pipeworks_deployer_front_off.png new file mode 100644 index 0000000..323cdaa Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_deployer_front_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_deployer_front_on.png b/mods/pipeworks/textures/pipeworks_deployer_front_on.png new file mode 100644 index 0000000..38caed6 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_deployer_front_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_deployer_side.png b/mods/pipeworks/textures/pipeworks_deployer_side.png new file mode 100644 index 0000000..2527f6e Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_deployer_side.png differ diff --git a/mods/pipeworks/textures/pipeworks_deployer_side1.png b/mods/pipeworks/textures/pipeworks_deployer_side1.png new file mode 100644 index 0000000..2527f6e Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_deployer_side1.png differ diff --git a/mods/pipeworks/textures/pipeworks_deployer_side2.png b/mods/pipeworks/textures/pipeworks_deployer_side2.png new file mode 100644 index 0000000..032d471 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_deployer_side2.png differ diff --git a/mods/pipeworks/textures/pipeworks_deployer_top.png b/mods/pipeworks/textures/pipeworks_deployer_top.png new file mode 100644 index 0000000..6e3f9d09 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_deployer_top.png differ diff --git a/mods/pipeworks/textures/pipeworks_detector_tube_end.png b/mods/pipeworks/textures/pipeworks_detector_tube_end.png new file mode 100644 index 0000000..e9d01ba Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_detector_tube_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_detector_tube_inv.png b/mods/pipeworks/textures/pipeworks_detector_tube_inv.png new file mode 100644 index 0000000..84cae45 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_detector_tube_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_detector_tube_noctr.png b/mods/pipeworks/textures/pipeworks_detector_tube_noctr.png new file mode 100644 index 0000000..6f07886 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_detector_tube_noctr.png differ diff --git a/mods/pipeworks/textures/pipeworks_detector_tube_plain.png b/mods/pipeworks/textures/pipeworks_detector_tube_plain.png new file mode 100644 index 0000000..d99cddc Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_detector_tube_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_detector_tube_short.png b/mods/pipeworks/textures/pipeworks_detector_tube_short.png new file mode 100644 index 0000000..6729c53 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_detector_tube_short.png differ diff --git a/mods/pipeworks/textures/pipeworks_dispenser_back.png b/mods/pipeworks/textures/pipeworks_dispenser_back.png new file mode 100644 index 0000000..ce447bd Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_dispenser_back.png differ diff --git a/mods/pipeworks/textures/pipeworks_dispenser_bottom.png b/mods/pipeworks/textures/pipeworks_dispenser_bottom.png new file mode 100644 index 0000000..16dc584 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_dispenser_bottom.png differ diff --git a/mods/pipeworks/textures/pipeworks_dispenser_front_off.png b/mods/pipeworks/textures/pipeworks_dispenser_front_off.png new file mode 100644 index 0000000..b0c9e4a Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_dispenser_front_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_dispenser_front_on.png b/mods/pipeworks/textures/pipeworks_dispenser_front_on.png new file mode 100644 index 0000000..c9fff11 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_dispenser_front_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_dispenser_side1.png b/mods/pipeworks/textures/pipeworks_dispenser_side1.png new file mode 100644 index 0000000..bd17852 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_dispenser_side1.png differ diff --git a/mods/pipeworks/textures/pipeworks_dispenser_side2.png b/mods/pipeworks/textures/pipeworks_dispenser_side2.png new file mode 100644 index 0000000..005d9a5 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_dispenser_side2.png differ diff --git a/mods/pipeworks/textures/pipeworks_dispenser_top.png b/mods/pipeworks/textures/pipeworks_dispenser_top.png new file mode 100644 index 0000000..7dd49ad Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_dispenser_top.png differ diff --git a/mods/pipeworks/textures/pipeworks_entry_panel.png b/mods/pipeworks/textures/pipeworks_entry_panel.png new file mode 100644 index 0000000..040f408 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_entry_panel.png differ diff --git a/mods/pipeworks/textures/pipeworks_filter_input.png b/mods/pipeworks/textures/pipeworks_filter_input.png new file mode 100644 index 0000000..e57a5ec Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_filter_input.png differ diff --git a/mods/pipeworks/textures/pipeworks_filter_output.png b/mods/pipeworks/textures/pipeworks_filter_output.png new file mode 100644 index 0000000..e0ae622 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_filter_output.png differ diff --git a/mods/pipeworks/textures/pipeworks_filter_side.png b/mods/pipeworks/textures/pipeworks_filter_side.png new file mode 100644 index 0000000..6645948 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_filter_side.png differ diff --git a/mods/pipeworks/textures/pipeworks_filter_top.png b/mods/pipeworks/textures/pipeworks_filter_top.png new file mode 100644 index 0000000..c1c130c Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_filter_top.png differ diff --git a/mods/pipeworks/textures/pipeworks_flow_sensor_off.png b/mods/pipeworks/textures/pipeworks_flow_sensor_off.png new file mode 100644 index 0000000..10c6846 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_flow_sensor_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_flow_sensor_on.png b/mods/pipeworks/textures/pipeworks_flow_sensor_on.png new file mode 100644 index 0000000..03e054a Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_flow_sensor_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_fountainhead.png b/mods/pipeworks/textures/pipeworks_fountainhead.png new file mode 100644 index 0000000..4affa69 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_fountainhead.png differ diff --git a/mods/pipeworks/textures/pipeworks_grating_sides.png b/mods/pipeworks/textures/pipeworks_grating_sides.png new file mode 100644 index 0000000..a8b0b09 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_grating_sides.png differ diff --git a/mods/pipeworks/textures/pipeworks_grating_top.png b/mods/pipeworks/textures/pipeworks_grating_top.png new file mode 100644 index 0000000..e56cf3a Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_grating_top.png differ diff --git a/mods/pipeworks/textures/pipeworks_green.png b/mods/pipeworks/textures/pipeworks_green.png new file mode 100644 index 0000000..3f42f9f Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_green.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_filter_input.png b/mods/pipeworks/textures/pipeworks_mese_filter_input.png new file mode 100644 index 0000000..d0353a7 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_filter_input.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_filter_output.png b/mods/pipeworks/textures/pipeworks_mese_filter_output.png new file mode 100644 index 0000000..35db0fe Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_filter_output.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_filter_side.png b/mods/pipeworks/textures/pipeworks_mese_filter_side.png new file mode 100644 index 0000000..f2793b1 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_filter_side.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_filter_top.png b/mods/pipeworks/textures/pipeworks_mese_filter_top.png new file mode 100644 index 0000000..7b8e2b1 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_filter_top.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_sand_tube_end.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_end.png new file mode 100644 index 0000000..d8e7c37 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_sand_tube_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_sand_tube_inv.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_inv.png new file mode 100644 index 0000000..c2471db Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_sand_tube_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_sand_tube_noctr.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_noctr.png new file mode 100644 index 0000000..9e41bc8 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_sand_tube_noctr.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_sand_tube_plain.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_plain.png new file mode 100644 index 0000000..aa0b399 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_sand_tube_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_sand_tube_short.png b/mods/pipeworks/textures/pipeworks_mese_sand_tube_short.png new file mode 100644 index 0000000..a0eeedf Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_sand_tube_short.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_end.png b/mods/pipeworks/textures/pipeworks_mese_tube_end.png new file mode 100644 index 0000000..3b15d7a Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_inv.png b/mods/pipeworks/textures/pipeworks_mese_tube_inv.png new file mode 100644 index 0000000..9b3c5a6 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_noctr_1.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_1.png new file mode 100644 index 0000000..da29b06 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_1.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_noctr_2.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_2.png new file mode 100644 index 0000000..1f37163 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_2.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_noctr_3.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_3.png new file mode 100644 index 0000000..1371ce7 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_3.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_noctr_4.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_4.png new file mode 100644 index 0000000..bca7439 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_4.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_noctr_5.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_5.png new file mode 100644 index 0000000..2cc44d4 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_5.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_noctr_6.png b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_6.png new file mode 100644 index 0000000..d93213d Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_noctr_6.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_plain_1.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_1.png new file mode 100644 index 0000000..517f5a4 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_plain_1.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_plain_2.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_2.png new file mode 100644 index 0000000..6323492 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_plain_2.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_plain_3.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_3.png new file mode 100644 index 0000000..820597b Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_plain_3.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_plain_4.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_4.png new file mode 100644 index 0000000..bc19da2 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_plain_4.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_plain_5.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_5.png new file mode 100644 index 0000000..f781787 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_plain_5.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_plain_6.png b/mods/pipeworks/textures/pipeworks_mese_tube_plain_6.png new file mode 100644 index 0000000..863059f Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_plain_6.png differ diff --git a/mods/pipeworks/textures/pipeworks_mese_tube_short.png b/mods/pipeworks/textures/pipeworks_mese_tube_short.png new file mode 100644 index 0000000..fae64c4 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_mese_tube_short.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_back.png b/mods/pipeworks/textures/pipeworks_nodebreaker_back.png new file mode 100644 index 0000000..e964bdf Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_back.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_bottom_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_bottom_off.png new file mode 100644 index 0000000..c7a48d4 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_bottom_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_bottom_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_bottom_on.png new file mode 100644 index 0000000..e14ca32 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_bottom_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_front_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_front_off.png new file mode 100644 index 0000000..36a5a50 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_front_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_front_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_front_on.png new file mode 100644 index 0000000..bf7fe70 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_front_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_side1_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_side1_off.png new file mode 100644 index 0000000..30769fa Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_side1_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_side1_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_side1_on.png new file mode 100644 index 0000000..ff0a893 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_side1_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_side2_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_side2_off.png new file mode 100644 index 0000000..babb681 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_side2_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_side2_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_side2_on.png new file mode 100644 index 0000000..ed0e12e Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_side2_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_top_off.png b/mods/pipeworks/textures/pipeworks_nodebreaker_top_off.png new file mode 100644 index 0000000..fb86b95 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_top_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_nodebreaker_top_on.png b/mods/pipeworks/textures/pipeworks_nodebreaker_top_on.png new file mode 100644 index 0000000..97da74d Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_nodebreaker_top_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_one_way_tube_input.png b/mods/pipeworks/textures/pipeworks_one_way_tube_input.png new file mode 100644 index 0000000..0226cef Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_one_way_tube_input.png differ diff --git a/mods/pipeworks/textures/pipeworks_one_way_tube_output.png b/mods/pipeworks/textures/pipeworks_one_way_tube_output.png new file mode 100644 index 0000000..0226cef Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_one_way_tube_output.png differ diff --git a/mods/pipeworks/textures/pipeworks_one_way_tube_side.png b/mods/pipeworks/textures/pipeworks_one_way_tube_side.png new file mode 100644 index 0000000..174b133 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_one_way_tube_side.png differ diff --git a/mods/pipeworks/textures/pipeworks_one_way_tube_top.png b/mods/pipeworks/textures/pipeworks_one_way_tube_top.png new file mode 100644 index 0000000..9b9be73 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_one_way_tube_top.png differ diff --git a/mods/pipeworks/textures/pipeworks_pipe_3_empty.png b/mods/pipeworks/textures/pipeworks_pipe_3_empty.png new file mode 100644 index 0000000..d13ec77 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_pipe_3_empty.png differ diff --git a/mods/pipeworks/textures/pipeworks_pipe_3_loaded.png b/mods/pipeworks/textures/pipeworks_pipe_3_loaded.png new file mode 100644 index 0000000..c086e19 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_pipe_3_loaded.png differ diff --git a/mods/pipeworks/textures/pipeworks_pipe_inv.png b/mods/pipeworks/textures/pipeworks_pipe_inv.png new file mode 100644 index 0000000..aeec393 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_pipe_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_pipe_plain.png b/mods/pipeworks/textures/pipeworks_pipe_plain.png new file mode 100644 index 0000000..7cbc11b Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_pipe_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_plastic_sheeting.png b/mods/pipeworks/textures/pipeworks_plastic_sheeting.png new file mode 100644 index 0000000..1386b19 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_plastic_sheeting.png differ diff --git a/mods/pipeworks/textures/pipeworks_pump_off.png b/mods/pipeworks/textures/pipeworks_pump_off.png new file mode 100644 index 0000000..3dbd2b0 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_pump_off.png differ diff --git a/mods/pipeworks/textures/pipeworks_pump_on.png b/mods/pipeworks/textures/pipeworks_pump_on.png new file mode 100644 index 0000000..7c16d5d Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_pump_on.png differ diff --git a/mods/pipeworks/textures/pipeworks_red.png b/mods/pipeworks/textures/pipeworks_red.png new file mode 100644 index 0000000..33812bd Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_red.png differ diff --git a/mods/pipeworks/textures/pipeworks_sand_tube_end.png b/mods/pipeworks/textures/pipeworks_sand_tube_end.png new file mode 100644 index 0000000..16945da Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_sand_tube_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_sand_tube_inv.png b/mods/pipeworks/textures/pipeworks_sand_tube_inv.png new file mode 100644 index 0000000..aa2a72a Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_sand_tube_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_sand_tube_noctr.png b/mods/pipeworks/textures/pipeworks_sand_tube_noctr.png new file mode 100644 index 0000000..cbb3a09 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_sand_tube_noctr.png differ diff --git a/mods/pipeworks/textures/pipeworks_sand_tube_plain.png b/mods/pipeworks/textures/pipeworks_sand_tube_plain.png new file mode 100644 index 0000000..71deecc Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_sand_tube_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_sand_tube_short.png b/mods/pipeworks/textures/pipeworks_sand_tube_short.png new file mode 100644 index 0000000..89c4713 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_sand_tube_short.png differ diff --git a/mods/pipeworks/textures/pipeworks_spigot.png b/mods/pipeworks/textures/pipeworks_spigot.png new file mode 100644 index 0000000..a79dbf8 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_spigot.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_back.png b/mods/pipeworks/textures/pipeworks_storage_tank_back.png new file mode 100644 index 0000000..3b6a16b Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_back.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_fittings.png b/mods/pipeworks/textures/pipeworks_storage_tank_fittings.png new file mode 100644 index 0000000..f3b8b24 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_fittings.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_0.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_0.png new file mode 100644 index 0000000..c91466f Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_0.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_1.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_1.png new file mode 100644 index 0000000..6656834 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_1.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_10.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_10.png new file mode 100644 index 0000000..f48a738 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_10.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_2.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_2.png new file mode 100644 index 0000000..a36bc24 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_2.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_3.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_3.png new file mode 100644 index 0000000..d237dd5 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_3.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_4.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_4.png new file mode 100644 index 0000000..47d9669 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_4.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_5.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_5.png new file mode 100644 index 0000000..17eaf69 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_5.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_6.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_6.png new file mode 100644 index 0000000..77619e3 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_6.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_7.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_7.png new file mode 100644 index 0000000..ffebf9b Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_7.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_8.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_8.png new file mode 100644 index 0000000..4974a82 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_8.png differ diff --git a/mods/pipeworks/textures/pipeworks_storage_tank_front_9.png b/mods/pipeworks/textures/pipeworks_storage_tank_front_9.png new file mode 100644 index 0000000..87b6d79 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_storage_tank_front_9.png differ diff --git a/mods/pipeworks/textures/pipeworks_teleport_tube_end.png b/mods/pipeworks/textures/pipeworks_teleport_tube_end.png new file mode 100644 index 0000000..09ee3fb Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_teleport_tube_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_teleport_tube_inv.png b/mods/pipeworks/textures/pipeworks_teleport_tube_inv.png new file mode 100644 index 0000000..305d867 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_teleport_tube_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_teleport_tube_noctr.png b/mods/pipeworks/textures/pipeworks_teleport_tube_noctr.png new file mode 100644 index 0000000..3d10b41 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_teleport_tube_noctr.png differ diff --git a/mods/pipeworks/textures/pipeworks_teleport_tube_plain.png b/mods/pipeworks/textures/pipeworks_teleport_tube_plain.png new file mode 100644 index 0000000..23a793d Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_teleport_tube_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_teleport_tube_short.png b/mods/pipeworks/textures/pipeworks_teleport_tube_short.png new file mode 100644 index 0000000..e0a15b9 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_teleport_tube_short.png differ diff --git a/mods/pipeworks/textures/pipeworks_testobject.png b/mods/pipeworks/textures/pipeworks_testobject.png new file mode 100644 index 0000000..5e26cbe Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_testobject.png differ diff --git a/mods/pipeworks/textures/pipeworks_trashcan_bottom.png b/mods/pipeworks/textures/pipeworks_trashcan_bottom.png new file mode 100644 index 0000000..91fd944 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_trashcan_bottom.png differ diff --git a/mods/pipeworks/textures/pipeworks_trashcan_side.png b/mods/pipeworks/textures/pipeworks_trashcan_side.png new file mode 100644 index 0000000..cf0a3bf Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_trashcan_side.png differ diff --git a/mods/pipeworks/textures/pipeworks_tube_connection_metallic.png b/mods/pipeworks/textures/pipeworks_tube_connection_metallic.png new file mode 100644 index 0000000..10becfe Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_tube_connection_metallic.png differ diff --git a/mods/pipeworks/textures/pipeworks_tube_connection_stony.png b/mods/pipeworks/textures/pipeworks_tube_connection_stony.png new file mode 100644 index 0000000..78a9979 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_tube_connection_stony.png differ diff --git a/mods/pipeworks/textures/pipeworks_tube_connection_wooden.png b/mods/pipeworks/textures/pipeworks_tube_connection_wooden.png new file mode 100644 index 0000000..36548df Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_tube_connection_wooden.png differ diff --git a/mods/pipeworks/textures/pipeworks_tube_end.png b/mods/pipeworks/textures/pipeworks_tube_end.png new file mode 100644 index 0000000..e9d01ba Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_tube_end.png differ diff --git a/mods/pipeworks/textures/pipeworks_tube_inv.png b/mods/pipeworks/textures/pipeworks_tube_inv.png new file mode 100644 index 0000000..51c728d Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_tube_inv.png differ diff --git a/mods/pipeworks/textures/pipeworks_tube_noctr.png b/mods/pipeworks/textures/pipeworks_tube_noctr.png new file mode 100644 index 0000000..6f07886 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_tube_noctr.png differ diff --git a/mods/pipeworks/textures/pipeworks_tube_plain.png b/mods/pipeworks/textures/pipeworks_tube_plain.png new file mode 100644 index 0000000..9d6442b Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_tube_plain.png differ diff --git a/mods/pipeworks/textures/pipeworks_tube_short.png b/mods/pipeworks/textures/pipeworks_tube_short.png new file mode 100644 index 0000000..6729c53 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_tube_short.png differ diff --git a/mods/pipeworks/textures/pipeworks_tube_transparent.png b/mods/pipeworks/textures/pipeworks_tube_transparent.png new file mode 100644 index 0000000..52a8348 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_tube_transparent.png differ diff --git a/mods/pipeworks/textures/pipeworks_valve.png b/mods/pipeworks/textures/pipeworks_valve.png new file mode 100644 index 0000000..60ef960 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_valve.png differ diff --git a/mods/pipeworks/textures/pipeworks_white.png b/mods/pipeworks/textures/pipeworks_white.png new file mode 100644 index 0000000..faf0ec1 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_white.png differ diff --git a/mods/pipeworks/textures/pipeworks_yellow.png b/mods/pipeworks/textures/pipeworks_yellow.png new file mode 100644 index 0000000..ce1af41 Binary files /dev/null and b/mods/pipeworks/textures/pipeworks_yellow.png differ diff --git a/mods/pipeworks/trashcan.lua b/mods/pipeworks/trashcan.lua new file mode 100644 index 0000000..fdec79f --- /dev/null +++ b/mods/pipeworks/trashcan.lua @@ -0,0 +1,49 @@ +minetest.register_node("pipeworks:trashcan", { + description = "Trash Can", + drawtype = "normal", + tiles = { + "pipeworks_trashcan_bottom.png", + "pipeworks_trashcan_bottom.png", + "pipeworks_trashcan_side.png", + "pipeworks_trashcan_side.png", + "pipeworks_trashcan_side.png", + "pipeworks_trashcan_side.png", + }, + groups = {snappy = 3, tubedevice = 1, tubedevice_receiver = 1}, + tube = { + insert_object = function(pos, node, stack, direction) + return ItemStack("") + end, + connect_sides = {left = 1, right = 1, front = 1, back = 1, top = 1, bottom = 1}, + priority = 1, -- Lower than anything else + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", + "size[8,7]".. + "item_image[0,0;1,1;pipeworks:trashcan]".. + "label[1,0;Trash Can]".. + "list[current_name;trash;3.5,1;1,1;]".. + "list[current_player;main;0,3;8,4;]") + meta:set_string("infotext", "Trash Can") + meta:get_inventory():set_size("trash", 1) + end, + after_place_node = function(pos) + pipeworks.scan_for_tube_objects(pos) + end, + after_dig_node = function(pos) + pipeworks.scan_for_tube_objects(pos) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.get_meta(pos):get_inventory():set_stack(listname, index, ItemStack("")) + end, +}) + +minetest.register_craft({ + output = "pipeworks:trashcan", + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + { "default:steel_ingot", "", "default:steel_ingot" }, + { "default:steel_ingot", "default:steel_ingot", "default:steel_ingot" }, + }, +}) diff --git a/mods/pipeworks/tubes.lua b/mods/pipeworks/tubes.lua new file mode 100644 index 0000000..39323a2 --- /dev/null +++ b/mods/pipeworks/tubes.lua @@ -0,0 +1,592 @@ +-- This file supplies the various kinds of pneumatic tubes + +pipeworks.tubenodes = {} + +minetest.register_alias("pipeworks:tube", "pipeworks:tube_000000") + +-- now, a function to define the tubes + +local REGISTER_COMPATIBILITY = true + +local vti = {4, 3, 2, 1, 6, 5} + +local register_one_tube = function(name, tname, dropname, desc, plain, noctrs, ends, short, inv, special, connects, style) + local outboxes = {} + local outsel = {} + local outimgs = {} + + for i = 1, 6 do + outimgs[vti[i]] = plain[i] + end + + for _, v in ipairs(connects) do + table.extend(outboxes, pipeworks.tube_boxes[v]) + table.insert(outsel, pipeworks.tube_selectboxes[v]) + outimgs[vti[v]] = noctrs[v] + end + + if #connects == 1 then + local v = connects[1] + v = v-1 + 2*(v%2) -- Opposite side + outimgs[vti[v]] = ends[v] + end + + local tgroups = {snappy = 3, tube = 1, tubedevice = 1, not_in_creative_inventory = 1} + local tubedesc = desc.." "..dump(connects).."... You hacker, you." + local iimg = plain[1] + local wscale = {x = 1, y = 1, z = 1} + + if #connects == 0 then + tgroups = {snappy = 3, tube = 1, tubedevice = 1} + tubedesc = desc + iimg=inv + outimgs = { + short, short, + ends[3],ends[4], + short, short + } + outboxes = { -24/64, -9/64, -9/64, 24/64, 9/64, 9/64 } + outsel = { -24/64, -10/64, -10/64, 24/64, 10/64, 10/64 } + wscale = {x = 1, y = 1, z = 0.01} + end + + local rname = name.."_"..tname + table.insert(pipeworks.tubenodes, rname) + + local nodedef = { + description = tubedesc, + drawtype = "nodebox", + tiles = outimgs, + sunlight_propagates = true, + inventory_image = iimg, + wield_image = iimg, + wield_scale = wscale, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = outsel + }, + node_box = { + type = "fixed", + fixed = outboxes + }, + groups = tgroups, + sounds = default.node_sound_wood_defaults(), + walkable = true, + stack_max = 99, + basename = name, + style = style, + drop = name.."_"..dropname, + tubelike = 1, + tube = { + connect_sides = {front = 1, back = 1, left = 1, right = 1, top = 1, bottom = 1}, + priority = 50 + }, + --[[after_place_node = function(pos) + pipeworks.scan_for_tube_objects(pos) + if minetest.registered_nodes[rname].after_place_node_ then + minetest.registered_nodes[rname].after_place_node_(pos) + end + end, + after_dig_node = function(pos) + pipeworks.scan_for_tube_objects(pos) + if minetest.registered_nodes[rname].after_dig_node_ then + minetest.registered_nodes[rname].after_dig_node_(pos) + end + end]] + } + if style == "6d" then + nodedef.paramtype2 = "facedir" + end + + if special == nil then special = {} end + + for key, value in pairs(special) do + --if key == "after_dig_node" or key == "after_place_node" then + -- nodedef[key.."_"] = value + if key == "groups" then + for group, val in pairs(value) do + nodedef.groups[group] = val + end + elseif key == "tube" then + for key, val in pairs(value) do + nodedef.tube[key] = val + end + else + nodedef[key] = table.recursive_replace(value, "#id", tname) + end + end + + minetest.register_node(rname, nodedef) +end + +pipeworks.register_tube = function(name, desc, plain, noctrs, ends, short, inv, special, old_registration) + if old_registration then + for xm = 0, 1 do + for xp = 0, 1 do + for ym = 0, 1 do + for yp = 0, 1 do + for zm = 0, 1 do + for zp = 0, 1 do + local connects = {} + if xm == 1 then + connects[#connects+1] = 1 + end + if xp == 1 then + connects[#connects+1] = 2 + end + if ym == 1 then + connects[#connects+1] = 3 + end + if yp == 1 then + connects[#connects+1] = 4 + end + if zm == 1 then + connects[#connects+1] = 5 + end + if zp == 1 then + connects[#connects+1] = 6 + end + local tname = xm..xp..ym..yp..zm..zp + register_one_tube(name, tname, "000000", desc, plain, noctrs, ends, short, inv, special, connects, "old") + end + end + end + end + end + end + else + -- 6d tubes: uses only 10 nodes instead of 64, but the textures must be rotated + local cconnects = {{}, {1}, {1, 2}, {1, 3}, {1, 3, 5}, {1, 2, 3}, {1, 2, 3, 5}, {1, 2, 3, 4}, {1, 2, 3, 4, 5}, {1, 2, 3, 4, 5, 6}} + for index, connects in ipairs(cconnects) do + register_one_tube(name, tostring(index), "1", desc, plain, noctrs, ends, short, inv, special, connects, "6d") + end + if REGISTER_COMPATIBILITY then + local cname = name.."_compatibility" + minetest.register_node(cname, { + drawtype = "airlike", + style = "6d", + basename = name, + inventory_image = inv, + wield_image = inv, + paramtype = "light", + sunlight_propagates = true, + description = "Pneumatic tube segment (legacy)", + --[[after_place_node = function(pos) + pipeworks.scan_for_tube_objects(pos) + if minetest.registered_nodes[name.."_1"].after_place_node_ then + minetest.registered_nodes[name.."_1"].after_place_node_(pos) + end + end,]] + groups = {not_in_creative_inventory = 1, tube_to_update = 1, tube = 1}, + tube = {connect_sides = {front = 1, back = 1, left = 1, right = 1, top = 1, bottom = 1}}, + drop = name.."_1", + }) + table.insert(pipeworks.tubenodes, cname) + for xm = 0, 1 do + for xp = 0, 1 do + for ym = 0, 1 do + for yp = 0, 1 do + for zm = 0, 1 do + for zp = 0, 1 do + local tname = xm..xp..ym..yp..zm..zp + minetest.register_alias(name.."_"..tname, cname) + end + end + end + end + end + end + end + end +end + +if REGISTER_COMPATIBILITY then + minetest.register_abm({ + nodenames = {"group:tube_to_update"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local minp = vector.subtract(pos, 1) + local maxp = vector.add(pos, 1) + if table.getn(minetest.find_nodes_in_area(minp, maxp, "ignore")) == 0 then + pipeworks.scan_for_tube_objects(pos) + end + end + }) +end + +-- now let's actually call that function to get the real work done! + +local noctr_textures = {"pipeworks_tube_noctr.png", "pipeworks_tube_noctr.png", "pipeworks_tube_noctr.png", + "pipeworks_tube_noctr.png", "pipeworks_tube_noctr.png", "pipeworks_tube_noctr.png"} +local plain_textures = {"pipeworks_tube_plain.png", "pipeworks_tube_plain.png", "pipeworks_tube_plain.png", + "pipeworks_tube_plain.png", "pipeworks_tube_plain.png", "pipeworks_tube_plain.png"} +local end_textures = {"pipeworks_tube_end.png", "pipeworks_tube_end.png", "pipeworks_tube_end.png", + "pipeworks_tube_end.png", "pipeworks_tube_end.png", "pipeworks_tube_end.png"} +local short_texture = "pipeworks_tube_short.png" +local inv_texture = "pipeworks_tube_inv.png" + +pipeworks.register_tube("pipeworks:tube", "Pneumatic tube segment", plain_textures, noctr_textures, end_textures, short_texture, inv_texture) + +if pipeworks.enable_mese_tube then + local mese_noctr_textures = {"pipeworks_mese_tube_noctr_1.png", "pipeworks_mese_tube_noctr_2.png", "pipeworks_mese_tube_noctr_3.png", + "pipeworks_mese_tube_noctr_4.png", "pipeworks_mese_tube_noctr_5.png", "pipeworks_mese_tube_noctr_6.png"} + local mese_plain_textures = {"pipeworks_mese_tube_plain_1.png", "pipeworks_mese_tube_plain_2.png", "pipeworks_mese_tube_plain_3.png", + "pipeworks_mese_tube_plain_4.png", "pipeworks_mese_tube_plain_5.png", "pipeworks_mese_tube_plain_6.png"} + local mese_end_textures = {"pipeworks_mese_tube_end.png", "pipeworks_mese_tube_end.png", "pipeworks_mese_tube_end.png", + "pipeworks_mese_tube_end.png", "pipeworks_mese_tube_end.png", "pipeworks_mese_tube_end.png"} + local mese_short_texture = "pipeworks_mese_tube_short.png" + local mese_inv_texture = "pipeworks_mese_tube_inv.png" + local function update_formspec(pos) + local meta = minetest.get_meta(pos) + local old_formspec = meta:get_string("formspec") + if string.find(old_formspec, "button1") then -- Old version + local inv = meta:get_inventory() + for i = 1, 6 do + for _, stack in ipairs(inv:get_list("line"..i)) do + minetest.item_drop(stack, "", pos) + end + end + end + local buttons_formspec = "" + for i = 0, 5 do + buttons_formspec = buttons_formspec .. fs_helpers.cycling_button(meta, + "image_button[7,"..(i)..";1,1", "l"..(i+1).."s", + {{text="",texture="pipeworks_button_off.png"}, {text="",texture="pipeworks_button_on.png"}}) + end + meta:set_string("formspec", + "size[8,11]".. + "list[current_name;line1;1,0;6,1;]".. + "list[current_name;line2;1,1;6,1;]".. + "list[current_name;line3;1,2;6,1;]".. + "list[current_name;line4;1,3;6,1;]".. + "list[current_name;line5;1,4;6,1;]".. + "list[current_name;line6;1,5;6,1;]".. + "image[0,0;1,1;pipeworks_white.png]".. + "image[0,1;1,1;pipeworks_black.png]".. + "image[0,2;1,1;pipeworks_green.png]".. + "image[0,3;1,1;pipeworks_yellow.png]".. + "image[0,4;1,1;pipeworks_blue.png]".. + "image[0,5;1,1;pipeworks_red.png]".. + buttons_formspec.. + "list[current_player;main;0,7;8,4;]") + end + pipeworks.register_tube("pipeworks:mese_tube", "Sorting Pneumatic Tube Segment", mese_plain_textures, mese_noctr_textures, + mese_end_textures, mese_short_texture, mese_inv_texture, + {tube = {can_go = function(pos, node, velocity, stack) + local tbl, tbln = {}, 0 + local found, foundn = {}, 0 + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local name = stack:get_name() + for i, vect in ipairs(pipeworks.meseadjlist) do + if meta:get_int("l"..i.."s") == 1 then + local invname = "line"..i + local is_empty = true + for _, st in ipairs(inv:get_list(invname)) do + if not st:is_empty() then + is_empty = false + if st:get_name() == name then + foundn = foundn + 1 + found[foundn] = vect + end + end + end + if is_empty then + tbln = tbln + 1 + tbl[tbln] = vect + end + end + end + return (foundn > 0) and found or tbl + end}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for i = 1, 6 do + meta:set_int("l"..tostring(i).."s", 1) + inv:set_size("line"..tostring(i), 6*1) + end + update_formspec(pos) + meta:set_string("infotext", "Mese pneumatic tube") + end, + on_punch = update_formspec, + on_receive_fields = function(pos, formname, fields, sender) + fs_helpers.on_receive_fields(pos, fields) + update_formspec(pos) + end, + can_dig = function(pos, player) + update_formspec(pos) -- so non-virtual items would be dropped for old tubes + return true + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + update_formspec(pos) -- For old tubes + local inv = minetest.get_meta(pos):get_inventory() + local stack_copy = ItemStack(stack) + stack_copy:set_count(1) + inv:set_stack(listname, index, stack_copy) + return 0 + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + update_formspec(pos) -- For old tubes + local inv = minetest.get_meta(pos):get_inventory() + inv:set_stack(listname, index, ItemStack("")) + return 0 + end, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + update_formspec(pos) -- For old tubes + local inv = minetest.get_meta(pos):get_inventory() + inv:set_stack(from_list, from_index, ItemStack("")) + return 0 + end, + }, true) -- Must use old tubes, since the textures are rotated with 6d ones +end + +if pipeworks.enable_detector_tube then + local detector_plain_textures = {"pipeworks_detector_tube_plain.png", "pipeworks_detector_tube_plain.png", "pipeworks_detector_tube_plain.png", + "pipeworks_detector_tube_plain.png", "pipeworks_detector_tube_plain.png", "pipeworks_detector_tube_plain.png"} + local detector_inv_texture = "pipeworks_detector_tube_inv.png" + local detector_tube_step = 2 * tonumber(minetest.setting_get("dedicated_server_step")) + pipeworks.register_tube("pipeworks:detector_tube_on", "Detecting Pneumatic Tube Segment on (you hacker you)", detector_plain_textures, noctr_textures, + end_textures, short_texture, detector_inv_texture, + {tube = {can_go = function(pos, node, velocity, stack) + local meta = minetest.get_meta(pos) + local name = minetest.get_node(pos).name + local nitems = meta:get_int("nitems")+1 + meta:set_int("nitems", nitems) + local saved_pos = vector.new(pos) + minetest.after(detector_tube_step, minetest.registered_nodes[name].item_exit, saved_pos) + return pipeworks.notvel(pipeworks.meseadjlist,velocity) + end}, + groups = {mesecon = 2, not_in_creative_inventory = 1}, + drop = "pipeworks:detector_tube_off_1", + mesecons = {receptor = {state = "on", + rules = pipeworks.mesecons_rules}}, + item_exit = function(pos) + local meta = minetest.get_meta(pos) + local nitems = meta:get_int("nitems")-1 + local node = minetest.get_node(pos) + local name = node.name + local fdir = node.param2 + if nitems == 0 then + minetest.set_node(pos, {name = string.gsub(name, "on", "off"), param2 = fdir}) + mesecon.receptor_off(pos, pipeworks.mesecons_rules) + else + meta:set_int("nitems", nitems) + end + end, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("nitems", 1) + local name = minetest.get_node(pos).name + local saved_pos = vector.new(pos) + minetest.after(detector_tube_step, minetest.registered_nodes[name].item_exit, saved_pos) + + end + }) + pipeworks.register_tube("pipeworks:detector_tube_off", "Detecting Pneumatic Tube Segment", detector_plain_textures, noctr_textures, + end_textures, short_texture, detector_inv_texture, + {tube = {can_go = function(pos, node, velocity, stack) + local node = minetest.get_node(pos) + local name = node.name + local fdir = node.param2 + minetest.set_node(pos,{name = string.gsub(name, "off", "on"), param2 = fdir}) + mesecon.receptor_on(pos, pipeworks.mesecons_rules) + return pipeworks.notvel(pipeworks.meseadjlist, velocity) + end}, + groups = {mesecon = 2}, + mesecons = {receptor = {state = "off", + rules = pipeworks.mesecons_rules}} + }) +end + +if pipeworks.enable_conductor_tube then + local conductor_plain_textures = {"pipeworks_conductor_tube_plain.png", "pipeworks_conductor_tube_plain.png", "pipeworks_conductor_tube_plain.png", + "pipeworks_conductor_tube_plain.png", "pipeworks_conductor_tube_plain.png", "pipeworks_conductor_tube_plain.png"} + local conductor_noctr_textures = {"pipeworks_conductor_tube_noctr.png", "pipeworks_conductor_tube_noctr.png", "pipeworks_conductor_tube_noctr.png", + "pipeworks_conductor_tube_noctr.png", "pipeworks_conductor_tube_noctr.png", "pipeworks_conductor_tube_noctr.png"} + local conductor_end_textures = {"pipeworks_conductor_tube_end.png", "pipeworks_conductor_tube_end.png", "pipeworks_conductor_tube_end.png", + "pipeworks_conductor_tube_end.png", "pipeworks_conductor_tube_end.png", "pipeworks_conductor_tube_end.png"} + local conductor_short_texture = "pipeworks_conductor_tube_short.png" + local conductor_inv_texture = "pipeworks_conductor_tube_inv.png" + + local conductor_on_plain_textures = {"pipeworks_conductor_tube_on_plain.png", "pipeworks_conductor_tube_on_plain.png", "pipeworks_conductor_tube_on_plain.png", + "pipeworks_conductor_tube_on_plain.png", "pipeworks_conductor_tube_on_plain.png", "pipeworks_conductor_tube_on_plain.png"} + local conductor_on_noctr_textures = {"pipeworks_conductor_tube_on_noctr.png", "pipeworks_conductor_tube_on_noctr.png", "pipeworks_conductor_tube_on_noctr.png", + "pipeworks_conductor_tube_on_noctr.png", "pipeworks_conductor_tube_on_noctr.png", "pipeworks_conductor_tube_on_noctr.png"} + local conductor_on_end_textures = {"pipeworks_conductor_tube_on_end.png", "pipeworks_conductor_tube_on_end.png", "pipeworks_conductor_tube_on_end.png", + "pipeworks_conductor_tube_on_end.png", "pipeworks_conductor_tube_on_end.png", "pipeworks_conductor_tube_on_end.png"} + + pipeworks.register_tube("pipeworks:conductor_tube_off", "Conducting Pneumatic Tube Segment", conductor_plain_textures, conductor_noctr_textures, + conductor_end_textures, conductor_short_texture, conductor_inv_texture, + {groups = {mesecon = 2}, + mesecons = {conductor = {state = "off", + rules = pipeworks.mesecons_rules, + onstate = "pipeworks:conductor_tube_on_#id"}} + }) + + pipeworks.register_tube("pipeworks:conductor_tube_on", "Conducting Pneumatic Tube Segment on (you hacker you)", conductor_on_plain_textures, conductor_on_noctr_textures, + conductor_on_end_textures, conductor_short_texture, conductor_inv_texture, + {groups = {mesecon = 2, not_in_creative_inventory = 1}, + drop = "pipeworks:conductor_tube_off_1", + mesecons = {conductor = {state = "on", + rules = pipeworks.mesecons_rules, + offstate = "pipeworks:conductor_tube_off_#id"}} + }) +end + +if pipeworks.enable_accelerator_tube then + local accelerator_noctr_textures = {"pipeworks_accelerator_tube_noctr.png", "pipeworks_accelerator_tube_noctr.png", "pipeworks_accelerator_tube_noctr.png", + "pipeworks_accelerator_tube_noctr.png", "pipeworks_accelerator_tube_noctr.png", "pipeworks_accelerator_tube_noctr.png"} + local accelerator_plain_textures = {"pipeworks_accelerator_tube_plain.png" ,"pipeworks_accelerator_tube_plain.png", "pipeworks_accelerator_tube_plain.png", + "pipeworks_accelerator_tube_plain.png", "pipeworks_accelerator_tube_plain.png", "pipeworks_accelerator_tube_plain.png"} + local accelerator_end_textures = {"pipeworks_accelerator_tube_end.png", "pipeworks_accelerator_tube_end.png", "pipeworks_accelerator_tube_end.png", + "pipeworks_accelerator_tube_end.png", "pipeworks_accelerator_tube_end.png", "pipeworks_accelerator_tube_end.png"} + local accelerator_short_texture = "pipeworks_accelerator_tube_short.png" + local accelerator_inv_texture = "pipeworks_accelerator_tube_inv.png" + + pipeworks.register_tube("pipeworks:accelerator_tube", "Accelerating Pneumatic Tube Segment", accelerator_plain_textures, + accelerator_noctr_textures, accelerator_end_textures, accelerator_short_texture, accelerator_inv_texture, + {tube = {can_go = function(pos, node, velocity, stack) + velocity.speed = velocity.speed+1 + return pipeworks.notvel(pipeworks.meseadjlist, velocity) + end} + }) +end + +if pipeworks.enable_crossing_tube then + local crossing_noctr_textures = {"pipeworks_crossing_tube_noctr.png", "pipeworks_crossing_tube_noctr.png", "pipeworks_crossing_tube_noctr.png", + "pipeworks_crossing_tube_noctr.png", "pipeworks_crossing_tube_noctr.png", "pipeworks_crossing_tube_noctr.png"} + local crossing_plain_textures = {"pipeworks_crossing_tube_plain.png" ,"pipeworks_crossing_tube_plain.png", "pipeworks_crossing_tube_plain.png", + "pipeworks_crossing_tube_plain.png", "pipeworks_crossing_tube_plain.png", "pipeworks_crossing_tube_plain.png"} + local crossing_end_textures = {"pipeworks_crossing_tube_end.png", "pipeworks_crossing_tube_end.png", "pipeworks_crossing_tube_end.png", + "pipeworks_crossing_tube_end.png", "pipeworks_crossing_tube_end.png", "pipeworks_crossing_tube_end.png"} + local crossing_short_texture = "pipeworks_crossing_tube_short.png" + local crossing_inv_texture = "pipeworks_crossing_tube_inv.png" + + pipeworks.register_tube("pipeworks:crossing_tube", "Crossing Pneumatic Tube Segment", crossing_plain_textures, + crossing_noctr_textures, crossing_end_textures, crossing_short_texture, crossing_inv_texture, + {tube = {can_go = function(pos, node, velocity, stack) + return {velocity} + end} + }) +end + +if pipeworks.enable_sand_tube then + local sand_noctr_textures = {"pipeworks_sand_tube_noctr.png", "pipeworks_sand_tube_noctr.png", "pipeworks_sand_tube_noctr.png", + "pipeworks_sand_tube_noctr.png", "pipeworks_sand_tube_noctr.png", "pipeworks_sand_tube_noctr.png"} + local sand_plain_textures = {"pipeworks_sand_tube_plain.png", "pipeworks_sand_tube_plain.png", "pipeworks_sand_tube_plain.png", + "pipeworks_sand_tube_plain.png", "pipeworks_sand_tube_plain.png", "pipeworks_sand_tube_plain.png"} + local sand_end_textures = {"pipeworks_sand_tube_end.png", "pipeworks_sand_tube_end.png", "pipeworks_sand_tube_end.png", + "pipeworks_sand_tube_end.png", "pipeworks_sand_tube_end.png", "pipeworks_sand_tube_end.png"} + local sand_short_texture = "pipeworks_sand_tube_short.png" + local sand_inv_texture = "pipeworks_sand_tube_inv.png" + + pipeworks.register_tube("pipeworks:sand_tube", "Vacuuming Pneumatic Tube Segment", sand_plain_textures, sand_noctr_textures, sand_end_textures, + sand_short_texture, sand_inv_texture, + {groups = {sand_tube = 1}}) + + minetest.register_abm({nodenames = {"group:sand_tube"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + for _, object in ipairs(minetest.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().itemstring ~= "" then + pipeworks.tube_inject_item(pos, pos, vector.new(0, 0, 0), object:get_luaentity().itemstring) + end + object:get_luaentity().itemstring = "" + object:remove() + end + end + end + }) +end + +if pipeworks.enable_mese_sand_tube then + local mese_sand_noctr_textures = {"pipeworks_mese_sand_tube_noctr.png", "pipeworks_mese_sand_tube_noctr.png", "pipeworks_mese_sand_tube_noctr.png", + "pipeworks_mese_sand_tube_noctr.png", "pipeworks_mese_sand_tube_noctr.png", "pipeworks_mese_sand_tube_noctr.png"} + local mese_sand_plain_textures = {"pipeworks_mese_sand_tube_plain.png", "pipeworks_mese_sand_tube_plain.png", "pipeworks_mese_sand_tube_plain.png", + "pipeworks_mese_sand_tube_plain.png", "pipeworks_mese_sand_tube_plain.png", "pipeworks_mese_sand_tube_plain.png"} + local mese_sand_end_textures = {"pipeworks_mese_sand_tube_end.png", "pipeworks_mese_sand_tube_end.png", "pipeworks_mese_sand_tube_end.png", + "pipeworks_mese_sand_tube_end.png", "pipeworks_mese_sand_tube_end.png", "pipeworks_mese_sand_tube_end.png"} + local mese_sand_short_texture = "pipeworks_mese_sand_tube_short.png" + local mese_sand_inv_texture = "pipeworks_mese_sand_tube_inv.png" + + pipeworks.register_tube("pipeworks:mese_sand_tube", "Adjustable Vacuuming Pneumatic Tube Segment", mese_sand_plain_textures, mese_sand_noctr_textures, + mese_sand_end_textures, mese_sand_short_texture,mese_sand_inv_texture, + {groups = {mese_sand_tube = 1}, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("dist", 0) + meta:set_string("formspec", + "size[2,1]".. + "field[.5,.5;1.5,1;dist;distance;${dist}]") + meta:set_string("infotext", "Adjustable Vacuuming Pneumatic Tube Segment") + end, + on_receive_fields = function(pos,formname,fields,sender) + local meta = minetest.get_meta(pos) + local dist + _, dist = pcall(tonumber, fields.dist) + if dist and 0 <= dist and dist <= 8 then meta:set_int("dist", dist) end + end, + }) + + local function get_objects_with_square_radius(pos, rad) + rad = rad + .5; + local objs = {} + for _,object in ipairs(minetest.get_objects_inside_radius(pos, math.sqrt(3)*rad)) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then + local opos = object:getpos() + if pos.x - rad <= opos.x and opos.x <= pos.x + rad and pos.y - rad <= opos.y and opos.y <= pos.y + rad and pos.z - rad <= opos.z and opos.z <= pos.z + rad then + objs[#objs + 1] = object + end + end + end + return objs + end + + minetest.register_abm({nodenames = {"group:mese_sand_tube"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + for _,object in ipairs(get_objects_with_square_radius(pos, minetest.get_meta(pos):get_int("dist"))) do + if not object:is_player() and object:get_luaentity() and object:get_luaentity().name == "__builtin:item" then + if object:get_luaentity().itemstring ~= "" then + pipeworks.tube_inject_item(pos, pos, vector.new(0, 0, 0), object:get_luaentity().itemstring) + end + object:get_luaentity().itemstring = "" + object:remove() + end + end + end + }) +end + +if pipeworks.enable_one_way_tube then + minetest.register_node("pipeworks:one_way_tube", { + description = "One way tube", + tiles = {"pipeworks_one_way_tube_top.png", "pipeworks_one_way_tube_top.png", "pipeworks_one_way_tube_output.png", + "pipeworks_one_way_tube_input.png", "pipeworks_one_way_tube_side.png", "pipeworks_one_way_tube_top.png"}, + paramtype2 = "facedir", + drawtype = "nodebox", + paramtype = "light", + node_box = {type = "fixed", + fixed = {{-1/2, -9/64, -9/64, 1/2, 9/64, 9/64}}}, + groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, tubedevice = 1}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + tube = { + connect_sides = {left = 1, right = 1}, + can_go = function(pos, node, velocity, stack) + return {velocity} + end, + can_insert = function(pos, node, stack, direction) + local dir = minetest.facedir_to_right_dir(node.param2) + return vector.equals(dir, direction) + end, + priority = 75 -- Higher than normal tubes, but lower than receivers + }, + }) +end diff --git a/mods/pipeworks/wielder.lua b/mods/pipeworks/wielder.lua new file mode 100644 index 0000000..532c792 --- /dev/null +++ b/mods/pipeworks/wielder.lua @@ -0,0 +1,423 @@ +local assumed_eye_pos = vector.new(0, 1.5, 0) + +local function vector_copy(v) + return { x = v.x, y = v.y, z = v.z } +end + +local function delay(x) + return (function() return x end) +end + +local function set_wielder_formspec(data, meta) + meta:set_string("formspec", + "invsize[8,"..(6+data.wield_inv_height)..";]".. + "item_image[0,0;1,1;"..data.name_base.."_off]".. + "label[1,0;"..minetest.formspec_escape(data.description).."]".. + "list[current_name;"..minetest.formspec_escape(data.wield_inv_name)..";"..((8-data.wield_inv_width)*0.5)..",1;"..data.wield_inv_width..","..data.wield_inv_height..";]".. + "list[current_player;main;0,"..(2+data.wield_inv_height)..";8,4;]") + meta:set_string("infotext", data.description) +end + +local function wielder_on(data, wielder_pos, wielder_node) + data.fixup_node(wielder_pos, wielder_node) + if wielder_node.name ~= data.name_base.."_off" then return end + wielder_node.name = data.name_base.."_on" + minetest.swap_node(wielder_pos, wielder_node) + nodeupdate(wielder_pos) + local wielder_meta = minetest.get_meta(wielder_pos) + local inv = wielder_meta:get_inventory() + local wield_inv_name = data.wield_inv_name + local wieldindex, wieldstack + for i, stack in ipairs(inv:get_list(wield_inv_name)) do + if not stack:is_empty() then + wieldindex = i + wieldstack = stack + break + end + end + if not wieldindex then + if not data.ghost_inv_name then return end + wield_inv_name = data.ghost_inv_name + inv:set_stack(wield_inv_name, 1, ItemStack(data.ghost_tool)) + wieldindex = 1 + wieldstack = inv:get_stack(wield_inv_name, 1) + end + local dir = minetest.facedir_to_dir(wielder_node.param2) + local under_pos = vector.subtract(wielder_pos, dir) + local above_pos = vector.subtract(under_pos, dir) + local pitch + local yaw + if dir.z < 0 then + yaw = 0 + pitch = 0 + elseif dir.z > 0 then + yaw = math.pi + pitch = 0 + elseif dir.x < 0 then + yaw = 3*math.pi/2 + pitch = 0 + elseif dir.x > 0 then + yaw = math.pi/2 + pitch = 0 + elseif dir.y > 0 then + yaw = 0 + pitch = -math.pi/2 + else + yaw = 0 + pitch = math.pi/2 + end + local virtplayer = { + get_inventory_formspec = delay(wielder_meta:get_string("formspec")), + get_look_dir = delay(vector.multiply(dir, -1)), + get_look_pitch = delay(pitch), + get_look_yaw = delay(yaw), + get_player_control = delay({ jump=false, right=false, left=false, LMB=false, RMB=false, sneak=data.sneak, aux1=false, down=false, up=false }), + get_player_control_bits = delay(data.sneak and 64 or 0), + get_player_name = delay(data.masquerade_as_owner and wielder_meta:get_string("owner") or ":pipeworks:"..minetest.pos_to_string(wielder_pos)), + is_player = delay(true), + is_fake_player = true, + set_inventory_formspec = delay(), + getpos = delay(vector.subtract(wielder_pos, assumed_eye_pos)), + get_hp = delay(20), + get_inventory = delay(inv), + get_wielded_item = delay(wieldstack), + get_wield_index = delay(wieldindex), + get_wield_list = delay(wield_inv_name), + moveto = delay(), + punch = delay(), + remove = delay(), + right_click = delay(), + setpos = delay(), + set_hp = delay(), + set_properties = delay(), + set_wielded_item = function(self, item) inv:set_stack(wield_inv_name, wieldindex, item) end, + set_animation = delay(), + set_attach = delay(), + set_detach = delay(), + set_bone_position = delay(), + } + local pointed_thing = { type="node", under=under_pos, above=above_pos } + data.act(virtplayer, pointed_thing) + if data.eject_drops then + for i, stack in ipairs(inv:get_list("main")) do + if not stack:is_empty() then + pipeworks.tube_inject_item(wielder_pos, wielder_pos, dir, stack) + inv:set_stack("main", i, ItemStack("")) + end + end + end +end + +local function wielder_off(data, pos, node) + if node.name == data.name_base.."_on" then + node.name = data.name_base.."_off" + minetest.swap_node(pos, node) + nodeupdate(pos) + end +end + +local function register_wielder(data) + data.fixup_node = data.fixup_node or function (pos, node) end + data.fixup_oldmetadata = data.fixup_oldmetadata or function (m) return m end + for _, state in ipairs({ "off", "on" }) do + local groups = { snappy=2, choppy=2, oddly_breakable_by_hand=2, mesecon=2, tubedevice=1, tubedevice_receiver=1 } + if state == "on" then groups.not_in_creative_inventory = 1 end + local tile_images = {} + for _, face in ipairs({ "top", "bottom", "side2", "side1", "back", "front" }) do + table.insert(tile_images, data.texture_base.."_"..face..(data.texture_stateful[face] and "_"..state or "")..".png") + end + minetest.register_node(data.name_base.."_"..state, { + description = data.description, + tile_images = tile_images, + mesecons = { + effector = { + rules = pipeworks.rules_all, + action_on = function (pos, node) + wielder_on(data, pos, node) + end, + action_off = function (pos, node) + wielder_off(data, pos, node) + end, + }, + }, + tube = { + can_insert = function(pos, node, stack, tubedir) + if not data.tube_permit_anteroposterior_insert then + local nodedir = minetest.facedir_to_dir(node.param2) + if vector.equals(tubedir, nodedir) or vector.equals(tubedir, vector.multiply(nodedir, -1)) then + return false + end + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:room_for_item(data.wield_inv_name, stack) + end, + insert_object = function(pos, node, stack, tubedir) + if not data.tube_permit_anteroposterior_insert then + local nodedir = minetest.facedir_to_dir(node.param2) + if vector.equals(tubedir, nodedir) or vector.equals(tubedir, vector.multiply(nodedir, -1)) then + return stack + end + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:add_item(data.wield_inv_name, stack) + end, + input_inventory = data.wield_inv_name, + connect_sides = data.tube_connect_sides, + can_remove = function(pos, node, stack, tubedir) + return stack:get_count() + end, + }, + is_ground_content = true, + paramtype2 = "facedir", + tubelike = 1, + groups = groups, + sounds = default.node_sound_stone_defaults(), + drop = data.name_base.."_off", + on_construct = function(pos) + local meta = minetest.get_meta(pos) + set_wielder_formspec(data, meta) + local inv = meta:get_inventory() + inv:set_size(data.wield_inv_name, data.wield_inv_width*data.wield_inv_height) + if data.ghost_inv_name then + inv:set_size(data.ghost_inv_name, 1) + end + if data.eject_drops then + inv:set_size("main", 100) + end + end, + after_place_node = function (pos, placer) + pipeworks.scan_for_tube_objects(pos) + local placer_pos = placer:getpos() + if placer_pos and placer:is_player() then placer_pos = vector.add(placer_pos, assumed_eye_pos) end + if placer_pos then + local dir = vector.subtract(pos, placer_pos) + local node = minetest.get_node(pos) + node.param2 = minetest.dir_to_facedir(dir, true) + minetest.set_node(pos, node) + minetest.log("action", "real (6d) facedir: " .. node.param2) + end + minetest.get_meta(pos):set_string("owner", placer:get_player_name()) + end, + can_dig = (data.can_dig_nonempty_wield_inv and delay(true) or function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:is_empty(data.wield_inv_name) + end), + after_dig_node = function(pos, oldnode, oldmetadata, digger) + -- The legacy-node fixup is done here in a + -- different form from the standard fixup, + -- rather than relying on a standard fixup + -- in an on_dig callback, because some + -- non-standard diggers (such as technic's + -- mining drill) don't respect on_dig. + oldmetadata = data.fixup_oldmetadata(oldmetadata) + for _, stack in ipairs(oldmetadata.inventory[data.wield_inv_name] or {}) do + if not stack:is_empty() then + minetest.add_item(pos, stack) + end + end + pipeworks.scan_for_tube_objects(pos) + end, + on_punch = data.fixup_node, + 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") and meta:get_string("owner") ~= "" then + return 0 + end + return count + end, + 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") and meta:get_string("owner") ~= "" then + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if player:get_player_name() ~= meta:get_string("owner") and meta:get_string("owner") ~= "" then + return 0 + end + return stack:get_count() + end, + }) + end +end + +if pipeworks.enable_node_breaker then + local data + data = { + name_base = "pipeworks:nodebreaker", + description = "Node Breaker", + texture_base = "pipeworks_nodebreaker", + texture_stateful = { top = true, bottom = true, side2 = true, side1 = true, front = true }, + tube_connect_sides = { top=1, bottom=1, left=1, right=1, back=1 }, + tube_permit_anteroposterior_insert = false, + wield_inv_name = "pick", + wield_inv_width = 1, + wield_inv_height = 1, + can_dig_nonempty_wield_inv = true, + ghost_inv_name = "ghost_pick", + ghost_tool = "default:pick_mese", + fixup_node = function (pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + -- Node breakers predating the visible pick slot + -- may have been partially updated. This code + -- fully updates them. Some have been observed + -- to have no pick slot at all; first add one. + if inv:get_size("pick") ~= 1 then + inv:set_size("pick", 1) + end + -- Originally, they had a ghost pick in a "pick" + -- inventory, no other inventory, and no form. + -- The partial update of early with-form node + -- breaker code gives them "ghost_pick" and "main" + -- inventories, but leaves the old ghost pick in + -- the "pick" inventory, and doesn't add a form. + -- First perform that partial update. + if inv:get_size("ghost_pick") ~= 1 then + inv:set_size("ghost_pick", 1) + inv:set_size("main", 100) + end + -- If the node breaker predates the visible pick + -- slot, which we can detect by it not having a + -- form, then the pick slot needs to be cleared + -- of the old ghost pick. + if (meta:get_string("formspec") or "") == "" then + inv:set_stack("pick", 1, ItemStack("")) + end + -- Finally, unconditionally set the formspec + -- and infotext. This not only makes the + -- pick slot visible for node breakers where + -- it wasn't before; it also updates the form + -- for node breakers that had an older version + -- of the form, and sets infotext where it was + -- missing for early with-form node breakers. + set_wielder_formspec(data, meta) + end, + fixup_oldmetadata = function (oldmetadata) + -- Node breakers predating the visible pick slot, + -- with node form, kept their ghost pick in an + -- inventory named "pick", the same name as the + -- later visible pick slot. The pick must be + -- removed to avoid spilling it. + if not oldmetadata.fields.formspec then + return { inventory = { pick = {} }, fields = oldmetadata.fields } + else + return oldmetadata + end + end, + masquerade_as_owner = true, + sneak = false, + act = function(virtplayer, pointed_thing) + local wieldstack = virtplayer:get_wielded_item() + local oldwieldstack = ItemStack(wieldstack) + local on_use = (minetest.registered_items[wieldstack:get_name()] or {}).on_use + if on_use then + virtplayer:set_wielded_item(on_use(wieldstack, virtplayer, pointed_thing) or wieldstack) + else + local under_node = minetest.get_node(pointed_thing.under) + local on_dig = (minetest.registered_nodes[under_node.name] or {on_dig=minetest.node_dig}).on_dig + on_dig(pointed_thing.under, under_node, virtplayer) + end + wieldstack = virtplayer:get_wielded_item() + local wieldname = wieldstack:get_name() + if wieldname == oldwieldstack:get_name() then + -- don't mechanically wear out tool + if wieldstack:get_count() == oldwieldstack:get_count() and + wieldstack:get_metadata() == oldwieldstack:get_metadata() and + ((minetest.registered_items[wieldstack:get_name()] or {}).wear_represents or "mechanical_wear") == "mechanical_wear" then + virtplayer:set_wielded_item(oldwieldstack) + end + elseif wieldname ~= "" then + -- tool got replaced by something else: + -- treat it as a drop + virtplayer:get_inventory():add_item("main", wieldstack) + virtplayer:set_wielded_item(ItemStack("")) + end + end, + eject_drops = true, + } + register_wielder(data) + minetest.register_craft({ + output = "pipeworks:nodebreaker_off", + recipe = { + { "default:mese", "default:mese", "default:mese" }, + { "default:mese", "", "default:mese" }, + { "default:mese", "default:mese", "default:mese" }, + } + }) + -- aliases for when someone had technic installed, but then uninstalled it but not pipeworks + minetest.register_alias("technic:nodebreaker_off", "pipeworks:nodebreaker_off") + minetest.register_alias("technic:nodebreaker_on", "pipeworks:nodebreaker_on") + minetest.register_alias("technic:node_breaker_off", "pipeworks:nodebreaker_off") + minetest.register_alias("technic:node_breaker_on", "pipeworks:nodebreaker_on") + -- turn legacy auto-tree-taps into node breakers + dofile(pipeworks.modpath.."/legacy.lua") +end + +if pipeworks.enable_deployer then + register_wielder({ + name_base = "pipeworks:deployer", + description = "Deployer", + texture_base = "pipeworks_deployer", + texture_stateful = { front = true }, + tube_connect_sides = { back=1 }, + tube_permit_anteroposterior_insert = true, + wield_inv_name = "main", + wield_inv_width = 3, + wield_inv_height = 3, + can_dig_nonempty_wield_inv = false, + masquerade_as_owner = true, + sneak = false, + act = function(virtplayer, pointed_thing) + local wieldstack = virtplayer:get_wielded_item() + virtplayer:set_wielded_item((minetest.registered_items[wieldstack:get_name()] or {on_place=minetest.item_place}).on_place(wieldstack, virtplayer, pointed_thing) or wieldstack) + end, + eject_drops = false, + }) + minetest.register_craft({ + output = "pipeworks:deployer_off", + recipe = { + { "group:wood", "default:chest", "group:wood" }, + { "default:stone", "mesecons:piston", "default:stone" }, + { "default:stone", "mesecons:mesecon", "default:stone" }, + } + }) + -- aliases for when someone had technic installed, but then uninstalled it but not pipeworks + minetest.register_alias("technic:deployer_off", "pipeworks:deployer_off") + minetest.register_alias("technic:deployer_on", "pipeworks:deployer_on") +end + +if pipeworks.enable_dispenser then + register_wielder({ + name_base = "pipeworks:dispenser", + description = "Dispenser", + texture_base = "pipeworks_dispenser", + texture_stateful = { front = true }, + tube_connect_sides = { back=1 }, + tube_permit_anteroposterior_insert = true, + wield_inv_name = "main", + wield_inv_width = 3, + wield_inv_height = 3, + can_dig_nonempty_wield_inv = false, + masquerade_as_owner = false, + sneak = true, + act = function(virtplayer, pointed_thing) + local wieldstack = virtplayer:get_wielded_item() + virtplayer:set_wielded_item((minetest.registered_items[wieldstack:get_name()] or {on_drop=minetest.item_drop}).on_drop(wieldstack, virtplayer, virtplayer:getpos()) or wieldstack) + end, + eject_drops = false, + }) + minetest.register_craft({ + output = "pipeworks:dispenser_off", + recipe = { + { "default:desert_sand", "default:chest", "default:desert_sand" }, + { "default:stone", "mesecons:piston", "default:stone" }, + { "default:stone", "mesecons:mesecon", "default:stone" }, + } + }) +end diff --git a/mods/pipeworks/wielder.lua~ b/mods/pipeworks/wielder.lua~ new file mode 100644 index 0000000..cdd93ca --- /dev/null +++ b/mods/pipeworks/wielder.lua~ @@ -0,0 +1,423 @@ +local assumed_eye_pos = vector.new(0, 1.5, 0) + +local function vector_copy(v) + return { x = v.x, y = v.y, z = v.z } +end + +local function delay(x) + return (function() return x end) +end + +local function set_wielder_formspec(data, meta) + meta:set_string("formspec", + "invsize[8,"..(6+data.wield_inv_height)..";]".. + "item_image[0,0;1,1;"..data.name_base.."_off]".. + "label[1,0;"..minetest.formspec_escape(data.description).."]".. + "list[current_name;"..minetest.formspec_escape(data.wield_inv_name)..";"..((8-data.wield_inv_width)*0.5)..",1;"..data.wield_inv_width..","..data.wield_inv_height..";]".. + "list[current_player;main;0,"..(2+data.wield_inv_height)..";8,4;]") + meta:set_string("infotext", data.description) +end + +local function wielder_on(data, wielder_pos, wielder_node) + data.fixup_node(wielder_pos, wielder_node) + if wielder_node.name ~= data.name_base.."_off" then return end + wielder_node.name = data.name_base.."_on" + minetest.swap_node(wielder_pos, wielder_node) + nodeupdate(wielder_pos) + local wielder_meta = minetest.get_meta(wielder_pos) + local inv = wielder_meta:get_inventory() + local wield_inv_name = data.wield_inv_name + local wieldindex, wieldstack + for i, stack in ipairs(inv:get_list(wield_inv_name)) do + if not stack:is_empty() then + wieldindex = i + wieldstack = stack + break + end + end + if not wieldindex then + if not data.ghost_inv_name then return end + wield_inv_name = data.ghost_inv_name + inv:set_stack(wield_inv_name, 1, ItemStack(data.ghost_tool)) + wieldindex = 1 + wieldstack = inv:get_stack(wield_inv_name, 1) + end + local dir = minetest.facedir_to_dir(wielder_node.param2) + local under_pos = vector.subtract(wielder_pos, dir) + local above_pos = vector.subtract(under_pos, dir) + local pitch + local yaw + if dir.z < 0 then + yaw = 0 + pitch = 0 + elseif dir.z > 0 then + yaw = math.pi + pitch = 0 + elseif dir.x < 0 then + yaw = 3*math.pi/2 + pitch = 0 + elseif dir.x > 0 then + yaw = math.pi/2 + pitch = 0 + elseif dir.y > 0 then + yaw = 0 + pitch = -math.pi/2 + else + yaw = 0 + pitch = math.pi/2 + end + local virtplayer = { + get_inventory_formspec = delay(wielder_meta:get_string("formspec")), + get_look_dir = delay(vector.multiply(dir, -1)), + get_look_pitch = delay(pitch), + get_look_yaw = delay(yaw), + get_player_control = delay({ jump=false, right=false, left=false, LMB=false, RMB=false, sneak=data.sneak, aux1=false, down=false, up=false }), + get_player_control_bits = delay(data.sneak and 64 or 0), + get_player_name = delay(data.masquerade_as_owner and wielder_meta:get_string("owner") or ":pipeworks:"..minetest.pos_to_string(wielder_pos)), + is_player = delay(true), + is_fake_player = true, + set_inventory_formspec = delay(), + getpos = delay(vector.subtract(wielder_pos, assumed_eye_pos)), + get_hp = delay(20), + get_inventory = delay(inv), + get_wielded_item = delay(wieldstack), + get_wield_index = delay(wieldindex), + get_wield_list = delay(wield_inv_name), + moveto = delay(), + punch = delay(), + remove = delay(), + right_click = delay(), + setpos = delay(), + set_hp = delay(), + set_properties = delay(), + set_wielded_item = function(self, item) inv:set_stack(wield_inv_name, wieldindex, item) end, + set_animation = delay(), + set_attach = delay(), + set_detach = delay(), + set_bone_position = delay(), + } + local pointed_thing = { type="node", under=under_pos, above=above_pos } + data.act(virtplayer, pointed_thing) + if data.eject_drops then + for i, stack in ipairs(inv:get_list("main")) do + if not stack:is_empty() then + pipeworks.tube_inject_item(wielder_pos, wielder_pos, dir, stack) + inv:set_stack("main", i, ItemStack("")) + end + end + end +end + +local function wielder_off(data, pos, node) + if node.name == data.name_base.."_on" then + node.name = data.name_base.."_off" + minetest.swap_node(pos, node) + nodeupdate(pos) + end +end + +local function register_wielder(data) + data.fixup_node = data.fixup_node or function (pos, node) end + data.fixup_oldmetadata = data.fixup_oldmetadata or function (m) return m end + for _, state in ipairs({ "off", "on" }) do + local groups = { snappy=2, choppy=2, oddly_breakable_by_hand=2, mesecon=2, tubedevice=1, tubedevice_receiver=1 } + if state == "on" then groups.not_in_creative_inventory = 1 end + local tile_images = {} + for _, face in ipairs({ "top", "bottom", "side2", "side1", "back", "front" }) do + table.insert(tile_images, data.texture_base.."_"..face..(data.texture_stateful[face] and "_"..state or "")..".png") + end + minetest.register_node(data.name_base.."_"..state, { + description = data.description, + tile_images = tile_images, + mesecons = { + effector = { + rules = pipeworks.rules_all, + action_on = function (pos, node) + wielder_on(data, pos, node) + end, + action_off = function (pos, node) + wielder_off(data, pos, node) + end, + }, + }, + tube = { + can_insert = function(pos, node, stack, tubedir) + if not data.tube_permit_anteroposterior_insert then + local nodedir = minetest.facedir_to_dir(node.param2) + if vector.equals(tubedir, nodedir) or vector.equals(tubedir, vector.multiply(nodedir, -1)) then + return false + end + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:room_for_item(data.wield_inv_name, stack) + end, + insert_object = function(pos, node, stack, tubedir) + if not data.tube_permit_anteroposterior_insert then + local nodedir = minetest.facedir_to_dir(node.param2) + if vector.equals(tubedir, nodedir) or vector.equals(tubedir, vector.multiply(nodedir, -1)) then + return stack + end + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:add_item(data.wield_inv_name, stack) + end, + input_inventory = data.wield_inv_name, + connect_sides = data.tube_connect_sides, + can_remove = function(pos, node, stack, tubedir) + return stack:get_count() + end, + }, + is_ground_content = true, + paramtype2 = "facedir", + tubelike = 1, + groups = groups, + sounds = default.node_sound_stone_defaults(), + drop = data.name_base.."_off", + on_construct = function(pos) + local meta = minetest.get_meta(pos) + set_wielder_formspec(data, meta) + local inv = meta:get_inventory() + inv:set_size(data.wield_inv_name, data.wield_inv_width*data.wield_inv_height) + if data.ghost_inv_name then + inv:set_size(data.ghost_inv_name, 1) + end + if data.eject_drops then + inv:set_size("main", 100) + end + end, + after_place_node = function (pos, placer) + pipeworks.scan_for_tube_objects(pos) + local placer_pos = placer:getpos() + if placer_pos and placer:is_player() then placer_pos = vector.add(placer_pos, assumed_eye_pos) end + if placer_pos then + local dir = vector.subtract(pos, placer_pos) + local node = minetest.get_node(pos) + node.param2 = minetest.dir_to_facedir(dir, true) + minetest.set_node(pos, node) + minetest.log("action", "real (6d) facedir: " .. node.param2) + end + minetest.get_meta(pos):set_string("owner", placer:get_player_name()) + end, + can_dig = (data.can_dig_nonempty_wield_inv and delay(true) or function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:is_empty(data.wield_inv_name) + end), + after_dig_node = function(pos, oldnode, oldmetadata, digger) + -- The legacy-node fixup is done here in a + -- different form from the standard fixup, + -- rather than relying on a standard fixup + -- in an on_dig callback, because some + -- non-standard diggers (such as technic's + -- mining drill) don't respect on_dig. + oldmetadata = data.fixup_oldmetadata(oldmetadata) + for _, stack in ipairs(oldmetadata.inventory[data.wield_inv_name] or {}) do + if not stack:is_empty() then + minetest.add_item(pos, stack) + end + end + pipeworks.scan_for_tube_objects(pos) + end, + on_punch = data.fixup_node, + 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") and meta:get_string("owner") ~= "" then + return 0 + end + return count + end, + 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") and meta:get_string("owner") ~= "" then + return 0 + end + return stack:get_count() + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + if player:get_player_name() ~= meta:get_string("owner") and meta:get_string("owner") ~= "" then + return 0 + end + return stack:get_count() + end, + }) + end +end + +if pipeworks.enable_node_breaker then + local data + data = { + name_base = "pipeworks:nodebreaker", + description = "Node Breaker", + texture_base = "pipeworks_nodebreaker", + texture_stateful = { top = true, bottom = true, side2 = true, side1 = true, front = true }, + tube_connect_sides = { top=1, bottom=1, left=1, right=1, back=1 }, + tube_permit_anteroposterior_insert = false, + wield_inv_name = "pick", + wield_inv_width = 1, + wield_inv_height = 1, + can_dig_nonempty_wield_inv = true, + ghost_inv_name = "ghost_pick", + ghost_tool = "default:pick_mese", + fixup_node = function (pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + -- Node breakers predating the visible pick slot + -- may have been partially updated. This code + -- fully updates them. Some have been observed + -- to have no pick slot at all; first add one. + if inv:get_size("pick") ~= 1 then + inv:set_size("pick", 1) + end + -- Originally, they had a ghost pick in a "pick" + -- inventory, no other inventory, and no form. + -- The partial update of early with-form node + -- breaker code gives them "ghost_pick" and "main" + -- inventories, but leaves the old ghost pick in + -- the "pick" inventory, and doesn't add a form. + -- First perform that partial update. + if inv:get_size("ghost_pick") ~= 1 then + inv:set_size("ghost_pick", 1) + inv:set_size("main", 100) + end + -- If the node breaker predates the visible pick + -- slot, which we can detect by it not having a + -- form, then the pick slot needs to be cleared + -- of the old ghost pick. + if (meta:get_string("formspec") or "") == "" then + inv:set_stack("pick", 1, ItemStack("")) + end + -- Finally, unconditionally set the formspec + -- and infotext. This not only makes the + -- pick slot visible for node breakers where + -- it wasn't before; it also updates the form + -- for node breakers that had an older version + -- of the form, and sets infotext where it was + -- missing for early with-form node breakers. + set_wielder_formspec(data, meta) + end, + fixup_oldmetadata = function (oldmetadata) + -- Node breakers predating the visible pick slot, + -- with node form, kept their ghost pick in an + -- inventory named "pick", the same name as the + -- later visible pick slot. The pick must be + -- removed to avoid spilling it. + if not oldmetadata.fields.formspec then + return { inventory = { pick = {} }, fields = oldmetadata.fields } + else + return oldmetadata + end + end, + masquerade_as_owner = true, + sneak = false, + act = function(virtplayer, pointed_thing) + local wieldstack = virtplayer:get_wielded_item() + local oldwieldstack = ItemStack(wieldstack) + local on_use = (minetest.registered_items[wieldstack:get_name()] or {}).on_use + if on_use then + virtplayer:set_wielded_item(on_use(wieldstack, virtplayer, pointed_thing) or wieldstack) + else + local under_node = minetest.get_node(pointed_thing.under) + local on_dig = (minetest.registered_nodes[under_node.name] or {on_dig=minetest.node_dig}).on_dig + on_dig(pointed_thing.under, under_node, virtplayer) + end + wieldstack = virtplayer:get_wielded_item() + local wieldname = wieldstack:get_name() + if wieldname == oldwieldstack:get_name() then + -- don't mechanically wear out tool + if wieldstack:get_count() == oldwieldstack:get_count() and + wieldstack:get_metadata() == oldwieldstack:get_metadata() and + ((minetest.registered_items[wieldstack:get_name()] or {}).wear_represents or "mechanical_wear") == "mechanical_wear" then + virtplayer:set_wielded_item(oldwieldstack) + end + elseif wieldname ~= "" then + -- tool got replaced by something else: + -- treat it as a drop + virtplayer:get_inventory():add_item("main", wieldstack) + virtplayer:set_wielded_item(ItemStack("")) + end + end, + eject_drops = true, + } + register_wielder(data) + minetest.register_craft({ + output = "pipeworks:nodebreaker_off", + recipe = { + { "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" }, + { "gems:pearl_gem", "", "gems:pearl_gem" }, + { "gems:pearl_gem", "gems:pearl_gem", "gems:pearl_gem" }, + } + }) + -- aliases for when someone had technic installed, but then uninstalled it but not pipeworks + minetest.register_alias("technic:nodebreaker_off", "pipeworks:nodebreaker_off") + minetest.register_alias("technic:nodebreaker_on", "pipeworks:nodebreaker_on") + minetest.register_alias("technic:node_breaker_off", "pipeworks:nodebreaker_off") + minetest.register_alias("technic:node_breaker_on", "pipeworks:nodebreaker_on") + -- turn legacy auto-tree-taps into node breakers + dofile(pipeworks.modpath.."/legacy.lua") +end + +if pipeworks.enable_deployer then + register_wielder({ + name_base = "pipeworks:deployer", + description = "Deployer", + texture_base = "pipeworks_deployer", + texture_stateful = { front = true }, + tube_connect_sides = { back=1 }, + tube_permit_anteroposterior_insert = true, + wield_inv_name = "main", + wield_inv_width = 3, + wield_inv_height = 3, + can_dig_nonempty_wield_inv = false, + masquerade_as_owner = true, + sneak = false, + act = function(virtplayer, pointed_thing) + local wieldstack = virtplayer:get_wielded_item() + virtplayer:set_wielded_item((minetest.registered_items[wieldstack:get_name()] or {on_place=minetest.item_place}).on_place(wieldstack, virtplayer, pointed_thing) or wieldstack) + end, + eject_drops = false, + }) + minetest.register_craft({ + output = "pipeworks:deployer_off", + recipe = { + { "group:wood", "default:chest", "group:wood" }, + { "default:stone", "mesecons:piston", "default:stone" }, + { "default:stone", "mesecons:mesecon", "default:stone" }, + } + }) + -- aliases for when someone had technic installed, but then uninstalled it but not pipeworks + minetest.register_alias("technic:deployer_off", "pipeworks:deployer_off") + minetest.register_alias("technic:deployer_on", "pipeworks:deployer_on") +end + +if pipeworks.enable_dispenser then + register_wielder({ + name_base = "pipeworks:dispenser", + description = "Dispenser", + texture_base = "pipeworks_dispenser", + texture_stateful = { front = true }, + tube_connect_sides = { back=1 }, + tube_permit_anteroposterior_insert = true, + wield_inv_name = "main", + wield_inv_width = 3, + wield_inv_height = 3, + can_dig_nonempty_wield_inv = false, + masquerade_as_owner = false, + sneak = true, + act = function(virtplayer, pointed_thing) + local wieldstack = virtplayer:get_wielded_item() + virtplayer:set_wielded_item((minetest.registered_items[wieldstack:get_name()] or {on_drop=minetest.item_drop}).on_drop(wieldstack, virtplayer, virtplayer:getpos()) or wieldstack) + end, + eject_drops = false, + }) + minetest.register_craft({ + output = "pipeworks:dispenser_off", + recipe = { + { "default:desert_sand", "default:chest", "default:desert_sand" }, + { "default:stone", "mesecons:piston", "default:stone" }, + { "default:stone", "mesecons:mesecon", "default:stone" }, + } + }) +end diff --git a/mods/protector/README.md b/mods/protector/README.md new file mode 100644 index 0000000..2e53f92 --- /dev/null +++ b/mods/protector/README.md @@ -0,0 +1,55 @@ +Protector Redo mod [protect] + +Protector redo for minetest is a mod that protects a players builds by placing +a block that stops other players from digging or placing blocks in that area. + +based on glomie's mod, remade by Zeg9 and reworked by TenPlus1. + +https://forum.minetest.net/viewtopic.php?f=11&t=9376 + +Released under WTFPL + +0.1 - Initial release +0.2 - Texture update +0.3 - Added Protection Logo to blend in with player builds +0.4 - Code tweak for 0.4.10+ +0.5 - Added protector.radius variable in init.lua (default: 5) +0.6 - Added Protected Doors (wood and steel) and Protected Chest +0.7 - Protected Chests now have "To Chest" and "To Inventory" buttons to copy + contents across, also chests can be named +0.8 - Updated to work with Minetest 0.4.12, simplified textures +0.9 - Tweaked code +1.0 - Only owner can remove protector +1.1 - Set 'protector_pvp = true' in minetest.conf to disable pvp in protected + areas except your own, also setting protector_pvp_spawn higher than 0 will + disable pvp around spawn area with the radius you entered +1.2 - Shift and click support added with Minetest 0.4.13 to quickly copy stacks + to and from protected chest +1.3 - Moved protector on_place into node itself, protector zone display changed + from 10 to 5 seconds, general code tidy +1.4 - Changed protector recipes to give single item instead of 4, added + button + to interface, tweaked and tidied code, added admin command /delprot to remove + protectors in bulk from banned/old players +1.5 - Added much requested protected trapdoor +1.6 - Added protector_drop (true or false) and protector_hurt (hurt by this num) + variables to minetest.conf settings to stop players breaking protected + areas by dropping tools and hurting player. +1.7 - Included an edited version of WTFPL doors mod since protected doors didn't + work with the doors mod in the latest daily build... Now it's fine :) + +Usage: (requires server privelage) + +list names to remove + + /delprot + +remove specific user names + + /delprot name1 name2 + +remove all names from list + + /delprot - + +Whenever a player is near any protectors with name1 or name2 then it will be +replaced by an air block. \ No newline at end of file diff --git a/mods/protector/admin.lua b/mods/protector/admin.lua new file mode 100644 index 0000000..e48c0e4 --- /dev/null +++ b/mods/protector/admin.lua @@ -0,0 +1,59 @@ + +protector.removal_names = "" + +minetest.register_chatcommand("delprot", { + params = "", + description = "Remove Protectors near players with names provided (separate names with spaces)", + privs = {server = true}, + func = function(name, param) + + if not param or param == "" then + + minetest.chat_send_player(name, + "Protector Names to remove: " + .. protector.removal_names) + + return + end + + if param == "-" then + minetest.chat_send_player(name, + "Name List Reset") + + protector.removal_names = "" + + return + end + + protector.removal_names = param + + end, +}) + +minetest.register_abm({ + nodenames = {"protector:protect", "protector:protect2"}, + interval = 8, + chance = 1, + catch_up = false, + action = function(pos, node) + + if protector.removal_names == "" then + return + end + + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + --local members = meta:get_string("members") + + local names = protector.removal_names:split(" ") + + for _, n in pairs(names) do + + if n == owner then + minetest.set_node(pos, {name = "air"}) + end + + end + + end +}) \ No newline at end of file diff --git a/mods/protector/depends.txt b/mods/protector/depends.txt new file mode 100644 index 0000000..0b6a14a --- /dev/null +++ b/mods/protector/depends.txt @@ -0,0 +1,3 @@ +default +doors? +mobs? \ No newline at end of file diff --git a/mods/protector/doors_chest.lua b/mods/protector/doors_chest.lua new file mode 100644 index 0000000..bdb9fee --- /dev/null +++ b/mods/protector/doors_chest.lua @@ -0,0 +1,651 @@ + +-- Since the doors mod has changed in the latest daily builds I have taken the +-- WTFPL licenced code from the old doors mod and included an edited version +-- of it within this mod for local use. + +-- Registers a door +function 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}} + + def.node_box_bottom = box + def.node_box_top = box + def.selection_box_bottom = box + def.selection_box_top = box + def.sound_close_door = "doors_door_close" + def.sound_open_door = "doors_door_open" + + 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] + and minetest.registered_nodes[nu.name].on_rightclick then + return minetest.registered_nodes[nu.name].on_rightclick(ptu, nu, placer, itemstack) + end + + local pt = pointed_thing.above + local pt2 = {x=pt.x, y=pt.y, z=pt.z} + pt2.y = pt2.y+1 + if + not minetest.registered_nodes[minetest.get_node(pt).name].buildable_to or + not minetest.registered_nodes[minetest.get_node(pt2).name].buildable_to or + not placer or + not placer:is_player() + then + return itemstack + end + + if minetest.is_protected(pt, placer:get_player_name()) or + minetest.is_protected(pt2, placer:get_player_name()) then + minetest.record_protection_violation(pt, placer:get_player_name()) + return itemstack + end + + local p2 = minetest.dir_to_facedir(placer:get_look_dir()) + local pt3 = {x=pt.x, y=pt.y, z=pt.z} + if p2 == 0 then + pt3.x = pt3.x-1 + elseif p2 == 1 then + pt3.z = pt3.z+1 + elseif p2 == 2 then + pt3.x = pt3.x+1 + elseif p2 == 3 then + pt3.z = pt3.z-1 + end + if minetest.get_item_group(minetest.get_node(pt3).name, "door") == 0 then + minetest.set_node(pt, {name=name.."_b_1", param2=p2}) + minetest.set_node(pt2, {name=name.."_t_1", param2=p2}) + else + minetest.set_node(pt, {name=name.."_b_2", param2=p2}) + minetest.set_node(pt2, {name=name.."_t_2", param2=p2}) + minetest.get_meta(pt):set_int("right", 1) + minetest.get_meta(pt2):set_int("right", 1) + end + + if 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 minetest.get_node(pos).name ~= check_name then + return + end + local p2 = minetest.get_node(pos).param2 + p2 = params[p2+1] + + minetest.swap_node(pos, {name=replace_dir, param2=p2}) + + pos.y = pos.y-dir + minetest.swap_node(pos, {name=replace, param2=p2}) + + local snd_1 = def.sound_close_door + local snd_2 = def.sound_open_door + if params[1] == 3 then + snd_1 = def.sound_open_door + snd_2 = def.sound_close_door + end + + if minetest.get_meta(pos):get_int("right") ~= 0 then + minetest.sound_play(snd_1, {pos = pos, gain = 0.3, max_hear_distance = 10}) + else + minetest.sound_play(snd_2, {pos = pos, gain = 0.3, max_hear_distance = 10}) + end + end + + local function on_rotate(pos, node, dir, user, check_name, mode, new_param2) + + if mode ~= screwdriver.ROTATE_FACE then + return false + end + + pos.y = pos.y + dir + if not minetest.get_node(pos).name == check_name then + return false + end + if minetest.is_protected(pos, user:get_player_name()) then + minetest.record_protection_violation(pos, user:get_player_name()) + return false + end + + local node2 = minetest.get_node(pos) + node2.param2 = (node2.param2 + 1) % 4 + minetest.swap_node(pos, node2) + + pos.y = pos.y - dir + node.param2 = (node.param2 + 1) % 4 + minetest.swap_node(pos, node) + return true + 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", + is_ground_content = false, + 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 not minetest.is_protected(pos, clicker:get_player_name()) then + on_rightclick(pos, 1, name.."_t_1", name.."_b_2", name.."_t_2", {1,2,3,0}) + end + end, + + on_rotate = function(pos, node, user, mode, new_param2) + return on_rotate(pos, node, 1, user, name.."_t_1", mode) + end, + + sounds = def.sounds, + sunlight_propagates = def.sunlight, + on_blast = function() end, + }) + + minetest.register_node(name.."_t_1", { + tiles = {tt[2], tt[2], tt[2], tt[2], tt[1], tt[1].."^[transformfx"}, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + 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 not minetest.is_protected(pos, clicker:get_player_name()) then + on_rightclick(pos, -1, name.."_b_1", name.."_t_2", name.."_b_2", {1,2,3,0}) + end + end, + + on_rotate = function(pos, node, user, mode, new_param2) + return on_rotate(pos, node, -1, user, name.."_b_1", mode) + end, + + sounds = def.sounds, + sunlight_propagates = def.sunlight, + on_blast = function() end, + }) + + minetest.register_node(name.."_b_2", { + tiles = {tb[2], tb[2], tb[2], tb[2], tb[1].."^[transformfx", tb[1]}, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + 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 not minetest.is_protected(pos, clicker:get_player_name()) then + on_rightclick(pos, 1, name.."_t_2", name.."_b_1", name.."_t_1", {3,0,1,2}) + end + end, + + on_rotate = function(pos, node, user, mode, new_param2) + return on_rotate(pos, node, 1, user, name.."_t_2", mode) + end, + + sounds = def.sounds, + sunlight_propagates = def.sunlight, + on_blast = function() end, + }) + + minetest.register_node(name.."_t_2", { + tiles = {tt[2], tt[2], tt[2], tt[2], tt[1].."^[transformfx", tt[1]}, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + 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 not minetest.is_protected(pos, clicker:get_player_name()) then + on_rightclick(pos, -1, name.."_b_2", name.."_t_1", name.."_b_1", {3,0,1,2}) + end + end, + + on_rotate = function(pos, node, user, mode, new_param2) + return on_rotate(pos, node, -1, user, name.."_b_2", mode) + end, + + sounds = def.sounds, + sunlight_propagates = def.sunlight, + on_blast = function() end, + }) + +end + +-- Protected Wooden Door + +local name = "protector:door_wood" + +register_door(name, { + description = "Protected Wooden Door", + inventory_image = "doors_wood.png^protector_logo.png", + groups = { + snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, + unbreakable = 1, --door = 1 + }, + tiles_bottom = {"doors_wood_b.png^protector_logo.png", "doors_brown.png"}, + tiles_top = {"doors_wood_a.png", "doors_brown.png"}, + sounds = default.node_sound_wood_defaults(), + sunlight = false, +}) + +minetest.register_craft({ + output = name, + recipe = { + {"group:wood", "group:wood"}, + {"group:wood", "default:copper_ingot"}, + {"group:wood", "group:wood"} + } +}) + +minetest.register_craft({ + output = name, + recipe = { + {"doors:door_wood", "default:copper_ingot"} + } +}) + +-- Protected Steel Door + +local name = "protector:door_steel" + +register_door(name, { + description = "Protected Steel Door", + inventory_image = "doors_steel.png^protector_logo.png", + groups = { + snappy = 1, bendy = 2, cracky = 1, + level = 2, unbreakable = 1, -- door = 1 + }, + tiles_bottom = {"doors_steel_b.png^protector_logo.png", "doors_grey.png"}, + tiles_top = {"doors_steel_a.png", "doors_grey.png"}, + sounds = default.node_sound_wood_defaults(), + sunlight = false, +}) + +minetest.register_craft({ + output = name, + recipe = { + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:copper_ingot"}, + {"default:steel_ingot", "default:steel_ingot"} + } +}) + +minetest.register_craft({ + output = name, + recipe = { + {"doors:door_steel", "default:copper_ingot"} + } +}) + +----trapdoor---- + +function register_trapdoor(name, def) + local name_closed = name + local name_opened = name.."_open" + + def.on_rightclick = function (pos, node, clicker, itemstack, pointed_thing) + if minetest.is_protected(pos, clicker:get_player_name()) then + return + end + local newname = node.name == name_closed and name_opened or name_closed + local sound = false + if node.name == name_closed then sound = "doors_door_open" end + if node.name == name_opened then sound = "doors_door_close" end + if sound then + minetest.sound_play(sound, {pos = pos, gain = 0.3, max_hear_distance = 10}) + end + minetest.swap_node(pos, {name = newname, param1 = node.param1, param2 = node.param2}) + end + + -- Common trapdoor configuration + def.drawtype = "nodebox" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.is_ground_content = false + + local def_opened = table.copy(def) + local def_closed = table.copy(def) + + def_closed.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} + } + def_closed.tiles = { def.tile_front, def.tile_front, def.tile_side, def.tile_side, + def.tile_side, def.tile_side } + + def_opened.node_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} + } + def_opened.tiles = { def.tile_side, def.tile_side, + def.tile_side .. '^[transform3', + def.tile_side .. '^[transform1', + def.tile_front, def.tile_front } + + def_opened.drop = name_closed + def_opened.groups.not_in_creative_inventory = 1 + + minetest.register_node(name_opened, def_opened) + minetest.register_node(name_closed, def_closed) +end + +-- Protected Wooden Trapdoor + +register_trapdoor("protector:trapdoor", { + description = "Protected Trapdoor", + inventory_image = "doors_trapdoor.png^protector_logo.png", + wield_image = "doors_trapdoor.png^protector_logo.png", + tile_front = "doors_trapdoor.png^protector_logo.png", + tile_side = "doors_trapdoor_side.png", + groups = { + snappy = 1, choppy = 2, oddly_breakable_by_hand = 2, + unbreakable = 1, --door = 1 + }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = 'protector:trapdoor 2', + recipe = { + {'group:wood', 'default:copper_ingot', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + {'', '', ''}, + } +}) + +minetest.register_craft({ + output = "protector:trapdoor", + recipe = { + {"doors:trapdoor", "default:copper_ingot"} + } +}) + +-- Protected Steel Trapdoor + +register_trapdoor("protector:trapdoor_steel", { + description = "Protected Steel Trapdoor", + inventory_image = "doors_trapdoor_steel.png^protector_logo.png", + wield_image = "doors_trapdoor_steel.png^protector_logo.png", + tile_front = "doors_trapdoor_steel.png^protector_logo.png", + tile_side = "doors_trapdoor_steel_side.png", + groups = { + snappy = 1, bendy = 2, cracky = 1, melty = 2, level = 2, + unbreakable = 1, --door = 1 + }, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_craft({ + output = 'protector:trapdoor_steel', + recipe = { + {'default:copper_ingot', 'default:steel_ingot'}, + {'default:steel_ingot', 'default:steel_ingot'}, + } +}) + +minetest.register_craft({ + output = "protector:trapdoor_steel", + recipe = { + {"doors:trapdoor_steel", "default:copper_ingot"} + } +}) + +-- Protected Chest + +minetest.register_node("protector:chest", { + description = "Protected 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^protector_logo.png" + }, + paramtype2 = "facedir", + groups = {choppy = 2, oddly_breakable_by_hand = 2, unbreakable = 1}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + + meta:set_string("infotext", "Protected Chest") + meta:set_string("name", "") + inv:set_size("main", 8 * 4) + end, + + can_dig = function(pos,player) + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + + if inv:is_empty("main") then + + if not minetest.is_protected(pos, player:get_player_name()) then + return true + end + end + end, + + on_metadata_inventory_put = function(pos, listname, index, stack, player) + + minetest.log("action", player:get_player_name() + .. " moves stuff to protected 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 protected chest at " + .. minetest.pos_to_string(pos)) + end, + + on_rightclick = function(pos, node, clicker) + + if minetest.is_protected(pos, clicker:get_player_name()) then + return + end + + local meta = minetest.get_meta(pos) + + if not meta then + return + end + + local spos = pos.x .. "," .. pos.y .. "," ..pos.z + local formspec = "size[8,9]" + .. default.gui_bg + .. default.gui_bg_img + .. default.gui_slots + .. "list[nodemeta:".. spos .. ";main;0,0.3;8,4;]" + .. "button[0,4.5;2,0.25;toup;To Chest]" + .. "field[2.3,4.8;4,0.25;chestname;;" + .. meta:get_string("name") .. "]" + .. "button[6,4.5;2,0.25;todn;To Inventory]" + .. "list[current_player;main;0,5;8,1;]" + .. "list[current_player;main;0,6.08;8,3;8]" + .. "listring[nodemeta:" .. spos .. ";main]" + .. "listring[current_player;main]" + + minetest.show_formspec( + clicker:get_player_name(), + "protector:chest_" .. minetest.pos_to_string(pos), + formspec) + end, + + on_blast = function() end, +}) + +-- Protected Chest formspec buttons + +minetest.register_on_player_receive_fields(function(player, formname, fields) + + if string.sub(formname, 0, string.len("protector:chest_")) == "protector:chest_" then + + local pos_s = string.sub(formname,string.len("protector:chest_") + 1) + local pos = minetest.string_to_pos(pos_s) + local meta = minetest.get_meta(pos) + local chest_inv = meta:get_inventory() + local player_inv = player:get_inventory() + local leftover + + if fields.toup then + + -- copy contents of players inventory to chest + for i, v in pairs (player_inv:get_list("main") or {}) do + + if chest_inv + and chest_inv:room_for_item('main', v) then + + leftover = chest_inv:add_item('main', v) + + player_inv:remove_item("main", v) + + if leftover + and not leftover:is_empty() then + player_inv:add_item("main", v) + end + end + end + + elseif fields.todn then + + -- copy contents of chest to players inventory + for i, v in pairs (chest_inv:get_list('main') or {}) do + + if player_inv:room_for_item("main", v) then + + leftover = player_inv:add_item("main", 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.chestname then + + -- change chest infotext to display name + if fields.chestname ~= "" then + + meta:set_string("name", fields.chestname) + meta:set_string("infotext", + "Protected Chest (" .. fields.chestname .. ")") + else + meta:set_string("infotext", "Protected Chest") + end + + end + end + +end) + +-- Protected Chest recipes + +minetest.register_craft({ + output = 'protector:chest', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'default:copper_ingot', 'group:wood'}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'protector:chest', + recipe = { + {'default:chest', 'default:copper_ingot', ''}, + } +}) diff --git a/mods/protector/init.lua b/mods/protector/init.lua new file mode 100644 index 0000000..0a10f0b --- /dev/null +++ b/mods/protector/init.lua @@ -0,0 +1,556 @@ +minetest.register_privilege("delprotect","Ignore player protection") + +protector = {} +protector.mod = "redo" +protector.radius = (tonumber(minetest.setting_get("protector_radius")) or 5) +protector.drop = minetest.setting_getbool("protector_drop") or false +protector.hurt = (tonumber(minetest.setting_get("protector_hurt")) or 0) + +protector.get_member_list = function(meta) + + return meta:get_string("members"):split(" ") +end + +protector.set_member_list = function(meta, list) + + meta:set_string("members", table.concat(list, " ")) +end + +protector.is_member = function (meta, name) + + for _, n in pairs(protector.get_member_list(meta)) do + + if n == name then + return true + end + end + + return false +end + +protector.add_member = function(meta, name) + + if protector.is_member(meta, name) then + return + end + + local list = protector.get_member_list(meta) + + table.insert(list, name) + + protector.set_member_list(meta, list) +end + +protector.del_member = function(meta, name) + + local list = protector.get_member_list(meta) + + for i, n in pairs(list) do + + if n == name then + table.remove(list, i) + break + end + end + + protector.set_member_list(meta, list) +end + +-- Protector Interface + +protector.generate_formspec = function(meta) + + local formspec = "size[8,7]" + .. default.gui_bg + .. default.gui_bg_img + .. default.gui_slots + .. "label[2.5,0;-- Protector interface --]" + .. "label[0,1;PUNCH node to show protected area or USE for area check]" + .. "label[0,2;Members: (type player name then press Enter to add)]" + .. "button_exit[2.5,6.2;3,0.5;close_me;Close]" + + local members = protector.get_member_list(meta) + local npp = 12 -- max users added onto protector list + local i = 0 + + for _, member in pairs(members) do + + if i < npp then + + -- show username + formspec = formspec .. "button[" .. (i % 4 * 2) + .. "," .. math.floor(i / 4 + 3) + .. ";1.5,.5;protector_member;" .. member .. "]" + + -- username remove button + .. "button[" .. (i % 4 * 2 + 1.25) .. "," + .. math.floor(i / 4 + 3) + .. ";.75,.5;protector_del_member_" .. member .. ";X]" + end + + i = i + 1 + end + + if i < npp then + + -- user name entry field + formspec = formspec .. "field[" .. (i % 4 * 2 + 1 / 3) .. "," + .. (math.floor(i / 4 + 3) + 1 / 3) + .. ";1.433,.5;protector_add_member;;]" + + -- username add button + .."button[" .. (i % 4 * 2 + 1.25) .. "," + .. math.floor(i / 4 + 3) .. ";.75,.5;protector_submit;+]" + + end + + return formspec +end + +-- Infolevel: +-- 0 for no info +-- 1 for "This area is owned by !" if you can't dig +-- 2 for "This area is owned by . +-- 3 for checking protector overlaps + +protector.can_dig = function(r, pos, digger, onlyowner, infolevel) + + if not digger + or not pos then + return false + end + + -- Delprotect privileged users can override protections + + if minetest.check_player_privs(digger, {delprotect = true}) + and infolevel == 1 then + return true + end + + if infolevel == 3 then infolevel = 1 end + + -- Find the protector nodes + + local positions = minetest.find_nodes_in_area( + {x = pos.x - r, y = pos.y - r, z = pos.z - r}, + {x = pos.x + r, y = pos.y + r, z = pos.z + r}, + {"protector:protect", "protector:protect2"}) + + local meta, owner, members + + for _, pos in pairs(positions) do + + meta = minetest.get_meta(pos) + owner = meta:get_string("owner") + members = meta:get_string("members") + + if owner ~= digger then + + if onlyowner + or not protector.is_member(meta, digger) then + + if infolevel == 1 then + + minetest.chat_send_player(digger, + "This area is owned by " .. owner .. " !") + + elseif infolevel == 2 then + + minetest.chat_send_player(digger, + "This area is owned by " .. owner .. ".") + + minetest.chat_send_player(digger, + "Protection located at: " .. minetest.pos_to_string(pos)) + + if members ~= "" then + + minetest.chat_send_player(digger, + "Members: " .. members .. ".") + end + end + + return false + end + end + + if infolevel == 2 then + + minetest.chat_send_player(digger, + "This area is owned by " .. owner .. ".") + + minetest.chat_send_player(digger, + "Protection located at: " .. minetest.pos_to_string(pos)) + + if members ~= "" then + + minetest.chat_send_player(digger, + "Members: " .. members .. ".") + end + + return false + end + + end + + if infolevel == 2 then + + if #positions < 1 then + + minetest.chat_send_player(digger, + "This area is not protected.") + end + + minetest.chat_send_player(digger, "You can build here.") + end + + return true +end + +-- Can node be added or removed, if so return node else true (for protected) + +protector.old_is_protected = minetest.is_protected + +function minetest.is_protected(pos, digger) + + if not protector.can_dig(protector.radius, pos, digger, false, 1) then + + local player = minetest.get_player_by_name(digger) + + -- hurt player if protection violated + if protector.hurt > 0 + and player then + player:set_hp(player:get_hp() - protector.hurt) + end + + -- drop tool/item if protection violated + if protector.drop == true + and player then + + local holding = player:get_wielded_item() + + if holding:to_string() ~= "" then + + -- take stack + local sta = holding:take_item(holding:get_count()) + player:set_wielded_item(holding) + + -- incase of lag, reset stack + minetest.after(0.1, function() + player:set_wielded_item(holding) + + -- drop stack + local obj = minetest.add_item(player:getpos(), sta) + obj:setvelocity({x = 0, y = 5, z = 0}) + end) + + end + + end + + return true + end + + return protector.old_is_protected(pos, digger) + +end + +-- Make sure protection block doesn't overlap another protector's area + +function protector.check_overlap(itemstack, placer, pointed_thing) + + if pointed_thing.type ~= "node" then + return itemstack + end + + if not protector.can_dig(protector.radius * 2, pointed_thing.above, + placer:get_player_name(), true, 3) then + + minetest.chat_send_player(placer:get_player_name(), + "Overlaps into above players protected area") + + return + end + + return minetest.item_place(itemstack, placer, pointed_thing) + +end + +--= Protection Block + +minetest.register_node("protector:protect", { + description = "Protection Block", + drawtype = "nodebox", + tiles = { + "moreblocks_circle_stone_bricks.png", + "moreblocks_circle_stone_bricks.png", + "moreblocks_circle_stone_bricks.png^protector_logo.png" + }, + sounds = default.node_sound_stone_defaults(), + groups = {dig_immediate = 2, unbreakable = 1}, + is_ground_content = false, + paramtype = "light", + light_source = 4, + + node_box = { + type = "fixed", + fixed = { + {-0.5 ,-0.5, -0.5, 0.5, 0.5, 0.5}, + } + }, + + on_place = protector.check_overlap, + + 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", "Protection (owned by " .. meta:get_string("owner") .. ")") + meta:set_string("members", "") + end, + + on_use = function(itemstack, user, pointed_thing) + + if pointed_thing.type ~= "node" then + return + end + + protector.can_dig(protector.radius, pointed_thing.under, user:get_player_name(), false, 2) + end, + + on_rightclick = function(pos, node, clicker, itemstack) + + local meta = minetest.get_meta(pos) + + if meta + and protector.can_dig(1, pos,clicker:get_player_name(), true, 1) then + minetest.show_formspec(clicker:get_player_name(), + "protector:node_" .. minetest.pos_to_string(pos), protector.generate_formspec(meta)) + end + end, + + on_punch = function(pos, node, puncher) + + if not protector.can_dig(1, pos, puncher:get_player_name(), true, 1) then + return + end + if minetest.get_node_timer(pos):is_started() then + minetest.get_node_timer(pos):stop() + else + minetest.get_node_timer(pos):set(1, 0) + end + end, + + can_dig = function(pos, player) + + return protector.can_dig(1, pos, player:get_player_name(), true, 1) + end, + on_timer = function(pos, elapsed) + minetest.get_node_timer(pos):set(1, 0) + minetest.add_entity(pos, "protector:display") + end, + on_blast = function() end, +}) + +minetest.register_craft({ + output = "protector:protect", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "default:mese", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, + } +}) + +--= Protection Logo + +minetest.register_node("protector:protect2", { + description = "Protection Logo", + tiles = {"protector_logo.png"}, + wield_image = "protector_logo.png", + inventory_image = "protector_logo.png", + sounds = default.node_sound_stone_defaults(), + groups = {dig_immediate = 2, unbreakable = 1}, + paramtype = 'light', + paramtype2 = "wallmounted", + legacy_wallmounted = true, + light_source = 4, + drawtype = "nodebox", + sunlight_propagates = true, + walkable = 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"}, + + on_place = protector.check_overlap, + + 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", "Protection (owned by " .. meta:get_string("owner") .. ")") + meta:set_string("members", "") + end, + + on_use = function(itemstack, user, pointed_thing) + + if pointed_thing.type ~= "node" then + return + end + + protector.can_dig(protector.radius, pointed_thing.under, user:get_player_name(), false, 2) + end, + + on_rightclick = function(pos, node, clicker, itemstack) + + local meta = minetest.get_meta(pos) + + if protector.can_dig(1, pos, clicker:get_player_name(), true, 1) then + + minetest.show_formspec(clicker:get_player_name(), + "protector:node_" .. minetest.pos_to_string(pos), protector.generate_formspec(meta)) + end + end, + + on_punch = function(pos, node, puncher) + + if not protector.can_dig(1, pos, puncher:get_player_name(), true, 1) then + return + end + if minetest.get_node_timer(pos):is_started() then + minetest.get_node_timer(pos):stop() + else + minetest.get_node_timer(pos):set(1, 0) + end + end, + + can_dig = function(pos, player) + + return protector.can_dig(1, pos, player:get_player_name(), true, 1) + end, + on_timer = function(pos, elapsed) + minetest.get_node_timer(pos):set(1, 0) + minetest.add_entity(pos, "protector:display") + end, + + on_blast = function() end, +}) + +minetest.register_craft({ + output = "protector:protect2", + recipe = { + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "default:copper_ingot", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, + } +}) + +-- If name entered or button press + +minetest.register_on_player_receive_fields(function(player, formname, fields) + + if string.sub(formname, 0, string.len("protector:node_")) == "protector:node_" then + + local pos_s = string.sub(formname, string.len("protector:node_") + 1) + local pos = minetest.string_to_pos(pos_s) + local meta = minetest.get_meta(pos) + + if not protector.can_dig(1, pos, player:get_player_name(), true, 1) then + return + end + + if fields.protector_add_member then + + for _, i in pairs(fields.protector_add_member:split(" ")) do + protector.add_member(meta, i) + end + end + + for field, value in pairs(fields) do + + if string.sub(field, 0, string.len("protector_del_member_")) == "protector_del_member_" then + protector.del_member(meta, string.sub(field,string.len("protector_del_member_") + 1)) + end + end + + if not fields.close_me then + minetest.show_formspec(player:get_player_name(), formname, protector.generate_formspec(meta)) + end + if not fields.rem then + end + + end + +end) + +-- Display entity shown when protector node is punched + +minetest.register_entity("protector:display", { + physical = false, + collisionbox = {0, 0, 0, 0, 0, 0}, + visual = "wielditem", + -- wielditem seems to be scaled to 1.5 times original node size + visual_size = {x = 1.0 / 1.5, y = 1.0 / 1.5}, + textures = {"protector:display_node"}, + timer = 0, + + on_activate = function(self, staticdata) + + -- Xanadu server only + if mobs and mobs.entity and mobs.entity == false then + self.object:remove() + end + end, + + on_step = function(self, dtime) + + self.timer = self.timer + dtime + + if self.timer > 2 then + self.object:remove() + end + end, +}) + +-- Display-zone node, Do NOT place the display as a node, +-- it is made to be used as an entity (see above) + +local x = protector.radius +minetest.register_node("protector:display_node", { + tiles = {"protector_display.png"}, + use_texture_alpha = true, + walkable = false, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = { + -- sides + {-(x+.55), -(x+.55), -(x+.55), -(x+.45), (x+.55), (x+.55)}, + {-(x+.55), -(x+.55), (x+.45), (x+.55), (x+.55), (x+.55)}, + {(x+.45), -(x+.55), -(x+.55), (x+.55), (x+.55), (x+.55)}, + {-(x+.55), -(x+.55), -(x+.55), (x+.55), (x+.55), -(x+.45)}, + -- top + {-(x+.55), (x+.45), -(x+.55), (x+.55), (x+.55), (x+.55)}, + -- bottom + {-(x+.55), -(x+.55), -(x+.55), (x+.55), -(x+.45), (x+.55)}, + -- middle (surround protector) + {-.55,-.55,-.55, .55,.55,.55}, + }, + }, + selection_box = { + type = "regular", + }, + paramtype = "light", + groups = {dig_immediate = 3, not_in_creative_inventory = 1}, + drop = "", +}) + +dofile(minetest.get_modpath("protector") .. "/doors_chest.lua") +dofile(minetest.get_modpath("protector") .. "/pvp.lua") +dofile(minetest.get_modpath("protector") .. "/admin.lua") + +print ("[MOD] Protector Redo loaded") diff --git a/mods/protector/license.txt b/mods/protector/license.txt new file mode 100644 index 0000000..688aa27 --- /dev/null +++ b/mods/protector/license.txt @@ -0,0 +1,34 @@ + + 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 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 + +following textures created by sofar (CC-BY-SA-3.0) + doors_trapdoor_steel.png + doors_trapdoor_steel_side.png + door_trapdoor_side.png + +All other door textures (created by PilzAdam): WTFPL diff --git a/mods/protector/pvp.lua b/mods/protector/pvp.lua new file mode 100644 index 0000000..0122576 --- /dev/null +++ b/mods/protector/pvp.lua @@ -0,0 +1,51 @@ + +-- get static spawn position +local statspawn = (minetest.setting_get_pos("static_spawnpoint") or {x = 0, y = 2, z = 0}) + +-- is pvp protection enabled and spawn protected +protector.pvp = minetest.setting_getbool("protector_pvp") +protector.spawn = (tonumber(minetest.setting_get("protector_pvp_spawn")) or 0) + +-- Disable PVP in your own protected areas +if minetest.setting_getbool("enable_pvp") and protector.pvp then + + if minetest.register_on_punchplayer then + + minetest.register_on_punchplayer( + function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage) + + if not player + or not hitter then + print("[Protector] on_punchplayer called with nil objects") + end + + if not hitter:is_player() then + return false + end + + -- no pvp at spawn area + local pos = player:getpos() + + if pos.x < statspawn.x + protector.spawn + and pos.x > statspawn.x - protector.spawn + and pos.y < statspawn.y + protector.spawn + and pos.y > statspawn.y - protector.spawn + and pos.z < statspawn.z + protector.spawn + and pos.z > statspawn.z - protector.spawn then + return true + end + + if minetest.is_protected(pos, hitter:get_player_name()) then + return true + else + return false + end + + end) + else + print("[Protector] pvp_protect not active, update your version of Minetest") + + end +else + print("[Protector] pvp_protect is disabled") +end diff --git a/mods/protector/textures/doors_brown.png b/mods/protector/textures/doors_brown.png new file mode 100644 index 0000000..8c8e3d8 Binary files /dev/null and b/mods/protector/textures/doors_brown.png differ diff --git a/mods/protector/textures/doors_grey.png b/mods/protector/textures/doors_grey.png new file mode 100644 index 0000000..ad110c7 Binary files /dev/null and b/mods/protector/textures/doors_grey.png differ diff --git a/mods/protector/textures/doors_steel.png b/mods/protector/textures/doors_steel.png new file mode 100644 index 0000000..042a1bc Binary files /dev/null and b/mods/protector/textures/doors_steel.png differ diff --git a/mods/protector/textures/doors_steel_a.png b/mods/protector/textures/doors_steel_a.png new file mode 100644 index 0000000..84ff11d Binary files /dev/null and b/mods/protector/textures/doors_steel_a.png differ diff --git a/mods/protector/textures/doors_steel_b.png b/mods/protector/textures/doors_steel_b.png new file mode 100644 index 0000000..77ffbe3 Binary files /dev/null and b/mods/protector/textures/doors_steel_b.png differ diff --git a/mods/protector/textures/doors_trapdoor.png b/mods/protector/textures/doors_trapdoor.png new file mode 100644 index 0000000..e92c8b2 Binary files /dev/null and b/mods/protector/textures/doors_trapdoor.png differ diff --git a/mods/protector/textures/doors_trapdoor_side.png b/mods/protector/textures/doors_trapdoor_side.png new file mode 100644 index 0000000..c45d870 Binary files /dev/null and b/mods/protector/textures/doors_trapdoor_side.png differ diff --git a/mods/protector/textures/doors_trapdoor_steel.png b/mods/protector/textures/doors_trapdoor_steel.png new file mode 100644 index 0000000..4ba507d Binary files /dev/null and b/mods/protector/textures/doors_trapdoor_steel.png differ diff --git a/mods/protector/textures/doors_trapdoor_steel_side.png b/mods/protector/textures/doors_trapdoor_steel_side.png new file mode 100644 index 0000000..44c4344 Binary files /dev/null and b/mods/protector/textures/doors_trapdoor_steel_side.png differ diff --git a/mods/protector/textures/doors_wood.png b/mods/protector/textures/doors_wood.png new file mode 100644 index 0000000..d3a62ab Binary files /dev/null and b/mods/protector/textures/doors_wood.png differ diff --git a/mods/protector/textures/doors_wood_a.png b/mods/protector/textures/doors_wood_a.png new file mode 100644 index 0000000..86a747a Binary files /dev/null and b/mods/protector/textures/doors_wood_a.png differ diff --git a/mods/protector/textures/doors_wood_b.png b/mods/protector/textures/doors_wood_b.png new file mode 100644 index 0000000..9665098 Binary files /dev/null and b/mods/protector/textures/doors_wood_b.png differ diff --git a/mods/protector/textures/johnsmith/moreblocks_circle_stone_bricks.png b/mods/protector/textures/johnsmith/moreblocks_circle_stone_bricks.png new file mode 100644 index 0000000..17aed51 Binary files /dev/null and b/mods/protector/textures/johnsmith/moreblocks_circle_stone_bricks.png differ diff --git a/mods/protector/textures/johnsmith/protector_logo.png b/mods/protector/textures/johnsmith/protector_logo.png new file mode 100644 index 0000000..b9ac3d6 Binary files /dev/null and b/mods/protector/textures/johnsmith/protector_logo.png differ diff --git a/mods/protector/textures/moreblocks_circle_stone_bricks.png b/mods/protector/textures/moreblocks_circle_stone_bricks.png new file mode 100644 index 0000000..1782c00 Binary files /dev/null and b/mods/protector/textures/moreblocks_circle_stone_bricks.png differ diff --git a/mods/protector/textures/protector_display.png b/mods/protector/textures/protector_display.png new file mode 100644 index 0000000..6d7ec7d Binary files /dev/null and b/mods/protector/textures/protector_display.png differ diff --git a/mods/protector/textures/protector_logo.png b/mods/protector/textures/protector_logo.png new file mode 100644 index 0000000..c6f6f51 Binary files /dev/null and b/mods/protector/textures/protector_logo.png differ diff --git a/mods/screwdriver/README.txt b/mods/screwdriver/README.txt new file mode 100644 index 0000000..9d39c58 --- /dev/null +++ b/mods/screwdriver/README.txt @@ -0,0 +1,13 @@ +Minetest Game mod: screwdriver +============================== +See license.txt for license information. + +License of source code +---------------------- +Originally by RealBadAngel, Maciej Kasatkin (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +License of media (textures) +--------------------------- +Created by Gambit (CC BY-SA 3.0): + screwdriver.png diff --git a/mods/screwdriver/init.lua b/mods/screwdriver/init.lua new file mode 100644 index 0000000..634edf8 --- /dev/null +++ b/mods/screwdriver/init.lua @@ -0,0 +1,171 @@ +screwdriver = {} + +screwdriver.ROTATE_FACE = 1 +screwdriver.ROTATE_AXIS = 2 +screwdriver.disallow = function(pos, node, user, mode, new_param2) + return false +end +screwdriver.rotate_simple = function(pos, node, user, mode, new_param2) + if mode ~= screwdriver.ROTATE_FACE then + return false + end +end + +-- For attached wallmounted nodes: returns true if rotation is valid +-- simplified version of minetest:builtin/game/falling.lua#L148. +local function check_attached_node(pos, rotation) + local d = minetest.wallmounted_to_dir(rotation) + local p2 = vector.add(pos, d) + local n = minetest.get_node(p2).name + local def2 = minetest.registered_nodes[n] + if def2 and not def2.walkable then + return false + end + return true +end + +screwdriver.rotate = {} + +local facedir_tbl = { + [screwdriver.ROTATE_FACE] = { + [0] = 1, [1] = 2, [2] = 3, [3] = 0, + [4] = 5, [5] = 6, [6] = 7, [7] = 4, + [8] = 9, [9] = 10, [10] = 11, [11] = 8, + [12] = 13, [13] = 14, [14] = 15, [15] = 12, + [16] = 17, [17] = 18, [18] = 19, [19] = 16, + [20] = 21, [21] = 22, [22] = 23, [23] = 20, + }, + [screwdriver.ROTATE_AXIS] = { + [0] = 4, [1] = 4, [2] = 4, [3] = 4, + [4] = 8, [5] = 8, [6] = 8, [7] = 8, + [8] = 12, [9] = 12, [10] = 12, [11] = 12, + [12] = 16, [13] = 16, [14] = 16, [15] = 16, + [16] = 20, [17] = 20, [18] = 20, [19] = 20, + [20] = 0, [21] = 0, [22] = 0, [23] = 0, + }, +} + +screwdriver.rotate.facedir = function(pos, node, mode) + local rotation = node.param2 % 32 -- get first 5 bits + local other = node.param2 - rotation + rotation = facedir_tbl[mode][rotation] or 0 + return rotation + other +end + +screwdriver.rotate.colorfacedir = screwdriver.rotate.facedir + +local wallmounted_tbl = { + [screwdriver.ROTATE_FACE] = {[2] = 5, [3] = 4, [4] = 2, [5] = 3, [1] = 0, [0] = 1}, + [screwdriver.ROTATE_AXIS] = {[2] = 5, [3] = 4, [4] = 2, [5] = 1, [1] = 0, [0] = 3} +} + +screwdriver.rotate.wallmounted = function(pos, node, mode) + local rotation = node.param2 % 8 -- get first 3 bits + local other = node.param2 - rotation + rotation = wallmounted_tbl[mode][rotation] or 0 + if minetest.get_item_group(node.name, "attached_node") ~= 0 then + -- find an acceptable orientation + for i = 1, 5 do + if not check_attached_node(pos, rotation) then + rotation = wallmounted_tbl[mode][rotation] or 0 + else + break + end + end + end + return rotation + other +end + +screwdriver.rotate.colorwallmounted = screwdriver.rotate.wallmounted + +-- Handles rotation +screwdriver.handler = function(itemstack, user, pointed_thing, mode, uses) + if pointed_thing.type ~= "node" then + return + end + + local pos = pointed_thing.under + local player_name = user and user:get_player_name() or "" + + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + return + end + + local node = minetest.get_node(pos) + local ndef = minetest.registered_nodes[node.name] + if not ndef then + return itemstack + end + -- can we rotate this paramtype2? + local fn = screwdriver.rotate[ndef.paramtype2] + if not fn and not ndef.on_rotate then + return itemstack + end + + local should_rotate = true + local new_param2 + if fn then + new_param2 = fn(pos, node, mode) + else + new_param2 = node.param2 + end + + -- Node provides a handler, so let the handler decide instead if the node can be rotated + if ndef.on_rotate then + -- Copy pos and node because callback can modify it + local result = ndef.on_rotate(vector.new(pos), + {name = node.name, param1 = node.param1, param2 = node.param2}, + user, mode, new_param2) + if result == false then -- Disallow rotation + return itemstack + elseif result == true then + should_rotate = false + end + elseif ndef.on_rotate == false then + return itemstack + elseif ndef.can_dig and not ndef.can_dig(pos, user) then + return itemstack + end + + if should_rotate and new_param2 ~= node.param2 then + node.param2 = new_param2 + minetest.swap_node(pos, node) + minetest.check_for_falling(pos) + end + + if not (creative and creative.is_enabled_for and + creative.is_enabled_for(player_name)) then + itemstack:add_wear(65535 / ((uses or 200) - 1)) + end + + return itemstack +end + +-- Screwdriver +minetest.register_tool("screwdriver:screwdriver", { + description = "Screwdriver (left-click rotates face, right-click rotates axis)", + inventory_image = "screwdriver.png", + on_use = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 200) + return itemstack + end, + on_place = function(itemstack, user, pointed_thing) + screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_AXIS, 200) + return itemstack + end, +}) + + +minetest.register_craft({ + output = "screwdriver:screwdriver", + recipe = { + {"default:steel_ingot"}, + {"group:stick"} + } +}) + +minetest.register_alias("screwdriver:screwdriver1", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver2", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver3", "screwdriver:screwdriver") +minetest.register_alias("screwdriver:screwdriver4", "screwdriver:screwdriver") diff --git a/mods/screwdriver/license.txt b/mods/screwdriver/license.txt new file mode 100644 index 0000000..d9b721b --- /dev/null +++ b/mods/screwdriver/license.txt @@ -0,0 +1,50 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2013-2016 RealBadAngel, Maciej Kasatkin +Copyright (C) 2013-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2013-2016 Gambit + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/screwdriver/textures/screwdriver.png b/mods/screwdriver/textures/screwdriver.png new file mode 100644 index 0000000..b2a56d5 Binary files /dev/null and b/mods/screwdriver/textures/screwdriver.png differ diff --git a/mods/sethome/README.txt b/mods/sethome/README.txt new file mode 100644 index 0000000..6f0a282 --- /dev/null +++ b/mods/sethome/README.txt @@ -0,0 +1,7 @@ +Minetest Game mod: sethome +========================== +See license.txt for license information. + +Authors of source code +---------------------- +sfan5 (MIT) diff --git a/mods/sethome/init.lua b/mods/sethome/init.lua new file mode 100644 index 0000000..13a33e5 --- /dev/null +++ b/mods/sethome/init.lua @@ -0,0 +1,97 @@ + +sethome = {} + +local homes_file = minetest.get_worldpath() .. "/homes" +local homepos = {} + +local function loadhomes() + local input = io.open(homes_file, "r") + if not input then + return -- no longer an error + end + + -- Iterate over all stored positions in the format "x y z player" for each line + for pos, name in input:read("*a"):gmatch("(%S+ %S+ %S+)%s([%w_-]+)[\r\n]") do + homepos[name] = minetest.string_to_pos(pos) + end + input:close() +end + +loadhomes() + +sethome.set = function(name, pos) + local player = minetest.get_player_by_name(name) + if not player or not pos then + return false + end + player:set_attribute("sethome:home", minetest.pos_to_string(pos)) + + -- remove `name` from the old storage file + local data = {} + local output = io.open(homes_file, "w") + if output then + homepos[name] = nil + for i, v in pairs(homepos) do + table.insert(data, string.format("%.1f %.1f %.1f %s\n", v.x, v.y, v.z, i)) + end + output:write(table.concat(data)) + io.close(output) + return true + end + return true -- if the file doesn't exist - don't return an error. +end + +sethome.get = function(name) + local player = minetest.get_player_by_name(name) + local pos = minetest.string_to_pos(player:get_attribute("sethome:home")) + if pos then + return pos + end + + -- fetch old entry from storage table + pos = homepos[name] + if pos then + return vector.new(pos) + else + return nil + end +end + +sethome.go = function(name) + local pos = sethome.get(name) + local player = minetest.get_player_by_name(name) + if player and pos then + player:setpos(pos) + return true + end + return false +end + +minetest.register_privilege("home", { + description = "Can use /sethome and /home", + give_to_singleplayer = false +}) + +minetest.register_chatcommand("home", { + description = "Teleport you to your home point", + privs = {home = true}, + func = function(name) + if sethome.go(name) then + return true, "Teleported to home!" + end + return false, "Set a home using /sethome" + end, +}) + +minetest.register_chatcommand("sethome", { + description = "Set your home point", + privs = {home = true}, + func = function(name) + name = name or "" -- fallback to blank name if nil + local player = minetest.get_player_by_name(name) + if player and sethome.set(name, player:getpos()) then + return true, "Home set!" + end + return false, "Player not found!" + end, +}) diff --git a/mods/sethome/license.txt b/mods/sethome/license.txt new file mode 100644 index 0000000..09f03b0 --- /dev/null +++ b/mods/sethome/license.txt @@ -0,0 +1,24 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2014-2016 sfan5 + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT diff --git a/mods/sfinv/README.md b/mods/sfinv/README.md new file mode 100644 index 0000000..6ff3392 --- /dev/null +++ b/mods/sfinv/README.md @@ -0,0 +1,21 @@ +Simple Fast Inventory +==================== + +![SFINV Screeny](https://cdn.pbrd.co/images/1yQhd1TI.png) + +A cleaner, simpler, solution to having an advanced inventory in Minetest. + +Written by rubenwardy. +License: MIT + +See game_api.txt for this mod's API + +License of source code and media files: +--------------------------------------- +Copyright (C) 2016 rubenwardy + +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/sfinv/api.lua b/mods/sfinv/api.lua new file mode 100644 index 0000000..fdb652b --- /dev/null +++ b/mods/sfinv/api.lua @@ -0,0 +1,182 @@ +sfinv = { + pages = {}, + pages_unordered = {}, + contexts = {}, + enabled = true +} + +function sfinv.register_page(name, def) + assert(name, "Invalid sfinv page. Requires a name") + assert(def, "Invalid sfinv page. Requires a def[inition] table") + assert(def.get, "Invalid sfinv page. Def requires a get function.") + assert(not sfinv.pages[name], "Attempt to register already registered sfinv page " .. dump(name)) + + sfinv.pages[name] = def + def.name = name + table.insert(sfinv.pages_unordered, def) +end + +function sfinv.override_page(name, def) + assert(name, "Invalid sfinv page override. Requires a name") + assert(def, "Invalid sfinv page override. Requires a def[inition] table") + local page = sfinv.pages[name] + assert(page, "Attempt to override sfinv page " .. dump(name) .. " which does not exist.") + for key, value in pairs(def) do + page[key] = value + end +end + +function sfinv.get_nav_fs(player, context, nav, current_idx) + -- Only show tabs if there is more than one page + if #nav > 1 then + return "tabheader[0,0;sfinv_nav_tabs;" .. table.concat(nav, ",") .. + ";" .. current_idx .. ";true;false]" + else + return "" + end +end + +local theme_main = "bgcolor[#080808BB;true]" .. default.gui_bg .. + default.gui_bg_img + +local theme_inv = default.gui_slots .. [[ + list[current_player;main;0,4.7;8,1;] + list[current_player;main;0,5.85;8,3;8] + ]] + +function sfinv.make_formspec(player, context, content, show_inv, size) + local tmp = { + size or "size[8,8.6]", + theme_main, + sfinv.get_nav_fs(player, context, context.nav_titles, context.nav_idx), + content + } + if show_inv then + tmp[#tmp + 1] = theme_inv + end + return table.concat(tmp, "") +end + +function sfinv.get_homepage_name(player) + return "sfinv:crafting" +end + +function sfinv.get_formspec(player, context) + -- Generate navigation tabs + local nav = {} + local nav_ids = {} + local current_idx = 1 + for i, pdef in pairs(sfinv.pages_unordered) do + if not pdef.is_in_nav or pdef:is_in_nav(player, context) then + nav[#nav + 1] = pdef.title + nav_ids[#nav_ids + 1] = pdef.name + if pdef.name == context.page then + current_idx = #nav_ids + end + end + end + context.nav = nav_ids + context.nav_titles = nav + context.nav_idx = current_idx + + -- Generate formspec + local page = sfinv.pages[context.page] or sfinv.pages["404"] + if page then + return page:get(player, context) + else + local old_page = context.page + local home_page = sfinv.get_homepage_name(player) + + if old_page == home_page then + minetest.log("error", "[sfinv] Couldn't find " .. dump(old_page) .. + ", which is also the old page") + + return "" + end + + context.page = home_page + assert(sfinv.pages[context.page], "[sfinv] Invalid homepage") + minetest.log("warning", "[sfinv] Couldn't find " .. dump(old_page) .. + " so switching to homepage") + + return sfinv.get_formspec(player, context) + end +end + +function sfinv.get_or_create_context(player) + local name = player:get_player_name() + local context = sfinv.contexts[name] + if not context then + context = { + page = sfinv.get_homepage_name(player) + } + sfinv.contexts[name] = context + end + return context +end + +function sfinv.set_context(player, context) + sfinv.contexts[player:get_player_name()] = context +end + +function sfinv.set_player_inventory_formspec(player, context) + local fs = sfinv.get_formspec(player, + context or sfinv.get_or_create_context(player)) + player:set_inventory_formspec(fs) +end + +function sfinv.set_page(player, pagename) + local context = sfinv.get_or_create_context(player) + local oldpage = sfinv.pages[context.page] + if oldpage and oldpage.on_leave then + oldpage:on_leave(player, context) + end + context.page = pagename + local page = sfinv.pages[pagename] + if page.on_enter then + page:on_enter(player, context) + end + sfinv.set_player_inventory_formspec(player, context) +end + +minetest.register_on_joinplayer(function(player) + if sfinv.enabled then + sfinv.set_player_inventory_formspec(player) + end +end) + +minetest.register_on_leaveplayer(function(player) + sfinv.contexts[player:get_player_name()] = nil +end) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + if formname ~= "" or not sfinv.enabled then + return false + end + + -- Get Context + local name = player:get_player_name() + local context = sfinv.contexts[name] + if not context then + sfinv.set_player_inventory_formspec(player) + return false + end + + -- Was a tab selected? + if fields.sfinv_nav_tabs and context.nav then + local tid = tonumber(fields.sfinv_nav_tabs) + if tid and tid > 0 then + local id = context.nav[tid] + local page = sfinv.pages[id] + if id and page then + sfinv.set_page(player, id) + end + end + else + -- Pass event to page + local page = sfinv.pages[context.page] + if page and page.on_player_receive_fields then + return page:on_player_receive_fields(player, context, fields) + end + end +end) diff --git a/mods/sfinv/depends.txt b/mods/sfinv/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/sfinv/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/sfinv/init.lua b/mods/sfinv/init.lua new file mode 100644 index 0000000..f030222 --- /dev/null +++ b/mods/sfinv/init.lua @@ -0,0 +1,22 @@ +dofile(minetest.get_modpath("sfinv") .. "/api.lua") + +sfinv.register_page("sfinv:crafting", { + title = "Crafting", + get = function(self, player, context) + return sfinv.make_formspec(player, context, [[ + list[current_player;craft;1.75,0.5;3,3;] + list[current_player;craftpreview;5.75,1.5;1,1;] + image[4.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270] + listring[current_player;main] + listring[current_player;craft] + image[0,4.75;1,1;gui_hb_bg.png] + image[1,4.75;1,1;gui_hb_bg.png] + image[2,4.75;1,1;gui_hb_bg.png] + image[3,4.75;1,1;gui_hb_bg.png] + image[4,4.75;1,1;gui_hb_bg.png] + image[5,4.75;1,1;gui_hb_bg.png] + image[6,4.75;1,1;gui_hb_bg.png] + image[7,4.75;1,1;gui_hb_bg.png] + ]], true) + end +}) diff --git a/mods/shop/.gitignore b/mods/shop/.gitignore new file mode 100644 index 0000000..1377554 --- /dev/null +++ b/mods/shop/.gitignore @@ -0,0 +1 @@ +*.swp diff --git a/mods/shop/README.md b/mods/shop/README.md new file mode 100644 index 0000000..17f9aa0 --- /dev/null +++ b/mods/shop/README.md @@ -0,0 +1,2 @@ +# shop +License GPL3 diff --git a/mods/shop/depends.txt b/mods/shop/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/shop/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/shop/init.lua b/mods/shop/init.lua new file mode 100644 index 0000000..4d26c4f --- /dev/null +++ b/mods/shop/init.lua @@ -0,0 +1,191 @@ +local function get_register_formspec(pos) + local meta = minetest.get_meta(pos) + local spos = pos.x.. "," ..pos.y .. "," .. pos.z + local formspec = + "size[8,6.5]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "label[0,1;Sell]" .. + "label[3,1;For]" .. + "button[0,0;2,1;stock;Stock]" .. + "button[3,0;2,1;register;Register]" .. + "button_exit[7,0;1,1;exit;X]" .. + "button[7,1;1,1;ok;OK]" .. + "list[nodemeta:" .. spos .. ";sell;1,1;1,1;]" .. + "list[nodemeta:" .. spos .. ";buy;4,1;1,1;]" .. + "list[current_player;main;0,2.75;8,4;]" + return formspec +end + +local formspec_register = + "size[8,9]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "label[0,0;Register]" .. + "list[current_name;register;0,0.75;8,4;]" .. + "list[current_player;main;0,5.25;8,4;]" .. + "listring[]" + +local formspec_stock = + "size[8,9]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "label[0,0;Stock]" .. + "list[current_name;stock;0,0.75;8,4;]" .. + "list[current_player;main;0,5.25;8,4;]" .. + "listring[]" + +minetest.register_privilege("shop_admin", "Shop administration and maintainence") + +minetest.register_node("shop:shop", { + description = "Shop", + tiles = { + "shop_shop_topbottom.png", + "shop_shop_topbottom.png", + "shop_shop_side.png", + "shop_shop_side.png", + "shop_shop_side.png", + "shop_shop_front.png", + }, + groups = {choppy = 3, oddly_breakable_by_hand = 1}, + paramtype2 = "facedir", + after_place_node = function(pos, placer, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + local owner = placer:get_player_name() + + meta:set_string("owner", owner) + meta:set_string("infotext", "Shop (Owned by " .. owner .. ")") + meta:set_string("formspec", get_register_formspec(pos)) + + local inv = meta:get_inventory() + inv:set_size("buy", 1) + inv:set_size("sell", 1) + inv:set_size("stock", 8*4) + inv:set_size("register", 8*4) + end, + on_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local player = sender:get_player_name() + local inv = meta:get_inventory() + local s = inv:get_list("sell") + local b = inv:get_list("buy") + local stk = inv:get_list("stock") + local reg = inv:get_list("register") + local pinv = sender:get_inventory() + + if fields.register then + if player ~= owner and (not minetest.check_player_privs(player, "shop_admin")) then + minetest.chat_send_player(player, "Only the shop owner can open the register.") + return + else + minetest.show_formspec(player, "shop:shop", formspec_register) + end + elseif fields.stock then + if player ~= owner and (not minetest.check_player_privs(player, "shop_admin")) then + minetest.chat_send_player(player, "Only the shop owner can open the stock.") + return + else + minetest.show_formspec(player, "shop:shop", formspec_stock) + end + elseif fields.ok then + if inv:is_empty("sell") or + inv:is_empty("buy") or + (not inv:room_for_item("register", b[1])) then + minetest.chat_send_player(player, "Shop closed.") + return + end + + if (pinv:contains_item("main", b[1]) or + pinv:contains_item("funds", b[1])) and + inv:contains_item("stock", s[1]) and + pinv:room_for_item("main", s[1]) then + pinv:remove_item("main", b[1]) + inv:add_item("register", b[1]) + inv:remove_item("stock", s[1]) + pinv:add_item("main", s[1]) + else + minetest.chat_send_player(player, "No funds.") + end + end + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local inv = meta:get_inventory() + local s = inv:get_list("sell") + local n = stack:get_name() + local playername = player:get_player_name() + if playername == owner or minetest.check_player_privs(playername, "shop_admin") then + local inv = minetest.get_meta(pos):get_inventory() + if listname == "sell" or listname == "buy" then + local stack_copy = ItemStack(stack) + stack_copy:set_count(stack_copy:get_count()) + local y = stack_copy:get_count() + local x = inv:get_stack(listname, index):get_count() + inv:set_stack(listname, index,stack_copy:get_name().." "..(x+y)) + return 0 + else + local stack_copy = ItemStack(stack) + return stack_copy:get_count() + end + else + return 0 + end + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + local playername = player:get_player_name() + local inv = minetest.get_meta(pos):get_inventory() + if playername == owner or minetest.check_player_privs(playername, "shop_admin")then + if listname == "sell" or listname == "buy" then + inv:set_stack(listname, index, ItemStack("")) + return 0 + else + local stack_copy = ItemStack(stack) + return stack_copy:get_count() + end + else + 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 owner = meta:get_string("owner") + local inv = minetest.get_meta(pos):get_inventory() + local playername = player:get_player_name() + local stack = inv:get_stack(from_list, from_index) + if playername == owner or minetest.check_player_privs(playername, "shop_admin") then + if from_list == "sell" or from_list == "buy" then + return 0 + else + return stack:get_count() + end + else + return 0 + 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("register") and + inv:is_empty("stock") and + inv:is_empty("buy") and + inv:is_empty("sell") + end, + +}) +minetest.register_craft({ + output = "shop:shop", + recipe = { + {"group:wood", "default:gold_ingot", "group:wood"}, + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, + {"group:wood", "default:gold_ingot", "group:wood"} + } +}) diff --git a/mods/shop/textures/shop_coin.png b/mods/shop/textures/shop_coin.png new file mode 100644 index 0000000..58f2500 Binary files /dev/null and b/mods/shop/textures/shop_coin.png differ diff --git a/mods/shop/textures/shop_shop_front.png b/mods/shop/textures/shop_shop_front.png new file mode 100644 index 0000000..48354a6 Binary files /dev/null and b/mods/shop/textures/shop_shop_front.png differ diff --git a/mods/shop/textures/shop_shop_side.png b/mods/shop/textures/shop_shop_side.png new file mode 100644 index 0000000..687fa30 Binary files /dev/null and b/mods/shop/textures/shop_shop_side.png differ diff --git a/mods/shop/textures/shop_shop_topbottom.png b/mods/shop/textures/shop_shop_topbottom.png new file mode 100644 index 0000000..fe9438a Binary files /dev/null and b/mods/shop/textures/shop_shop_topbottom.png differ diff --git a/mods/skins/.gitignore b/mods/skins/.gitignore new file mode 100644 index 0000000..41bac1f --- /dev/null +++ b/mods/skins/.gitignore @@ -0,0 +1,4 @@ +*~ +.previews/output +.previews/blender_out +.previews/pngcrush_output diff --git a/mods/skins/.previews/skin_previews.blend b/mods/skins/.previews/skin_previews.blend new file mode 100644 index 0000000..08acc19 Binary files /dev/null and b/mods/skins/.previews/skin_previews.blend differ diff --git a/mods/skins/README b/mods/skins/README new file mode 100644 index 0000000..7d8c26d --- /dev/null +++ b/mods/skins/README @@ -0,0 +1,76 @@ +minetest-skins +============== + +Skins mod for minetest. +To add 3D skins: +./install_skin.sh -3d +To add 2D skins: +./install_skin.sh -2d + +If you add a 3D skin, please re-run ./generate_previews.sh +Please run ./set_meta.sh after adding any skin, this will allow you to set the name, author and description for them. +Alternatively, you can directly edit the meta file in skins/meta/*.txt + +Feel free to send your skins via pull request or PM on the forum ! (with license information) + +Credits (also applies to back and previews of skins, please tell me if I missed someone): + +From minetest_game (CC BY-SA 3.0): + player_1.png +MirceaKitsune (WTFPL) + bundled script by Zeg9 (WTFPL too): + skin_previews.blend +Jordach (CC BY-SA 3.0): + character_1.png +Zeg9 (CC BY-SA 3.0): + character_2.png +jmf (WTFPL): + player_2.png + character_3.png + character_4.png + character_5.png + character_6.png + character_7.png + character_8.png + character_9.png + character_10.png + character_11.png +Chinchow (WTFPL): + character_12.png + character_13.png + character_14.png +HybridDog (CC BY-SA 3.0): + character_15.png + character_16.png + character_17.png + character_18.png +HybridDog (WTFPL): + player_10.png +Jordach (CC BY-NC-SA): + character_19.png + character_20.png + character_21.png + character_22.png + character_23.png + character_24.png + character_25.png + character_26.png +Stuart Jones (WTFPL): + character_27.png +klunk (WTFPL): + player_3.png +InfinityProject: + player_4.png + player_5.png + player_6.png + player_7.png + player_8.png + player_9.png +prof_turbo (WTFPL): + player_11.png + character_28.png + character_29.png +jojoa1997 (CC BY-SA 3.0): + character_30.png +cisoun (WTFPL): + player_12.png + diff --git a/mods/skins/generate_previews.sh b/mods/skins/generate_previews.sh new file mode 100644 index 0000000..e01a15e --- /dev/null +++ b/mods/skins/generate_previews.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# This script is used to generate the previews needed by the mod +# It requires blender with the latest python API (2.6x is tested) +# A script that works with older blenders and, maybe, without python, is available in older commits. +# This script can also use pngcrush and imagemagick to reduce output size, +# please enable them if you want to push to the git repository of the mod. +# Pngcrush output will be written to .previews/pngcrush_output +# Warning: any file in .previews/ and skins/textures might be deleted without asking. +PNGCRUSH=true +IMAGEMAGICK=true +cd .previews +rm ../skins/textures/*_preview*.png # Remove all previous previews +blender -b skin_previews.blend --python-text "Generate previews" > /dev/null +if $IMAGEMAGICK + then echo "Stripping metadata from generated files..." + else echo "Moving files..." +fi +rm -rf output # remove my output +mkdir -p output +for i in blender_out/character_*_00.png; +do + out_name=$(basename $i | sed -e 's/_00.png//g') + out_file=output/"$out_name"_preview.png + if $IMAGEMAGICK + then + convert -strip $i $out_file + else + mv $i $out_file + fi +done +for i in blender_out/character_*_01.png; +do + out_name=$(basename $i | sed -e 's/_01.png//g') + out_file=output/"$out_name"_preview_back.png + if $IMAGEMAGICK + then + convert -strip $i $out_file + else + mv $i $out_file + fi +done +if $PNGCRUSH + then + echo "Running pngcrush..." + pngcrush -d ../skins/textures/ output/*_preview*.png 2> pngcrush_output + else mv output/*_preview*.png ../skins/textures/ +fi +echo "Done !" diff --git a/mods/skins/install_skin.sh b/mods/skins/install_skin.sh new file mode 100644 index 0000000..96e8426 --- /dev/null +++ b/mods/skins/install_skin.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# This script can use pngcrush to reduce the size of your skins. +# You can disable it below. +# Settings: +PNGCRUSH=true +OUT=skins/textures/ +#------------------- + +USAGE="Usage: $0 <-2d|-3d> " + +if [ "$1" = '-2d' ] +then texture_type="player" +elif [ "$1" = '-3d' ] +then texture_type="character" +fi + +if [ "$texture_type" = "player" ] || [ "$texture_type" = "character" ] +then + lastid=0 + for i in $OUT/${texture_type}_*.png + do + id=$(basename $i | sed "s/[^0-9]//g") # remove everything non-number from it + if [ "$id" -gt "$lastid" ] + then lastid=$id + fi + done + nextid=$lastid + for i in $@ + do + if [ $i != $0 ] && [ $i != $1 ] && [ -f $i ] + then + extension="${i##*.}" + filename="${i%.*}" + if [ $extension = "png" ] + then + if [ $texture_type = "character" ] || [ -f "${filename}_back.png" ] + then + (( nextid=(nextid+1) )) + OUTPUT="$OUT/${texture_type}_$nextid.png" + echo "$i => $OUTPUT" + if $PNGCRUSH + then pngcrush $i $OUTPUT + else cp $i $OUTPUT + fi + if [ $texture_type = "player" ] + then + OUTPUT_BACK="$OUT/${texture_type}_${nextid}_back.png" + if $PNGCRUSH + then pngcrush "${filename}_back.png" $OUTPUT_BACK + else cp "${filename}_back.png" $OUTPUT_BACK + fi + fi + else + echo "Couldn't find back texture for $i." + fi + else + echo "Please use png extension for $i." + fi + fi + done +else + echo $USAGE +fi diff --git a/mods/skins/modpack.txt b/mods/skins/modpack.txt new file mode 100644 index 0000000..e69de29 diff --git a/mods/skins/set_meta.sh b/mods/skins/set_meta.sh new file mode 100644 index 0000000..ea1514e --- /dev/null +++ b/mods/skins/set_meta.sh @@ -0,0 +1,59 @@ +#!/bin/bash +SPRITES=$(find -regextype sed -regex '.*/player_[0-9]\{1,\}.png' | sort -V) +MODELS=$(find -regextype sed -regex '.*/character_[0-9]\{1,\}.png' | sort -V) +function ask_for_meta { + convert $2 -scale 100x200 /tmp/skins_set_meta + SNAME=$(basename $1) + SNAME=${SNAME%.*} + METAFILE=skins/meta/$SNAME.txt + FORCE=$3 + if $FORCE || ! [ -f $METAFILE ] + then + echo $METAFILE + YADOUT=$(yad --form --image=/tmp/skins_set_meta --field $SNAME:LBL --field=Name --field=Author --field=Description --field=Comment) + if [ -z "$YADOUT" ]; then exit; fi # canceled + OIFS="$IFS" + IFS='|' + read -a VALUES <<< "$YADOUT" + IFS="$OIFS" + NAME=${VALUES[1]} + AUTHOR=${VALUES[2]} + DESCRIPTION=${VALUES[3]} + COMMENT=${VALUES[4]} + if [ -n "$NAME" ] && [ -n "$AUTHOR" ] + then + echo -n > $METAFILE # clear it + echo 'name = "'$NAME'",' >> $METAFILE + echo 'author = "'$AUTHOR'",' >> $METAFILE + # only write description and comment if they are specified + if [ -n "$DESCRIPTION" ] + then + echo 'description = "'$DESCRIPTION'",' >> $METAFILE + fi + if [ -n "$COMMENT" ] + then + echo 'comment = "'$COMMENT'",' >> $METAFILE + fi + echo "Saved !" + fi + fi +} +if [ -z $1 ] +then + for i in $SPRITES + do + ask_for_meta $i $i false + done + for i in $MODELS + do + ask_for_meta $i ${i%.*}_preview.png false + done +else + if [ -f ${1%.*}_preview.png ] + then + ask_for_meta $1 ${1%.*}_preview.png true + else + ask_for_meta $1 $1 true + fi +fi +rm /tmp/skins_set_meta diff --git a/mods/skins/skins/depends.txt b/mods/skins/skins/depends.txt new file mode 100644 index 0000000..b33c80c --- /dev/null +++ b/mods/skins/skins/depends.txt @@ -0,0 +1,2 @@ +inventory_plus +default diff --git a/mods/skins/skins/init.lua b/mods/skins/skins/init.lua new file mode 100644 index 0000000..87087a0 --- /dev/null +++ b/mods/skins/skins/init.lua @@ -0,0 +1,217 @@ +-- Skins mod for minetest +-- Adds a skin gallery to the inventory, using inventory_plus +-- Released by Zeg9 under WTFPL +-- Have fun ! + +skins = {} +skins.type = { SPRITE=0, MODEL=1 } + +skins.skins = {} +skins.default = function() + return "character_1" +end + +skins.get_type = function(texture) + if not texture then return end + if string.sub(texture,0,string.len("character")) == "character" then + return skins.type.MODEL + end + if string.sub(texture,0,string.len("player")) == "player" then + return skins.type.SPRITE + end +end + +skins.modpath = minetest.get_modpath("skins") +dofile(skins.modpath.."/skinlist.lua") +dofile(skins.modpath.."/meta.lua") +dofile(skins.modpath.."/players.lua") + +skins.update_player_skin = function(player) + local name = player:get_player_name() + if skins.get_type(skins.skins[name]) == skins.type.SPRITE then + player:set_properties({ + visual = "upright_sprite", + textures = {skins.skins[name]..".png",skins.skins[name].."_back.png"}, + visual_size = {x=1, y=2}, + }) + elseif skins.get_type(skins.skins[name]) == skins.type.MODEL then + player:set_properties({ + visual = "mesh", + textures = {skins.skins[name]..".png"}, + visual_size = {x=1, y=1}, + }) + end + skins.save() +end + +skins.formspec = {} +skins.formspec.main = function(name) + page = skins.pages[name] + if page == nil then page = 0 end + print (name) + local player = minetest.get_player_by_name(name) + local player_inv = player:get_inventory() + player_inv:set_size("skinskey", 1) + player_inv:set_size("skinskey2", 1) + player_inv:set_size("knightskin", 1) + local formspec = "size[8,11.75]" + .. "button[0,0;2,.5;inven;Back]" + .. "button[2,0;2,.5;main;Main]" + .."background[8,12;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[current_player;skinskey;2,6;1,1;]" + .."list[current_player;skinskey2;4.5,6;1,1;]" + .."label[1.7,7;Pixeled Regnum Key]" + .."label[4.5,7;Knight Key]" + .."list[current_player;main;0,7.75;8,1;]" + .."list[current_player;main;0,9;8,3;8]" + if skins.get_type(skins.skins[name]) == skins.type.MODEL then + formspec = formspec + .. "image[0,.75;1,2;"..skins.skins[name].."_preview.png]" + .. "image[1,.75;1,2;"..skins.skins[name].."_preview_back.png]" + .. "label[6,.5;Raw texture:]" + .. "image[6,1;2,1;"..skins.skins[name]..".png]" + + else + formspec = formspec + .. "image[0,.75;1,2;"..skins.skins[name]..".png]" + .. "image[1,.75;1,2;"..skins.skins[name].."_back.png]" + end + local meta = skins.meta[skins.skins[name]] + if meta then + if meta.name then + formspec = formspec .. "label[2,.5;Name: "..meta.name.."]" + end + if meta.author then + formspec = formspec .. "label[2,1;Author: "..meta.author.."]" + end + if meta.comment then + formspec = formspec .. "label[2,1.5;"..meta.comment.."]" + end + if meta.description then + formspec = formspec .. "label[2,2;"..meta.description.."]" + end + end + local index = 0 + local skip = 0 -- Skip skins, used for pages + for i, skin in ipairs(skins.list) do + if skin == "character_68" then + if player:get_inventory():get_stack("skinskey",1):get_name() == "tutorial:regnum_key_pixeled" then + formspec = formspec .."button[6,5.8;2,1;skins_set_"..i..";see-through skin]" + end + elseif skin == "character_171" then + formspec = formspec .."button[0,5.8;1.5,1;skins_set_"..i..";1248]" + elseif skin == "character_172" then + formspec = formspec .."button[0,6.5;1.5,1;skins_set_"..i..";Nightmare]" + elseif skin == "character_175" or skin == "character_176" or skin == "character_177" or skin == "character_178" or skin == "character_179" then + if player:get_inventory():get_stack("skinskey2",1):get_name() == "tutorial:knight_schluessel" then + if player:get_inventory():get_stack("knightskin",1):get_count() == 0 then + formspec = formspec .."button[6,6.5;2,1;skins_set_175;Knight (red)]" + elseif player:get_inventory():get_stack("knightskin",1):get_count() == 1 then + formspec = formspec .."button[6,6.5;2,1;skins_set_176;Knight (blue)]" + elseif player:get_inventory():get_stack("knightskin",1):get_count() == 2 then + formspec = formspec .."button[6,6.5;2,1;skins_set_177;Knight (green)]" + elseif player:get_inventory():get_stack("knightskin",1):get_count() == 3 then + formspec = formspec .."button[6,6.5;2,1;skins_set_178;Knight (pink)]" + elseif player:get_inventory():get_stack("knightskin",1):get_count() == 4 then + formspec = formspec .."button[6,6.5;2,1;skins_set_179;Knight (purple)]" + end + end + + else + if skip < page*8 then skip = skip + 1 else + if index < 8 then + print(skin) + formspec = formspec .. "image_button["..(index%8)..",2.7;1,2;"..skin + if skins.get_type(skin) == skins.type.MODEL then + formspec = formspec .. "_preview" + end + formspec = formspec .. ".png;skins_set_"..i..";]" + end + index = index +1 + end + end + end + if page > 0 then + formspec = formspec .. "button[0,4.7;1,.5;skins_page_"..(page-1)..";<<]" + else + formspec = formspec .. "button[0,4.7;1,.5;skins_page_"..page..";<<]" + end + formspec = formspec .. "button[.75,4.7;6.5,.5;skins_page_"..page..";Page "..(page+1).."/"..math.floor(#skins.list/8+1).."]" -- a button is used so text is centered + if index > 8 then + formspec = formspec .. "button[7,4.7;1,.5;skins_page_"..(page+1)..";>>]" + else + formspec = formspec .. "button[7,4.7;1,.5;skins_page_"..page..";>>]" + end + return formspec +end + +skins.pages = {} + + +minetest.register_on_joinplayer(function(player) + if not skins.skins[player:get_player_name()] then + skins.skins[player:get_player_name()] = skins.default() + end + skins.update_player_skin(player) + --inventory_plus.register_button(player,"skins","Skin") +end) + +minetest.register_on_player_receive_fields(function(player,formname,fields) + if fields.skins then + inventory_plus.set_inventory_formspec(player,skins.formspec.main(player:get_player_name())) + end + if fields.skins_set_175 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("knightskin", 1) + local artrew = player_inv:set_stack("knightskin", 1, "default:dirt") + end + if fields.skins_set_176 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("knightskin", 1) + local artrew = player_inv:set_stack("knightskin", 1, "default:dirt 2") + end + if fields.skins_set_177 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("knightskin", 1) + local artrew = player_inv:set_stack("knightskin", 1, "default:dirt 3") + end + if fields.skins_set_178 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("knightskin", 1) + local artrew = player_inv:set_stack("knightskin", 1, "default:dirt 4") + end + if fields.skins_set_179 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("knightskin", 1) + local artrew = player_inv:set_stack("knightskin", 1, "") + end + for field, _ in pairs(fields) do + if string.sub(field,0,string.len("skins_set_")) == "skins_set_" then + skins.skins[player:get_player_name()] = skins.list[tonumber(string.sub(field,string.len("skins_set_")+1))] + skins.update_player_skin(player) + inventory_plus.set_inventory_formspec(player,skins.formspec.main(player:get_player_name())) + end + if string.sub(field,0,string.len("skins_page_")) == "skins_page_" then + skins.pages[player:get_player_name()] = tonumber(string.sub(field,string.len("skins_page_")+1)) + inventory_plus.set_inventory_formspec(player,skins.formspec.main(player:get_player_name())) + end + end +end) + diff --git a/mods/skins/skins/meta.lua b/mods/skins/skins/meta.lua new file mode 100644 index 0000000..0298d4c --- /dev/null +++ b/mods/skins/skins/meta.lua @@ -0,0 +1,15 @@ +skins.meta = {} +for _, i in ipairs(skins.list) do + skins.meta[i] = {} + local f = io.open(skins.modpath.."/meta/"..i..".txt") + local data = nil + if f then + data = minetest.deserialize("return {"..f:read('*all').."}") + f:close() + end + data = data or {} + skins.meta[i].name = data.name or "" + skins.meta[i].author = data.author or "" + skins.meta[i].description = data.description or nil + skins.meta[i].comment = data.comment or nil +end diff --git a/mods/skins/skins/meta/character_1.txt b/mods/skins/skins/meta/character_1.txt new file mode 100644 index 0000000..4ce982f --- /dev/null +++ b/mods/skins/skins/meta/character_1.txt @@ -0,0 +1,3 @@ +name = "Sam 0", +author = "Jordach", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_10.txt b/mods/skins/skins/meta/character_10.txt new file mode 100644 index 0000000..d429b87 --- /dev/null +++ b/mods/skins/skins/meta/character_10.txt @@ -0,0 +1,3 @@ +name = "Tuxedo Sam", +author = "Jordach", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_100.txt b/mods/skins/skins/meta/character_100.txt new file mode 100644 index 0000000..dc91886 --- /dev/null +++ b/mods/skins/skins/meta/character_100.txt @@ -0,0 +1,3 @@ +name = "Ladyvioletkitty", +author = "lordphoenixmh", +comment = "CC BY 4.0", diff --git a/mods/skins/skins/meta/character_101.txt b/mods/skins/skins/meta/character_101.txt new file mode 100644 index 0000000..1a43818 --- /dev/null +++ b/mods/skins/skins/meta/character_101.txt @@ -0,0 +1,3 @@ +name = "4°district", +author = "Ferdi Napoli", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_102.txt b/mods/skins/skins/meta/character_102.txt new file mode 100644 index 0000000..536ab0d --- /dev/null +++ b/mods/skins/skins/meta/character_102.txt @@ -0,0 +1,3 @@ +name = "Chop", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_103.txt b/mods/skins/skins/meta/character_103.txt new file mode 100644 index 0000000..2f736be --- /dev/null +++ b/mods/skins/skins/meta/character_103.txt @@ -0,0 +1,3 @@ +name = "Franklin", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_104.txt b/mods/skins/skins/meta/character_104.txt new file mode 100644 index 0000000..f27f45a --- /dev/null +++ b/mods/skins/skins/meta/character_104.txt @@ -0,0 +1,3 @@ +name = "Trevor", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_105.txt b/mods/skins/skins/meta/character_105.txt new file mode 100644 index 0000000..1bf1895 --- /dev/null +++ b/mods/skins/skins/meta/character_105.txt @@ -0,0 +1,3 @@ +name = "Bart Simpson", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_106.txt b/mods/skins/skins/meta/character_106.txt new file mode 100644 index 0000000..f66531b --- /dev/null +++ b/mods/skins/skins/meta/character_106.txt @@ -0,0 +1,3 @@ +name = "Creeper", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_107.txt b/mods/skins/skins/meta/character_107.txt new file mode 100644 index 0000000..90011d6 --- /dev/null +++ b/mods/skins/skins/meta/character_107.txt @@ -0,0 +1,3 @@ +name = "War Machine", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_108.txt b/mods/skins/skins/meta/character_108.txt new file mode 100644 index 0000000..7c95be2 --- /dev/null +++ b/mods/skins/skins/meta/character_108.txt @@ -0,0 +1,3 @@ +name = "Gangnam Style", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_109.txt b/mods/skins/skins/meta/character_109.txt new file mode 100644 index 0000000..164e538 --- /dev/null +++ b/mods/skins/skins/meta/character_109.txt @@ -0,0 +1,3 @@ +name = "Sonic The Hedgehog", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_11.txt b/mods/skins/skins/meta/character_11.txt new file mode 100644 index 0000000..f97f2d4 --- /dev/null +++ b/mods/skins/skins/meta/character_11.txt @@ -0,0 +1,3 @@ +name = "Semmett9", +author = "Infinatum", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_110.txt b/mods/skins/skins/meta/character_110.txt new file mode 100644 index 0000000..0b3b209 --- /dev/null +++ b/mods/skins/skins/meta/character_110.txt @@ -0,0 +1,3 @@ +name = "Charizard", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_111.txt b/mods/skins/skins/meta/character_111.txt new file mode 100644 index 0000000..f91b992 --- /dev/null +++ b/mods/skins/skins/meta/character_111.txt @@ -0,0 +1,3 @@ +name = "Scarlet Spider-man", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_112.txt b/mods/skins/skins/meta/character_112.txt new file mode 100644 index 0000000..c9eb7af --- /dev/null +++ b/mods/skins/skins/meta/character_112.txt @@ -0,0 +1,3 @@ +name = "Ferdi Napoli", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_113.txt b/mods/skins/skins/meta/character_113.txt new file mode 100644 index 0000000..7ad611a --- /dev/null +++ b/mods/skins/skins/meta/character_113.txt @@ -0,0 +1,3 @@ +name = "Finn The Adventured", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_114.txt b/mods/skins/skins/meta/character_114.txt new file mode 100644 index 0000000..a318033 --- /dev/null +++ b/mods/skins/skins/meta/character_114.txt @@ -0,0 +1,3 @@ +name = "Jake", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_115.txt b/mods/skins/skins/meta/character_115.txt new file mode 100644 index 0000000..8ca2623 --- /dev/null +++ b/mods/skins/skins/meta/character_115.txt @@ -0,0 +1,3 @@ +name = "Ferdi Napoli Reserve", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_116.txt b/mods/skins/skins/meta/character_116.txt new file mode 100644 index 0000000..c5a21e8 --- /dev/null +++ b/mods/skins/skins/meta/character_116.txt @@ -0,0 +1,3 @@ +name = "Joker", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_117.txt b/mods/skins/skins/meta/character_117.txt new file mode 100644 index 0000000..364927e --- /dev/null +++ b/mods/skins/skins/meta/character_117.txt @@ -0,0 +1,3 @@ +name = "Bleau Steve", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_118.txt b/mods/skins/skins/meta/character_118.txt new file mode 100644 index 0000000..1c0f833 --- /dev/null +++ b/mods/skins/skins/meta/character_118.txt @@ -0,0 +1,3 @@ +name = "Deadpool Bleau", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_119.txt b/mods/skins/skins/meta/character_119.txt new file mode 100644 index 0000000..f4cf8e7 --- /dev/null +++ b/mods/skins/skins/meta/character_119.txt @@ -0,0 +1,3 @@ +name = "Seth Rollins", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_12.txt b/mods/skins/skins/meta/character_12.txt new file mode 100644 index 0000000..3eca590 --- /dev/null +++ b/mods/skins/skins/meta/character_12.txt @@ -0,0 +1,3 @@ +name = "John", +author = "Evergreen", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_120.txt b/mods/skins/skins/meta/character_120.txt new file mode 100644 index 0000000..b4022c6 --- /dev/null +++ b/mods/skins/skins/meta/character_120.txt @@ -0,0 +1,3 @@ +name = "Daffy Duck", +author = "LuxAtheris", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_121.txt b/mods/skins/skins/meta/character_121.txt new file mode 100644 index 0000000..47f6532 --- /dev/null +++ b/mods/skins/skins/meta/character_121.txt @@ -0,0 +1,3 @@ +name = "DareDevil", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_122.txt b/mods/skins/skins/meta/character_122.txt new file mode 100644 index 0000000..8f1c277 --- /dev/null +++ b/mods/skins/skins/meta/character_122.txt @@ -0,0 +1,3 @@ +name = "Clone", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_123.txt b/mods/skins/skins/meta/character_123.txt new file mode 100644 index 0000000..b8c17a9 --- /dev/null +++ b/mods/skins/skins/meta/character_123.txt @@ -0,0 +1,3 @@ +name = "Banana Guy", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_124.txt b/mods/skins/skins/meta/character_124.txt new file mode 100644 index 0000000..c1b6213 --- /dev/null +++ b/mods/skins/skins/meta/character_124.txt @@ -0,0 +1,3 @@ +name = "Rubber", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_125.txt b/mods/skins/skins/meta/character_125.txt new file mode 100644 index 0000000..8c77b54 --- /dev/null +++ b/mods/skins/skins/meta/character_125.txt @@ -0,0 +1,3 @@ +name = "Gothic Sam", +author = "GingerHunter797", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_126.txt b/mods/skins/skins/meta/character_126.txt new file mode 100644 index 0000000..2849a7e --- /dev/null +++ b/mods/skins/skins/meta/character_126.txt @@ -0,0 +1,3 @@ +name = "Tails", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_127.txt b/mods/skins/skins/meta/character_127.txt new file mode 100644 index 0000000..51405c6 --- /dev/null +++ b/mods/skins/skins/meta/character_127.txt @@ -0,0 +1,3 @@ +name = "Aguia Explorer", +author = "Davizinho", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_128.txt b/mods/skins/skins/meta/character_128.txt new file mode 100644 index 0000000..0657843 --- /dev/null +++ b/mods/skins/skins/meta/character_128.txt @@ -0,0 +1,3 @@ +name = "Toad", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_129.txt b/mods/skins/skins/meta/character_129.txt new file mode 100644 index 0000000..de88469 --- /dev/null +++ b/mods/skins/skins/meta/character_129.txt @@ -0,0 +1,3 @@ +name = "oOChainLynxOo", +author = "oOChainLynxOo", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_13.txt b/mods/skins/skins/meta/character_13.txt new file mode 100644 index 0000000..027ebc7 --- /dev/null +++ b/mods/skins/skins/meta/character_13.txt @@ -0,0 +1,3 @@ +name = "rotor112", +author = "rotor112", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_130.txt b/mods/skins/skins/meta/character_130.txt new file mode 100644 index 0000000..ff10ff7 --- /dev/null +++ b/mods/skins/skins/meta/character_130.txt @@ -0,0 +1,3 @@ +name = "amazing spiderman", +author = "mateus", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_131.txt b/mods/skins/skins/meta/character_131.txt new file mode 100644 index 0000000..249b7e9 --- /dev/null +++ b/mods/skins/skins/meta/character_131.txt @@ -0,0 +1,3 @@ +name = "black spiderman", +author = "mateus", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_132.txt b/mods/skins/skins/meta/character_132.txt new file mode 100644 index 0000000..3863e51 --- /dev/null +++ b/mods/skins/skins/meta/character_132.txt @@ -0,0 +1,3 @@ +name = "Sam Mese Tee", +author = "oOChainLynxOo", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_133.txt b/mods/skins/skins/meta/character_133.txt new file mode 100644 index 0000000..092a399 --- /dev/null +++ b/mods/skins/skins/meta/character_133.txt @@ -0,0 +1,3 @@ +name = "Jesus", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_134.txt b/mods/skins/skins/meta/character_134.txt new file mode 100644 index 0000000..375d897 --- /dev/null +++ b/mods/skins/skins/meta/character_134.txt @@ -0,0 +1,3 @@ +name = "Wires", +author = "Geopbyte", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_135.txt b/mods/skins/skins/meta/character_135.txt new file mode 100644 index 0000000..1adf0fb --- /dev/null +++ b/mods/skins/skins/meta/character_135.txt @@ -0,0 +1,3 @@ +name = "Vector", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_136.txt b/mods/skins/skins/meta/character_136.txt new file mode 100644 index 0000000..7dea952 --- /dev/null +++ b/mods/skins/skins/meta/character_136.txt @@ -0,0 +1,3 @@ +name = "Fire Mario", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_137.txt b/mods/skins/skins/meta/character_137.txt new file mode 100644 index 0000000..f5d7249 --- /dev/null +++ b/mods/skins/skins/meta/character_137.txt @@ -0,0 +1,3 @@ +name = "skin minecraft", +author = "lestouem", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_138.txt b/mods/skins/skins/meta/character_138.txt new file mode 100644 index 0000000..a47cc9b --- /dev/null +++ b/mods/skins/skins/meta/character_138.txt @@ -0,0 +1,3 @@ +name = "santa", +author = "https://dl.dropbox.com/s/cs0vhq8kkzpcvre/santa.zip?dl=1", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_139.txt b/mods/skins/skins/meta/character_139.txt new file mode 100644 index 0000000..c29cb95 --- /dev/null +++ b/mods/skins/skins/meta/character_139.txt @@ -0,0 +1,3 @@ +name = "PenguinDad", +author = "PenguinDad", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_14.txt b/mods/skins/skins/meta/character_14.txt new file mode 100644 index 0000000..986da89 --- /dev/null +++ b/mods/skins/skins/meta/character_14.txt @@ -0,0 +1,3 @@ +name = "Older Man Sam", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_140.txt b/mods/skins/skins/meta/character_140.txt new file mode 100644 index 0000000..d79dd24 --- /dev/null +++ b/mods/skins/skins/meta/character_140.txt @@ -0,0 +1,3 @@ +name = "Army", +author = "Ragnar", +comment = "CC BY-NC-SA 4.0", diff --git a/mods/skins/skins/meta/character_141.txt b/mods/skins/skins/meta/character_141.txt new file mode 100644 index 0000000..287d97b --- /dev/null +++ b/mods/skins/skins/meta/character_141.txt @@ -0,0 +1,3 @@ +name = "New Ferdi Napoli Skin", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_142.txt b/mods/skins/skins/meta/character_142.txt new file mode 100644 index 0000000..af6ed6a --- /dev/null +++ b/mods/skins/skins/meta/character_142.txt @@ -0,0 +1,3 @@ +name = "Mcc457", +author = "Ferdi Napoli", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_143.txt b/mods/skins/skins/meta/character_143.txt new file mode 100644 index 0000000..60b3203 --- /dev/null +++ b/mods/skins/skins/meta/character_143.txt @@ -0,0 +1,3 @@ +name = "Jan", +author = "Jan", +comment = "CC BY 4.0", diff --git a/mods/skins/skins/meta/character_144.txt b/mods/skins/skins/meta/character_144.txt new file mode 100644 index 0000000..5445072 --- /dev/null +++ b/mods/skins/skins/meta/character_144.txt @@ -0,0 +1,3 @@ +name = "PilzAdam", +author = "PilzAdam", +comment = "CC BY 4.0", diff --git a/mods/skins/skins/meta/character_145.txt b/mods/skins/skins/meta/character_145.txt new file mode 100644 index 0000000..c9d2036 --- /dev/null +++ b/mods/skins/skins/meta/character_145.txt @@ -0,0 +1,3 @@ +name = "Renan123", +author = "sou o melhor", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_146.txt b/mods/skins/skins/meta/character_146.txt new file mode 100644 index 0000000..6286d6f --- /dev/null +++ b/mods/skins/skins/meta/character_146.txt @@ -0,0 +1,3 @@ +name = "PenguinDad with Cape", +author = "PenguinDad", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_147.txt b/mods/skins/skins/meta/character_147.txt new file mode 100644 index 0000000..9ca7a28 --- /dev/null +++ b/mods/skins/skins/meta/character_147.txt @@ -0,0 +1,3 @@ +name = "Adarqet", +author = "Adarqet", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_148.txt b/mods/skins/skins/meta/character_148.txt new file mode 100644 index 0000000..43d2bfe --- /dev/null +++ b/mods/skins/skins/meta/character_148.txt @@ -0,0 +1,3 @@ +name = "Adarqet(Cape)", +author = "Adarqet", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_149.txt b/mods/skins/skins/meta/character_149.txt new file mode 100644 index 0000000..25e5d90 --- /dev/null +++ b/mods/skins/skins/meta/character_149.txt @@ -0,0 +1,3 @@ +name = "wither", +author = "mario alberto", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_15.txt b/mods/skins/skins/meta/character_15.txt new file mode 100644 index 0000000..72c9144 --- /dev/null +++ b/mods/skins/skins/meta/character_15.txt @@ -0,0 +1,3 @@ +name = "G-Robo v5000", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_150.txt b/mods/skins/skins/meta/character_150.txt new file mode 100644 index 0000000..b7b80ae --- /dev/null +++ b/mods/skins/skins/meta/character_150.txt @@ -0,0 +1,3 @@ +name = "Cywalk Sam", +author = "w_laenger", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_151.txt b/mods/skins/skins/meta/character_151.txt new file mode 100644 index 0000000..37bc1b7 --- /dev/null +++ b/mods/skins/skins/meta/character_151.txt @@ -0,0 +1,3 @@ +name = "rantathe", +author = "ranta", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_152.txt b/mods/skins/skins/meta/character_152.txt new file mode 100644 index 0000000..d8353e7 --- /dev/null +++ b/mods/skins/skins/meta/character_152.txt @@ -0,0 +1,3 @@ +name = "ranta mk 2", +author = "ranta", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_153.txt b/mods/skins/skins/meta/character_153.txt new file mode 100644 index 0000000..6bc75ec --- /dev/null +++ b/mods/skins/skins/meta/character_153.txt @@ -0,0 +1,2 @@ +name = "Zeg9", +author = "Zeg9" \ No newline at end of file diff --git a/mods/skins/skins/meta/character_154.txt b/mods/skins/skins/meta/character_154.txt new file mode 100644 index 0000000..c49e171 --- /dev/null +++ b/mods/skins/skins/meta/character_154.txt @@ -0,0 +1,2 @@ +name = "Soldier", +author = "jmf", diff --git a/mods/skins/skins/meta/character_155.txt b/mods/skins/skins/meta/character_155.txt new file mode 100644 index 0000000..d97ac65 --- /dev/null +++ b/mods/skins/skins/meta/character_155.txt @@ -0,0 +1,2 @@ +name = "John", +author = "jmf", diff --git a/mods/skins/skins/meta/character_156.txt b/mods/skins/skins/meta/character_156.txt new file mode 100644 index 0000000..556d19e --- /dev/null +++ b/mods/skins/skins/meta/character_156.txt @@ -0,0 +1,2 @@ +name = "Ninja", +author = "jmf", diff --git a/mods/skins/skins/meta/character_157.txt b/mods/skins/skins/meta/character_157.txt new file mode 100644 index 0000000..b04689b --- /dev/null +++ b/mods/skins/skins/meta/character_157.txt @@ -0,0 +1,2 @@ +name = "Oerkki", +author = "jmf", diff --git a/mods/skins/skins/meta/character_158.txt b/mods/skins/skins/meta/character_158.txt new file mode 100644 index 0000000..92e21f0 --- /dev/null +++ b/mods/skins/skins/meta/character_158.txt @@ -0,0 +1,2 @@ +name = "Tux", +author = "jmf", diff --git a/mods/skins/skins/meta/character_159.txt b/mods/skins/skins/meta/character_159.txt new file mode 100644 index 0000000..a0b0a2d --- /dev/null +++ b/mods/skins/skins/meta/character_159.txt @@ -0,0 +1,2 @@ +name = "Black belt", +author = "jmf", diff --git a/mods/skins/skins/meta/character_16.txt b/mods/skins/skins/meta/character_16.txt new file mode 100644 index 0000000..97f2c52 --- /dev/null +++ b/mods/skins/skins/meta/character_16.txt @@ -0,0 +1,3 @@ +name = "jojoa1997", +author = "jojoa1997", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_160.txt b/mods/skins/skins/meta/character_160.txt new file mode 100644 index 0000000..44dee64 --- /dev/null +++ b/mods/skins/skins/meta/character_160.txt @@ -0,0 +1,2 @@ +name = "Assassin", +author = "jmf", diff --git a/mods/skins/skins/meta/character_161.txt b/mods/skins/skins/meta/character_161.txt new file mode 100644 index 0000000..61660ae --- /dev/null +++ b/mods/skins/skins/meta/character_161.txt @@ -0,0 +1,2 @@ +name = "Harry", +author = "jmf", diff --git a/mods/skins/skins/meta/character_162.txt b/mods/skins/skins/meta/character_162.txt new file mode 100644 index 0000000..324072c --- /dev/null +++ b/mods/skins/skins/meta/character_162.txt @@ -0,0 +1,2 @@ +name = "Bob", +author = "Chinchow", diff --git a/mods/skins/skins/meta/character_163.txt b/mods/skins/skins/meta/character_163.txt new file mode 100644 index 0000000..eed33f6 --- /dev/null +++ b/mods/skins/skins/meta/character_163.txt @@ -0,0 +1,2 @@ +name = "Jannette", +author = "Chinchow", diff --git a/mods/skins/skins/meta/character_164.txt b/mods/skins/skins/meta/character_164.txt new file mode 100644 index 0000000..75fa68d --- /dev/null +++ b/mods/skins/skins/meta/character_164.txt @@ -0,0 +1,2 @@ +name = "Sheriff", +author = "Chinchow", diff --git a/mods/skins/skins/meta/character_165.txt b/mods/skins/skins/meta/character_165.txt new file mode 100644 index 0000000..c1616af --- /dev/null +++ b/mods/skins/skins/meta/character_165.txt @@ -0,0 +1,2 @@ +name = "Sepia Sam", +author = "Hybrid Dog", diff --git a/mods/skins/skins/meta/character_166.txt b/mods/skins/skins/meta/character_166.txt new file mode 100644 index 0000000..e2cbcec --- /dev/null +++ b/mods/skins/skins/meta/character_166.txt @@ -0,0 +1,2 @@ +name = "Hybrid Sam", +author = "Hybrid Dog", diff --git a/mods/skins/skins/meta/character_167.txt b/mods/skins/skins/meta/character_167.txt new file mode 100644 index 0000000..6992215 --- /dev/null +++ b/mods/skins/skins/meta/character_167.txt @@ -0,0 +1,2 @@ +name = "Battlefield 3 Soldier", +author = "Jordach", diff --git a/mods/skins/skins/meta/character_168.txt b/mods/skins/skins/meta/character_168.txt new file mode 100644 index 0000000..0b85b91 --- /dev/null +++ b/mods/skins/skins/meta/character_168.txt @@ -0,0 +1,2 @@ +name = "Max", +author = "Stuart Jones", diff --git a/mods/skins/skins/meta/character_169.txt b/mods/skins/skins/meta/character_169.txt new file mode 100644 index 0000000..8704f06 --- /dev/null +++ b/mods/skins/skins/meta/character_169.txt @@ -0,0 +1,2 @@ +name = "Slenderman", +author = "prof_turbo", diff --git a/mods/skins/skins/meta/character_17.txt b/mods/skins/skins/meta/character_17.txt new file mode 100644 index 0000000..8449253 --- /dev/null +++ b/mods/skins/skins/meta/character_17.txt @@ -0,0 +1,3 @@ +name = "Zenohelds default player", +author = "sdzen", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_170.txt b/mods/skins/skins/meta/character_170.txt new file mode 100644 index 0000000..07b2b27 --- /dev/null +++ b/mods/skins/skins/meta/character_170.txt @@ -0,0 +1,2 @@ +name = "Strange Killer", +author = "prof_turbo", diff --git a/mods/skins/skins/meta/character_171.txt b/mods/skins/skins/meta/character_171.txt new file mode 100644 index 0000000..a381431 --- /dev/null +++ b/mods/skins/skins/meta/character_171.txt @@ -0,0 +1,4 @@ +name = "Knight 1248", +author = "???", +description = "", +comment = "to minetest by 1248", diff --git a/mods/skins/skins/meta/character_172.txt b/mods/skins/skins/meta/character_172.txt new file mode 100644 index 0000000..5fc1f79 --- /dev/null +++ b/mods/skins/skins/meta/character_172.txt @@ -0,0 +1,4 @@ +name = "Nightmare", +author = "Nightmare_LP", +description = "", +comment = "to minetest by 1248", diff --git a/mods/skins/skins/meta/character_173.txt b/mods/skins/skins/meta/character_173.txt new file mode 100644 index 0000000..a866a80 --- /dev/null +++ b/mods/skins/skins/meta/character_173.txt @@ -0,0 +1,3 @@ +name = "Smurf", +author = "1248", + diff --git a/mods/skins/skins/meta/character_174.txt b/mods/skins/skins/meta/character_174.txt new file mode 100644 index 0000000..31745a6 --- /dev/null +++ b/mods/skins/skins/meta/character_174.txt @@ -0,0 +1,4 @@ +name = "PopularMMOs ", +author = "???", +description = "1.Spezial Skin", +comment = "to minetest by 1248", diff --git a/mods/skins/skins/meta/character_175.txt b/mods/skins/skins/meta/character_175.txt new file mode 100644 index 0000000..1d0518a --- /dev/null +++ b/mods/skins/skins/meta/character_175.txt @@ -0,0 +1,4 @@ +name = "Knight red", +author = "???", +description = "", +comment = "to minetest by 1248", diff --git a/mods/skins/skins/meta/character_176.txt b/mods/skins/skins/meta/character_176.txt new file mode 100644 index 0000000..73d5b2c --- /dev/null +++ b/mods/skins/skins/meta/character_176.txt @@ -0,0 +1,4 @@ +name = "Knight blue", +author = "???", +description = "", +comment = "to minetest by 1248", diff --git a/mods/skins/skins/meta/character_177.txt b/mods/skins/skins/meta/character_177.txt new file mode 100644 index 0000000..12506f9 --- /dev/null +++ b/mods/skins/skins/meta/character_177.txt @@ -0,0 +1,4 @@ +name = "Knight green", +author = "???", +description = "", +comment = "to minetest by 1248", diff --git a/mods/skins/skins/meta/character_178.txt b/mods/skins/skins/meta/character_178.txt new file mode 100644 index 0000000..f980370 --- /dev/null +++ b/mods/skins/skins/meta/character_178.txt @@ -0,0 +1,4 @@ +name = "Knight pink", +author = "???", +description = "", +comment = "to minetest by 1248", diff --git a/mods/skins/skins/meta/character_179.txt b/mods/skins/skins/meta/character_179.txt new file mode 100644 index 0000000..d445248 --- /dev/null +++ b/mods/skins/skins/meta/character_179.txt @@ -0,0 +1,4 @@ +name = "Knight purple", +author = "???", +description = "", +comment = "to minetest by 1248", diff --git a/mods/skins/skins/meta/character_18.txt b/mods/skins/skins/meta/character_18.txt new file mode 100644 index 0000000..76b5317 --- /dev/null +++ b/mods/skins/skins/meta/character_18.txt @@ -0,0 +1,3 @@ +name = "Sdzen", +author = "sdzen", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_19.txt b/mods/skins/skins/meta/character_19.txt new file mode 100644 index 0000000..61d1ac1 --- /dev/null +++ b/mods/skins/skins/meta/character_19.txt @@ -0,0 +1,3 @@ +name = "horrible spring sdzen", +author = "sdzen", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_2.txt b/mods/skins/skins/meta/character_2.txt new file mode 100644 index 0000000..9c1fc69 --- /dev/null +++ b/mods/skins/skins/meta/character_2.txt @@ -0,0 +1,3 @@ +name = "Sam I", +author = "Jordach", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_20.txt b/mods/skins/skins/meta/character_20.txt new file mode 100644 index 0000000..b40a0e3 --- /dev/null +++ b/mods/skins/skins/meta/character_20.txt @@ -0,0 +1,3 @@ +name = "B", +author = "sdzen", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_21.txt b/mods/skins/skins/meta/character_21.txt new file mode 100644 index 0000000..f95684d --- /dev/null +++ b/mods/skins/skins/meta/character_21.txt @@ -0,0 +1,3 @@ +name = "Demon Farmer Sam (ray8888 server)", +author = "sdzen", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_22.txt b/mods/skins/skins/meta/character_22.txt new file mode 100644 index 0000000..9d9bceb --- /dev/null +++ b/mods/skins/skins/meta/character_22.txt @@ -0,0 +1,3 @@ +name = "Tree", +author = "Evergreen", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_23.txt b/mods/skins/skins/meta/character_23.txt new file mode 100644 index 0000000..9ff916a --- /dev/null +++ b/mods/skins/skins/meta/character_23.txt @@ -0,0 +1,3 @@ +name = "Interstella 5555 guitarist", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_24.txt b/mods/skins/skins/meta/character_24.txt new file mode 100644 index 0000000..2c6c612 --- /dev/null +++ b/mods/skins/skins/meta/character_24.txt @@ -0,0 +1,3 @@ +name = "Brett Favre", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_25.txt b/mods/skins/skins/meta/character_25.txt new file mode 100644 index 0000000..6a66820 --- /dev/null +++ b/mods/skins/skins/meta/character_25.txt @@ -0,0 +1,3 @@ +name = "Summer Sam", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_26.txt b/mods/skins/skins/meta/character_26.txt new file mode 100644 index 0000000..1665581 --- /dev/null +++ b/mods/skins/skins/meta/character_26.txt @@ -0,0 +1,3 @@ +name = "Female Sam II", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_27.txt b/mods/skins/skins/meta/character_27.txt new file mode 100644 index 0000000..50558a1 --- /dev/null +++ b/mods/skins/skins/meta/character_27.txt @@ -0,0 +1,3 @@ +name = "Space Sam", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_28.txt b/mods/skins/skins/meta/character_28.txt new file mode 100644 index 0000000..9d9bceb --- /dev/null +++ b/mods/skins/skins/meta/character_28.txt @@ -0,0 +1,3 @@ +name = "Tree", +author = "Evergreen", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_29.txt b/mods/skins/skins/meta/character_29.txt new file mode 100644 index 0000000..b652f0d --- /dev/null +++ b/mods/skins/skins/meta/character_29.txt @@ -0,0 +1,3 @@ +name = "steel man", +author = "rotor112", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_3.txt b/mods/skins/skins/meta/character_3.txt new file mode 100644 index 0000000..2ec3932 --- /dev/null +++ b/mods/skins/skins/meta/character_3.txt @@ -0,0 +1,3 @@ +name = "Sam II", +author = "Jordach", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_30.txt b/mods/skins/skins/meta/character_30.txt new file mode 100644 index 0000000..073cfbe --- /dev/null +++ b/mods/skins/skins/meta/character_30.txt @@ -0,0 +1,3 @@ +name = "philipbenr", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_31.txt b/mods/skins/skins/meta/character_31.txt new file mode 100644 index 0000000..ffc5124 --- /dev/null +++ b/mods/skins/skins/meta/character_31.txt @@ -0,0 +1,3 @@ +name = "vf", +author = "vf", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_32.txt b/mods/skins/skins/meta/character_32.txt new file mode 100644 index 0000000..6aa8740 --- /dev/null +++ b/mods/skins/skins/meta/character_32.txt @@ -0,0 +1,3 @@ +name = "Summer", +author = "lizzie", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_33.txt b/mods/skins/skins/meta/character_33.txt new file mode 100644 index 0000000..a5df9d5 --- /dev/null +++ b/mods/skins/skins/meta/character_33.txt @@ -0,0 +1,3 @@ +name = "jojoa1997 2", +author = "jojoa1997", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_34.txt b/mods/skins/skins/meta/character_34.txt new file mode 100644 index 0000000..b65a4cd --- /dev/null +++ b/mods/skins/skins/meta/character_34.txt @@ -0,0 +1,3 @@ +name = "warrior", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_35.txt b/mods/skins/skins/meta/character_35.txt new file mode 100644 index 0000000..c5cf588 --- /dev/null +++ b/mods/skins/skins/meta/character_35.txt @@ -0,0 +1,3 @@ +name = "NERD", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_36.txt b/mods/skins/skins/meta/character_36.txt new file mode 100644 index 0000000..263f92d --- /dev/null +++ b/mods/skins/skins/meta/character_36.txt @@ -0,0 +1,3 @@ +name = "pj time", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_37.txt b/mods/skins/skins/meta/character_37.txt new file mode 100644 index 0000000..9efaf0b --- /dev/null +++ b/mods/skins/skins/meta/character_37.txt @@ -0,0 +1,3 @@ +name = "adventure", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_38.txt b/mods/skins/skins/meta/character_38.txt new file mode 100644 index 0000000..c3d0064 --- /dev/null +++ b/mods/skins/skins/meta/character_38.txt @@ -0,0 +1,3 @@ +name = "marthon", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_39.txt b/mods/skins/skins/meta/character_39.txt new file mode 100644 index 0000000..819663d --- /dev/null +++ b/mods/skins/skins/meta/character_39.txt @@ -0,0 +1,3 @@ +name = "DASHING", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_4.txt b/mods/skins/skins/meta/character_4.txt new file mode 100644 index 0000000..cd07e66 --- /dev/null +++ b/mods/skins/skins/meta/character_4.txt @@ -0,0 +1,3 @@ +name = "Zeg9", +author = "Zeg9", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_40.txt b/mods/skins/skins/meta/character_40.txt new file mode 100644 index 0000000..7968e4a --- /dev/null +++ b/mods/skins/skins/meta/character_40.txt @@ -0,0 +1,3 @@ +name = "ALTNINJA", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_41.txt b/mods/skins/skins/meta/character_41.txt new file mode 100644 index 0000000..da88331 --- /dev/null +++ b/mods/skins/skins/meta/character_41.txt @@ -0,0 +1,3 @@ +name = "NK", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_42.txt b/mods/skins/skins/meta/character_42.txt new file mode 100644 index 0000000..7895ea9 --- /dev/null +++ b/mods/skins/skins/meta/character_42.txt @@ -0,0 +1,3 @@ +name = "BORN", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_43.txt b/mods/skins/skins/meta/character_43.txt new file mode 100644 index 0000000..5bbef4c --- /dev/null +++ b/mods/skins/skins/meta/character_43.txt @@ -0,0 +1,3 @@ +name = "DJSTEREO", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_44.txt b/mods/skins/skins/meta/character_44.txt new file mode 100644 index 0000000..38056f0 --- /dev/null +++ b/mods/skins/skins/meta/character_44.txt @@ -0,0 +1,3 @@ +name = "aaaaaaaaaahh", +author = "DJOZZY", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_45.txt b/mods/skins/skins/meta/character_45.txt new file mode 100644 index 0000000..c18f741 --- /dev/null +++ b/mods/skins/skins/meta/character_45.txt @@ -0,0 +1,3 @@ +name = "villiantest", +author = "marshrover", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_46.txt b/mods/skins/skins/meta/character_46.txt new file mode 100644 index 0000000..6a3655e --- /dev/null +++ b/mods/skins/skins/meta/character_46.txt @@ -0,0 +1,3 @@ +name = "villiantest II", +author = "marshrover", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_47.txt b/mods/skins/skins/meta/character_47.txt new file mode 100644 index 0000000..38e3ade --- /dev/null +++ b/mods/skins/skins/meta/character_47.txt @@ -0,0 +1,3 @@ +name = "Infantry man", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_48.txt b/mods/skins/skins/meta/character_48.txt new file mode 100644 index 0000000..d820f07 --- /dev/null +++ b/mods/skins/skins/meta/character_48.txt @@ -0,0 +1,3 @@ +name = "Natsu (Fairy Tail)", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_49.txt b/mods/skins/skins/meta/character_49.txt new file mode 100644 index 0000000..f1ea465 --- /dev/null +++ b/mods/skins/skins/meta/character_49.txt @@ -0,0 +1,3 @@ +name = "My younger Brother", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_5.txt b/mods/skins/skins/meta/character_5.txt new file mode 100644 index 0000000..47ce5ea --- /dev/null +++ b/mods/skins/skins/meta/character_5.txt @@ -0,0 +1,3 @@ +name = "VanessaE", +author = "Jordach", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_50.txt b/mods/skins/skins/meta/character_50.txt new file mode 100644 index 0000000..706f4f2 --- /dev/null +++ b/mods/skins/skins/meta/character_50.txt @@ -0,0 +1,3 @@ +name = "Herobrine", +author = "Theggabook", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_51.txt b/mods/skins/skins/meta/character_51.txt new file mode 100644 index 0000000..b86ba7a --- /dev/null +++ b/mods/skins/skins/meta/character_51.txt @@ -0,0 +1,3 @@ +name = "Mcc457", +author = "Mccc457", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_52.txt b/mods/skins/skins/meta/character_52.txt new file mode 100644 index 0000000..f1b1500 --- /dev/null +++ b/mods/skins/skins/meta/character_52.txt @@ -0,0 +1,3 @@ +name = "lisa", +author = "hansuke123", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_53.txt b/mods/skins/skins/meta/character_53.txt new file mode 100644 index 0000000..86770ca --- /dev/null +++ b/mods/skins/skins/meta/character_53.txt @@ -0,0 +1,3 @@ +name = "creeper man steve", +author = "hansuke123", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_54.txt b/mods/skins/skins/meta/character_54.txt new file mode 100644 index 0000000..aa8f644 --- /dev/null +++ b/mods/skins/skins/meta/character_54.txt @@ -0,0 +1,3 @@ +name = "stormchaser30000", +author = "stormchaser3000", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_55.txt b/mods/skins/skins/meta/character_55.txt new file mode 100644 index 0000000..e4ec73d --- /dev/null +++ b/mods/skins/skins/meta/character_55.txt @@ -0,0 +1,3 @@ +name = "Devil", +author = "viv100", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_56.txt b/mods/skins/skins/meta/character_56.txt new file mode 100644 index 0000000..1b55089 --- /dev/null +++ b/mods/skins/skins/meta/character_56.txt @@ -0,0 +1,3 @@ +name = "viv100", +author = "viv100", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_57.txt b/mods/skins/skins/meta/character_57.txt new file mode 100644 index 0000000..7d0073f --- /dev/null +++ b/mods/skins/skins/meta/character_57.txt @@ -0,0 +1,3 @@ +name = "Zombie", +author = "viv100", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_58.txt b/mods/skins/skins/meta/character_58.txt new file mode 100644 index 0000000..837d8ef --- /dev/null +++ b/mods/skins/skins/meta/character_58.txt @@ -0,0 +1,3 @@ +name = "God", +author = "viv100", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_59.txt b/mods/skins/skins/meta/character_59.txt new file mode 100644 index 0000000..58fb67b --- /dev/null +++ b/mods/skins/skins/meta/character_59.txt @@ -0,0 +1,3 @@ +name = "CaligoPL", +author = "CaligoPL", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_6.txt b/mods/skins/skins/meta/character_6.txt new file mode 100644 index 0000000..38bc39e --- /dev/null +++ b/mods/skins/skins/meta/character_6.txt @@ -0,0 +1,3 @@ +name = "Iron Man MK. 7", +author = "Jordach", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_60.txt b/mods/skins/skins/meta/character_60.txt new file mode 100644 index 0000000..7346263 --- /dev/null +++ b/mods/skins/skins/meta/character_60.txt @@ -0,0 +1,3 @@ +name = "Emma", +author = "Cidney7760", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_61.txt b/mods/skins/skins/meta/character_61.txt new file mode 100644 index 0000000..3560350 --- /dev/null +++ b/mods/skins/skins/meta/character_61.txt @@ -0,0 +1,3 @@ +name = "Wants", +author = "Wants", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_62.txt b/mods/skins/skins/meta/character_62.txt new file mode 100644 index 0000000..f08062f --- /dev/null +++ b/mods/skins/skins/meta/character_62.txt @@ -0,0 +1,3 @@ +name = "villiantest III", +author = "marshrover", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_63.txt b/mods/skins/skins/meta/character_63.txt new file mode 100644 index 0000000..b67582e --- /dev/null +++ b/mods/skins/skins/meta/character_63.txt @@ -0,0 +1,3 @@ +name = "Geopbyte", +author = "Geopbyte", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_64.txt b/mods/skins/skins/meta/character_64.txt new file mode 100644 index 0000000..648cd34 --- /dev/null +++ b/mods/skins/skins/meta/character_64.txt @@ -0,0 +1,3 @@ +name = "Diamond Armor Sam", +author = "Block_Guy", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_65.txt b/mods/skins/skins/meta/character_65.txt new file mode 100644 index 0000000..01a7546 --- /dev/null +++ b/mods/skins/skins/meta/character_65.txt @@ -0,0 +1,3 @@ +name = "Hobo/Homeless person", +author = "Minetestian", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_66.txt b/mods/skins/skins/meta/character_66.txt new file mode 100644 index 0000000..6499072 --- /dev/null +++ b/mods/skins/skins/meta/character_66.txt @@ -0,0 +1,3 @@ +name = "Block_Guy", +author = "Block_Guy", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_67.txt b/mods/skins/skins/meta/character_67.txt new file mode 100644 index 0000000..b7c0196 --- /dev/null +++ b/mods/skins/skins/meta/character_67.txt @@ -0,0 +1,3 @@ +name = "Solid-Color Sam", +author = "Block_Guy", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_68.txt b/mods/skins/skins/meta/character_68.txt new file mode 100644 index 0000000..b5ca25e --- /dev/null +++ b/mods/skins/skins/meta/character_68.txt @@ -0,0 +1,2 @@ +name = "see-through", +author = "1248", \ No newline at end of file diff --git a/mods/skins/skins/meta/character_69.txt b/mods/skins/skins/meta/character_69.txt new file mode 100644 index 0000000..c6b5d90 --- /dev/null +++ b/mods/skins/skins/meta/character_69.txt @@ -0,0 +1,3 @@ +name = "RockerLuke skin", +author = "RockerLuke", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_7.txt b/mods/skins/skins/meta/character_7.txt new file mode 100644 index 0000000..c8fac67 --- /dev/null +++ b/mods/skins/skins/meta/character_7.txt @@ -0,0 +1,3 @@ +name = "C55", +author = "Jordach", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_70.txt b/mods/skins/skins/meta/character_70.txt new file mode 100644 index 0000000..648cd34 --- /dev/null +++ b/mods/skins/skins/meta/character_70.txt @@ -0,0 +1,3 @@ +name = "Diamond Armor Sam", +author = "Block_Guy", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_71.txt b/mods/skins/skins/meta/character_71.txt new file mode 100644 index 0000000..4c8d9cb --- /dev/null +++ b/mods/skins/skins/meta/character_71.txt @@ -0,0 +1,3 @@ +name = "Molten Elemental", +author = "Dunedubby", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_72.txt b/mods/skins/skins/meta/character_72.txt new file mode 100644 index 0000000..d17e592 --- /dev/null +++ b/mods/skins/skins/meta/character_72.txt @@ -0,0 +1,3 @@ +name = "herobrine", +author = "Zaki", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_73.txt b/mods/skins/skins/meta/character_73.txt new file mode 100644 index 0000000..447dc3a --- /dev/null +++ b/mods/skins/skins/meta/character_73.txt @@ -0,0 +1,3 @@ +name = "Link", +author = "tux_peng", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_74.txt b/mods/skins/skins/meta/character_74.txt new file mode 100644 index 0000000..cbe6f7b --- /dev/null +++ b/mods/skins/skins/meta/character_74.txt @@ -0,0 +1,3 @@ +name = "Saris", +author = "Gfiti", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_75.txt b/mods/skins/skins/meta/character_75.txt new file mode 100644 index 0000000..3d78cf9 --- /dev/null +++ b/mods/skins/skins/meta/character_75.txt @@ -0,0 +1,3 @@ +name = "Malon", +author = "SummerCampV", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_76.txt b/mods/skins/skins/meta/character_76.txt new file mode 100644 index 0000000..350ee8c --- /dev/null +++ b/mods/skins/skins/meta/character_76.txt @@ -0,0 +1,3 @@ +name = "Froggy", +author = "Linxx", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_77.txt b/mods/skins/skins/meta/character_77.txt new file mode 100644 index 0000000..4f003e4 --- /dev/null +++ b/mods/skins/skins/meta/character_77.txt @@ -0,0 +1,3 @@ +name = "Bob", +author = "LuxAtheris", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_78.txt b/mods/skins/skins/meta/character_78.txt new file mode 100644 index 0000000..ec3e3a3 --- /dev/null +++ b/mods/skins/skins/meta/character_78.txt @@ -0,0 +1,3 @@ +name = "Naruto", +author = "LuxAtheris", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_79.txt b/mods/skins/skins/meta/character_79.txt new file mode 100644 index 0000000..5236104 --- /dev/null +++ b/mods/skins/skins/meta/character_79.txt @@ -0,0 +1,3 @@ +name = "LuxAtheris", +author = "LuxAtheris", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_8.txt b/mods/skins/skins/meta/character_8.txt new file mode 100644 index 0000000..f46a1db --- /dev/null +++ b/mods/skins/skins/meta/character_8.txt @@ -0,0 +1,3 @@ +name = "Female Sam", +author = "Jordach", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_80.txt b/mods/skins/skins/meta/character_80.txt new file mode 100644 index 0000000..d7d12b1 --- /dev/null +++ b/mods/skins/skins/meta/character_80.txt @@ -0,0 +1,3 @@ +name = "Alien", +author = "jmf", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_81.txt b/mods/skins/skins/meta/character_81.txt new file mode 100644 index 0000000..be129cb --- /dev/null +++ b/mods/skins/skins/meta/character_81.txt @@ -0,0 +1,3 @@ +name = "manoel1500", +author = "manoel1500", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_82.txt b/mods/skins/skins/meta/character_82.txt new file mode 100644 index 0000000..4068196 --- /dev/null +++ b/mods/skins/skins/meta/character_82.txt @@ -0,0 +1,3 @@ +name = "Vile Sam", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_83.txt b/mods/skins/skins/meta/character_83.txt new file mode 100644 index 0000000..bfe610f --- /dev/null +++ b/mods/skins/skins/meta/character_83.txt @@ -0,0 +1,3 @@ +name = "BlueZ Sam II", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_84.txt b/mods/skins/skins/meta/character_84.txt new file mode 100644 index 0000000..427a018 --- /dev/null +++ b/mods/skins/skins/meta/character_84.txt @@ -0,0 +1,3 @@ +name = "Tetra", +author = "philipbenr", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_85.txt b/mods/skins/skins/meta/character_85.txt new file mode 100644 index 0000000..bf6c9ce --- /dev/null +++ b/mods/skins/skins/meta/character_85.txt @@ -0,0 +1,3 @@ +name = "AMMOnym", +author = "AMMOnym", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_86.txt b/mods/skins/skins/meta/character_86.txt new file mode 100644 index 0000000..e4e10cf --- /dev/null +++ b/mods/skins/skins/meta/character_86.txt @@ -0,0 +1,3 @@ +name = "Soldier", +author = "Ragnar", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_87.txt b/mods/skins/skins/meta/character_87.txt new file mode 100644 index 0000000..1e0a9a1 --- /dev/null +++ b/mods/skins/skins/meta/character_87.txt @@ -0,0 +1,3 @@ +name = "TestManiac", +author = "AMMOnym", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_88.txt b/mods/skins/skins/meta/character_88.txt new file mode 100644 index 0000000..ab1c240 --- /dev/null +++ b/mods/skins/skins/meta/character_88.txt @@ -0,0 +1,3 @@ +name = "HurtedOerkki", +author = "AMMOnym", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_89.txt b/mods/skins/skins/meta/character_89.txt new file mode 100644 index 0000000..421ba4d --- /dev/null +++ b/mods/skins/skins/meta/character_89.txt @@ -0,0 +1,3 @@ +name = "S"am"TEVE", +author = "AMMOnym", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_9.txt b/mods/skins/skins/meta/character_9.txt new file mode 100644 index 0000000..74e9f5d --- /dev/null +++ b/mods/skins/skins/meta/character_9.txt @@ -0,0 +1,3 @@ +name = "Jordach", +author = "Jordach", +comment = "CC BY-NC-SA 3.0", diff --git a/mods/skins/skins/meta/character_90.txt b/mods/skins/skins/meta/character_90.txt new file mode 100644 index 0000000..fc8b402 --- /dev/null +++ b/mods/skins/skins/meta/character_90.txt @@ -0,0 +1,3 @@ +name = "Samerkki", +author = "AMMOnym", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_91.txt b/mods/skins/skins/meta/character_91.txt new file mode 100644 index 0000000..b478f94 --- /dev/null +++ b/mods/skins/skins/meta/character_91.txt @@ -0,0 +1,3 @@ +name = "Calinou", +author = "Calinou", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_92.txt b/mods/skins/skins/meta/character_92.txt new file mode 100644 index 0000000..7ca07c0 --- /dev/null +++ b/mods/skins/skins/meta/character_92.txt @@ -0,0 +1,3 @@ +name = "Black", +author = "Calinou", +comment = "CC BY 4.0", diff --git a/mods/skins/skins/meta/character_93.txt b/mods/skins/skins/meta/character_93.txt new file mode 100644 index 0000000..a10fa16 --- /dev/null +++ b/mods/skins/skins/meta/character_93.txt @@ -0,0 +1,3 @@ +name = "SuperSam", +author = "AMMOnym", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_94.txt b/mods/skins/skins/meta/character_94.txt new file mode 100644 index 0000000..d57d277 --- /dev/null +++ b/mods/skins/skins/meta/character_94.txt @@ -0,0 +1,3 @@ +name = "TrollSam", +author = "AMMOnym", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_95.txt b/mods/skins/skins/meta/character_95.txt new file mode 100644 index 0000000..a4bf107 --- /dev/null +++ b/mods/skins/skins/meta/character_95.txt @@ -0,0 +1,3 @@ +name = "HungrySteve", +author = "AMMOnym", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_96.txt b/mods/skins/skins/meta/character_96.txt new file mode 100644 index 0000000..a3ea501 --- /dev/null +++ b/mods/skins/skins/meta/character_96.txt @@ -0,0 +1,3 @@ +name = "ShadowNinja", +author = "ShadowNinja", +comment = "CC BY-SA 4.0", diff --git a/mods/skins/skins/meta/character_97.txt b/mods/skins/skins/meta/character_97.txt new file mode 100644 index 0000000..0cd9db6 --- /dev/null +++ b/mods/skins/skins/meta/character_97.txt @@ -0,0 +1,3 @@ +name = "Minetestian", +author = "Minetestian", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_98.txt b/mods/skins/skins/meta/character_98.txt new file mode 100644 index 0000000..b478f94 --- /dev/null +++ b/mods/skins/skins/meta/character_98.txt @@ -0,0 +1,3 @@ +name = "Calinou", +author = "Calinou", +comment = "CC BY-SA 3.0", diff --git a/mods/skins/skins/meta/character_99.txt b/mods/skins/skins/meta/character_99.txt new file mode 100644 index 0000000..62fa97d --- /dev/null +++ b/mods/skins/skins/meta/character_99.txt @@ -0,0 +1,3 @@ +name = "lordphoenixmh", +author = "lordphoenixmh", +comment = "CC BY 4.0", diff --git a/mods/skins/skins/meta/placeholder.txt b/mods/skins/skins/meta/placeholder.txt new file mode 100644 index 0000000..8b9267b --- /dev/null +++ b/mods/skins/skins/meta/placeholder.txt @@ -0,0 +1,2 @@ +This file is here so the "meta" directory is created by git. +Please run the update_from_db.py script to fill this, or use the "master" branch of the mod. diff --git a/mods/skins/skins/players.lua b/mods/skins/skins/players.lua new file mode 100644 index 0000000..a0e1950 --- /dev/null +++ b/mods/skins/skins/players.lua @@ -0,0 +1,28 @@ +skins.file = minetest.get_worldpath() .. "/skins.mt" +skins.load = function() + local input = io.open(skins.file, "r") + local data = nil + if input then + data = input:read('*all') + end + if data and data ~= "" then + local lines = string.split(data,"\n") + for _, line in ipairs(lines) do + data = string.split(line, ' ', 2) + skins.skins[data[1]] = data[2] + end + io.close(input) + end +end +skins.load() + +skins.save = function() + local output = io.open(skins.file,'w') + for name, skin in pairs(skins.skins) do + if name and skin then + output:write(name .. " " .. skin .. "\n") + end + end + io.close(output) +end + diff --git a/mods/skins/skins/skinlist.lua b/mods/skins/skins/skinlist.lua new file mode 100644 index 0000000..2fe1260 --- /dev/null +++ b/mods/skins/skins/skinlist.lua @@ -0,0 +1,25 @@ +skins.list = {} +skins.add = function(skin) + table.insert(skins.list,skin) +end + +local id + +id = 1 +while true do + local f = io.open(minetest.get_modpath("skins").."/textures/player_"..id..".png") + if (not f) then break end + f:close() + skins.add("player_"..id) + id = id +1 +end + +id = 1 +while true do + local f = io.open(minetest.get_modpath("skins").."/textures/character_"..id..".png") + if (not f) then break end + f:close() + skins.add("character_"..id) + id = id +1 +end + diff --git a/mods/skins/skins/textures/character_1.png b/mods/skins/skins/textures/character_1.png new file mode 100644 index 0000000..8d0dd99 Binary files /dev/null and b/mods/skins/skins/textures/character_1.png differ diff --git a/mods/skins/skins/textures/character_10.png b/mods/skins/skins/textures/character_10.png new file mode 100644 index 0000000..456dc58 Binary files /dev/null and b/mods/skins/skins/textures/character_10.png differ diff --git a/mods/skins/skins/textures/character_100.png b/mods/skins/skins/textures/character_100.png new file mode 100644 index 0000000..c9511b9 Binary files /dev/null and b/mods/skins/skins/textures/character_100.png differ diff --git a/mods/skins/skins/textures/character_100_preview.png b/mods/skins/skins/textures/character_100_preview.png new file mode 100644 index 0000000..e0abc07 Binary files /dev/null and b/mods/skins/skins/textures/character_100_preview.png differ diff --git a/mods/skins/skins/textures/character_100_preview_back.png b/mods/skins/skins/textures/character_100_preview_back.png new file mode 100644 index 0000000..01167a7 Binary files /dev/null and b/mods/skins/skins/textures/character_100_preview_back.png differ diff --git a/mods/skins/skins/textures/character_101.png b/mods/skins/skins/textures/character_101.png new file mode 100644 index 0000000..dd98d48 Binary files /dev/null and b/mods/skins/skins/textures/character_101.png differ diff --git a/mods/skins/skins/textures/character_101_preview.png b/mods/skins/skins/textures/character_101_preview.png new file mode 100644 index 0000000..3aae033 Binary files /dev/null and b/mods/skins/skins/textures/character_101_preview.png differ diff --git a/mods/skins/skins/textures/character_101_preview_back.png b/mods/skins/skins/textures/character_101_preview_back.png new file mode 100644 index 0000000..59a7176 Binary files /dev/null and b/mods/skins/skins/textures/character_101_preview_back.png differ diff --git a/mods/skins/skins/textures/character_102.png b/mods/skins/skins/textures/character_102.png new file mode 100644 index 0000000..21781be Binary files /dev/null and b/mods/skins/skins/textures/character_102.png differ diff --git a/mods/skins/skins/textures/character_102_preview.png b/mods/skins/skins/textures/character_102_preview.png new file mode 100644 index 0000000..77bffcc Binary files /dev/null and b/mods/skins/skins/textures/character_102_preview.png differ diff --git a/mods/skins/skins/textures/character_102_preview_back.png b/mods/skins/skins/textures/character_102_preview_back.png new file mode 100644 index 0000000..23ed4d1 Binary files /dev/null and b/mods/skins/skins/textures/character_102_preview_back.png differ diff --git a/mods/skins/skins/textures/character_103.png b/mods/skins/skins/textures/character_103.png new file mode 100644 index 0000000..285aa40 Binary files /dev/null and b/mods/skins/skins/textures/character_103.png differ diff --git a/mods/skins/skins/textures/character_103_preview.png b/mods/skins/skins/textures/character_103_preview.png new file mode 100644 index 0000000..dbc1d3d Binary files /dev/null and b/mods/skins/skins/textures/character_103_preview.png differ diff --git a/mods/skins/skins/textures/character_103_preview_back.png b/mods/skins/skins/textures/character_103_preview_back.png new file mode 100644 index 0000000..b1e9c27 Binary files /dev/null and b/mods/skins/skins/textures/character_103_preview_back.png differ diff --git a/mods/skins/skins/textures/character_104.png b/mods/skins/skins/textures/character_104.png new file mode 100644 index 0000000..5fa12c2 Binary files /dev/null and b/mods/skins/skins/textures/character_104.png differ diff --git a/mods/skins/skins/textures/character_104_preview.png b/mods/skins/skins/textures/character_104_preview.png new file mode 100644 index 0000000..b4126b2 Binary files /dev/null and b/mods/skins/skins/textures/character_104_preview.png differ diff --git a/mods/skins/skins/textures/character_104_preview_back.png b/mods/skins/skins/textures/character_104_preview_back.png new file mode 100644 index 0000000..89a0576 Binary files /dev/null and b/mods/skins/skins/textures/character_104_preview_back.png differ diff --git a/mods/skins/skins/textures/character_105.png b/mods/skins/skins/textures/character_105.png new file mode 100644 index 0000000..8002ac5 Binary files /dev/null and b/mods/skins/skins/textures/character_105.png differ diff --git a/mods/skins/skins/textures/character_105_preview.png b/mods/skins/skins/textures/character_105_preview.png new file mode 100644 index 0000000..11344aa Binary files /dev/null and b/mods/skins/skins/textures/character_105_preview.png differ diff --git a/mods/skins/skins/textures/character_105_preview_back.png b/mods/skins/skins/textures/character_105_preview_back.png new file mode 100644 index 0000000..df929c0 Binary files /dev/null and b/mods/skins/skins/textures/character_105_preview_back.png differ diff --git a/mods/skins/skins/textures/character_106.png b/mods/skins/skins/textures/character_106.png new file mode 100644 index 0000000..33089a8 Binary files /dev/null and b/mods/skins/skins/textures/character_106.png differ diff --git a/mods/skins/skins/textures/character_106_preview.png b/mods/skins/skins/textures/character_106_preview.png new file mode 100644 index 0000000..f8012fe Binary files /dev/null and b/mods/skins/skins/textures/character_106_preview.png differ diff --git a/mods/skins/skins/textures/character_106_preview_back.png b/mods/skins/skins/textures/character_106_preview_back.png new file mode 100644 index 0000000..cdc6046 Binary files /dev/null and b/mods/skins/skins/textures/character_106_preview_back.png differ diff --git a/mods/skins/skins/textures/character_107.png b/mods/skins/skins/textures/character_107.png new file mode 100644 index 0000000..59c91f7 Binary files /dev/null and b/mods/skins/skins/textures/character_107.png differ diff --git a/mods/skins/skins/textures/character_107_preview.png b/mods/skins/skins/textures/character_107_preview.png new file mode 100644 index 0000000..5a91feb Binary files /dev/null and b/mods/skins/skins/textures/character_107_preview.png differ diff --git a/mods/skins/skins/textures/character_107_preview_back.png b/mods/skins/skins/textures/character_107_preview_back.png new file mode 100644 index 0000000..529825c Binary files /dev/null and b/mods/skins/skins/textures/character_107_preview_back.png differ diff --git a/mods/skins/skins/textures/character_108.png b/mods/skins/skins/textures/character_108.png new file mode 100644 index 0000000..aa3e117 Binary files /dev/null and b/mods/skins/skins/textures/character_108.png differ diff --git a/mods/skins/skins/textures/character_108_preview.png b/mods/skins/skins/textures/character_108_preview.png new file mode 100644 index 0000000..6a05f4e Binary files /dev/null and b/mods/skins/skins/textures/character_108_preview.png differ diff --git a/mods/skins/skins/textures/character_108_preview_back.png b/mods/skins/skins/textures/character_108_preview_back.png new file mode 100644 index 0000000..0a796d5 Binary files /dev/null and b/mods/skins/skins/textures/character_108_preview_back.png differ diff --git a/mods/skins/skins/textures/character_109.png b/mods/skins/skins/textures/character_109.png new file mode 100644 index 0000000..2e3d46b Binary files /dev/null and b/mods/skins/skins/textures/character_109.png differ diff --git a/mods/skins/skins/textures/character_109_preview.png b/mods/skins/skins/textures/character_109_preview.png new file mode 100644 index 0000000..abe307b Binary files /dev/null and b/mods/skins/skins/textures/character_109_preview.png differ diff --git a/mods/skins/skins/textures/character_109_preview_back.png b/mods/skins/skins/textures/character_109_preview_back.png new file mode 100644 index 0000000..45e7167 Binary files /dev/null and b/mods/skins/skins/textures/character_109_preview_back.png differ diff --git a/mods/skins/skins/textures/character_10_preview.png b/mods/skins/skins/textures/character_10_preview.png new file mode 100644 index 0000000..d1ae07b Binary files /dev/null and b/mods/skins/skins/textures/character_10_preview.png differ diff --git a/mods/skins/skins/textures/character_10_preview_back.png b/mods/skins/skins/textures/character_10_preview_back.png new file mode 100644 index 0000000..94ceffa Binary files /dev/null and b/mods/skins/skins/textures/character_10_preview_back.png differ diff --git a/mods/skins/skins/textures/character_11.png b/mods/skins/skins/textures/character_11.png new file mode 100644 index 0000000..d12421e Binary files /dev/null and b/mods/skins/skins/textures/character_11.png differ diff --git a/mods/skins/skins/textures/character_110.png b/mods/skins/skins/textures/character_110.png new file mode 100644 index 0000000..1bbe954 Binary files /dev/null and b/mods/skins/skins/textures/character_110.png differ diff --git a/mods/skins/skins/textures/character_110_preview.png b/mods/skins/skins/textures/character_110_preview.png new file mode 100644 index 0000000..28463aa Binary files /dev/null and b/mods/skins/skins/textures/character_110_preview.png differ diff --git a/mods/skins/skins/textures/character_110_preview_back.png b/mods/skins/skins/textures/character_110_preview_back.png new file mode 100644 index 0000000..fd7c146 Binary files /dev/null and b/mods/skins/skins/textures/character_110_preview_back.png differ diff --git a/mods/skins/skins/textures/character_111.png b/mods/skins/skins/textures/character_111.png new file mode 100644 index 0000000..2658f28 Binary files /dev/null and b/mods/skins/skins/textures/character_111.png differ diff --git a/mods/skins/skins/textures/character_111_preview.png b/mods/skins/skins/textures/character_111_preview.png new file mode 100644 index 0000000..94cda93 Binary files /dev/null and b/mods/skins/skins/textures/character_111_preview.png differ diff --git a/mods/skins/skins/textures/character_111_preview_back.png b/mods/skins/skins/textures/character_111_preview_back.png new file mode 100644 index 0000000..978b391 Binary files /dev/null and b/mods/skins/skins/textures/character_111_preview_back.png differ diff --git a/mods/skins/skins/textures/character_112.png b/mods/skins/skins/textures/character_112.png new file mode 100644 index 0000000..0567ef3 Binary files /dev/null and b/mods/skins/skins/textures/character_112.png differ diff --git a/mods/skins/skins/textures/character_112_preview.png b/mods/skins/skins/textures/character_112_preview.png new file mode 100644 index 0000000..6091ee8 Binary files /dev/null and b/mods/skins/skins/textures/character_112_preview.png differ diff --git a/mods/skins/skins/textures/character_112_preview_back.png b/mods/skins/skins/textures/character_112_preview_back.png new file mode 100644 index 0000000..276753f Binary files /dev/null and b/mods/skins/skins/textures/character_112_preview_back.png differ diff --git a/mods/skins/skins/textures/character_113.png b/mods/skins/skins/textures/character_113.png new file mode 100644 index 0000000..790e7d1 Binary files /dev/null and b/mods/skins/skins/textures/character_113.png differ diff --git a/mods/skins/skins/textures/character_113_preview.png b/mods/skins/skins/textures/character_113_preview.png new file mode 100644 index 0000000..7e86ca4 Binary files /dev/null and b/mods/skins/skins/textures/character_113_preview.png differ diff --git a/mods/skins/skins/textures/character_113_preview_back.png b/mods/skins/skins/textures/character_113_preview_back.png new file mode 100644 index 0000000..c01f409 Binary files /dev/null and b/mods/skins/skins/textures/character_113_preview_back.png differ diff --git a/mods/skins/skins/textures/character_114.png b/mods/skins/skins/textures/character_114.png new file mode 100644 index 0000000..92edde6 Binary files /dev/null and b/mods/skins/skins/textures/character_114.png differ diff --git a/mods/skins/skins/textures/character_114_preview.png b/mods/skins/skins/textures/character_114_preview.png new file mode 100644 index 0000000..183f4d2 Binary files /dev/null and b/mods/skins/skins/textures/character_114_preview.png differ diff --git a/mods/skins/skins/textures/character_114_preview_back.png b/mods/skins/skins/textures/character_114_preview_back.png new file mode 100644 index 0000000..2be1faa Binary files /dev/null and b/mods/skins/skins/textures/character_114_preview_back.png differ diff --git a/mods/skins/skins/textures/character_115.png b/mods/skins/skins/textures/character_115.png new file mode 100644 index 0000000..21007fe Binary files /dev/null and b/mods/skins/skins/textures/character_115.png differ diff --git a/mods/skins/skins/textures/character_115_preview.png b/mods/skins/skins/textures/character_115_preview.png new file mode 100644 index 0000000..0529764 Binary files /dev/null and b/mods/skins/skins/textures/character_115_preview.png differ diff --git a/mods/skins/skins/textures/character_115_preview_back.png b/mods/skins/skins/textures/character_115_preview_back.png new file mode 100644 index 0000000..3a1b605 Binary files /dev/null and b/mods/skins/skins/textures/character_115_preview_back.png differ diff --git a/mods/skins/skins/textures/character_116.png b/mods/skins/skins/textures/character_116.png new file mode 100644 index 0000000..eb7a550 Binary files /dev/null and b/mods/skins/skins/textures/character_116.png differ diff --git a/mods/skins/skins/textures/character_116_preview.png b/mods/skins/skins/textures/character_116_preview.png new file mode 100644 index 0000000..1e7f589 Binary files /dev/null and b/mods/skins/skins/textures/character_116_preview.png differ diff --git a/mods/skins/skins/textures/character_116_preview_back.png b/mods/skins/skins/textures/character_116_preview_back.png new file mode 100644 index 0000000..30795ab Binary files /dev/null and b/mods/skins/skins/textures/character_116_preview_back.png differ diff --git a/mods/skins/skins/textures/character_117.png b/mods/skins/skins/textures/character_117.png new file mode 100644 index 0000000..94555fb Binary files /dev/null and b/mods/skins/skins/textures/character_117.png differ diff --git a/mods/skins/skins/textures/character_117_preview.png b/mods/skins/skins/textures/character_117_preview.png new file mode 100644 index 0000000..3324f4c Binary files /dev/null and b/mods/skins/skins/textures/character_117_preview.png differ diff --git a/mods/skins/skins/textures/character_117_preview_back.png b/mods/skins/skins/textures/character_117_preview_back.png new file mode 100644 index 0000000..5b03fe9 Binary files /dev/null and b/mods/skins/skins/textures/character_117_preview_back.png differ diff --git a/mods/skins/skins/textures/character_118.png b/mods/skins/skins/textures/character_118.png new file mode 100644 index 0000000..a1b39f4 Binary files /dev/null and b/mods/skins/skins/textures/character_118.png differ diff --git a/mods/skins/skins/textures/character_118_preview.png b/mods/skins/skins/textures/character_118_preview.png new file mode 100644 index 0000000..0bdc1ab Binary files /dev/null and b/mods/skins/skins/textures/character_118_preview.png differ diff --git a/mods/skins/skins/textures/character_118_preview_back.png b/mods/skins/skins/textures/character_118_preview_back.png new file mode 100644 index 0000000..be24c00 Binary files /dev/null and b/mods/skins/skins/textures/character_118_preview_back.png differ diff --git a/mods/skins/skins/textures/character_119.png b/mods/skins/skins/textures/character_119.png new file mode 100644 index 0000000..2dde6d4 Binary files /dev/null and b/mods/skins/skins/textures/character_119.png differ diff --git a/mods/skins/skins/textures/character_119_preview.png b/mods/skins/skins/textures/character_119_preview.png new file mode 100644 index 0000000..16e52e7 Binary files /dev/null and b/mods/skins/skins/textures/character_119_preview.png differ diff --git a/mods/skins/skins/textures/character_119_preview_back.png b/mods/skins/skins/textures/character_119_preview_back.png new file mode 100644 index 0000000..33fdb7b Binary files /dev/null and b/mods/skins/skins/textures/character_119_preview_back.png differ diff --git a/mods/skins/skins/textures/character_11_preview.png b/mods/skins/skins/textures/character_11_preview.png new file mode 100644 index 0000000..da9382a Binary files /dev/null and b/mods/skins/skins/textures/character_11_preview.png differ diff --git a/mods/skins/skins/textures/character_11_preview_back.png b/mods/skins/skins/textures/character_11_preview_back.png new file mode 100644 index 0000000..dc5eecd Binary files /dev/null and b/mods/skins/skins/textures/character_11_preview_back.png differ diff --git a/mods/skins/skins/textures/character_12.png b/mods/skins/skins/textures/character_12.png new file mode 100644 index 0000000..e6d2adc Binary files /dev/null and b/mods/skins/skins/textures/character_12.png differ diff --git a/mods/skins/skins/textures/character_120.png b/mods/skins/skins/textures/character_120.png new file mode 100644 index 0000000..a36a52c Binary files /dev/null and b/mods/skins/skins/textures/character_120.png differ diff --git a/mods/skins/skins/textures/character_120_preview.png b/mods/skins/skins/textures/character_120_preview.png new file mode 100644 index 0000000..7032af7 Binary files /dev/null and b/mods/skins/skins/textures/character_120_preview.png differ diff --git a/mods/skins/skins/textures/character_120_preview_back.png b/mods/skins/skins/textures/character_120_preview_back.png new file mode 100644 index 0000000..bb770e4 Binary files /dev/null and b/mods/skins/skins/textures/character_120_preview_back.png differ diff --git a/mods/skins/skins/textures/character_121.png b/mods/skins/skins/textures/character_121.png new file mode 100644 index 0000000..9bb1cc7 Binary files /dev/null and b/mods/skins/skins/textures/character_121.png differ diff --git a/mods/skins/skins/textures/character_121_preview.png b/mods/skins/skins/textures/character_121_preview.png new file mode 100644 index 0000000..fedce69 Binary files /dev/null and b/mods/skins/skins/textures/character_121_preview.png differ diff --git a/mods/skins/skins/textures/character_121_preview_back.png b/mods/skins/skins/textures/character_121_preview_back.png new file mode 100644 index 0000000..567c2a8 Binary files /dev/null and b/mods/skins/skins/textures/character_121_preview_back.png differ diff --git a/mods/skins/skins/textures/character_122.png b/mods/skins/skins/textures/character_122.png new file mode 100644 index 0000000..dfc4a69 Binary files /dev/null and b/mods/skins/skins/textures/character_122.png differ diff --git a/mods/skins/skins/textures/character_122_preview.png b/mods/skins/skins/textures/character_122_preview.png new file mode 100644 index 0000000..52ed03c Binary files /dev/null and b/mods/skins/skins/textures/character_122_preview.png differ diff --git a/mods/skins/skins/textures/character_122_preview_back.png b/mods/skins/skins/textures/character_122_preview_back.png new file mode 100644 index 0000000..ec3d7e4 Binary files /dev/null and b/mods/skins/skins/textures/character_122_preview_back.png differ diff --git a/mods/skins/skins/textures/character_123.png b/mods/skins/skins/textures/character_123.png new file mode 100644 index 0000000..1a3add8 Binary files /dev/null and b/mods/skins/skins/textures/character_123.png differ diff --git a/mods/skins/skins/textures/character_123_preview.png b/mods/skins/skins/textures/character_123_preview.png new file mode 100644 index 0000000..bc7414c Binary files /dev/null and b/mods/skins/skins/textures/character_123_preview.png differ diff --git a/mods/skins/skins/textures/character_123_preview_back.png b/mods/skins/skins/textures/character_123_preview_back.png new file mode 100644 index 0000000..8251a34 Binary files /dev/null and b/mods/skins/skins/textures/character_123_preview_back.png differ diff --git a/mods/skins/skins/textures/character_124.png b/mods/skins/skins/textures/character_124.png new file mode 100644 index 0000000..a1bbde5 Binary files /dev/null and b/mods/skins/skins/textures/character_124.png differ diff --git a/mods/skins/skins/textures/character_124_preview.png b/mods/skins/skins/textures/character_124_preview.png new file mode 100644 index 0000000..bcb2141 Binary files /dev/null and b/mods/skins/skins/textures/character_124_preview.png differ diff --git a/mods/skins/skins/textures/character_124_preview_back.png b/mods/skins/skins/textures/character_124_preview_back.png new file mode 100644 index 0000000..bfef1b3 Binary files /dev/null and b/mods/skins/skins/textures/character_124_preview_back.png differ diff --git a/mods/skins/skins/textures/character_125.png b/mods/skins/skins/textures/character_125.png new file mode 100644 index 0000000..4b4cc30 Binary files /dev/null and b/mods/skins/skins/textures/character_125.png differ diff --git a/mods/skins/skins/textures/character_125_preview.png b/mods/skins/skins/textures/character_125_preview.png new file mode 100644 index 0000000..b9ccf5a Binary files /dev/null and b/mods/skins/skins/textures/character_125_preview.png differ diff --git a/mods/skins/skins/textures/character_125_preview_back.png b/mods/skins/skins/textures/character_125_preview_back.png new file mode 100644 index 0000000..8bd458b Binary files /dev/null and b/mods/skins/skins/textures/character_125_preview_back.png differ diff --git a/mods/skins/skins/textures/character_126.png b/mods/skins/skins/textures/character_126.png new file mode 100644 index 0000000..e14606e Binary files /dev/null and b/mods/skins/skins/textures/character_126.png differ diff --git a/mods/skins/skins/textures/character_126_preview.png b/mods/skins/skins/textures/character_126_preview.png new file mode 100644 index 0000000..32ede99 Binary files /dev/null and b/mods/skins/skins/textures/character_126_preview.png differ diff --git a/mods/skins/skins/textures/character_126_preview_back.png b/mods/skins/skins/textures/character_126_preview_back.png new file mode 100644 index 0000000..01e466b Binary files /dev/null and b/mods/skins/skins/textures/character_126_preview_back.png differ diff --git a/mods/skins/skins/textures/character_127.png b/mods/skins/skins/textures/character_127.png new file mode 100644 index 0000000..09d4100 Binary files /dev/null and b/mods/skins/skins/textures/character_127.png differ diff --git a/mods/skins/skins/textures/character_127_preview.png b/mods/skins/skins/textures/character_127_preview.png new file mode 100644 index 0000000..5e25e5c Binary files /dev/null and b/mods/skins/skins/textures/character_127_preview.png differ diff --git a/mods/skins/skins/textures/character_127_preview_back.png b/mods/skins/skins/textures/character_127_preview_back.png new file mode 100644 index 0000000..4887acb Binary files /dev/null and b/mods/skins/skins/textures/character_127_preview_back.png differ diff --git a/mods/skins/skins/textures/character_128.png b/mods/skins/skins/textures/character_128.png new file mode 100644 index 0000000..b497972 Binary files /dev/null and b/mods/skins/skins/textures/character_128.png differ diff --git a/mods/skins/skins/textures/character_128_preview.png b/mods/skins/skins/textures/character_128_preview.png new file mode 100644 index 0000000..47a1295 Binary files /dev/null and b/mods/skins/skins/textures/character_128_preview.png differ diff --git a/mods/skins/skins/textures/character_128_preview_back.png b/mods/skins/skins/textures/character_128_preview_back.png new file mode 100644 index 0000000..f3edd23 Binary files /dev/null and b/mods/skins/skins/textures/character_128_preview_back.png differ diff --git a/mods/skins/skins/textures/character_129.png b/mods/skins/skins/textures/character_129.png new file mode 100644 index 0000000..cd67cb2 Binary files /dev/null and b/mods/skins/skins/textures/character_129.png differ diff --git a/mods/skins/skins/textures/character_129_preview.png b/mods/skins/skins/textures/character_129_preview.png new file mode 100644 index 0000000..d3f90cd Binary files /dev/null and b/mods/skins/skins/textures/character_129_preview.png differ diff --git a/mods/skins/skins/textures/character_129_preview_back.png b/mods/skins/skins/textures/character_129_preview_back.png new file mode 100644 index 0000000..c24d241 Binary files /dev/null and b/mods/skins/skins/textures/character_129_preview_back.png differ diff --git a/mods/skins/skins/textures/character_12_preview.png b/mods/skins/skins/textures/character_12_preview.png new file mode 100644 index 0000000..7713230 Binary files /dev/null and b/mods/skins/skins/textures/character_12_preview.png differ diff --git a/mods/skins/skins/textures/character_12_preview_back.png b/mods/skins/skins/textures/character_12_preview_back.png new file mode 100644 index 0000000..ea23120 Binary files /dev/null and b/mods/skins/skins/textures/character_12_preview_back.png differ diff --git a/mods/skins/skins/textures/character_13.png b/mods/skins/skins/textures/character_13.png new file mode 100644 index 0000000..358715e Binary files /dev/null and b/mods/skins/skins/textures/character_13.png differ diff --git a/mods/skins/skins/textures/character_130.png b/mods/skins/skins/textures/character_130.png new file mode 100644 index 0000000..e123579 Binary files /dev/null and b/mods/skins/skins/textures/character_130.png differ diff --git a/mods/skins/skins/textures/character_130_preview.png b/mods/skins/skins/textures/character_130_preview.png new file mode 100644 index 0000000..48f5b49 Binary files /dev/null and b/mods/skins/skins/textures/character_130_preview.png differ diff --git a/mods/skins/skins/textures/character_130_preview_back.png b/mods/skins/skins/textures/character_130_preview_back.png new file mode 100644 index 0000000..1483f07 Binary files /dev/null and b/mods/skins/skins/textures/character_130_preview_back.png differ diff --git a/mods/skins/skins/textures/character_131.png b/mods/skins/skins/textures/character_131.png new file mode 100644 index 0000000..e4bbb27 Binary files /dev/null and b/mods/skins/skins/textures/character_131.png differ diff --git a/mods/skins/skins/textures/character_131_preview.png b/mods/skins/skins/textures/character_131_preview.png new file mode 100644 index 0000000..cd5b7b9 Binary files /dev/null and b/mods/skins/skins/textures/character_131_preview.png differ diff --git a/mods/skins/skins/textures/character_131_preview_back.png b/mods/skins/skins/textures/character_131_preview_back.png new file mode 100644 index 0000000..f83514e Binary files /dev/null and b/mods/skins/skins/textures/character_131_preview_back.png differ diff --git a/mods/skins/skins/textures/character_132.png b/mods/skins/skins/textures/character_132.png new file mode 100644 index 0000000..3568bf3 Binary files /dev/null and b/mods/skins/skins/textures/character_132.png differ diff --git a/mods/skins/skins/textures/character_132_preview.png b/mods/skins/skins/textures/character_132_preview.png new file mode 100644 index 0000000..bc7ceb9 Binary files /dev/null and b/mods/skins/skins/textures/character_132_preview.png differ diff --git a/mods/skins/skins/textures/character_132_preview_back.png b/mods/skins/skins/textures/character_132_preview_back.png new file mode 100644 index 0000000..30d3b81 Binary files /dev/null and b/mods/skins/skins/textures/character_132_preview_back.png differ diff --git a/mods/skins/skins/textures/character_133.png b/mods/skins/skins/textures/character_133.png new file mode 100644 index 0000000..d55aa6a Binary files /dev/null and b/mods/skins/skins/textures/character_133.png differ diff --git a/mods/skins/skins/textures/character_133_preview.png b/mods/skins/skins/textures/character_133_preview.png new file mode 100644 index 0000000..4d4529f Binary files /dev/null and b/mods/skins/skins/textures/character_133_preview.png differ diff --git a/mods/skins/skins/textures/character_133_preview_back.png b/mods/skins/skins/textures/character_133_preview_back.png new file mode 100644 index 0000000..0946522 Binary files /dev/null and b/mods/skins/skins/textures/character_133_preview_back.png differ diff --git a/mods/skins/skins/textures/character_134.png b/mods/skins/skins/textures/character_134.png new file mode 100644 index 0000000..df547db Binary files /dev/null and b/mods/skins/skins/textures/character_134.png differ diff --git a/mods/skins/skins/textures/character_134_preview.png b/mods/skins/skins/textures/character_134_preview.png new file mode 100644 index 0000000..7c8963a Binary files /dev/null and b/mods/skins/skins/textures/character_134_preview.png differ diff --git a/mods/skins/skins/textures/character_134_preview_back.png b/mods/skins/skins/textures/character_134_preview_back.png new file mode 100644 index 0000000..3270893 Binary files /dev/null and b/mods/skins/skins/textures/character_134_preview_back.png differ diff --git a/mods/skins/skins/textures/character_135.png b/mods/skins/skins/textures/character_135.png new file mode 100644 index 0000000..b3103b9 Binary files /dev/null and b/mods/skins/skins/textures/character_135.png differ diff --git a/mods/skins/skins/textures/character_135_preview.png b/mods/skins/skins/textures/character_135_preview.png new file mode 100644 index 0000000..e22cee8 Binary files /dev/null and b/mods/skins/skins/textures/character_135_preview.png differ diff --git a/mods/skins/skins/textures/character_135_preview_back.png b/mods/skins/skins/textures/character_135_preview_back.png new file mode 100644 index 0000000..1a9d1f5 Binary files /dev/null and b/mods/skins/skins/textures/character_135_preview_back.png differ diff --git a/mods/skins/skins/textures/character_136.png b/mods/skins/skins/textures/character_136.png new file mode 100644 index 0000000..dcac92f Binary files /dev/null and b/mods/skins/skins/textures/character_136.png differ diff --git a/mods/skins/skins/textures/character_136_preview.png b/mods/skins/skins/textures/character_136_preview.png new file mode 100644 index 0000000..b3ab692 Binary files /dev/null and b/mods/skins/skins/textures/character_136_preview.png differ diff --git a/mods/skins/skins/textures/character_136_preview_back.png b/mods/skins/skins/textures/character_136_preview_back.png new file mode 100644 index 0000000..2d4514e Binary files /dev/null and b/mods/skins/skins/textures/character_136_preview_back.png differ diff --git a/mods/skins/skins/textures/character_137.png b/mods/skins/skins/textures/character_137.png new file mode 100644 index 0000000..439296e Binary files /dev/null and b/mods/skins/skins/textures/character_137.png differ diff --git a/mods/skins/skins/textures/character_137_preview.png b/mods/skins/skins/textures/character_137_preview.png new file mode 100644 index 0000000..3341716 Binary files /dev/null and b/mods/skins/skins/textures/character_137_preview.png differ diff --git a/mods/skins/skins/textures/character_137_preview_back.png b/mods/skins/skins/textures/character_137_preview_back.png new file mode 100644 index 0000000..c5e7b0f Binary files /dev/null and b/mods/skins/skins/textures/character_137_preview_back.png differ diff --git a/mods/skins/skins/textures/character_138.png b/mods/skins/skins/textures/character_138.png new file mode 100644 index 0000000..0ac19a2 Binary files /dev/null and b/mods/skins/skins/textures/character_138.png differ diff --git a/mods/skins/skins/textures/character_138_preview.png b/mods/skins/skins/textures/character_138_preview.png new file mode 100644 index 0000000..6cac2dc Binary files /dev/null and b/mods/skins/skins/textures/character_138_preview.png differ diff --git a/mods/skins/skins/textures/character_138_preview_back.png b/mods/skins/skins/textures/character_138_preview_back.png new file mode 100644 index 0000000..772bf7d Binary files /dev/null and b/mods/skins/skins/textures/character_138_preview_back.png differ diff --git a/mods/skins/skins/textures/character_139.png b/mods/skins/skins/textures/character_139.png new file mode 100644 index 0000000..6c90431 Binary files /dev/null and b/mods/skins/skins/textures/character_139.png differ diff --git a/mods/skins/skins/textures/character_139_preview.png b/mods/skins/skins/textures/character_139_preview.png new file mode 100644 index 0000000..18a1e6f Binary files /dev/null and b/mods/skins/skins/textures/character_139_preview.png differ diff --git a/mods/skins/skins/textures/character_139_preview_back.png b/mods/skins/skins/textures/character_139_preview_back.png new file mode 100644 index 0000000..084fd80 Binary files /dev/null and b/mods/skins/skins/textures/character_139_preview_back.png differ diff --git a/mods/skins/skins/textures/character_13_preview.png b/mods/skins/skins/textures/character_13_preview.png new file mode 100644 index 0000000..86cc44d Binary files /dev/null and b/mods/skins/skins/textures/character_13_preview.png differ diff --git a/mods/skins/skins/textures/character_13_preview_back.png b/mods/skins/skins/textures/character_13_preview_back.png new file mode 100644 index 0000000..4b594cc Binary files /dev/null and b/mods/skins/skins/textures/character_13_preview_back.png differ diff --git a/mods/skins/skins/textures/character_14.png b/mods/skins/skins/textures/character_14.png new file mode 100644 index 0000000..3ca5b71 Binary files /dev/null and b/mods/skins/skins/textures/character_14.png differ diff --git a/mods/skins/skins/textures/character_140.png b/mods/skins/skins/textures/character_140.png new file mode 100644 index 0000000..af4b11e Binary files /dev/null and b/mods/skins/skins/textures/character_140.png differ diff --git a/mods/skins/skins/textures/character_140_preview.png b/mods/skins/skins/textures/character_140_preview.png new file mode 100644 index 0000000..4b9ecb7 Binary files /dev/null and b/mods/skins/skins/textures/character_140_preview.png differ diff --git a/mods/skins/skins/textures/character_140_preview_back.png b/mods/skins/skins/textures/character_140_preview_back.png new file mode 100644 index 0000000..b9de3d8 Binary files /dev/null and b/mods/skins/skins/textures/character_140_preview_back.png differ diff --git a/mods/skins/skins/textures/character_141.png b/mods/skins/skins/textures/character_141.png new file mode 100644 index 0000000..b907736 Binary files /dev/null and b/mods/skins/skins/textures/character_141.png differ diff --git a/mods/skins/skins/textures/character_141_preview.png b/mods/skins/skins/textures/character_141_preview.png new file mode 100644 index 0000000..412585c Binary files /dev/null and b/mods/skins/skins/textures/character_141_preview.png differ diff --git a/mods/skins/skins/textures/character_141_preview_back.png b/mods/skins/skins/textures/character_141_preview_back.png new file mode 100644 index 0000000..9f184c8 Binary files /dev/null and b/mods/skins/skins/textures/character_141_preview_back.png differ diff --git a/mods/skins/skins/textures/character_142.png b/mods/skins/skins/textures/character_142.png new file mode 100644 index 0000000..718f48c Binary files /dev/null and b/mods/skins/skins/textures/character_142.png differ diff --git a/mods/skins/skins/textures/character_142_preview.png b/mods/skins/skins/textures/character_142_preview.png new file mode 100644 index 0000000..af7d02d Binary files /dev/null and b/mods/skins/skins/textures/character_142_preview.png differ diff --git a/mods/skins/skins/textures/character_142_preview_back.png b/mods/skins/skins/textures/character_142_preview_back.png new file mode 100644 index 0000000..9980efd Binary files /dev/null and b/mods/skins/skins/textures/character_142_preview_back.png differ diff --git a/mods/skins/skins/textures/character_143.png b/mods/skins/skins/textures/character_143.png new file mode 100644 index 0000000..6148977 Binary files /dev/null and b/mods/skins/skins/textures/character_143.png differ diff --git a/mods/skins/skins/textures/character_143_preview.png b/mods/skins/skins/textures/character_143_preview.png new file mode 100644 index 0000000..ec18328 Binary files /dev/null and b/mods/skins/skins/textures/character_143_preview.png differ diff --git a/mods/skins/skins/textures/character_143_preview_back.png b/mods/skins/skins/textures/character_143_preview_back.png new file mode 100644 index 0000000..7005a43 Binary files /dev/null and b/mods/skins/skins/textures/character_143_preview_back.png differ diff --git a/mods/skins/skins/textures/character_144.png b/mods/skins/skins/textures/character_144.png new file mode 100644 index 0000000..5a43dea Binary files /dev/null and b/mods/skins/skins/textures/character_144.png differ diff --git a/mods/skins/skins/textures/character_144_preview.png b/mods/skins/skins/textures/character_144_preview.png new file mode 100644 index 0000000..06f8fd7 Binary files /dev/null and b/mods/skins/skins/textures/character_144_preview.png differ diff --git a/mods/skins/skins/textures/character_144_preview_back.png b/mods/skins/skins/textures/character_144_preview_back.png new file mode 100644 index 0000000..ebd0e6c Binary files /dev/null and b/mods/skins/skins/textures/character_144_preview_back.png differ diff --git a/mods/skins/skins/textures/character_145.png b/mods/skins/skins/textures/character_145.png new file mode 100644 index 0000000..09bc2c3 Binary files /dev/null and b/mods/skins/skins/textures/character_145.png differ diff --git a/mods/skins/skins/textures/character_145_preview.png b/mods/skins/skins/textures/character_145_preview.png new file mode 100644 index 0000000..abb1e9a Binary files /dev/null and b/mods/skins/skins/textures/character_145_preview.png differ diff --git a/mods/skins/skins/textures/character_145_preview_back.png b/mods/skins/skins/textures/character_145_preview_back.png new file mode 100644 index 0000000..070cd09 Binary files /dev/null and b/mods/skins/skins/textures/character_145_preview_back.png differ diff --git a/mods/skins/skins/textures/character_146.png b/mods/skins/skins/textures/character_146.png new file mode 100644 index 0000000..cf346fd Binary files /dev/null and b/mods/skins/skins/textures/character_146.png differ diff --git a/mods/skins/skins/textures/character_146_preview.png b/mods/skins/skins/textures/character_146_preview.png new file mode 100644 index 0000000..224365f Binary files /dev/null and b/mods/skins/skins/textures/character_146_preview.png differ diff --git a/mods/skins/skins/textures/character_146_preview_back.png b/mods/skins/skins/textures/character_146_preview_back.png new file mode 100644 index 0000000..1aae720 Binary files /dev/null and b/mods/skins/skins/textures/character_146_preview_back.png differ diff --git a/mods/skins/skins/textures/character_147.png b/mods/skins/skins/textures/character_147.png new file mode 100644 index 0000000..c9ccaf3 Binary files /dev/null and b/mods/skins/skins/textures/character_147.png differ diff --git a/mods/skins/skins/textures/character_147_preview.png b/mods/skins/skins/textures/character_147_preview.png new file mode 100644 index 0000000..a5deecf Binary files /dev/null and b/mods/skins/skins/textures/character_147_preview.png differ diff --git a/mods/skins/skins/textures/character_147_preview_back.png b/mods/skins/skins/textures/character_147_preview_back.png new file mode 100644 index 0000000..94fc7dc Binary files /dev/null and b/mods/skins/skins/textures/character_147_preview_back.png differ diff --git a/mods/skins/skins/textures/character_148.png b/mods/skins/skins/textures/character_148.png new file mode 100644 index 0000000..1371453 Binary files /dev/null and b/mods/skins/skins/textures/character_148.png differ diff --git a/mods/skins/skins/textures/character_148_preview.png b/mods/skins/skins/textures/character_148_preview.png new file mode 100644 index 0000000..a5deecf Binary files /dev/null and b/mods/skins/skins/textures/character_148_preview.png differ diff --git a/mods/skins/skins/textures/character_148_preview_back.png b/mods/skins/skins/textures/character_148_preview_back.png new file mode 100644 index 0000000..f44f063 Binary files /dev/null and b/mods/skins/skins/textures/character_148_preview_back.png differ diff --git a/mods/skins/skins/textures/character_149.png b/mods/skins/skins/textures/character_149.png new file mode 100644 index 0000000..1995674 Binary files /dev/null and b/mods/skins/skins/textures/character_149.png differ diff --git a/mods/skins/skins/textures/character_149_preview.png b/mods/skins/skins/textures/character_149_preview.png new file mode 100644 index 0000000..e7c9c3b Binary files /dev/null and b/mods/skins/skins/textures/character_149_preview.png differ diff --git a/mods/skins/skins/textures/character_149_preview_back.png b/mods/skins/skins/textures/character_149_preview_back.png new file mode 100644 index 0000000..0ab55eb Binary files /dev/null and b/mods/skins/skins/textures/character_149_preview_back.png differ diff --git a/mods/skins/skins/textures/character_14_preview.png b/mods/skins/skins/textures/character_14_preview.png new file mode 100644 index 0000000..ce2ad9e Binary files /dev/null and b/mods/skins/skins/textures/character_14_preview.png differ diff --git a/mods/skins/skins/textures/character_14_preview_back.png b/mods/skins/skins/textures/character_14_preview_back.png new file mode 100644 index 0000000..6930673 Binary files /dev/null and b/mods/skins/skins/textures/character_14_preview_back.png differ diff --git a/mods/skins/skins/textures/character_15.png b/mods/skins/skins/textures/character_15.png new file mode 100644 index 0000000..af62d7a Binary files /dev/null and b/mods/skins/skins/textures/character_15.png differ diff --git a/mods/skins/skins/textures/character_150.png b/mods/skins/skins/textures/character_150.png new file mode 100644 index 0000000..0ba6bae Binary files /dev/null and b/mods/skins/skins/textures/character_150.png differ diff --git a/mods/skins/skins/textures/character_150_preview.png b/mods/skins/skins/textures/character_150_preview.png new file mode 100644 index 0000000..367b20e Binary files /dev/null and b/mods/skins/skins/textures/character_150_preview.png differ diff --git a/mods/skins/skins/textures/character_150_preview_back.png b/mods/skins/skins/textures/character_150_preview_back.png new file mode 100644 index 0000000..bff2dbc Binary files /dev/null and b/mods/skins/skins/textures/character_150_preview_back.png differ diff --git a/mods/skins/skins/textures/character_151.png b/mods/skins/skins/textures/character_151.png new file mode 100644 index 0000000..f0e4e02 Binary files /dev/null and b/mods/skins/skins/textures/character_151.png differ diff --git a/mods/skins/skins/textures/character_151_preview.png b/mods/skins/skins/textures/character_151_preview.png new file mode 100644 index 0000000..dc64a92 Binary files /dev/null and b/mods/skins/skins/textures/character_151_preview.png differ diff --git a/mods/skins/skins/textures/character_151_preview_back.png b/mods/skins/skins/textures/character_151_preview_back.png new file mode 100644 index 0000000..b53688e Binary files /dev/null and b/mods/skins/skins/textures/character_151_preview_back.png differ diff --git a/mods/skins/skins/textures/character_152.png b/mods/skins/skins/textures/character_152.png new file mode 100644 index 0000000..a0396f4 Binary files /dev/null and b/mods/skins/skins/textures/character_152.png differ diff --git a/mods/skins/skins/textures/character_152_preview.png b/mods/skins/skins/textures/character_152_preview.png new file mode 100644 index 0000000..07f98c6 Binary files /dev/null and b/mods/skins/skins/textures/character_152_preview.png differ diff --git a/mods/skins/skins/textures/character_152_preview_back.png b/mods/skins/skins/textures/character_152_preview_back.png new file mode 100644 index 0000000..e280a40 Binary files /dev/null and b/mods/skins/skins/textures/character_152_preview_back.png differ diff --git a/mods/skins/skins/textures/character_153.png b/mods/skins/skins/textures/character_153.png new file mode 100644 index 0000000..0f2ebb8 Binary files /dev/null and b/mods/skins/skins/textures/character_153.png differ diff --git a/mods/skins/skins/textures/character_153_preview.png b/mods/skins/skins/textures/character_153_preview.png new file mode 100644 index 0000000..2f2fbe5 Binary files /dev/null and b/mods/skins/skins/textures/character_153_preview.png differ diff --git a/mods/skins/skins/textures/character_153_preview_back.png b/mods/skins/skins/textures/character_153_preview_back.png new file mode 100644 index 0000000..9996733 Binary files /dev/null and b/mods/skins/skins/textures/character_153_preview_back.png differ diff --git a/mods/skins/skins/textures/character_154.png b/mods/skins/skins/textures/character_154.png new file mode 100644 index 0000000..a35e8f6 Binary files /dev/null and b/mods/skins/skins/textures/character_154.png differ diff --git a/mods/skins/skins/textures/character_154_preview.png b/mods/skins/skins/textures/character_154_preview.png new file mode 100644 index 0000000..177e9a4 Binary files /dev/null and b/mods/skins/skins/textures/character_154_preview.png differ diff --git a/mods/skins/skins/textures/character_154_preview_back.png b/mods/skins/skins/textures/character_154_preview_back.png new file mode 100644 index 0000000..f1d987d Binary files /dev/null and b/mods/skins/skins/textures/character_154_preview_back.png differ diff --git a/mods/skins/skins/textures/character_155.png b/mods/skins/skins/textures/character_155.png new file mode 100644 index 0000000..26fb189 Binary files /dev/null and b/mods/skins/skins/textures/character_155.png differ diff --git a/mods/skins/skins/textures/character_155_preview.png b/mods/skins/skins/textures/character_155_preview.png new file mode 100644 index 0000000..38b09d9 Binary files /dev/null and b/mods/skins/skins/textures/character_155_preview.png differ diff --git a/mods/skins/skins/textures/character_155_preview_back.png b/mods/skins/skins/textures/character_155_preview_back.png new file mode 100644 index 0000000..865f0d6 Binary files /dev/null and b/mods/skins/skins/textures/character_155_preview_back.png differ diff --git a/mods/skins/skins/textures/character_156.png b/mods/skins/skins/textures/character_156.png new file mode 100644 index 0000000..f8896a5 Binary files /dev/null and b/mods/skins/skins/textures/character_156.png differ diff --git a/mods/skins/skins/textures/character_156_preview.png b/mods/skins/skins/textures/character_156_preview.png new file mode 100644 index 0000000..7eefe6e Binary files /dev/null and b/mods/skins/skins/textures/character_156_preview.png differ diff --git a/mods/skins/skins/textures/character_156_preview_back.png b/mods/skins/skins/textures/character_156_preview_back.png new file mode 100644 index 0000000..c6d84cc Binary files /dev/null and b/mods/skins/skins/textures/character_156_preview_back.png differ diff --git a/mods/skins/skins/textures/character_157.png b/mods/skins/skins/textures/character_157.png new file mode 100644 index 0000000..c78810e Binary files /dev/null and b/mods/skins/skins/textures/character_157.png differ diff --git a/mods/skins/skins/textures/character_157_preview.png b/mods/skins/skins/textures/character_157_preview.png new file mode 100644 index 0000000..20212df Binary files /dev/null and b/mods/skins/skins/textures/character_157_preview.png differ diff --git a/mods/skins/skins/textures/character_157_preview_back.png b/mods/skins/skins/textures/character_157_preview_back.png new file mode 100644 index 0000000..21cd78c Binary files /dev/null and b/mods/skins/skins/textures/character_157_preview_back.png differ diff --git a/mods/skins/skins/textures/character_158.png b/mods/skins/skins/textures/character_158.png new file mode 100644 index 0000000..a9b0c42 Binary files /dev/null and b/mods/skins/skins/textures/character_158.png differ diff --git a/mods/skins/skins/textures/character_158_preview.png b/mods/skins/skins/textures/character_158_preview.png new file mode 100644 index 0000000..970681e Binary files /dev/null and b/mods/skins/skins/textures/character_158_preview.png differ diff --git a/mods/skins/skins/textures/character_158_preview_back.png b/mods/skins/skins/textures/character_158_preview_back.png new file mode 100644 index 0000000..9566ecd Binary files /dev/null and b/mods/skins/skins/textures/character_158_preview_back.png differ diff --git a/mods/skins/skins/textures/character_159.png b/mods/skins/skins/textures/character_159.png new file mode 100644 index 0000000..668bbbe Binary files /dev/null and b/mods/skins/skins/textures/character_159.png differ diff --git a/mods/skins/skins/textures/character_159_preview.png b/mods/skins/skins/textures/character_159_preview.png new file mode 100644 index 0000000..e5f40f8 Binary files /dev/null and b/mods/skins/skins/textures/character_159_preview.png differ diff --git a/mods/skins/skins/textures/character_159_preview_back.png b/mods/skins/skins/textures/character_159_preview_back.png new file mode 100644 index 0000000..1a96390 Binary files /dev/null and b/mods/skins/skins/textures/character_159_preview_back.png differ diff --git a/mods/skins/skins/textures/character_15_preview.png b/mods/skins/skins/textures/character_15_preview.png new file mode 100644 index 0000000..32b30a2 Binary files /dev/null and b/mods/skins/skins/textures/character_15_preview.png differ diff --git a/mods/skins/skins/textures/character_15_preview_back.png b/mods/skins/skins/textures/character_15_preview_back.png new file mode 100644 index 0000000..46c6fe1 Binary files /dev/null and b/mods/skins/skins/textures/character_15_preview_back.png differ diff --git a/mods/skins/skins/textures/character_16.png b/mods/skins/skins/textures/character_16.png new file mode 100644 index 0000000..f1658a2 Binary files /dev/null and b/mods/skins/skins/textures/character_16.png differ diff --git a/mods/skins/skins/textures/character_160.png b/mods/skins/skins/textures/character_160.png new file mode 100644 index 0000000..5201679 Binary files /dev/null and b/mods/skins/skins/textures/character_160.png differ diff --git a/mods/skins/skins/textures/character_160_preview.png b/mods/skins/skins/textures/character_160_preview.png new file mode 100644 index 0000000..c4f772c Binary files /dev/null and b/mods/skins/skins/textures/character_160_preview.png differ diff --git a/mods/skins/skins/textures/character_160_preview_back.png b/mods/skins/skins/textures/character_160_preview_back.png new file mode 100644 index 0000000..ccf821f Binary files /dev/null and b/mods/skins/skins/textures/character_160_preview_back.png differ diff --git a/mods/skins/skins/textures/character_161.png b/mods/skins/skins/textures/character_161.png new file mode 100644 index 0000000..e8f8e96 Binary files /dev/null and b/mods/skins/skins/textures/character_161.png differ diff --git a/mods/skins/skins/textures/character_161_preview.png b/mods/skins/skins/textures/character_161_preview.png new file mode 100644 index 0000000..7a49b75 Binary files /dev/null and b/mods/skins/skins/textures/character_161_preview.png differ diff --git a/mods/skins/skins/textures/character_161_preview_back.png b/mods/skins/skins/textures/character_161_preview_back.png new file mode 100644 index 0000000..90eb0c2 Binary files /dev/null and b/mods/skins/skins/textures/character_161_preview_back.png differ diff --git a/mods/skins/skins/textures/character_162.png b/mods/skins/skins/textures/character_162.png new file mode 100644 index 0000000..693fb88 Binary files /dev/null and b/mods/skins/skins/textures/character_162.png differ diff --git a/mods/skins/skins/textures/character_162_preview.png b/mods/skins/skins/textures/character_162_preview.png new file mode 100644 index 0000000..a022fe8 Binary files /dev/null and b/mods/skins/skins/textures/character_162_preview.png differ diff --git a/mods/skins/skins/textures/character_162_preview_back.png b/mods/skins/skins/textures/character_162_preview_back.png new file mode 100644 index 0000000..a98b13d Binary files /dev/null and b/mods/skins/skins/textures/character_162_preview_back.png differ diff --git a/mods/skins/skins/textures/character_163.png b/mods/skins/skins/textures/character_163.png new file mode 100644 index 0000000..2384318 Binary files /dev/null and b/mods/skins/skins/textures/character_163.png differ diff --git a/mods/skins/skins/textures/character_163_preview.png b/mods/skins/skins/textures/character_163_preview.png new file mode 100644 index 0000000..21aadbe Binary files /dev/null and b/mods/skins/skins/textures/character_163_preview.png differ diff --git a/mods/skins/skins/textures/character_163_preview_back.png b/mods/skins/skins/textures/character_163_preview_back.png new file mode 100644 index 0000000..0a01e05 Binary files /dev/null and b/mods/skins/skins/textures/character_163_preview_back.png differ diff --git a/mods/skins/skins/textures/character_164.png b/mods/skins/skins/textures/character_164.png new file mode 100644 index 0000000..d81d4e5 Binary files /dev/null and b/mods/skins/skins/textures/character_164.png differ diff --git a/mods/skins/skins/textures/character_164_preview.png b/mods/skins/skins/textures/character_164_preview.png new file mode 100644 index 0000000..e12d4d7 Binary files /dev/null and b/mods/skins/skins/textures/character_164_preview.png differ diff --git a/mods/skins/skins/textures/character_164_preview_back.png b/mods/skins/skins/textures/character_164_preview_back.png new file mode 100644 index 0000000..bb620c6 Binary files /dev/null and b/mods/skins/skins/textures/character_164_preview_back.png differ diff --git a/mods/skins/skins/textures/character_165.png b/mods/skins/skins/textures/character_165.png new file mode 100644 index 0000000..ac0da05 Binary files /dev/null and b/mods/skins/skins/textures/character_165.png differ diff --git a/mods/skins/skins/textures/character_165_preview.png b/mods/skins/skins/textures/character_165_preview.png new file mode 100644 index 0000000..54369f8 Binary files /dev/null and b/mods/skins/skins/textures/character_165_preview.png differ diff --git a/mods/skins/skins/textures/character_165_preview_back.png b/mods/skins/skins/textures/character_165_preview_back.png new file mode 100644 index 0000000..40d5469 Binary files /dev/null and b/mods/skins/skins/textures/character_165_preview_back.png differ diff --git a/mods/skins/skins/textures/character_166.png b/mods/skins/skins/textures/character_166.png new file mode 100644 index 0000000..1808187 Binary files /dev/null and b/mods/skins/skins/textures/character_166.png differ diff --git a/mods/skins/skins/textures/character_166_preview.png b/mods/skins/skins/textures/character_166_preview.png new file mode 100644 index 0000000..bd37cc2 Binary files /dev/null and b/mods/skins/skins/textures/character_166_preview.png differ diff --git a/mods/skins/skins/textures/character_166_preview_back.png b/mods/skins/skins/textures/character_166_preview_back.png new file mode 100644 index 0000000..325c354 Binary files /dev/null and b/mods/skins/skins/textures/character_166_preview_back.png differ diff --git a/mods/skins/skins/textures/character_167.png b/mods/skins/skins/textures/character_167.png new file mode 100644 index 0000000..540d397 Binary files /dev/null and b/mods/skins/skins/textures/character_167.png differ diff --git a/mods/skins/skins/textures/character_167_preview.png b/mods/skins/skins/textures/character_167_preview.png new file mode 100644 index 0000000..14af066 Binary files /dev/null and b/mods/skins/skins/textures/character_167_preview.png differ diff --git a/mods/skins/skins/textures/character_167_preview_back.png b/mods/skins/skins/textures/character_167_preview_back.png new file mode 100644 index 0000000..935cc0d Binary files /dev/null and b/mods/skins/skins/textures/character_167_preview_back.png differ diff --git a/mods/skins/skins/textures/character_168.png b/mods/skins/skins/textures/character_168.png new file mode 100644 index 0000000..1f3e1b3 Binary files /dev/null and b/mods/skins/skins/textures/character_168.png differ diff --git a/mods/skins/skins/textures/character_168_preview.png b/mods/skins/skins/textures/character_168_preview.png new file mode 100644 index 0000000..b53f02b Binary files /dev/null and b/mods/skins/skins/textures/character_168_preview.png differ diff --git a/mods/skins/skins/textures/character_168_preview_back.png b/mods/skins/skins/textures/character_168_preview_back.png new file mode 100644 index 0000000..ca3c205 Binary files /dev/null and b/mods/skins/skins/textures/character_168_preview_back.png differ diff --git a/mods/skins/skins/textures/character_169.png b/mods/skins/skins/textures/character_169.png new file mode 100644 index 0000000..19ccaa5 Binary files /dev/null and b/mods/skins/skins/textures/character_169.png differ diff --git a/mods/skins/skins/textures/character_169_preview.png b/mods/skins/skins/textures/character_169_preview.png new file mode 100644 index 0000000..a71cd0a Binary files /dev/null and b/mods/skins/skins/textures/character_169_preview.png differ diff --git a/mods/skins/skins/textures/character_169_preview_back.png b/mods/skins/skins/textures/character_169_preview_back.png new file mode 100644 index 0000000..98d7bcf Binary files /dev/null and b/mods/skins/skins/textures/character_169_preview_back.png differ diff --git a/mods/skins/skins/textures/character_16_preview.png b/mods/skins/skins/textures/character_16_preview.png new file mode 100644 index 0000000..2658672 Binary files /dev/null and b/mods/skins/skins/textures/character_16_preview.png differ diff --git a/mods/skins/skins/textures/character_16_preview_back.png b/mods/skins/skins/textures/character_16_preview_back.png new file mode 100644 index 0000000..81bd23d Binary files /dev/null and b/mods/skins/skins/textures/character_16_preview_back.png differ diff --git a/mods/skins/skins/textures/character_17.png b/mods/skins/skins/textures/character_17.png new file mode 100644 index 0000000..35a8126 Binary files /dev/null and b/mods/skins/skins/textures/character_17.png differ diff --git a/mods/skins/skins/textures/character_170.png b/mods/skins/skins/textures/character_170.png new file mode 100644 index 0000000..28c66e7 Binary files /dev/null and b/mods/skins/skins/textures/character_170.png differ diff --git a/mods/skins/skins/textures/character_170_preview.png b/mods/skins/skins/textures/character_170_preview.png new file mode 100644 index 0000000..a550a16 Binary files /dev/null and b/mods/skins/skins/textures/character_170_preview.png differ diff --git a/mods/skins/skins/textures/character_170_preview_back.png b/mods/skins/skins/textures/character_170_preview_back.png new file mode 100644 index 0000000..7937ecb Binary files /dev/null and b/mods/skins/skins/textures/character_170_preview_back.png differ diff --git a/mods/skins/skins/textures/character_171.png b/mods/skins/skins/textures/character_171.png new file mode 100644 index 0000000..f0ba5db Binary files /dev/null and b/mods/skins/skins/textures/character_171.png differ diff --git a/mods/skins/skins/textures/character_171_preview.png b/mods/skins/skins/textures/character_171_preview.png new file mode 100644 index 0000000..667ea00 Binary files /dev/null and b/mods/skins/skins/textures/character_171_preview.png differ diff --git a/mods/skins/skins/textures/character_171_preview_back.png b/mods/skins/skins/textures/character_171_preview_back.png new file mode 100644 index 0000000..6e93294 Binary files /dev/null and b/mods/skins/skins/textures/character_171_preview_back.png differ diff --git a/mods/skins/skins/textures/character_172.png b/mods/skins/skins/textures/character_172.png new file mode 100644 index 0000000..df6d9fb Binary files /dev/null and b/mods/skins/skins/textures/character_172.png differ diff --git a/mods/skins/skins/textures/character_172_preview.png b/mods/skins/skins/textures/character_172_preview.png new file mode 100644 index 0000000..6c03b31 Binary files /dev/null and b/mods/skins/skins/textures/character_172_preview.png differ diff --git a/mods/skins/skins/textures/character_172_preview_back.png b/mods/skins/skins/textures/character_172_preview_back.png new file mode 100644 index 0000000..1bfebcf Binary files /dev/null and b/mods/skins/skins/textures/character_172_preview_back.png differ diff --git a/mods/skins/skins/textures/character_173.png b/mods/skins/skins/textures/character_173.png new file mode 100644 index 0000000..e324b7f Binary files /dev/null and b/mods/skins/skins/textures/character_173.png differ diff --git a/mods/skins/skins/textures/character_173_preview.png b/mods/skins/skins/textures/character_173_preview.png new file mode 100644 index 0000000..f4b2bca Binary files /dev/null and b/mods/skins/skins/textures/character_173_preview.png differ diff --git a/mods/skins/skins/textures/character_173_preview_back.png b/mods/skins/skins/textures/character_173_preview_back.png new file mode 100644 index 0000000..1e38320 Binary files /dev/null and b/mods/skins/skins/textures/character_173_preview_back.png differ diff --git a/mods/skins/skins/textures/character_174.png b/mods/skins/skins/textures/character_174.png new file mode 100644 index 0000000..ceb08f1 Binary files /dev/null and b/mods/skins/skins/textures/character_174.png differ diff --git a/mods/skins/skins/textures/character_174_preview.png b/mods/skins/skins/textures/character_174_preview.png new file mode 100644 index 0000000..45a3a58 Binary files /dev/null and b/mods/skins/skins/textures/character_174_preview.png differ diff --git a/mods/skins/skins/textures/character_174_preview_back.png b/mods/skins/skins/textures/character_174_preview_back.png new file mode 100644 index 0000000..451e873 Binary files /dev/null and b/mods/skins/skins/textures/character_174_preview_back.png differ diff --git a/mods/skins/skins/textures/character_175.png b/mods/skins/skins/textures/character_175.png new file mode 100644 index 0000000..7f9fd7b Binary files /dev/null and b/mods/skins/skins/textures/character_175.png differ diff --git a/mods/skins/skins/textures/character_175_preview.png b/mods/skins/skins/textures/character_175_preview.png new file mode 100644 index 0000000..2a133bd Binary files /dev/null and b/mods/skins/skins/textures/character_175_preview.png differ diff --git a/mods/skins/skins/textures/character_175_preview_back.png b/mods/skins/skins/textures/character_175_preview_back.png new file mode 100644 index 0000000..276791a Binary files /dev/null and b/mods/skins/skins/textures/character_175_preview_back.png differ diff --git a/mods/skins/skins/textures/character_176.png b/mods/skins/skins/textures/character_176.png new file mode 100644 index 0000000..5d39ff6 Binary files /dev/null and b/mods/skins/skins/textures/character_176.png differ diff --git a/mods/skins/skins/textures/character_176_preview.png b/mods/skins/skins/textures/character_176_preview.png new file mode 100644 index 0000000..33af9fd Binary files /dev/null and b/mods/skins/skins/textures/character_176_preview.png differ diff --git a/mods/skins/skins/textures/character_176_preview_back.png b/mods/skins/skins/textures/character_176_preview_back.png new file mode 100644 index 0000000..587cf58 Binary files /dev/null and b/mods/skins/skins/textures/character_176_preview_back.png differ diff --git a/mods/skins/skins/textures/character_177.png b/mods/skins/skins/textures/character_177.png new file mode 100644 index 0000000..13a5407 Binary files /dev/null and b/mods/skins/skins/textures/character_177.png differ diff --git a/mods/skins/skins/textures/character_177_preview.png b/mods/skins/skins/textures/character_177_preview.png new file mode 100644 index 0000000..f097cb1 Binary files /dev/null and b/mods/skins/skins/textures/character_177_preview.png differ diff --git a/mods/skins/skins/textures/character_177_preview_back.png b/mods/skins/skins/textures/character_177_preview_back.png new file mode 100644 index 0000000..4435a25 Binary files /dev/null and b/mods/skins/skins/textures/character_177_preview_back.png differ diff --git a/mods/skins/skins/textures/character_178.png b/mods/skins/skins/textures/character_178.png new file mode 100644 index 0000000..30c5818 Binary files /dev/null and b/mods/skins/skins/textures/character_178.png differ diff --git a/mods/skins/skins/textures/character_178_preview.png b/mods/skins/skins/textures/character_178_preview.png new file mode 100644 index 0000000..28a2e99 Binary files /dev/null and b/mods/skins/skins/textures/character_178_preview.png differ diff --git a/mods/skins/skins/textures/character_178_preview_back.png b/mods/skins/skins/textures/character_178_preview_back.png new file mode 100644 index 0000000..802c1c6 Binary files /dev/null and b/mods/skins/skins/textures/character_178_preview_back.png differ diff --git a/mods/skins/skins/textures/character_179.png b/mods/skins/skins/textures/character_179.png new file mode 100644 index 0000000..b375f3f Binary files /dev/null and b/mods/skins/skins/textures/character_179.png differ diff --git a/mods/skins/skins/textures/character_179_preview.png b/mods/skins/skins/textures/character_179_preview.png new file mode 100644 index 0000000..8a84cef Binary files /dev/null and b/mods/skins/skins/textures/character_179_preview.png differ diff --git a/mods/skins/skins/textures/character_179_preview_back.png b/mods/skins/skins/textures/character_179_preview_back.png new file mode 100644 index 0000000..a2f0a32 Binary files /dev/null and b/mods/skins/skins/textures/character_179_preview_back.png differ diff --git a/mods/skins/skins/textures/character_17_preview.png b/mods/skins/skins/textures/character_17_preview.png new file mode 100644 index 0000000..ae8de0c Binary files /dev/null and b/mods/skins/skins/textures/character_17_preview.png differ diff --git a/mods/skins/skins/textures/character_17_preview_back.png b/mods/skins/skins/textures/character_17_preview_back.png new file mode 100644 index 0000000..118aafd Binary files /dev/null and b/mods/skins/skins/textures/character_17_preview_back.png differ diff --git a/mods/skins/skins/textures/character_18.png b/mods/skins/skins/textures/character_18.png new file mode 100644 index 0000000..ad53a91 Binary files /dev/null and b/mods/skins/skins/textures/character_18.png differ diff --git a/mods/skins/skins/textures/character_18_preview.png b/mods/skins/skins/textures/character_18_preview.png new file mode 100644 index 0000000..397b359 Binary files /dev/null and b/mods/skins/skins/textures/character_18_preview.png differ diff --git a/mods/skins/skins/textures/character_18_preview_back.png b/mods/skins/skins/textures/character_18_preview_back.png new file mode 100644 index 0000000..1e7f282 Binary files /dev/null and b/mods/skins/skins/textures/character_18_preview_back.png differ diff --git a/mods/skins/skins/textures/character_19.png b/mods/skins/skins/textures/character_19.png new file mode 100644 index 0000000..9b32851 Binary files /dev/null and b/mods/skins/skins/textures/character_19.png differ diff --git a/mods/skins/skins/textures/character_19_preview.png b/mods/skins/skins/textures/character_19_preview.png new file mode 100644 index 0000000..9c95d73 Binary files /dev/null and b/mods/skins/skins/textures/character_19_preview.png differ diff --git a/mods/skins/skins/textures/character_19_preview_back.png b/mods/skins/skins/textures/character_19_preview_back.png new file mode 100644 index 0000000..173cf7a Binary files /dev/null and b/mods/skins/skins/textures/character_19_preview_back.png differ diff --git a/mods/skins/skins/textures/character_1_preview.png b/mods/skins/skins/textures/character_1_preview.png new file mode 100644 index 0000000..6957a4e Binary files /dev/null and b/mods/skins/skins/textures/character_1_preview.png differ diff --git a/mods/skins/skins/textures/character_1_preview_back.png b/mods/skins/skins/textures/character_1_preview_back.png new file mode 100644 index 0000000..c266347 Binary files /dev/null and b/mods/skins/skins/textures/character_1_preview_back.png differ diff --git a/mods/skins/skins/textures/character_2.png b/mods/skins/skins/textures/character_2.png new file mode 100644 index 0000000..d794b87 Binary files /dev/null and b/mods/skins/skins/textures/character_2.png differ diff --git a/mods/skins/skins/textures/character_20.png b/mods/skins/skins/textures/character_20.png new file mode 100644 index 0000000..690171c Binary files /dev/null and b/mods/skins/skins/textures/character_20.png differ diff --git a/mods/skins/skins/textures/character_20_preview.png b/mods/skins/skins/textures/character_20_preview.png new file mode 100644 index 0000000..5f067db Binary files /dev/null and b/mods/skins/skins/textures/character_20_preview.png differ diff --git a/mods/skins/skins/textures/character_20_preview_back.png b/mods/skins/skins/textures/character_20_preview_back.png new file mode 100644 index 0000000..953b777 Binary files /dev/null and b/mods/skins/skins/textures/character_20_preview_back.png differ diff --git a/mods/skins/skins/textures/character_21.png b/mods/skins/skins/textures/character_21.png new file mode 100644 index 0000000..a3d7b59 Binary files /dev/null and b/mods/skins/skins/textures/character_21.png differ diff --git a/mods/skins/skins/textures/character_21_preview.png b/mods/skins/skins/textures/character_21_preview.png new file mode 100644 index 0000000..ecf5d21 Binary files /dev/null and b/mods/skins/skins/textures/character_21_preview.png differ diff --git a/mods/skins/skins/textures/character_21_preview_back.png b/mods/skins/skins/textures/character_21_preview_back.png new file mode 100644 index 0000000..5e9c770 Binary files /dev/null and b/mods/skins/skins/textures/character_21_preview_back.png differ diff --git a/mods/skins/skins/textures/character_22.png b/mods/skins/skins/textures/character_22.png new file mode 100644 index 0000000..388d9c5 Binary files /dev/null and b/mods/skins/skins/textures/character_22.png differ diff --git a/mods/skins/skins/textures/character_22_preview.png b/mods/skins/skins/textures/character_22_preview.png new file mode 100644 index 0000000..e8fb9c7 Binary files /dev/null and b/mods/skins/skins/textures/character_22_preview.png differ diff --git a/mods/skins/skins/textures/character_22_preview_back.png b/mods/skins/skins/textures/character_22_preview_back.png new file mode 100644 index 0000000..16dae88 Binary files /dev/null and b/mods/skins/skins/textures/character_22_preview_back.png differ diff --git a/mods/skins/skins/textures/character_23.png b/mods/skins/skins/textures/character_23.png new file mode 100644 index 0000000..7181481 Binary files /dev/null and b/mods/skins/skins/textures/character_23.png differ diff --git a/mods/skins/skins/textures/character_23_preview.png b/mods/skins/skins/textures/character_23_preview.png new file mode 100644 index 0000000..674a10a Binary files /dev/null and b/mods/skins/skins/textures/character_23_preview.png differ diff --git a/mods/skins/skins/textures/character_23_preview_back.png b/mods/skins/skins/textures/character_23_preview_back.png new file mode 100644 index 0000000..8f39f0b Binary files /dev/null and b/mods/skins/skins/textures/character_23_preview_back.png differ diff --git a/mods/skins/skins/textures/character_24.png b/mods/skins/skins/textures/character_24.png new file mode 100644 index 0000000..fe58fa0 Binary files /dev/null and b/mods/skins/skins/textures/character_24.png differ diff --git a/mods/skins/skins/textures/character_24_preview.png b/mods/skins/skins/textures/character_24_preview.png new file mode 100644 index 0000000..382bf2d Binary files /dev/null and b/mods/skins/skins/textures/character_24_preview.png differ diff --git a/mods/skins/skins/textures/character_24_preview_back.png b/mods/skins/skins/textures/character_24_preview_back.png new file mode 100644 index 0000000..f40528d Binary files /dev/null and b/mods/skins/skins/textures/character_24_preview_back.png differ diff --git a/mods/skins/skins/textures/character_25.png b/mods/skins/skins/textures/character_25.png new file mode 100644 index 0000000..d246e6c Binary files /dev/null and b/mods/skins/skins/textures/character_25.png differ diff --git a/mods/skins/skins/textures/character_25_preview.png b/mods/skins/skins/textures/character_25_preview.png new file mode 100644 index 0000000..01cf635 Binary files /dev/null and b/mods/skins/skins/textures/character_25_preview.png differ diff --git a/mods/skins/skins/textures/character_25_preview_back.png b/mods/skins/skins/textures/character_25_preview_back.png new file mode 100644 index 0000000..ab75cea Binary files /dev/null and b/mods/skins/skins/textures/character_25_preview_back.png differ diff --git a/mods/skins/skins/textures/character_26.png b/mods/skins/skins/textures/character_26.png new file mode 100644 index 0000000..98a6d34 Binary files /dev/null and b/mods/skins/skins/textures/character_26.png differ diff --git a/mods/skins/skins/textures/character_26_preview.png b/mods/skins/skins/textures/character_26_preview.png new file mode 100644 index 0000000..6a12bce Binary files /dev/null and b/mods/skins/skins/textures/character_26_preview.png differ diff --git a/mods/skins/skins/textures/character_26_preview_back.png b/mods/skins/skins/textures/character_26_preview_back.png new file mode 100644 index 0000000..1859d9b Binary files /dev/null and b/mods/skins/skins/textures/character_26_preview_back.png differ diff --git a/mods/skins/skins/textures/character_27.png b/mods/skins/skins/textures/character_27.png new file mode 100644 index 0000000..8d056ff Binary files /dev/null and b/mods/skins/skins/textures/character_27.png differ diff --git a/mods/skins/skins/textures/character_27_preview.png b/mods/skins/skins/textures/character_27_preview.png new file mode 100644 index 0000000..a511dcf Binary files /dev/null and b/mods/skins/skins/textures/character_27_preview.png differ diff --git a/mods/skins/skins/textures/character_27_preview_back.png b/mods/skins/skins/textures/character_27_preview_back.png new file mode 100644 index 0000000..e47e8d5 Binary files /dev/null and b/mods/skins/skins/textures/character_27_preview_back.png differ diff --git a/mods/skins/skins/textures/character_28.png b/mods/skins/skins/textures/character_28.png new file mode 100644 index 0000000..39b9bee Binary files /dev/null and b/mods/skins/skins/textures/character_28.png differ diff --git a/mods/skins/skins/textures/character_28_preview.png b/mods/skins/skins/textures/character_28_preview.png new file mode 100644 index 0000000..8f6d0b1 Binary files /dev/null and b/mods/skins/skins/textures/character_28_preview.png differ diff --git a/mods/skins/skins/textures/character_28_preview_back.png b/mods/skins/skins/textures/character_28_preview_back.png new file mode 100644 index 0000000..8a3d11e Binary files /dev/null and b/mods/skins/skins/textures/character_28_preview_back.png differ diff --git a/mods/skins/skins/textures/character_29.png b/mods/skins/skins/textures/character_29.png new file mode 100644 index 0000000..357ecde Binary files /dev/null and b/mods/skins/skins/textures/character_29.png differ diff --git a/mods/skins/skins/textures/character_29_preview.png b/mods/skins/skins/textures/character_29_preview.png new file mode 100644 index 0000000..4ae1e2c Binary files /dev/null and b/mods/skins/skins/textures/character_29_preview.png differ diff --git a/mods/skins/skins/textures/character_29_preview_back.png b/mods/skins/skins/textures/character_29_preview_back.png new file mode 100644 index 0000000..e9cc2c8 Binary files /dev/null and b/mods/skins/skins/textures/character_29_preview_back.png differ diff --git a/mods/skins/skins/textures/character_2_preview.png b/mods/skins/skins/textures/character_2_preview.png new file mode 100644 index 0000000..f7d80c8 Binary files /dev/null and b/mods/skins/skins/textures/character_2_preview.png differ diff --git a/mods/skins/skins/textures/character_2_preview_back.png b/mods/skins/skins/textures/character_2_preview_back.png new file mode 100644 index 0000000..7e68646 Binary files /dev/null and b/mods/skins/skins/textures/character_2_preview_back.png differ diff --git a/mods/skins/skins/textures/character_3.png b/mods/skins/skins/textures/character_3.png new file mode 100644 index 0000000..2d34c13 Binary files /dev/null and b/mods/skins/skins/textures/character_3.png differ diff --git a/mods/skins/skins/textures/character_30.png b/mods/skins/skins/textures/character_30.png new file mode 100644 index 0000000..6287c5c Binary files /dev/null and b/mods/skins/skins/textures/character_30.png differ diff --git a/mods/skins/skins/textures/character_30_preview.png b/mods/skins/skins/textures/character_30_preview.png new file mode 100644 index 0000000..892bfcc Binary files /dev/null and b/mods/skins/skins/textures/character_30_preview.png differ diff --git a/mods/skins/skins/textures/character_30_preview_back.png b/mods/skins/skins/textures/character_30_preview_back.png new file mode 100644 index 0000000..558ea29 Binary files /dev/null and b/mods/skins/skins/textures/character_30_preview_back.png differ diff --git a/mods/skins/skins/textures/character_31.png b/mods/skins/skins/textures/character_31.png new file mode 100644 index 0000000..155671e Binary files /dev/null and b/mods/skins/skins/textures/character_31.png differ diff --git a/mods/skins/skins/textures/character_31_preview.png b/mods/skins/skins/textures/character_31_preview.png new file mode 100644 index 0000000..1f1565c Binary files /dev/null and b/mods/skins/skins/textures/character_31_preview.png differ diff --git a/mods/skins/skins/textures/character_31_preview_back.png b/mods/skins/skins/textures/character_31_preview_back.png new file mode 100644 index 0000000..e4e6147 Binary files /dev/null and b/mods/skins/skins/textures/character_31_preview_back.png differ diff --git a/mods/skins/skins/textures/character_32.png b/mods/skins/skins/textures/character_32.png new file mode 100644 index 0000000..bf3adc6 Binary files /dev/null and b/mods/skins/skins/textures/character_32.png differ diff --git a/mods/skins/skins/textures/character_32_preview.png b/mods/skins/skins/textures/character_32_preview.png new file mode 100644 index 0000000..5aa4eac Binary files /dev/null and b/mods/skins/skins/textures/character_32_preview.png differ diff --git a/mods/skins/skins/textures/character_32_preview_back.png b/mods/skins/skins/textures/character_32_preview_back.png new file mode 100644 index 0000000..f588d5f Binary files /dev/null and b/mods/skins/skins/textures/character_32_preview_back.png differ diff --git a/mods/skins/skins/textures/character_33.png b/mods/skins/skins/textures/character_33.png new file mode 100644 index 0000000..77e6603 Binary files /dev/null and b/mods/skins/skins/textures/character_33.png differ diff --git a/mods/skins/skins/textures/character_33_preview.png b/mods/skins/skins/textures/character_33_preview.png new file mode 100644 index 0000000..bb4bd81 Binary files /dev/null and b/mods/skins/skins/textures/character_33_preview.png differ diff --git a/mods/skins/skins/textures/character_33_preview_back.png b/mods/skins/skins/textures/character_33_preview_back.png new file mode 100644 index 0000000..d8772ba Binary files /dev/null and b/mods/skins/skins/textures/character_33_preview_back.png differ diff --git a/mods/skins/skins/textures/character_34.png b/mods/skins/skins/textures/character_34.png new file mode 100644 index 0000000..9f2eb1a Binary files /dev/null and b/mods/skins/skins/textures/character_34.png differ diff --git a/mods/skins/skins/textures/character_34_preview.png b/mods/skins/skins/textures/character_34_preview.png new file mode 100644 index 0000000..917ab68 Binary files /dev/null and b/mods/skins/skins/textures/character_34_preview.png differ diff --git a/mods/skins/skins/textures/character_34_preview_back.png b/mods/skins/skins/textures/character_34_preview_back.png new file mode 100644 index 0000000..15d8cbc Binary files /dev/null and b/mods/skins/skins/textures/character_34_preview_back.png differ diff --git a/mods/skins/skins/textures/character_35.png b/mods/skins/skins/textures/character_35.png new file mode 100644 index 0000000..f8dba17 Binary files /dev/null and b/mods/skins/skins/textures/character_35.png differ diff --git a/mods/skins/skins/textures/character_35_preview.png b/mods/skins/skins/textures/character_35_preview.png new file mode 100644 index 0000000..64c969f Binary files /dev/null and b/mods/skins/skins/textures/character_35_preview.png differ diff --git a/mods/skins/skins/textures/character_35_preview_back.png b/mods/skins/skins/textures/character_35_preview_back.png new file mode 100644 index 0000000..0d512ee Binary files /dev/null and b/mods/skins/skins/textures/character_35_preview_back.png differ diff --git a/mods/skins/skins/textures/character_36.png b/mods/skins/skins/textures/character_36.png new file mode 100644 index 0000000..c434f0e Binary files /dev/null and b/mods/skins/skins/textures/character_36.png differ diff --git a/mods/skins/skins/textures/character_36_preview.png b/mods/skins/skins/textures/character_36_preview.png new file mode 100644 index 0000000..4b138e0 Binary files /dev/null and b/mods/skins/skins/textures/character_36_preview.png differ diff --git a/mods/skins/skins/textures/character_36_preview_back.png b/mods/skins/skins/textures/character_36_preview_back.png new file mode 100644 index 0000000..3dfe51c Binary files /dev/null and b/mods/skins/skins/textures/character_36_preview_back.png differ diff --git a/mods/skins/skins/textures/character_37.png b/mods/skins/skins/textures/character_37.png new file mode 100644 index 0000000..9087fdc Binary files /dev/null and b/mods/skins/skins/textures/character_37.png differ diff --git a/mods/skins/skins/textures/character_37_preview.png b/mods/skins/skins/textures/character_37_preview.png new file mode 100644 index 0000000..cf374ed Binary files /dev/null and b/mods/skins/skins/textures/character_37_preview.png differ diff --git a/mods/skins/skins/textures/character_37_preview_back.png b/mods/skins/skins/textures/character_37_preview_back.png new file mode 100644 index 0000000..9fd620d Binary files /dev/null and b/mods/skins/skins/textures/character_37_preview_back.png differ diff --git a/mods/skins/skins/textures/character_38.png b/mods/skins/skins/textures/character_38.png new file mode 100644 index 0000000..894ffcc Binary files /dev/null and b/mods/skins/skins/textures/character_38.png differ diff --git a/mods/skins/skins/textures/character_38_preview.png b/mods/skins/skins/textures/character_38_preview.png new file mode 100644 index 0000000..2d4d8ef Binary files /dev/null and b/mods/skins/skins/textures/character_38_preview.png differ diff --git a/mods/skins/skins/textures/character_38_preview_back.png b/mods/skins/skins/textures/character_38_preview_back.png new file mode 100644 index 0000000..3c7fda8 Binary files /dev/null and b/mods/skins/skins/textures/character_38_preview_back.png differ diff --git a/mods/skins/skins/textures/character_39.png b/mods/skins/skins/textures/character_39.png new file mode 100644 index 0000000..19a35d2 Binary files /dev/null and b/mods/skins/skins/textures/character_39.png differ diff --git a/mods/skins/skins/textures/character_39_preview.png b/mods/skins/skins/textures/character_39_preview.png new file mode 100644 index 0000000..02a7a6a Binary files /dev/null and b/mods/skins/skins/textures/character_39_preview.png differ diff --git a/mods/skins/skins/textures/character_39_preview_back.png b/mods/skins/skins/textures/character_39_preview_back.png new file mode 100644 index 0000000..0b95463 Binary files /dev/null and b/mods/skins/skins/textures/character_39_preview_back.png differ diff --git a/mods/skins/skins/textures/character_3_preview.png b/mods/skins/skins/textures/character_3_preview.png new file mode 100644 index 0000000..fb3d4f4 Binary files /dev/null and b/mods/skins/skins/textures/character_3_preview.png differ diff --git a/mods/skins/skins/textures/character_3_preview_back.png b/mods/skins/skins/textures/character_3_preview_back.png new file mode 100644 index 0000000..ab23e6a Binary files /dev/null and b/mods/skins/skins/textures/character_3_preview_back.png differ diff --git a/mods/skins/skins/textures/character_4.png b/mods/skins/skins/textures/character_4.png new file mode 100644 index 0000000..ca604be Binary files /dev/null and b/mods/skins/skins/textures/character_4.png differ diff --git a/mods/skins/skins/textures/character_40.png b/mods/skins/skins/textures/character_40.png new file mode 100644 index 0000000..690cd25 Binary files /dev/null and b/mods/skins/skins/textures/character_40.png differ diff --git a/mods/skins/skins/textures/character_40_preview.png b/mods/skins/skins/textures/character_40_preview.png new file mode 100644 index 0000000..e84fdd0 Binary files /dev/null and b/mods/skins/skins/textures/character_40_preview.png differ diff --git a/mods/skins/skins/textures/character_40_preview_back.png b/mods/skins/skins/textures/character_40_preview_back.png new file mode 100644 index 0000000..81cbe5e Binary files /dev/null and b/mods/skins/skins/textures/character_40_preview_back.png differ diff --git a/mods/skins/skins/textures/character_41.png b/mods/skins/skins/textures/character_41.png new file mode 100644 index 0000000..5ab5128 Binary files /dev/null and b/mods/skins/skins/textures/character_41.png differ diff --git a/mods/skins/skins/textures/character_41_preview.png b/mods/skins/skins/textures/character_41_preview.png new file mode 100644 index 0000000..fd64f85 Binary files /dev/null and b/mods/skins/skins/textures/character_41_preview.png differ diff --git a/mods/skins/skins/textures/character_41_preview_back.png b/mods/skins/skins/textures/character_41_preview_back.png new file mode 100644 index 0000000..d18a5da Binary files /dev/null and b/mods/skins/skins/textures/character_41_preview_back.png differ diff --git a/mods/skins/skins/textures/character_42.png b/mods/skins/skins/textures/character_42.png new file mode 100644 index 0000000..b5b2a79 Binary files /dev/null and b/mods/skins/skins/textures/character_42.png differ diff --git a/mods/skins/skins/textures/character_42_preview.png b/mods/skins/skins/textures/character_42_preview.png new file mode 100644 index 0000000..54375bf Binary files /dev/null and b/mods/skins/skins/textures/character_42_preview.png differ diff --git a/mods/skins/skins/textures/character_42_preview_back.png b/mods/skins/skins/textures/character_42_preview_back.png new file mode 100644 index 0000000..2658516 Binary files /dev/null and b/mods/skins/skins/textures/character_42_preview_back.png differ diff --git a/mods/skins/skins/textures/character_43.png b/mods/skins/skins/textures/character_43.png new file mode 100644 index 0000000..67044f1 Binary files /dev/null and b/mods/skins/skins/textures/character_43.png differ diff --git a/mods/skins/skins/textures/character_43_preview.png b/mods/skins/skins/textures/character_43_preview.png new file mode 100644 index 0000000..fcea1c8 Binary files /dev/null and b/mods/skins/skins/textures/character_43_preview.png differ diff --git a/mods/skins/skins/textures/character_43_preview_back.png b/mods/skins/skins/textures/character_43_preview_back.png new file mode 100644 index 0000000..d568a03 Binary files /dev/null and b/mods/skins/skins/textures/character_43_preview_back.png differ diff --git a/mods/skins/skins/textures/character_44.png b/mods/skins/skins/textures/character_44.png new file mode 100644 index 0000000..155671e Binary files /dev/null and b/mods/skins/skins/textures/character_44.png differ diff --git a/mods/skins/skins/textures/character_44_preview.png b/mods/skins/skins/textures/character_44_preview.png new file mode 100644 index 0000000..1f1565c Binary files /dev/null and b/mods/skins/skins/textures/character_44_preview.png differ diff --git a/mods/skins/skins/textures/character_44_preview_back.png b/mods/skins/skins/textures/character_44_preview_back.png new file mode 100644 index 0000000..e4e6147 Binary files /dev/null and b/mods/skins/skins/textures/character_44_preview_back.png differ diff --git a/mods/skins/skins/textures/character_45.png b/mods/skins/skins/textures/character_45.png new file mode 100644 index 0000000..689653b Binary files /dev/null and b/mods/skins/skins/textures/character_45.png differ diff --git a/mods/skins/skins/textures/character_45_preview.png b/mods/skins/skins/textures/character_45_preview.png new file mode 100644 index 0000000..1ac9f79 Binary files /dev/null and b/mods/skins/skins/textures/character_45_preview.png differ diff --git a/mods/skins/skins/textures/character_45_preview_back.png b/mods/skins/skins/textures/character_45_preview_back.png new file mode 100644 index 0000000..96175de Binary files /dev/null and b/mods/skins/skins/textures/character_45_preview_back.png differ diff --git a/mods/skins/skins/textures/character_46.png b/mods/skins/skins/textures/character_46.png new file mode 100644 index 0000000..a7d417b Binary files /dev/null and b/mods/skins/skins/textures/character_46.png differ diff --git a/mods/skins/skins/textures/character_46_preview.png b/mods/skins/skins/textures/character_46_preview.png new file mode 100644 index 0000000..d36d387 Binary files /dev/null and b/mods/skins/skins/textures/character_46_preview.png differ diff --git a/mods/skins/skins/textures/character_46_preview_back.png b/mods/skins/skins/textures/character_46_preview_back.png new file mode 100644 index 0000000..87bf94d Binary files /dev/null and b/mods/skins/skins/textures/character_46_preview_back.png differ diff --git a/mods/skins/skins/textures/character_47.png b/mods/skins/skins/textures/character_47.png new file mode 100644 index 0000000..0029863 Binary files /dev/null and b/mods/skins/skins/textures/character_47.png differ diff --git a/mods/skins/skins/textures/character_47_preview.png b/mods/skins/skins/textures/character_47_preview.png new file mode 100644 index 0000000..9d7503b Binary files /dev/null and b/mods/skins/skins/textures/character_47_preview.png differ diff --git a/mods/skins/skins/textures/character_47_preview_back.png b/mods/skins/skins/textures/character_47_preview_back.png new file mode 100644 index 0000000..180b743 Binary files /dev/null and b/mods/skins/skins/textures/character_47_preview_back.png differ diff --git a/mods/skins/skins/textures/character_48.png b/mods/skins/skins/textures/character_48.png new file mode 100644 index 0000000..ba9160d Binary files /dev/null and b/mods/skins/skins/textures/character_48.png differ diff --git a/mods/skins/skins/textures/character_48_preview.png b/mods/skins/skins/textures/character_48_preview.png new file mode 100644 index 0000000..6f375cc Binary files /dev/null and b/mods/skins/skins/textures/character_48_preview.png differ diff --git a/mods/skins/skins/textures/character_48_preview_back.png b/mods/skins/skins/textures/character_48_preview_back.png new file mode 100644 index 0000000..afb88d0 Binary files /dev/null and b/mods/skins/skins/textures/character_48_preview_back.png differ diff --git a/mods/skins/skins/textures/character_49.png b/mods/skins/skins/textures/character_49.png new file mode 100644 index 0000000..46d5baf Binary files /dev/null and b/mods/skins/skins/textures/character_49.png differ diff --git a/mods/skins/skins/textures/character_49_preview.png b/mods/skins/skins/textures/character_49_preview.png new file mode 100644 index 0000000..3fa27c0 Binary files /dev/null and b/mods/skins/skins/textures/character_49_preview.png differ diff --git a/mods/skins/skins/textures/character_49_preview_back.png b/mods/skins/skins/textures/character_49_preview_back.png new file mode 100644 index 0000000..8e9838f Binary files /dev/null and b/mods/skins/skins/textures/character_49_preview_back.png differ diff --git a/mods/skins/skins/textures/character_4_preview.png b/mods/skins/skins/textures/character_4_preview.png new file mode 100644 index 0000000..4015e87 Binary files /dev/null and b/mods/skins/skins/textures/character_4_preview.png differ diff --git a/mods/skins/skins/textures/character_4_preview_back.png b/mods/skins/skins/textures/character_4_preview_back.png new file mode 100644 index 0000000..7e79b2d Binary files /dev/null and b/mods/skins/skins/textures/character_4_preview_back.png differ diff --git a/mods/skins/skins/textures/character_5.png b/mods/skins/skins/textures/character_5.png new file mode 100644 index 0000000..bccb4bb Binary files /dev/null and b/mods/skins/skins/textures/character_5.png differ diff --git a/mods/skins/skins/textures/character_50.png b/mods/skins/skins/textures/character_50.png new file mode 100644 index 0000000..6341b18 Binary files /dev/null and b/mods/skins/skins/textures/character_50.png differ diff --git a/mods/skins/skins/textures/character_50_preview.png b/mods/skins/skins/textures/character_50_preview.png new file mode 100644 index 0000000..84b4081 Binary files /dev/null and b/mods/skins/skins/textures/character_50_preview.png differ diff --git a/mods/skins/skins/textures/character_50_preview_back.png b/mods/skins/skins/textures/character_50_preview_back.png new file mode 100644 index 0000000..4ca0e48 Binary files /dev/null and b/mods/skins/skins/textures/character_50_preview_back.png differ diff --git a/mods/skins/skins/textures/character_51.png b/mods/skins/skins/textures/character_51.png new file mode 100644 index 0000000..91df4ce Binary files /dev/null and b/mods/skins/skins/textures/character_51.png differ diff --git a/mods/skins/skins/textures/character_51_preview.png b/mods/skins/skins/textures/character_51_preview.png new file mode 100644 index 0000000..af7d02d Binary files /dev/null and b/mods/skins/skins/textures/character_51_preview.png differ diff --git a/mods/skins/skins/textures/character_51_preview_back.png b/mods/skins/skins/textures/character_51_preview_back.png new file mode 100644 index 0000000..9980efd Binary files /dev/null and b/mods/skins/skins/textures/character_51_preview_back.png differ diff --git a/mods/skins/skins/textures/character_52.png b/mods/skins/skins/textures/character_52.png new file mode 100644 index 0000000..a1c44e1 Binary files /dev/null and b/mods/skins/skins/textures/character_52.png differ diff --git a/mods/skins/skins/textures/character_52_preview.png b/mods/skins/skins/textures/character_52_preview.png new file mode 100644 index 0000000..61bbc1e Binary files /dev/null and b/mods/skins/skins/textures/character_52_preview.png differ diff --git a/mods/skins/skins/textures/character_52_preview_back.png b/mods/skins/skins/textures/character_52_preview_back.png new file mode 100644 index 0000000..7271d30 Binary files /dev/null and b/mods/skins/skins/textures/character_52_preview_back.png differ diff --git a/mods/skins/skins/textures/character_53.png b/mods/skins/skins/textures/character_53.png new file mode 100644 index 0000000..fac09e7 Binary files /dev/null and b/mods/skins/skins/textures/character_53.png differ diff --git a/mods/skins/skins/textures/character_53_preview.png b/mods/skins/skins/textures/character_53_preview.png new file mode 100644 index 0000000..739797b Binary files /dev/null and b/mods/skins/skins/textures/character_53_preview.png differ diff --git a/mods/skins/skins/textures/character_53_preview_back.png b/mods/skins/skins/textures/character_53_preview_back.png new file mode 100644 index 0000000..b8979c6 Binary files /dev/null and b/mods/skins/skins/textures/character_53_preview_back.png differ diff --git a/mods/skins/skins/textures/character_54.png b/mods/skins/skins/textures/character_54.png new file mode 100644 index 0000000..123dc19 Binary files /dev/null and b/mods/skins/skins/textures/character_54.png differ diff --git a/mods/skins/skins/textures/character_54_preview.png b/mods/skins/skins/textures/character_54_preview.png new file mode 100644 index 0000000..25f4d34 Binary files /dev/null and b/mods/skins/skins/textures/character_54_preview.png differ diff --git a/mods/skins/skins/textures/character_54_preview_back.png b/mods/skins/skins/textures/character_54_preview_back.png new file mode 100644 index 0000000..9b2e14b Binary files /dev/null and b/mods/skins/skins/textures/character_54_preview_back.png differ diff --git a/mods/skins/skins/textures/character_55.png b/mods/skins/skins/textures/character_55.png new file mode 100644 index 0000000..f0e161c Binary files /dev/null and b/mods/skins/skins/textures/character_55.png differ diff --git a/mods/skins/skins/textures/character_55_preview.png b/mods/skins/skins/textures/character_55_preview.png new file mode 100644 index 0000000..c93f4e9 Binary files /dev/null and b/mods/skins/skins/textures/character_55_preview.png differ diff --git a/mods/skins/skins/textures/character_55_preview_back.png b/mods/skins/skins/textures/character_55_preview_back.png new file mode 100644 index 0000000..265b602 Binary files /dev/null and b/mods/skins/skins/textures/character_55_preview_back.png differ diff --git a/mods/skins/skins/textures/character_56.png b/mods/skins/skins/textures/character_56.png new file mode 100644 index 0000000..9ad319c Binary files /dev/null and b/mods/skins/skins/textures/character_56.png differ diff --git a/mods/skins/skins/textures/character_56_preview.png b/mods/skins/skins/textures/character_56_preview.png new file mode 100644 index 0000000..04bc09b Binary files /dev/null and b/mods/skins/skins/textures/character_56_preview.png differ diff --git a/mods/skins/skins/textures/character_56_preview_back.png b/mods/skins/skins/textures/character_56_preview_back.png new file mode 100644 index 0000000..38d1f91 Binary files /dev/null and b/mods/skins/skins/textures/character_56_preview_back.png differ diff --git a/mods/skins/skins/textures/character_57.png b/mods/skins/skins/textures/character_57.png new file mode 100644 index 0000000..970fcc0 Binary files /dev/null and b/mods/skins/skins/textures/character_57.png differ diff --git a/mods/skins/skins/textures/character_57_preview.png b/mods/skins/skins/textures/character_57_preview.png new file mode 100644 index 0000000..592a267 Binary files /dev/null and b/mods/skins/skins/textures/character_57_preview.png differ diff --git a/mods/skins/skins/textures/character_57_preview_back.png b/mods/skins/skins/textures/character_57_preview_back.png new file mode 100644 index 0000000..35a9a32 Binary files /dev/null and b/mods/skins/skins/textures/character_57_preview_back.png differ diff --git a/mods/skins/skins/textures/character_58.png b/mods/skins/skins/textures/character_58.png new file mode 100644 index 0000000..bce67c5 Binary files /dev/null and b/mods/skins/skins/textures/character_58.png differ diff --git a/mods/skins/skins/textures/character_58_preview.png b/mods/skins/skins/textures/character_58_preview.png new file mode 100644 index 0000000..525a7f2 Binary files /dev/null and b/mods/skins/skins/textures/character_58_preview.png differ diff --git a/mods/skins/skins/textures/character_58_preview_back.png b/mods/skins/skins/textures/character_58_preview_back.png new file mode 100644 index 0000000..3a7c0e4 Binary files /dev/null and b/mods/skins/skins/textures/character_58_preview_back.png differ diff --git a/mods/skins/skins/textures/character_59.png b/mods/skins/skins/textures/character_59.png new file mode 100644 index 0000000..dfff44d Binary files /dev/null and b/mods/skins/skins/textures/character_59.png differ diff --git a/mods/skins/skins/textures/character_59_preview.png b/mods/skins/skins/textures/character_59_preview.png new file mode 100644 index 0000000..3146c1e Binary files /dev/null and b/mods/skins/skins/textures/character_59_preview.png differ diff --git a/mods/skins/skins/textures/character_59_preview_back.png b/mods/skins/skins/textures/character_59_preview_back.png new file mode 100644 index 0000000..e6ad691 Binary files /dev/null and b/mods/skins/skins/textures/character_59_preview_back.png differ diff --git a/mods/skins/skins/textures/character_5_preview.png b/mods/skins/skins/textures/character_5_preview.png new file mode 100644 index 0000000..c379a8f Binary files /dev/null and b/mods/skins/skins/textures/character_5_preview.png differ diff --git a/mods/skins/skins/textures/character_5_preview_back.png b/mods/skins/skins/textures/character_5_preview_back.png new file mode 100644 index 0000000..0744de8 Binary files /dev/null and b/mods/skins/skins/textures/character_5_preview_back.png differ diff --git a/mods/skins/skins/textures/character_6.png b/mods/skins/skins/textures/character_6.png new file mode 100644 index 0000000..bb2f94a Binary files /dev/null and b/mods/skins/skins/textures/character_6.png differ diff --git a/mods/skins/skins/textures/character_60.png b/mods/skins/skins/textures/character_60.png new file mode 100644 index 0000000..a066956 Binary files /dev/null and b/mods/skins/skins/textures/character_60.png differ diff --git a/mods/skins/skins/textures/character_60_preview.png b/mods/skins/skins/textures/character_60_preview.png new file mode 100644 index 0000000..3bb00e7 Binary files /dev/null and b/mods/skins/skins/textures/character_60_preview.png differ diff --git a/mods/skins/skins/textures/character_60_preview_back.png b/mods/skins/skins/textures/character_60_preview_back.png new file mode 100644 index 0000000..0226430 Binary files /dev/null and b/mods/skins/skins/textures/character_60_preview_back.png differ diff --git a/mods/skins/skins/textures/character_61.png b/mods/skins/skins/textures/character_61.png new file mode 100644 index 0000000..184b1a6 Binary files /dev/null and b/mods/skins/skins/textures/character_61.png differ diff --git a/mods/skins/skins/textures/character_61_preview.png b/mods/skins/skins/textures/character_61_preview.png new file mode 100644 index 0000000..858c43b Binary files /dev/null and b/mods/skins/skins/textures/character_61_preview.png differ diff --git a/mods/skins/skins/textures/character_61_preview_back.png b/mods/skins/skins/textures/character_61_preview_back.png new file mode 100644 index 0000000..eaa15b2 Binary files /dev/null and b/mods/skins/skins/textures/character_61_preview_back.png differ diff --git a/mods/skins/skins/textures/character_62.png b/mods/skins/skins/textures/character_62.png new file mode 100644 index 0000000..bb21063 Binary files /dev/null and b/mods/skins/skins/textures/character_62.png differ diff --git a/mods/skins/skins/textures/character_62_preview.png b/mods/skins/skins/textures/character_62_preview.png new file mode 100644 index 0000000..cace83f Binary files /dev/null and b/mods/skins/skins/textures/character_62_preview.png differ diff --git a/mods/skins/skins/textures/character_62_preview_back.png b/mods/skins/skins/textures/character_62_preview_back.png new file mode 100644 index 0000000..ada52b3 Binary files /dev/null and b/mods/skins/skins/textures/character_62_preview_back.png differ diff --git a/mods/skins/skins/textures/character_63.png b/mods/skins/skins/textures/character_63.png new file mode 100644 index 0000000..7dec4b9 Binary files /dev/null and b/mods/skins/skins/textures/character_63.png differ diff --git a/mods/skins/skins/textures/character_63_preview.png b/mods/skins/skins/textures/character_63_preview.png new file mode 100644 index 0000000..be367ee Binary files /dev/null and b/mods/skins/skins/textures/character_63_preview.png differ diff --git a/mods/skins/skins/textures/character_63_preview_back.png b/mods/skins/skins/textures/character_63_preview_back.png new file mode 100644 index 0000000..737cadc Binary files /dev/null and b/mods/skins/skins/textures/character_63_preview_back.png differ diff --git a/mods/skins/skins/textures/character_64.png b/mods/skins/skins/textures/character_64.png new file mode 100644 index 0000000..d810e23 Binary files /dev/null and b/mods/skins/skins/textures/character_64.png differ diff --git a/mods/skins/skins/textures/character_64_preview.png b/mods/skins/skins/textures/character_64_preview.png new file mode 100644 index 0000000..295dde0 Binary files /dev/null and b/mods/skins/skins/textures/character_64_preview.png differ diff --git a/mods/skins/skins/textures/character_64_preview_back.png b/mods/skins/skins/textures/character_64_preview_back.png new file mode 100644 index 0000000..e4f5208 Binary files /dev/null and b/mods/skins/skins/textures/character_64_preview_back.png differ diff --git a/mods/skins/skins/textures/character_65.png b/mods/skins/skins/textures/character_65.png new file mode 100644 index 0000000..e61d663 Binary files /dev/null and b/mods/skins/skins/textures/character_65.png differ diff --git a/mods/skins/skins/textures/character_65_preview.png b/mods/skins/skins/textures/character_65_preview.png new file mode 100644 index 0000000..fc2260d Binary files /dev/null and b/mods/skins/skins/textures/character_65_preview.png differ diff --git a/mods/skins/skins/textures/character_65_preview_back.png b/mods/skins/skins/textures/character_65_preview_back.png new file mode 100644 index 0000000..878ce17 Binary files /dev/null and b/mods/skins/skins/textures/character_65_preview_back.png differ diff --git a/mods/skins/skins/textures/character_66.png b/mods/skins/skins/textures/character_66.png new file mode 100644 index 0000000..76f7821 Binary files /dev/null and b/mods/skins/skins/textures/character_66.png differ diff --git a/mods/skins/skins/textures/character_66_preview.png b/mods/skins/skins/textures/character_66_preview.png new file mode 100644 index 0000000..4a0d9d1 Binary files /dev/null and b/mods/skins/skins/textures/character_66_preview.png differ diff --git a/mods/skins/skins/textures/character_66_preview_back.png b/mods/skins/skins/textures/character_66_preview_back.png new file mode 100644 index 0000000..a1ff9db Binary files /dev/null and b/mods/skins/skins/textures/character_66_preview_back.png differ diff --git a/mods/skins/skins/textures/character_67.png b/mods/skins/skins/textures/character_67.png new file mode 100644 index 0000000..f2c502f Binary files /dev/null and b/mods/skins/skins/textures/character_67.png differ diff --git a/mods/skins/skins/textures/character_67_preview.png b/mods/skins/skins/textures/character_67_preview.png new file mode 100644 index 0000000..58d12b6 Binary files /dev/null and b/mods/skins/skins/textures/character_67_preview.png differ diff --git a/mods/skins/skins/textures/character_67_preview_back.png b/mods/skins/skins/textures/character_67_preview_back.png new file mode 100644 index 0000000..fcdd17f Binary files /dev/null and b/mods/skins/skins/textures/character_67_preview_back.png differ diff --git a/mods/skins/skins/textures/character_68.png b/mods/skins/skins/textures/character_68.png new file mode 100644 index 0000000..ffcef27 Binary files /dev/null and b/mods/skins/skins/textures/character_68.png differ diff --git a/mods/skins/skins/textures/character_68_preview.png b/mods/skins/skins/textures/character_68_preview.png new file mode 100644 index 0000000..66be79e Binary files /dev/null and b/mods/skins/skins/textures/character_68_preview.png differ diff --git a/mods/skins/skins/textures/character_68_preview_back.png b/mods/skins/skins/textures/character_68_preview_back.png new file mode 100644 index 0000000..6215bcd Binary files /dev/null and b/mods/skins/skins/textures/character_68_preview_back.png differ diff --git a/mods/skins/skins/textures/character_69.png b/mods/skins/skins/textures/character_69.png new file mode 100644 index 0000000..cd78624 Binary files /dev/null and b/mods/skins/skins/textures/character_69.png differ diff --git a/mods/skins/skins/textures/character_69_preview.png b/mods/skins/skins/textures/character_69_preview.png new file mode 100644 index 0000000..0c55691 Binary files /dev/null and b/mods/skins/skins/textures/character_69_preview.png differ diff --git a/mods/skins/skins/textures/character_69_preview_back.png b/mods/skins/skins/textures/character_69_preview_back.png new file mode 100644 index 0000000..9ecc0e2 Binary files /dev/null and b/mods/skins/skins/textures/character_69_preview_back.png differ diff --git a/mods/skins/skins/textures/character_6_preview.png b/mods/skins/skins/textures/character_6_preview.png new file mode 100644 index 0000000..8635912 Binary files /dev/null and b/mods/skins/skins/textures/character_6_preview.png differ diff --git a/mods/skins/skins/textures/character_6_preview_back.png b/mods/skins/skins/textures/character_6_preview_back.png new file mode 100644 index 0000000..6915523 Binary files /dev/null and b/mods/skins/skins/textures/character_6_preview_back.png differ diff --git a/mods/skins/skins/textures/character_7.png b/mods/skins/skins/textures/character_7.png new file mode 100644 index 0000000..b26cb07 Binary files /dev/null and b/mods/skins/skins/textures/character_7.png differ diff --git a/mods/skins/skins/textures/character_70.png b/mods/skins/skins/textures/character_70.png new file mode 100644 index 0000000..3782f04 Binary files /dev/null and b/mods/skins/skins/textures/character_70.png differ diff --git a/mods/skins/skins/textures/character_70_preview.png b/mods/skins/skins/textures/character_70_preview.png new file mode 100644 index 0000000..bb4236a Binary files /dev/null and b/mods/skins/skins/textures/character_70_preview.png differ diff --git a/mods/skins/skins/textures/character_70_preview_back.png b/mods/skins/skins/textures/character_70_preview_back.png new file mode 100644 index 0000000..d8c0fd8 Binary files /dev/null and b/mods/skins/skins/textures/character_70_preview_back.png differ diff --git a/mods/skins/skins/textures/character_71.png b/mods/skins/skins/textures/character_71.png new file mode 100644 index 0000000..08f19fa Binary files /dev/null and b/mods/skins/skins/textures/character_71.png differ diff --git a/mods/skins/skins/textures/character_71_preview.png b/mods/skins/skins/textures/character_71_preview.png new file mode 100644 index 0000000..f14ebff Binary files /dev/null and b/mods/skins/skins/textures/character_71_preview.png differ diff --git a/mods/skins/skins/textures/character_71_preview_back.png b/mods/skins/skins/textures/character_71_preview_back.png new file mode 100644 index 0000000..f88055a Binary files /dev/null and b/mods/skins/skins/textures/character_71_preview_back.png differ diff --git a/mods/skins/skins/textures/character_72.png b/mods/skins/skins/textures/character_72.png new file mode 100644 index 0000000..201a717 Binary files /dev/null and b/mods/skins/skins/textures/character_72.png differ diff --git a/mods/skins/skins/textures/character_72_preview.png b/mods/skins/skins/textures/character_72_preview.png new file mode 100644 index 0000000..22b561c Binary files /dev/null and b/mods/skins/skins/textures/character_72_preview.png differ diff --git a/mods/skins/skins/textures/character_72_preview_back.png b/mods/skins/skins/textures/character_72_preview_back.png new file mode 100644 index 0000000..91370e1 Binary files /dev/null and b/mods/skins/skins/textures/character_72_preview_back.png differ diff --git a/mods/skins/skins/textures/character_73.png b/mods/skins/skins/textures/character_73.png new file mode 100644 index 0000000..4cf5e4e Binary files /dev/null and b/mods/skins/skins/textures/character_73.png differ diff --git a/mods/skins/skins/textures/character_73_preview.png b/mods/skins/skins/textures/character_73_preview.png new file mode 100644 index 0000000..f096dc2 Binary files /dev/null and b/mods/skins/skins/textures/character_73_preview.png differ diff --git a/mods/skins/skins/textures/character_73_preview_back.png b/mods/skins/skins/textures/character_73_preview_back.png new file mode 100644 index 0000000..490a927 Binary files /dev/null and b/mods/skins/skins/textures/character_73_preview_back.png differ diff --git a/mods/skins/skins/textures/character_74.png b/mods/skins/skins/textures/character_74.png new file mode 100644 index 0000000..89f9cda Binary files /dev/null and b/mods/skins/skins/textures/character_74.png differ diff --git a/mods/skins/skins/textures/character_74_preview.png b/mods/skins/skins/textures/character_74_preview.png new file mode 100644 index 0000000..e57d324 Binary files /dev/null and b/mods/skins/skins/textures/character_74_preview.png differ diff --git a/mods/skins/skins/textures/character_74_preview_back.png b/mods/skins/skins/textures/character_74_preview_back.png new file mode 100644 index 0000000..28bbd6c Binary files /dev/null and b/mods/skins/skins/textures/character_74_preview_back.png differ diff --git a/mods/skins/skins/textures/character_75.png b/mods/skins/skins/textures/character_75.png new file mode 100644 index 0000000..a34fc46 Binary files /dev/null and b/mods/skins/skins/textures/character_75.png differ diff --git a/mods/skins/skins/textures/character_75_preview.png b/mods/skins/skins/textures/character_75_preview.png new file mode 100644 index 0000000..77d992b Binary files /dev/null and b/mods/skins/skins/textures/character_75_preview.png differ diff --git a/mods/skins/skins/textures/character_75_preview_back.png b/mods/skins/skins/textures/character_75_preview_back.png new file mode 100644 index 0000000..2d961c1 Binary files /dev/null and b/mods/skins/skins/textures/character_75_preview_back.png differ diff --git a/mods/skins/skins/textures/character_76.png b/mods/skins/skins/textures/character_76.png new file mode 100644 index 0000000..1a8d2f8 Binary files /dev/null and b/mods/skins/skins/textures/character_76.png differ diff --git a/mods/skins/skins/textures/character_76_preview.png b/mods/skins/skins/textures/character_76_preview.png new file mode 100644 index 0000000..aa03c78 Binary files /dev/null and b/mods/skins/skins/textures/character_76_preview.png differ diff --git a/mods/skins/skins/textures/character_76_preview_back.png b/mods/skins/skins/textures/character_76_preview_back.png new file mode 100644 index 0000000..8ef14be Binary files /dev/null and b/mods/skins/skins/textures/character_76_preview_back.png differ diff --git a/mods/skins/skins/textures/character_77.png b/mods/skins/skins/textures/character_77.png new file mode 100644 index 0000000..41c23dc Binary files /dev/null and b/mods/skins/skins/textures/character_77.png differ diff --git a/mods/skins/skins/textures/character_77_preview.png b/mods/skins/skins/textures/character_77_preview.png new file mode 100644 index 0000000..fd3c045 Binary files /dev/null and b/mods/skins/skins/textures/character_77_preview.png differ diff --git a/mods/skins/skins/textures/character_77_preview_back.png b/mods/skins/skins/textures/character_77_preview_back.png new file mode 100644 index 0000000..8816ae4 Binary files /dev/null and b/mods/skins/skins/textures/character_77_preview_back.png differ diff --git a/mods/skins/skins/textures/character_78.png b/mods/skins/skins/textures/character_78.png new file mode 100644 index 0000000..f0e492e Binary files /dev/null and b/mods/skins/skins/textures/character_78.png differ diff --git a/mods/skins/skins/textures/character_78_preview.png b/mods/skins/skins/textures/character_78_preview.png new file mode 100644 index 0000000..b900104 Binary files /dev/null and b/mods/skins/skins/textures/character_78_preview.png differ diff --git a/mods/skins/skins/textures/character_78_preview_back.png b/mods/skins/skins/textures/character_78_preview_back.png new file mode 100644 index 0000000..f9e9adb Binary files /dev/null and b/mods/skins/skins/textures/character_78_preview_back.png differ diff --git a/mods/skins/skins/textures/character_79.png b/mods/skins/skins/textures/character_79.png new file mode 100644 index 0000000..f0e492e Binary files /dev/null and b/mods/skins/skins/textures/character_79.png differ diff --git a/mods/skins/skins/textures/character_79_preview.png b/mods/skins/skins/textures/character_79_preview.png new file mode 100644 index 0000000..b900104 Binary files /dev/null and b/mods/skins/skins/textures/character_79_preview.png differ diff --git a/mods/skins/skins/textures/character_79_preview_back.png b/mods/skins/skins/textures/character_79_preview_back.png new file mode 100644 index 0000000..f9e9adb Binary files /dev/null and b/mods/skins/skins/textures/character_79_preview_back.png differ diff --git a/mods/skins/skins/textures/character_7_preview.png b/mods/skins/skins/textures/character_7_preview.png new file mode 100644 index 0000000..69b7ae8 Binary files /dev/null and b/mods/skins/skins/textures/character_7_preview.png differ diff --git a/mods/skins/skins/textures/character_7_preview_back.png b/mods/skins/skins/textures/character_7_preview_back.png new file mode 100644 index 0000000..ed5a409 Binary files /dev/null and b/mods/skins/skins/textures/character_7_preview_back.png differ diff --git a/mods/skins/skins/textures/character_8.png b/mods/skins/skins/textures/character_8.png new file mode 100644 index 0000000..119a2e8 Binary files /dev/null and b/mods/skins/skins/textures/character_8.png differ diff --git a/mods/skins/skins/textures/character_80.png b/mods/skins/skins/textures/character_80.png new file mode 100644 index 0000000..966b87c Binary files /dev/null and b/mods/skins/skins/textures/character_80.png differ diff --git a/mods/skins/skins/textures/character_80_preview.png b/mods/skins/skins/textures/character_80_preview.png new file mode 100644 index 0000000..e3350f7 Binary files /dev/null and b/mods/skins/skins/textures/character_80_preview.png differ diff --git a/mods/skins/skins/textures/character_80_preview_back.png b/mods/skins/skins/textures/character_80_preview_back.png new file mode 100644 index 0000000..9625e6d Binary files /dev/null and b/mods/skins/skins/textures/character_80_preview_back.png differ diff --git a/mods/skins/skins/textures/character_81.png b/mods/skins/skins/textures/character_81.png new file mode 100644 index 0000000..e9abfa6 Binary files /dev/null and b/mods/skins/skins/textures/character_81.png differ diff --git a/mods/skins/skins/textures/character_81_preview.png b/mods/skins/skins/textures/character_81_preview.png new file mode 100644 index 0000000..ae5218b Binary files /dev/null and b/mods/skins/skins/textures/character_81_preview.png differ diff --git a/mods/skins/skins/textures/character_81_preview_back.png b/mods/skins/skins/textures/character_81_preview_back.png new file mode 100644 index 0000000..eebd617 Binary files /dev/null and b/mods/skins/skins/textures/character_81_preview_back.png differ diff --git a/mods/skins/skins/textures/character_82.png b/mods/skins/skins/textures/character_82.png new file mode 100644 index 0000000..b76eab2 Binary files /dev/null and b/mods/skins/skins/textures/character_82.png differ diff --git a/mods/skins/skins/textures/character_82_preview.png b/mods/skins/skins/textures/character_82_preview.png new file mode 100644 index 0000000..7a7f505 Binary files /dev/null and b/mods/skins/skins/textures/character_82_preview.png differ diff --git a/mods/skins/skins/textures/character_82_preview_back.png b/mods/skins/skins/textures/character_82_preview_back.png new file mode 100644 index 0000000..ebd9e07 Binary files /dev/null and b/mods/skins/skins/textures/character_82_preview_back.png differ diff --git a/mods/skins/skins/textures/character_83.png b/mods/skins/skins/textures/character_83.png new file mode 100644 index 0000000..736a3e6 Binary files /dev/null and b/mods/skins/skins/textures/character_83.png differ diff --git a/mods/skins/skins/textures/character_83_preview.png b/mods/skins/skins/textures/character_83_preview.png new file mode 100644 index 0000000..ff1fccb Binary files /dev/null and b/mods/skins/skins/textures/character_83_preview.png differ diff --git a/mods/skins/skins/textures/character_83_preview_back.png b/mods/skins/skins/textures/character_83_preview_back.png new file mode 100644 index 0000000..7ac37dc Binary files /dev/null and b/mods/skins/skins/textures/character_83_preview_back.png differ diff --git a/mods/skins/skins/textures/character_84.png b/mods/skins/skins/textures/character_84.png new file mode 100644 index 0000000..5fb4b0e Binary files /dev/null and b/mods/skins/skins/textures/character_84.png differ diff --git a/mods/skins/skins/textures/character_84_preview.png b/mods/skins/skins/textures/character_84_preview.png new file mode 100644 index 0000000..294bf74 Binary files /dev/null and b/mods/skins/skins/textures/character_84_preview.png differ diff --git a/mods/skins/skins/textures/character_84_preview_back.png b/mods/skins/skins/textures/character_84_preview_back.png new file mode 100644 index 0000000..c6b2c3b Binary files /dev/null and b/mods/skins/skins/textures/character_84_preview_back.png differ diff --git a/mods/skins/skins/textures/character_85.png b/mods/skins/skins/textures/character_85.png new file mode 100644 index 0000000..0a88174 Binary files /dev/null and b/mods/skins/skins/textures/character_85.png differ diff --git a/mods/skins/skins/textures/character_85_preview.png b/mods/skins/skins/textures/character_85_preview.png new file mode 100644 index 0000000..da39742 Binary files /dev/null and b/mods/skins/skins/textures/character_85_preview.png differ diff --git a/mods/skins/skins/textures/character_85_preview_back.png b/mods/skins/skins/textures/character_85_preview_back.png new file mode 100644 index 0000000..82fd341 Binary files /dev/null and b/mods/skins/skins/textures/character_85_preview_back.png differ diff --git a/mods/skins/skins/textures/character_86.png b/mods/skins/skins/textures/character_86.png new file mode 100644 index 0000000..af4b11e Binary files /dev/null and b/mods/skins/skins/textures/character_86.png differ diff --git a/mods/skins/skins/textures/character_86_preview.png b/mods/skins/skins/textures/character_86_preview.png new file mode 100644 index 0000000..4b9ecb7 Binary files /dev/null and b/mods/skins/skins/textures/character_86_preview.png differ diff --git a/mods/skins/skins/textures/character_86_preview_back.png b/mods/skins/skins/textures/character_86_preview_back.png new file mode 100644 index 0000000..b9de3d8 Binary files /dev/null and b/mods/skins/skins/textures/character_86_preview_back.png differ diff --git a/mods/skins/skins/textures/character_87.png b/mods/skins/skins/textures/character_87.png new file mode 100644 index 0000000..46b4aeb Binary files /dev/null and b/mods/skins/skins/textures/character_87.png differ diff --git a/mods/skins/skins/textures/character_87_preview.png b/mods/skins/skins/textures/character_87_preview.png new file mode 100644 index 0000000..9a3de3f Binary files /dev/null and b/mods/skins/skins/textures/character_87_preview.png differ diff --git a/mods/skins/skins/textures/character_87_preview_back.png b/mods/skins/skins/textures/character_87_preview_back.png new file mode 100644 index 0000000..0297359 Binary files /dev/null and b/mods/skins/skins/textures/character_87_preview_back.png differ diff --git a/mods/skins/skins/textures/character_88.png b/mods/skins/skins/textures/character_88.png new file mode 100644 index 0000000..d665f18 Binary files /dev/null and b/mods/skins/skins/textures/character_88.png differ diff --git a/mods/skins/skins/textures/character_88_preview.png b/mods/skins/skins/textures/character_88_preview.png new file mode 100644 index 0000000..73e3789 Binary files /dev/null and b/mods/skins/skins/textures/character_88_preview.png differ diff --git a/mods/skins/skins/textures/character_88_preview_back.png b/mods/skins/skins/textures/character_88_preview_back.png new file mode 100644 index 0000000..ca1ce5e Binary files /dev/null and b/mods/skins/skins/textures/character_88_preview_back.png differ diff --git a/mods/skins/skins/textures/character_89.png b/mods/skins/skins/textures/character_89.png new file mode 100644 index 0000000..35daa35 Binary files /dev/null and b/mods/skins/skins/textures/character_89.png differ diff --git a/mods/skins/skins/textures/character_89_preview.png b/mods/skins/skins/textures/character_89_preview.png new file mode 100644 index 0000000..242e5f8 Binary files /dev/null and b/mods/skins/skins/textures/character_89_preview.png differ diff --git a/mods/skins/skins/textures/character_89_preview_back.png b/mods/skins/skins/textures/character_89_preview_back.png new file mode 100644 index 0000000..5d2d766 Binary files /dev/null and b/mods/skins/skins/textures/character_89_preview_back.png differ diff --git a/mods/skins/skins/textures/character_8_preview.png b/mods/skins/skins/textures/character_8_preview.png new file mode 100644 index 0000000..2e8c26c Binary files /dev/null and b/mods/skins/skins/textures/character_8_preview.png differ diff --git a/mods/skins/skins/textures/character_8_preview_back.png b/mods/skins/skins/textures/character_8_preview_back.png new file mode 100644 index 0000000..ce2b2b1 Binary files /dev/null and b/mods/skins/skins/textures/character_8_preview_back.png differ diff --git a/mods/skins/skins/textures/character_9.png b/mods/skins/skins/textures/character_9.png new file mode 100644 index 0000000..cf6e54b Binary files /dev/null and b/mods/skins/skins/textures/character_9.png differ diff --git a/mods/skins/skins/textures/character_90.png b/mods/skins/skins/textures/character_90.png new file mode 100644 index 0000000..e38cf06 Binary files /dev/null and b/mods/skins/skins/textures/character_90.png differ diff --git a/mods/skins/skins/textures/character_90_preview.png b/mods/skins/skins/textures/character_90_preview.png new file mode 100644 index 0000000..b256dd1 Binary files /dev/null and b/mods/skins/skins/textures/character_90_preview.png differ diff --git a/mods/skins/skins/textures/character_90_preview_back.png b/mods/skins/skins/textures/character_90_preview_back.png new file mode 100644 index 0000000..8f68d4a Binary files /dev/null and b/mods/skins/skins/textures/character_90_preview_back.png differ diff --git a/mods/skins/skins/textures/character_91.png b/mods/skins/skins/textures/character_91.png new file mode 100644 index 0000000..4ccade6 Binary files /dev/null and b/mods/skins/skins/textures/character_91.png differ diff --git a/mods/skins/skins/textures/character_91_preview.png b/mods/skins/skins/textures/character_91_preview.png new file mode 100644 index 0000000..c3c24b4 Binary files /dev/null and b/mods/skins/skins/textures/character_91_preview.png differ diff --git a/mods/skins/skins/textures/character_91_preview_back.png b/mods/skins/skins/textures/character_91_preview_back.png new file mode 100644 index 0000000..08783ba Binary files /dev/null and b/mods/skins/skins/textures/character_91_preview_back.png differ diff --git a/mods/skins/skins/textures/character_92.png b/mods/skins/skins/textures/character_92.png new file mode 100644 index 0000000..c050ff9 Binary files /dev/null and b/mods/skins/skins/textures/character_92.png differ diff --git a/mods/skins/skins/textures/character_92_preview.png b/mods/skins/skins/textures/character_92_preview.png new file mode 100644 index 0000000..9bd1bea Binary files /dev/null and b/mods/skins/skins/textures/character_92_preview.png differ diff --git a/mods/skins/skins/textures/character_92_preview_back.png b/mods/skins/skins/textures/character_92_preview_back.png new file mode 100644 index 0000000..9bd1bea Binary files /dev/null and b/mods/skins/skins/textures/character_92_preview_back.png differ diff --git a/mods/skins/skins/textures/character_93.png b/mods/skins/skins/textures/character_93.png new file mode 100644 index 0000000..b6624f1 Binary files /dev/null and b/mods/skins/skins/textures/character_93.png differ diff --git a/mods/skins/skins/textures/character_93_preview.png b/mods/skins/skins/textures/character_93_preview.png new file mode 100644 index 0000000..5065e86 Binary files /dev/null and b/mods/skins/skins/textures/character_93_preview.png differ diff --git a/mods/skins/skins/textures/character_93_preview_back.png b/mods/skins/skins/textures/character_93_preview_back.png new file mode 100644 index 0000000..7e5ac3c Binary files /dev/null and b/mods/skins/skins/textures/character_93_preview_back.png differ diff --git a/mods/skins/skins/textures/character_94.png b/mods/skins/skins/textures/character_94.png new file mode 100644 index 0000000..109b11f Binary files /dev/null and b/mods/skins/skins/textures/character_94.png differ diff --git a/mods/skins/skins/textures/character_94_preview.png b/mods/skins/skins/textures/character_94_preview.png new file mode 100644 index 0000000..f3304eb Binary files /dev/null and b/mods/skins/skins/textures/character_94_preview.png differ diff --git a/mods/skins/skins/textures/character_94_preview_back.png b/mods/skins/skins/textures/character_94_preview_back.png new file mode 100644 index 0000000..ec676ca Binary files /dev/null and b/mods/skins/skins/textures/character_94_preview_back.png differ diff --git a/mods/skins/skins/textures/character_95.png b/mods/skins/skins/textures/character_95.png new file mode 100644 index 0000000..c4566c3 Binary files /dev/null and b/mods/skins/skins/textures/character_95.png differ diff --git a/mods/skins/skins/textures/character_95_preview.png b/mods/skins/skins/textures/character_95_preview.png new file mode 100644 index 0000000..e64c9ea Binary files /dev/null and b/mods/skins/skins/textures/character_95_preview.png differ diff --git a/mods/skins/skins/textures/character_95_preview_back.png b/mods/skins/skins/textures/character_95_preview_back.png new file mode 100644 index 0000000..7e68646 Binary files /dev/null and b/mods/skins/skins/textures/character_95_preview_back.png differ diff --git a/mods/skins/skins/textures/character_96.png b/mods/skins/skins/textures/character_96.png new file mode 100644 index 0000000..205d2a8 Binary files /dev/null and b/mods/skins/skins/textures/character_96.png differ diff --git a/mods/skins/skins/textures/character_96_preview.png b/mods/skins/skins/textures/character_96_preview.png new file mode 100644 index 0000000..fddc954 Binary files /dev/null and b/mods/skins/skins/textures/character_96_preview.png differ diff --git a/mods/skins/skins/textures/character_96_preview_back.png b/mods/skins/skins/textures/character_96_preview_back.png new file mode 100644 index 0000000..7e223bf Binary files /dev/null and b/mods/skins/skins/textures/character_96_preview_back.png differ diff --git a/mods/skins/skins/textures/character_97.png b/mods/skins/skins/textures/character_97.png new file mode 100644 index 0000000..fa0385c Binary files /dev/null and b/mods/skins/skins/textures/character_97.png differ diff --git a/mods/skins/skins/textures/character_97_preview.png b/mods/skins/skins/textures/character_97_preview.png new file mode 100644 index 0000000..248ca34 Binary files /dev/null and b/mods/skins/skins/textures/character_97_preview.png differ diff --git a/mods/skins/skins/textures/character_97_preview_back.png b/mods/skins/skins/textures/character_97_preview_back.png new file mode 100644 index 0000000..7ad7e5b Binary files /dev/null and b/mods/skins/skins/textures/character_97_preview_back.png differ diff --git a/mods/skins/skins/textures/character_98.png b/mods/skins/skins/textures/character_98.png new file mode 100644 index 0000000..40cf510 Binary files /dev/null and b/mods/skins/skins/textures/character_98.png differ diff --git a/mods/skins/skins/textures/character_98_preview.png b/mods/skins/skins/textures/character_98_preview.png new file mode 100644 index 0000000..251733e Binary files /dev/null and b/mods/skins/skins/textures/character_98_preview.png differ diff --git a/mods/skins/skins/textures/character_98_preview_back.png b/mods/skins/skins/textures/character_98_preview_back.png new file mode 100644 index 0000000..c672be0 Binary files /dev/null and b/mods/skins/skins/textures/character_98_preview_back.png differ diff --git a/mods/skins/skins/textures/character_99.png b/mods/skins/skins/textures/character_99.png new file mode 100644 index 0000000..817b91c Binary files /dev/null and b/mods/skins/skins/textures/character_99.png differ diff --git a/mods/skins/skins/textures/character_99_preview.png b/mods/skins/skins/textures/character_99_preview.png new file mode 100644 index 0000000..39c920f Binary files /dev/null and b/mods/skins/skins/textures/character_99_preview.png differ diff --git a/mods/skins/skins/textures/character_99_preview_back.png b/mods/skins/skins/textures/character_99_preview_back.png new file mode 100644 index 0000000..0cf8ba9 Binary files /dev/null and b/mods/skins/skins/textures/character_99_preview_back.png differ diff --git a/mods/skins/skins/textures/character_9_preview.png b/mods/skins/skins/textures/character_9_preview.png new file mode 100644 index 0000000..c431244 Binary files /dev/null and b/mods/skins/skins/textures/character_9_preview.png differ diff --git a/mods/skins/skins/textures/character_9_preview_back.png b/mods/skins/skins/textures/character_9_preview_back.png new file mode 100644 index 0000000..627ec96 Binary files /dev/null and b/mods/skins/skins/textures/character_9_preview_back.png differ diff --git a/mods/stairs/README.txt b/mods/stairs/README.txt new file mode 100644 index 0000000..d32cd71 --- /dev/null +++ b/mods/stairs/README.txt @@ -0,0 +1,16 @@ +Minetest Game mod: stairs +========================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Kahrl (LGPL 2.1) and +celeron55, Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +Authors of media (models) +------------------------- +Jean-Patrick G. (kilbith) (CC BY-SA 3.0): + stairs_stair.obj + + diff --git a/mods/stairs/depends.txt b/mods/stairs/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/stairs/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua new file mode 100644 index 0000000..6e98d74 --- /dev/null +++ b/mods/stairs/init.lua @@ -0,0 +1,610 @@ +-- Minetest 0.4 mod: stairs +-- See README.txt for licensing and other information. + + +-- Global namespace for functions + +stairs = {} + + +-- Register aliases for new pine node names + +minetest.register_alias("stairs:stair_pinewood", "stairs:stair_pine_wood") +minetest.register_alias("stairs:slab_pinewood", "stairs:slab_pine_wood") + + +-- Get setting for replace ABM + +local replace = minetest.settings:get_bool("enable_stairs_replace_abm") + +local function rotate_and_place(itemstack, placer, pointed_thing) + local p0 = pointed_thing.under + local p1 = pointed_thing.above + local param2 = 0 + + if placer then + local placer_pos = placer:getpos() + if placer_pos then + param2 = minetest.dir_to_facedir(vector.subtract(p1, placer_pos)) + end + + local finepos = minetest.pointed_thing_to_face_pos(placer, pointed_thing) + local fpos = finepos.y % 1 + + if p0.y - 1 == p1.y or (fpos > 0 and fpos < 0.5) + or (fpos < -0.5 and fpos > -0.999999999) then + param2 = param2 + 20 + if param2 == 21 then + param2 = 23 + elseif param2 == 23 then + param2 = 21 + end + end + end + return minetest.item_place(itemstack, placer, pointed_thing, param2) +end + +-- Register stairs. +-- Node will be called stairs:stair_ + +function stairs.register_stair(subname, recipeitem, groups, images, description, sounds) + local stair_images = {} + for i, image in ipairs(images) do + if type(image) == "string" then + stair_images[i] = { + name = image, + backface_culling = true, + } + elseif image.backface_culling == nil then -- override using any other value + stair_images[i] = table.copy(image) + stair_images[i].backface_culling = true + end + end + local new_groups = table.copy(groups) + new_groups.stair = 1 + minetest.register_node(":stairs:stair_" .. subname, { + description = description, + drawtype = "mesh", + mesh = "stairs_stair.obj", + tiles = stair_images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = new_groups, + sounds = sounds, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.5, 0.5}, + }, + }, + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + {-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 + + return rotate_and_place(itemstack, placer, pointed_thing) + end, + }) + + -- for replace ABM + if replace then + minetest.register_node(":stairs:stair_" .. subname .. "upside_down", { + replace_name = "stairs:stair_" .. subname, + groups = {slabs_replace = 1}, + }) + end + + if recipeitem then + -- Recipe matches appearence in inventory + minetest.register_craft({ + output = 'stairs:stair_' .. subname .. ' 8', + recipe = { + {"", "", recipeitem}, + {"", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = 'stairs:stair_' .. subname, + burntime = math.floor(baseburntime * 0.75), + }) + end + end +end + + +-- Slab facedir to placement 6d matching table +local slab_trans_dir = {[0] = 8, 0, 2, 1, 3, 4} + +-- Register slabs. +-- Node will be called stairs:slab_ + +function stairs.register_slab(subname, recipeitem, groups, images, description, sounds) + local new_groups = table.copy(groups) + new_groups.slab = 1 + minetest.register_node(":stairs:slab_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = new_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) + local under = minetest.get_node(pointed_thing.under) + local wield_item = itemstack:get_name() + local player_name = placer and placer:get_player_name() or "" + local creative_enabled = (creative and creative.is_enabled_for + and creative.is_enabled_for(player_name)) + + if under and under.name:find("stairs:slab_") then + -- place slab using under node orientation + local dir = minetest.dir_to_facedir(vector.subtract( + pointed_thing.above, pointed_thing.under), true) + + local p2 = under.param2 + + -- combine two slabs if possible + if slab_trans_dir[math.floor(p2 / 4)] == dir + and wield_item == under.name then + + if not recipeitem then + return itemstack + end + if minetest.is_protected(pointed_thing.under, player_name) and not + minetest.check_player_privs(player_name, "protection_bypass") then + minetest.record_protection_violation(pointed_thing.under, + player_name) + return + end + minetest.set_node(pointed_thing.under, {name = recipeitem, param2 = p2}) + if not creative_enabled then + itemstack:take_item() + end + return itemstack + end + + -- Placing a slab on an upside down slab should make it right-side up. + if p2 >= 20 and dir == 8 then + p2 = p2 - 20 + -- same for the opposite case: slab below normal slab + elseif p2 <= 3 and dir == 4 then + p2 = p2 + 20 + end + + -- else attempt to place node with proper param2 + minetest.item_place_node(ItemStack(wield_item), placer, pointed_thing, p2) + if not creative_enabled then + itemstack:take_item() + end + return itemstack + else + return rotate_and_place(itemstack, placer, pointed_thing) + end + end, + }) + + -- for replace ABM + if replace then + minetest.register_node(":stairs:slab_" .. subname .. "upside_down", { + replace_name = "stairs:slab_".. subname, + groups = {slabs_replace = 1}, + }) + end + + if recipeitem then + minetest.register_craft({ + output = 'stairs:slab_' .. subname .. ' 6', + recipe = { + {recipeitem, recipeitem, recipeitem}, + }, + }) + + -- Fuel + local baseburntime = minetest.get_craft_result({ + method = "fuel", + width = 1, + items = {recipeitem} + }).time + if baseburntime > 0 then + minetest.register_craft({ + type = "fuel", + recipe = 'stairs:slab_' .. subname, + burntime = math.floor(baseburntime * 0.5), + }) + end + end +end + + +-- Optionally replace old "upside_down" nodes with new param2 versions. +-- Disabled by default. + +if replace then + minetest.register_abm({ + label = "Slab replace", + nodenames = {"group:slabs_replace"}, + interval = 16, + chance = 1, + action = function(pos, node) + node.name = minetest.registered_nodes[node.name].replace_name + node.param2 = node.param2 + 20 + if node.param2 == 21 then + node.param2 = 23 + elseif node.param2 == 23 then + node.param2 = 21 + end + minetest.set_node(pos, node) + end, + }) +end + + +-- Stair/slab registration function. +-- Nodes will be called stairs:{stair,slab}_ + +function stairs.register_stair_and_slab(subname, recipeitem, + groups, images, desc_stair, desc_slab, sounds) + stairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds) + stairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds) +end + + +-- Register default stairs and slabs + +stairs.register_stair_and_slab( + "wood", + "default:wood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_wood.png"}, + "Wooden Stair", + "Wooden Slab", + default.node_sound_wood_defaults() +) + +stairs.register_stair_and_slab( + "junglewood", + "default:junglewood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_junglewood.png"}, + "Jungle Wood Stair", + "Jungle Wood Slab", + default.node_sound_wood_defaults() +) + +stairs.register_stair_and_slab( + "pine_wood", + "default:pine_wood", + {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + {"default_pine_wood.png"}, + "Pine Wood Stair", + "Pine Wood Slab", + default.node_sound_wood_defaults() +) + +stairs.register_stair_and_slab( + "acacia_wood", + "default:acacia_wood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_acacia_wood.png"}, + "Acacia Wood Stair", + "Acacia Wood Slab", + default.node_sound_wood_defaults() +) + +stairs.register_stair_and_slab( + "aspen_wood", + "default:aspen_wood", + {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + {"default_aspen_wood.png"}, + "Aspen Wood Stair", + "Aspen Wood Slab", + default.node_sound_wood_defaults() +) + +stairs.register_stair_and_slab( + "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( + "mossycobble", + nil, + {cracky = 3}, + {"default_mossycobble.png"}, + "Mossy Cobblestone Stair", + "Mossy Cobblestone Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "stonebrick", + "default:stonebrick", + {cracky = 2}, + {"default_stone_brick.png"}, + "Stone Brick Stair", + "Stone Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "stone_block", + "default:stone_block", + {cracky = 2}, + {"default_stone_block.png"}, + "Stone Block Stair", + "Stone Block Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "desert_stone", + "default:desert_stone", + {cracky = 3}, + {"default_desert_stone.png"}, + "Desert Stone Stair", + "Desert Stone Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "desert_cobble", + "default:desert_cobble", + {cracky = 3}, + {"default_desert_cobble.png"}, + "Desert Cobblestone Stair", + "Desert Cobblestone Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "desert_stonebrick", + "default:desert_stonebrick", + {cracky = 2}, + {"default_desert_stone_brick.png"}, + "Desert Stone Brick Stair", + "Desert Stone Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "desert_stone_block", + "default:desert_stone_block", + {cracky = 2}, + {"default_desert_stone_block.png"}, + "Desert Stone Block Stair", + "Desert Stone Block Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "sandstone", + "default:sandstone", + {crumbly = 1, cracky = 3}, + {"default_sandstone.png"}, + "Sandstone Stair", + "Sandstone Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "sandstonebrick", + "default:sandstonebrick", + {cracky = 2}, + {"default_sandstone_brick.png"}, + "Sandstone Brick Stair", + "Sandstone Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "sandstone_block", + "default:sandstone_block", + {cracky = 2}, + {"default_sandstone_block.png"}, + "Sandstone Block Stair", + "Sandstone Block Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "desert_sandstone", + "default:desert_sandstone", + {crumbly = 1, cracky = 3}, + {"default_desert_sandstone.png"}, + "Desert Sandstone Stair", + "Desert Sandstone Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "desert_sandstone_brick", + "default:desert_sandstone_brick", + {cracky = 2}, + {"default_desert_sandstone_brick.png"}, + "Desert Sandstone Brick Stair", + "Desert Sandstone Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "desert_sandstone_block", + "default:desert_sandstone_block", + {cracky = 2}, + {"default_desert_sandstone_block.png"}, + "Desert Sandstone Block Stair", + "Desert Sandstone Block Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "silver_sandstone", + "default:silver_sandstone", + {crumbly = 1, cracky = 3}, + {"default_silver_sandstone.png"}, + "Silver Sandstone Stair", + "Silver Sandstone Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "silver_sandstone_brick", + "default:silver_sandstone_brick", + {cracky = 2}, + {"default_silver_sandstone_brick.png"}, + "Silver Sandstone Brick Stair", + "Silver Sandstone Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "silver_sandstone_block", + "default:silver_sandstone_block", + {cracky = 2}, + {"default_silver_sandstone_block.png"}, + "Silver Sandstone Block Stair", + "Silver Sandstone Block Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "obsidian", + "default:obsidian", + {cracky = 1, level = 2}, + {"default_obsidian.png"}, + "Obsidian Stair", + "Obsidian Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "obsidianbrick", + "default:obsidianbrick", + {cracky = 1, level = 2}, + {"default_obsidian_brick.png"}, + "Obsidian Brick Stair", + "Obsidian Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "obsidian_block", + "default:obsidian_block", + {cracky = 1, level = 2}, + {"default_obsidian_block.png"}, + "Obsidian Block Stair", + "Obsidian Block Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "brick", + "default:brick", + {cracky = 3}, + {"default_brick.png"}, + "Brick Stair", + "Brick Slab", + default.node_sound_stone_defaults() +) + +stairs.register_stair_and_slab( + "steelblock", + "default:steelblock", + {cracky = 1, level = 2}, + {"default_steel_block.png"}, + "Steel Block Stair", + "Steel Block Slab", + default.node_sound_metal_defaults() +) + +stairs.register_stair_and_slab( + "copperblock", + "default:copperblock", + {cracky = 1, level = 2}, + {"default_copper_block.png"}, + "Copper Block Stair", + "Copper Block Slab", + default.node_sound_metal_defaults() +) + +stairs.register_stair_and_slab( + "bronzeblock", + "default:bronzeblock", + {cracky = 1, level = 2}, + {"default_bronze_block.png"}, + "Bronze Block Stair", + "Bronze Block Slab", + default.node_sound_metal_defaults() +) + +stairs.register_stair_and_slab( + "goldblock", + "default:goldblock", + {cracky = 1}, + {"default_gold_block.png"}, + "Gold Block Stair", + "Gold Block Slab", + default.node_sound_metal_defaults() +) + +stairs.register_stair_and_slab( + "ice", + "default:ice", + {cracky = 3, puts_out_fire = 1, cools_lava = 1}, + {"default_ice.png"}, + "Ice Stair", + "Ice Slab", + default.node_sound_glass_defaults() +) + +stairs.register_stair_and_slab( + "snowblock", + "default:snowblock", + {crumbly = 3, puts_out_fire = 1, cools_lava = 1, snowy = 1}, + {"default_snow.png"}, + "Snow Block Stair", + "Snow Block Slab", + default.node_sound_dirt_defaults({ + footstep = {name = "default_snow_footstep", gain = 0.15}, + dug = {name = "default_snow_footstep", gain = 0.2}, + dig = {name = "default_snow_footstep", gain = 0.2} + }) +) diff --git a/mods/stairs/license.txt b/mods/stairs/license.txt new file mode 100644 index 0000000..8f16bbd --- /dev/null +++ b/mods/stairs/license.txt @@ -0,0 +1,51 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2011-2016 Kahrl +Copyright (C) 2011-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (models) +-------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2015-2016 Jean-Patrick G. (kilbith) + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/stairs/models/stairs_stair.obj b/mods/stairs/models/stairs_stair.obj new file mode 100644 index 0000000..198edf6 --- /dev/null +++ b/mods/stairs/models/stairs_stair.obj @@ -0,0 +1,115 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib stairs.mtl +o stairs_top +v -0.500000 0.000000 -0.500000 +v -0.500000 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +v 0.500000 0.000000 -0.500000 +v -0.500000 0.500000 0.000000 +v 0.500000 0.500000 0.000000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vn 0.000000 1.000000 0.000000 +g stairs_top +usemtl None +s off +f 4/1/1 1/2/1 2/3/1 3/4/1 +f 7/5/1 8/6/1 6/4/1 5/3/1 +o stairs_bottom +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vn 0.000000 -1.000000 -0.000000 +g stairs_bottom +usemtl None +s off +f 11/7/2 9/8/2 10/9/2 12/10/2 +o stairs_right +v -0.500000 0.000000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.000000 0.000000 +v -0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.000000 +v -0.500000 0.500000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.500000 1.000000 +vt 1.000000 0.000000 +vn -1.000000 0.000000 0.000000 +g stairs_right +usemtl None +s off +f 13/11/3 14/12/3 15/13/3 +f 15/13/3 18/14/3 17/15/3 +f 14/12/3 16/16/3 15/13/3 +f 16/16/3 18/14/3 15/13/3 +o stairs_left +v 0.500000 0.000000 0.000000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.000000 +v 0.500000 0.500000 0.500000 +vt 0.500000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.500000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vn 1.000000 0.000000 0.000000 +g stairs_left +usemtl None +s off +f 19/17/4 20/18/4 21/19/4 +f 19/17/4 23/20/4 24/21/4 +f 20/18/4 19/17/4 22/22/4 +f 19/17/4 24/21/4 22/22/4 +o stairs_back +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vn 0.000000 -0.000000 1.000000 +g stairs_back +usemtl None +s off +f 26/23/5 28/24/5 27/25/5 25/26/5 +o stairs_front +v -0.500000 0.000000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.000000 0.000000 +v 0.500000 0.000000 0.000000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 0.500000 0.000000 +v 0.500000 0.500000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vn 0.000000 0.000000 -1.000000 +g stairs_front +usemtl None +s off +f 30/27/6 29/28/6 34/29/6 33/30/6 +f 31/28/6 35/31/6 36/32/6 32/29/6 diff --git a/mods/technic/README.md b/mods/technic/README.md new file mode 100644 index 0000000..f2b64c2 --- /dev/null +++ b/mods/technic/README.md @@ -0,0 +1,22 @@ +Technic +======= + +Credits for contributing to the project (in alphabetical order): + * kpoppel + * Nekogloop + * Nore/Novatux + * ShadowNinja + * VanessaE + * And many others... + +FAQ +--- + +1. My technic circuit doesn't work. No power is distrubuted. + * A: Make sure you have a switching station connected. + +License +------- + +See mod folders for their licences + diff --git a/mods/technic/concrete/depends.txt b/mods/technic/concrete/depends.txt new file mode 100644 index 0000000..c48fe0d --- /dev/null +++ b/mods/technic/concrete/depends.txt @@ -0,0 +1,3 @@ +default +intllib? + diff --git a/mods/technic/concrete/init.lua b/mods/technic/concrete/init.lua new file mode 100644 index 0000000..71641e6 --- /dev/null +++ b/mods/technic/concrete/init.lua @@ -0,0 +1,113 @@ +--Minetest 0.4.7 mod: concrete +--(c) 2013 by RealBadAngel + +local technic = rawget(_G, "technic") or {} +technic.concrete_posts = {} + +-- Boilerplate to support localized strings if intllib mod is installed. +local S = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end + +for i = 0, 31 do + minetest.register_alias("technic:concrete_post"..i, + "technic:concrete_post") +end +for i = 32, 63 do + minetest.register_alias("technic:concrete_post"..i, + "technic:concrete_post_with_platform") +end + +local steel_ingot +if minetest.get_modpath("technic_worldgen") then + steel_ingot = "technic:carbon_steel_ingot" +else + steel_ingot = "default:steel_ingot" +end + +minetest.register_craftitem(":technic:rebar", { + description = S("Rebar"), + inventory_image = "technic_rebar.png", +}) + +minetest.register_node(":technic:concrete", { + description = S("Concrete Block"), + tiles = {"technic_concrete_block.png",}, + groups = {cracky=1, level=2, concrete=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node(":technic:blast_resistant_concrete", { + description = S("Blast-resistant Concrete Block"), + tiles = {"technic_blast_resistant_concrete_block.png",}, + groups = {cracky=1, level=3, concrete=1}, + sounds = default.node_sound_stone_defaults(), + on_blast = function(pos, intensity) + if intensity > 1 then + minetest.remove_node(pos) + minetest.add_item(pos, "technic:blast_resistant_concrete") + end + end, +}) + + +local box_platform = {-0.5, 0.3, -0.5, 0.5, 0.5, 0.5} +local box_post = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15} +local box_front = {-0.1, -0.3, 0, 0.1, 0.3, -0.5} +local box_back = {-0.1, -0.3, 0, 0.1, 0.3, 0.5} +local box_left = {0, -0.3, -0.1, -0.5, 0.3, 0.1} +local box_right = {0, -0.3, -0.1, 0.5, 0.3, 0.1} + +minetest.register_node(":technic:concrete_post_platform", { + description = S("Concrete Post Platform"), + tiles = {"technic_concrete_block.png",}, + groups={cracky=1, level=2}, + sounds = default.node_sound_stone_defaults(), + paramtype = "light", + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = {box_platform} + }, + on_place = function (itemstack, placer, pointed_thing) + local node = minetest.get_node(pointed_thing.under) + if node.name ~= "technic:concrete_post" then + return minetest.item_place_node(itemstack, placer, pointed_thing) + end + minetest.set_node(pointed_thing.under, {name="technic:concrete_post_with_platform"}) + itemstack:take_item() + placer:set_wielded_item(itemstack) + return itemstack + end, +}) + +for platform = 0, 1 do + local after_dig_node = nil + if platform == 1 then + after_dig_node = function(pos, old_node) + old_node.name = "technic:concrete_post" + minetest.set_node(pos, old_node) + end + end + + minetest.register_node(":technic:concrete_post"..(platform == 1 and "_with_platform" or ""), { + description = S("Concrete Post"), + tiles = {"technic_concrete_block.png"}, + groups = {cracky=1, level=2, concrete_post=1, not_in_creative_inventory=platform}, + sounds = default.node_sound_stone_defaults(), + drop = (platform == 1 and "technic:concrete_post_platform" or + "technic:concrete_post"), + paramtype = "light", + sunlight_propagates = true, + drawtype = "nodebox", + connects_to = {"group:concrete", "group:concrete_post"}, + node_box = { + type = "connected", + fixed = {box_post, (platform == 1 and box_platform or nil)}, + connect_front = box_front, + connect_back = box_back, + connect_left = box_left, + connect_right = box_right, + }, + after_dig_node = after_dig_node, + }) +end + diff --git a/mods/technic/concrete/locale/de.txt b/mods/technic/concrete/locale/de.txt new file mode 100644 index 0000000..83fdc19 --- /dev/null +++ b/mods/technic/concrete/locale/de.txt @@ -0,0 +1,10 @@ +# German Translation for technic_concrete +# Deutsche Übersetzung von technic_concrete +# by Xanthin + +Rebar = Bewehrungsstab +Concrete Block = Betonblock +Blast-resistant Concrete Block = Explosionsbestaendiger Betonblock +Concrete Post Platform = Betonpfostenplattform +Concrete Post = Betonpfosten + diff --git a/mods/technic/concrete/locale/template.txt b/mods/technic/concrete/locale/template.txt new file mode 100644 index 0000000..451adaf --- /dev/null +++ b/mods/technic/concrete/locale/template.txt @@ -0,0 +1,8 @@ +# technic_concrete translation template + +Rebar = +Concrete Block = +Blast-resistant Concrete Block = +Concrete Post Platform = +Concrete Post = + diff --git a/mods/technic/concrete/locale/tr.txt b/mods/technic/concrete/locale/tr.txt new file mode 100644 index 0000000..179d29b --- /dev/null +++ b/mods/technic/concrete/locale/tr.txt @@ -0,0 +1,7 @@ +# turkish translation by mahmutelmas06 + +Rebar = Beton demiri +Concrete Block = Beton blok +Blast-resistant Concrete Block = Patlamaya dayanΔ±klΔ± beton blok +Concrete Post Platform = Beton direk platformu +Concrete Post = Beton direk diff --git a/mods/technic/concrete/textures/technic_blast_resistant_concrete_block.png b/mods/technic/concrete/textures/technic_blast_resistant_concrete_block.png new file mode 100644 index 0000000..b7d8588 Binary files /dev/null and b/mods/technic/concrete/textures/technic_blast_resistant_concrete_block.png differ diff --git a/mods/technic/concrete/textures/technic_concrete_block.png b/mods/technic/concrete/textures/technic_concrete_block.png new file mode 100644 index 0000000..cd94594 Binary files /dev/null and b/mods/technic/concrete/textures/technic_concrete_block.png differ diff --git a/mods/technic/concrete/textures/technic_rebar.png b/mods/technic/concrete/textures/technic_rebar.png new file mode 100644 index 0000000..16d1fc5 Binary files /dev/null and b/mods/technic/concrete/textures/technic_rebar.png differ diff --git a/mods/technic/concrete/textures/x32/technic_concrete_block.png b/mods/technic/concrete/textures/x32/technic_concrete_block.png new file mode 100644 index 0000000..91364f3 Binary files /dev/null and b/mods/technic/concrete/textures/x32/technic_concrete_block.png differ diff --git a/mods/technic/concrete/textures/x32/technic_rebar.png b/mods/technic/concrete/textures/x32/technic_rebar.png new file mode 100644 index 0000000..16d1fc5 Binary files /dev/null and b/mods/technic/concrete/textures/x32/technic_rebar.png differ diff --git a/mods/technic/extranodes/depends.txt b/mods/technic/extranodes/depends.txt new file mode 100644 index 0000000..6335bfd --- /dev/null +++ b/mods/technic/extranodes/depends.txt @@ -0,0 +1,5 @@ +default +technic_worldgen +concrete +intllib? +moreblocks? diff --git a/mods/technic/extranodes/init.lua b/mods/technic/extranodes/init.lua new file mode 100644 index 0000000..22a1d9f --- /dev/null +++ b/mods/technic/extranodes/init.lua @@ -0,0 +1,103 @@ +-- Minetest 0.4.6 mod: extranodes +-- namespace: technic +-- Boilerplate to support localized strings if intllib mod is installed. +local S = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end + +if minetest.get_modpath("moreblocks") then + + -- register stairsplus/circular_saw nodes + -- we skip blast resistant concrete and uranium intentionally + -- chrome seems to be too hard of a metal to be actually sawable + + stairsplus:register_all("technic", "marble", "technic:marble", { + description=S("Marble"), + groups={cracky=3, not_in_creative_inventory=1}, + tiles={"technic_marble.png"}, + }) + + stairsplus:register_all("technic", "marble_bricks", "technic:marble_bricks", { + description=S("Marble Bricks"), + groups={cracky=3, not_in_creative_inventory=1}, + tiles={"technic_marble_bricks.png"}, + }) + + stairsplus:register_all("technic", "granite", "technic:granite", { + description=S("Granite"), + groups={cracky=1, not_in_creative_inventory=1}, + tiles={"technic_granite.png"}, + }) + + stairsplus:register_all("technic", "concrete", "technic:concrete", { + description=S("Concrete"), + groups={cracky=3, not_in_creative_inventory=1}, + tiles={"technic_concrete_block.png"}, + }) + + stairsplus:register_all("technic", "zinc_block", "technic:zinc_block", { + description=S("Zinc Block"), + groups={cracky=1, not_in_creative_inventory=1}, + tiles={"technic_zinc_block.png"}, + }) + + stairsplus:register_all("technic", "cast_iron_block", "technic:cast_iron_block", { + description=S("Cast Iron Block"), + groups={cracky=1, not_in_creative_inventory=1}, + tiles={"technic_cast_iron_block.png"}, + }) + + stairsplus:register_all("technic", "carbon_steel_block", "technic:carbon_steel_block", { + description=S("Carbon Steel Block"), + groups={cracky=1, not_in_creative_inventory=1}, + tiles={"technic_carbon_steel_block.png"}, + }) + + stairsplus:register_all("technic", "stainless_steel_block", "technic:stainless_steel_block", { + description=S("Stainless Steel Block"), + groups={cracky=1, not_in_creative_inventory=1}, + tiles={"technic_stainless_steel_block.png"}, + }) + + stairsplus:register_all("technic", "brass_block", "technic:brass_block", { + description=S("Brass Block"), + groups={cracky=1, not_in_creative_inventory=1}, + tiles={"technic_brass_block.png"}, + }) + + function register_technic_stairs_alias(modname, origname, newmod, newname) + minetest.register_alias(modname .. ":slab_" .. origname, newmod..":slab_" .. newname) + minetest.register_alias(modname .. ":slab_" .. origname .. "_inverted", newmod..":slab_" .. newname .. "_inverted") + minetest.register_alias(modname .. ":slab_" .. origname .. "_wall", newmod..":slab_" .. newname .. "_wall") + minetest.register_alias(modname .. ":slab_" .. origname .. "_quarter", newmod..":slab_" .. newname .. "_quarter") + minetest.register_alias(modname .. ":slab_" .. origname .. "_quarter_inverted", newmod..":slab_" .. newname .. "_quarter_inverted") + minetest.register_alias(modname .. ":slab_" .. origname .. "_quarter_wall", newmod..":slab_" .. newname .. "_quarter_wall") + minetest.register_alias(modname .. ":slab_" .. origname .. "_three_quarter", newmod..":slab_" .. newname .. "_three_quarter") + minetest.register_alias(modname .. ":slab_" .. origname .. "_three_quarter_inverted", newmod..":slab_" .. newname .. "_three_quarter_inverted") + minetest.register_alias(modname .. ":slab_" .. origname .. "_three_quarter_wall", newmod..":slab_" .. newname .. "_three_quarter_wall") + minetest.register_alias(modname .. ":stair_" .. origname, newmod..":stair_" .. newname) + minetest.register_alias(modname .. ":stair_" .. origname .. "_inverted", newmod..":stair_" .. newname .. "_inverted") + minetest.register_alias(modname .. ":stair_" .. origname .. "_wall", newmod..":stair_" .. newname .. "_wall") + minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half", newmod..":stair_" .. newname .. "_wall_half") + minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half_inverted", newmod..":stair_" .. newname .. "_wall_half_inverted") + minetest.register_alias(modname .. ":stair_" .. origname .. "_half", newmod..":stair_" .. newname .. "_half") + minetest.register_alias(modname .. ":stair_" .. origname .. "_half_inverted", newmod..":stair_" .. newname .. "_half_inverted") + minetest.register_alias(modname .. ":stair_" .. origname .. "_right_half", newmod..":stair_" .. newname .. "_right_half") + minetest.register_alias(modname .. ":stair_" .. origname .. "_right_half_inverted", newmod..":stair_" .. newname .. "_right_half_inverted") + minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half", newmod..":stair_" .. newname .. "_wall_half") + minetest.register_alias(modname .. ":stair_" .. origname .. "_wall_half_inverted", newmod..":stair_" .. newname .. "_wall_half_inverted") + minetest.register_alias(modname .. ":stair_" .. origname .. "_inner", newmod..":stair_" .. newname .. "_inner") + minetest.register_alias(modname .. ":stair_" .. origname .. "_inner_inverted", newmod..":stair_" .. newname .. "_inner_inverted") + minetest.register_alias(modname .. ":stair_" .. origname .. "_outer", newmod..":stair_" .. newname .. "_outer") + minetest.register_alias(modname .. ":stair_" .. origname .. "_outer_inverted", newmod..":stair_" .. newname .. "_outer_inverted") + minetest.register_alias(modname .. ":panel_" .. origname .. "_bottom", newmod..":panel_" .. newname .. "_bottom") + minetest.register_alias(modname .. ":panel_" .. origname .. "_top", newmod..":panel_" .. newname .. "_top") + minetest.register_alias(modname .. ":panel_" .. origname .. "_vertical", newmod..":panel_" .. newname .. "_vertical") + minetest.register_alias(modname .. ":micro_" .. origname .. "_bottom", newmod..":micro_" .. newname .. "_bottom") + minetest.register_alias(modname .. ":micro_" .. origname .. "_top", newmod..":micro_" .. newname .. "_top") + end + + register_technic_stairs_alias("stairsplus", "concrete", "technic", "concrete") + register_technic_stairs_alias("stairsplus", "marble", "technic", "marble") + register_technic_stairs_alias("stairsplus", "granite", "technic", "granite") + register_technic_stairs_alias("stairsplus", "marble_bricks", "technic", "marble_bricks") + +end diff --git a/mods/technic/extranodes/locale/de.txt b/mods/technic/extranodes/locale/de.txt new file mode 100644 index 0000000..f3c017e --- /dev/null +++ b/mods/technic/extranodes/locale/de.txt @@ -0,0 +1,9 @@ +# German Translation for technic_extranodes +# Deutsche Übersetzung von technic_extranodes +# by Xanthin + +Marble = Marmor +Marble Bricks = Marmorziegel +Granite = Granit +Concrete = Beton + diff --git a/mods/technic/extranodes/locale/template.txt b/mods/technic/extranodes/locale/template.txt new file mode 100644 index 0000000..2ffe498 --- /dev/null +++ b/mods/technic/extranodes/locale/template.txt @@ -0,0 +1,7 @@ +# technic_extranodes translation template + +Marble = +Marble Bricks = +Granite = +Concrete = + diff --git a/mods/technic/extranodes/locale/tr.txt b/mods/technic/extranodes/locale/tr.txt new file mode 100644 index 0000000..90d8154 --- /dev/null +++ b/mods/technic/extranodes/locale/tr.txt @@ -0,0 +1,6 @@ +# turkish translation by mahmutelmas06 + +Marble = Mermer +Marble Bricks = Mermer tuğla +Granite = Granit +Concrete = Beton diff --git a/mods/technic/manual.md b/mods/technic/manual.md new file mode 100644 index 0000000..6787813 --- /dev/null +++ b/mods/technic/manual.md @@ -0,0 +1,1491 @@ +Minetest technic modpack user manual +==================================== + +The technic modpack extends the Minetest game with many new elements, +mainly constructable machines and tools. It is a large modpack, and +tends to dominate gameplay when it is used. This manual describes how +to use the technic modpack, mainly from a player's perspective. + +The technic modpack depends on some other modpacks: + +* the basic Minetest game +* mesecons, which supports the construction of logic systems based on + signalling elements +* pipeworks, which supports the automation of item transport +* moreores, which provides some additional ore types + +This manual doesn't explain how to use these other modpacks, which ought +to (but actually don't) have their own manuals. + +Recipes for constructable items in technic are generally not guessable, +and are also not specifically documented here. You should use a +craft guide mod to look up the recipes in-game. For the best possible +guidance, use the unified\_inventory mod, with which technic registers +its specialised recipe types. + +substances +---------- + +### ore ### + +The technic mod makes extensive use of not just the default ores but also +some that are added by mods. You will need to mine for all the ore types +in the course of the game. Each ore type is found at a specific range of +elevations, and while the ranges mostly overlap, some have non-overlapping +ranges, so you will ultimately need to mine at more than one elevation +to find all the ores. Also, because one of the best elevations to mine +at is very deep, you will be unable to mine there early in the game. + +Elevation is measured in meters, relative to a reference plane that +is not quite sea level. (The standard sea level is at an elevation +of about +1.4.) Positive elevations are above the reference plane and +negative elevations below. Because elevations are always described this +way round, greater numbers when higher, we avoid the word "depth". + +The ores that matter in technic are coal, iron, copper, tin, zinc, +chromium, uranium, silver, gold, mithril, mese, and diamond. + +Coal is part of the basic Minetest game. It is found from elevation ++64 downwards, so is available right on the surface at the start of +the game, but it is far less abundant above elevation 0 than below. +It is initially used as a fuel, driving important machines in the early +part of the game. It becomes less important as a fuel once most of your +machines are electrically powered, but burning fuel remains a way to +generate electrical power. Coal is also used, usually in dust form, as +an ingredient in alloying recipes, wherever elemental carbon is required. + +Iron is part of the basic Minetest game. It is found from elevation ++2 downwards, and its abundance increases in stages as one descends, +reaching its maximum from elevation -64 downwards. It is a common metal, +used frequently as a structural component. In technic, unlike the basic +game, iron is used in multiple forms, mainly alloys based on iron and +including carbon (coal). + +Copper is part of the basic Minetest game (having migrated there from +moreores). It is found from elevation -16 downwards, but is more abundant +from elevation -64 downwards. It is a common metal, used either on its +own for its electrical conductivity, or as the base component of alloys. +Although common, it is very heavily used, and most of the time it will +be the material that most limits your activity. + +Tin is supplied by the moreores mod. It is found from elevation +8 +downwards, with no elevation-dependent variations in abundance beyond +that point. It is a common metal. Its main use in pure form is as a +component of electrical batteries. Apart from that its main purpose is +as the secondary ingredient in bronze (the base being copper), but bronze +is itself little used. Its abundance is well in excess of its usage, +so you will usually have a surplus of it. + +Zinc is supplied by technic. It is found from elevation +2 downwards, +with no elevation-dependent variations in abundance beyond that point. +It is a common metal. Its main use is as the secondary ingredient +in brass (the base being copper), but brass is itself little used. +Its abundance is well in excess of its usage, so you will usually have +a surplus of it. + +Chromium is supplied by technic. It is found from elevation -100 +downwards, with no elevation-dependent variations in abundance beyond +that point. It is a moderately common metal. Its main use is as the +secondary ingredient in stainless steel (the base being iron). + +Uranium is supplied by technic. It is found only from elevation -80 down +to -300; using it therefore requires one to mine above elevation -300 even +though deeper mining is otherwise more productive. It is a moderately +common metal, useful only for reasons related to radioactivity: it forms +the fuel for nuclear reactors, and is also one of the best radiation +shielding materials available. It is not difficult to find enough uranium +ore to satisfy these uses. Beware that the ore is slightly radioactive: +it will slightly harm you if you stand as close as possible to it. +It is safe when more than a meter away or when mined. + +Silver is supplied by the moreores mod. It is found from elevation -2 +downwards, with no elevation-dependent variations in abundance beyond +that point. It is a semi-precious metal. It is little used, being most +notably used in electrical items due to its conductivity, being the best +conductor of all the pure elements. + +Gold is part of the basic Minetest game (having migrated there from +moreores). It is found from elevation -64 downwards, but is more +abundant from elevation -256 downwards. It is a precious metal. It is +little used, being most notably used in electrical items due to its +combination of good conductivity (third best of all the pure elements) +and corrosion resistance. + +Mithril is supplied by the moreores mod. It is found from elevation +-512 downwards, the deepest ceiling of any minable substance, with +no elevation-dependent variations in abundance beyond that point. +It is a rare precious metal, and unlike all the other metals described +here it is entirely fictional, being derived from J. R. R. Tolkien's +Middle-Earth setting. It is little used. + +Mese is part of the basic Minetest game. It is found from elevation +-64 downwards. The ore is more abundant from elevation -256 downwards, +and from elevation -1024 downwards there are also occasional blocks of +solid mese (each yielding as much mese as nine blocks of ore). It is a +precious gemstone, and unlike diamond it is entirely fictional. It is +used in many recipes, though mainly not in large quantities, wherever +some magical quality needs to be imparted. + +Diamond is part of the basic Minetest game (having migrated there from +technic). It is found from elevation -128 downwards, but is more abundant +from elevation -256 downwards. It is a precious gemstone. It is used +moderately, mainly for reasons connected to its extreme hardness. + +### rock ### + +In addition to the ores, there are multiple kinds of rock that need to be +mined in their own right, rather than for minerals. The rock types that +matter in technic are standard stone, desert stone, marble, and granite. + +Standard stone is part of the basic Minetest game. It is extremely +common. As in the basic game, when dug it yields cobblestone, which can +be cooked to turn it back into standard stone. Cobblestone is used in +recipes only for some relatively primitive machines. Standard stone is +used in a couple of machine recipes. These rock types gain additional +significance with technic because the grinder can be used to turn them +into dirt and sand. This, especially when combined with an automated +cobblestone generator, can be an easier way to acquire sand than +collecting it where it occurs naturally. + +Desert stone is part of the basic Minetest game. It is found specifically +in desert biomes, and only from elevation +2 upwards. Although it is +easily accessible, therefore, its quantity is ultimately quite limited. +It is used in a few recipes. + +Marble is supplied by technic. It is found in dense clusters from +elevation -50 downwards. It has mainly decorative use, but also appears +in one machine recipe. + +Granite is supplied by technic. It is found in dense clusters from +elevation -150 downwards. It is much harder to dig than standard stone, +so impedes mining when it is encountered. It has mainly decorative use, +but also appears in a couple of machine recipes. + +### rubber ### + +Rubber is a biologically-derived material that has industrial uses due +to its electrical resistivity and its impermeability. In technic, it +is used in a few recipes, and it must be acquired by tapping rubber trees. + +If you have the moretrees mod installed, the rubber trees you need +are those defined by that mod. If not, technic supplies a copy of the +moretrees rubber tree. + +Extracting rubber requires a specific tool, a tree tap. Using the tree +tap (by left-clicking) on a rubber tree trunk block extracts a lump of +raw latex from the trunk. Each trunk block can be repeatedly tapped for +latex, at intervals of several minutes; its appearance changes to show +whether it is currently ripe for tapping. Each tree has several trunk +blocks, so several latex lumps can be extracted from a tree in one visit. + +Raw latex isn't used directly. It must be vulcanized to produce finished +rubber. This can be performed by simply cooking the latex, with each +latex lump producing one lump of rubber. If you have an extractor, +however, the latex is better processed there: each latex lump will +produce three lumps of rubber. + +### metal ### + +Many of the substances important in technic are metals, and there is +a common pattern in how metals are handled. Generally, each metal can +exist in five forms: ore, lump, dust, ingot, and block. With a couple of +tricky exceptions in mods outside technic, metals are only *used* in dust, +ingot, and block forms. Metals can be readily converted between these +three forms, but can't be converted from them back to ore or lump forms. + +As in the basic Minetest game, a "lump" of metal is acquired directly by +digging ore, and will then be processed into some other form for use. +A lump is thus more akin to ore than to refined metal. (In real life, +metal ore rarely yields lumps ("nuggets") of pure metal directly. +More often the desired metal is chemically bound into the rock as an +oxide or some other compound, and the ore must be chemically processed +to yield pure metal.) + +Not all metals occur directly as ore. Generally, elemental metals (those +consisting of a single chemical element) occur as ore, and alloys (those +consisting of a mixture of multiple elements) do not. In fact, if the +fictional mithril is taken to be elemental, this pattern is currently +followed perfectly. (It is not clear in the Middle-Earth setting whether +mithril is elemental or an alloy.) This might change in the future: +in real life some alloys do occur as ore, and some elemental metals +rarely occur naturally outside such alloys. Metals that do not occur +as ore also lack the "lump" form. + +The basic Minetest game offers a single way to refine metals: cook a lump +in a furnace to produce an ingot. With technic this refinement method +still exists, but is rarely used outside the early part of the game, +because technic offers a more efficient method once some machines have +been built. The grinder, available only in electrically-powered forms, +can grind a metal lump into two piles of metal dust. Each dust pile +can then be cooked into an ingot, yielding two ingots from one lump. +This doubling of material value means that you should only cook a lump +directly when you have no choice, mainly early in the game when you +haven't yet built a grinder. + +An ingot can also be ground back to (one pile of) dust. Thus it is always +possible to convert metal between ingot and dust forms, at the expense +of some energy consumption. Nine ingots of a metal can be crafted into +a block, which can be used for building. The block can also be crafted +back to nine ingots. Thus it is possible to freely convert metal between +ingot and block forms, which is convenient to store the metal compactly. +Every metal has dust, ingot, and block forms. + +Alloying recipes in which a metal is the base ingredient, to produce a +metal alloy, always come in two forms, using the metal either as dust +or as an ingot. If the secondary ingredient is also a metal, it must +be supplied in the same form as the base ingredient. The output alloy +is also returned in the same form. For example, brass can be produced +by alloying two copper ingots with one zinc ingot to make three brass +ingots, or by alloying two piles of copper dust with one pile of zinc +dust to make three piles of brass dust. The two ways of alloying produce +equivalent results. + +### iron and its alloys ### + +Iron forms several important alloys. In real-life history, iron was the +second metal to be used as the base component of deliberately-constructed +alloys (the first was copper), and it was the first metal whose working +required processes of any metallurgical sophistication. The game +mechanics around iron broadly imitate the historical progression of +processes around it, rather than the less-varied modern processes. + +The two-component alloying system of iron with carbon is of huge +importance, both in the game and in real life. The basic Minetest game +doesn't distinguish between these pure iron and these alloys at all, +but technic introduces a distinction based on the carbon content, and +renames some items of the basic game accordingly. + +The iron/carbon spectrum is represented in the game by three metal +substances: wrought iron, carbon steel, and cast iron. Wrought iron +has low carbon content (less than 0.25%), resists shattering, and +is easily welded, but is relatively soft and susceptible to rusting. +In real-life history it was used for rails, gates, chains, wire, pipes, +fasteners, and other purposes. Cast iron has high carbon content +(2.1% to 4%), is especially hard, and resists corrosion, but is +relatively brittle, and difficult to work. Historically it was used +to build large structures such as bridges, and for cannons, cookware, +and engine cylinders. Carbon steel has medium carbon content (0.25% +to 2.1%), and intermediate properties: moderately hard and also tough, +somewhat resistant to corrosion. In real life it is now used for most +of the purposes previously satisfied by wrought iron and many of those +of cast iron, but has historically been especially important for its +use in swords, armor, skyscrapers, large bridges, and machines. + +In real-life history, the first form of iron to be refined was +wrought iron, which is nearly pure iron, having low carbon content. +It was produced from ore by a low-temperature furnace process (the +"bloomery") in which the ore/iron remains solid and impurities (slag) +are progressively removed by hammering ("working", hence "wrought"). +This began in the middle East, around 1800 BCE. + +Historically, the next forms of iron to be refined were those of high +carbon content. This was the result of the development of a more +sophisticated kind of furnace, the blast furnace, capable of reaching +higher temperatures. The real advantage of the blast furnace is that it +melts the metal, allowing it to be cast straight into a shape supplied by +a mould, rather than having to be gradually beaten into the desired shape. +A side effect of the blast furnace is that carbon from the furnace's fuel +is unavoidably incorporated into the metal. Normally iron is processed +twice through the blast furnace: once producing "pig iron", which has +very high carbon content and lots of impurities but lower melting point, +casting it into rough ingots, then remelting the pig iron and casting it +into the final moulds. The result is called "cast iron". Pig iron was +first produced in China around 1200 BCE, and cast iron later in the 5th +century BCE. Incidentally, the Chinese did not have the bloomery process, +so this was their first iron refining process, and, unlike the rest of +the world, their first wrought iron was made from pig iron rather than +directly from ore. + +Carbon steel, with intermediate carbon content, was developed much later, +in Europe in the 17th century CE. It required a more sophisticated +process, because the blast furnace made it extremely difficult to achieve +a controlled carbon content. Tweaks of the blast furnace would sometimes +produce an intermediate carbon content by luck, but the first processes to +reliably produce steel were based on removing almost all the carbon from +pig iron and then explicitly mixing a controlled amount of carbon back in. + +In the game, the bloomery process is represented by ordinary cooking +or grinding of an iron lump. The lump represents unprocessed ore, +and is identified only as "iron", not specifically as wrought iron. +This standard refining process produces dust or an ingot which is +specifically identified as wrought iron. Thus the standard refining +process produces the (nearly) pure metal. + +Cast iron is trickier. You might expect from the real-life notes above +that cooking an iron lump (representing ore) would produce pig iron that +can then be cooked again to produce cast iron. This is kind of the case, +but not exactly, because as already noted cooking an iron lump produces +wrought iron. The game doesn't distinguish between low-temperature +and high-temperature cooking processes: the same furnace is used not +just to cast all kinds of metal but also to cook food. So there is no +distinction between cooking processes to produce distinct wrought iron +and pig iron. But repeated cooking *is* available as a game mechanic, +and is indeed used to produce cast iron: re-cooking a wrought iron ingot +produces a cast iron ingot. So pig iron isn't represented in the game as +a distinct item; instead wrought iron stands in for pig iron in addition +to its realistic uses as wrought iron. + +Carbon steel is produced by a more regular in-game process: alloying +wrought iron with coal dust (which is essentially carbon). This bears +a fair resemblance to the historical development of carbon steel. +This alloying recipe is relatively time-consuming for the amount of +material processed, when compared against other alloying recipes, and +carbon steel is heavily used, so it is wise to alloy it in advance, +when you're not waiting for it. + +There are additional recipes that permit all three of these types of iron +to be converted into each other. Alloying carbon steel again with coal +dust produces cast iron, with its higher carbon content. Cooking carbon +steel or cast iron produces wrought iron, in an abbreviated form of the +bloomery process. + +There's one more iron alloy in the game: stainless steel. It is managed +in a completely regular manner, created by alloying carbon steel with +chromium. + +### uranium enrichment ### + +When uranium is to be used to fuel a nuclear reactor, it is not +sufficient to merely isolate and refine uranium metal. It is necessary +to control its isotopic composition, because the different isotopes +behave differently in nuclear processes. + +The main isotopes of interest are U-235 and U-238. U-235 is good at +sustaining a nuclear chain reaction, because when a U-235 nucleus is +bombarded with a neutron it will usually fission (split) into fragments. +It is therefore described as "fissile". U-238, on the other hand, +is not fissile: if bombarded with a neutron it will usually capture it, +becoming U-239, which is very unstable and quickly decays into semi-stable +(and fissile) plutonium-239. + +Inconveniently, the fissile U-235 makes up only about 0.7% of natural +uranium, almost all of the other 99.3% being U-238. Natural uranium +therefore doesn't make a great nuclear fuel. (In real life there are +a small number of reactor types that can use it, but technic doesn't +have such a reactor.) Better nuclear fuel needs to contain a higher +proportion of U-235. + +Achieving a higher U-235 content isn't as simple as separating the U-235 +from the U-238 and just using the required amount of U-235. Because +U-235 and U-238 are both uranium, and therefore chemically identical, +they cannot be chemically separated, in the way that different elements +are separated from each other when refining metal. They do differ +in atomic mass, so they can be separated by centrifuging, but because +their atomic masses are very close, centrifuging doesn't separate them +very well. They cannot be separated completely, but it is possible to +produce uranium that has the isotopes mixed in different proportions. +Uranium with a significantly larger fissile U-235 fraction than natural +uranium is called "enriched", and that with a significantly lower fissile +fraction is called "depleted". + +A single pass through a centrifuge produces two output streams, one with +a fractionally higher fissile proportion than the input, and one with a +fractionally lower fissile proportion. To alter the fissile proportion +by a significant amount, these output streams must be centrifuged again, +repeatedly. The usual arrangement is a "cascade", a linear arrangement +of many centrifuges. Each centrifuge takes as input uranium with some +specific fissile proportion, and passes its two output streams to the +two adjacent centrifuges. Natural uranium is input somewhere in the +middle of the cascade, and the two ends of the cascade produce properly +enriched and depleted uranium. + +Fuel for technic's nuclear reactor consists of enriched uranium of which +3.5% is fissile. (This is a typical value for a real-life light water +reactor, a common type for power generation.) To enrich uranium in the +game, it must first be in dust form: the centrifuge will not operate +on ingots. (In real life uranium enrichment is done with the uranium +in the form of a gas.) It is best to grind uranium lumps directly to +dust, rather than cook them to ingots first, because this yields twice +as much metal dust. When uranium is in refined form (dust, ingot, or +block), the name of the inventory item indicates its fissile proportion. +Uranium of any available fissile proportion can be put through all the +usual processes for metal. + +A single centrifuge operation takes two uranium dust piles, and produces +as output one dust pile with a fissile proportion 0.1% higher and one with +a fissile proportion 0.1% lower. Uranium can be enriched up to the 3.5% +required for nuclear fuel, and depleted down to 0.0%. Thus a cascade +covering the full range of fissile fractions requires 34 cascade stages. +(In real life, enriching to 3.5% uses thousands of cascade stages. +Also, centrifuging is less effective when the input isotope ratio +is more skewed, so the steps in fissile proportion are smaller for +relatively depleted uranium. Zero fissile content is only asymptotically +approachable, and natural uranium relatively cheap, so uranium is normally +only depleted to around 0.3%. On the other hand, much higher enrichment +than 3.5% isn't much more difficult than enriching that far.) + +Although centrifuges can be used manually, it is not feasible to perform +uranium enrichment by hand. It is a practical necessity to set up +an automated cascade, using pneumatic tubes to transfer uranium dust +piles between centrifuges. Because both outputs from a centrifuge are +ejected into the same tube, sorting tubes are needed to send the outputs +in different directions along the cascade. It is possible to send items +into the centrifuges through the same tubes that take the outputs, so the +simplest version of the cascade structure has a line of 34 centrifuges +linked by a line of 34 sorting tube segments. + +Assuming that the cascade depletes uranium all the way to 0.0%, +producing one unit of 3.5%-fissile uranium requires the input of five +units of 0.7%-fissile (natural) uranium, takes 490 centrifuge operations, +and produces four units of 0.0%-fissile (fully depleted) uranium as a +byproduct. It is possible to reduce the number of required centrifuge +operations by using more natural uranium input and outputting only +partially depleted uranium, but (unlike in real life) this isn't usually +an economical approach. The 490 operations are not spread equally over +the cascade stages: the busiest stage is the one taking 0.7%-fissile +uranium, which performs 28 of the 490 operations. The least busy is the +one taking 3.4%-fissile uranium, which performs 1 of the 490 operations. + +A centrifuge cascade will consume quite a lot of energy. It is +worth putting a battery upgrade in each centrifuge. (Only one can be +accommodated, because a control logic unit upgrade is also required for +tube operation.) An MV centrifuge, the only type presently available, +draws 7 kEU/s in this state, and takes 5 s for each uranium centrifuging +operation. It thus takes 35 kEU per operation, and the cascade requires +17.15 MEU to produce each unit of enriched uranium. It takes five units +of enriched uranium to make each fuel rod, and six rods to fuel a reactor, +so the enrichment cascade requires 514.5 MEU to process a full set of +reactor fuel. This is about 0.85% of the 6.048 GEU that the reactor +will generate from that fuel. + +If there is enough power available, and enough natural uranium input, +to keep the cascade running continuously, and exactly one centrifuge +at each stage, then the overall speed of the cascade is determined by +the busiest stage, the 0.7% stage. It can perform its 28 operations +towards the enrichment of a single uranium unit in 140 s, so that is +the overall cycle time of the cascade. It thus takes 70 min to enrich +a full set of reactor fuel. While the cascade is running at this full +speed, its average power consumption is 122.5 kEU/s. The instantaneous +power consumption varies from second to second over the 140 s cycle, +and the maximum possible instantaneous power consumption (with all 34 +centrifuges active simultaneously) is 238 kEU/s. It is recommended to +have some battery boxes to smooth out these variations. + +If the power supplied to the centrifuge cascade averages less than +122.5 kEU/s, then the cascade can't run continuously. (Also, if the +power supply is intermittent, such as solar, then continuous operation +requires more battery boxes to smooth out the supply variations, even if +the average power is high enough.) Because it's automated and doesn't +require continuous player attention, having the cascade run at less +than full speed shouldn't be a major problem. The enrichment work will +consume the same energy overall regardless of how quickly it's performed, +and the speed will vary in direct proportion to the average power supply +(minus any supply lost because battery boxes filled completely). + +If there is insufficient power to run both the centrifuge cascade at +full speed and whatever other machines require power, all machines on +the same power network as the centrifuge will be forced to run at the +same fractional speed. This can be inconvenient, especially if use +of the other machines is less automated than the centrifuge cascade. +It can be avoided by putting the centrifuge cascade on a separate power +network from other machines, and limiting the proportion of the generated +power that goes to it. + +If there is sufficient power and it is desired to enrich uranium faster +than a single cascade can, the process can be speeded up more economically +than by building an entire second cascade. Because the stages of the +cascade do different proportions of the work, it is possible to add a +second and subsequent centrifuges to only the busiest stages, and have +the less busy stages still keep up with only a single centrifuge each. + +Another possible approach to uranium enrichment is to have no fixed +assignment of fissile proportions to centrifuges, dynamically putting +whatever uranium is available into whichever centrifuges are available. +Theoretically all of the centrifuges can be kept almost totally busy all +the time, making more efficient use of capital resources, and the number +of centrifuges used can be as little (down to one) or as large as desired. +The difficult part is that it is not sufficient to put each uranium dust +pile individually into whatever centrifuge is available: they must be +input in matched pairs. Any odd dust pile in a centrifuge will not be +processed and will prevent that centrifuge from accepting any other input. + +### concrete ### + +Concrete is a synthetic building material. The technic modpack implements +it in the game. + +Two forms of concrete are available as building blocks: ordinary +"concrete" and more advanced "blast-resistant concrete". Despite its +name, the latter has no special resistance to explosions or to any other +means of destruction. + +Concrete can also be used to make fences. They act just like wooden +fences, but aren't flammable. Confusingly, the item that corresponds +to a wooden "fence" is called "concrete post". Posts placed adjacently +will implicitly create fence between them. Fencing also appears between +a post and adjacent concrete block. + +industrial processes +-------------------- + +### alloying ### + +In technic, alloying is a way of combining items to create other items, +distinct from standard crafting. Alloying always uses inputs of exactly +two distinct types, and produces a single output. Like cooking, which +takes a single input, it is performed using a powered machine, known +generically as an "alloy furnace". An alloy furnace always has two +input slots, and it doesn't matter which way round the two ingredients +are placed in the slots. Many alloying recipes require one or both +slots to contain a stack of more than one of the ingredient item: the +quantity required of each ingredient is part of the recipe. + +As with the furnaces used for cooking, there are multiple kinds of alloy +furnace, powered in different ways. The most-used alloy furnaces are +electrically powered. There is also an alloy furnace that is powered +by directly burning fuel, just like the basic cooking furnace. Building +almost any electrical machine, including the electrically-powered alloy +furnaces, requires a machine casing component, one ingredient of which +is brass, an alloy. It is therefore necessary to use the fuel-fired +alloy furnace in the early part of the game, on the way to building +electrical machinery. + +Alloying recipes are mainly concerned with metals. These recipes +combine a base metal with some other element, most often another metal, +to produce a new metal. This is discussed in the section on metal. +There are also a few alloying recipes in which the base ingredient is +non-metallic, such as the recipe for the silicon wafer. + +### grinding, extracting, and compressing ### + +Grinding, extracting, and compressing are three distinct, but very +similar, ways of converting one item into another. They are all quite +similar to the cooking found in the basic Minetest game. Each uses +an input consisting of a single item type, and produces a single +output. They are all performed using powered machines, respectively +known generically as a "grinder", "extractor", and "compressor". +Some compressing recipes require the input to be a stack of more than +one of the input item: the quantity required is part of the recipe. +Grinding and extracting recipes never require such a stacked input. + +There are multiple kinds of grinder, extractor, and compressor. Unlike +cooking furnaces and alloy furnaces, there are none that directly burn +fuel; they are all electrically powered. + +Grinding recipes always produce some kind of dust, loosely speaking, +as output. The most important grinding recipes are concerned with metals: +every metal lump or ingot can be ground into metal dust. Coal can also +be ground into dust, and burning the dust as fuel produces much more +energy than burning the original coal lump. There are a few other +grinding recipes that make block types from the basic Minetest game +more interconvertible: standard stone can be ground to standard sand, +desert stone to desert sand, cobblestone to gravel, and gravel to dirt. + +Extracting is a miscellaneous category, used for a small group +of processes that just don't fit nicely anywhere else. (Its name is +notably vaguer than those of the other kinds of processing.) It is used +for recipes that produce dye, mainly from flowers. (However, for those +recipes using flowers, the basic Minetest game provides parallel crafting +recipes that are easier to use and produce more dye, and those recipes +are not suppressed by technic.) Its main use is to generate rubber from +raw latex, which it does three times as efficiently as merely cooking +the latex. Extracting was also formerly used for uranium enrichment for +use as nuclear fuel, but this use has been superseded by a new enrichment +system using the centrifuge. + +Compressing recipes are mainly used to produce a few relatively advanced +artificial item types, such as the copper and carbon plates used in +advanced machine recipes. There are also a couple of compressing recipes +making natural block types more interconvertible. + +### centrifuging ### + +Centrifuging is another way of using a machine to convert items. +Centrifuging takes an input of a single item type, and produces outputs +of two distinct types. The input may be required to be a stack of +more than one of the input item: the quantity required is part of +the recipe. Centrifuging is only performed by a single machine type, +the MV (electrically-powered) centrifuge. + +Currently, centrifuging recipes don't appear in the unified\_inventory +craft guide, because unified\_inventory can't yet handle recipes with +multiple outputs. + +Generally, centrifuging separates the input item into constituent +substances, but it can only work when the input is reasonably fluid, +and in marginal cases it is quite destructive to item structure. +(In real life, centrifuges require their input to be mainly fluid, that +is either liquid or gas. Few items in the game are described as liquid +or gas, so the concept of the centrifuge is stretched a bit to apply to +finely-divided solids.) + +The main use of centrifuging is in uranium enrichment, where it +separates the isotopes of uranium dust that otherwise appears uniform. +Enrichment is a necessary process before uranium can be used as nuclear +fuel, and the radioactivity of uranium blocks is also affected by its +isotopic composition. + +A secondary use of centrifuging is to separate the components of +metal alloys. This can only be done using the dust form of the alloy. +It recovers both components of binary metal/metal alloys. It can't +recover the carbon from steel or cast iron. + +chests +------ + +The technic mod replaces the basic Minetest game's single type of +chest with a range of chests that have different sizes and features. +The chest types are identified by the materials from which they are made; +the better chests are made from more exotic materials. The chest types +form a linear sequence, each being (with one exception noted below) +strictly more powerful than the preceding one. The sequence begins with +the wooden chest from the basic game, and each later chest type is built +by upgrading a chest of the preceding type. The chest types are: + +1. wooden chest: 8×4 (32) slots +2. iron chest: 9×5 (45) slots +3. copper chest: 12×5 (60) slots +4. silver chest: 12×6 (72) slots +5. gold chest: 15×6 (90) slots +6. mithril chest: 15×6 (90) slots + +The iron and later chests have the ability to sort their contents, +when commanded by a button in their interaction forms. Item types are +sorted in the same order used in the unified\_inventory craft guide. +The copper and later chests also have an auto-sorting facility that can +be enabled from the interaction form. An auto-sorting chest automatically +sorts its contents whenever a player closes the chest. The contents will +then usually be in a sorted state when the chest is opened, but may not +be if pneumatic tubes have operated on the chest while it was closed, +or if two players have the chest open simultaneously. + +The silver and gold chests, but not the mithril chest, have a built-in +sign-like capability. They can be given a textual label, which will +be visible when hovering over the chest. The gold chest, but again not +the mithril chest, can be further labelled with a colored patch that is +visible from a moderate distance. + +The mithril chest is currently an exception to the upgrading system. +It has only as many inventory slots as the preceding (gold) type, and has +fewer of the features. It has no feature that other chests don't have: +it is strictly weaker than the gold chest. It is planned that in the +future it will acquire some unique features, but for now the only reason +to use it is aesthetic. + +The size of the largest chests is dictated by the maximum size +of interaction form that the game engine can successfully display. +If in the future the engine becomes capable of handling larger forms, +by scaling them to fit the screen, the sequence of chest sizes will +likely be revised. + +As with the chest of the basic Minetest game, each chest type comes +in both locked and unlocked flavors. All of the chests work with the +pneumatic tubes of the pipeworks mod. + +radioactivity +------------- + +The technic mod adds radioactivity to the game, as a hazard that can +harm player characters. Certain substances in the game are radioactive, +and when placed as blocks in the game world will damage nearby players. +Conversely, some substances attenuate radiation, and so can be used +for shielding. The radioactivity system is based on reality, but is +not an attempt at serious simulation: like the rest of the game, it has +many simplifications and deliberate deviations from reality in the name +of game balance. + +In real life radiological hazards can be roughly divided into three +categories based on the time scale over which they act: prompt radiation +damage (such as radiation burns) that takes effect immediately; radiation +poisoning that becomes visible in hours and lasts weeks; and cumulative +effects such as increased cancer risk that operate over decades. +The game's version of radioactivity causes only prompt damage, not +any delayed effects. Damage comes in the abstracted form of removing +the player's hit points, and is immediately visible to the player. +As with all other kinds of damage in the game, the player can restore +the hit points by eating food items. High-nutrition foods, such as the +pie baskets supplied by the bushes\_classic mod, are a useful tool in +dealing with radiological hazards. + +Only a small range of items in the game are radioactive. From the technic +mod, the only radioactive items are uranium ore, refined uranium blocks, +nuclear reactor cores (when operating), and the materials released when +a nuclear reactor melts down. Other mods can plug into the technic +system to make their own block types radioactive. Radioactive items +are harmless when held in inventories. They only cause radiation damage +when placed as blocks in the game world. + +The rate at which damage is caused by a radioactive block depends on the +distance between the source and the player. Distance matters because the +damaging radiation is emitted equally in all directions by the source, +so with distance it spreads out, so less of it will strike a target +of any specific size. The amount of radiation absorbed by a target +thus varies in proportion to the inverse square of the distance from +the source. The game imitates this aspect of real-life radioactivity, +but with some simplifications. While in real life the inverse square law +is only really valid for sources and targets that are small relative to +the distance between them, in the game it is applied even when the source +and target are large and close together. Specifically, the distance is +measured from the center of the radioactive block to the abdomen of the +player character. For extremely close encounters, such as where the +player swims in a radioactive liquid, there is an enforced lower limit +on the effective distance. + +Different types of radioactive block emit different amounts of radiation. +The least radioactive of the radioactive block types is uranium ore, +which causes 0.25 HP/s damage to a player 1 m away. A block of refined +but unenriched uranium, as an example, is nine times as radioactive, +and so will cause 2.25 HP/s damage to a player 1 m away. By the inverse +square law, the damage caused by that uranium block reduces by a factor +of four at twice the distance, that is to 0.5625 HP/s at a distance of 2 +m, or by a factor of nine at three times the distance, that is to 0.25 +HP/s at a distance of 3 m. Other radioactive block types are far more +radioactive than these: the most radioactive of all, the result of a +nuclear reactor melting down, is 1024 times as radioactive as uranium ore. + +Uranium blocks are radioactive to varying degrees depending on their +isotopic composition. An isotope being fissile, and thus good as +reactor fuel, is essentially uncorrelated with it being radioactive. +The fissile U-235 is about six times as radioactive than the non-fissile +U-238 that makes up the bulk of natural uranium, so one might expect that +enriching from 0.7% fissile to 3.5% fissile (or depleting to 0.0%) would +only change the radioactivity of uranium by a few percent. But actually +the radioactivity of enriched uranium is dominated by the non-fissile +U-234, which makes up only about 50 parts per million of natural uranium +but is about 19000 times more radioactive than U-238. The radioactivity +of natural uranium comes just about half from U-238 and half from U-234, +and the uranium gets enriched in U-234 along with the U-235. This makes +3.5%-fissile uranium about three times as radioactive as natural uranium, +and 0.0%-fissile uranium about half as radioactive as natural uranium. + +Radiation is attenuated by the shielding effect of material along the +path between the radioactive block and the player. In general, only +blocks of homogeneous material contribute to the shielding effect: for +example, a block of solid metal has a shielding effect, but a machine +does not, even though the machine's ingredients include a metal case. +The shielding effect of each block type is based on the real-life +resistance of the material to ionising radiation, but for game balance +the effectiveness of shielding is scaled down from real life, more so +for stronger shield materials than for weaker ones. Also, whereas in +real life materials have different shielding effects against different +types of radiation, the game only has one type of damaging radiation, +and so only one set of shielding values. + +Almost any solid or liquid homogeneous material has some shielding value. +At the low end of the scale, 5 meters of wooden planks nearly halves +radiation, though in that case the planks probably contribute more +to safety by forcing the player to stay 5 m further away from the +source than by actual attenuation. Dirt halves radiation in 2.4 m, +and stone in 1.7 m. When a shield must be deliberately constructed, +the preferred materials are metals, the denser the better. Iron and +steel halve radiation in 1.1 m, copper in 1.0 m, and silver in 0.95 m. +Lead would halve in 0.69 m if it were in the game, but it's not, which +poses a bit of a problem due to the drawbacks of the three materials in +the game that are better shielding than silver. Gold halves radiation +in 0.53 m (factor of 3.7 per meter), but is a bit scarce to use for +this purpose. Uranium halves radiation in 0.31 m (factor of 9.4 per +meter), but is itself radioactive. The very best shielding in the game +is nyancat material (nyancats and their rainbow blocks), which halves +radiation in 0.22 m (factor of 24 per meter), but is extremely scarce. + +If the theoretical radiation damage from a particular source is +sufficiently small, due to distance and shielding, then no damage at all +will actually occur. This means that for any particular radiation source +and shielding arrangement there is a safe distance to which a player can +approach without harm. The safe distance is where the radiation damage +would theoretically be 0.25 HP/s. This damage threshold is applied +separately for each radiation source, so to be safe in a multi-source +situation it is only necessary to be safe from each source individually. + +The best way to use uranium as shielding is in a two-layer structure, +of uranium and some non-radioactive material. The uranium layer should +be nearer to the primary radiation source and the non-radioactive layer +nearer to the player. The uranium provides a great deal of shielding +against the primary source, and the other material shields against +the uranium layer. Due to the damage threshold mechanism, a meter of +dirt is sufficient to shield fully against a layer of fully-depleted +(0.0%-fissile) uranium. Obviously this is only worthwhile when the +primary radiation source is more radioactive than a uranium block. + +When constructing permanent radiation shielding, it is necessary to +pay attention to the geometry of the structure, and particularly to any +holes that have to be made in the shielding, for example to accommodate +power cables. Any hole that is aligned with the radiation source makes a +"shine path" through which a player may be irradiated when also aligned. +Shine paths can be avoided by using bent paths for cables, passing +through unaligned holes in multiple shield layers. If the desired +shielding effect depends on multiple layers, a hole in one layer still +produces a partial shine path, along which the shielding is reduced, +so the positioning of holes in each layer must still be considered. +Tricky shine paths can also be addressed by just keeping players out of +the dangerous area. + +electrical power +---------------- + +Most machines in technic are electrically powered. To operate them it is +necessary to construct an electrical power network. The network links +together power generators and power-consuming machines, connecting them +using power cables. + +There are three tiers of electrical networking: low voltage (LV), +medium voltage (MV), and high voltage (HV). Each network must operate +at a single voltage, and most electrical items are specific to a single +voltage. Generally, the machines of higher tiers are more powerful, +but consume more energy and are more expensive to build, than machines +of lower tiers. It is normal to build networks of all three tiers, +in ascending order as one progresses through the game, but it is not +strictly necessary to do this. Building HV equipment requires some parts +that can only be manufactured using electrical machines, either LV or MV, +so it is not possible to build an HV network first, but it is possible +to skip either LV or MV on the way to HV. + +Each voltage has its own cable type, with distinctive insulation. Cable +segments connect to each other and to compatible machines automatically. +Incompatible electrical items don't connect. All non-cable electrical +items must be connected via cable: they don't connect directly to each +other. Most electrical items can connect to cables in any direction, +but there are a couple of important exceptions noted below. + +To be useful, an electrical network must connect at least one power +generator to at least one power-consuming machine. In addition to these +items, the network must have a "switching station" in order to operate: +no energy will flow without one. Unlike most electrical items, the +switching station is not voltage-specific: the same item will manage +a network of any tier. However, also unlike most electrical items, +it is picky about the direction in which it is connected to the cable: +the cable must be directly below the switching station. + +Hovering over a network's switching station will show the aggregate energy +supply and demand, which is useful for troubleshooting. Electrical energy +is measured in "EU", and power (energy flow) in EU per second (EU/s). +Energy is shifted around a network instantaneously once per second. + +In a simple network with only generators and consumers, if total +demand exceeds total supply then no energy will flow, the machines +will do nothing, and the generators' output will be lost. To handle +this situation, it is recommended to add a battery box to the network. +A battery box will store generated energy, and when enough has been +stored to run the consumers for one second it will deliver it to the +consumers, letting them run part-time. It also stores spare energy +when supply exceeds demand, to let consumers run full-time when their +demand occasionally peaks above the supply. More battery boxes can +be added to cope with larger periods of mismatched supply and demand, +such as those resulting from using solar generators (which only produce +energy in the daytime). + +When there are electrical networks of multiple tiers, it can be appealing +to generate energy on one tier and transfer it to another. The most +direct way to do this is with the "supply converter", which can be +directly wired into two networks. It is another tier-independent item, +and also particular about the direction of cable connections: it must +have the cable of one network directly above, and the cable of another +network directly below. The supply converter demands 10000 EU/s from +the network above, and when this network gives it power it supplies 9000 +EU/s to the network below. Thus it is only 90% efficient, unlike most of +the electrical system which is 100% efficient in moving energy around. +To transfer more than 10000 EU/s between networks, connect multiple +supply converters in parallel. + +powered machines +---------------- + +### powered machine tiers ### + +Each powered machine takes its power in some specific form, being +either fuel-fired (burning fuel directly) or electrically powered at +some specific voltage. There is a general progression through the +game from using fuel-fired machines to electrical machines, and to +higher electrical voltages. The most important kinds of machine come +in multiple variants that are powered in different ways, so the earlier +ones can be superseded. However, some machines are only available for +a specific power tier, so the tier can't be entirely superseded. + +### powered machine upgrades ### + +Some machines have inventory slots that are used to upgrade them in +some way. Generally, machines of MV and HV tiers have two upgrade slots, +and machines of lower tiers (fuel-fired and LV) do not. Any item can +be placed in an upgrade slot, but only specific items will have any +upgrading effect. It is possible to have multiple upgrades of the same +type, but this can't be achieved by stacking more than one upgrade item +in one slot: it is necessary to put the same kind of item in more than one +upgrade slot. The ability to upgrade machines is therefore very limited. +Two kinds of upgrade are currently possible: an energy upgrade and a +tube upgrade. + +An energy upgrade consists of a battery item, the same kind of battery +that serves as a mobile energy store. The effect of an energy upgrade +is to improve in some way the machine's use of electrical energy, most +often by making it use less energy. The upgrade effect has no relation +to energy stored in the battery: the battery's charge level is irrelevant +and will not be affected. + +A tube upgrade consists of a control logic unit item. The effect of a +tube upgrade is to make the machine able, or more able, to eject items +it has finished with into pneumatic tubes. The machines that can take +this kind of upgrade are in any case capable of accepting inputs from +pneumatic tubes. These upgrades are essential in using powered machines +as components in larger automated systems. + +### tubes with powered machines ### + +Generally, powered machines of MV and HV tiers can work with pneumatic +tubes, and those of lower tiers cannot. (As an exception, the fuel-fired +furnace from the basic Minetest game can accept inputs through tubes, +but can't output into tubes.) + +If a machine can accept inputs through tubes at all, then this +is a capability of the basic machine, not requiring any upgrade. +Most item-processing machines take only one kind of input, and in that +case they will accept that input from any direction. This doesn't match +how tubes visually connect to the machines: generally tubes will visually +connect to any face except the front, but an item passing through a tube +in front of the machine will actually be accepted into the machine. + +A minority of machines take more than one kind of input, and in that +case the input slot into which an arriving item goes is determined by the +direction from which it arrives. In this case the machine may be picky +about the direction of arriving items, associating each input type with +a single face of the machine and not accepting inputs at all through the +remaining faces. Again, the visual connection of tubes doesn't match: +generally tubes will still visually connect to any face except the front, +thus connecting to faces that neither accept inputs nor emit outputs. + +Machines do not accept items from tubes into non-input inventory slots: +the output slots or upgrade slots. Output slots are normally filled +only by the processing operation of the machine, and upgrade slots must +be filled manually. + +Powered machines generally do not eject outputs into tubes without +an upgrade. One tube upgrade will make them eject outputs at a slow +rate; a second tube upgrade will increase the rate. Whether the slower +rate is adequate depends on how it compares to the rate at which the +machine produces outputs, and on how the machine is being used as part +of a larger construct. The machine always ejects its outputs through a +particular face, usually a side. Due to a bug, the side through which +outputs are ejected is not consistent: when the machine is rotated one +way, the direction of ejection is rotated the other way. This will +probably be fixed some day, but because a straightforward fix would +break half the machines already in use, the fix may be tied to some +larger change such as free selection of the direction of ejection. + +### battery boxes ### + +The primary purpose of battery boxes is to temporarily store electrical +energy to let an electrical network cope with mismatched supply and +demand. They have a secondary purpose of charging and discharging +powered tools. They are thus a mixture of electrical infrastructure, +powered machine, and generator. + +MV and HV battery boxes have upgrade slots. Energy upgrades increase +the capacity of a battery box, each by 10% of the un-upgraded capacity. +This increase is far in excess of the capacity of the battery that forms +the upgrade. + +For charging and discharging of power tools, rather than having input and +output slots, each battery box has a charging slot and a discharging slot. +A fully charged/discharged item stays in its slot. The rates at which a +battery box can charge and discharge increase with voltage, so it can +be worth building a battery box of higher tier before one has other +infrastructure of that tier, just to get access to faster charging. + +MV and HV battery boxes work with pneumatic tubes. An item can be input +to the charging slot through the bottom of the battery box, or to the +discharging slot through the top. Items are not accepted through the +front, back, or sides. With a tube upgrade, fully charged/discharged +tools (as appropriate for their slot) will be ejected through a side. + +### processing machines ### + +The furnace, alloy furnace, grinder, extractor, compressor, and centrifuge +have much in common. Each implements some industrial process that +transforms items into other items, and they manner in which they present +these processes as powered machines is essentially identical. + +Most of the processing machines operate on inputs of only a single type +at a time, and correspondingly have only a single input slot. The alloy +furnace is an exception: it operates on inputs of two distinct types at +once, and correspondingly has two input slots. It doesn't matter which +way round the alloy furnace's inputs are placed in the two slots. + +The processing machines are mostly available in variants for multiple +tiers. The furnace and alloy furnace are each available in fuel-fired, +LV, and MV forms. The grinder, extractor, and compressor are each +available in LV and MV forms. The centrifuge is the only single-tier +processing machine, being only available in MV form. The higher-tier +machines process items faster than the lower-tier ones, but also have +higher power consumption, usually taking more energy overall to perform +the same amount of processing. The MV machines have upgrade slots, +and energy upgrades reduce their energy consumption. + +The MV machines can work with pneumatic tubes. They accept inputs via +tubes from any direction. For most of the machines, having only a single +input slot, this is perfectly simple behavior. The alloy furnace is more +complex: it will put an arriving item in either input slot, preferring to +stack it with existing items of the same type. It doesn't matter which +slot each of the alloy furnace's inputs is in, so it doesn't matter that +there's no direct control ovar that, but there is a risk that supplying +a lot of one item type through tubes will result in both slots containing +the same type of item, leaving no room for the second input. + +The MV machines can be given a tube upgrade to make them automatically +eject output items into pneumatic tubes. The items are always ejected +through a side, though which side it is depends on the machine's +orientation, due to a bug. Output items are always ejected singly. +For some machines, such as the grinder, the ejection rate with a +single tube upgrade doesn't keep up with the rate at which items can +be processed. A second tube upgrade increases the ejection rate. + +The LV and fuel-fired machines do not work with pneumatic tubes, except +that the fuel-fired furnace (actually part of the basic Minetest game) +can accept inputs from tubes. Items arriving through the bottom of +the furnace go into the fuel slot, and items arriving from all other +directions go into the input slot. + +### music player ### + +The music player is an LV powered machine that plays audio recordings. +It offers a selection of up to nine tracks. The technic modpack doesn't +include specific music tracks for this purpose; they have to be installed +separately. + +The music player gives the impression that the music is being played in +the Minetest world. The music only plays as long as the music player +is in place and is receiving electrical power, and the choice of music +is controlled by interaction with the machine. The sound also appears +to emanate specifically from the music player: the ability to hear it +depends on the player's distance from the music player. However, the +game engine doesn't currently support any other positional cues for +sound, such as attenuation, panning, or HRTF. The impression of the +sound being located in the Minetest world is also compromised by the +subjective nature of track choice: the specific music that is played to +a player depends on what media the player has installed. + +### CNC machine ### + +The CNC machine is an LV powered machine that cuts building blocks into a +variety of sub-block shapes that are not covered by the crafting recipes +of the stairs mod and its variants. Most of the target shapes are not +rectilinear, involving diagonal or curved surfaces. + +Only certain kinds of building material can be processed in the CNC +machine. + +### tool workshop ### + +The tool workshop is an MV powered machine that repairs mechanically-worn +tools, such as pickaxes and the other ordinary digging tools. It has +a single slot for a tool to be repaired, and gradually repairs the +tool while it is powered. For any single tool, equal amounts of tool +wear, resulting from equal amounts of tool use, take equal amounts of +repair effort. Also, all repairable tools currently take equal effort +to repair equal percentages of wear. The amount of tool use enabled by +equal amounts of repair therefore depends on the tool type. + +The mechanical wear that the tool workshop repairs is always indicated in +inventory displays by a colored bar overlaid on the tool image. The bar +can be seen to fill and change color as the tool workshop operates, +eventually disappearing when the repair is complete. However, not every +item that shows such a wear bar is using it to show mechanical wear. +A wear bar can also be used to indicate charging of a power tool with +stored electrical energy, or filling of a container, or potentially for +all sorts of other uses. The tool workshop won't affect items that use +wear bars to indicate anything other than mechanical wear. + +The tool workshop has upgrade slots. Energy upgrades reduce its power +consumption. + +It can work with pneumatic tubes. Tools to be repaired are accepted +via tubes from any direction. With a tube upgrade, the tool workshop +will also eject fully-repaired tools via one side, the choice of side +depending on the machine's orientation, as for processing machines. It is +safe to put into the tool workshop a tool that is already fully repaired: +assuming the presence of a tube upgrade, the tool will be quickly ejected. +Furthermore, any item of unrepairable type will also be ejected as if +fully repaired. (Due to a historical limitation of the basic Minetest +game, it is impossible for the tool workshop to distinguish between a +fully-repaired tool and any item type that never displays a wear bar.) + +### quarry ### + +The quarry is an HV powered machine that automatically digs out a +large area. The region that it digs out is a cuboid with a square +horizontal cross section, located immediately behind the quarry machine. +The quarry's action is slow and energy-intensive, but requires little +player effort. + +The size of the quarry's horizontal cross section is configurable through +the machine's interaction form. A setting referred to as "radius" +is an integer number of meters which can vary from 2 to 8 inclusive. +The horizontal cross section is a square with side length of twice the +radius plus one meter, thus varying from 5 to 17 inclusive. Vertically, +the quarry always digs from 3 m above the machine to 100 m below it, +inclusive, a total vertical height of 104 m. + +Whatever the quarry digs up is ejected through the top of the machine, +as if from a pneumatic tube. Normally a tube should be placed there +to convey the material into a sorting system, processing machines, or +at least chests. A chest may be placed directly above the machine to +capture the output without sorting, but is liable to overflow. + +If the quarry encounters something that cannot be dug, such as a liquid, +a locked chest, or a protected area, it will skip past that and attempt +to continue digging. However, anything remaining in the quarry area +after the machine has attempted to dig there will prevent the machine +from digging anything directly below it, all the way to the bottom +of the quarry. An undiggable block therefore casts a shadow of undug +blocks below it. If liquid is encountered, it is quite likely to flow +across the entire cross section of the quarry, preventing all digging. +The depth at which the quarry is currently attempting to dig is reported +in its interaction form, and can be manually reset to the top of the +quarry, which is useful to do if an undiggable obstruction has been +manually removed. + +The quarry consumes 10 kEU per block dug, which is quite a lot of energy. +With most of what is dug being mere stone, it is usually not economically +favorable to power a quarry from anything other than solar power. +In particular, one cannot expect to power a quarry by burning the coal +that it digs up. + +Given sufficient power, the quarry digs at a rate of one block per second. +This is rather tedious to wait for. Unfortunately, leaving the quarry +unattended normally means that the Minetest server won't keep the machine +running: it needs a player nearby. This can be resolved by using a world +anchor. The digging is still quite slow, and independently of whether a +world anchor is used the digging can be speeded up by placing multiple +quarry machines with overlapping digging areas. Four can be placed to +dig identical areas, one on each side of the square cross section. + +### forcefield emitter ### + +The forcefield emitter is an HV powered machine that generates a +forcefield remeniscent of those seen in many science-fiction stories. + +The emitter can be configured to generate a forcefield of either +spherical or cubical shape, in either case centered on the emitter. +The size of the forcefield is configured using a radius parameter that +is an integer number of meters which can vary from 5 to 20 inclusive. +For a spherical forcefield this is simply the radius of the forcefield; +for a cubical forcefield it is the distance from the emitter to the +center of each square face. + +The power drawn by the emitter is proportional to the surface area of +the forcefield being generated. A spherical forcefield is therefore the +cheapest way to enclose a specified volume of space with a forcefield, +if the shape of the space doesn't matter. A cubical forcefield is less +efficient at enclosing volume, but is cheaper than the larger spherical +forcefield that would be required if it is necessary to enclose a +cubical space. + +The emitter is normally controlled merely through its interaction form, +which has an enable/disable toggle. However, it can also (via the form) +be placed in a mesecon-controlled mode. If mesecon control is enabled, +the emitter must be receiving a mesecon signal in addition to being +manually enabled, in order for it to generate the forcefield. + +The forcefield itself behaves largely as if solid, despite being +immaterial: it cannot be traversed, and prevents access to blocks behind +it. It is transparent, but not totally invisible. It cannot be dug. +Some effects can pass through it, however, such as the beam of a mining +laser, and explosions. In fact, explosions as currently implemented by +the tnt mod actually temporarily destroy the forcefield itself; the tnt +mod assumes too much about the regularity of node types. + +The forcefield occupies space that would otherwise have been air, but does +not replace or otherwise interfere with materials that are solid, liquid, +or otherwise not just air. If such an object blocking the forcefield is +removed, the forcefield will quickly extend into the now-available space, +but it does not do so instantly: there is a brief moment when the space +is air and can be traversed. + +It is possible to have a doorway in a forcefield, by placing in advance, +in space that the forcefield would otherwise occupy, some non-air blocks +that can be walked through. For example, a door suffices, and can be +opened and closed while the forcefield is in place. + +power generators +---------------- + +### fuel-fired generators ### + +The fiel-fired generators are electrical power generators that generate +power by the combustion of fuel. Versions of them are available for +all three voltages (LV, MV, and HV). These are all capable of burning +any type of combustible fuel, such as coal. They are relatively easy +to build, and so tend to be the first kind of generator used to power +electrical machines. In this role they form an intermediate step between +the directly fuel-fired machines and a more mature electrical network +powered by means other than fuel combustion. They are also, by virtue of +simplicity and controllability, a useful fallback or peak load generator +for electrical networks that normally use more sophisticated generators. + +The MV and HV fuel-fired generators can accept fuel via pneumatic tube, +from any direction. + +Keeping a fuel-fired generator fully fuelled is usually wasteful, because +it will burn fuel as long as it has any, even if there is no demand for +the electrical power that it generates. This is unlike the directly +fuel-fired machines, which only burn fuel when they have work to do. +To satisfy intermittent demand without waste, a fuel-fired generator must +only be given fuel when there is either demand for the energy or at least +sufficient battery capacity on the network to soak up the excess energy. + +The higher-tier fuel-fired generators get much more energy out of a +fuel item than the lower-tier ones. The difference is much more than +is needed to overcome the inefficiency of supply converters, so it is +worth operating fuel-fired generators at a higher tier than the machines +being powered. + +### solar generators ### + +The solar generators are electrical power generators that generate power +from sunlight. Versions of them are available for all three voltages +(LV, MV, and HV). There are four types in total, two LV and one each +of MV and HV, forming a sequence of four tiers. The higher-tier ones +are each built mainly from three solar generators of the next tier down, +and their outputs scale in rough accordance, tripling at each tier. + +To operate, an arrayed solar generator must be at elevation +1 or above +and have a transparent block (typically air) immediately above it. +It will generate power only when the block above is well lit during +daylight hours. It will generate more power at higher elevation, +reaching maximum output at elevation +36 or higher when sunlit. The small +solar generator has similar rules with slightly different thresholds. +These rules are an attempt to ensure that the generator will only operate +from sunlight, but it is actually possible to fool them to some extent +with light sources such as meselamps. + +### hydro generator ### + +The hydro generator is an LV power generator that generates a small amount +of power from the natural motion of water. To operate, the generator must +be horizontally adjacent to water. It doesn't matter whether the water +consists of source blocks or flowing blocks. Having water adjacent on +more than one side, up to the full four, increases the generator's output. +The water itself is unaffected by the generator. + +### geothermal generator ### + +The geothermal generator is an LV power generator that generates a small +amount of power from the temperature difference between lava and water. +To operate, the generator must be horizontally adjacent to both lava +and water. It doesn't matter whether the liquids consist of source +blocks or flowing blocks. + +Beware that if lava and water blocks are adjacent to each other then the +lava will be solidified into stone or obsidian. If the lava adjacent to +the generator is thus destroyed, the generator will stop producing power. +Currently, in the default Minetest game, lava is destroyed even if +it is only diagonally adjacent to water. Under these circumstances, +the only way to operate the geothermal generator is with it adjacent +to one lava block and one water block, which are on opposite sides of +the generator. If diagonal adjacency doesn't destroy lava, such as with +the gloopblocks mod, then it is possible to have more than one lava or +water block adjacent to the geothermal generator. This increases the +generator's output, with the maximum output achieved with two adjacent +blocks of each liquid. + +### wind generator ### + +The wind generator is an MV power generator that generates a moderate +amount of energy from wind. To operate, the generator must be placed +atop a column of at least 20 wind mill frame blocks, and must be at +an elevation of +30 or higher. It generates more at higher elevation, +reaching maximum output at elevation +50 or higher. Its surroundings +don't otherwise matter; it doesn't actually need to be in open air. + +### nuclear generator ### + +The nuclear generator (nuclear reactor) is an HV power generator that +generates a large amount of energy from the controlled fission of +uranium-235. It must be fuelled, with uranium fuel rods, but consumes +the fuel quite slowly in relation to the rate at which it is likely to +be mined. The operation of a nuclear reactor poses radiological hazards +to which some thought must be given. Economically, the use of nuclear +power requires a high capital investment, and a secure infrastructure, +but rewards the investment well. + +Nuclear fuel is made from uranium. Natural uranium doesn't have a +sufficiently high proportion of U-235, so it must first be enriched +via centrifuge. Producing one unit of 3.5%-fissile uranium requires +the input of five units of 0.7%-fissile (natural) uranium, and produces +four units of 0.0%-fissile (fully depleted) uranium as a byproduct. +It takes five ingots of 3.5%-fissile uranium to make each fuel rod, and +six rods to fuel a reactor. It thus takes the input of the equivalent +of 150 ingots of natural uranium, which can be obtained from the mining +of 75 blocks of uranium ore, to make a full set of reactor fuel. + +The nuclear reactor is a large multi-block structure. Only one block in +the structure, the reactor core, is of a type that is truly specific to +the reactor; the rest of the structure consists of blocks that have mainly +non-nuclear uses. The reactor core is where all the generator-specific +action happens: it is where the fuel rods are inserted, and where the +power cable must connect to draw off the generated power. + +The reactor structure consists of concentric layers, each a cubical +shell, around the core. Immediately around the core is a layer of water, +representing the reactor coolant; water blocks may be either source blocks +or flowing blocks. Around that is a layer of stainless steel blocks, +representing the reactor pressure vessel, and around that a layer of +blast-resistant concrete blocks, representing a containment structure. +It is customary, though no longer mandatory, to surround this with a +layer of ordinary concrete blocks. The mandatory reactor structure +makes a 7×7×7 cube, and the full customary structure a +9×9×9 cube. + +The layers surrounding the core don't have to be absolutely complete. +Indeed, if they were complete, it would be impossible to cable the core to +a power network. The cable makes it necessary to have at least one block +missing from each surrounding layer. The water layer is only permitted +to have one water block missing of the 26 possible. The steel layer may +have up to two blocks missing of the 98 possible, and the blast-resistant +concrete layer may have up to two blocks missing of the 218 possible. +Thus it is possible to have not only a cable duct, but also a separate +inspection hole through the solid layers. The separate inspection hole +is of limited use: the cable duct can serve double duty. + +Once running, the reactor core is significantly radioactive. The layers +of reactor structure provide quite a lot of shielding, but not enough +to make the reactor safe to be around, in two respects. Firstly, the +shortest possible path from the core to a player outside the reactor +is sufficiently short, and has sufficiently little shielding material, +that it will damage the player. This only affects a player who is +extremely close to the reactor, and close to a face rather than a vertex. +The customary additional layer of ordinary concrete around the reactor +adds sufficient distance and shielding to negate this risk, but it can +also be addressed by just keeping extra distance (a little over two +meters of air). + +The second radiological hazard of a running reactor arises from shine +paths; that is, specific paths from the core that lack sufficient +shielding. The necessary cable duct, if straight, forms a perfect +shine path, because the cable itself has no radiation shielding effect. +Any secondary inspection hole also makes a shine path, along which the +only shielding material is the water of the reactor coolant. The shine +path aspect of the cable duct can be ameliorated by adding a kink in the +cable, but this still yields paths with reduced shielding. Ultimately, +shine paths must be managed either with specific shielding outside the +mandatory structure, or with additional no-go areas. + +The radioactivity of an operating reactor core makes starting up a reactor +hazardous, and can come as a surprise because the non-operating core +isn't radioactive at all. The radioactive damage is survivable, but it is +normally preferable to avoid it by some care around the startup sequence. +To start up, the reactor must have a full set of fuel inserted, have all +the mandatory structure around it, and be cabled to a switching station. +Only the fuel insertion requires direct access to the core, so irradiation +of the player can be avoided by making one of the other two criteria be +the last one satisfied. Completing the cabling to a switching station +is the easiest to do from a safe distance. + +Once running, the reactor will generate 100 kEU/s for a week (168 hours, +604800 seconds), a total of 6.048 GEU from one set of fuel. After the +week is up, it will stop generating and no longer be radioactive. It can +then be refuelled to run for another week. It is not really intended +to be possible to pause a running reactor, but actually disconnecting +it from a switching station will have the effect of pausing the week. +This will probably change in the future. A paused reactor is still +radioactive, just not generating electrical power. + +A running reactor can't be safely dismantled, and not only because +dismantling the reactor implies removing the shielding that makes +it safe to be close to the core. The mandatory parts of the reactor +structure are not just mandatory in order to start the reactor; they're +mandatory in order to keep it intact. If the structure around the core +gets damaged, and remains damaged, the core will eventually melt down. +How long there is before meltdown depends on the extent of the damage; +if only one mandatory block is missing, meltdown will follow in 100 +seconds. While the structure of a running reactor is in a damaged state, +heading towards meltdown, a siren built into the reactor core will sound. +If the structure is rectified, the siren will signal all-clear. If the +siren stops sounding without signalling all-clear, then it was stopped +by meltdown. + +If meltdown is imminent because of damaged reactor structure, digging the +reactor core is not a way to avert it. Digging the core of a running +reactor causes instant meltdown. The only way to dismantle a reactor +without causing meltdown is to start by waiting for it to finish the +week-long burning of its current set of fuel. Once a reactor is no longer +operating, it can be dismantled by ordinary means, with no special risks. + +Meltdown, if it occurs, destroys the reactor and poses a major +environmental hazard. The reactor core melts, becoming a hot, highly +radioactive liquid known as "corium". A single meltdown yields a single +corium source block, where the core used to be. Corium flows, and the +flowing corium is very destructive to whatever it comes into contact with. +Flowing corium also randomly solidifies into a radioactive solid called +"Chernobylite". The random solidification and random destruction of +solid blocks means that the flow of corium is constantly changing. +This combined with the severe radioactivity makes corium much more +challenging to deal with than lava. If a meltdown is left to its own +devices, it gets worse over time, as the corium works its way through +the reactor structure and starts to flow over a variety of paths. +It is best to tackle a meltdown quickly; the priority is to extinguish +the corium source block, normally by dropping gravel into it. Only the +most motivated should attempt to pick up the corium in a bucket. + +administrative world anchor +--------------------------- + +A world anchor is an object in the Minetest world that causes the server +to keep surrounding parts of the world running even when no players +are nearby. It is mainly used to allow machines to run unattended: +normally machines are suspended when not near a player. The technic +mod supplies a form of world anchor, as a placable block, but it is not +straightforwardly available to players. There is no recipe for it, so it +is only available if explicitly spawned into existence by someone with +administrative privileges. In a single-player world, the single player +normally has administrative privileges, and can obtain a world anchor +by entering the chat command "/give singleplayer technic:admin\_anchor". + +The world anchor tries to force a cubical area, centered upon the anchor, +to stay loaded. The distance from the anchor to the most distant map +nodes that it will keep loaded is referred to as the "radius", and can be +set in the world anchor's interaction form. The radius can be set as low +as 0, meaning that the anchor only tries to keep itself loaded, or as high +as 255, meaning that it will operate on a 511×511×511 cube. +Larger radii are forbidden, to avoid typos causing the server excessive +work; to keep a larger area loaded, use multiple anchors. Also use +multiple anchors if the area to be kept loaded is not well approximated +by a cube. + +The world is always kept loaded in units of 16×16×16 cubes, +confusingly known as "map blocks". The anchor's configured radius takes +no account of map block boundaries, but the anchor's effect is actually to +keep loaded each map block that contains any part of the configured cube. +The anchor's interaction form includes a status note showing how many map +blocks this is, and how many of those it is successfully keeping loaded. +When the anchor is disabled, as it is upon placement, it will always +show that it is keeping no map blocks loaded; this does not indicate +any kind of failure. + +The world anchor can optionally be locked. When it is locked, only +the anchor's owner, the player who placed it, can reconfigure it or +remove it. Only the owner can lock it. Locking an anchor is useful +if the use of anchors is being tightly controlled by administrators: +an administrator can set up a locked anchor and be sure that it will +not be set by ordinary players to an unapproved configuration. + +The server limits the ability of world anchors to keep parts of the world +loaded, to avoid overloading the server. The total number of map blocks +that can be kept loaded in this way is set by the server configuration +item "max\_forceloaded\_blocks" (in minetest.conf), which defaults to +only 16. For comparison, each player normally keeps 125 map blocks loaded +(a radius of 32). If an enabled world anchor shows that it is failing to +keep all the map blocks loaded that it would like to, this can be fixed +by increasing max\_forceloaded\_blocks by the amount of the shortfall. + +The tight limit on force-loading is the reason why the world anchor is +not directly available to players. With the limit so low both by default +and in common practice, the only feasible way to determine where world +anchors should be used is for administrators to decide it directly. + +subjects missing from this manual +--------------------------------- + +This manual needs to be extended with sections on: + +* powered tools + * tool charging + * battery and energy crystals + * chainsaw + * flashlight + * mining lasers + * mining drills + * prospector + * sonic screwdriver +* liquid cans +* wrench +* frames +* templates diff --git a/mods/technic/modpack.txt b/mods/technic/modpack.txt new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/mods/technic/modpack.txt @@ -0,0 +1 @@ + diff --git a/mods/technic/technic/README.md b/mods/technic/technic/README.md new file mode 100644 index 0000000..89e838b --- /dev/null +++ b/mods/technic/technic/README.md @@ -0,0 +1,24 @@ +Technic +======= + +License +------- + +Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) + +Technic chests code is licensed under the GNU LGPLv2+. + +Texture licenses: + +BlockMen modified by Zefram (CC BY-SA 3.0): + * technic_chernobylite_block.png + * technic_corium_flowing_animated.png + * technic_corium_source_animated.png + +celeron55 (Perttu Ahola) modified by Zefram (CC BY-SA 3.0): + * technic_bucket_corium.png + +RealBadAngel: (WTFPL) + * Everything else. + +CC BY-SA 3.0: diff --git a/mods/technic/technic/config.lua b/mods/technic/technic/config.lua new file mode 100644 index 0000000..e512bee --- /dev/null +++ b/mods/technic/technic/config.lua @@ -0,0 +1,17 @@ +technic.config = technic.config or Settings(minetest.get_worldpath().."/technic.conf") + +local conf_table = technic.config:to_table() + +local defaults = { + enable_mining_drill = "true", + enable_mining_laser = "true", + enable_flashlight = "false", + enable_wind_mill = "false", + enable_corium_griefing = "true", +} + +for k, v in pairs(defaults) do + if conf_table[k] == nil then + technic.config:set(k, v) + end +end diff --git a/mods/technic/technic/crafts.lua b/mods/technic/technic/crafts.lua new file mode 100644 index 0000000..f87e735 --- /dev/null +++ b/mods/technic/technic/crafts.lua @@ -0,0 +1,45 @@ +-- tubes crafting recipes + +minetest.register_craft({ + output = 'pipeworks:accelerator_tube_1', + recipe = { + {'technic:copper_coil', 'pipeworks:tube_1', 'technic:copper_coil'}, + } +}) + +minetest.register_craft({ + output = 'pipeworks:teleport_tube_1', + recipe = { + {'default:mese_crystal', 'technic:copper_coil', 'default:mese_crystal'}, + {'pipeworks:tube_1', 'technic:control_logic_unit', 'pipeworks:tube_1'}, + {'default:mese_crystal', 'technic:copper_coil', 'default:mese_crystal'}, + } +}) +-- Remove some recipes +-- Bronze +minetest.register_craft({ + type = "shapeless", + output = "default:bronze_ingot 0", + recipe = {"default:copper_ingot", "default:steel_ingot"} +}) + +-- Accelerator tube +minetest.register_craft({ + output = "pipeworks:accelerator_tube_1 0", + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + { "default:mese_crystal_fragment", "default:steel_ingot", "default:mese_crystal_fragment" }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" } + }, +}) + +-- Teleport tube +minetest.register_craft({ + output = "pipeworks:teleport_tube_1 0", + recipe = { + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" }, + { "default:desert_stone", "default:mese_block", "default:desert_stone" }, + { "homedecor:plastic_sheeting", "homedecor:plastic_sheeting", "homedecor:plastic_sheeting" } + }, +}) + diff --git a/mods/technic/technic/depends.txt b/mods/technic/technic/depends.txt new file mode 100644 index 0000000..746fe34 --- /dev/null +++ b/mods/technic/technic/depends.txt @@ -0,0 +1,8 @@ +default +pipeworks +technic_worldgen +bucket? +mesecons_mvps? +intllib? +unified_inventory? +vector_extras? diff --git a/mods/technic/technic/helpers.lua b/mods/technic/technic/helpers.lua new file mode 100644 index 0000000..d4306cf --- /dev/null +++ b/mods/technic/technic/helpers.lua @@ -0,0 +1,46 @@ +-- Only changes name, keeps other params +function technic.swap_node(pos, name) + local node = minetest.get_node(pos) + if node.name ~= name then + node.name = name + minetest.swap_node(pos, node) + end + return node.name +end + +-- Fully charge RE chargeable item. +-- Must be defined early to reference in item definitions. +function technic.refill_RE_charge(stack) + local max_charge = technic.power_tools[stack:get_name()] + if not max_charge then return stack end + technic.set_RE_wear(stack, max_charge, max_charge) + local meta = minetest.deserialize(stack:get_metadata()) or {} + meta.charge = max_charge + stack:set_metadata(minetest.serialize(meta)) + return stack +end + +local function resolve_name(function_name) + local a = _G + for key in string.gmatch(function_name, "([^%.]+)(%.?)") do + if a[key] then + a = a[key] + else + return nil + end + end + return a +end + +function technic.function_exists(function_name) + return type(resolve_name(function_name)) == 'function' +end + +-- if the node is loaded, returns it. If it isn't loaded, load it and return nil. +function technic.get_or_load_node(pos) + local node_or_nil = minetest.get_node_or_nil(pos) + if node_or_nil then return node_or_nil end + local vm = VoxelManip() + local MinEdge, MaxEdge = vm:read_from_map(pos, pos) + return nil +end diff --git a/mods/technic/technic/init.lua b/mods/technic/technic/init.lua new file mode 100644 index 0000000..1d70353 --- /dev/null +++ b/mods/technic/technic/init.lua @@ -0,0 +1,53 @@ +-- Minetest 0.4.7 mod: technic +-- namespace: technic +-- (c) 2012-2013 by RealBadAngel + +technic = technic or {} + +technic.tube_inject_item = pipeworks.tube_inject_item or function (pos, start_pos, velocity, item) + local tubed = pipeworks.tube_item(vector.new(pos), item) + tubed:get_luaentity().start_pos = vector.new(start_pos) + tubed:setvelocity(velocity) + tubed:setacceleration(vector.new(0, 0, 0)) +end + +local load_start = os.clock() +local modpath = minetest.get_modpath("technic") +technic.modpath = modpath +local intllib = nil +-- Boilerplate to support intllib +if intllib then + technic.getter = intllib.Getter() +else + technic.getter = function(s) return s end +end +local S = technic.getter + +-- Read configuration file +dofile(modpath.."/config.lua") + +-- Helper functions +dofile(modpath.."/helpers.lua") + +-- Items +dofile(modpath.."/items.lua") + +-- Craft recipes for items +dofile(modpath.."/crafts.lua") + +-- Register functions +dofile(modpath.."/register.lua") + +-- Machines +dofile(modpath.."/machines/init.lua") + +-- Tools +dofile(modpath.."/tools/init.lua") + +-- Aliases for legacy node/item names +dofile(modpath.."/legacy.lua") + +if minetest.setting_getbool("log_mods") then + print(S("[Technic] Loaded in %f seconds"):format(os.clock() - load_start)) +end + diff --git a/mods/technic/technic/items.lua b/mods/technic/technic/items.lua new file mode 100644 index 0000000..b0bd45c --- /dev/null +++ b/mods/technic/technic/items.lua @@ -0,0 +1,156 @@ + +local S = technic.getter + +minetest.register_craftitem("technic:silicon_wafer", { + description = S("Silicon Wafer"), + inventory_image = "technic_silicon_wafer.png", +}) + +minetest.register_craftitem( "technic:doped_silicon_wafer", { + description = S("Doped Silicon Wafer"), + inventory_image = "technic_doped_silicon_wafer.png", +}) + +minetest.register_craftitem("technic:uranium_fuel", { + description = S("Uranium Fuel"), + inventory_image = "technic_uranium_fuel.png", +}) + +minetest.register_craftitem( "technic:diamond_drill_head", { + description = S("Diamond Drill Head"), + inventory_image = "technic_diamond_drill_head.png", +}) + +minetest.register_tool("technic:blue_energy_crystal", { + description = S("Blue Energy Crystal"), + inventory_image = minetest.inventorycube( + "technic_diamond_block_blue.png", + "technic_diamond_block_blue.png", + "technic_diamond_block_blue.png"), + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + tool_capabilities = { + max_drop_level = 0, + groupcaps = { + fleshy = {times={}, uses=10000, maxlevel=0} + } + } +}) + +minetest.register_tool("technic:green_energy_crystal", { + description = S("Green Energy Crystal"), + inventory_image = minetest.inventorycube( + "technic_diamond_block_green.png", + "technic_diamond_block_green.png", + "technic_diamond_block_green.png"), + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + tool_capabilities = { + max_drop_level = 0, + groupcaps = { + fleshy = {times={}, uses=10000, maxlevel=0} + } + } +}) + +minetest.register_tool("technic:red_energy_crystal", { + description = S("Red Energy Crystal"), + inventory_image = minetest.inventorycube( + "technic_diamond_block_red.png", + "technic_diamond_block_red.png", + "technic_diamond_block_red.png"), + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + tool_capabilities = { + max_drop_level = 0, + groupcaps = { + fleshy = {times={}, uses=10000, maxlevel=0} + } + } +}) + + +minetest.register_craftitem("technic:fine_copper_wire", { + description = S("Fine Copper Wire"), + inventory_image = "technic_fine_copper_wire.png", +}) + +minetest.register_craftitem("technic:fine_gold_wire", { + description = S("Fine Gold Wire"), + inventory_image = "technic_fine_gold_wire.png", +}) + +minetest.register_craftitem("technic:fine_silver_wire", { + description = S("Fine Silver Wire"), + inventory_image = "technic_fine_silver_wire.png", +}) + +minetest.register_craftitem("technic:copper_coil", { + description = S("Copper Coil"), + inventory_image = "technic_copper_coil.png", +}) + +minetest.register_craftitem("technic:motor", { + description = S("Electric Motor"), + inventory_image = "technic_motor.png", +}) + +minetest.register_craftitem("technic:lv_transformer", { + description = S("Low Voltage Transformer"), + inventory_image = "technic_lv_transformer.png", +}) + +minetest.register_craftitem("technic:mv_transformer", { + description = S("Medium Voltage Transformer"), + inventory_image = "technic_mv_transformer.png", +}) + +minetest.register_craftitem( "technic:hv_transformer", { + description = S("High Voltage Transformer"), + inventory_image = "technic_hv_transformer.png", +}) + +minetest.register_craftitem( "technic:control_logic_unit", { + description = S("Control Logic Unit"), + inventory_image = "technic_control_logic_unit.png", +}) + +minetest.register_craftitem("technic:mixed_metal_ingot", { + description = S("Mixed Metal Ingot"), + inventory_image = "technic_mixed_metal_ingot.png", +}) + +minetest.register_craftitem("technic:composite_plate", { + description = S("Composite Plate"), + inventory_image = "technic_composite_plate.png", +}) + +minetest.register_craftitem("technic:copper_plate", { + description = S("Copper Plate"), + inventory_image = "technic_copper_plate.png", +}) + +minetest.register_craftitem("technic:carbon_plate", { + description = S("Carbon Plate"), + inventory_image = "technic_carbon_plate.png", +}) + +minetest.register_craftitem("technic:graphite", { + description = S("Graphite"), + inventory_image = "technic_graphite.png", +}) + +minetest.register_craftitem("technic:carbon_cloth", { + description = S("Carbon Cloth"), + inventory_image = "technic_carbon_cloth.png", +}) + +minetest.register_node("technic:machine_casing", { + description = S("Machine Casing"), + groups = {cracky=2}, + sunlight_propagates = true, + paramtype = "light", + drawtype = "allfaces", + tiles = {"technic_machine_casing.png"}, + sounds = default.node_sound_stone_defaults(), +}) \ No newline at end of file diff --git a/mods/technic/technic/legacy.lua b/mods/technic/technic/legacy.lua new file mode 100644 index 0000000..8360a71 --- /dev/null +++ b/mods/technic/technic/legacy.lua @@ -0,0 +1,38 @@ + +-- Aliases to convert from legacy node/item names + +technic.legacy_nodenames = { + ["technic:alloy_furnace"] = "technic:lv_alloy_furnace", + ["technic:alloy_furnace_active"] = "technic:lv_alloy_furnace_active", + ["technic:battery_box"] = "technic:lv_battery_box0", + ["technic:battery_box1"] = "technic:lv_battery_box1", + ["technic:battery_box2"] = "technic:lv_battery_box2", + ["technic:battery_box3"] = "technic:lv_battery_box3", + ["technic:battery_box4"] = "technic:lv_battery_box4", + ["technic:battery_box5"] = "technic:lv_battery_box5", + ["technic:battery_box6"] = "technic:lv_battery_box6", + ["technic:battery_box7"] = "technic:lv_battery_box7", + ["technic:battery_box8"] = "technic:lv_battery_box8", + ["technic:electric_furnace"] = "technic:lv_electric_furnace", + ["technic:electric_furnace_active"] = "technic:lv_electric_furnace_active", + ["technic:grinder"] = "technic:lv_grinder", + ["technic:grinder_active"] = "technic:lv_grinder_active", + ["technic:extractor"] = "technic:lv_extractor", + ["technic:extractor_active"] = "technic:lv_extractor_active", + ["technic:compressor"] = "technic:lv_compressor", + ["technic:compressor_active"] = "technic:lv_compressor_active", + ["technic:hv_battery_box"] = "technic:hv_battery_box0", + ["technic:hv_cable"] = "technic:hv_cable0", + ["technic:lv_cable"] = "technic:lv_cable0", + ["technic:mv_cable"] = "technic:mv_cable0", + ["technic:mv_battery_box"] = "technic:mv_battery_box0", + ["technic:generator"] = "technic:lv_generator", + ["technic:generator_active"] = "technic:lv_generator_active", + ["technic:iron_dust"] = "technic:wrought_iron_dust", + ["technic:enriched_uranium"] = "technic:uranium35_ingot", +} + +for old, new in pairs(technic.legacy_nodenames) do + minetest.register_alias(old, new) +end + diff --git a/mods/technic/technic/locale/de.txt b/mods/technic/technic/locale/de.txt new file mode 100644 index 0000000..654f46b --- /dev/null +++ b/mods/technic/technic/locale/de.txt @@ -0,0 +1,203 @@ +# German Translation for Technic Mod +# Deutsche Uebersetzung des Technic Mods +# by Xanthin + +## Misc +[Technic] Loaded in %f seconds = [Technic] ist in %f Sekunden geladen + +## Items +Silicon Wafer = Siliziumscheibe +Doped Silicon Wafer = Dotierte Siliziumscheibe +Enriched Uranium = Angereichertes Uran +Uranium Fuel = Uranbrennstoff +Diamond Drill Head = Diamantbohrkopf +Blue Energy Crystal = Blauer Energiekristall +Green Energy Crystal = Gruener Energiekristall +Red Energy Crystal = Roter Energiekristall +Fine Copper Wire = Feinkupferdraht +Copper Coil = Kupferspule +Electric Motor = Elektromotor +Low Voltage Transformer = Niederspannungstransformator +Medium Voltage Transformer = Mittelspannungstransformator +High Voltage Transformer = Hochspannungstransformator +Control Logic Unit = Steuer- und Regelungseinheit +Mixed Metal Ingot = Mischmetallbarren +Composite Plate = Verbundplatte +Copper Plate = Kupferplatte +Carbon Plate = Kohlefaserplatte +Graphite = Graphit +Carbon Cloth = Kohlefasergewebe +Raw Latex = Rohlatex +Rubber Fiber = Gummifaser +%.1f%%-Fissile Uranium Ingot = +%.1f%%-Fissile Uranium Block = + +## Machine misc +Machine cannot be removed because it is not empty = Die Maschine kann nicht entfernt werden, weil sie noch nicht leer ist. +Inventory move disallowed due to protection = Das Inventar ist geschuetzt, Zugriff verweigert. +# $1: Machine name (Includes tier) +%s Active = %s ist eingeschaltet +%s Disabled = %s ist ausgeschaltet +%s Enabled = +%s Idle = %s ist bereit +%s Improperly Placed = %s ist falsch plaziert +%s Unpowered = %s hat keine Stromversorgung +%s Out Of Fuel = %s hat keinen Brennstoff +%s Has Bad Cabling = %s ist falsch verkabelt +%s Has No Network = %s hat kein Netzwerk +%s Finished = %s ist fertig +Enable/Disable = Einschalten/Ausschalten +Range = Reichweite +Upgrade Slots = Verbesserungsfaecher +In: = Rein: +Out: = Raus: +Slot %d = Fach %d +Itemwise = Einzelstuecke +Stackwise = Ganzer Stapel +Owner: = +Unlocked = +Locked = +Radius: = +Enabled = +Disabled = + +## Machine names +# $1: Tier +%s Alloy Furnace = %s Legierungsofen +%s Battery Box = %s Batteriebox +%s Cable = %s Kabel +%s CNC Machine = %s CNC-Maschine +%s Compressor = %s Kompressor +%s Extractor = %s Extraktor +%s Forcefield Emitter = %s Kraftfeld-Emitter +%s Furnace = %s Ofen +%s Grinder = %s Schleifmaschine +%s Music Player = %s Musikspieler +%s Quarry = %s Steinbruch +%s Tool Workshop = %s Werkzeugwerkstatt +Arrayed Solar %s Generator = %s Solaranlage +Fuel-Fired %s Generator = %s Kohle-Generator +Geothermal %s Generator = %s Geothermie-Generator +Hydro %s Generator = %s Wassermuehle +Nuclear %s Generator Core = %s Reaktorkern +Small Solar %s Generator = %s Solarmodul +Wind %s Generator = %s Windmuehle +Self-Contained Injector = Selbstversorger-Injektor +Constructor Mk%d = Konstruktor Modell %d +Frame = Rahmen +Frame Motor = Rahmenmotor +Template = Schablone +Template (replacing) = Schablone (ersetzend) +Template motor = Schablonenmotor +Template tool = Schablonenwerkzeug +Battery Box = Batteriebox +Supply Converter = Stromumwandler +Switching Station = Schaltanlage +Fuel-Fired Alloy Furnace = Kohle-Legierungsofen +Fuel-Fired Furnace = Kohle-Ofen +Wind Mill Frame = Windmuehlengeruest +Forcefield = Kraftfeld +Nuclear Reactor Rod Compartment = Brennstabfaecher +Administrative World Anchor = + +## Machine-specific +# $1: Pruduced EU +Charge = Aufladen +Discharge = Entladen +Power level = Energiestufe +# $1: Tier $2: current_charge $3: max_charge +%s Battery Box: %d/%d = %s Batteriebox: %d/%d +# $1: Machine name $2: Supply $3: Demand +%s. Supply: %d Demand: %d = %s. Versorgung: %d Bedarf: %d +Production at %d%% = Produktion bei %d%% +Choose Milling Program: = Waehle ein Fraesprogramm: +Slim Elements half / normal height: = Schmale Elemente von halber / normaler Hoehe: +Current track %s = Aktueller Titel %s +Stopped = +Keeping %d/%d map blocks loaded = +Digging not started = +Digging finished = +Digging %d m above machine = +Digging %d m below machine = + +## CNC +Cylinder = Zylinder +Element Cross = Halbes Kreuzelement +Element Cross Double = Kreuzelement +Element Edge = Halbes Eckelement +Element Edge Double = Eckelement +Element End = Halbes Endelement +Element End Double = Endelement +Element Straight = Halbes aufrechtes Element +Element Straight Double = Aufrechtes Element +Element T = Halbes T-Element +Element T Double = T-Element +Horizontal Cylinder = Liegender Zylinder +One Curved Edge Block = Block mit einer abgerundeten Kante +Pyramid = Pyramide +Slope = Schraege +Slope Edge = Schraege mit Ecke +Slope Inner Edge = Schraege mit Innenecke +Slope Lying = Liegende Schraege +Slope Upside Down = Umgedrehte Schraege +Slope Upside Down Edge = Umgedrehte Schraege mit Ecke +Slope Upside Down Inner Edge = Umgedrehte Schraege mit Innenecke +Sphere = Kugel +Spike = Spitze +Stick = Stange +Two Curved Edge Block = Block mit zwei abgerundeten Kanten +Brick = Ziegel: +Cobble = Pflasterstein: +Dirt = Erde: +Leaves = Laub: +Sandstone = Sandstein: +Stone = Stein: +Tree = Baumstamm: +Wooden = Holz: + +## Grinder Recipes +# $1: Name +%s Dust = %sstaub +Akalin = Akalin +Alatro = Alatro +Arol = Arol +Brass = Messing +Bronze = Bronze +Carbon Steel = Kohlenstoffstahl +Cast Iron = Gusseisen +Chromium = Chrom +Coal = Kohle +Copper = Kupfer +Gold = Gold +Mithril = Mithril +Silver = Silber +Stainless Steel = Edelstahl +Talinite = Talinite +Tin = Zinn +Wrought Iron = Schmiedeeisen +Zinc = Zink +%.1f%%-Fissile Uranium = + +## Tools +RE Battery = Akkubatterie +Water Can = Wasserkanister +Lava Can = Lavakanister +Chainsaw = Kettensaege +Flashlight = Taschenlampe +3 nodes deep. = 3 Bloecke tief. +3 nodes tall. = 3 Bloecke hoch. +3 nodes wide. = 3 Bloecke breit. +3x3 nodes. = 3x3 Bloecke. +Use while sneaking to change Mining Drill Mk%d modes. = Halte die Shift-Taste beim Benutzen gedrueckt, um die Funktion des Bergbaubohrers Modell %d zu aendern. +Mining Drill Mk%d Mode %d = Bergbaubohrer Modell %d Funktion %d +Mining Drill Mk%d = Bergbaubohrer Modell %d +Mining Laser Mk%d = Bergbaulaser Modell %d +Single node. = Einzelblock +Sonic Screwdriver = Schallschraubendreher +Tree Tap = Baumzapfhahn + +## Craft descriptions +Alloy cooking = +Grinding = +Compressing = +Extracting = diff --git a/mods/technic/technic/locale/es.txt b/mods/technic/technic/locale/es.txt new file mode 100644 index 0000000..b122a8a --- /dev/null +++ b/mods/technic/technic/locale/es.txt @@ -0,0 +1,196 @@ +# Spanish Translation for Technic Mod +# Traduccion al EspaΓ±ol del Mod Technic +# Autor: Diego MartΓ­nez + +## Misc +[Technic] Loaded in %f seconds = [Technic] Cargado en %f segundos + +## Items +Silicon Wafer = Oblea de Silicio +Doped Silicon Wafer = Oblea de Silicio Dopada +Enriched Uranium = Uranio Enriquecido +Uranium Fuel = Combustible de Uranio +Diamond Drill Head = Mecha de Taladro de Diamante +Blue Energy Crystal = Cristal de Energia Azul +Green Energy Crystal = Cristal de Energia Verde +Red Energy Crystal = Cristal de Energia Rojo +Fine Copper Wire = Cable Fino de Cobre +Copper Coil = Resorte de Cobre +Electric Motor = Motor Electrico +Low Voltage Transformer = Transformador de Bajo Voltaje +Medium Voltage Transformer = Transformador de Voltaje Medio +High Voltage Transformer = Transformador de Alto Voltaje +Control Logic Unit = Unidad Logica de Control +Mixed Metal Ingot = Lingote de Metal Mezclado +Composite Plate = Placa de Compuestos +Copper Plate = Placa de Cobre +Carbon Plate = Placa de Carbon +Graphite = Grafito +Carbon Cloth = Tela de Carbon +Raw Latex = Latex Crudo +Rubber Fiber = Fibra de Hule +%.1f%%-Fissile Uranium Ingot = +%.1f%%-Fissile Uranium Block = + +## Machine misc +Machine cannot be removed because it is not empty = La maquina no puede removerse porque no esta vacia +Inventory move disallowed due to protection = +# $1: Machine name (Includes tier) +%s Active = %s Activo +%s Enabled = +%s Idle = %s Quieto +%s Unpowered = %s Sin Energia +%s Out Of Fuel = %s Sin Combustible +%s Has Bad Cabling = %s Tiene Mal Cableado +%s Has No Network = %s No Tiene Una Red +%s Finished = %s Terminado +%s Disabled = %s Deshabilitado +%s Improperly Placed = %s No Colocado Apropiadamente +Range = Alcance +Enable/Disable = Habilitar/Deshabilitar +Itemwise = +Stackwise = +Owner: = +Unlocked = +Locked = +Radius: = +Enabled = +Disabled = + +## Machine names +# $1: Tier +%s Alloy Furnace = Horno de Aleacion %s +%s Battery Box = Caja de Bateria %s +%s Cable = Cable %s +%s CNC Machine = Maquina CNC %s +%s Compressor = Compresor %s +%s Extractor = Extractor %s +%s Forcefield Emitter = Emisor de Campo de Fuerza %s +%s Furnace = Horno %s +%s Grinder = Amoladora %s +%s Music Player = Reproductor de Musica %s +%s Quarry = Cantera %s +%s Tool Workshop = Taller de Herramientas %s +Arrayed Solar %s Generator = Panel Solar %s +Fuel-Fired %s Generator = Generador a Carbon %s +Geothermal %s Generator = Generador Geotermico %s +Hydro %s Generator = Molino de Agua %s +Nuclear %s Generator Core = Nucleo de Reactor Nuclear %s +Small Solar %s Generator = Panel Solar %s +Wind %s Generator = Molino de Viento %s +Self-Contained Injector = +Constructor Mk%d = +Frame = +Frame Motor = +Template = +Template (replacing) = +Template Motor = +Template Tool = +Supply Converter = Convertidor de Alimentacion +Switching Station = Estacion de Conmutacion +Battery Box = Caja de Baterias +Fuel-Fired Alloy Furnace = Horno de Aleacion a Carbon +Fuel-Fired Furnace = Horno a Carbon +Forcefield = Campo de Fuerza +Nuclear Reactor Rod Compartment = Compartimiento para Vara de Reactor Nuclear +Wind Mill Frame = Armazon de Molino de Viento +Administrative World Anchor = + +## Machine-specific +# $1: Pruduced EU +Charge = Cargar +Discharge = Descargar +Power level = Nivel de Poder +# $1: Tier $2: current_charge $3: max_charge +%s Battery Box: %d/%d = Caja de Bateria %s: %d/%d +# $1: Machine name $2: Supply $3: Demand +%s. Supply: %d Demand: %d = %s. Alimentacion: %d Demanda: %d +# $1: Production percent +Production at %d%% = Produccion en %d%% +Stopped = +Keeping %d/%d map blocks loaded = +Digging not started = +Digging finished = +Digging %d m above machine = +Digging %d m below machine = + +## CNC Machine +Element Edge = Elemento Borde +Tree = Arbol +Element Cross Double = Elemento Cruz Doble +Spike = Pica +Element Edge Double = Elemento Borde Doble +Two Curved Edge Block = Dos Bloques de Borde Curvados +Pyramid = Piramide +Slope Upside Down Inner Edge = Borde Interno de Rampa Al Reves +Slope Upside Down Edge = Borde de Rampa Al Reves +Element Straight Double = Elemento Doble Recto +Sphere = Esfera +Element End Double = Doble Fin de Elemento +Element Straight = Recta de Elemento +Horizontal Cylinder = Cilindro Horizontal +Slope Inner Edge = Borde Interno de Rampa +One Curved Edge Block = Un Bloque de Borde Curvado +Element Cross = Cruce de Elementos +Stick = Varita +Element End = Fin de Elemento +Slope Lying = Rampa en Reposo +Slope Upside Down = Rampa Al Reves +Slope Edge = Borde de Rampa +Slope = Rampa +Element T = Elemento T +Cylinder = Cilindro +Cobble = Adoquines +Stone = Piedra +Brick = Ladrillo +Dirt = Tierra +Sandstone = Arenisca +Wooden = Madera +Leaves = Hojas + +## Grinder Recipes +# $1: Name +%s Dust = Polvo de %s +Akalin = Akalina +Alatro = Alatro +Arol = Arol +Brass = Laton +Bronze = Bronce +Carbon Steel = Acero al Carbono +Cast Iron = Hierro Fundido +Chromium = Cromo +Coal = Carbon +Copper = Cobre +Gold = Oro +Mithril = Mitrilo +Silver = Plata +Stainless Steel = Acero Inoxidable +Talinite = Talinita +Tin = Estanio +Wrought Iron = Hierro Forjado +Zinc = Zinc +%.1f%%-Fissile Uranium = + +## Tools +RE Battery = +Water Can = Bidon de Agua +Lava Can = Bidon de Lava +Chainsaw = Motosierra +Flashlight = Linterna +3 nodes deep. = 3 nodos de profundo. +3 nodes tall. = 3 nodos de alto. +3 nodes wide. = 3 nodos de ancho. +3x3 nodes. = 3x3 nodos. +Use while sneaking to change Mining Drill Mk%d modes. = Manten pulsado Mayus y Usar para cambiar el modo del Taladro de Mineria Mk%d. +Mining Drill Mk%d Mode %d = Taladro de Mineria Mk%d Modo %d +Mining Drill Mk%d = Taladro de Mineria Mk%d +Mining Laser Mk%d = Laser de Mineria Mk%d +Single node. = Nodo simple. +Sonic Screwdriver = Destonillador Sonico +Tree Tap = Grifo de Arbol + +## Craft descriptions +Alloy cooking = +Grinding = +Compressing = +Extracting = diff --git a/mods/technic/technic/locale/it.txt b/mods/technic/technic/locale/it.txt new file mode 100644 index 0000000..e3c0866 --- /dev/null +++ b/mods/technic/technic/locale/it.txt @@ -0,0 +1,200 @@ + +## Misc +[Technic] Loaded in %f seconds = [Technic] caricato in %f secondi + +## Items +Silicon Wafer = Wafer di silicone +Doped Silicon Wafer = Wafer di silicone dopato +Enriched Uranium = Uranio arricchito +Uranium Fuel = Uranio Combustibile +Diamond Drill Head = Trivella diamantata +Blue Energy Crystal = Cristallo energetico blu +Green Energy Crystal = Cristallo energetico verde +Red Energy Crystal = Cristallo energetico rosso +Fine Copper Wire = Filo di rame fine +Copper Coil = Bobina di rame +Electric Motor = Motore elettrico +Low Voltage Transformer = Trasformatore in bassa tensione +Medium Voltage Transformer = Trasformatore in media tensione +High Voltage Transformer = Trasformatore in alta tensione +Control Logic Unit = UnitΓ  di controllo logica +Mixed Metal Ingot = Lingotto in lega ibrida +Composite Plate = Lastra composita +Copper Plate = Lastra di rame +Carbon Plate = Lastra in carbonio +Graphite = Lastra in graffite +Carbon Cloth = Fibra di carbonio +Raw Latex = Latex grezzo +Rubber Fiber = Fibra di gomma +%.1f%%-Fissile Uranium Ingot = +%.1f%%-Fissile Uranium Block = + +## Machine misc +Machine cannot be removed because it is not empty = La macchina non puΓ² essere rimossa perchΓ¨ non Γ¨ vuota +Inventory move disallowed due to protection = Impossibile muovere l'inventario a causa della protezione +# $1: Machine name (Includes tier) +%s Active = %s Attivo +%s Disabled = %s Disabilitato +%s Enabled = +%s Idle = %s Inattivo +%s Improperly Placed = %s Piazzato impropiamente +%s Unpowered = %s Non alimentato +%s Out Of Fuel = %s senza carburante +%s Has Bad Cabling = %s ha un cablaggio scorretto +%s Has No Network = %s non Γ¨ collegata +%s Finished = %s Finito +Enable/Disable = Abilita/Disabilita +Range = Raggio +Upgrade Slots = +In: = Ingresso: +Out: = Uscita: +Slot %d = +Itemwise = Singolo elemento +Stackwise = pila completa +Owner: = +Unlocked = +Locked = +Radius: = +Enabled = +Disabled = + +## Machine names +# $1: Tier +%s Alloy Furnace = %s Fornace per leghe +%s Battery Box = %s Box batterie +%s Cable = Cavo %s +%s CNC Machine = Tornio CNC %s +%s Compressor = Compressore %s +%s Extractor = Estrattore %s +%s Forcefield Emitter = Emettitore di campo di forza %s +%s Furnace = %s Fornace +%s Grinder = %s Tritatutto +%s Music Player = Music Player %s +%s Quarry = Cava %s +%s Tool Workshop = Officina per attrezzi %s +Arrayed Solar %s Generator = %s Pannello Solare +Fuel-Fired %s Generator = %s Generatore a carbone +Geothermal %s Generator = %s Generatore Geotermico +Hydro %s Generator = Turbina Elettrica %s +Nuclear %s Generator Core = Reattore nucleare %s +Small Solar %s Generator = %s Pannello solare +Wind %s Generator = %s Generatore eolico +Self-Contained Injector = Ignettore +Constructor Mk%d = Costruttore Mk%d +Frame = Cornice +Frame Motor = Cornice del motore +Template = +Template (replacing) = Template (rimpiazzato) +Template Motor = +Template Tool = +Battery Box = Box batterie +Supply Converter = Trasformatore +Switching Station = Stazione di controllo +Fuel-Fired Alloy Furnace = Fornace per leghe a carbone +Fuel-Fired Furnace = Fornace a carbone +Wind Mill Frame = Pala eolica +Forcefield = Campo di forza +Nuclear Reactor Rod Compartment = Compartimento combustibile nucleare +Administrative World Anchor = + +## Machine-specific +# $1: Pruduced EU +Charge = Carica +Discharge = Scarica +Power level = Livello di potenza +# $1: Tier $2: current_charge $3: max_charge +%s Battery Box: %d/%d = %s Box Batterie: %d/%d +# $1: Machine name $2: Supply $3: Demand +%s. Supply: %d Demand: %d = %s. Prodotto: %d Consumato: %d +Production at %d%% = Produzione a %d%% +Choose Milling Program: = Scegliere un programma di Fresatura +Slim Elements half / normal height: = MetΓ  elementi sottili / altezza normale: +Current track %s = Traccia corrente %s +Stopped = +Keeping %d/%d map blocks loaded = +Digging not started = +Digging finished = +Digging %d m above machine = +Digging %d m below machine = + +## CNC +Cylinder = Cilindro +Element Cross = Elemento a croce +Element Cross Double = Elemento a croce doppio +Element Edge = Elemento bordo +Element Edge Double = Elemento bordo doppio +Element End = Elemento finale +Element End Double = Elemento finale doppio +Element Straight = Elemento dritto +Element Straight Double = Elemento dritto doppio +Element T = Elemento a T +Element T Double = Elemento a T doppio +Horizontal Cylinder = Cilindro orizzontale +One Curved Edge Block = Blocco con bordo curvo +Pyramid = Piramide +Slope = Inclinato +Slope Edge = Bordo inclinato +Slope Inner Edge = Bordo interno inclinato +Slope Lying = Pendenza bugiarda +Slope Upside Down = Pendenza capovolta +Slope Upside Down Edge = Bordo inclinato capovolto +Slope Upside Down Inner Edge = Bordo interno inclinato capovolto +Sphere = Sfera +Spike = Spuntone +Stick = Bastone +Two Curved Edge Block = Blocco con bordo a doppia curva +Brick = Mattone +Cobble = Ciottolato +Dirt = Terra +Leaves = Foglie +Sandstone = Arenaria +Stone = Pietra +Tree = Albero +Wooden = Legno + +## Grinder Recipes +# $1: Name +%s Dust = Polvere di %s +Akalin = Alcalino +Alatro = Alatro +Arol = Arol +Brass = Ottone +Bronze = Bronzo +Carbon Steel = Acciaio al Carbonio +Cast Iron = Ghisa +Chromium = Cromo +Coal = Carbone +Copper = Rame +Gold = Oro +Mithril = Mithril +Silver = Argento +Stainless Steel = Acciaio Inossidabile +Talinite = Talinite +Tin = Stagno +Wrought Iron = Ferro Battuto +Zinc = Zinco +%.1f%%-Fissile Uranium = + +## Tools +RE Battery = +Water Can = Serbatoio d'acqua +Lava Can = Serbatoio di lava +Chainsaw = Motosega +Flashlight = Torcia +3 nodes deep. = 3 nodi in profonditΓ . +3 nodes tall. = 3 nodi in altezza. +3 nodes wide. = 3 nodi in larghezza. +3x3 nodes. = 3x3 nodi. +Use while sneaking to change Mining Drill Mk%d modes. = Premi shift (freccia grossa) e usa per cambiare modalitΓ  nella trivella da miniera Mk%d. +Mining Drill Mk%d Mode %d = Trivella mk%d in modalitΓ  %d +Mining Drill Mk%d = Trivella da miniera mk%d +Mining Laser Mk%d = Laser da miniera mk%d +Single node. = Nodo singolo. +Sonic Screwdriver = Cacciavite sonico +Tree Tap = Batti albero + +## Craft descriptions +Alloy cooking = Cottura lege +Grinding = Macinazione +Compressing = Compressione +Extracting = Estrazione diff --git a/mods/technic/technic/locale/template.txt b/mods/technic/technic/locale/template.txt new file mode 100644 index 0000000..1fea4ce --- /dev/null +++ b/mods/technic/technic/locale/template.txt @@ -0,0 +1,209 @@ +# template.txt +# Template for translations of Technic + + +## Misc +[Technic] Loaded in %f seconds = + +## Items +Silicon Wafer = +Doped Silicon Wafer = +Enriched Uranium = +Uranium Fuel = +Diamond Drill Head = +Blue Energy Crystal = +Green Energy Crystal = +Red Energy Crystal = +Fine Copper Wire = +Copper Coil = +Electric Motor = +Low Voltage Transformer = +Medium Voltage Transformer = +High Voltage Transformer = +Control Logic Unit = +Mixed Metal Ingot = +Composite Plate = +Copper Plate = +Carbon Plate = +Graphite = +Carbon Cloth = +Raw Latex = +Rubber Fiber = +%.1f%%-Fissile Uranium Ingot = +%.1f%%-Fissile Uranium Block = + +## Machine misc +Machine cannot be removed because it is not empty = +Inventory move disallowed due to protection = +# $1: Machine name (Includes tier) +%s Active = +%s Disabled = +%s Enabled = +%s Idle = +%s Improperly Placed = +%s is empty = +%s Unpowered = +%s Out Of Fuel = +%s Has Bad Cabling = +%s (Slave) = +%s Has No Network = +%s Finished = +Enable/Disable = +Range = +Upgrade Slots = +In: = +Out: = +Slot %d = +Itemwise = +Stackwise = +Ignoring Mesecon Signal = +Controlled by Mesecon Signal = +Owner: = +Unlocked = +Locked = +Radius: = +Enabled = +Disabled = + +## Machine names +# $1: Tier +%s Alloy Furnace = +%s Battery Box = +%s Cable = +%s CNC Machine = +%s Centrifuge = +%s Compressor = +%s Extractor = +%s Forcefield Emitter = +%s Furnace = +%s Grinder = +%s Music Player = +%s Quarry = +%s Tool Workshop = +Arrayed Solar %s Generator = +Fuel-Fired %s Generator = +Geothermal %s Generator = +Hydro %s Generator = +Nuclear %s Generator Core = +Small Solar %s Generator = +Wind %s Generator = +Self-Contained Injector = +Constructor Mk%d = +Frame = +Frame Motor = +Template = +Template (replacing) = +Template Motor = +Template Tool = +Battery Box = +Supply Converter = +Switching Station = +Fuel-Fired Alloy Furnace = +Fuel-Fired Furnace = +Wind Mill Frame = +Forcefield = +Nuclear Reactor Rod Compartment = +Administrative World Anchor = + +## Machine-specific +# $1: Pruduced EU +Charge = +Discharge = +Power level = +# $1: Tier $2: current_charge $3: max_charge +%s Battery Box: %d/%d = +# $1: Machine name $2: Supply $3: Demand +%s. Supply: %d Demand: %d = +Production at %d%% = +Choose Milling Program: = +Slim Elements half / normal height: = +Current track %s = +Stopped = +Keeping %d/%d map blocks loaded = +Digging not started = +Digging finished = +Digging %d m above machine = +Digging %d m below machine = + +## CNC +Cylinder = +Element Cross = +Element Cross Double = +Element Edge = +Element Edge Double = +Element End = +Element End Double = +Element Straight = +Element Straight Double = +Element T = +Element T Double = +Horizontal Cylinder = +One Curved Edge Block = +Pyramid = +Slope = +Slope Edge = +Slope Inner Edge = +Slope Lying = +Slope Upside Down = +Slope Upside Down Edge = +Slope Upside Down Inner Edge = +Sphere = +Spike = +Stick = +Two Curved Edge Block = +Brick = +Cobble = +Dirt = +Leaves = +Sandstone = +Stone = +Tree = +Wooden = + +## Grinder Recipes +# $1: Name +%s Dust = +Akalin = +Alatro = +Arol = +Brass = +Bronze = +Carbon Steel = +Cast Iron = +Chromium = +Coal = +Copper = +Gold = +Mithril = +Silver = +Stainless Steel = +Talinite = +Tin = +Wrought Iron = +Zinc = +%.1f%%-Fissile Uranium = + +## Tools +RE Battery = +Water Can = +Lava Can = +Chainsaw = +Flashlight = +3 nodes deep. = +3 nodes tall. = +3 nodes wide. = +3x3 nodes. = +Use while sneaking to change Mining Drill Mk%d modes. = +Mining Drill Mk%d Mode %d = +Mining Drill Mk%d = +Mining Laser Mk%d = +Single node. = +Sonic Screwdriver = +Tree Tap = + +## Craft descriptions +Alloy cooking = +Grinding = +Compressing = +Extracting = +Separating = diff --git a/mods/technic/technic/machines/HV/battery_box.lua b/mods/technic/technic/machines/HV/battery_box.lua new file mode 100644 index 0000000..3a3e66a --- /dev/null +++ b/mods/technic/technic/machines/HV/battery_box.lua @@ -0,0 +1,19 @@ +-- HV battery box +minetest.register_craft({ + output = 'technic:hv_battery_box0', + recipe = { + {'technic:mv_battery_box0','technic:mv_battery_box0'}, + } +}) + +technic.register_battery_box({ + tier = "HV", + max_charge = 1000000, + charge_rate = 100000, + discharge_rate = 400000, + charge_step = 10000, + discharge_step = 40000, + upgrade = 1, + tube = 1, +}) + diff --git a/mods/technic/technic/machines/HV/cables.lua b/mods/technic/technic/machines/HV/cables.lua new file mode 100644 index 0000000..51a6db1 --- /dev/null +++ b/mods/technic/technic/machines/HV/cables.lua @@ -0,0 +1,12 @@ + +minetest.register_craft({ + output = 'technic:hv_cable0 1', + recipe = { + {'default:mese_crystal','default:mese_crystal','default:mese_crystal'}, + {'default:mese_crystal','technic:mv_cable0','default:mese_crystal'}, + {'default:mese_crystal','default:mese_crystal','default:mese_crystal'}, + } +}) + +technic.register_cable("HV", 3/16) + diff --git a/mods/technic/technic/machines/HV/forcefield.lua b/mods/technic/technic/machines/HV/forcefield.lua new file mode 100644 index 0000000..0de0838 --- /dev/null +++ b/mods/technic/technic/machines/HV/forcefield.lua @@ -0,0 +1,261 @@ +--- Forcefield generator. +-- @author ShadowNinja +-- +-- Forcefields are powerful barriers but they consume huge amounts of power. +-- The forcefield Generator is an HV machine. + +-- How expensive is the generator? +-- Leaves room for upgrades lowering the power drain? +local forcefield_power_drain = 10 + +local S = technic.getter + +minetest.register_craft({ + output = "technic:forcefield_emitter_off", + recipe = { + {"gems:emerald_gem", "default:mese", "gems:emerald_gem"}, + {"tutorial:admin", "gems:emerald_gem", "tutorial:admin"}, + {"gems:emerald_gem", "default:mese", "gems:emerald_gem"}, + } +}) + + +local replaceable_cids = {} + +minetest.after(0, function() + for name, ndef in pairs(minetest.registered_nodes) do + if ndef.buildable_to == true and name ~= "ignore" then + replaceable_cids[minetest.get_content_id(name)] = true + end + end +end) + + +-- Idea: Let forcefields have different colors by upgrade slot. +-- Idea: Let forcefields add up by detecting if one hits another. +-- ___ __ +-- / \/ \ +-- | | +-- \___/\___/ + +local function update_forcefield(pos, meta, active, first) + local shape = meta:get_int("shape") + local range = meta:get_int("range") + local vm = VoxelManip() + local MinEdge, MaxEdge = vm:read_from_map(vector.subtract(pos, range), + vector.add(pos, range)) + local area = VoxelArea:new({MinEdge = MinEdge, MaxEdge = MaxEdge}) + local data = vm:get_data() + + local c_air = minetest.get_content_id("air") + local c_field = minetest.get_content_id("technic:forcefield") + + for z = -range, range do + for y = -range, range do + local vi = area:index(pos.x + (-range), pos.y + y, pos.z + z) + for x = -range, range do + local relevant + if shape == 0 then + local squared = x * x + y * y + z * z + relevant = + squared <= range * range + range and + squared >= (range - 1) * (range - 1) + (range - 1) + else + relevant = + x == -range or x == range or + y == -range or y == range or + z == -range or z == range + end + if relevant then + local cid = data[vi] + if active and replaceable_cids[cid] then + data[vi] = c_field + elseif not active and cid == c_field then + data[vi] = c_air + end + end + vi = vi + 1 + end + end + end + + vm:set_data(data) + vm:update_liquids() + vm:write_to_map() + -- update_map is very slow, but if we don't call it we'll + -- get phantom blocks on the client. + if not active or first then + vm:update_map() + end +end + +local function set_forcefield_formspec(meta) + local formspec = "size[5,2.25]".. + "field[0.3,0.5;2,1;range;"..S("Range")..";"..meta:get_int("range").."]" + -- The names for these toggle buttons are explicit about which + -- state they'll switch to, so that multiple presses (arising + -- from the ambiguity between lag and a missed press) only make + -- the single change that the user expects. + if meta:get_int("shape") == 0 then + formspec = formspec.."button[3,0.2;2,1;shape1;"..S("Sphere").."]" + else + formspec = formspec.."button[3,0.2;2,1;shape0;"..S("Cube").."]" + end + if meta:get_int("mesecon_mode") == 0 then + formspec = formspec.."button[0,1;5,1;mesecon_mode_1;"..S("Ignoring Mesecon Signal").."]" + else + formspec = formspec.."button[0,1;5,1;mesecon_mode_0;"..S("Controlled by Mesecon Signal").."]" + end + if meta:get_int("enabled") == 0 then + formspec = formspec.."button[0,1.75;5,1;enable;"..S("%s Disabled"):format(S("%s Forcefield Emitter"):format("HV")).."]" + else + formspec = formspec.."button[0,1.75;5,1;disable;"..S("%s Enabled"):format(S("%s Forcefield Emitter"):format("HV")).."]" + end + meta:set_string("formspec", formspec) +end + +local forcefield_receive_fields = function(pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + local range = nil + if fields.range then + range = tonumber(fields.range) or 0 + -- Smallest field is 5. Anything less is asking for trouble. + -- Largest is 20. It is a matter of pratical node handling. + -- At the maximim range updating the forcefield takes about 0.2s + range = math.max(range, 5) + range = math.min(range, 20) + if range == meta:get_int("range") then range = nil end + end + if fields.shape0 or fields.shape1 or range then + update_forcefield(pos, meta, false) + end + if range then meta:set_int("range", range) end + if fields.shape0 then meta:set_int("shape", 0) end + if fields.shape1 then meta:set_int("shape", 1) end + if fields.enable then meta:set_int("enabled", 1) end + if fields.disable then meta:set_int("enabled", 0) end + if fields.mesecon_mode_0 then meta:set_int("mesecon_mode", 0) end + if fields.mesecon_mode_1 then meta:set_int("mesecon_mode", 1) end + set_forcefield_formspec(meta) +end + +local mesecons = { + effector = { + action_on = function(pos, node) + minetest.get_meta(pos):set_int("mesecon_effect", 1) + end, + action_off = function(pos, node) + minetest.get_meta(pos):set_int("mesecon_effect", 0) + end + } +} + +local function run(pos, node) + local meta = minetest.get_meta(pos) + local eu_input = meta:get_int("HV_EU_input") + local enabled = meta:get_int("enabled") ~= 0 and (meta:get_int("mesecon_mode") == 0 or meta:get_int("mesecon_effect") ~= 0) + local machine_name = S("%s Forcefield Emitter"):format("HV") + + local range = meta:get_int("range") + local power_requirement + if meta:get_int("shape") == 0 then + power_requirement = math.floor(4 * math.pi * range * range) + else + power_requirement = 24 * range * range + end + power_requirement = power_requirement * forcefield_power_drain + + if not enabled then + if node.name == "technic:forcefield_emitter_on" then + update_forcefield(pos, meta, false) + technic.swap_node(pos, "technic:forcefield_emitter_off") + meta:set_string("infotext", S("%s Disabled"):format(machine_name)) + end + meta:set_int("HV_EU_demand", 0) + return + end + meta:set_int("HV_EU_demand", power_requirement) + if eu_input < power_requirement then + meta:set_string("infotext", S("%s Unpowered"):format(machine_name)) + if node.name == "technic:forcefield_emitter_on" then + update_forcefield(pos, meta, false) + technic.swap_node(pos, "technic:forcefield_emitter_off") + end + elseif eu_input >= power_requirement then + local first = false + if node.name == "technic:forcefield_emitter_off" then + first = true + technic.swap_node(pos, "technic:forcefield_emitter_on") + meta:set_string("infotext", S("%s Active"):format(machine_name)) + end + update_forcefield(pos, meta, true, first) + end +end + +minetest.register_node("technic:forcefield_emitter_off", { + description = S("%s Forcefield Emitter"):format("HV"), + tiles = {"technic_forcefield_emitter_off.png"}, + groups = {cracky = 1, technic_machine = 1}, + on_receive_fields = forcefield_receive_fields, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("HV_EU_input", 0) + meta:set_int("HV_EU_demand", 0) + meta:set_int("range", 10) + meta:set_int("enabled", 0) + meta:set_int("mesecon_mode", 0) + meta:set_int("mesecon_effect", 0) + meta:set_string("infotext", S("%s Forcefield Emitter"):format("HV")) + set_forcefield_formspec(meta) + end, + mesecons = mesecons, + technic_run = run, +}) + +minetest.register_node("technic:forcefield_emitter_on", { + description = S("%s Forcefield Emitter"):format("HV"), + tiles = {"technic_forcefield_emitter_on.png"}, + groups = {cracky = 1, technic_machine = 1, not_in_creative_inventory=1}, + drop = "technic:forcefield_emitter_off", + on_receive_fields = forcefield_receive_fields, + on_destruct = function(pos) + local meta = minetest.get_meta(pos) + update_forcefield(pos, meta, false) + end, + mesecons = mesecons, + technic_run = run, + technic_on_disable = function (pos, node) + local meta = minetest.get_meta(pos) + update_forcefield(pos, meta, false) + technic.swap_node(pos, "technic:forcefield_emitter_off") + end, +}) + +minetest.register_node("technic:forcefield", { + description = S("%s Forcefield"):format("HV"), + sunlight_propagates = true, + drawtype = "glasslike", + groups = {cracky=15}, + paramtype = "light", + light_source = 15, + diggable = false, + drop = '', + tiles = {{ + name = "technic_forcefield_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.0, + }, + }}, +}) + + +if minetest.get_modpath("mesecons_mvps") then + mesecon.register_mvps_stopper("technic:forcefield") +end + +technic.register_machine("HV", "technic:forcefield_emitter_on", technic.receiver) +technic.register_machine("HV", "technic:forcefield_emitter_off", technic.receiver) + diff --git a/mods/technic/technic/machines/HV/generator.lua b/mods/technic/technic/machines/HV/generator.lua new file mode 100644 index 0000000..1487d9e --- /dev/null +++ b/mods/technic/technic/machines/HV/generator.lua @@ -0,0 +1,11 @@ +minetest.register_alias("hv_generator", "technic:hv_generator") + +minetest.register_craft({ + output = 'technic:hv_generator', + recipe = { + {'technic:mv_generator','technic:mv_generator'}, + } +}) + +technic.register_generator({tier="HV", tube=1, supply=1200}) + diff --git a/mods/technic/technic/machines/HV/init.lua b/mods/technic/technic/machines/HV/init.lua new file mode 100644 index 0000000..d7136b4 --- /dev/null +++ b/mods/technic/technic/machines/HV/init.lua @@ -0,0 +1,18 @@ + +technic.register_tier("HV", "High Voltage") + +local path = technic.modpath.."/machines/HV" + +-- Wiring stuff +dofile(path.."/cables.lua") +dofile(path.."/battery_box.lua") + +-- Generators +dofile(path.."/solar_array.lua") +dofile(path.."/nuclear_reactor.lua") +dofile(path.."/generator.lua") + +-- Machines +dofile(path.."/quarry.lua") +dofile(path.."/forcefield.lua") + diff --git a/mods/technic/technic/machines/HV/nuclear_reactor.lua b/mods/technic/technic/machines/HV/nuclear_reactor.lua new file mode 100644 index 0000000..8a3b23a --- /dev/null +++ b/mods/technic/technic/machines/HV/nuclear_reactor.lua @@ -0,0 +1,727 @@ +-- The enriched uranium rod driven EU generator. +-- A very large and advanced machine providing vast amounts of power. +-- Very efficient but also expensive to run as it needs uranium. (10000EU 86400 ticks (one week)) +-- Provides HV EUs that can be down converted as needed. +-- +-- The nuclear reactor core needs water and a protective shield to work. +-- This is checked now and then and if the machine is tampered with... BOOM! + +local burn_ticks = 7 * 24 * 60 * 60 -- (seconds). +local power_supply = 100000 -- EUs +local fuel_type = "technic:uranium_fuel" -- The reactor burns this stuff + +local S = technic.getter + +if not vector.length_square then + vector.length_square = function (v) + return v.x*v.x + v.y*v.y + v.z*v.z + end +end + +-- FIXME: recipe must make more sense like a rod recepticle, steam chamber, HV generator? + +local generator_formspec = + "invsize[8,9;]".. + "label[0,0;"..S("Nuclear Reactor Rod Compartment").."]".. + "list[current_name;src;2,1;3,2;]".. + "list[current_player;main;0,5;8,4;]" + +-- "Boxy sphere" +local nodebox = { + { -0.353, -0.353, -0.353, 0.353, 0.353, 0.353 }, -- Box + { -0.495, -0.064, -0.064, 0.495, 0.064, 0.064 }, -- Circle +-x + { -0.483, -0.128, -0.128, 0.483, 0.128, 0.128 }, + { -0.462, -0.191, -0.191, 0.462, 0.191, 0.191 }, + { -0.433, -0.249, -0.249, 0.433, 0.249, 0.249 }, + { -0.397, -0.303, -0.303, 0.397, 0.303, 0.303 }, + { -0.305, -0.396, -0.305, 0.305, 0.396, 0.305 }, -- Circle +-y + { -0.250, -0.432, -0.250, 0.250, 0.432, 0.250 }, + { -0.191, -0.461, -0.191, 0.191, 0.461, 0.191 }, + { -0.130, -0.482, -0.130, 0.130, 0.482, 0.130 }, + { -0.066, -0.495, -0.066, 0.066, 0.495, 0.066 }, + { -0.064, -0.064, -0.495, 0.064, 0.064, 0.495 }, -- Circle +-z + { -0.128, -0.128, -0.483, 0.128, 0.128, 0.483 }, + { -0.191, -0.191, -0.462, 0.191, 0.191, 0.462 }, + { -0.249, -0.249, -0.433, 0.249, 0.249, 0.433 }, + { -0.303, -0.303, -0.397, 0.303, 0.303, 0.397 }, +} + +local reactor_siren = {} +local function siren_set_state(pos, newstate) + local hpos = minetest.hash_node_position(pos) + local siren = reactor_siren[hpos] + if not siren then + if newstate == "off" then return end + siren = {state="off"} + reactor_siren[hpos] = siren + end + if newstate == "danger" and siren.state ~= "danger" then + if siren.handle then minetest.sound_stop(siren.handle) end + siren.handle = minetest.sound_play("technic_hv_nuclear_reactor_siren_danger_loop", {pos=pos, gain=1.5, loop=true, max_hear_distance=48}) + siren.state = "danger" + elseif newstate == "clear" then + if siren.handle then minetest.sound_stop(siren.handle) end + local clear_handle = minetest.sound_play("technic_hv_nuclear_reactor_siren_clear", {pos=pos, gain=1.5, loop=false, max_hear_distance=48}) + siren.handle = clear_handle + siren.state = "clear" + minetest.after(10, function () + if siren.handle == clear_handle then + minetest.sound_stop(clear_handle) + if reactor_siren[hpos] == siren then + reactor_siren[hpos] = nil + end + end + end) + elseif newstate == "off" and siren.state ~= "off" then + if siren.handle then minetest.sound_stop(siren.handle) end + siren.handle = nil + reactor_siren[hpos] = nil + end +end +local function siren_danger(pos, meta) + meta:set_int("siren", 1) + siren_set_state(pos, "danger") +end +local function siren_clear(pos, meta) + if meta:get_int("siren") ~= 0 then + siren_set_state(pos, "clear") + meta:set_int("siren", 0) + end +end + +-- The standard reactor structure consists of a 9x9x9 cube. A cross +-- section through the middle: +-- +-- CCCC CCCC +-- CBBB BBBC +-- CBSS SSBC +-- CBSWWWSBC +-- CBSW#WSBC +-- CBSW|WSBC +-- CBSS|SSBC +-- CBBB|BBBC +-- CCCC|CCCC +-- C = Concrete, B = Blast-resistant concrete, S = Stainless Steel, +-- W = water node, # = reactor core, | = HV cable +-- +-- The man-hole and the HV cable are only in the middle, and the man-hole +-- is optional. +-- +-- For the reactor to operate and not melt down, it insists on the inner +-- 7x7x7 portion (from the core out to the blast-resistant concrete) +-- being intact. Intactness only depends on the number of nodes of the +-- right type in each layer. The water layer must have water in all but +-- at most one node; the steel and blast-resistant concrete layers must +-- have the right material in all but at most two nodes. The permitted +-- gaps are meant for the cable and man-hole, but can actually be anywhere +-- and contain anything. For the reactor to be useful, a cable must +-- connect to the core, but it can go in any direction. +-- +-- The outer concrete layer of the standard structure is not required +-- for the reactor to operate. It is noted here because it used to +-- be mandatory, and for historical reasons (that it predates the +-- implementation of radiation) it needs to continue being adequate +-- shielding of legacy reactors. If it ever ceases to be adequate +-- shielding for new reactors, legacy ones should be grandfathered. +local reactor_structure_badness = function(pos) + local vm = VoxelManip() + local pos1 = vector.subtract(pos, 3) + local pos2 = vector.add(pos, 3) + local MinEdge, MaxEdge = vm:read_from_map(pos1, pos2) + local data = vm:get_data() + local area = VoxelArea:new({MinEdge=MinEdge, MaxEdge=MaxEdge}) + + local c_blast_concrete = minetest.get_content_id("technic:blast_resistant_concrete") + local c_stainless_steel = minetest.get_content_id("technic:stainless_steel_block") + local c_water_source = minetest.get_content_id("default:water_source") + local c_water_flowing = minetest.get_content_id("default:water_flowing") + + local blastlayer, steellayer, waterlayer = 0, 0, 0 + + for z = pos1.z, pos2.z do + for y = pos1.y, pos2.y do + for x = pos1.x, pos2.x do + local cid = data[area:index(x, y, z)] + if x == pos1.x or x == pos2.x or + y == pos1.y or y == pos2.y or + z == pos1.z or z == pos2.z then + if cid == c_blast_concrete then + blastlayer = blastlayer + 1 + end + elseif x == pos1.x+1 or x == pos2.x-1 or + y == pos1.y+1 or y == pos2.y-1 or + z == pos1.z+1 or z == pos2.z-1 then + if cid == c_stainless_steel then + steellayer = steellayer + 1 + end + elseif x == pos1.x+2 or x == pos2.x-2 or + y == pos1.y+2 or y == pos2.y-2 or + z == pos1.z+2 or z == pos2.z-2 then + if cid == c_water_source or cid == c_water_flowing then + waterlayer = waterlayer + 1 + end + end + end + end + end + if waterlayer > 25 then waterlayer = 25 end + if steellayer > 96 then steellayer = 96 end + if blastlayer > 216 then blastlayer = 216 end + return (25 - waterlayer) + (96 - steellayer) + (216 - blastlayer) +end + +local function meltdown_reactor(pos) + print("A reactor melted down at "..minetest.pos_to_string(pos)) + minetest.set_node(pos, {name="technic:corium_source"}) +end + +minetest.register_abm({ + nodenames = {"technic:hv_nuclear_reactor_core_active"}, + interval = 1, + chance = 1, + action = function (pos, node) + local meta = minetest.get_meta(pos) + local badness = reactor_structure_badness(pos) + local accum_badness = meta:get_int("structure_accumulated_badness") + if badness == 0 then + if accum_badness ~= 0 then + meta:set_int("structure_accumulated_badness", accum_badness - 1) + siren_clear(pos, meta) + end + else + siren_danger(pos, meta) + accum_badness = accum_badness + badness + if accum_badness >= 100 then + meltdown_reactor(pos) + else + meta:set_int("structure_accumulated_badness", accum_badness) + end + end + end, +}) + +local run = function(pos, node) + local meta = minetest.get_meta(pos) + local machine_name = S("Nuclear %s Generator Core"):format("HV") + local burn_time = meta:get_int("burn_time") or 0 + + if burn_time >= burn_ticks or burn_time == 0 then + local inv = meta:get_inventory() + if not inv:is_empty("src") then + local srclist = inv:get_list("src") + local correct_fuel_count = 0 + for _, srcstack in pairs(srclist) do + if srcstack then + if srcstack:get_name() == fuel_type then + correct_fuel_count = correct_fuel_count + 1 + end + end + end + -- Check that the reactor is complete as well + -- as the correct number of correct fuel + if correct_fuel_count == 6 and + reactor_structure_badness(pos) == 0 then + meta:set_int("burn_time", 1) + technic.swap_node(pos, "technic:hv_nuclear_reactor_core_active") + meta:set_int("HV_EU_supply", power_supply) + for idx, srcstack in pairs(srclist) do + srcstack:take_item() + inv:set_stack("src", idx, srcstack) + end + return + end + end + meta:set_int("HV_EU_supply", 0) + meta:set_int("burn_time", 0) + meta:set_string("infotext", S("%s Idle"):format(machine_name)) + technic.swap_node(pos, "technic:hv_nuclear_reactor_core") + meta:set_int("structure_accumulated_badness", 0) + siren_clear(pos, meta) + elseif burn_time > 0 then + burn_time = burn_time + 1 + meta:set_int("burn_time", burn_time) + local percent = math.floor(burn_time / burn_ticks * 100) + meta:set_string("infotext", machine_name.." ("..percent.."%)") + meta:set_int("HV_EU_supply", power_supply) + end +end + +minetest.register_node("technic:hv_nuclear_reactor_core", { + description = S("Nuclear %s Generator Core"):format("HV"), + tiles = {"technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", + "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", + "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png"}, + groups = {cracky=1, technic_machine=1}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + drawtype="nodebox", + paramtype = "light", + stack_max = 1, + node_box = { + type = "fixed", + fixed = nodebox + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("Nuclear %s Generator Core"):format("HV")) + meta:set_int("HV_EU_supply", 0) + -- Signal to the switching station that this device burns some + -- sort of fuel and needs special handling + meta:set_int("HV_EU_from_fuel", 1) + meta:set_int("burn_time", 0) + meta:set_string("formspec", generator_formspec) + local inv = meta:get_inventory() + inv:set_size("src", 6) + end, + can_dig = technic.machine_can_dig, + on_destruct = function(pos) siren_set_state(pos, "off") end, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + technic_run = run, +}) + +minetest.register_node("technic:hv_nuclear_reactor_core_active", { + tiles = {"technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", + "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png", + "technic_hv_nuclear_reactor_core.png", "technic_hv_nuclear_reactor_core.png"}, + groups = {cracky=1, technic_machine=1, radioactive=11000, not_in_creative_inventory=1}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + drop="technic:hv_nuclear_reactor_core", + drawtype="nodebox", + light_source = 15, + paramtype = "light", + node_box = { + type = "fixed", + fixed = nodebox + }, + can_dig = technic.machine_can_dig, + after_dig_node = meltdown_reactor, + on_destruct = function(pos) siren_set_state(pos, "off") end, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + technic_run = run, + technic_on_disable = function(pos, node) + local timer = minetest.get_node_timer(pos) + timer:start(1) + end, + on_timer = function(pos, node) + local meta = minetest.get_meta(pos) + + -- Connected back? + if meta:get_int("HV_EU_timeout") > 0 then return end + + local burn_time = meta:get_int("burn_time") or 0 + + if burn_time >= burn_ticks or burn_time == 0 then + meta:set_int("HV_EU_supply", 0) + meta:set_int("burn_time", 0) + technic.swap_node(pos, "technic:hv_nuclear_reactor_core") + meta:set_int("structure_accumulated_badness", 0) + siren_clear(pos, meta) + return + end + + meta:set_int("burn_time", burn_time + 1) + local timer = minetest.get_node_timer(pos) + timer:start(1) + end, +}) + +technic.register_machine("HV", "technic:hv_nuclear_reactor_core", technic.producer) +technic.register_machine("HV", "technic:hv_nuclear_reactor_core_active", technic.producer) + +-- radioactivity + +-- Radiation resistance represents the extent to which a material +-- attenuates radiation passing through it; i.e., how good a radiation +-- shield it is. This is identified per node type. For materials that +-- exist in real life, the radiation resistance value that this system +-- uses for a node type consisting of a solid cube of that material is the +-- (approximate) number of halvings of ionising radiation that is achieved +-- by a metre of the material in real life. This is approximately +-- proportional to density, which provides a good way to estimate it. +-- Homogeneous mixtures of materials have radiation resistance computed +-- by a simple weighted mean. Note that the amount of attenuation that +-- a material achieves in-game is not required to be (and is not) the +-- same as the attenuation achieved in real life. +-- +-- Radiation resistance for a node type may be specified in the node +-- definition, under the key "radiation_resistance". As an interim +-- measure, until node definitions widely include this, this code +-- knows a bunch of values for particular node types in several mods, +-- and values for groups of node types. The node definition takes +-- precedence if it specifies a value. Nodes for which no value at +-- all is known are taken to provide no radiation resistance at all; +-- this is appropriate for the majority of node types. Only node types +-- consisting of a fairly homogeneous mass of material should report +-- non-zero radiation resistance; anything with non-uniform geometry +-- or complex internal structure should show no radiation resistance. +-- Fractional resistance values are permitted; two significant figures +-- is the recommended precision. +local default_radiation_resistance_per_node = { + ["default:brick"] = 13, + ["default:bronzeblock"] = 45, + ["default:clay"] = 15, + ["default:coalblock"] = 9.6, + ["default:cobble"] = 15, + ["default:copperblock"] = 46, + ["default:desert_cobble"] = 15, + ["default:desert_sand"] = 10, + ["default:desert_stone"] = 17, + ["default:desert_stonebrick"] = 17, + ["default:diamondblock"] = 24, + ["default:dirt"] = 8.2, + ["default:dirt_with_grass"] = 8.2, + ["default:dirt_with_grass_footsteps"] = 8.2, + ["default:dirt_with_snow"] = 8.2, + ["default:glass"] = 17, + ["default:goldblock"] = 170, + ["default:gravel"] = 10, + ["default:ice"] = 5.6, + ["default:lava_flowing"] = 8.5, + ["default:lava_source"] = 17, + ["default:mese"] = 21, + ["default:mossycobble"] = 15, + ["default:nyancat"] = 1000, + ["default:nyancat_rainbow"] = 1000, + ["default:obsidian"] = 18, + ["default:obsidian_glass"] = 18, + ["default:sand"] = 10, + ["default:sandstone"] = 15, + ["default:sandstonebrick"] = 15, + ["default:snowblock"] = 1.7, + ["default:steelblock"] = 40, + ["default:stone"] = 17, + ["default:stone_with_coal"] = 16, + ["default:stone_with_copper"] = 20, + ["default:stone_with_diamond"] = 18, + ["default:stone_with_gold"] = 34, + ["default:stone_with_iron"] = 20, + ["default:stone_with_mese"] = 17, + ["default:stonebrick"] = 17, + ["default:water_flowing"] = 2.8, + ["default:water_source"] = 5.6, + ["farming:desert_sand_soil"] = 10, + ["farming:desert_sand_soil_wet"] = 10, + ["farming:soil"] = 8.2, + ["farming:soil_wet"] = 8.2, + ["glooptest:akalin_crystal_glass"] = 21, + ["glooptest:akalinblock"] = 40, + ["glooptest:alatro_crystal_glass"] = 21, + ["glooptest:alatroblock"] = 40, + ["glooptest:amethystblock"] = 18, + ["glooptest:arol_crystal_glass"] = 21, + ["glooptest:crystal_glass"] = 21, + ["glooptest:emeraldblock"] = 19, + ["glooptest:heavy_crystal_glass"] = 21, + ["glooptest:mineral_akalin"] = 20, + ["glooptest:mineral_alatro"] = 20, + ["glooptest:mineral_amethyst"] = 17, + ["glooptest:mineral_arol"] = 20, + ["glooptest:mineral_desert_coal"] = 16, + ["glooptest:mineral_desert_iron"] = 20, + ["glooptest:mineral_emerald"] = 17, + ["glooptest:mineral_kalite"] = 20, + ["glooptest:mineral_ruby"] = 18, + ["glooptest:mineral_sapphire"] = 18, + ["glooptest:mineral_talinite"] = 20, + ["glooptest:mineral_topaz"] = 18, + ["glooptest:reinforced_crystal_glass"] = 21, + ["glooptest:rubyblock"] = 27, + ["glooptest:sapphireblock"] = 27, + ["glooptest:talinite_crystal_glass"] = 21, + ["glooptest:taliniteblock"] = 40, + ["glooptest:topazblock"] = 24, + ["mesecons_extrawires:mese_powered"] = 21, + ["moreblocks:cactus_brick"] = 13, + ["moreblocks:cactus_checker"] = 8.5, + ["moreblocks:circle_stone_bricks"] = 17, + ["moreblocks:clean_glass"] = 17, + ["moreblocks:coal_checker"] = 9.0, + ["moreblocks:coal_glass"] = 17, + ["moreblocks:coal_stone"] = 17, + ["moreblocks:coal_stone_bricks"] = 17, + ["moreblocks:glow_glass"] = 17, + ["moreblocks:grey_bricks"] = 15, + ["moreblocks:iron_checker"] = 11, + ["moreblocks:iron_glass"] = 17, + ["moreblocks:iron_stone"] = 17, + ["moreblocks:iron_stone_bricks"] = 17, + ["moreblocks:plankstone"] = 9.3, + ["moreblocks:split_stone_tile"] = 15, + ["moreblocks:split_stone_tile_alt"] = 15, + ["moreblocks:stone_tile"] = 15, + ["moreblocks:super_glow_glass"] = 17, + ["moreblocks:tar"] = 7.0, + ["moreblocks:wood_tile"] = 1.7, + ["moreblocks:wood_tile_center"] = 1.7, + ["moreblocks:wood_tile_down"] = 1.7, + ["moreblocks:wood_tile_flipped"] = 1.7, + ["moreblocks:wood_tile_full"] = 1.7, + ["moreblocks:wood_tile_left"] = 1.7, + ["moreblocks:wood_tile_right"] = 1.7, + ["moreblocks:wood_tile_up"] = 1.7, + ["moreores:mineral_mithril"] = 18, + ["moreores:mineral_silver"] = 21, + ["moreores:mineral_tin"] = 19, + ["moreores:mithril_block"] = 26, + ["moreores:silver_block"] = 53, + ["moreores:tin_block"] = 37, + ["snow:snow_brick"] = 2.8, + ["technic:brass_block"] = 43, + ["technic:carbon_steel_block"] = 40, + ["technic:cast_iron_block"] = 40, + ["technic:chernobylite_block"] = 40, + ["technic:chromium_block"] = 37, + ["technic:corium_flowing"] = 40, + ["technic:corium_source"] = 80, + ["technic:granite"] = 18, + ["technic:marble"] = 18, + ["technic:marble_bricks"] = 18, + ["technic:mineral_chromium"] = 19, + ["technic:mineral_uranium"] = 71, + ["technic:mineral_zinc"] = 19, + ["technic:stainless_steel_block"] = 40, + ["technic:zinc_block"] = 36, + ["tnt:tnt"] = 11, + ["tnt:tnt_burning"] = 11, +} +local default_radiation_resistance_per_group = { + concrete = 16, + tree = 3.4, + uranium_block = 500, + wood = 1.7, +} +local cache_radiation_resistance = {} +local function node_radiation_resistance(nodename) + local eff = cache_radiation_resistance[nodename] + if eff then return eff end + local def = minetest.registered_nodes[nodename] or {groups={}} + eff = def.radiation_resistance or default_radiation_resistance_per_node[nodename] + if not eff then + for g, v in pairs(def.groups) do + if v > 0 and default_radiation_resistance_per_group[g] then + eff = default_radiation_resistance_per_group[g] + break + end + end + end + if not eff then eff = 0 end + cache_radiation_resistance[nodename] = eff + return eff +end + +-- Radioactive nodes cause damage to nearby players. The damage +-- effect depends on the intrinsic strength of the radiation source, +-- the distance between the source and the player, and the shielding +-- effect of the intervening material. These determine a rate of damage; +-- total damage caused is the integral of this over time. +-- +-- In the absence of effective shielding, for a specific source the +-- damage rate varies realistically in inverse proportion to the square +-- of the distance. (Distance is measured to the player's abdomen, +-- not to the nominal player position which corresponds to the foot.) +-- However, if the player is inside a non-walkable (liquid or gaseous) +-- radioactive node, the nominal distance could go to zero, yielding +-- infinite damage. In that case, the player's body is displacing the +-- radioactive material, so the effective distance should remain non-zero. +-- We therefore apply a lower distance bound of sqrt(0.75) m, which is +-- the maximum distance one can get from the node centre within the node. +-- +-- A radioactive node is identified by being in the "radioactive" group, +-- and the group value signifies the strength of the radiation source. +-- The group value is the distance in millimetres from a node at which +-- an unshielded player will be damaged by 0.25 HP/s. Or, equivalently, +-- it is 2000 times the square root of the damage rate in HP/s that an +-- unshielded player 1 m away will take. +-- +-- Shielding is assessed by sampling every 0.25 m along the path +-- from the source to the player, ignoring the source node itself. +-- The summed shielding values from the sampled nodes yield a measure +-- of the total amount of shielding on the path. As in reality, +-- shielding causes exponential attenuation of radiation. However, the +-- effect is scaled down relative to real life. A metre of a node with +-- radiation resistance value R yields attenuation of sqrt(R)*0.1 nepers. +-- (In real life it would be about R*0.69 nepers, by the definition +-- of the radiation resistance values.) The sqrt part of this formula +-- scales down the differences between shielding types, reflecting the +-- game's simplification of making expensive materials such as gold +-- readily available in cubic metres. The multiplicative factor in the +-- formula scales down the difference between shielded and unshielded +-- safe distances, avoiding the latter becoming impractically large. +-- +-- Damage is processed at rates down to 0.25 HP/s, which in the absence of +-- shielding is attained at the distance specified by the "radioactive" +-- group value. Computed damage rates below 0.25 HP/s result in no +-- damage at all to the player. This gives the player an opportunity +-- to be safe, and limits the range at which source/player interactions +-- need to be considered. +local assumed_abdomen_offset = vector.new(0, 1, 0) +local assumed_abdomen_offset_length = vector.length(assumed_abdomen_offset) +local cache_scaled_shielding = {} +minetest.register_abm({ + nodenames = {"group:radioactive"}, + interval = 1, + chance = 1, + action = function (pos, node) + local strength = minetest.registered_nodes[node.name].groups.radioactive + for _, o in ipairs(minetest.get_objects_inside_radius(pos, strength*0.001 + assumed_abdomen_offset_length)) do + if o:is_player() then + local rel = vector.subtract(vector.add(o:getpos(), assumed_abdomen_offset), pos) + local dist_sq = vector.length_square(rel) + local dist = math.sqrt(dist_sq) + local dirstep = dist == 0 and vector.new(0,0,0) or vector.divide(rel, dist*4) + local intpos = pos + local shielding = 0 + for intdist = 0.25, dist, 0.25 do + intpos = vector.add(intpos, dirstep) + local intnodepos = vector.round(intpos) + if not vector.equals(intnodepos, pos) then + local sname = minetest.get_node(intnodepos).name + local sval = cache_scaled_shielding[sname] + if not sval then + sval = math.sqrt(node_radiation_resistance(sname)) * -0.025 + cache_scaled_shielding[sname] = sval + end + shielding = shielding + sval + end + end + local dmg_rate = 0.25e-6 * strength*strength * math.exp(shielding) / math.max(0.75, dist_sq) + if dmg_rate >= 0.25 then + local dmg_int = math.floor(dmg_rate) + if math.random() < dmg_rate-dmg_int then + dmg_int = dmg_int + 1 + end + if dmg_int > 0 then + o:set_hp(math.max(o:get_hp() - dmg_int, 0)) + end + end + end + end + end, +}) + +-- radioactive materials that can result from destroying a reactor + +for _, state in ipairs({ "flowing", "source" }) do + minetest.register_node("technic:corium_"..state, { + description = "distable uranium "..state, + drawtype = (state == "source" and "liquid" or "flowingliquid"), + [state == "source" and "tiles" or "special_tiles"] = {{ + name = "technic_corium_"..state.."_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 3.0, + }, + }}, + paramtype = "light", + paramtype2 = (state == "flowing" and "flowingliquid" or nil), + light_source = (state == "source" and 8 or 5), + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + drop = "", + drowning = 1, + liquidtype = state, + liquid_alternative_flowing = "technic:corium_flowing", + liquid_alternative_source = "technic:corium_source", + liquid_viscosity = LAVA_VISC, + liquid_renewable = false, + damage_per_second = 2, + radioaktive = 2, + post_effect_color = { a=192, r=80, g=160, b=80 }, + groups = { + liquid = 2, + + }, + }) +end + +if bucket and bucket.register_liquid then + bucket.register_liquid( + "technic:corium_source", + "technic:corium_flowing", + "technic:bucket_corium", + "technic_bucket_corium.png", + "Bucket of distabe uranium" + ) +end + + +minetest.register_craft({ + output = 'technic:bucket_corium', + recipe = { + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'bucket:bucket_empty', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + } +}) + + +minetest.register_node("technic:chernobylite_block", { + description = S("Chernobylite Block"), + tiles = { "technic_chernobylite_block.png" }, + is_ground_content = true, + groups = { cracky=1, radioactive=5000, level=2 }, + sounds = default.node_sound_stone_defaults(), + light_source = 2, + +}) + +minetest.register_abm({ + nodenames = {"group:water"}, + neighbors = {"technic:corium_source"}, + interval = 1, + chance = 1, + action = function (pos, node) + minetest.remove_node(pos) + end, +}) + +minetest.register_abm({ + nodenames = {"technic:corium_flowing"}, + neighbors = {"group:water"}, + interval = 1, + chance = 1, + action = function (pos, node) + minetest.set_node(pos, {name="default:stone"}) + end, +}) + +local griefing = technic.config:get_bool("enable_corium_griefing") + +minetest.register_abm({ + nodenames = {"technic:corium_flowing"}, + interval = 5, + chance = (griefing and 10 or 1), + action = function (pos, node) + minetest.set_node(pos, {name="air"}) + end, +}) + +if griefing then + minetest.register_abm({ + nodenames = { "technic:corium_source", "technic:corium_flowing" }, + interval = 4, + chance = 4, + action = function (pos, node) + for _, offset in ipairs({ + vector.new(1,0,0), + vector.new(-1,0,0), + vector.new(0,0,1), + vector.new(0,0,-1), + vector.new(0,-1,0), + }) do + if math.random(8) == 1 then + minetest.dig_node(vector.add(pos, offset)) + end + end + end, + }) +end diff --git a/mods/technic/technic/machines/HV/quarry.lua b/mods/technic/technic/machines/HV/quarry.lua new file mode 100644 index 0000000..3765441 --- /dev/null +++ b/mods/technic/technic/machines/HV/quarry.lua @@ -0,0 +1,243 @@ + +local S = technic.getter + +local quarry_dig_above_nodes = 3 -- How far above the quarry we will dig nodes +local quarry_max_depth = 100 +local quarry_demand = 10000 + +local function set_quarry_formspec(meta) + local radius = meta:get_int("size") + local formspec = "size[6,4.3]".. + "list[context;cache;0,1;4,3;]".. + "item_image[4.8,0;1,1;technic:quarry]".. + "label[0,0.2;"..S("%s Quarry"):format("HV").."]".. + "field[4.3,3.5;2,1;size;"..S("Radius:")..";"..radius.."]" + if meta:get_int("enabled") == 0 then + formspec = formspec.."button[4,1;2,1;enable;"..S("Disabled").."]" + else + formspec = formspec.."button[4,1;2,1;disable;"..S("Enabled").."]" + end + local diameter = radius*2 + 1 + local nd = meta:get_int("dug") + local rel_y = quarry_dig_above_nodes - math.floor(nd / (diameter*diameter)) + formspec = formspec.."label[0,4;"..minetest.formspec_escape( + nd == 0 and S("Digging not started") or + (rel_y < -quarry_max_depth and S("Digging finished") or + (meta:get_int("purge_on") == 1 and S("Purging cache") or + S("Digging %d m "..(rel_y > 0 and "above" or "below").." machine") + :format(math.abs(rel_y)))) + ).."]" + formspec = formspec.."button[4,2;2,1;restart;"..S("Restart").."]" + meta:set_string("formspec", formspec) +end + +local function set_quarry_demand(meta) + local radius = meta:get_int("size") + local diameter = radius*2 + 1 + local machine_name = S("%s Quarry"):format("HV") + if meta:get_int("enabled") == 0 or meta:get_int("purge_on") == 1 then + meta:set_string("infotext", S(meta:get_int("purge_on") == 1 and "%s purging cache" or "%s Disabled"):format(machine_name)) + meta:set_int("HV_EU_demand", 0) + elseif meta:get_int("dug") == diameter*diameter * (quarry_dig_above_nodes+1+quarry_max_depth) then + meta:set_string("infotext", S("%s Finished"):format(machine_name)) + meta:set_int("HV_EU_demand", 0) + else + meta:set_string("infotext", S(meta:get_int("HV_EU_input") >= quarry_demand and "%s Active" or "%s Unpowered"):format(machine_name)) + meta:set_int("HV_EU_demand", quarry_demand) + end +end + +local function quarry_receive_fields(pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + if fields.size and string.find(fields.size, "^[0-9]+$") then + local size = tonumber(fields.size) + if size >= 2 and size <= 8 and size ~= meta:get_int("size") then + meta:set_int("size", size) + meta:set_int("dug", 0) + end + end + if fields.enable then meta:set_int("enabled", 1) end + if fields.disable then meta:set_int("enabled", 0) end + if fields.restart then + meta:set_int("dug", 0) + meta:set_int("purge_on", 1) + end + set_quarry_formspec(meta) + set_quarry_demand(meta) +end + +local function quarry_handle_purge(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local i = 0 + for _,stack in ipairs(inv:get_list("cache")) do + i = i + 1 + if stack then + local item = stack:to_table() + if item then + technic.tube_inject_item(pos, pos, vector.new(0, 1, 0), item) + stack:clear() + inv:set_stack("cache", i, stack) + break + end + end + end + if inv:is_empty("cache") then + meta:set_int("purge_on", 0) + end +end + +local function quarry_run(pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + -- initialize cache for the case we load an older world + inv:set_size("cache", 12) + -- toss a coin whether we do an automatic purge. Chance 1:200 + local purge_rand = math.random() + if purge_rand <= 0.005 then + meta:set_int("purge_on", 1) + end + + if meta:get_int("enabled") and meta:get_int("HV_EU_input") >= quarry_demand and meta:get_int("purge_on") == 0 then + local pdir = minetest.facedir_to_dir(node.param2) + local qdir = pdir.x == 1 and vector.new(0,0,-1) or + (pdir.z == -1 and vector.new(-1,0,0) or + (pdir.x == -1 and vector.new(0,0,1) or + vector.new(1,0,0))) + local radius = meta:get_int("size") + local diameter = radius*2 + 1 + local startpos = vector.add(vector.add(vector.add(pos, + vector.new(0, quarry_dig_above_nodes, 0)), + pdir), + vector.multiply(qdir, -radius)) + local endpos = vector.add(vector.add(vector.add(startpos, + vector.new(0, -quarry_dig_above_nodes-quarry_max_depth, 0)), + vector.multiply(pdir, diameter-1)), + vector.multiply(qdir, diameter-1)) + local vm = VoxelManip() + local minpos, maxpos = vm:read_from_map(startpos, endpos) + local area = VoxelArea:new({MinEdge=minpos, MaxEdge=maxpos}) + local data = vm:get_data() + local c_air = minetest.get_content_id("air") + local owner = meta:get_string("owner") + local nd = meta:get_int("dug") + while nd ~= diameter*diameter * (quarry_dig_above_nodes+1+quarry_max_depth) do + local ry = math.floor(nd / (diameter*diameter)) + local ndl = nd % (diameter*diameter) + if ry % 2 == 1 then + ndl = diameter*diameter - 1 - ndl + end + local rq = math.floor(ndl / diameter) + local rp = ndl % diameter + if rq % 2 == 1 then rp = diameter - 1 - rp end + local digpos = vector.add(vector.add(vector.add(startpos, + vector.new(0, -ry, 0)), + vector.multiply(pdir, rp)), + vector.multiply(qdir, rq)) + local can_dig = true + if can_dig and minetest.is_protected and minetest.is_protected(digpos, owner) then + can_dig = false + end + local dignode + if can_dig then + dignode = technic.get_or_load_node(digpos) or minetest.get_node(digpos) + local dignodedef = minetest.registered_nodes[dignode.name] or {diggable=false} + if not dignodedef.diggable or (dignodedef.can_dig and not dignodedef.can_dig(digpos, nil)) then + can_dig = false + end + end + + if can_dig then + for ay = startpos.y, digpos.y+1, -1 do + local checkpos = {x=digpos.x, y=ay, z=digpos.z} + local checknode = technic.get_or_load_node(checkpos) or minetest.get_node(checkpos) + if checknode.name ~= "air" then + can_dig = false + break + end + end + end + nd = nd + 1 + if can_dig then + minetest.remove_node(digpos) + local drops = minetest.get_node_drops(dignode.name, "") + for _, dropped_item in ipairs(drops) do + local left = inv:add_item("cache", dropped_item) + while not left:is_empty() do + meta:set_int("purge_on", 1) + quarry_handle_purge(pos) + left = inv:add_item("cache", left) + end + end + break + end + end + if nd == diameter*diameter * (quarry_dig_above_nodes+1+quarry_max_depth) then + -- if a quarry is finished, we enable purge mode + meta:set_int("purge_on", 1) + end + meta:set_int("dug", nd) + else + -- if a quarry is disabled or has no power, we enable purge mode + meta:set_int("purge_on", 1) + end + -- if something triggered a purge, we handle it + if meta:get_int("purge_on") == 1 then + quarry_handle_purge(pos) + end + set_quarry_formspec(meta) + set_quarry_demand(meta) +end + +local function send_move_error(player) + minetest.chat_send_player(player:get_player_name(), + S("Manually taking/removing from cache by hand is not possible. ".. + "If you can't wait, restart or disable the quarry to start automatic purge.")) + return 0 +end + +minetest.register_node("technic:quarry", { + description = S("%s Quarry"):format("HV"), + tiles = {"technic_carbon_steel_block.png", "technic_carbon_steel_block.png", + "technic_carbon_steel_block.png", "technic_carbon_steel_block.png", + "technic_carbon_steel_block.png^default_tool_mesepick.png", "technic_carbon_steel_block.png"}, + inventory_image = minetest.inventorycube("technic_carbon_steel_block.png", + "technic_carbon_steel_block.png^default_tool_mesepick.png", + "technic_carbon_steel_block.png"), + paramtype2 = "facedir", + groups = {cracky=2, tubedevice=1, technic_machine = 1}, + tube = { + connect_sides = {top = 1}, + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("%s Quarry"):format("HV")) + meta:set_int("size", 4) + set_quarry_formspec(meta) + set_quarry_demand(meta) + end, + after_place_node = function(pos, placer, itemstack) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + pipeworks.scan_for_tube_objects(pos) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("cache") + end, + after_dig_node = pipeworks.scan_for_tube_objects, + on_receive_fields = quarry_receive_fields, + technic_run = quarry_run, + allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + return send_move_error(player) + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + return send_move_error(player) + end, + allow_metadata_inventory_take = function(pos, listname, index, stack, player) + return send_move_error(player) + end +}) + +technic.register_machine("HV", "technic:quarry", technic.receiver) diff --git a/mods/technic/technic/machines/HV/solar_array.lua b/mods/technic/technic/machines/HV/solar_array.lua new file mode 100644 index 0000000..06d250f --- /dev/null +++ b/mods/technic/technic/machines/HV/solar_array.lua @@ -0,0 +1,12 @@ +-- The high voltage solar array is an assembly of medium voltage arrays. +-- Solar arrays are not able to store large amounts of energy. + +minetest.register_craft({ + output = 'technic:solar_array_hv 1', + recipe = { + {'technic:solar_array_mv','technic:solar_array_mv'}, + } +}) + +technic.register_solar_array({tier="HV", power=100}) + diff --git a/mods/technic/technic/machines/LV/alloy_furnace.lua b/mods/technic/technic/machines/LV/alloy_furnace.lua new file mode 100644 index 0000000..c504e11 --- /dev/null +++ b/mods/technic/technic/machines/LV/alloy_furnace.lua @@ -0,0 +1,14 @@ +-- LV Alloy furnace + +-- FIXME: kpoppel: I'd like to introduce an induction heating element here... +minetest.register_craft({ + output = 'technic:lv_alloy_furnace', + recipe = { + {'default:stone','default:furnace','default:stone'}, + {'default:stone','gems:sapphire_gem','default:stone'}, + {'default:stone','default:furnace','default:stone'}, + } +}) + +technic.register_alloy_furnace({tier = "LV", speed = 1, demand = {300}}) + diff --git a/mods/technic/technic/machines/LV/battery_box.lua b/mods/technic/technic/machines/LV/battery_box.lua new file mode 100644 index 0000000..82e1fc4 --- /dev/null +++ b/mods/technic/technic/machines/LV/battery_box.lua @@ -0,0 +1,17 @@ + +minetest.register_craft({ + output = 'technic:lv_battery_box0', + recipe = { + {'gems:shadow_gem', 'gems:shadow_gem', 'gems:shadow_gem'}, + } +}) + +technic.register_battery_box({ + tier = "LV", + max_charge = 40000, + charge_rate = 1000, + discharge_rate = 4000, + charge_step = 500, + discharge_step = 800, +}) + diff --git a/mods/technic/technic/machines/LV/cables.lua b/mods/technic/technic/machines/LV/cables.lua new file mode 100644 index 0000000..74eee57 --- /dev/null +++ b/mods/technic/technic/machines/LV/cables.lua @@ -0,0 +1,12 @@ + +minetest.register_alias("lv_cable", "technic:lv_cable0") + +minetest.register_craft({ + output = 'technic:lv_cable0 1', + recipe = { + {'default:mese_crystal','default:mese_crystal','default:mese_crystal'}, + } +}) + +technic.register_cable("LV", 2/16) + diff --git a/mods/technic/technic/machines/LV/cnc.lua b/mods/technic/technic/machines/LV/cnc.lua new file mode 100644 index 0000000..5be288b --- /dev/null +++ b/mods/technic/technic/machines/LV/cnc.lua @@ -0,0 +1,218 @@ +-- Technic CNC v1.0 by kpoppel +-- Based on the NonCubic Blocks MOD v1.4 by yves_de_beck + +-- Idea: +-- Somehow have a tabbed/paged panel if the number of shapes should expand +-- beyond what is available in the panel today. +-- I could imagine some form of API allowing modders to come with their own node +-- box definitions and easily stuff it in the this machine for production. + +local S = technic.getter + +local shape = {} +local onesize_products = { + slope = 2, + slope_edge = 1, + slope_inner_edge = 1, + pyramid = 2, + spike = 1, + cylinder = 2, + sphere = 1, + stick = 8, + slope_upsdown = 2, + slope_edge_upsdown = 1, + slope_inner_edge_upsdown = 1, + cylinder_horizontal = 2, + slope_lying = 2, + onecurvededge = 1, + twocurvededge = 1, +} +local twosize_products = { + element_straight = 4, + element_end = 2, + element_cross = 1, + element_t = 1, + element_edge = 2, +} + +local cnc_formspec = + "invsize[9,11;]".. + "label[1,0;"..S("Choose Milling Program:").."]".. + "image_button[1,0.5;1,1;technic_cnc_slope.png;slope; ]".. + "image_button[2,0.5;1,1;technic_cnc_slope_edge.png;slope_edge; ]".. + "image_button[3,0.5;1,1;technic_cnc_slope_inner_edge.png;slope_inner_edge; ]".. + "image_button[4,0.5;1,1;technic_cnc_pyramid.png;pyramid; ]".. + "image_button[5,0.5;1,1;technic_cnc_spike.png;spike; ]".. + "image_button[6,0.5;1,1;technic_cnc_cylinder.png;cylinder; ]".. + "image_button[7,0.5;1,1;technic_cnc_sphere.png;sphere; ]".. + "image_button[8,0.5;1,1;technic_cnc_stick.png;stick; ]".. + + "image_button[1,1.5;1,1;technic_cnc_slope_upsdwn.png;slope_upsdown; ]".. + "image_button[2,1.5;1,1;technic_cnc_slope_edge_upsdwn.png;slope_edge_upsdown; ]".. + "image_button[3,1.5;1,1;technic_cnc_slope_inner_edge_upsdwn.png;slope_inner_edge_upsdown; ]".. + "image_button[4,1.5;1,1;technic_cnc_cylinder_horizontal.png;cylinder_horizontal; ]".. + + "image_button[1,2.5;1,1;technic_cnc_slope_lying.png;slope_lying; ]".. + "image_button[2,2.5;1,1;technic_cnc_onecurvededge.png;onecurvededge; ]".. + "image_button[3,2.5;1,1;technic_cnc_twocurvededge.png;twocurvededge; ]".. + + "label[1,3.5;"..S("Slim Elements half / normal height:").."]".. + + "image_button[1,4;1,0.5;technic_cnc_full.png;full; ]".. + "image_button[1,4.5;1,0.5;technic_cnc_half.png;half; ]".. + "image_button[2,4;1,1;technic_cnc_element_straight.png;element_straight; ]".. + "image_button[3,4;1,1;technic_cnc_element_end.png;element_end; ]".. + "image_button[4,4;1,1;technic_cnc_element_cross.png;element_cross; ]".. + "image_button[5,4;1,1;technic_cnc_element_t.png;element_t; ]".. + "image_button[6,4;1,1;technic_cnc_element_edge.png;element_edge; ]".. + + "label[0, 5.5;"..S("In:").."]".. + "list[current_name;src;0.5,5.5;1,1;]".. + "label[4, 5.5;"..S("Out:").."]".. + "list[current_name;dst;5,5.5;4,1;]".. + + "list[current_player;main;0,7;8,4;]" + +local size = 1; + +-- The form handler is declared here because we need it in both the inactive and active modes +-- in order to be able to change programs wile it is running. +local function form_handler(pos, formname, fields, sender) + -- REGISTER MILLING PROGRAMS AND OUTPUTS: + ------------------------------------------ + -- Program for half/full size + if fields["full"] then + size = 1 + return + end + + if fields["half"] then + size = 2 + return + end + + -- Resolve the node name and the number of items to make + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local inputstack = inv:get_stack("src", 1) + local inputname = inputstack:get_name() + local multiplier = 0 + for k, _ in pairs(fields) do + -- Set a multipier for the half/full size capable blocks + if twosize_products[k] ~= nil then + multiplier = size * twosize_products[k] + else + multiplier = onesize_products[k] + end + + if onesize_products[k] ~= nil or twosize_products[k] ~= nil then + meta:set_float( "cnc_multiplier", multiplier) + meta:set_string("cnc_user", sender:get_player_name()) + end + + if onesize_products[k] ~= nil or (twosize_products[k] ~= nil and size==2) then + meta:set_string("cnc_product", inputname .. "_technic_cnc_" .. k) + --print(inputname .. "_technic_cnc_" .. k) + break + end + + if twosize_products[k] ~= nil and size==1 then + meta:set_string("cnc_product", inputname .. "_technic_cnc_" .. k .. "_double") + --print(inputname .. "_technic_cnc_" .. k .. "_double") + break + end + end + return +end + +-- Action code performing the transformation +local run = function(pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local eu_input = meta:get_int("LV_EU_input") + local machine_name = S("%s CNC Machine"):format("LV") + local machine_node = "technic:cnc" + local demand = 450 + + local result = meta:get_string("cnc_product") + if inv:is_empty("src") or + (not minetest.registered_nodes[result]) or + (not inv:room_for_item("dst", result)) then + technic.swap_node(pos, machine_node) + meta:set_string("infotext", S("%s Idle"):format(machine_name)) + meta:set_string("cnc_product", "") + meta:set_int("LV_EU_demand", 0) + return + end + + if eu_input < demand then + technic.swap_node(pos, machine_node) + meta:set_string("infotext", S("%s Unpowered"):format(machine_name)) + elseif eu_input >= demand then + technic.swap_node(pos, machine_node.."_active") + meta:set_string("infotext", S("%s Active"):format(machine_name)) + meta:set_int("src_time", meta:get_int("src_time") + 1) + if meta:get_int("src_time") >= 3 then -- 3 ticks per output + meta:set_int("src_time", 0) + srcstack = inv:get_stack("src", 1) + srcstack:take_item() + inv:set_stack("src", 1, srcstack) + inv:add_item("dst", result.." "..meta:get_int("cnc_multiplier")) + end + end + meta:set_int("LV_EU_demand", demand) +end + +-- The actual block inactive state +minetest.register_node("technic:cnc", { + description = S("%s CNC Machine"):format("LV"), + tiles = {"technic_cnc_top.png", "technic_cnc_bottom.png", "technic_cnc_side.png", + "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front.png"}, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + }, + groups = {cracky=2, technic_machine=1}, + legacy_facedir_simple = true, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("%s CNC Machine"):format("LV")) + meta:set_float("technic_power_machine", 1) + meta:set_string("formspec", cnc_formspec) + local inv = meta:get_inventory() + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + on_receive_fields = form_handler, + technic_run = run, +}) + +-- Active state block +minetest.register_node("technic:cnc_active", { + description = S("%s CNC Machine"):format("LV"), + tiles = {"technic_cnc_top_active.png", "technic_cnc_bottom.png", "technic_cnc_side.png", + "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front_active.png"}, + paramtype2 = "facedir", + drop = "technic:cnc", + groups = {cracky=2, technic_machine=1, not_in_creative_inventory=1}, + legacy_facedir_simple = true, + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + on_receive_fields = form_handler, + technic_run = run, + technic_disabled_machine_name = "technic:cnc", +}) + +technic.register_machine("LV", "technic:cnc", technic.receiver) +technic.register_machine("LV", "technic:cnc_active", technic.receiver) diff --git a/mods/technic/technic/machines/LV/cnc_api.lua b/mods/technic/technic/machines/LV/cnc_api.lua new file mode 100644 index 0000000..cc54271 --- /dev/null +++ b/mods/technic/technic/machines/LV/cnc_api.lua @@ -0,0 +1,364 @@ +-- API for the technic CNC machine +-- Again code is adapted from the NonCubic Blocks MOD v1.4 by yves_de_beck + +local S = technic.getter + +technic.cnc = {} + +-- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES: +------------------------------------------------------ + +-- Define slope boxes for the various nodes +------------------------------------------- +technic.cnc.programs = { + { suffix = "technic_cnc_stick", + model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}, + desc = S("Stick") + }, + + { suffix = "technic_cnc_element_end_double", + model = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5}, + desc = S("Element End Double") + }, + + { suffix = "technic_cnc_element_cross_double", + model = { + {0.3, -0.5, -0.3, 0.5, 0.5, 0.3}, + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5}, + {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}}, + desc = S("Element Cross Double") + }, + + { suffix = "technic_cnc_element_t_double", + model = { + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}, + {0.3, -0.5, -0.3, 0.5, 0.5, 0.3}}, + desc = S("Element T Double") + }, + + { suffix = "technic_cnc_element_edge_double", + model = { + {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}}, + desc = S("Element Edge Double") + }, + + { suffix = "technic_cnc_element_straight_double", + model = {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5}, + desc = S("Element Straight Double") + }, + + { suffix = "technic_cnc_element_end", + model = {-0.3, -0.5, -0.3, 0.3, 0, 0.5}, + desc = S("Element End") + }, + + { suffix = "technic_cnc_element_cross", + model = { + {0.3, -0.5, -0.3, 0.5, 0, 0.3}, + {-0.3, -0.5, -0.5, 0.3, 0, 0.5}, + {-0.5, -0.5, -0.3, -0.3, 0, 0.3}}, + desc = S("Element Cross") + }, + + { suffix = "technic_cnc_element_t", + model = { + {-0.3, -0.5, -0.5, 0.3, 0, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0, 0.3}, + {0.3, -0.5, -0.3, 0.5, 0, 0.3}}, + desc = S("Element T") + }, + + { suffix = "technic_cnc_element_edge", + model = { + {-0.3, -0.5, -0.5, 0.3, 0, 0.3}, + {-0.5, -0.5, -0.3, -0.3, 0, 0.3}}, + desc = S("Element Edge") + }, + + { suffix = "technic_cnc_element_straight", + model = {-0.3, -0.5, -0.5, 0.3, 0, 0.5}, + desc = S("Element Straight") + }, + + { suffix = "technic_cnc_sphere", + model = "technic_oblatesphere.obj", + desc = S("Oblate Sphere"), + cbox = { + type = "fixed", + fixed = { + { -6/16, 4/16, -6/16, 6/16, 8/16, 6/16 }, + { -8/16, -4/16, -8/16, 8/16, 4/16, 8/16 }, + { -6/16, -8/16, -6/16, 6/16, -4/16, 6/16 } + } + } + }, + + { suffix = "technic_cnc_cylinder_horizontal", + model = "technic_cylinder_horizontal.obj", + desc = S("Horizontal Cylinder") + }, + + { suffix = "technic_cnc_cylinder", + model = "technic_cylinder.obj", + desc = S("Cylinder") + }, + + { suffix = "technic_cnc_twocurvededge", + model = "technic_two_curved_edge.obj", + desc = S("Two Curved Edge/Corner Block") + }, + + { suffix = "technic_cnc_onecurvededge", + model = "technic_one_curved_edge.obj", + desc = S("One Curved Edge Block") + }, + + { suffix = "technic_cnc_spike", + model = "technic_pyramid_spike.obj", + desc = S("Spike"), + cbox = { + type = "fixed", + fixed = { + { -2/16, 4/16, -2/16, 2/16, 8/16, 2/16 }, + { -4/16, 0, -4/16, 4/16, 4/16, 4/16 }, + { -6/16, -4/16, -6/16, 6/16, 0, 6/16 }, + { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 } + } + } + }, + + { suffix = "technic_cnc_pyramid", + model = "technic_pyramid.obj", + desc = S("Pyramid"), + cbox = { + type = "fixed", + fixed = { + { -2/16, -2/16, -2/16, 2/16, 0, 2/16 }, + { -4/16, -4/16, -4/16, 4/16, -2/16, 4/16 }, + { -6/16, -6/16, -6/16, 6/16, -4/16, 6/16 }, + { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 } + } + } + }, + + { suffix = "technic_cnc_slope_inner_edge_upsdown", + model = "technic_innercorner_upsdown.obj", + desc = S("Slope Upside Down Inner Edge/Corner"), + sbox = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + cbox = { + type = "fixed", + fixed = { + { 0.25, -0.25, -0.5, 0.5, -0.5, 0.5 }, + { -0.5, -0.25, 0.25, 0.5, -0.5, 0.5 }, + { 0, 0, -0.5, 0.5, -0.25, 0.5 }, + { -0.5, 0, 0, 0.5, -0.25, 0.5 }, + { -0.25, 0.25, -0.5, 0.5, 0, -0.25 }, + { -0.5, 0.25, -0.25, 0.5, 0, 0.5 }, + { -0.5, 0.5, -0.5, 0.5, 0.25, 0.5 } + } + } + }, + + { suffix = "technic_cnc_slope_edge_upsdown", + model = "technic_outercorner_upsdown.obj", + desc = S("Slope Upside Down Outer Edge/Corner"), + cbox = { + type = "fixed", + fixed = { + { -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 }, + { -4/16, 4/16, -4/16, 8/16, 0, 8/16 }, + { 0, 0, 0, 8/16, -4/16, 8/16 }, + { 4/16, -4/16, 4/16, 8/16, -8/16, 8/16 } + } + } + }, + + { suffix = "technic_cnc_slope_inner_edge", + model = "technic_innercorner.obj", + desc = S("Slope Inner Edge/Corner"), + sbox = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } + }, + cbox = { + 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.25, -0.25, -0.5, 0.5, 0, -0.25 }, + { -0.5, 0, 0, 0.5, 0.25, 0.5 }, + { 0, 0, -0.5, 0.5, 0.25, 0.5 }, + { -0.5, 0.25, 0.25, 0.5, 0.5, 0.5 }, + { 0.25, 0.25, -0.5, 0.5, 0.5, 0.5 } + } + } + }, + + { suffix = "technic_cnc_slope_edge", + model = "technic_outercorner.obj", + desc = S("Slope Outer Edge/Corner"), + cbox = { + type = "fixed", + fixed = { + { 4/16, 4/16, 4/16, 8/16, 8/16, 8/16 }, + { 0, 0, 0, 8/16, 4/16, 8/16 }, + { -4/16, -4/16, -4/16, 8/16, 0, 8/16 }, + { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 } + } + } + }, + + { suffix = "technic_cnc_slope_upsdown", + model = "technic_slope_upsdown.obj", + desc = S("Slope Upside Down"), + cbox = { + type = "fixed", + fixed = { + { -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 }, + { -8/16, 4/16, -4/16, 8/16, 0, 8/16 }, + { -8/16, 0, 0, 8/16, -4/16, 8/16 }, + { -8/16, -4/16, 4/16, 8/16, -8/16, 8/16 } + } + } + }, + + { suffix = "technic_cnc_slope_lying", + model = "technic_slope_horizontal.obj", + desc = S("Slope Lying"), + cbox = { + type = "fixed", + fixed = { + { 4/16, -8/16, 4/16, 8/16, 8/16, 8/16 }, + { 0, -8/16, 0, 4/16, 8/16, 8/16 }, + { -4/16, -8/16, -4/16, 0, 8/16, 8/16 }, + { -8/16, -8/16, -8/16, -4/16, 8/16, 8/16 } + } + } + }, + + { suffix = "technic_cnc_slope", + model = "technic_slope.obj", + desc = S("Slope"), + cbox = { + type = "fixed", + fixed = { + { -8/16, 4/16, 4/16, 8/16, 8/16, 8/16 }, + { -8/16, 0, 0, 8/16, 4/16, 8/16 }, + { -8/16, -4/16, -4/16, 8/16, 0, 8/16 }, + { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 } + } + } + }, + +} + +-- Allow disabling certain programs for some node. Default is allowing all types for all nodes +technic.cnc.programs_disable = { + -- ["default:brick"] = {"technic_cnc_stick"}, -- Example: Disallow the stick for brick + -- ... + ["default:dirt"] = {"technic_cnc_sphere", "technic_cnc_slope_upsdown", "technic_cnc_edge", + "technic_cnc_inner_edge", "technic_cnc_slope_edge_upsdown", + "technic_cnc_slope_inner_edge_upsdown", "technic_cnc_stick", + "technic_cnc_cylinder_horizontal"} +} + +-- Generic function for registering all the different node types +function technic.cnc.register_program(recipeitem, suffix, model, groups, images, description, cbox, sbox) + + local dtype + local nodeboxdef + local meshdef + + if type(model) ~= "string" then -- assume a nodebox if it's a table or function call + dtype = "nodebox" + nodeboxdef = { + type = "fixed", + fixed = model + } + else + dtype = "mesh" + meshdef = model + end + + if cbox and not sbox then sbox = cbox end + + minetest.register_node(":"..recipeitem.."_"..suffix, { + description = description, + drawtype = dtype, + node_box = nodeboxdef, + mesh = meshdef, + tiles = images, + paramtype = "light", + paramtype2 = "facedir", + walkable = true, + groups = groups, + selection_box = sbox, + collision_box = cbox + }) +end + +-- function to iterate over all the programs the CNC machine knows +function technic.cnc.register_all(recipeitem, groups, images, description) + for _, data in ipairs(technic.cnc.programs) do + -- Disable node creation for disabled node types for some material + local do_register = true + if technic.cnc.programs_disable[recipeitem] ~= nil then + for __, disable in ipairs(technic.cnc.programs_disable[recipeitem]) do + if disable == data.suffix then + do_register = false + end + end + end + -- Create the node if it passes the test + if do_register then + technic.cnc.register_program(recipeitem, data.suffix, data.model, + groups, images, description.." "..data.desc, data.cbox, data.sbox) + end + end +end + + +-- REGISTER NEW TECHNIC_CNC_API's PART 2: technic.cnc..register_element_end(subname, recipeitem, groups, images, desc_element_xyz) +----------------------------------------------------------------------------------------------------------------------- +function technic.cnc.register_slope_edge_etc(recipeitem, groups, images, desc_slope, desc_slope_lying, desc_slope_upsdown, desc_slope_edge, desc_slope_inner_edge, desc_slope_upsdwn_edge, desc_slope_upsdwn_inner_edge, desc_pyramid, desc_spike, desc_onecurvededge, desc_twocurvededge, desc_cylinder, desc_cylinder_horizontal, desc_sphere, desc_element_straight, desc_element_edge, desc_element_t, desc_element_cross, desc_element_end) + + technic.cnc.register_slope(recipeitem, groups, images, desc_slope) + technic.cnc.register_slope_lying(recipeitem, groups, images, desc_slope_lying) + technic.cnc.register_slope_upsdown(recipeitem, groups, images, desc_slope_upsdown) + technic.cnc.register_slope_edge(recipeitem, groups, images, desc_slope_edge) + technic.cnc.register_slope_inner_edge(recipeitem, groups, images, desc_slope_inner_edge) + technic.cnc.register_slope_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_edge) + technic.cnc.register_slope_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge) + technic.cnc.register_pyramid(recipeitem, groups, images, desc_pyramid) + technic.cnc.register_spike(recipeitem, groups, images, desc_spike) + technic.cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge) + technic.cnc.register_twocurvededge(recipeitem, groups, images, desc_twocurvededge) + technic.cnc.register_cylinder(recipeitem, groups, images, desc_cylinder) + technic.cnc.register_cylinder_horizontal(recipeitem, groups, images, desc_cylinder_horizontal) + technic.cnc.register_sphere(recipeitem, groups, images, desc_sphere) + technic.cnc.register_element_straight(recipeitem, groups, images, desc_element_straight) + technic.cnc.register_element_edge(recipeitem, groups, images, desc_element_edge) + technic.cnc.register_element_t(recipeitem, groups, images, desc_element_t) + technic.cnc.register_element_cross(recipeitem, groups, images, desc_element_cross) + technic.cnc.register_element_end(recipeitem, groups, images, desc_element_end) +end + +-- REGISTER STICKS: noncubic.register_xyz(recipeitem, groups, images, desc_element_xyz) +------------------------------------------------------------------------------------------------------------ +function technic.cnc.register_stick_etc(recipeitem, groups, images, desc_stick) + technic.cnc.register_stick(recipeitem, groups, images, desc_stick) +end + +function technic.cnc.register_elements(recipeitem, groups, images, desc_element_straight_double, desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double) + technic.cnc.register_element_straight_double(recipeitem, groups, images, desc_element_straight_double) + technic.cnc.register_element_edge_double(recipeitem, groups, images, desc_element_edge_double) + technic.cnc.register_element_t_double(recipeitem, groups, images, desc_element_t_double) + technic.cnc.register_element_cross_double(recipeitem, groups, images, desc_element_cross_double) + technic.cnc.register_element_end_double(recipeitem, groups, images, desc_element_end_double) +end + diff --git a/mods/technic/technic/machines/LV/cnc_nodes.lua b/mods/technic/technic/machines/LV/cnc_nodes.lua new file mode 100644 index 0000000..b250bc8 --- /dev/null +++ b/mods/technic/technic/machines/LV/cnc_nodes.lua @@ -0,0 +1,96 @@ +-- REGISTER MATERIALS AND PROPERTIES FOR NONCUBIC ELEMENTS: +----------------------------------------------------------- + +local S = technic.getter + +-- DIRT +------- +technic.cnc.register_all("default:dirt", + {snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1}, + {"default_grass.png", "default_dirt.png", "default_grass.png"}, + S("Dirt")) +technic.cnc.programs_disable["default:dirt"] = {"technic_cnc_sphere", "technic_cnc_slope_upsdown", + "technic_cnc_edge", "technic_cnc_inner_edge", + "technic_cnc_slope_edge_upsdown", "technic_cnc_slope_inner_edge_upsdown", + "technic_cnc_stick", "technic_cnc_cylinder_horizontal"} + +-- WOOD +------- +technic.cnc.register_all("default:wood", + {snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1}, + {"default_wood.png"}, + S("Wooden")) +-- STONE +-------- +technic.cnc.register_all("default:stone", + {cracky=3, not_in_creative_inventory=1}, + {"default_stone.png"}, + S("Stone")) +-- COBBLE +--------- +technic.cnc.register_all("default:cobble", + {cracky=3, not_in_creative_inventory=1}, + {"default_cobble.png"}, + S("Cobble")) +-- BRICK +-------- +technic.cnc.register_all("default:brick", + {cracky=3, not_in_creative_inventory=1}, + {"default_brick.png"}, + S("Brick")) + +-- SANDSTONE +------------ +technic.cnc.register_all("default:sandstone", + {crumbly=2, cracky=3, not_in_creative_inventory=1}, + {"default_sandstone.png"}, + S("Sandstone")) + +-- LEAVES +--------- +technic.cnc.register_all("default:leaves", + {snappy=2, choppy=2, oddly_breakable_by_hand=3, not_in_creative_inventory=1}, + {"default_leaves.png"}, + S("Leaves")) +-- TREE +------- +technic.cnc.register_all("default:tree", + {snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3, wood=1, not_in_creative_inventory=1}, + {"default_tree.png"}, + S("Tree")) + +-- WROUGHT IRON +--------------- +technic.cnc.register_all("default:steelblock", + {cracky=1, level=2, not_in_creative_inventory=1}, + {"technic_wrought_iron_block.png"}, + S("Wrought Iron")) + +-- Bronze +-------- +technic.cnc.register_all("default:bronzeblock", + {cracky=1, level=2, not_in_creative_inventory=1}, + {"default_bronze_block.png"}, + S("Bronze")) + +-- Stainless Steel +-------- +technic.cnc.register_all("technic:stainless_steel_block", + {cracky=1, level=2, not_in_creative_inventory=1}, + {"technic_stainless_steel_block.png"}, + S("Stainless Steel")) + +-- Marble +------------ +technic.cnc.register_all("technic:marble", + {cracky=3, not_in_creative_inventory=1}, + {"technic_marble.png"}, + S("Marble")) + +-- Granite +------------ +technic.cnc.register_all("technic:granite", + {cracky=1, not_in_creative_inventory=1}, + {"technic_granite.png"}, + S("Granite")) + diff --git a/mods/technic/technic/machines/LV/coal_alloy_furnace.lua b/mods/technic/technic/machines/LV/coal_alloy_furnace.lua new file mode 100644 index 0000000..0f8cdb6 --- /dev/null +++ b/mods/technic/technic/machines/LV/coal_alloy_furnace.lua @@ -0,0 +1,165 @@ + +-- Fuel driven alloy furnace. This uses no EUs: + +local S = technic.getter + +minetest.register_craft({ + output = 'technic:coal_alloy_furnace', + recipe = { + {'default:brick','default:brick','default:brick'}, + {'default:brick','','default:brick'}, + {'default:brick','default:brick','default:brick'}, + } +}) + +local machine_name = S("Fuel-Fired Alloy Furnace") +local formspec = + "size[8,9]".. + "label[0,0;"..machine_name.."]".. + "image[2,2;1,1;default_furnace_fire_bg.png]".. + "list[current_name;fuel;2,3;1,1;]".. + "list[current_name;src;2,1;2,1;]".. + "list[current_name;dst;5,1;2,2;]".. + "list[current_player;main;0,5;8,4;]" + +minetest.register_node("technic:coal_alloy_furnace", { + description = machine_name, + tiles = {"technic_coal_alloy_furnace_top.png", "technic_coal_alloy_furnace_bottom.png", + "technic_coal_alloy_furnace_side.png", "technic_coal_alloy_furnace_side.png", + "technic_coal_alloy_furnace_side.png", "technic_coal_alloy_furnace_front.png"}, + paramtype2 = "facedir", + groups = {cracky=2}, + legacy_facedir_simple = true, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", formspec) + meta:set_string("infotext", machine_name) + local inv = meta:get_inventory() + inv:set_size("fuel", 1) + inv:set_size("src", 2) + inv:set_size("dst", 4) + end, + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, +}) + +minetest.register_node("technic:coal_alloy_furnace_active", { + description = machine_name, + tiles = {"technic_coal_alloy_furnace_top.png", "technic_coal_alloy_furnace_bottom.png", + "technic_coal_alloy_furnace_side.png", "technic_coal_alloy_furnace_side.png", + "technic_coal_alloy_furnace_side.png", "technic_coal_alloy_furnace_front_active.png"}, + paramtype2 = "facedir", + light_source = 8, + drop = "technic:coal_alloy_furnace", + groups = {cracky=2, not_in_creative_inventory=1}, + legacy_facedir_simple = true, + sounds = default.node_sound_stone_defaults(), + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, +}) + +minetest.register_abm({ + nodenames = {"technic:coal_alloy_furnace", "technic:coal_alloy_furnace_active"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + + if inv:get_size("src") == 1 then -- Old furnace -> convert it + inv:set_size("src", 2) + inv:set_stack("src", 2, inv:get_stack("src2", 1)) + inv:set_size("src2", 0) + end + + local recipe = nil + + for i, name in pairs({ + "fuel_totaltime", + "fuel_time", + "src_totaltime", + "src_time"}) do + if not meta:get_float(name) then + meta:set_float(name, 0.0) + end + end + + -- Get what to cook if anything + local result = technic.get_recipe("alloy", inv:get_list("src")) + + local was_active = false + + if meta:get_float("fuel_time") < meta:get_float("fuel_totaltime") then + was_active = true + meta:set_int("fuel_time", meta:get_int("fuel_time") + 1) + if result then + meta:set_int("src_time", meta:get_int("src_time") + 1) + if meta:get_int("src_time") >= result.time then + meta:set_int("src_time", 0) + local result_stack = ItemStack(result.output) + if inv:room_for_item("dst", result_stack) then + inv:set_list("src", result.new_input) + inv:add_item("dst", result_stack) + end + end + else + meta:set_int("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", S("%s Active"):format(machine_name).." ("..percent.."%)") + technic.swap_node(pos, "technic:coal_alloy_furnace_active") + meta:set_string("formspec", + "size[8,9]".. + "label[0,0;"..machine_name.."]".. + "image[2,2;1,1;default_furnace_fire_bg.png^[lowpart:".. + (100 - percent)..":default_furnace_fire_fg.png]".. + "list[current_name;fuel;2,3;1,1;]".. + "list[current_name;src;2,1;2,1;]".. + "list[current_name;dst;5,1;2,2;]".. + "list[current_player;main;0,5;8,4;]") + return + end + + local recipe = technic.get_recipe("alloy", inv:get_list("src")) + + if not recipe then + if was_active then + meta:set_string("infotext", S("%s is empty"):format(machine_name)) + technic.swap_node(pos, "technic:coal_alloy_furnace") + meta:set_string("formspec", formspec) + end + return + end + + -- Next take a hard look at the fuel situation + local fuel = nil + local afterfuel + local fuellist = inv:get_list("fuel") + + if fuellist then + fuel, afterfuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist}) + end + + if fuel.time <= 0 then + meta:set_string("infotext", S("%s Out Of Fuel"):format(machine_name)) + technic.swap_node(pos, "technic:coal_alloy_furnace") + meta:set_string("formspec", formspec) + return + end + + meta:set_string("fuel_totaltime", fuel.time) + meta:set_string("fuel_time", 0) + + inv:set_stack("fuel", 1, afterfuel.items[1]) + end, +}) + diff --git a/mods/technic/technic/machines/LV/coal_furnace.lua b/mods/technic/technic/machines/LV/coal_furnace.lua new file mode 100644 index 0000000..53a0f8b --- /dev/null +++ b/mods/technic/technic/machines/LV/coal_furnace.lua @@ -0,0 +1,5 @@ +local S = technic.getter + +if minetest.registered_nodes["default:furnace"].description == "Furnace" then + minetest.override_item("default:furnace", { description = S("Fuel-Fired Furnace") }) +end diff --git a/mods/technic/technic/machines/LV/compressor.lua b/mods/technic/technic/machines/LV/compressor.lua new file mode 100644 index 0000000..ac7916e --- /dev/null +++ b/mods/technic/technic/machines/LV/compressor.lua @@ -0,0 +1,3 @@ + +minetest.register_alias("compressor", "technic:lv_compressor") +technic.register_compressor({tier = "LV", demand = {300}, speed = 1}) diff --git a/mods/technic/technic/machines/LV/electric_furnace.lua b/mods/technic/technic/machines/LV/electric_furnace.lua new file mode 100644 index 0000000..2e1a7e2 --- /dev/null +++ b/mods/technic/technic/machines/LV/electric_furnace.lua @@ -0,0 +1,16 @@ +-- LV Electric Furnace +-- This is a faster version of the stone furnace which runs on EUs + +-- FIXME: kpoppel I'd like to introduce an induction heating element here also +minetest.register_craft({ + output = 'technic:lv_electric_furnace', + recipe = { + {'default:cobble','default:furnace','default:cobble'}, + {'default:cobble','gems:sapphire_gem','default:cobble'}, + {'default:cobble','default:furnace','default:cobble'}, + } +}) + +technic.register_electric_furnace({tier="LV", demand={300}, speed = 2}) + + diff --git a/mods/technic/technic/machines/LV/extractor.lua b/mods/technic/technic/machines/LV/extractor.lua new file mode 100644 index 0000000..172919f --- /dev/null +++ b/mods/technic/technic/machines/LV/extractor.lua @@ -0,0 +1,3 @@ + +minetest.register_alias("extractor", "technic:lv_extractor") +technic.register_extractor({tier = "LV", demand = {300}, speed = 1}) diff --git a/mods/technic/technic/machines/LV/generator.lua b/mods/technic/technic/machines/LV/generator.lua new file mode 100644 index 0000000..783f376 --- /dev/null +++ b/mods/technic/technic/machines/LV/generator.lua @@ -0,0 +1,18 @@ +-- The electric generator. +-- A simple device to get started on the electric machines. +-- Inefficient and expensive in fuel (200EU per tick) +-- Also only allows for LV machinery to run. + +minetest.register_alias("lv_generator", "technic:lv_generator") + +minetest.register_craft({ + output = 'technic:lv_generator', + recipe = { + {'default:stone','default:furnace','default:stone'}, + {'default:stone','gems:ruby_gem','default:stone'}, + {'default:stone','default:furnace','default:stone'}, + } +}) + +technic.register_generator({tier="LV", supply=200}) + diff --git a/mods/technic/technic/machines/LV/geothermal.lua b/mods/technic/technic/machines/LV/geothermal.lua new file mode 100644 index 0000000..f1297dd --- /dev/null +++ b/mods/technic/technic/machines/LV/geothermal.lua @@ -0,0 +1,102 @@ +-- A geothermal EU generator +-- Using hot lava and water this device can create energy from steam +-- The machine is only producing LV EUs and can thus not drive more advanced equipment +-- The output is a little more than the coal burning generator (max 300EUs) + +minetest.register_alias("geothermal", "technic:geothermal") + +local S = technic.getter + +minetest.register_craftitem("technic:geothermal", { + description = S("Geothermal %s Generator"):format("LV"), +}) + +local check_node_around = function(pos) + local node = minetest.get_node(pos) + if node.name == "default:water_source" or node.name == "default:water_flowing" then return 1 end + if node.name == "default:lava_source" or node.name == "default:lava_flowing" then return 2 end + return 0 +end + +local run = function(pos, node) + local meta = minetest.get_meta(pos) + local water_nodes = 0 + local lava_nodes = 0 + local production_level = 0 + local eu_supply = 0 + + -- Correct positioning is water on one side and lava on the other. + -- The two cannot be adjacent because the lava the turns into obsidian or rock. + -- To get to 100% production stack the water and lava one extra block down as well: + -- WGL (W=Water, L=Lava, G=the generator, |=an LV cable) + -- W|L + + local positions = { + {x=pos.x+1, y=pos.y, z=pos.z}, + {x=pos.x+1, y=pos.y-1, z=pos.z}, + {x=pos.x-1, y=pos.y, z=pos.z}, + {x=pos.x-1, y=pos.y-1, z=pos.z}, + {x=pos.x, y=pos.y, z=pos.z+1}, + {x=pos.x, y=pos.y-1, z=pos.z+1}, + {x=pos.x, y=pos.y, z=pos.z-1}, + {x=pos.x, y=pos.y-1, z=pos.z-1}, + } + for _, p in pairs(positions) do + local check = check_node_around(p) + if check == 1 then water_nodes = water_nodes + 1 end + if check == 2 then lava_nodes = lava_nodes + 1 end + end + + if water_nodes == 1 and lava_nodes == 1 then production_level = 25; eu_supply = 50 end + if water_nodes == 2 and lava_nodes == 1 then production_level = 50; eu_supply = 100 end + if water_nodes == 1 and lava_nodes == 2 then production_level = 75; eu_supply = 200 end + if water_nodes == 2 and lava_nodes == 2 then production_level = 100; eu_supply = 300 end + + if production_level > 0 then + meta:set_int("LV_EU_supply", eu_supply) + end + + meta:set_string("infotext", + S("Geothermal %s Generator"):format("LV").." ("..production_level.."%)") + + if production_level > 0 and minetest.get_node(pos).name == "technic:geothermal" then + technic.swap_node (pos, "technic:geothermal_active") + return + end + if production_level == 0 then + technic.swap_node(pos, "technic:geothermal") + meta:set_int("LV_EU_supply", 0) + end +end + +minetest.register_node("technic:geothermal", { + description = S("Geothermal %s Generator"):format("LV"), + tiles = {"technic_geothermal_top.png", "technic_machine_bottom.png", "technic_geothermal_side.png", + "technic_geothermal_side.png", "technic_geothermal_side.png", "technic_geothermal_side.png"}, + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("Geothermal %s Generator"):format("LV")) + meta:set_int("LV_EU_supply", 0) + end, + technic_run = run, +}) + +minetest.register_node("technic:geothermal_active", { + description = S("Geothermal %s Generator"):format("LV"), + tiles = {"technic_geothermal_top_active.png", "technic_machine_bottom.png", "technic_geothermal_side.png", + "technic_geothermal_side.png", "technic_geothermal_side.png", "technic_geothermal_side.png"}, + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, not_in_creative_inventory=1}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + drop = "technic:geothermal", + technic_run = run, +}) + +technic.register_machine("LV", "technic:geothermal", technic.producer) +technic.register_machine("LV", "technic:geothermal_active", technic.producer) + diff --git a/mods/technic/technic/machines/LV/grinder.lua b/mods/technic/technic/machines/LV/grinder.lua new file mode 100644 index 0000000..942d61d --- /dev/null +++ b/mods/technic/technic/machines/LV/grinder.lua @@ -0,0 +1,5 @@ + +minetest.register_alias("grinder", "technic:grinder") + +technic.register_grinder({tier="LV", demand={200}, speed=1}) + diff --git a/mods/technic/technic/machines/LV/init.lua b/mods/technic/technic/machines/LV/init.lua new file mode 100644 index 0000000..f8778cd --- /dev/null +++ b/mods/technic/technic/machines/LV/init.lua @@ -0,0 +1,33 @@ + +technic.register_tier("LV", "Low Voltage") + +local path = technic.modpath.."/machines/LV" + +-- Wiring stuff +dofile(path.."/cables.lua") +dofile(path.."/battery_box.lua") + +-- Generators +dofile(path.."/solar_panel.lua") +dofile(path.."/solar_array.lua") +dofile(path.."/geothermal.lua") +dofile(path.."/water_mill.lua") +dofile(path.."/generator.lua") + +-- Coal-powered machines (TODO -> move to somewhere else?) +dofile(path.."/coal_alloy_furnace.lua") +dofile(path.."/coal_furnace.lua") + +-- Machines +dofile(path.."/alloy_furnace.lua") +dofile(path.."/electric_furnace.lua") +dofile(path.."/grinder.lua") +dofile(path.."/extractor.lua") +dofile(path.."/compressor.lua") + +dofile(path.."/music_player.lua") + +dofile(path.."/cnc.lua") +dofile(path.."/cnc_api.lua") +dofile(path.."/cnc_nodes.lua") + diff --git a/mods/technic/technic/machines/LV/music_player.lua b/mods/technic/technic/machines/LV/music_player.lua new file mode 100644 index 0000000..6231ddc --- /dev/null +++ b/mods/technic/technic/machines/LV/music_player.lua @@ -0,0 +1,122 @@ +-- LV Music player. +-- The player can play music. But it is high ampage! + +local S = technic.getter + +minetest.register_alias("music_player", "technic:music_player") + +local music_handles = {} + +local function play_track(pos, track) + return minetest.sound_play("technic_track"..tostring(track), + {pos = pos, gain = 1.0, loop = true, max_hear_distance = 72,}) +end + +local run = function(pos, node) + local meta = minetest.get_meta(pos) + local eu_input = meta:get_int("LV_EU_input") + local machine_name = S("%s Music Player"):format("LV") + local machine_node = "technic:music_player" + local demand = 150 + + local current_track = meta:get_int("current_track") + local pos_hash = minetest.hash_node_position(pos) + local music_handle = music_handles[pos_hash] + + -- Setup meta data if it does not exist. + if not eu_input then + meta:set_int("LV_EU_demand", demand) + meta:set_int("LV_EU_input", 0) + return + end + + if meta:get_int("active") == 0 then + meta:set_string("infotext", S("%s Idle"):format(machine_name)) + meta:set_int("LV_EU_demand", 0) + return + end + + if eu_input < demand then + meta:set_string("infotext", S("%s Unpowered"):format(machine_name)) + if music_handle then + minetest.sound_stop(music_handle) + music_handle = nil + end + elseif eu_input >= demand then + meta:set_string("infotext", S("%s Active"):format(machine_name)) + if not music_handle then + music_handle = play_track(pos, current_track) + end + end + music_handles[pos_hash] = music_handle + meta:set_int("LV_EU_demand", demand) +end + +local function stop_player(pos, node) + local pos_hash = minetest.hash_node_position(pos) + local music_handle = music_handles[pos_hash] + if music_handle then + minetest.sound_stop(music_handle) + music_handles[pos_hash] = nil + end +end + +local function set_display(meta) + meta:set_string("formspec", + "size[4,4.5]".. + "item_image[0,0;1,1;technic:music_player]".. + "label[1,0;"..S("%s Music Player"):format("LV").."]".. + "button[0,1;1,1;track1;1]".. + "button[1,1;1,1;track2;2]".. + "button[2,1;1,1;track3;3]".. + "button[0,2;1,1;track4;4]".. + "button[1,2;1,1;track5;5]".. + "button[2,2;1,1;track6;6]".. + "button[0,3;1,1;track7;7]".. + "button[1,3;1,1;track8;8]".. + "button[2,3;1,1;track9;9]".. + "button[3,1;1,1;stop;Stop]".. + "label[0,4;"..minetest.formspec_escape( + meta:get_int("active") == 0 and + S("Stopped") or + S("Current track %s"):format(meta:get_int("current_track"))).."]") +end + +minetest.register_node("technic:music_player", { + description = S("%s Music Player"):format("LV"), + tiles = {"technic_music_player_top.png", "technic_machine_bottom.png", "technic_music_player_side.png", + "technic_music_player_side.png", "technic_music_player_side.png", "technic_music_player_side.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("%s Music Player"):format("LV")) + set_display(meta) + end, + on_receive_fields = function(pos, formanme, fields, sender) + local new_track = nil + if fields.stop then new_track = 0 end + if fields.track1 then new_track = 1 end + if fields.track2 then new_track = 2 end + if fields.track3 then new_track = 3 end + if fields.track4 then new_track = 4 end + if fields.track5 then new_track = 5 end + if fields.track6 then new_track = 6 end + if fields.track7 then new_track = 7 end + if fields.track8 then new_track = 8 end + if fields.track9 then new_track = 9 end + if new_track then + stop_player(pos) + local meta = minetest.get_meta(pos) + meta:set_int("active", new_track == 0 and 0 or 1) + meta:set_int("current_track", new_track) + set_display(meta) + end + end, + on_destruct = stop_player, + technic_run = run, + technic_on_disable = stop_player, +}) + +technic.register_machine("LV", "technic:music_player", technic.receiver) + diff --git a/mods/technic/technic/machines/LV/solar_array.lua b/mods/technic/technic/machines/LV/solar_array.lua new file mode 100644 index 0000000..611629d --- /dev/null +++ b/mods/technic/technic/machines/LV/solar_array.lua @@ -0,0 +1,16 @@ +-- The solar array is an assembly of panels into a powerful array +-- The assembly can deliver more energy than the individual panel because +-- of the transformer unit which converts the panel output variations into +-- a stable supply. +-- Solar arrays are not able to store large amounts of energy. +-- The LV arrays are used to make medium voltage arrays. + +minetest.register_craft({ + output = 'technic:solar_array_lv 1', + recipe = { + {'gems:pearl_gem','gems:pearl_gem','gems:pearl_gem'}, + } +}) + +technic.register_solar_array({tier="LV", power=10}) + diff --git a/mods/technic/technic/machines/LV/solar_panel.lua b/mods/technic/technic/machines/LV/solar_panel.lua new file mode 100644 index 0000000..9de71c3 --- /dev/null +++ b/mods/technic/technic/machines/LV/solar_panel.lua @@ -0,0 +1,58 @@ +-- Solar panels are the building blocks of LV solar arrays +-- They can however also be used separately but with reduced efficiency due to the missing transformer. +-- Individual panels are less efficient than when the panels are combined into full arrays. + +local S = technic.getter + +local run = function(pos, node) + -- The action here is to make the solar panel prodice power + -- Power is dependent on the light level and the height above ground + -- There are many ways to cheat by using other light sources like lamps. + -- As there is no way to determine if light is sunlight that is just a shame. + -- To take care of some of it solar panels do not work outside daylight hours or if + -- built below 0m + local pos1 = {x=pos.x, y=pos.y+1, z=pos.z} + local machine_name = S("Small Solar %s Generator"):format("LV") + + local light = minetest.get_node_light(pos1, nil) + local time_of_day = minetest.get_timeofday() + local meta = minetest.get_meta(pos) + if light == nil then light = 0 end + -- turn on panel only during day time and if sufficient light + -- I know this is counter intuitive when cheating by using other light sources underground. + if light >= 12 and time_of_day >= 0.24 and time_of_day <= 0.76 and pos.y > -10 then + local charge_to_give = math.floor((light + pos1.y) * 3) + charge_to_give = math.max(charge_to_give, 0) + charge_to_give = math.min(charge_to_give, 200) + meta:set_string("infotext", S("%s Active"):format(machine_name).." ("..charge_to_give.."EU)") + meta:set_int("LV_EU_supply", charge_to_give) + else + meta:set_string("infotext", S("%s Idle"):format(machine_name)) + meta:set_int("LV_EU_supply", 0) + end +end + +minetest.register_node("technic:solar_panel", { + tiles = {"technic_solar_panel_top.png", "technic_solar_panel_bottom.png", "technic_solar_panel_side.png", + "technic_solar_panel_side.png", "technic_solar_panel_side.png", "technic_solar_panel_side.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1}, + sounds = default.node_sound_wood_defaults(), + description = S("Small Solar %s Generator"):format("LV"), + active = false, + drawtype = "nodebox", + paramtype = "light", + is_ground_content = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("LV_EU_supply", 0) + meta:set_string("infotext", S("Small Solar %s Generator"):format("LV")) + end, + technic_run = run, +}) + +technic.register_machine("LV", "technic:solar_panel", technic.producer) + diff --git a/mods/technic/technic/machines/LV/water_mill.lua b/mods/technic/technic/machines/LV/water_mill.lua new file mode 100644 index 0000000..7e88c3f --- /dev/null +++ b/mods/technic/technic/machines/LV/water_mill.lua @@ -0,0 +1,102 @@ +-- A water mill produces LV EUs by exploiting flowing water across it +-- It is a LV EU supplyer and fairly low yield (max 120EUs) +-- It is a little under half as good as the thermal generator. + +local S = technic.getter + +minetest.register_alias("water_mill", "technic:water_mill") + +minetest.register_craft({ + output = 'technic:water_mill', + recipe = { + {'gems:sapphire_gem'}, + {'gems:sapphire_gem'}, + {'gems:sapphire_gem'}, + } +}) + +local function check_node_around_mill(pos) + local node = minetest.get_node(pos) + if node.name == "default:water_flowing" or + node.name == "default:water_source" then + return true + end + return false +end + +local run = function(pos, node) + local meta = minetest.get_meta(pos) + local water_nodes = 0 + local lava_nodes = 0 + local production_level = 0 + local eu_supply = 0 + + local positions = { + {x=pos.x+1, y=pos.y, z=pos.z}, + {x=pos.x-1, y=pos.y, z=pos.z}, + {x=pos.x, y=pos.y, z=pos.z+1}, + {x=pos.x, y=pos.y, z=pos.z-1}, + } + + for _, p in pairs(positions) do + local check = check_node_around_mill(p) + if check then + water_nodes = water_nodes + 1 + end + end + + production_level = 25 * water_nodes + eu_supply = 30 * water_nodes + + if production_level > 0 then + meta:set_int("LV_EU_supply", eu_supply) + end + + meta:set_string("infotext", + S("Hydro %s Generator"):format("LV").." ("..production_level.."%)") + + if production_level > 0 and + minetest.get_node(pos).name == "technic:water_mill" then + technic.swap_node (pos, "technic:water_mill_active") + meta:set_int("LV_EU_supply", 0) + return + end + if production_level == 0 then + technic.swap_node(pos, "technic:water_mill") + end +end + +minetest.register_node("technic:water_mill", { + description = S("Hydro %s Generator"):format("LV"), + tiles = {"technic_water_mill_top.png", "technic_machine_bottom.png", + "technic_water_mill_side.png", "technic_water_mill_side.png", + "technic_water_mill_side.png", "technic_water_mill_side.png"}, + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("Hydro %s Generator"):format("LV")) + meta:set_int("LV_EU_supply", 0) + end, + technic_run = run, +}) + +minetest.register_node("technic:water_mill_active", { + description = S("Hydro %s Generator"):format("LV"), + tiles = {"technic_water_mill_top_active.png", "technic_machine_bottom.png", + "technic_water_mill_side.png", "technic_water_mill_side.png", + "technic_water_mill_side.png", "technic_water_mill_side.png"}, + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1, not_in_creative_inventory=1}, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + drop = "technic:water_mill", + technic_run = run, + technic_disabled_machine_name = "technic:water_mill", +}) + +technic.register_machine("LV", "technic:water_mill", technic.producer) +technic.register_machine("LV", "technic:water_mill_active", technic.producer) + diff --git a/mods/technic/technic/machines/MV/alloy_furnace.lua b/mods/technic/technic/machines/MV/alloy_furnace.lua new file mode 100644 index 0000000..98fc4d4 --- /dev/null +++ b/mods/technic/technic/machines/MV/alloy_furnace.lua @@ -0,0 +1,12 @@ +-- MV alloy furnace + +minetest.register_craft({ + output = 'technic:mv_alloy_furnace', + recipe = { + {'technic:lv_alloy_furnace','technic:lv_alloy_furnace'}, + } +}) + + +technic.register_alloy_furnace({tier = "MV", speed = 1.5, upgrade = 1, tube = 1, demand = {3000, 2000, 1000}}) + diff --git a/mods/technic/technic/machines/MV/battery_box.lua b/mods/technic/technic/machines/MV/battery_box.lua new file mode 100644 index 0000000..db033d4 --- /dev/null +++ b/mods/technic/technic/machines/MV/battery_box.lua @@ -0,0 +1,20 @@ +-- MV Battery box + +minetest.register_craft({ + output = 'technic:mv_battery_box0', + recipe = { + {'technic:lv_battery_box0','technic:lv_battery_box0'}, + } +}) + +technic.register_battery_box({ + tier = "MV", + max_charge = 200000, + charge_rate = 20000, + discharge_rate = 80000, + charge_step = 2000, + discharge_step = 8000, + upgrade = 1, + tube = 1, +}) + diff --git a/mods/technic/technic/machines/MV/cables.lua b/mods/technic/technic/machines/MV/cables.lua new file mode 100644 index 0000000..fcc5196 --- /dev/null +++ b/mods/technic/technic/machines/MV/cables.lua @@ -0,0 +1,14 @@ + +minetest.register_alias("mv_cable", "technic:mv_cable0") + +minetest.register_craft({ + output = 'technic:mv_cable0 1', + recipe ={ + {'','default:mese_crystal',''}, + {'default:mese_crystal','technic:lv_cable0','default:mese_crystal'}, + {'','default:mese_crystal',''}, + } +}) + +technic.register_cable("MV", 2.5/16) + diff --git a/mods/technic/technic/machines/MV/centrifuge.lua b/mods/technic/technic/machines/MV/centrifuge.lua new file mode 100644 index 0000000..ea595d9 --- /dev/null +++ b/mods/technic/technic/machines/MV/centrifuge.lua @@ -0,0 +1,7 @@ +technic.register_centrifuge({ + tier = "MV", + demand = { 8000, 7000, 6000 }, + speed = 2, + upgrade = 1, + tube = 1, +}) diff --git a/mods/technic/technic/machines/MV/compressor.lua b/mods/technic/technic/machines/MV/compressor.lua new file mode 100644 index 0000000..5a18334 --- /dev/null +++ b/mods/technic/technic/machines/MV/compressor.lua @@ -0,0 +1,3 @@ +-- MV compressor + +technic.register_compressor({tier = "MV", demand = {800, 600, 400}, speed = 2, upgrade = 1, tube = 1}) diff --git a/mods/technic/technic/machines/MV/electric_furnace.lua b/mods/technic/technic/machines/MV/electric_furnace.lua new file mode 100644 index 0000000..86b2fc4 --- /dev/null +++ b/mods/technic/technic/machines/MV/electric_furnace.lua @@ -0,0 +1,16 @@ +-- MV Electric Furnace +-- This is a faster version of the stone furnace which runs on EUs +-- In addition to this it can be upgraded with microcontrollers and batteries +-- This new version uses the batteries to lower the power consumption of the machine +-- Also in addition this furnace can be attached to the pipe system from the pipeworks mod. + +-- FIXME: kpoppel I'd like to introduce an induction heating element here also +minetest.register_craft({ + output = 'technic:mv_electric_furnace', + recipe = { + {'technic:lv_electric_furnace','technic:lv_electric_furnace'}, + } +}) + +technic.register_electric_furnace({tier="MV", upgrade=1, tube=1, demand={2000, 1000, 500}, speed=4}) + diff --git a/mods/technic/technic/machines/MV/extractor.lua b/mods/technic/technic/machines/MV/extractor.lua new file mode 100644 index 0000000..346bdb2 --- /dev/null +++ b/mods/technic/technic/machines/MV/extractor.lua @@ -0,0 +1,2 @@ +-- MV extractor +technic.register_extractor({tier = "MV", demand = {800, 600, 400}, speed = 2, upgrade = 1, tube = 1}) diff --git a/mods/technic/technic/machines/MV/generator.lua b/mods/technic/technic/machines/MV/generator.lua new file mode 100644 index 0000000..976f5f7 --- /dev/null +++ b/mods/technic/technic/machines/MV/generator.lua @@ -0,0 +1,11 @@ +minetest.register_alias("generator_mv", "technic:generator_mv") + +minetest.register_craft({ + output = 'technic:mv_generator', + recipe = { + {'technic:lv_generator','technic:lv_generator'}, + } +}) + +technic.register_generator({tier="MV", tube=1, supply=600}) + diff --git a/mods/technic/technic/machines/MV/grinder.lua b/mods/technic/technic/machines/MV/grinder.lua new file mode 100644 index 0000000..d34868d --- /dev/null +++ b/mods/technic/technic/machines/MV/grinder.lua @@ -0,0 +1,3 @@ +-- MV grinder +technic.register_grinder({tier="MV", demand={600, 450, 300}, speed=2, upgrade=1, tube=1}) + diff --git a/mods/technic/technic/machines/MV/init.lua b/mods/technic/technic/machines/MV/init.lua new file mode 100644 index 0000000..72a98b6 --- /dev/null +++ b/mods/technic/technic/machines/MV/init.lua @@ -0,0 +1,32 @@ + +technic.register_tier("MV", "Medium Voltage") + +local path = technic.modpath.."/machines/MV" + +-- Wiring stuff +dofile(path.."/cables.lua") +dofile(path.."/battery_box.lua") + +-- Generators +if technic.config:get_bool("enable_wind_mill") then + dofile(path.."/wind_mill.lua") +end +dofile(path.."/generator.lua") +dofile(path.."/solar_array.lua") + +-- Machines +dofile(path.."/alloy_furnace.lua") +dofile(path.."/electric_furnace.lua") +dofile(path.."/grinder.lua") +dofile(path.."/extractor.lua") +dofile(path.."/compressor.lua") +dofile(path.."/centrifuge.lua") + +dofile(path.."/tool_workshop.lua") + +-- The power radiator supplies appliances with inductive coupled power: +-- Lighting and associated textures is taken directly from VanessaE's homedecor and made electric. +-- This is currently useless, slow, and mostly copied +--dofile(path.."/power_radiator.lua") +--dofile(path.."/lighting.lua") + diff --git a/mods/technic/technic/machines/MV/lighting.lua b/mods/technic/technic/machines/MV/lighting.lua new file mode 100644 index 0000000..76fcb20 --- /dev/null +++ b/mods/technic/technic/machines/MV/lighting.lua @@ -0,0 +1,590 @@ +-- NOTE: The code is takes directly from VanessaE's homedecor mod. +-- I just made it the lights into indictive appliances for this mod. + +-- This file supplies electric powered glowlights + +-- 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 + +function technic_homedecor_node_is_owned(pos, placer) + local ownername = false + if type(IsPlayerNodeOwner) == "function" then -- node_ownership mod + if HasOwner(pos, placer) then + 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 + +local dirs1 = {20, 23, 22, 21} +local dirs2 = {9, 18, 7, 12} + +local technic_homedecor_rotate_and_place = function(itemstack, placer, pointed_thing) + if not technic_homedecor_node_is_owned(pointed_thing.under, placer) + and not technic_homedecor_node_is_owned(pointed_thing.above, placer) then + local node = minetest.get_node(pointed_thing.under) + if not minetest.registered_nodes[node.name] or not minetest.registered_nodes[node.name].on_rightclick then + + local above = pointed_thing.above + local under = pointed_thing.under + local pitch = placer:get_look_pitch() + local pname = minetest.get_node(under).name + local node = minetest.get_node(above) + local fdir = minetest.dir_to_facedir(placer:get_look_dir()) + local wield_name = itemstack:get_name() + + if not minetest.registered_nodes[pname] + or not minetest.registered_nodes[pname].on_rightclick then + + local iswall = (above.x ~= under.x) or (above.z ~= under.z) + local isceiling = (above.x == under.x) and (above.z == under.z) and (pitch > 0) + local pos1 = above + + if minetest.registered_nodes[pname]["buildable_to"] then + pos1 = under + iswall = false + end + + if not minetest.registered_nodes[minetest.get_node(pos1).name]["buildable_to"] then return end + + if iswall then + minetest.add_node(pos1, {name = wield_name, param2 = dirs2[fdir+1] }) -- place wall variant + elseif isceiling then + minetest.add_node(pos1, {name = wield_name, param2 = 20 }) -- place upside down variant + else + minetest.add_node(pos1, {name = wield_name, param2 = 0 }) -- place right side up + end + + if not homedecor_expect_infinite_stacks then + itemstack:take_item() + return itemstack + end + end + else + minetest.registered_nodes[node.name].on_rightclick(pointed_thing.under, node, placer, itemstack) + end + end +end + +-- Yellow -- Half node +minetest.register_node('technic:homedecor_glowlight_half_yellow', { + description = S("Yellow Glowlight (thick)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_yellow_tb.png', + 'technic_homedecor_glowlight_yellow_tb.png', + 'technic_homedecor_glowlight_thick_yellow_sides.png', + 'technic_homedecor_glowlight_thick_yellow_sides.png', + 'technic_homedecor_glowlight_thick_yellow_sides.png', + 'technic_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, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3 }, + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 100, "Yellow Glowlight (thick)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_off(pos, 100, "technic:homedecor_glowlight_half_yellow_active") + end +}) + +minetest.register_node('technic:homedecor_glowlight_half_yellow_active', { + description = S("Yellow Glowlight (thick)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_yellow_tb.png', + 'technic_homedecor_glowlight_yellow_tb.png', + 'technic_homedecor_glowlight_thick_yellow_sides.png', + 'technic_homedecor_glowlight_thick_yellow_sides.png', + 'technic_homedecor_glowlight_thick_yellow_sides.png', + 'technic_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, + light_source = LIGHT_MAX, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3, not_in_creative_inventory=1}, + drop="technic:homedecor_glowlight_half_yellow", + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 100, "Yellow Glowlight (thick)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_half_yellow") + end +}) + +-- Yellow -- Quarter node +minetest.register_node('technic:homedecor_glowlight_quarter_yellow', { + description = S("Yellow Glowlight (thin)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_yellow_tb.png', + 'technic_homedecor_glowlight_yellow_tb.png', + 'technic_homedecor_glowlight_thin_yellow_sides.png', + 'technic_homedecor_glowlight_thin_yellow_sides.png', + 'technic_homedecor_glowlight_thin_yellow_sides.png', + 'technic_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, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3 }, + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 100, "Yellow Glowlight (thin)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_off(pos, 100, "technic:homedecor_glowlight_quarter_yellow_active") + end +}) + +minetest.register_node('technic:homedecor_glowlight_quarter_yellow_active', { + description = S("Yellow Glowlight (thin)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_yellow_tb.png', + 'technic_homedecor_glowlight_yellow_tb.png', + 'technic_homedecor_glowlight_thin_yellow_sides.png', + 'technic_homedecor_glowlight_thin_yellow_sides.png', + 'technic_homedecor_glowlight_thin_yellow_sides.png', + 'technic_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, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3, not_in_creative_inventory=1}, + drop="technic:homedecor_glowlight_quarter_yellow", + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 100, "Yellow Glowlight (thin)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_quarter_yellow") + end +}) + + +-- White -- half node +minetest.register_node('technic:homedecor_glowlight_half_white', { + description = S("White Glowlight (thick)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_white_tb.png', + 'technic_homedecor_glowlight_white_tb.png', + 'technic_homedecor_glowlight_thick_white_sides.png', + 'technic_homedecor_glowlight_thick_white_sides.png', + 'technic_homedecor_glowlight_thick_white_sides.png', + 'technic_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, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3 }, + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 100, "White Glowlight (thick)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_off(pos, 100, "technic:homedecor_glowlight_half_white_active") + end +}) + +minetest.register_node('technic:homedecor_glowlight_half_white_active', { + description = S("White Glowlight (thick)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_white_tb.png', + 'technic_homedecor_glowlight_white_tb.png', + 'technic_homedecor_glowlight_thick_white_sides.png', + 'technic_homedecor_glowlight_thick_white_sides.png', + 'technic_homedecor_glowlight_thick_white_sides.png', + 'technic_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, + light_source = LIGHT_MAX, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3, not_in_creative_inventory=1}, + drop="technic:homedecor_glowlight_half_white", + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 100, "White Glowlight (thick)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_half_white") + end +}) + +-- White -- Quarter node +minetest.register_node('technic:homedecor_glowlight_quarter_white', { + description = S("White Glowlight (thin)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_white_tb.png', + 'technic_homedecor_glowlight_white_tb.png', + 'technic_homedecor_glowlight_thin_white_sides.png', + 'technic_homedecor_glowlight_thin_white_sides.png', + 'technic_homedecor_glowlight_thin_white_sides.png', + 'technic_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, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3 }, + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 100, "White Glowlight (thin)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_off(pos, 100, "technic:homedecor_glowlight_quarter_white_active") + end +}) + +minetest.register_node('technic:homedecor_glowlight_quarter_white_active', { + description = S("White Glowlight (thin)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_white_tb.png', + 'technic_homedecor_glowlight_white_tb.png', + 'technic_homedecor_glowlight_thin_white_sides.png', + 'technic_homedecor_glowlight_thin_white_sides.png', + 'technic_homedecor_glowlight_thin_white_sides.png', + 'technic_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, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3, not_in_creative_inventory=1}, + drop="technic:homedecor_glowlight_quarter_white", + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 100, "White Glowlight (thin)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_quarter_white") + end +}) + +-- Glowlight "cubes" - yellow +minetest.register_node('technic:homedecor_glowlight_small_cube_yellow', { + description = S("Yellow Glowlight (small cube)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_cube_yellow_tb.png', + 'technic_homedecor_glowlight_cube_yellow_tb.png', + 'technic_homedecor_glowlight_cube_yellow_sides.png', + 'technic_homedecor_glowlight_cube_yellow_sides.png', + 'technic_homedecor_glowlight_cube_yellow_sides.png', + 'technic_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, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3 }, + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 50, "Yellow Glowlight (small cube)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_off(pos, 50, "technic:homedecor_glowlight_small_cube_yellow_active") + end +}) + +minetest.register_node('technic:homedecor_glowlight_small_cube_yellow_active', { + description = S("Yellow Glowlight (small cube)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_cube_yellow_tb.png', + 'technic_homedecor_glowlight_cube_yellow_tb.png', + 'technic_homedecor_glowlight_cube_yellow_sides.png', + 'technic_homedecor_glowlight_cube_yellow_sides.png', + 'technic_homedecor_glowlight_cube_yellow_sides.png', + 'technic_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, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3, not_in_creative_inventory=1}, + drop="technic:homedecor_glowlight_small_cube_yellow", + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 50, "Yellow Glowlight (small cube)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_small_cube_yellow") + end +}) + +-- Glowlight "cubes" - white +minetest.register_node('technic:homedecor_glowlight_small_cube_white', { + description = S("White Glowlight (small cube)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_cube_white_tb.png', + 'technic_homedecor_glowlight_cube_white_tb.png', + 'technic_homedecor_glowlight_cube_white_sides.png', + 'technic_homedecor_glowlight_cube_white_sides.png', + 'technic_homedecor_glowlight_cube_white_sides.png', + 'technic_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, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3 }, + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 50, "White Glowlight (small cube)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_off(pos, 50, "technic:homedecor_glowlight_small_cube_white_active") + end +}) + +minetest.register_node('technic:homedecor_glowlight_small_cube_white_active', { + description = S("White Glowlight (small cube)"), + drawtype = "nodebox", + tiles = { + 'technic_homedecor_glowlight_cube_white_tb.png', + 'technic_homedecor_glowlight_cube_white_tb.png', + 'technic_homedecor_glowlight_cube_white_sides.png', + 'technic_homedecor_glowlight_cube_white_sides.png', + 'technic_homedecor_glowlight_cube_white_sides.png', + 'technic_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, + light_source = LIGHT_MAX-1, + sounds = default.node_sound_wood_defaults(), + + groups = { snappy = 3, not_in_creative_inventory=1}, + drop="technic:homedecor_glowlight_small_cube_white", + on_place = function(itemstack, placer, pointed_thing) + technic_homedecor_rotate_and_place(itemstack, placer, pointed_thing) + return itemstack + end, + on_construct = function(pos) + technic.inductive_on_construct(pos, 50, "White Glowlight (small cube)") + end, + on_punch = function(pos, node, puncher) + technic.inductive_on_punch_on(pos, 0, "technic:homedecor_glowlight_small_cube_white") + end +}) + +technic.register_inductive_machine("technic:homedecor_glowlight_half_yellow") +technic.register_inductive_machine("technic:homedecor_glowlight_half_white") +technic.register_inductive_machine("technic:homedecor_glowlight_quarter_yellow") +technic.register_inductive_machine("technic:homedecor_glowlight_quarter_white") +technic.register_inductive_machine("technic:homedecor_glowlight_small_cube_yellow") +technic.register_inductive_machine("technic:homedecor_glowlight_small_cube_white") diff --git a/mods/technic/technic/machines/MV/power_radiator.lua b/mods/technic/technic/machines/MV/power_radiator.lua new file mode 100644 index 0000000..560f8a9 --- /dev/null +++ b/mods/technic/technic/machines/MV/power_radiator.lua @@ -0,0 +1,220 @@ +-- The power radiator fuctions like an inductive charger +-- only better in the game setting. +-- The purpose is to allow small appliances to receive power +-- without the overhead of the wiring needed for larger machines. +-- +-- The power radiator will consume power corresponding to the +-- sum(power rating of the attached appliances)/0.06 +-- Using inductive power transfer is very inefficient so this is +-- set to the factor 0.06. +-- +-- Punching the radiator will toggle the power state of all attached appliances. + +local power_radius = 12 + +------------------------------------------------------------------ +-- API for inductive powered nodes: +-- Use the functions below to set the corresponding callbacks +-- Also two nodes are needed: The inactive and the active one. The active must be called _active . +------------------------------------------------------------------ +-- Register a new appliance using this function + +technic.inductive_nodes = {} +technic.register_inductive_machine = function(name) + table.insert(technic.inductive_nodes, name) + table.insert(technic.inductive_nodes, name.."_active") +end + +-- Appliances: +-- has_supply: pos of supply node if the appliance has a power radiator near with sufficient power for the demand else "" +-- EU_demand: The power demand of the device. +-- EU_charge: Actual use. set to EU_demand if active==1 +-- active: set to 1 if the device is on +technic.inductive_on_construct = function(pos, eu_demand, infotext) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", infotext) + meta:set_int("technic_inductive_power_machine", 1) + meta:set_int("EU_demand", eu_demand) -- The power demand of this appliance + meta:set_int("EU_charge", 0) -- The actual power draw of this appliance + meta:set_string("has_supply", "") -- Register whether we are powered or not. For use with several radiators. + meta:set_int("active", 0) -- If the appliance can be turned on and off by using it use this. +end + +technic.inductive_on_punch_off = function(pos, eu_charge, swapnode) + local meta = minetest.get_meta(pos) + if meta:get_string("has_supply") ~= "" then + technic.swap_node(pos, swapnode) + meta:set_int("active", 1) + meta:set_int("EU_charge",eu_charge) + --print("-----------") + --print("Turn on:") + --print("EU_charge: "..meta:get_int("EU_charge")) + --print("has_supply: "..meta:get_string("has_supply")) + --print("<----------->") + end +end + +technic.inductive_on_punch_on = function(pos, eu_charge, swapnode) + local meta = minetest.get_meta(pos) + technic.swap_node(pos, swapnode) + meta:set_int("active", 0) + meta:set_int("EU_charge",eu_charge) + --print("-----------") + --print("Turn off:") + --print("EU_charge: "..meta:get_int("EU_charge")) + --print("has_supply: "..meta:get_string("has_supply")) + --print("<---------->") +end + +local shutdown_inductive_appliances = function(pos) + -- The supply radius + local rad = power_radius + -- If the radiator is removed. turn off all appliances in region + -- If another radiator is near it will turn on the appliances again + local positions = minetest.find_nodes_in_area( + {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad}, + {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad}, + technic.inductive_nodes) + for _, pos1 in pairs(positions) do + local meta1 = minetest.get_meta(pos1) + -- If the appliance is belonging to this node + if meta1:get_string("has_supply") == pos.x..pos.y..pos.z then + local nodename = minetest.get_node(pos1).name + -- Swap the node and make sure it is off and unpowered + if string.sub(nodename, -7) == "_active" then + technic.swap_node(pos1, string.sub(nodename, 1, -8)) + meta1:set_int("active", 0) + meta1:set_int("EU_charge", 0) + end + meta1:set_string("has_supply", "") + end + end +end + +local toggle_on_off_inductive_appliances = function(pos, node, puncher) + if pos == nil then return end + -- The supply radius + local rad = power_radius + local positions = minetest.find_nodes_in_area( + {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad}, + {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad}, + technic.inductive_nodes) + for _, pos1 in pairs(positions) do + local meta1 = minetest.get_meta(pos1) + if meta1:get_string("has_supply") == pos.x..pos.y..pos.z then + minetest.punch_node(pos1) + end + end +end + +minetest.register_node("technic:power_radiator", { + description = "MV Power Radiator", + tiles = {"technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png", + "technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + paramtype = "light", + is_ground_content = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_int("MV_EU_demand",1) -- Demand on the primary side when idle + meta:set_int("connected_EU_demand",0) -- Potential demand of connected appliances + meta:set_string("infotext", "MV Power Radiator") + end, + on_dig = function(pos, node, digger) + shutdown_inductive_appliances(pos) + return minetest.node_dig(pos, node, digger) + end, + on_punch = function(pos, node, puncher) + toggle_on_off_inductive_appliances(pos, node, puncher) + end +}) + +minetest.register_craft({ + output = 'technic:power_radiator 1', + recipe = { + {'technic:stainless_steel_ingot', 'technic:mv_transformer', 'technic:stainless_steel_ingot'}, + {'technic:copper_coil', 'technic:machine_casing', 'technic:copper_coil'}, + {'technic:rubber', 'technic:mv_cable0', 'technic:rubber'}, + } +}) + +minetest.register_abm({ + nodenames = {"technic:power_radiator"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + local eu_input = meta:get_int("MV_EU_input") + local eu_demand = meta:get_int("MV_EU_demand") + + -- Power off automatically if no longer connected to a switching station + technic.switching_station_timeout_count(pos, "MV") + + if eu_input == 0 then + -- No power + meta:set_string("infotext", "MV Power Radiator is unpowered"); + -- meta:set_int("active", 1) -- used for setting textures someday maybe + shutdown_inductive_appliances(pos) + meta:set_int("connected_EU_demand", 0) + meta:set_int("MV_EU_demand",1) + elseif eu_input == eu_demand then + -- Powered and ready + + -- The maximum EU sourcing a single radiator can provide. + local max_charge = 30000 -- == the max EU demand of the radiator + local connected_EU_demand = meta:get_int("connected_EU_demand") + + -- Efficiency factor + local eff_factor = 0.06 + -- The supply radius + local rad = power_radius + + local meta1 = nil + local pos1 = {} + local used_charge = 0 + + -- Index all nodes within supply range + local positions = minetest.find_nodes_in_area( + {x=pos.x-rad, y=pos.y-rad, z=pos.z-rad}, + {x=pos.x+rad, y=pos.y+rad, z=pos.z+rad}, + technic.inductive_nodes) + for _, pos1 in pairs(positions) do + local meta1 = minetest.get_meta(pos1) + -- If not supplied see if this node can handle it. + if meta1:get_string("has_supply") == "" then + -- if demand surpasses the capacity of this node, don't bother adding it. + local app_eu_demand = math.floor(meta1:get_int("EU_demand") / eff_factor) + if connected_EU_demand + app_eu_demand <= max_charge then + -- We can power the appliance. Register, and spend power if it is on. + connected_EU_demand = connected_EU_demand + app_eu_demand + + meta1:set_string("has_supply", pos.x..pos.y..pos.z) + --Always 0: used_charge = math.floor(used_charge + meta1:get_int("EU_charge") / eff_factor) + end + elseif meta1:get_string("has_supply") == pos.x..pos.y..pos.z then + -- The appliance has power from this node. Spend power if it is on. + used_charge = used_charge + math.floor(meta1:get_int("EU_charge") / eff_factor) + end + meta:set_string("infotext", "MV Power Radiator is powered (" + ..math.floor(used_charge / max_charge * 100) + .."% of maximum power)"); + if used_charge == 0 then + meta:set_int("MV_EU_demand", 1) -- Still idle + else + meta:set_int("MV_EU_demand", used_charge) + end + end + -- Save state + meta:set_int("connected_EU_demand", connected_EU_demand) + end + end, +}) + +technic.register_machine("MV", "technic:power_radiator", technic.receiver) + diff --git a/mods/technic/technic/machines/MV/solar_array.lua b/mods/technic/technic/machines/MV/solar_array.lua new file mode 100644 index 0000000..7afb707 --- /dev/null +++ b/mods/technic/technic/machines/MV/solar_array.lua @@ -0,0 +1,12 @@ + +minetest.register_craft({ + output = 'technic:solar_array_mv 1', + recipe = { + {'technic:solar_array_lv','technic:solar_array_lv'}, + } +}) + +technic.register_solar_array({tier="MV", power=30}) + +-- compatibility alias for upgrading from old versions of technic +minetest.register_alias("technic:solar_panel_mv", "technic:solar_array_mv") diff --git a/mods/technic/technic/machines/MV/tool_workshop.lua b/mods/technic/technic/machines/MV/tool_workshop.lua new file mode 100644 index 0000000..4e7bb16 --- /dev/null +++ b/mods/technic/technic/machines/MV/tool_workshop.lua @@ -0,0 +1,112 @@ +-- Tool workshop +-- This machine repairs tools. + +minetest.register_alias("tool_workshop", "technic:tool_workshop") + +local S = technic.getter + +minetest.register_craft({ + output = 'technic:tool_workshop', + recipe = { + {'gems:amethyst_gem', 'gems:amethyst_gem', 'gems:amethyst_gem'}, + } +}) + +local workshop_demand = {5000, 3500, 2000} + +local workshop_formspec = + "invsize[8,9;]".. + "list[current_name;src;3,1;1,1;]".. + "label[0,0;"..S("%s Tool Workshop"):format("MV").."]".. + "list[current_name;upgrade1;1,3;1,1;]".. + "list[current_name;upgrade2;2,3;1,1;]".. + "label[1,4;"..S("Upgrade Slots").."]".. + "list[current_player;main;0,5;8,4;]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]".. + "listring[current_name;upgrade1]".. + "listring[current_player;main]".. + "listring[current_name;upgrade2]".. + "listring[current_player;main]" + +local run = function(pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local eu_input = meta:get_int("MV_EU_input") + local machine_name = S("%s Tool Workshop"):format("MV") + local machine_node = "technic:tool_workshop" + + -- Setup meta data if it does not exist. + if not eu_input then + meta:set_int("MV_EU_demand", workshop_demand[1]) + meta:set_int("MV_EU_input", 0) + return + end + + local EU_upgrade, tube_upgrade = technic.handle_machine_upgrades(meta) + + local repairable = false + local srcstack = inv:get_stack("src", 1) + if not srcstack:is_empty() then + local itemdef = minetest.registered_items[srcstack:get_name()] + if itemdef and + (not itemdef.wear_represents or + itemdef.wear_represents == "mechanical_wear") and + srcstack:get_wear() ~= 0 then + repairable = true + end + end + technic.handle_machine_pipeworks(pos, tube_upgrade, function (pos, x_velocity, z_velocity) + if not repairable then + technic.send_items(pos, x_velocity, z_velocity, "src") + end + end) + if not repairable then + meta:set_string("infotext", S("%s Idle"):format(machine_name)) + meta:set_int("MV_EU_demand", 0) + return + end + + if eu_input < workshop_demand[EU_upgrade+1] then + meta:set_string("infotext", S("%s Unpowered"):format(machine_name)) + elseif eu_input >= workshop_demand[EU_upgrade+1] then + meta:set_string("infotext", S("%s Active"):format(machine_name)) + srcstack:add_wear(-1000) + inv:set_stack("src", 1, srcstack) + end + meta:set_int("MV_EU_demand", workshop_demand[EU_upgrade+1]) +end + +minetest.register_node("technic:tool_workshop", { + description = S("%s Tool Workshop"):format("MV"), + tiles = {"technic_workshop_top.png", "technic_machine_bottom.png", "technic_workshop_side.png", + "technic_workshop_side.png", "technic_workshop_side.png", "technic_workshop_side.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1, tubedevice=1, tubedevice_receiver=1}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("%s Tool Workshop"):format("MV")) + meta:set_string("formspec", workshop_formspec) + local inv = meta:get_inventory() + inv:set_size("src", 1) + inv:set_size("upgrade1", 1) + inv:set_size("upgrade2", 1) + end, + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + tube = { + can_insert = function (pos, node, stack, direction) + return minetest.get_meta(pos):get_inventory():room_for_item("src", stack) + end, + insert_object = function (pos, node, stack, direction) + return minetest.get_meta(pos):get_inventory():add_item("src", stack) + end, + connect_sides = {left = 1, right = 1, back = 1, top = 1, bottom = 1}, + }, + technic_run = run, +}) + +technic.register_machine("MV", "technic:tool_workshop", technic.receiver) + diff --git a/mods/technic/technic/machines/MV/wind_mill.lua b/mods/technic/technic/machines/MV/wind_mill.lua new file mode 100644 index 0000000..4d63ddc --- /dev/null +++ b/mods/technic/technic/machines/MV/wind_mill.lua @@ -0,0 +1,87 @@ + +local S = technic.getter + +minetest.register_craft({ + output = 'technic:wind_mill_frame 5', + recipe = { + {'technic:carbon_steel_ingot', '', 'technic:carbon_steel_ingot'}, + {'', 'technic:carbon_steel_ingot', ''}, + {'technic:carbon_steel_ingot', '', 'technic:carbon_steel_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:wind_mill', + recipe = { + {'', 'technic:motor', ''}, + {'technic:carbon_steel_ingot', 'technic:carbon_steel_block', 'technic:carbon_steel_ingot'}, + {'', 'technic:mv_cable0', ''}, + } +}) + +minetest.register_node("technic:wind_mill_frame", { + description = S("Wind Mill Frame"), + drawtype = "glasslike_framed", + tiles = {"technic_carbon_steel_block.png", "default_glass.png"}, + sunlight_propagates = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + paramtype = "light", +}) + +local function check_wind_mill(pos) + if pos.y < 30 then + return false + end + for i = 1, 20 do + local node = minetest.get_node({x=pos.x, y=pos.y-i, z=pos.z}) + if node.name ~= "technic:wind_mill_frame" then + return false + end + end + return true +end + +local run = function(pos, node) + local meta = minetest.get_meta(pos) + local machine_name = S("Wind %s Generator"):format("MV") + local power = math.min(pos.y * 100, 5000) + + if not check_wind_mill(pos) then + meta:set_int("MV_EU_supply", 0) + meta:set_string("infotext", S("%s Improperly Placed"):format(machine_name)) + return + else + meta:set_int("MV_EU_supply", power) + end + + meta:set_string("infotext", machine_name.." ("..power.."EU)") +end + +minetest.register_node("technic:wind_mill", { + description = S("Wind %s Generator"):format("MV"), + tiles = {"technic_carbon_steel_block.png"}, + paramtype2 = "facedir", + groups = {cracky=1, technic_machine=1}, + sounds = default.node_sound_stone_defaults(), + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, -- Main box + {-0.1, -0.1, -0.5, 0.1, 0.1, -0.6}, -- Shaft + {-0.1, -1, -0.6, 0.1, 1, -0.7}, -- Vertical blades + {-1, -0.1, -0.6, 1, 0.1, -0.7}, -- Horizontal blades + } + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("Wind %s Generator"):format("MV")) + meta:set_int("MV_EU_supply", 0) + end, + technic_run = run, +}) + +technic.register_machine("MV", "technic:wind_mill", technic.producer) + diff --git a/mods/technic/technic/machines/init.lua b/mods/technic/technic/machines/init.lua new file mode 100644 index 0000000..ad79eab --- /dev/null +++ b/mods/technic/technic/machines/init.lua @@ -0,0 +1,14 @@ +local path = technic.modpath.."/machines" + +dofile(path.."/register/init.lua") + +-- Tiers +dofile(path.."/LV/init.lua") +dofile(path.."/MV/init.lua") +dofile(path.."/HV/init.lua") + +dofile(path.."/switching_station.lua") +dofile(path.."/supply_converter.lua") + +dofile(path.."/other/init.lua") + diff --git a/mods/technic/technic/machines/other/anchor.lua b/mods/technic/technic/machines/other/anchor.lua new file mode 100644 index 0000000..1c15bd2 --- /dev/null +++ b/mods/technic/technic/machines/other/anchor.lua @@ -0,0 +1,109 @@ +local S = technic.getter + +local desc = S("Administrative World Anchor") + +local function compute_forceload_positions(pos, meta) + local radius = meta:get_int("radius") + local minpos = vector.subtract(pos, vector.new(radius, radius, radius)) + local maxpos = vector.add(pos, vector.new(radius, radius, radius)) + local minbpos = {} + local maxbpos = {} + for _, coord in ipairs({"x","y","z"}) do + minbpos[coord] = math.floor(minpos[coord] / 16) * 16 + maxbpos[coord] = math.floor(maxpos[coord] / 16) * 16 + end + local flposes = {} + for x = minbpos.x, maxbpos.x, 16 do + for y = minbpos.y, maxbpos.y, 16 do + for z = minbpos.z, maxbpos.z, 16 do + table.insert(flposes, vector.new(x, y, z)) + end + end + end + return flposes +end + +local function currently_forceloaded_positions(meta) + local ser = meta:get_string("forceloaded") + return ser == "" and {} or minetest.deserialize(ser) +end + +local function forceload_off(meta) + local flposes = currently_forceloaded_positions(meta) + meta:set_string("forceloaded", "") + for _, p in ipairs(flposes) do + minetest.forceload_free_block(p) + end +end + +local function forceload_on(pos, meta) + local want_flposes = compute_forceload_positions(pos, meta) + local have_flposes = {} + for _, p in ipairs(want_flposes) do + if minetest.forceload_block(p) then + table.insert(have_flposes, p) + end + end + meta:set_string("forceloaded", #have_flposes == 0 and "" or minetest.serialize(have_flposes)) +end + +local function set_display(pos, meta) + meta:set_string("infotext", S(meta:get_int("enabled") ~= 0 and "%s Enabled" or "%s Disabled"):format(desc)) + meta:set_string("formspec", + "size[5,3.5]".. + "item_image[0,0;1,1;technic:admin_anchor]".. + "label[1,0;"..minetest.formspec_escape(desc).."]".. + "label[0,1;"..minetest.formspec_escape(S("Owner:").." "..meta:get_string("owner")).."]".. + (meta:get_int("locked") == 0 and + "button[3,1;2,1;lock;"..minetest.formspec_escape(S("Unlocked")).."]" or + "button[3,1;2,1;unlock;"..minetest.formspec_escape(S("Locked")).."]").. + "field[0.25,2.3;1,1;radius;"..minetest.formspec_escape(S("Radius:"))..";"..meta:get_int("radius").."]".. + (meta:get_int("enabled") == 0 and + "button[3,2;2,1;enable;"..minetest.formspec_escape(S("Disabled")).."]" or + "button[3,2;2,1;disable;"..minetest.formspec_escape(S("Enabled")).."]").. + "label[0,3;"..minetest.formspec_escape(S("Keeping %d/%d map blocks loaded"):format(#currently_forceloaded_positions(meta), #compute_forceload_positions(pos, meta))).."]") +end + +minetest.register_node("technic:admin_anchor", { + description = desc, + drawtype = "normal", + tiles = {"technic_admin_anchor.png"}, + is_ground_content = true, + groups = {cracky=3, not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), + after_place_node = function (pos, placer) + local meta = minetest.get_meta(pos) + if placer and placer:is_player() then + meta:set_string("owner", placer:get_player_name()) + end + set_display(pos, meta) + end, + can_dig = function (pos, player) + local meta = minetest.get_meta(pos) + return meta:get_int("locked") == 0 or (player and player:is_player() and player:get_player_name() == meta:get_string("owner")) + end, + on_destruct = function (pos) + local meta = minetest.get_meta(pos) + forceload_off(meta) + end, + on_receive_fields = function (pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + if (meta:get_int("locked") ~= 0 or fields.lock) and + not (sender and sender:is_player() and + sender:get_player_name() == meta:get_string("owner")) then + return + end + if fields.unlock then meta:set_int("locked", 0) end + if fields.lock then meta:set_int("locked", 1) end + if fields.disable or fields.enable or fields.radius then + forceload_off(meta) + if fields.disable then meta:set_int("enabled", 0) end + if fields.enable then meta:set_int("enabled", 1) end + if fields.radius and string.find(fields.radius, "^[0-9]+$") and tonumber(fields.radius) < 256 then meta:set_int("radius", fields.radius) end + if meta:get_int("enabled") ~= 0 then + forceload_on(pos, meta) + end + end + set_display(pos, meta) + end, +}) diff --git a/mods/technic/technic/machines/other/constructor.lua b/mods/technic/technic/machines/other/constructor.lua new file mode 100644 index 0000000..17aa9a2 --- /dev/null +++ b/mods/technic/technic/machines/other/constructor.lua @@ -0,0 +1,168 @@ + +local S = technic.getter + +local function deploy_node(inv, slot_name, pos, node, machine_node) + if node.name ~= "air" then + if node.name == "ignore" or + node.name == "default:lava_source" or + node.name == "default:lava_flowing" or + node.name == "default:water_source" or + node.name == "default:water_flowing" then + return + end + local drops = minetest.get_node_drops(node.name, "") + local remove_to = false + for i, item in ipairs(drops) do + if not inv:room_for_item(slot_name, item) then + remove_to = i - 1 + break + end + inv:add_item(slot_name, item) + end + if remove_to then + for i = 1, remove_to do + inv:remove_item(drops[i]) + end + else + minetest.remove_node(pos) + end + return + end + if not inv:is_empty(slot_name) then + local stack = inv:get_list(slot_name)[1] + local def = stack:get_definition() + if def.type == "node" then + minetest.set_node(pos, { + name = stack:get_name(), + param2 = machine_node.param2 + }) + stack:take_item() + inv:set_stack(slot_name, 1, stack) + elseif def.type == "craft" then + if def.on_place then + -- Use pcall to avoid nil placer errors. + -- TODO: Do without pcall. + local ok, stk = pcall(def.on_place, stack, nil, { + -- Fake pointed_thing + type = "node", + above = pos, + under = {x=pos.x, y=pos.y-1, z=pos.z}, + }) + if ok then + inv:set_stack(slot_name, 1, stk or stack) + return + end + end + minetest.item_place_object(stack, nil, { + -- Fake pointed_thing + type = "node", + above = pos, + under = pos, + }) + inv:set_stack(slot_name, 1, nil) + end + end +end +local function make_on(mark, length) + return function(pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local dir = vector.new() + if node.param2 == 3 then dir.x = 1 end + if node.param2 == 2 then dir.z = 1 end + if node.param2 == 1 then dir.x = -1 end + if node.param2 == 0 then dir.z = -1 end + + local place_pos = vector.new(pos) + + if node.name == "technic:constructor_mk"..mark.."_off" then + technic.swap_node(pos, "technic:constructor_mk"..mark.."_on") + nodeupdate(pos) + for i = 1, length do + place_pos = vector.add(place_pos, dir) + local place_node = minetest.get_node(place_pos) + deploy_node(inv, "slot"..i, place_pos, place_node, node) + end + end + end +end + +local function make_off(mark) + return function(pos, node) + if node.name == "technic:constructor_mk"..mark.."_on" then + technic.swap_node(pos,"technic:constructor_mk"..mark.."_off") + nodeupdate(pos) + end + end +end + + +local function make_constructor(mark, length) + minetest.register_node("technic:constructor_mk"..mark.."_off", { + description = S("Constructor Mk%d"):format(mark), + tiles = {"technic_constructor_mk"..mark.."_top_off.png", + "technic_constructor_mk"..mark.."_bottom_off.png", + "technic_constructor_mk"..mark.."_side2_off.png", + "technic_constructor_mk"..mark.."_side1_off.png", + "technic_constructor_back.png", + "technic_constructor_front_off.png"}, + paramtype2 = "facedir", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, mesecon = 2}, + mesecons = {effector = {action_on = make_on(mark, length)}}, + sounds = default.node_sound_stone_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local formspec = "size[8,9;]".. + "label[0,0;"..S("Constructor Mk%d"):format(mark).."]".. + "list[current_player;main;0,5;8,4;]" + for i = 1, length do + formspec = formspec + .."label[5,"..(i - 1)..";"..S("Slot %d"):format(i).."]" + .."list[current_name;slot"..i + ..";6,"..(i - 1)..";1,1;]" + end + meta:set_string("formspec", formspec) + meta:set_string("infotext", S("Constructor Mk%d"):format(mark)) + local inv = meta:get_inventory() + for i = 1, length do + inv:set_size("slot"..i, 1) + end + end, + can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for i = 1, length do + if not inv:is_empty("slot"..i) then + return false + end + end + return true + end, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + }) + + minetest.register_node("technic:constructor_mk"..mark.."_on", { + tiles = {"technic_constructor_mk"..mark.."_top_on.png", + "technic_constructor_mk"..mark.."_bottom_on.png", + "technic_constructor_mk"..mark.."_side2_on.png", + "technic_constructor_mk"..mark.."_side1_on.png", + "technic_constructor_back.png", + "technic_constructor_front_on.png"}, + paramtype2 = "facedir", + drop = "technic:constructor_mk"..mark.."_off", + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, + mesecon=2, not_in_creative_inventory=1}, + mesecons= {effector = {action_off = make_off(mark)}}, + sounds = default.node_sound_stone_defaults(), + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + }) +end + +make_constructor(1, 1) +make_constructor(2, 2) +make_constructor(3, 4) + diff --git a/mods/technic/technic/machines/other/frames.lua b/mods/technic/technic/machines/other/frames.lua new file mode 100644 index 0000000..46492a1 --- /dev/null +++ b/mods/technic/technic/machines/other/frames.lua @@ -0,0 +1,872 @@ + +local S = technic.getter + +frames = {} + +local infinite_stacks = minetest.setting_getbool("creative_mode") and minetest.get_modpath("unified_inventory") == nil + +local frames_pos = {} + +-- Helpers + +local function get_face(pos,ppos,pvect) + -- Raytracer to get which face has been clicked + ppos={x=ppos.x-pos.x,y=ppos.y-pos.y+1.5,z=ppos.z-pos.z} + if pvect.x>0 then + local t=(-0.5-ppos.x)/pvect.x + local y_int=ppos.y+t*pvect.y + local z_int=ppos.z+t*pvect.z + if y_int>-0.45 and y_int<0.45 and z_int>-0.45 and z_int<0.45 then return 1 end + elseif pvect.x<0 then + local t=(0.5-ppos.x)/pvect.x + local y_int=ppos.y+t*pvect.y + local z_int=ppos.z+t*pvect.z + if y_int>-0.45 and y_int<0.45 and z_int>-0.45 and z_int<0.45 then return 2 end + end + if pvect.y>0 then + local t=(-0.5-ppos.y)/pvect.y + local x_int=ppos.x+t*pvect.x + local z_int=ppos.z+t*pvect.z + if x_int>-0.45 and x_int<0.45 and z_int>-0.45 and z_int<0.45 then return 3 end + elseif pvect.y<0 then + local t=(0.5-ppos.y)/pvect.y + local x_int=ppos.x+t*pvect.x + local z_int=ppos.z+t*pvect.z + if x_int>-0.45 and x_int<0.45 and z_int>-0.45 and z_int<0.45 then return 4 end + end + if pvect.z>0 then + local t=(-0.5-ppos.z)/pvect.z + local x_int=ppos.x+t*pvect.x + local y_int=ppos.y+t*pvect.y + if x_int>-0.45 and x_int<0.45 and y_int>-0.45 and y_int<0.45 then return 5 end + elseif pvect.z<0 then + local t=(0.5-ppos.z)/pvect.z + local x_int=ppos.x+t*pvect.x + local y_int=ppos.y+t*pvect.y + if x_int>-0.45 and x_int<0.45 and y_int>-0.45 and y_int<0.45 then return 6 end + end +end + +local function lines(str) + local t = {} + local function helper(line) table.insert(t, line) return "" end + helper((str:gsub("(.-)\r?\n", helper))) + return t +end + +local function pos_to_string(pos) + if pos.x == 0 then pos.x = 0 end -- Fix for signed 0 + if pos.y == 0 then pos.y = 0 end -- Fix for signed 0 + if pos.z == 0 then pos.z = 0 end -- Fix for signed 0 + return tostring(pos.x).."\n"..tostring(pos.y).."\n"..tostring(pos.z) +end + +local function pos_from_string(str) + local l = lines(str) + return {x = tonumber(l[1]), y = tonumber(l[2]), z = tonumber(l[3])} +end + +local function pos_in_list(l,pos) + for _,p in ipairs(l) do + if p.x==pos.x and p.y==pos.y and p.z==pos.z then return true end + end + return false +end + +local function table_empty(table) + for _, __ in pairs(table) do + return false + end + return true +end + +local function add_table(table,toadd) + local i = 1 + while true do + o = table[i] + if o == toadd then return end + if o == nil then break end + i = i+1 + end + table[i] = toadd +end + +local function move_nodes_vect(poslist,vect,must_not_move,owner) + if minetest.is_protected then + for _,pos in ipairs(poslist) do + local npos=vector.add(pos,vect) + if minetest.is_protected(pos, owner) or minetest.is_protected(npos, owner) then + return + end + end + end + for _,pos in ipairs(poslist) do + local npos=vector.add(pos,vect) + local name = minetest.get_node(npos).name + if ((name~="air" and minetest.registered_nodes[name].liquidtype=="none") or frames_pos[pos_to_string(npos)]) and not(pos_in_list(poslist,npos)) then + return + end + --[[if pos.x==must_not_move.x and pos.y==must_not_move.y and pos.z==must_not_move.z then + return + end]] + end + local nodelist = {} + for _, pos in ipairs(poslist) do + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos):to_table() + nodelist[#(nodelist)+1] = {oldpos = pos, pos = vector.add(pos, vect), node = node, meta = meta} + end + local objects = {} + for _, pos in ipairs(poslist) do + for _,object in ipairs(minetest.get_objects_inside_radius(pos, 1)) do + local entity = object:get_luaentity() + if not entity or not mesecon.is_mvps_unmov(entity.name) then + add_table(objects, object) + end + end + end + for _, obj in ipairs(objects) do + obj:setpos(vector.add(obj:getpos(), vect)) + end + for _,n in ipairs(nodelist) do + local npos = n.pos + minetest.set_node(npos, n.node) + local meta = minetest.get_meta(npos) + meta:from_table(n.meta) + for __,pos in ipairs(poslist) do + if npos.x == pos.x and npos.y == pos.y and npos.z == pos.z then + table.remove(poslist, __) + break + end + end + end + for __, pos in ipairs(poslist) do + minetest.remove_node(pos) + end + for _, callback in ipairs(mesecon.on_mvps_move) do + callback(nodelist) + end +end + +local function is_supported_node(name) + return ((string.find(name, "tube") ~= nil) and (string.find(name, "pipeworks") ~= nil)) +end + + +-- Frames +for xm=0,1 do +for xp=0,1 do +for ym=0,1 do +for yp=0,1 do +for zm=0,1 do +for zp=0,1 do + +local a=8/16 +local b=7/16 +local nodeboxes= { + { -a, -a, -a, -b, a, -b }, + { -a, -a, b, -b, a, a }, + { b, -a, b, a, a, a }, + { b, -a, -a, a, a, -b }, + + { -b, b, -a, b, a, -b }, + { -b, -a, -a, b, -b, -b }, + + { -b, b, b, b, a, a }, + { -b, -a, b, b, -b, a }, + + { b, b, -b, a, a, b }, + { b, -a, -b, a, -b, b }, + + { -a, b, -b, -b, a, b }, + { -a, -a, -b, -b, -b, b }, + } + + if yp==0 then + table.insert(nodeboxes, {-b,b,-b, b,a,b}) + end + if ym==0 then + table.insert(nodeboxes, {-b,-a,-b, b,-b,b}) + end + if xp==0 then + table.insert(nodeboxes, {b,b,b,a,-b,-b}) + end + if xm==0 then + table.insert(nodeboxes, {-a,-b,-b,-b,b,b}) + end + if zp==0 then + table.insert(nodeboxes, {-b,-b,b, b,b,a}) + end + if zm==0 then + table.insert(nodeboxes, {-b,-b,-a, b,b,-b}) + end + + local nameext=tostring(xm)..tostring(xp)..tostring(ym)..tostring(yp)..tostring(zm)..tostring(zp) + local groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2} + if nameext~="111111" then groups.not_in_creative_inventory=1 end + + + minetest.register_node("technic:frame_"..nameext,{ + description = S("Frame"), + tiles = {"technic_frame.png"}, + groups=groups, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed=nodeboxes, + }, + selection_box = { + type="fixed", + fixed={-0.5,-0.5,-0.5,0.5,0.5,0.5} + }, + paramtype = "light", + frame=1, + drop="technic:frame_111111", + sunlight_propagates = true, + frame_connect_all=function(nodename) + l2={} + l1={{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}} + for i,dir in ipairs(l1) do + if string.sub(nodename,-7+i,-7+i)=="1" then + l2[#(l2)+1]=dir + end + end + return l2 + end, + on_punch=function(pos,node,puncher) + local ppos=puncher:getpos() + local pvect=puncher:get_look_dir() + local pface=get_face(pos,ppos,pvect) + if pface==nil then return end + local nodename=node.name + local newstate=tostring(1-tonumber(string.sub(nodename,-7+pface,-7+pface))) + if pface<=5 then + nodename=string.sub(nodename,1,-7+pface-1)..newstate..string.sub(nodename,-7+pface+1) + else + nodename=string.sub(nodename,1,-2)..newstate + end + node.name=nodename + minetest.set_node(pos,node) + end, + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + if minetest.is_protected(pos, placer:get_player_name()) then + minetest.log("action", placer:get_player_name() + .. " tried to place " .. itemstack:get_name() + .. " at protected position " + .. minetest.pos_to_string(pos)) + minetest.record_protection_violation(pos, placer:get_player_name()) + return itemstack + end + if pos == nil then return end + local node = minetest.get_node(pos) + if node.name ~= "air" then + if is_supported_node(node.name) then + obj = minetest.add_entity(pos, "technic:frame_entity") + obj:get_luaentity():set_node({name=itemstack:get_name()}) + end + else + minetest.set_node(pos, {name = itemstack:get_name()}) + end + if not infinite_stacks then + itemstack:take_item() + end + return itemstack + end, + on_rightclick = function(pos, node, placer, itemstack, pointed_thing) + if is_supported_node(itemstack:get_name()) then + if minetest.is_protected(pos, placer:get_player_name()) then + minetest.log("action", placer:get_player_name() + .. " tried to place " .. itemstack:get_name() + .. " at protected position " + .. minetest.pos_to_string(pos)) + minetest.record_protection_violation(pos, placer:get_player_name()) + return itemstack + end + + minetest.set_node(pos, {name = itemstack:get_name()}) + + local take_item = true + local def = minetest.registered_items[itemstack:get_name()] + -- Run callback + if def.after_place_node then + -- Copy place_to because callback can modify it + local pos_copy = {x=pos.x, y=pos.y, z=pos.z} + if def.after_place_node(pos_copy, placer, itemstack) then + take_item = false + end + end + + -- Run script hook + local _, callback + for _, callback in ipairs(minetest.registered_on_placenodes) do + -- Copy pos and node because callback can modify them + local pos_copy = {x=pos.x, y=pos.y, z=pos.z} + local newnode_copy = {name=def.name, param1=0, param2=0} + local oldnode_copy = {name="air", param1=0, param2=0} + if callback(pos_copy, newnode_copy, placer, oldnode_copy, itemstack) then + take_item = false + end + end + + if take_item then + itemstack:take_item() + end + + obj = minetest.add_entity(pos, "technic:frame_entity") + obj:get_luaentity():set_node({name=node.name}) + + return itemstack + else + --local pointed_thing = {type = "node", under = pos} + if pointed_thing then + minetest.item_place_node(itemstack, placer, pointed_thing) + end + end + end, + }) + +end +end +end +end +end +end + +minetest.register_entity("technic:frame_entity", { + initial_properties = { + physical = true, + collisionbox = {-0.5,-0.5,-0.5, 0.5,0.5,0.5}, + visual = "wielditem", + textures = {}, + visual_size = {x=0.667, y=0.667}, + }, + + node = {}, + + set_node = function(self, node) + self.node = node + local pos = self.object:getpos() + pos = {x = math.floor(pos.x+0.5), y = math.floor(pos.y+0.5), z = math.floor(pos.z+0.5)} + frames_pos[pos_to_string(pos)] = node.name + local stack = ItemStack(node.name) + 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, + textures = {node.name}, + } + self.object:set_properties(prop) + end, + + get_staticdata = function(self) + return self.node.name + end, + + on_activate = function(self, staticdata) + self.object:set_armor_groups({immortal=1}) + self:set_node({name=staticdata}) + end, + + dig = function(self) + minetest.handle_node_drops(self.object:getpos(), {ItemStack("technic:frame_111111")}, self.last_puncher) + local pos = self.object:getpos() + pos = {x = math.floor(pos.x+0.5), y = math.floor(pos.y+0.5), z = math.floor(pos.z+0.5)} + frames_pos[pos_to_string(pos)] = nil + self.object:remove() + end, + + on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir) + local pos = self.object:getpos() + if self.damage_object == nil then + self.damage_object = minetest.add_entity(pos, "technic:damage_entity") + self.damage_object:get_luaentity().remaining_time = 0.25 + self.damage_object:get_luaentity().frame_object = self + self.damage_object:get_luaentity().texture_index = 0 + self.damage_object:get_luaentity().texture_change_time = 0.15 + else + self.damage_object:get_luaentity().remaining_time = 0.25 + end + self.last_puncher = puncher + local ppos = puncher:getpos() + local pvect = puncher:get_look_dir() + local pface = get_face(pos,ppos,pvect) + if pface == nil then return end + local nodename = self.node.name + local newstate = tostring(1-tonumber(string.sub(nodename, -7+pface, -7+pface))) + if pface <= 5 then + nodename = string.sub(nodename, 1, -7+pface-1)..newstate..string.sub(nodename, -7+pface+1) + else + nodename = string.sub(nodename, 1, -2)..newstate + end + self.node.name = nodename + self:set_node(self.node) + end, + + on_rightclick = function(self, clicker) + local pos = self.object:getpos() + local ppos = clicker:getpos() + local pvect = clicker:get_look_dir() + local pface = get_face(pos, ppos, pvect) + if pface == nil then return end + local pos_under = {x = math.floor(pos.x+0.5), y = math.floor(pos.y+0.5), z = math.floor(pos.z+0.5)} + local pos_above = {x = pos_under.x, y = pos_under.y, z = pos_under.z} + local index = ({"x", "y", "z"})[math.floor((pface+1)/2)] + pos_above[index] = pos_above[index] + 2*((pface+1)%2) - 1 + local pointed_thing = {type = "node", under = pos_under, above = pos_above} + local itemstack = clicker:get_wielded_item() + local itemdef = minetest.registered_items[itemstack:get_name()] + if itemdef ~= nil then + itemdef.on_place(itemstack, clicker, pointed_thing) + end + end, +}) + +local crack = "crack_anylength.png^[verticalframe:5:0" +minetest.register_entity("technic:damage_entity", { + initial_properties = { + visual = "cube", + visual_size = {x=1.01, y=1.01}, + textures = {crack, crack, crack, crack, crack, crack}, + collisionbox = {0, 0, 0, 0, 0, 0}, + physical = false, + }, + on_step = function(self, dtime) + if self.remaining_time == nil then + self.object:remove() + self.frame_object.damage_object = nil + end + self.remaining_time = self.remaining_time - dtime + if self.remaining_time < 0 then + self.object:remove() + self.frame_object.damage_object = nil + end + self.texture_change_time = self.texture_change_time - dtime + if self.texture_change_time < 0 then + self.texture_change_time = self.texture_change_time + 0.15 + self.texture_index = self.texture_index + 1 + if self.texture_index == 5 then + self.object:remove() + self.frame_object.damage_object = nil + self.frame_object:dig() + end + local ct = "crack_anylength.png^[verticalframe:5:"..self.texture_index + self.object:set_properties({textures = {ct, ct, ct, ct, ct, ct}}) + end + end, +}) + +mesecon.register_mvps_unmov("technic:frame_entity") +mesecon.register_mvps_unmov("technic:damage_entity") +mesecon.register_on_mvps_move(function(moved_nodes) + local to_move = {} + for _, n in ipairs(moved_nodes) do + if frames_pos[pos_to_string(n.oldpos)] ~= nil then + to_move[#to_move+1] = {pos = n.pos, oldpos = n.oldpos, name = frames_pos[pos_to_string(n.oldpos)]} + frames_pos[pos_to_string(n.oldpos)] = nil + end + end + if #to_move > 0 then + for _, t in ipairs(to_move) do + frames_pos[pos_to_string(t.pos)] = t.name + local objects = minetest.get_objects_inside_radius(t.oldpos, 0.1) + for _, obj in ipairs(objects) do + local entity = obj:get_luaentity() + if entity and (entity.name == "technic:frame_entity" or entity.name == "technic:damage_entity") then + obj:setpos(t.pos) + end + end + end + end +end) + +minetest.register_on_dignode(function(pos, node) + if frames_pos[pos_to_string(pos)] ~= nil then + minetest.set_node(pos, {name = frames_pos[pos_to_string(pos)]}) + frames_pos[pos_to_string(pos)] = nil + local objects = minetest.get_objects_inside_radius(pos, 0.1) + for _, obj in ipairs(objects) do + local entity = obj:get_luaentity() + if entity and (entity.name == "technic:frame_entity" or entity.name == "technic:damage_entity") then + obj:remove() + end + end + end +end) + +-- Frame motor +local function connected(pos,c,adj) + for _,vect in ipairs(adj) do + local pos1=vector.add(pos,vect) + local nodename=minetest.get_node(pos1).name + if frames_pos[pos_to_string(pos1)] then + nodename = frames_pos[pos_to_string(pos1)] + end + if not(pos_in_list(c,pos1)) and nodename~="air" and + (minetest.registered_nodes[nodename].frames_can_connect==nil or + minetest.registered_nodes[nodename].frames_can_connect(pos1,vect)) then + c[#(c)+1]=pos1 + if minetest.registered_nodes[nodename].frame==1 then + local adj=minetest.registered_nodes[nodename].frame_connect_all(nodename) + connected(pos1,c,adj) + end + end + end +end + +local function get_connected_nodes(pos) + c={pos} + local nodename=minetest.get_node(pos).name + if frames_pos[pos_to_string(pos)] then + nodename = frames_pos[pos_to_string(pos)] + end + connected(pos,c,minetest.registered_nodes[nodename].frame_connect_all(nodename)) + return c +end + +local function frame_motor_on(pos, node) + local dirs = {{x=0,y=1,z=0},{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=-1,z=0}} + local nnodepos = vector.add(pos, dirs[math.floor(node.param2/4)+1]) + local dir = minetest.facedir_to_dir(node.param2) + local nnode=minetest.get_node(nnodepos) + if frames_pos[pos_to_string(nnodepos)] then + nnode.name = frames_pos[pos_to_string(nnodepos)] + end + local meta = minetest.get_meta(pos) + if meta:get_int("last_moved") == minetest.get_gametime() then + return + end + local owner = meta:get_string("owner") + if minetest.registered_nodes[nnode.name].frame==1 then + local connected_nodes=get_connected_nodes(nnodepos) + move_nodes_vect(connected_nodes,dir,pos,owner) + end + minetest.get_meta(vector.add(pos, dir)):set_int("last_moved", minetest.get_gametime()) +end + +minetest.register_node("technic:frame_motor",{ + description = S("Frame Motor"), + tiles = {"pipeworks_filter_top.png^[transformR90", "technic_lv_cable.png", "technic_lv_cable.png", + "technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2}, + paramtype2 = "facedir", + mesecons={effector={action_on=frame_motor_on}}, + after_place_node = function(pos, placer, itemstack) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + end, + frames_can_connect=function(pos,dir) + local node = minetest.get_node(pos) + local dir2 = ({{x=0,y=1,z=0},{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=-1,z=0}})[math.floor(node.param2/4)+1] + return dir2.x~=-dir.x or dir2.y~=-dir.y or dir2.z~=-dir.z + end +}) + + + +-- Templates +local function template_connected(pos,c,connectors) + for _,vect in ipairs({{x=0,y=1,z=0},{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=-1,z=0}}) do + local pos1=vector.add(pos,vect) + local nodename=minetest.get_node(pos1).name + if not(pos_in_list(c,pos1)) and (nodename=="technic:template" or nodename == "technic:template_connector")then + local meta = minetest.get_meta(pos1) + if meta:get_string("connected") == "" then + c[#(c)+1]=pos1 + template_connected(pos1,c,connectors) + if nodename == "technic:template_connector" then + connectors[#connectors+1] = pos1 + end + end + end + end +end + +local function get_templates(pos) + local c = {pos} + local connectors + if minetest.get_node(pos).name == "technic:template_connector" then + connectors = {pos} + else + connectors = {} + end + template_connected(pos,c,connectors) + return c, connectors +end + +local function swap_template(pos, new) + local meta = minetest.get_meta(pos) + local saved_node = meta:get_string("saved_node") + meta:set_string("saved_node", "") + technic.swap_node(pos, new) + local meta = minetest.get_meta(pos) + meta:set_string("saved_node", saved_node) +end + +local function save_node(pos) + local node = minetest.get_node(pos) + if node.name == "air" then + minetest.set_node(pos, {name="technic:template"}) + return + end + if node.name == "technic:template" then + swap_template(pos, "technic:template_connector") + local meta = minetest.get_meta(pos) + meta:set_string("connected", "") + return + end + local meta = minetest.get_meta(pos) + local meta0 = meta:to_table() + for _, list in pairs(meta0.inventory) do + for key, stack in pairs(list) do + list[key] = stack:to_string() + end + end + node.meta = meta0 + minetest.set_node(pos, {name="technic:template"}) + return node +end + +local function restore_node(pos, node) + minetest.set_node(pos, node) + local meta = minetest.get_meta(pos) + for _, list in pairs(node.meta.inventory) do + for key, stack in pairs(list) do + list[key] = ItemStack(stack) + end + end + meta:from_table(node.meta) +end + +local function expand_template(pos) + local meta = minetest.get_meta(pos) + local c = meta:get_string("connected") + if c == "" then return end + c = minetest.deserialize(c) + for _, vect in ipairs(c) do + local pos1 = vector.add(pos, vect) + local saved_node = save_node(pos1) + local meta1 = minetest.get_meta(pos1) + if saved_node ~= nil then + meta1:set_string("saved_node", minetest.serialize(saved_node)) + else + --meta1:set_string("saved_node", "") + end + end +end + +local function compress_templates(pos) + local templates, connectors = get_templates(pos) + if #connectors == 0 then + connectors = {pos} + end + for _, cn in ipairs(connectors) do + local meta = minetest.get_meta(cn) + local c = {} + for _,p in ipairs(templates) do + local np = vector.subtract(p, cn) + if not pos_in_list(c,np) then + c[#c+1] = np + end + end + local cc = {} + for _,p in ipairs(connectors) do + local np = vector.subtract(p, cn) + if (np.x ~= 0 or np.y ~= 0 or np.z ~= 0) then + cc[pos_to_string(np)] = true + end + end + swap_template(cn, "technic:template") + meta:set_string("connected", minetest.serialize(c)) + meta:set_string("connectors_connected", minetest.serialize(cc)) + end + + for _,p in ipairs(templates) do + if not pos_in_list(connectors, p) then + minetest.set_node(p, {name = "air"}) + end + end +end + +local function template_drops(pos, node, oldmeta, digger) + local c = oldmeta.fields.connected + local cc = oldmeta.fields.connectors_connected + local drops + if c == "" or c == nil then + drops = {"technic:template 1"} + else + if cc == "" or cc == nil then + drops = {"technic:template 1"} + else + local dcc = minetest.deserialize(cc) + if not table_empty(dcc) then + drops = {} + for sp, _ in pairs(dcc) do + local ssp = pos_from_string(sp) + local p = vector.add(ssp, pos) + local meta = minetest.get_meta(p) + local d = minetest.deserialize(meta:get_string("connectors_connected")) + if d ~= nil then + d[pos_to_string({x=-ssp.x, y=-ssp.y, z=-ssp.z})] = nil + meta:set_string("connectors_connected", minetest.serialize(d)) + end + end + else + local stack_max = 99 + local num = #(minetest.deserialize(c)) + drops = {} + while num > stack_max do + drops[#drops+1] = "technic:template "..stack_max + num = num - stack_max + end + drops[#drops+1] = "technic:template "..num + end + end + end + minetest.handle_node_drops(pos, drops, digger) +end + +local function template_on_destruct(pos, node) + local meta = minetest.get_meta(pos) + local saved_node = meta:get_string("saved_node") + if saved_node ~= "" then + local nnode = minetest.deserialize(saved_node) + minetest.after(0, restore_node, pos, nnode) + end +end + +minetest.register_node("technic:template",{ + description = S("Template"), + tiles = {"technic_mv_cable.png"}, + drop = "", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + on_destruct = template_on_destruct, + after_dig_node = template_drops, + on_punch = function(pos,node,puncher) + swap_template(pos, "technic:template_disabled") + end +}) + +minetest.register_node("technic:template_disabled",{ + description = S("Template"), + tiles = {"technic_hv_cable.png"}, + drop = "", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, + on_destruct = template_on_destruct, + after_dig_node = template_drops, + on_punch = function(pos,node,puncher) + local meta = minetest.get_meta(pos) + swap_template(pos, "technic:template_connector") + end +}) + +minetest.register_node("technic:template_connector",{ + description = S("Template"), + tiles = {"technic_lv_cable.png"}, + drop = "", + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, + on_destruct = template_on_destruct, + after_dig_node = template_drops, + on_punch = function(pos,node,puncher) + swap_template(pos, "technic:template") + end +}) + +minetest.register_craftitem("technic:template_replacer",{ + description = S("Template (replacing)"), + inventory_image = "technic_template_replacer.png", + on_place = function(itemstack, placer, pointed_thing) + local p = pointed_thing.under + if minetest.is_protected and minetest.is_protected(p, placer:get_player_name()) then + return nil + end + local node = minetest.get_node(p) + if node.name == "technic:template" then return end + local saved_node = save_node(p) + itemstack:take_item() + if saved_node ~= nil then + local meta = minetest.get_meta(p) + meta:set_string("saved_node", minetest.serialize(saved_node)) + end + return itemstack + end +}) + +minetest.register_tool("technic:template_tool",{ + description = S("Template Tool"), + inventory_image = "technic_template_tool.png", + on_use = function(itemstack, puncher, pointed_thing) + local pos = pointed_thing.under + if pos == nil or (minetest.is_protected and minetest.is_protected(pos, puncher:get_player_name())) then + return nil + end + local node = minetest.get_node(pos) + if node.name ~= "technic:template" and node.name ~= "technic:template_connector" then return end + local meta = minetest.get_meta(pos) + local c2 = meta:get_string("connected") + if c2 ~= "" then + expand_template(pos) + else + compress_templates(pos) + end + + end +}) + + + +-- Template motor +local function get_template_nodes(pos) + local meta = minetest.get_meta(pos) + local connected = meta:get_string("connected") + if connected == "" then return {} end + local adj = minetest.deserialize(connected) + local c = {} + for _,vect in ipairs(adj) do + local pos1=vector.add(pos,vect) + local nodename=minetest.get_node(pos1).name + if not(pos_in_list(c,pos1)) and nodename~="air" then + c[#(c)+1]=pos1 + end + end + return c +end + +local function template_motor_on(pos, node) + local dirs = {{x=0,y=1,z=0},{x=0,y=0,z=1},{x=0,y=0,z=-1},{x=1,y=0,z=0},{x=-1,y=0,z=0},{x=0,y=-1,z=0}} + local nnodepos = vector.add(pos, dirs[math.floor(node.param2/4)+1]) + local dir = minetest.facedir_to_dir(node.param2) + local nnode=minetest.get_node(nnodepos) + local meta = minetest.get_meta(pos) + if meta:get_int("last_moved") == minetest.get_gametime() then + return + end + local owner = meta:get_string("owner") + if nnode.name == "technic:template" then + local connected_nodes=get_template_nodes(nnodepos) + move_nodes_vect(connected_nodes,dir,pos,owner) + end + minetest.get_meta(vector.add(pos, dir)):set_int("last_moved", minetest.get_gametime()) +end + +minetest.register_node("technic:template_motor",{ + description = S("Template Motor"), + tiles = {"pipeworks_filter_top.png^[transformR90", "technic_lv_cable.png", "technic_lv_cable.png", + "technic_lv_cable.png", "technic_lv_cable.png", "technic_lv_cable.png"}, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,mesecon=2}, + paramtype2 = "facedir", + mesecons={effector={action_on=template_motor_on}}, + after_place_node = function(pos, placer, itemstack) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + end, +}) diff --git a/mods/technic/technic/machines/other/init.lua b/mods/technic/technic/machines/other/init.lua new file mode 100644 index 0000000..27a47d5 --- /dev/null +++ b/mods/technic/technic/machines/other/init.lua @@ -0,0 +1,9 @@ +local path = technic.modpath.."/machines/other" + +-- mesecons and tubes related +dofile(path.."/injector.lua") +dofile(path.."/constructor.lua") +if minetest.get_modpath("mesecons_mvps") ~= nil then + dofile(path.."/frames.lua") +end +dofile(path.."/anchor.lua") diff --git a/mods/technic/technic/machines/other/injector.lua b/mods/technic/technic/machines/other/injector.lua new file mode 100644 index 0000000..e1d3696 --- /dev/null +++ b/mods/technic/technic/machines/other/injector.lua @@ -0,0 +1,99 @@ + +local S = technic.getter + +local function inject_items (pos) + local meta=minetest.get_meta(pos) + local inv = meta:get_inventory() + local mode=meta:get_string("mode") + if mode=="single items" then + local i=0 + for _,stack in ipairs(inv:get_list("main")) do + i=i+1 + if stack then + local item0=stack:to_table() + if item0 then + item0["count"] = "1" + technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0) + stack:take_item(1) + inv:set_stack("main", i, stack) + return + end + end + end + end + if mode=="whole stacks" then + local i=0 + for _,stack in ipairs(inv:get_list("main")) do + i=i+1 + if stack then + local item0=stack:to_table() + if item0 then + technic.tube_inject_item(pos, pos, vector.new(0, -1, 0), item0) + stack:clear() + inv:set_stack("main", i, stack) + return + end + end + end + end + +end + + +local function set_injector_formspec(meta) + local is_stack = meta:get_string("mode") == "whole stacks" + meta:set_string("formspec", + "invsize[8,9;]".. + "item_image[0,0;1,1;technic:injector]".. + "label[1,0;"..S("Self-Contained Injector").."]".. + (is_stack and + "button[0,1;2,1;mode_item;"..S("Stackwise").."]" or + "button[0,1;2,1;mode_stack;"..S("Itemwise").."]").. + "list[current_name;main;0,2;8,2;]".. + "list[current_player;main;0,5;8,4;]") +end + +minetest.register_node("technic:injector", { + description = S("Self-Contained Injector"), + tiles = {"technic_injector_top.png", "technic_injector_bottom.png", "technic_injector_side.png", + "technic_injector_side.png", "technic_injector_side.png", "technic_injector_side.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, tubedevice=1}, + tube = {connect_sides={bottom=1}}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("Self-Contained Injector")) + local inv = meta:get_inventory() + inv:set_size("main", 8*4) + meta:set_string("mode","single items") + set_injector_formspec(meta) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_receive_fields = function(pos, formanme, fields, sender) + local meta = minetest.get_meta(pos) + if fields.mode_item then meta:set_string("mode", "single items") end + if fields.mode_stack then meta:set_string("mode", "whole stacks") end + set_injector_formspec(meta) + end, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, +}) + +minetest.register_abm({ + nodenames = {"technic:injector"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local pos1 = vector.add(pos, vector.new(0, -1, 0)) + local node1 = minetest.get_node(pos1) + if minetest.get_item_group(node1.name, "tubedevice") > 0 then + inject_items(pos) + end + end, +}) + diff --git a/mods/technic/technic/machines/register/alloy_furnace.lua b/mods/technic/technic/machines/register/alloy_furnace.lua new file mode 100644 index 0000000..879e528 --- /dev/null +++ b/mods/technic/technic/machines/register/alloy_furnace.lua @@ -0,0 +1,10 @@ + +local S = technic.getter + +function technic.register_alloy_furnace(data) + data.typename = "alloy" + data.machine_name = "alloy_furnace" + data.machine_desc = S("%s Alloy Furnace") + technic.register_base_machine(data) +end + diff --git a/mods/technic/technic/machines/register/alloy_recipes.lua b/mods/technic/technic/machines/register/alloy_recipes.lua new file mode 100644 index 0000000..fb8616e --- /dev/null +++ b/mods/technic/technic/machines/register/alloy_recipes.lua @@ -0,0 +1,35 @@ + +local S = technic.getter + +technic.register_recipe_type("alloy", { + description = S("Alloying"), + input_size = 2, +}) + +function technic.register_alloy_recipe(data) + data.time = data.time or 6 + technic.register_recipe("alloy", data) +end + +local recipes = { + {"technic:copper_dust 3", "technic:tin_dust", "technic:bronze_dust 4"}, + {"default:copper_ingot 3", "moreores:tin_ingot", "default:bronze_ingot 4"}, + {"technic:wrought_iron_dust", "technic:coal_dust", "technic:carbon_steel_dust", 3}, + {"technic:wrought_iron_ingot", "technic:coal_dust", "technic:carbon_steel_ingot", 3}, + {"technic:carbon_steel_dust", "technic:coal_dust", "technic:cast_iron_dust", 3}, + {"technic:carbon_steel_ingot", "technic:coal_dust", "technic:cast_iron_ingot", 3}, + {"technic:carbon_steel_dust 3", "technic:chromium_dust", "technic:stainless_steel_dust 4"}, + {"technic:carbon_steel_ingot 3", "technic:chromium_ingot", "technic:stainless_steel_ingot 4"}, + {"technic:copper_dust 2", "technic:zinc_dust", "technic:brass_dust 3"}, + {"default:copper_ingot 2", "technic:zinc_ingot", "technic:brass_ingot 3"}, + {"default:sand 2", "technic:coal_dust 2", "technic:silicon_wafer"}, + {"technic:silicon_wafer", "technic:gold_dust", "technic:doped_silicon_wafer"}, + {"tutorial:uranium1", "technic:bucket_corium", "tutorial:plutonium_ingot"}, + {"tutorial:plutonium_ingot", "technic:bucket_corium", "tutorial:uranium1"}, + {"tutorial:uranium2", "technic:bucket_corium", "tutorial:blei_ingot"}, + {"tutorial:blei_ingot", "technic:bucket_corium", "tutorial:uranium2"}, +} + +for _, data in pairs(recipes) do + technic.register_alloy_recipe({input = {data[1], data[2]}, output = data[3], time = data[4]}) +end diff --git a/mods/technic/technic/machines/register/battery_box.lua b/mods/technic/technic/machines/register/battery_box.lua new file mode 100644 index 0000000..ad96118 --- /dev/null +++ b/mods/technic/technic/machines/register/battery_box.lua @@ -0,0 +1,293 @@ + +local S = technic.getter + +technic.register_power_tool("technic:battery", 10000) +technic.register_power_tool("technic:red_energy_crystal", 50000) +technic.register_power_tool("technic:green_energy_crystal", 150000) +technic.register_power_tool("technic:blue_energy_crystal", 450000) + +minetest.register_craft({ + output = 'technic:battery', + recipe = { + {'group:wood', 'default:copper_ingot', 'group:wood'}, + {'group:wood', 'moreores:tin_ingot', 'group:wood'}, + {'group:wood', 'default:copper_ingot', 'group:wood'}, + } +}) + +minetest.register_tool("technic:battery", { + description = S("RE Battery"), + inventory_image = "technic_battery.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + tool_capabilities = { + charge = 0, + max_drop_level = 0, + groupcaps = { + fleshy = {times={}, uses=10000, maxlevel=0} + } + } +}) + +local tube = { + insert_object = function(pos, node, stack, direction) + if direction.y == 0 then + return stack + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if direction.y > 0 then + return inv:add_item("src", stack) + else + return inv:add_item("dst", stack) + end + end, + can_insert = function(pos, node, stack, direction) + if direction.y == 0 then + return false + end + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if direction.y > 0 then + return inv:room_for_item("src", stack) + else + return inv:room_for_item("dst", stack) + end + end, + connect_sides = {left=1, right=1, back=1, top=1, bottom=1}, +} + +function technic.register_battery_box(data) + local tier = data.tier + local ltier = string.lower(tier) + + local formspec = + "invsize[8,9;]".. + "image[1,1;1,2;technic_power_meter_bg.png]".. + "list[current_name;src;3,1;1,1;]".. + "image[4,1;1,1;technic_battery_reload.png]".. + "list[current_name;dst;5,1;1,1;]".. + "label[0,0;"..S("%s Battery Box"):format(tier).."]".. + "label[3,0;"..S("Charge").."]".. + "label[5,0;"..S("Discharge").."]".. + "label[1,3;"..S("Power level").."]".. + "list[current_player;main;0,5;8,4;]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]".. + "listring[current_name;dst]".. + "listring[current_player;main]" + if data.upgrade then + formspec = formspec.. + "list[current_name;upgrade1;3.5,3;1,1;]".. + "list[current_name;upgrade2;4.5,3;1,1;]".. + "listring[current_name;upgrade1]".. + "listring[current_player;main]".. + "listring[current_name;upgrade2]".. + "listring[current_player;main]".. + "label[3.5,4;"..S("Upgrade Slots").."]" + end + + local run = function(pos, node) + local meta = minetest.get_meta(pos) + local eu_input = meta:get_int(tier.."_EU_input") + local current_charge = meta:get_int("internal_EU_charge") + + local EU_upgrade, tube_upgrade = 0, 0 + if data.upgrade then + EU_upgrade, tube_upgrade = technic.handle_machine_upgrades(meta) + end + local max_charge = data.max_charge * (1 + EU_upgrade / 10) + + -- Charge/discharge the battery with the input EUs + if eu_input >= 0 then + current_charge = math.min(current_charge + eu_input, max_charge) + else + current_charge = math.max(current_charge + eu_input, 0) + end + + -- Charging/discharging tools here + local tool_full, tool_empty + current_charge, tool_full = technic.charge_tools(meta, + current_charge, data.charge_step) + current_charge, tool_empty = technic.discharge_tools(meta, + current_charge, data.discharge_step, + max_charge) + + if data.tube then + local inv = meta:get_inventory() + technic.handle_machine_pipeworks(pos, tube_upgrade, + function(pos, x_velocity, z_velocity) + if tool_full and not inv:is_empty("src") then + technic.send_items(pos, x_velocity, z_velocity, "src") + elseif tool_empty and not inv:is_empty("dst") then + technic.send_items(pos, x_velocity, z_velocity, "dst") + end + end) + end + + -- We allow batteries to charge on less than the demand + meta:set_int(tier.."_EU_demand", + math.min(data.charge_rate, max_charge - current_charge)) + meta:set_int(tier.."_EU_supply", + math.min(data.discharge_rate, current_charge)) + meta:set_int("internal_EU_charge", current_charge) + + -- Select node textures + local charge_count = math.ceil((current_charge / max_charge) * 8) + charge_count = math.min(charge_count, 8) + charge_count = math.max(charge_count, 0) + local last_count = meta:get_float("last_side_shown") + if charge_count ~= last_count then + technic.swap_node(pos,"technic:"..ltier.."_battery_box"..charge_count) + meta:set_float("last_side_shown", charge_count) + end + + local charge_percent = math.floor(current_charge / max_charge * 100) + meta:set_string("formspec", + formspec.. + "image[1,1;1,2;technic_power_meter_bg.png" + .."^[lowpart:"..charge_percent + ..":technic_power_meter_fg.png]") + + local infotext = S("%s Battery Box: %d/%d"):format(tier, + current_charge, max_charge) + if eu_input == 0 then + infotext = S("%s Idle"):format(infotext) + end + meta:set_string("infotext", infotext) + end + + for i = 0, 8 do + local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1} + if i ~= 0 then + groups.not_in_creative_inventory = 1 + end + + if data.tube then + groups.tubedevice = 1 + groups.tubedevice_receiver = 1 + end + + minetest.register_node("technic:"..ltier.."_battery_box"..i, { + description = S("%s Battery Box"):format(tier), + tiles = {"technic_"..ltier.."_battery_box_top.png", + "technic_"..ltier.."_battery_box_bottom.png", + "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png", + "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png", + "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png", + "technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png"}, + groups = groups, + tube = data.tube and tube or nil, + paramtype2 = "facedir", + sounds = default.node_sound_wood_defaults(), + drop = "technic:"..ltier.."_battery_box0", + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local node = minetest.get_node(pos) + + meta:set_string("infotext", S("%s Battery Box"):format(tier)) + meta:set_string("formspec", formspec) + meta:set_int(tier.."_EU_demand", 0) + meta:set_int(tier.."_EU_supply", 0) + meta:set_int(tier.."_EU_input", 0) + meta:set_float("internal_EU_charge", 0) + inv:set_size("src", 1) + inv:set_size("dst", 1) + inv:set_size("upgrade1", 1) + inv:set_size("upgrade2", 1) + end, + on_rightclick = function(pos, node, player, itemstack, pointed_thing) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", formspec) + end, + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + technic_run = run, + }) + end + + -- Register as a battery type + -- Battery type machines function as power reservoirs and can both receive and give back power + for i = 0, 8 do + technic.register_machine(tier, "technic:"..ltier.."_battery_box"..i, technic.battery) + end + +end -- End registration + + +function technic.charge_tools(meta, batt_charge, charge_step) + local inv = meta:get_inventory() + if inv:is_empty("src") then + return batt_charge, false + end + local src_stack = inv:get_stack("src", 1) + + local tool_name = src_stack:get_name() + if not technic.power_tools[tool_name] then + return batt_charge, false + end + -- Set meta data for the tool if it didn't do it itself + local src_meta = minetest.deserialize(src_stack:get_metadata()) or {} + if not src_meta.charge then + src_meta.charge = 0 + end + -- Do the charging + local item_max_charge = technic.power_tools[tool_name] + local tool_charge = src_meta.charge + if tool_charge >= item_max_charge then + return batt_charge, true + elseif batt_charge <= 0 then + return batt_charge, false + end + charge_step = math.min(charge_step, batt_charge) + charge_step = math.min(charge_step, item_max_charge - tool_charge) + tool_charge = tool_charge + charge_step + batt_charge = batt_charge - charge_step + technic.set_RE_wear(src_stack, tool_charge, item_max_charge) + src_meta.charge = tool_charge + src_stack:set_metadata(minetest.serialize(src_meta)) + inv:set_stack("src", 1, src_stack) + return batt_charge, (tool_charge == item_max_charge) +end + + +function technic.discharge_tools(meta, batt_charge, charge_step, max_charge) + local inv = meta:get_inventory() + if inv:is_empty("dst") then + return batt_charge, false + end + srcstack = inv:get_stack("dst", 1) + local toolname = srcstack:get_name() + if technic.power_tools[toolname] == nil then + return batt_charge, false + end + -- Set meta data for the tool if it didn't do it itself :-( + local src_meta = minetest.deserialize(srcstack:get_metadata()) + src_meta = src_meta or {} + if not src_meta.charge then + src_meta.charge = 0 + end + + -- Do the discharging + local item_max_charge = technic.power_tools[toolname] + local tool_charge = src_meta.charge + if tool_charge <= 0 then + return batt_charge, true + elseif batt_charge >= max_charge then + return batt_charge, false + end + charge_step = math.min(charge_step, max_charge - batt_charge) + charge_step = math.min(charge_step, tool_charge) + tool_charge = tool_charge - charge_step + batt_charge = batt_charge + charge_step + technic.set_RE_wear(srcstack, tool_charge, item_max_charge) + src_meta.charge = tool_charge + srcstack:set_metadata(minetest.serialize(src_meta)) + inv:set_stack("dst", 1, srcstack) + return batt_charge, (tool_charge == 0) +end + diff --git a/mods/technic/technic/machines/register/cables.lua b/mods/technic/technic/machines/register/cables.lua new file mode 100644 index 0000000..7abdfcb --- /dev/null +++ b/mods/technic/technic/machines/register/cables.lua @@ -0,0 +1,177 @@ + +local S = technic.getter + +technic.cables = {} + +function technic.register_cable(tier, size) + local ltier = string.lower(tier) + + for x1 = 0, 1 do + for x2 = 0, 1 do + for y1 = 0, 1 do + for y2 = 0, 1 do + for z1 = 0, 1 do + for z2 = 0, 1 do + local id = technic.get_cable_id({x1, x2, y1, y2, z1, z2}) + + technic.cables["technic:"..ltier.."_cable"..id] = tier + + local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2} + if id ~= 0 then + groups.not_in_creative_inventory = 1 + end + + minetest.register_node("technic:"..ltier.."_cable"..id, { + description = S("%s Cable"):format(tier), + tiles = {"technic_"..ltier.."_cable.png"}, + inventory_image = "technic_"..ltier.."_cable_wield.png", + wield_image = "technic_"..ltier.."_cable_wield.png", + groups = groups, + sounds = default.node_sound_wood_defaults(), + drop = "technic:"..ltier.."_cable0", + paramtype = "light", + sunlight_propagates = true, + drawtype = "nodebox", + node_box = { + type = "fixed", + fixed = technic.gen_cable_nodebox(x1, y1, z1, x2, y2, z2, size) + }, + on_construct = function() + technic.networks = {} + end, + on_destruct = function() + technic.networks = {} + end, + after_place_node = function(pos) + local node = minetest.get_node(pos) + technic.update_cables(pos, technic.get_cable_tier(node.name)) + end, + after_dig_node = function(pos, oldnode) + local tier = technic.get_cable_tier(oldnode.name) + technic.update_cables(pos, tier, true) + end + }) + end + end + end + end + end + end +end + +minetest.register_on_placenode(function(pos, node) + for tier, machine_list in pairs(technic.machines) do + if machine_list[node.name] ~= nil then + technic.update_cables(pos, tier, true) + technic.networks = {} + end + end +end) + + +minetest.register_on_dignode(function(pos, node) + for tier, machine_list in pairs(technic.machines) do + if machine_list[node.name] ~= nil then + technic.update_cables(pos, tier, true) + technic.networks = {} + end + end +end) + +function technic.get_cable_id(links) + return (links[6] * 1) + (links[5] * 2) + + (links[4] * 4) + (links[3] * 8) + + (links[2] * 16) + (links[1] * 32) +end + +function technic.update_cables(pos, tier, no_set, secondrun) + local link_positions = { + {x=pos.x+1, y=pos.y, z=pos.z}, + {x=pos.x-1, y=pos.y, z=pos.z}, + {x=pos.x, y=pos.y+1, z=pos.z}, + {x=pos.x, y=pos.y-1, z=pos.z}, + {x=pos.x, y=pos.y, z=pos.z+1}, + {x=pos.x, y=pos.y, z=pos.z-1}} + + local links = {0, 0, 0, 0, 0, 0} + + for i, link_pos in pairs(link_positions) do + local connect_type = technic.cables_should_connect(pos, link_pos, tier) + if connect_type then + links[i] = 1 + -- Have cables next to us update theirselves, + -- but only once. (We don't want to update the entire + -- network or start an infinite loop of updates) + if not secondrun and connect_type == "cable" then + technic.update_cables(link_pos, tier, false, true) + end + end + end + -- We don't want to set ourselves if we have been removed or we are + -- updating a machine + if not no_set then + minetest.set_node(pos, {name="technic:"..string.lower(tier) + .."_cable"..technic.get_cable_id(links)}) + + end +end + + +function technic.is_tier_cable(name, tier) + return technic.cables[name] and technic.cables[name] == tier +end + + +function technic.get_cable_tier(name) + return technic.cables[name] +end + + +function technic.cables_should_connect(pos1, pos2, tier) + local name = minetest.get_node(pos2).name + + if name == "technic:switching_station" then + return pos2.y == pos1.y + 1 and "machine" or false + elseif name == "technic:supply_converter" then + return math.abs(pos2.y - pos1.y) == 1 and "machine" or false + elseif technic.is_tier_cable(name, tier) then + return "cable" + elseif technic.machines[tier][name] then + return "machine" + end + return false +end + + +function technic.gen_cable_nodebox(x1, y1, z1, x2, y2, z2, size) + -- Nodeboxes + local box_center = {-size, -size, -size, size, size, size} + local box_y1 = {-size, -size, -size, size, 0.5, size} -- y+ + local box_x1 = {-size, -size, -size, 0.5, size, size} -- x+ + local box_z1 = {-size, -size, size, size, size, 0.5} -- z+ + local box_z2 = {-size, -size, -0.5, size, size, size} -- z- + local box_y2 = {-size, -0.5, -size, size, size, size} -- y- + local box_x2 = {-0.5, -size, -size, size, size, size} -- x- + + local box = {box_center} + if x1 == 1 then + table.insert(box, box_x1) + end + if y1 == 1 then + table.insert(box, box_y1) + end + if z1 == 1 then + table.insert(box, box_z1) + end + if x2 == 1 then + table.insert(box, box_x2) + end + if y2 == 1 then + table.insert(box, box_y2) + end + if z2 == 1 then + table.insert(box, box_z2) + end + return box +end + diff --git a/mods/technic/technic/machines/register/centrifuge.lua b/mods/technic/technic/machines/register/centrifuge.lua new file mode 100644 index 0000000..dd05977 --- /dev/null +++ b/mods/technic/technic/machines/register/centrifuge.lua @@ -0,0 +1,8 @@ +local S = technic.getter + +function technic.register_centrifuge(data) + data.typename = "separating" + data.machine_name = "centrifuge" + data.machine_desc = S("%s Centrifuge") + technic.register_base_machine(data) +end diff --git a/mods/technic/technic/machines/register/centrifuge_recipes.lua b/mods/technic/technic/machines/register/centrifuge_recipes.lua new file mode 100644 index 0000000..8b447a2 --- /dev/null +++ b/mods/technic/technic/machines/register/centrifuge_recipes.lua @@ -0,0 +1,38 @@ +local S = technic.getter + +technic.register_recipe_type("separating", { + description = S("Separating"), + output_size = 2, +}) + +function technic.register_separating_recipe(data) + data.time = data.time or 10 + technic.register_recipe("separating", data) +end + +local rubber_tree_planks = minetest.get_modpath("moretrees") and "moretrees:rubber_tree_planks" or "default:wood" + +local recipes = { + { "technic:bronze_dust 4", "technic:copper_dust 3", "technic:tin_dust" }, + { "technic:stainless_steel_dust 4", "technic:wrought_iron_dust 3", "technic:chromium_dust" }, + { "technic:brass_dust 3", "technic:copper_dust 2", "technic:zinc_dust" }, + { "moretrees:rubber_tree_trunk_empty", rubber_tree_planks.." 4", "technic:raw_latex" }, + { "moretrees:rubber_tree_trunk", rubber_tree_planks.." 4", "technic:raw_latex" }, +} + +local function uranium_dust(p) + return "technic:uranium"..(p == 7 and "" or p).."_dust" +end +for p = 1, 34 do + table.insert(recipes, { uranium_dust(p).." 2", uranium_dust(p-1), uranium_dust(p+1) }) +end + +if minetest.get_modpath("bushes_classic") then + for _, berry in ipairs({ "blackberry", "blueberry", "gooseberry", "raspberry", "strawberry" }) do + table.insert(recipes, { "bushes:"..berry.."_bush", "default:stick 20", "bushes:"..berry.." 4" }) + end +end + +for _, data in pairs(recipes) do + technic.register_separating_recipe({ input = { data[1] }, output = { data[2], data[3] } }) +end diff --git a/mods/technic/technic/machines/register/common.lua b/mods/technic/technic/machines/register/common.lua new file mode 100644 index 0000000..d68be14 --- /dev/null +++ b/mods/technic/technic/machines/register/common.lua @@ -0,0 +1,155 @@ + +local S = technic.getter + +function technic.handle_machine_upgrades(meta) + -- Get the names of the upgrades + local inv = meta:get_inventory() + local upg_item1 + local upg_item2 + local srcstack = inv:get_stack("upgrade1", 1) + if srcstack then + upg_item1 = srcstack:to_table() + end + srcstack = inv:get_stack("upgrade2", 1) + if srcstack then + upg_item2 = srcstack:to_table() + end + + -- Save some power by installing battery upgrades. + -- Tube loading speed can be upgraded using control logic units. + local EU_upgrade = 0 + local tube_upgrade = 0 + if upg_item1 then + if upg_item1.name == "technic:battery" then + EU_upgrade = EU_upgrade + 1 + elseif upg_item1.name == "technic:control_logic_unit" then + tube_upgrade = tube_upgrade + 1 + end + end + if upg_item2 then + if upg_item2.name == "technic:battery" then + EU_upgrade = EU_upgrade + 1 + elseif upg_item2.name == "technic:control_logic_unit" then + tube_upgrade = tube_upgrade + 1 + end + end + return EU_upgrade, tube_upgrade +end + + +function technic.send_items(pos, x_velocity, z_velocity, output_name) + -- Send items on their way in the pipe system. + if output_name == nil then + output_name = "dst" + end + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local i = 0 + for _, stack in ipairs(inv:get_list(output_name)) do + i = i + 1 + if stack then + local item0 = stack:to_table() + if item0 then + item0["count"] = "1" + technic.tube_inject_item(pos, pos, vector.new(x_velocity, 0, z_velocity), item0) + stack:take_item(1) + inv:set_stack(output_name, i, stack) + return + end + end + end +end + + +function technic.smelt_item(meta, result, speed) + local inv = meta:get_inventory() + meta:set_int("cook_time", meta:get_int("cook_time") + 1) + if meta:get_int("cook_time") < result.time / speed then + return + end + local result + local afterfuel + result, afterfuel = minetest.get_craft_result({method = "cooking", width = 1, items = inv:get_list("src")}) + + if result and result.item then + meta:set_int("cook_time", 0) + -- check if there's room for output in "dst" list + if inv:room_for_item("dst", result.item) then + inv:set_stack("src", 1, afterfuel.items[1]) + inv:add_item("dst", result.item) + end + end +end + +function technic.handle_machine_pipeworks(pos, tube_upgrade, send_function) + if send_function == nil then + send_function = technic.send_items + end + + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local pos1 = vector.new(pos) + local x_velocity = 0 + local z_velocity = 0 + + -- Output is on the left side of the furnace + if node.param2 == 3 then pos1.z = pos1.z - 1 z_velocity = -1 end + if node.param2 == 2 then pos1.x = pos1.x - 1 x_velocity = -1 end + if node.param2 == 1 then pos1.z = pos1.z + 1 z_velocity = 1 end + if node.param2 == 0 then pos1.x = pos1.x + 1 x_velocity = 1 end + + local output_tube_connected = false + local node1 = minetest.get_node(pos1) + if minetest.get_item_group(node1.name, "tubedevice") > 0 then + output_tube_connected = true + end + local tube_time = meta:get_int("tube_time") + tube_upgrade + if tube_time >= 2 then + tube_time = 0 + if output_tube_connected then + send_function(pos, x_velocity, z_velocity) + end + end + meta:set_int("tube_time", tube_time) +end + + +function technic.machine_can_dig(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + if not inv:is_empty("src") or not inv:is_empty("dst") or + not inv:is_empty("upgrade1") or not inv:is_empty("upgrade2") then + if player then + minetest.chat_send_player(player:get_player_name(), + S("Machine cannot be removed because it is not empty")) + end + return false + else + return true + end +end + +local function inv_change(pos, player, count) + if minetest.is_protected(pos, player:get_player_name()) then + minetest.chat_send_player(player:get_player_name(), + S("Inventory move disallowed due to protection")) + return 0 + end + return count +end + +function technic.machine_inventory_put(pos, listname, index, stack, player) + return inv_change(pos, player, stack:get_count()) +end + +function technic.machine_inventory_take(pos, listname, index, stack, player) + return inv_change(pos, player, stack:get_count()) +end + +function technic.machine_inventory_move(pos, from_list, from_index, + to_list, to_index, count, player) + return inv_change(pos, player, count) +end + diff --git a/mods/technic/technic/machines/register/compressor.lua b/mods/technic/technic/machines/register/compressor.lua new file mode 100644 index 0000000..49830d7 --- /dev/null +++ b/mods/technic/technic/machines/register/compressor.lua @@ -0,0 +1,9 @@ + +local S = technic.getter + +function technic.register_compressor(data) + data.typename = "compressing" + data.machine_name = "compressor" + data.machine_desc = S("%s Compressor") + technic.register_base_machine(data) +end diff --git a/mods/technic/technic/machines/register/compressor_recipes.lua b/mods/technic/technic/machines/register/compressor_recipes.lua new file mode 100644 index 0000000..4fba03b --- /dev/null +++ b/mods/technic/technic/machines/register/compressor_recipes.lua @@ -0,0 +1,24 @@ + +local S = technic.getter + +technic.register_recipe_type("compressing", { description = S("Compressing") }) + +function technic.register_compressor_recipe(data) + data.time = data.time or 4 + technic.register_recipe("compressing", data) +end + +local recipes = { + {"default:snowblock", "default:ice"}, + {"default:desert_sand", "default:desert_stone"}, + {"technic:mixed_metal_ingot", "technic:composite_plate"}, + {"default:copper_ingot 5", "technic:copper_plate"}, + {"technic:coal_dust 4", "technic:graphite"}, + {"technic:carbon_cloth", "technic:carbon_plate"}, + {"technic:uranium35_ingot 5", "technic:uranium_fuel"}, +} + +for _, data in pairs(recipes) do + technic.register_compressor_recipe({input = {data[1]}, output = data[2]}) +end + diff --git a/mods/technic/technic/machines/register/electric_furnace.lua b/mods/technic/technic/machines/register/electric_furnace.lua new file mode 100644 index 0000000..44de16c --- /dev/null +++ b/mods/technic/technic/machines/register/electric_furnace.lua @@ -0,0 +1,9 @@ + +local S = technic.getter + +function technic.register_electric_furnace(data) + data.typename = "cooking" + data.machine_name = "electric_furnace" + data.machine_desc = S("%s Furnace") + technic.register_base_machine(data) +end diff --git a/mods/technic/technic/machines/register/extractor.lua b/mods/technic/technic/machines/register/extractor.lua new file mode 100644 index 0000000..eeef9ff --- /dev/null +++ b/mods/technic/technic/machines/register/extractor.lua @@ -0,0 +1,9 @@ + +local S = technic.getter + +function technic.register_extractor(data) + data.typename = "extracting" + data.machine_name = "extractor" + data.machine_desc = S("%s Extractor") + technic.register_base_machine(data) +end diff --git a/mods/technic/technic/machines/register/extractor_recipes.lua b/mods/technic/technic/machines/register/extractor_recipes.lua new file mode 100644 index 0000000..f752144 --- /dev/null +++ b/mods/technic/technic/machines/register/extractor_recipes.lua @@ -0,0 +1,32 @@ + +local S = technic.getter + +technic.register_recipe_type("extracting", { description = S("Extracting") }) + +function technic.register_extractor_recipe(data) + data.time = data.time or 4 + technic.register_recipe("extracting", data) +end + +local recipes = { + -- Dyes + {"technic:coal_dust", "dye:black 2"}, + {"default:cactus", "dye:green 2"}, + {"default:dry_shrub", "dye:brown 2"}, + {"flowers:geranium", "dye:blue 2"}, + {"flowers:dandelion_white", "dye:white 2"}, + {"flowers:dandelion_yellow", "dye:yellow 2"}, + {"flowers:tulip", "dye:orange 2"}, + {"flowers:rose", "dye:red 2"}, + {"flowers:viola", "dye:violet 2"}, + + -- Rubber + {"technic:raw_latex", "technic:rubber 3"}, + {"moretrees:rubber_tree_trunk_empty", "technic:rubber"}, + {"moretrees:rubber_tree_trunk", "technic:rubber"}, +} + +for _, data in pairs(recipes) do + technic.register_extractor_recipe({input = {data[1]}, output = data[2]}) +end + diff --git a/mods/technic/technic/machines/register/generator.lua b/mods/technic/technic/machines/register/generator.lua new file mode 100644 index 0000000..c065de9 --- /dev/null +++ b/mods/technic/technic/machines/register/generator.lua @@ -0,0 +1,169 @@ +local S = technic.getter + +local tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:add_item("src", stack) + end, + can_insert = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:room_for_item("src", stack) + end, + connect_sides = {left=1, right=1, back=1, top=1, bottom=1}, +} + +function technic.register_generator(data) + local tier = data.tier + local ltier = string.lower(tier) + + local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1} + local active_groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1, not_in_creative_inventory=1} + if data.tube then + groups.tubedevice = 1 + groups.tubedevice_receiver = 1 + active_groups.tubedevice = 1 + active_groups.tubedevice_receiver = 1 + end + + local generator_formspec = + "invsize[8,9;]".. + "label[0,0;"..S("Fuel-Fired %s Generator"):format(tier).."]".. + "list[current_name;src;3,1;1,1;]".. + "image[4,1;1,1;default_furnace_fire_bg.png]".. + "list[current_player;main;0,5;8,4;]" + + local desc = S("Fuel-Fired %s Generator"):format(tier) + + local run = function(pos, node) + local meta = minetest.get_meta(pos) + local burn_time = meta:get_int("burn_time") + local burn_totaltime = meta:get_int("burn_totaltime") + -- If more to burn and the energy produced was used: produce some more + if burn_time > 0 then + meta:set_int(tier.."_EU_supply", data.supply) + burn_time = burn_time - 1 + meta:set_int("burn_time", burn_time) + end + -- Burn another piece of fuel + if burn_time == 0 then + local inv = meta:get_inventory() + if not inv:is_empty("src") then + local fuellist = inv:get_list("src") + local fuel + local afterfuel + fuel, afterfuel = minetest.get_craft_result( + {method = "fuel", width = 1, + items = fuellist}) + if not fuel or fuel.time == 0 then + meta:set_string("infotext", S("%s Out Of Fuel"):format(desc)) + technic.swap_node(pos, "technic:"..ltier.."_generator") + meta:set_int(tier.."_EU_supply", 0) + return + end + meta:set_int("burn_time", fuel.time) + meta:set_int("burn_totaltime", fuel.time) + inv:set_stack("src", 1, afterfuel.items[1]) + technic.swap_node(pos, "technic:"..ltier.."_generator_active") + meta:set_int(tier.."_EU_supply", data.supply) + else + technic.swap_node(pos, "technic:"..ltier.."_generator") + meta:set_int(tier.."_EU_supply", 0) + end + end + if burn_totaltime == 0 then burn_totaltime = 1 end + local percent = math.floor((burn_time / burn_totaltime) * 100) + meta:set_string("infotext", desc.." ("..percent.."%)") + meta:set_string("formspec", + "size[8, 9]".. + "label[0, 0;"..minetest.formspec_escape(desc).."]".. + "list[current_name;src;3, 1;1, 1;]".. + "image[4, 1;1, 1;default_furnace_fire_bg.png^[lowpart:".. + (percent)..":default_furnace_fire_fg.png]".. + "list[current_player;main;0, 5;8, 4;]") + end + + minetest.register_node("technic:"..ltier.."_generator", { + description = desc, + tiles = {"technic_"..ltier.."_generator_top.png", "technic_machine_bottom.png", + "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_side.png", + "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_front.png"}, + paramtype2 = "facedir", + groups = groups, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + tube = data.tube and tube or nil, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", desc) + meta:set_int(data.tier.."_EU_supply", 0) + meta:set_int("burn_time", 0) + meta:set_int("tube_time", 0) + meta:set_string("formspec", generator_formspec) + local inv = meta:get_inventory() + inv:set_size("src", 1) + end, + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + technic_run = run, + }) + + minetest.register_node("technic:"..ltier.."_generator_active", { + description = desc, + tiles = {"technic_"..ltier.."_generator_top.png", "technic_machine_bottom.png", + "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_side.png", + "technic_"..ltier.."_generator_side.png", "technic_"..ltier.."_generator_front_active.png"}, + paramtype2 = "facedir", + groups = active_groups, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + tube = data.tube and tube or nil, + drop = "technic:"..ltier.."_generator", + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + technic_run = run, + technic_on_disable = function(pos, node) + local timer = minetest.get_node_timer(pos) + timer:start(1) + end, + on_timer = function(pos, node) + local meta = minetest.get_meta(pos) + + -- Connected back? + if meta:get_int(tier.."_EU_timeout") > 0 then return end + + local burn_time = meta:get_int("burn_time") or 0 + + if burn_time <= 0 then + meta:set_int(tier.."_EU_supply", 0) + meta:set_int("burn_time", 0) + technic.swap_node(pos, "technic:"..ltier.."_generator") + return + end + + local burn_totaltime = meta:get_int("burn_totaltime") or 0 + if burn_totaltime == 0 then burn_totaltime = 1 end + burn_time = burn_time - 1 + meta:set_int("burn_time", burn_time) + local percent = math.floor(burn_time / burn_totaltime * 100) + meta:set_string("formspec", + "size[8, 9]".. + "label[0, 0;"..minetest.formspec_escape(desc).."]".. + "list[current_name;src;3, 1;1, 1;]".. + "image[4, 1;1, 1;default_furnace_fire_bg.png^[lowpart:".. + (percent)..":default_furnace_fire_fg.png]".. + "list[current_player;main;0, 5;8, 4;]") + local timer = minetest.get_node_timer(pos) + timer:start(1) + end, + }) + + technic.register_machine(tier, "technic:"..ltier.."_generator", technic.producer) + technic.register_machine(tier, "technic:"..ltier.."_generator_active", technic.producer) +end + diff --git a/mods/technic/technic/machines/register/grinder.lua b/mods/technic/technic/machines/register/grinder.lua new file mode 100644 index 0000000..19ea094 --- /dev/null +++ b/mods/technic/technic/machines/register/grinder.lua @@ -0,0 +1,9 @@ + +local S = technic.getter + +function technic.register_grinder(data) + data.typename = "grinding" + data.machine_name = "grinder" + data.machine_desc = S("%s Grinder") + technic.register_base_machine(data) +end diff --git a/mods/technic/technic/machines/register/grinder_recipes.lua b/mods/technic/technic/machines/register/grinder_recipes.lua new file mode 100644 index 0000000..f670dac --- /dev/null +++ b/mods/technic/technic/machines/register/grinder_recipes.lua @@ -0,0 +1,103 @@ + +local S = technic.getter + +technic.register_recipe_type("grinding", { description = S("Grinding") }) + +function technic.register_grinder_recipe(data) + data.time = data.time or 3 + technic.register_recipe("grinding", data) +end + +local recipes = { + -- Dusts + {"default:coal_lump", "technic:coal_dust 2"}, + {"default:copper_lump", "technic:copper_dust 2"}, + {"default:desert_stone", "default:desert_sand"}, + {"default:gold_lump", "technic:gold_dust 2"}, + {"default:iron_lump", "technic:wrought_iron_dust 2"}, + {"technic:chromium_lump", "technic:chromium_dust 2"}, + {"technic:uranium_lump", "technic:uranium_dust 2"}, + {"technic:zinc_lump", "technic:zinc_dust 2"}, + + -- Other + {"default:cobble", "default:gravel"}, + {"default:gravel", "default:dirt"}, + {"default:stone", "default:sand"}, +} + +if minetest.get_modpath("moreores") then + table.insert(recipes, {"moreores:mithril_lump", "technic:mithril_dust 2"}) + table.insert(recipes, {"moreores:silver_lump", "technic:silver_dust 2"}) + table.insert(recipes, {"moreores:tin_lump", "technic:tin_dust 2"}) +end + +if minetest.get_modpath("gloopores") or minetest.get_modpath("glooptest") then + table.insert(recipes, {"gloopores:alatro_lump", "technic:alatro_dust 2"}) + table.insert(recipes, {"gloopores:kalite_lump", "technic:kalite_dust 2"}) + table.insert(recipes, {"gloopores:arol_lump", "technic:arol_dust 2"}) + table.insert(recipes, {"gloopores:talinite_lump", "technic:talinite_dust 2"}) + table.insert(recipes, {"gloopores:akalin_lump", "technic:akalin_dust 2"}) +end + +if minetest.get_modpath("homedecor") then + table.insert(recipes, {"home_decor:brass_ingot", "technic:brass_dust 1"}) +end + +for _, data in pairs(recipes) do + technic.register_grinder_recipe({input = {data[1]}, output = data[2]}) +end + +local function register_dust(name, ingot) + local lname = string.lower(name) + lname = string.gsub(lname, ' ', '_') + minetest.register_craftitem("technic:"..lname.."_dust", { + description = S("%s Dust"):format(S(name)), + inventory_image = "technic_"..lname.."_dust.png", + on_place_on_ground = minetest.craftitem_place_item, + }) + if ingot then + minetest.register_craft({ + type = "cooking", + recipe = "technic:"..lname.."_dust", + output = ingot, + }) + technic.register_grinder_recipe({ input = {ingot}, output = "technic:"..lname.."_dust 1" }) + end +end + +-- Sorted alphibeticaly +register_dust("Brass", "technic:brass_ingot") +register_dust("Bronze", "default:bronze_ingot") +register_dust("Carbon Steel", "technic:carbon_steel_ingot") +register_dust("Cast Iron", "technic:cast_iron_ingot") +register_dust("Chromium", "technic:chromium_ingot") +register_dust("Coal", nil) +register_dust("Copper", "default:copper_ingot") +register_dust("Gold", "default:gold_ingot") +register_dust("Mithril", "moreores:mithril_ingot") +register_dust("Silver", "moreores:silver_ingot") +register_dust("Stainless Steel", "technic:stainless_steel_ingot") +register_dust("Tin", "moreores:tin_ingot") +register_dust("Wrought Iron", "technic:wrought_iron_ingot") +register_dust("Zinc", "technic:zinc_ingot") +if minetest.get_modpath("gloopores") or minetest.get_modpath("glooptest") then + register_dust("Akalin", "glooptest:akalin_ingot") + register_dust("Alatro", "glooptest:alatro_ingot") + register_dust("Arol", "glooptest:arol_ingot") + register_dust("Kalite", nil) + register_dust("Talinite", "glooptest:talinite_ingot") +end + +minetest.register_craft({ + type = "fuel", + recipe = "technic:coal_dust", + burntime = 50, +}) + +if minetest.get_modpath("gloopores") or minetest.get_modpath("glooptest") then + minetest.register_craft({ + type = "fuel", + recipe = "technic:kalite_dust", + burntime = 37.5, + }) +end diff --git a/mods/technic/technic/machines/register/init.lua b/mods/technic/technic/machines/register/init.lua new file mode 100644 index 0000000..3cf373d --- /dev/null +++ b/mods/technic/technic/machines/register/init.lua @@ -0,0 +1,30 @@ +local path = technic.modpath.."/machines/register" + +dofile(path.."/common.lua") + +-- Wiring stuff +dofile(path.."/cables.lua") +dofile(path.."/battery_box.lua") + +-- Generators +dofile(path.."/solar_array.lua") +dofile(path.."/generator.lua") + +-- API for machines +dofile(path.."/recipes.lua") +dofile(path.."/machine_base.lua") + +-- Recipes +dofile(path.."/alloy_recipes.lua") +dofile(path.."/grinder_recipes.lua") +dofile(path.."/extractor_recipes.lua") +dofile(path.."/compressor_recipes.lua") +dofile(path.."/centrifuge_recipes.lua") + +-- Machines +dofile(path.."/alloy_furnace.lua") +dofile(path.."/electric_furnace.lua") +dofile(path.."/grinder.lua") +dofile(path.."/extractor.lua") +dofile(path.."/compressor.lua") +dofile(path.."/centrifuge.lua") diff --git a/mods/technic/technic/machines/register/machine_base.lua b/mods/technic/technic/machines/register/machine_base.lua new file mode 100644 index 0000000..0ec24df --- /dev/null +++ b/mods/technic/technic/machines/register/machine_base.lua @@ -0,0 +1,193 @@ + +local S = technic.getter + +local tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:add_item("src", stack) + end, + can_insert = function(pos, node, stack, direction) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:room_for_item("src", stack) + end, + connect_sides = {left = 1, right = 1, back = 1, top = 1, bottom = 1}, +} + +local function round(v) + return math.floor(v + 0.5) +end + +function technic.register_base_machine(data) + local typename = data.typename + local input_size = technic.recipes[typename].input_size + local machine_name = data.machine_name + local machine_desc = data.machine_desc + local tier = data.tier + local ltier = string.lower(tier) + + local groups = {cracky = 2, technic_machine = 1} + local active_groups = {cracky = 2, technic_machine = 1, not_in_creative_inventory = 1} + if data.tube then + groups.tubedevice = 1 + groups.tubedevice_receiver = 1 + active_groups.tubedevice = 1 + active_groups.tubedevice_receiver = 1 + end + + + local formspec = + "invsize[8,9;]".. + "list[current_name;src;"..(4-input_size)..",1;"..input_size..",1;]".. + "list[current_name;dst;5,1;2,2;]".. + "list[current_player;main;0,5;8,4;]".. + "listring[current_name;dst]".. + "listring[current_player;main]".. + "listring[current_name;src]".. + "listring[current_player;main]".. + "label[0,0;"..machine_desc:format(tier).."]" + if data.upgrade then + formspec = formspec.. + "list[current_name;upgrade1;1,3;1,1;]".. + "list[current_name;upgrade2;2,3;1,1;]".. + "label[1,4;"..S("Upgrade Slots").."]" + end + + local run = function(pos, node) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local eu_input = meta:get_int(tier.."_EU_input") + + local machine_desc_tier = machine_desc:format(tier) + local machine_node = "technic:"..ltier.."_"..machine_name + local machine_demand = data.demand + + -- Setup meta data if it does not exist. + if not eu_input then + meta:set_int(tier.."_EU_demand", machine_demand[1]) + meta:set_int(tier.."_EU_input", 0) + return + end + + local EU_upgrade, tube_upgrade = 0, 0 + if data.upgrade then + EU_upgrade, tube_upgrade = technic.handle_machine_upgrades(meta) + end + if data.tube then + technic.handle_machine_pipeworks(pos, tube_upgrade) + end + + local powered = eu_input >= machine_demand[EU_upgrade+1] + if powered then + meta:set_int("src_time", meta:get_int("src_time") + round(data.speed*10)) + end + while true do + local result = technic.get_recipe(typename, inv:get_list("src")) + if not result then + technic.swap_node(pos, machine_node) + meta:set_string("infotext", S("%s Idle"):format(machine_desc_tier)) + meta:set_int(tier.."_EU_demand", 0) + meta:set_int("src_time", 0) + return + end + meta:set_int(tier.."_EU_demand", machine_demand[EU_upgrade+1]) + technic.swap_node(pos, machine_node.."_active") + meta:set_string("infotext", S("%s Active"):format(machine_desc_tier)) + if meta:get_int("src_time") < round(result.time*10) then + if not powered then + technic.swap_node(pos, machine_node) + meta:set_string("infotext", S("%s Unpowered"):format(machine_desc_tier)) + end + return + end + local output = result.output + if type(output) ~= "table" then output = { output } end + local output_stacks = {} + for _, o in ipairs(output) do + table.insert(output_stacks, ItemStack(o)) + end + local room_for_output = true + inv:set_size("dst_tmp", inv:get_size("dst")) + inv:set_list("dst_tmp", inv:get_list("dst")) + for _, o in ipairs(output_stacks) do + if not inv:room_for_item("dst_tmp", o) then + room_for_output = false + break + end + inv:add_item("dst_tmp", o) + end + if not room_for_output then + meta:set_int("src_time", round(result.time*10)) + return + end + meta:set_int("src_time", meta:get_int("src_time") - round(result.time*10)) + inv:set_list("src", result.new_input) + inv:set_list("dst", inv:get_list("dst_tmp")) + end + end + minetest.register_abm({nodenames = {"technic:"..ltier.."_"..machine_name}, interval = 1, chance = 1, + action = function(pos, node) + local meta = minetest.get_meta(pos) + meta:set_string("formspec",formspec) + end + }) + minetest.register_node("technic:"..ltier.."_"..machine_name, { + description = machine_desc:format(tier), + tiles = {"technic_"..ltier.."_"..machine_name.."_top.png", + "technic_"..ltier.."_"..machine_name.."_bottom.png", + "technic_"..ltier.."_"..machine_name.."_side.png", + "technic_"..ltier.."_"..machine_name.."_side.png", + "technic_"..ltier.."_"..machine_name.."_side.png", + "technic_"..ltier.."_"..machine_name.."_front.png"}, + paramtype2 = "facedir", + groups = groups, + tube = data.tube and tube or nil, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", machine_desc:format(tier)) + meta:set_int("tube_time", 0) + meta:set_string("formspec", formspec) + local inv = meta:get_inventory() + inv:set_size("src", input_size) + inv:set_size("dst", 4) + inv:set_size("upgrade1", 1) + inv:set_size("upgrade2", 1) + end, + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + technic_run = run, + }) + + minetest.register_node("technic:"..ltier.."_"..machine_name.."_active",{ + description = machine_desc:format(tier), + tiles = {"technic_"..ltier.."_"..machine_name.."_top.png", + "technic_"..ltier.."_"..machine_name.."_bottom.png", + "technic_"..ltier.."_"..machine_name.."_side.png", + "technic_"..ltier.."_"..machine_name.."_side.png", + "technic_"..ltier.."_"..machine_name.."_side.png", + "technic_"..ltier.."_"..machine_name.."_front_active.png"}, + paramtype2 = "facedir", + drop = "technic:"..ltier.."_"..machine_name, + groups = active_groups, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + tube = data.tube and tube or nil, + can_dig = technic.machine_can_dig, + allow_metadata_inventory_put = technic.machine_inventory_put, + allow_metadata_inventory_take = technic.machine_inventory_take, + allow_metadata_inventory_move = technic.machine_inventory_move, + technic_run = run, + technic_disabled_machine_name = "technic:"..ltier.."_"..machine_name, + }) + + technic.register_machine(tier, "technic:"..ltier.."_"..machine_name, technic.receiver) + technic.register_machine(tier, "technic:"..ltier.."_"..machine_name.."_active", technic.receiver) + +end -- End registration + diff --git a/mods/technic/technic/machines/register/recipes.lua b/mods/technic/technic/machines/register/recipes.lua new file mode 100644 index 0000000..37899bf --- /dev/null +++ b/mods/technic/technic/machines/register/recipes.lua @@ -0,0 +1,106 @@ +local unified_inventory = nil +technic.recipes = { cooking = { input_size = 1, output_size = 1 } } +function technic.register_recipe_type(typename, origdata) + local data = {} + for k, v in pairs(origdata) do data[k] = v end + data.input_size = data.input_size or 1 + data.output_size = data.output_size or 1 + if unified_inventory and unified_inventory.register_craft_type and data.output_size == 1 then + unified_inventory.register_craft_type(typename, { + description = data.description, + width = data.input_size, + height = 1, + }) + end + data.recipes = {} + technic.recipes[typename] = data +end + +local function get_recipe_index(items) + if not items or type(items) ~= "table" then return false end + local l = {} + for i, stack in ipairs(items) do + l[i] = ItemStack(stack):get_name() + end + table.sort(l) + return table.concat(l, "/") +end + +local function register_recipe(typename, data) + -- Handle aliases + for i, stack in ipairs(data.input) do + data.input[i] = ItemStack(stack):to_string() + end + if type(data.output) == "table" then + for i, v in ipairs(data.output) do + data.output[i] = ItemStack(data.output[i]):to_string() + end + else + data.output = ItemStack(data.output):to_string() + end + + local recipe = {time = data.time, input = {}, output = data.output} + local index = get_recipe_index(data.input) + if not index then + print("[Technic] ignored registration of garbage recipe!") + return + end + for _, stack in ipairs(data.input) do + recipe.input[ItemStack(stack):get_name()] = ItemStack(stack):get_count() + end + + technic.recipes[typename].recipes[index] = recipe + if unified_inventory and technic.recipes[typename].output_size == 1 then + unified_inventory.register_craft({ + type = typename, + output = data.output, + items = data.input, + width = 0, + }) + end +end + +function technic.register_recipe(typename, data) + minetest.after(0.01, register_recipe, typename, data) -- Handle aliases +end + +function technic.get_recipe(typename, items) + if typename == "cooking" then -- Already builtin in Minetest, so use that + local result, new_input = minetest.get_craft_result({ + method = "cooking", + width = 1, + items = items}) + -- Compatibility layer + if not result or result.time == 0 then + return nil + else + return {time = result.time, + new_input = new_input.items, + output = result.item} + end + end + local index = get_recipe_index(items) + if not index then + print("[Technic] ignored registration of garbage recipe!") + return + end + local recipe = technic.recipes[typename].recipes[index] + if recipe then + local new_input = {} + for i, stack in ipairs(items) do + if stack:get_count() < recipe.input[stack:get_name()] then + return nil + else + new_input[i] = ItemStack(stack) + new_input[i]:take_item(recipe.input[stack:get_name()]) + end + end + return {time = recipe.time, + new_input = new_input, + output = recipe.output} + else + return nil + end +end + + diff --git a/mods/technic/technic/machines/register/solar_array.lua b/mods/technic/technic/machines/register/solar_array.lua new file mode 100644 index 0000000..615219b --- /dev/null +++ b/mods/technic/technic/machines/register/solar_array.lua @@ -0,0 +1,63 @@ + +local S = technic.getter + +function technic.register_solar_array(data) + local tier = data.tier + local ltier = string.lower(tier) + + local run = function(pos, node) + -- The action here is to make the solar array produce power + -- Power is dependent on the light level and the height above ground + -- There are many ways to cheat by using other light sources like lamps. + -- As there is no way to determine if light is sunlight that is just a shame. + -- To take care of some of it solar panels do not work outside daylight hours or if + -- built below 0m + local pos1 = {} + local machine_name = S("Arrayed Solar %s Generator"):format(tier) + pos1.y = pos.y + 1 + pos1.x = pos.x + pos1.z = pos.z + local light = minetest.get_node_light(pos1, nil) + local time_of_day = minetest.get_timeofday() + local meta = minetest.get_meta(pos) + light = light or 0 + + -- turn on array only during day time and if sufficient light + -- I know this is counter intuitive when cheating by using other light sources. + if light >= 12 and time_of_day >= 0.24 and time_of_day <= 0.76 and pos.y > 0 then + local charge_to_give = math.floor((light + pos.y) * data.power) + charge_to_give = math.max(charge_to_give, 0) + charge_to_give = math.min(charge_to_give, data.power * 50) + meta:set_string("infotext", S("%s Active"):format(machine_name).." ("..charge_to_give.."EU)") + meta:set_int(tier.."_EU_supply", charge_to_give) + else + meta:set_string("infotext", S("%s Idle"):format(machine_name)) + meta:set_int(tier.."_EU_supply", 0) + end + end + + minetest.register_node("technic:solar_array_"..ltier, { + tiles = {"technic_"..ltier.."_solar_array_top.png", "technic_"..ltier.."_solar_array_bottom.png", + "technic_"..ltier.."_solar_array_side.png", "technic_"..ltier.."_solar_array_side.png", + "technic_"..ltier.."_solar_array_side.png", "technic_"..ltier.."_solar_array_side.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1}, + sounds = default.node_sound_wood_defaults(), + description = S("Arrayed Solar %s Generator"):format(tier), + active = false, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local name = minetest.get_node(pos).name + meta:set_int(tier.."_EU_supply", 0) + end, + technic_run = run, + }) + + technic.register_machine(tier, "technic:solar_array_"..ltier, technic.producer) +end + diff --git a/mods/technic/technic/machines/supply_converter.lua b/mods/technic/technic/machines/supply_converter.lua new file mode 100644 index 0000000..e84dcbe --- /dev/null +++ b/mods/technic/technic/machines/supply_converter.lua @@ -0,0 +1,79 @@ +-- The supply converter is a generic device which can convert from +-- LV to MV and back, and HV to MV and back. +-- The machine is configured by the wiring below and above it. +-- +-- It works like this: +-- The top side is setup as the receiver side, the bottom as the producer side. +-- Once the receiver side is powered it will deliver power to the other side. +-- Unused power is wasted just like any other producer! + +local S = technic.getter + +local run = function(pos, node) + local demand = 10000 + local remain = 0.9 + -- Machine information + local machine_name = S("Supply Converter") + local meta = minetest.get_meta(pos) + + local pos_up = {x=pos.x, y=pos.y+1, z=pos.z} + local pos_down = {x=pos.x, y=pos.y-1, z=pos.z} + local name_up = minetest.get_node(pos_up).name + local name_down = minetest.get_node(pos_down).name + + local from = technic.get_cable_tier(name_up) + local to = technic.get_cable_tier(name_down) + + if from and to then + local input = meta:get_int(from.."_EU_input") + meta:set_int(from.."_EU_demand", demand) + meta:set_int(from.."_EU_supply", 0) + meta:set_int(to.."_EU_demand", 0) + meta:set_int(to.."_EU_supply", input * remain) + meta:set_string("infotext", machine_name + .." ("..input.." "..from.." -> " + ..input * remain.." "..to..")") + else + meta:set_string("infotext", S("%s Has Bad Cabling"):format(machine_name)) + if to then + meta:set_int(to.."_EU_supply", 0) + end + if from then + meta:set_int(from.."_EU_demand", 0) + end + return + end + +end + +minetest.register_node("technic:supply_converter", { + description = S("Supply Converter"), + tiles = {"technic_supply_converter_top.png", "technic_supply_converter_bottom.png", + "technic_supply_converter_side.png", "technic_supply_converter_side.png", + "technic_supply_converter_side.png", "technic_supply_converter_side.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, technic_machine=1}, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("Supply Converter")) + meta:set_float("active", false) + end, + technic_run = run, +}) + +minetest.register_craft({ + output = "technic:supply_converter", + recipe = { + {"gems:sapphire_gem", "gems:sapphire_gem", "gems:sapphire_gem"}, + } +}) +for tier, machines in pairs(technic.machines) do + technic.register_machine(tier, "technic:supply_converter", technic.producer_receiver) +end + diff --git a/mods/technic/technic/machines/switching_station.lua b/mods/technic/technic/machines/switching_station.lua new file mode 100644 index 0000000..f3178a1 --- /dev/null +++ b/mods/technic/technic/machines/switching_station.lua @@ -0,0 +1,400 @@ +-- SWITCHING STATION +-- The switching station is the center of all power distribution on an electric network. +-- +-- The station collects power from sources (PR), distributes it to sinks (RE), +-- and uses the excess/shortfall to charge and discharge batteries (BA). +-- +-- For now, all supply and demand values are expressed in kW. +-- +-- It works like this: +-- All PR,BA,RE nodes are indexed and tagged with the switching station. +-- The tagging is to allow more stations to be built without allowing a cheat +-- with duplicating power. +-- All the RE nodes are queried for their current EU demand. Those which are off +-- would require no or a small standby EU demand, while those which are on would +-- require more. +-- If the total demand is less than the available power they are all updated with the +-- demand number. +-- If any surplus exists from the PR nodes the batteries will be charged evenly with this. +-- If the total demand requires draw on the batteries they will be discharged evenly. +-- +-- If the total demand is more than the available power all RE nodes will be shut down. +-- We have a brown-out situation. +-- +-- Hence all the power distribution logic resides in this single node. +-- +-- Nodes connected to the network will have one or more of these parameters as meta data: +-- _EU_supply : Exists for PR and BA node types. This is the EU value supplied by the node. Output +-- _EU_demand : Exists for RE and BA node types. This is the EU value the node requires to run. Output +-- _EU_input : Exists for RE and BA node types. This is the actual EU value the network can give the node. Input +-- +-- The reason the LV|MV|HV type is prepended toe meta data is because some machine could require several supplies to work. +-- This way the supplies are separated per network. + +technic.networks = {} + +local S = technic.getter + +minetest.register_craft({ + output = "technic:switching_station", + recipe = { + {"gems:ruby_gem", "gems:ruby_gem", "gems:ruby_gem"}, + } +}) + +minetest.register_node("technic:switching_station",{ + description = S("Switching Station"), + tiles = {"technic_water_mill_top_active.png", "technic_water_mill_top_active.png", + "technic_water_mill_top_active.png", "technic_water_mill_top_active.png", + "technic_water_mill_top_active.png", "technic_water_mill_top_active.png"}, + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + sounds = default.node_sound_wood_defaults(), + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, + }, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("Switching Station")) + meta:set_string("active", 1) + end, +}) + +-------------------------------------------------- +-- Functions to traverse the electrical network +-------------------------------------------------- + +-- Add a wire node to the LV/MV/HV network +local add_new_cable_node = function(nodes, pos) + -- Ignore if the node has already been added + for i = 1, #nodes do + if pos.x == nodes[i].x and + pos.y == nodes[i].y and + pos.z == nodes[i].z then + return false + end + end + table.insert(nodes, {x=pos.x, y=pos.y, z=pos.z, visited=1}) + return true +end + +-- Generic function to add found connected nodes to the right classification array +local check_node_subp = function(PR_nodes, RE_nodes, BA_nodes, SP_nodes, all_nodes, pos, machines, tier, sw_pos) + technic.get_or_load_node(pos) + local meta = minetest.get_meta(pos) + local name = minetest.get_node(pos).name + + if technic.is_tier_cable(name, tier) then + add_new_cable_node(all_nodes, pos) + elseif machines[name] then + --dprint(name.." is a "..machines[name]) + if machines[name] == technic.producer then + add_new_cable_node(PR_nodes, pos) + elseif machines[name] == technic.receiver then + add_new_cable_node(RE_nodes, pos) + elseif machines[name] == technic.producer_receiver then + add_new_cable_node(PR_nodes, pos) + add_new_cable_node(RE_nodes, pos) + elseif machines[name] == "SPECIAL" and + (pos.x ~= sw_pos.x or pos.y ~= sw_pos.y or pos.z ~= sw_pos.z) then + -- Another switching station -> disable it + add_new_cable_node(SP_nodes, pos) + meta:set_int("active", 0) + meta:set_string("active_pos", minetest.serialize(sw_pos)) + elseif machines[name] == technic.battery then + add_new_cable_node(BA_nodes, pos) + end + + meta:set_int(tier.."_EU_timeout", 2) -- Touch node + end +end + +-- Traverse a network given a list of machines and a cable type name +local traverse_network = function(PR_nodes, RE_nodes, BA_nodes, SP_nodes, all_nodes, i, machines, tier, sw_pos) + local pos = all_nodes[i] + local positions = { + {x=pos.x+1, y=pos.y, z=pos.z}, + {x=pos.x-1, y=pos.y, z=pos.z}, + {x=pos.x, y=pos.y+1, z=pos.z}, + {x=pos.x, y=pos.y-1, z=pos.z}, + {x=pos.x, y=pos.y, z=pos.z+1}, + {x=pos.x, y=pos.y, z=pos.z-1}} + --print("ON") + for i, cur_pos in pairs(positions) do + check_node_subp(PR_nodes, RE_nodes, BA_nodes, SP_nodes, all_nodes, cur_pos, machines, tier, sw_pos) + end +end + +local touch_nodes = function(list, tier) + for _, pos in ipairs(list) do + local meta = minetest.get_meta(pos) + meta:set_int(tier.."_EU_timeout", 2) -- Touch node + end +end + +local get_network = function(sw_pos, pos1, tier) + local cached = technic.networks[minetest.hash_node_position(pos1)] + if cached and cached.tier == tier then + touch_nodes(cached.PR_nodes, tier) + touch_nodes(cached.BA_nodes, tier) + touch_nodes(cached.RE_nodes, tier) + for _, pos in ipairs(cached.SP_nodes) do + local meta = minetest.get_meta(pos) + meta:set_int("active", 0) + meta:set_string("active_pos", minetest.serialize(sw_pos)) + end + return cached.PR_nodes, cached.BA_nodes, cached.RE_nodes + end + local i = 1 + local PR_nodes = {} + local BA_nodes = {} + local RE_nodes = {} + local SP_nodes = {} + local all_nodes = {pos1} + repeat + traverse_network(PR_nodes, RE_nodes, BA_nodes, SP_nodes, all_nodes, + i, technic.machines[tier], tier, sw_pos) + i = i + 1 + until all_nodes[i] == nil + technic.networks[minetest.hash_node_position(pos1)] = {tier = tier, PR_nodes = PR_nodes, + RE_nodes = RE_nodes, BA_nodes = BA_nodes, SP_nodes = SP_nodes} + return PR_nodes, BA_nodes, RE_nodes +end + +----------------------------------------------- +-- The action code for the switching station -- +----------------------------------------------- +minetest.register_abm({ + nodenames = {"technic:switching_station"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + local meta = minetest.get_meta(pos) + local meta1 = nil + local pos1 = {} + local PR_EU = 0 -- EUs from PR nodes + local BA_PR_EU = 0 -- EUs from BA nodes (discharching) + local BA_RE_EU = 0 -- EUs to BA nodes (charging) + local RE_EU = 0 -- EUs to RE nodes + + local tier = "" + local PR_nodes + local BA_nodes + local RE_nodes + local machine_name = S("Switching Station") + + if meta:get_int("active") ~= 1 then + meta:set_int("active", 1) + local active_pos = minetest.deserialize(meta:get_string("active_pos")) + if active_pos then + local meta1 = minetest.get_meta(active_pos) + meta:set_string("infotext", S("%s (Slave)"):format(meta1:get_string("infotext"))) + end + return + end + + -- Which kind of network are we on: + pos1 = {x=pos.x, y=pos.y-1, z=pos.z} + + local name = minetest.get_node(pos1).name + local tier = technic.get_cable_tier(name) + if tier then + PR_nodes, BA_nodes, RE_nodes = get_network(pos, pos1, tier) + else + --dprint("Not connected to a network") + meta:set_string("infotext", S("%s Has No Network"):format(machine_name)) + return + end + + -- Run all the nodes + local function run_nodes(list) + for _, pos2 in ipairs(list) do + technic.get_or_load_node(pos2) + local node2 = minetest.get_node(pos2) + local nodedef + if node2 and node2.name then + nodedef = minetest.registered_nodes[node2.name] + end + if nodedef and nodedef.technic_run then + nodedef.technic_run(pos2, node2) + end + end + end + + run_nodes(PR_nodes) + run_nodes(RE_nodes) + run_nodes(BA_nodes) + + -- Strings for the meta data + local eu_demand_str = tier.."_EU_demand" + local eu_input_str = tier.."_EU_input" + local eu_supply_str = tier.."_EU_supply" + + -- Distribute charge equally across multiple batteries. + local charge_total = 0 + local battery_count = 0 + + for n, pos1 in pairs(BA_nodes) do + meta1 = minetest.get_meta(pos1) + local charge = meta1:get_int("internal_EU_charge") + + if (meta1:get_int(eu_demand_str) ~= 0) then + charge_total = charge_total + charge + battery_count = battery_count + 1 + end + end + + local charge_distributed = math.floor(charge_total / battery_count) + + for n, pos1 in pairs(BA_nodes) do + meta1 = minetest.get_meta(pos1) + + if (meta1:get_int(eu_demand_str) ~= 0) then + meta1:set_int("internal_EU_charge", charge_distributed) + end + end + + -- Get all the power from the PR nodes + local PR_eu_supply = 0 -- Total power + for _, pos1 in pairs(PR_nodes) do + meta1 = minetest.get_meta(pos1) + PR_eu_supply = PR_eu_supply + meta1:get_int(eu_supply_str) + end + --dprint("Total PR supply:"..PR_eu_supply) + + -- Get all the demand from the RE nodes + local RE_eu_demand = 0 + for _, pos1 in pairs(RE_nodes) do + meta1 = minetest.get_meta(pos1) + RE_eu_demand = RE_eu_demand + meta1:get_int(eu_demand_str) + end + --dprint("Total RE demand:"..RE_eu_demand) + + -- Get all the power from the BA nodes + local BA_eu_supply = 0 + for _, pos1 in pairs(BA_nodes) do + meta1 = minetest.get_meta(pos1) + BA_eu_supply = BA_eu_supply + meta1:get_int(eu_supply_str) + end + --dprint("Total BA supply:"..BA_eu_supply) + + -- Get all the demand from the BA nodes + local BA_eu_demand = 0 + for _, pos1 in pairs(BA_nodes) do + meta1 = minetest.get_meta(pos1) + BA_eu_demand = BA_eu_demand + meta1:get_int(eu_demand_str) + end + --dprint("Total BA demand:"..BA_eu_demand) + + meta:set_string("infotext", + S("%s. Supply: %d Demand: %d"):format( + machine_name, PR_eu_supply, RE_eu_demand)) + + -- If the PR supply is enough for the RE demand supply them all + if PR_eu_supply >= RE_eu_demand then + --dprint("PR_eu_supply"..PR_eu_supply.." >= RE_eu_demand"..RE_eu_demand) + for _, pos1 in pairs(RE_nodes) do + meta1 = minetest.get_meta(pos1) + local eu_demand = meta1:get_int(eu_demand_str) + meta1:set_int(eu_input_str, eu_demand) + end + -- We have a surplus, so distribute the rest equally to the BA nodes + -- Let's calculate the factor of the demand + PR_eu_supply = PR_eu_supply - RE_eu_demand + local charge_factor = 0 -- Assume all batteries fully charged + if BA_eu_demand > 0 then + charge_factor = PR_eu_supply / BA_eu_demand + end + for n, pos1 in pairs(BA_nodes) do + meta1 = minetest.get_meta(pos1) + local eu_demand = meta1:get_int(eu_demand_str) + meta1:set_int(eu_input_str, math.floor(eu_demand * charge_factor)) + --dprint("Charging battery:"..math.floor(eu_demand*charge_factor)) + end + return + end + + -- If the PR supply is not enough for the RE demand we will discharge the batteries too + if PR_eu_supply + BA_eu_supply >= RE_eu_demand then + --dprint("PR_eu_supply "..PR_eu_supply.."+BA_eu_supply "..BA_eu_supply.." >= RE_eu_demand"..RE_eu_demand) + for _, pos1 in pairs(RE_nodes) do + meta1 = minetest.get_meta(pos1) + local eu_demand = meta1:get_int(eu_demand_str) + meta1:set_int(eu_input_str, eu_demand) + end + -- We have a deficit, so distribute to the BA nodes + -- Let's calculate the factor of the supply + local charge_factor = 0 -- Assume all batteries depleted + if BA_eu_supply > 0 then + charge_factor = (PR_eu_supply - RE_eu_demand) / BA_eu_supply + end + for n,pos1 in pairs(BA_nodes) do + meta1 = minetest.get_meta(pos1) + local eu_supply = meta1:get_int(eu_supply_str) + meta1:set_int(eu_input_str, math.floor(eu_supply * charge_factor)) + --dprint("Discharging battery:"..math.floor(eu_supply*charge_factor)) + end + return + end + + -- If the PR+BA supply is not enough for the RE demand: Power only the batteries + local charge_factor = 0 -- Assume all batteries fully charged + if BA_eu_demand > 0 then + charge_factor = PR_eu_supply / BA_eu_demand + end + for n, pos1 in pairs(BA_nodes) do + meta1 = minetest.get_meta(pos1) + local eu_demand = meta1:get_int(eu_demand_str) + meta1:set_int(eu_input_str, math.floor(eu_demand * charge_factor)) + end + for n, pos1 in pairs(RE_nodes) do + meta1 = minetest.get_meta(pos1) + meta1:set_int(eu_input_str, 0) + end + end, +}) + +-- Timeout ABM +-- Timeout for a node in case it was disconnected from the network +-- A node must be touched by the station continuously in order to function +local function switching_station_timeout_count(pos, tier) + local meta = minetest.get_meta(pos) + local timeout = meta:get_int(tier.."_EU_timeout") + if timeout <= 0 then + meta:set_int(tier.."_EU_input", 0) -- Not needed anymore <-- actually, it is for supply converter + return true + else + meta:set_int(tier.."_EU_timeout", timeout - 1) + return false + end +end +minetest.register_abm({ + nodenames = {"group:technic_machine"}, + interval = 1, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + for tier, machines in pairs(technic.machines) do + if machines[node.name] and switching_station_timeout_count(pos, tier) then + local nodedef = minetest.registered_nodes[node.name] + if nodedef and nodedef.technic_disabled_machine_name then + node.name = nodedef.technic_disabled_machine_name + minetest.swap_node(pos, node) + elseif nodedef and nodedef.technic_on_disable then + nodedef.technic_on_disable(pos, node) + end + if nodedef then + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("%s Has No Network"):format(nodedef.description)) + end + end + end + end, +}) + +for tier, machines in pairs(technic.machines) do + -- SPECIAL will not be traversed + technic.register_machine(tier, "technic:switching_station", "SPECIAL") +end + diff --git a/mods/technic/technic/models/technic_cylinder.obj b/mods/technic/technic/models/technic_cylinder.obj new file mode 100644 index 0000000..98e9b5b --- /dev/null +++ b/mods/technic/technic/models/technic_cylinder.obj @@ -0,0 +1,236 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_cylinder_onetexture.blend' +# www.blender.org +mtllib slope_test_cylinder_onetexture.mtl +o Cylinder_Cylinder.001 +v 0.000000 -0.500000 -0.500000 +v 0.000000 0.500000 -0.500000 +v 0.097545 -0.500000 -0.490393 +v 0.097545 0.500000 -0.490393 +v 0.191342 -0.500000 -0.461940 +v 0.191342 0.500000 -0.461940 +v 0.277785 -0.500000 -0.415735 +v 0.277785 0.500000 -0.415735 +v 0.353553 -0.500000 -0.353554 +v 0.353553 0.500000 -0.353554 +v 0.415735 -0.500000 -0.277785 +v 0.415735 0.500000 -0.277785 +v 0.461940 -0.500000 -0.191342 +v 0.461940 0.500000 -0.191342 +v 0.490393 -0.500000 -0.097545 +v 0.490393 0.500000 -0.097545 +v 0.500000 -0.500000 -0.000000 +v 0.500000 0.500000 -0.000000 +v 0.490393 -0.500000 0.097545 +v 0.490393 0.500000 0.097545 +v 0.461940 -0.500000 0.191341 +v 0.461940 0.500000 0.191341 +v 0.415735 -0.500000 0.277785 +v 0.415735 0.500000 0.277785 +v 0.353553 -0.500000 0.353553 +v 0.353553 0.500000 0.353553 +v 0.277785 -0.500000 0.415735 +v 0.277785 0.500000 0.415735 +v 0.191342 -0.500000 0.461940 +v 0.191342 0.500000 0.461940 +v 0.097545 -0.500000 0.490392 +v 0.097545 0.500000 0.490392 +v -0.000000 -0.500000 0.500000 +v -0.000000 0.500000 0.500000 +v -0.097545 -0.500000 0.490392 +v -0.097545 0.500000 0.490392 +v -0.191342 -0.500000 0.461939 +v -0.191342 0.500000 0.461939 +v -0.277785 -0.500000 0.415734 +v -0.277785 0.500000 0.415734 +v -0.353554 -0.500000 0.353553 +v -0.353554 0.500000 0.353553 +v -0.415735 -0.500000 0.277785 +v -0.415735 0.500000 0.277785 +v -0.461940 -0.500000 0.191341 +v -0.461940 0.500000 0.191341 +v -0.490393 -0.500000 0.097545 +v -0.490393 0.500000 0.097545 +v -0.500000 -0.500000 -0.000001 +v -0.500000 0.500000 -0.000001 +v -0.490393 -0.500000 -0.097546 +v -0.490393 0.500000 -0.097546 +v -0.461940 -0.500000 -0.191342 +v -0.461940 0.500000 -0.191342 +v -0.415734 -0.500000 -0.277786 +v -0.415734 0.500000 -0.277786 +v -0.353553 -0.500000 -0.353554 +v -0.353553 0.500000 -0.353554 +v -0.277785 -0.500000 -0.415735 +v -0.277785 0.500000 -0.415735 +v -0.191341 -0.500000 -0.461940 +v -0.191341 0.500000 -0.461940 +v -0.097544 -0.500000 -0.490393 +v -0.097544 0.500000 -0.490393 +vt 0.499996 0.999997 +vt 0.499995 0.000005 +vt 0.562495 0.000004 +vt 0.562496 0.999997 +vt 0.624995 0.000003 +vt 0.624997 0.999997 +vt 0.687496 0.000002 +vt 0.687497 0.999998 +vt 0.749997 0.000001 +vt 0.749997 0.999998 +vt 0.812497 0.000001 +vt 0.812497 0.999998 +vt 0.874997 -0.000000 +vt 0.874997 0.999998 +vt 0.937498 -0.000000 +vt 0.937498 0.999998 +vt 0.999998 -0.000000 +vt 0.999998 0.999998 +vt 0.000005 0.999997 +vt 0.000001 0.000024 +vt 0.062500 0.000023 +vt 0.062505 0.999996 +vt 0.124999 0.000021 +vt 0.125004 0.999996 +vt 0.187498 0.000020 +vt 0.187503 0.999995 +vt 0.249997 0.000018 +vt 0.250003 0.999994 +vt 0.312497 0.000017 +vt 0.312502 0.999994 +vt 0.374997 0.000015 +vt 0.375002 0.999993 +vt 0.437496 0.000014 +vt 0.437501 0.999993 +vt 0.499996 0.000012 +vt 0.500001 0.999992 +vt 0.562497 0.000010 +vt 0.562501 0.999992 +vt 0.624996 0.000009 +vt 0.625000 0.999991 +vt 0.687497 0.000007 +vt 0.687500 0.999991 +vt 0.749997 0.000006 +vt 0.750000 0.999991 +vt 0.812497 0.000004 +vt 0.812500 0.999991 +vt 0.874998 0.000003 +vt 0.875000 0.999991 +vt 0.937498 0.000001 +vt 0.937500 0.999992 +vt 0.999999 0.000000 +vt 1.000000 0.999993 +vt 0.000001 0.999993 +vt -0.000000 0.000016 +vt 0.062499 0.000015 +vt 0.062500 0.999994 +vt 0.124997 0.000013 +vt 0.124999 0.999994 +vt 0.187497 0.000011 +vt 0.187499 0.999995 +vt 0.249996 0.000010 +vt 0.249998 0.999995 +vt 0.312496 0.000009 +vt 0.312497 0.999996 +vt 0.374995 0.000008 +vt 0.374997 0.999996 +vt 0.402487 0.009601 +vt 0.500033 0.000000 +vt 0.597576 0.009614 +vt 0.691371 0.038072 +vt 0.777811 0.084282 +vt 0.853576 0.146469 +vt 0.915753 0.222242 +vt 0.961953 0.308689 +vt 0.990399 0.402487 +vt 1.000000 0.500033 +vt 0.990386 0.597577 +vt 0.961928 0.691370 +vt 0.915717 0.777811 +vt 0.853531 0.853575 +vt 0.777758 0.915753 +vt 0.691312 0.961952 +vt 0.597514 0.990398 +vt 0.499968 1.000000 +vt 0.402424 0.990386 +vt 0.308630 0.961928 +vt 0.222188 0.915717 +vt 0.146424 0.853531 +vt 0.084248 0.777759 +vt 0.038049 0.691313 +vt 0.009602 0.597515 +vt 0.000000 0.499970 +vt 0.009614 0.402425 +vt 0.038073 0.308630 +vt 0.084283 0.222189 +vt 0.146470 0.146424 +vt 0.222243 0.084248 +vt 0.308689 0.038048 +vt 0.437497 0.999997 +vt 0.437495 0.000006 +vt 0.499927 0.999999 +vt 0.402384 0.990378 +vt 0.308591 0.961911 +vt 0.222154 0.915694 +vt 0.146396 0.853502 +vt 0.084226 0.777725 +vt 0.038033 0.691274 +vt 0.009593 0.597473 +vt 0.000000 0.499927 +vt 0.009621 0.402383 +vt 0.038089 0.308590 +vt 0.084307 0.222153 +vt 0.146500 0.146394 +vt 0.222277 0.084224 +vt 0.308726 0.038032 +vt 0.402527 0.009593 +vt 0.500074 0.000000 +vt 0.597619 0.009622 +vt 0.691413 0.038090 +vt 0.777849 0.084308 +vt 0.853607 0.146500 +vt 0.915777 0.222279 +vt 0.961969 0.308730 +vt 0.990407 0.402531 +vt 1.000000 0.500077 +vt 0.990377 0.597621 +vt 0.961910 0.691412 +vt 0.915693 0.777847 +vt 0.853501 0.853605 +vt 0.777724 0.915775 +vt 0.691274 0.961967 +vt 0.597473 0.990407 +usemtl None +s 1 +f 1/1 2/2 4/3 3/4 +f 3/4 4/3 6/5 5/6 +f 5/6 6/5 8/7 7/8 +f 7/8 8/7 10/9 9/10 +f 9/10 10/9 12/11 11/12 +f 11/12 12/11 14/13 13/14 +f 13/14 14/13 16/15 15/16 +f 15/16 16/15 18/17 17/18 +f 17/19 18/20 20/21 19/22 +f 19/22 20/21 22/23 21/24 +f 21/24 22/23 24/25 23/26 +f 23/26 24/25 26/27 25/28 +f 25/28 26/27 28/29 27/30 +f 27/30 28/29 30/31 29/32 +f 29/32 30/31 32/33 31/34 +f 31/34 32/33 34/35 33/36 +f 33/36 34/35 36/37 35/38 +f 35/38 36/37 38/39 37/40 +f 37/40 38/39 40/41 39/42 +f 39/42 40/41 42/43 41/44 +f 41/44 42/43 44/45 43/46 +f 43/46 44/45 46/47 45/48 +f 45/48 46/47 48/49 47/50 +f 47/50 48/49 50/51 49/52 +f 49/53 50/54 52/55 51/56 +f 51/56 52/55 54/57 53/58 +f 53/58 54/57 56/59 55/60 +f 55/60 56/59 58/61 57/62 +f 57/62 58/61 60/63 59/64 +f 59/64 60/63 62/65 61/66 +f 4/67 2/68 64/69 62/70 60/71 58/72 56/73 54/74 52/75 50/76 48/77 46/78 44/79 42/80 40/81 38/82 36/83 34/84 32/85 30/86 28/87 26/88 24/89 22/90 20/91 18/92 16/93 14/94 12/95 10/96 8/97 6/98 +f 63/99 64/100 2/2 1/1 +f 61/66 62/65 64/100 63/99 +f 1/101 3/102 5/103 7/104 9/105 11/106 13/107 15/108 17/109 19/110 21/111 23/112 25/113 27/114 29/115 31/116 33/117 35/118 37/119 39/120 41/121 43/122 45/123 47/124 49/125 51/126 53/127 55/128 57/129 59/130 61/131 63/132 diff --git a/mods/technic/technic/models/technic_cylinder_horizontal.obj b/mods/technic/technic/models/technic_cylinder_horizontal.obj new file mode 100644 index 0000000..cc3ba46 --- /dev/null +++ b/mods/technic/technic/models/technic_cylinder_horizontal.obj @@ -0,0 +1,165 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend' +# www.blender.org +mtllib technic_cylinder_horizontal.mtl +o Cylinder_Cylinder.001 +v 0.500000 0.500000 0.000000 +v -0.500000 0.500000 0.000000 +v -0.500000 0.490393 0.097545 +v 0.500000 0.490392 0.097545 +v -0.500000 0.461940 0.191342 +v 0.500000 0.461940 0.191342 +v -0.500000 0.415735 0.277785 +v 0.500000 0.415735 0.277785 +v -0.500000 0.353553 0.353553 +v 0.500000 0.353553 0.353553 +v -0.500000 0.277785 0.415735 +v 0.500000 0.277785 0.415735 +v -0.500000 0.191342 0.461940 +v 0.500000 0.191342 0.461940 +v -0.500000 0.097545 0.490393 +v 0.500000 0.097545 0.490393 +v -0.500000 -0.000000 0.500000 +v 0.500000 -0.000000 0.500000 +v -0.500000 -0.097545 0.490393 +v 0.500000 -0.097545 0.490393 +v -0.500000 -0.191342 0.461940 +v 0.500000 -0.191342 0.461940 +v -0.500000 -0.277785 0.415735 +v 0.500000 -0.277785 0.415735 +v -0.500000 -0.353553 0.353553 +v 0.500000 -0.353554 0.353553 +v -0.500000 -0.415735 0.277785 +v 0.500000 -0.415735 0.277785 +v -0.500000 -0.461940 0.191342 +v 0.500000 -0.461940 0.191342 +v -0.500000 -0.490393 0.097545 +v 0.500000 -0.490393 0.097545 +v -0.500000 -0.500000 -0.000000 +v 0.500000 -0.500000 -0.000000 +v -0.500000 -0.490393 -0.097545 +v 0.500000 -0.490393 -0.097545 +v -0.500000 -0.461940 -0.191342 +v 0.500000 -0.461940 -0.191342 +v -0.500000 -0.415735 -0.277785 +v 0.500000 -0.415735 -0.277785 +v -0.500000 -0.353553 -0.353554 +v 0.500000 -0.353553 -0.353554 +v -0.500000 -0.277785 -0.415735 +v 0.500000 -0.277785 -0.415735 +v -0.500000 -0.191341 -0.461940 +v 0.500000 -0.191342 -0.461940 +v -0.500000 -0.097545 -0.490393 +v 0.500000 -0.097545 -0.490393 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v -0.500000 0.097546 -0.490392 +v 0.500000 0.097546 -0.490393 +v -0.500000 0.191342 -0.461939 +v 0.500000 0.191342 -0.461940 +v -0.500000 0.277786 -0.415734 +v 0.500000 0.277785 -0.415734 +v -0.500000 0.353554 -0.353553 +v 0.500000 0.353554 -0.353553 +v -0.500000 0.415735 -0.277784 +v 0.500000 0.415735 -0.277785 +v -0.500000 0.461940 -0.191341 +v 0.500000 0.461940 -0.191341 +v -0.500000 0.490393 -0.097544 +v 0.500000 0.490393 -0.097544 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 1.000000 0.625000 +vt 0.000000 0.625000 +vt 1.000000 0.750000 +vt 0.000000 0.750000 +vt 1.000000 0.875000 +vt 0.000000 0.875000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.125000 +vt 0.000000 0.125000 +vt 1.000000 0.250000 +vt 0.000000 0.250000 +vt 1.000000 0.375000 +vt 0.000000 0.375000 +vt 0.148438 0.144531 +vt 0.222656 0.085937 +vt 0.308594 0.039062 +vt 0.402344 0.007812 +vt 0.500000 -0.000000 +vt 0.597656 0.007812 +vt 0.691406 0.039062 +vt 0.777344 0.085938 +vt 0.855469 0.148438 +vt 0.914062 0.222656 +vt 0.960937 0.308594 +vt 0.992187 0.402344 +vt 0.992187 0.597656 +vt 0.960937 0.691406 +vt 0.914062 0.777344 +vt 0.851562 0.855469 +vt 0.777344 0.914063 +vt 0.691406 0.960938 +vt 0.597656 0.992188 +vt 0.500000 1.000000 +vt 0.402344 0.992188 +vt 0.308594 0.960938 +vt 0.222656 0.914062 +vt 0.144531 0.851562 +vt 0.085937 0.777344 +vt 0.039062 0.691406 +vt 0.007812 0.597656 +vt 0.007812 0.402344 +vt 0.039062 0.308594 +vt 0.085938 0.222656 +vt 0.085937 0.222656 +vt 0.144531 0.144531 +vt 0.222656 0.085938 +vt 0.777344 0.085937 +vt 0.855469 0.144531 +vt 0.960938 0.308594 +vt 0.992188 0.402344 +vt 0.992188 0.597656 +vt 0.960938 0.691406 +vt 0.855469 0.855469 +vt 0.777344 0.914062 +vt 0.144531 0.855469 +vt 0.085938 0.777344 +usemtl None.002 +s 1 +f 1/1 2/2 3/3 4/4 +f 4/4 3/3 5/5 6/6 +f 6/6 5/5 7/7 8/8 +f 8/8 7/7 9/9 10/10 +f 10/11 9/12 11/13 12/14 +f 12/14 11/13 13/15 14/16 +f 14/16 13/15 15/17 16/18 +f 16/18 15/17 17/2 18/1 +f 18/1 17/2 19/3 20/4 +f 20/4 19/3 21/5 22/6 +f 22/6 21/5 23/7 24/8 +f 24/8 23/7 25/9 26/10 +f 26/11 25/12 27/13 28/14 +f 28/14 27/13 29/15 30/16 +f 30/16 29/15 31/17 32/18 +f 32/18 31/17 33/2 34/1 +f 34/1 33/2 35/3 36/4 +f 36/4 35/3 37/5 38/6 +f 38/6 37/5 39/7 40/8 +f 40/8 39/7 41/9 42/10 +f 42/11 41/12 43/13 44/14 +f 44/14 43/13 45/15 46/16 +f 46/16 45/15 47/17 48/18 +f 48/18 47/17 49/2 50/1 +f 50/1 49/2 51/3 52/4 +f 52/4 51/3 53/5 54/6 +f 54/6 53/5 55/7 56/8 +f 56/8 55/7 57/9 58/10 +f 58/11 57/12 59/13 60/14 +f 60/14 59/13 61/15 62/16 +f 2/2 1/1 64/18 63/17 +f 62/16 61/15 63/17 64/18 +f 26/19 28/20 30/21 32/22 34/23 36/24 38/25 40/26 42/27 44/28 46/29 48/30 50/2 52/31 54/32 56/33 58/34 60/35 62/36 64/37 1/38 4/39 6/40 8/41 10/42 12/43 14/44 16/45 18/1 20/46 22/47 24/48 +f 43/49 41/50 39/51 37/21 35/22 33/23 31/24 29/25 27/52 25/53 23/28 21/54 19/55 17/2 15/56 13/57 11/33 9/58 7/59 5/36 3/37 2/38 63/39 61/40 59/41 57/60 55/61 53/44 51/45 49/1 47/46 45/47 diff --git a/mods/technic/technic/models/technic_innercorner.obj b/mods/technic/technic/models/technic_innercorner.obj new file mode 100644 index 0000000..0349cd7 --- /dev/null +++ b/mods/technic/technic/models/technic_innercorner.obj @@ -0,0 +1,28 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend' +# www.blender.org +mtllib technic_innercorner.mtl +o Cube_Cube.000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +usemtl None +s off +f 6/1 1/2 7/3 8/4 +f 2/1 5/3 3/4 +f 2/1 1/2 5/4 +f 6/2 8/3 9/4 +f 9/1 8/2 7/3 3/4 +f 3/3 7/4 1/1 2/2 +f 1/1 6/2 9/3 +l 1 4 +l 3 4 diff --git a/mods/technic/technic/models/technic_innercorner_upsdown.obj b/mods/technic/technic/models/technic_innercorner_upsdown.obj new file mode 100644 index 0000000..a2fb189 --- /dev/null +++ b/mods/technic/technic/models/technic_innercorner_upsdown.obj @@ -0,0 +1,28 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend' +# www.blender.org +mtllib technic_innercorner_upsdown.mtl +o Cube_Cube.000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 -0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +usemtl None +s off +f 6/1 1/2 7/3 8/4 +f 2/1 5/3 3/4 +f 2/1 1/2 5/4 +f 6/2 8/3 9/4 +f 9/1 8/2 7/3 3/4 +f 3/3 7/4 1/1 2/2 +f 1/1 6/2 9/3 +l 1 4 +l 3 4 diff --git a/mods/technic/technic/models/technic_oblatesphere.obj b/mods/technic/technic/models/technic_oblatesphere.obj new file mode 100644 index 0000000..f489e4a --- /dev/null +++ b/mods/technic/technic/models/technic_oblatesphere.obj @@ -0,0 +1,262 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_blob_onetexture.blend' +# www.blender.org +mtllib slope_test_blob_onetexture.mtl +o Cube +v 0.213679 -0.450000 -0.213679 +v -0.213679 -0.450000 0.213680 +v 0.213680 -0.450000 0.213680 +v -0.213679 -0.450000 -0.213679 +v 0.213679 0.450000 -0.213679 +v -0.213679 0.450000 -0.213679 +v 0.213679 0.450000 0.213680 +v 0.500000 -0.000003 0.500000 +v 0.277785 -0.415735 0.277785 +v -0.277785 -0.415735 0.277785 +v 0.353553 -0.353554 0.353553 +v -0.353553 -0.353554 0.353553 +v -0.500000 -0.000002 0.500000 +v 0.415735 -0.277786 0.415735 +v -0.277785 0.415735 0.277785 +v 0.277785 0.415735 0.277785 +v -0.415735 -0.277785 0.415735 +v 0.353554 0.353553 0.353554 +v -0.500000 -0.000002 -0.499983 +v 0.461940 -0.191342 0.461940 +v -0.461940 -0.191342 0.461940 +v -0.353553 0.353553 0.353554 +v 0.490393 -0.097546 0.490393 +v 0.500000 -0.000002 -0.500000 +v 0.490393 0.097545 -0.490392 +v 0.490393 0.097545 0.490393 +v -0.490393 -0.097546 0.490393 +v 0.490393 -0.097545 -0.490393 +v 0.461940 0.191341 0.461940 +v -0.461940 0.191341 0.461940 +v 0.461940 0.191342 -0.461940 +v -0.490393 0.097545 0.490393 +v 0.415735 0.277785 0.415735 +v -0.490393 0.097545 -0.490392 +v -0.415735 0.277785 0.415735 +v 0.461940 -0.191341 -0.461940 +v 0.415735 0.277785 -0.415735 +v -0.461940 0.191341 -0.461940 +v -0.415735 0.277785 -0.415735 +v 0.415735 -0.277785 -0.415735 +v -0.490393 -0.097546 -0.490392 +v 0.353553 0.353553 -0.353553 +v -0.213679 0.450000 0.213680 +v -0.353553 0.353553 -0.353553 +v 0.277785 0.415735 -0.277785 +v -0.461940 -0.191342 -0.461939 +v 0.353554 -0.353553 -0.353554 +v -0.277785 0.415735 -0.277785 +v -0.415735 -0.277785 -0.415734 +v 0.277786 -0.415735 -0.277785 +v -0.353553 -0.353554 -0.353553 +v -0.277785 -0.415735 -0.277784 +vt 0.038487 0.679029 +vt 0.010047 0.589789 +vt 0.990397 0.589790 +vt 0.915772 0.767073 +vt 0.084671 0.767071 +vt 0.961957 0.679029 +vt 0.852473 0.146294 +vt 0.914576 0.232749 +vt 0.084146 0.232744 +vt 0.712776 0.000003 +vt 0.221926 0.061588 +vt 0.285951 0.000000 +vt 0.285945 0.999818 +vt 0.221920 0.938229 +vt 0.712771 0.999818 +vt 0.009578 0.589789 +vt 0.989138 0.589792 +vt 0.960721 0.679031 +vt 0.286638 0.000000 +vt 0.777884 0.061589 +vt 0.222561 0.061589 +vt 0.777608 0.938229 +vt 0.222164 0.938229 +vt 0.146413 0.853527 +vt 0.286255 0.999818 +vt 0.713517 0.999818 +vt 0.776800 0.061592 +vt 0.146251 0.146290 +vt 0.000000 0.499907 +vt 0.989139 0.410032 +vt 0.998734 0.499910 +vt 0.853618 0.146291 +vt 0.915772 0.232746 +vt 0.146826 0.146290 +vt 0.961957 0.320789 +vt 0.084672 0.232745 +vt 0.990397 0.410029 +vt 0.038487 0.320789 +vt 0.776796 0.938230 +vt 0.286337 0.999818 +vt 0.222233 0.938229 +vt 0.777790 0.938229 +vt 0.146467 0.853526 +vt 0.853556 0.853527 +vt 0.146825 0.853526 +vt 0.853617 0.853528 +vt 1.000000 0.499907 +vt 0.010047 0.410028 +vt 0.146246 0.853527 +vt 0.222559 0.938228 +vt 0.777882 0.938230 +vt 0.915737 0.767073 +vt 0.084287 0.767072 +vt 0.038083 0.679029 +vt 0.000024 0.499906 +vt 0.990393 0.589789 +vt 0.009631 0.589789 +vt 0.961941 0.679029 +vt 0.037995 0.679029 +vt 0.960723 0.320792 +vt 0.037998 0.320787 +vt 0.009580 0.410028 +vt 0.990393 0.410029 +vt 0.990167 0.589790 +vt 0.009605 0.589789 +vt 0.999772 0.499909 +vt 0.961721 0.679029 +vt 0.038051 0.679029 +vt 0.084246 0.767072 +vt 0.915526 0.767072 +vt 0.853359 0.853527 +vt 0.914573 0.767074 +vt 0.084142 0.767072 +vt 0.852470 0.853528 +vt 0.777609 0.061590 +vt 0.853360 0.146293 +vt 0.222166 0.061589 +vt 0.146414 0.146291 +vt 0.915527 0.232748 +vt 0.084247 0.232746 +vt 0.961721 0.320791 +vt 0.038052 0.320789 +vt 0.009605 0.410029 +vt 0.990167 0.410031 +vt 0.713686 0.999818 +vt 0.749950 0.250050 +vt 0.749950 0.749950 +vt 0.250050 0.749950 +vt 0.250050 0.250050 +vt 0.713807 0.000000 +vt 0.286258 0.000000 +vt 0.713519 0.000001 +vt 0.286636 0.999817 +vt 0.222233 0.061589 +vt 0.777791 0.061589 +vt 0.146467 0.146291 +vt 0.853557 0.146291 +vt 0.084287 0.232745 +vt 0.915737 0.232746 +vt 0.038083 0.320788 +vt 0.961941 0.320789 +vt 0.009631 0.410028 +vt 0.000444 0.499907 +vt 0.713687 0.000000 +vt 0.286337 0.000000 +vt 0.713805 0.999818 +usemtl Material +s 1 +f 30/1 32/2 26/3 +f 33/4 35/5 29/6 +f 12/7 17/8 49/9 +f 2/10 52/11 4/12 +f 6/13 48/14 43/15 +f 34/16 32/17 30/18 +f 2/19 9/20 10/21 +f 48/22 45/23 42/24 +f 5/25 45/23 6/26 +f 10/27 12/7 51/28 +f 19/29 27/30 13/31 +f 9/20 11/32 10/21 +f 11/32 14/33 12/34 +f 14/33 20/35 17/36 +f 20/35 23/37 21/38 +f 43/15 48/14 15/39 +f 7/40 16/41 45/42 +f 18/43 42/44 45/42 +f 29/6 30/1 26/3 +f 22/45 33/4 18/46 +f 26/3 32/2 8/47 +f 8/47 27/48 23/37 +f 11/32 12/34 10/21 +f 14/33 17/36 12/34 +f 20/35 21/38 17/36 +f 23/37 27/48 21/38 +f 10/27 52/11 2/10 +f 15/39 48/14 44/49 +f 22/45 35/5 33/4 +f 15/50 22/45 16/51 +f 37/52 42/44 18/43 +f 33/53 29/54 37/52 +f 8/55 25/56 26/57 +f 24/47 25/56 8/55 +f 29/54 26/57 31/58 +f 26/57 25/56 31/58 +f 29/54 31/58 37/52 +f 38/59 34/16 30/18 +f 19/29 32/17 34/16 +f 13/31 32/17 19/29 +f 17/8 21/60 46/61 +f 21/60 27/30 41/62 +f 8/55 28/63 24/47 +f 34/64 25/65 19/66 +f 38/67 31/68 34/64 +f 31/68 25/65 34/64 +f 37/69 38/67 39/70 +f 37/69 31/68 38/67 +f 44/71 42/24 37/69 +f 38/59 30/18 35/72 +f 39/73 35/72 22/74 +f 52/75 51/76 50/77 +f 51/76 47/78 50/77 +f 51/76 49/79 47/78 +f 49/79 40/80 47/78 +f 49/79 46/81 40/80 +f 46/81 36/82 40/80 +f 19/66 28/83 41/84 +f 46/81 41/84 36/82 +f 41/84 28/83 36/82 +f 22/45 18/46 16/51 +f 5/85 7/40 45/42 +f 2/86 4/87 1/88 3/89 +f 44/71 48/22 42/24 +f 35/5 30/1 29/6 +f 3/90 9/20 2/19 +f 45/23 48/22 6/26 +f 1/91 52/75 50/77 +f 39/70 44/71 37/69 +f 52/75 1/91 4/92 +f 24/29 28/83 19/66 +f 7/88 5/89 6/86 43/87 +f 24/29 19/66 25/65 +f 15/50 16/51 43/93 +f 22/74 44/49 39/73 +f 39/73 38/59 35/72 +f 41/62 27/30 19/29 +f 46/61 21/60 41/62 +f 49/9 17/8 46/61 +f 51/28 12/7 49/9 +f 52/11 10/27 51/28 +f 9/94 50/95 11/96 +f 50/95 47/97 11/96 +f 11/96 47/97 14/98 +f 47/97 40/99 14/98 +f 14/98 40/99 20/100 +f 40/99 36/101 20/100 +f 23/102 28/63 8/55 +f 20/100 36/101 23/102 +f 36/101 28/63 23/102 +f 13/103 8/47 32/2 +f 50/95 9/94 1/104 +f 13/103 27/48 8/47 +f 16/41 18/43 45/42 +f 22/74 15/39 44/49 +f 9/94 3/105 1/104 +f 33/53 37/52 18/43 +f 43/93 16/51 7/106 diff --git a/mods/technic/technic/models/technic_one_curved_edge.obj b/mods/technic/technic/models/technic_one_curved_edge.obj new file mode 100644 index 0000000..2bf0ccb --- /dev/null +++ b/mods/technic/technic/models/technic_one_curved_edge.obj @@ -0,0 +1,95 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_quarter_round_onetexture.blend' +# www.blender.org +mtllib slope_test_quarter_round_onetexture.mtl +o Cylinder +v -0.500000 0.490393 -0.097545 +v 0.500000 0.490393 -0.097545 +v -0.500000 0.461940 -0.191342 +v 0.500000 0.461940 -0.191342 +v -0.500000 0.415735 -0.277785 +v 0.500000 0.415735 -0.277785 +v -0.500000 0.353553 -0.353553 +v 0.500000 0.353553 -0.353553 +v -0.500000 0.277785 -0.415735 +v 0.500000 0.277785 -0.415735 +v -0.500000 0.191342 -0.461940 +v 0.500000 0.191342 -0.461940 +v -0.500000 0.097545 -0.490393 +v 0.500000 0.097545 -0.490393 +v 0.500000 -0.000000 -0.500000 +v -0.500000 0.000000 0.000000 +v 0.500000 -0.000000 -0.000000 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v -0.500000 0.500000 -0.000000 +v 0.500000 0.500000 0.000000 +vt 0.146446 0.853552 +vt 0.084265 0.777783 +vt 0.038060 0.691340 +vt 0.499999 0.499999 +vt 1.000000 0.375000 +vt 0.000000 0.375000 +vt 0.000000 0.250000 +vt 1.000000 0.250000 +vt 0.000000 0.125000 +vt 1.000000 0.125000 +vt 0.000000 -0.000000 +vt 1.000000 -0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.875000 +vt 1.000000 0.875000 +vt 0.000000 0.750000 +vt 1.000000 0.750000 +vt 0.000000 0.625000 +vt 1.000000 0.625000 +vt 0.308658 0.961938 +vt 0.222214 0.915733 +vt 0.915735 0.777785 +vt 0.853554 0.853553 +vt 0.500001 0.500000 +vt 0.961940 0.691341 +vt 0.777786 0.915735 +vt 0.691342 0.961940 +vt 0.000000 0.500000 +vt 1.000000 0.500000 +vt 0.990393 0.597545 +vt 0.999998 0.999998 +vt 0.499999 0.999998 +vt 0.000000 0.499999 +vt 0.999999 0.000000 +vt 0.402454 0.990391 +vt 0.009607 0.597544 +vt 0.597546 0.990393 +vt 0.500001 1.000000 +vt 0.000003 1.000000 +vt 0.000003 0.000000 +usemtl Material +s 1 +f 7/1 9/2 11/3 16/4 +f 1/5 2/6 4/7 3/8 +f 3/8 4/7 6/9 5/10 +f 5/10 6/9 8/11 7/12 +f 7/13 8/14 10/15 9/16 +f 9/16 10/15 12/17 11/18 +f 11/18 12/17 14/19 13/20 +f 3/21 5/22 7/1 16/4 +f 10/23 8/24 17/25 12/26 +f 6/27 4/28 17/25 8/24 +f 19/13 20/14 21/11 18/12 +f 23/14 26/29 25/30 22/13 +f 22/14 18/11 21/12 23/13 +f 14/31 12/26 17/25 15/30 +f 22/32 25/33 16/4 24/34 19/11 18/35 +f 25/33 1/36 3/21 16/4 +f 13/20 14/19 15/29 24/30 +f 11/3 13/37 24/34 16/4 +f 2/38 26/39 17/25 4/28 +f 25/30 26/29 2/6 1/5 +f 19/12 24/30 15/29 20/11 +f 20/12 15/30 17/25 26/39 23/40 21/41 diff --git a/mods/technic/technic/models/technic_outercorner.obj b/mods/technic/technic/models/technic_outercorner.obj new file mode 100644 index 0000000..8e394cc --- /dev/null +++ b/mods/technic/technic/models/technic_outercorner.obj @@ -0,0 +1,20 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend' +# www.blender.org +mtllib technic_outercorner.mtl +o Cube_Cube.002 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +usemtl None +s off +f 3/1 2/2 4/3 5/4 +f 1/2 3/3 5/4 +f 1/1 2/3 3/4 +f 1/1 4/3 2/4 +f 1/2 5/3 4/4 diff --git a/mods/technic/technic/models/technic_outercorner_upsdown.obj b/mods/technic/technic/models/technic_outercorner_upsdown.obj new file mode 100644 index 0000000..3930647 --- /dev/null +++ b/mods/technic/technic/models/technic_outercorner_upsdown.obj @@ -0,0 +1,20 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend' +# www.blender.org +mtllib technic_outercorner_upsdown.mtl +o Cube_Cube.002 +v -0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +usemtl None +s off +f 3/1 2/2 4/3 5/4 +f 1/2 3/3 5/4 +f 1/1 2/3 3/4 +f 1/1 4/3 2/4 +f 1/2 5/3 4/4 diff --git a/mods/technic/technic/models/technic_pyramid.obj b/mods/technic/technic/models/technic_pyramid.obj new file mode 100644 index 0000000..0119f22 --- /dev/null +++ b/mods/technic/technic/models/technic_pyramid.obj @@ -0,0 +1,21 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_pyramid_short.blend' +# www.blender.org +mtllib slope_test_pyramid_short.mtl +o Cube +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.000000 0.000000 -0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.500000 0.500000 +usemtl Material +s off +f 1/1 2/2 3/3 4/4 +f 3/4 5/5 4/3 +f 5/5 1/3 4/4 +f 1/4 5/5 2/3 +f 2/4 5/5 3/3 diff --git a/mods/technic/technic/models/technic_pyramid_spike.obj b/mods/technic/technic/models/technic_pyramid_spike.obj new file mode 100644 index 0000000..a3f829c --- /dev/null +++ b/mods/technic/technic/models/technic_pyramid_spike.obj @@ -0,0 +1,21 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_pyramid.blend' +# www.blender.org +mtllib slope_test_pyramid.mtl +o Cube +v 0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v -0.000000 0.500000 -0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.500000 1.000000 +usemtl Material +s off +f 1/1 2/2 3/3 4/4 +f 3/4 5/5 4/3 +f 5/5 1/3 4/4 +f 1/4 5/5 2/3 +f 2/4 5/5 3/3 diff --git a/mods/technic/technic/models/technic_slope.obj b/mods/technic/technic/models/technic_slope.obj new file mode 100644 index 0000000..05c853b --- /dev/null +++ b/mods/technic/technic/models/technic_slope.obj @@ -0,0 +1,21 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend' +# www.blender.org +mtllib slope_test_slope_onetexture.mtl +o Cube_Cube.002 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v -0.500000 -0.500000 -0.500000 +v 0.500000 -0.500000 -0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 4/3 3/4 5/1 6/2 +f 2/1 5/3 3/4 +f 1/2 4/3 6/4 +f 2/1 1/2 6/3 5/4 diff --git a/mods/technic/technic/models/technic_slope_horizontal.obj b/mods/technic/technic/models/technic_slope_horizontal.obj new file mode 100644 index 0000000..65ee5c3 --- /dev/null +++ b/mods/technic/technic/models/technic_slope_horizontal.obj @@ -0,0 +1,21 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend' +# www.blender.org +mtllib technic_slope_horizontal.mtl +o Cube_Cube.002 +v -0.500000 0.500000 0.500000 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v 0.500000 -0.500000 -0.500000 +v 0.500000 0.500000 -0.500000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +usemtl None.001 +s off +f 1/1 2/2 3/3 4/4 +f 4/3 3/4 5/1 6/2 +f 2/1 5/3 3/4 +f 1/2 4/3 6/4 +f 2/1 1/2 6/3 5/4 diff --git a/mods/technic/technic/models/technic_slope_upsdown.obj b/mods/technic/technic/models/technic_slope_upsdown.obj new file mode 100644 index 0000000..1fcce5f --- /dev/null +++ b/mods/technic/technic/models/technic_slope_upsdown.obj @@ -0,0 +1,21 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_onetexture.blend' +# www.blender.org +mtllib technic_slope_upsdown.mtl +o Cube_Cube.002 +v -0.500000 -0.500000 0.500000 +v 0.500000 -0.500000 0.500000 +v 0.500000 0.500000 0.500000 +v -0.500000 0.500000 0.500000 +v 0.500000 0.500000 -0.500000 +v -0.500000 0.500000 -0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 4/3 3/4 5/1 6/2 +f 2/1 5/3 3/4 +f 1/2 4/3 6/4 +f 2/1 1/2 6/3 5/4 diff --git a/mods/technic/technic/models/technic_two_curved_edge.obj b/mods/technic/technic/models/technic_two_curved_edge.obj new file mode 100644 index 0000000..1b29304 --- /dev/null +++ b/mods/technic/technic/models/technic_two_curved_edge.obj @@ -0,0 +1,174 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_quarter_round_corner_onetexture.blend' +# www.blender.org +mtllib slope_test_quarter_round_corner_onetexture.mtl +o corner1_Cylinder +v 0.415732 0.277783 0.499997 +v 0.461936 0.191340 0.499997 +v 0.415735 0.277783 -0.415732 +v 0.461940 0.191340 -0.461937 +v 0.490389 0.097544 0.499997 +v 0.353551 0.353551 0.499997 +v 0.353555 0.353551 -0.353551 +v 0.499996 -0.000000 0.499997 +v 0.277783 0.415732 0.499997 +v 0.490393 0.097544 -0.490389 +v 0.277787 0.415732 -0.277784 +v 0.191340 0.461936 0.499997 +v -0.499997 -0.499997 0.499997 +v 0.191344 0.461937 -0.191341 +v 0.097544 0.490389 0.499997 +v 0.097547 0.490391 -0.097545 +v -0.000000 0.499996 0.499997 +v -0.499997 0.499997 0.499997 +v -0.499997 0.499997 -0.000030 +v -0.499997 0.415735 -0.277785 +v -0.499997 0.461940 -0.191342 +v -0.499997 0.490393 -0.097545 +v -0.500000 -0.500000 -0.500000 +v -0.033351 -0.033351 0.499997 +v 0.000000 0.499998 0.000000 +v -0.499998 -0.033351 0.033348 +v -0.499998 0.000014 -0.499999 +v -0.499997 0.353553 -0.353554 +v -0.499998 0.097545 -0.490393 +v -0.499997 0.277785 -0.415735 +v -0.499998 0.191342 -0.461940 +v 0.499997 -0.000000 -0.499996 +v 0.500000 -0.500000 -0.500000 +v 0.499997 -0.499997 0.499997 +vt -0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt -0.000000 1.000000 +vt 0.000000 0.374576 +vt 0.000001 0.249719 +vt 0.597441 0.374574 +vt 0.222353 0.125462 +vt 0.146597 0.000612 +vt 0.999995 0.000594 +vt 0.000178 0.999439 +vt 0.000178 0.874582 +vt 0.853580 0.999436 +vt 0.009599 0.625446 +vt -0.000005 0.500594 +vt 0.999807 0.500594 +vt 0.499912 0.499435 +vt 0.000000 0.499434 +vt 0.402562 0.375164 +vt 0.999999 0.375154 +vt 0.500093 0.500015 +vt 0.146415 1.000000 +vt 0.084244 0.875149 +vt 0.999811 0.875131 +vt 0.961947 0.749719 +vt 0.000178 0.749724 +vt 0.000178 0.624866 +vt 0.691221 0.249715 +vt 0.000001 0.124861 +vt 0.308782 0.250314 +vt 0.999998 0.250301 +vt 0.999996 0.125448 +vt 0.000001 0.000003 +vt 0.853403 -0.000000 +vt 0.777649 0.124857 +vt 0.915751 0.874577 +vt 0.999809 0.750280 +vt 0.961948 0.691403 +vt 0.915752 0.777829 +vt 0.466756 0.466756 +vt 1.000001 0.500004 +vt 0.990396 0.624861 +vt 0.000177 0.500008 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +vt 0.038047 0.750298 +vt 0.999808 0.625427 +vt 1.000000 0.000204 +vt 0.999999 1.000000 +vt 0.533443 0.466757 +vt 0.500071 1.000000 +vt 0.402575 0.990397 +vt 0.308797 0.961949 +vt 0.222371 0.915753 +vt 0.146617 0.853584 +vt 0.084449 0.777831 +vt 0.038253 0.691405 +vt 0.009806 0.597626 +vt 0.000202 0.500115 +vt 0.000201 0.000200 +vt 0.853583 0.853583 +vt 0.777830 0.915751 +vt 0.691404 0.961947 +vt 0.597626 0.990394 +vt 0.500101 1.000000 +vt 0.000201 1.000000 +vt 0.000201 0.000201 +vt 1.000000 0.000200 +vt 1.000000 0.500100 +vt 0.990395 0.597625 +vt 0.999812 0.999983 +vt 0.500000 1.000000 +vt 0.500000 0.500000 +vt 1.000000 0.499969 +usemtl Material +s 1 +f 34/1 13/2 23/3 33/4 +f 15/5 12/6 16/7 +f 11/8 7/9 28/10 +f 6/11 1/12 7/13 +f 10/14 32/15 27/16 +f 25/17 17/18 15/5 +f 16/19 22/20 25/21 +f 7/22 3/23 30/24 +f 4/25 2/26 5/27 +f 14/28 12/6 9/29 +f 16/19 14/30 21/31 +f 14/30 11/8 20/32 +f 6/33 7/34 11/35 +f 3/36 1/12 2/26 +f 30/24 3/23 31/37 +f 2/38 1/39 24/40 +f 32/41 10/42 8/43 +f 27/44 32/45 33/1 23/2 +f 4/46 10/14 29/47 +f 13/48 18/49 26/50 +f 18/49 19/51 26/50 +f 19/51 22/52 26/50 +f 22/52 21/53 26/50 +f 21/53 20/54 26/50 +f 20/54 28/55 26/50 +f 28/55 30/56 26/50 +f 30/56 31/57 26/50 +f 31/57 29/58 26/50 +f 29/58 27/59 26/50 +f 27/59 23/60 26/50 +f 23/60 13/48 26/50 +f 1/39 6/61 24/40 +f 6/61 9/62 24/40 +f 9/62 12/63 24/40 +f 12/63 15/64 24/40 +f 15/64 17/65 24/40 +f 17/65 18/66 24/40 +f 18/66 13/67 24/40 +f 13/67 34/68 24/40 +f 34/68 8/69 24/40 +f 8/69 5/70 24/40 +f 5/70 2/38 24/40 +f 12/6 14/28 16/7 +f 20/32 11/8 28/10 +f 1/12 3/36 7/13 +f 29/47 10/14 27/16 +f 16/7 25/17 15/5 +f 28/71 7/22 30/24 +f 10/42 4/25 5/27 +f 11/35 14/28 9/29 +f 22/20 16/19 21/31 +f 21/31 14/30 20/32 +f 9/29 6/33 11/35 +f 4/25 3/36 2/26 +f 3/23 4/46 31/37 +f 10/42 5/27 8/43 +f 31/37 4/46 29/47 +f 17/72 25/73 19/44 18/3 +f 25/21 22/20 19/74 +f 8/45 34/1 33/2 32/44 diff --git a/mods/technic/technic/register.lua b/mods/technic/technic/register.lua new file mode 100644 index 0000000..6a237f9 --- /dev/null +++ b/mods/technic/technic/register.lua @@ -0,0 +1,59 @@ +-- This file includes the functions and data structures for registering machines and tools for LV, MV, HV types. +-- We use the technic namespace for these functions and data to avoid eventual conflict. + +technic.receiver = "RE" +technic.producer = "PR" +technic.producer_receiver = "PR_RE" +technic.battery = "BA" + +technic.machines = {} +technic.power_tools = {} +technic.networks = {} + + +function technic.register_tier(tier, description) + technic.machines[tier] = {} + technic.cables[tier] = {} +end + +function technic.register_machine(tier, nodename, machine_type) + if not technic.machines[tier] then + return + end + technic.machines[tier][nodename] = machine_type +end + +function technic.register_power_tool(craftitem, max_charge) + technic.power_tools[craftitem] = max_charge +end + + +-- Utility functions. Not sure exactly what they do.. water.lua uses the two first. +function technic.get_RE_item_load(load1, max_load) + if load1 == 0 then load1 = 65535 end + local temp = 65536 - load1 + temp = temp / 65535 * max_load + return math.floor(temp + 0.5) +end + +function technic.set_RE_item_load(load1, max_load) + if load1 == 0 then return 65535 end + local temp = load1 / max_load * 65535 + temp = 65536 - temp + return math.floor(temp) +end + +-- Wear down a tool depending on the remaining charge. +function technic.set_RE_wear(itemstack, item_load, max_load) + if (minetest.registered_items[itemstack:get_name()].wear_represents or "mechanical_wear") ~= "technic_RE_charge" then return itemstack end + local temp + if item_load == 0 then + temp = 0 + else + temp = 65536 - math.floor(item_load / max_load * 65535) + if temp > 65535 then temp = 65535 end + if temp < 1 then temp = 1 end + end + itemstack:set_wear(temp) + return itemstack +end diff --git a/mods/technic/technic/sounds/chainsaw.ogg b/mods/technic/technic/sounds/chainsaw.ogg new file mode 100644 index 0000000..5fe7552 Binary files /dev/null and b/mods/technic/technic/sounds/chainsaw.ogg differ diff --git a/mods/technic/technic/sounds/item_drop_pickup.1.ogg b/mods/technic/technic/sounds/item_drop_pickup.1.ogg new file mode 100644 index 0000000..2ae432d Binary files /dev/null and b/mods/technic/technic/sounds/item_drop_pickup.1.ogg differ diff --git a/mods/technic/technic/sounds/item_drop_pickup.2.ogg b/mods/technic/technic/sounds/item_drop_pickup.2.ogg new file mode 100644 index 0000000..f58bf08 Binary files /dev/null and b/mods/technic/technic/sounds/item_drop_pickup.2.ogg differ diff --git a/mods/technic/technic/sounds/item_drop_pickup.3.ogg b/mods/technic/technic/sounds/item_drop_pickup.3.ogg new file mode 100644 index 0000000..cf57c94 Binary files /dev/null and b/mods/technic/technic/sounds/item_drop_pickup.3.ogg differ diff --git a/mods/technic/technic/sounds/item_drop_pickup.4.ogg b/mods/technic/technic/sounds/item_drop_pickup.4.ogg new file mode 100644 index 0000000..bfe99d9 Binary files /dev/null and b/mods/technic/technic/sounds/item_drop_pickup.4.ogg differ diff --git a/mods/technic/technic/sounds/mining_drill.ogg b/mods/technic/technic/sounds/mining_drill.ogg new file mode 100644 index 0000000..1493544 Binary files /dev/null and b/mods/technic/technic/sounds/mining_drill.ogg differ diff --git a/mods/technic/technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg b/mods/technic/technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg new file mode 100644 index 0000000..3332deb Binary files /dev/null and b/mods/technic/technic/sounds/technic_hv_nuclear_reactor_siren_clear.ogg differ diff --git a/mods/technic/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg b/mods/technic/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg new file mode 100644 index 0000000..3d290b0 Binary files /dev/null and b/mods/technic/technic/sounds/technic_hv_nuclear_reactor_siren_danger_loop.ogg differ diff --git a/mods/technic/technic/sounds/technic_laser_mk1.0.ogg b/mods/technic/technic/sounds/technic_laser_mk1.0.ogg new file mode 100644 index 0000000..19be080 Binary files /dev/null and b/mods/technic/technic/sounds/technic_laser_mk1.0.ogg differ diff --git a/mods/technic/technic/sounds/technic_laser_mk1.1.ogg b/mods/technic/technic/sounds/technic_laser_mk1.1.ogg new file mode 100644 index 0000000..7792be1 Binary files /dev/null and b/mods/technic/technic/sounds/technic_laser_mk1.1.ogg differ diff --git a/mods/technic/technic/sounds/technic_laser_mk2.0.ogg b/mods/technic/technic/sounds/technic_laser_mk2.0.ogg new file mode 100644 index 0000000..2cf1548 Binary files /dev/null and b/mods/technic/technic/sounds/technic_laser_mk2.0.ogg differ diff --git a/mods/technic/technic/sounds/technic_laser_mk2.1.ogg b/mods/technic/technic/sounds/technic_laser_mk2.1.ogg new file mode 100644 index 0000000..b3f9afb Binary files /dev/null and b/mods/technic/technic/sounds/technic_laser_mk2.1.ogg differ diff --git a/mods/technic/technic/sounds/technic_laser_mk2.2.ogg b/mods/technic/technic/sounds/technic_laser_mk2.2.ogg new file mode 100644 index 0000000..a4ee091 Binary files /dev/null and b/mods/technic/technic/sounds/technic_laser_mk2.2.ogg differ diff --git a/mods/technic/technic/sounds/technic_laser_mk3.1.ogg b/mods/technic/technic/sounds/technic_laser_mk3.1.ogg new file mode 100644 index 0000000..f948913 Binary files /dev/null and b/mods/technic/technic/sounds/technic_laser_mk3.1.ogg differ diff --git a/mods/technic/technic/sounds/technic_laser_mk3.2.ogg b/mods/technic/technic/sounds/technic_laser_mk3.2.ogg new file mode 100644 index 0000000..636c306 Binary files /dev/null and b/mods/technic/technic/sounds/technic_laser_mk3.2.ogg differ diff --git a/mods/technic/technic/sounds/technic_prospector_hit.ogg b/mods/technic/technic/sounds/technic_prospector_hit.ogg new file mode 100644 index 0000000..3a8ad2d Binary files /dev/null and b/mods/technic/technic/sounds/technic_prospector_hit.ogg differ diff --git a/mods/technic/technic/sounds/technic_prospector_miss.ogg b/mods/technic/technic/sounds/technic_prospector_miss.ogg new file mode 100644 index 0000000..0f050d0 Binary files /dev/null and b/mods/technic/technic/sounds/technic_prospector_miss.ogg differ diff --git a/mods/technic/technic/sounds/technic_sonic_screwdriver.ogg b/mods/technic/technic/sounds/technic_sonic_screwdriver.ogg new file mode 100644 index 0000000..471bb72 Binary files /dev/null and b/mods/technic/technic/sounds/technic_sonic_screwdriver.ogg differ diff --git a/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_128.png b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_128.png new file mode 100644 index 0000000..2848f89 Binary files /dev/null and b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_128.png differ diff --git a/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_16.png b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_16.png new file mode 100644 index 0000000..4661177 Binary files /dev/null and b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_16.png differ diff --git a/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_256.png b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_256.png new file mode 100644 index 0000000..5187fab Binary files /dev/null and b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_256.png differ diff --git a/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_32.png b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_32.png new file mode 100644 index 0000000..3d380da Binary files /dev/null and b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_32.png differ diff --git a/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_512.png b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_512.png new file mode 100644 index 0000000..ba2bd89 Binary files /dev/null and b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_512.png differ diff --git a/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_64.png b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_64.png new file mode 100644 index 0000000..2fa8f18 Binary files /dev/null and b/mods/technic/technic/textures/hires/technic_hv_nuclear_reactor_core_64.png differ diff --git a/mods/technic/technic/textures/power_meter.png b/mods/technic/technic/textures/power_meter.png new file mode 100644 index 0000000..9f96cac Binary files /dev/null and b/mods/technic/technic/textures/power_meter.png differ diff --git a/mods/technic/technic/textures/technic_admin_anchor.png b/mods/technic/technic/textures/technic_admin_anchor.png new file mode 100644 index 0000000..7ce9b4c Binary files /dev/null and b/mods/technic/technic/textures/technic_admin_anchor.png differ diff --git a/mods/technic/technic/textures/technic_akalin_dust.png b/mods/technic/technic/textures/technic_akalin_dust.png new file mode 100644 index 0000000..052b0ac Binary files /dev/null and b/mods/technic/technic/textures/technic_akalin_dust.png differ diff --git a/mods/technic/technic/textures/technic_alatro_dust.png b/mods/technic/technic/textures/technic_alatro_dust.png new file mode 100644 index 0000000..172af25 Binary files /dev/null and b/mods/technic/technic/textures/technic_alatro_dust.png differ diff --git a/mods/technic/technic/textures/technic_arol_dust.png b/mods/technic/technic/textures/technic_arol_dust.png new file mode 100644 index 0000000..1a575ed Binary files /dev/null and b/mods/technic/technic/textures/technic_arol_dust.png differ diff --git a/mods/technic/technic/textures/technic_battery.png b/mods/technic/technic/textures/technic_battery.png new file mode 100644 index 0000000..ee83b74 Binary files /dev/null and b/mods/technic/technic/textures/technic_battery.png differ diff --git a/mods/technic/technic/textures/technic_battery_box_side.png b/mods/technic/technic/textures/technic_battery_box_side.png new file mode 100644 index 0000000..98a22d6 Binary files /dev/null and b/mods/technic/technic/textures/technic_battery_box_side.png differ diff --git a/mods/technic/technic/textures/technic_battery_box_side8.png b/mods/technic/technic/textures/technic_battery_box_side8.png new file mode 100644 index 0000000..65806f4 Binary files /dev/null and b/mods/technic/technic/textures/technic_battery_box_side8.png differ diff --git a/mods/technic/technic/textures/technic_battery_box_side_mv.png b/mods/technic/technic/textures/technic_battery_box_side_mv.png new file mode 100644 index 0000000..06a4be5 Binary files /dev/null and b/mods/technic/technic/textures/technic_battery_box_side_mv.png differ diff --git a/mods/technic/technic/textures/technic_battery_meter_fg.png b/mods/technic/technic/textures/technic_battery_meter_fg.png new file mode 100644 index 0000000..2f19bc7 Binary files /dev/null and b/mods/technic/technic/textures/technic_battery_meter_fg.png differ diff --git a/mods/technic/technic/textures/technic_battery_reload.png b/mods/technic/technic/textures/technic_battery_reload.png new file mode 100644 index 0000000..4ce48d8 Binary files /dev/null and b/mods/technic/technic/textures/technic_battery_reload.png differ diff --git a/mods/technic/technic/textures/technic_bronze_dust.png b/mods/technic/technic/textures/technic_bronze_dust.png new file mode 100644 index 0000000..a613205 Binary files /dev/null and b/mods/technic/technic/textures/technic_bronze_dust.png differ diff --git a/mods/technic/technic/textures/technic_bucket_corium.png b/mods/technic/technic/textures/technic_bucket_corium.png new file mode 100644 index 0000000..82da7ca Binary files /dev/null and b/mods/technic/technic/textures/technic_bucket_corium.png differ diff --git a/mods/technic/technic/textures/technic_carbon_cloth.png b/mods/technic/technic/textures/technic_carbon_cloth.png new file mode 100644 index 0000000..65a6dab Binary files /dev/null and b/mods/technic/technic/textures/technic_carbon_cloth.png differ diff --git a/mods/technic/technic/textures/technic_carbon_plate.png b/mods/technic/technic/textures/technic_carbon_plate.png new file mode 100644 index 0000000..5da83b8 Binary files /dev/null and b/mods/technic/technic/textures/technic_carbon_plate.png differ diff --git a/mods/technic/technic/textures/technic_carbon_steel_dust.png b/mods/technic/technic/textures/technic_carbon_steel_dust.png new file mode 100644 index 0000000..0fa8a17 Binary files /dev/null and b/mods/technic/technic/textures/technic_carbon_steel_dust.png differ diff --git a/mods/technic/technic/textures/technic_cast_iron_dust.png b/mods/technic/technic/textures/technic_cast_iron_dust.png new file mode 100644 index 0000000..b5690ac Binary files /dev/null and b/mods/technic/technic/textures/technic_cast_iron_dust.png differ diff --git a/mods/technic/technic/textures/technic_chainsaw.png b/mods/technic/technic/textures/technic_chainsaw.png new file mode 100644 index 0000000..6f52928 Binary files /dev/null and b/mods/technic/technic/textures/technic_chainsaw.png differ diff --git a/mods/technic/technic/textures/technic_chernobylite_block.png b/mods/technic/technic/textures/technic_chernobylite_block.png new file mode 100644 index 0000000..a837c66 Binary files /dev/null and b/mods/technic/technic/textures/technic_chernobylite_block.png differ diff --git a/mods/technic/technic/textures/technic_chromium_dust.png b/mods/technic/technic/textures/technic_chromium_dust.png new file mode 100644 index 0000000..0e48069 Binary files /dev/null and b/mods/technic/technic/textures/technic_chromium_dust.png differ diff --git a/mods/technic/technic/textures/technic_cnc_bottom.png b/mods/technic/technic/textures/technic_cnc_bottom.png new file mode 100644 index 0000000..e600cb1 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_bottom.png differ diff --git a/mods/technic/technic/textures/technic_cnc_cylinder.png b/mods/technic/technic/textures/technic_cnc_cylinder.png new file mode 100644 index 0000000..48921bd Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_cylinder.png differ diff --git a/mods/technic/technic/textures/technic_cnc_cylinder_horizontal.png b/mods/technic/technic/textures/technic_cnc_cylinder_horizontal.png new file mode 100644 index 0000000..82eb24c Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_cylinder_horizontal.png differ diff --git a/mods/technic/technic/textures/technic_cnc_element_cross.png b/mods/technic/technic/textures/technic_cnc_element_cross.png new file mode 100644 index 0000000..cc66571 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_element_cross.png differ diff --git a/mods/technic/technic/textures/technic_cnc_element_edge.png b/mods/technic/technic/textures/technic_cnc_element_edge.png new file mode 100644 index 0000000..1245ea7 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_element_edge.png differ diff --git a/mods/technic/technic/textures/technic_cnc_element_end.png b/mods/technic/technic/textures/technic_cnc_element_end.png new file mode 100644 index 0000000..562eb2b Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_element_end.png differ diff --git a/mods/technic/technic/textures/technic_cnc_element_straight.png b/mods/technic/technic/textures/technic_cnc_element_straight.png new file mode 100644 index 0000000..d42966e Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_element_straight.png differ diff --git a/mods/technic/technic/textures/technic_cnc_element_t.png b/mods/technic/technic/textures/technic_cnc_element_t.png new file mode 100644 index 0000000..a462764 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_element_t.png differ diff --git a/mods/technic/technic/textures/technic_cnc_front.png b/mods/technic/technic/textures/technic_cnc_front.png new file mode 100644 index 0000000..6cc0490 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_front.png differ diff --git a/mods/technic/technic/textures/technic_cnc_front_active.png b/mods/technic/technic/textures/technic_cnc_front_active.png new file mode 100644 index 0000000..f7a3c7f Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_front_active.png differ diff --git a/mods/technic/technic/textures/technic_cnc_full.png b/mods/technic/technic/textures/technic_cnc_full.png new file mode 100644 index 0000000..60f8a81 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_full.png differ diff --git a/mods/technic/technic/textures/technic_cnc_half.png b/mods/technic/technic/textures/technic_cnc_half.png new file mode 100644 index 0000000..2c4d3a8 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_half.png differ diff --git a/mods/technic/technic/textures/technic_cnc_milling_background.png b/mods/technic/technic/textures/technic_cnc_milling_background.png new file mode 100644 index 0000000..6a9c2f4 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_milling_background.png differ diff --git a/mods/technic/technic/textures/technic_cnc_onecurvededge.png b/mods/technic/technic/textures/technic_cnc_onecurvededge.png new file mode 100644 index 0000000..8325846 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_onecurvededge.png differ diff --git a/mods/technic/technic/textures/technic_cnc_pyramid.png b/mods/technic/technic/textures/technic_cnc_pyramid.png new file mode 100644 index 0000000..d8cc713 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_pyramid.png differ diff --git a/mods/technic/technic/textures/technic_cnc_side.png b/mods/technic/technic/textures/technic_cnc_side.png new file mode 100644 index 0000000..1ecbbac Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_side.png differ diff --git a/mods/technic/technic/textures/technic_cnc_slope.png b/mods/technic/technic/textures/technic_cnc_slope.png new file mode 100644 index 0000000..493d560 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_slope.png differ diff --git a/mods/technic/technic/textures/technic_cnc_slope_edge.png b/mods/technic/technic/textures/technic_cnc_slope_edge.png new file mode 100644 index 0000000..1b601c4 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_slope_edge.png differ diff --git a/mods/technic/technic/textures/technic_cnc_slope_edge_upsdwn.png b/mods/technic/technic/textures/technic_cnc_slope_edge_upsdwn.png new file mode 100644 index 0000000..350c22d Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_slope_edge_upsdwn.png differ diff --git a/mods/technic/technic/textures/technic_cnc_slope_inner_edge.png b/mods/technic/technic/textures/technic_cnc_slope_inner_edge.png new file mode 100644 index 0000000..3f5ab9e Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_slope_inner_edge.png differ diff --git a/mods/technic/technic/textures/technic_cnc_slope_inner_edge_upsdwn.png b/mods/technic/technic/textures/technic_cnc_slope_inner_edge_upsdwn.png new file mode 100644 index 0000000..a1fee78 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_slope_inner_edge_upsdwn.png differ diff --git a/mods/technic/technic/textures/technic_cnc_slope_lying.png b/mods/technic/technic/textures/technic_cnc_slope_lying.png new file mode 100644 index 0000000..099ed59 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_slope_lying.png differ diff --git a/mods/technic/technic/textures/technic_cnc_slope_upsdwn.png b/mods/technic/technic/textures/technic_cnc_slope_upsdwn.png new file mode 100644 index 0000000..2a34b8b Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_slope_upsdwn.png differ diff --git a/mods/technic/technic/textures/technic_cnc_sphere.png b/mods/technic/technic/textures/technic_cnc_sphere.png new file mode 100644 index 0000000..b196e7d Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_sphere.png differ diff --git a/mods/technic/technic/textures/technic_cnc_spike.png b/mods/technic/technic/textures/technic_cnc_spike.png new file mode 100644 index 0000000..b445b40 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_spike.png differ diff --git a/mods/technic/technic/textures/technic_cnc_stick.png b/mods/technic/technic/textures/technic_cnc_stick.png new file mode 100644 index 0000000..acaf1cb Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_stick.png differ diff --git a/mods/technic/technic/textures/technic_cnc_top.png b/mods/technic/technic/textures/technic_cnc_top.png new file mode 100644 index 0000000..5123334 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_top.png differ diff --git a/mods/technic/technic/textures/technic_cnc_top_active.png b/mods/technic/technic/textures/technic_cnc_top_active.png new file mode 100644 index 0000000..2bc9d81 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_top_active.png differ diff --git a/mods/technic/technic/textures/technic_cnc_twocurvededge.png b/mods/technic/technic/textures/technic_cnc_twocurvededge.png new file mode 100644 index 0000000..b50a257 Binary files /dev/null and b/mods/technic/technic/textures/technic_cnc_twocurvededge.png differ diff --git a/mods/technic/technic/textures/technic_coal_alloy_furnace_bottom.png b/mods/technic/technic/textures/technic_coal_alloy_furnace_bottom.png new file mode 100644 index 0000000..077dec5 Binary files /dev/null and b/mods/technic/technic/textures/technic_coal_alloy_furnace_bottom.png differ diff --git a/mods/technic/technic/textures/technic_coal_alloy_furnace_front.png b/mods/technic/technic/textures/technic_coal_alloy_furnace_front.png new file mode 100644 index 0000000..d9d93dd Binary files /dev/null and b/mods/technic/technic/textures/technic_coal_alloy_furnace_front.png differ diff --git a/mods/technic/technic/textures/technic_coal_alloy_furnace_front_active.png b/mods/technic/technic/textures/technic_coal_alloy_furnace_front_active.png new file mode 100644 index 0000000..ffc4e0a Binary files /dev/null and b/mods/technic/technic/textures/technic_coal_alloy_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technic_coal_alloy_furnace_side.png b/mods/technic/technic/textures/technic_coal_alloy_furnace_side.png new file mode 100644 index 0000000..d5c7066 Binary files /dev/null and b/mods/technic/technic/textures/technic_coal_alloy_furnace_side.png differ diff --git a/mods/technic/technic/textures/technic_coal_alloy_furnace_top.png b/mods/technic/technic/textures/technic_coal_alloy_furnace_top.png new file mode 100644 index 0000000..6424fc0 Binary files /dev/null and b/mods/technic/technic/textures/technic_coal_alloy_furnace_top.png differ diff --git a/mods/technic/technic/textures/technic_coal_dust.png b/mods/technic/technic/textures/technic_coal_dust.png new file mode 100644 index 0000000..a1486c6 Binary files /dev/null and b/mods/technic/technic/textures/technic_coal_dust.png differ diff --git a/mods/technic/technic/textures/technic_composite_plate.png b/mods/technic/technic/textures/technic_composite_plate.png new file mode 100644 index 0000000..79b7b8d Binary files /dev/null and b/mods/technic/technic/textures/technic_composite_plate.png differ diff --git a/mods/technic/technic/textures/technic_constructor_back.png b/mods/technic/technic/textures/technic_constructor_back.png new file mode 100644 index 0000000..f002363 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_back.png differ diff --git a/mods/technic/technic/textures/technic_constructor_front_off.png b/mods/technic/technic/textures/technic_constructor_front_off.png new file mode 100644 index 0000000..f3f7856 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_front_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_front_on.png b/mods/technic/technic/textures/technic_constructor_front_on.png new file mode 100644 index 0000000..d733765 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_front_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk1_bottom_off.png b/mods/technic/technic/textures/technic_constructor_mk1_bottom_off.png new file mode 100644 index 0000000..0c52557 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk1_bottom_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk1_bottom_on.png b/mods/technic/technic/textures/technic_constructor_mk1_bottom_on.png new file mode 100644 index 0000000..0c46c57 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk1_bottom_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk1_side1_off.png b/mods/technic/technic/textures/technic_constructor_mk1_side1_off.png new file mode 100644 index 0000000..e64ddbe Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk1_side1_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk1_side1_on.png b/mods/technic/technic/textures/technic_constructor_mk1_side1_on.png new file mode 100644 index 0000000..eda98d8 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk1_side1_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk1_side2_off.png b/mods/technic/technic/textures/technic_constructor_mk1_side2_off.png new file mode 100644 index 0000000..b33fcfb Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk1_side2_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk1_side2_on.png b/mods/technic/technic/textures/technic_constructor_mk1_side2_on.png new file mode 100644 index 0000000..17e4786 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk1_side2_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk1_top_off.png b/mods/technic/technic/textures/technic_constructor_mk1_top_off.png new file mode 100644 index 0000000..9f3846c Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk1_top_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk1_top_on.png b/mods/technic/technic/textures/technic_constructor_mk1_top_on.png new file mode 100644 index 0000000..5c8d6fb Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk1_top_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk2_bottom_off.png b/mods/technic/technic/textures/technic_constructor_mk2_bottom_off.png new file mode 100644 index 0000000..e926dda Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk2_bottom_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk2_bottom_on.png b/mods/technic/technic/textures/technic_constructor_mk2_bottom_on.png new file mode 100644 index 0000000..52d739b Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk2_bottom_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk2_side1_off.png b/mods/technic/technic/textures/technic_constructor_mk2_side1_off.png new file mode 100644 index 0000000..2fd42a2 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk2_side1_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk2_side1_on.png b/mods/technic/technic/textures/technic_constructor_mk2_side1_on.png new file mode 100644 index 0000000..4c75c83 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk2_side1_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk2_side2_off.png b/mods/technic/technic/textures/technic_constructor_mk2_side2_off.png new file mode 100644 index 0000000..f6407e7 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk2_side2_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk2_side2_on.png b/mods/technic/technic/textures/technic_constructor_mk2_side2_on.png new file mode 100644 index 0000000..e40db48 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk2_side2_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk2_top_off.png b/mods/technic/technic/textures/technic_constructor_mk2_top_off.png new file mode 100644 index 0000000..e5227d1 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk2_top_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk2_top_on.png b/mods/technic/technic/textures/technic_constructor_mk2_top_on.png new file mode 100644 index 0000000..9762bd6 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk2_top_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk3_bottom_off.png b/mods/technic/technic/textures/technic_constructor_mk3_bottom_off.png new file mode 100644 index 0000000..606d97e Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk3_bottom_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk3_bottom_on.png b/mods/technic/technic/textures/technic_constructor_mk3_bottom_on.png new file mode 100644 index 0000000..878e4ff Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk3_bottom_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk3_side1_off.png b/mods/technic/technic/textures/technic_constructor_mk3_side1_off.png new file mode 100644 index 0000000..84dd7eb Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk3_side1_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk3_side1_on.png b/mods/technic/technic/textures/technic_constructor_mk3_side1_on.png new file mode 100644 index 0000000..2741d2d Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk3_side1_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk3_side2_off.png b/mods/technic/technic/textures/technic_constructor_mk3_side2_off.png new file mode 100644 index 0000000..75a5031 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk3_side2_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk3_side2_on.png b/mods/technic/technic/textures/technic_constructor_mk3_side2_on.png new file mode 100644 index 0000000..0a150ed Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk3_side2_on.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk3_top_off.png b/mods/technic/technic/textures/technic_constructor_mk3_top_off.png new file mode 100644 index 0000000..c716752 Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk3_top_off.png differ diff --git a/mods/technic/technic/textures/technic_constructor_mk3_top_on.png b/mods/technic/technic/textures/technic_constructor_mk3_top_on.png new file mode 100644 index 0000000..acbe85b Binary files /dev/null and b/mods/technic/technic/textures/technic_constructor_mk3_top_on.png differ diff --git a/mods/technic/technic/textures/technic_control_logic_unit.png b/mods/technic/technic/textures/technic_control_logic_unit.png new file mode 100644 index 0000000..c7b4b16 Binary files /dev/null and b/mods/technic/technic/textures/technic_control_logic_unit.png differ diff --git a/mods/technic/technic/textures/technic_copper_coil.png b/mods/technic/technic/textures/technic_copper_coil.png new file mode 100644 index 0000000..db6db1a Binary files /dev/null and b/mods/technic/technic/textures/technic_copper_coil.png differ diff --git a/mods/technic/technic/textures/technic_copper_dust.png b/mods/technic/technic/textures/technic_copper_dust.png new file mode 100644 index 0000000..cad33ea Binary files /dev/null and b/mods/technic/technic/textures/technic_copper_dust.png differ diff --git a/mods/technic/technic/textures/technic_copper_plate.png b/mods/technic/technic/textures/technic_copper_plate.png new file mode 100644 index 0000000..99a49c8 Binary files /dev/null and b/mods/technic/technic/textures/technic_copper_plate.png differ diff --git a/mods/technic/technic/textures/technic_corium_can.png b/mods/technic/technic/textures/technic_corium_can.png new file mode 100644 index 0000000..d1d5cba Binary files /dev/null and b/mods/technic/technic/textures/technic_corium_can.png differ diff --git a/mods/technic/technic/textures/technic_corium_flowing_animated.png b/mods/technic/technic/textures/technic_corium_flowing_animated.png new file mode 100644 index 0000000..35f3a73 Binary files /dev/null and b/mods/technic/technic/textures/technic_corium_flowing_animated.png differ diff --git a/mods/technic/technic/textures/technic_corium_source_animated.png b/mods/technic/technic/textures/technic_corium_source_animated.png new file mode 100644 index 0000000..6c3ee56 Binary files /dev/null and b/mods/technic/technic/textures/technic_corium_source_animated.png differ diff --git a/mods/technic/technic/textures/technic_deployer_back.png b/mods/technic/technic/textures/technic_deployer_back.png new file mode 100644 index 0000000..12e5a31 Binary files /dev/null and b/mods/technic/technic/textures/technic_deployer_back.png differ diff --git a/mods/technic/technic/textures/technic_deployer_bottom.png b/mods/technic/technic/textures/technic_deployer_bottom.png new file mode 100644 index 0000000..febbe18 Binary files /dev/null and b/mods/technic/technic/textures/technic_deployer_bottom.png differ diff --git a/mods/technic/technic/textures/technic_deployer_front_off.png b/mods/technic/technic/textures/technic_deployer_front_off.png new file mode 100644 index 0000000..9593112 Binary files /dev/null and b/mods/technic/technic/textures/technic_deployer_front_off.png differ diff --git a/mods/technic/technic/textures/technic_deployer_front_on.png b/mods/technic/technic/textures/technic_deployer_front_on.png new file mode 100644 index 0000000..f78de4c Binary files /dev/null and b/mods/technic/technic/textures/technic_deployer_front_on.png differ diff --git a/mods/technic/technic/textures/technic_deployer_side.png b/mods/technic/technic/textures/technic_deployer_side.png new file mode 100644 index 0000000..73af8f8 Binary files /dev/null and b/mods/technic/technic/textures/technic_deployer_side.png differ diff --git a/mods/technic/technic/textures/technic_deployer_side1.png b/mods/technic/technic/textures/technic_deployer_side1.png new file mode 100644 index 0000000..8ef28d3 Binary files /dev/null and b/mods/technic/technic/textures/technic_deployer_side1.png differ diff --git a/mods/technic/technic/textures/technic_deployer_side2.png b/mods/technic/technic/textures/technic_deployer_side2.png new file mode 100644 index 0000000..ccb2cb9 Binary files /dev/null and b/mods/technic/technic/textures/technic_deployer_side2.png differ diff --git a/mods/technic/technic/textures/technic_deployer_top.png b/mods/technic/technic/textures/technic_deployer_top.png new file mode 100644 index 0000000..262c9f6 Binary files /dev/null and b/mods/technic/technic/textures/technic_deployer_top.png differ diff --git a/mods/technic/technic/textures/technic_diamond_block_blue.png b/mods/technic/technic/textures/technic_diamond_block_blue.png new file mode 100644 index 0000000..9f59fba Binary files /dev/null and b/mods/technic/technic/textures/technic_diamond_block_blue.png differ diff --git a/mods/technic/technic/textures/technic_diamond_block_green.png b/mods/technic/technic/textures/technic_diamond_block_green.png new file mode 100644 index 0000000..585c4b8 Binary files /dev/null and b/mods/technic/technic/textures/technic_diamond_block_green.png differ diff --git a/mods/technic/technic/textures/technic_diamond_block_red.png b/mods/technic/technic/textures/technic_diamond_block_red.png new file mode 100644 index 0000000..ed30957 Binary files /dev/null and b/mods/technic/technic/textures/technic_diamond_block_red.png differ diff --git a/mods/technic/technic/textures/technic_diamond_drill_head.png b/mods/technic/technic/textures/technic_diamond_drill_head.png new file mode 100644 index 0000000..e3d31e8 Binary files /dev/null and b/mods/technic/technic/textures/technic_diamond_drill_head.png differ diff --git a/mods/technic/technic/textures/technic_doped_silicon_wafer.png b/mods/technic/technic/textures/technic_doped_silicon_wafer.png new file mode 100644 index 0000000..6365137 Binary files /dev/null and b/mods/technic/technic/textures/technic_doped_silicon_wafer.png differ diff --git a/mods/technic/technic/textures/technic_fine_copper_wire.png b/mods/technic/technic/textures/technic_fine_copper_wire.png new file mode 100644 index 0000000..3e663bb Binary files /dev/null and b/mods/technic/technic/textures/technic_fine_copper_wire.png differ diff --git a/mods/technic/technic/textures/technic_fine_gold_wire.png b/mods/technic/technic/textures/technic_fine_gold_wire.png new file mode 100644 index 0000000..54a7a52 Binary files /dev/null and b/mods/technic/technic/textures/technic_fine_gold_wire.png differ diff --git a/mods/technic/technic/textures/technic_fine_silver_wire.png b/mods/technic/technic/textures/technic_fine_silver_wire.png new file mode 100644 index 0000000..f40a52b Binary files /dev/null and b/mods/technic/technic/textures/technic_fine_silver_wire.png differ diff --git a/mods/technic/technic/textures/technic_flashlight.png b/mods/technic/technic/textures/technic_flashlight.png new file mode 100644 index 0000000..8e7b75a Binary files /dev/null and b/mods/technic/technic/textures/technic_flashlight.png differ diff --git a/mods/technic/technic/textures/technic_forcefield_animated.png b/mods/technic/technic/textures/technic_forcefield_animated.png new file mode 100644 index 0000000..7763840 Binary files /dev/null and b/mods/technic/technic/textures/technic_forcefield_animated.png differ diff --git a/mods/technic/technic/textures/technic_forcefield_emitter_off.png b/mods/technic/technic/textures/technic_forcefield_emitter_off.png new file mode 100644 index 0000000..4c4582f Binary files /dev/null and b/mods/technic/technic/textures/technic_forcefield_emitter_off.png differ diff --git a/mods/technic/technic/textures/technic_forcefield_emitter_on.png b/mods/technic/technic/textures/technic_forcefield_emitter_on.png new file mode 100644 index 0000000..1f32af6 Binary files /dev/null and b/mods/technic/technic/textures/technic_forcefield_emitter_on.png differ diff --git a/mods/technic/technic/textures/technic_frame.png b/mods/technic/technic/textures/technic_frame.png new file mode 100644 index 0000000..4998120 Binary files /dev/null and b/mods/technic/technic/textures/technic_frame.png differ diff --git a/mods/technic/technic/textures/technic_geothermal_side.png b/mods/technic/technic/textures/technic_geothermal_side.png new file mode 100644 index 0000000..90fb430 Binary files /dev/null and b/mods/technic/technic/textures/technic_geothermal_side.png differ diff --git a/mods/technic/technic/textures/technic_geothermal_top.png b/mods/technic/technic/textures/technic_geothermal_top.png new file mode 100644 index 0000000..601ff15 Binary files /dev/null and b/mods/technic/technic/textures/technic_geothermal_top.png differ diff --git a/mods/technic/technic/textures/technic_geothermal_top_active.png b/mods/technic/technic/textures/technic_geothermal_top_active.png new file mode 100644 index 0000000..f02bec6 Binary files /dev/null and b/mods/technic/technic/textures/technic_geothermal_top_active.png differ diff --git a/mods/technic/technic/textures/technic_gold_dust.png b/mods/technic/technic/textures/technic_gold_dust.png new file mode 100644 index 0000000..48c24ae Binary files /dev/null and b/mods/technic/technic/textures/technic_gold_dust.png differ diff --git a/mods/technic/technic/textures/technic_graphite.png b/mods/technic/technic/textures/technic_graphite.png new file mode 100644 index 0000000..00cd0ee Binary files /dev/null and b/mods/technic/technic/textures/technic_graphite.png differ diff --git a/mods/technic/technic/textures/technic_grinder_front.png b/mods/technic/technic/textures/technic_grinder_front.png new file mode 100644 index 0000000..a28dbc1 Binary files /dev/null and b/mods/technic/technic/textures/technic_grinder_front.png differ diff --git a/mods/technic/technic/textures/technic_grinder_side.png b/mods/technic/technic/textures/technic_grinder_side.png new file mode 100644 index 0000000..af562f2 Binary files /dev/null and b/mods/technic/technic/textures/technic_grinder_side.png differ diff --git a/mods/technic/technic/textures/technic_grinder_top.png b/mods/technic/technic/textures/technic_grinder_top.png new file mode 100644 index 0000000..b074e13 Binary files /dev/null and b/mods/technic/technic/textures/technic_grinder_top.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides.png new file mode 100644 index 0000000..9121999 Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png new file mode 100644 index 0000000..c8006eb Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_white_sides_ceiling.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_cube_white_tb.png b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_white_tb.png new file mode 100644 index 0000000..b2e355a Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_white_tb.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png new file mode 100644 index 0000000..b79be07 Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png new file mode 100644 index 0000000..a9d397a Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_sides_ceiling.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png new file mode 100644 index 0000000..daf03ab Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_cube_yellow_tb.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_thick_white_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_thick_white_sides.png new file mode 100644 index 0000000..44c2b36 Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_thick_white_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png new file mode 100644 index 0000000..937999e Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_thick_white_wall_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png new file mode 100644 index 0000000..769b054 Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png new file mode 100644 index 0000000..57820f1 Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_thick_yellow_wall_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_thin_white_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_thin_white_sides.png new file mode 100644 index 0000000..0a337a5 Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_thin_white_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png new file mode 100644 index 0000000..0fd3b1e Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_thin_white_wall_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png new file mode 100644 index 0000000..55bb6c0 Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png b/mods/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png new file mode 100644 index 0000000..4b28a27 Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_thin_yellow_wall_sides.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_white_tb.png b/mods/technic/technic/textures/technic_homedecor_glowlight_white_tb.png new file mode 100644 index 0000000..fdc8a4d Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_white_tb.png differ diff --git a/mods/technic/technic/textures/technic_homedecor_glowlight_yellow_tb.png b/mods/technic/technic/textures/technic_homedecor_glowlight_yellow_tb.png new file mode 100644 index 0000000..ffd9c58 Binary files /dev/null and b/mods/technic/technic/textures/technic_homedecor_glowlight_yellow_tb.png differ diff --git a/mods/technic/technic/textures/technic_hv_battery_box_bottom.png b/mods/technic/technic/textures/technic_hv_battery_box_bottom.png new file mode 100644 index 0000000..996b2d4 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_battery_box_bottom.png differ diff --git a/mods/technic/technic/textures/technic_hv_battery_box_side.png b/mods/technic/technic/textures/technic_hv_battery_box_side.png new file mode 100644 index 0000000..fffd8ea Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_battery_box_side.png differ diff --git a/mods/technic/technic/textures/technic_hv_battery_box_top.png b/mods/technic/technic/textures/technic_hv_battery_box_top.png new file mode 100644 index 0000000..49dee71 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_battery_box_top.png differ diff --git a/mods/technic/technic/textures/technic_hv_cable.png b/mods/technic/technic/textures/technic_hv_cable.png new file mode 100644 index 0000000..7cb368d Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_cable.png differ diff --git a/mods/technic/technic/textures/technic_hv_cable_wield.png b/mods/technic/technic/textures/technic_hv_cable_wield.png new file mode 100644 index 0000000..7b9ca58 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_cable_wield.png differ diff --git a/mods/technic/technic/textures/technic_hv_down_converter_bottom.png b/mods/technic/technic/textures/technic_hv_down_converter_bottom.png new file mode 100644 index 0000000..996b2d4 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_down_converter_bottom.png differ diff --git a/mods/technic/technic/textures/technic_hv_down_converter_side.png b/mods/technic/technic/textures/technic_hv_down_converter_side.png new file mode 100644 index 0000000..ab904f1 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_down_converter_side.png differ diff --git a/mods/technic/technic/textures/technic_hv_down_converter_top.png b/mods/technic/technic/textures/technic_hv_down_converter_top.png new file mode 100644 index 0000000..996b2d4 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_down_converter_top.png differ diff --git a/mods/technic/technic/textures/technic_hv_generator_front.png b/mods/technic/technic/textures/technic_hv_generator_front.png new file mode 100644 index 0000000..6a14686 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_generator_front.png differ diff --git a/mods/technic/technic/textures/technic_hv_generator_front_active.png b/mods/technic/technic/textures/technic_hv_generator_front_active.png new file mode 100644 index 0000000..d92c699 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_generator_front_active.png differ diff --git a/mods/technic/technic/textures/technic_hv_generator_side.png b/mods/technic/technic/textures/technic_hv_generator_side.png new file mode 100644 index 0000000..3073e0f Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_generator_side.png differ diff --git a/mods/technic/technic/textures/technic_hv_generator_top.png b/mods/technic/technic/textures/technic_hv_generator_top.png new file mode 100644 index 0000000..646168c Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_generator_top.png differ diff --git a/mods/technic/technic/textures/technic_hv_grinder_bottom.png b/mods/technic/technic/textures/technic_hv_grinder_bottom.png new file mode 100644 index 0000000..fa2c135 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_grinder_bottom.png differ diff --git a/mods/technic/technic/textures/technic_hv_grinder_front.png b/mods/technic/technic/textures/technic_hv_grinder_front.png new file mode 100644 index 0000000..a5bca0a Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_grinder_front.png differ diff --git a/mods/technic/technic/textures/technic_hv_grinder_front_active.png b/mods/technic/technic/textures/technic_hv_grinder_front_active.png new file mode 100644 index 0000000..4077630 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_grinder_front_active.png differ diff --git a/mods/technic/technic/textures/technic_hv_grinder_side.png b/mods/technic/technic/textures/technic_hv_grinder_side.png new file mode 100644 index 0000000..c3063c4 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_grinder_side.png differ diff --git a/mods/technic/technic/textures/technic_hv_grinder_side_tube.png b/mods/technic/technic/textures/technic_hv_grinder_side_tube.png new file mode 100644 index 0000000..43bcca5 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_grinder_side_tube.png differ diff --git a/mods/technic/technic/textures/technic_hv_grinder_top.png b/mods/technic/technic/textures/technic_hv_grinder_top.png new file mode 100644 index 0000000..e0df36b Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_grinder_top.png differ diff --git a/mods/technic/technic/textures/technic_hv_nuclear_reactor_core.png b/mods/technic/technic/textures/technic_hv_nuclear_reactor_core.png new file mode 100644 index 0000000..4661177 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_nuclear_reactor_core.png differ diff --git a/mods/technic/technic/textures/technic_hv_solar_array_bottom.png b/mods/technic/technic/textures/technic_hv_solar_array_bottom.png new file mode 100644 index 0000000..596e79a Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_solar_array_bottom.png differ diff --git a/mods/technic/technic/textures/technic_hv_solar_array_side.png b/mods/technic/technic/textures/technic_hv_solar_array_side.png new file mode 100644 index 0000000..a3aa8c7 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_solar_array_side.png differ diff --git a/mods/technic/technic/textures/technic_hv_solar_array_top.png b/mods/technic/technic/textures/technic_hv_solar_array_top.png new file mode 100644 index 0000000..b7f0b43 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_solar_array_top.png differ diff --git a/mods/technic/technic/textures/technic_hv_transformer.png b/mods/technic/technic/textures/technic_hv_transformer.png new file mode 100644 index 0000000..e1d4c98 Binary files /dev/null and b/mods/technic/technic/textures/technic_hv_transformer.png differ diff --git a/mods/technic/technic/textures/technic_injector_bottom.png b/mods/technic/technic/textures/technic_injector_bottom.png new file mode 100644 index 0000000..39916bd Binary files /dev/null and b/mods/technic/technic/textures/technic_injector_bottom.png differ diff --git a/mods/technic/technic/textures/technic_injector_side.png b/mods/technic/technic/textures/technic_injector_side.png new file mode 100644 index 0000000..a5419a1 Binary files /dev/null and b/mods/technic/technic/textures/technic_injector_side.png differ diff --git a/mods/technic/technic/textures/technic_injector_top.png b/mods/technic/technic/textures/technic_injector_top.png new file mode 100644 index 0000000..440649c Binary files /dev/null and b/mods/technic/technic/textures/technic_injector_top.png differ diff --git a/mods/technic/technic/textures/technic_kalite_dust.png b/mods/technic/technic/textures/technic_kalite_dust.png new file mode 100644 index 0000000..3a9e10f Binary files /dev/null and b/mods/technic/technic/textures/technic_kalite_dust.png differ diff --git a/mods/technic/technic/textures/technic_laser_beam_mk1.png b/mods/technic/technic/textures/technic_laser_beam_mk1.png new file mode 100644 index 0000000..4cf9b3e Binary files /dev/null and b/mods/technic/technic/textures/technic_laser_beam_mk1.png differ diff --git a/mods/technic/technic/textures/technic_laser_beam_mk2.png b/mods/technic/technic/textures/technic_laser_beam_mk2.png new file mode 100644 index 0000000..9e27a8c Binary files /dev/null and b/mods/technic/technic/textures/technic_laser_beam_mk2.png differ diff --git a/mods/technic/technic/textures/technic_laser_beam_mk3.png b/mods/technic/technic/textures/technic_laser_beam_mk3.png new file mode 100644 index 0000000..5a17e83 Binary files /dev/null and b/mods/technic/technic/textures/technic_laser_beam_mk3.png differ diff --git a/mods/technic/technic/textures/technic_lava_can.png b/mods/technic/technic/textures/technic_lava_can.png new file mode 100644 index 0000000..abe1a8c Binary files /dev/null and b/mods/technic/technic/textures/technic_lava_can.png differ diff --git a/mods/technic/technic/textures/technic_light.png b/mods/technic/technic/textures/technic_light.png new file mode 100644 index 0000000..334cb07 Binary files /dev/null and b/mods/technic/technic/textures/technic_light.png differ diff --git a/mods/technic/technic/textures/technic_lv_alloy_furnace_bottom.png b/mods/technic/technic/textures/technic_lv_alloy_furnace_bottom.png new file mode 100644 index 0000000..2c0aaee Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_alloy_furnace_bottom.png differ diff --git a/mods/technic/technic/textures/technic_lv_alloy_furnace_front.png b/mods/technic/technic/textures/technic_lv_alloy_furnace_front.png new file mode 100644 index 0000000..2d65cda Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_alloy_furnace_front.png differ diff --git a/mods/technic/technic/textures/technic_lv_alloy_furnace_front_active.png b/mods/technic/technic/textures/technic_lv_alloy_furnace_front_active.png new file mode 100644 index 0000000..1ced989 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_alloy_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technic_lv_alloy_furnace_side.png b/mods/technic/technic/textures/technic_lv_alloy_furnace_side.png new file mode 100644 index 0000000..778ad88 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_alloy_furnace_side.png differ diff --git a/mods/technic/technic/textures/technic_lv_alloy_furnace_top.png b/mods/technic/technic/textures/technic_lv_alloy_furnace_top.png new file mode 100644 index 0000000..706793b Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_alloy_furnace_top.png differ diff --git a/mods/technic/technic/textures/technic_lv_battery_box_bottom.png b/mods/technic/technic/textures/technic_lv_battery_box_bottom.png new file mode 100644 index 0000000..a6124e6 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_battery_box_bottom.png differ diff --git a/mods/technic/technic/textures/technic_lv_battery_box_side.png b/mods/technic/technic/textures/technic_lv_battery_box_side.png new file mode 100644 index 0000000..24d4e4e Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_battery_box_side.png differ diff --git a/mods/technic/technic/textures/technic_lv_battery_box_top.png b/mods/technic/technic/textures/technic_lv_battery_box_top.png new file mode 100644 index 0000000..b32100f Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_battery_box_top.png differ diff --git a/mods/technic/technic/textures/technic_lv_cable.png b/mods/technic/technic/textures/technic_lv_cable.png new file mode 100644 index 0000000..0071bc9 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_cable.png differ diff --git a/mods/technic/technic/textures/technic_lv_cable_wield.png b/mods/technic/technic/textures/technic_lv_cable_wield.png new file mode 100644 index 0000000..bc7704d Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_cable_wield.png differ diff --git a/mods/technic/technic/textures/technic_lv_compressor_back.png b/mods/technic/technic/textures/technic_lv_compressor_back.png new file mode 100644 index 0000000..11286e3 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_compressor_back.png differ diff --git a/mods/technic/technic/textures/technic_lv_compressor_bottom.png b/mods/technic/technic/textures/technic_lv_compressor_bottom.png new file mode 100644 index 0000000..886f27e Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_compressor_bottom.png differ diff --git a/mods/technic/technic/textures/technic_lv_compressor_front.png b/mods/technic/technic/textures/technic_lv_compressor_front.png new file mode 100644 index 0000000..007d6de Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_compressor_front.png differ diff --git a/mods/technic/technic/textures/technic_lv_compressor_front_active.png b/mods/technic/technic/textures/technic_lv_compressor_front_active.png new file mode 100644 index 0000000..b3d27c0 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_compressor_front_active.png differ diff --git a/mods/technic/technic/textures/technic_lv_compressor_side.png b/mods/technic/technic/textures/technic_lv_compressor_side.png new file mode 100644 index 0000000..87acda6 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_compressor_side.png differ diff --git a/mods/technic/technic/textures/technic_lv_compressor_top.png b/mods/technic/technic/textures/technic_lv_compressor_top.png new file mode 100644 index 0000000..786b859 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_compressor_top.png differ diff --git a/mods/technic/technic/textures/technic_lv_electric_furnace_bottom.png b/mods/technic/technic/textures/technic_lv_electric_furnace_bottom.png new file mode 100644 index 0000000..15fa6de Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_electric_furnace_bottom.png differ diff --git a/mods/technic/technic/textures/technic_lv_electric_furnace_front.png b/mods/technic/technic/textures/technic_lv_electric_furnace_front.png new file mode 100644 index 0000000..755aadf Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_electric_furnace_front.png differ diff --git a/mods/technic/technic/textures/technic_lv_electric_furnace_front_active.png b/mods/technic/technic/textures/technic_lv_electric_furnace_front_active.png new file mode 100644 index 0000000..de7f1f9 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_electric_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technic_lv_electric_furnace_side.png b/mods/technic/technic/textures/technic_lv_electric_furnace_side.png new file mode 100644 index 0000000..80cf742 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_electric_furnace_side.png differ diff --git a/mods/technic/technic/textures/technic_lv_electric_furnace_top.png b/mods/technic/technic/textures/technic_lv_electric_furnace_top.png new file mode 100644 index 0000000..fbadd9a Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_electric_furnace_top.png differ diff --git a/mods/technic/technic/textures/technic_lv_extractor_bottom.png b/mods/technic/technic/textures/technic_lv_extractor_bottom.png new file mode 100644 index 0000000..aecd719 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_extractor_bottom.png differ diff --git a/mods/technic/technic/textures/technic_lv_extractor_front.png b/mods/technic/technic/textures/technic_lv_extractor_front.png new file mode 100644 index 0000000..1bd7e9a Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_extractor_front.png differ diff --git a/mods/technic/technic/textures/technic_lv_extractor_front_active.png b/mods/technic/technic/textures/technic_lv_extractor_front_active.png new file mode 100644 index 0000000..7f8b30a Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_extractor_front_active.png differ diff --git a/mods/technic/technic/textures/technic_lv_extractor_side.png b/mods/technic/technic/textures/technic_lv_extractor_side.png new file mode 100644 index 0000000..99d9486 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_extractor_side.png differ diff --git a/mods/technic/technic/textures/technic_lv_extractor_top.png b/mods/technic/technic/textures/technic_lv_extractor_top.png new file mode 100644 index 0000000..e7d9ff9 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_extractor_top.png differ diff --git a/mods/technic/technic/textures/technic_lv_generator_front.png b/mods/technic/technic/textures/technic_lv_generator_front.png new file mode 100644 index 0000000..2d64844 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_generator_front.png differ diff --git a/mods/technic/technic/textures/technic_lv_generator_front_active.png b/mods/technic/technic/textures/technic_lv_generator_front_active.png new file mode 100644 index 0000000..4e57ca0 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_generator_front_active.png differ diff --git a/mods/technic/technic/textures/technic_lv_generator_side.png b/mods/technic/technic/textures/technic_lv_generator_side.png new file mode 100644 index 0000000..5cbcbef Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_generator_side.png differ diff --git a/mods/technic/technic/textures/technic_lv_generator_top.png b/mods/technic/technic/textures/technic_lv_generator_top.png new file mode 100644 index 0000000..e2f3db3 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_generator_top.png differ diff --git a/mods/technic/technic/textures/technic_lv_grinder_bottom.png b/mods/technic/technic/textures/technic_lv_grinder_bottom.png new file mode 100644 index 0000000..aecd719 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_grinder_bottom.png differ diff --git a/mods/technic/technic/textures/technic_lv_grinder_front.png b/mods/technic/technic/textures/technic_lv_grinder_front.png new file mode 100644 index 0000000..1bd7e9a Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_grinder_front.png differ diff --git a/mods/technic/technic/textures/technic_lv_grinder_front_active.png b/mods/technic/technic/textures/technic_lv_grinder_front_active.png new file mode 100644 index 0000000..7f8b30a Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_grinder_front_active.png differ diff --git a/mods/technic/technic/textures/technic_lv_grinder_side.png b/mods/technic/technic/textures/technic_lv_grinder_side.png new file mode 100644 index 0000000..99d9486 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_grinder_side.png differ diff --git a/mods/technic/technic/textures/technic_lv_grinder_top.png b/mods/technic/technic/textures/technic_lv_grinder_top.png new file mode 100644 index 0000000..e7d9ff9 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_grinder_top.png differ diff --git a/mods/technic/technic/textures/technic_lv_solar_array_bottom.png b/mods/technic/technic/textures/technic_lv_solar_array_bottom.png new file mode 100644 index 0000000..9e888e3 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_solar_array_bottom.png differ diff --git a/mods/technic/technic/textures/technic_lv_solar_array_side.png b/mods/technic/technic/textures/technic_lv_solar_array_side.png new file mode 100644 index 0000000..b22447e Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_solar_array_side.png differ diff --git a/mods/technic/technic/textures/technic_lv_solar_array_top.png b/mods/technic/technic/textures/technic_lv_solar_array_top.png new file mode 100644 index 0000000..cabd315 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_solar_array_top.png differ diff --git a/mods/technic/technic/textures/technic_lv_transformer.png b/mods/technic/technic/textures/technic_lv_transformer.png new file mode 100644 index 0000000..613b196 Binary files /dev/null and b/mods/technic/technic/textures/technic_lv_transformer.png differ diff --git a/mods/technic/technic/textures/technic_machine_bottom.png b/mods/technic/technic/textures/technic_machine_bottom.png new file mode 100644 index 0000000..48a47b0 Binary files /dev/null and b/mods/technic/technic/textures/technic_machine_bottom.png differ diff --git a/mods/technic/technic/textures/technic_machine_casing.png b/mods/technic/technic/textures/technic_machine_casing.png new file mode 100644 index 0000000..d596733 Binary files /dev/null and b/mods/technic/technic/textures/technic_machine_casing.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill.png b/mods/technic/technic/textures/technic_mining_drill.png new file mode 100644 index 0000000..171888d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_Admin1.png b/mods/technic/technic/textures/technic_mining_drill_Admin1.png new file mode 100644 index 0000000..3eebc99 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_Admin1.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mk2.png b/mods/technic/technic/textures/technic_mining_drill_mk2.png new file mode 100644 index 0000000..30be719 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mk2.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mk3.png b/mods/technic/technic/textures/technic_mining_drill_mk3.png new file mode 100644 index 0000000..30de896 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mk3.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS1.png b/mods/technic/technic/textures/technic_mining_drill_mkS1.png new file mode 100644 index 0000000..4c413c5 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS1.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS10.png b/mods/technic/technic/textures/technic_mining_drill_mkS10.png new file mode 100644 index 0000000..199dc4d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS10.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS100.png b/mods/technic/technic/textures/technic_mining_drill_mkS100.png new file mode 100644 index 0000000..6e6d5db Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS100.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS101.png b/mods/technic/technic/textures/technic_mining_drill_mkS101.png new file mode 100644 index 0000000..2d4a1cc Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS101.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS102.png b/mods/technic/technic/textures/technic_mining_drill_mkS102.png new file mode 100644 index 0000000..770509f Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS102.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS103.png b/mods/technic/technic/textures/technic_mining_drill_mkS103.png new file mode 100644 index 0000000..c274f31 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS103.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS104.png b/mods/technic/technic/textures/technic_mining_drill_mkS104.png new file mode 100644 index 0000000..99acc95 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS104.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS105.png b/mods/technic/technic/textures/technic_mining_drill_mkS105.png new file mode 100644 index 0000000..2f6f7a3 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS105.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS106.png b/mods/technic/technic/textures/technic_mining_drill_mkS106.png new file mode 100644 index 0000000..440f80d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS106.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS107.png b/mods/technic/technic/textures/technic_mining_drill_mkS107.png new file mode 100644 index 0000000..824f278 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS107.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS108.png b/mods/technic/technic/textures/technic_mining_drill_mkS108.png new file mode 100644 index 0000000..aff72fb Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS108.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS109.png b/mods/technic/technic/textures/technic_mining_drill_mkS109.png new file mode 100644 index 0000000..6d73aff Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS109.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS11.png b/mods/technic/technic/textures/technic_mining_drill_mkS11.png new file mode 100644 index 0000000..87bb8bd Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS11.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS110.png b/mods/technic/technic/textures/technic_mining_drill_mkS110.png new file mode 100644 index 0000000..903a50a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS110.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS111.png b/mods/technic/technic/textures/technic_mining_drill_mkS111.png new file mode 100644 index 0000000..a3a5ac6 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS111.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS112.png b/mods/technic/technic/textures/technic_mining_drill_mkS112.png new file mode 100644 index 0000000..ce90ed1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS112.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS113.png b/mods/technic/technic/textures/technic_mining_drill_mkS113.png new file mode 100644 index 0000000..50e692c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS113.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS114.png b/mods/technic/technic/textures/technic_mining_drill_mkS114.png new file mode 100644 index 0000000..064a182 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS114.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS115.png b/mods/technic/technic/textures/technic_mining_drill_mkS115.png new file mode 100644 index 0000000..067809c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS115.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS116.png b/mods/technic/technic/textures/technic_mining_drill_mkS116.png new file mode 100644 index 0000000..dcba152 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS116.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS117.png b/mods/technic/technic/textures/technic_mining_drill_mkS117.png new file mode 100644 index 0000000..857d5b1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS117.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS118.png b/mods/technic/technic/textures/technic_mining_drill_mkS118.png new file mode 100644 index 0000000..8fe2844 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS118.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS119.png b/mods/technic/technic/textures/technic_mining_drill_mkS119.png new file mode 100644 index 0000000..436a0c9 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS119.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS12.png b/mods/technic/technic/textures/technic_mining_drill_mkS12.png new file mode 100644 index 0000000..119ff7f Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS12.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS120.png b/mods/technic/technic/textures/technic_mining_drill_mkS120.png new file mode 100644 index 0000000..613aede Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS120.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS121.png b/mods/technic/technic/textures/technic_mining_drill_mkS121.png new file mode 100644 index 0000000..47e3c6c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS121.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS122.png b/mods/technic/technic/textures/technic_mining_drill_mkS122.png new file mode 100644 index 0000000..86d723e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS122.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS123.png b/mods/technic/technic/textures/technic_mining_drill_mkS123.png new file mode 100644 index 0000000..b0674ba Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS123.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS124.png b/mods/technic/technic/textures/technic_mining_drill_mkS124.png new file mode 100644 index 0000000..9df8fa1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS124.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS125.png b/mods/technic/technic/textures/technic_mining_drill_mkS125.png new file mode 100644 index 0000000..498429c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS125.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS126.png b/mods/technic/technic/textures/technic_mining_drill_mkS126.png new file mode 100644 index 0000000..b0d414a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS126.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS127.png b/mods/technic/technic/textures/technic_mining_drill_mkS127.png new file mode 100644 index 0000000..24710ad Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS127.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS128.png b/mods/technic/technic/textures/technic_mining_drill_mkS128.png new file mode 100644 index 0000000..a0219f3 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS128.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS129.png b/mods/technic/technic/textures/technic_mining_drill_mkS129.png new file mode 100644 index 0000000..4ed573d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS129.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS13.png b/mods/technic/technic/textures/technic_mining_drill_mkS13.png new file mode 100644 index 0000000..98343a7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS13.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS130.png b/mods/technic/technic/textures/technic_mining_drill_mkS130.png new file mode 100644 index 0000000..552b64c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS130.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS131.png b/mods/technic/technic/textures/technic_mining_drill_mkS131.png new file mode 100644 index 0000000..79ddd12 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS131.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS132.png b/mods/technic/technic/textures/technic_mining_drill_mkS132.png new file mode 100644 index 0000000..c945d60 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS132.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS133.png b/mods/technic/technic/textures/technic_mining_drill_mkS133.png new file mode 100644 index 0000000..36bbd59 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS133.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS134.png b/mods/technic/technic/textures/technic_mining_drill_mkS134.png new file mode 100644 index 0000000..1c45015 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS134.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS135.png b/mods/technic/technic/textures/technic_mining_drill_mkS135.png new file mode 100644 index 0000000..cc44003 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS135.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS136.png b/mods/technic/technic/textures/technic_mining_drill_mkS136.png new file mode 100644 index 0000000..361212c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS136.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS137.png b/mods/technic/technic/textures/technic_mining_drill_mkS137.png new file mode 100644 index 0000000..ddf2df7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS137.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS138.png b/mods/technic/technic/textures/technic_mining_drill_mkS138.png new file mode 100644 index 0000000..e9a0e3a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS138.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS139.png b/mods/technic/technic/textures/technic_mining_drill_mkS139.png new file mode 100644 index 0000000..d3f6d53 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS139.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS14.png b/mods/technic/technic/textures/technic_mining_drill_mkS14.png new file mode 100644 index 0000000..a0147e7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS14.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS140.png b/mods/technic/technic/textures/technic_mining_drill_mkS140.png new file mode 100644 index 0000000..1213207 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS140.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS141.png b/mods/technic/technic/textures/technic_mining_drill_mkS141.png new file mode 100644 index 0000000..78974f3 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS141.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS142.png b/mods/technic/technic/textures/technic_mining_drill_mkS142.png new file mode 100644 index 0000000..4a38bad Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS142.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS143.png b/mods/technic/technic/textures/technic_mining_drill_mkS143.png new file mode 100644 index 0000000..04b385d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS143.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS144.png b/mods/technic/technic/textures/technic_mining_drill_mkS144.png new file mode 100644 index 0000000..739363a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS144.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS145.png b/mods/technic/technic/textures/technic_mining_drill_mkS145.png new file mode 100644 index 0000000..fa41eea Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS145.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS146.png b/mods/technic/technic/textures/technic_mining_drill_mkS146.png new file mode 100644 index 0000000..12f19a9 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS146.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS147.png b/mods/technic/technic/textures/technic_mining_drill_mkS147.png new file mode 100644 index 0000000..6052b03 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS147.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS148.png b/mods/technic/technic/textures/technic_mining_drill_mkS148.png new file mode 100644 index 0000000..cc71799 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS148.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS149.png b/mods/technic/technic/textures/technic_mining_drill_mkS149.png new file mode 100644 index 0000000..611ca8e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS149.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS15.png b/mods/technic/technic/textures/technic_mining_drill_mkS15.png new file mode 100644 index 0000000..a0455b6 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS15.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS150.png b/mods/technic/technic/textures/technic_mining_drill_mkS150.png new file mode 100644 index 0000000..9b9b9a7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS150.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS16.png b/mods/technic/technic/textures/technic_mining_drill_mkS16.png new file mode 100644 index 0000000..ee2b5a8 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS16.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS17.png b/mods/technic/technic/textures/technic_mining_drill_mkS17.png new file mode 100644 index 0000000..bfdcf90 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS17.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS18.png b/mods/technic/technic/textures/technic_mining_drill_mkS18.png new file mode 100644 index 0000000..213baee Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS18.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS19.png b/mods/technic/technic/textures/technic_mining_drill_mkS19.png new file mode 100644 index 0000000..551603b Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS19.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS2.png b/mods/technic/technic/textures/technic_mining_drill_mkS2.png new file mode 100644 index 0000000..c0ac4c4 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS2.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS20.png b/mods/technic/technic/textures/technic_mining_drill_mkS20.png new file mode 100644 index 0000000..eea4993 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS20.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS21.png b/mods/technic/technic/textures/technic_mining_drill_mkS21.png new file mode 100644 index 0000000..cd3e978 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS21.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS22.png b/mods/technic/technic/textures/technic_mining_drill_mkS22.png new file mode 100644 index 0000000..f47a237 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS22.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS23.png b/mods/technic/technic/textures/technic_mining_drill_mkS23.png new file mode 100644 index 0000000..9805c9e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS23.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS24.png b/mods/technic/technic/textures/technic_mining_drill_mkS24.png new file mode 100644 index 0000000..e9e8946 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS24.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS25.png b/mods/technic/technic/textures/technic_mining_drill_mkS25.png new file mode 100644 index 0000000..0204b81 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS25.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS26.png b/mods/technic/technic/textures/technic_mining_drill_mkS26.png new file mode 100644 index 0000000..e26742d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS26.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS27.png b/mods/technic/technic/textures/technic_mining_drill_mkS27.png new file mode 100644 index 0000000..aecdbfa Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS27.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS28.png b/mods/technic/technic/textures/technic_mining_drill_mkS28.png new file mode 100644 index 0000000..95617d9 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS28.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS29.png b/mods/technic/technic/textures/technic_mining_drill_mkS29.png new file mode 100644 index 0000000..24aeac0 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS29.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS3.png b/mods/technic/technic/textures/technic_mining_drill_mkS3.png new file mode 100644 index 0000000..0bc561a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS3.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS30.png b/mods/technic/technic/textures/technic_mining_drill_mkS30.png new file mode 100644 index 0000000..7c28f3b Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS30.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS31.png b/mods/technic/technic/textures/technic_mining_drill_mkS31.png new file mode 100644 index 0000000..3dc0841 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS31.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS32.png b/mods/technic/technic/textures/technic_mining_drill_mkS32.png new file mode 100644 index 0000000..5c73dc7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS32.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS33.png b/mods/technic/technic/textures/technic_mining_drill_mkS33.png new file mode 100644 index 0000000..300c9a0 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS33.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS34.png b/mods/technic/technic/textures/technic_mining_drill_mkS34.png new file mode 100644 index 0000000..0949da1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS34.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS35.png b/mods/technic/technic/textures/technic_mining_drill_mkS35.png new file mode 100644 index 0000000..c3c5f47 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS35.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS36.png b/mods/technic/technic/textures/technic_mining_drill_mkS36.png new file mode 100644 index 0000000..faf266e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS36.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS37.png b/mods/technic/technic/textures/technic_mining_drill_mkS37.png new file mode 100644 index 0000000..c5c9093 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS37.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS38.png b/mods/technic/technic/textures/technic_mining_drill_mkS38.png new file mode 100644 index 0000000..1d5e738 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS38.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS39.png b/mods/technic/technic/textures/technic_mining_drill_mkS39.png new file mode 100644 index 0000000..79a306e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS39.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS4.png b/mods/technic/technic/textures/technic_mining_drill_mkS4.png new file mode 100644 index 0000000..54a90ca Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS4.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS40.png b/mods/technic/technic/textures/technic_mining_drill_mkS40.png new file mode 100644 index 0000000..fa003d7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS40.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS41.png b/mods/technic/technic/textures/technic_mining_drill_mkS41.png new file mode 100644 index 0000000..4350275 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS41.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS42.png b/mods/technic/technic/textures/technic_mining_drill_mkS42.png new file mode 100644 index 0000000..08a13a5 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS42.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS43.png b/mods/technic/technic/textures/technic_mining_drill_mkS43.png new file mode 100644 index 0000000..3413239 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS43.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS44.png b/mods/technic/technic/textures/technic_mining_drill_mkS44.png new file mode 100644 index 0000000..1ca6bef Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS44.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS45.png b/mods/technic/technic/textures/technic_mining_drill_mkS45.png new file mode 100644 index 0000000..ba926b1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS45.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS46.png b/mods/technic/technic/textures/technic_mining_drill_mkS46.png new file mode 100644 index 0000000..3225638 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS46.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS47.png b/mods/technic/technic/textures/technic_mining_drill_mkS47.png new file mode 100644 index 0000000..6826ae7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS47.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS48.png b/mods/technic/technic/textures/technic_mining_drill_mkS48.png new file mode 100644 index 0000000..0373bfb Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS48.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS49.png b/mods/technic/technic/textures/technic_mining_drill_mkS49.png new file mode 100644 index 0000000..b59af21 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS49.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS5.png b/mods/technic/technic/textures/technic_mining_drill_mkS5.png new file mode 100644 index 0000000..1f7fd9a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS5.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS50.png b/mods/technic/technic/textures/technic_mining_drill_mkS50.png new file mode 100644 index 0000000..3a412c0 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS50.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS51.png b/mods/technic/technic/textures/technic_mining_drill_mkS51.png new file mode 100644 index 0000000..37e156d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS51.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS52.png b/mods/technic/technic/textures/technic_mining_drill_mkS52.png new file mode 100644 index 0000000..8e4c2d2 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS52.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS53.png b/mods/technic/technic/textures/technic_mining_drill_mkS53.png new file mode 100644 index 0000000..5752ef4 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS53.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS54.png b/mods/technic/technic/textures/technic_mining_drill_mkS54.png new file mode 100644 index 0000000..64806ad Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS54.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS55.png b/mods/technic/technic/textures/technic_mining_drill_mkS55.png new file mode 100644 index 0000000..17fae46 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS55.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS56.png b/mods/technic/technic/textures/technic_mining_drill_mkS56.png new file mode 100644 index 0000000..4f347d0 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS56.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS57.png b/mods/technic/technic/textures/technic_mining_drill_mkS57.png new file mode 100644 index 0000000..38490c7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS57.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS58.png b/mods/technic/technic/textures/technic_mining_drill_mkS58.png new file mode 100644 index 0000000..73d0c25 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS58.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS59.png b/mods/technic/technic/textures/technic_mining_drill_mkS59.png new file mode 100644 index 0000000..5271a23 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS59.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS6.png b/mods/technic/technic/textures/technic_mining_drill_mkS6.png new file mode 100644 index 0000000..f80471e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS6.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS60.png b/mods/technic/technic/textures/technic_mining_drill_mkS60.png new file mode 100644 index 0000000..f0c525d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS60.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS61.png b/mods/technic/technic/textures/technic_mining_drill_mkS61.png new file mode 100644 index 0000000..29ef9af Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS61.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS62.png b/mods/technic/technic/textures/technic_mining_drill_mkS62.png new file mode 100644 index 0000000..7eaff90 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS62.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS63.png b/mods/technic/technic/textures/technic_mining_drill_mkS63.png new file mode 100644 index 0000000..9f9a97d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS63.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS64.png b/mods/technic/technic/textures/technic_mining_drill_mkS64.png new file mode 100644 index 0000000..b39b567 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS64.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS65.png b/mods/technic/technic/textures/technic_mining_drill_mkS65.png new file mode 100644 index 0000000..ef61894 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS65.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS66.png b/mods/technic/technic/textures/technic_mining_drill_mkS66.png new file mode 100644 index 0000000..c5e1079 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS66.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS67.png b/mods/technic/technic/textures/technic_mining_drill_mkS67.png new file mode 100644 index 0000000..620b04c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS67.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS68.png b/mods/technic/technic/textures/technic_mining_drill_mkS68.png new file mode 100644 index 0000000..4e833a3 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS68.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS69.png b/mods/technic/technic/textures/technic_mining_drill_mkS69.png new file mode 100644 index 0000000..c00939d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS69.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS7.png b/mods/technic/technic/textures/technic_mining_drill_mkS7.png new file mode 100644 index 0000000..f088f6a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS7.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS70.png b/mods/technic/technic/textures/technic_mining_drill_mkS70.png new file mode 100644 index 0000000..6d9374b Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS70.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS71.png b/mods/technic/technic/textures/technic_mining_drill_mkS71.png new file mode 100644 index 0000000..c67cb27 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS71.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS72.png b/mods/technic/technic/textures/technic_mining_drill_mkS72.png new file mode 100644 index 0000000..368a651 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS72.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS73.png b/mods/technic/technic/textures/technic_mining_drill_mkS73.png new file mode 100644 index 0000000..5c823a7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS73.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS74.png b/mods/technic/technic/textures/technic_mining_drill_mkS74.png new file mode 100644 index 0000000..e633ff1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS74.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS75.png b/mods/technic/technic/textures/technic_mining_drill_mkS75.png new file mode 100644 index 0000000..2b20027 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS75.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS76.png b/mods/technic/technic/textures/technic_mining_drill_mkS76.png new file mode 100644 index 0000000..cac1bce Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS76.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS77.png b/mods/technic/technic/textures/technic_mining_drill_mkS77.png new file mode 100644 index 0000000..ea12855 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS77.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS78.png b/mods/technic/technic/textures/technic_mining_drill_mkS78.png new file mode 100644 index 0000000..e9f5043 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS78.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS79.png b/mods/technic/technic/textures/technic_mining_drill_mkS79.png new file mode 100644 index 0000000..c204770 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS79.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS8.png b/mods/technic/technic/textures/technic_mining_drill_mkS8.png new file mode 100644 index 0000000..75477f3 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS8.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS80.png b/mods/technic/technic/textures/technic_mining_drill_mkS80.png new file mode 100644 index 0000000..5b02866 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS80.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS81.png b/mods/technic/technic/textures/technic_mining_drill_mkS81.png new file mode 100644 index 0000000..2ab5039 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS81.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS82.png b/mods/technic/technic/textures/technic_mining_drill_mkS82.png new file mode 100644 index 0000000..49cb8e8 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS82.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS83.png b/mods/technic/technic/textures/technic_mining_drill_mkS83.png new file mode 100644 index 0000000..d272910 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS83.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS84.png b/mods/technic/technic/textures/technic_mining_drill_mkS84.png new file mode 100644 index 0000000..5852efe Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS84.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS85.png b/mods/technic/technic/textures/technic_mining_drill_mkS85.png new file mode 100644 index 0000000..65fa1e6 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS85.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS86.png b/mods/technic/technic/textures/technic_mining_drill_mkS86.png new file mode 100644 index 0000000..20d8233 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS86.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS87.png b/mods/technic/technic/textures/technic_mining_drill_mkS87.png new file mode 100644 index 0000000..21ab953 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS87.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS88.png b/mods/technic/technic/textures/technic_mining_drill_mkS88.png new file mode 100644 index 0000000..5729a89 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS88.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS89.png b/mods/technic/technic/textures/technic_mining_drill_mkS89.png new file mode 100644 index 0000000..4e57d0a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS89.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS9.png b/mods/technic/technic/textures/technic_mining_drill_mkS9.png new file mode 100644 index 0000000..416a76e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS9.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS90.png b/mods/technic/technic/textures/technic_mining_drill_mkS90.png new file mode 100644 index 0000000..dae2a3b Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS90.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS91.png b/mods/technic/technic/textures/technic_mining_drill_mkS91.png new file mode 100644 index 0000000..afa803c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS91.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS92.png b/mods/technic/technic/textures/technic_mining_drill_mkS92.png new file mode 100644 index 0000000..553614e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS92.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS93.png b/mods/technic/technic/textures/technic_mining_drill_mkS93.png new file mode 100644 index 0000000..baa7fd2 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS93.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS94.png b/mods/technic/technic/textures/technic_mining_drill_mkS94.png new file mode 100644 index 0000000..74939d6 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS94.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS95.png b/mods/technic/technic/textures/technic_mining_drill_mkS95.png new file mode 100644 index 0000000..b10fac5 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS95.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS96.png b/mods/technic/technic/textures/technic_mining_drill_mkS96.png new file mode 100644 index 0000000..cd27779 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS96.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS97.png b/mods/technic/technic/textures/technic_mining_drill_mkS97.png new file mode 100644 index 0000000..88b79bf Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS97.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS98.png b/mods/technic/technic/textures/technic_mining_drill_mkS98.png new file mode 100644 index 0000000..1ed7d97 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS98.png differ diff --git a/mods/technic/technic/textures/technic_mining_drill_mkS99.png b/mods/technic/technic/textures/technic_mining_drill_mkS99.png new file mode 100644 index 0000000..87c5b5e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_drill_mkS99.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_Admin1.png b/mods/technic/technic/textures/technic_mining_laser_Admin1.png new file mode 100644 index 0000000..ec22edc Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_Admin1.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mk1.png b/mods/technic/technic/textures/technic_mining_laser_mk1.png new file mode 100644 index 0000000..29faeb4 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mk1.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mk2.png b/mods/technic/technic/textures/technic_mining_laser_mk2.png new file mode 100644 index 0000000..2d67c0f Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mk2.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mk3.png b/mods/technic/technic/textures/technic_mining_laser_mk3.png new file mode 100644 index 0000000..db9ee26 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mk3.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS1.png b/mods/technic/technic/textures/technic_mining_laser_mkS1.png new file mode 100644 index 0000000..de63076 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS1.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS10.png b/mods/technic/technic/textures/technic_mining_laser_mkS10.png new file mode 100644 index 0000000..7bb7cfa Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS10.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS100.png b/mods/technic/technic/textures/technic_mining_laser_mkS100.png new file mode 100644 index 0000000..367c26d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS100.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS101.png b/mods/technic/technic/textures/technic_mining_laser_mkS101.png new file mode 100644 index 0000000..50e9d8c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS101.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS102.png b/mods/technic/technic/textures/technic_mining_laser_mkS102.png new file mode 100644 index 0000000..8198fdd Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS102.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS103.png b/mods/technic/technic/textures/technic_mining_laser_mkS103.png new file mode 100644 index 0000000..2d57c94 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS103.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS104.png b/mods/technic/technic/textures/technic_mining_laser_mkS104.png new file mode 100644 index 0000000..016b7c0 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS104.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS105.png b/mods/technic/technic/textures/technic_mining_laser_mkS105.png new file mode 100644 index 0000000..008dbd7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS105.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS106.png b/mods/technic/technic/textures/technic_mining_laser_mkS106.png new file mode 100644 index 0000000..93bf838 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS106.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS107.png b/mods/technic/technic/textures/technic_mining_laser_mkS107.png new file mode 100644 index 0000000..e8d76f1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS107.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS108.png b/mods/technic/technic/textures/technic_mining_laser_mkS108.png new file mode 100644 index 0000000..066ccf4 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS108.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS109.png b/mods/technic/technic/textures/technic_mining_laser_mkS109.png new file mode 100644 index 0000000..6b872ca Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS109.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS11.png b/mods/technic/technic/textures/technic_mining_laser_mkS11.png new file mode 100644 index 0000000..a01a2d4 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS11.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS110.png b/mods/technic/technic/textures/technic_mining_laser_mkS110.png new file mode 100644 index 0000000..e332196 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS110.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS111.png b/mods/technic/technic/textures/technic_mining_laser_mkS111.png new file mode 100644 index 0000000..f303a2f Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS111.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS112.png b/mods/technic/technic/textures/technic_mining_laser_mkS112.png new file mode 100644 index 0000000..951e152 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS112.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS113.png b/mods/technic/technic/textures/technic_mining_laser_mkS113.png new file mode 100644 index 0000000..6b5a302 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS113.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS114.png b/mods/technic/technic/textures/technic_mining_laser_mkS114.png new file mode 100644 index 0000000..04b39aa Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS114.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS115.png b/mods/technic/technic/textures/technic_mining_laser_mkS115.png new file mode 100644 index 0000000..e10a830 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS115.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS116.png b/mods/technic/technic/textures/technic_mining_laser_mkS116.png new file mode 100644 index 0000000..f1e2f66 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS116.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS117.png b/mods/technic/technic/textures/technic_mining_laser_mkS117.png new file mode 100644 index 0000000..907e4e9 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS117.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS118.png b/mods/technic/technic/textures/technic_mining_laser_mkS118.png new file mode 100644 index 0000000..c580a05 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS118.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS119.png b/mods/technic/technic/textures/technic_mining_laser_mkS119.png new file mode 100644 index 0000000..7f69f95 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS119.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS12.png b/mods/technic/technic/textures/technic_mining_laser_mkS12.png new file mode 100644 index 0000000..3872399 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS12.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS120.png b/mods/technic/technic/textures/technic_mining_laser_mkS120.png new file mode 100644 index 0000000..6e246d3 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS120.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS121.png b/mods/technic/technic/textures/technic_mining_laser_mkS121.png new file mode 100644 index 0000000..4fb97ba Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS121.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS122.png b/mods/technic/technic/textures/technic_mining_laser_mkS122.png new file mode 100644 index 0000000..bba1097 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS122.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS123.png b/mods/technic/technic/textures/technic_mining_laser_mkS123.png new file mode 100644 index 0000000..601d007 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS123.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS124.png b/mods/technic/technic/textures/technic_mining_laser_mkS124.png new file mode 100644 index 0000000..d0ab211 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS124.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS125.png b/mods/technic/technic/textures/technic_mining_laser_mkS125.png new file mode 100644 index 0000000..cd9c3f9 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS125.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS126.png b/mods/technic/technic/textures/technic_mining_laser_mkS126.png new file mode 100644 index 0000000..49ecf29 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS126.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS127.png b/mods/technic/technic/textures/technic_mining_laser_mkS127.png new file mode 100644 index 0000000..1c9bc2c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS127.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS128.png b/mods/technic/technic/textures/technic_mining_laser_mkS128.png new file mode 100644 index 0000000..1c3e486 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS128.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS129.png b/mods/technic/technic/textures/technic_mining_laser_mkS129.png new file mode 100644 index 0000000..21c009e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS129.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS13.png b/mods/technic/technic/textures/technic_mining_laser_mkS13.png new file mode 100644 index 0000000..7254944 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS13.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS130.png b/mods/technic/technic/textures/technic_mining_laser_mkS130.png new file mode 100644 index 0000000..0f542da Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS130.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS131.png b/mods/technic/technic/textures/technic_mining_laser_mkS131.png new file mode 100644 index 0000000..b4fd775 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS131.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS132.png b/mods/technic/technic/textures/technic_mining_laser_mkS132.png new file mode 100644 index 0000000..71ac9f5 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS132.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS133.png b/mods/technic/technic/textures/technic_mining_laser_mkS133.png new file mode 100644 index 0000000..b1f8c08 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS133.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS134.png b/mods/technic/technic/textures/technic_mining_laser_mkS134.png new file mode 100644 index 0000000..eaeddba Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS134.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS135.png b/mods/technic/technic/textures/technic_mining_laser_mkS135.png new file mode 100644 index 0000000..9640220 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS135.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS136.png b/mods/technic/technic/textures/technic_mining_laser_mkS136.png new file mode 100644 index 0000000..aa31796 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS136.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS137.png b/mods/technic/technic/textures/technic_mining_laser_mkS137.png new file mode 100644 index 0000000..524646e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS137.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS138.png b/mods/technic/technic/textures/technic_mining_laser_mkS138.png new file mode 100644 index 0000000..3d73f25 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS138.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS139.png b/mods/technic/technic/textures/technic_mining_laser_mkS139.png new file mode 100644 index 0000000..08ad39e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS139.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS14.png b/mods/technic/technic/textures/technic_mining_laser_mkS14.png new file mode 100644 index 0000000..723c74d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS14.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS140.png b/mods/technic/technic/textures/technic_mining_laser_mkS140.png new file mode 100644 index 0000000..8b6b2c2 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS140.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS141.png b/mods/technic/technic/textures/technic_mining_laser_mkS141.png new file mode 100644 index 0000000..aa18b6f Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS141.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS142.png b/mods/technic/technic/textures/technic_mining_laser_mkS142.png new file mode 100644 index 0000000..5426b1d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS142.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS143.png b/mods/technic/technic/textures/technic_mining_laser_mkS143.png new file mode 100644 index 0000000..611b52a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS143.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS144.png b/mods/technic/technic/textures/technic_mining_laser_mkS144.png new file mode 100644 index 0000000..85dd346 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS144.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS145.png b/mods/technic/technic/textures/technic_mining_laser_mkS145.png new file mode 100644 index 0000000..78754ef Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS145.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS146.png b/mods/technic/technic/textures/technic_mining_laser_mkS146.png new file mode 100644 index 0000000..eb96e43 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS146.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS147.png b/mods/technic/technic/textures/technic_mining_laser_mkS147.png new file mode 100644 index 0000000..1803513 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS147.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS148.png b/mods/technic/technic/textures/technic_mining_laser_mkS148.png new file mode 100644 index 0000000..a9622f2 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS148.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS149.png b/mods/technic/technic/textures/technic_mining_laser_mkS149.png new file mode 100644 index 0000000..77fdcf5 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS149.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS15.png b/mods/technic/technic/textures/technic_mining_laser_mkS15.png new file mode 100644 index 0000000..5af08ee Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS15.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS150.png b/mods/technic/technic/textures/technic_mining_laser_mkS150.png new file mode 100644 index 0000000..2b567b4 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS150.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS16.png b/mods/technic/technic/textures/technic_mining_laser_mkS16.png new file mode 100644 index 0000000..e05f33e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS16.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS17.png b/mods/technic/technic/textures/technic_mining_laser_mkS17.png new file mode 100644 index 0000000..ba42695 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS17.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS18.png b/mods/technic/technic/textures/technic_mining_laser_mkS18.png new file mode 100644 index 0000000..5fa50ad Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS18.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS19.png b/mods/technic/technic/textures/technic_mining_laser_mkS19.png new file mode 100644 index 0000000..1dc73b4 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS19.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS2.png b/mods/technic/technic/textures/technic_mining_laser_mkS2.png new file mode 100644 index 0000000..0b93392 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS2.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS20.png b/mods/technic/technic/textures/technic_mining_laser_mkS20.png new file mode 100644 index 0000000..9bfe515 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS20.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS21.png b/mods/technic/technic/textures/technic_mining_laser_mkS21.png new file mode 100644 index 0000000..425541b Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS21.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS22.png b/mods/technic/technic/textures/technic_mining_laser_mkS22.png new file mode 100644 index 0000000..b1ead0c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS22.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS23.png b/mods/technic/technic/textures/technic_mining_laser_mkS23.png new file mode 100644 index 0000000..1bba3e2 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS23.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS24.png b/mods/technic/technic/textures/technic_mining_laser_mkS24.png new file mode 100644 index 0000000..8b33080 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS24.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS25.png b/mods/technic/technic/textures/technic_mining_laser_mkS25.png new file mode 100644 index 0000000..7bd9e61 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS25.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS26.png b/mods/technic/technic/textures/technic_mining_laser_mkS26.png new file mode 100644 index 0000000..4bd928c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS26.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS27.png b/mods/technic/technic/textures/technic_mining_laser_mkS27.png new file mode 100644 index 0000000..ead8f18 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS27.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS28.png b/mods/technic/technic/textures/technic_mining_laser_mkS28.png new file mode 100644 index 0000000..ee27de1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS28.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS29.png b/mods/technic/technic/textures/technic_mining_laser_mkS29.png new file mode 100644 index 0000000..7bf16fc Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS29.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS3.png b/mods/technic/technic/textures/technic_mining_laser_mkS3.png new file mode 100644 index 0000000..eb3b5ec Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS3.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS30.png b/mods/technic/technic/textures/technic_mining_laser_mkS30.png new file mode 100644 index 0000000..c6796d2 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS30.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS31.png b/mods/technic/technic/textures/technic_mining_laser_mkS31.png new file mode 100644 index 0000000..c125a1b Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS31.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS32.png b/mods/technic/technic/textures/technic_mining_laser_mkS32.png new file mode 100644 index 0000000..52c2733 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS32.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS33.png b/mods/technic/technic/textures/technic_mining_laser_mkS33.png new file mode 100644 index 0000000..c6d79c6 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS33.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS34.png b/mods/technic/technic/textures/technic_mining_laser_mkS34.png new file mode 100644 index 0000000..e8f19f0 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS34.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS35.png b/mods/technic/technic/textures/technic_mining_laser_mkS35.png new file mode 100644 index 0000000..5ac0005 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS35.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS36.png b/mods/technic/technic/textures/technic_mining_laser_mkS36.png new file mode 100644 index 0000000..e6a7226 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS36.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS37.png b/mods/technic/technic/textures/technic_mining_laser_mkS37.png new file mode 100644 index 0000000..1ca02d8 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS37.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS38.png b/mods/technic/technic/textures/technic_mining_laser_mkS38.png new file mode 100644 index 0000000..a3fdbe8 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS38.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS39.png b/mods/technic/technic/textures/technic_mining_laser_mkS39.png new file mode 100644 index 0000000..e2514f7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS39.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS4.png b/mods/technic/technic/textures/technic_mining_laser_mkS4.png new file mode 100644 index 0000000..5be50ad Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS4.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS40.png b/mods/technic/technic/textures/technic_mining_laser_mkS40.png new file mode 100644 index 0000000..a1fdac8 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS40.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS41.png b/mods/technic/technic/textures/technic_mining_laser_mkS41.png new file mode 100644 index 0000000..2b634da Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS41.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS42.png b/mods/technic/technic/textures/technic_mining_laser_mkS42.png new file mode 100644 index 0000000..9a18e3d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS42.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS43.png b/mods/technic/technic/textures/technic_mining_laser_mkS43.png new file mode 100644 index 0000000..f6ab039 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS43.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS44.png b/mods/technic/technic/textures/technic_mining_laser_mkS44.png new file mode 100644 index 0000000..8e5da7e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS44.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS45.png b/mods/technic/technic/textures/technic_mining_laser_mkS45.png new file mode 100644 index 0000000..ff75614 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS45.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS46.png b/mods/technic/technic/textures/technic_mining_laser_mkS46.png new file mode 100644 index 0000000..2a3d03f Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS46.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS47.png b/mods/technic/technic/textures/technic_mining_laser_mkS47.png new file mode 100644 index 0000000..ef22983 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS47.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS48.png b/mods/technic/technic/textures/technic_mining_laser_mkS48.png new file mode 100644 index 0000000..7f092dd Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS48.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS49.png b/mods/technic/technic/textures/technic_mining_laser_mkS49.png new file mode 100644 index 0000000..31bbd1c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS49.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS5.png b/mods/technic/technic/textures/technic_mining_laser_mkS5.png new file mode 100644 index 0000000..2f71ea9 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS5.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS50.png b/mods/technic/technic/textures/technic_mining_laser_mkS50.png new file mode 100644 index 0000000..0fc46cf Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS50.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS51.png b/mods/technic/technic/textures/technic_mining_laser_mkS51.png new file mode 100644 index 0000000..e15a8c6 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS51.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS52.png b/mods/technic/technic/textures/technic_mining_laser_mkS52.png new file mode 100644 index 0000000..35c3410 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS52.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS53.png b/mods/technic/technic/textures/technic_mining_laser_mkS53.png new file mode 100644 index 0000000..161cf9e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS53.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS54.png b/mods/technic/technic/textures/technic_mining_laser_mkS54.png new file mode 100644 index 0000000..d94b301 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS54.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS55.png b/mods/technic/technic/textures/technic_mining_laser_mkS55.png new file mode 100644 index 0000000..dc5f4e9 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS55.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS56.png b/mods/technic/technic/textures/technic_mining_laser_mkS56.png new file mode 100644 index 0000000..38b13ff Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS56.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS57.png b/mods/technic/technic/textures/technic_mining_laser_mkS57.png new file mode 100644 index 0000000..2802436 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS57.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS58.png b/mods/technic/technic/textures/technic_mining_laser_mkS58.png new file mode 100644 index 0000000..e31003e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS58.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS59.png b/mods/technic/technic/textures/technic_mining_laser_mkS59.png new file mode 100644 index 0000000..f2175af Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS59.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS6.png b/mods/technic/technic/textures/technic_mining_laser_mkS6.png new file mode 100644 index 0000000..e2bd77a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS6.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS60.png b/mods/technic/technic/textures/technic_mining_laser_mkS60.png new file mode 100644 index 0000000..3d07cbb Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS60.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS61.png b/mods/technic/technic/textures/technic_mining_laser_mkS61.png new file mode 100644 index 0000000..43c90f6 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS61.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS62.png b/mods/technic/technic/textures/technic_mining_laser_mkS62.png new file mode 100644 index 0000000..f0810c8 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS62.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS63.png b/mods/technic/technic/textures/technic_mining_laser_mkS63.png new file mode 100644 index 0000000..c2c9001 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS63.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS64.png b/mods/technic/technic/textures/technic_mining_laser_mkS64.png new file mode 100644 index 0000000..2088a5c Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS64.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS65.png b/mods/technic/technic/textures/technic_mining_laser_mkS65.png new file mode 100644 index 0000000..4f59715 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS65.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS66.png b/mods/technic/technic/textures/technic_mining_laser_mkS66.png new file mode 100644 index 0000000..218ff6b Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS66.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS67.png b/mods/technic/technic/textures/technic_mining_laser_mkS67.png new file mode 100644 index 0000000..15dbcde Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS67.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS68.png b/mods/technic/technic/textures/technic_mining_laser_mkS68.png new file mode 100644 index 0000000..cf1fda5 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS68.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS69.png b/mods/technic/technic/textures/technic_mining_laser_mkS69.png new file mode 100644 index 0000000..3fcd7da Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS69.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS7.png b/mods/technic/technic/textures/technic_mining_laser_mkS7.png new file mode 100644 index 0000000..9e2d024 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS7.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS70.png b/mods/technic/technic/textures/technic_mining_laser_mkS70.png new file mode 100644 index 0000000..78f4ec8 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS70.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS71.png b/mods/technic/technic/textures/technic_mining_laser_mkS71.png new file mode 100644 index 0000000..fd8fe34 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS71.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS72.png b/mods/technic/technic/textures/technic_mining_laser_mkS72.png new file mode 100644 index 0000000..01350f4 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS72.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS73.png b/mods/technic/technic/textures/technic_mining_laser_mkS73.png new file mode 100644 index 0000000..e87d1de Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS73.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS74.png b/mods/technic/technic/textures/technic_mining_laser_mkS74.png new file mode 100644 index 0000000..44d381d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS74.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS75.png b/mods/technic/technic/textures/technic_mining_laser_mkS75.png new file mode 100644 index 0000000..09842d6 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS75.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS76.png b/mods/technic/technic/textures/technic_mining_laser_mkS76.png new file mode 100644 index 0000000..c519b1e Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS76.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS77.png b/mods/technic/technic/textures/technic_mining_laser_mkS77.png new file mode 100644 index 0000000..fc9982d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS77.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS78.png b/mods/technic/technic/textures/technic_mining_laser_mkS78.png new file mode 100644 index 0000000..edb51a1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS78.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS79.png b/mods/technic/technic/textures/technic_mining_laser_mkS79.png new file mode 100644 index 0000000..9578ea4 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS79.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS8.png b/mods/technic/technic/textures/technic_mining_laser_mkS8.png new file mode 100644 index 0000000..eb56176 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS8.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS80.png b/mods/technic/technic/textures/technic_mining_laser_mkS80.png new file mode 100644 index 0000000..9716daa Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS80.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS81.png b/mods/technic/technic/textures/technic_mining_laser_mkS81.png new file mode 100644 index 0000000..16f6b4a Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS81.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS82.png b/mods/technic/technic/textures/technic_mining_laser_mkS82.png new file mode 100644 index 0000000..678c938 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS82.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS83.png b/mods/technic/technic/textures/technic_mining_laser_mkS83.png new file mode 100644 index 0000000..d4970be Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS83.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS84.png b/mods/technic/technic/textures/technic_mining_laser_mkS84.png new file mode 100644 index 0000000..220c6df Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS84.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS85.png b/mods/technic/technic/textures/technic_mining_laser_mkS85.png new file mode 100644 index 0000000..71388f9 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS85.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS86.png b/mods/technic/technic/textures/technic_mining_laser_mkS86.png new file mode 100644 index 0000000..6a48daa Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS86.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS87.png b/mods/technic/technic/textures/technic_mining_laser_mkS87.png new file mode 100644 index 0000000..b3c9181 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS87.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS88.png b/mods/technic/technic/textures/technic_mining_laser_mkS88.png new file mode 100644 index 0000000..9261114 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS88.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS89.png b/mods/technic/technic/textures/technic_mining_laser_mkS89.png new file mode 100644 index 0000000..c6efdf8 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS89.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS9.png b/mods/technic/technic/textures/technic_mining_laser_mkS9.png new file mode 100644 index 0000000..335bcab Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS9.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS90.png b/mods/technic/technic/textures/technic_mining_laser_mkS90.png new file mode 100644 index 0000000..4615351 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS90.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS91.png b/mods/technic/technic/textures/technic_mining_laser_mkS91.png new file mode 100644 index 0000000..0e03542 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS91.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS92.png b/mods/technic/technic/textures/technic_mining_laser_mkS92.png new file mode 100644 index 0000000..973f533 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS92.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS93.png b/mods/technic/technic/textures/technic_mining_laser_mkS93.png new file mode 100644 index 0000000..fa0403f Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS93.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS94.png b/mods/technic/technic/textures/technic_mining_laser_mkS94.png new file mode 100644 index 0000000..d92fa0f Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS94.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS95.png b/mods/technic/technic/textures/technic_mining_laser_mkS95.png new file mode 100644 index 0000000..27ee697 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS95.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS96.png b/mods/technic/technic/textures/technic_mining_laser_mkS96.png new file mode 100644 index 0000000..dd4a00f Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS96.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS97.png b/mods/technic/technic/textures/technic_mining_laser_mkS97.png new file mode 100644 index 0000000..2275d44 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS97.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS98.png b/mods/technic/technic/textures/technic_mining_laser_mkS98.png new file mode 100644 index 0000000..d4a31cd Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS98.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkS99.png b/mods/technic/technic/textures/technic_mining_laser_mkS99.png new file mode 100644 index 0000000..cae5183 Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkS99.png differ diff --git a/mods/technic/technic/textures/technic_mining_laser_mkSMAX.png b/mods/technic/technic/textures/technic_mining_laser_mkSMAX.png new file mode 100644 index 0000000..f88c54d Binary files /dev/null and b/mods/technic/technic/textures/technic_mining_laser_mkSMAX.png differ diff --git a/mods/technic/technic/textures/technic_mithril_dust.png b/mods/technic/technic/textures/technic_mithril_dust.png new file mode 100644 index 0000000..adfbe6c Binary files /dev/null and b/mods/technic/technic/textures/technic_mithril_dust.png differ diff --git a/mods/technic/technic/textures/technic_mixed_metal_ingot.png b/mods/technic/technic/textures/technic_mixed_metal_ingot.png new file mode 100644 index 0000000..8f6847b Binary files /dev/null and b/mods/technic/technic/textures/technic_mixed_metal_ingot.png differ diff --git a/mods/technic/technic/textures/technic_motor.png b/mods/technic/technic/textures/technic_motor.png new file mode 100644 index 0000000..77d4b91 Binary files /dev/null and b/mods/technic/technic/textures/technic_motor.png differ diff --git a/mods/technic/technic/textures/technic_music_player_bottom.png b/mods/technic/technic/textures/technic_music_player_bottom.png new file mode 100644 index 0000000..bd8fd55 Binary files /dev/null and b/mods/technic/technic/textures/technic_music_player_bottom.png differ diff --git a/mods/technic/technic/textures/technic_music_player_side.png b/mods/technic/technic/textures/technic_music_player_side.png new file mode 100644 index 0000000..6c34fea Binary files /dev/null and b/mods/technic/technic/textures/technic_music_player_side.png differ diff --git a/mods/technic/technic/textures/technic_music_player_top.png b/mods/technic/technic/textures/technic_music_player_top.png new file mode 100644 index 0000000..0d34563 Binary files /dev/null and b/mods/technic/technic/textures/technic_music_player_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_alloy_furnace_bottom.png b/mods/technic/technic/textures/technic_mv_alloy_furnace_bottom.png new file mode 100644 index 0000000..2c0aaee Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_alloy_furnace_bottom.png differ diff --git a/mods/technic/technic/textures/technic_mv_alloy_furnace_front.png b/mods/technic/technic/textures/technic_mv_alloy_furnace_front.png new file mode 100644 index 0000000..a5dac82 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_alloy_furnace_front.png differ diff --git a/mods/technic/technic/textures/technic_mv_alloy_furnace_front_active.png b/mods/technic/technic/textures/technic_mv_alloy_furnace_front_active.png new file mode 100644 index 0000000..f6e69a9 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_alloy_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technic_mv_alloy_furnace_side.png b/mods/technic/technic/textures/technic_mv_alloy_furnace_side.png new file mode 100644 index 0000000..0430479 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_alloy_furnace_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_alloy_furnace_side_tube.png b/mods/technic/technic/textures/technic_mv_alloy_furnace_side_tube.png new file mode 100644 index 0000000..1800eed Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_alloy_furnace_side_tube.png differ diff --git a/mods/technic/technic/textures/technic_mv_alloy_furnace_top.png b/mods/technic/technic/textures/technic_mv_alloy_furnace_top.png new file mode 100644 index 0000000..f44e3c0 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_alloy_furnace_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_battery_box_bottom.png b/mods/technic/technic/textures/technic_mv_battery_box_bottom.png new file mode 100644 index 0000000..a610660 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_battery_box_bottom.png differ diff --git a/mods/technic/technic/textures/technic_mv_battery_box_side.png b/mods/technic/technic/textures/technic_mv_battery_box_side.png new file mode 100644 index 0000000..06a4be5 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_battery_box_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_battery_box_top.png b/mods/technic/technic/textures/technic_mv_battery_box_top.png new file mode 100644 index 0000000..b32100f Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_battery_box_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_cable.png b/mods/technic/technic/textures/technic_mv_cable.png new file mode 100644 index 0000000..2819d2b Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_cable.png differ diff --git a/mods/technic/technic/textures/technic_mv_cable_wield.png b/mods/technic/technic/textures/technic_mv_cable_wield.png new file mode 100644 index 0000000..2d41e27 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_cable_wield.png differ diff --git a/mods/technic/technic/textures/technic_mv_centrifuge_bottom.png b/mods/technic/technic/textures/technic_mv_centrifuge_bottom.png new file mode 100644 index 0000000..6dcd40f Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_centrifuge_bottom.png differ diff --git a/mods/technic/technic/textures/technic_mv_centrifuge_front.png b/mods/technic/technic/textures/technic_mv_centrifuge_front.png new file mode 100644 index 0000000..e278a33 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_centrifuge_front.png differ diff --git a/mods/technic/technic/textures/technic_mv_centrifuge_front_active.png b/mods/technic/technic/textures/technic_mv_centrifuge_front_active.png new file mode 100644 index 0000000..4cef912 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_centrifuge_front_active.png differ diff --git a/mods/technic/technic/textures/technic_mv_centrifuge_side.png b/mods/technic/technic/textures/technic_mv_centrifuge_side.png new file mode 100644 index 0000000..eeef44a Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_centrifuge_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_centrifuge_top.png b/mods/technic/technic/textures/technic_mv_centrifuge_top.png new file mode 100644 index 0000000..813bbf8 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_centrifuge_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_compressor_back.png b/mods/technic/technic/textures/technic_mv_compressor_back.png new file mode 100644 index 0000000..11286e3 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_compressor_back.png differ diff --git a/mods/technic/technic/textures/technic_mv_compressor_bottom.png b/mods/technic/technic/textures/technic_mv_compressor_bottom.png new file mode 100644 index 0000000..886f27e Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_compressor_bottom.png differ diff --git a/mods/technic/technic/textures/technic_mv_compressor_front.png b/mods/technic/technic/textures/technic_mv_compressor_front.png new file mode 100644 index 0000000..007d6de Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_compressor_front.png differ diff --git a/mods/technic/technic/textures/technic_mv_compressor_front_active.png b/mods/technic/technic/textures/technic_mv_compressor_front_active.png new file mode 100644 index 0000000..b3d27c0 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_compressor_front_active.png differ diff --git a/mods/technic/technic/textures/technic_mv_compressor_side.png b/mods/technic/technic/textures/technic_mv_compressor_side.png new file mode 100644 index 0000000..87acda6 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_compressor_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_compressor_top.png b/mods/technic/technic/textures/technic_mv_compressor_top.png new file mode 100644 index 0000000..786b859 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_compressor_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_down_converter_bottom.png b/mods/technic/technic/textures/technic_mv_down_converter_bottom.png new file mode 100644 index 0000000..a610660 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_down_converter_bottom.png differ diff --git a/mods/technic/technic/textures/technic_mv_down_converter_side.png b/mods/technic/technic/textures/technic_mv_down_converter_side.png new file mode 100644 index 0000000..6492d5c Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_down_converter_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_down_converter_top.png b/mods/technic/technic/textures/technic_mv_down_converter_top.png new file mode 100644 index 0000000..a610660 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_down_converter_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_electric_furnace_bottom.png b/mods/technic/technic/textures/technic_mv_electric_furnace_bottom.png new file mode 100644 index 0000000..e2e445e Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_electric_furnace_bottom.png differ diff --git a/mods/technic/technic/textures/technic_mv_electric_furnace_front.png b/mods/technic/technic/textures/technic_mv_electric_furnace_front.png new file mode 100644 index 0000000..81c33cf Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_electric_furnace_front.png differ diff --git a/mods/technic/technic/textures/technic_mv_electric_furnace_front_active.png b/mods/technic/technic/textures/technic_mv_electric_furnace_front_active.png new file mode 100644 index 0000000..2523f0e Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_electric_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technic_mv_electric_furnace_side.png b/mods/technic/technic/textures/technic_mv_electric_furnace_side.png new file mode 100644 index 0000000..cd22a73 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_electric_furnace_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_electric_furnace_side_tube.png b/mods/technic/technic/textures/technic_mv_electric_furnace_side_tube.png new file mode 100644 index 0000000..bfeba18 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_electric_furnace_side_tube.png differ diff --git a/mods/technic/technic/textures/technic_mv_electric_furnace_top.png b/mods/technic/technic/textures/technic_mv_electric_furnace_top.png new file mode 100644 index 0000000..635b6b7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_electric_furnace_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_extractor_bottom.png b/mods/technic/technic/textures/technic_mv_extractor_bottom.png new file mode 100644 index 0000000..70f34ee Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_extractor_bottom.png differ diff --git a/mods/technic/technic/textures/technic_mv_extractor_front.png b/mods/technic/technic/textures/technic_mv_extractor_front.png new file mode 100644 index 0000000..18648c2 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_extractor_front.png differ diff --git a/mods/technic/technic/textures/technic_mv_extractor_front_active.png b/mods/technic/technic/textures/technic_mv_extractor_front_active.png new file mode 100644 index 0000000..ee86ade Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_extractor_front_active.png differ diff --git a/mods/technic/technic/textures/technic_mv_extractor_side.png b/mods/technic/technic/textures/technic_mv_extractor_side.png new file mode 100644 index 0000000..cbe3673 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_extractor_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_extractor_top.png b/mods/technic/technic/textures/technic_mv_extractor_top.png new file mode 100644 index 0000000..2259d64 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_extractor_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_generator_front.png b/mods/technic/technic/textures/technic_mv_generator_front.png new file mode 100644 index 0000000..570e0c5 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_generator_front.png differ diff --git a/mods/technic/technic/textures/technic_mv_generator_front_active.png b/mods/technic/technic/textures/technic_mv_generator_front_active.png new file mode 100644 index 0000000..3006a17 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_generator_front_active.png differ diff --git a/mods/technic/technic/textures/technic_mv_generator_side.png b/mods/technic/technic/textures/technic_mv_generator_side.png new file mode 100644 index 0000000..21c0d41 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_generator_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_generator_top.png b/mods/technic/technic/textures/technic_mv_generator_top.png new file mode 100644 index 0000000..7afa5a1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_generator_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_grinder_bottom.png b/mods/technic/technic/textures/technic_mv_grinder_bottom.png new file mode 100644 index 0000000..70f34ee Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_grinder_bottom.png differ diff --git a/mods/technic/technic/textures/technic_mv_grinder_front.png b/mods/technic/technic/textures/technic_mv_grinder_front.png new file mode 100644 index 0000000..18648c2 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_grinder_front.png differ diff --git a/mods/technic/technic/textures/technic_mv_grinder_front_active.png b/mods/technic/technic/textures/technic_mv_grinder_front_active.png new file mode 100644 index 0000000..ee86ade Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_grinder_front_active.png differ diff --git a/mods/technic/technic/textures/technic_mv_grinder_side.png b/mods/technic/technic/textures/technic_mv_grinder_side.png new file mode 100644 index 0000000..cbe3673 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_grinder_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_grinder_side_tube.png b/mods/technic/technic/textures/technic_mv_grinder_side_tube.png new file mode 100644 index 0000000..196b7c1 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_grinder_side_tube.png differ diff --git a/mods/technic/technic/textures/technic_mv_grinder_top.png b/mods/technic/technic/textures/technic_mv_grinder_top.png new file mode 100644 index 0000000..2259d64 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_grinder_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_solar_array_bottom.png b/mods/technic/technic/textures/technic_mv_solar_array_bottom.png new file mode 100644 index 0000000..596e79a Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_solar_array_bottom.png differ diff --git a/mods/technic/technic/textures/technic_mv_solar_array_side.png b/mods/technic/technic/textures/technic_mv_solar_array_side.png new file mode 100644 index 0000000..917b9ed Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_solar_array_side.png differ diff --git a/mods/technic/technic/textures/technic_mv_solar_array_top.png b/mods/technic/technic/textures/technic_mv_solar_array_top.png new file mode 100644 index 0000000..cdb7cf7 Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_solar_array_top.png differ diff --git a/mods/technic/technic/textures/technic_mv_transformer.png b/mods/technic/technic/textures/technic_mv_transformer.png new file mode 100644 index 0000000..7c4688e Binary files /dev/null and b/mods/technic/technic/textures/technic_mv_transformer.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_back.png b/mods/technic/technic/textures/technic_nodebreaker_back.png new file mode 100644 index 0000000..0af7422 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_back.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_bottom.png b/mods/technic/technic/textures/technic_nodebreaker_bottom.png new file mode 100644 index 0000000..ff1a2c6 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_bottom.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_bottom_off.png b/mods/technic/technic/textures/technic_nodebreaker_bottom_off.png new file mode 100644 index 0000000..0f456eb Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_bottom_off.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_bottom_on.png b/mods/technic/technic/textures/technic_nodebreaker_bottom_on.png new file mode 100644 index 0000000..6c4811a Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_bottom_on.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_front_off.png b/mods/technic/technic/textures/technic_nodebreaker_front_off.png new file mode 100644 index 0000000..488fd0a Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_front_off.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_front_on.png b/mods/technic/technic/textures/technic_nodebreaker_front_on.png new file mode 100644 index 0000000..4904e8b Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_front_on.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_side.png b/mods/technic/technic/textures/technic_nodebreaker_side.png new file mode 100644 index 0000000..aefd7c8 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_side.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_side1.png b/mods/technic/technic/textures/technic_nodebreaker_side1.png new file mode 100644 index 0000000..8cb8634 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_side1.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_side1_off.png b/mods/technic/technic/textures/technic_nodebreaker_side1_off.png new file mode 100644 index 0000000..857face Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_side1_off.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_side1_on.png b/mods/technic/technic/textures/technic_nodebreaker_side1_on.png new file mode 100644 index 0000000..c756f09 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_side1_on.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_side2.png b/mods/technic/technic/textures/technic_nodebreaker_side2.png new file mode 100644 index 0000000..c2855d0 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_side2.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_side2_off.png b/mods/technic/technic/textures/technic_nodebreaker_side2_off.png new file mode 100644 index 0000000..4c62f98 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_side2_off.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_side2_on.png b/mods/technic/technic/textures/technic_nodebreaker_side2_on.png new file mode 100644 index 0000000..b9e4823 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_side2_on.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_top.png b/mods/technic/technic/textures/technic_nodebreaker_top.png new file mode 100644 index 0000000..941d333 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_top.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_top_off.png b/mods/technic/technic/textures/technic_nodebreaker_top_off.png new file mode 100644 index 0000000..9139afe Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_top_off.png differ diff --git a/mods/technic/technic/textures/technic_nodebreaker_top_on.png b/mods/technic/technic/textures/technic_nodebreaker_top_on.png new file mode 100644 index 0000000..4b0a661 Binary files /dev/null and b/mods/technic/technic/textures/technic_nodebreaker_top_on.png differ diff --git a/mods/technic/technic/textures/technic_power_meter.png b/mods/technic/technic/textures/technic_power_meter.png new file mode 100644 index 0000000..f1e5120 Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter.png differ diff --git a/mods/technic/technic/textures/technic_power_meter0.png b/mods/technic/technic/textures/technic_power_meter0.png new file mode 100644 index 0000000..1b1e662 Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter0.png differ diff --git a/mods/technic/technic/textures/technic_power_meter1.png b/mods/technic/technic/textures/technic_power_meter1.png new file mode 100644 index 0000000..eb6be3b Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter1.png differ diff --git a/mods/technic/technic/textures/technic_power_meter2.png b/mods/technic/technic/textures/technic_power_meter2.png new file mode 100644 index 0000000..e3a3772 Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter2.png differ diff --git a/mods/technic/technic/textures/technic_power_meter3.png b/mods/technic/technic/textures/technic_power_meter3.png new file mode 100644 index 0000000..6333035 Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter3.png differ diff --git a/mods/technic/technic/textures/technic_power_meter4.png b/mods/technic/technic/textures/technic_power_meter4.png new file mode 100644 index 0000000..6346dbd Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter4.png differ diff --git a/mods/technic/technic/textures/technic_power_meter5.png b/mods/technic/technic/textures/technic_power_meter5.png new file mode 100644 index 0000000..80f79c6 Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter5.png differ diff --git a/mods/technic/technic/textures/technic_power_meter6.png b/mods/technic/technic/textures/technic_power_meter6.png new file mode 100644 index 0000000..fe91bf5 Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter6.png differ diff --git a/mods/technic/technic/textures/technic_power_meter7.png b/mods/technic/technic/textures/technic_power_meter7.png new file mode 100644 index 0000000..e02dd6d Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter7.png differ diff --git a/mods/technic/technic/textures/technic_power_meter8.png b/mods/technic/technic/textures/technic_power_meter8.png new file mode 100644 index 0000000..a12064c Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter8.png differ diff --git a/mods/technic/technic/textures/technic_power_meter_bg.png b/mods/technic/technic/textures/technic_power_meter_bg.png new file mode 100644 index 0000000..9667cda Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter_bg.png differ diff --git a/mods/technic/technic/textures/technic_power_meter_fg.png b/mods/technic/technic/textures/technic_power_meter_fg.png new file mode 100644 index 0000000..7f2dde8 Binary files /dev/null and b/mods/technic/technic/textures/technic_power_meter_fg.png differ diff --git a/mods/technic/technic/textures/technic_prospector.png b/mods/technic/technic/textures/technic_prospector.png new file mode 100644 index 0000000..2f9ee6c Binary files /dev/null and b/mods/technic/technic/textures/technic_prospector.png differ diff --git a/mods/technic/technic/textures/technic_raw_latex.png b/mods/technic/technic/textures/technic_raw_latex.png new file mode 100644 index 0000000..49bb11b Binary files /dev/null and b/mods/technic/technic/textures/technic_raw_latex.png differ diff --git a/mods/technic/technic/textures/technic_rubber.png b/mods/technic/technic/textures/technic_rubber.png new file mode 100644 index 0000000..9ed4a9d Binary files /dev/null and b/mods/technic/technic/textures/technic_rubber.png differ diff --git a/mods/technic/technic/textures/technic_rubber_leaves.png b/mods/technic/technic/textures/technic_rubber_leaves.png new file mode 100644 index 0000000..ae013e0 Binary files /dev/null and b/mods/technic/technic/textures/technic_rubber_leaves.png differ diff --git a/mods/technic/technic/textures/technic_rubber_sapling.png b/mods/technic/technic/textures/technic_rubber_sapling.png new file mode 100644 index 0000000..e5c9f5d Binary files /dev/null and b/mods/technic/technic/textures/technic_rubber_sapling.png differ diff --git a/mods/technic/technic/textures/technic_rubber_tree_empty.png b/mods/technic/technic/textures/technic_rubber_tree_empty.png new file mode 100644 index 0000000..1792951 Binary files /dev/null and b/mods/technic/technic/textures/technic_rubber_tree_empty.png differ diff --git a/mods/technic/technic/textures/technic_rubber_tree_full.png b/mods/technic/technic/textures/technic_rubber_tree_full.png new file mode 100644 index 0000000..08067ef Binary files /dev/null and b/mods/technic/technic/textures/technic_rubber_tree_full.png differ diff --git a/mods/technic/technic/textures/technic_screwdriver.png b/mods/technic/technic/textures/technic_screwdriver.png new file mode 100644 index 0000000..bd2da22 Binary files /dev/null and b/mods/technic/technic/textures/technic_screwdriver.png differ diff --git a/mods/technic/technic/textures/technic_silicon_wafer.png b/mods/technic/technic/textures/technic_silicon_wafer.png new file mode 100644 index 0000000..78aef20 Binary files /dev/null and b/mods/technic/technic/textures/technic_silicon_wafer.png differ diff --git a/mods/technic/technic/textures/technic_silver_dust.png b/mods/technic/technic/textures/technic_silver_dust.png new file mode 100644 index 0000000..19a5754 Binary files /dev/null and b/mods/technic/technic/textures/technic_silver_dust.png differ diff --git a/mods/technic/technic/textures/technic_solar_panel_bottom.png b/mods/technic/technic/textures/technic_solar_panel_bottom.png new file mode 100644 index 0000000..9e888e3 Binary files /dev/null and b/mods/technic/technic/textures/technic_solar_panel_bottom.png differ diff --git a/mods/technic/technic/textures/technic_solar_panel_side.png b/mods/technic/technic/textures/technic_solar_panel_side.png new file mode 100644 index 0000000..b22447e Binary files /dev/null and b/mods/technic/technic/textures/technic_solar_panel_side.png differ diff --git a/mods/technic/technic/textures/technic_solar_panel_top.png b/mods/technic/technic/textures/technic_solar_panel_top.png new file mode 100644 index 0000000..492764b Binary files /dev/null and b/mods/technic/technic/textures/technic_solar_panel_top.png differ diff --git a/mods/technic/technic/textures/technic_sonic_screwdriver.png b/mods/technic/technic/textures/technic_sonic_screwdriver.png new file mode 100644 index 0000000..9b26b81 Binary files /dev/null and b/mods/technic/technic/textures/technic_sonic_screwdriver.png differ diff --git a/mods/technic/technic/textures/technic_stainless_steel_dust.png b/mods/technic/technic/textures/technic_stainless_steel_dust.png new file mode 100644 index 0000000..6398be8 Binary files /dev/null and b/mods/technic/technic/textures/technic_stainless_steel_dust.png differ diff --git a/mods/technic/technic/textures/technic_stainless_steel_ingot.png b/mods/technic/technic/textures/technic_stainless_steel_ingot.png new file mode 100644 index 0000000..7ec5e00 Binary files /dev/null and b/mods/technic/technic/textures/technic_stainless_steel_ingot.png differ diff --git a/mods/technic/technic/textures/technic_supply_converter_bottom.png b/mods/technic/technic/textures/technic_supply_converter_bottom.png new file mode 100644 index 0000000..a610660 Binary files /dev/null and b/mods/technic/technic/textures/technic_supply_converter_bottom.png differ diff --git a/mods/technic/technic/textures/technic_supply_converter_side.png b/mods/technic/technic/textures/technic_supply_converter_side.png new file mode 100644 index 0000000..6492d5c Binary files /dev/null and b/mods/technic/technic/textures/technic_supply_converter_side.png differ diff --git a/mods/technic/technic/textures/technic_supply_converter_top.png b/mods/technic/technic/textures/technic_supply_converter_top.png new file mode 100644 index 0000000..a610660 Binary files /dev/null and b/mods/technic/technic/textures/technic_supply_converter_top.png differ diff --git a/mods/technic/technic/textures/technic_talinite_dust.png b/mods/technic/technic/textures/technic_talinite_dust.png new file mode 100644 index 0000000..f228206 Binary files /dev/null and b/mods/technic/technic/textures/technic_talinite_dust.png differ diff --git a/mods/technic/technic/textures/technic_tin_dust.png b/mods/technic/technic/textures/technic_tin_dust.png new file mode 100644 index 0000000..98e6f3f Binary files /dev/null and b/mods/technic/technic/textures/technic_tin_dust.png differ diff --git a/mods/technic/technic/textures/technic_tool_mode1.png b/mods/technic/technic/textures/technic_tool_mode1.png new file mode 100644 index 0000000..571dbe5 Binary files /dev/null and b/mods/technic/technic/textures/technic_tool_mode1.png differ diff --git a/mods/technic/technic/textures/technic_tool_mode2.png b/mods/technic/technic/textures/technic_tool_mode2.png new file mode 100644 index 0000000..891aa82 Binary files /dev/null and b/mods/technic/technic/textures/technic_tool_mode2.png differ diff --git a/mods/technic/technic/textures/technic_tool_mode3.png b/mods/technic/technic/textures/technic_tool_mode3.png new file mode 100644 index 0000000..cd099a7 Binary files /dev/null and b/mods/technic/technic/textures/technic_tool_mode3.png differ diff --git a/mods/technic/technic/textures/technic_tool_mode4.png b/mods/technic/technic/textures/technic_tool_mode4.png new file mode 100644 index 0000000..62f50d7 Binary files /dev/null and b/mods/technic/technic/textures/technic_tool_mode4.png differ diff --git a/mods/technic/technic/textures/technic_tool_mode5.png b/mods/technic/technic/textures/technic_tool_mode5.png new file mode 100644 index 0000000..c918314 Binary files /dev/null and b/mods/technic/technic/textures/technic_tool_mode5.png differ diff --git a/mods/technic/technic/textures/technic_tool_mode6.png b/mods/technic/technic/textures/technic_tool_mode6.png new file mode 100644 index 0000000..9268f47 Binary files /dev/null and b/mods/technic/technic/textures/technic_tool_mode6.png differ diff --git a/mods/technic/technic/textures/technic_tool_mode7.png b/mods/technic/technic/textures/technic_tool_mode7.png new file mode 100644 index 0000000..5ba572a Binary files /dev/null and b/mods/technic/technic/textures/technic_tool_mode7.png differ diff --git a/mods/technic/technic/textures/technic_tool_mode8.png b/mods/technic/technic/textures/technic_tool_mode8.png new file mode 100644 index 0000000..b2655b6 Binary files /dev/null and b/mods/technic/technic/textures/technic_tool_mode8.png differ diff --git a/mods/technic/technic/textures/technic_tool_mode9.png b/mods/technic/technic/textures/technic_tool_mode9.png new file mode 100644 index 0000000..2077afb Binary files /dev/null and b/mods/technic/technic/textures/technic_tool_mode9.png differ diff --git a/mods/technic/technic/textures/technic_tree_tap.png b/mods/technic/technic/textures/technic_tree_tap.png new file mode 100644 index 0000000..542f30f Binary files /dev/null and b/mods/technic/technic/textures/technic_tree_tap.png differ diff --git a/mods/technic/technic/textures/technic_uranium_dust.png b/mods/technic/technic/textures/technic_uranium_dust.png new file mode 100644 index 0000000..9c211dc Binary files /dev/null and b/mods/technic/technic/textures/technic_uranium_dust.png differ diff --git a/mods/technic/technic/textures/technic_uranium_fuel.png b/mods/technic/technic/textures/technic_uranium_fuel.png new file mode 100644 index 0000000..0a32c62 Binary files /dev/null and b/mods/technic/technic/textures/technic_uranium_fuel.png differ diff --git a/mods/technic/technic/textures/technic_water_can.png b/mods/technic/technic/textures/technic_water_can.png new file mode 100644 index 0000000..eec75db Binary files /dev/null and b/mods/technic/technic/textures/technic_water_can.png differ diff --git a/mods/technic/technic/textures/technic_water_mill_side.png b/mods/technic/technic/textures/technic_water_mill_side.png new file mode 100644 index 0000000..f4bdb16 Binary files /dev/null and b/mods/technic/technic/textures/technic_water_mill_side.png differ diff --git a/mods/technic/technic/textures/technic_water_mill_top.png b/mods/technic/technic/textures/technic_water_mill_top.png new file mode 100644 index 0000000..601ff15 Binary files /dev/null and b/mods/technic/technic/textures/technic_water_mill_top.png differ diff --git a/mods/technic/technic/textures/technic_water_mill_top_active.png b/mods/technic/technic/textures/technic_water_mill_top_active.png new file mode 100644 index 0000000..f02bec6 Binary files /dev/null and b/mods/technic/technic/textures/technic_water_mill_top_active.png differ diff --git a/mods/technic/technic/textures/technic_workshop_bottom.png b/mods/technic/technic/textures/technic_workshop_bottom.png new file mode 100644 index 0000000..bd8fd55 Binary files /dev/null and b/mods/technic/technic/textures/technic_workshop_bottom.png differ diff --git a/mods/technic/technic/textures/technic_workshop_side.png b/mods/technic/technic/textures/technic_workshop_side.png new file mode 100644 index 0000000..9e3e7a7 Binary files /dev/null and b/mods/technic/technic/textures/technic_workshop_side.png differ diff --git a/mods/technic/technic/textures/technic_workshop_top.png b/mods/technic/technic/textures/technic_workshop_top.png new file mode 100644 index 0000000..feae141 Binary files /dev/null and b/mods/technic/technic/textures/technic_workshop_top.png differ diff --git a/mods/technic/technic/textures/technic_wrought_iron_dust.png b/mods/technic/technic/textures/technic_wrought_iron_dust.png new file mode 100644 index 0000000..ad23c62 Binary files /dev/null and b/mods/technic/technic/textures/technic_wrought_iron_dust.png differ diff --git a/mods/technic/technic/textures/technic_zinc_dust.png b/mods/technic/technic/textures/technic_zinc_dust.png new file mode 100644 index 0000000..bbd826c Binary files /dev/null and b/mods/technic/technic/textures/technic_zinc_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_akalin_dust.png b/mods/technic/technic/textures/technicx32/technic_akalin_dust.png new file mode 100644 index 0000000..90f3bac Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_akalin_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_alatro_dust.png b/mods/technic/technic/textures/technicx32/technic_alatro_dust.png new file mode 100644 index 0000000..1199614 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_alatro_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_alloy_furnace_front.png b/mods/technic/technic/textures/technicx32/technic_alloy_furnace_front.png new file mode 100644 index 0000000..9123fb6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_alloy_furnace_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_alloy_furnace_front_active.png b/mods/technic/technic/textures/technicx32/technic_alloy_furnace_front_active.png new file mode 100644 index 0000000..4dda2e6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_alloy_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_alloy_furnace_side.png b/mods/technic/technic/textures/technicx32/technic_alloy_furnace_side.png new file mode 100644 index 0000000..b5bd428 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_alloy_furnace_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_alloy_furnace_top.png b/mods/technic/technic/textures/technicx32/technic_alloy_furnace_top.png new file mode 100644 index 0000000..67ef4b7 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_alloy_furnace_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_arol_dust.png b/mods/technic/technic/textures/technicx32/technic_arol_dust.png new file mode 100644 index 0000000..f5a392f Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_arol_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_battery.png b/mods/technic/technic/textures/technicx32/technic_battery.png new file mode 100644 index 0000000..ee83b74 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_battery.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_battery_box_bottom.png b/mods/technic/technic/textures/technicx32/technic_battery_box_bottom.png new file mode 100644 index 0000000..03c7ccc Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_battery_box_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_battery_box_side0.png b/mods/technic/technic/textures/technicx32/technic_battery_box_side0.png new file mode 100644 index 0000000..2662ac0 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_battery_box_side0.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_battery_box_top.png b/mods/technic/technic/textures/technicx32/technic_battery_box_top.png new file mode 100644 index 0000000..4953a32 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_battery_box_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_battery_reload.png b/mods/technic/technic/textures/technicx32/technic_battery_reload.png new file mode 100644 index 0000000..164b4ac Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_battery_reload.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_brass_dust.png b/mods/technic/technic/textures/technicx32/technic_brass_dust.png new file mode 100644 index 0000000..f86167a Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_brass_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_bronze_dust.png b/mods/technic/technic/textures/technicx32/technic_bronze_dust.png new file mode 100644 index 0000000..0a2401e Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_bronze_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_carbon_steel_dust.png b/mods/technic/technic/textures/technicx32/technic_carbon_steel_dust.png new file mode 100644 index 0000000..0bf350f Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_carbon_steel_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_cast_iron_dust.png b/mods/technic/technic/textures/technicx32/technic_cast_iron_dust.png new file mode 100644 index 0000000..f355094 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_cast_iron_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_chainsaw.png b/mods/technic/technic/textures/technicx32/technic_chainsaw.png new file mode 100644 index 0000000..b7ceee6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_chainsaw.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_chromium_dust.png b/mods/technic/technic/textures/technicx32/technic_chromium_dust.png new file mode 100644 index 0000000..a33358b Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_chromium_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png new file mode 100644 index 0000000..7a5eed7 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front.png b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front.png new file mode 100644 index 0000000..b00bef3 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png new file mode 100644 index 0000000..b41f619 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_side.png b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_side.png new file mode 100644 index 0000000..3db8daa Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_top.png b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_top.png new file mode 100644 index 0000000..c648fe8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_coal_alloy_furnace_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_coal_dust.png b/mods/technic/technic/textures/technicx32/technic_coal_dust.png new file mode 100644 index 0000000..0fe7db7 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_coal_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_back.png b/mods/technic/technic/textures/technicx32/technic_constructor_back.png new file mode 100644 index 0000000..6baf788 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_back.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_front_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_front_off.png new file mode 100644 index 0000000..f878e55 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_front_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_front_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_front_on.png new file mode 100644 index 0000000..89189d6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_front_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_off.png new file mode 100644 index 0000000..205dcc4 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_on.png new file mode 100644 index 0000000..9896c52 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_bottom_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side1_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side1_off.png new file mode 100644 index 0000000..e8a01ff Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side1_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side1_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side1_on.png new file mode 100644 index 0000000..c897942 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side1_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side2_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side2_off.png new file mode 100644 index 0000000..8da65f6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side2_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side2_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side2_on.png new file mode 100644 index 0000000..da8ed34 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_side2_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk1_top_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_top_off.png new file mode 100644 index 0000000..7d8c7e0 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_top_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk1_top_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_top_on.png new file mode 100644 index 0000000..439caf5 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk1_top_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_off.png new file mode 100644 index 0000000..83c5b07 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_on.png new file mode 100644 index 0000000..9ad76f4 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_bottom_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side1_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side1_off.png new file mode 100644 index 0000000..584dfe3 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side1_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side1_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side1_on.png new file mode 100644 index 0000000..fe02042 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side1_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side2_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side2_off.png new file mode 100644 index 0000000..fd9ad74 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side2_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side2_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side2_on.png new file mode 100644 index 0000000..f51411a Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_side2_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk2_top_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_top_off.png new file mode 100644 index 0000000..e3e3292 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_top_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk2_top_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_top_on.png new file mode 100644 index 0000000..83043d4 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk2_top_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_off.png new file mode 100644 index 0000000..5f46154 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_on.png new file mode 100644 index 0000000..f76f29b Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_bottom_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side1_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side1_off.png new file mode 100644 index 0000000..0ea1fc0 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side1_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side1_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side1_on.png new file mode 100644 index 0000000..ba86332 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side1_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side2_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side2_off.png new file mode 100644 index 0000000..8e8dce4 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side2_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side2_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side2_on.png new file mode 100644 index 0000000..12dff69 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_side2_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk3_top_off.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_top_off.png new file mode 100644 index 0000000..705f255 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_top_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_constructor_mk3_top_on.png b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_top_on.png new file mode 100644 index 0000000..cef077e Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_constructor_mk3_top_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_control_logic_unit.png b/mods/technic/technic/textures/technicx32/technic_control_logic_unit.png new file mode 100644 index 0000000..6ed00eb Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_control_logic_unit.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_copper_coil.png b/mods/technic/technic/textures/technicx32/technic_copper_coil.png new file mode 100644 index 0000000..db6db1a Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_copper_coil.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_copper_dust.png b/mods/technic/technic/textures/technicx32/technic_copper_dust.png new file mode 100644 index 0000000..68678ed Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_copper_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_deployer_back.png b/mods/technic/technic/textures/technicx32/technic_deployer_back.png new file mode 100644 index 0000000..0bc8df9 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_deployer_back.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_deployer_bottom.png b/mods/technic/technic/textures/technicx32/technic_deployer_bottom.png new file mode 100644 index 0000000..ff1a2c6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_deployer_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_deployer_front_off.png b/mods/technic/technic/textures/technicx32/technic_deployer_front_off.png new file mode 100644 index 0000000..d0f6f55 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_deployer_front_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_deployer_front_on.png b/mods/technic/technic/textures/technicx32/technic_deployer_front_on.png new file mode 100644 index 0000000..368ce32 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_deployer_front_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_deployer_side.png b/mods/technic/technic/textures/technicx32/technic_deployer_side.png new file mode 100644 index 0000000..aefd7c8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_deployer_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_deployer_side1.png b/mods/technic/technic/textures/technicx32/technic_deployer_side1.png new file mode 100644 index 0000000..8cb8634 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_deployer_side1.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_deployer_side2.png b/mods/technic/technic/textures/technicx32/technic_deployer_side2.png new file mode 100644 index 0000000..c2855d0 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_deployer_side2.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_deployer_top.png b/mods/technic/technic/textures/technicx32/technic_deployer_top.png new file mode 100644 index 0000000..941d333 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_deployer_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_diamond_block_blue.png b/mods/technic/technic/textures/technicx32/technic_diamond_block_blue.png new file mode 100644 index 0000000..d89bd6e Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_diamond_block_blue.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_diamond_block_green.png b/mods/technic/technic/textures/technicx32/technic_diamond_block_green.png new file mode 100644 index 0000000..996b254 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_diamond_block_green.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_diamond_block_red.png b/mods/technic/technic/textures/technicx32/technic_diamond_block_red.png new file mode 100644 index 0000000..52fd893 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_diamond_block_red.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_diamond_drill_head.png b/mods/technic/technic/textures/technicx32/technic_diamond_drill_head.png new file mode 100644 index 0000000..e3d31e8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_diamond_drill_head.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_doped_silicon_wafer.png b/mods/technic/technic/textures/technicx32/technic_doped_silicon_wafer.png new file mode 100644 index 0000000..6ff06a6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_doped_silicon_wafer.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_electric_furnace_bottom.png b/mods/technic/technic/textures/technicx32/technic_electric_furnace_bottom.png new file mode 100644 index 0000000..d16ac47 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_electric_furnace_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_electric_furnace_front.png b/mods/technic/technic/textures/technicx32/technic_electric_furnace_front.png new file mode 100644 index 0000000..dfee663 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_electric_furnace_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_electric_furnace_front_active.png b/mods/technic/technic/textures/technicx32/technic_electric_furnace_front_active.png new file mode 100644 index 0000000..038eec4 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_electric_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_electric_furnace_side.png b/mods/technic/technic/textures/technicx32/technic_electric_furnace_side.png new file mode 100644 index 0000000..cf345e7 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_electric_furnace_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_electric_furnace_top.png b/mods/technic/technic/textures/technicx32/technic_electric_furnace_top.png new file mode 100644 index 0000000..d3309ec Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_electric_furnace_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_fine_copper_wire.png b/mods/technic/technic/textures/technicx32/technic_fine_copper_wire.png new file mode 100644 index 0000000..36e2ed6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_fine_copper_wire.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_fine_gold_wire.png b/mods/technic/technic/textures/technicx32/technic_fine_gold_wire.png new file mode 100644 index 0000000..be2a38a Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_fine_gold_wire.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_fine_silver_wire.png b/mods/technic/technic/textures/technicx32/technic_fine_silver_wire.png new file mode 100644 index 0000000..d43cb6a Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_fine_silver_wire.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_flashlight.png b/mods/technic/technic/textures/technicx32/technic_flashlight.png new file mode 100644 index 0000000..01afdbb Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_flashlight.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_generator_front.png b/mods/technic/technic/textures/technicx32/technic_generator_front.png new file mode 100644 index 0000000..2d64844 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_generator_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_generator_front_active.png b/mods/technic/technic/textures/technicx32/technic_generator_front_active.png new file mode 100644 index 0000000..4e57ca0 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_generator_front_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_generator_side.png b/mods/technic/technic/textures/technicx32/technic_generator_side.png new file mode 100644 index 0000000..5cbcbef Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_generator_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_generator_top.png b/mods/technic/technic/textures/technicx32/technic_generator_top.png new file mode 100644 index 0000000..e2f3db3 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_generator_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_geothermal_side.png b/mods/technic/technic/textures/technicx32/technic_geothermal_side.png new file mode 100644 index 0000000..90fb430 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_geothermal_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_geothermal_top.png b/mods/technic/technic/textures/technicx32/technic_geothermal_top.png new file mode 100644 index 0000000..601ff15 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_geothermal_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_geothermal_top_active.png b/mods/technic/technic/textures/technicx32/technic_geothermal_top_active.png new file mode 100644 index 0000000..f02bec6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_geothermal_top_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_gold_dust.png b/mods/technic/technic/textures/technicx32/technic_gold_dust.png new file mode 100644 index 0000000..e545bb6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_gold_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_grinder_front.png b/mods/technic/technic/textures/technicx32/technic_grinder_front.png new file mode 100644 index 0000000..a28dbc1 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_grinder_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_grinder_side.png b/mods/technic/technic/textures/technicx32/technic_grinder_side.png new file mode 100644 index 0000000..af562f2 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_grinder_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_grinder_top.png b/mods/technic/technic/textures/technicx32/technic_grinder_top.png new file mode 100644 index 0000000..b074e13 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_grinder_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_grinder_bottom.png b/mods/technic/technic/textures/technicx32/technic_hv_grinder_bottom.png new file mode 100644 index 0000000..d854193 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_grinder_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_grinder_front.png b/mods/technic/technic/textures/technicx32/technic_hv_grinder_front.png new file mode 100644 index 0000000..f20cb22 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_grinder_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_grinder_front_active.png b/mods/technic/technic/textures/technicx32/technic_hv_grinder_front_active.png new file mode 100644 index 0000000..d1fa468 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_grinder_front_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_grinder_side.png b/mods/technic/technic/textures/technicx32/technic_hv_grinder_side.png new file mode 100644 index 0000000..35cf031 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_grinder_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_grinder_side_tube.png b/mods/technic/technic/textures/technicx32/technic_hv_grinder_side_tube.png new file mode 100644 index 0000000..5b5b450 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_grinder_side_tube.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_grinder_top.png b/mods/technic/technic/textures/technicx32/technic_hv_grinder_top.png new file mode 100644 index 0000000..7869ea8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_grinder_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_nuclear_reactor_core.png b/mods/technic/technic/textures/technicx32/technic_hv_nuclear_reactor_core.png new file mode 100644 index 0000000..3d380da Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_nuclear_reactor_core.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_solar_array_bottom.png b/mods/technic/technic/textures/technicx32/technic_hv_solar_array_bottom.png new file mode 100644 index 0000000..94c8222 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_solar_array_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_solar_array_side.png b/mods/technic/technic/textures/technicx32/technic_hv_solar_array_side.png new file mode 100644 index 0000000..d39d3d8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_solar_array_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_solar_array_top.png b/mods/technic/technic/textures/technicx32/technic_hv_solar_array_top.png new file mode 100644 index 0000000..3e1b9e0 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_solar_array_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_hv_transformer.png b/mods/technic/technic/textures/technicx32/technic_hv_transformer.png new file mode 100644 index 0000000..7794644 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_hv_transformer.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_injector_bottom.png b/mods/technic/technic/textures/technicx32/technic_injector_bottom.png new file mode 100644 index 0000000..39916bd Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_injector_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_injector_side.png b/mods/technic/technic/textures/technicx32/technic_injector_side.png new file mode 100644 index 0000000..a5419a1 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_injector_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_injector_top.png b/mods/technic/technic/textures/technicx32/technic_injector_top.png new file mode 100644 index 0000000..440649c Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_injector_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_kalite_dust.png b/mods/technic/technic/textures/technicx32/technic_kalite_dust.png new file mode 100644 index 0000000..595edb5 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_kalite_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_laser_beam.png b/mods/technic/technic/textures/technicx32/technic_laser_beam.png new file mode 100644 index 0000000..4814a9b Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_laser_beam.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lava_can.png b/mods/technic/technic/textures/technicx32/technic_lava_can.png new file mode 100644 index 0000000..80d15a6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lava_can.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_light.png b/mods/technic/technic/textures/technicx32/technic_light.png new file mode 100644 index 0000000..334cb07 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_light.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lv_grinder_bottom.png b/mods/technic/technic/textures/technicx32/technic_lv_grinder_bottom.png new file mode 100644 index 0000000..816b969 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lv_grinder_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lv_grinder_front.png b/mods/technic/technic/textures/technicx32/technic_lv_grinder_front.png new file mode 100644 index 0000000..7451ca9 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lv_grinder_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lv_grinder_front_active.png b/mods/technic/technic/textures/technicx32/technic_lv_grinder_front_active.png new file mode 100644 index 0000000..8e17e4d Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lv_grinder_front_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lv_grinder_side.png b/mods/technic/technic/textures/technicx32/technic_lv_grinder_side.png new file mode 100644 index 0000000..908287b Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lv_grinder_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lv_grinder_top.png b/mods/technic/technic/textures/technicx32/technic_lv_grinder_top.png new file mode 100644 index 0000000..8520baf Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lv_grinder_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lv_solar_array_bottom.png b/mods/technic/technic/textures/technicx32/technic_lv_solar_array_bottom.png new file mode 100644 index 0000000..94c8222 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lv_solar_array_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lv_solar_array_side.png b/mods/technic/technic/textures/technicx32/technic_lv_solar_array_side.png new file mode 100644 index 0000000..d39d3d8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lv_solar_array_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lv_solar_array_top.png b/mods/technic/technic/textures/technicx32/technic_lv_solar_array_top.png new file mode 100644 index 0000000..3d8c7ab Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lv_solar_array_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_lv_transformer.png b/mods/technic/technic/textures/technicx32/technic_lv_transformer.png new file mode 100644 index 0000000..99ac927 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_lv_transformer.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_machine_bottom.png b/mods/technic/technic/textures/technicx32/technic_machine_bottom.png new file mode 100644 index 0000000..943dae1 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_machine_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mining_drill.png b/mods/technic/technic/textures/technicx32/technic_mining_drill.png new file mode 100644 index 0000000..171888d Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mining_drill.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mining_laser_mk1.png b/mods/technic/technic/textures/technicx32/technic_mining_laser_mk1.png new file mode 100644 index 0000000..acde392 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mining_laser_mk1.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mithril_dust.png b/mods/technic/technic/textures/technicx32/technic_mithril_dust.png new file mode 100644 index 0000000..988e449 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mithril_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_motor.png b/mods/technic/technic/textures/technicx32/technic_motor.png new file mode 100644 index 0000000..77d4b91 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_motor.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_music_player_bottom.png b/mods/technic/technic/textures/technicx32/technic_music_player_bottom.png new file mode 100644 index 0000000..bd8fd55 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_music_player_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_music_player_side.png b/mods/technic/technic/textures/technicx32/technic_music_player_side.png new file mode 100644 index 0000000..6c34fea Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_music_player_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_music_player_top.png b/mods/technic/technic/textures/technicx32/technic_music_player_top.png new file mode 100644 index 0000000..0d34563 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_music_player_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png new file mode 100644 index 0000000..3723bb1 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front.png b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front.png new file mode 100644 index 0000000..a5dac82 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png new file mode 100644 index 0000000..f6e69a9 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side.png b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side.png new file mode 100644 index 0000000..0430479 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png new file mode 100644 index 0000000..69f89e7 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_side_tube.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_top.png b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_top.png new file mode 100644 index 0000000..f44e3c0 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_alloy_furnace_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_battery_box_bottom.png b/mods/technic/technic/textures/technicx32/technic_mv_battery_box_bottom.png new file mode 100644 index 0000000..2a9b292 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_battery_box_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_battery_box_side0.png b/mods/technic/technic/textures/technicx32/technic_mv_battery_box_side0.png new file mode 100644 index 0000000..39d8986 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_battery_box_side0.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_battery_box_top.png b/mods/technic/technic/textures/technicx32/technic_mv_battery_box_top.png new file mode 100644 index 0000000..f7f1ea9 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_battery_box_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_cable_wield.png b/mods/technic/technic/textures/technicx32/technic_mv_cable_wield.png new file mode 100644 index 0000000..aca9fd4 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_cable_wield.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_bottom.png b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_bottom.png new file mode 100644 index 0000000..d16ac47 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_front.png b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_front.png new file mode 100644 index 0000000..4dfac63 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_front_active.png b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_front_active.png new file mode 100644 index 0000000..e206cd2 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_front_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_side.png b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_side.png new file mode 100644 index 0000000..4aa27b7 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png new file mode 100644 index 0000000..bfeba18 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_side_tube.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_top.png b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_top.png new file mode 100644 index 0000000..635b6b7 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_electric_furnace_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_grinder_bottom.png b/mods/technic/technic/textures/technicx32/technic_mv_grinder_bottom.png new file mode 100644 index 0000000..f46cd72 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_grinder_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_grinder_front.png b/mods/technic/technic/textures/technicx32/technic_mv_grinder_front.png new file mode 100644 index 0000000..6445dfe Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_grinder_front.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_grinder_front_active.png b/mods/technic/technic/textures/technicx32/technic_mv_grinder_front_active.png new file mode 100644 index 0000000..428e1dc Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_grinder_front_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_grinder_side.png b/mods/technic/technic/textures/technicx32/technic_mv_grinder_side.png new file mode 100644 index 0000000..c014f08 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_grinder_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_grinder_side_tube.png b/mods/technic/technic/textures/technicx32/technic_mv_grinder_side_tube.png new file mode 100644 index 0000000..69050e4 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_grinder_side_tube.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_grinder_top.png b/mods/technic/technic/textures/technicx32/technic_mv_grinder_top.png new file mode 100644 index 0000000..e0320ef Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_grinder_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_solar_array_bottom.png b/mods/technic/technic/textures/technicx32/technic_mv_solar_array_bottom.png new file mode 100644 index 0000000..94c8222 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_solar_array_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_solar_array_side.png b/mods/technic/technic/textures/technicx32/technic_mv_solar_array_side.png new file mode 100644 index 0000000..d39d3d8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_solar_array_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_solar_array_top.png b/mods/technic/technic/textures/technicx32/technic_mv_solar_array_top.png new file mode 100644 index 0000000..e4999d5 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_solar_array_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_mv_transformer.png b/mods/technic/technic/textures/technicx32/technic_mv_transformer.png new file mode 100644 index 0000000..7c4688e Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_mv_transformer.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_back.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_back.png new file mode 100644 index 0000000..43ba821 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_back.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_bottom.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_bottom.png new file mode 100644 index 0000000..99ff685 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_bottom_off.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_bottom_off.png new file mode 100644 index 0000000..47cd4e8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_bottom_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_bottom_on.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_bottom_on.png new file mode 100644 index 0000000..994f787 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_bottom_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_front_off.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_front_off.png new file mode 100644 index 0000000..5ece916 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_front_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_front_on.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_front_on.png new file mode 100644 index 0000000..a53de2a Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_front_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_side.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side.png new file mode 100644 index 0000000..c2b401b Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_side1.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side1.png new file mode 100644 index 0000000..07e74aa Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side1.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_side1_off.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side1_off.png new file mode 100644 index 0000000..b63f3bb Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side1_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_side1_on.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side1_on.png new file mode 100644 index 0000000..b455f06 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side1_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_side2.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side2.png new file mode 100644 index 0000000..7f4a0bf Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side2.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_side2_off.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side2_off.png new file mode 100644 index 0000000..7b60902 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side2_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_side2_on.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side2_on.png new file mode 100644 index 0000000..12985f6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_side2_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_top.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_top.png new file mode 100644 index 0000000..0994c6d Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_top_off.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_top_off.png new file mode 100644 index 0000000..f08fc1b Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_top_off.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_nodebreaker_top_on.png b/mods/technic/technic/textures/technicx32/technic_nodebreaker_top_on.png new file mode 100644 index 0000000..ec28210 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_nodebreaker_top_on.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter.png b/mods/technic/technic/textures/technicx32/technic_power_meter.png new file mode 100644 index 0000000..f1e5120 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter1.png b/mods/technic/technic/textures/technicx32/technic_power_meter1.png new file mode 100644 index 0000000..0542c7b Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter1.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter2.png b/mods/technic/technic/textures/technicx32/technic_power_meter2.png new file mode 100644 index 0000000..bf5703c Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter2.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter3.png b/mods/technic/technic/textures/technicx32/technic_power_meter3.png new file mode 100644 index 0000000..4204815 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter3.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter4.png b/mods/technic/technic/textures/technicx32/technic_power_meter4.png new file mode 100644 index 0000000..82a0148 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter4.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter5.png b/mods/technic/technic/textures/technicx32/technic_power_meter5.png new file mode 100644 index 0000000..af783ca Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter5.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter6.png b/mods/technic/technic/textures/technicx32/technic_power_meter6.png new file mode 100644 index 0000000..44feff4 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter6.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter7.png b/mods/technic/technic/textures/technicx32/technic_power_meter7.png new file mode 100644 index 0000000..554baa2 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter7.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter8.png b/mods/technic/technic/textures/technicx32/technic_power_meter8.png new file mode 100644 index 0000000..8c4f4a8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter8.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter_bg.png b/mods/technic/technic/textures/technicx32/technic_power_meter_bg.png new file mode 100644 index 0000000..9667cda Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter_bg.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_power_meter_fg.png b/mods/technic/technic/textures/technicx32/technic_power_meter_fg.png new file mode 100644 index 0000000..7f2dde8 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_power_meter_fg.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_raw_latex.png b/mods/technic/technic/textures/technicx32/technic_raw_latex.png new file mode 100644 index 0000000..7fbbe64 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_raw_latex.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_rubber.png b/mods/technic/technic/textures/technicx32/technic_rubber.png new file mode 100644 index 0000000..9ed4a9d Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_rubber.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_rubber_sapling.png b/mods/technic/technic/textures/technicx32/technic_rubber_sapling.png new file mode 100644 index 0000000..e5c9f5d Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_rubber_sapling.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_rubber_tree_empty.png b/mods/technic/technic/textures/technicx32/technic_rubber_tree_empty.png new file mode 100644 index 0000000..1792951 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_rubber_tree_empty.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_rubber_tree_full.png b/mods/technic/technic/textures/technicx32/technic_rubber_tree_full.png new file mode 100644 index 0000000..08067ef Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_rubber_tree_full.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_screwdriver.png b/mods/technic/technic/textures/technicx32/technic_screwdriver.png new file mode 100644 index 0000000..bd2da22 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_screwdriver.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_silicon_wafer.png b/mods/technic/technic/textures/technicx32/technic_silicon_wafer.png new file mode 100644 index 0000000..78aef20 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_silicon_wafer.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_silver_dust.png b/mods/technic/technic/textures/technicx32/technic_silver_dust.png new file mode 100644 index 0000000..9092c90 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_silver_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_solar_panel_bottom.png b/mods/technic/technic/textures/technicx32/technic_solar_panel_bottom.png new file mode 100644 index 0000000..b0ad82f Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_solar_panel_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_solar_panel_side.png b/mods/technic/technic/textures/technicx32/technic_solar_panel_side.png new file mode 100644 index 0000000..b22447e Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_solar_panel_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_solar_panel_top.png b/mods/technic/technic/textures/technicx32/technic_solar_panel_top.png new file mode 100644 index 0000000..492764b Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_solar_panel_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_sonic_screwdriver.png b/mods/technic/technic/textures/technicx32/technic_sonic_screwdriver.png new file mode 100644 index 0000000..fb61d96 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_sonic_screwdriver.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_stainless_steel_dust.png b/mods/technic/technic/textures/technicx32/technic_stainless_steel_dust.png new file mode 100644 index 0000000..450e2bb Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_stainless_steel_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_talinite_dust.png b/mods/technic/technic/textures/technicx32/technic_talinite_dust.png new file mode 100644 index 0000000..39f9330 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_talinite_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_tin_dust.png b/mods/technic/technic/textures/technicx32/technic_tin_dust.png new file mode 100644 index 0000000..4e94e00 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_tin_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_tree_tap.png b/mods/technic/technic/textures/technicx32/technic_tree_tap.png new file mode 100644 index 0000000..542f30f Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_tree_tap.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_uranium_dust.png b/mods/technic/technic/textures/technicx32/technic_uranium_dust.png new file mode 100644 index 0000000..d8095c3 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_uranium_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_water_can.png b/mods/technic/technic/textures/technicx32/technic_water_can.png new file mode 100644 index 0000000..18e0225 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_water_can.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_water_mill_side.png b/mods/technic/technic/textures/technicx32/technic_water_mill_side.png new file mode 100644 index 0000000..f4bdb16 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_water_mill_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_water_mill_top.png b/mods/technic/technic/textures/technicx32/technic_water_mill_top.png new file mode 100644 index 0000000..601ff15 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_water_mill_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_water_mill_top_active.png b/mods/technic/technic/textures/technicx32/technic_water_mill_top_active.png new file mode 100644 index 0000000..f02bec6 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_water_mill_top_active.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_workshop_bottom.png b/mods/technic/technic/textures/technicx32/technic_workshop_bottom.png new file mode 100644 index 0000000..bd8fd55 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_workshop_bottom.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_workshop_side.png b/mods/technic/technic/textures/technicx32/technic_workshop_side.png new file mode 100644 index 0000000..9e3e7a7 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_workshop_side.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_workshop_top.png b/mods/technic/technic/textures/technicx32/technic_workshop_top.png new file mode 100644 index 0000000..feae141 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_workshop_top.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_wrought_iron_dust.png b/mods/technic/technic/textures/technicx32/technic_wrought_iron_dust.png new file mode 100644 index 0000000..d890e73 Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_wrought_iron_dust.png differ diff --git a/mods/technic/technic/textures/technicx32/technic_zinc_dust.png b/mods/technic/technic/textures/technicx32/technic_zinc_dust.png new file mode 100644 index 0000000..0d2f75a Binary files /dev/null and b/mods/technic/technic/textures/technicx32/technic_zinc_dust.png differ diff --git a/mods/technic/technic/textures/ui_form_bg.png b/mods/technic/technic/textures/ui_form_bg.png new file mode 100644 index 0000000..c543466 Binary files /dev/null and b/mods/technic/technic/textures/ui_form_bg.png differ diff --git a/mods/technic/technic/tools/cans.lua b/mods/technic/technic/tools/cans.lua new file mode 100644 index 0000000..2041c57 --- /dev/null +++ b/mods/technic/technic/tools/cans.lua @@ -0,0 +1,107 @@ +local S = technic.getter + +local function set_can_wear(itemstack, level, max_level) + local temp + if level == 0 then + temp = 0 + else + temp = 65536 - math.floor(level / max_level * 65535) + if temp > 65535 then temp = 65535 end + if temp < 1 then temp = 1 end + end + itemstack:set_wear(temp) +end + +local function get_can_level(itemstack) + if itemstack:get_metadata() == "" then + return 0 + else + return tonumber(itemstack:get_metadata()) + end +end + +function technic.register_can(d) + local data = {} + for k, v in pairs(d) do data[k] = v end + minetest.register_tool(data.can_name, { + description = data.can_description, + inventory_image = data.can_inventory_image, + stack_max = 1, + wear_represents = "content_level", + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then return end + local node = minetest.get_node(pointed_thing.under) + if node.name ~= data.liquid_source_name then return end + local charge = get_can_level(itemstack) + if charge == data.can_capacity then return end + if minetest.is_protected(pointed_thing.under, user:get_player_name()) then + minetest.log("action", user:get_player_name().." tried to take "..node.name.." at protected position "..minetest.pos_to_string(pointed_thing.under).." with a "..data.can_name) + return + end + minetest.remove_node(pointed_thing.under) + charge = charge + 1 + itemstack:set_metadata(tostring(charge)) + set_can_wear(itemstack, charge, data.can_capacity) + return itemstack + end, + on_place = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then return end + local pos = pointed_thing.under + local def = minetest.registered_nodes[minetest.get_node(pos).name] or {} + if def.on_rightclick and user and not user:get_player_control().sneak then + return def.on_rightclick(pos, minetest.get_node(pos), user, itemstack, pointed_thing) + end + if not def.buildable_to then + pos = pointed_thing.above + def = minetest.registered_nodes[minetest.get_node(pos).name] or {} + if not def.buildable_to then return end + end + local charge = get_can_level(itemstack) + if charge == 0 then return end + if minetest.is_protected(pos, user:get_player_name()) then + minetest.log("action", user:get_player_name().." tried to place "..data.liquid_source_name.." at protected position "..minetest.pos_to_string(pos).." with a "..data.can_name) + return + end + minetest.set_node(pos, {name=data.liquid_source_name}) + charge = charge - 1 + itemstack:set_metadata(tostring(charge)) + set_can_wear(itemstack, charge, data.can_capacity) + return itemstack + end, + on_refill = function(stack) + stack:set_metadata(tostring(data.can_capacity)) + set_can_wear(stack, data.can_capacity, data.can_capacity) + return stack + end, + }) +end + +technic.register_can({ + can_name = "technic:water_can", + can_description = S("Water Can Lv.1"), + can_inventory_image = "technic_water_can.png", + can_capacity = 8, + liquid_source_name = "default:water_source", + liquid_flowing_name = "default:water_flowing", +}) + + +technic.register_can({ + can_name = "technic:lava_can", + can_description = S("Lava Can Lv.1"), + can_inventory_image = "technic_lava_can.png", + can_capacity = 8, + liquid_source_name = "default:lava_source", + liquid_flowing_name = "default:lava_flowing", +}) + +technic.register_can({ + can_name = "technic:corium_can", + can_description = S("Disable Uranium Can Lv.1"), + can_inventory_image = "technic_corium_can.png", + can_capacity = 8, + liquid_source_name = "technic:corium_source", + liquid_flowing_name = "technic:corium_flowing", +}) + diff --git a/mods/technic/technic/tools/chainsaw.lua b/mods/technic/technic/tools/chainsaw.lua new file mode 100644 index 0000000..91ca175 --- /dev/null +++ b/mods/technic/technic/tools/chainsaw.lua @@ -0,0 +1,361 @@ +-- Configuration + +local chainsaw_max_charge = 1 -- Maximum charge of the saw +-- Gives 2500 nodes on a single charge (about 50 complete normal trees) +local chainsaw_charge_per_node = 0 +-- Cut down tree leaves. Leaf decay may cause slowness on large trees +-- if this is disabled. +local chainsaw_leaves = true + +-- The default trees +local timber_nodenames = { + ["default:jungletree"] = true, + ["default:papyrus"] = true, + ["default:cactus"] = true, + ["default:tree"] = true, + ["default:apple"] = true, + ["default:pine"] = true, +} + +if chainsaw_leaves then + timber_nodenames["default:leaves"] = true + timber_nodenames["default:jungleleaves"] = true + timber_nodenames["default:pine_needles"] = true +end + +-- technic_worldgen defines rubber trees if moretrees isn't installed +if minetest.get_modpath("technic_worldgen") or + minetest.get_modpath("moretrees") then + timber_nodenames["moretrees:rubber_tree_trunk_empty"] = true + timber_nodenames["moretrees:rubber_tree_trunk"] = true + if chainsaw_leaves then + timber_nodenames["moretrees:rubber_tree_leaves"] = true + end +end + +-- Support moretrees if it is there +if minetest.get_modpath("moretrees") then + timber_nodenames["moretrees:acacia_trunk"] = true + timber_nodenames["moretrees:acacia_trunk_sideways"] = true + timber_nodenames["moretrees:apple_tree_trunk"] = true + timber_nodenames["moretrees:apple_tree_trunk_sideways"] = true + timber_nodenames["moretrees:beech_trunk"] = true + timber_nodenames["moretrees:beech_trunk_sideways"] = true + timber_nodenames["moretrees:birch_trunk"] = true + timber_nodenames["moretrees:birch_trunk_sideways"] = true + timber_nodenames["moretrees:fir_trunk"] = true + timber_nodenames["moretrees:fir_trunk_sideways"] = true + timber_nodenames["moretrees:oak_trunk"] = true + timber_nodenames["moretrees:oak_trunk_sideways"] = true + timber_nodenames["moretrees:palm_trunk"] = true + timber_nodenames["moretrees:palm_trunk_sideways"] = true + timber_nodenames["moretrees:pine_trunk"] = true + timber_nodenames["moretrees:pine_trunk_sideways"] = true + timber_nodenames["moretrees:rubber_tree_trunk_sideways"] = true + timber_nodenames["moretrees:rubber_tree_trunk_sideways_empty"] = true + timber_nodenames["moretrees:sequoia_trunk"] = true + timber_nodenames["moretrees:sequoia_trunk_sideways"] = true + timber_nodenames["moretrees:spruce_trunk"] = true + timber_nodenames["moretrees:spruce_trunk_sideways"] = true + timber_nodenames["moretrees:willow_trunk"] = true + timber_nodenames["moretrees:willow_trunk_sideways"] = true + timber_nodenames["moretrees:jungletree_trunk"] = true + timber_nodenames["moretrees:jungletree_trunk_sideways"] = true + + if chainsaw_leaves then + timber_nodenames["moretrees:acacia_leaves"] = true + timber_nodenames["moretrees:apple_tree_leaves"] = true + timber_nodenames["moretrees:oak_leaves"] = true + timber_nodenames["moretrees:fir_leaves"] = true + timber_nodenames["moretrees:fir_leaves_bright"] = true + timber_nodenames["moretrees:sequoia_leaves"] = true + timber_nodenames["moretrees:birch_leaves"] = true + timber_nodenames["moretrees:birch_leaves"] = true + timber_nodenames["moretrees:palm_leaves"] = true + timber_nodenames["moretrees:spruce_leaves"] = true + timber_nodenames["moretrees:spruce_leaves"] = true + timber_nodenames["moretrees:pine_leaves"] = true + timber_nodenames["moretrees:willow_leaves"] = true + timber_nodenames["moretrees:jungletree_leaves_green"] = true + timber_nodenames["moretrees:jungletree_leaves_yellow"] = true + timber_nodenames["moretrees:jungletree_leaves_red"] = true + timber_nodenames["moretrees:acorn"] = true + timber_nodenames["moretrees:coconut"] = true + timber_nodenames["moretrees:spruce_cone"] = true + timber_nodenames["moretrees:pine_cone"] = true + timber_nodenames["moretrees:fir_cone"] = true + timber_nodenames["moretrees:apple_blossoms"] = true + end +end + +-- Support growing_trees +if minetest.get_modpath("growing_trees") then + timber_nodenames["growing_trees:trunk"] = true + timber_nodenames["growing_trees:medium_trunk"] = true + timber_nodenames["growing_trees:big_trunk"] = true + timber_nodenames["growing_trees:trunk_top"] = true + timber_nodenames["growing_trees:trunk_sprout"] = true + timber_nodenames["growing_trees:branch_sprout"] = true + timber_nodenames["growing_trees:branch"] = true + timber_nodenames["growing_trees:branch_xmzm"] = true + timber_nodenames["growing_trees:branch_xpzm"] = true + timber_nodenames["growing_trees:branch_xmzp"] = true + timber_nodenames["growing_trees:branch_xpzp"] = true + timber_nodenames["growing_trees:branch_zz"] = true + timber_nodenames["growing_trees:branch_xx"] = true + + if chainsaw_leaves then + timber_nodenames["growing_trees:leaves"] = true + end +end + +-- Support growing_cactus +if minetest.get_modpath("growing_cactus") then + timber_nodenames["growing_cactus:sprout"] = true + timber_nodenames["growing_cactus:branch_sprout_vertical"] = true + timber_nodenames["growing_cactus:branch_sprout_vertical_fixed"] = true + timber_nodenames["growing_cactus:branch_sprout_xp"] = true + timber_nodenames["growing_cactus:branch_sprout_xm"] = true + timber_nodenames["growing_cactus:branch_sprout_zp"] = true + timber_nodenames["growing_cactus:branch_sprout_zm"] = true + timber_nodenames["growing_cactus:trunk"] = true + timber_nodenames["growing_cactus:branch_trunk"] = true + timber_nodenames["growing_cactus:branch"] = true + timber_nodenames["growing_cactus:branch_xp"] = true + timber_nodenames["growing_cactus:branch_xm"] = true + timber_nodenames["growing_cactus:branch_zp"] = true + timber_nodenames["growing_cactus:branch_zm"] = true + timber_nodenames["growing_cactus:branch_zz"] = true + timber_nodenames["growing_cactus:branch_xx"] = true +end + +-- Support farming_plus +if minetest.get_modpath("farming_plus") then + if chainsaw_leaves then + timber_nodenames["farming_plus:banana_leaves"] = true + timber_nodenames["farming_plus:banana"] = true + timber_nodenames["farming_plus:cocoa_leaves"] = true + timber_nodenames["farming_plus:cocoa"] = true + end +end + +-- Support nature +if minetest.get_modpath("nature") then + if chainsaw_leaves then + timber_nodenames["nature:blossom"] = true + end +end + +-- Support snow +if minetest.get_modpath("snow") then + if chainsaw_leaves then + timber_nodenames["snow:needles"] = true + timber_nodenames["snow:needles_decorated"] = true + timber_nodenames["snow:star"] = true + end +end + +-- Support vines (also generated by moretrees if available) +if minetest.get_modpath("vines") then + if chainsaw_leaves then + timber_nodenames["vines:vines"] = true + end +end + +local S = technic.getter + +technic.register_power_tool("technic:chainsaw", chainsaw_max_charge) + +-- Table for saving what was sawed down +local produced = {} + +-- Save the items sawed down so that we can drop them in a nice single stack +local function handle_drops(drops) + for _, item in ipairs(drops) do + local stack = ItemStack(item) + local name = stack:get_name() + local p = produced[name] + if not p then + produced[name] = stack + else + p:set_count(p:get_count() + stack:get_count()) + end + end +end + +--- Iterator over positions to try to saw around a sawed node. +-- This returns positions in a 3x1x3 area around the position, plus the +-- position above it. This does not return the bottom position to prevent +-- the chainsaw from cutting down nodes below the cutting position. +-- @param pos Sawing position. +local function iterSawTries(pos) + -- Copy position to prevent mangling it + local pos = vector.new(pos) + local i = 0 + + return function() + i = i + 1 + -- Given a (top view) area like so (where 5 is the starting position): + -- X --> + -- Z 123 + -- | 456 + -- V 789 + -- This will return positions 1, 4, 7, 2, 8 (skip 5), 3, 6, 9, + -- and the position above 5. + if i == 1 then + -- Move to starting position + pos.x = pos.x - 1 + pos.z = pos.z - 1 + elseif i == 4 or i == 7 then + -- Move to next X and back to start of Z when we reach + -- the end of a Z line. + pos.x = pos.x + 1 + pos.z = pos.z - 2 + elseif i == 5 then + -- Skip the middle position (we've already run on it) + -- and double-increment the counter. + pos.z = pos.z + 2 + i = i + 1 + elseif i <= 9 then + -- Go to next Z. + pos.z = pos.z + 1 + elseif i == 10 then + -- Move back to center and up. + -- The Y+ position must be last so that we don't dig + -- straight upward and not come down (since the Y- + -- position isn't checked). + pos.x = pos.x - 1 + pos.z = pos.z - 1 + pos.y = pos.y + 1 + else + return nil + end + return pos + end +end + +-- This function does all the hard work. Recursively we dig the node at hand +-- if it is in the table and then search the surroundings for more stuff to dig. +local function recursive_dig(pos, remaining_charge) + if remaining_charge < chainsaw_charge_per_node then + return remaining_charge + end + local node = minetest.get_node(pos) + + if not timber_nodenames[node.name] then + return remaining_charge + end + + -- Wood found - cut it + handle_drops(minetest.get_node_drops(node.name, "")) + minetest.remove_node(pos) + remaining_charge = remaining_charge - chainsaw_charge_per_node + + -- Check surroundings and run recursively if any charge left + for npos in iterSawTries(pos) do + if remaining_charge < chainsaw_charge_per_node then + break + end + if timber_nodenames[minetest.get_node(npos).name] then + remaining_charge = recursive_dig(npos, remaining_charge) + end + end + return remaining_charge +end + +-- Function to randomize positions for new node drops +local function get_drop_pos(pos) + local drop_pos = {} + + for i = 0, 8 do + -- Randomize position for a new drop + drop_pos.x = pos.x + math.random(-3, 3) + drop_pos.y = pos.y - 1 + drop_pos.z = pos.z + math.random(-3, 3) + + -- Move the randomized position upwards until + -- the node is air or unloaded. + for y = drop_pos.y, drop_pos.y + 5 do + drop_pos.y = y + local node = minetest.get_node_or_nil(drop_pos) + + if not node then + -- If the node is not loaded yet simply drop + -- the item at the original digging position. + return pos + elseif node.name == "air" then + -- Add variation to the entity drop position, + -- but don't let drops get too close to the edge + drop_pos.x = drop_pos.x + (math.random() * 0.8) - 0.5 + drop_pos.z = drop_pos.z + (math.random() * 0.8) - 0.5 + return drop_pos + end + end + end + + -- Return the original position if this takes too long + return pos +end + +-- Chainsaw entry point +local function chainsaw_dig(pos, current_charge) + -- Start sawing things down + local remaining_charge = recursive_dig(pos, current_charge) + minetest.sound_play("chainsaw", {pos = pos, gain = 1.0, + max_hear_distance = 10}) + + -- Now drop items for the player + for name, stack in pairs(produced) do + -- Drop stacks of stack max or less + local count, max = stack:get_count(), stack:get_stack_max() + stack:set_count(max) + while count > max do + minetest.add_item(get_drop_pos(pos), stack) + count = count - max + end + stack:set_count(count) + minetest.add_item(get_drop_pos(pos), stack) + end + + -- Clean up + produced = {} + + return remaining_charge +end + + +minetest.register_tool("technic:chainsaw", { + description = S("Admin tool 5: Chainsaw"), + inventory_image = "technic_chainsaw.png", + stack_max = 1, + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.charge or + meta.charge < chainsaw_charge_per_node then + return + end + + local name = user:get_player_name() + if minetest.is_protected(pointed_thing.under, name) then + minetest.record_protection_violation(pointed_thing.under, name) + return + end + + -- Send current charge to digging function so that the + -- chainsaw will stop after digging a number of nodes + meta.charge = chainsaw_dig(pointed_thing.under, meta.charge) + + technic.set_RE_wear(itemstack, meta.charge, chainsaw_max_charge) + itemstack:set_metadata(minetest.serialize(meta)) + return itemstack + end, +}) + + + diff --git a/mods/technic/technic/tools/chainsaw.lua~ b/mods/technic/technic/tools/chainsaw.lua~ new file mode 100644 index 0000000..2b46a77 --- /dev/null +++ b/mods/technic/technic/tools/chainsaw.lua~ @@ -0,0 +1,368 @@ +-- Configuration + +local chainsaw_max_charge = 30000 -- Maximum charge of the saw +-- Gives 2500 nodes on a single charge (about 50 complete normal trees) +local chainsaw_charge_per_node = 12 +-- Cut down tree leaves. Leaf decay may cause slowness on large trees +-- if this is disabled. +local chainsaw_leaves = true + +-- The default trees +local timber_nodenames = { + ["default:jungletree"] = true, + ["default:papyrus"] = true, + ["default:cactus"] = true, + ["default:tree"] = true, + ["default:apple"] = true, + ["default:pine"] = true, +} + +if chainsaw_leaves then + timber_nodenames["default:leaves"] = true + timber_nodenames["default:jungleleaves"] = true + timber_nodenames["default:pine_needles"] = true +end + +-- technic_worldgen defines rubber trees if moretrees isn't installed +if minetest.get_modpath("technic_worldgen") or + minetest.get_modpath("moretrees") then + timber_nodenames["moretrees:rubber_tree_trunk_empty"] = true + timber_nodenames["moretrees:rubber_tree_trunk"] = true + if chainsaw_leaves then + timber_nodenames["moretrees:rubber_tree_leaves"] = true + end +end + +-- Support moretrees if it is there +if minetest.get_modpath("moretrees") then + timber_nodenames["moretrees:acacia_trunk"] = true + timber_nodenames["moretrees:acacia_trunk_sideways"] = true + timber_nodenames["moretrees:apple_tree_trunk"] = true + timber_nodenames["moretrees:apple_tree_trunk_sideways"] = true + timber_nodenames["moretrees:beech_trunk"] = true + timber_nodenames["moretrees:beech_trunk_sideways"] = true + timber_nodenames["moretrees:birch_trunk"] = true + timber_nodenames["moretrees:birch_trunk_sideways"] = true + timber_nodenames["moretrees:fir_trunk"] = true + timber_nodenames["moretrees:fir_trunk_sideways"] = true + timber_nodenames["moretrees:oak_trunk"] = true + timber_nodenames["moretrees:oak_trunk_sideways"] = true + timber_nodenames["moretrees:palm_trunk"] = true + timber_nodenames["moretrees:palm_trunk_sideways"] = true + timber_nodenames["moretrees:pine_trunk"] = true + timber_nodenames["moretrees:pine_trunk_sideways"] = true + timber_nodenames["moretrees:rubber_tree_trunk_sideways"] = true + timber_nodenames["moretrees:rubber_tree_trunk_sideways_empty"] = true + timber_nodenames["moretrees:sequoia_trunk"] = true + timber_nodenames["moretrees:sequoia_trunk_sideways"] = true + timber_nodenames["moretrees:spruce_trunk"] = true + timber_nodenames["moretrees:spruce_trunk_sideways"] = true + timber_nodenames["moretrees:willow_trunk"] = true + timber_nodenames["moretrees:willow_trunk_sideways"] = true + timber_nodenames["moretrees:jungletree_trunk"] = true + timber_nodenames["moretrees:jungletree_trunk_sideways"] = true + + if chainsaw_leaves then + timber_nodenames["moretrees:acacia_leaves"] = true + timber_nodenames["moretrees:apple_tree_leaves"] = true + timber_nodenames["moretrees:oak_leaves"] = true + timber_nodenames["moretrees:fir_leaves"] = true + timber_nodenames["moretrees:fir_leaves_bright"] = true + timber_nodenames["moretrees:sequoia_leaves"] = true + timber_nodenames["moretrees:birch_leaves"] = true + timber_nodenames["moretrees:birch_leaves"] = true + timber_nodenames["moretrees:palm_leaves"] = true + timber_nodenames["moretrees:spruce_leaves"] = true + timber_nodenames["moretrees:spruce_leaves"] = true + timber_nodenames["moretrees:pine_leaves"] = true + timber_nodenames["moretrees:willow_leaves"] = true + timber_nodenames["moretrees:jungletree_leaves_green"] = true + timber_nodenames["moretrees:jungletree_leaves_yellow"] = true + timber_nodenames["moretrees:jungletree_leaves_red"] = true + timber_nodenames["moretrees:acorn"] = true + timber_nodenames["moretrees:coconut"] = true + timber_nodenames["moretrees:spruce_cone"] = true + timber_nodenames["moretrees:pine_cone"] = true + timber_nodenames["moretrees:fir_cone"] = true + timber_nodenames["moretrees:apple_blossoms"] = true + end +end + +-- Support growing_trees +if minetest.get_modpath("growing_trees") then + timber_nodenames["growing_trees:trunk"] = true + timber_nodenames["growing_trees:medium_trunk"] = true + timber_nodenames["growing_trees:big_trunk"] = true + timber_nodenames["growing_trees:trunk_top"] = true + timber_nodenames["growing_trees:trunk_sprout"] = true + timber_nodenames["growing_trees:branch_sprout"] = true + timber_nodenames["growing_trees:branch"] = true + timber_nodenames["growing_trees:branch_xmzm"] = true + timber_nodenames["growing_trees:branch_xpzm"] = true + timber_nodenames["growing_trees:branch_xmzp"] = true + timber_nodenames["growing_trees:branch_xpzp"] = true + timber_nodenames["growing_trees:branch_zz"] = true + timber_nodenames["growing_trees:branch_xx"] = true + + if chainsaw_leaves then + timber_nodenames["growing_trees:leaves"] = true + end +end + +-- Support growing_cactus +if minetest.get_modpath("growing_cactus") then + timber_nodenames["growing_cactus:sprout"] = true + timber_nodenames["growing_cactus:branch_sprout_vertical"] = true + timber_nodenames["growing_cactus:branch_sprout_vertical_fixed"] = true + timber_nodenames["growing_cactus:branch_sprout_xp"] = true + timber_nodenames["growing_cactus:branch_sprout_xm"] = true + timber_nodenames["growing_cactus:branch_sprout_zp"] = true + timber_nodenames["growing_cactus:branch_sprout_zm"] = true + timber_nodenames["growing_cactus:trunk"] = true + timber_nodenames["growing_cactus:branch_trunk"] = true + timber_nodenames["growing_cactus:branch"] = true + timber_nodenames["growing_cactus:branch_xp"] = true + timber_nodenames["growing_cactus:branch_xm"] = true + timber_nodenames["growing_cactus:branch_zp"] = true + timber_nodenames["growing_cactus:branch_zm"] = true + timber_nodenames["growing_cactus:branch_zz"] = true + timber_nodenames["growing_cactus:branch_xx"] = true +end + +-- Support farming_plus +if minetest.get_modpath("farming_plus") then + if chainsaw_leaves then + timber_nodenames["farming_plus:banana_leaves"] = true + timber_nodenames["farming_plus:banana"] = true + timber_nodenames["farming_plus:cocoa_leaves"] = true + timber_nodenames["farming_plus:cocoa"] = true + end +end + +-- Support nature +if minetest.get_modpath("nature") then + if chainsaw_leaves then + timber_nodenames["nature:blossom"] = true + end +end + +-- Support snow +if minetest.get_modpath("snow") then + if chainsaw_leaves then + timber_nodenames["snow:needles"] = true + timber_nodenames["snow:needles_decorated"] = true + timber_nodenames["snow:star"] = true + end +end + +-- Support vines (also generated by moretrees if available) +if minetest.get_modpath("vines") then + if chainsaw_leaves then + timber_nodenames["vines:vines"] = true + end +end + +local S = technic.getter + +technic.register_power_tool("technic:chainsaw", chainsaw_max_charge) + +-- Table for saving what was sawed down +local produced = {} + +-- Save the items sawed down so that we can drop them in a nice single stack +local function handle_drops(drops) + for _, item in ipairs(drops) do + local stack = ItemStack(item) + local name = stack:get_name() + local p = produced[name] + if not p then + produced[name] = stack + else + p:set_count(p:get_count() + stack:get_count()) + end + end +end + +--- Iterator over positions to try to saw around a sawed node. +-- This returns positions in a 3x1x3 area around the position, plus the +-- position above it. This does not return the bottom position to prevent +-- the chainsaw from cutting down nodes below the cutting position. +-- @param pos Sawing position. +local function iterSawTries(pos) + -- Copy position to prevent mangling it + local pos = vector.new(pos) + local i = 0 + + return function() + i = i + 1 + -- Given a (top view) area like so (where 5 is the starting position): + -- X --> + -- Z 123 + -- | 456 + -- V 789 + -- This will return positions 1, 4, 7, 2, 8 (skip 5), 3, 6, 9, + -- and the position above 5. + if i == 1 then + -- Move to starting position + pos.x = pos.x - 1 + pos.z = pos.z - 1 + elseif i == 4 or i == 7 then + -- Move to next X and back to start of Z when we reach + -- the end of a Z line. + pos.x = pos.x + 1 + pos.z = pos.z - 2 + elseif i == 5 then + -- Skip the middle position (we've already run on it) + -- and double-increment the counter. + pos.z = pos.z + 2 + i = i + 1 + elseif i <= 9 then + -- Go to next Z. + pos.z = pos.z + 1 + elseif i == 10 then + -- Move back to center and up. + -- The Y+ position must be last so that we don't dig + -- straight upward and not come down (since the Y- + -- position isn't checked). + pos.x = pos.x - 1 + pos.z = pos.z - 1 + pos.y = pos.y + 1 + else + return nil + end + return pos + end +end + +-- This function does all the hard work. Recursively we dig the node at hand +-- if it is in the table and then search the surroundings for more stuff to dig. +local function recursive_dig(pos, remaining_charge) + if remaining_charge < chainsaw_charge_per_node then + return remaining_charge + end + local node = minetest.get_node(pos) + + if not timber_nodenames[node.name] then + return remaining_charge + end + + -- Wood found - cut it + handle_drops(minetest.get_node_drops(node.name, "")) + minetest.remove_node(pos) + remaining_charge = remaining_charge - chainsaw_charge_per_node + + -- Check surroundings and run recursively if any charge left + for npos in iterSawTries(pos) do + if remaining_charge < chainsaw_charge_per_node then + break + end + if timber_nodenames[minetest.get_node(npos).name] then + remaining_charge = recursive_dig(npos, remaining_charge) + end + end + return remaining_charge +end + +-- Function to randomize positions for new node drops +local function get_drop_pos(pos) + local drop_pos = {} + + for i = 0, 8 do + -- Randomize position for a new drop + drop_pos.x = pos.x + math.random(-3, 3) + drop_pos.y = pos.y - 1 + drop_pos.z = pos.z + math.random(-3, 3) + + -- Move the randomized position upwards until + -- the node is air or unloaded. + for y = drop_pos.y, drop_pos.y + 5 do + drop_pos.y = y + local node = minetest.get_node_or_nil(drop_pos) + + if not node then + -- If the node is not loaded yet simply drop + -- the item at the original digging position. + return pos + elseif node.name == "air" then + -- Add variation to the entity drop position, + -- but don't let drops get too close to the edge + drop_pos.x = drop_pos.x + (math.random() * 0.8) - 0.5 + drop_pos.z = drop_pos.z + (math.random() * 0.8) - 0.5 + return drop_pos + end + end + end + + -- Return the original position if this takes too long + return pos +end + +-- Chainsaw entry point +local function chainsaw_dig(pos, current_charge) + -- Start sawing things down + local remaining_charge = recursive_dig(pos, current_charge) + minetest.sound_play("chainsaw", {pos = pos, gain = 1.0, + max_hear_distance = 10}) + + -- Now drop items for the player + for name, stack in pairs(produced) do + -- Drop stacks of stack max or less + local count, max = stack:get_count(), stack:get_stack_max() + stack:set_count(max) + while count > max do + minetest.add_item(get_drop_pos(pos), stack) + count = count - max + end + stack:set_count(count) + minetest.add_item(get_drop_pos(pos), stack) + end + + -- Clean up + produced = {} + + return remaining_charge +end + + +minetest.register_tool("technic:chainsaw", { + description = S("Chainsaw"), + inventory_image = "technic_chainsaw.png", + stack_max = 1, + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return itemstack + end + + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.charge or + meta.charge < chainsaw_charge_per_node then + return + end + + local name = user:get_player_name() + if minetest.is_protected(pointed_thing.under, name) then + minetest.record_protection_violation(pointed_thing.under, name) + return + end + + -- Send current charge to digging function so that the + -- chainsaw will stop after digging a number of nodes + meta.charge = chainsaw_dig(pointed_thing.under, meta.charge) + + technic.set_RE_wear(itemstack, meta.charge, chainsaw_max_charge) + itemstack:set_metadata(minetest.serialize(meta)) + return itemstack + end, +}) + +minetest.register_craft({ + output = "technic:chainsaw", + recipe = { + {"", "", "gems:emerald_gem"}, + {"technic:fine_copper_wire", "technic:fine_copper_wire", "technic:fine_copper_wire"}, + {"", "", "gems:emerald_gem"}, + } +}) + diff --git a/mods/technic/technic/tools/flashlight.lua b/mods/technic/technic/tools/flashlight.lua new file mode 100644 index 0000000..c7d9c9e --- /dev/null +++ b/mods/technic/technic/tools/flashlight.lua @@ -0,0 +1,121 @@ +-- Original code comes from walkin_light mod by Echo +-- http://minetest.net/forum/viewtopic.php?id=2621 + +local flashlight_max_charge = 30000 + +local S = technic.getter + +technic.register_power_tool("technic:flashlight", flashlight_max_charge) + +minetest.register_alias("technic:light_off", "air") + +minetest.register_tool("technic:flashlight", { + description = S("Flashlight"), + inventory_image = "technic_flashlight.png", + stack_max = 1, + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, +}) + +minetest.register_craft({ + output = "technic:flashlight", + recipe = { + {"", "gems:ruby_gem", ""}, + {"", "default:stone", ""}, + {"", "default:stone", ""} + } +}) + + +local player_positions = {} +local was_wielding = {} + +local function check_for_flashlight(player) + if player == nil then + return false + end + local inv = player:get_inventory() + local hotbar = inv:get_list("main") + for i = 1, 8 do + if hotbar[i]:get_name() == "technic:flashlight" then + local meta = minetest.deserialize(hotbar[i]:get_metadata()) + if meta and meta.charge and meta.charge >= 2 then + meta.charge = meta.charge - 2; + technic.set_RE_wear(hotbar[i], meta.charge, flashlight_max_charge) + hotbar[i]:set_metadata(minetest.serialize(meta)) + inv:set_stack("main", i, hotbar[i]) + return true + end + end + end + return false +end + +minetest.register_on_joinplayer(function(player) + local player_name = player:get_player_name() + local pos = player:getpos() + local rounded_pos = vector.round(pos) + rounded_pos.y = rounded_pos.y + 1 + player_positions[player_name] = rounded_pos + was_wielding[player_name] = true +end) + + +minetest.register_on_leaveplayer(function(player) + local player_name = player:get_player_name() + local pos = player_positions[player_name] + local nodename = minetest.get_node(pos).name + if nodename == "technic:light" then + minetest.remove_node(pos) + end + player_positions[player_name] = nil +end) + +minetest.register_globalstep(function(dtime) + for i, player in pairs(minetest.get_connected_players()) do + local player_name = player:get_player_name() + local flashlight_weared = check_for_flashlight(player) + local pos = player:getpos() + local rounded_pos = vector.round(pos) + rounded_pos.y = rounded_pos.y + 1 + local old_pos = player_positions[player_name] + local player_moved = old_pos and not vector.equals(old_pos, rounded_pos) + if not old_pos then + old_pos = rounded_pos + player_moved = true + end + + -- Remove light, flashlight weared out or was removed from hotbar + if was_wielding[player_name] and not flashlight_weared then + was_wielding[player_name] = false + local node = minetest.get_node_or_nil(old_pos) + if node and node.name == "technic:light" then + minetest.remove_node(old_pos) + end + elseif (player_moved or not was_wielding[player_name]) and flashlight_weared then + local node = minetest.get_node_or_nil(rounded_pos) + if node and node.name == "air" then + minetest.set_node(rounded_pos, {name="technic:light"}) + end + local node = minetest.get_node_or_nil(old_pos) + if node and node.name == "technic:light" then + minetest.remove_node(old_pos) + end + player_positions[player_name] = rounded_pos + was_wielding[player_name] = true + end + end +end) + +minetest.register_node("technic:light", { + drawtype = "glasslike", + tile_images = {"technic_light.png"}, + paramtype = "light", + groups = {not_in_creative_inventory=1}, + drop = "", + walkable = false, + buildable_to = true, + sunlight_propagates = true, + light_source = LIGHT_MAX, + pointable = false, +}) diff --git a/mods/technic/technic/tools/init.lua b/mods/technic/technic/tools/init.lua new file mode 100644 index 0000000..b8d9127 --- /dev/null +++ b/mods/technic/technic/tools/init.lua @@ -0,0 +1,22 @@ +local path = technic.modpath.."/tools" + +if technic.config:get_bool("enable_mining_drill") then + dofile(path.."/mining_drill.lua") +end +if technic.config:get_bool("enable_mining_laser") then + dofile(path.."/mining_lasers.lua") +end +if technic.config:get_bool("enable_flashlight") then + dofile(path.."/flashlight.lua") +end +dofile(path.."/cans.lua") +dofile(path.."/chainsaw.lua") +dofile(path.."/tree_tap.lua") +dofile(path.."/sonic_screwdriver.lua") +dofile(path.."/prospector.lua") + +if minetest.get_modpath("screwdriver") then + -- compatibility alias + minetest.register_alias("technic:screwdriver", "screwdriver:screwdriver") +end + diff --git a/mods/technic/technic/tools/mining_drill.lua b/mods/technic/technic/tools/mining_drill.lua new file mode 100644 index 0000000..cb7ebc0 --- /dev/null +++ b/mods/technic/technic/tools/mining_drill.lua @@ -0,0 +1,670 @@ +local max_charge = {50000, 200000, 650000,1} +local power_usage_per_node = {1000, 2000, 3000,0} + +local S = technic.getter + +local mining_drill_mode_text = { + {S("Single node.")}, + {S("3 nodes deep.")}, + {S("3 nodes wide.")}, + {S("3 nodes tall.")}, + {S("3x3 nodes.")}, +} + +local function drill_dig_it0 (pos,player) + if minetest.is_protected(pos, player:get_player_name()) then + minetest.record_protection_violation(pos, player:get_player_name()) + return + end + local node=minetest.get_node(pos) + if node.name == "air" or node.name == "ignore" then return end + if node.name == "default:lava_source" then return end + if node.name == "default:lava_flowing" then return end + if node.name == "tutorial:stone_with_titan" then return end + if node.name == "default:water_source" then minetest.remove_node(pos) return end + if node.name == "default:water_flowing" then minetest.remove_node(pos) return end + minetest.node_dig(pos,node,player) +end + +local function drill_dig_it1 (player) + local dir=player:get_look_dir() + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then return 0 end + return 1 + end + if dir.z>0 then return 2 end + return 3 +end + +local function drill_dig_it2 (pos,player) + drill_dig_it0 (pos,player) + pos.z=pos.z+1 + drill_dig_it0 (pos,player) + pos.z=pos.z-2 + drill_dig_it0 (pos,player) + pos.z=pos.z+1 + pos.y=pos.y+1 + drill_dig_it0 (pos,player) + pos.z=pos.z+1 + drill_dig_it0 (pos,player) + pos.z=pos.z-2 + drill_dig_it0 (pos,player) + pos.z=pos.z+1 + pos.y=pos.y-2 + drill_dig_it0 (pos,player) + pos.z=pos.z+1 + drill_dig_it0 (pos,player) + pos.z=pos.z-2 + drill_dig_it0 (pos,player) +end + +local function drill_dig_it3 (pos,player) + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + drill_dig_it0 (pos,player) + pos.x=pos.x-2 + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + pos.y=pos.y+1 + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + drill_dig_it0 (pos,player) + pos.x=pos.x-2 + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + pos.y=pos.y-2 + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + drill_dig_it0 (pos,player) + pos.x=pos.x-2 + drill_dig_it0 (pos,player) +end + +local function drill_dig_it4 (pos,player) + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + drill_dig_it0 (pos,player) + pos.x=pos.x-2 + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + pos.z=pos.z+1 + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + drill_dig_it0 (pos,player) + pos.x=pos.x-2 + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + pos.z=pos.z-2 + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + drill_dig_it0 (pos,player) + pos.x=pos.x-2 + drill_dig_it0 (pos,player) +end +local function drill_dig_it(pos, player, mode) + if mode == 1 then + drill_dig_it0(pos, player) + end + + if mode == 2 then -- 3 deep + dir = drill_dig_it1(player) + if dir == 0 then -- x+ + drill_dig_it0(pos, player) + pos.x = pos.x + 1 + drill_dig_it0(pos, player) + pos.x = pos.x + 1 + drill_dig_it0(pos, player) + end + if dir == 1 then -- x- + drill_dig_it0(pos, player) + pos.x=pos.x-1 + drill_dig_it0 (pos,player) + pos.x=pos.x-1 + drill_dig_it0 (pos,player) + end + if dir==2 then -- z+ + drill_dig_it0 (pos,player) + pos.z=pos.z+1 + drill_dig_it0 (pos,player) + pos.z=pos.z+1 + drill_dig_it0 (pos,player) + end + if dir==3 then -- z- + drill_dig_it0 (pos,player) + pos.z=pos.z-1 + drill_dig_it0 (pos,player) + pos.z=pos.z-1 + drill_dig_it0 (pos,player) + end + end + + if mode==3 then -- 3 wide + dir=drill_dig_it1(player) + if dir==0 or dir==1 then -- x + drill_dig_it0 (pos,player) + pos.z=pos.z+1 + drill_dig_it0 (pos,player) + pos.z=pos.z-2 + drill_dig_it0 (pos,player) + end + if dir==2 or dir==3 then -- z + drill_dig_it0 (pos,player) + pos.x=pos.x+1 + drill_dig_it0 (pos,player) + pos.x=pos.x-2 + drill_dig_it0 (pos,player) + end + end + + if mode==4 then -- 3 tall, selected in the middle + drill_dig_it0 (pos,player) + pos.y=pos.y-1 + drill_dig_it0 (pos,player) + pos.y=pos.y-1 + drill_dig_it0 (pos,player) + end + + if mode==5 then -- 3 x 3 + local dir=player:get_look_dir() + if math.abs(dir.y)<0.5 then + dir=drill_dig_it1(player) + if dir==0 or dir==1 then -- x + drill_dig_it2(pos,player) + end + if dir==2 or dir==3 then -- z + drill_dig_it3(pos,player) + end + else + drill_dig_it4(pos,player) + end + end + + minetest.sound_play("mining_drill", {pos = pos, gain = 1.0, max_hear_distance = 10,}) +end + +local function pos_is_pointable(pos) + local node = minetest.get_node(pos) + local nodedef = minetest.registered_nodes[node.name] + return nodedef and nodedef.pointable +end + + +local function mining_drill_setmode(user,itemstack) + local player_name=user:get_player_name() + local item=itemstack:to_table() + local meta=minetest.deserialize(item["metadata"]) + if meta==nil then + meta={} + mode=0 + end + + if meta["mode"]==nil then + minetest.chat_send_player(player_name, S("Use while sneaking to change Mining Drill Mk%d modes."):format(3)) + meta["mode"]=0 + mode=0 + end + mode=(meta["mode"]) + local mode2 = mode + mode=mode+1 + if mode>=6 then mode=1 end + minetest.chat_send_player(player_name, S("Mining Drill Mk%d Mode %d"):format(3, mode)..": "..mining_drill_mode_text[mode][1]) + local items = user:get_wielded_item():get_name() + if mode2 == 0 then + item["name"]=items.."_"..mode + else + text = items:sub(1, -3) + item["name"]=text.."_"..mode + end + meta["mode"]=mode + item["metadata"]=minetest.serialize(meta) + itemstack:replace(item) + return itemstack +end + + +local function mining_drill_mk_handler(itemstack, user, pointed_thing) + local keys = user:get_player_control() + local player_name = user:get_player_name() + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.mode or keys.sneak then + return mining_drill_setmode(user, itemstack) + end + if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then + return + end + local items = user:get_wielded_item():get_name() + local text = items:sub(24, 24) + local charge_to_take = power_usage_per_node[tonumber(text)] + if meta.charge >= charge_to_take then + local pos = minetest.get_pointed_thing_position(pointed_thing, above) + drill_dig_it(pos, user, meta.mode) + meta.charge = meta.charge - charge_to_take + itemstack:set_metadata(minetest.serialize(meta)) + technic.set_RE_wear(itemstack, meta.charge, max_charge[tonumber(text)]) + print(max_charge[tonumber(text)]) + print(power_usage_per_node[tonumber(text)]) + print(meta.charge) + end + return itemstack +end + +local function mining_drill_mk1_handler(itemstack, user, pointed_thing) + local keys = user:get_player_control() + local player_name = user:get_player_name() + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.mode or keys.sneak then + return mining_drill_setmode(user, itemstack) + end + if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then + return + end + local items = user:get_wielded_item():get_name() + local text = items:sub(24, 24) + local charge_to_take = power_usage_per_node[1] + if meta.charge >= charge_to_take then + local pos = minetest.get_pointed_thing_position(pointed_thing, above) + drill_dig_it(pos, user, meta.mode) + meta.charge = meta.charge - charge_to_take + itemstack:set_metadata(minetest.serialize(meta)) + technic.set_RE_wear(itemstack, meta.charge, max_charge[1]) + print(max_charge[1]) + print(power_usage_per_node[1]) + print(meta.charge) + end + return itemstack +end +local function mining_drill_mkA_handler(itemstack, user, pointed_thing) + local keys = user:get_player_control() + local player_name = user:get_player_name() + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.mode or keys.sneak then + return mining_drill_setmode(user, itemstack) + end + if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then + return + end + local items = user:get_wielded_item():get_name() + local text = items:sub(24, 24) + local charge_to_take = power_usage_per_node[4] + if meta.charge >= charge_to_take then + local pos = minetest.get_pointed_thing_position(pointed_thing, above) + drill_dig_it(pos, user, meta.mode) + meta.charge = meta.charge - charge_to_take + itemstack:set_metadata(minetest.serialize(meta)) + technic.set_RE_wear(itemstack, meta.charge, max_charge[4]) + print(max_charge[4]) + print(power_usage_per_node[4]) + print(meta.charge) + end + return itemstack +end +minetest.register_tool("technic:mining_drill", { + description = S("Mining Drill Mk%d"):format(1), + inventory_image = "technic_mining_drill.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user, pointed_thing) + mining_drill_mk1_handler(itemstack, user, pointed_thing) + return itemstack + end, +}) + +technic.register_power_tool("technic:mining_drill", max_charge[1]) + +for i = 1, 5 do + technic.register_power_tool("technic:mining_drill_"..i, max_charge[1]) + minetest.register_tool("technic:mining_drill_"..i, { + description = S("Mining Drill Mk%d Mode %d"):format(1, i), + inventory_image = "technic_mining_drill.png^technic_tool_mode"..i..".png", + wield_image = "technic_mining_drill_mk2.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + groups = {not_in_creative_inventory=1}, + on_use = function(itemstack, user, pointed_thing) + mining_drill_mk1_handler(itemstack, user, pointed_thing) + return itemstack + end, + }) +end +minetest.register_tool("technic:mining_drill_mk2", { + description = S("Mining Drill Mk%d"):format(2), + inventory_image = "technic_mining_drill_mk2.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user, pointed_thing) + mining_drill_mk_handler(itemstack, user, pointed_thing) + return itemstack + end, +}) + +technic.register_power_tool("technic:mining_drill_mk2", max_charge[2]) + +for i = 1, 5 do + technic.register_power_tool("technic:mining_drill_mk2_"..i, max_charge[2]) + minetest.register_tool("technic:mining_drill_mk2_"..i, { + description = S("Mining Drill Mk%d Mode %d"):format(2, i), + inventory_image = "technic_mining_drill_mk2.png^technic_tool_mode"..i..".png", + wield_image = "technic_mining_drill_mk2.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + groups = {not_in_creative_inventory=1}, + on_use = function(itemstack, user, pointed_thing) + mining_drill_mk_handler(itemstack, user, pointed_thing) + return itemstack + end, + }) +end + +minetest.register_tool("technic:mining_drill_mk3", { + description = S("Mining Drill Mk%d"):format(3), + inventory_image = "technic_mining_drill_mk3.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user, pointed_thing) + mining_drill_mk_handler(itemstack,user,pointed_thing) + return itemstack + end, +}) + +technic.register_power_tool("technic:mining_drill_mk3", max_charge[3]) + +for i=1,5,1 do + technic.register_power_tool("technic:mining_drill_mk3_"..i, max_charge[3]) + minetest.register_tool("technic:mining_drill_mk3_"..i, { + description = S("Mining Drill Mk%d Mode %d"):format(3, i), + inventory_image = "technic_mining_drill_mk3.png^technic_tool_mode"..i..".png", + wield_image = "technic_mining_drill_mk3.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + groups = {not_in_creative_inventory=1}, + on_use = function(itemstack, user, pointed_thing) + mining_drill_mk_handler(itemstack,user,pointed_thing) + return itemstack + end, + }) +end + + +minetest.register_tool("technic:mining_drill_mkA1", { + description = "Admin tool 8: Mining drill", + inventory_image = "technic_mining_drill_Admin1.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + local player_name = user:get_player_name() + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.mode or keys.sneak then + return mining_drill_setmode(user, itemstack) + end + if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) then + return + end + local items = user:get_wielded_item():get_name() + local pos = minetest.get_pointed_thing_position(pointed_thing, above) + drill_dig_it(pos, user, meta.mode) + return itemstack + end, +}) + +technic.register_power_tool("technic:mining_drill_mkA1", max_charge[4]) + +for i=1,5,1 do + technic.register_power_tool("technic:mining_drill_mkA1_"..i, max_charge[4]) + minetest.register_tool("technic:mining_drill_mkA1_"..i, { + description = "Admin tool 8: Mining drill Mode "..i, + inventory_image = "technic_mining_drill_Admin1.png^technic_tool_mode"..i..".png", + wield_image = "technic_mining_drill_Admin1.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + groups = {not_in_creative_inventory=1}, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + local player_name = user:get_player_name() + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.mode or keys.sneak then + return mining_drill_setmode(user, itemstack) + end + if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) then + return + end + local items = user:get_wielded_item():get_name() + local pos = minetest.get_pointed_thing_position(pointed_thing, above) + drill_dig_it(pos, user, meta.mode) + return itemstack + end, + }) +end + + + +local mining_drill_list = { +-- {, , }, + {"1", 10000, 5000}, + {"2", 20000, 5000}, + {"3", 30000, 5000}, + {"4", 40000, 5000}, + {"5", 50000, 5000}, + {"6", 60000, 4500}, + {"7", 70000, 4500}, + {"8", 80000, 4500}, + {"9", 90000, 4500}, + {"10", 100000, 4500}, + {"11", 120000, 4000}, + {"12", 140000, 4000}, + {"13", 160000, 4000}, + {"14", 180000, 4000}, + {"15", 200000, 4000}, + {"16", 220000, 3500}, + {"17", 240000, 3500}, + {"18", 260000, 3500}, + {"19", 280000, 3500}, + {"20", 300000, 3500}, + {"21", 330000, 3000}, + {"22", 360000, 3000}, + {"23", 390000, 3000}, + {"24", 420000, 3000}, + {"25", 450000, 3000}, + {"26", 480000, 2500}, + {"27", 510000, 2500}, + {"28", 540000, 2500}, + {"29", 570000, 2500}, + {"30", 600000, 2500}, + {"31", 640000, 2000}, + {"32", 680000, 2000}, + {"33", 720000, 2000}, + {"34", 760000, 2000}, + {"35", 800000, 2000}, + {"36", 840000, 1500}, + {"37", 880000, 1500}, + {"38", 920000, 1500}, + {"39", 960000, 1500}, + {"40", 1000000, 1500}, + {"41", 1050000, 1000}, + {"42", 1100000, 1000}, + {"43", 1150000, 1000}, + {"44", 1200000, 1000}, + {"45", 1250000, 1000}, + {"46", 1300000, 500}, + {"47", 1350000, 500}, + {"48", 1400000, 500}, + {"49", 1450000, 500}, + {"50", 1500000, 500}, + {"51", 1500000, 490}, + {"52", 1500000, 480}, + {"53", 1500000, 470}, + {"54", 1500000, 460}, + {"55", 1500000, 450}, + {"56", 1500000, 440}, + {"57", 1500000, 430}, + {"58", 1500000, 420}, + {"59", 1500000, 410}, + {"60", 1500000, 400}, + {"61", 1500000, 390}, + {"62", 1500000, 380}, + {"63", 1500000, 370}, + {"64", 1500000, 360}, + {"65", 1500000, 350}, + {"66", 1500000, 340}, + {"67", 1500000, 330}, + {"68", 1500000, 320}, + {"69", 1500000, 310}, + {"70", 1500000, 300}, + {"71", 1500000, 290}, + {"72", 1500000, 280}, + {"73", 1500000, 270}, + {"74", 1500000, 260}, + {"75", 1500000, 250}, + {"76", 1500000, 240}, + {"77", 1500000, 230}, + {"78", 1500000, 220}, + {"79", 1500000, 210}, + {"80", 1500000, 200}, + {"81", 1500000, 190}, + {"82", 1500000, 180}, + {"83", 1500000, 170}, + {"84", 1500000, 160}, + {"85", 1500000, 150}, + {"86", 1500000, 140}, + {"87", 1500000, 130}, + {"88", 1500000, 120}, + {"89", 1500000, 110}, + {"90", 1500000, 100}, + {"91", 1500000, 90}, + {"92", 1500000, 80}, + {"93", 1500000, 70}, + {"94", 1500000, 60}, + {"95", 1500000, 50}, + {"96", 1500000, 40}, + {"97", 1500000, 30}, + {"98", 1500000, 20}, + {"99", 1500000, 10}, + {"100", 1500000, 10}, + {"101", 1500000, 10}, + {"102", 1500000, 10}, + {"103", 1500000, 10}, + {"104", 1500000, 10}, + {"105", 1500000, 10}, + {"106", 1500000, 10}, + {"107", 1500000, 10}, + {"108", 1500000, 10}, + {"109", 1500000, 10}, + {"110", 1500000, 10}, + {"111", 1500000, 10}, + {"112", 1500000, 10}, + {"113", 1500000, 10}, + {"114", 1500000, 10}, + {"115", 1500000, 10}, + {"116", 1500000, 10}, + {"117", 1500000, 10}, + {"118", 1500000, 10}, + {"119", 1500000, 10}, + {"120", 1500000, 10}, + {"121", 1500000, 10}, + {"122", 1500000, 10}, + {"123", 1500000, 10}, + {"124", 1500000, 10}, + {"125", 1500000, 10}, + {"126", 1500000, 10}, + {"127", 1500000, 10}, + {"128", 1500000, 10}, + {"129", 1500000, 10}, + {"130", 1500000, 10}, + {"131", 1500000, 10}, + {"132", 1500000, 10}, + {"133", 1500000, 10}, + {"134", 1500000, 10}, + {"135", 1500000, 10}, + {"136", 1500000, 10}, + {"137", 1500000, 10}, + {"138", 1500000, 10}, + {"139", 1500000, 10}, + {"140", 1500000, 10}, + {"141", 1500000, 9}, + {"142", 1500000, 8}, + {"143", 1500000, 7}, + {"144", 1500000, 6}, + {"145", 1500000, 5}, + {"146", 1600000, 4}, + {"147", 1700000, 3}, + {"148", 1800000, 2}, + {"149", 1900000, 1}, + {"150", 2000000, 1}, +} +for _, m in pairs(mining_drill_list) do + technic.register_power_tool("technic:drill_mkS"..m[1], m[2]) + minetest.register_tool("technic:drill_mkS"..m[1], { + description = "Spezial Mining drill lv."..m[1], + inventory_image = "technic_mining_drill_mkS"..m[1]..".png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + local player_name = user:get_player_name() + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.mode or keys.sneak then + return mining_drill_setmode(user, itemstack) + end + if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then + return + end + local items = user:get_wielded_item():get_name() + local charge_to_take = m[3] + if meta.charge >= charge_to_take then + local pos = minetest.get_pointed_thing_position(pointed_thing, above) + drill_dig_it(pos, user, meta.mode) + meta.charge = meta.charge - charge_to_take + itemstack:set_metadata(minetest.serialize(meta)) + technic.set_RE_wear(itemstack, meta.charge, m[2]) + print(m[2]) + print(m[3]) + print(meta.charge) + end + return itemstack + end, + }) + for i=1,5,1 do + technic.register_power_tool("technic:drill_mkS"..m[1].."_"..i, m[2]) + minetest.register_tool("technic:drill_mkS"..m[1].."_"..i, { + description = "Spezial Mining drill lv."..m[1].." Mode "..i, + inventory_image = "technic_mining_drill_mkS"..m[1]..".png^technic_tool_mode"..i..".png", + wield_image = "technic_mining_drill_mkS"..m[1]..".png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + groups = {not_in_creative_inventory=1}, + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + local player_name = user:get_player_name() + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.mode or keys.sneak then + return mining_drill_setmode(user, itemstack) + end + if pointed_thing.type ~= "node" or not pos_is_pointable(pointed_thing.under) or not meta.charge then + return + end + local items = user:get_wielded_item():get_name() + local charge_to_take = m[3] + if meta.charge >= charge_to_take then + local pos = minetest.get_pointed_thing_position(pointed_thing, above) + drill_dig_it(pos, user, meta.mode) + meta.charge = meta.charge - charge_to_take + itemstack:set_metadata(minetest.serialize(meta)) + technic.set_RE_wear(itemstack, meta.charge, m[2]) + print(m[2]) + print(m[3]) + print(meta.charge) + end + return itemstack + end, + }) + end +end + +minetest.register_craft({ + output = 'technic:drill_mkS1', + recipe = { + {'tutorial:coin2', 'tutorial:coin2', 'tutorial:coin2'}, + {'', 'moreores:mithril_ingot', 'tutorial:admin'}, + {'', '', 'moreores:mithril_ingot'}, + } +}) \ No newline at end of file diff --git a/mods/technic/technic/tools/mining_lasers.lua b/mods/technic/technic/tools/mining_lasers.lua new file mode 100644 index 0000000..82eaa1d --- /dev/null +++ b/mods/technic/technic/tools/mining_lasers.lua @@ -0,0 +1,355 @@ +local mining_lasers_list = { +-- {, , , }, + {"1", 7, 50000, 1000}, + {"2", 14, 200000, 2000}, + {"3", 21, 650000, 3000}, + +} + +local S = technic.getter + +-- Based on code by Uberi: https://gist.github.com/Uberi/3125280 +local function rayIter(pos, dir, range) + local p = vector.round(pos) + local x_step, y_step, z_step = 0, 0, 0 + local x_component, y_component, z_component = 0, 0, 0 + local x_intersect, y_intersect, z_intersect = 0, 0, 0 + + if dir.x == 0 then + x_intersect = math.huge + elseif dir.x > 0 then + x_step = 1 + x_component = 1 / dir.x + x_intersect = x_component + else + x_step = -1 + x_component = 1 / -dir.x + end + if dir.y == 0 then + y_intersect = math.huge + elseif dir.y > 0 then + y_step = 1 + y_component = 1 / dir.y + y_intersect = y_component + else + y_step = -1 + y_component = 1 / -dir.y + end + if dir.z == 0 then + z_intersect = math.huge + elseif dir.z > 0 then + z_step = 1 + z_component = 1 / dir.z + z_intersect = z_component + else + z_step = -1 + z_component = 1 / -dir.z + end + + return function() + if x_intersect < y_intersect then + if x_intersect < z_intersect then + p.x = p.x + x_step + x_intersect = x_intersect + x_component + else + p.z = p.z + z_step + z_intersect = z_intersect + z_component + end + elseif y_intersect < z_intersect then + p.y = p.y + y_step + y_intersect = y_intersect + y_component + else + p.z = p.z + z_step + z_intersect = z_intersect + z_component + end + if vector.distance(pos, p) > range then + return nil + end + return p + end +end + +local function laser_node(pos, node, player) + local def = minetest.registered_nodes[node.name] + if def and def.liquidtype ~= "none" then + minetest.remove_node(pos) + minetest.add_particle({ + pos = pos, + vel = {x=0, y=2, z=0}, + acc = {x=0, y=-1, z=0}, + expirationtime = 1.5, + size = 6 + math.random() * 2, + texture = "smoke_puff.png^[transform" .. math.random(0, 7), + }) + return + end + minetest.node_dig(pos, node, player) +end + +local no_destroy = { + ["air"] = true, + ["default:lava_source"] = true, + ["default:lava_flowing"] = true, +} +local function laser_shoot(player, range, particle_texture, sound) + local player_pos = player:getpos() + local player_name = player:get_player_name() + local dir = player:get_look_dir() + + local start_pos = vector.new(player_pos) + -- Adjust to head height + start_pos.y = start_pos.y + 1.9 + minetest.add_particle({ + pos = startpos, + vel = dir, + acc = vector.multiply(dir, 50), + expirationtime = range / 11, + size = 1, + texture = particle_texture .. "^[transform" .. math.random(0, 7), + }) + minetest.sound_play(sound, {pos = player_pos, max_hear_distance = range}) + for pos in rayIter(start_pos, dir, range) do + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + break + end + local node = minetest.get_node_or_nil(pos) + if not node then + break + end + if not no_destroy[node.name] then + laser_node(pos, node, player) + end + end +end + + +for _, m in pairs(mining_lasers_list) do + technic.register_power_tool("technic:laser_mk"..m[1], m[3]) + minetest.register_tool("technic:laser_mk"..m[1], { + description = S("Mining Laser Mk%d"):format(m[1]), + inventory_image = "technic_mining_laser_mk"..m[1]..".png", + stack_max = 1, + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user) + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.charge then + return + end + + -- If there's enough charge left, fire the laser + if meta.charge >= m[4] then + meta.charge = meta.charge - m[4] + laser_shoot(user, m[2], "technic_laser_beam_mk"..m[1]..".png", "technic_laser_mk"..m[1]) + technic.set_RE_wear(itemstack, meta.charge, m[3]) + itemstack:set_metadata(minetest.serialize(meta)) + end + return itemstack + end, + }) +end + +local mining_lasers_list2 = { +-- {, , , }, + {"1", 1, 10000, 5000}, + {"2", 2, 20000, 5000}, + {"3", 3, 30000, 5000}, + {"4", 4, 40000, 5000}, + {"5", 5, 50000, 5000}, + {"6", 6, 60000, 4500}, + {"7", 7, 70000, 4500}, + {"8", 8, 80000, 4500}, + {"9", 9, 90000, 4500}, + {"10", 10, 100000, 4500}, + {"11", 11, 120000, 4000}, + {"12", 12, 140000, 4000}, + {"13", 13, 160000, 4000}, + {"14", 14, 180000, 4000}, + {"15", 15, 200000, 4000}, + {"16", 16, 220000, 3500}, + {"17", 17, 240000, 3500}, + {"18", 18, 260000, 3500}, + {"19", 19, 280000, 3500}, + {"20", 20, 300000, 3500}, + {"21", 20, 330000, 3000}, + {"22", 20, 360000, 3000}, + {"23", 20, 390000, 3000}, + {"24", 20, 420000, 3000}, + {"25", 20, 450000, 3000}, + {"26", 20, 480000, 2500}, + {"27", 20, 510000, 2500}, + {"28", 20, 540000, 2500}, + {"29", 20, 570000, 2500}, + {"30", 20, 600000, 2500}, + {"31", 20, 640000, 2000}, + {"32", 20, 680000, 2000}, + {"33", 20, 720000, 2000}, + {"34", 20, 760000, 2000}, + {"35", 20, 800000, 2000}, + {"36", 20, 840000, 1500}, + {"37", 20, 880000, 1500}, + {"38", 20, 920000, 1500}, + {"39", 20, 960000, 1500}, + {"40", 20, 1000000, 1500}, + {"41", 20, 1050000, 1000}, + {"42", 20, 1100000, 1000}, + {"43", 20, 1150000, 1000}, + {"44", 20, 1200000, 1000}, + {"45", 20, 1250000, 1000}, + {"46", 20, 1300000, 500}, + {"47", 20, 1350000, 500}, + {"48", 20, 1400000, 500}, + {"49", 20, 1450000, 500}, + {"50", 20, 1500000, 500}, + {"51", 20, 1500000, 490}, + {"52", 20, 1500000, 480}, + {"53", 20, 1500000, 470}, + {"54", 20, 1500000, 460}, + {"55", 20, 1500000, 450}, + {"56", 20, 1500000, 440}, + {"57", 20, 1500000, 430}, + {"58", 20, 1500000, 420}, + {"59", 20, 1500000, 410}, + {"60", 20, 1500000, 400}, + {"61", 20, 1500000, 390}, + {"62", 20, 1500000, 380}, + {"63", 20, 1500000, 370}, + {"64", 20, 1500000, 360}, + {"65", 20, 1500000, 350}, + {"66", 20, 1500000, 340}, + {"67", 20, 1500000, 330}, + {"68", 20, 1500000, 320}, + {"69", 20, 1500000, 310}, + {"70", 20, 1500000, 300}, + {"71", 20, 1500000, 290}, + {"72", 20, 1500000, 280}, + {"73", 20, 1500000, 270}, + {"74", 20, 1500000, 260}, + {"75", 20, 1500000, 250}, + {"76", 20, 1500000, 240}, + {"77", 20, 1500000, 230}, + {"78", 20, 1500000, 220}, + {"79", 20, 1500000, 210}, + {"80", 20, 1500000, 200}, + {"81", 20, 1500000, 190}, + {"82", 20, 1500000, 180}, + {"83", 20, 1500000, 170}, + {"84", 20, 1500000, 160}, + {"85", 20, 1500000, 150}, + {"86", 20, 1500000, 140}, + {"87", 20, 1500000, 130}, + {"88", 20, 1500000, 120}, + {"89", 20, 1500000, 110}, + {"90", 20, 1500000, 100}, + {"91", 20, 1500000, 90}, + {"92", 20, 1500000, 80}, + {"93", 20, 1500000, 70}, + {"94", 20, 1500000, 60}, + {"95", 20, 1500000, 50}, + {"96", 20, 1500000, 40}, + {"97", 20, 1500000, 30}, + {"98", 20, 1500000, 20}, + {"99", 20, 1500000, 10}, + {"100", 20, 1500000, 10}, + {"101", 21, 1500000, 10}, + {"102", 21, 1500000, 10}, + {"103", 21, 1500000, 10}, + {"104", 21, 1500000, 10}, + {"105", 21, 1500000, 10}, + {"106", 22, 1500000, 10}, + {"107", 22, 1500000, 10}, + {"108", 22, 1500000, 10}, + {"109", 22, 1500000, 10}, + {"110", 22, 1500000, 10}, + {"111", 23, 1500000, 10}, + {"112", 23, 1500000, 10}, + {"113", 23, 1500000, 10}, + {"114", 23, 1500000, 10}, + {"115", 23, 1500000, 10}, + {"116", 24, 1500000, 10}, + {"117", 24, 1500000, 10}, + {"118", 24, 1500000, 10}, + {"119", 24, 1500000, 10}, + {"120", 24, 1500000, 10}, + {"121", 25, 1500000, 10}, + {"122", 25, 1500000, 10}, + {"123", 25, 1500000, 10}, + {"124", 25, 1500000, 10}, + {"125", 25, 1500000, 10}, + {"126", 26, 1500000, 10}, + {"127", 26, 1500000, 10}, + {"128", 26, 1500000, 10}, + {"129", 26, 1500000, 10}, + {"130", 26, 1500000, 10}, + {"131", 27, 1500000, 10}, + {"132", 27, 1500000, 10}, + {"133", 27, 1500000, 10}, + {"134", 27, 1500000, 10}, + {"135", 27, 1500000, 10}, + {"136", 28, 1500000, 10}, + {"137", 28, 1500000, 10}, + {"138", 28, 1500000, 10}, + {"139", 28, 1500000, 10}, + {"140", 28, 1500000, 10}, + {"141", 29, 1500000, 9}, + {"142", 29, 1500000, 8}, + {"143", 29, 1500000, 7}, + {"144", 29, 1500000, 6}, + {"145", 29, 1500000, 5}, + {"146", 30, 1600000, 4}, + {"147", 30, 1700000, 3}, + {"148", 30, 1800000, 2}, + {"149", 30, 1900000, 1}, + {"150", 30, 2000000, 1}, +} + + +for _, m in pairs(mining_lasers_list2) do + technic.register_power_tool("technic:laser_mkS"..m[1], m[3]) + minetest.register_tool("technic:laser_mkS"..m[1], { + description = S("Spezial Mining Laser lv.%d"):format(m[1]), + inventory_image = "technic_mining_laser_mkS"..m[1]..".png", + stack_max = 1, + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user) + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.charge then + return + end + + -- If there's enough charge left, fire the laser + if meta.charge >= m[4] then + meta.charge = meta.charge - m[4] + laser_shoot(user, m[2], "technic_laser_beam_mk"..m[1]..".png", "technic_laser_mk"..m[1]) + technic.set_RE_wear(itemstack, meta.charge, m[3]) + itemstack:set_metadata(minetest.serialize(meta)) + end + return itemstack + end, + }) +end + +minetest.register_craft({ + output = 'technic:laser_mkS1', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'', 'moreores:mithril_ingot', 'tutorial:admin'}, + {'', '', 'moreores:mithril_ingot'}, + } +}) + +technic.register_power_tool("technic:laser_mkA1", 1) +minetest.register_tool("technic:laser_mkA1", { + description = S("Admin tool 4: Laser Gun"), + inventory_image = "technic_mining_laser_Admin1.png", + stack_max = 1, + on_use = function(itemstack, user) + laser_shoot(user, 50, "technic_laser_beam_mk1.png", "technic_laser_mk1") + return itemstack + end, +}) + + + diff --git a/mods/technic/technic/tools/mining_lasers.lua~ b/mods/technic/technic/tools/mining_lasers.lua~ new file mode 100644 index 0000000..82204c3 --- /dev/null +++ b/mods/technic/technic/tools/mining_lasers.lua~ @@ -0,0 +1,1327 @@ +local mining_lasers_list = { +-- {, , , }, + {"1", 7, 50000, 1000}, + {"2", 14, 200000, 2000}, + {"3", 21, 650000, 3000}, + +} + +local S = technic.getter + +minetest.register_craft({ + output = 'technic:laser_mk1', + recipe = { + {'gems:emerald_gem', 'gems:emerald_gem','gems:emerald_gem'}, + {'gems:emerald_gem', 'tutorial:zauberstab', 'gems:emerald_gem'}, + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + } +}) +minetest.register_craft({ + output = 'technic:laser_mk2', + recipe = { + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + {'gems:emerald_gem', 'technic:laser_mk1', 'gems:emerald_gem'}, + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + } +}) +minetest.register_craft({ + output = 'technic:laser_mk3', + recipe = { + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + {'gems:emerald_gem', 'technic:laser_mk2', 'gems:emerald_gem'}, + {'gems:emerald_gem', 'gems:emerald_gem', 'gems:emerald_gem'}, + } +}) + +-- Based on code by Uberi: https://gist.github.com/Uberi/3125280 +local function rayIter(pos, dir, range) + local p = vector.round(pos) + local x_step, y_step, z_step = 0, 0, 0 + local x_component, y_component, z_component = 0, 0, 0 + local x_intersect, y_intersect, z_intersect = 0, 0, 0 + + if dir.x == 0 then + x_intersect = math.huge + elseif dir.x > 0 then + x_step = 1 + x_component = 1 / dir.x + x_intersect = x_component + else + x_step = -1 + x_component = 1 / -dir.x + end + if dir.y == 0 then + y_intersect = math.huge + elseif dir.y > 0 then + y_step = 1 + y_component = 1 / dir.y + y_intersect = y_component + else + y_step = -1 + y_component = 1 / -dir.y + end + if dir.z == 0 then + z_intersect = math.huge + elseif dir.z > 0 then + z_step = 1 + z_component = 1 / dir.z + z_intersect = z_component + else + z_step = -1 + z_component = 1 / -dir.z + end + + return function() + if x_intersect < y_intersect then + if x_intersect < z_intersect then + p.x = p.x + x_step + x_intersect = x_intersect + x_component + else + p.z = p.z + z_step + z_intersect = z_intersect + z_component + end + elseif y_intersect < z_intersect then + p.y = p.y + y_step + y_intersect = y_intersect + y_component + else + p.z = p.z + z_step + z_intersect = z_intersect + z_component + end + if vector.distance(pos, p) > range then + return nil + end + return p + end +end + +local function laser_node(pos, node, player) + local def = minetest.registered_nodes[node.name] + if def and def.liquidtype ~= "none" then + minetest.remove_node(pos) + minetest.add_particle({ + pos = pos, + vel = {x=0, y=2, z=0}, + acc = {x=0, y=-1, z=0}, + expirationtime = 1.5, + size = 6 + math.random() * 2, + texture = "smoke_puff.png^[transform" .. math.random(0, 7), + }) + return + end + minetest.node_dig(pos, node, player) +end + +local no_destroy = { + ["air"] = true, + ["default:lava_source"] = true, + ["default:lava_flowing"] = true, +} +local function laser_shoot(player, range, particle_texture, sound) + local player_pos = player:getpos() + local player_name = player:get_player_name() + local dir = player:get_look_dir() + + local start_pos = vector.new(player_pos) + -- Adjust to head height + start_pos.y = start_pos.y + 1.9 + minetest.add_particle({ + pos = startpos, + vel = dir, + acc = vector.multiply(dir, 50), + expirationtime = range / 11, + size = 1, + texture = particle_texture .. "^[transform" .. math.random(0, 7), + }) + minetest.sound_play(sound, {pos = player_pos, max_hear_distance = range}) + for pos in rayIter(start_pos, dir, range) do + if minetest.is_protected(pos, player_name) then + minetest.record_protection_violation(pos, player_name) + break + end + local node = minetest.get_node_or_nil(pos) + if not node then + break + end + if not no_destroy[node.name] then + laser_node(pos, node, player) + end + end +end + + +for _, m in pairs(mining_lasers_list) do + technic.register_power_tool("technic:laser_mk"..m[1], m[3]) + minetest.register_tool("technic:laser_mk"..m[1], { + description = S("Mining Laser Mk%d"):format(m[1]), + inventory_image = "technic_mining_laser_mk"..m[1]..".png", + stack_max = 1, + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user) + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.charge then + return + end + + -- If there's enough charge left, fire the laser + if meta.charge >= m[4] then + meta.charge = meta.charge - m[4] + laser_shoot(user, m[2], "technic_laser_beam_mk"..m[1]..".png", "technic_laser_mk"..m[1]) + technic.set_RE_wear(itemstack, meta.charge, m[3]) + itemstack:set_metadata(minetest.serialize(meta)) + end + return itemstack + end, + }) +end + +local mining_lasers_list2 = { +-- {, , , }, + {"1", 1, 10000, 5000}, + {"2", 2, 20000, 5000}, + {"3", 3, 30000, 5000}, + {"4", 4, 40000, 5000}, + {"5", 5, 50000, 5000}, + + {"6", 6, 60000, 4500}, + {"7", 7, 70000, 4500}, + {"8", 8, 80000, 4500}, + {"9", 9, 90000, 4500}, + {"10", 10, 100000, 4500}, +--1 + {"11", 11, 120000, 4000}, + {"12", 12, 140000, 4000}, + {"13", 13, 160000, 4000}, + {"14", 14, 180000, 4000}, + {"15", 15, 200000, 4000}, + + {"16", 16, 220000, 3500}, + {"17", 17, 240000, 3500}, + {"18", 18, 260000, 3500}, + {"19", 19, 280000, 3500}, + {"20", 20, 300000, 3500}, +--2 + {"21", 20, 330000, 3000}, + {"22", 20, 360000, 3000}, + {"23", 20, 390000, 3000}, + {"24", 20, 420000, 3000}, + {"25", 20, 450000, 3000}, + + {"26", 20, 480000, 2500}, + {"27", 20, 510000, 2500}, + {"28", 20, 540000, 2500}, + {"29", 20, 570000, 2500}, + {"30", 20, 600000, 2500}, +--3 + {"31", 20, 640000, 2000}, + {"32", 20, 680000, 2000}, + {"33", 20, 720000, 2000}, + {"34", 20, 760000, 2000}, + {"35", 20, 800000, 2000}, + + {"36", 20, 840000, 1500}, + {"37", 20, 880000, 1500}, + {"38", 20, 920000, 1500}, + {"39", 20, 960000, 1500}, + {"40", 20, 1000000, 1500}, +--4 + {"41", 20, 1050000, 1000}, + {"42", 20, 1100000, 1000}, + {"43", 20, 1150000, 1000}, + {"44", 20, 1200000, 1000}, + {"45", 20, 1250000, 1000}, + + {"46", 20, 1300000, 500}, + {"47", 20, 1350000, 500}, + {"48", 20, 1400000, 500}, + {"49", 20, 1450000, 500}, + {"50", 20, 1500000, 500}, +--5 + {"51", 20, 1500000, 490}, + {"52", 20, 1500000, 480}, + {"53", 20, 1500000, 470}, + {"54", 20, 1500000, 460}, + {"55", 20, 1500000, 450}, + + {"56", 20, 1500000, 440}, + {"57", 20, 1500000, 430}, + {"58", 20, 1500000, 420}, + {"59", 20, 1500000, 410}, + {"60", 20, 1500000, 400}, + + {"61", 20, 1500000, 390}, + {"62", 20, 1500000, 380}, + {"63", 20, 1500000, 370}, + {"64", 20, 1500000, 360}, + {"65", 20, 1500000, 350}, + + {"66", 20, 1500000, 340}, + {"67", 20, 1500000, 330}, + {"68", 20, 1500000, 320}, + {"69", 20, 1500000, 310}, + {"70", 20, 1500000, 300}, + + {"71", 20, 1500000, 290}, + {"72", 20, 1500000, 280}, + {"73", 20, 1500000, 270}, + {"74", 20, 1500000, 260}, + {"75", 20, 1500000, 250}, + + {"76", 20, 1500000, 240}, + {"77", 20, 1500000, 230}, + {"78", 20, 1500000, 220}, + {"79", 20, 1500000, 210}, + {"80", 20, 1500000, 200}, + + {"81", 20, 1500000, 190}, + {"82", 20, 1500000, 180}, + {"83", 20, 1500000, 170}, + {"84", 20, 1500000, 160}, + {"85", 20, 1500000, 150}, + + {"86", 20, 1500000, 140}, + {"87", 20, 1500000, 130}, + {"88", 20, 1500000, 120}, + {"89", 20, 1500000, 110}, + {"90", 20, 1500000, 100}, + + {"91", 20, 1500000, 90}, + {"92", 20, 1500000, 80}, + {"93", 20, 1500000, 70}, + {"94", 20, 1500000, 60}, + {"95", 20, 1500000, 50}, + + {"96", 20, 1500000, 40}, + {"97", 20, 1500000, 30}, + {"98", 20, 1500000, 20}, + {"99", 20, 1500000, 10}, + {"100", 20, 1500000, 10}, + + {"101", 21, 1500000, 10}, + {"102", 21, 1500000, 10}, + {"103", 21, 1500000, 10}, + {"104", 21, 1500000, 10}, + {"105", 21, 1500000, 10}, + + {"106", 22, 1500000, 10}, + {"107", 22, 1500000, 10}, + {"108", 22, 1500000, 10}, + {"109", 22, 1500000, 10}, + {"110", 22, 1500000, 10}, + + {"111", 23, 1500000, 10}, + {"112", 23, 1500000, 10}, + {"113", 23, 1500000, 10}, + {"114", 23, 1500000, 10}, + {"115", 23, 1500000, 10}, + + {"116", 24, 1500000, 10}, + {"117", 24, 1500000, 10}, + {"118", 24, 1500000, 10}, + {"119", 24, 1500000, 10}, + {"120", 24, 1500000, 10}, + + {"121", 25, 1500000, 10}, + {"122", 25, 1500000, 10}, + {"123", 25, 1500000, 10}, + {"124", 25, 1500000, 10}, + {"125", 25, 1500000, 10}, + + {"126", 26, 1500000, 10}, + {"127", 26, 1500000, 10}, + {"128", 26, 1500000, 10}, + {"129", 26, 1500000, 10}, + {"130", 26, 1500000, 10}, + + {"131", 27, 1500000, 10}, + {"132", 27, 1500000, 10}, + {"133", 27, 1500000, 10}, + {"134", 27, 1500000, 10}, + {"135", 27, 1500000, 10}, + + {"136", 28, 1500000, 10}, + {"137", 28, 1500000, 10}, + {"138", 28, 1500000, 10}, + {"139", 28, 1500000, 10}, + {"140", 28, 1500000, 10}, + + {"141", 29, 1500000, 9}, + {"142", 29, 1500000, 8}, + {"143", 29, 1500000, 7}, + {"144", 29, 1500000, 6}, + {"145", 29, 1500000, 5}, + + {"146", 30, 1600000, 4}, + {"147", 30, 1700000, 3}, + {"148", 30, 1800000, 2}, + {"149", 30, 1900000, 1}, + {"150", 30, 2000000, 1}, + +} + + +for _, m in pairs(mining_lasers_list2) do + technic.register_power_tool("technic:laser_mkS"..m[1], m[3]) + minetest.register_tool("technic:laser_mkS"..m[1], { + description = S("Spezial Laser Gun lv.%d"):format(m[1]), + inventory_image = "technic_mining_laser_mkS"..m[1]..".png", + stack_max = 1, + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user) + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.charge then + return + end + + -- If there's enough charge left, fire the laser + if meta.charge >= m[4] then + meta.charge = meta.charge - m[4] + laser_shoot(user, m[2], "technic_laser_beam_mk"..m[1]..".png", "technic_laser_mk"..m[1]) + technic.set_RE_wear(itemstack, meta.charge, m[3]) + itemstack:set_metadata(minetest.serialize(meta)) + end + return itemstack + end, + }) +end + +minetest.register_craft({ + output = 'technic:laser_mkS1', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'', 'moreores:mithril_ingot', 'tutorial:admin'}, + {'', '', 'moreores:mithril_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS2', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS1', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS3', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS2', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS4', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS3', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS5', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS4', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS6', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS5', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS7', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS6', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS8', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS7', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS9', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS8', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS10', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS9', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS11', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS10', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS12', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS11', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS13', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS12', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS14', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS13', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS15', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS14', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS16', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS15', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS17', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS16', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS18', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS17', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS19', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS18', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS20', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS19', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS21', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS20', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS22', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS21', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS23', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS22', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS24', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS23', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS25', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS24', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS26', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS25', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS27', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS26', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS28', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS27', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS29', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS28', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS30', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS29', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS31', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS30', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS32', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS31', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS33', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS32', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS34', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS33', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS35', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS34', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS36', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS35', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS37', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS36', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS38', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS37', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS39', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS38', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS40', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS39', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS41', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS40', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS42', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS41', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS43', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS42', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS44', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS43', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS45', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS44', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS46', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS45', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS47', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS46', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS48', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS47', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS49', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS48', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS50', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS49', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS51', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS50', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS52', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS51', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS53', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS52', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS54', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS53', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS55', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS54', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS56', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS55', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS57', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS56', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS58', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS57', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS59', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS58', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS60', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS59', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS61', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS60', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS62', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS61', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS63', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS62', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS64', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS63', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS65', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS64', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS66', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS65', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS67', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS66', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS68', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS67', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS69', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS68', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS70', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS69', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS71', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS70', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS72', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS71', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS73', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS72', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS74', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS73', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS75', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS74', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS76', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS75', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS77', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS76', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS78', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS77', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS79', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS78', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS80', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS79', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS81', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS80', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS82', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS81', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS83', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS82', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS84', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS83', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS85', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS84', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS86', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS85', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS87', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS86', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS88', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS87', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS89', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS88', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS90', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS89', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS91', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS90', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS92', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS91', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS93', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS92', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS94', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS93', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS95', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS94', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS96', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS95', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS97', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS96', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS98', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS97', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS99', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS98', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + +minetest.register_craft({ + output = 'technic:laser_mkS100', + recipe = { + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + {'tutorial:coin', 'technic:laser_mkS99', 'tutorial:coin'}, + {'tutorial:coin', 'tutorial:coin', 'tutorial:coin'}, + } +}) + + + +local mining_lasers_list3 = { +-- {, , , }, + {"1", 50, 1, 0}, + + +} + +for _, m in pairs(mining_lasers_list3) do + technic.register_power_tool("technic:laser_mkA"..m[1], m[3]) + minetest.register_tool("technic:laser_mkA"..m[1], { + description = "Admin Laser Gun", + inventory_image = "technic_mining_laser_Admin"..m[1]..".png", + stack_max = 1, + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user) + local meta = minetest.deserialize(itemstack:get_metadata()) + if not meta or not meta.charge then + return + end + + -- If there's enough charge left, fire the laser + if meta.charge >= m[4] then + meta.charge = meta.charge - m[4] + laser_shoot(user, m[2], "technic_laser_beam_mk"..m[1]..".png", "technic_laser_mk"..m[1]) + technic.set_RE_wear(itemstack, meta.charge, m[3]) + itemstack:set_metadata(minetest.serialize(meta)) + end + return itemstack + end, + }) +end + + + + + diff --git a/mods/technic/technic/tools/prospector.lua b/mods/technic/technic/tools/prospector.lua new file mode 100644 index 0000000..85c32be --- /dev/null +++ b/mods/technic/technic/tools/prospector.lua @@ -0,0 +1,117 @@ +local S = technic.getter + +technic.register_power_tool("technic:prospector", 300000) + +local function get_metadata(toolstack) + local m = minetest.deserialize(toolstack:get_metadata()) + if not m then m = {} end + if not m.charge then m.charge = 0 end + if not m.target then m.target = "" end + if not m.look_depth then m.look_depth = 7 end + if not m.look_radius then m.look_radius = 1 end + return m +end + +minetest.register_tool("technic:prospector", { + description = S("Prospector"), + inventory_image = "technic_prospector.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(toolstack, user, pointed_thing) + if not user or not user:is_player() or user.is_fake_player then return end + if pointed_thing.type ~= "node" then return end + local toolmeta = get_metadata(toolstack) + local look_diameter = toolmeta.look_radius * 2 + 1 + local charge_to_take = toolmeta.look_depth * (toolmeta.look_depth + 1) * look_diameter * look_diameter + if toolmeta.charge < charge_to_take then return end + if toolmeta.target == "" then + minetest.chat_send_player(user:get_player_name(), "Right-click to set target block type") + return + end + toolmeta.charge = toolmeta.charge - charge_to_take + toolstack:set_metadata(minetest.serialize(toolmeta)) + technic.set_RE_wear(toolstack, toolmeta.charge, technic.power_tools[toolstack:get_name()]) + local start_pos = pointed_thing.under + local forward = minetest.facedir_to_dir(minetest.dir_to_facedir(user:get_look_dir(), true)) + local right = forward.x ~= 0 and { x=0, y=1, z=0 } or (forward.y ~= 0 and { x=0, y=0, z=1 } or { x=1, y=0, z=0 }) + local up = forward.x ~= 0 and { x=0, y=0, z=1 } or (forward.y ~= 0 and { x=1, y=0, z=0 } or { x=0, y=1, z=0 }) + local base_pos = vector.add(start_pos, vector.multiply(vector.add(right, up), - toolmeta.look_radius)) + local found = false + for f = 0, toolmeta.look_depth-1 do + for r = 0, look_diameter-1 do + for u = 0, look_diameter-1 do + if minetest.get_node(vector.add(vector.add(vector.add(base_pos, vector.multiply(forward, f)), vector.multiply(right, r)), vector.multiply(up, u))).name == toolmeta.target then found = true end + end + end + end + if math.random() < 0.02 then found = not found end + minetest.chat_send_player(user:get_player_name(), minetest.registered_nodes[toolmeta.target].description.." is "..(found and "present" or "absent").." in "..look_diameter.."x"..look_diameter.."x"..toolmeta.look_depth.." region") + minetest.sound_play("technic_prospector_"..(found and "hit" or "miss"), { pos = vector.add(user:getpos(), { x = 0, y = 1, z = 0 }), gain = 1.0, max_hear_distance = 10 }) + return toolstack + end, + on_place = function(toolstack, user, pointed_thing) + if not user or not user:is_player() or user.is_fake_player then return end + local toolmeta = get_metadata(toolstack) + local pointed + if pointed_thing.type == "node" then + local pname = minetest.get_node(pointed_thing.under).name + local pdef = minetest.registered_nodes[pname] + if pdef and (pdef.groups.not_in_creative_inventory or 0) == 0 and pname ~= toolmeta.target then + pointed = pname + end + end + local look_diameter = toolmeta.look_radius * 2 + 1 + minetest.show_formspec(user:get_player_name(), "technic:prospector_control", + "size[7,8.5]".. + "item_image[0,0;1,1;"..toolstack:get_name().."]".. + "label[1,0;"..minetest.formspec_escape(toolstack:get_definition().description).."]".. + (toolmeta.target ~= "" and + "label[0,1.5;Current target:]".. + "label[0,2;"..minetest.formspec_escape(minetest.registered_nodes[toolmeta.target].description).."]".. + "item_image[0,2.5;1,1;"..toolmeta.target.."]" or + "label[0,1.5;No target set]").. + (pointed and + "label[3.5,1.5;May set new target:]".. + "label[3.5,2;"..minetest.formspec_escape(minetest.registered_nodes[pointed].description).."]".. + "item_image[3.5,2.5;1,1;"..pointed.."]".. + "button_exit[3.5,3.65;2,0.5;target_"..pointed..";Set target]" or + "label[3.5,1.5;No new target available]").. + "label[0,4.5;Region cross section:]".. + "label[0,5;"..look_diameter.."x"..look_diameter.."]".. + "label[3.5,4.5;Set region cross section:]".. + "button_exit[3.5,5.15;1,0.5;look_radius_0;1x1]".. + "button_exit[4.5,5.15;1,0.5;look_radius_1;3x3]".. + "button_exit[5.5,5.15;1,0.5;look_radius_3;7x7]".. + "label[0,6;Region depth:]".. + "label[0,6.5;"..toolmeta.look_depth.."]".. + "label[3.5,6;Set region depth:]".. + "button_exit[3.5,6.65;1,0.5;look_depth_7;7]".. + "button_exit[4.5,6.65;1,0.5;look_depth_14;14]".. + "button_exit[5.5,6.65;1,0.5;look_depth_21;21]".. + "label[0,7.5;Accuracy:]".. + "label[0,8;98%]") + return + end, +}) + +minetest.register_on_player_receive_fields(function(user, formname, fields) + if formname ~= "technic:prospector_control" then return false end + if not user or not user:is_player() or user.is_fake_player then return end + local toolstack = user:get_wielded_item() + if toolstack:get_name() ~= "technic:prospector" then return true end + local toolmeta = get_metadata(toolstack) + for field, value in pairs(fields) do + if field:sub(1, 7) == "target_" then + toolmeta.target = field:sub(8) + end + if field:sub(1, 12) == "look_radius_" then + toolmeta.look_radius = field:sub(13) + end + if field:sub(1, 11) == "look_depth_" then + toolmeta.look_depth = field:sub(12) + end + end + toolstack:set_metadata(minetest.serialize(toolmeta)) + user:set_wielded_item(toolstack) + return true +end) diff --git a/mods/technic/technic/tools/sonic_screwdriver.lua b/mods/technic/technic/tools/sonic_screwdriver.lua new file mode 100644 index 0000000..74b2d78 --- /dev/null +++ b/mods/technic/technic/tools/sonic_screwdriver.lua @@ -0,0 +1,63 @@ +local sonic_screwdriver_max_charge = 15000 + +local S = technic.getter + +technic.register_power_tool("technic:sonic_screwdriver", sonic_screwdriver_max_charge) + +minetest.register_tool("technic:sonic_screwdriver", { + description = S("Sonic Screwdriver"), + inventory_image = "technic_sonic_screwdriver.png", + wear_represents = "technic_RE_charge", + on_refill = technic.refill_RE_charge, + on_use = function(itemstack, user, pointed_thing) + -- Must be pointing to facedir applicable node + if pointed_thing.type ~= "node" then + return + end + local pos = pointed_thing.under + 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 node_name = node.name + if minetest.registered_nodes[node_name].paramtype2 ~= "facedir" and + minetest.registered_nodes[node_name].paramtype2 ~= "wallmounted" then + return + end + if node.param2 == nil then + return + end + local meta1 = minetest.deserialize(itemstack:get_metadata()) + if not meta1 or not meta1.charge then + return + end + if meta1.charge >= 100 then + minetest.sound_play("technic_sonic_screwdriver", + {pos = pos, gain = 0.3, max_hear_distance = 10}) + local p = node.param2 + if minetest.registered_nodes[node_name].paramtype2 == "facedir" then + p = p + 1 + if p == 4 then + p = 0 + end + else + p = p + 1 + if p == 6 then + p = 0 + end + end + if minetest.is_protected(pos, user:get_player_name()) then + minetest.record_protection_violation(pos, user:get_player_name()) + else + node.param2 = p + minetest.swap_node(pos, node) + + meta1.charge = meta1.charge - 100 + itemstack:set_metadata(minetest.serialize(meta1)) + technic.set_RE_wear(itemstack, meta1.charge, sonic_screwdriver_max_charge) + end + end + return itemstack + end, +}) diff --git a/mods/technic/technic/tools/tree_tap.lua b/mods/technic/technic/tools/tree_tap.lua new file mode 100644 index 0000000..af9cd0a --- /dev/null +++ b/mods/technic/technic/tools/tree_tap.lua @@ -0,0 +1,56 @@ + +local S = technic.getter + +minetest.register_tool("technic:treetap", { + description = S("Tree Tap"), + inventory_image = "technic_tree_tap.png", + on_use = function(itemstack, user, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + local pos = pointed_thing.under + 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 node_name = node.name + if node_name ~= "moretrees:rubber_tree_trunk" then + return + end + node.name = "moretrees:rubber_tree_trunk_empty" + minetest.swap_node(pos, node) + minetest.handle_node_drops(pointed_thing.above, {"technic:raw_latex"}, user) + local item_wear = tonumber(itemstack:get_wear()) + item_wear = item_wear + 819 + if item_wear > 65535 then + itemstack:clear() + return itemstack + end + itemstack:set_wear(item_wear) + return itemstack + end, +}) + +minetest.register_craftitem("technic:raw_latex", { + description = S("Raw Latex"), + inventory_image = "technic_raw_latex.png", +}) + +minetest.register_craftitem("technic:rubber", { + description = S("Rubber Fiber"), + inventory_image = "technic_rubber.png", +}) + +minetest.register_abm({ + nodenames = {"moretrees:rubber_tree_trunk_empty"}, + interval = 60, + chance = 15, + action = function(pos, node) + if minetest.find_node_near(pos, (moretrees and moretrees.leafdecay_radius) or 5, {"moretrees:rubber_tree_leaves"}) then + node.name = "moretrees:rubber_tree_trunk" + minetest.swap_node(pos, node) + end + end +}) + diff --git a/mods/technic/technic_chests/README.md b/mods/technic/technic_chests/README.md new file mode 100644 index 0000000..8b31761 --- /dev/null +++ b/mods/technic/technic_chests/README.md @@ -0,0 +1,21 @@ +Technic chests +============== + +License +------- + +Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) + +Technic chests code is licensed under the GNU LGPLv2+. + +Texture licenses: + +VanessaE: (WTFPL) + * technic\_pencil\_icon.png + * technic\_checkmark\_icon.png + * technic\_chest\_overlay\_*.png + * technic\_*\_chest\_lock\_overlay.png + +RealBadAngel: (WTFPL) + * Everything else. + diff --git a/mods/technic/technic_chests/common.lua b/mods/technic/technic_chests/common.lua new file mode 100644 index 0000000..47054f5 --- /dev/null +++ b/mods/technic/technic_chests/common.lua @@ -0,0 +1,71 @@ + +technic.chests.groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, + tubedevice=1, tubedevice_receiver=1} +technic.chests.groups_noinv = {snappy=2, choppy=2, oddly_breakable_by_hand=2, + tubedevice=1, tubedevice_receiver=1, not_in_creative_inventory=1} + +technic.chests.tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.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.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, front=1, back=1, top=1, bottom=1}, +} + +technic.chests.can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:is_empty("main") +end + +local function inv_change(pos, 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 + +function technic.chests.inv_move(pos, from_list, from_index, to_list, to_index, count, player) + return inv_change(pos, count, player) +end +function technic.chests.inv_put(pos, listname, index, stack, player) + return inv_change(pos, stack:get_count(), player) +end +function technic.chests.inv_take(pos, listname, index, stack, player) + return inv_change(pos, stack:get_count(), player) +end + +function technic.chests.on_inv_move(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 + +function technic.chests.on_inv_put(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " puts stuff in to chest at " + ..minetest.pos_to_string(pos)) +end + +function technic.chests.on_inv_take(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from chest at " + ..minetest.pos_to_string(pos)) +end + +function has_locked_chest_privilege(meta, player) + return player:get_player_name() == meta:get_string("owner") +end + diff --git a/mods/technic/technic_chests/copper_chest.lua b/mods/technic/technic_chests/copper_chest.lua new file mode 100644 index 0000000..47f6343 --- /dev/null +++ b/mods/technic/technic_chests/copper_chest.lua @@ -0,0 +1,46 @@ +minetest.register_craft({ + output = 'technic:copper_chest 1', + recipe = { + {'default:copper_ingot','default:copper_ingot','default:copper_ingot'}, + {'default:copper_ingot','technic:iron_chest','default:copper_ingot'}, + {'default:copper_ingot','default:copper_ingot','default:copper_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:copper_locked_chest 1', + recipe = { + {'default:copper_ingot','default:copper_ingot','default:copper_ingot'}, + {'default:copper_ingot','technic:iron_locked_chest','default:copper_ingot'}, + {'default:copper_ingot','default:copper_ingot','default:copper_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:copper_locked_chest 1', + recipe = { + {'default:steel_ingot'}, + {'technic:copper_chest'}, + } +}) + +technic.chests:register("Copper", { + width = 12, + height = 5, + sort = false, + autosort = false, + infotext = true, + color = false, + locked = false, +}) + +technic.chests:register("Copper", { + width = 12, + height = 5, + sort = false, + autosort = false, + infotext = true, + color = false, + locked = true, +}) + diff --git a/mods/technic/technic_chests/depends.txt b/mods/technic/technic_chests/depends.txt new file mode 100644 index 0000000..4d04e9d --- /dev/null +++ b/mods/technic/technic_chests/depends.txt @@ -0,0 +1,3 @@ +default +pipeworks +intllib? diff --git a/mods/technic/technic_chests/gold_chest.lua b/mods/technic/technic_chests/gold_chest.lua new file mode 100644 index 0000000..08d7493 --- /dev/null +++ b/mods/technic/technic_chests/gold_chest.lua @@ -0,0 +1,47 @@ + +minetest.register_craft({ + output = 'technic:gold_chest', + recipe = { + {'default:gold_ingot','default:gold_ingot','default:gold_ingot'}, + {'default:gold_ingot','technic:silver_chest','default:gold_ingot'}, + {'default:gold_ingot','default:gold_ingot','default:gold_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:gold_locked_chest', + recipe = { + {'default:gold_ingot','default:gold_ingot','default:gold_ingot'}, + {'default:gold_ingot','technic:silver_locked_chest','default:gold_ingot'}, + {'default:gold_ingot','default:gold_ingot','default:gold_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:gold_locked_chest', + recipe = { + {'default:steel_ingot'}, + {'technic:gold_chest'}, + } +}) + +technic.chests:register("Gold", { + width = 15, + height = 6, + sort = false, + autosort = false, + infotext = true, + color = true, + locked = false, +}) + +technic.chests:register("Gold", { + width = 15, + height = 6, + sort = false, + autosort = false, + infotext = true, + color = true, + locked = true, +}) + diff --git a/mods/technic/technic_chests/init.lua b/mods/technic/technic_chests/init.lua new file mode 100644 index 0000000..5fa96ff --- /dev/null +++ b/mods/technic/technic_chests/init.lua @@ -0,0 +1,18 @@ +-- Minetest 0.4.6 mod: technic_chests +-- namespace: technic +-- (c) 2012-2013 by RealBadAngel + +modpath = minetest.get_modpath("technic_chests") + +technic = technic or {} +technic.chests = {} + +dofile(modpath.."/common.lua") +dofile(modpath.."/register.lua") +dofile(modpath.."/wooden_chest.lua") +dofile(modpath.."/iron_chest.lua") +dofile(modpath.."/copper_chest.lua") +dofile(modpath.."/silver_chest.lua") +dofile(modpath.."/gold_chest.lua") +dofile(modpath.."/mithril_chest.lua") + diff --git a/mods/technic/technic_chests/iron_chest.lua b/mods/technic/technic_chests/iron_chest.lua new file mode 100644 index 0000000..50dc4a8 --- /dev/null +++ b/mods/technic/technic_chests/iron_chest.lua @@ -0,0 +1,53 @@ +local cast_iron_ingot +if minetest.get_modpath("technic_worldgen") then + cast_iron_ingot = "technic:cast_iron_ingot" +else + cast_iron_ingot = "default:steel_ingot" +end + +minetest.register_craft({ + output = 'technic:iron_chest 1', + recipe = { + {cast_iron_ingot,cast_iron_ingot,cast_iron_ingot}, + {cast_iron_ingot,'default:chest',cast_iron_ingot}, + {cast_iron_ingot,cast_iron_ingot,cast_iron_ingot}, + } +}) + +minetest.register_craft({ + output = 'technic:iron_locked_chest 1', + recipe = { + {cast_iron_ingot,cast_iron_ingot,cast_iron_ingot}, + {cast_iron_ingot,'default:chest_locked',cast_iron_ingot}, + {cast_iron_ingot,cast_iron_ingot,cast_iron_ingot}, + } +}) + +minetest.register_craft({ + output = 'technic:iron_locked_chest 1', + recipe = { + {'default:steel_ingot'}, + {'technic:iron_chest'}, + } +}) + +technic.chests:register("Iron", { + width = 9, + height = 5, + sort = false, + autosort = false, + infotext = true, + color = false, + locked = false, +}) + +technic.chests:register("Iron", { + width = 9, + height = 5, + sort = false, + autosort = false, + infotext = true, + color = false, + locked = true, +}) + diff --git a/mods/technic/technic_chests/locale/de.txt b/mods/technic/technic_chests/locale/de.txt new file mode 100644 index 0000000..e22d2c2 --- /dev/null +++ b/mods/technic/technic_chests/locale/de.txt @@ -0,0 +1,41 @@ +# German Translation for technic_chests +# Deutsche Übersetzung von technic_chests +# by Xanthin + +%s Chest = %struhe +%s Locked Chest = Verschlossene %struhe +%s Locked Chest (owned by %s) = Verschlossene %struhe (gehoert %s) +Color Filter: %s = Farbfilter: %s +Edit chest description: = Bearbeite die Beschreibung + +# Colors +Black = Schwarz +Blue = Blau +Brown = Braun +Cyan = Tuerkis +Dark Green = Dunkelgruen +Dark Grey = Dunkelgrau +Green = Gruen +Grey = Grau +Magenta = Magenta +Orange = Orange +Pink = Rosa +Red = Rot +Violet = Violett +White = Weiss +Yellow = Gelb +None = Farblos + +# Materials +Copper = Kupfer +Gold = Gold +Iron = Eisen +Mithril = Mithril +Silver = Silber +Wooden = Holz + +# Sorting +Sort = +Auto-sort is %s = +Off = +On = diff --git a/mods/technic/technic_chests/locale/template.txt b/mods/technic/technic_chests/locale/template.txt new file mode 100644 index 0000000..4d422b2 --- /dev/null +++ b/mods/technic/technic_chests/locale/template.txt @@ -0,0 +1,39 @@ +# technic_chests translation template + +%s Chest = +%s Locked Chest = +%s Locked Chest (owned by %s) = +Color Filter: %s = +Edit chest description: = + +# Colors +Black = +Blue = +Brown = +Cyan = +Dark Green = +Dark Grey = +Green = +Grey = +Magenta = +Orange = +Pink = +Red = +Violet = +White = +Yellow = +None = + +# Materials +Copper = +Gold = +Iron = +Mithril = +Silver = +Wooden = + +# Sorting +Sort = +Auto-sort is %s = +Off = +On = diff --git a/mods/technic/technic_chests/mithril_chest.lua b/mods/technic/technic_chests/mithril_chest.lua new file mode 100644 index 0000000..d43e327 --- /dev/null +++ b/mods/technic/technic_chests/mithril_chest.lua @@ -0,0 +1,46 @@ +minetest.register_craft({ + output = 'technic:mithril_chest 1', + recipe = { + {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'}, + {'moreores:mithril_ingot','technic:gold_chest','moreores:mithril_ingot'}, + {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:mithril_locked_chest 1', + recipe = { + {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'}, + {'moreores:mithril_ingot','technic:gold_locked_chest','moreores:mithril_ingot'}, + {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:mithril_locked_chest 1', + recipe = { + {'default:steel_ingot'}, + {'technic:mithril_chest'}, + } +}) + +technic.chests:register("Mithril", { + width = 15, + height = 6, + sort = false, + autosort = false, + infotext = true, + color = false, + locked = false, +}) + +technic.chests:register("Mithril", { + width = 15, + height = 6, + sort = false, + autosort = false, + infotext = true, + color = false, + locked = true, +}) + diff --git a/mods/technic/technic_chests/register.lua b/mods/technic/technic_chests/register.lua new file mode 100644 index 0000000..2ceb032 --- /dev/null +++ b/mods/technic/technic_chests/register.lua @@ -0,0 +1,289 @@ + +local intllib = nil +local S +if intllib then + S = intllib.Getter() +else + S = function(s) return s end +end + +local chest_mark_colors = { + {"black", S("Black")}, + {"blue", S("Blue")}, + {"brown", S("Brown")}, + {"cyan", S("Cyan")}, + {"dark_green", S("Dark Green")}, + {"dark_grey", S("Dark Grey")}, + {"green", S("Green")}, + {"grey", S("Grey")}, + {"magenta", S("Magenta")}, + {"orange", S("Orange")}, + {"pink", S("Pink")}, + {"red", S("Red")}, + {"violet", S("Violet")}, + {"white", S("White")}, + {"yellow", S("Yellow")}, +} + + +local function colorid_to_postfix(id) + return chest_mark_colors[id] and "_"..chest_mark_colors[id][1] or "" +end + + +local function get_color_buttons(coleft, lotop) + local buttons_string = "" + for y = 0, 3 do + for x = 0, 3 do + local file_name = "technic_colorbutton"..(y * 4 + x)..".png" + buttons_string = buttons_string.."image_button[" + ..(coleft + 0.1 + x * 0.7)..","..(lotop + 0.1 + y * 0.7) + ..";0.8,0.8;"..file_name..";color_button" + ..(y * 4 + x + 1)..";]" + end + end + return buttons_string +end + + +local function check_color_buttons(pos, meta, chest_name, fields) + for i = 1, 16 do + if fields["color_button"..i] then + local node = minetest.get_node(pos) + node.name = chest_name..colorid_to_postfix(i) + minetest.swap_node(pos, node) + meta:set_string("color", i) + return + end + end +end + +local function set_formspec(pos, data, page) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local formspec = data.base_formspec + if data.autosort then + local status = meta:get_int("autosort") + formspec = formspec.."button["..(data.hileft+2)..","..(data.height+1.1)..";3,0.8;autosort_to_"..(1-status)..";"..S("Auto-sort is %s"):format(status == 1 and S("On") or S("Off")).."]" + end + if data.infotext then + local formspec_infotext = minetest.formspec_escape(meta:get_string("infotext")) + if page == "main" then + formspec = formspec.."image_button["..(data.hileft+2.1)..",0.1;0.8,0.8;" + .."technic_pencil_icon.png;edit_infotext;]" + .."label["..(data.hileft+3)..",0;"..formspec_infotext.."]" + elseif page == "edit_infotext" then + formspec = formspec.."image_button["..(data.hileft+2.1)..",0.1;0.8,0.8;" + .."technic_checkmark_icon.png;save_infotext;]" + .."field["..(data.hileft+3.3)..",0.2;4.8,1;" + .."infotext_box;"..S("Edit chest description:")..";" + ..formspec_infotext.."]" + end + end + if data.color then + local colorID = meta:get_int("color") + local colorName + if chest_mark_colors[colorID] then + colorName = chest_mark_colors[colorID][2] + else + colorName = S("None") + end + formspec = formspec.."label["..(data.coleft+0.2)..","..(data.lotop+3)..";"..S("Color Filter: %s"):format(colorName).."]" + end + meta:set_string("formspec", formspec) +end + +local function 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 + +local function get_receive_fields(name, data) + local lname = name:lower() + return function(pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + local page = "main" + if fields.sort or (data.autosort and fields.quit and meta:get_int("autosort") == 1) then + sort_inventory(meta:get_inventory()) + end + if fields.edit_infotext then + page = "edit_infotext" + end + if fields.autosort_to_1 then meta:set_int("autosort", 1) end + if fields.autosort_to_0 then meta:set_int("autosort", 0) end + if fields.infotext_box then + meta:set_string("infotext", fields.infotext_box) + end + if data.color then + -- This sets the node + local nn = "technic:"..lname..(data.locked and "_locked" or "").."_chest" + check_color_buttons(pos, meta, nn, fields) + end + meta:get_inventory():set_size("main", data.width * data.height) + set_formspec(pos, data, page) + end +end + + +function technic.chests:definition(name, data) + local lname = name:lower() + name = S(name) + local d = {} + for k, v in pairs(data) do d[k] = v end + data = d + + data.lowidth = 8 + data.ovwidth = math.max(data.lowidth, data.width) + data.hileft = (data.ovwidth - data.width) / 2 + data.loleft = (data.ovwidth - data.lowidth) / 2 + if data.color then + if data.lowidth + 3 <= data.ovwidth then + data.coleft = data.ovwidth - 3 + if data.loleft + data.lowidth > data.coleft then + data.loleft = data.coleft - data.lowidth + end + else + data.loleft = 0 + data.coleft = data.lowidth + data.ovwidth = data.lowidth + 3 + end + end + data.lotop = data.height + 2 + data.ovheight = data.lotop + 4 + + local locked_after_place = nil + local front = {"technic_"..lname.."_chest_front.png"} + data.base_formspec = "invsize["..data.ovwidth..","..data.ovheight..";]".. + "label[0,0;"..S("%s Chest"):format(name).."]".. + "list[current_name;main;"..data.hileft..",1;"..data.width..","..data.height..";]".. + "list[current_player;main;"..data.loleft..","..data.lotop..";8,4;]".. + "background[-0.19,-0.25;"..(data.ovwidth+0.4)..","..(data.ovheight+0.75)..";ui_form_bg.png]".. + "background["..data.hileft..",1;"..data.width..","..data.height..";technic_"..lname.."_chest_inventory.png]".. + "background["..data.loleft..","..data.lotop..";8,4;ui_main_inventory.png]".. + "listring[current_name;main]" .. + "listring[current_player;main]" + if data.sort then + data.base_formspec = data.base_formspec.."button["..data.hileft..","..(data.height+1.1)..";1,0.8;sort;"..S("Sort").."]" + end + if data.color then + data.base_formspec = data.base_formspec..get_color_buttons(data.coleft, data.lotop) + end + + if data.locked then + locked_after_place = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", + S("%s Locked Chest (owned by %s)") + :format(name, meta:get_string("owner"))) + end + table.insert(front, "technic_"..lname.."_chest_lock_overlay.png") + end + + local desc + if data.locked then + desc = S("%s Locked Chest"):format(name) + else + desc = S("%s Chest"):format(name) + end + + local def = { + description = desc, + tiles = {"technic_"..lname.."_chest_top.png", "technic_"..lname.."_chest_top.png", + "technic_"..lname.."_chest_side.png", "technic_"..lname.."_chest_side.png", + "technic_"..lname.."_chest_side.png", table.concat(front, "^")}, + paramtype2 = "facedir", + groups = self.groups, + tube = self.tube, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + after_place_node = locked_after_place, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("%s Chest"):format(name)) + set_formspec(pos, data, "main") + local inv = meta:get_inventory() + inv:set_size("main", data.width * data.height) + end, + can_dig = self.can_dig, + on_receive_fields = get_receive_fields(name, data), + on_metadata_inventory_move = self.on_inv_move, + on_metadata_inventory_put = self.on_inv_put, + on_metadata_inventory_take = self.on_inv_take, + } + if data.locked then + def.allow_metadata_inventory_move = self.inv_move + def.allow_metadata_inventory_put = self.inv_put + def.allow_metadata_inventory_take = self.inv_take + end + return def +end + +function technic.chests:register(name, data) + local def = technic.chests:definition(name, data) + + local nn = "technic:"..name:lower()..(data.locked and "_locked" or "").."_chest" + minetest.register_node(":"..nn, def) + + if data.color then + local mk_front + if string.find(def.tiles[6], "%^") then + mk_front = function (overlay) return def.tiles[6]:gsub("%^", "^"..overlay.."^") end + else + mk_front = function (overlay) return def.tiles[6].."^"..overlay end + end + for i = 1, 15 do + local postfix = colorid_to_postfix(i) + local colordef = {} + for k, v in pairs(def) do + colordef[k] = v + end + colordef.drop = nn + colordef.groups = self.groups_noinv + colordef.tiles = { def.tiles[1], def.tiles[2], def.tiles[3], def.tiles[4], def.tiles[5], mk_front("technic_chest_overlay"..postfix..".png") } + minetest.register_node(":"..nn..postfix, colordef) + end + end + +end + diff --git a/mods/technic/technic_chests/silver_chest.lua b/mods/technic/technic_chests/silver_chest.lua new file mode 100644 index 0000000..e6a8113 --- /dev/null +++ b/mods/technic/technic_chests/silver_chest.lua @@ -0,0 +1,46 @@ +minetest.register_craft({ + output = 'technic:silver_chest', + recipe = { + {'moreores:silver_ingot','moreores:silver_ingot','moreores:silver_ingot'}, + {'moreores:silver_ingot','technic:copper_chest','moreores:silver_ingot'}, + {'moreores:silver_ingot','moreores:silver_ingot','moreores:silver_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:silver_locked_chest', + recipe = { + {'moreores:silver_ingot','moreores:silver_ingot','moreores:silver_ingot'}, + {'moreores:silver_ingot','technic:copper_locked_chest','moreores:silver_ingot'}, + {'moreores:silver_ingot','moreores:silver_ingot','moreores:silver_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:silver_locked_chest', + recipe = { + {'default:steel_ingot'}, + {'technic:silver_chest'}, + } +}) + +technic.chests:register("Silver", { + width = 12, + height = 6, + sort = false, + autosort = false, + infotext = true, + color = false, + locked = false, +}) + +technic.chests:register("Silver", { + width = 12, + height = 6, + sort = false, + autosort = false, + infotext = true, + color = false, + locked = true, +}) + diff --git a/mods/technic/technic_chests/technic_chests/README.md b/mods/technic/technic_chests/technic_chests/README.md new file mode 100644 index 0000000..a570346 --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/README.md @@ -0,0 +1,24 @@ +Technic chests +============== + +License +------- + +Copyright (C) 2012-2014 Maciej Kasatkin (RealBadAngel) + +Technic chests code is licensed under the GNU LGPLv2+. + +Texture licenses: + +VanessaE: (WTFPL) + * technic\_pencil\_icon.png + * technic\_checkmark\_icon.png + * technic\_chest\_overlay\_*.png + * technic\_*\_chest\_lock\_overlay.png + +sdzen (Elise Staudter) modified by VanessaE (CC BY-SA 3.0): + * copper, iron, silver, gold, mithril chest textures 16x16 + +RealBadAngel: (WTFPL) + * Everything else. + diff --git a/mods/technic/technic_chests/technic_chests/common.lua b/mods/technic/technic_chests/technic_chests/common.lua new file mode 100644 index 0000000..47054f5 --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/common.lua @@ -0,0 +1,71 @@ + +technic.chests.groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2, + tubedevice=1, tubedevice_receiver=1} +technic.chests.groups_noinv = {snappy=2, choppy=2, oddly_breakable_by_hand=2, + tubedevice=1, tubedevice_receiver=1, not_in_creative_inventory=1} + +technic.chests.tube = { + insert_object = function(pos, node, stack, direction) + local meta = minetest.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.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, front=1, back=1, top=1, bottom=1}, +} + +technic.chests.can_dig = function(pos, player) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + return inv:is_empty("main") +end + +local function inv_change(pos, 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 + +function technic.chests.inv_move(pos, from_list, from_index, to_list, to_index, count, player) + return inv_change(pos, count, player) +end +function technic.chests.inv_put(pos, listname, index, stack, player) + return inv_change(pos, stack:get_count(), player) +end +function technic.chests.inv_take(pos, listname, index, stack, player) + return inv_change(pos, stack:get_count(), player) +end + +function technic.chests.on_inv_move(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 + +function technic.chests.on_inv_put(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " puts stuff in to chest at " + ..minetest.pos_to_string(pos)) +end + +function technic.chests.on_inv_take(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name().. + " takes stuff from chest at " + ..minetest.pos_to_string(pos)) +end + +function has_locked_chest_privilege(meta, player) + return player:get_player_name() == meta:get_string("owner") +end + diff --git a/mods/technic/technic_chests/technic_chests/copper_chest.lua b/mods/technic/technic_chests/technic_chests/copper_chest.lua new file mode 100644 index 0000000..d40284b --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/copper_chest.lua @@ -0,0 +1,46 @@ +minetest.register_craft({ + output = 'technic:copper_chest 1', + recipe = { + {'default:copper_ingot','default:copper_ingot','default:copper_ingot'}, + {'default:copper_ingot','technic:iron_chest','default:copper_ingot'}, + {'default:copper_ingot','default:copper_ingot','default:copper_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:copper_locked_chest 1', + recipe = { + {'default:copper_ingot','default:copper_ingot','default:copper_ingot'}, + {'default:copper_ingot','technic:iron_locked_chest','default:copper_ingot'}, + {'default:copper_ingot','default:copper_ingot','default:copper_ingot'}, + } +}) + +minetest.register_craft({ + output = 'technic:copper_locked_chest 1', + recipe = { + {'default:steel_ingot'}, + {'technic:copper_chest'}, + } +}) + +technic.chests:register("Copper", { + width = 12, + height = 5, + sort = true, + autosort = true, + infotext = false, + color = false, + locked = false, +}) + +technic.chests:register("Copper", { + width = 12, + height = 5, + sort = true, + autosort = true, + infotext = false, + color = false, + locked = true, +}) + diff --git a/mods/technic/technic_chests/technic_chests/depends.txt b/mods/technic/technic_chests/technic_chests/depends.txt new file mode 100644 index 0000000..b9ca665 --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/depends.txt @@ -0,0 +1,4 @@ +default +moreores? +pipeworks? +intllib? diff --git a/mods/technic/technic_chests/technic_chests/gold_chest.lua b/mods/technic/technic_chests/technic_chests/gold_chest.lua new file mode 100644 index 0000000..c66b2f6 --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/gold_chest.lua @@ -0,0 +1,57 @@ + +local material_list +if minetest.get_modpath("moreores") then + material_list = { 'silver' } +else + -- Make the gold chest obtainable for mere mortals (the silver chest is not obtainable) + material_list = { 'copper', 'silver' } +end + +for _, material in ipairs(material_list) do + minetest.register_craft({ + output = 'technic:gold_chest', + recipe = { + {'default:gold_ingot','default:gold_ingot','default:gold_ingot'}, + {'default:gold_ingot',"technic:"..material.."_chest",'default:gold_ingot'}, + {'default:gold_ingot','default:gold_ingot','default:gold_ingot'}, + } + }) + + minetest.register_craft({ + output = 'technic:gold_locked_chest', + recipe = { + {'default:gold_ingot','default:gold_ingot','default:gold_ingot'}, + {'default:gold_ingot',"technic:"..material.."_locked_chest",'default:gold_ingot'}, + {'default:gold_ingot','default:gold_ingot','default:gold_ingot'}, + } + }) +end + +minetest.register_craft({ + output = 'technic:gold_locked_chest', + recipe = { + {'default:steel_ingot'}, + {'technic:gold_chest'}, + } +}) + +technic.chests:register("Gold", { + width = 15, + height = 6, + sort = true, + autosort = true, + infotext = true, + color = true, + locked = false, +}) + +technic.chests:register("Gold", { + width = 15, + height = 6, + sort = true, + autosort = true, + infotext = true, + color = true, + locked = true, +}) + diff --git a/mods/technic/technic_chests/technic_chests/init.lua b/mods/technic/technic_chests/technic_chests/init.lua new file mode 100644 index 0000000..af9e041 --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/init.lua @@ -0,0 +1,18 @@ +-- Minetest 0.4.6 mod: technic_chests +-- namespace: technic +-- (c) 2012-2013 by RealBadAngel + +local modpath = minetest.get_modpath("technic_chests") + +technic = rawget(_G, "technic") or {} +technic.chests = {} + +dofile(modpath.."/common.lua") +dofile(modpath.."/register.lua") +dofile(modpath.."/wooden_chest.lua") +dofile(modpath.."/iron_chest.lua") +dofile(modpath.."/copper_chest.lua") +dofile(modpath.."/silver_chest.lua") +dofile(modpath.."/gold_chest.lua") +dofile(modpath.."/mithril_chest.lua") + diff --git a/mods/technic/technic_chests/technic_chests/iron_chest.lua b/mods/technic/technic_chests/technic_chests/iron_chest.lua new file mode 100644 index 0000000..90434bb --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/iron_chest.lua @@ -0,0 +1,53 @@ +local cast_iron_ingot +if minetest.get_modpath("technic_worldgen") then + cast_iron_ingot = "technic:cast_iron_ingot" +else + cast_iron_ingot = "default:steel_ingot" +end + +minetest.register_craft({ + output = 'technic:iron_chest 1', + recipe = { + {cast_iron_ingot,cast_iron_ingot,cast_iron_ingot}, + {cast_iron_ingot,'default:chest',cast_iron_ingot}, + {cast_iron_ingot,cast_iron_ingot,cast_iron_ingot}, + } +}) + +minetest.register_craft({ + output = 'technic:iron_locked_chest 1', + recipe = { + {cast_iron_ingot,cast_iron_ingot,cast_iron_ingot}, + {cast_iron_ingot,'default:chest_locked',cast_iron_ingot}, + {cast_iron_ingot,cast_iron_ingot,cast_iron_ingot}, + } +}) + +minetest.register_craft({ + output = 'technic:iron_locked_chest 1', + recipe = { + {'default:steel_ingot'}, + {'technic:iron_chest'}, + } +}) + +technic.chests:register("Iron", { + width = 9, + height = 5, + sort = true, + autosort = false, + infotext = false, + color = false, + locked = false, +}) + +technic.chests:register("Iron", { + width = 9, + height = 5, + sort = true, + autosort = false, + infotext = false, + color = false, + locked = true, +}) + diff --git a/mods/technic/technic_chests/technic_chests/locale/de.txt b/mods/technic/technic_chests/technic_chests/locale/de.txt new file mode 100644 index 0000000..e22d2c2 --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/locale/de.txt @@ -0,0 +1,41 @@ +# German Translation for technic_chests +# Deutsche Übersetzung von technic_chests +# by Xanthin + +%s Chest = %struhe +%s Locked Chest = Verschlossene %struhe +%s Locked Chest (owned by %s) = Verschlossene %struhe (gehoert %s) +Color Filter: %s = Farbfilter: %s +Edit chest description: = Bearbeite die Beschreibung + +# Colors +Black = Schwarz +Blue = Blau +Brown = Braun +Cyan = Tuerkis +Dark Green = Dunkelgruen +Dark Grey = Dunkelgrau +Green = Gruen +Grey = Grau +Magenta = Magenta +Orange = Orange +Pink = Rosa +Red = Rot +Violet = Violett +White = Weiss +Yellow = Gelb +None = Farblos + +# Materials +Copper = Kupfer +Gold = Gold +Iron = Eisen +Mithril = Mithril +Silver = Silber +Wooden = Holz + +# Sorting +Sort = +Auto-sort is %s = +Off = +On = diff --git a/mods/technic/technic_chests/technic_chests/locale/template.txt b/mods/technic/technic_chests/technic_chests/locale/template.txt new file mode 100644 index 0000000..4d422b2 --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/locale/template.txt @@ -0,0 +1,39 @@ +# technic_chests translation template + +%s Chest = +%s Locked Chest = +%s Locked Chest (owned by %s) = +Color Filter: %s = +Edit chest description: = + +# Colors +Black = +Blue = +Brown = +Cyan = +Dark Green = +Dark Grey = +Green = +Grey = +Magenta = +Orange = +Pink = +Red = +Violet = +White = +Yellow = +None = + +# Materials +Copper = +Gold = +Iron = +Mithril = +Silver = +Wooden = + +# Sorting +Sort = +Auto-sort is %s = +Off = +On = diff --git a/mods/technic/technic_chests/technic_chests/locale/tr.txt b/mods/technic/technic_chests/technic_chests/locale/tr.txt new file mode 100644 index 0000000..6bef5be --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/locale/tr.txt @@ -0,0 +1,41 @@ +# Turkish translation +# mahmutelmas06@hotmail.com +# TΓΌrkΓ§e Γ§eviri + +%s Chest = %s SandΔ±k +%s Locked Chest = %s Kilitli sandΔ±k +%s Locked Chest (owned by %s) = %s Kilitli sandΔ±k (Sahibi %s) +Color Filter: %s = Renk sΓΌzgeci: %s +Edit chest description: = SandΔ±k bilgilerini dΓΌzenle + +# Colors - Renkler +Black = Siyah +Blue = Mavi +Brown = Kahverengi +Cyan = Cam gΓΆbeği +Dark Green = Koyu yeşil +Dark Grey = Koyu gri +Green = Yeşil +Grey = Gri +Magenta = Mor +Orange = Turuncu +Pink = Pembe +Red = KΔ±rmΔ±zΔ± +Violet = Koyu mor +White = Beyaz +Yellow = SarΔ± +None = HiΓ§ + +# Materials - Metaryeller +Copper = BakΔ±r +Gold = AltΔ±n +Iron = Demir +Mithril = Mithril +Silver = GΓΌmüş +Wooden = Ahşap + +# Sorting - SΔ±ralama +Sort = SΔ±rala +Auto-sort is %s = Otomatik sΔ±ralama %s +Off = KapalΔ± +On = AΓ§Δ±k diff --git a/mods/technic/technic_chests/technic_chests/mithril_chest.lua b/mods/technic/technic_chests/technic_chests/mithril_chest.lua new file mode 100644 index 0000000..909ff9e --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/mithril_chest.lua @@ -0,0 +1,48 @@ +if minetest.get_modpath("moreores") then + minetest.register_craft({ + output = 'technic:mithril_chest 1', + recipe = { + {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'}, + {'moreores:mithril_ingot','technic:gold_chest','moreores:mithril_ingot'}, + {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'}, + } + }) + + minetest.register_craft({ + output = 'technic:mithril_locked_chest 1', + recipe = { + {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'}, + {'moreores:mithril_ingot','technic:gold_locked_chest','moreores:mithril_ingot'}, + {'moreores:mithril_ingot','moreores:mithril_ingot','moreores:mithril_ingot'}, + } + }) +end + +minetest.register_craft({ + output = 'technic:mithril_locked_chest 1', + recipe = { + {'default:steel_ingot'}, + {'technic:mithril_chest'}, + } +}) + +technic.chests:register("Mithril", { + width = 15, + height = 6, + sort = true, + autosort = true, + infotext = false, + color = false, + locked = false, +}) + +technic.chests:register("Mithril", { + width = 15, + height = 6, + sort = true, + autosort = true, + infotext = false, + color = false, + locked = true, +}) + diff --git a/mods/technic/technic_chests/technic_chests/register.lua b/mods/technic/technic_chests/technic_chests/register.lua new file mode 100644 index 0000000..25e4cde --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/register.lua @@ -0,0 +1,303 @@ +local S = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end + +local pipeworks = rawget(_G, "pipeworks") +if not minetest.get_modpath("pipeworks") then + -- Pipeworks is not installed. Simulate using a dummy table... + pipeworks = {} + local pipeworks_meta = {} + setmetatable(pipeworks, pipeworks_meta) + local dummy = function() + end + pipeworks_meta.__index = function(table, key) + print("[technic_chests] WARNING: variable or method '"..key.."' not present in dummy pipeworks table - assuming it is a method...") + pipeworks[key] = dummy + return dummy + end + pipeworks.after_place = dummy + pipeworks.after_dig = dummy +end + +local chest_mark_colors = { + {"black", S("Black")}, + {"blue", S("Blue")}, + {"brown", S("Brown")}, + {"cyan", S("Cyan")}, + {"dark_green", S("Dark Green")}, + {"dark_grey", S("Dark Grey")}, + {"green", S("Green")}, + {"grey", S("Grey")}, + {"magenta", S("Magenta")}, + {"orange", S("Orange")}, + {"pink", S("Pink")}, + {"red", S("Red")}, + {"violet", S("Violet")}, + {"white", S("White")}, + {"yellow", S("Yellow")}, +} + + +local function colorid_to_postfix(id) + return chest_mark_colors[id] and "_"..chest_mark_colors[id][1] or "" +end + + +local function get_color_buttons(coleft, lotop) + local buttons_string = "" + for y = 0, 3 do + for x = 0, 3 do + local file_name = "technic_colorbutton"..(y * 4 + x)..".png" + buttons_string = buttons_string.."image_button[" + ..(coleft + 0.1 + x * 0.7)..","..(lotop + 0.1 + y * 0.7) + ..";0.8,0.8;"..file_name..";color_button" + ..(y * 4 + x + 1)..";]" + end + end + return buttons_string +end + + +local function check_color_buttons(pos, meta, chest_name, fields) + for i = 1, 16 do + if fields["color_button"..i] then + local node = minetest.get_node(pos) + node.name = chest_name..colorid_to_postfix(i) + minetest.swap_node(pos, node) + meta:set_string("color", i) + return + end + end +end + +local function set_formspec(pos, data, page) + local meta = minetest.get_meta(pos) + local node = minetest.get_node(pos) + local formspec = data.base_formspec + if data.autosort then + local status = meta:get_int("autosort") + formspec = formspec.."button["..(data.hileft+2)..","..(data.height+1.1)..";3,0.8;autosort_to_"..(1-status)..";"..S("Auto-sort is %s"):format(status == 1 and S("On") or S("Off")).."]" + end + if data.infotext then + local formspec_infotext = minetest.formspec_escape(meta:get_string("infotext")) + if page == "main" then + formspec = formspec.."image_button["..(data.hileft+2.1)..",0.1;0.8,0.8;" + .."technic_pencil_icon.png;edit_infotext;]" + .."label["..(data.hileft+3)..",0;"..formspec_infotext.."]" + elseif page == "edit_infotext" then + formspec = formspec.."image_button["..(data.hileft+2.1)..",0.1;0.8,0.8;" + .."technic_checkmark_icon.png;save_infotext;]" + .."field["..(data.hileft+3.3)..",0.2;4.8,1;" + .."infotext_box;"..S("Edit chest description:")..";" + ..formspec_infotext.."]" + end + end + if data.color then + local colorID = meta:get_int("color") + local colorName + if chest_mark_colors[colorID] then + colorName = chest_mark_colors[colorID][2] + else + colorName = S("None") + end + formspec = formspec.."label["..(data.coleft+0.2)..","..(data.lotop+3)..";"..S("Color Filter: %s"):format(colorName).."]" + end + meta:set_string("formspec", formspec) +end + +local function 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 + +local function get_receive_fields(name, data) + local lname = name:lower() + return function(pos, formname, fields, sender) + local meta = minetest.get_meta(pos) + local page = "main" + if fields.sort or (data.autosort and fields.quit and meta:get_int("autosort") == 1) then + sort_inventory(meta:get_inventory()) + end + if fields.edit_infotext then + page = "edit_infotext" + end + if fields.autosort_to_1 then meta:set_int("autosort", 1) end + if fields.autosort_to_0 then meta:set_int("autosort", 0) end + if fields.infotext_box then + meta:set_string("infotext", fields.infotext_box) + end + if data.color then + -- This sets the node + local nn = "technic:"..lname..(data.locked and "_locked" or "").."_chest" + check_color_buttons(pos, meta, nn, fields) + end + meta:get_inventory():set_size("main", data.width * data.height) + set_formspec(pos, data, page) + end +end + + +function technic.chests:definition(name, data) + local lname = name:lower() + name = S(name) + local d = {} + for k, v in pairs(data) do d[k] = v end + data = d + + data.lowidth = 8 + data.ovwidth = math.max(data.lowidth, data.width) + data.hileft = (data.ovwidth - data.width) / 2 + data.loleft = (data.ovwidth - data.lowidth) / 2 + if data.color then + if data.lowidth + 3 <= data.ovwidth then + data.coleft = data.ovwidth - 3 + if data.loleft + data.lowidth > data.coleft then + data.loleft = data.coleft - data.lowidth + end + else + data.loleft = 0 + data.coleft = data.lowidth + data.ovwidth = data.lowidth + 3 + end + end + data.lotop = data.height + 2 + data.ovheight = data.lotop + 4 + + local locked_after_place = nil + local front = {"technic_"..lname.."_chest_front.png"} + data.base_formspec = "size["..data.ovwidth..","..data.ovheight.."]".. + "label[0,0;"..S("%s Chest"):format(name).."]".. + "list[context;main;"..data.hileft..",1;"..data.width..","..data.height..";]".. + "list[current_player;main;"..data.loleft..","..data.lotop..";8,4;]".. + "background[-0.19,-0.25;"..(data.ovwidth+0.4)..","..(data.ovheight+0.75)..";technic_chest_form_bg.png]".. + "background["..data.hileft..",1;"..data.width..","..data.height..";technic_"..lname.."_chest_inventory.png]".. + "background["..data.loleft..","..data.lotop..";8,4;technic_main_inventory.png]".. + "listring[]" + if data.sort then + data.base_formspec = data.base_formspec.."button["..data.hileft..","..(data.height+1.1)..";1,0.8;sort;"..S("Sort").."]" + end + if data.color then + data.base_formspec = data.base_formspec..get_color_buttons(data.coleft, data.lotop) + end + + if data.locked then + locked_after_place = function(pos, placer) + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", + S("%s Locked Chest (owned by %s)") + :format(name, meta:get_string("owner"))) + pipeworks.after_place(pos) + end + table.insert(front, "technic_"..lname.."_chest_lock_overlay.png") + else + locked_after_place = pipeworks.after_place + end + + local desc + if data.locked then + desc = S("%s Locked Chest"):format(name) + else + desc = S("%s Chest"):format(name) + end + + local def = { + description = desc, + tiles = {"technic_"..lname.."_chest_top.png", "technic_"..lname.."_chest_top.png", + "technic_"..lname.."_chest_side.png", "technic_"..lname.."_chest_side.png", + "technic_"..lname.."_chest_side.png", table.concat(front, "^")}, + paramtype2 = "facedir", + groups = self.groups, + tube = self.tube, + legacy_facedir_simple = true, + sounds = default.node_sound_wood_defaults(), + after_place_node = locked_after_place, + after_dig_node = pipeworks.after_dig, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("infotext", S("%s Chest"):format(name)) + set_formspec(pos, data, "main") + local inv = meta:get_inventory() + inv:set_size("main", data.width * data.height) + end, + can_dig = self.can_dig, + on_receive_fields = get_receive_fields(name, data), + on_metadata_inventory_move = self.on_inv_move, + on_metadata_inventory_put = self.on_inv_put, + on_metadata_inventory_take = self.on_inv_take, + } + if data.locked then + def.allow_metadata_inventory_move = self.inv_move + def.allow_metadata_inventory_put = self.inv_put + def.allow_metadata_inventory_take = self.inv_take + end + return def +end + +function technic.chests:register(name, data) + local def = technic.chests:definition(name, data) + + local nn = "technic:"..name:lower()..(data.locked and "_locked" or "").."_chest" + minetest.register_node(":"..nn, def) + + if data.color then + local mk_front + if string.find(def.tiles[6], "%^") then + mk_front = function (overlay) return def.tiles[6]:gsub("%^", "^"..overlay.."^") end + else + mk_front = function (overlay) return def.tiles[6].."^"..overlay end + end + for i = 1, 15 do + local postfix = colorid_to_postfix(i) + local colordef = {} + for k, v in pairs(def) do + colordef[k] = v + end + colordef.drop = nn + colordef.groups = self.groups_noinv + colordef.tiles = { def.tiles[1], def.tiles[2], def.tiles[3], def.tiles[4], def.tiles[5], mk_front("technic_chest_overlay"..postfix..".png") } + minetest.register_node(":"..nn..postfix, colordef) + end + end + +end + diff --git a/mods/technic/technic_chests/technic_chests/silver_chest.lua b/mods/technic/technic_chests/technic_chests/silver_chest.lua new file mode 100644 index 0000000..c615304 --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/silver_chest.lua @@ -0,0 +1,48 @@ +if minetest.get_modpath("moreores") then + minetest.register_craft({ + output = 'technic:silver_chest', + recipe = { + {'moreores:silver_ingot','moreores:silver_ingot','moreores:silver_ingot'}, + {'moreores:silver_ingot','technic:copper_chest','moreores:silver_ingot'}, + {'moreores:silver_ingot','moreores:silver_ingot','moreores:silver_ingot'}, + } + }) + + minetest.register_craft({ + output = 'technic:silver_locked_chest', + recipe = { + {'moreores:silver_ingot','moreores:silver_ingot','moreores:silver_ingot'}, + {'moreores:silver_ingot','technic:copper_locked_chest','moreores:silver_ingot'}, + {'moreores:silver_ingot','moreores:silver_ingot','moreores:silver_ingot'}, + } + }) +end + +minetest.register_craft({ + output = 'technic:silver_locked_chest', + recipe = { + {'default:steel_ingot'}, + {'technic:silver_chest'}, + } +}) + +technic.chests:register("Silver", { + width = 12, + height = 6, + sort = true, + autosort = true, + infotext = true, + color = false, + locked = false, +}) + +technic.chests:register("Silver", { + width = 12, + height = 6, + sort = true, + autosort = true, + infotext = true, + color = false, + locked = true, +}) + diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_checkmark_icon.png b/mods/technic/technic_chests/technic_chests/textures/technic_checkmark_icon.png new file mode 100644 index 0000000..369d294 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_checkmark_icon.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_form_bg.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_form_bg.png new file mode 100644 index 0000000..37683f0 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_form_bg.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_black.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_black.png new file mode 100644 index 0000000..fa25304 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_black.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_blue.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_blue.png new file mode 100644 index 0000000..512cd4f Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_blue.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_brown.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_brown.png new file mode 100644 index 0000000..64c1d55 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_brown.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_cyan.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_cyan.png new file mode 100644 index 0000000..46732f4 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_cyan.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_dark_green.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_dark_green.png new file mode 100644 index 0000000..941236b Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_dark_green.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_dark_grey.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_dark_grey.png new file mode 100644 index 0000000..e6b8f77 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_dark_grey.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_green.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_green.png new file mode 100644 index 0000000..4b9543f Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_green.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_grey.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_grey.png new file mode 100644 index 0000000..8a1c9f0 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_grey.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_magenta.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_magenta.png new file mode 100644 index 0000000..75b220d Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_magenta.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_orange.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_orange.png new file mode 100644 index 0000000..02c095d Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_orange.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_pink.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_pink.png new file mode 100644 index 0000000..0b6ccb4 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_pink.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_red.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_red.png new file mode 100644 index 0000000..4b44642 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_red.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_violet.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_violet.png new file mode 100644 index 0000000..89471f9 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_violet.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_white.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_white.png new file mode 100644 index 0000000..b49e253 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_white.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_yellow.png b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_yellow.png new file mode 100644 index 0000000..d563257 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_chest_overlay_yellow.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton0.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton0.png new file mode 100644 index 0000000..35b7db2 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton0.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton1.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton1.png new file mode 100644 index 0000000..cbf095d Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton1.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton10.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton10.png new file mode 100644 index 0000000..8dfc5f0 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton10.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton11.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton11.png new file mode 100644 index 0000000..3b279e0 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton11.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton12.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton12.png new file mode 100644 index 0000000..a387b5f Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton12.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton13.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton13.png new file mode 100644 index 0000000..b1e7790 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton13.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton14.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton14.png new file mode 100644 index 0000000..c4ad486 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton14.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton15.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton15.png new file mode 100644 index 0000000..b7060d6 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton15.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton2.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton2.png new file mode 100644 index 0000000..caf1fc6 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton2.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton3.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton3.png new file mode 100644 index 0000000..6ac79a3 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton3.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton4.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton4.png new file mode 100644 index 0000000..dc43592 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton4.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton5.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton5.png new file mode 100644 index 0000000..98b8c67 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton5.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton6.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton6.png new file mode 100644 index 0000000..66478bc Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton6.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton7.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton7.png new file mode 100644 index 0000000..85f6b93 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton7.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton8.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton8.png new file mode 100644 index 0000000..868c35d Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton8.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton9.png b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton9.png new file mode 100644 index 0000000..50eac0b Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_colorbutton9.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_front.png new file mode 100644 index 0000000..add51e8 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_inventory.png b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_inventory.png new file mode 100644 index 0000000..70da510 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_inventory.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_lock_overlay.png b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_lock_overlay.png new file mode 100644 index 0000000..49f7f2a Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_side.png new file mode 100644 index 0000000..2231cce Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_top.png new file mode 100644 index 0000000..69f1078 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_copper_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_form_bg.png b/mods/technic/technic_chests/technic_chests/textures/technic_form_bg.png new file mode 100644 index 0000000..37683f0 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_form_bg.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_front.png new file mode 100644 index 0000000..27036d7 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_inventory.png b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_inventory.png new file mode 100644 index 0000000..d4aa8b3 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_inventory.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_lock_overlay.png b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_lock_overlay.png new file mode 100644 index 0000000..51dea71 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_side.png new file mode 100644 index 0000000..9a0de39 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_top.png new file mode 100644 index 0000000..abfc081 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_gold_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_front.png new file mode 100644 index 0000000..8c00473 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_inventory.png b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_inventory.png new file mode 100644 index 0000000..a33967b Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_inventory.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_lock_overlay.png b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_lock_overlay.png new file mode 100644 index 0000000..1750b82 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_side.png new file mode 100644 index 0000000..7233688 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_top.png new file mode 100644 index 0000000..48d2437 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_iron_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_main_inventory.png b/mods/technic/technic_chests/technic_chests/textures/technic_main_inventory.png new file mode 100644 index 0000000..b65dabb Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_main_inventory.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_front.png new file mode 100644 index 0000000..f0e0c23 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_inventory.png b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_inventory.png new file mode 100644 index 0000000..d4aa8b3 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_inventory.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_lock_overlay.png b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_lock_overlay.png new file mode 100644 index 0000000..d227c51 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_side.png new file mode 100644 index 0000000..1c2c3a7 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_top.png new file mode 100644 index 0000000..e196baf Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_mithril_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_pencil_icon.png b/mods/technic/technic_chests/technic_chests/textures/technic_pencil_icon.png new file mode 100644 index 0000000..8079ede Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_pencil_icon.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_front.png new file mode 100644 index 0000000..5ae5831 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_inventory.png b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_inventory.png new file mode 100644 index 0000000..b2fe835 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_inventory.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_lock_overlay.png b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_lock_overlay.png new file mode 100644 index 0000000..cb1bdb0 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_side.png new file mode 100644 index 0000000..4b4ce54 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_top.png new file mode 100644 index 0000000..79196d6 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_silver_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/technic_wooden_chest_inventory.png b/mods/technic/technic_chests/technic_chests/textures/technic_wooden_chest_inventory.png new file mode 100644 index 0000000..5ffbc12 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/technic_wooden_chest_inventory.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_copper_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_copper_chest_front.png new file mode 100644 index 0000000..1769435 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_copper_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_copper_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_copper_chest_side.png new file mode 100644 index 0000000..2c7943f Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_copper_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_copper_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_copper_chest_top.png new file mode 100644 index 0000000..2ab8104 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_copper_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_gold_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_gold_chest_front.png new file mode 100644 index 0000000..9bc9615 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_gold_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_gold_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_gold_chest_side.png new file mode 100644 index 0000000..5d5ad0f Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_gold_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_gold_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_gold_chest_top.png new file mode 100644 index 0000000..f9c8fec Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_gold_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_iron_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_iron_chest_front.png new file mode 100644 index 0000000..79d5b49 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_iron_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_iron_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_iron_chest_side.png new file mode 100644 index 0000000..e12daa5 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_iron_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_iron_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_iron_chest_top.png new file mode 100644 index 0000000..da1ab7b Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_iron_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_mithril_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_mithril_chest_front.png new file mode 100644 index 0000000..9f7ca7e Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_mithril_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_mithril_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_mithril_chest_side.png new file mode 100644 index 0000000..0763511 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_mithril_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_mithril_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_mithril_chest_top.png new file mode 100644 index 0000000..2429576 Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_mithril_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_silver_chest_front.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_silver_chest_front.png new file mode 100644 index 0000000..fe5ce2c Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_silver_chest_front.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_silver_chest_side.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_silver_chest_side.png new file mode 100644 index 0000000..3a2ed4a Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_silver_chest_side.png differ diff --git a/mods/technic/technic_chests/technic_chests/textures/x32/technic_silver_chest_top.png b/mods/technic/technic_chests/technic_chests/textures/x32/technic_silver_chest_top.png new file mode 100644 index 0000000..353a11c Binary files /dev/null and b/mods/technic/technic_chests/technic_chests/textures/x32/technic_silver_chest_top.png differ diff --git a/mods/technic/technic_chests/technic_chests/wooden_chest.lua b/mods/technic/technic_chests/technic_chests/wooden_chest.lua new file mode 100644 index 0000000..0fad12c --- /dev/null +++ b/mods/technic/technic_chests/technic_chests/wooden_chest.lua @@ -0,0 +1,51 @@ +local udef = technic.chests:definition("Wooden", { + width = 8, + height = 4, + sort = false, + autosort = false, + infotext = false, + color = false, + locked = false, +}) +local uudef = { + groups = udef.groups, + tube = udef.tube, + on_construct = udef.on_construct, + can_dig = udef.can_dig, + on_receive_fields = udef.on_receive_fields, + on_metadata_inventory_move = udef.on_metadata_inventory_move, + on_metadata_inventory_put = udef.on_metadata_inventory_put, + on_metadata_inventory_take = udef.on_metadata_inventory_take, +} +if minetest.registered_nodes["default:chest"].description == "Chest" then + uudef.description = udef.description +end +minetest.override_item("default:chest", uudef) + +local ldef = technic.chests:definition("Wooden", { + width = 8, + height = 4, + sort = false, + autosort = false, + infotext = false, + color = false, + locked = true, +}) +local lldef = { + groups = ldef.groups, + tube = ldef.tube, + after_place_node = ldef.after_place_node, + on_construct = ldef.on_construct, + can_dig = ldef.can_dig, + on_receive_fields = ldef.on_receive_fields, + allow_metadata_inventory_move = ldef.allow_metadata_inventory_move, + allow_metadata_inventory_put = ldef.allow_metadata_inventory_put, + allow_metadata_inventory_take = ldef.allow_metadata_inventory_take, + on_metadata_inventory_move = ldef.on_metadata_inventory_move, + on_metadata_inventory_put = ldef.on_metadata_inventory_put, + on_metadata_inventory_take = ldef.on_metadata_inventory_take, +} +if minetest.registered_nodes["default:chest_locked"].description == "Locked Chest" then + lldef.description = ldef.description +end +minetest.override_item("default:chest_locked", lldef) diff --git a/mods/technic/technic_chests/technic_worldgen/config.lua b/mods/technic/technic_chests/technic_worldgen/config.lua new file mode 100644 index 0000000..4ac748c --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/config.lua @@ -0,0 +1,15 @@ +technic.config = technic.config or Settings(minetest.get_worldpath().."/technic.conf") + +local conf_table = technic.config:to_table() + +local defaults = { + enable_granite_generation = "true", + enable_marble_generation = "true", + enable_rubber_tree_generation = "true", +} + +for k, v in pairs(defaults) do + if conf_table[k] == nil then + technic.config:set(k, v) + end +end diff --git a/mods/technic/technic_chests/technic_worldgen/crafts.lua b/mods/technic/technic_chests/technic_worldgen/crafts.lua new file mode 100644 index 0000000..fba9df9 --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/crafts.lua @@ -0,0 +1,198 @@ + +local S = technic.worldgen.gettext + +minetest.register_craftitem(":technic:uranium_lump", { + description = S("Uranium Lump"), + inventory_image = "technic_uranium_lump.png", +}) +minetest.register_alias("technic:uranium", "technic:uranium_lump") + +minetest.register_craftitem(":technic:uranium_ingot", { + description = S("Uranium Ingot"), + inventory_image = "technic_uranium_ingot.png", + groups = {uranium_ingot=1}, +}) + +minetest.register_craftitem(":technic:chromium_lump", { + description = S("Chromium Lump"), + inventory_image = "technic_chromium_lump.png", +}) + +minetest.register_craftitem(":technic:chromium_ingot", { + description = S("Chromium Ingot"), + inventory_image = "technic_chromium_ingot.png", +}) + +minetest.register_craftitem(":technic:zinc_lump", { + description = S("Zinc Lump"), + inventory_image = "technic_zinc_lump.png", +}) + +minetest.register_craftitem(":technic:zinc_ingot", { + description = S("Zinc Ingot"), + inventory_image = "technic_zinc_ingot.png", +}) + +minetest.register_craftitem(":technic:lead_lump", { + description = S("Lead Lump"), + inventory_image = "technic_lead_lump.png", +}) + +minetest.register_craftitem(":technic:lead_ingot", { + description = S("Lead Ingot"), + inventory_image = "technic_lead_ingot.png", +}) + +minetest.register_craftitem(":technic:sulfur_lump", { + description = S("Sulfur Lump"), + inventory_image = "technic_sulfur_lump.png", +}) + +minetest.register_craftitem(":technic:brass_ingot", { + description = S("Brass Ingot"), + inventory_image = "technic_brass_ingot.png", +}) + +minetest.register_alias("technic:wrought_iron_ingot", "default:steel_ingot") + +minetest.override_item("default:steel_ingot", { + description = S("Wrought Iron Ingot"), + inventory_image = "technic_wrought_iron_ingot.png", +}) + +minetest.register_craftitem(":technic:cast_iron_ingot", { + description = S("Cast Iron Ingot"), + inventory_image = "technic_cast_iron_ingot.png", +}) + +minetest.register_craftitem(":technic:carbon_steel_ingot", { + description = S("Carbon Steel Ingot"), + inventory_image = "technic_carbon_steel_ingot.png", +}) + +minetest.register_craftitem(":technic:stainless_steel_ingot", { + description = S("Stainless Steel Ingot"), + inventory_image = "technic_stainless_steel_ingot.png", +}) + +local function register_block(block, ingot) + minetest.register_craft({ + output = block, + recipe = { + {ingot, ingot, ingot}, + {ingot, ingot, ingot}, + {ingot, ingot, ingot}, + } + }) + + minetest.register_craft({ + output = ingot.." 9", + recipe = { + {block} + } + }) +end + +register_block("technic:uranium_block", "technic:uranium_ingot") +register_block("technic:chromium_block", "technic:chromium_ingot") +register_block("technic:zinc_block", "technic:zinc_ingot") +register_block("technic:lead_block", "technic:lead_ingot") +register_block("technic:brass_block", "technic:brass_ingot") +register_block("technic:cast_iron_block", "technic:cast_iron_ingot") +register_block("technic:carbon_steel_block", "technic:carbon_steel_ingot") +register_block("technic:stainless_steel_block", "technic:stainless_steel_ingot") + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:zinc_lump", + output = "technic:zinc_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:chromium_lump", + output = "technic:chromium_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:uranium_lump", + output = "technic:uranium_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:lead_lump", + output = "technic:lead_ingot", +}) + + +minetest.register_craft({ + type = 'cooking', + recipe = minetest.registered_aliases["technic:wrought_iron_ingot"], + output = "technic:cast_iron_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:cast_iron_ingot", + cooktime = 2, + output = "technic:wrought_iron_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:carbon_steel_ingot", + cooktime = 2, + output = "technic:wrought_iron_ingot", +}) + +local function for_each_registered_item(action) + local already_reg = {} + for k, _ in pairs(minetest.registered_items) do + table.insert(already_reg, k) + end + local really_register_craftitem = minetest.register_craftitem + minetest.register_craftitem = function(name, def) + really_register_craftitem(name, def) + action(string.gsub(name, "^:", "")) + end + local really_register_tool = minetest.register_tool + minetest.register_tool = function(name, def) + really_register_tool(name, def) + action(string.gsub(name, "^:", "")) + end + local really_register_node = minetest.register_node + minetest.register_node = function(name, def) + really_register_node(name, def) + action(string.gsub(name, "^:", "")) + end + for _, name in ipairs(already_reg) do + action(name) + end +end + +local steel_to_iron = {} +for _, i in ipairs({ + "default:axe_steel", + "default:pick_steel", + "default:shovel_steel", + "default:sword_steel", + "doors:door_steel", + "farming:hoe_steel", + "glooptest:hammer_steel", + "glooptest:handsaw_steel", + "glooptest:reinforced_crystal_glass", + "mesecons_doors:op_door_steel", + "mesecons_doors:sig_door_steel", + "vessels:steel_bottle", +}) do + steel_to_iron[i] = true +end + +for_each_registered_item(function(item_name) + local item_def = minetest.registered_items[item_name] + if steel_to_iron[item_name] and string.find(item_def.description, "Steel") then + minetest.override_item(item_name, { description = string.gsub(item_def.description, "Steel", S("Iron")) }) + end +end) diff --git a/mods/technic/technic_chests/technic_worldgen/depends.txt b/mods/technic/technic_chests/technic_worldgen/depends.txt new file mode 100644 index 0000000..ac858d0 --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/depends.txt @@ -0,0 +1,3 @@ +default +intllib? +mg? diff --git a/mods/technic/technic_chests/technic_worldgen/init.lua b/mods/technic/technic_chests/technic_worldgen/init.lua new file mode 100644 index 0000000..2f36920 --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/init.lua @@ -0,0 +1,26 @@ +local modpath = minetest.get_modpath("technic_worldgen") + +technic = rawget(_G, "technic") or {} +technic.worldgen = { + gettext = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end, +} + +dofile(modpath.."/config.lua") +dofile(modpath.."/nodes.lua") +dofile(modpath.."/oregen.lua") +dofile(modpath.."/crafts.lua") + +-- Rubber trees, moretrees also supplies these +if not minetest.get_modpath("moretrees") then + dofile(modpath.."/rubber.lua") +else + -- older versions of technic provided rubber trees regardless + minetest.register_alias("technic:rubber_sapling", "moretrees:rubber_tree_sapling") + minetest.register_alias("technic:rubber_tree_empty", "moretrees:rubber_tree_trunk_empty") +end + +-- mg suppport +if minetest.get_modpath("mg") then + dofile(modpath.."/mg.lua") +end + diff --git a/mods/technic/technic_chests/technic_worldgen/locale/de.txt b/mods/technic/technic_chests/technic_worldgen/locale/de.txt new file mode 100644 index 0000000..401c94c --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/locale/de.txt @@ -0,0 +1,39 @@ +# German Translation for technic_worldgen +# Deutsche Übersetzung von technic_worldgen +# by Xanthin + +## crafts.lua +Uranium Lump = Uranklumpen +Uranium Ingot = Uranbarren +Chromium Lump = Chromklumpen +Chromium Ingot = Chrombarren +Zinc Lump = Zinkklumpen +Zinc Ingot = Zinkbarren +Brass Ingot = Messingbarren +Wrought Iron Ingot = Schmiedeeisenbarren +Cast Iron Ingot = Gusseisenbarren +Carbon Steel Ingot = Kohlenstoffstahlbarren +Stainless Steel Ingot = Edelstahlbarren +Iron = Eisen + +## nodes.lua +Uranium Ore = Uranerz +Chromium Ore = Chromerz +Zinc Ore = Zinkerz +Granite = Granit +Marble = Marmor +Marble Bricks = Marmorziegel +Uranium Block = Uranblock +Chromium Block = Chromblock +Zinc Block = Zinkblock +Wrought Iron Block = Schmiedeeisenblock +Cast Iron Block = Gusseisenblock +Carbon Steel Block = Kohlenstoffstahlblock +Stainless Steel Block = Edelstahlblock +Brass Block = Messingblock +Wrought Iron = Schmiedeeisen + +## rubber.lua +Rubber Tree Sapling = Gummibaumsetzling +Rubber Tree = Gummibaum + diff --git a/mods/technic/technic_chests/technic_worldgen/locale/template.txt b/mods/technic/technic_chests/technic_worldgen/locale/template.txt new file mode 100644 index 0000000..594e0ce --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/locale/template.txt @@ -0,0 +1,37 @@ +# template.txt +# technic_worldgen translation template + +###crafts.lua +Uranium Lump = +Uranium Ingot = +Chromium Lump = +Chromium Ingot = +Zinc Lump = +Zinc Ingot = +Brass Ingot = +Wrought Iron Ingot = +Cast Iron Ingot = +Carbon Steel Ingot = +Stainless Steel Ingot = +Iron = + +###nodes.lua +Uranium Ore = +Chromium Ore = +Zinc Ore = +Granite = +Marble = +Marble Bricks = +Uranium Block = +Chromium Block = +Zinc Block = +Wrought Iron Block = +Cast Iron Block = +Carbon Steel Block = +Stainless Steel Block = +Brass Block = +Wrought Iron = + +###rubber.lua +Rubber Tree Sapling = +Rubber Tree = diff --git a/mods/technic/technic_chests/technic_worldgen/locale/tr.txt b/mods/technic/technic_chests/technic_worldgen/locale/tr.txt new file mode 100644 index 0000000..a04597f --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/locale/tr.txt @@ -0,0 +1,38 @@ +# Turkish translation +# mahmutelmas06@hotmail.com +# TΓΌrkΓ§e Γ§eviri + +###crafts.lua +Uranium Lump = Uranyum yığınΔ± +Uranium Ingot = Uranyum kΓΌlΓ§esi +Chromium Lump = Krom yığınΔ± +Chromium Ingot = Krom kΓΌlΓ§esi +Zinc Lump = Γ‡inko yığınΔ± +Zinc Ingot = Çünko kΓΌlΓ§esi +Brass Ingot = PirinΓ§ yığınΔ± +Wrought Iron Ingot = İşlenmiş demir yığınΔ± +Cast Iron Ingot = DΓΆkΓΌm demir yığınΔ± +Carbon Steel Ingot = Karbon Γ§elik kΓΌlΓ§e +Stainless Steel Ingot =Paslanmaz Γ§elik kΓΌlΓ§e +Iron = Demir + +###nodes.lua +Uranium Ore = Uranyum madeni +Chromium Ore = Krom madeni +Zinc Ore = Γ‡inko madeni +Granite = Granit +Marble = Mermer +Marble Bricks = Mermer tuğla +Uranium Block = Uranyum blok +Chromium Block = Karbon blok +Zinc Block = Γ‡inko blok +Wrought Iron Block = İşlenmiş demir blok +Cast Iron Block = DΓΆkΓΌm demir blok +Carbon Steel Block = Karbon Γ§elik blok +Stainless Steel Block = Paslanmaz Γ§elik blok +Brass Block = PirinΓ§ blok +Wrought Iron = İşlenmiş demir + +###rubber.lua +Rubber Tree Sapling = KauΓ§uk ağacΔ± fidanΔ± +Rubber Tree = KauΓ§uk ağacΔ± diff --git a/mods/technic/technic_chests/technic_worldgen/mg.lua b/mods/technic/technic_chests/technic_worldgen/mg.lua new file mode 100644 index 0000000..4025384 --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/mg.lua @@ -0,0 +1,90 @@ +mg.register_ore({ + name = "technic:mineral_uranium", + wherein = "default:stone", + seeddiff = 11, + maxvdistance = 10.5, + maxheight = -80, + minheight = -300, + sizen = 20, + sizedev = 10, + seglenghtn = 3, + seglenghtdev = 1, + segincln = 0.4, + segincldev = 0.6, + turnangle = 57, + numperblock = 1, + fork_chance = 0 +}) + +mg.register_ore({ + name = "technic:mineral_chromium", + wherein = "default:stone", + seeddiff = 12, + maxvdistance = 10.5, + maxheight = -100, + sizen = 50, + sizedev = 20, + seglenghtn = 8, + seglenghtdev = 3, + segincln = 0, + segincldev = 0.6, + turnangle = 57, + forkturnangle = 57, + numperblock = 2 +}) + +mg.register_ore({ + name = "technic:mineral_zinc", + wherein = "default:stone", + seeddiff = 13, + maxvdistance = 10.5, + maxheight = 2, + seglenghtn = 15, + seglenghtdev = 6, + segincln = 0, + segincldev = 0.6, + turnangle = 57, + forkturnangle = 57, + numperblock = 2 +}) + +mg.register_ore({ + name = "technic:mineral_lead", + wherein = "default:stone", + seeddiff = 13, + maxvdistance = 10.5, + maxheight = 16, + seglenghtn = 15, + seglenghtdev = 6, + segincln = 0, + segincldev = 0.6, + turnangle = 57, + forkturnangle = 57, + numperblock = 3 +}) + +if technic.config:get_bool("enable_granite_generation") then + mg.register_ore_sheet({ + name = "technic:granite", + wherein = "default:stone", + height_min = -31000, + height_max = -150, + tmin = 3, + tmax = 6, + threshhold = 0.4, + noise_params = {offset=0, scale=15, spread={x=130, y=130, z=130}, seed=24, octaves=3, persist=0.70} + }) +end + +if technic.config:get_bool("enable_marble_generation") then + mg.register_ore_sheet({ + name = "technic:marble", + wherein = "default:stone", + height_min = -31000, + height_max = -50, + tmin = 3, + tmax = 6, + threshhold = 0.4, + noise_params = {offset=0, scale=15, spread={x=130, y=130, z=130}, seed=23, octaves=3, persist=0.70} + }) +end diff --git a/mods/technic/technic_chests/technic_worldgen/nodes.lua b/mods/technic/technic_chests/technic_worldgen/nodes.lua new file mode 100644 index 0000000..a4fe2dd --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/nodes.lua @@ -0,0 +1,196 @@ + +local S = technic.worldgen.gettext + +minetest.register_node( ":technic:mineral_uranium", { + description = S("Uranium Ore"), + tiles = { "default_stone.png^technic_mineral_uranium.png" }, + is_ground_content = true, + groups = {cracky=3, radioactive=1000}, + sounds = default.node_sound_stone_defaults(), + drop = "technic:uranium_lump", +}) + +minetest.register_node( ":technic:mineral_chromium", { + description = S("Chromium Ore"), + tiles = { "default_stone.png^technic_mineral_chromium.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = "technic:chromium_lump", +}) + +minetest.register_node( ":technic:mineral_zinc", { + description = S("Zinc Ore"), + tiles = { "default_stone.png^technic_mineral_zinc.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = "technic:zinc_lump", +}) + +minetest.register_node( ":technic:mineral_lead", { + description = S("Lead Ore"), + tiles = { "default_stone.png^technic_mineral_lead.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = "technic:lead_lump", +}) + +minetest.register_node( ":technic:mineral_sulfur", { + description = S("Sulfur Ore"), + tiles = { "default_stone.png^technic_mineral_sulfur.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = "technic:sulfur_lump", +}) + +minetest.register_node( ":technic:granite", { + description = S("Granite"), + tiles = { "technic_granite.png" }, + is_ground_content = true, + groups = {cracky=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( ":technic:marble", { + description = S("Marble"), + tiles = { "technic_marble.png" }, + is_ground_content = true, + groups = {cracky=3, marble=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( ":technic:marble_bricks", { + description = S("Marble Bricks"), + tiles = { "technic_marble_bricks.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node(":technic:uranium_block", { + description = S("Uranium Block"), + tiles = { "technic_uranium_block.png" }, + is_ground_content = true, + groups = {uranium_block=1, cracky=1, level=2, radioactive=3000}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:chromium_block", { + description = S("Chromium Block"), + tiles = { "technic_chromium_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:zinc_block", { + description = S("Zinc Block"), + tiles = { "technic_zinc_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:lead_block", { + description = S("Lead Block"), + tiles = { "technic_lead_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_alias("technic:wrought_iron_block", "default:steelblock") + +minetest.override_item("default:steelblock", { + description = S("Wrought Iron Block"), + tiles = { "technic_wrought_iron_block.png" }, +}) + +minetest.register_node(":technic:cast_iron_block", { + description = S("Cast Iron Block"), + tiles = { "technic_cast_iron_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:carbon_steel_block", { + description = S("Carbon Steel Block"), + tiles = { "technic_carbon_steel_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:stainless_steel_block", { + description = S("Stainless Steel Block"), + tiles = { "technic_stainless_steel_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:brass_block", { + description = S("Brass Block"), + tiles = { "technic_brass_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_craft({ + output = 'technic:marble_bricks 4', + recipe = { + {'technic:marble','technic:marble'}, + {'technic:marble','technic:marble'} + } +}) + +minetest.register_alias("technic:diamond_block", "default:diamondblock") +minetest.register_alias("technic:diamond", "default:diamond") +minetest.register_alias("technic:mineral_diamond", "default:stone_with_diamond") + +local function for_each_registered_node(action) + local really_register_node = minetest.register_node + minetest.register_node = function(name, def) + really_register_node(name, def) + action(name:gsub("^:", ""), def) + end + for name, def in pairs(minetest.registered_nodes) do + action(name, def) + end +end + +for_each_registered_node(function(node_name, node_def) + if node_name ~= "default:steelblock" and + node_name:find("steelblock", 1, true) and + node_def.description:find("Steel", 1, true) then + minetest.override_item(node_name, { + description = node_def.description:gsub("Steel", S("Wrought Iron")), + }) + end + local tiles = node_def.tiles or node_def.tile_images + if tiles then + local new_tiles = {} + local do_override = false + if type(tiles) == "string" then + tiles = {tiles} + end + for i, t in ipairs(tiles) do + if type(t) == "string" and t == "default_steel_block.png" then + do_override = true + t = "technic_wrought_iron_block.png" + end + table.insert(new_tiles, t) + end + if do_override then + minetest.override_item(node_name, { + tiles = new_tiles + }) + end + end +end) + diff --git a/mods/technic/technic_chests/technic_worldgen/oregen.lua b/mods/technic/technic_chests/technic_worldgen/oregen.lua new file mode 100644 index 0000000..795f0ec --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/oregen.lua @@ -0,0 +1,191 @@ +local uranium_params = {offset = 0, scale = 1, spread = {x = 100, y = 100, z = 100}, seed = 420, octaves = 3, persist = 0.7} +local uranium_threshhold = 0.55 + +local chromium_params = {offset = 0, scale = 1, spread = {x = 100, y = 100, z = 100}, seed = 421, octaves = 3, persist = 0.7} +local chromium_threshhold = 0.55 + +local zinc_params = {offset = 0, scale = 1, spread = {x = 100, y = 100, z = 100}, seed = 422, octaves = 3, persist = 0.7} +local zinc_threshhold = 0.5 + +local lead_params = {offset = 0, scale = 1, spread = {x = 100, y = 100, z = 100}, seed = 423, octaves = 3, persist = 0.7} +local lead_threshhold = 0.3 + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_uranium", + wherein = "default:stone", + clust_scarcity = 8*8*8, + clust_num_ores = 4, + clust_size = 3, + y_min = -300, + y_max = -80, + noise_params = uranium_params, + noise_threshhold = uranium_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_chromium", + wherein = "default:stone", + clust_scarcity = 8*8*8, + clust_num_ores = 2, + clust_size = 3, + y_min = -200, + y_max = -100, + noise_params = chromium_params, + noise_threshhold = chromium_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_chromium", + wherein = "default:stone", + clust_scarcity = 6*6*6, + clust_num_ores = 2, + clust_size = 3, + y_min = -31000, + y_max = -200, + flags = "absheight", + noise_params = chromium_params, + noise_threshhold = chromium_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_zinc", + wherein = "default:stone", + clust_scarcity = 8*8*8, + clust_num_ores = 4, + clust_size = 3, + y_min = -32, + y_max = 2, + noise_params = zinc_params, + noise_threshhold = zinc_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_zinc", + wherein = "default:stone", + clust_scarcity = 6*6*6, + clust_num_ores = 4, + clust_size = 3, + y_min = -31000, + y_max = -32, + flags = "absheight", + noise_params = zinc_params, + noise_threshhold = zinc_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_lead", + wherein = "default:stone", + clust_scarcity = 9*9*9, + clust_num_ores = 5, + clust_size = 3, + y_min = -16, + y_max = 16, + noise_params = lead_params, + noise_threshhold = lead_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_lead", + wherein = "default:stone", + clust_scarcity = 8*8*8, + clust_num_ores = 5, + clust_size = 3, + y_min = -128, + y_max = -16, + noise_params = lead_params, + noise_threshhold = lead_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_lead", + wherein = "default:stone", + clust_scarcity = 6*6*6, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -128, + flags = "absheight", + noise_params = lead_params, + noise_threshhold = lead_threshhold, +}) + +-- Sulfur +minetest.register_on_generated(function(minp, maxp, seed) + local vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + local a = VoxelArea:new{ + MinEdge = {x = emin.x, y = emin.y, z = emin.z}, + MaxEdge = {x = emax.x, y = emax.y, z = emax.z}, + } + local data = vm:get_data() + local pr = PseudoRandom(17 * minp.x + 42 * minp.y + 101 * minp.z) + local noise = minetest.get_perlin(9876, 3, 0.5, 100) + + local c_lava = minetest.get_content_id("default:lava_source") + local c_lava_flowing = minetest.get_content_id("default:lava_flowing") + local c_stone = minetest.get_content_id("default:stone") + local c_sulfur = minetest.get_content_id("technic:mineral_sulfur") + + local grid_size = 5 + for x = minp.x + math.floor(grid_size / 2), maxp.x, grid_size do + for y = minp.y + math.floor(grid_size / 2), maxp.y, grid_size do + for z = minp.z + math.floor(grid_size / 2), maxp.z, grid_size do + local c = data[a:index(x, y, z)] + if (c == c_lava or c == c_lava_flowing) and noise:get3d({x = x, y = z, z = z}) >= 0.4 then + for xx = math.max(minp.x, x - grid_size), math.min(maxp.x, x + grid_size) do + for yy = math.max(minp.y, y - grid_size), math.min(maxp.y, y + grid_size) do + for zz = math.max(minp.z, z - grid_size), math.min(maxp.z, z + grid_size) do + local i = a:index(xx, yy, zz) + if data[i] == c_stone and pr:next(1, 10) <= 7 then + data[i] = c_sulfur + end + end + end + end + end + end + end + end + + vm:set_data(data) + vm:write_to_map(data) +end) + + +if technic.config:get_bool("enable_marble_generation") then +minetest.register_ore({ + ore_type = "sheet", + ore = "technic:marble", + wherein = "default:stone", + clust_scarcity = 1, + clust_num_ores = 1, + clust_size = 3, + y_min = -31000, + y_max = -50, + noise_threshhold = 0.4, + noise_params = {offset=0, scale=15, spread={x=150, y=150, z=150}, seed=23, octaves=3, persist=0.70} +}) +end + +if technic.config:get_bool("enable_granite_generation") then +minetest.register_ore({ + ore_type = "sheet", + ore = "technic:granite", + wherein = "default:stone", + clust_scarcity = 1, + clust_num_ores = 1, + clust_size = 4, + y_min = -31000, + y_max = -150, + noise_threshhold = 0.4, + noise_params = {offset=0, scale=15, spread={x=130, y=130, z=130}, seed=24, octaves=3, persist=0.70} +}) +end + diff --git a/mods/technic/technic_chests/technic_worldgen/rubber.lua b/mods/technic/technic_chests/technic_worldgen/rubber.lua new file mode 100644 index 0000000..3094fa0 --- /dev/null +++ b/mods/technic/technic_chests/technic_worldgen/rubber.lua @@ -0,0 +1,100 @@ +-- Code of rubber tree by PilzAdam + +local S = technic.worldgen.gettext + +minetest.register_node(":moretrees:rubber_tree_sapling", { + description = S("Rubber Tree Sapling"), + drawtype = "plantlike", + tiles = {"technic_rubber_sapling.png"}, + inventory_image = "technic_rubber_sapling.png", + wield_image = "technic_rubber_sapling.png", + paramtype = "light", + walkable = false, + groups = {dig_immediate=3, flammable=2}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_craft({ + type = "fuel", + recipe = "moretrees:rubber_tree_sapling", + burntime = 10 +}) + +minetest.register_node(":moretrees:rubber_tree_trunk", { + description = S("Rubber Tree"), + tiles = {"default_tree_top.png", "default_tree_top.png", + "technic_rubber_tree_full.png"}, + groups = {tree=1, snappy=1, choppy=2, oddly_breakable_by_hand=1, + flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node(":moretrees:rubber_tree_trunk_empty", { + description = S("Rubber Tree"), + tiles = {"default_tree_top.png", "default_tree_top.png", + "technic_rubber_tree_empty.png"}, + groups = {tree=1, snappy=1, choppy=2, oddly_breakable_by_hand=1, + flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node(":moretrees:rubber_tree_leaves", { + drawtype = "allfaces_optional", + description = S("Rubber Tree Leaves"), + tiles = {"technic_rubber_leaves.png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3, flammable=2, leaves=1}, + drop = { + max_items = 1, + items = {{ + items = {"moretrees:rubber_tree_sapling"}, + rarity = 20, + }, + { + items = {"moretrees:rubber_tree_leaves"}, + } + } + }, + sounds = default.node_sound_leaves_defaults(), +}) + +technic.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 +} + +minetest.register_abm({ + nodenames = {"moretrees:rubber_tree_sapling"}, + interval = 60, + chance = 20, + action = function(pos, node) + minetest.remove_node(pos) + minetest.spawn_tree(pos, technic.rubber_tree_model) + end +}) + +if technic.config:get_bool("enable_rubber_tree_generation") then + minetest.register_on_generated(function(minp, maxp, blockseed) + if math.random(1, 100) > 5 then + return + end + local tmp = { + x = (maxp.x - minp.x) / 2 + minp.x, + y = (maxp.y - minp.y) / 2 + minp.y, + z = (maxp.z - minp.z) / 2 + minp.z} + local pos = minetest.find_node_near(tmp, maxp.x - minp.x, + {"default:dirt_with_grass"}) + if pos ~= nil then + minetest.spawn_tree({x=pos.x, y=pos.y+1, z=pos.z}, technic.rubber_tree_model) + end + end) +end + diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_brass_block.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_brass_block.png new file mode 100644 index 0000000..bc6fe78 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_brass_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_brass_dust.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_brass_dust.png new file mode 100644 index 0000000..63d9ba4 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_brass_dust.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_brass_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_brass_ingot.png new file mode 100644 index 0000000..06056e7 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_brass_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_carbon_steel_block.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_carbon_steel_block.png new file mode 100644 index 0000000..f3cfdc1 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_carbon_steel_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_carbon_steel_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_carbon_steel_ingot.png new file mode 100644 index 0000000..c30ec80 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_carbon_steel_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_cast_iron_block.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_cast_iron_block.png new file mode 100644 index 0000000..2df61e5 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_cast_iron_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_cast_iron_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_cast_iron_ingot.png new file mode 100644 index 0000000..5c182ce Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_cast_iron_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_chromium_block.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_chromium_block.png new file mode 100644 index 0000000..ad173ca Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_chromium_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_chromium_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_chromium_ingot.png new file mode 100644 index 0000000..248b0c3 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_chromium_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_chromium_lump.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_chromium_lump.png new file mode 100644 index 0000000..0fe03a1 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_chromium_lump.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_granite.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_granite.png new file mode 100644 index 0000000..abb1385 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_granite.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_block.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_block.png new file mode 100644 index 0000000..11da56a Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_dust.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_dust.png new file mode 100644 index 0000000..af6ee29 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_dust.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_ingot.png new file mode 100644 index 0000000..fae0cbf Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_lump.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_lump.png new file mode 100644 index 0000000..64584cb Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_lead_lump.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_marble.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_marble.png new file mode 100644 index 0000000..846a170 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_marble.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_marble_bricks.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_marble_bricks.png new file mode 100644 index 0000000..2ea1e42 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_marble_bricks.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_chromium.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_chromium.png new file mode 100644 index 0000000..c66f1c5 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_chromium.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_lead.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_lead.png new file mode 100644 index 0000000..0309cd3 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_lead.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_sulfur.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_sulfur.png new file mode 100644 index 0000000..26cb19d Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_sulfur.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_uranium.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_uranium.png new file mode 100644 index 0000000..aad9c07 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_uranium.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_zinc.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_zinc.png new file mode 100644 index 0000000..598efeb Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_mineral_zinc.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber.png new file mode 100644 index 0000000..9ed4a9d Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_leaves.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_leaves.png new file mode 100644 index 0000000..ae013e0 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_leaves.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_sapling.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_sapling.png new file mode 100644 index 0000000..e5c9f5d Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_sapling.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_tree_empty.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_tree_empty.png new file mode 100644 index 0000000..1792951 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_tree_empty.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_tree_full.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_tree_full.png new file mode 100644 index 0000000..08067ef Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_tree_full.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_tree_grindings.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_tree_grindings.png new file mode 100644 index 0000000..9f2f5d6 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_rubber_tree_grindings.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_stainless_steel_block.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_stainless_steel_block.png new file mode 100644 index 0000000..e451768 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_stainless_steel_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_sulfur_dust.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_sulfur_dust.png new file mode 100644 index 0000000..04ffee0 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_sulfur_dust.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_sulfur_lump.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_sulfur_lump.png new file mode 100644 index 0000000..017c8e1 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_sulfur_lump.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_uranium_block.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_uranium_block.png new file mode 100644 index 0000000..99dd51c Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_uranium_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_uranium_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_uranium_ingot.png new file mode 100644 index 0000000..38978f8 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_uranium_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_uranium_lump.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_uranium_lump.png new file mode 100644 index 0000000..2f5a66c Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_uranium_lump.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_wrought_iron_block.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_wrought_iron_block.png new file mode 100644 index 0000000..cf6c961 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_wrought_iron_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_wrought_iron_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_wrought_iron_ingot.png new file mode 100644 index 0000000..af00ea0 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_wrought_iron_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_zinc_block.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_zinc_block.png new file mode 100644 index 0000000..5ae7947 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_zinc_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_zinc_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_zinc_ingot.png new file mode 100644 index 0000000..a36a11c Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_zinc_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/technic_zinc_lump.png b/mods/technic/technic_chests/technic_worldgen/textures/technic_zinc_lump.png new file mode 100644 index 0000000..1a620ab Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/technic_zinc_lump.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_brass_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_brass_ingot.png new file mode 100644 index 0000000..2d8b153 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_brass_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_chromium_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_chromium_ingot.png new file mode 100644 index 0000000..91d5b20 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_chromium_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_chromium_lump.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_chromium_lump.png new file mode 100644 index 0000000..1588f92 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_chromium_lump.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_concrete_block.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_concrete_block.png new file mode 100644 index 0000000..91364f3 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_concrete_block.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_granite.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_granite.png new file mode 100644 index 0000000..abb1385 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_granite.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_marble.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_marble.png new file mode 100644 index 0000000..846a170 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_marble.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_marble_bricks.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_marble_bricks.png new file mode 100644 index 0000000..2ea1e42 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_marble_bricks.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_mineral_chromium.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_mineral_chromium.png new file mode 100644 index 0000000..c66f1c5 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_mineral_chromium.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_mineral_uranium.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_mineral_uranium.png new file mode 100644 index 0000000..aad9c07 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_mineral_uranium.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_mineral_zinc.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_mineral_zinc.png new file mode 100644 index 0000000..598efeb Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_mineral_zinc.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_rebar.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_rebar.png new file mode 100644 index 0000000..16d1fc5 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_rebar.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_stainless_steel_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_stainless_steel_ingot.png new file mode 100644 index 0000000..46fa296 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_stainless_steel_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_uranium.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_uranium.png new file mode 100644 index 0000000..54225f8 Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_uranium.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_zinc_ingot.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_zinc_ingot.png new file mode 100644 index 0000000..096ff9c Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_zinc_ingot.png differ diff --git a/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_zinc_lump.png b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_zinc_lump.png new file mode 100644 index 0000000..d28a6dc Binary files /dev/null and b/mods/technic/technic_chests/technic_worldgen/textures/x32/technic_zinc_lump.png differ diff --git a/mods/technic/technic_chests/textures/technic_checkmark_icon.png b/mods/technic/technic_chests/textures/technic_checkmark_icon.png new file mode 100644 index 0000000..369d294 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_checkmark_icon.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_black.png b/mods/technic/technic_chests/textures/technic_chest_overlay_black.png new file mode 100644 index 0000000..fa25304 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_black.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_blue.png b/mods/technic/technic_chests/textures/technic_chest_overlay_blue.png new file mode 100644 index 0000000..512cd4f Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_blue.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_brown.png b/mods/technic/technic_chests/textures/technic_chest_overlay_brown.png new file mode 100644 index 0000000..64c1d55 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_brown.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_cyan.png b/mods/technic/technic_chests/textures/technic_chest_overlay_cyan.png new file mode 100644 index 0000000..46732f4 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_cyan.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_dark_green.png b/mods/technic/technic_chests/textures/technic_chest_overlay_dark_green.png new file mode 100644 index 0000000..941236b Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_dark_green.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_dark_grey.png b/mods/technic/technic_chests/textures/technic_chest_overlay_dark_grey.png new file mode 100644 index 0000000..e6b8f77 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_dark_grey.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_green.png b/mods/technic/technic_chests/textures/technic_chest_overlay_green.png new file mode 100644 index 0000000..4b9543f Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_green.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_grey.png b/mods/technic/technic_chests/textures/technic_chest_overlay_grey.png new file mode 100644 index 0000000..8a1c9f0 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_grey.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_magenta.png b/mods/technic/technic_chests/textures/technic_chest_overlay_magenta.png new file mode 100644 index 0000000..75b220d Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_magenta.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_orange.png b/mods/technic/technic_chests/textures/technic_chest_overlay_orange.png new file mode 100644 index 0000000..02c095d Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_orange.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_pink.png b/mods/technic/technic_chests/textures/technic_chest_overlay_pink.png new file mode 100644 index 0000000..0b6ccb4 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_pink.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_red.png b/mods/technic/technic_chests/textures/technic_chest_overlay_red.png new file mode 100644 index 0000000..4b44642 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_red.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_violet.png b/mods/technic/technic_chests/textures/technic_chest_overlay_violet.png new file mode 100644 index 0000000..89471f9 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_violet.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_white.png b/mods/technic/technic_chests/textures/technic_chest_overlay_white.png new file mode 100644 index 0000000..b49e253 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_white.png differ diff --git a/mods/technic/technic_chests/textures/technic_chest_overlay_yellow.png b/mods/technic/technic_chests/textures/technic_chest_overlay_yellow.png new file mode 100644 index 0000000..d563257 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_chest_overlay_yellow.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton0.png b/mods/technic/technic_chests/textures/technic_colorbutton0.png new file mode 100644 index 0000000..35b7db2 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton0.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton1.png b/mods/technic/technic_chests/textures/technic_colorbutton1.png new file mode 100644 index 0000000..cbf095d Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton1.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton10.png b/mods/technic/technic_chests/textures/technic_colorbutton10.png new file mode 100644 index 0000000..8dfc5f0 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton10.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton11.png b/mods/technic/technic_chests/textures/technic_colorbutton11.png new file mode 100644 index 0000000..3b279e0 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton11.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton12.png b/mods/technic/technic_chests/textures/technic_colorbutton12.png new file mode 100644 index 0000000..a387b5f Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton12.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton13.png b/mods/technic/technic_chests/textures/technic_colorbutton13.png new file mode 100644 index 0000000..b1e7790 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton13.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton14.png b/mods/technic/technic_chests/textures/technic_colorbutton14.png new file mode 100644 index 0000000..c4ad486 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton14.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton15.png b/mods/technic/technic_chests/textures/technic_colorbutton15.png new file mode 100644 index 0000000..b7060d6 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton15.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton2.png b/mods/technic/technic_chests/textures/technic_colorbutton2.png new file mode 100644 index 0000000..caf1fc6 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton2.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton3.png b/mods/technic/technic_chests/textures/technic_colorbutton3.png new file mode 100644 index 0000000..6ac79a3 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton3.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton4.png b/mods/technic/technic_chests/textures/technic_colorbutton4.png new file mode 100644 index 0000000..dc43592 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton4.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton5.png b/mods/technic/technic_chests/textures/technic_colorbutton5.png new file mode 100644 index 0000000..98b8c67 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton5.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton6.png b/mods/technic/technic_chests/textures/technic_colorbutton6.png new file mode 100644 index 0000000..66478bc Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton6.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton7.png b/mods/technic/technic_chests/textures/technic_colorbutton7.png new file mode 100644 index 0000000..85f6b93 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton7.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton8.png b/mods/technic/technic_chests/textures/technic_colorbutton8.png new file mode 100644 index 0000000..868c35d Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton8.png differ diff --git a/mods/technic/technic_chests/textures/technic_colorbutton9.png b/mods/technic/technic_chests/textures/technic_colorbutton9.png new file mode 100644 index 0000000..50eac0b Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_colorbutton9.png differ diff --git a/mods/technic/technic_chests/textures/technic_copper_chest_front.png b/mods/technic/technic_chests/textures/technic_copper_chest_front.png new file mode 100644 index 0000000..add51e8 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_copper_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/technic_copper_chest_inventory.png b/mods/technic/technic_chests/textures/technic_copper_chest_inventory.png new file mode 100644 index 0000000..70da510 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_copper_chest_inventory.png differ diff --git a/mods/technic/technic_chests/textures/technic_copper_chest_lock_overlay.png b/mods/technic/technic_chests/textures/technic_copper_chest_lock_overlay.png new file mode 100644 index 0000000..49f7f2a Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_copper_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/textures/technic_copper_chest_side.png b/mods/technic/technic_chests/textures/technic_copper_chest_side.png new file mode 100644 index 0000000..2231cce Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_copper_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/technic_copper_chest_top.png b/mods/technic/technic_chests/textures/technic_copper_chest_top.png new file mode 100644 index 0000000..69f1078 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_copper_chest_top.png differ diff --git a/mods/technic/technic_chests/textures/technic_gold_chest_front.png b/mods/technic/technic_chests/textures/technic_gold_chest_front.png new file mode 100644 index 0000000..27036d7 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_gold_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/technic_gold_chest_inventory.png b/mods/technic/technic_chests/textures/technic_gold_chest_inventory.png new file mode 100644 index 0000000..d4aa8b3 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_gold_chest_inventory.png differ diff --git a/mods/technic/technic_chests/textures/technic_gold_chest_lock_overlay.png b/mods/technic/technic_chests/textures/technic_gold_chest_lock_overlay.png new file mode 100644 index 0000000..51dea71 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_gold_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/textures/technic_gold_chest_side.png b/mods/technic/technic_chests/textures/technic_gold_chest_side.png new file mode 100644 index 0000000..9a0de39 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_gold_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/technic_gold_chest_top.png b/mods/technic/technic_chests/textures/technic_gold_chest_top.png new file mode 100644 index 0000000..abfc081 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_gold_chest_top.png differ diff --git a/mods/technic/technic_chests/textures/technic_iron_chest_front.png b/mods/technic/technic_chests/textures/technic_iron_chest_front.png new file mode 100644 index 0000000..8c00473 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_iron_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/technic_iron_chest_inventory.png b/mods/technic/technic_chests/textures/technic_iron_chest_inventory.png new file mode 100644 index 0000000..a33967b Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_iron_chest_inventory.png differ diff --git a/mods/technic/technic_chests/textures/technic_iron_chest_lock_overlay.png b/mods/technic/technic_chests/textures/technic_iron_chest_lock_overlay.png new file mode 100644 index 0000000..1750b82 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_iron_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/textures/technic_iron_chest_side.png b/mods/technic/technic_chests/textures/technic_iron_chest_side.png new file mode 100644 index 0000000..7233688 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_iron_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/technic_iron_chest_top.png b/mods/technic/technic_chests/textures/technic_iron_chest_top.png new file mode 100644 index 0000000..48d2437 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_iron_chest_top.png differ diff --git a/mods/technic/technic_chests/textures/technic_mithril_chest_front.png b/mods/technic/technic_chests/textures/technic_mithril_chest_front.png new file mode 100644 index 0000000..f0e0c23 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_mithril_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/technic_mithril_chest_inventory.png b/mods/technic/technic_chests/textures/technic_mithril_chest_inventory.png new file mode 100644 index 0000000..d4aa8b3 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_mithril_chest_inventory.png differ diff --git a/mods/technic/technic_chests/textures/technic_mithril_chest_lock_overlay.png b/mods/technic/technic_chests/textures/technic_mithril_chest_lock_overlay.png new file mode 100644 index 0000000..d227c51 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_mithril_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/textures/technic_mithril_chest_side.png b/mods/technic/technic_chests/textures/technic_mithril_chest_side.png new file mode 100644 index 0000000..1c2c3a7 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_mithril_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/technic_mithril_chest_top.png b/mods/technic/technic_chests/textures/technic_mithril_chest_top.png new file mode 100644 index 0000000..e196baf Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_mithril_chest_top.png differ diff --git a/mods/technic/technic_chests/textures/technic_pencil_icon.png b/mods/technic/technic_chests/textures/technic_pencil_icon.png new file mode 100644 index 0000000..8079ede Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_pencil_icon.png differ diff --git a/mods/technic/technic_chests/textures/technic_silver_chest_front.png b/mods/technic/technic_chests/textures/technic_silver_chest_front.png new file mode 100644 index 0000000..5ae5831 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_silver_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/technic_silver_chest_inventory.png b/mods/technic/technic_chests/textures/technic_silver_chest_inventory.png new file mode 100644 index 0000000..b2fe835 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_silver_chest_inventory.png differ diff --git a/mods/technic/technic_chests/textures/technic_silver_chest_lock_overlay.png b/mods/technic/technic_chests/textures/technic_silver_chest_lock_overlay.png new file mode 100644 index 0000000..cb1bdb0 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_silver_chest_lock_overlay.png differ diff --git a/mods/technic/technic_chests/textures/technic_silver_chest_side.png b/mods/technic/technic_chests/textures/technic_silver_chest_side.png new file mode 100644 index 0000000..4b4ce54 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_silver_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/technic_silver_chest_top.png b/mods/technic/technic_chests/textures/technic_silver_chest_top.png new file mode 100644 index 0000000..79196d6 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_silver_chest_top.png differ diff --git a/mods/technic/technic_chests/textures/technic_wooden_chest_inventory.png b/mods/technic/technic_chests/textures/technic_wooden_chest_inventory.png new file mode 100644 index 0000000..5ffbc12 Binary files /dev/null and b/mods/technic/technic_chests/textures/technic_wooden_chest_inventory.png differ diff --git a/mods/technic/technic_chests/textures/ui_main_inventory.png b/mods/technic/technic_chests/textures/ui_main_inventory.png new file mode 100644 index 0000000..5ffbc12 Binary files /dev/null and b/mods/technic/technic_chests/textures/ui_main_inventory.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_copper_chest_front.png b/mods/technic/technic_chests/textures/x32/technic_copper_chest_front.png new file mode 100644 index 0000000..1769435 Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_copper_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_copper_chest_side.png b/mods/technic/technic_chests/textures/x32/technic_copper_chest_side.png new file mode 100644 index 0000000..2c7943f Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_copper_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_copper_chest_top.png b/mods/technic/technic_chests/textures/x32/technic_copper_chest_top.png new file mode 100644 index 0000000..2ab8104 Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_copper_chest_top.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_gold_chest_front.png b/mods/technic/technic_chests/textures/x32/technic_gold_chest_front.png new file mode 100644 index 0000000..9bc9615 Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_gold_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_gold_chest_side.png b/mods/technic/technic_chests/textures/x32/technic_gold_chest_side.png new file mode 100644 index 0000000..5d5ad0f Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_gold_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_gold_chest_top.png b/mods/technic/technic_chests/textures/x32/technic_gold_chest_top.png new file mode 100644 index 0000000..f9c8fec Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_gold_chest_top.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_iron_chest_front.png b/mods/technic/technic_chests/textures/x32/technic_iron_chest_front.png new file mode 100644 index 0000000..79d5b49 Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_iron_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_iron_chest_side.png b/mods/technic/technic_chests/textures/x32/technic_iron_chest_side.png new file mode 100644 index 0000000..e12daa5 Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_iron_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_iron_chest_top.png b/mods/technic/technic_chests/textures/x32/technic_iron_chest_top.png new file mode 100644 index 0000000..da1ab7b Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_iron_chest_top.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_mithril_chest_front.png b/mods/technic/technic_chests/textures/x32/technic_mithril_chest_front.png new file mode 100644 index 0000000..9f7ca7e Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_mithril_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_mithril_chest_side.png b/mods/technic/technic_chests/textures/x32/technic_mithril_chest_side.png new file mode 100644 index 0000000..0763511 Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_mithril_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_mithril_chest_top.png b/mods/technic/technic_chests/textures/x32/technic_mithril_chest_top.png new file mode 100644 index 0000000..2429576 Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_mithril_chest_top.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_silver_chest_front.png b/mods/technic/technic_chests/textures/x32/technic_silver_chest_front.png new file mode 100644 index 0000000..fe5ce2c Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_silver_chest_front.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_silver_chest_side.png b/mods/technic/technic_chests/textures/x32/technic_silver_chest_side.png new file mode 100644 index 0000000..3a2ed4a Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_silver_chest_side.png differ diff --git a/mods/technic/technic_chests/textures/x32/technic_silver_chest_top.png b/mods/technic/technic_chests/textures/x32/technic_silver_chest_top.png new file mode 100644 index 0000000..353a11c Binary files /dev/null and b/mods/technic/technic_chests/textures/x32/technic_silver_chest_top.png differ diff --git a/mods/technic/technic_chests/wooden_chest.lua b/mods/technic/technic_chests/wooden_chest.lua new file mode 100644 index 0000000..0fad12c --- /dev/null +++ b/mods/technic/technic_chests/wooden_chest.lua @@ -0,0 +1,51 @@ +local udef = technic.chests:definition("Wooden", { + width = 8, + height = 4, + sort = false, + autosort = false, + infotext = false, + color = false, + locked = false, +}) +local uudef = { + groups = udef.groups, + tube = udef.tube, + on_construct = udef.on_construct, + can_dig = udef.can_dig, + on_receive_fields = udef.on_receive_fields, + on_metadata_inventory_move = udef.on_metadata_inventory_move, + on_metadata_inventory_put = udef.on_metadata_inventory_put, + on_metadata_inventory_take = udef.on_metadata_inventory_take, +} +if minetest.registered_nodes["default:chest"].description == "Chest" then + uudef.description = udef.description +end +minetest.override_item("default:chest", uudef) + +local ldef = technic.chests:definition("Wooden", { + width = 8, + height = 4, + sort = false, + autosort = false, + infotext = false, + color = false, + locked = true, +}) +local lldef = { + groups = ldef.groups, + tube = ldef.tube, + after_place_node = ldef.after_place_node, + on_construct = ldef.on_construct, + can_dig = ldef.can_dig, + on_receive_fields = ldef.on_receive_fields, + allow_metadata_inventory_move = ldef.allow_metadata_inventory_move, + allow_metadata_inventory_put = ldef.allow_metadata_inventory_put, + allow_metadata_inventory_take = ldef.allow_metadata_inventory_take, + on_metadata_inventory_move = ldef.on_metadata_inventory_move, + on_metadata_inventory_put = ldef.on_metadata_inventory_put, + on_metadata_inventory_take = ldef.on_metadata_inventory_take, +} +if minetest.registered_nodes["default:chest_locked"].description == "Locked Chest" then + lldef.description = ldef.description +end +minetest.override_item("default:chest_locked", lldef) diff --git a/mods/technic/technic_chests/wrench/depends.txt b/mods/technic/technic_chests/wrench/depends.txt new file mode 100644 index 0000000..a681af3 --- /dev/null +++ b/mods/technic/technic_chests/wrench/depends.txt @@ -0,0 +1,6 @@ +default +technic? +technic_chests? +technic_worldgen? +intllib? + diff --git a/mods/technic/technic_chests/wrench/init.lua b/mods/technic/technic_chests/wrench/init.lua new file mode 100644 index 0000000..76605c4 --- /dev/null +++ b/mods/technic/technic_chests/wrench/init.lua @@ -0,0 +1,162 @@ +--[[ +Wrench mod + +Adds a wrench that allows the player to pickup nodes that contain an inventory +with items or metadata that needs perserving. +The wrench has the same tool capability as the normal hand. +To pickup a node simply right click on it. If the node contains a formspec, +you will need to shift+right click instead. +Because it enables arbitrary nesting of chests, and so allows the player +to carry an unlimited amount of material at once, this wrench is not +available to survival-mode players. +--]] + +local LATEST_SERIALIZATION_VERSION = 1 + +wrench = {} + +local modpath = minetest.get_modpath(minetest.get_current_modname()) +dofile(modpath.."/support.lua") +dofile(modpath.."/technic.lua") + +-- Boilerplate to support localized strings if intllib mod is installed. +local S = rawget(_G, "intllib") and intllib.Getter() or function(s) return s end + +local function get_meta_type(name, metaname) + local def = wrench.registered_nodes[name] + if not def or not def.metas or not def.metas[metaname] then + return nil + end + return def.metas[metaname] +end + +local function get_pickup_name(name) + return "wrench:picked_up_"..(name:gsub(":", "_")) +end + +local function restore(pos, placer, itemstack) + local name = itemstack:get_name() + local node = minetest.get_node(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local data = minetest.deserialize(itemstack:get_metadata()) + minetest.set_node(pos, {name = data.name, param2 = node.param2}) + local lists = data.lists + for name, value in pairs(data.metas) do + local meta_type = get_meta_type(data.name, name) + if meta_type == wrench.META_TYPE_INT then + meta:set_int(name, value) + elseif meta_type == wrench.META_TYPE_FLOAT then + meta:set_float(name, value) + elseif meta_type == wrench.META_TYPE_STRING then + meta:set_string(name, value) + end + end + for listname, list in pairs(lists) do + inv:set_list(listname, list) + end + itemstack:take_item() + return itemstack +end + +for name, info in pairs(wrench.registered_nodes) do + local olddef = minetest.registered_nodes[name] + if olddef then + local newdef = {} + for key, value in pairs(olddef) do + newdef[key] = value + end + newdef.stack_max = 1 + newdef.description = S("%s with items"):format(newdef.description) + newdef.groups = {} + newdef.groups.not_in_creative_inventory = 1 + newdef.on_construct = nil + newdef.on_destruct = nil + newdef.after_place_node = restore + minetest.register_node(":"..get_pickup_name(name), newdef) + end +end + +minetest.register_tool("wrench:wrench", { + description = S("Wrench"), + inventory_image = "technic_wrench.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1}, + snappy = {times={[3]=0.40}, uses=0, maxlevel=1}, + oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=1.40}, + uses=0, maxlevel=3} + }, + damage_groups = {fleshy=1}, + }, + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + if not placer or not pos then + return + end + if minetest.is_protected(pos, placer:get_player_name()) then + minetest.record_protection_violation(pos, placer:get_player_name()) + return + end + local name = minetest.get_node(pos).name + local def = wrench.registered_nodes[name] + if not def then + return + end + + local stack = ItemStack(get_pickup_name(name)) + local player_inv = placer:get_inventory() + if not player_inv:room_for_item("main", stack) then + return + end + local meta = minetest.get_meta(pos) + if def.owned then + local owner = meta:get_string("owner") + if owner and owner ~= placer:get_player_name() then + minetest.log("action", placer:get_player_name().. + " tried to pick up a owned node belonging to ".. + owner.." at ".. + minetest.pos_to_string(pos)) + return + end + end + + local metadata = {} + metadata.name = name + metadata.version = LATEST_SERIALIZATION_VERSION + + local inv = meta:get_inventory() + local lists = {} + for _, listname in pairs(def.lists or {}) do + if not inv:is_empty(listname) then + empty = false + end + local list = inv:get_list(listname) + for i, stack in pairs(list) do + list[i] = stack:to_string() + end + lists[listname] = list + end + metadata.lists = lists + + local metas = {} + for name, meta_type in pairs(def.metas or {}) do + if meta_type == wrench.META_TYPE_INT then + metas[name] = meta:get_int(name) + elseif meta_type == wrench.META_TYPE_FLOAT then + metas[name] = meta:get_float(name) + elseif meta_type == wrench.META_TYPE_STRING then + metas[name] = meta:get_string(name) + end + end + metadata.metas = metas + + stack:set_metadata(minetest.serialize(metadata)) + minetest.remove_node(pos) + itemstack:add_wear(65535 / 20) + player_inv:add_item("main", stack) + return itemstack + end, +}) diff --git a/mods/technic/technic_chests/wrench/locale/de.txt b/mods/technic/technic_chests/wrench/locale/de.txt new file mode 100644 index 0000000..b285cd3 --- /dev/null +++ b/mods/technic/technic_chests/wrench/locale/de.txt @@ -0,0 +1,7 @@ +# German Translation for technic_wrench +# Deutsche Übersetzung von technic_wrench +# by Xanthin + +Wrench = Schraubenschluessel +%s with items = %s mit Gegenstaenden + diff --git a/mods/technic/technic_chests/wrench/locale/template.txt b/mods/technic/technic_chests/wrench/locale/template.txt new file mode 100644 index 0000000..eff2da2 --- /dev/null +++ b/mods/technic/technic_chests/wrench/locale/template.txt @@ -0,0 +1,5 @@ +# technic_wrench translation template + +Wrench = +%s with items = + diff --git a/mods/technic/technic_chests/wrench/locale/tr.txt b/mods/technic/technic_chests/wrench/locale/tr.txt new file mode 100644 index 0000000..2050bce --- /dev/null +++ b/mods/technic/technic_chests/wrench/locale/tr.txt @@ -0,0 +1,5 @@ +# Turkish translation by mahmutelmas06 +# mahmutelmas06@hotmail.com + +Wrench = Δ°ngiliz anahtarΔ± +%s with items = AraΓ§larla birlikte %s diff --git a/mods/technic/technic_chests/wrench/support.lua b/mods/technic/technic_chests/wrench/support.lua new file mode 100644 index 0000000..1d21811 --- /dev/null +++ b/mods/technic/technic_chests/wrench/support.lua @@ -0,0 +1,73 @@ +--[[ +supported_nodes +This table stores all nodes that are compatible with the wrench mod. +Syntax: + [] = { + lists = {""}, + metas = {[""] = STRING, + [""] = INT, + [""] = FLOAT}, + owned = true, + store_meta_always = true, + } + owned - nodes that are protected by owner requirements (Ex. locked chests) + store_meta_always - when nodes are broken this ensures metadata and + inventory is always stored (Ex. active state for machines) +--]] + +wrench.META_TYPE_INT = 0 +wrench.META_TYPE_FLOAT = 1 +wrench.META_TYPE_STRING = 2 + +local INT, STRING, FLOAT = + wrench.META_TYPE_INT, + wrench.META_TYPE_STRING, + wrench.META_TYPE_FLOAT + +wrench.registered_nodes = { + ["default:chest"] = { + lists = {"main"}, + }, + ["default:chest_locked"] = { + lists = {"main"}, + metas = {owner = STRING, + infotext = STRING}, + owned = true, + }, + ["default:furnace"] = { + lists = {"fuel", "src", "dst"}, + metas = {infotext = STRING, + fuel_totaltime = FLOAT, + fuel_time = FLOAT, + src_totaltime = FLOAT, + src_time = FLOAT}, + }, + ["default:furnace_active"] = { + lists = {"fuel", "src", "dst"}, + metas = {infotext = STRING, + fuel_totaltime = FLOAT, + fuel_time = FLOAT, + src_totaltime = FLOAT, + src_time = FLOAT}, + store_meta_always = true, + }, + ["default:sign_wall"] = { + metas = {infotext = STRING, + text = STRING}, + }, +} + +function wrench:original_name(name) + for key, value in pairs(self.registered_nodes) do + if name == value.name then + return key + end + end +end + +function wrench:register_node(name, def) + if minetest.registered_nodes[name] then + self.registered_nodes[name] = def + end +end + diff --git a/mods/technic/technic_chests/wrench/technic.lua b/mods/technic/technic_chests/wrench/technic.lua new file mode 100644 index 0000000..c404180 --- /dev/null +++ b/mods/technic/technic_chests/wrench/technic.lua @@ -0,0 +1,343 @@ + +local INT, STRING, FLOAT = + wrench.META_TYPE_INT, + wrench.META_TYPE_STRING, + wrench.META_TYPE_FLOAT + +wrench:register_node("technic:iron_chest", { + lists = {"main"}, +}) +wrench:register_node("technic:iron_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING}, + owned = true, +}) +wrench:register_node("technic:copper_chest", { + lists = {"main"}, +}) +wrench:register_node("technic:copper_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING}, + owned = true, +}) +wrench:register_node("technic:silver_chest", { + lists = {"main"}, + metas = {infotext = STRING, + formspec = STRING}, +}) +wrench:register_node("technic:silver_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING, + formspec = STRING}, + owned = true, +}) +wrench:register_node("technic:gold_chest", { + lists = {"main"}, + metas = {infotext = STRING, + formspec = STRING}, +}) +wrench:register_node("technic:gold_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING, + formspec = STRING}, + owned = true, +}) +wrench:register_node("technic:mithril_chest", { + lists = {"main"}, + metas = {infotext = STRING, + formspec = STRING}, +}) +wrench:register_node("technic:mithril_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING, + formspec = STRING}, + owned = true, +}) +wrench:register_node("technic:lv_electric_furnace", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:lv_electric_furnace_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_electric_furnace", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_electric_furnace_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:coal_alloy_furnace", { + lists = {"fuel", "src", "dst"}, + metas = {infotext = STRING, + fuel_totaltime = FLOAT, + fuel_time = FLOAT, + src_totaltime = FLOAT, + src_time = FLOAT}, +}) +wrench:register_node("technic:coal_alloy_furnace_active", { + lists = {"fuel", "src", "dst"}, + metas = {infotext = STRING, + fuel_totaltime = FLOAT, + fuel_time = FLOAT, + src_totaltime = FLOAT, + src_time = FLOAT}, +}) +wrench:register_node("technic:alloy_furnace", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:alloy_furnace_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_alloy_furnace", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_alloy_furnace_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:tool_workshop", { + lists = {"src", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT}, +}) +wrench:register_node("technic:grinder", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:grinder_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_grinder", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_grinder_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:extractor", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:extractor_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_extractor", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_extractor_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:compressor", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:compressor_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_compressor", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_compressor_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:cnc", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT, + cnc_product = STRING}, +}) +wrench:register_node("technic:cnc_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT, + cnc_product = STRING}, +}) +wrench:register_node("technic:mv_centrifuge", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_centrifuge_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) + + +local chest_mark_colors = { + '_black', + '_blue', + '_brown', + '_cyan', + '_dark_green', + '_dark_grey', + '_green', + '_grey', + '_magenta', + '_orange', + '_pink', + '_red', + '_violet', + '_white', + '_yellow', + '', +} + +for i = 1, 15 do + wrench:register_node("technic:gold_chest"..chest_mark_colors[i], { + lists = {"main"}, + metas = {infotext = STRING,formspec = STRING}, + }) + wrench:register_node("technic:gold_locked_chest"..chest_mark_colors[i], { + lists = {"main"}, + metas = {infotext = STRING,owner = STRING,formspec = STRING}, + owned = true, + }) +end + +if minetest.get_modpath("technic") then + for tier, _ in pairs(technic.machines) do + local ltier = tier:lower() + for i = 0, 8 do + wrench:register_node("technic:"..ltier.."_battery_box"..i, { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + [tier.."_EU_demand"] = INT, + [tier.."_EU_supply"] = INT, + [tier.."_EU_input"] = INT, + internal_EU_charge = INT, + last_side_shown = INT}, + }) + end + end +end + diff --git a/mods/technic/technic_chests/wrench/textures/technic_wrench.png b/mods/technic/technic_chests/wrench/textures/technic_wrench.png new file mode 100644 index 0000000..471b47e Binary files /dev/null and b/mods/technic/technic_chests/wrench/textures/technic_wrench.png differ diff --git a/mods/technic/technic_worldgen/config.lua b/mods/technic/technic_worldgen/config.lua new file mode 100644 index 0000000..4ac748c --- /dev/null +++ b/mods/technic/technic_worldgen/config.lua @@ -0,0 +1,15 @@ +technic.config = technic.config or Settings(minetest.get_worldpath().."/technic.conf") + +local conf_table = technic.config:to_table() + +local defaults = { + enable_granite_generation = "true", + enable_marble_generation = "true", + enable_rubber_tree_generation = "true", +} + +for k, v in pairs(defaults) do + if conf_table[k] == nil then + technic.config:set(k, v) + end +end diff --git a/mods/technic/technic_worldgen/crafts.lua b/mods/technic/technic_worldgen/crafts.lua new file mode 100644 index 0000000..3965258 --- /dev/null +++ b/mods/technic/technic_worldgen/crafts.lua @@ -0,0 +1,179 @@ + +local S = technic.worldgen.gettext + +minetest.register_craftitem(":technic:uranium_lump", { + description = S("Uranium Lump"), + inventory_image = "technic_uranium_lump.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_alias("technic:uranium", "technic:uranium_lump") + +minetest.register_craftitem(":technic:uranium_ingot", { + description = S("Uranium Ingot"), + inventory_image = "technic_uranium_ingot.png", + on_place_on_ground = minetest.craftitem_place_item, + groups = {uranium_ingot=1}, +}) + +minetest.register_craftitem(":technic:chromium_lump", { + description = S("Chromium Lump"), + inventory_image = "technic_chromium_lump.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem(":technic:chromium_ingot", { + description = S("Chromium Ingot"), + inventory_image = "technic_chromium_ingot.png", + on_place_on_ground = minetest.craftitem_place_item, +}) + +minetest.register_craftitem(":technic:zinc_lump", { + description = S("Zinc Lump"), + inventory_image = "technic_zinc_lump.png", +}) + +minetest.register_craftitem(":technic:zinc_ingot", { + description = S("Zinc Ingot"), + inventory_image = "technic_zinc_ingot.png", +}) + +minetest.register_craftitem(":technic:brass_ingot", { + description = S("Brass Ingot"), + inventory_image = "technic_brass_ingot.png", +}) + +minetest.register_alias("technic:wrought_iron_ingot", "default:steel_ingot") + +minetest.override_item("default:steel_ingot", { + description = S("Wrought Iron Ingot"), + inventory_image = "technic_wrought_iron_ingot.png", +}) + +minetest.register_craftitem(":technic:cast_iron_ingot", { + description = S("Cast Iron Ingot"), + inventory_image = "technic_cast_iron_ingot.png", +}) + +minetest.register_craftitem(":technic:carbon_steel_ingot", { + description = S("Carbon Steel Ingot"), + inventory_image = "technic_carbon_steel_ingot.png", +}) + +minetest.register_craftitem(":technic:stainless_steel_ingot", { + description = S("Stainless Steel Ingot"), + inventory_image = "technic_stainless_steel_ingot.png", +}) + +local function register_block(block, ingot) + minetest.register_craft({ + output = block, + recipe = { + {ingot, ingot, ingot}, + {ingot, ingot, ingot}, + {ingot, ingot, ingot}, + } + }) + + minetest.register_craft({ + output = ingot.." 9", + recipe = { + {block} + } + }) +end + +register_block("technic:uranium_block", "technic:uranium_ingot") +register_block("technic:chromium_block", "technic:chromium_ingot") +register_block("technic:zinc_block", "technic:zinc_ingot") +register_block("technic:brass_block", "technic:brass_ingot") +register_block("technic:cast_iron_block", "technic:cast_iron_ingot") +register_block("technic:carbon_steel_block", "technic:carbon_steel_ingot") +register_block("technic:stainless_steel_block", "technic:stainless_steel_ingot") + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:zinc_lump", + output = "technic:zinc_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:chromium_lump", + output = "technic:chromium_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:uranium_lump", + output = "technic:uranium_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = minetest.registered_aliases["technic:wrought_iron_ingot"], + output = "technic:cast_iron_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:cast_iron_ingot", + cooktime = 2, + output = "technic:wrought_iron_ingot", +}) + +minetest.register_craft({ + type = 'cooking', + recipe = "technic:carbon_steel_ingot", + cooktime = 2, + output = "technic:wrought_iron_ingot", +}) + +local function for_each_registered_item(action) + local already_reg = {} + for k, _ in pairs(minetest.registered_items) do + table.insert(already_reg, k) + end + local really_register_craftitem = minetest.register_craftitem + minetest.register_craftitem = function(name, def) + really_register_craftitem(name, def) + action(string.gsub(name, "^:", "")) + end + local really_register_tool = minetest.register_tool + minetest.register_tool = function(name, def) + really_register_tool(name, def) + action(string.gsub(name, "^:", "")) + end + local really_register_node = minetest.register_node + minetest.register_node = function(name, def) + really_register_node(name, def) + action(string.gsub(name, "^:", "")) + end + for _, name in ipairs(already_reg) do + action(name) + end +end + +local steel_to_iron = {} +for _, i in ipairs({ + "default:axe_steel", + "default:pick_steel", + "default:shovel_steel", + "default:sword_steel", + "doors:door_steel", + "farming:hoe_steel", + "glooptest:hammer_steel", + "glooptest:handsaw_steel", + "glooptest:reinforced_crystal_glass", + "mesecons_doors:op_door_steel", + "mesecons_doors:sig_door_steel", + "vessels:steel_bottle", +}) do + steel_to_iron[i] = true +end + +for_each_registered_item(function(item_name) + local item_def = minetest.registered_items[item_name] + if steel_to_iron[item_name] and string.find(item_def.description, "Steel") then + minetest.override_item(item_name, { description = string.gsub(item_def.description, "Steel", S("Iron")) }) + end +end) diff --git a/mods/technic/technic_worldgen/depends.txt b/mods/technic/technic_worldgen/depends.txt new file mode 100644 index 0000000..ac858d0 --- /dev/null +++ b/mods/technic/technic_worldgen/depends.txt @@ -0,0 +1,3 @@ +default +intllib? +mg? diff --git a/mods/technic/technic_worldgen/init.lua b/mods/technic/technic_worldgen/init.lua new file mode 100644 index 0000000..ee4b92d --- /dev/null +++ b/mods/technic/technic_worldgen/init.lua @@ -0,0 +1,29 @@ +technic = technic or {} +technic.worldgen = {} +local modpath = minetest.get_modpath("technic_worldgen") +local intllib = nil +if intllib then + technic.worldgen.gettext = intllib.Getter() +else + technic.worldgen.gettext = function(s) return s end +end + +dofile(modpath.."/config.lua") +dofile(modpath.."/nodes.lua") +dofile(modpath.."/oregen.lua") +dofile(modpath.."/crafts.lua") + +-- Rubber trees, moretrees also supplies these +if not minetest.get_modpath("moretrees") then + dofile(modpath.."/rubber.lua") +else + -- older versions of technic provided rubber trees regardless + minetest.register_alias("technic:rubber_sapling", "moretrees:rubber_tree_sapling") + minetest.register_alias("technic:rubber_tree_empty", "moretrees:rubber_tree_trunk_empty") +end + +-- mg suppport +if minetest.get_modpath("mg") then + dofile(modpath.."/mg.lua") +end + diff --git a/mods/technic/technic_worldgen/locale/de.txt b/mods/technic/technic_worldgen/locale/de.txt new file mode 100644 index 0000000..401c94c --- /dev/null +++ b/mods/technic/technic_worldgen/locale/de.txt @@ -0,0 +1,39 @@ +# German Translation for technic_worldgen +# Deutsche Übersetzung von technic_worldgen +# by Xanthin + +## crafts.lua +Uranium Lump = Uranklumpen +Uranium Ingot = Uranbarren +Chromium Lump = Chromklumpen +Chromium Ingot = Chrombarren +Zinc Lump = Zinkklumpen +Zinc Ingot = Zinkbarren +Brass Ingot = Messingbarren +Wrought Iron Ingot = Schmiedeeisenbarren +Cast Iron Ingot = Gusseisenbarren +Carbon Steel Ingot = Kohlenstoffstahlbarren +Stainless Steel Ingot = Edelstahlbarren +Iron = Eisen + +## nodes.lua +Uranium Ore = Uranerz +Chromium Ore = Chromerz +Zinc Ore = Zinkerz +Granite = Granit +Marble = Marmor +Marble Bricks = Marmorziegel +Uranium Block = Uranblock +Chromium Block = Chromblock +Zinc Block = Zinkblock +Wrought Iron Block = Schmiedeeisenblock +Cast Iron Block = Gusseisenblock +Carbon Steel Block = Kohlenstoffstahlblock +Stainless Steel Block = Edelstahlblock +Brass Block = Messingblock +Wrought Iron = Schmiedeeisen + +## rubber.lua +Rubber Tree Sapling = Gummibaumsetzling +Rubber Tree = Gummibaum + diff --git a/mods/technic/technic_worldgen/locale/template.txt b/mods/technic/technic_worldgen/locale/template.txt new file mode 100644 index 0000000..594e0ce --- /dev/null +++ b/mods/technic/technic_worldgen/locale/template.txt @@ -0,0 +1,37 @@ +# template.txt +# technic_worldgen translation template + +###crafts.lua +Uranium Lump = +Uranium Ingot = +Chromium Lump = +Chromium Ingot = +Zinc Lump = +Zinc Ingot = +Brass Ingot = +Wrought Iron Ingot = +Cast Iron Ingot = +Carbon Steel Ingot = +Stainless Steel Ingot = +Iron = + +###nodes.lua +Uranium Ore = +Chromium Ore = +Zinc Ore = +Granite = +Marble = +Marble Bricks = +Uranium Block = +Chromium Block = +Zinc Block = +Wrought Iron Block = +Cast Iron Block = +Carbon Steel Block = +Stainless Steel Block = +Brass Block = +Wrought Iron = + +###rubber.lua +Rubber Tree Sapling = +Rubber Tree = diff --git a/mods/technic/technic_worldgen/mg.lua b/mods/technic/technic_worldgen/mg.lua new file mode 100644 index 0000000..d511277 --- /dev/null +++ b/mods/technic/technic_worldgen/mg.lua @@ -0,0 +1,75 @@ +mg.register_ore({ + name = "technic:mineral_uranium", + wherein = "default:stone", + seeddiff = 11, + maxvdistance = 10.5, + maxheight = -80, + minheight = -300, + sizen = 20, + sizedev = 10, + seglenghtn = 3, + seglenghtdev = 1, + segincln = 0.4, + segincldev = 0.6, + turnangle = 57, + numperblock = 1, + fork_chance = 0 +}) + +mg.register_ore({ + name = "technic:mineral_chromium", + wherein = "default:stone", + seeddiff = 12, + maxvdistance = 10.5, + maxheight = -100, + sizen = 50, + sizedev = 20, + seglenghtn = 8, + seglenghtdev = 3, + segincln = 0, + segincldev = 0.6, + turnangle = 57, + forkturnangle = 57, + numperblock = 2 +}) + +mg.register_ore({ + name = "technic:mineral_zinc", + wherein = "default:stone", + seeddiff = 13, + maxvdistance = 10.5, + maxheight = 2, + seglenghtn = 15, + seglenghtdev = 6, + segincln = 0, + segincldev = 0.6, + turnangle = 57, + forkturnangle = 57, + numperblock = 2 +}) + +if technic.config:get_bool("enable_granite_generation") then + mg.register_ore_sheet({ + name = "technic:granite", + wherein = "default:stone", + height_min = -31000, + height_max = -150, + tmin = 3, + tmax = 6, + threshhold = 0.4, + noise_params = {offset=0, scale=15, spread={x=130, y=130, z=130}, seed=24, octaves=3, persist=0.70} + }) +end + +if technic.config:get_bool("enable_marble_generation") then + mg.register_ore_sheet({ + name = "technic:marble", + wherein = "default:stone", + height_min = -31000, + height_max = -50, + tmin = 3, + tmax = 6, + threshhold = 0.4, + noise_params = {offset=0, scale=15, spread={x=130, y=130, z=130}, seed=23, octaves=3, persist=0.70} + }) +end diff --git a/mods/technic/technic_worldgen/nodes.lua b/mods/technic/technic_worldgen/nodes.lua new file mode 100644 index 0000000..d38173d --- /dev/null +++ b/mods/technic/technic_worldgen/nodes.lua @@ -0,0 +1,170 @@ + +local S = technic.worldgen.gettext + +minetest.register_node( ":technic:mineral_uranium", { + description = S("Uranium Ore"), + tiles = { "default_stone.png^technic_mineral_uranium.png" }, + is_ground_content = true, + groups = {cracky=3, radioactive=1000}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "technic:uranium_lump" 1', +}) + +minetest.register_node( ":technic:mineral_chromium", { + description = S("Chromium Ore"), + tiles = { "default_stone.png^technic_mineral_chromium.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "technic:chromium_lump" 1', +}) + +minetest.register_node( ":technic:mineral_zinc", { + description = S("Zinc Ore"), + tile_images = { "default_stone.png^technic_mineral_zinc.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), + drop = 'craft "technic:zinc_lump" 1', +}) + +minetest.register_node( ":technic:granite", { + description = S("Granite"), + tiles = { "technic_granite.png" }, + is_ground_content = true, + groups = {cracky=1}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( ":technic:marble", { + description = S("Marble"), + tiles = { "technic_marble.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node( ":technic:marble_bricks", { + description = S("Marble Bricks"), + tiles = { "technic_marble_bricks.png" }, + is_ground_content = true, + groups = {cracky=3}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node(":technic:uranium_block", { + description = S("Uranium Block"), + tiles = { "technic_uranium_block.png" }, + is_ground_content = true, + groups = {uranium_block=1, cracky=1, level=2, radioactive=3000}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:chromium_block", { + description = S("Chromium Block"), + tiles = { "technic_chromium_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:zinc_block", { + description = S("Zinc Block"), + tiles = { "technic_zinc_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_alias("technic:wrought_iron_block", "default:steelblock") + +minetest.override_item("default:steelblock", { + description = S("Wrought Iron Block"), + tiles = { "technic_wrought_iron_block.png" }, +}) + +minetest.register_node(":technic:cast_iron_block", { + description = S("Cast Iron Block"), + tiles = { "technic_cast_iron_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:carbon_steel_block", { + description = S("Carbon Steel Block"), + tiles = { "technic_carbon_steel_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:stainless_steel_block", { + description = S("Stainless Steel Block"), + tiles = { "technic_stainless_steel_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node(":technic:brass_block", { + description = S("Brass Block"), + tiles = { "technic_brass_block.png" }, + is_ground_content = true, + groups = {cracky=1, level=2}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_craft({ + output = 'technic:marble_bricks 4', + recipe = { + {'technic:marble','technic:marble'}, + {'technic:marble','technic:marble'} + } +}) + +minetest.register_alias("technic:diamond_block", "default:diamondblock") +minetest.register_alias("technic:diamond", "default:diamond") +minetest.register_alias("technic:mineral_diamond", "default:stone_with_diamond") + +local function for_each_registered_node(action) + local really_register_node = minetest.register_node + minetest.register_node = function(name, def) + really_register_node(name, def) + action(name:gsub("^:", ""), def) + end + for name, def in pairs(minetest.registered_nodes) do + action(name, def) + end +end + +for_each_registered_node(function(node_name, node_def) + if node_name ~= "default:steelblock" and + node_name:find("steelblock", 1, true) and + node_def.description:find("Steel", 1, true) then + minetest.override_item(node_name, { + description = node_def.description:gsub("Steel", S("Wrought Iron")), + }) + end + local tiles = node_def.tiles or node_def.tile_images + if tiles then + local new_tiles = {} + local do_override = false + if type(tiles) == "string" then + tiles = {tiles} + end + for i, t in ipairs(tiles) do + if type(t) == "string" and t == "default_steel_block.png" then + do_override = true + t = "technic_wrought_iron_block.png" + end + table.insert(new_tiles, t) + end + if do_override then + minetest.override_item(node_name, { + tiles = new_tiles + }) + end + end +end) + diff --git a/mods/technic/technic_worldgen/oregen.lua b/mods/technic/technic_worldgen/oregen.lua new file mode 100644 index 0000000..ec9386d --- /dev/null +++ b/mods/technic/technic_worldgen/oregen.lua @@ -0,0 +1,106 @@ +local uranium_params = {offset = 0, scale = 1, spread = {x = 100, y = 100, z = 100}, seed = 420, octaves = 3, persist = 0.7} +local uranium_threshhold = 0.55 + +local chromium_params = {offset = 0, scale = 1, spread = {x = 100, y = 100, z = 100}, seed = 421, octaves = 3, persist = 0.7} +local chromium_threshhold = 0.55 + +local zinc_params = {offset = 0, scale = 1, spread = {x = 100, y = 100, z = 100}, seed = 422, octaves = 3, persist = 0.7} +local zinc_threshhold = 0.5 + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_uranium", + wherein = "default:stone", + clust_scarcity = 8*8*8, + clust_num_ores = 4, + clust_size = 3, + height_min = -300, + height_max = -80, + noise_params = uranium_params, + noise_threshhold = uranium_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_chromium", + wherein = "default:stone", + clust_scarcity = 8*8*8, + clust_num_ores = 2, + clust_size = 3, + height_min = -200, + height_max = -100, + noise_params = chromium_params, + noise_threshhold = chromium_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_chromium", + wherein = "default:stone", + clust_scarcity = 6*6*6, + clust_num_ores = 2, + clust_size = 3, + height_min = -31000, + height_max = -200, + flags = "absheight", + noise_params = chromium_params, + noise_threshhold = chromium_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_zinc", + wherein = "default:stone", + clust_scarcity = 8*8*8, + clust_num_ores = 4, + clust_size = 3, + height_min = -32, + height_max = 2, + noise_params = zinc_params, + noise_threshhold = zinc_threshhold, +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "technic:mineral_zinc", + wherein = "default:stone", + clust_scarcity = 6*6*6, + clust_num_ores = 4, + clust_size = 3, + height_min = -31000, + height_max = -32, + flags = "absheight", + noise_params = zinc_params, + noise_threshhold = zinc_threshhold, +}) + +if technic.config:get_bool("enable_marble_generation") then +minetest.register_ore({ + ore_type = "sheet", + ore = "technic:marble", + wherein = "default:stone", + clust_scarcity = 1, + clust_num_ores = 1, + clust_size = 3, + height_min = -31000, + height_max = -50, + noise_threshhold = 0.4, + noise_params = {offset=0, scale=15, spread={x=150, y=150, z=150}, seed=23, octaves=3, persist=0.70} +}) +end + +if technic.config:get_bool("enable_granite_generation") then +minetest.register_ore({ + ore_type = "sheet", + ore = "technic:granite", + wherein = "default:stone", + clust_scarcity = 1, + clust_num_ores = 1, + clust_size = 4, + height_min = -31000, + height_max = -150, + noise_threshhold = 0.4, + noise_params = {offset=0, scale=15, spread={x=130, y=130, z=130}, seed=24, octaves=3, persist=0.70} +}) +end + diff --git a/mods/technic/technic_worldgen/rubber.lua b/mods/technic/technic_worldgen/rubber.lua new file mode 100644 index 0000000..93b6d66 --- /dev/null +++ b/mods/technic/technic_worldgen/rubber.lua @@ -0,0 +1,95 @@ +-- Code of rubber tree by PilzAdam + +local S = technic.worldgen.gettext + +minetest.register_node(":moretrees:rubber_tree_sapling", { + description = S("Rubber Tree Sapling"), + drawtype = "plantlike", + tiles = {"technic_rubber_sapling.png"}, + inventory_image = "technic_rubber_sapling.png", + wield_image = "technic_rubber_sapling.png", + paramtype = "light", + walkable = false, + groups = {dig_immediate=3, flammable=2}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_craft({ + type = "fuel", + recipe = "moretrees:rubber_tree_sapling", + burntime = 10 +}) + +minetest.register_node(":moretrees:rubber_tree_trunk", { + description = S("Rubber Tree"), + tiles = {"default_tree_top.png", "default_tree_top.png", + "technic_rubber_tree_full.png"}, + groups = {tree=1, snappy=1, choppy=2, oddly_breakable_by_hand=1, + flammable=2}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node(":moretrees:rubber_tree_trunk_empty", { + description = S("Rubber Tree"), + tiles = {"default_tree_top.png", "default_tree_top.png", + "technic_rubber_tree_empty.png"}, + groups = {tree=1, snappy=1, choppy=2, oddly_breakable_by_hand=1, + flammable=2, not_in_creative_inventory=1}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node(":moretrees:rubber_tree_leaves", { + drawtype = "allfaces_optional", + tiles = {"technic_rubber_leaves.png"}, + paramtype = "light", + groups = {snappy=3, leafdecay=3, flammable=2, not_in_creative_inventory=1}, + drop = { + max_items = 1, + items = {{ + items = {"moretrees:rubber_tree_sapling"}, + rarity = 20, + }} + }, + sounds = default.node_sound_leaves_defaults(), +}) + +technic.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 +} + +minetest.register_abm({ + nodenames = {"moretrees:rubber_tree_sapling"}, + interval = 60, + chance = 20, + action = function(pos, node) + minetest.remove_node(pos) + minetest.spawn_tree(pos, technic.rubber_tree_model) + end +}) + +if technic.config:get_bool("enable_rubber_tree_generation") then + minetest.register_on_generated(function(minp, maxp, blockseed) + if math.random(1, 100) > 5 then + return + end + local tmp = { + x = (maxp.x - minp.x) / 2 + minp.x, + y = (maxp.y - minp.y) / 2 + minp.y, + z = (maxp.z - minp.z) / 2 + minp.z} + local pos = minetest.find_node_near(tmp, maxp.x - minp.x, + {"default:dirt_with_grass"}) + if pos ~= nil then + minetest.spawn_tree({x=pos.x, y=pos.y+1, z=pos.z}, technic.rubber_tree_model) + end + end) +end + diff --git a/mods/technic/technic_worldgen/textures/technic_brass_block.png b/mods/technic/technic_worldgen/textures/technic_brass_block.png new file mode 100644 index 0000000..bc6fe78 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_brass_block.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_brass_dust.png b/mods/technic/technic_worldgen/textures/technic_brass_dust.png new file mode 100644 index 0000000..63d9ba4 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_brass_dust.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_brass_ingot.png b/mods/technic/technic_worldgen/textures/technic_brass_ingot.png new file mode 100644 index 0000000..06056e7 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_brass_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_carbon_steel_block.png b/mods/technic/technic_worldgen/textures/technic_carbon_steel_block.png new file mode 100644 index 0000000..f3cfdc1 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_carbon_steel_block.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_carbon_steel_ingot.png b/mods/technic/technic_worldgen/textures/technic_carbon_steel_ingot.png new file mode 100644 index 0000000..c30ec80 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_carbon_steel_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_cast_iron_block.png b/mods/technic/technic_worldgen/textures/technic_cast_iron_block.png new file mode 100644 index 0000000..2df61e5 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_cast_iron_block.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_cast_iron_ingot.png b/mods/technic/technic_worldgen/textures/technic_cast_iron_ingot.png new file mode 100644 index 0000000..5c182ce Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_cast_iron_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_chromium_block.png b/mods/technic/technic_worldgen/textures/technic_chromium_block.png new file mode 100644 index 0000000..ad173ca Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_chromium_block.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_chromium_ingot.png b/mods/technic/technic_worldgen/textures/technic_chromium_ingot.png new file mode 100644 index 0000000..248b0c3 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_chromium_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_chromium_lump.png b/mods/technic/technic_worldgen/textures/technic_chromium_lump.png new file mode 100644 index 0000000..0fe03a1 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_chromium_lump.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_granite.png b/mods/technic/technic_worldgen/textures/technic_granite.png new file mode 100644 index 0000000..abb1385 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_granite.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_marble.png b/mods/technic/technic_worldgen/textures/technic_marble.png new file mode 100644 index 0000000..846a170 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_marble.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_marble_bricks.png b/mods/technic/technic_worldgen/textures/technic_marble_bricks.png new file mode 100644 index 0000000..2ea1e42 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_marble_bricks.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_mineral_chromium.png b/mods/technic/technic_worldgen/textures/technic_mineral_chromium.png new file mode 100644 index 0000000..c66f1c5 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_mineral_chromium.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_mineral_uranium.png b/mods/technic/technic_worldgen/textures/technic_mineral_uranium.png new file mode 100644 index 0000000..aad9c07 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_mineral_uranium.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_mineral_zinc.png b/mods/technic/technic_worldgen/textures/technic_mineral_zinc.png new file mode 100644 index 0000000..598efeb Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_mineral_zinc.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_stainless_steel_block.png b/mods/technic/technic_worldgen/textures/technic_stainless_steel_block.png new file mode 100644 index 0000000..e451768 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_stainless_steel_block.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_uranium_block.png b/mods/technic/technic_worldgen/textures/technic_uranium_block.png new file mode 100644 index 0000000..99dd51c Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_uranium_block.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_uranium_ingot.png b/mods/technic/technic_worldgen/textures/technic_uranium_ingot.png new file mode 100644 index 0000000..38978f8 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_uranium_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_uranium_lump.png b/mods/technic/technic_worldgen/textures/technic_uranium_lump.png new file mode 100644 index 0000000..2f5a66c Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_uranium_lump.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_wrought_iron_block.png b/mods/technic/technic_worldgen/textures/technic_wrought_iron_block.png new file mode 100644 index 0000000..cf6c961 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_wrought_iron_block.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_wrought_iron_ingot.png b/mods/technic/technic_worldgen/textures/technic_wrought_iron_ingot.png new file mode 100644 index 0000000..af00ea0 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_wrought_iron_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_zinc_block.png b/mods/technic/technic_worldgen/textures/technic_zinc_block.png new file mode 100644 index 0000000..5ae7947 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_zinc_block.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_zinc_ingot.png b/mods/technic/technic_worldgen/textures/technic_zinc_ingot.png new file mode 100644 index 0000000..a36a11c Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_zinc_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/technic_zinc_lump.png b/mods/technic/technic_worldgen/textures/technic_zinc_lump.png new file mode 100644 index 0000000..1a620ab Binary files /dev/null and b/mods/technic/technic_worldgen/textures/technic_zinc_lump.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_brass_ingot.png b/mods/technic/technic_worldgen/textures/x32/technic_brass_ingot.png new file mode 100644 index 0000000..2d8b153 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_brass_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_chromium_ingot.png b/mods/technic/technic_worldgen/textures/x32/technic_chromium_ingot.png new file mode 100644 index 0000000..91d5b20 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_chromium_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_chromium_lump.png b/mods/technic/technic_worldgen/textures/x32/technic_chromium_lump.png new file mode 100644 index 0000000..1588f92 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_chromium_lump.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_concrete_block.png b/mods/technic/technic_worldgen/textures/x32/technic_concrete_block.png new file mode 100644 index 0000000..91364f3 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_concrete_block.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_granite.png b/mods/technic/technic_worldgen/textures/x32/technic_granite.png new file mode 100644 index 0000000..abb1385 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_granite.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_marble.png b/mods/technic/technic_worldgen/textures/x32/technic_marble.png new file mode 100644 index 0000000..846a170 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_marble.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_marble_bricks.png b/mods/technic/technic_worldgen/textures/x32/technic_marble_bricks.png new file mode 100644 index 0000000..2ea1e42 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_marble_bricks.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_mineral_chromium.png b/mods/technic/technic_worldgen/textures/x32/technic_mineral_chromium.png new file mode 100644 index 0000000..c66f1c5 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_mineral_chromium.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_mineral_uranium.png b/mods/technic/technic_worldgen/textures/x32/technic_mineral_uranium.png new file mode 100644 index 0000000..aad9c07 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_mineral_uranium.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_mineral_zinc.png b/mods/technic/technic_worldgen/textures/x32/technic_mineral_zinc.png new file mode 100644 index 0000000..598efeb Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_mineral_zinc.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_rebar.png b/mods/technic/technic_worldgen/textures/x32/technic_rebar.png new file mode 100644 index 0000000..16d1fc5 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_rebar.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_stainless_steel_ingot.png b/mods/technic/technic_worldgen/textures/x32/technic_stainless_steel_ingot.png new file mode 100644 index 0000000..46fa296 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_stainless_steel_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_uranium.png b/mods/technic/technic_worldgen/textures/x32/technic_uranium.png new file mode 100644 index 0000000..54225f8 Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_uranium.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_zinc_ingot.png b/mods/technic/technic_worldgen/textures/x32/technic_zinc_ingot.png new file mode 100644 index 0000000..096ff9c Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_zinc_ingot.png differ diff --git a/mods/technic/technic_worldgen/textures/x32/technic_zinc_lump.png b/mods/technic/technic_worldgen/textures/x32/technic_zinc_lump.png new file mode 100644 index 0000000..d28a6dc Binary files /dev/null and b/mods/technic/technic_worldgen/textures/x32/technic_zinc_lump.png differ diff --git a/mods/technic/wrench/depends.txt b/mods/technic/wrench/depends.txt new file mode 100644 index 0000000..4d126c6 --- /dev/null +++ b/mods/technic/wrench/depends.txt @@ -0,0 +1,6 @@ +default +technic +technic_chests +technic_worldgen +intllib? + diff --git a/mods/technic/wrench/init.lua b/mods/technic/wrench/init.lua new file mode 100644 index 0000000..9277c99 --- /dev/null +++ b/mods/technic/wrench/init.lua @@ -0,0 +1,166 @@ +--[[ +Wrench mod + +Adds a wrench that allows the player to pickup nodes that contain an inventory +with items or metadata that needs perserving. +The wrench has the same tool capability as the normal hand. +To pickup a node simply right click on it. If the node contains a formspec, +you will need to shift+right click instead. +Because it enables arbitrary nesting of chests, and so allows the player +to carry an unlimited amount of material at once, this wrench is not +available to survival-mode players. +--]] + +local LATEST_SERIALIZATION_VERSION = 1 + +wrench = {} + +local modpath = minetest.get_modpath(minetest.get_current_modname()) +dofile(modpath.."/support.lua") +dofile(modpath.."/technic.lua") +local intllib = nil +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if intllib then + S = intllib.Getter() +else + S = function(s) return s end +end + +local function get_meta_type(name, metaname) + local def = wrench.registered_nodes[name] + if not def or not def.metas or not def.metas[metaname] then + return nil + end + return def.metas[metaname] +end + +local function get_pickup_name(name) + return "wrench:picked_up_"..(name:gsub(":", "_")) +end + +local function restore(pos, placer, itemstack) + local name = itemstack:get_name() + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + local data = minetest.deserialize(itemstack:get_metadata()) + minetest.set_node(pos, {name = data.name}) + local lists = data.lists + for listname, list in pairs(lists) do + inv:set_list(listname, list) + end + for name, value in pairs(data.metas) do + local meta_type = get_meta_type(data.name, name) + if meta_type == wrench.META_TYPE_INT then + meta:set_int(name, value) + elseif meta_type == wrench.META_TYPE_FLOAT then + meta:set_float(name, value) + elseif meta_type == wrench.META_TYPE_STRING then + meta:set_string(name, value) + end + end + itemstack:take_item() + return itemstack +end + +for name, info in pairs(wrench.registered_nodes) do + local olddef = minetest.registered_nodes[name] + if olddef then + local newdef = {} + for key, value in pairs(olddef) do + newdef[key] = value + end + newdef.stack_max = 1 + newdef.description = S("%s with items"):format(newdef.description) + newdef.groups = {} + newdef.groups.not_in_creative_inventory = 1 + newdef.on_construct = nil + newdef.on_destruct = nil + newdef.after_place_node = restore + minetest.register_node(":"..get_pickup_name(name), newdef) + end +end + +minetest.register_tool("wrench:wrench", { + description = S("Wrench"), + inventory_image = "technic_wrench.png", + tool_capabilities = { + full_punch_interval = 0.9, + max_drop_level = 0, + groupcaps = { + crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1}, + snappy = {times={[3]=0.40}, uses=0, maxlevel=1}, + oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=1.40}, + uses=0, maxlevel=3} + }, + damage_groups = {fleshy=1}, + }, + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.under + if not placer or not pos then + return + end + if minetest.is_protected(pos, placer:get_player_name()) then + minetest.record_protection_violation(pos, placer:get_player_name()) + return + end + local name = minetest.get_node(pos).name + local def = wrench.registered_nodes[name] + if not def then + return + end + + local stack = ItemStack(get_pickup_name(name)) + local player_inv = placer:get_inventory() + if not player_inv:room_for_item("main", stack) then + return + end + local meta = minetest.get_meta(pos) + if def.owned then + local owner = meta:get_string("owner") + if owner and owner ~= placer:get_player_name() then + minetest.log("action", placer:get_player_name().. + " tried to pick up a owned node belonging to ".. + owner.." at ".. + minetest.pos_to_string(pos)) + return + end + end + + local metadata = {} + metadata.name = name + metadata.version = LATEST_SERIALIZATION_VERSION + + local inv = meta:get_inventory() + local lists = {} + for _, listname in pairs(def.lists or {}) do + if not inv:is_empty(listname) then + empty = false + end + local list = inv:get_list(listname) + for i, stack in pairs(list) do + list[i] = stack:to_string() + end + lists[listname] = list + end + metadata.lists = lists + + local metas = {} + for name, meta_type in pairs(def.metas or {}) do + if meta_type == wrench.META_TYPE_INT then + metas[name] = meta:get_int(name) + elseif meta_type == wrench.META_TYPE_FLOAT then + metas[name] = meta:get_float(name) + elseif meta_type == wrench.META_TYPE_STRING then + metas[name] = meta:get_string(name) + end + end + metadata.metas = metas + + stack:set_metadata(minetest.serialize(metadata)) + minetest.remove_node(pos) + itemstack:add_wear(65535 / 20) + player_inv:add_item("main", stack) + return itemstack + end, +}) diff --git a/mods/technic/wrench/locale/de.txt b/mods/technic/wrench/locale/de.txt new file mode 100644 index 0000000..b285cd3 --- /dev/null +++ b/mods/technic/wrench/locale/de.txt @@ -0,0 +1,7 @@ +# German Translation for technic_wrench +# Deutsche Übersetzung von technic_wrench +# by Xanthin + +Wrench = Schraubenschluessel +%s with items = %s mit Gegenstaenden + diff --git a/mods/technic/wrench/locale/template.txt b/mods/technic/wrench/locale/template.txt new file mode 100644 index 0000000..eff2da2 --- /dev/null +++ b/mods/technic/wrench/locale/template.txt @@ -0,0 +1,5 @@ +# technic_wrench translation template + +Wrench = +%s with items = + diff --git a/mods/technic/wrench/support.lua b/mods/technic/wrench/support.lua new file mode 100644 index 0000000..6d1c9ab --- /dev/null +++ b/mods/technic/wrench/support.lua @@ -0,0 +1,71 @@ +--[[ +supported_nodes +This table stores all nodes that are compatible with the wrench mod. +Syntax: + [] = { + lists = {""}, + metas = {[""] = STRING, + [""] = INT, + [""] = FLOAT}, + owned = true, + store_meta_always = true, + } + owned - nodes that are protected by owner requirements (Ex. locked chests) + store_meta_always - when nodes are broken this ensures metadata and + inventory is always stored (Ex. active state for machines) +--]] + +wrench.META_TYPE_INT = 0 +wrench.META_TYPE_FLOAT = 1 +wrench.META_TYPE_STRING = 2 + +local INT, STRING, FLOAT = + wrench.META_TYPE_INT, + wrench.META_TYPE_STRING, + wrench.META_TYPE_FLOAT + +wrench.registered_nodes = { + ["default:chest"] = { + lists = {"main"}, + }, + ["default:chest_locked"] = { + lists = {"main"}, + metas = {owner = STRING, + infotext = STRING}, + owned = true, + }, + ["default:furnace"] = { + lists = {"fuel", "src", "dst"}, + metas = {infotext = STRING, + fuel_totaltime = FLOAT, + fuel_time = FLOAT, + src_totaltime = FLOAT, + src_time = FLOAT}, + }, + ["default:furnace_active"] = { + lists = {"fuel", "src", "dst"}, + metas = {infotext = STRING, + fuel_totaltime = FLOAT, + fuel_time = FLOAT, + src_totaltime = FLOAT, + src_time = FLOAT}, + store_meta_always = true, + }, + ["default:sign_wall"] = { + metas = {infotext = STRING, + text = STRING}, + }, +} + +function wrench:original_name(name) + for key, value in pairs(self.registered_nodes) do + if name == value.name then + return key + end + end +end + +function wrench:register_node(name, def) + self.registered_nodes[name] = def +end + diff --git a/mods/technic/wrench/technic.lua b/mods/technic/wrench/technic.lua new file mode 100644 index 0000000..c07e3d7 --- /dev/null +++ b/mods/technic/wrench/technic.lua @@ -0,0 +1,341 @@ + +local INT, STRING, FLOAT = + wrench.META_TYPE_INT, + wrench.META_TYPE_STRING, + wrench.META_TYPE_FLOAT + +wrench:register_node("technic:iron_chest", { + lists = {"main"}, +}) +wrench:register_node("technic:iron_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING}, + owned = true, +}) +wrench:register_node("technic:copper_chest", { + lists = {"main"}, +}) +wrench:register_node("technic:copper_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING}, + owned = true, +}) +wrench:register_node("technic:silver_chest", { + lists = {"main"}, + metas = {infotext = STRING, + formspec = STRING}, +}) +wrench:register_node("technic:silver_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING, + formspec = STRING}, + owned = true, +}) +wrench:register_node("technic:gold_chest", { + lists = {"main"}, + metas = {infotext = STRING, + formspec = STRING}, +}) +wrench:register_node("technic:gold_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING, + formspec = STRING}, + owned = true, +}) +wrench:register_node("technic:mithril_chest", { + lists = {"main"}, + metas = {infotext = STRING, + formspec = STRING}, +}) +wrench:register_node("technic:mithril_locked_chest", { + lists = {"main"}, + metas = {infotext = STRING, + owner = STRING, + formspec = STRING}, + owned = true, +}) +wrench:register_node("technic:lv_electric_furnace", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:lv_electric_furnace_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_electric_furnace", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_electric_furnace_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:coal_alloy_furnace", { + lists = {"fuel", "src", "dst"}, + metas = {infotext = STRING, + fuel_totaltime = FLOAT, + fuel_time = FLOAT, + src_totaltime = FLOAT, + src_time = FLOAT}, +}) +wrench:register_node("technic:coal_alloy_furnace_active", { + lists = {"fuel", "src", "dst"}, + metas = {infotext = STRING, + fuel_totaltime = FLOAT, + fuel_time = FLOAT, + src_totaltime = FLOAT, + src_time = FLOAT}, +}) +wrench:register_node("technic:alloy_furnace", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:alloy_furnace_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_alloy_furnace", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_alloy_furnace_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:tool_workshop", { + lists = {"src", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT}, +}) +wrench:register_node("technic:grinder", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:grinder_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_grinder", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_grinder_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:extractor", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:extractor_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_extractor", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_extractor_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:compressor", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:compressor_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_compressor", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_compressor_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:cnc", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT, + cnc_product = STRING}, +}) +wrench:register_node("technic:cnc_active", { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + LV_EU_demand = INT, + LV_EU_input = INT, + src_time = INT, + cnc_product = STRING}, +}) +wrench:register_node("technic:mv_centrifuge", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) +wrench:register_node("technic:mv_centrifuge_active", { + lists = {"src", "dst", "upgrade1", "upgrade2"}, + metas = {infotext = STRING, + formspec = STRING, + MV_EU_demand = INT, + MV_EU_input = INT, + tube_time = INT, + src_time = INT}, +}) + + +local chest_mark_colors = { + '_black', + '_blue', + '_brown', + '_cyan', + '_dark_green', + '_dark_grey', + '_green', + '_grey', + '_magenta', + '_orange', + '_pink', + '_red', + '_violet', + '_white', + '_yellow', + '', +} + +for i = 1, 15 do + wrench:register_node("technic:gold_chest"..chest_mark_colors[i], { + lists = {"main"}, + metas = {infotext = STRING,formspec = STRING}, + }) + wrench:register_node("technic:gold_locked_chest"..chest_mark_colors[i], { + lists = {"main"}, + metas = {infotext = STRING,owner = STRING,formspec = STRING}, + owned = true, + }) +end + +for tier, _ in pairs(technic.machines) do + local ltier = tier:lower() + for i = 0, 8 do + wrench:register_node("technic:"..ltier.."_battery_box"..i, { + lists = {"src", "dst"}, + metas = {infotext = STRING, + formspec = STRING, + [tier.."_EU_demand"] = INT, + [tier.."_EU_supply"] = INT, + [tier.."_EU_input"] = INT, + internal_EU_charge = INT, + last_side_shown = INT}, + }) + end +end + diff --git a/mods/technic/wrench/textures/technic_wrench.png b/mods/technic/wrench/textures/technic_wrench.png new file mode 100644 index 0000000..471b47e Binary files /dev/null and b/mods/technic/wrench/textures/technic_wrench.png differ diff --git a/mods/tnt/README.txt b/mods/tnt/README.txt new file mode 100644 index 0000000..4e74841 --- /dev/null +++ b/mods/tnt/README.txt @@ -0,0 +1,44 @@ +Minetest Game mod: tnt +====================== +See license.txt for license information. + +Authors of source code +---------------------- +PilzAdam (MIT) +ShadowNinja (MIT) +sofar (sofar@foo-projects.org) (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +BlockMen (CC BY-SA 3.0): +All textures not mentioned below. + +ShadowNinja (CC BY-SA 3.0): +tnt_smoke.png + +Wuzzy (CC BY-SA 3.0): +All gunpowder textures except tnt_gunpowder_inventory.png. + +sofar (sofar@foo-projects.org) (CC BY-SA 3.0): +tnt_blast.png + +Introduction +------------ +This mod adds TNT to Minetest. TNT is a tool to help the player +in mining. + +How to use the mod: +Craft gunpowder by placing coal and gravel in the crafting area. +The gunpowder can be used to craft TNT or as fuse for TNT. +To craft TNT place items like this: +-- wood - gunpowder -- wood - +gunpowder gunpowder gunpowder +-- wood - gunpowder -- wood - + +There are different ways to blow up TNT: + 1. Hit it with a torch. + 2. Hit a gunpowder fuse that leads to a TNT block with a torch or flint-and-steel. + 3. Activate it with mesecons (fastest way). + +Be aware of the damage radius of 6 blocks! diff --git a/mods/tnt/depends.txt b/mods/tnt/depends.txt new file mode 100644 index 0000000..5ff216f --- /dev/null +++ b/mods/tnt/depends.txt @@ -0,0 +1,3 @@ +default +fire + diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua new file mode 100644 index 0000000..d12e814 --- /dev/null +++ b/mods/tnt/init.lua @@ -0,0 +1,663 @@ +tnt = {} + +-- Default to enabled when in singleplayer +local enable_tnt = minetest.settings:get_bool("enable_tnt") +if enable_tnt == nil then + enable_tnt = minetest.is_singleplayer() +end + +-- loss probabilities array (one in X will be lost) +local loss_prob = {} + +loss_prob["default:cobble"] = 3 +loss_prob["default:dirt"] = 4 + +local tnt_radius = tonumber(minetest.settings:get("tnt_radius") or 3) + +-- Fill a list with data for content IDs, after all nodes are registered +local cid_data = {} +minetest.after(0, function() + for name, def in pairs(minetest.registered_nodes) do + cid_data[minetest.get_content_id(name)] = { + name = name, + drops = def.drops, + flammable = def.groups.flammable, + on_blast = def.on_blast, + } + end +end) + +local function rand_pos(center, pos, radius) + local def + local reg_nodes = minetest.registered_nodes + local i = 0 + repeat + -- Give up and use the center if this takes too long + if i > 4 then + pos.x, pos.z = center.x, center.z + break + end + pos.x = center.x + math.random(-radius, radius) + pos.z = center.z + math.random(-radius, radius) + def = reg_nodes[minetest.get_node(pos).name] + i = i + 1 + until def and not def.walkable +end + +local function eject_drops(drops, pos, radius) + local drop_pos = vector.new(pos) + for _, item in pairs(drops) do + local count = math.min(item:get_count(), item:get_stack_max()) + while count > 0 do + local take = math.max(1,math.min(radius * radius, + count, + item:get_stack_max())) + rand_pos(pos, drop_pos, radius) + local dropitem = ItemStack(item) + dropitem:set_count(take) + local obj = minetest.add_item(drop_pos, dropitem) + if obj then + obj:get_luaentity().collect = true + obj:setacceleration({x = 0, y = -10, z = 0}) + obj:setvelocity({x = math.random(-3, 3), + y = math.random(0, 10), + z = math.random(-3, 3)}) + end + count = count - take + end + end +end + +local function add_drop(drops, item) + item = ItemStack(item) + local name = item:get_name() + if loss_prob[name] ~= nil and math.random(1, loss_prob[name]) == 1 then + return + end + + local drop = drops[name] + if drop == nil then + drops[name] = item + else + drop:set_count(drop:get_count() + item:get_count()) + end +end + +local basic_flame_on_construct -- cached value +local function destroy(drops, npos, cid, c_air, c_fire, + on_blast_queue, on_construct_queue, + ignore_protection, ignore_on_blast, owner) + if not ignore_protection and minetest.is_protected(npos, owner) then + return cid + end + + local def = cid_data[cid] + + if not def then + return c_air + elseif not ignore_on_blast and def.on_blast then + on_blast_queue[#on_blast_queue + 1] = { + pos = vector.new(npos), + on_blast = def.on_blast + } + return cid + elseif def.flammable then + on_construct_queue[#on_construct_queue + 1] = { + fn = basic_flame_on_construct, + pos = vector.new(npos) + } + return c_fire + else + local node_drops = minetest.get_node_drops(def.name, "") + for _, item in pairs(node_drops) do + add_drop(drops, item) + end + return c_air + end +end + +local function calc_velocity(pos1, pos2, old_vel, power) + -- Avoid errors caused by a vector of zero length + if vector.equals(pos1, pos2) then + return old_vel + end + + local vel = vector.direction(pos1, pos2) + vel = vector.normalize(vel) + vel = vector.multiply(vel, power) + + -- Divide by distance + local dist = vector.distance(pos1, pos2) + dist = math.max(dist, 1) + vel = vector.divide(vel, dist) + + -- Add old velocity + vel = vector.add(vel, old_vel) + + -- randomize it a bit + vel = vector.add(vel, { + x = math.random() - 0.5, + y = math.random() - 0.5, + z = math.random() - 0.5, + }) + + -- Limit to terminal velocity + dist = vector.length(vel) + if dist > 250 then + vel = vector.divide(vel, dist / 250) + end + return vel +end + +local function entity_physics(pos, radius, drops) + local objs = minetest.get_objects_inside_radius(pos, radius) + for _, obj in pairs(objs) do + local obj_pos = obj:getpos() + local dist = math.max(1, vector.distance(pos, obj_pos)) + + local damage = (4 / dist) * radius + if obj:is_player() then + -- currently the engine has no method to set + -- player velocity. See #2960 + -- instead, we knock the player back 1.0 node, and slightly upwards + local dir = vector.normalize(vector.subtract(obj_pos, pos)) + local moveoff = vector.multiply(dir, dist + 1.0) + local newpos = vector.add(pos, moveoff) + newpos = vector.add(newpos, {x = 0, y = 0.2, z = 0}) + obj:setpos(newpos) + + obj:set_hp(obj:get_hp() - damage) + else + local do_damage = true + local do_knockback = true + local entity_drops = {} + local luaobj = obj:get_luaentity() + local objdef = minetest.registered_entities[luaobj.name] + + if objdef and objdef.on_blast then + do_damage, do_knockback, entity_drops = objdef.on_blast(luaobj, damage) + end + + if do_knockback then + local obj_vel = obj:getvelocity() + obj:setvelocity(calc_velocity(pos, obj_pos, + obj_vel, radius * 10)) + end + if do_damage then + if not obj:get_armor_groups().immortal then + obj:punch(obj, 1.0, { + full_punch_interval = 1.0, + damage_groups = {fleshy = damage}, + }, nil) + end + end + for _, item in pairs(entity_drops) do + add_drop(drops, item) + end + end + end +end + +local function add_effects(pos, radius, drops) + minetest.add_particle({ + pos = pos, + velocity = vector.new(), + acceleration = vector.new(), + expirationtime = 0.4, + size = radius * 10, + collisiondetection = false, + vertical = false, + texture = "tnt_boom.png", + glow = 15, + }) + minetest.add_particlespawner({ + amount = 64, + time = 0.5, + minpos = vector.subtract(pos, radius / 2), + maxpos = vector.add(pos, radius / 2), + minvel = {x = -10, y = -10, z = -10}, + maxvel = {x = 10, y = 10, z = 10}, + minacc = vector.new(), + maxacc = vector.new(), + minexptime = 1, + maxexptime = 2.5, + minsize = radius * 3, + maxsize = radius * 5, + texture = "tnt_smoke.png", + }) + + -- we just dropped some items. Look at the items entities and pick + -- one of them to use as texture + local texture = "tnt_blast.png" --fallback texture + local most = 0 + for name, stack in pairs(drops) do + local count = stack:get_count() + if count > most then + most = count + local def = minetest.registered_nodes[name] + if def and def.tiles and def.tiles[1] then + texture = def.tiles[1] + end + end + end + + minetest.add_particlespawner({ + amount = 64, + time = 0.1, + minpos = vector.subtract(pos, radius / 2), + maxpos = vector.add(pos, radius / 2), + minvel = {x = -3, y = 0, z = -3}, + maxvel = {x = 3, y = 5, z = 3}, + minacc = {x = 0, y = -10, z = 0}, + maxacc = {x = 0, y = -10, z = 0}, + minexptime = 0.8, + maxexptime = 2.0, + minsize = radius * 0.66, + maxsize = radius * 2, + texture = texture, + collisiondetection = true, + }) +end + +function tnt.burn(pos, nodename) + local name = nodename or minetest.get_node(pos).name + local def = minetest.registered_nodes[name] + if not def then + return + elseif def.on_ignite then + def.on_ignite(pos) + elseif minetest.get_item_group(name, "tnt") > 0 then + minetest.swap_node(pos, {name = name .. "_burning"}) + minetest.sound_play("tnt_ignite", {pos = pos}) + minetest.get_node_timer(pos):start(1) + end +end + +local function tnt_explode(pos, radius, ignore_protection, ignore_on_blast, owner, explode_center) + pos = vector.round(pos) + -- scan for adjacent TNT nodes first, and enlarge the explosion + local vm1 = VoxelManip() + local p1 = vector.subtract(pos, 2) + local p2 = vector.add(pos, 2) + local minp, maxp = vm1:read_from_map(p1, p2) + local a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + local data = vm1:get_data() + local count = 0 + local c_tnt = minetest.get_content_id("tnt:tnt") + local c_tnt_burning = minetest.get_content_id("tnt:tnt_burning") + local c_tnt_boom = minetest.get_content_id("tnt:boom") + local c_air = minetest.get_content_id("air") + -- make sure we still have explosion even when centre node isnt tnt related + if explode_center then + count = 1 + end + + for z = pos.z - 2, pos.z + 2 do + for y = pos.y - 2, pos.y + 2 do + local vi = a:index(pos.x - 2, y, z) + for x = pos.x - 2, pos.x + 2 do + local cid = data[vi] + if cid == c_tnt or cid == c_tnt_boom or cid == c_tnt_burning then + count = count + 1 + data[vi] = c_air + end + vi = vi + 1 + end + end + end + + vm1:set_data(data) + vm1:write_to_map() + + -- recalculate new radius + radius = math.floor(radius * math.pow(count, 1/3)) + + -- perform the explosion + local vm = VoxelManip() + local pr = PseudoRandom(os.time()) + p1 = vector.subtract(pos, radius) + p2 = vector.add(pos, radius) + minp, maxp = vm:read_from_map(p1, p2) + a = VoxelArea:new({MinEdge = minp, MaxEdge = maxp}) + data = vm:get_data() + + local drops = {} + local on_blast_queue = {} + local on_construct_queue = {} + basic_flame_on_construct = minetest.registered_nodes["fire:basic_flame"].on_construct + + local c_fire = minetest.get_content_id("fire:basic_flame") + for z = -radius, radius do + for y = -radius, radius do + local vi = a:index(pos.x + (-radius), pos.y + y, pos.z + z) + for x = -radius, radius do + local r = vector.length(vector.new(x, y, z)) + if (radius * radius) / (r * r) >= (pr:next(80, 125) / 100) then + local cid = data[vi] + local p = {x = pos.x + x, y = pos.y + y, z = pos.z + z} + if cid ~= c_air then + data[vi] = destroy(drops, p, cid, c_air, c_fire, + on_blast_queue, on_construct_queue, + ignore_protection, ignore_on_blast, owner) + end + end + vi = vi + 1 + end + end + end + + vm:set_data(data) + vm:write_to_map() + vm:update_map() + vm:update_liquids() + + -- call check_single_for_falling for everything within 1.5x blast radius + for y = -radius * 1.5, radius * 1.5 do + for z = -radius * 1.5, radius * 1.5 do + for x = -radius * 1.5, radius * 1.5 do + local rad = {x = x, y = y, z = z} + local s = vector.add(pos, rad) + local r = vector.length(rad) + if r / radius < 1.4 then + minetest.check_single_for_falling(s) + end + end + end + end + + for _, queued_data in pairs(on_blast_queue) do + local dist = math.max(1, vector.distance(queued_data.pos, pos)) + local intensity = (radius * radius) / (dist * dist) + local node_drops = queued_data.on_blast(queued_data.pos, intensity) + if node_drops then + for _, item in pairs(node_drops) do + add_drop(drops, item) + end + end + end + + for _, queued_data in pairs(on_construct_queue) do + queued_data.fn(queued_data.pos) + end + + minetest.log("action", "TNT owned by " .. owner .. " detonated at " .. + minetest.pos_to_string(pos) .. " with radius " .. radius) + + return drops, radius +end + +function tnt.boom(pos, def) + def = def or {} + def.radius = def.radius or 1 + def.damage_radius = def.damage_radius or def.radius * 2 + local meta = minetest.get_meta(pos) + local owner = meta:get_string("owner") + if not def.explode_center then + minetest.set_node(pos, {name = "tnt:boom"}) + end + minetest.sound_play("tnt_explode", {pos = pos, gain = 1.5, max_hear_distance = 2*64}) + local drops, radius = tnt_explode(pos, def.radius, def.ignore_protection, + def.ignore_on_blast, owner, def.explode_center) + -- append entity drops + local damage_radius = (radius / math.max(1, def.radius)) * def.damage_radius + entity_physics(pos, damage_radius, drops) + if not def.disable_drops then + eject_drops(drops, pos, radius) + end + add_effects(pos, radius, drops) + minetest.log("action", "A TNT explosion occurred at " .. minetest.pos_to_string(pos) .. + " with radius " .. radius) +end + +minetest.register_node("tnt:boom", { + drawtype = "airlike", + light_source = default.LIGHT_MAX, + walkable = false, + drop = "", + groups = {dig_immediate = 3}, + -- unaffected by explosions + on_blast = function() end, +}) + +minetest.register_node("tnt:gunpowder", { + description = "Gun Powder", + drawtype = "raillike", + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + tiles = { + "tnt_gunpowder_straight.png", + "tnt_gunpowder_curved.png", + "tnt_gunpowder_t_junction.png", + "tnt_gunpowder_crossing.png" + }, + inventory_image = "tnt_gunpowder_inventory.png", + wield_image = "tnt_gunpowder_inventory.png", + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + groups = {dig_immediate = 2, attached_node = 1, flammable = 5, + connect_to_raillike = minetest.raillike_group("gunpowder")}, + sounds = default.node_sound_leaves_defaults(), + + on_punch = function(pos, node, puncher) + if puncher:get_wielded_item():get_name() == "default:torch" then + minetest.set_node(pos, {name = "tnt:gunpowder_burning"}) + minetest.log("action", puncher:get_player_name() .. + " ignites tnt:gunpowder at " .. + minetest.pos_to_string(pos)) + end + end, + on_blast = function(pos, intensity) + minetest.set_node(pos, {name = "tnt:gunpowder_burning"}) + end, + on_burn = function(pos) + minetest.set_node(pos, {name = "tnt:gunpowder_burning"}) + end, + on_ignite = function(pos, igniter) + minetest.set_node(pos, {name = "tnt:gunpowder_burning"}) + end, +}) + +minetest.register_node("tnt:gunpowder_burning", { + drawtype = "raillike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + light_source = 5, + tiles = {{ + name = "tnt_gunpowder_burning_straight_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1, + } + }, + { + name = "tnt_gunpowder_burning_curved_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1, + } + }, + { + name = "tnt_gunpowder_burning_t_junction_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1, + } + }, + { + name = "tnt_gunpowder_burning_crossing_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1, + } + }}, + selection_box = { + type = "fixed", + fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2}, + }, + drop = "", + groups = { + dig_immediate = 2, + attached_node = 1, + connect_to_raillike = minetest.raillike_group("gunpowder") + }, + sounds = default.node_sound_leaves_defaults(), + on_timer = function(pos, elapsed) + for dx = -1, 1 do + for dz = -1, 1 do + if math.abs(dx) + math.abs(dz) == 1 then + for dy = -1, 1 do + tnt.burn({ + x = pos.x + dx, + y = pos.y + dy, + z = pos.z + dz, + }) + end + end + end + end + minetest.remove_node(pos) + end, + -- unaffected by explosions + on_blast = function() end, + on_construct = function(pos) + minetest.sound_play("tnt_gunpowder_burning", {pos = pos, gain = 2}) + minetest.get_node_timer(pos):start(1) + end, +}) + +minetest.register_craft({ + output = "tnt:gunpowder 5", + type = "shapeless", + recipe = {"default:coal_lump", "default:gravel"} +}) + +if enable_tnt then + minetest.register_craft({ + output = "tnt:tnt", + recipe = { + {"group:wood", "tnt:gunpowder", "group:wood"}, + {"tnt:gunpowder", "tnt:gunpowder", "tnt:gunpowder"}, + {"group:wood", "tnt:gunpowder", "group:wood"} + } + }) + + minetest.register_abm({ + label = "TNT ignition", + nodenames = {"group:tnt", "tnt:gunpowder"}, + neighbors = {"fire:basic_flame", "default:lava_source", "default:lava_flowing"}, + interval = 4, + chance = 1, + action = function(pos, node) + tnt.burn(pos, node.name) + end, + }) +end + +function tnt.register_tnt(def) + local name + if not def.name:find(':') then + name = "tnt:" .. def.name + else + name = def.name + def.name = def.name:match(":([%w_]+)") + end + if not def.tiles then def.tiles = {} end + local tnt_top = def.tiles.top or def.name .. "_top.png" + local tnt_bottom = def.tiles.bottom or def.name .. "_bottom.png" + local tnt_side = def.tiles.side or def.name .. "_side.png" + local tnt_burning = def.tiles.burning or def.name .. "_top_burning_animated.png" + if not def.damage_radius then def.damage_radius = def.radius * 2 end + + if enable_tnt then + minetest.register_node(":" .. name, { + description = def.description, + tiles = {tnt_top, tnt_bottom, tnt_side}, + is_ground_content = false, + groups = {dig_immediate = 2, mesecon = 2, tnt = 1, flammable = 5}, + sounds = default.node_sound_wood_defaults(), + after_place_node = function(pos, placer) + if placer:is_player() then + local meta = minetest.get_meta(pos) + meta:set_string("owner", placer:get_player_name()) + end + end, + on_punch = function(pos, node, puncher) + if puncher:get_wielded_item():get_name() == "default:torch" then + minetest.swap_node(pos, {name = name .. "_burning"}) + minetest.registered_nodes[name .. "_burning"].on_construct(pos) + minetest.log("action", puncher:get_player_name() .. + " ignites " .. node.name .. " at " .. + minetest.pos_to_string(pos)) + end + end, + on_blast = function(pos, intensity) + minetest.after(0.1, function() + tnt.boom(pos, def) + end) + end, + mesecons = {effector = + {action_on = + function(pos) + tnt.boom(pos, def) + end + } + }, + on_burn = function(pos) + minetest.swap_node(pos, {name = name .. "_burning"}) + minetest.registered_nodes[name .. "_burning"].on_construct(pos) + end, + on_ignite = function(pos, igniter) + minetest.swap_node(pos, {name = name .. "_burning"}) + minetest.registered_nodes[name .. "_burning"].on_construct(pos) + end, + }) + end + + minetest.register_node(":" .. name .. "_burning", { + tiles = { + { + name = tnt_burning, + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1, + } + }, + tnt_bottom, tnt_side + }, + light_source = 5, + drop = "", + sounds = default.node_sound_wood_defaults(), + groups = {falling_node = 1}, + on_timer = function(pos, elapsed) + tnt.boom(pos, def) + end, + -- unaffected by explosions + on_blast = function() end, + on_construct = function(pos) + minetest.sound_play("tnt_ignite", {pos = pos}) + minetest.get_node_timer(pos):start(4) + minetest.check_for_falling(pos) + end, + }) +end + +tnt.register_tnt({ + name = "tnt:tnt", + description = "TNT", + radius = tnt_radius, +}) diff --git a/mods/tnt/license.txt b/mods/tnt/license.txt new file mode 100644 index 0000000..210f2bd --- /dev/null +++ b/mods/tnt/license.txt @@ -0,0 +1,65 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2014-2016 PilzAdam +Copyright (C) 2014-2016 ShadowNinja +Copyright (C) 2016 sofar (sofar@foo-projects.org) +Copyright (C) 2014-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2014-2016 ShadowNinja +Copyright (C) 2015-2016 Wuzzy +Copyright (C) 2016 sofar (sofar@foo-projects.org) + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/tnt/sounds/tnt_explode.ogg b/mods/tnt/sounds/tnt_explode.ogg new file mode 100644 index 0000000..a414ea0 Binary files /dev/null and b/mods/tnt/sounds/tnt_explode.ogg differ diff --git a/mods/tnt/sounds/tnt_gunpowder_burning.ogg b/mods/tnt/sounds/tnt_gunpowder_burning.ogg new file mode 100644 index 0000000..5c5bfaf Binary files /dev/null and b/mods/tnt/sounds/tnt_gunpowder_burning.ogg differ diff --git a/mods/tnt/sounds/tnt_ignite.ogg b/mods/tnt/sounds/tnt_ignite.ogg new file mode 100644 index 0000000..199f206 Binary files /dev/null and b/mods/tnt/sounds/tnt_ignite.ogg differ diff --git a/mods/tnt/textures/tnt_blast.png b/mods/tnt/textures/tnt_blast.png new file mode 100644 index 0000000..bbb1096 Binary files /dev/null and b/mods/tnt/textures/tnt_blast.png differ diff --git a/mods/tnt/textures/tnt_boom.png b/mods/tnt/textures/tnt_boom.png new file mode 100644 index 0000000..c848bfc Binary files /dev/null and b/mods/tnt/textures/tnt_boom.png differ diff --git a/mods/tnt/textures/tnt_bottom.png b/mods/tnt/textures/tnt_bottom.png new file mode 100644 index 0000000..95f66cb Binary files /dev/null and b/mods/tnt/textures/tnt_bottom.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png new file mode 100644 index 0000000..a901f7b Binary files /dev/null and b/mods/tnt/textures/tnt_gunpowder_burning_crossing_animated.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png new file mode 100644 index 0000000..bc01806 Binary files /dev/null and b/mods/tnt/textures/tnt_gunpowder_burning_curved_animated.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png new file mode 100644 index 0000000..c860ace Binary files /dev/null and b/mods/tnt/textures/tnt_gunpowder_burning_straight_animated.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png b/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png new file mode 100644 index 0000000..a556072 Binary files /dev/null and b/mods/tnt/textures/tnt_gunpowder_burning_t_junction_animated.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_crossing.png b/mods/tnt/textures/tnt_gunpowder_crossing.png new file mode 100644 index 0000000..916c84e Binary files /dev/null and b/mods/tnt/textures/tnt_gunpowder_crossing.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_curved.png b/mods/tnt/textures/tnt_gunpowder_curved.png new file mode 100644 index 0000000..cb8b4ea Binary files /dev/null and b/mods/tnt/textures/tnt_gunpowder_curved.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_inventory.png b/mods/tnt/textures/tnt_gunpowder_inventory.png new file mode 100644 index 0000000..105a2d2 Binary files /dev/null and b/mods/tnt/textures/tnt_gunpowder_inventory.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_straight.png b/mods/tnt/textures/tnt_gunpowder_straight.png new file mode 100644 index 0000000..8ab0e3c Binary files /dev/null and b/mods/tnt/textures/tnt_gunpowder_straight.png differ diff --git a/mods/tnt/textures/tnt_gunpowder_t_junction.png b/mods/tnt/textures/tnt_gunpowder_t_junction.png new file mode 100644 index 0000000..ac997a7 Binary files /dev/null and b/mods/tnt/textures/tnt_gunpowder_t_junction.png differ diff --git a/mods/tnt/textures/tnt_side.png b/mods/tnt/textures/tnt_side.png new file mode 100644 index 0000000..d303473 Binary files /dev/null and b/mods/tnt/textures/tnt_side.png differ diff --git a/mods/tnt/textures/tnt_smoke.png b/mods/tnt/textures/tnt_smoke.png new file mode 100644 index 0000000..488b50f Binary files /dev/null and b/mods/tnt/textures/tnt_smoke.png differ diff --git a/mods/tnt/textures/tnt_top.png b/mods/tnt/textures/tnt_top.png new file mode 100644 index 0000000..31b807c Binary files /dev/null and b/mods/tnt/textures/tnt_top.png differ diff --git a/mods/tnt/textures/tnt_top_burning.png b/mods/tnt/textures/tnt_top_burning.png new file mode 100644 index 0000000..fc0d490 Binary files /dev/null and b/mods/tnt/textures/tnt_top_burning.png differ diff --git a/mods/tnt/textures/tnt_top_burning_animated.png b/mods/tnt/textures/tnt_top_burning_animated.png new file mode 100644 index 0000000..18a270f Binary files /dev/null and b/mods/tnt/textures/tnt_top_burning_animated.png differ diff --git a/mods/travelnet/README.md b/mods/travelnet/README.md new file mode 100644 index 0000000..d9bd775 --- /dev/null +++ b/mods/travelnet/README.md @@ -0,0 +1,11 @@ + +How this works: + +- craft it by filling the right and left row with glass; place in the middle row (from top to bottom): steel, mese, steel +- place the travelnet box somewhere +- right-click on it; enter name of the station (e.g. "my house", "center of desert city") and name of the network (e.g. "intresting towns","my buildings") +- punch it to update the list of stations on that network +- right-click to use the travelbox + +An unconfigured travelnet box can be configured by anyone. If it is misconfigured, just dig it and place it anew. +All stations that have the same network name set and are owned by the same user connect to the same network. diff --git a/mods/travelnet/config.lua b/mods/travelnet/config.lua new file mode 100644 index 0000000..7673833 --- /dev/null +++ b/mods/travelnet/config.lua @@ -0,0 +1,67 @@ + +travelnet.MAX_STATIONS_PER_NETWORK = 24; + +-- set this to true if you want a simulated beam effect +travelnet.travelnet_effect_enabled = false; +-- set this to true if you want a sound to be played when the travelnet is used +travelnet.travelnet_sound_enabled = false; + +-- if you set this to false, travelnets cannot be created +-- (this may be useful if you want nothing but the elevators on your server) +travelnet.travelnet_enabled = true; +-- if you set travelnet.elevator_enabled to false, you will not be able to +-- craft, place or use elevators +travelnet.elevator_enabled = true; +-- if you set this to false, doors will be disabled +travelnet.doors_enabled = true; + +-- starts an abm which re-adds travelnet stations to networks in case the savefile got lost +travelnet.abm_enabled = false; + +-- change these if you want other receipes for travelnet or elevator +travelnet.travelnet_recipe = { + {"default:glass", "default:steel_ingot", "default:glass", }, + {"default:glass", "default:mese", "default:glass", }, + {"default:glass", "default:steel_ingot", "default:glass", } +} +travelnet.elevator_recipe = { + {"default:steel_ingot", "default:glass", "default:steel_ingot", }, + {"default:steel_ingot", "", "default:steel_ingot", }, + {"default:steel_ingot", "default:glass", "default:steel_ingot", } +} + +-- if this function returns true, the player with the name player_name is +-- allowed to add a box to the network named network_name, which is owned +-- by the player owner_name; +-- if you want to allow *everybody* to attach stations to all nets, let the +-- function always return true; +-- if the function returns false, players with the travelnet_attach priv +-- can still add stations to that network + +travelnet.allow_attach = function( player_name, owner_name, network_name ) + return false; +end + + +-- if this returns true, a player named player_name can remove a travelnet station +-- from network_name (owned by owner_name) even though he is neither the owner nor +-- has the travelnet_remove priv +travelnet.allow_dig = function( player_name, owner_name, network_name ) + return false; +end + + +-- if this function returns false, then player player_name will not be allowed to use +-- the travelnet station_name_start on networ network_name owned by owner_name to travel to +-- the station station_name_target on the same network; +-- if this function returns true, the player will be transfered to the target station; +-- you can use this code to i.e. charge the player money for the transfer or to limit +-- usage of stations to players in the same fraction on PvP servers +travelnet.allow_travel = function( player_name, owner_name, network_name, station_name_start, station_name_target ) + + --minetest.chat_send_player( player_name, "Player "..tostring( player_name ).." tries to use station "..tostring( station_name_start ).. + -- " on network "..tostring( network_name ).." owned by "..tostring( owner_name ).." in order to travel to ".. + -- tostring( station_name_target ).."."); + + return true; +end diff --git a/mods/travelnet/doors.lua b/mods/travelnet/doors.lua new file mode 100644 index 0000000..825e368 --- /dev/null +++ b/mods/travelnet/doors.lua @@ -0,0 +1,125 @@ +-- Doors that are especially useful for travelnet elevators but can also be used in other situations. +-- All doors (not only these here) in front of a travelnet or elevator are opened automaticly when a player arrives +-- and are closed when a player departs from the travelnet or elevator. +-- Autor: Sokomine + +minetest.register_node("travelnet:elevator_door_steel_open", { + description = "elevator door (open)", + drawtype = "nodebox", + -- top, bottom, side1, side2, inner, outer + tiles = {"default_stone.png"}, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, + -- larger than one node but slightly smaller than a half node so that wallmounted torches pose no problem + node_box = { + type = "fixed", + fixed = { + {-0.90, -0.5, 0.4, -0.49, 1.5, 0.5}, + { 0.49, -0.5, 0.4, 0.9, 1.5, 0.5}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.9, -0.5, 0.4, 0.9, 1.5, 0.5}, + }, + }, + drop = "travelnet:elevator_door_steel_closed", + on_rightclick = function(pos, node, puncher) + minetest.add_node(pos, {name = "travelnet:elevator_door_steel_closed", param2 = node.param2}) + end, +}) + +minetest.register_node("travelnet:elevator_door_steel_closed", { + description = "elevator door (closed)", + drawtype = "nodebox", + -- top, bottom, side1, side2, inner, outer + tiles = {"default_stone.png"}, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.4, -0.01, 1.5, 0.5}, + { 0.01, -0.5, 0.4, 0.5, 1.5, 0.5}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.4, 0.5, 1.5, 0.5}, + }, + }, + on_rightclick = function(pos, node, puncher) + minetest.add_node(pos, {name = "travelnet:elevator_door_steel_open", param2 = node.param2}) + end, +}) + + + + +minetest.register_node("travelnet:elevator_door_glass_open", { + description = "elevator door (open)", + drawtype = "nodebox", + -- top, bottom, side1, side2, inner, outer + tiles = {"travelnet_elevator_door_glass.png"}, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1}, + -- larger than one node but slightly smaller than a half node so that wallmounted torches pose no problem + node_box = { + type = "fixed", + fixed = { + {-0.99, -0.5, 0.4, -0.49, 1.5, 0.5}, + { 0.49, -0.5, 0.4, 0.99, 1.5, 0.5}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.9, -0.5, 0.4, 0.9, 1.5, 0.5}, + }, + }, + drop = "travelnet:elevator_door_glass_closed", + on_rightclick = function(pos, node, puncher) + minetest.add_node(pos, {name = "travelnet:elevator_door_glass_closed", param2 = node.param2}) + end, +}) + +minetest.register_node("travelnet:elevator_door_glass_closed", { + description = "elevator door (closed)", + drawtype = "nodebox", + -- top, bottom, side1, side2, inner, outer + tiles = {"travelnet_elevator_door_glass.png"}, + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = true, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.4, -0.01, 1.5, 0.5}, + { 0.01, -0.5, 0.4, 0.5, 1.5, 0.5}, + }, + }, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, 0.4, 0.5, 1.5, 0.5}, + }, + }, + on_rightclick = function(pos, node, puncher) + minetest.add_node(pos, {name = "travelnet:elevator_door_glass_open", param2 = node.param2}) + end, +}) + +-- local old_node = minetest.get_node( pos ); +-- minetest.add_node(pos, {name = "travelnet:elevator_door_glass_closed", param2 = old_node.param2}) + + + diff --git a/mods/travelnet/elevator.lua b/mods/travelnet/elevator.lua new file mode 100644 index 0000000..254d3eb --- /dev/null +++ b/mods/travelnet/elevator.lua @@ -0,0 +1,108 @@ +-- This version of the travelnet box allows to move up or down only. +-- The network name is determined automaticly from the position (x/z coordinates). +-- >utor: Sokomine + +minetest.register_node("travelnet:elevator", { + description = "Elevator", + drawtype = "mesh", + mesh = "travelnet_elevator.obj", + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "facedir", + wield_scale = {x=0.6, y=0.6, z=0.6}, + + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 } + }, + + collision_box = { + type = "fixed", + fixed = { + + { 0.48, -0.5,-0.5, 0.5, 0.5, 0.5}, + {-0.5 , -0.5, 0.48, 0.48, 0.5, 0.5}, + {-0.5, -0.5,-0.5 ,-0.48, 0.5, 0.5}, + + --groundplate to stand on + { -0.5,-0.5,-0.5,0.5,-0.48, 0.5}, + }, + }, + + tiles = { + "travelnet_elevator_front.png", + "travelnet_elevator_inside_controls.png", + "travelnet_elevator_sides_outside.png", + "travelnet_elevator_inside_ceiling.png", + "travelnet_elevator_inside_floor.png", + "default_steel_block.png" + }, + inventory_image = "travelnet_elevator_inv.png", + groups = {cracky=1,choppy=1,snappy=1}, + + light_source = 10, + + after_place_node = function(pos, placer, itemstack) + local meta = minetest.get_meta(pos); + meta:set_string("infotext", "Elevator (unconfigured)"); + meta:set_string("station_name", ""); + meta:set_string("station_network",""); + meta:set_string("owner", placer:get_player_name() ); + -- request initial data + meta:set_string("formspec", + "size[12,10]".. + "field[0.3,5.6;6,0.7;station_name;Name of this station:;]".. +-- "field[0.3,6.6;6,0.7;station_network;Assign to Network:;]".. +-- "field[0.3,7.6;6,0.7;owner_name;(optional) owned by:;]".. + "button_exit[6.3,6.2;1.7,0.7;station_set;Store]" ); + + local p = {x=pos.x, y=pos.y+1, z=pos.z} + local p2 = minetest.dir_to_facedir(placer:get_look_dir()) + minetest.add_node(p, {name="travelnet:elevator_top", paramtype2="facedir", param2=p2}) + end, + + on_receive_fields = travelnet.on_receive_fields, + on_punch = function(pos, node, puncher) + travelnet.update_formspec(pos, puncher:get_player_name()) + end, + + can_dig = function( pos, player ) + return travelnet.can_dig( pos, player, 'elevator' ) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + travelnet.remove_box( pos, oldnode, oldmetadata, digger ) + end, + + -- taken from VanessaEs homedecor fridge + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above; + local node = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}); + -- leftover elevator_top nodes can be removed by placing a new elevator underneath + if( node ~= nil and node.name ~= "air" and node.name ~= 'travelnet:elevator_top') then + minetest.chat_send_player( placer:get_player_name(), 'Not enough vertical space to place the travelnet box!' ) + return; + end + return minetest.item_place(itemstack, placer, pointed_thing); + end, + + on_destruct = function(pos) + local p = {x=pos.x, y=pos.y+1, z=pos.z} + minetest.remove_node(p) + end +}) + +minetest.register_alias("travelnet:elevator_top", "air") + +--if( minetest.get_modpath("technic") ~= nil ) then +-- minetest.register_craft({ +-- output = "travelnet:elevator", +-- recipe = { +-- {"default:steel_ingot", "technic:motor", "default:steel_ingot", }, +-- {"default:steel_ingot", "technic:control_logic_unit", "default:steel_ingot", }, +-- {"default:steel_ingot", "moreores:copper_ingot", "default:steel_ingot", } +-- } +-- }) +--else +--end + diff --git a/mods/travelnet/init.lua b/mods/travelnet/init.lua new file mode 100644 index 0000000..0814e65 --- /dev/null +++ b/mods/travelnet/init.lua @@ -0,0 +1,711 @@ + + +--[[ + Teleporter networks that allow players to choose a destination out of a list + 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: 2.2 (with optional abm for self-healing) + + Please configure this mod in config.lua + + Changelog: + 30.08.16 - If the station the traveller just travelled to no longer exists, the player is sent back to the + station where he/she came from. + 30.08.16 - Attaching a travelnet box to a non-existant network of another player is possible (requested by OldCoder). + Still requires the travelnet_attach-priv. + 05.10.14 - Added an optional abm so that the travelnet network can heal itshelf in case of loss of the savefile. + If you want to use this, set + travelnet.enable_abm = true + in config.lua and edit the interval in the abm to suit your needs. + 19.11.13 - moved doors and travelnet definition into an extra file + - moved configuration to config.lua + 05.08.13 - fixed possible crash when the node in front of the travelnet is unknown + 26.06.13 - added inventory image for elevator (created by VanessaE) + 21.06.13 - bugfix: wielding an elevator while digging a door caused the elevator_top to be placed + - leftover floating elevator_top nodes can be removed by placing a new travelnet:elevator underneath them and removing that afterwards + - homedecor-doors are now opened and closed correctly as well + - removed nodes that are not intended for manual use from creative inventory + - improved naming of station levels for the elevator + 21.06.13 - elevator stations are sorted by height instead of date of creation as is the case with travelnet boxes + - elevator stations are named automaticly + 20.06.13 - doors can be opened and closed from inside the travelnet box/elevator + - the elevator can only move vertically; the network name is defined by its x and z coordinate + 13.06.13 - bugfix + - elevator added (written by kpoppel) and placed into extra file + - elevator doors added + - groups changed to avoid accidental dig/drop on dig of node beneath + - added new priv travelnet_remove for digging of boxes owned by other players + - only the owner of a box or players with the travelnet_remove priv can now dig it + - entering your own name as owner_name does no longer abort setup + 22.03.13 - added automatic detection if yaw can be set + - beam effect is disabled by default + 20.03.13 - added inventory image provided by VanessaE + - fixed bug that made it impossible to remove stations from the net + - if the station a player beamed to no longer exists, the station will be removed automaticly + - with the travelnet_attach priv, you can now attach your box to the nets of other players + - in newer versions of Minetest, the players yaw is set so that he/she looks out of the receiving box + - target list is now centered if there are less than 9 targets +--]] + + +minetest.register_privilege("travelnet_attach", { description = "allows to attach travelnet boxes to travelnets of other players", give_to_singleplayer = false}); +minetest.register_privilege("travelnet_remove", { description = "allows to dig travelnet boxes which belog to nets of other players", give_to_singleplayer = false}); + +travelnet = {}; + +travelnet.targets = {}; + + +-- read the configuration +dofile(minetest.get_modpath("travelnet").."/config.lua"); -- the normal, default travelnet + + + +-- TODO: save and restore ought to be library functions and not implemented in each individual mod! +-- called whenever a station is added or removed +travelnet.save_data = function() + + local data = minetest.serialize( travelnet.targets ); + local path = minetest.get_worldpath().."/mod_travelnet.data"; + + local file = io.open( path, "w" ); + if( file ) then + file:write( data ); + file:close(); + else + print("[Mod travelnet] Error: Savefile '"..tostring( path ).."' could not be written."); + end +end + + +travelnet.restore_data = function() + + local path = minetest.get_worldpath().."/mod_travelnet.data"; + + local file = io.open( path, "r" ); + if( file ) then + local data = file:read("*all"); + travelnet.targets = minetest.deserialize( data ); + file:close(); + else + print("[Mod travelnet] Error: Savefile '"..tostring( path ).."' not found."); + end +end + + + + +travelnet.update_formspec = function( pos, puncher_name ) + + local meta = minetest.get_meta(pos); + + local this_node = minetest.get_node( pos ); + local is_elevator = false; + + if( this_node ~= nil and this_node.name == 'travelnet:elevator' ) then + is_elevator = true; + end + + if( not( meta )) then + return; + end + + local owner_name = meta:get_string( "owner" ); + local station_name = meta:get_string( "station_name" ); + local station_network = meta:get_string( "station_network" ); + + if( not( owner_name ) + or not( station_name ) or station_network == '' + or not( station_network )) then + + + if( is_elevator == true ) then + travelnet.add_target( nil, nil, pos, puncher_name, meta, owner_name ); + return; + end + +-- minetest.chat_send_player(puncher_name, "DEBUG DATA: owner: "..(owner_name or "?").. +-- " station_name: "..(station_name or "?").. +-- " station_network: "..(station_network or "?").."."); +-- minetest.chat_send_player(puncher_name, "data: "..minetest.serialize( travelnet.targets )); + + + meta:set_string("infotext", "Travelnet-box (unconfigured)"); + meta:set_string("station_name", ""); + meta:set_string("station_network",""); + meta:set_string("owner", ""); + -- request initinal data + meta:set_string("formspec", + "size[12,10]".. + "field[0.3,7.6;9,0.9;station_name;Name of this station:;"..(station_name or "?").."]".. + "field[0.3,8.6;9,0.9;station_network;Assign to Network:;"..(station_network or "?").."]".. + "field[0.3,9.6;9,0.9;owner;Owned by:;"..(owner_name or "?").."]".. + "button_exit[6.3,8.2;1.7,0.7;station_set;Store]" ); + + minetest.chat_send_player(puncher_name, "Error: Update failed! Resetting this box on the travelnet."); + return; + end + + -- if the station got lost from the network for some reason (savefile corrupted?) then add it again + if( not( travelnet.targets[ owner_name ] ) + or not( travelnet.targets[ owner_name ][ station_network ] ) + or not( travelnet.targets[ owner_name ][ station_network ][ station_name ] )) then + + -- first one by this player? + if( not( travelnet.targets[ owner_name ] )) then + travelnet.targets[ owner_name ] = {}; + end + + -- first station on this network? + if( not( travelnet.targets[ owner_name ][ station_network ] )) then + travelnet.targets[ owner_name ][ station_network ] = {}; + end + + + local zeit = meta:get_int("timestamp"); + if( not( zeit) or type(zeit)~="number" or zeit<100000 ) then + zeit = os.time(); + end + + -- add this station + travelnet.targets[ owner_name ][ station_network ][ station_name ] = {pos=pos, timestamp=zeit }; + + minetest.chat_send_player(owner_name, "Station '"..station_name.."' has been reattached to the network '"..station_network.."'."); + + end + + + -- add name of station + network + owner + update-button + local zusatzstr = ""; + local trheight = "10"; + if( this_node and this_node.name=="locked_travelnet:travelnet" ) then + zusatzstr = "field[0.3,11;6,0.7;locks_sent_lock_command;Locked travelnet. Type /help for help:;]"; + trheight = "11.5"; + end + local formspec = "size[12,"..trheight.."]".. + "label[3.3,0.0;Travelnet-Box:]".."label[6.3,0.0;Punch box to update target list.]".. + "label[0.3,0.4;Name of this station:]".."label[6.3,0.4;"..(station_name or "?").."]".. + "label[0.3,0.8;Assigned to Network:]" .."label[6.3,0.8;"..(station_network or "?").."]".. + "label[0.3,1.2;Owned by:]" .."label[6.3,1.2;"..(owner_name or "?").."]".. + "label[3.3,1.6;Click on target to travel there:]".. + zusatzstr; +-- "button_exit[5.3,0.3;8,0.8;do_update;Punch box to update destination list. Click on target to travel there.]".. + local x = 0; + local y = 0; + local i = 0; + + + -- collect all station names in a table + local stations = {}; + + for k,v in pairs( travelnet.targets[ owner_name ][ station_network ] ) do + table.insert( stations, k ); + end + -- minetest.chat_send_player(puncher_name, "stations: "..minetest.serialize( stations )); + + local ground_level = 1; + if( is_elevator ) then + table.sort( stations, function(a,b) return travelnet.targets[ owner_name ][ station_network ][ a ].pos.y > + travelnet.targets[ owner_name ][ station_network ][ b ].pos.y end); + -- find ground level + local vgl_timestamp = 999999999999; + for index,k in ipairs( stations ) do + if( not( travelnet.targets[ owner_name ][ station_network ][ k ].timestamp )) then + travelnet.targets[ owner_name ][ station_network ][ k ].timestamp = os.time(); + end + if( travelnet.targets[ owner_name ][ station_network ][ k ].timestamp < vgl_timestamp ) then + vgl_timestamp = travelnet.targets[ owner_name ][ station_network ][ k ].timestamp; + ground_level = index; + end + end + for index,k in ipairs( stations ) do + if( index == ground_level ) then + travelnet.targets[ owner_name ][ station_network ][ k ].nr = 'G'; + else + travelnet.targets[ owner_name ][ station_network ][ k ].nr = tostring( ground_level - index ); + end + end + + else + -- sort the table according to the timestamp (=time the station was configured) + table.sort( stations, function(a,b) return travelnet.targets[ owner_name ][ station_network ][ a ].timestamp < + travelnet.targets[ owner_name ][ station_network ][ b ].timestamp end); + end + + -- if there are only 8 stations (plus this one), center them in the formspec + if( #stations < 10 ) then + x = 4; + end + + for index,k in ipairs( stations ) do + + -- check if there is an elevator door in front that needs to be opened + local open_door_cmd = false; + if( k==station_name ) then + open_door_cmd = true; + end + + if( k ~= station_name or open_door_cmd) then + i = i+1; + + -- new column + if( y==8 ) then + x = x+4; + y = 0; + end + + if( open_door_cmd ) then + formspec = formspec .."button_exit["..(x)..","..(y+2.5)..";1,0.5;open_door;<>]".. + "label["..(x+0.9)..","..(y+2.35)..";"..tostring( k ).."]"; + elseif( is_elevator ) then + formspec = formspec .."button_exit["..(x)..","..(y+2.5)..";1,0.5;target;"..tostring( travelnet.targets[ owner_name ][ station_network ][ k ].nr ).."]".. + "label["..(x+0.9)..","..(y+2.35)..";"..tostring( k ).."]"; + else + formspec = formspec .."button_exit["..(x)..","..(y+2.5)..";4,0.5;target;"..k.."]"; + end + +-- if( is_elevator ) then +-- formspec = formspec ..' ('..tostring( travelnet.targets[ owner_name ][ station_network ][ k ].pos.y )..'m)'; +-- end +-- formspec = formspec .. ']'; + + y = y+1; + --x = x+4; + end + end + + meta:set_string( "formspec", formspec ); + + meta:set_string( "infotext", "Station '"..tostring( station_name ).."' on travelnet '"..tostring( station_network ).. + "' (owned by "..tostring( owner_name )..") ready for usage. Right-click to travel, punch to update."); + + minetest.chat_send_player(puncher_name, "The target list of this box on the travelnet has been updated."); +end + + + +-- add a new target; meta is optional +travelnet.add_target = function( station_name, network_name, pos, player_name, meta, owner_name ) + + -- if it is an elevator, determine the network name through x and z coordinates + local this_node = minetest.get_node( pos ); + local is_elevator = false; + + if( this_node.name == 'travelnet:elevator' ) then +-- owner_name = '*'; -- the owner name is not relevant here + is_elevator = true; + network_name = tostring( pos.x )..','..tostring( pos.z ); + if( not( station_name ) or station_name == '' ) then + station_name = 'at '..tostring( pos.y )..'m'; + end + end + + if( station_name == "" or not(station_name )) then + minetest.chat_send_player(player_name, "Please provide a name for this station."); + return; + end + + if( network_name == "" or not( network_name )) then + minetest.chat_send_player(player_name, "Please provide the name of the network this station ought to be connected to."); + return; + end + + if( owner_name == nil or owner_name == '' or owner_name == player_name) then + owner_name = player_name; + + elseif( is_elevator ) then -- elevator networks + owner_name = player_name; + + elseif( not( minetest.check_player_privs(player_name, {interact=true}))) then + + minetest.chat_send_player(player_name, "There is no player with interact privilege named '"..tostring( player_name ).."'. Aborting."); + return; + + elseif( not( minetest.check_player_privs(player_name, {travelnet_attach=true})) + and not( travelnet.allow_attach( player_name, owner_name, network_name ))) then + + minetest.chat_send_player(player_name, "You do not have the travelnet_attach priv which is required to attach your box to the network of someone else. Aborting."); + return; + end + + -- first one by this player? + if( not( travelnet.targets[ owner_name ] )) then + travelnet.targets[ owner_name ] = {}; + end + + -- first station on this network? + if( not( travelnet.targets[ owner_name ][ network_name ] )) then + travelnet.targets[ owner_name ][ network_name ] = {}; + end + + -- lua doesn't allow efficient counting here + local anz = 0; + for k,v in pairs( travelnet.targets[ owner_name ][ network_name ] ) do + + if( k == station_name ) then + minetest.chat_send_player(player_name, "Error: A station named '"..station_name.."' already exists on this network. Please choose a diffrent name!"); + return; + end + + anz = anz + 1; + end + + -- we don't want too many stations in the same network because that would get confusing when displaying the targets + if( anz+1 > travelnet.MAX_STATIONS_PER_NETWORK ) then + minetest.chat_send_player(player_name, "Error: Network '"..network_name.."' already contains the maximum number (=" + ..(travelnet.MAX_STATIONS_PER_NETWORK)..") of allowed stations per network. Please choose a diffrent/new network name."); + return; + end + + -- add this station + travelnet.targets[ owner_name ][ network_name ][ station_name ] = {pos=pos, timestamp=os.time() }; + + -- do we have a new node to set up? (and are not just reading from a safefile?) + if( meta ) then + + minetest.chat_send_player(player_name, "Station '"..station_name.."' has been added to the network '" + ..network_name.."', which now consists of "..( anz+1 ).." station(s)."); + + meta:set_string( "station_name", station_name ); + meta:set_string( "station_network", network_name ); + meta:set_string( "owner", owner_name ); + meta:set_int( "timestamp", travelnet.targets[ owner_name ][ network_name ][ station_name ].timestamp); + + meta:set_string("formspec", + "size[12,10]".. + "field[0.3,0.6;6,0.7;station_name;Station:;".. meta:get_string("station_name").."]".. + "field[0.3,3.6;6,0.7;station_network;Network:;"..meta:get_string("station_network").."]" ); + + -- display a list of all stations that can be reached from here + travelnet.update_formspec( pos, player_name ); + + -- save the updated network data in a savefile over server restart + travelnet.save_data(); + end +end + + + +-- allow doors to open +travelnet.open_close_door = function( pos, player, mode ) + + local this_node = minetest.get_node( pos ); + local pos2 = {x=pos.x,y=pos.y,z=pos.z}; + + if( this_node.param2 == 0 ) then pos2 = {x=pos.x,y=pos.y,z=(pos.z-1)}; + elseif( this_node.param2 == 1 ) then pos2 = {x=(pos.x-1),y=pos.y,z=pos.z}; + elseif( this_node.param2 == 2 ) then pos2 = {x=pos.x,y=pos.y,z=(pos.z+1)}; + elseif( this_node.param2 == 3 ) then pos2 = {x=(pos.x+1),y=pos.y,z=pos.z}; + end + + local door_node = minetest.get_node( pos2 ); + if( door_node ~= nil and door_node.name ~= 'ignore' and door_node.name ~= 'air' and minetest.registered_nodes[ door_node.name ] ~= nil and minetest.registered_nodes[ door_node.name ].on_rightclick ~= nil) then + + -- at least for homedecor, same facedir would mean "door closed" + + -- do not close the elevator door if it is already closed + if( mode==1 and ( door_node.name == 'travelnet:elevator_door_glass_closed' + or door_node.name == 'travelnet:elevator_door_steel_closed' + -- handle doors that change their facedir + or ( door_node.param2 == this_node.param2 + and door_node.name ~= 'travelnet:elevator_door_glass_open' + and door_node.name ~= 'travelnet:elevator_door_steel_open'))) then + return; + end + -- do not open the doors if they are already open (works only on elevator-doors; not on doors in general) + if( mode==2 and ( door_node.name == 'travelnet:elevator_door_glass_open' + or door_node.name == 'travelnet:elevator_door_steel_open' + -- handle doors that change their facedir + or ( door_node.param2 ~= this_node.param2 + and door_node.name ~= 'travelnet:elevator_door_glass_closed' + and door_node.name ~= 'travelnet:elevator_door_steel_closed'))) then + return; + end + + if( mode==2 ) then + minetest.after( 1, minetest.registered_nodes[ door_node.name ].on_rightclick, pos2, door_node, player ); + else + minetest.registered_nodes[ door_node.name ].on_rightclick(pos2, door_node, player); + end + end +end + + +travelnet.on_receive_fields = function(pos, formname, fields, player) + local meta = minetest.get_meta(pos); + + local name = player:get_player_name(); + + -- if the box has not been configured yet + if( meta:get_string("station_network")=="" ) then + + travelnet.add_target( fields.station_name, fields.station_network, pos, name, meta, fields.owner_name ); + return; + end + + if( fields.open_door ) then + travelnet.open_close_door( pos, player, 0 ); + return; + end + + + if( not( fields.target )) then + minetest.chat_send_player(name, "Please click on the target you want to travel to."); + return; + end + + + -- if there is something wrong with the data + local owner_name = meta:get_string( "owner" ); + local station_name = meta:get_string( "station_name" ); + local station_network = meta:get_string( "station_network" ); + + if( not( owner_name ) + or not( station_name ) + or not( station_network ) + or not( travelnet.targets[ owner_name ] ) + or not( travelnet.targets[ owner_name ][ station_network ] )) then + + + if( owner_name + and station_name + and station_network ) then + travelnet.add_target( station_name, station_network, pos, owner_name, meta, owner_name ); + else + minetest.chat_send_player(name, "Error: There is something wrong with the configuration of this station. ".. + " DEBUG DATA: owner: "..( owner_name or "?").. + " station_name: "..(station_name or "?").. + " station_network: "..(station_network or "?").."."); + return + end + end + + if( not( owner_name ) + or not( station_network ) + or not( travelnet.targets ) + or not( travelnet.targets[ owner_name ] ) + or not( travelnet.targets[ owner_name ][ station_network ] )) then + minetest.chat_send_player(name, "Error: This travelnet is lacking data and/or improperly configured."); + print( "ERROR: The travelnet at "..minetest.pos_to_string( pos ).." has a problem: ".. + " DATA: owner: "..( owner_name or "?").. + " station_name: "..(station_name or "?").. + " station_network: "..(station_network or "?").."."); + return; + end + + local this_node = minetest.get_node( pos ); + if( this_node ~= nil and this_node.name == 'travelnet:elevator' ) then + for k,v in pairs( travelnet.targets[ owner_name ][ station_network ] ) do + if( travelnet.targets[ owner_name ][ station_network ][ k ].nr --..' ('..tostring( travelnet.targets[ owner_name ][ station_network ][ k ].pos.y )..'m)' + == fields.target) then + fields.target = k; + end + end + end + + + -- if the target station is gone + if( not( travelnet.targets[ owner_name ][ station_network ][ fields.target ] )) then + + minetest.chat_send_player(name, "Station '"..( fields.target or "?").." does not exist (anymore?) on this network."); + travelnet.update_formspec( pos, name ); + return; + end + + + if( not( travelnet.allow_travel( name, owner_name, station_network, station_name, fields.target ))) then + return; + end + minetest.chat_send_player(name, "Initiating transfer to station '"..( fields.target or "?").."'.'"); + + + + if( travelnet.travelnet_sound_enabled ) then + minetest.sound_play("128590_7037-lq.mp3", {pos = pos, gain = 1.0, max_hear_distance = 10,}) + end + if( travelnet.travelnet_effect_enabled ) then + minetest.add_entity( {x=pos.x,y=pos.y+0.5,z=pos.z}, "travelnet:effect"); -- it self-destructs after 20 turns + end + + -- close the doors at the sending station + travelnet.open_close_door( pos, player, 1 ); + + -- transport the player to the target location + local target_pos = travelnet.targets[ owner_name ][ station_network ][ fields.target ].pos; + player:moveto( target_pos, false); + + if( travelnet.travelnet_sound_enabled ) then + minetest.sound_play("travelnet_travel.wav", {pos = target_pos, gain = 1.0, max_hear_distance = 10,}) + end + if( travelnet.travelnet_effect_enabled ) then + minetest.add_entity( {x=target_pos.x,y=target_pos.y+0.5,z=target_pos.z}, "travelnet:effect"); -- it self-destructs after 20 turns + end + + + -- check if the box has at the other end has been removed. + local node2 = minetest.get_node( target_pos ); + if( node2 ~= nil and node2.name ~= 'ignore' and node2.name ~= 'travelnet:travelnet' and node2.name ~= 'travelnet:elevator') then + + -- provide information necessary to identify the removed box + local oldmetadata = { fields = { owner = owner_name, + station_name = fields.target, + station_network = station_network }}; + + travelnet.remove_box( target_pos, nil, oldmetadata, player ); + -- send the player back as there's no receiving travelnet + player:moveto( pos, false ); + + -- do this only on servers where the function exists + elseif( player.set_look_yaw ) then + + -- rotate the player so that he/she can walk straight out of the box + local yaw = 0; + local param2 = node2.param2; + if( param2==0 ) then + yaw = 180; + elseif( param2==1 ) then + yaw = 90; + elseif( param2==2 ) then + yaw = 0; + elseif( param2==3 ) then + yaw = 270; + end + + player:set_look_yaw( math.rad( yaw )); -- this is only supported in recent versions of MT + player:set_look_pitch( math.rad( 0 )); -- this is only supported in recent versions of MT + end + + travelnet.open_close_door( target_pos, player, 2 ); +end + + +travelnet.remove_box = function( pos, oldnode, oldmetadata, digger ) + + if( not( oldmetadata ) or oldmetadata=="nil" or not(oldmetadata.fields)) then + minetest.chat_send_player( digger:get_player_name(), "Error: Could not find information about the station that is to be removed."); + return; + end + + local owner_name = oldmetadata.fields[ "owner" ]; + local station_name = oldmetadata.fields[ "station_name" ]; + local station_network = oldmetadata.fields[ "station_network" ]; + + -- station is not known? then just remove it + if( not( owner_name ) + or not( station_name ) + or not( station_network ) + or not( travelnet.targets[ owner_name ] ) + or not( travelnet.targets[ owner_name ][ station_network ] )) then + + minetest.chat_send_player( digger:get_player_name(), "Error: Could not find the station that is to be removed."); + return; + end + + travelnet.targets[ owner_name ][ station_network ][ station_name ] = nil; + + -- inform the owner + minetest.chat_send_player( owner_name, "Station '"..station_name.."' has been REMOVED from the network '"..station_network.."'."); + if( digger ~= nil and owner_name ~= digger:get_player_name() ) then + minetest.chat_send_player( digger:get_player_name(), "Station '"..station_name.."' has been REMOVED from the network '"..station_network.."'."); + end + + -- save the updated network data in a savefile over server restart + travelnet.save_data(); +end + + + +travelnet.can_dig = function( pos, player, description ) + + if( not( player )) then + return false; + end + local name = player:get_player_name(); + + -- players with that priv can dig regardless of owner + if( minetest.check_player_privs(name, {travelnet_remove=true}) + or travelnet.allow_dig( player_name, owner_name, network_name )) then + return true; + end + + local meta = minetest.get_meta( pos ); + local owner = meta:get_string('owner'); + + if( not( meta ) or not( owner) or owner=='') then + minetest.chat_send_player(name, "This "..description.." has not been configured yet. Please set it up first to claim it. Afterwards you can remove it because you are then the owner."); + return false; + + elseif( owner ~= name ) then + minetest.chat_send_player(name, "This "..description.." belongs to "..tostring( meta:get_string('owner'))..". You can't remove it."); + return false; + end + return true; +end + + + + + +if( travelnet.travelnet_effect_enabled ) then + minetest.register_entity( 'travelnet:effect', { + + hp_max = 1, + physical = false, + weight = 5, + collisionbox = {-0.4,-0.5,-0.4, 0.4,1.5,0.4}, + visual = "upright_sprite", + visual_size = {x=1, y=2}, +-- mesh = "model", + textures = { "travelnet_flash.png" }, -- number of required textures depends on visual +-- colors = {}, -- number of required colors depends on visual + spritediv = {x=1, y=1}, + initial_sprite_basepos = {x=0, y=0}, + is_visible = true, + makes_footstep_sound = false, + automatic_rotate = true, + + anz_rotations = 0, + + on_step = function( self, dtime ) + -- this is supposed to be more flickering than smooth animation + self.object:setyaw( self.object:getyaw()+1); + self.anz_rotations = self.anz_rotations + 1; + -- eventually self-destruct + if( self.anz_rotations > 15 ) then + self.object:remove(); + end + end + }) +end + + +if( travelnet.travelnet_enabled ) then + dofile(minetest.get_modpath("travelnet").."/travelnet.lua"); -- the travelnet node definition +end +if( travelnet.elevator_enabled ) then + dofile(minetest.get_modpath("travelnet").."/elevator.lua"); -- allows up/down transfers only +end +if( travelnet.doors_enabled ) then + dofile(minetest.get_modpath("travelnet").."/doors.lua"); -- doors that open and close automaticly when the travelnet or elevator is used +end + +if( travelnet.abm_enabled ) then + dofile(minetest.get_modpath("travelnet").."/restore_network_via_abm.lua"); -- restore travelnet data when players pass by broken networks +end + +-- upon server start, read the savefile +travelnet.restore_data(); + diff --git a/mods/travelnet/models/travelnet.obj b/mods/travelnet/models/travelnet.obj new file mode 100644 index 0000000..50e5afd --- /dev/null +++ b/mods/travelnet/models/travelnet.obj @@ -0,0 +1,63 @@ +# Blender v2.73 (sub 0) OBJ File: 'travelnet.blend' +# www.blender.org +o Cylinder +v -0.499016 -0.499034 0.499022 +v -0.499016 -0.499034 -0.498989 +v 0.499035 -0.499034 -0.498989 +v 0.499035 -0.499034 0.499022 +v -0.499016 1.498990 0.499022 +v -0.499016 1.498990 -0.498989 +v 0.499035 1.498990 -0.498989 +v 0.499035 1.498990 0.499022 +v 0.437500 -0.437500 0.437500 +v -0.499016 1.437500 -0.498989 +v 0.499035 1.437500 -0.498989 +v -0.437500 -0.437500 0.437500 +v 0.437500 1.437500 0.437500 +v -0.499016 -0.437500 -0.498989 +v 0.499035 -0.437500 -0.498989 +v -0.437500 1.437500 0.437500 +v -0.437500 -0.437500 -0.498989 +v 0.437500 -0.437500 -0.498989 +v -0.437500 1.437500 -0.498989 +v 0.437500 1.437500 -0.498989 +vt 0.000000 0.968750 +vt 1.000000 0.968750 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.062500 0.031250 +vt 0.062500 0.968750 +vt 0.000000 0.031250 +vt 0.937500 0.031250 +vt 1.000000 0.031250 +vt 0.937500 0.968750 +vt 1.000000 -0.000000 +vt 0.000000 -0.000000 +vt 0.062500 -0.000000 +vt 0.937500 -0.000000 +vt 0.937500 0.937500 +vt 0.062500 0.937500 +vt 0.062500 1.000000 +vt 0.062500 0.062500 +vt 0.937500 0.062500 +vt 0.937500 1.000000 +g Cylinder_Cylinder_front +s off +f 11/1 10/2 6/3 7/4 +f 18/5 20/6 11/1 15/7 +f 17/8 14/9 10/2 19/10 +f 13/6 9/5 12/8 16/10 +f 2/11 14/9 15/7 3/12 +g Cylinder_Cylinder_back +f 8/4 5/3 1/11 4/12 +g Cylinder_Cylinder_sides +f 18/7 9/8 13/10 20/1 +f 17/7 19/1 16/10 12/8 +f 8/3 4/11 3/12 7/4 +f 6/4 2/12 1/11 5/3 +g Cylinder_Cylinder_top +f 5/12 8/11 7/3 6/4 +f 19/13 20/14 13/15 16/16 +g Cylinder_Cylinder_bottom +f 17/17 12/18 9/19 18/20 +f 2/12 3/11 4/3 1/4 diff --git a/mods/travelnet/models/travelnet_elevator.obj b/mods/travelnet/models/travelnet_elevator.obj new file mode 100644 index 0000000..cc006e2 --- /dev/null +++ b/mods/travelnet/models/travelnet_elevator.obj @@ -0,0 +1,64 @@ +# Blender v2.73 (sub 0) OBJ File: 'travelnet_elevator.blend' +# www.blender.org +o Cylinder +v -0.499016 -0.499034 0.499022 +v -0.499016 -0.499034 -0.498989 +v 0.499035 -0.499034 -0.498989 +v 0.499035 -0.499034 0.499022 +v -0.499016 1.498990 0.499022 +v -0.499016 1.498990 -0.498989 +v 0.499035 1.498990 -0.498989 +v 0.499035 1.498990 0.499022 +v 0.437500 -0.437500 0.437500 +v -0.499016 1.437500 -0.498989 +v 0.499035 1.437500 -0.498989 +v -0.437500 -0.437500 0.437500 +v 0.437500 1.437500 0.437500 +v -0.499016 -0.437500 -0.498989 +v 0.499035 -0.437500 -0.498989 +v -0.437500 1.437500 0.437500 +v -0.437500 -0.437500 -0.498989 +v 0.437500 -0.437500 -0.498989 +v -0.437500 1.437500 -0.498989 +v 0.437500 1.437500 -0.498989 +vt 0.000000 0.968750 +vt 1.000000 0.968750 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.062500 0.031250 +vt 0.062500 0.968750 +vt 0.000000 0.031250 +vt 0.937500 0.031250 +vt 1.000000 0.031250 +vt 0.937500 0.968750 +vt 1.000000 -0.000000 +vt 0.000000 -0.000000 +vt 0.062500 -0.000000 +vt 0.937500 -0.000000 +vt 0.937500 0.937500 +vt 0.062500 0.937500 +vt 0.062500 1.000000 +vt 0.062500 0.062500 +vt 0.937500 0.062500 +vt 0.937500 1.000000 +g Cylinder_Cylinder_front +s off +f 11/1 10/2 6/3 7/4 +f 18/5 20/6 11/1 15/7 +f 17/8 14/9 10/2 19/10 +f 13/6 9/5 12/8 16/10 +f 2/11 14/9 15/7 3/12 +f 17/7 19/1 16/10 12/8 +g Cylinder_Cylinder_controls +f 18/7 9/8 13/10 20/1 +g Cylinder_Cylinder_outside +f 8/3 4/11 3/12 7/4 +f 6/4 2/12 1/11 5/3 +f 8/4 5/3 1/11 4/12 +g Cylinder_Cylinder_ceiling +f 19/13 20/14 13/15 16/16 +g Cylinder_Cylinder_floor +f 17/17 12/18 9/19 18/20 +g Cylinder_Cylinder_top-bottom +f 5/12 8/11 7/3 6/4 +f 2/12 3/11 4/3 1/4 diff --git a/mods/travelnet/restore_network_via_abm.lua b/mods/travelnet/restore_network_via_abm.lua new file mode 100644 index 0000000..3bd1dda --- /dev/null +++ b/mods/travelnet/restore_network_via_abm.lua @@ -0,0 +1,24 @@ + +minetest.register_abm({ + nodenames = {"travelnet:travelnet"}, + interval = 20, + chance = 1, + action = function(pos, node) + local meta = minetest.get_meta( pos ); + + local owner_name = meta:get_string( "owner" ); + local station_name = meta:get_string( "station_name" ); + local station_network = meta:get_string( "station_network" ); + + if( owner_name and station_name and station_network + and ( not( travelnet.targets ) + or not( travelnet.targets[ owner_name ] ) + or not( travelnet.targets[ owner_name ][ station_network ] ) + or not( travelnet.targets[ owner_name ][ station_network ][ station_name ] ))) then + + travelnet.add_target( station_name, station_network, pos, owner_name, meta, owner_name ); + print( 'TRAVELNET: re-adding '..tostring( station_name )..' to '..tostring( station_network )..' owned by '..tostring( owner_name )); + end + end +}) + diff --git a/mods/travelnet/textures/travelnet_elevator_door_glass.png b/mods/travelnet/textures/travelnet_elevator_door_glass.png new file mode 100644 index 0000000..ae775c4 Binary files /dev/null and b/mods/travelnet/textures/travelnet_elevator_door_glass.png differ diff --git a/mods/travelnet/textures/travelnet_elevator_front.png b/mods/travelnet/textures/travelnet_elevator_front.png new file mode 100644 index 0000000..60ec49e Binary files /dev/null and b/mods/travelnet/textures/travelnet_elevator_front.png differ diff --git a/mods/travelnet/textures/travelnet_elevator_inside_ceiling.png b/mods/travelnet/textures/travelnet_elevator_inside_ceiling.png new file mode 100644 index 0000000..f35dd07 Binary files /dev/null and b/mods/travelnet/textures/travelnet_elevator_inside_ceiling.png differ diff --git a/mods/travelnet/textures/travelnet_elevator_inside_controls.png b/mods/travelnet/textures/travelnet_elevator_inside_controls.png new file mode 100644 index 0000000..725c39b Binary files /dev/null and b/mods/travelnet/textures/travelnet_elevator_inside_controls.png differ diff --git a/mods/travelnet/textures/travelnet_elevator_inside_floor.png b/mods/travelnet/textures/travelnet_elevator_inside_floor.png new file mode 100644 index 0000000..7874bac Binary files /dev/null and b/mods/travelnet/textures/travelnet_elevator_inside_floor.png differ diff --git a/mods/travelnet/textures/travelnet_elevator_inv.png b/mods/travelnet/textures/travelnet_elevator_inv.png new file mode 100644 index 0000000..a390d75 Binary files /dev/null and b/mods/travelnet/textures/travelnet_elevator_inv.png differ diff --git a/mods/travelnet/textures/travelnet_elevator_sides_outside.png b/mods/travelnet/textures/travelnet_elevator_sides_outside.png new file mode 100644 index 0000000..82c0a03 Binary files /dev/null and b/mods/travelnet/textures/travelnet_elevator_sides_outside.png differ diff --git a/mods/travelnet/textures/travelnet_flash.png b/mods/travelnet/textures/travelnet_flash.png new file mode 100644 index 0000000..47a6365 Binary files /dev/null and b/mods/travelnet/textures/travelnet_flash.png differ diff --git a/mods/travelnet/textures/travelnet_inv.png b/mods/travelnet/textures/travelnet_inv.png new file mode 100644 index 0000000..6f7df22 Binary files /dev/null and b/mods/travelnet/textures/travelnet_inv.png differ diff --git a/mods/travelnet/textures/travelnet_travelnet_back.png b/mods/travelnet/textures/travelnet_travelnet_back.png new file mode 100644 index 0000000..f08c9eb Binary files /dev/null and b/mods/travelnet/textures/travelnet_travelnet_back.png differ diff --git a/mods/travelnet/textures/travelnet_travelnet_front.png b/mods/travelnet/textures/travelnet_travelnet_front.png new file mode 100644 index 0000000..2b0c3a2 Binary files /dev/null and b/mods/travelnet/textures/travelnet_travelnet_front.png differ diff --git a/mods/travelnet/textures/travelnet_travelnet_side.png b/mods/travelnet/textures/travelnet_travelnet_side.png new file mode 100644 index 0000000..bd6092e Binary files /dev/null and b/mods/travelnet/textures/travelnet_travelnet_side.png differ diff --git a/mods/travelnet/travelnet.lua b/mods/travelnet/travelnet.lua new file mode 100644 index 0000000..5d6f284 --- /dev/null +++ b/mods/travelnet/travelnet.lua @@ -0,0 +1,99 @@ +-- contains the node definition for a general travelnet that can be used by anyone +-- further travelnets can only be installed by the owner or by people with the travelnet_attach priv +-- digging of such a travelnet is limited to the owner and to people with the travelnet_remove priv (useful for admins to clean up) +-- (this can be overrided in config.lua) +-- Autor: Sokomine +minetest.register_node("travelnet:travelnet", { + + description = "Travelnet box", + + drawtype = "mesh", + mesh = "travelnet.obj", + sunlight_propagates = true, + paramtype = 'light', + paramtype2 = "facedir", + wield_scale = {x=0.6, y=0.6, z=0.6}, + selection_box = { + type = "fixed", + fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 } + }, + + collision_box = { + type = "fixed", + fixed = { + + { 0.45, -0.5,-0.5, 0.5, 1.45, 0.5}, + {-0.5 , -0.5, 0.45, 0.45, 1.45, 0.5}, + {-0.5, -0.5,-0.5 ,-0.45, 1.45, 0.5}, + + --groundplate to stand on + { -0.5,-0.5,-0.5,0.5,-0.45, 0.5}, + --roof + { -0.5, 1.45,-0.5,0.5, 1.5, 0.5}, + + -- control panel + -- { -0.2, 0.6, 0.3, 0.2, 1.1, 0.5}, + + }, + }, + + tiles = { + "travelnet_travelnet_front.png", -- backward view + "travelnet_travelnet_back.png", -- front view + "travelnet_travelnet_side.png", -- sides :) + "default_steel_block.png", -- view from top + "default_clay.png", -- view from bottom + }, + inventory_image = "travelnet_inv.png", + + groups = {cracky=1,choppy=1,snappy=1}, + + light_source = 10, + + after_place_node = function(pos, placer, itemstack) + local meta = minetest.get_meta(pos); + meta:set_string("infotext", "Travelnet-box (unconfigured)"); + meta:set_string("station_name", ""); + meta:set_string("station_network",""); + meta:set_string("owner", placer:get_player_name() ); + -- request initinal data + meta:set_string("formspec", + "size[12,10]".. + "field[0.3,5.6;6,0.7;station_name;Name of this station:;]".. + "field[0.3,6.6;6,0.7;station_network;Assign to Network:;]".. + "field[0.3,7.6;6,0.7;owner_name;(optional) owned by:;]".. + "button_exit[6.3,6.2;1.7,0.7;station_set;Store]" ); + end, + + on_receive_fields = travelnet.on_receive_fields, + on_punch = function(pos, node, puncher) + travelnet.update_formspec(pos, puncher:get_player_name()) + end, + + can_dig = function( pos, player ) + return travelnet.can_dig( pos, player, 'travelnet box' ) + end, + + after_dig_node = function(pos, oldnode, oldmetadata, digger) + travelnet.remove_box( pos, oldnode, oldmetadata, digger ) + end, + + -- taken from VanessaEs homedecor fridge + 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 the travelnet box!' ) + return; + end + return minetest.item_place(itemstack, placer, pointed_thing); + end, + +}) + +--[ +minetest.register_craft({ + output = "travelnet:travelnet", + recipe = travelnet.travelnet_recipe, +}) diff --git a/mods/tutorial/README.txt b/mods/tutorial/README.txt new file mode 100644 index 0000000..1586f9f --- /dev/null +++ b/mods/tutorial/README.txt @@ -0,0 +1,10 @@ +Copyright by 1248 +Textures by 1248 +Code by 1248 +Ideas by 1248 & other + +atom.lua: +Copyright by 1248 +Textures by et77 +Code by 1248 +Ideas by et77 \ No newline at end of file diff --git a/mods/tutorial/basic/abm.lua b/mods/tutorial/basic/abm.lua new file mode 100644 index 0000000..494361c --- /dev/null +++ b/mods/tutorial/basic/abm.lua @@ -0,0 +1,271 @@ +--v.2.0.0 +--v.1.13.0 +--v.1.12.0 +--v.1.11.1 +--v.1.11.0 +--v.1.10.0 +--v.1.9.2 +--v.1.9.1 +--v.1.9.0 +--v.1.8.0 +--v.1.7.5 +--v.1.7.4 +--v.1.7.3 +--v.1.7.2 +--v.1.7.1 +--v.1.7.0 +--v.1.6.0 +--v.1.5.0 +--v.1.4.4 +--v.1.4.3 +--v.1.4.2 +--v.1.4.1 +--v.1.4.0 +--v.1.3.3 +--v.1.3.2 +--v.1.3.1 +--v.1.3.0 +--v.1.2.4 +--v.1.2.3 +--v.1.2.2 +--v.1.2.1 +--v.1.2.0 +--v.1.1.5 +--v.1.1.4 +--v.1.1.3 +--v.1.1.2 +--v.1.1.1 +--v.1.1.0 +--v.1.0.10 +--v.1.0.9 +--v.1.0.8 +--v.1.0.7 +--v.1.0.6 +--v.1.0.5 +--v.1.0.4 +--v.1.0.3 +--v.1.0.2 +--v.1.0.1 +--v.1.0.0 +--v.0.23.3 +--v.0.23.2 +--v.0.23.1 +--v.0.23.0 +--v.0.22.1 +--v.0.22.0 +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool1"}, + interval = 5, + chance = 6, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:blue_wool_titan30"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool1"}, + interval = 5, + chance = 6, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:orange_wool_titan30"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool1"}, + interval = 5, + chance = 6, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:red_wool_titan30"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool1"}, + interval = 5, + chance = 6, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:violet_wool_titan30"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool1"}, + interval = 5, + chance = 6, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:white_wool_titan30"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool1"}, + interval = 5, + chance = 6, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:yellow_wool_titan30"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:yellow_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:white_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:violet_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:red_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:pink_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:orange_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:magenta_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:grey_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:green_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:dark_grey_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:dark_green_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:cyan_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:brown_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:blue_wool_titan50"}) + end, +}) +minetest.register_abm({ + nodenames = {"tutorial:geschenk_wool2"}, + interval = 5, + chance = 15, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:black_wool_titan50"}) + end, +}) +--v.0.21.0 +--v.0.20.0 +--v.0.19.1 +--v.0.18.0 +--v.0.17.0 +--v.0.16.0 +--v.0.15.0 +--v.0.14.0 +--v.0.13.0 +--v.0.12.0 +--v.0.11.0 +--v.0.10.1 +--v.0.10.0 +--v.0.9.0 +--v.0.8.0 +--v.0.7.2 +--v.0.7.1 +--v.0.7.0 +--v.0.6.6 +--v.0.6.5 +--v.0.6.4 +--v.0.6.3 +--v.0.6.2 +minetest.register_abm({ + nodenames = {"tutorial:thunder"}, + interval = 3.0, + chance = 2, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.env:remove_node(pos) + end, +}) +--v.0.6.1 +--v.0.6.0 +--v.0.5.2 +--v.0.5.1 +--v.0.5.0 +--v.0.4.0 +--v.0.3.0 +--v.0.2.0 +--v.0.1.0 +minetest.register_abm({ + nodenames = {"tutorial:stampfi_ei"}, + interval = 2, + chance = 4, + action = function(pos) + minetest.env:add_node(pos, {name="tutorial:stampfi"}) + end, +}) \ No newline at end of file diff --git a/mods/tutorial/basic/chatcommand.lua b/mods/tutorial/basic/chatcommand.lua new file mode 100644 index 0000000..b4f3bab --- /dev/null +++ b/mods/tutorial/basic/chatcommand.lua @@ -0,0 +1,590 @@ +--v.2.0.0 +--v.1.13.0 +--v.1.12.0 +--v.1.11.1 +--v.1.11.0 +--v.1.10.0 +--v.1.9.2 +--v.1.9.1 +--v.1.9.0 +--v.1.8.0 +--v.1.7.5 +--v.1.7.4 +--v.1.7.3 +--v.1.7.2 +--v.1.7.1 +--v.1.7.0 +--v.1.6.0 +minetest.register_chatcommand("regnum", { + params = "", + description = "Gives you all regnum things", + privs = {give=true}, + func = function(name, param) + local player = minetest.get_player_by_name(name) + local inv = player:get_inventory() + awards.give_achievement(name, "award_ruby_bronze") + awards.give_achievement(name, "award_ruby_silber") + awards.give_achievement(name, "award_ruby_gold") + awards.give_achievement(name, "award_ruby_platin") + awards.give_achievement(name, "award_sapphire_bronze") + awards.give_achievement(name, "award_sapphire_silber") + awards.give_achievement(name, "award_sapphire_gold") + awards.give_achievement(name, "award_sapphire_platin") + awards.give_achievement(name, "award_amethyst_bronze") + awards.give_achievement(name, "award_amethyst_silber") + awards.give_achievement(name, "award_amethyst_Gold") + awards.give_achievement(name, "award_amethyst_platin") + awards.give_achievement(name, "award_shadow_bronze") + awards.give_achievement(name, "award_shadow_silber") + awards.give_achievement(name, "award_shadow_gold") + awards.give_achievement(name, "award_shadow_platin") + awards.give_achievement(name, "award_pearl_bronze") + awards.give_achievement(name, "award_pearl_silber") + awards.give_achievement(name, "award_pearl_gold") + awards.give_achievement(name, "award_pearl_platin") + awards.give_achievement(name, "award_emerald_bronze") + awards.give_achievement(name, "award_emerald_silber") + awards.give_achievement(name, "award_emerald_gold") + awards.give_achievement(name, "award_emerald_platin") + awards.give_achievement(name, "award_admin_ore_bronze") + awards.give_achievement(name, "award_admin_ore_silber") + awards.give_achievement(name, "award_admin_ore_gold") + awards.give_achievement(name, "award_admin_ore_platin") + awards.give_achievement(name, "award_titan_ore_bronze") + awards.give_achievement(name, "award_titan_ore_silber") + awards.give_achievement(name, "award_titan_ore_gold") + awards.give_achievement(name, "award_titan_ore_platin") + awards.give_achievement(name, "award_regnum_ore_bronze") + awards.give_achievement(name, "award_regnum_ore_silber") + awards.give_achievement(name, "award_regnum_ore_gold") + awards.give_achievement(name, "award_regnum_ore_platin") + awards.give_achievement(name, "award_???_bronze") + awards.give_achievement(name, "award_???_silber") + awards.give_achievement(name, "award_???_gold") + awards.give_achievement(name, "award_???_platin") + inv:set_size("rew", 1) + inv:set_size("rewb", 1) + inv:set_size("b", 1) + inv:set_size("feld2", 1) + inv:set_size("feld", 1) + inv:set_size("feld3", 1) + inv:set_size("feld4", 1) + inv:set_size("feld5", 1) + inv:set_size("feld6", 1) + inv:set_size("feld7", 1) + inv:set_size("feld8", 1) + inv:set_size("gem", 5) + inv:set_size("2gem", 5) + inv:set_size("armor", 5) + inv:set_size("skinskey", 1) + inv:set_size("skinskey2", 1) + inv:set_size("cookkey", 1) + inv:set_size("krit", 1) + inv:set_size("artrew", 1) + inv:set_size("medrew", 1) + inv:set_size("trerew", 1) + inv:set_size("trorew", 1) + inv:set_size("dragon", 1) + inv:set_size("tortoise", 1) + inv:set_size("fox", 1) + inv:set_size("xpi1", 100) + inv:set_size("xpi2", 20) + inv:set_size("xpi3", 20) + inv:set_size("xpi4", 100) + inv:set_size("xpi5", 100) + inv:set_size("xpi6", 25) + inv:set_size("pixkey", 1) + inv:set_size("trophcr", 1) + inv:set_size("tearred", 1) + inv:set_size("tearblue", 1) + inv:set_size("teargreen", 1) + inv:set_size("tearpurple", 1) + inv:set_size("tearyellow", 1) + inv:set_size("tearcyan", 1) + inv:add_item("artrew", "default:dirt") + inv:add_item("medrew", "default:dirt") + inv:add_item("trerew", "default:dirt") + inv:add_item("trorew", "default:dirt") + inv:add_item("dragon", "tutorial:dragon_crystal") + inv:add_item("tortoise", "tutorial:dragon_crystal") + inv:add_item("main", "tutorial:regnumbattleaxe1") + inv:add_item("main", "tutorial:regnumgun1") + inv:add_item("main", "tutorial:wallplacer5_1") + inv:add_item("main", "tutorial:legendstick9") + inv:add_item("main", "technic:laser_mkS150") + inv:add_item("main", "technic:drill_mkS150") + inv:add_item("main", "tutorial:colorstick_empty") + inv:add_item("gem", "tutorial:magic_gem1") + inv:add_item("gem", "tutorial:magic_gem2") + inv:add_item("gem", "tutorial:magic_gem3") + inv:add_item("gem", "tutorial:magic_gem4") + inv:add_item("gem", "tutorial:magic_gem5") + inv:add_item("2gem", "tutorial:magic_gem1") + inv:add_item("2gem", "tutorial:magic_gem2") + inv:add_item("2gem", "tutorial:magic_gem3") + inv:add_item("2gem", "tutorial:magic_gem4") + inv:add_item("2gem", "tutorial:magic_gem5") + inv:set_stack("tearred", 1, "tutorial:medallion 100") + inv:set_stack("tearblue", 1, "tutorial:medallion 100") + inv:set_stack("teargreen", 1, "tutorial:medallion 100") + inv:set_stack("tearyellow", 1, "tutorial:medallion 100") + inv:set_stack("tearcyan", 1, "tutorial:medallion 100") + inv:set_stack("tearpurple", 1, "tutorial:medallion 100") + inv:set_stack("armor", 1, "3d_armor:regnumhelmet") + inv:set_stack("armor", 2, "3d_armor:regnumchestplate") + inv:set_stack("armor", 3, "3d_armor:regnumleggings") + inv:set_stack("armor", 4, "3d_armor:regnumboots") + inv:set_stack("armor", 5, "shields:regnumshield") + inv:set_stack("arm2", 1, "tutorial:protection_schluessel3") + inv:add_item("main", "tutorial:levelMAX_rot") + inv:add_item("main", "tutorial:levelMAX_blau") + inv:add_item("main", "tutorial:levelMAX_grau") + inv:add_item("main", "tutorial:levelMAX_gelb") + inv:add_item("main", "tutorial:levelMAX_cyan") + inv:set_stack("fox", 1, "default:dirt 80") + inv:add_item("main", "tutorial:levelMAX") + inv:add_item("b", "tutorial:bag_schluessel4") + inv:add_item("arm", "tutorial:armor_key") + inv:add_item("feld2", "tutorial:level_schluessel") + inv:add_item("feld", "tutorial:craft_schluessel7") + inv:add_item("feld3", "tutorial:legenden_schluessel") + inv:add_item("feld4", "tutorial:regnum_key") + inv:add_item("feld5", "tutorial:dragon_schluessel") + inv:add_item("feld6", "tutorial:fox_schluessel") + inv:add_item("feld7", "tutorial:tortoise_schluessel") + inv:add_item("feld8", "tutorial:golden_schluessel") + inv:add_item("skinskey", "tutorial:regnum_key_pixeled") + inv:add_item("pixkey", "tutorial:regnum_key_pixeled") + inv:add_item("skinskey2", "tutorial:knight_schluessel") + inv:add_item("cookkey", "tutorial:cooking_schluessel4") + inv:add_item("krit", "tutorial:crystal_schluessel") + inv:add_item("main", "mobs:knight_1248_egg") + inv:add_item("rew", "default:dirt") + inv:add_item("rewb", "default:dirt") + minetest.chat_send_all(player:get_player_name().." has 25 Regnum things and is able to spawn a 1248 Knight") + minetest.chat_send_all(player:get_player_name().." has 50 Regnum things and is able to repair the color stick") + for i=1,8 do + inv:set_size("bag"..i, 1) + inv:set_size("kri", 8) + inv:set_stack("bag"..i,1, "bags:trolley_admin") + inv:set_stack("kri",i,"tutorial:legenden_kristall_"..i) + end + for i=1,20 do + inv:set_stack("xpi2",i,"tutorial:level"..i.."_rot") + inv:set_stack("xpi3",i,"tutorial:level"..i.."_blau") + end + for i=1,25 do + inv:set_stack("xpi6",i,"tutorial:level"..i.."_cyan") + end + for i=1,100 do + inv:set_stack("xpi1",i,"tutorial:level"..i) + inv:set_stack("xpi4",i,"tutorial:level"..i.."_grau") + inv:set_stack("xpi5",i,"tutorial:level"..i.."_gelb") + end + inv:set_size("medallionred", 9) + inv:set_size("medallionblue", 9) + inv:set_size("medalliongreen", 9) + inv:set_size("medallionyellow", 9) + inv:set_size("medallionpurple", 9) + inv:set_size("medallioncyan", 9) + inv:set_size("medalliongray", 9) + for i=1,9 do + inv:set_stack("medallionred",i,"default:dirt") + inv:set_stack("medallionblue",i,"default:dirt") + inv:set_stack("medalliongreen",i,"default:dirt") + inv:set_stack("medallionyellow",i,"default:dirt") + inv:set_stack("medallionpurple",i,"default:dirt") + inv:set_stack("medallioncyan",i,"default:dirt") + inv:set_stack("medalliongray",i,"default:dirt") + end + local player_inv = player:get_inventory() + 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) + if listname == "armor" then + if index == 1 and stack:get_definition().groups.armor_head then + return 1 + elseif index == 2 and stack:get_definition().groups.armor_torso then + return 1 + elseif index == 3 and stack:get_definition().groups.armor_legs then + return 1 + elseif index == 4 and stack:get_definition().groups.armor_feet then + return 1 + elseif index == 5 and stack:get_definition().groups.armor_shield then + return 1 + else + return 0 + end + else + return 1 + end + + 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) + if listname == "armor" then + if index == 1 and stack:get_definition().groups.armor_head then + return 1 + elseif index == 2 and stack:get_definition().groups.armor_torso then + return 1 + elseif index == 3 and stack:get_definition().groups.armor_legs then + return 1 + elseif index == 4 and stack:get_definition().groups.armor_feet then + return 1 + elseif index == 5 and stack:get_definition().groups.armor_shield then + return 1 + else + return 0 + end + else + return 1 + end + end, + }) + armor_inv:set_size("armor", 5) + armor_inv:set_size("arm2", 1) + player_inv:set_size("arm", 1) + player_inv:set_size("arm2", 1) + player_inv:set_size("armor", 5) + + local stack = player_inv:get_stack("arm2", 1) + armor_inv:set_stack("arm2", 1, stack) + for i=1, 5 do + local stack = player_inv:get_stack("armor", i) + armor_inv:set_stack("armor", i, stack) + end + 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")==true 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,8 do + local bag = "bag"..i + player_inv:set_size(bag, 1) + bags_inv:set_size(bag, 1) + player:get_inventory():set_size("bag"..i.."contents", player_inv:get_stack("bag"..i, 1):get_definition().groups.bagslots) + bags_inv:set_stack(bag,1,player_inv:get_stack(bag,1)) + end + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience", "w") + file:write("11950") + file:close() + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_blau", "w") + file:write("250") + file:close() + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_rot", "w") + file:write("250") + file:close() + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_grau", "w") + file:write("3200") + file:close() + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_gelb", "w") + file:write("600") + file:close() + file = io.open(minetest.get_worldpath().."/"..player:get_player_name().."_experience_cyan", "w") + file:write("900") + file:close() + player_inv:set_size("catdna", 1) + player_inv:set_size("dogdna", 1) + player_inv:set_size("sheepdna", 1) + player_inv:set_size("dragondna", 1) + player_inv:set_size("foxdna", 1) + player_inv:set_size("tortoisedna", 1) + player_inv:add_item("catdna","default:dirt 21") + player_inv:add_item("main","mobs:cat_egg") + player_inv:add_item("dogdna","default:dirt 21") + player_inv:add_item("main","mobs:dog_egg") + player_inv:add_item("sheepdna","default:dirt 21") + player_inv:add_item("main","mobs:sheep_egg") + player_inv:add_item("dragondna","default:dirt 26") + player_inv:add_item("main","mobs:dragon_egg") + player_inv:add_item("foxdna","default:dirt 26") + player_inv:add_item("main","mobs:fox_egg") + player_inv:add_item("tortoisedna","default:dirt 51") + player_inv:add_item("main","mobs:tortoise_egg") + player_inv:set_size("art1", 5) + player_inv:set_size("art2", 5) + player_inv:set_size("art3", 5) + player_inv:set_size("art4", 5) + player_inv:set_size("art5", 5) + player_inv:set_size("art6", 5) + player_inv:set_size("art7", 5) + player_inv:set_size("art8", 5) + player_inv:set_size("art9", 5) + player_inv:set_size("art10", 5) + player_inv:set_size("art11", 5) + player_inv:set_size("art12", 5) + player_inv:set_size("art13", 11) + player_inv:set_size("r1248", 6) + for j=1,12,1 do + for i=1,5,1 do + player_inv:set_stack("art"..j, i, "default:dirt") + end + end + for i=1,11,1 do + player_inv:set_stack("art13", i, "default:dirt") + end + for i=1,6,1 do + player_inv:set_stack("r1248", i, "default:dirt") + end + player_inv:set_size("a1", 1) + player_inv:set_size("a2", 1) + player_inv:set_size("a3", 1) + player_inv:set_size("a4", 1) + player_inv:set_size("a5", 1) + player_inv:set_size("a6", 1) + player_inv:set_size("a7", 1) + player_inv:set_size("a8", 1) + player_inv:set_size("a9", 1) + player_inv:set_size("a10", 1) + player_inv:set_size("a11", 1) + player_inv:set_size("a12", 1) + player_inv:set_size("a13", 1) + player_inv:set_size("a14", 1) + player_inv:set_size("a15", 1) + player_inv:set_size("a16", 1) + player_inv:set_size("a17", 1) + player_inv:set_size("a18", 1) + player_inv:set_size("a19", 1) + player_inv:set_size("a20", 1) + player_inv:set_size("a21", 1) + player_inv:set_size("a22", 1) + player_inv:set_size("a23", 1) + player_inv:set_size("a24", 1) + player_inv:set_size("a25", 1) + player_inv:set_size("a26", 1) + player_inv:set_size("a27", 1) + player_inv:set_size("a28", 1) + player_inv:set_size("a29", 1) + player_inv:set_size("a30", 1) + player_inv:set_size("a31", 1) + player_inv:set_size("a32", 1) + player_inv:set_size("a33", 1) + player_inv:set_size("a34", 1) + player_inv:set_size("a35", 1) + player_inv:set_size("a36", 1) + player_inv:set_size("a37", 1) + player_inv:set_size("a38", 1) + player_inv:set_size("a39", 1) + player_inv:set_size("a40", 1) + player_inv:set_size("a41", 1) + player_inv:set_size("a42", 1) + player_inv:set_size("a43", 1) + player_inv:set_size("a44", 1) + player_inv:set_size("a45", 1) + player_inv:set_size("a46", 1) + player_inv:set_size("a47", 1) + player_inv:set_size("a48", 1) + player_inv:set_size("a49", 1) + player_inv:set_size("a50", 1) + player_inv:set_stack("a1", 1, "default:dirt") + player_inv:set_stack("a2", 1, "default:dirt") + player_inv:set_stack("a3", 1, "default:dirt") + player_inv:set_stack("a4", 1, "default:dirt") + player_inv:set_stack("a5", 1, "default:dirt") + player_inv:set_stack("a6", 1, "default:dirt") + player_inv:set_stack("a7", 1, "default:dirt") + player_inv:set_stack("a8", 1, "default:dirt") + player_inv:set_stack("a9", 1, "default:dirt") + player_inv:set_stack("a10", 1, "default:dirt") + player_inv:set_stack("a11", 1, "default:dirt") + player_inv:set_stack("a12", 1, "default:dirt") + player_inv:set_stack("a13", 1, "default:dirt") + player_inv:set_stack("a14", 1, "default:dirt") + player_inv:set_stack("a15", 1, "default:dirt") + player_inv:set_stack("a16", 1, "default:dirt") + player_inv:set_stack("a17", 1, "default:dirt") + player_inv:set_stack("a18", 1, "default:dirt") + player_inv:set_stack("a19", 1, "default:dirt") + player_inv:set_stack("a20", 1, "default:dirt") + player_inv:set_stack("a21", 1, "default:dirt") + player_inv:set_stack("a22", 1, "default:dirt") + player_inv:set_stack("a23", 1, "default:dirt") + player_inv:set_stack("a24", 1, "default:dirt") + player_inv:set_stack("a25", 1, "default:dirt") + player_inv:set_stack("a26", 1, "default:dirt") + player_inv:set_stack("a27", 1, "default:dirt") + player_inv:set_stack("a28", 1, "default:dirt") + player_inv:set_stack("a29", 1, "default:dirt") + player_inv:set_stack("a30", 1, "default:dirt") + player_inv:set_stack("a31", 1, "default:dirt") + player_inv:set_stack("a32", 1, "default:dirt") + player_inv:set_stack("a33", 1, "default:dirt") + player_inv:set_stack("a34", 1, "default:dirt") + player_inv:set_stack("a35", 1, "default:dirt") + player_inv:set_stack("a36", 1, "default:dirt") + player_inv:set_stack("a37", 1, "default:dirt") + player_inv:set_stack("a38", 1, "default:dirt") + player_inv:set_stack("a39", 1, "default:dirt") + player_inv:set_stack("a40", 1, "default:dirt") + player_inv:set_stack("a41", 1, "default:dirt") + player_inv:set_stack("a42", 1, "default:dirt") + player_inv:set_stack("a43", 1, "default:dirt") + player_inv:set_stack("a44", 1, "default:dirt") + player_inv:set_stack("a45", 1, "default:dirt") + player_inv:set_stack("a46", 1, "default:dirt") + player_inv:set_stack("a47", 1, "default:dirt") + player_inv:set_stack("a48", 1, "default:dirt") + player_inv:set_stack("a49", 1, "default:dirt") + player_inv:set_stack("a50", 1, "default:dirt") + end, +}) +--v.1.5.0 +minetest.register_chatcommand("rank", { + params = "", + description = "Show your Rank", + privs = {}, + func = function(name, param) + pri = minetest.get_player_privs(name) + if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.sign_editor and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin then + minetest.chat_send_player(name, "Your Rank: Admin") + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then + minetest.chat_send_player(name, "Your Rank: Legend") + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then + minetest.chat_send_player(name, "Your Rank: Hero") + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then + minetest.chat_send_player(name, "Your Rank: VIP") + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then + minetest.chat_send_player(name, "Your Rank: Premium") + elseif pri.interact and pri.shout then + minetest.chat_send_player(name, "Your Rank: Member") + else + minetest.chat_send_player(name, "Your Rank: Enemy") + end + end, +}) +--v.1.4.4 +--v.1.4.3 +--v.1.4.2 +--v.1.4.1 +--v.1.4.0 +--v.1.3.3 +--v.1.3.2 +--v.1.3.1 +--v.1.3.0 +--v.1.2.4 +--v.1.2.3 +--v.1.2.2 +--v.1.2.1 +--v.1.2.0 +minetest.register_chatcommand("admin", { + params = "", + description = "Gives you all admin tools", + privs = {give=true}, + func = function(name, param) + local player = minetest.get_player_by_name(name) + local inv = player:get_inventory() + inv:add_item("main", "ban_hammer:hammer") --admin tool 1 + inv:add_item("main", "tutorial:pistole") --admin tool 2 + inv:add_item("main", "tutorial:adminbattleaxe") --admin tool 3 + inv:add_item("main", "technic:laser_mkA1") --admin tool 4 + inv:add_item("main", "technic:chainsaw") --admin tool 5 + inv:add_item("main", "tutorial:server_hammer") --admin tool 6 + inv:add_item("main", "tutorial:monster_remover") --admin tool 7 + inv:add_item("main", "technic:mining_drill_mkA1") --admin tool 8 + inv:add_item("main", "tutorial:adminwallplacer_1") --admin tool 9 + inv:add_item("main", "tutorial:legendstick_admin") --admin tool 10 + inv:add_item("main", "tutorial:gun_admin1") --admin tool 11 + inv:add_item("main", "3d_armor:helmet_admin") + inv:add_item("main", "3d_armor:chestplate_admin") + inv:add_item("main", "3d_armor:leggings_admin") + inv:add_item("main", "3d_armor:boots_admin") + inv:add_item("main", "shields:shield_admin") + end, +}) +--v.1.1.5 +--v.1.1.4 +--v.1.1.3 +--v.1.1.2 +--v.1.1.1 +--v.1.1.0 +--v.1.0.10 +--v.1.0.9 +--v.1.0.8 +--v.1.0.7 +--v.1.0.6 +--v.1.0.5 +--v.1.0.4 +--v.1.0.3 +--v.1.0.2 +--v.1.0.1 +--v.1.0.0 +--v.0.23.3 +--v.0.23.2 +--v.0.23.1 +--v.0.23.0 +--v.0.22.1 +--v.0.22.0 +--v.0.21.0 +--v.0.20.0 +--v.0.19.1 +--v.0.18.0 +--v.0.17.0 +--v.0.16.0 +--v.0.15.0 +--v.0.14.0 +--v.0.13.0 +--v.0.12.0 +--v.0.11.0 +--v.0.10.1 +--v.0.10.0 +--v.0.9.0 +--v.0.8.0 +--v.0.7.2 +--v.0.7.1 +--v.0.7.0 +--v.0.6.6 +--v.0.6.5 +--v.0.6.4 +--v.0.6.3 +--v.0.6.2 +--v.0.6.1 +--v.0.6.0 +--v.0.5.2 +--v.0.5.1 +--v.0.5.0 +--v.0.4.0 +--v.0.3.0 +--v.0.2.0 +--v.0.1.0 \ No newline at end of file diff --git a/mods/tutorial/basic/craft.lua b/mods/tutorial/basic/craft.lua new file mode 100644 index 0000000..8bc3da5 --- /dev/null +++ b/mods/tutorial/basic/craft.lua @@ -0,0 +1,2357 @@ +minetest.register_craft({ + output = 'tutorial:dragon_crystal', + recipe = { + {'gems:sapphire_gem', 'gems:amethyst_gem', 'gems:ruby_gem', 'gems:amethyst_gem', 'gems:sapphire_gem'}, + {'gems:amethyst_gem', 'gems:pearl_gem', 'gems:shadow_gem', 'gems:pearl_gem', 'gems:amethyst_gem'}, + {'gems:ruby_gem', 'gems:shadow_gem', 'gems:emerald_gem', 'gems:shadow_gem', 'gems:ruby_gem'}, + {'gems:amethyst_gem', 'gems:pearl_gem', 'gems:shadow_gem', 'gems:pearl_gem', 'gems:amethyst_gem'}, + {'gems:sapphire_gem', 'gems:amethyst_gem', 'gems:ruby_gem', 'gems:amethyst_gem', 'gems:sapphire_gem'}, + } +}) +minetest.register_craft({ + output = 'tutorial:lilabattleaxe', + recipe = { + {'tutorial:lila_erz3','tutorial:lila_erz3','tutorial:lila_erz3'}, + {'tutorial:lila_erz3','default:stick','tutorial:lila_erz3'}, + {'','default:stick',''}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_dna', + recipe = { + {'','tutorial:dna_string','tutorial:dna_string',''}, + {'tutorial:dna_string','tutorial:geschenk_gold','tutorial:geschenk_gold','tutorial:dna_string'}, + {'tutorial:dna_string','tutorial:geschenk_gold','tutorial:geschenk_gold','tutorial:dna_string'}, + {'','tutorial:dna_string','tutorial:dna_string',''}, + } +}) +minetest.register_craft({ + output = 'tutorial:armor_key', + recipe = { + {'tutorial:blau_erz'}, + {'default:stick'}, + {'tutorial:rot_erz'}, + } +}) +minetest.register_craft({ + output = 'tutorial:armor_key', + recipe = { + {'tutorial:rot_erz'}, + {'default:stick'}, + {'tutorial:blau_erz'}, + } +}) +minetest.register_craft({ + output = 'default:sign_wall', + recipe = { + {'default:sign_wall_wood','default:sign_wall_wood'}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnum_key_pixeled', + recipe = { + {'tutorial:regnum_pixeled'}, + {'default:stick'}, + {'default:stick'}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnum_key', + recipe = { + {'tutorial:regnum'}, + {'default:stick'}, + {'default:stick'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_regnum', + recipe = { + {'tutorial:geschenk_platin','tutorial:geschenk_death_platin','tutorial:geschenk_platin'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_legend', + recipe = { + {'','tutorial:geschenk_platin','tutorial:geschenk_platin',''}, + {'tutorial:geschenk_platin','tutorial:geschenk_death_platin','tutorial:geschenk_death_platin','tutorial:geschenk_platin'}, + {'tutorial:geschenk_platin','tutorial:geschenk_death_platin','tutorial:geschenk_death_platin','tutorial:geschenk_platin'}, + {'','tutorial:geschenk_platin','tutorial:geschenk_platin',''}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_death', + recipe = { + {'tutorial:geschenkpapier_death', 'tutorial:geschenkpapier_death'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_death_platin', + recipe = { + {'tutorial:geschenk_death_gold', 'tutorial:geschenk_death_gold'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_death_gold', + recipe = { + {'tutorial:geschenk_death_silber', 'tutorial:geschenk_death_silber'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_death_silber', + recipe = { + {'tutorial:geschenk_death', 'tutorial:geschenk_death'}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnum', + recipe = { + {'tutorial:regnum_part', 'tutorial:regnum_part', 'tutorial:regnum_part'}, + {'tutorial:regnum_part', 'tutorial:regnum_part', 'tutorial:regnum_part'}, + {'tutorial:regnum_part', 'tutorial:regnum_part', 'tutorial:regnum_part'}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnumbattleaxe1', + recipe = { + {'', '', 'tutorial:regnum', '', ''}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'tutorial:regnum', 'tutorial:bottleSS', 'tutorial:superlegendenbattleaxe1', 'tutorial:bottleSS', 'tutorial:regnum'}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'', '', 'tutorial:regnum', '', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnumbattleaxe2', + recipe = { + {'tutorial:regnumbattleaxe1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnumbattleaxe3', + recipe = { + {'tutorial:regnumbattleaxe2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superlegendenbattleaxe1', + recipe = { + {'tutorial:lilabattleaxe2', 'tutorial:legendenbattleaxe6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superlegendenbattleaxe2', + recipe = { + {'tutorial:superlegendenbattleaxe1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superlegendenbattleaxe3', + recipe = { + {'tutorial:superlegendenbattleaxe2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:lilabattleaxe2', + recipe = { + {'tutorial:lila_erz3', 'tutorial:lila_erz3', 'tutorial:lila_erz3'}, + {'tutorial:waterbattleaxe', 'tutorial:lilabattleaxe', 'tutorial:lavabattleaxe'}, + {'tutorial:lila_erz3', 'tutorial:lila_erz3', 'tutorial:lila_erz3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:lavabattleaxe', + recipe = { + {'tutorial:rot_erz', 'tutorial:rot_erz', 'tutorial:rot_erz'}, + {'tutorial:rot_erz', 'default:stick', 'tutorial:rot_erz'}, + {'', 'default:stick', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:waterbattleaxe', + recipe = { + {'tutorial:blau_erz', 'tutorial:blau_erz', 'tutorial:blau_erz'}, + {'tutorial:blau_erz', 'default:stick', 'tutorial:blau_erz'}, + {'', 'default:stick', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:lila_erz2', + recipe = { + {'tutorial:lila_erz1', 'tutorial:lila_erz1'}, + {'tutorial:lila_erz1', 'tutorial:lila_erz1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:lila_erz3', + recipe = { + {'tutorial:lila_erz2', 'tutorial:lila_erz2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:lila_erz1', + recipe = { + {'tutorial:blau_erz', 'tutorial:rot_erz'}, + } +}) +minetest.register_craft({ + output = 'tutorial:lila_erz1', + recipe = { + {'tutorial:rot_erz', 'tutorial:blau_erz'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendenbattleaxe1', + recipe = { + {'tutorial:titanbattleaxe10', 'default:grass_1', 'default:grass_1', 'tutorial:bottle5'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle5', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendenbattleaxe2', + recipe = { + {'tutorial:legendenbattleaxe1', 'default:grass_1', 'default:grass_1', 'tutorial:bottle7'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle7', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendenbattleaxe3', + recipe = { + {'tutorial:legendenbattleaxe2', 'default:grass_1', 'default:grass_1', 'tutorial:bottle9'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle9', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendenbattleaxe4', + recipe = { + {'tutorial:legendenbattleaxe3', 'default:grass_1', 'default:grass_1', 'tutorial:bottle11'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle11', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendenbattleaxe5', + recipe = { + {'tutorial:legendenbattleaxe4', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendenbattleaxe6', + recipe = { + {'tutorial:legendenbattleaxe5', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS3'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS3', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:craft_schluessel1', + recipe = { + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'default:stick', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'default:stick', 'tutorial:coin_lila'}, + } +}) +minetest.register_craft({ + output = 'tutorial:craft_schluessel2', + recipe = { + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:craft_schluessel1', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + } +}) +minetest.register_craft({ + output = 'tutorial:craft_schluessel3', + recipe = { + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:craft_schluessel2', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + } +}) +minetest.register_craft({ + output = 'tutorial:craft_schluessel4', + recipe = { + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:craft_schluessel3', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + } +}) +minetest.register_craft({ + output = 'tutorial:craft_schluessel5', + recipe = { + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:craft_schluessel4', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + } +}) +minetest.register_craft({ + output = 'tutorial:craft_schluessel6', + recipe = { + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:craft_schluessel5', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + } +}) +minetest.register_craft({ + output = 'tutorial:craft_schluessel7', + recipe = { + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:craft_schluessel6', 'tutorial:coin_lila'}, + {'tutorial:coin_lila', 'tutorial:coin_lila', 'tutorial:coin_lila'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bag_schluessel4', + recipe = { + {'tutorial:coin_grau20'}, + {'tutorial:bag_schluessel3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bag_schluessel3', + recipe = { + {'tutorial:coin_grau20'}, + {'tutorial:bag_schluessel2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bag_schluessel2', + recipe = { + {'tutorial:coin_grau20'}, + {'tutorial:bag_schluessel1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bag_schluessel1', + recipe = { + {'tutorial:coin_grau20'}, + {'default:stick'}, + {'default:stick'}, + } +}) +minetest.register_craft({ + output = 'tutorial:xp_block', + recipe = { + {'tutorial:xp_blau', 'tutorial:xp_rot'}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanentverner', + recipe = { + {'default:gold_ingot', 'tutorial:uranium7', 'default:gold_ingot'}, + {'', 'moreores:silver_ingot', ''}, + {'', 'moreores:silver_ingot', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe10', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titanbattleaxe9', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe9', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titanbattleaxe8', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe8', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titanbattleaxe7', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe7', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titanbattleaxe6', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe6', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titanbattleaxe5', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe5', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titanbattleaxe4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe4', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titanbattleaxe3', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe3', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titanbattleaxe2', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe2', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titanbattleaxe1', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titanbattleaxe1', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:arena_battleaxe4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:rainbow_torch 4', + recipe = { + {'nyancat:nyancat_rainbow'}, + {'tutorial:titan'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_wool 16', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:geschenk', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_wool1', + recipe = { + {'tutorial:geschenk_wool', 'tutorial:geschenk_wool'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_wool2', + recipe = { + {'tutorial:geschenk_wool1', 'tutorial:geschenk_wool1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_gold', + recipe = { + {'tutorial:geschenk_silber', 'tutorial:geschenk_silber'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_platin', + recipe = { + {'tutorial:geschenk_gold', 'tutorial:geschenk_gold'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk_silber', + recipe = { + {'tutorial:geschenk', 'tutorial:geschenk'}, + } +}) +minetest.register_craft({ + output = 'tutorial:arena_battleaxe4', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_battleaxe3', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:arena_battleaxe3', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_battleaxe2', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:arena_battleaxe2', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_battleaxe1', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:arena_battleaxe1', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:ultrabattleaxe', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:adminbattleaxe2', + recipe = { + {'tutorial:adminbattleaxe'}, + } +}) +minetest.register_craft({ + output = 'tutorial:adminbattleaxe3', + recipe = { + {'tutorial:adminbattleaxe2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_lila', + recipe = { + {'tutorial:coin_rot', 'tutorial:coin_blau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau20', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau19', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau19', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau18', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau18', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau17', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau17', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau16', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau16', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau15', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau15', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau14', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau14', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau13', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau13', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau12', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau12', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau11', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau11', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau10', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau10', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau9', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau9', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau8', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau8', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau7', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau7', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau6', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau6', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau5', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau5', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau4', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau4', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau3', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau3', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau2', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau2', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau1', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:coin_grau1', + recipe = { + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:obsidian6', 'tutorial:coin_grau'}, + {'tutorial:coin_grau', 'tutorial:coin_grau', 'tutorial:coin_grau'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geschenk', + recipe = { + {'tutorial:geschenkpapier', 'tutorial:geschenkpapier'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe25', + cooktime = 10000, + output = 'tutorial:ultrabattleaxe', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe24', + cooktime = 5000, + output = 'tutorial:ultrabattleaxe25', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe23', + cooktime = 4800, + output = 'tutorial:ultrabattleaxe24', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe22', + cooktime = 4600, + output = 'tutorial:ultrabattleaxe23', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe21', + cooktime = 4400, + output = 'tutorial:ultrabattleaxe22', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe20', + cooktime = 4200, + output = 'tutorial:ultrabattleaxe21', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe19', + cooktime = 4000, + output = 'tutorial:ultrabattleaxe20', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe18', + cooktime = 3800, + output = 'tutorial:ultrabattleaxe19', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe17', + cooktime = 3600, + output = 'tutorial:ultrabattleaxe18', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe16', + cooktime = 3400, + output = 'tutorial:ultrabattleaxe17', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe15', + cooktime = 3200, + output = 'tutorial:ultrabattleaxe16', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe14', + cooktime = 3000, + output = 'tutorial:ultrabattleaxe15', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe13', + cooktime = 2800, + output = 'tutorial:ultrabattleaxe14', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe12', + cooktime = 2600, + output = 'tutorial:ultrabattleaxe13', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe11', + cooktime = 2400, + output = 'tutorial:ultrabattleaxe12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe10', + cooktime = 2200, + output = 'tutorial:ultrabattleaxe11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe9', + cooktime = 2000, + output = 'tutorial:ultrabattleaxe10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe8', + cooktime = 1800, + output = 'tutorial:ultrabattleaxe9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe7', + cooktime = 1600, + output = 'tutorial:ultrabattleaxe8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe6', + cooktime = 1400, + output = 'tutorial:ultrabattleaxe7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe5', + cooktime = 1200, + output = 'tutorial:ultrabattleaxe6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe4', + cooktime = 1000, + output = 'tutorial:ultrabattleaxe5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe3', + cooktime = 800, + output = 'tutorial:ultrabattleaxe4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe2', + cooktime = 600, + output = 'tutorial:ultrabattleaxe3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultrabattleaxe1', + cooktime = 400, + output = 'tutorial:ultrabattleaxe2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:kristallbattleaxe5', + cooktime = 200, + output = 'tutorial:ultrabattleaxe1', +}) +minetest.register_craft({ + output = 'tutorial:kristallbattleaxe5', + recipe = { + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + {'tutorial:admin', 'tutorial:kristallbattleaxe4', 'tutorial:admin'}, + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + } +}) +minetest.register_craft({ + output = 'tutorial:kristallbattleaxe4', + recipe = { + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + {'gems:emerald_block', 'tutorial:kristallbattleaxe3', 'gems:emerald_block'}, + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:kristallbattleaxe3', + recipe = { + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + {'gems:pearl_block', 'tutorial:kristallbattleaxe2', 'gems:shadow_block'}, + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:kristallbattleaxe2', + recipe = { + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'tutorial:kristallbattleaxe1', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:kristallbattleaxe1', + recipe = { + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + {'gems:ruby_block', 'tutorial:superenergybattleaxe7', 'gems:sapphire_block'}, + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe12', + cooktime = 1000, + output = 'tutorial:superenergybattleaxe1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergybattleaxe1', + cooktime = 1200, + output = 'tutorial:superenergybattleaxe2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergybattleaxe2', + cooktime = 1400, + output = 'tutorial:superenergybattleaxe3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergybattleaxe3', + cooktime = 1600, + output = 'tutorial:superenergybattleaxe4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergybattleaxe4', + cooktime = 1800, + output = 'tutorial:superenergybattleaxe5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergybattleaxe5', + cooktime = 2000, + output = 'tutorial:superenergybattleaxe6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergybattleaxe6', + cooktime = 2500, + output = 'tutorial:superenergybattleaxe7', +}) +minetest.register_craft({ + output = 'gems:amethyst_gem', + recipe = { + {'gems:sapphire_gem', 'gems:ruby_gem'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:uraniumbattleaxe2', + cooktime = 100, + output = 'tutorial:energybattleaxe1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe1', + cooktime = 100, + output = 'tutorial:energybattleaxe2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe2', + cooktime = 200, + output = 'tutorial:energybattleaxe3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe3', + cooktime = 300, + output = 'tutorial:energybattleaxe4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe4', + cooktime = 400, + output = 'tutorial:energybattleaxe5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe5', + cooktime = 500, + output = 'tutorial:energybattleaxe6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe6', + cooktime = 600, + output = 'tutorial:energybattleaxe7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe7', + cooktime = 700, + output = 'tutorial:energybattleaxe8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe8', + cooktime = 800, + output = 'tutorial:energybattleaxe9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe9', + cooktime = 900, + output = 'tutorial:energybattleaxe10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe10', + cooktime = 1000, + output = 'tutorial:energybattleaxe11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energybattleaxe11', + cooktime = 1500, + output = 'tutorial:energybattleaxe12', +}) +minetest.register_craft({ + output = 'tutorial:uraniumbattleaxe2', + recipe = { + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'tutorial:uraniumbattleaxe1', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'group:wood', 'default:stick', 'group:wood'}, + {'', 'default:stick', ''}, + } +}) +minetest.register_tool('tutorial:cloudentverner', { + description = 'Clouds remover', + inventory_image = 'tutorial_cloudentvernerg.png', + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky={times={[0]=2.0}, uses=50, maxlevel=0} + } + }, +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner', + recipe = { + {'wool:white', 'wool:white', 'wool:white'}, + {'wool:white', 'wool:white', 'wool:white'}, + {'', 'wool:white', ''}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'default:coal_lump', + cooktime = 5, + output = 'default:diamond', +}) +minetest.register_craft({ + output = 'default:cactus 4', + recipe = { + {'default:dirt', 'default:dirt'}, + } +}) +minetest.register_craft({ + output = 'default:cactus', + recipe = { + {'default:leaves', 'default:leaves'}, + } +}) +minetest.register_craft({ + output = 'default:obsidian 1', + recipe = { + {'default:cobble', 'default:cobble', 'default:cobble'}, + {'default:cobble', 'default:cobble', 'default:cobble'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock1 11', + recipe = { + {'tutorial:geld'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geld 250', + recipe = { + {'default:diamond'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geld 500', + recipe = { + {'default:mese_crystal', 'default:mese_crystal'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geld 75', + recipe = { + {'default:gold_ingot'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geld 50', + recipe = { + {'default:bronze_ingot'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geld 30', + recipe = { + {'default:copper_ingot'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geld 25', + recipe = { + {'default:steel_ingot'}, + } +}) +minetest.register_craft({ + output = 'tutorial:geld 7', + recipe = { + {'default:clay_brick'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'default:stick', + cooktime = 1, + output = 'default:coal_lump', +}) +minetest.register_craft({ + type = 'fuel', + recipe = 'tutorial:stone_coal_lump', + burntime = 100, +}) +minetest.register_craft({ + type = 'fuel', + recipe = 'tutorial:uranium9', + burntime = 1000000, +}) +minetest.register_craft({ + output = 'tutorial:stone_coal_lump 10', + recipe = { + {'default:cobble', 'default:cobble', 'default:cobble'}, + {'default:cobble', 'default:cobble', 'default:cobble'}, + {'default:cobble', 'default:cobble', 'default:cobble'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uraniumbattleaxe1', + recipe = { + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:superbattleaxe4', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uranium2', + recipe = { + {'tutorial:uranium1', 'tutorial:uranium1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uranium3', + recipe = { + {'tutorial:uranium2', 'tutorial:uranium2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uranium4', + recipe = { + {'tutorial:uranium3', 'tutorial:uranium3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uranium5', + recipe = { + {'tutorial:uranium4', 'tutorial:uranium4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uranium6', + recipe = { + {'tutorial:uranium5', 'tutorial:uranium5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uranium7', + recipe = { + {'tutorial:uranium6', 'tutorial:uranium6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uranium8', + recipe = { + {'tutorial:uranium7', 'tutorial:uranium7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uranium9', + recipe = { + {'tutorial:uranium8', 'tutorial:uranium8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superbattleaxe4', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:superbattleaxe3', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superbattleaxe3', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:superbattleaxe2', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superbattleaxe2', + recipe = { + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'tutorial:superbattleaxe1', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superbattleaxe1', + recipe = { + {'tutorial:zauberstab9', 'tutorial:cloudbattleaxe_mega25', 'tutorial:swored_zauber9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:whiteblock6', + recipe = { + {'tutorial:whiteblock5', 'tutorial:whiteblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:whiteblock5', + recipe = { + {'tutorial:whiteblock4', 'tutorial:whiteblock4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:whiteblock4', + recipe = { + {'tutorial:whiteblock3', 'tutorial:whiteblock3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:whiteblock3', + recipe = { + {'tutorial:whiteblock2', 'tutorial:whiteblock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:whiteblock2', + recipe = { + {'tutorial:whiteblock1', 'tutorial:whiteblock1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:whiteblock1', + recipe = { + {'tutorial:white', 'tutorial:white'}, + } +}) +minetest.register_craft({ + output = 'tutorial:blackblock6', + recipe = { + {'tutorial:blackblock5', 'tutorial:blackblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:blackblock5', + recipe = { + {'tutorial:blackblock4', 'tutorial:blackblock4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:blackblock4', + recipe = { + {'tutorial:blackblock3', 'tutorial:blackblock3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:blackblock3', + recipe = { + {'tutorial:blackblock2', 'tutorial:blackblock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:blackblock2', + recipe = { + {'tutorial:blackblock1', 'tutorial:blackblock1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:blackblock1', + recipe = { + {'tutorial:black', 'tutorial:black'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab', + recipe = { + {'default:dirt'}, + {'default:dirt'}, + {'default:dirt'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab9', + recipe = { + {'tutorial:diamondblock2', 'tutorial:dunklematerie6', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2', 'tutorial:dunklematerie6', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2', 'tutorial:zauberstab8', 'tutorial:diamondblock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab8', + recipe = { + {'tutorial:megablock4', 'tutorial:dunklematerie6', 'tutorial:megablock4'}, + {'tutorial:diamondblock2', 'tutorial:dunklematerie5', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2', 'tutorial:zauberstab7', 'tutorial:diamondblock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab7', + recipe = { + {'tutorial:megablock4', 'tutorial:dunklematerie5', 'tutorial:megablock4'}, + {'tutorial:megablock4', 'tutorial:dunklematerie5', 'tutorial:megablock4'}, + {'tutorial:megablock4', 'tutorial:zauberstab6', 'tutorial:megablock4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab6', + recipe = { + {'tutorial:megablock4', 'tutorial:dunklematerie5', 'tutorial:megablock4'}, + {'tutorial:megablock4', 'tutorial:dunklematerie5', 'tutorial:megablock4'}, + {'tutorial:megablock4', 'tutorial:zauberstab5', 'tutorial:megablock4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock9', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock8', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock7', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock6', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock5', + recipe = { + {'tutorial:superblock4', 'tutorial:superblock4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock4 2', + recipe = { + {'tutorial:superblock3', 'tutorial:superblock3'}, + {'tutorial:superblock3', 'tutorial:superblock3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock3 4', + recipe = { + {'tutorial:superblock2', 'tutorial:superblock2', 'tutorial:superblock2'}, + {'tutorial:superblock2', '', 'tutorial:superblock2'}, + {'tutorial:superblock2', 'tutorial:superblock2', 'tutorial:superblock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock2 4', + recipe = { + {'tutorial:superblock1', 'tutorial:superblock1', 'tutorial:superblock1'}, + {'tutorial:superblock1', '', 'tutorial:superblock1'}, + {'tutorial:superblock1', 'tutorial:superblock1', 'tutorial:superblock1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock1 4', + recipe = { + {'default:dirt', 'default:sand', 'default:cobble'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock1 4', + recipe = { + {'default:dirt', 'default:cobble', 'default:sand'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock1 4', + recipe = { + {'default:cobble', 'default:dirt', 'default:sand'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock1 4', + recipe = { + {'default:cobble', 'default:sand', 'default:dirt'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock1 4', + recipe = { + {'default:sand', 'default:cobble', 'default:dirt'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superblock1 4', + recipe = { + {'default:sand', 'default:dirt', 'default:cobble'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega25', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudbattleaxe_mega24', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega24', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudbattleaxe_mega23', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega23', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudbattleaxe_mega22', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega22', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudbattleaxe_mega21', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega21', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudbattleaxe_mega20', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega20', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudbattleaxe_mega19', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega19', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudbattleaxe_mega18', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega18', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudbattleaxe_mega17', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega17', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudbattleaxe_mega16', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega16', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudbattleaxe_mega15', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega15', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudbattleaxe_mega14', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega14', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudbattleaxe_mega13', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega13', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudbattleaxe_mega12', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega12', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudbattleaxe_mega11', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega11', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudbattleaxe_mega10', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega10', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudbattleaxe_mega9', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega9', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudbattleaxe_mega8', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega8', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudbattleaxe_mega7', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega7', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudbattleaxe_mega6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega6', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudbattleaxe_mega5', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega5', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:cloudbattleaxe_mega4', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega4', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:cloudbattleaxe_mega3', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega3', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:cloudbattleaxe_mega2', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega2', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:cloudbattleaxe_mega1', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega1', + recipe = { + {'tutorial:cloudentverner21', 'tutorial:battleaxe_mega20'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudbattleaxe_mega1', + recipe = { + {'tutorial:battleaxe_mega20', 'tutorial:cloudentverner21'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:bottle12', + cooktime = 500, + output = 'tutorial:bottleS1 4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:bottleS1', + cooktime = 1000, + output = 'tutorial:bottleS2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:bottleS2', + cooktime = 2000, + output = 'tutorial:bottleS3', +}) +minetest.register_craft({ + output = 'tutorial:bottle_roh 25', + recipe = { + {'', 'vessels:glass_bottle', ''}, + {'vessels:glass_bottle', 'default:grass_1', 'vessels:glass_bottle'}, + {'', 'vessels:glass_bottle', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle_roh 25', + recipe = { + {'', 'vessels:glass_bottle', ''}, + {'vessels:glass_bottle', 'default:dry_grass_1', 'vessels:glass_bottle'}, + {'', 'vessels:glass_bottle', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle2', + recipe = { + {'tutorial:bottle1', 'tutorial:bottle1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle3', + recipe = { + {'tutorial:bottle2', 'tutorial:bottle2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle4', + recipe = { + {'tutorial:bottle3', 'tutorial:bottle3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle5', + recipe = { + {'tutorial:bottle4', 'tutorial:bottle4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle6', + recipe = { + {'tutorial:bottle5', 'tutorial:bottle5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle7', + recipe = { + {'tutorial:bottle6', 'tutorial:bottle6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle8', + recipe = { + {'tutorial:bottle7', 'tutorial:bottle7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle9', + recipe = { + {'tutorial:bottle8', 'tutorial:bottle8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle10', + recipe = { + {'tutorial:bottle9', 'tutorial:bottle9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle11', + recipe = { + {'tutorial:bottle10', 'tutorial:bottle10'}, + } +}) +minetest.register_craft({ + output = 'tutorial:bottle12', + recipe = { + {'tutorial:bottle11', 'tutorial:bottle11'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:bottle_roh', + cooktime = 1, + output = 'tutorial:bottle1', +}) +minetest.register_craft({ + output = 'default:cloud 50', + recipe = { + {'wool:white', 'wool:white'}, + {'wool:white', 'wool:white'}, + } +}) +minetest.register_craft({ + output = 'default:cloud 1000', + recipe = { + {'tutorial:megablock4', 'tutorial:megablock4', 'tutorial:megablock4'}, + {'tutorial:megablock4', 'tutorial:megablock4', 'tutorial:megablock4'}, + {'tutorial:megablock4', 'tutorial:megablock4', 'tutorial:megablock4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner1', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner2', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner1', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner3', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner2', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner4', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner3', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner5', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner4', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner6', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner5', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner7', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner6', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner8', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner7', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner9', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner8', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner10', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner9', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner11', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner10', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner12', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner11', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner13', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner12', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner14', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner13', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner15', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner14', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner16', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner15', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner17', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner16', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner18', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner17', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner19', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner18', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner20', + recipe = { + {'default:cloud', 'default:cloud', 'default:cloud'}, + {'default:cloud', 'tutorial:cloudentverner19', 'default:cloud'}, + {'default:cloud', 'default:cloud', 'default:cloud'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudentverner21', + recipe = { + {'tutorial:megablock4','tutorial:megablock4', 'tutorial:megablock4'}, + {'tutorial:megablock4','tutorial:cloudentverner20', 'tutorial:megablock4'}, + {'tutorial:megablock4','tutorial:megablock4', 'tutorial:megablock4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab1', + recipe = { + {'default:stick'}, + {'default:stick'}, + {'default:stick'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab2', + recipe = { + {'tutorial:megablock2'}, + {'tutorial:megablock2'}, + {'tutorial:zauberstab1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab3', + recipe = { + {'tutorial:megablock2'}, + {'tutorial:dunklematerie3'}, + {'tutorial:zauberstab2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab4', + recipe = { + {'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4'}, + {'tutorial:zauberstab3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:zauberstab5', + recipe = { + {'tutorial:megablock3', 'tutorial:dunklematerie5', 'tutorial:megablock3'}, + {'tutorial:megablock3', 'tutorial:dunklematerie5', 'tutorial:megablock3'}, + {'tutorial:megablock3', 'tutorial:zauberstab4', 'tutorial:megablock3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:megablock3', + recipe = { + {'tutorial:megablock2', 'tutorial:megablock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:megablock4', + recipe = { + {'tutorial:megablock3', 'tutorial:megablock3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:swored_zauber1', + recipe = { + {'tutorial:thunder','tutorial:megablock2','tutorial:thunder'}, + {'tutorial:thunder','tutorial:megablock2','tutorial:thunder'}, + {'tutorial:thunder','default:stick ','tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:swored_zauber2', + recipe = { + {'tutorial:megablock2','tutorial:megablock2 ','tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:swored_zauber1','tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:megablock2 ','tutorial:megablock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:swored_zauber3', + recipe = { + {'tutorial:megablock2','tutorial:megablock2 ','tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:swored_zauber2','tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:megablock2 ','tutorial:megablock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:swored_zauber4', + recipe = { + {'tutorial:megablock2','tutorial:megablock2 ','tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:swored_zauber3','tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:megablock2 ','tutorial:megablock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:swored_zauber5', + recipe = { + {'tutorial:megablock2','tutorial:megablock2 ','tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:swored_zauber4','tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:megablock2 ','tutorial:megablock2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:swored_zauber6', + recipe = { + {'tutorial:megablock3','tutorial:megablock3', 'tutorial:megablock3'}, + {'tutorial:megablock3','tutorial:swored_zauber5', 'tutorial:megablock3'}, + {'tutorial:megablock3','tutorial:megablock3', 'tutorial:megablock3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:swored_zauber7', + recipe = { + {'tutorial:megablock3','tutorial:megablock3', 'tutorial:megablock3'}, + {'tutorial:megablock3','tutorial:swored_zauber6', 'tutorial:megablock3'}, + {'tutorial:megablock3','tutorial:megablock3', 'tutorial:megablock3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:swored_zauber8', + recipe = { + {'tutorial:megablock4','tutorial:megablock4', 'tutorial:megablock4'}, + {'tutorial:megablock4','tutorial:swored_zauber7', 'tutorial:megablock4'}, + {'tutorial:megablock4','tutorial:megablock4', 'tutorial:megablock4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:swored_zauber9', + recipe = { + {'tutorial:megablock4','tutorial:megablock4', 'tutorial:megablock4'}, + {'tutorial:megablock4','tutorial:swored_zauber8', 'tutorial:megablock4'}, + {'tutorial:megablock4','tutorial:megablock4', 'tutorial:megablock4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:megablock2', + recipe = { + {'tutorial:megablock1', 'tutorial:megablock1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega20', + recipe = { + {'tutorial:megablock2','tutorial:megablock2', 'tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:battleaxe_mega19','tutorial:megablock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega19', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','tutorial:battleaxe_mega18','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega18', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','tutorial:battleaxe_mega17','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega17', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','tutorial:battleaxe_mega16','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega16', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','tutorial:battleaxe_mega15','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:megablock1', + recipe = { + {'default:cactus', 'default:cactus', 'default:cactus'}, + {'default:cactus', 'default:cactus', 'default:cactus'}, + } +}) +minetest.register_craft({ + output = 'nyancat:nyancat', + recipe = { + {'nyancat:nyancat_rainbow', 'nyancat:nyancat_rainbow'}, + {'nyancat:nyancat_rainbow', 'nyancat:nyancat_rainbow'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega13', + recipe = { + {'default:goldblock','default:goldblock', 'default:goldblock'}, + {'default:goldblock','tutorial:battleaxe_mega12','default:goldblock'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega14', + recipe = { + {'nyancat:nyancat_rainbow','nyancat:nyancat_rainbow', 'nyancat:nyancat_rainbow'}, + {'nyancat:nyancat_rainbow','tutorial:battleaxe_mega13','nyancat:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega15', + recipe = { + {'nyancat:nyancat_rainbow','nyancat:nyancat_rainbow', 'nyancat:nyancat_rainbow'}, + {'nyancat:nyancat_rainbow','tutorial:battleaxe_mega14','nyancat:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega9', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','tutorial:battleaxe_mega8','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega10', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','tutorial:battleaxe_mega9','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega11', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','tutorial:battleaxe_mega10','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega12', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','tutorial:battleaxe_mega11','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:diamondblock2', + recipe = { + {'default:diamondblock', 'default:diamondblock'}, + } +}) +minetest.register_craft({ + output = 'tutorial:thunder 2', + recipe = { + {'default:coalblock', 'default:coalblock'}, + } +}) +minetest.register_craft({ + output = 'tutorial:dunklematerie1 2', + recipe = { + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + } +}) +minetest.register_craft({ + output = 'tutorial:dunklematerie2', + recipe = { + {'tutorial:dunklematerie1', 'tutorial:dunklematerie1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:dunklematerie3', + recipe = { + {'tutorial:dunklematerie2', 'tutorial:dunklematerie2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:dunklematerie4', + recipe = { + {'tutorial:dunklematerie3', 'tutorial:dunklematerie3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:dunklematerie5', + recipe = { + {'tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:dunklematerie6', + recipe = { + {'tutorial:dunklematerie5', 'tutorial:dunklematerie5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega5', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','tutorial:battleaxe_mega4','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega6', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','tutorial:battleaxe_mega5','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega7', + recipe = { + {'tutorial:dunklematerie5','tutorial:dunklematerie5', 'tutorial:dunklematerie5'}, + {'tutorial:dunklematerie5','tutorial:battleaxe_mega6','tutorial:dunklematerie5'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega8', + recipe = { + {'tutorial:dunklematerie6','tutorial:dunklematerie6', 'tutorial:dunklematerie6'}, + {'tutorial:dunklematerie6','tutorial:battleaxe_mega7','tutorial:dunklematerie6'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:obsidian2', + recipe = { + {'default:obsidian', 'default:obsidian'}, + } +}) +minetest.register_craft({ + output = 'tutorial:obsidian3', + recipe = { + {'tutorial:obsidian2', 'tutorial:obsidian2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:obsidian4', + recipe = { + {'tutorial:obsidian3', 'tutorial:obsidian3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:obsidian5', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:obsidian6', + recipe = { + {'tutorial:obsidian5', 'tutorial:obsidian5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega1', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4', 'tutorial:battleaxe', 'tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega2', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4','tutorial:battleaxe_mega1','tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:battleaxe_mega3', + recipe = { + {'tutorial:obsidian5', 'tutorial:obsidian5', 'tutorial:obsidian5'}, + {'tutorial:obsidian5','tutorial:battleaxe_mega2','tutorial:obsidian5'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = '"tutorial:battleaxe_mega4"', + recipe = { + {'tutorial:obsidian6', 'tutorial:obsidian6', 'tutorial:obsidian6'}, + {'tutorial:obsidian6','tutorial:battleaxe_mega3','tutorial:obsidian6'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:blades', + recipe = { + {'', 'default:ice', ''}, + {'default:ice', 'default:ice', 'default:ice'}, + {'', 'default:ice', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:cabin', + recipe = { + {'default:obsidian','default:obsidian','default:obsidian'}, + {'default:obsidian','','default:ice'}, + {'default:obsidian','default:obsidian','default:obsidian'}, + } +}) +minetest.register_craft({ + output = 'tutorial:heli', + recipe = { + {'', 'tutorial:blades'}, + {'tutorial:blades', 'tutorial:cabin'}, + } +}) +minetest.register_craft({ + output = 'default:ice', + recipe = { + {'bucket:bucket_water', 'bucket:bucket_water'}, + {'bucket:bucket_water', 'bucket:bucket_water'}, + } +}) +minetest.register_craft({ + output = 'nyancat:nyancat_rainbow', + recipe = { + {'default:cactus', 'default:cactus', 'default:cactus'}, + {'default:cactus', 'default:cactus', 'default:cactus'}, + {'default:cactus', 'default:cactus', 'default:cactus'}, + } +}) +minetest.register_craft({ + output = 'tutorial:stampfi_ei', + recipe = { + {'default:sandstone', 'default:sandstone', 'default:sandstone'}, + {'default:sandstone', 'default:sandstone', 'default:sandstone'}, + {'default:sandstone', 'default:sandstone', 'default:sandstone'}, + } +}) +minetest.register_craft({ + output = 'dye:black', + recipe = { + {'default:coal_lump'}, + } +}) \ No newline at end of file diff --git a/mods/tutorial/basic/craftitem.lua b/mods/tutorial/basic/craftitem.lua new file mode 100644 index 0000000..6b462b4 --- /dev/null +++ b/mods/tutorial/basic/craftitem.lua @@ -0,0 +1,570 @@ +minetest.register_craftitem("tutorial:magic_gem1", { + description = "Magic gem 1", + inventory_image = "tutorial_gem1.png", +}) +minetest.register_craftitem("tutorial:magic_gem2", { + description = "Magic gem 2", + inventory_image = "tutorial_gem2.png", +}) +minetest.register_craftitem("tutorial:magic_gem3", { + description = "Magic gem 3", + inventory_image = "tutorial_gem3.png", +}) +minetest.register_craftitem("tutorial:magic_gem4", { + description = "Magic gem 4", + inventory_image = "tutorial_gem4.png", +}) +minetest.register_craftitem("tutorial:magic_gem5", { + description = "Magic gem 5", + inventory_image = "tutorial_gem5.png", +}) +minetest.register_craftitem("tutorial:gem_fragment", { + description = "Gem fragment lv.2", + inventory_image = "tutorial_gem_fragment.png", +}) +minetest.register_craftitem("tutorial:dragon_crystal", { + description = "Regnum crystal", + inventory_image = "tutorial_dragon_crystal.png", +}) +minetest.register_craftitem("tutorial:dragon_schluessel", { + description = "Dragonkey", + inventory_image = "tutorial_dragon_schluessel.png", +}) +minetest.register_craftitem("tutorial:coin2", { + description = "Coin green (drill edition, very rare)", + inventory_image = "tutorial_coin.png", + stack_max = 1500, +}) +minetest.register_craftitem("tutorial:monster_remover", { + description = "Admin tool 7: Monster Remover", + inventory_image = "tutorial_monster_entverner.png", + groups = {not_in_creative_inventory=1}, + stack_max = 1, + on_use = function(itemstack, user, pointed_thing) + local pos = user:getpos() + for _,object in ipairs(minetest.env:get_objects_inside_radius(pos, 15)) do + if not object:is_player() then + if object:get_entity_name() then + if object:get_entity_name() == "mobs:dirt_monster" or object:get_entity_name() == "mobs:stone_monster" or object:get_entity_name() == "mobs:sand_monster" or object:get_entity_name() == "mobs:silver_sand_monster" or object:get_entity_name() == "mobs:desert_sand_monster" or object:get_entity_name() == "mobs:desert_stone_monster" or object:get_entity_name() == "mobs:snow_monster" or object:get_entity_name() == "mobs:ice_monster" or object:get_entity_name() == "mobs:green_monster" or object:get_entity_name() == "mobs:dry_grass_monster" or object:get_entity_name() == "mobs:rainforest_litter_monster" then + object:remove() + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:dna_string", { + description = "DNA string", + inventory_image = "tutorial_dna_string.png", +}) +minetest.register_craftitem("tutorial:armor_key", { + description = "Armor key", + inventory_image = "tutorial_armor_schluessel.png", +}) + +minetest.register_craftitem("tutorial:regnum_pixeled", { + description = "Pixeled Regnum", + inventory_image = "tutorial_regnum.png", + stack_max = 1, +}) +minetest.register_craftitem("tutorial:regnum_key_pixeled", { + description = "Pixeled regnum key", + inventory_image = "tutorial_regnum_schluessel.png", +}) +minetest.register_craftitem("tutorial:regnum_key", { + description = "Regnum key", + inventory_image = "tutorial_regnum_schluessel.png", +}) +minetest.register_craftitem("tutorial:regnum_pixel_gold", { + description = "Regnum pixel gold", + inventory_image = "tutorial_regnum_pixel_gold.png", + stack_max = 9999, +}) +minetest.register_craftitem("tutorial:regnum_pixel_red", { + description = "Regnum pixel red", + inventory_image = "tutorial_regnum_pixel_rot.png", + stack_max = 9999, +}) +minetest.register_craftitem("tutorial:regnum_pixel_blue", { + description = "Regnum pixel blue", + inventory_image = "tutorial_regnum_pixel_blau.png", + stack_max = 9999, +}) +minetest.register_craftitem("tutorial:regnum_pixel_green", { + description = "Regnum pixel green", + inventory_image = "tutorial_regnum_pixel_gruen.png", + stack_max = 9999, +}) +minetest.register_craftitem("tutorial:regnum_pixel_purple", { + description = "Regnum pixel purple", + inventory_image = "tutorial_regnum_pixel_lila.png", + stack_max = 9999, +}) +minetest.register_craftitem("tutorial:legenden_kristall_no", { + description = "this legends crystal is missing", + inventory_image = "tutorial_legendenkristall_no.png", + stack_max = 1, +}) +minetest.register_craftitem("tutorial:legenden_kristall_1", { + description = "the first legends crystal", + inventory_image = "tutorial_legendenkristall.png", +}) +minetest.register_craftitem("tutorial:legenden_kristall_2", { + description = "the second legends crystal", + inventory_image = "tutorial_legendenkristall.png", +}) +minetest.register_craftitem("tutorial:legenden_kristall_3", { + description = "the third legends crystal", + inventory_image = "tutorial_legendenkristall.png", +}) +minetest.register_craftitem("tutorial:legenden_kristall_4", { + description = "the fourth legends crystal", + inventory_image = "tutorial_legendenkristall.png", +}) +minetest.register_craftitem("tutorial:legenden_kristall_5", { + description = "the fifth legends crystal", + inventory_image = "tutorial_legendenkristall.png", +}) +minetest.register_craftitem("tutorial:legenden_kristall_6", { + description = "the sixth legends crystal", + inventory_image = "tutorial_legendenkristall.png", +}) +minetest.register_craftitem("tutorial:legenden_kristall_7", { + description = "the seventh legends crystal", + inventory_image = "tutorial_legendenkristall.png", +}) +minetest.register_craftitem("tutorial:legenden_kristall_8", { + description = "the eighth legends crystal", + inventory_image = "tutorial_legendenkristall.png", +}) +minetest.register_craftitem("tutorial:regnum_part", { + description = "Regnumpart", + inventory_image = "tutorial_regnum_part.png", +}) +minetest.register_craftitem("tutorial:geschenkpapier_death", { + description = "Death Wrapping paper", + inventory_image = "tutorial_geschenkpapier_death.png", +}) +minetest.register_craftitem("tutorial:regnum", { + description = "Regnum", + inventory_image = "tutorial_regnum.png", +}) +minetest.register_craftitem("tutorial:waterbattleaxe", { + description = "Waterbattleaxe", + inventory_image = "tutorial_waterbattleaxe.png", + stack_max = 1, + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + if pointed_thing.type ~= "node" then + return + end + local nodes = minetest.get_node(pointed_thing.under) + local name = nodes.name + if name == "default:water_source" then + minetest.add_node(pointed_thing.under, {name="air"}) + inv:add_item("main", "default:water_source") + end + end, +}) +minetest.register_craftitem("tutorial:lavabattleaxe", { + description = "Lavabattleaxe", + inventory_image = "tutorial_lavabattleaxe.png", + stack_max = 1, + liquids_pointable = true, + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + if pointed_thing.type ~= "node" then + return + end + local nodes = minetest.get_node(pointed_thing.under) + local name = nodes.name + if name == "default:lava_source" then + minetest.add_node(pointed_thing.under, {name="air"}) + inv:add_item("main", "default:lava_source") + end + end, +}) +minetest.register_craftitem("tutorial:lila_erz1", { + description = "Purple Lv.1", + inventory_image = "tutorial_lila_erz1.png", +}) +minetest.register_craftitem("tutorial:lila_erz2", { + description = "Purple Lv.2", + inventory_image = "tutorial_lila_erz2.png", +}) +minetest.register_craftitem("tutorial:lila_erz3", { + description = "Purple Lv.3", + inventory_image = "tutorial_lila_erz3.png", +}) +minetest.register_craftitem("tutorial:legenden_schluessel", { + description = "Legendkey Lv.MAX", + inventory_image = "tutorial_legenden_schluessel.png", +}) +minetest.register_craftitem("tutorial:bag_schluessel4", { + description = "Bagkey Lv.MAX", + inventory_image = "tutorial_bag_schluessel4.png", +}) +minetest.register_craftitem("tutorial:bag_schluessel3", { + description = "Bagkey Lv.3", + inventory_image = "tutorial_bag_schluessel3.png", +}) +minetest.register_craftitem("tutorial:bag_schluessel2", { + description = "Bagkey Lv.2", + inventory_image = "tutorial_bag_schluessel2.png", +}) +minetest.register_craftitem("tutorial:bag_schluessel1", { + description = "Bagkey Lv.1", + inventory_image = "tutorial_bag_schluessel1.png", +}) +minetest.register_craftitem("tutorial:craft_schluessel7", { + description = "Craftkey Lv.MAX", + inventory_image = "tutorial_craft_schluessel7.png", +}) +minetest.register_craftitem("tutorial:craft_schluessel6", { + description = "Craftkey Lv.6", + inventory_image = "tutorial_craft_schluessel6.png", +}) +minetest.register_craftitem("tutorial:craft_schluessel5", { + description = "Craftkey Lv.5", + inventory_image = "tutorial_craft_schluessel5.png", +}) +minetest.register_craftitem("tutorial:craft_schluessel5", { + description = "Craftkey Lv.5", + inventory_image = "tutorial_craft_schluessel5.png", +}) +minetest.register_craftitem("tutorial:craft_schluessel4", { + description = "Craftkey Lv.4", + inventory_image = "tutorial_craft_schluessel4.png", +}) +minetest.register_craftitem("tutorial:craft_schluessel3", { + description = "Craftkey Lv.3", + inventory_image = "tutorial_craft_schluessel3.png", +}) +minetest.register_craftitem("tutorial:craft_schluessel2", { + description = "Craftkey Lv.2", + inventory_image = "tutorial_craft_schluessel2.png", +}) +minetest.register_craftitem("tutorial:craft_schluessel1", { + description = "Craftkey Lv.1", + inventory_image = "tutorial_craft_schluessel1.png", +}) +minetest.register_craftitem("tutorial:xp_blau", { + description = "Blue xp block", + inventory_image = "tutorial_xp_blau.png", +}) +minetest.register_craftitem("tutorial:xp_rot", { + description = "Red xp block", + inventory_image = "tutorial_xp_rot.png", +}) +minetest.register_craftitem("tutorial:blau_erz", { + description = "Blue", + inventory_image = "tutorial_blau_erz.png", +}) +minetest.register_craftitem("tutorial:rot_erz", { + description = "Red", + inventory_image = "tutorial_rot_erz.png", +}) +minetest.register_craftitem("tutorial:level_schluessel", { + description = "Levelkey lv.MAX", + inventory_image = "tutorial_level_schluessel.png", +}) +minetest.register_craftitem("tutorial:titan", { + description = "Titanium", + inventory_image = "tutorial_titan.png", +}) +minetest.register_craftitem("tutorial:coin_lila", { + description = "Coin purple (very rare)", + inventory_image = "tutorial_coin_lila.png", +}) +minetest.register_craftitem("tutorial:coin_rot", { + description = "Coin red (very rare)", + inventory_image = "tutorial_coin_rot.png", +}) +minetest.register_craftitem("tutorial:coin_blau", { + description = "Coin blue (very rare)", + inventory_image = "tutorial_coin_blau.png", +}) +minetest.register_craftitem("tutorial:coin_grau", { + description = "Coin gray (very rare)", + inventory_image = "tutorial_coin_grau.png", +}) +minetest.register_craftitem("tutorial:coin_grau1", { + description = "Spezial gray coin lv.1", + inventory_image = "tutorial_coin_grau1.png", +}) +minetest.register_craftitem("tutorial:coin_grau2", { + description = "Spezial gray coin lv.2", + inventory_image = "tutorial_coin_grau2.png", +}) +minetest.register_craftitem("tutorial:coin_grau3", { + description = "Spezial gray coin lv.3", + inventory_image = "tutorial_coin_grau3.png", +}) +minetest.register_craftitem("tutorial:coin_grau4", { + description = "Spezial gray coin lv.4", + inventory_image = "tutorial_coin_grau4.png", +}) +minetest.register_craftitem("tutorial:coin_grau5", { + description = "Spezial gray coin lv.5", + inventory_image = "tutorial_coin_grau5.png", +}) +minetest.register_craftitem("tutorial:coin_grau6", { + description = "Spezial gray coin lv.6", + inventory_image = "tutorial_coin_grau6.png", +}) +minetest.register_craftitem("tutorial:coin_grau7", { + description = "Spezial gray coin lv.7", + inventory_image = "tutorial_coin_grau7.png", +}) +minetest.register_craftitem("tutorial:coin_grau8", { + description = "Spezial gray coin lv.8", + inventory_image = "tutorial_coin_grau8.png", +}) +minetest.register_craftitem("tutorial:coin_grau9", { + description = "Spezial gray coin lv.9", + inventory_image = "tutorial_coin_grau9.png", +}) +minetest.register_craftitem("tutorial:coin_grau10", { + description = "Spezial gray coin lv.10", + inventory_image = "tutorial_coin_grau10.png", +}) +minetest.register_craftitem("tutorial:coin_grau11", { + description = "Spezial gray coin lv.11", + inventory_image = "tutorial_coin_grau11.png", +}) +minetest.register_craftitem("tutorial:coin_grau12", { + description = "Spezial gray coin lv.12", + inventory_image = "tutorial_coin_grau12.png", +}) +minetest.register_craftitem("tutorial:coin_grau13", { + description = "Spezial gray coin lv.13", + inventory_image = "tutorial_coin_grau13.png", +}) +minetest.register_craftitem("tutorial:coin_grau14", { + description = "Spezial gray coin lv.14", + inventory_image = "tutorial_coin_grau14.png", +}) +minetest.register_craftitem("tutorial:coin_grau15", { + description = "Spezial gray coin lv.15", + inventory_image = "tutorial_coin_grau15.png", +}) +minetest.register_craftitem("tutorial:coin_grau16", { + description = "Spezial gray coin lv.16", + inventory_image = "tutorial_coin_grau16.png", +}) +minetest.register_craftitem("tutorial:coin_grau17", { + description = "Spezial gray coin lv.17", + inventory_image = "tutorial_coin_grau17.png", +}) +minetest.register_craftitem("tutorial:coin_grau18", { + description = "Spezial gray coin lv.18", + inventory_image = "tutorial_coin_grau18.png", +}) +minetest.register_craftitem("tutorial:coin_grau19", { + description = "Spezial gray coin lv.19", + inventory_image = "tutorial_coin_grau19.png", +}) +minetest.register_craftitem("tutorial:coin_grau20", { + description = "Spezial gray coin lv.20", + inventory_image = "tutorial_coin_grau20.png", +}) +minetest.register_craftitem("tutorial:coin", { + description = "Coin green (laser edition, very rare)", + inventory_image = "tutorial_coin.png", + stack_max = 1500, +}) +minetest.register_craftitem("tutorial:admin", { + description = "Admin", + inventory_image = "tutorial_admin_ore.png", +}) +minetest.register_craftitem("tutorial:geschenkpapier", { + description = "Wrapping paper", + inventory_image = "tutorial_geschenkpapier.png", +}) +minetest.register_craftitem("tutorial:geld", { + inventory_image = "tutorial_geld.png", +}) +minetest.register_craftitem("tutorial:XP", { + inventory_image = "tutorial_XP.png", +}) +minetest.register_craftitem("tutorial:stone_coal_lump", { + description = "Stone coal lump", + inventory_image = "tutorial_stone_coal_lump.png", +}) +minetest.register_craftitem("tutorial:uranium1", { + description = "Uranium lv.1", + inventory_image = "tutorial_uranium1.png", +}) +minetest.register_craftitem("tutorial:uranium2", { + description = "Uranium lv.2", + inventory_image = "tutorial_uranium2.png", +}) +minetest.register_craftitem("tutorial:uranium3", { + description = "Uranium lv.3", + inventory_image = "tutorial_uranium3.png", +}) +minetest.register_craftitem("tutorial:uranium4", { + description = "Uranium lv.4", + inventory_image = "tutorial_uranium4.png", +}) +minetest.register_craftitem("tutorial:uranium5", { + description = "Uranium lv.5", + inventory_image = "tutorial_uranium5.png", +}) +minetest.register_craftitem("tutorial:uranium6", { + description = "Uranium lv.6", + inventory_image = "tutorial_uranium6.png", +}) +minetest.register_craftitem("tutorial:uranium7", { + description = "Uranium lv.7", + inventory_image = "tutorial_uranium7.png", +}) +minetest.register_craftitem("tutorial:uranium8", { + description = "Uranium lv.8", + inventory_image = "tutorial_uranium8.png", +}) +minetest.register_craftitem("tutorial:uranium9", { + description = "Uranium lv.9", + inventory_image = "tutorial_uranium9.png", +}) +minetest.register_craftitem( "tutorial:blackblock1", { + description = "Black item lv.1", + inventory_image = "tutorial_blackblock1.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:blackblock2", { + description = "Black item lv.2", + inventory_image = "tutorial_blackblock2.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:blackblock3", { + description = "Black item lv.3", + inventory_image = "tutorial_blackblock3.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:blackblock4", { + description = "Black item lv.4", + inventory_image = "tutorial_blackblock4.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:blackblock5", { + description = "Black item lv.5", + inventory_image = "tutorial_blackblock5.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:blackblock6", { + description = "Black item lv.6", + inventory_image = "tutorial_blackblock6.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:whiteblock1", { + description = "White item lv.1", + inventory_image = "tutorial_whiteblock1.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:whiteblock2", { + description = "White item lv.2", + inventory_image = "tutorial_whiteblock2.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:whiteblock3", { + description = "White item lv.3", + inventory_image = "tutorial_whiteblock3.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:whiteblock4", { + description = "White item lv.4", + inventory_image = "tutorial_whiteblock4.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:whiteblock5", { + description = "White item lv.5", + inventory_image = "tutorial_whiteblock5.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:whiteblock6", { + description = "White item lv.6", + inventory_image = "tutorial_whiteblock6.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem("tutorial:white", { + description = "White", + inventory_image = "tutorial_white.png", +}) +minetest.register_craftitem("tutorial:black", { + description = "Black", + inventory_image = "tutorial_black.png", +}) +minetest.register_craftitem( "tutorial:superblock1", { + description = "Super item lv.1", + inventory_image = "tutorial_superblock1.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:superblock2", { + description = "Super item lv.2", + inventory_image = "tutorial_superblock2.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:superblock3", { + description = "Super item lv.3", + inventory_image = "tutorial_superblock3.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:superblock4", { + description = "Super item lv.4", + inventory_image = "tutorial_superblock4.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:superblock5", { + description = "Super item lv.5", + inventory_image = "tutorial_superblock5.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:superblock6", { + description = "Super item lv.6", + inventory_image = "tutorial_superblock6.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:superblock7", { + description = "Super item lv.7", + inventory_image = "tutorial_superblock7.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:superblock8", { + description = "Super item lv.8", + inventory_image = "tutorial_superblock8.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem( "tutorial:superblock9", { + description = "Super item lv.9", + inventory_image = "tutorial_superblock9.png", + on_place_on_ground = minetest.craftitem_place_item, +}) +minetest.register_craftitem("tutorial:blades",{ + description = "Blades", + inventory_image = "blades_invt.png", + wield_image = "blades_inv.png", +}) +minetest.register_craftitem("tutorial:cabin",{ + description = "Cabin for heli", + inventory_image = "cabin_invt.png", + wield_image = "cabin_inv.png", +}) +minetest.register_craftitem("tutorial:heli", { + description = "Helicopter", + inventory_image = "heli_invt.png", + wield_image = "heli_inv.png", + wield_scale = {x=1, y=1, z=1}, + liquids_pointable = false, + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + pointed_thing.under.y = pointed_thing.under.y+1 + minetest.env:add_entity(pointed_thing.under, "tutorial:heli") + itemstack:take_item() + return itemstack + end, +}) \ No newline at end of file diff --git a/mods/tutorial/basic/entity.lua b/mods/tutorial/basic/entity.lua new file mode 100644 index 0000000..fd89477 --- /dev/null +++ b/mods/tutorial/basic/entity.lua @@ -0,0 +1,62 @@ +minetest.register_entity("tutorial:patrone", { + visual = "mesh", + visual_size = {x=5, y=5}, + mesh = "tutorial_fireball.x", + textures = {"tutorial_adminball.png"}, + velocity = 5, + light_source = 12, + on_step = function(self, dtime) + local pos = self.object:getpos() + if minetest.env:get_node(self.object:getpos()).name ~= "air" then + self.hit_node(self, pos, node) + self.object:remove() + return + end + pos.y = pos.y-1 + for _,player in pairs(minetest.env:get_objects_inside_radius(pos, 1)) do + if player:is_player() then + self.hit_player(self, player) + self.object:remove() + return + end + end + end, + hit_player = function(self, player) + local s = player:getpos() + local p = player:get_look_dir() + 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=1000000}, + }, vec) + local pos = player:getpos() + 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(pos).name + if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <= 30 then + minetest.env:set_node(p, {name="tutorial:legend_thunderadmin"}) + else + minetest.env:remove_node(p) + end + end + end + end + end, + 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(pos).name + if minetest.registered_nodes[n].groups.flammable or math.random(1, 100) <= 30 then + minetest.env:set_node(p, {name="tutorial:legend_thunderadmin"}) + else + minetest.env:remove_node(p) + end + end + end + end + end +}) \ No newline at end of file diff --git a/mods/tutorial/basic/node.lua b/mods/tutorial/basic/node.lua new file mode 100644 index 0000000..2c9864d --- /dev/null +++ b/mods/tutorial/basic/node.lua @@ -0,0 +1,629 @@ +minetest.register_node("tutorial:geschenk_gem",{ + description = "Gift lv.1 (gem)", + is_ground_content = true, + tiles = {"tutorial_geschenk_gem.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +minetest.register_node("tutorial:geschenk_dragon",{ + description = "Gift (dragon)", + is_ground_content = true, + tiles = {"tutorial_geschenk_dragon.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +minetest.register_node("tutorial:geschenk_dna",{ + description = "Gift (DNA)", + is_ground_content = true, + tiles = {"tutorial_geschenk_dna.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {} +}) +minetest.register_node("tutorial:geschenk_legend",{ + description = "Gift (legendary)", + is_ground_content = true, + tiles = {"tutorial_geschenk_legenden.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {} +}) +minetest.register_node("tutorial:geschenk_regnum",{ + description = "Gift (regnum)", + is_ground_content = true, + tiles = {"tutorial_geschenk_regnum.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {} +}) +minetest.register_node("tutorial:geschenk_death_silber",{ + description = "Deathgift (silver)", + is_ground_content = true, + tiles = {"tutorial_geschenk_death_silber.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {} +}) +minetest.register_node("tutorial:geschenk_death_gold",{ + description = "Deathgift (gold)", + is_ground_content = true, + tiles = {"tutorial_geschenk_death_gold.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {} +}) +minetest.register_node("tutorial:geschenk_death_platin",{ + description = "Deathgift (platinum)", + is_ground_content = true, + tiles = {"tutorial_geschenk_death_platin.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {} +}) +minetest.register_node("tutorial:geschenk_death",{ + description = "Deathgift", + is_ground_content = true, + tiles = {"tutorial_geschenk_death.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {} +}) +minetest.register_node("tutorial:stone_with_regnum", { + description = "Regnum ore", + tiles = {"default_stone.png^tutorial_regnum_ore.png"}, + is_ground_content = true, + groups = {cracky=10}, + drop = 'tutorial:regnum', + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("tutorial:xp_block",{ + description = "Xp Block (grey)", + tiles = {"tutorial_xp_block.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,xpg=1}, +}) +minetest.register_node("tutorial:stone_with_blau", { + description = "Blue ore", + tiles = {"default_stone.png^tutorial_blau_erz.png"}, + is_ground_content = true, + groups = {cracky=13, xpb=1}, + drop = 'tutorial:blau_erz', + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("tutorial:stone_with_rot", { + description = "Red ore", + tiles = {"default_stone.png^tutorial_rot_erz.png"}, + is_ground_content = true, + groups = {cracky=13, xpr=1}, + drop = 'tutorial:rot_erz', + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("tutorial:rainbow_torch", { + description = "Rainbow torch", + drawtype = "torchlike", + tiles = { + {name="tutorial_torch_on_floor_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}, + {name="tutorial_torch_on_ceiling_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}, + {name="tutorial_torch_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}} + }, + inventory_image = "tutorial_torch_on_floor.png", + wield_image = "tutorial_torch_on_floor.png", + paramtype = "light", + paramtype2 = "wallmounted", + sunlight_propagates = true, + is_ground_content = false, + walkable = false, + light_source = LIGHT_MAX-1, + selection_box = { + type = "wallmounted", + wall_top = {-0.1, 0.5-0.6, -0.1, 0.1, 0.5, 0.1}, + wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5+0.6, 0.1}, + wall_side = {-0.5, -0.3, -0.1, -0.5+0.3, 0.3, 0.1}, + }, + groups = {choppy=2,dig_immediate=3,flammable=1,attached_node=1,hot=2}, + legacy_wallmounted = true, + sounds = default.node_sound_defaults(), +}) +minetest.register_node("tutorial:geschenk_wool2",{ + description = "Colored wool gift lv.2", + is_ground_content = true, + tiles = {"tutorial_geschenk_wool2.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +minetest.register_node("tutorial:geschenk_wool1",{ + description = "Colored wool gift lv.1", + is_ground_content = true, + tiles = {"tutorial_geschenk_wool1.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +minetest.register_node("tutorial:geschenk_wool",{ + description = "Wool gift", + is_ground_content = true, + drop = 'wool:white 5', + tiles = {"tutorial_geschenk_wool.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, +}) +minetest.register_node("tutorial:geschenk_gold",{ + description = "Gift (gold)", + is_ground_content = true, + tiles = {"tutorial_geschenk_gold.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +minetest.register_node("tutorial:geschenk_platin",{ + description = "Gift (platinum)", + is_ground_content = true, + tiles = {"tutorial_geschenk_platin.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +minetest.register_node("tutorial:geschenk_silber",{ + description = "Gift (silver)", + is_ground_content = true, + tiles = {"tutorial_geschenk_silber.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +minetest.register_node("tutorial:stone_with_titan", { + description = "Titanium ore", + tiles = {"tutorial_titan_ore.png"}, + is_ground_content = true, + groups = {cracky=12}, + drop = 'tutorial:titan', + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("tutorial:arena_glass", { + description = "Arena glass", + drawtype = "glasslike_framed_optional", + alpha = 0, + connects_to = "default:water_source", + tiles = {"tutorial_arena_glass.png"}, + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 14, + is_ground_content = true, + groups = {cracky=11}, + sounds = default.node_sound_glass_defaults() +}) +minetest.register_node("tutorial:arena_block",{ + tiles = {"tutorial_arena_block.png"}, + description = "Arena block", + groups = {cracky=11}, +}) +for i = 1, 20, 1 do + minetest.register_node("tutorial:level"..i.."_rot",{ + tiles = {"tutorial_level"..i..".png^tutorial_level_rot.png"}, + description = "You are now in Level red "..i, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, + }) +end +minetest.register_node("tutorial:levelMAX_rot",{ + tiles = {"tutorial_levelMAX.png^tutorial_level_rot.png"}, + description = "You are now in Level red MAX", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, +}) +for i = 1, 100, 1 do + minetest.register_node("tutorial:level"..i.."_grau",{ + tiles = {"tutorial_level"..i..".png^tutorial_level_grau.png"}, + description = "You are now in Level gray "..i, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, + }) +end +minetest.register_node("tutorial:levelMAX_grau",{ + tiles = {"tutorial_levelMAX.png^tutorial_level_grau.png"}, + description = "You are now in Level gray MAX", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, +}) +for i = 1, 20, 1 do + minetest.register_node("tutorial:level"..i.."_blau",{ + tiles = {"tutorial_level"..i..".png^tutorial_level_blau.png"}, + description = "You are now in Level blue "..i, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, + }) +end +minetest.register_node("tutorial:levelMAX_blau",{ + tiles = {"tutorial_levelMAX.png^tutorial_level_blau.png"}, + description = "You are now in Level blue MAX", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, +}) +for i = 1, 100, 1 do + minetest.register_node("tutorial:level"..i,{ + tiles = {"tutorial_level"..i..".png"}, + description = "You are now in Level green "..i, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, + }) +end +minetest.register_node("tutorial:levelMAX",{ + tiles = {"tutorial_levelMAX.png^tutorial_level_green.png"}, + description = "You are now in Level green MAX", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, +}) +minetest.register_node("tutorial:geschenk",{ + description = "Gift", + is_ground_content = true, + tiles = {"tutorial_geschenk.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +minetest.register_node("tutorial:stone_with_admin", { + description = "Admin ore", + tiles = {"default_stone.png^tutorial_admin_ore.png"}, + is_ground_content = true, + groups = {cracky=10}, + drop = 'tutorial:admin', + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("tutorial:stone_with_uranium", { + description = "Uranium Ore", + tiles = {"default_stone.png^tutorial_mineral_uran.png"}, + is_ground_content = true, + groups = {cracky=5,xp=1}, + drop = 'tutorial:uranium1 4', + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("tutorial:uran_chest", { + description = "Uranium chest", + tiles = {"tutorial_uran_chest_top.png", "tutorial_uran_chest_top.png", "tutorial_uran_chest_side.png", "tutorial_uran_chest_side.png", "tutorial_uran_chest_side.png", "tutorial_uran_chest_front.png"}, + paramtype2 = "facedir", + groups = {choppy=2,oddly_breakable_by_hand=2}, + legacy_facedir_simple = true, + is_ground_content = false, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec",default.chest_formspec) + meta:set_string("infotext", "Chest") + local inv = meta:get_inventory() + inv:set_size("main", 8*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", 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("tutorial:stone_with_white", { + description = "White Ore", + tiles = {"default_stone.png^tutorial_mineral_withe.png"}, + is_ground_content = true, + groups = {cracky=4}, + drop = "tutorial:white", + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("tutorial:stone_with_black", { + description = "Black Ore", + tiles = {"default_stone.png^tutorial_mineral_black.png"}, + is_ground_content = true, + groups = {cracky=4}, + drop = "tutorial:black", + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("tutorial:bottleS1", { + description = "Super magic bottle lv.1", + drawtype = "plantlike", + tiles = {"tutorial_bottleS1.png"}, + wield_image = "tutorial_bottleS1.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}, +}) +minetest.register_node("tutorial:bottleS2", { + description = "Super magic bottle lv.2", + drawtype = "plantlike", + tiles = {"tutorial_bottleS2.png"}, + wield_image = "tutorial_bottleS2.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}, +}) +minetest.register_node("tutorial:bottleS3", { + description = "Super magic bottle lv.3", + drawtype = "plantlike", + tiles = {"tutorial_bottleS3.png"}, + wield_image = "tutorial_bottleS3.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}, +}) +minetest.register_node("tutorial:bottle_roh", { + description = "Magic bottle raw", + drawtype = "plantlike", + tiles = {"tutorial_bottle_roh.png"}, + wield_image = "tutorial_bottle_roh.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}, +}) +minetest.register_node("tutorial:bottle1", { + description = "Magic bottle lv.1", + drawtype = "plantlike", + tiles = {"tutorial_bottle1.png"}, + wield_image = "tutorial_bottle1.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}, +}) +minetest.register_node("tutorial:bottle2", { + description = "Magic bottle lv.2", + drawtype = "plantlike", + tiles = {"tutorial_bottle2.png"}, + wield_image = "tutorial_bottle2.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}, +}) +minetest.register_node("tutorial:bottle3", { + description = "Magic bottle lv.3", + drawtype = "plantlike", + tiles = {"tutorial_bottle3.png"}, + wield_image = "tutorial_bottle3.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}, +}) +minetest.register_node("tutorial:bottle4", { + description = "Magic bottle lv.4", + drawtype = "plantlike", + tiles = {"tutorial_bottle4.png"}, + wield_image = "tutorial_bottle4.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}, +}) +minetest.register_node("tutorial:bottle5", { + description = "Magic bottle lv.5", + drawtype = "plantlike", + tiles = {"tutorial_bottle5.png"}, + wield_image = "tutorial_bottle5.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}, +}) +minetest.register_node("tutorial:bottle6", { + description = "Magic bottle lv.6", + drawtype = "plantlike", + tiles = {"tutorial_bottle6.png"}, + wield_image = "tutorial_bottle6.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}, +}) +minetest.register_node("tutorial:bottle7", { + description = "Magic bottle lv.7", + drawtype = "plantlike", + tiles = {"tutorial_bottle7.png"}, + wield_image = "tutorial_bottle7.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}, +}) +minetest.register_node("tutorial:bottle8", { + description = "Magic bottle lv.8", + drawtype = "plantlike", + tiles = {"tutorial_bottle8.png"}, + wield_image = "tutorial_bottle8.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}, +}) +minetest.register_node("tutorial:bottle9", { + description = "Magic bottle lv.9", + drawtype = "plantlike", + tiles = {"tutorial_bottle9.png"}, + wield_image = "tutorial_bottle9.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}, +}) +minetest.register_node("tutorial:bottle10", { + description = "Magic bottle lv.10", + drawtype = "plantlike", + tiles = {"tutorial_bottle10.png"}, + wield_image = "tutorial_bottle10.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}, +}) +minetest.register_node("tutorial:bottle11", { + description = "Magic bottle lv.11", + drawtype = "plantlike", + tiles = {"tutorial_bottle11.png"}, + wield_image = "tutorial_bottle11.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}, +}) +minetest.register_node("tutorial:bottle12", { + description = "Magic bottle lv.12", + drawtype = "plantlike", + tiles = {"tutorial_bottle12.png"}, + wield_image = "tutorial_bottle12.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}, +}) +minetest.register_node("tutorial:megablock4",{ + tiles = {"tutorial_megablock4.png"}, + description = "Mega block Lv.4", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:megablock3",{ + tiles = {"tutorial_megablock3.png"}, + description = "Mega block Lv.3", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +--v.0.6.6 +minetest.register_node("tutorial:megablock2",{ + tiles = {"tutorial_megablock2.png"}, + description = "Mega block Lv.2", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:megablock1",{ + tiles = {"tutorial_megablock1.png"}, + description = "Mega block lv.1", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:diamondblock2",{ + tiles = {"tutorial_diamondblock2.png"}, + description = "Diamond block lv.2", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:dunklematerie1",{ + tiles = {"tutorial_dunklematerie1.png"}, + description = "Dark matter Lv.1", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:dunklematerie2",{ + tiles = {"tutorial_dunklematerie2.png"}, + description = "Dark matter Lv.2", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:dunklematerie3",{ + tiles = {"tutorial_dunklematerie3.png"}, + description = "Dark matter Lv.3", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:dunklematerie4",{ + tiles = {"tutorial_dunklematerie4.png"}, + description = "Dark matter Lv.4", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:dunklematerie5",{ + tiles = {"tutorial_dunklematerie5.png"}, + description = "Dark matter Lv.5", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:dunklematerie6",{ + tiles = {"tutorial_dunklematerie6.png"}, + description = "Dark matter Lv.6", + groups = {snappy=6,choppy=0,oddly_breakable_by_hand=0,flammable=0}, +}) +minetest.register_node("tutorial:obsidian2",{ + tiles = {"tutorial_obsidian2.png"}, + description = "Obsidian Lv.2", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, +}) +minetest.register_node("tutorial:obsidian3",{ + tiles = {"tutorial_obsidian3.png"}, + description = "Obsidian Lv.3", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, +}) +minetest.register_node("tutorial:obsidian4",{ + tiles = {"tutorial_obsidian4.png"}, + description = "Obsidian Lv.4", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, +}) +minetest.register_node("tutorial:obsidian5",{ + tiles = {"tutorial_obsidian5.png"}, + description = "Obsidian Lv.5", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, +}) +minetest.register_node("tutorial:obsidian6",{ + description = "Obsidian Lv.6", + tiles = {"tutorial_obsidian6.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=0}, +}) +minetest.register_node("tutorial:thunder", { + description = "Thunder", + drawtype = "plantlike", + tiles = {{ + name="tutorial_thunder.png", + }}, + light_source = 12, + walkable = false, + buildable_to = true, + damage_per_second = 5, + groups = {dig_immediate=3}, +}) +minetest.register_node("tutorial:lightstone",{ + tiles = {"tutorial_lightstone.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, + light_source = LIGHT_MAX-1, + description = "Lightstone", +}) +minetest.register_node("tutorial:stampfi",{ + description = "Stampfi (the name of a turtle)", + tiles = {"tutorial_1.1.png","tutorial_1.2.png","tutorial_1.3.png","tutorial_1.4.png", "tutorial_1.5.png" ,"tutorial_1.6.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, +}) +minetest.register_node("tutorial:stampfi_ei",{ + description = "Stampfi egg (the name of a turtle)", + tiles = {"tutorial_stampfi_ei.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, +}) +minetest.register_node("tutorial:redstone",{ + description = "Magical red block", + tiles = {"tutorial_redstone.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, +}) \ No newline at end of file diff --git a/mods/tutorial/basic/ore.lua b/mods/tutorial/basic/ore.lua new file mode 100644 index 0000000..55dd5bb --- /dev/null +++ b/mods/tutorial/basic/ore.lua @@ -0,0 +1,151 @@ +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_regnum", + wherein = "default:stone", + clust_scarcity = 20*20*20, + clust_num_ores = 1, + clust_size = 1, + height_min = -31000, + height_max = -600, + flags = "absheight", +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_blau", + wherein = "default:stone", + clust_scarcity = 12*12*12, + clust_num_ores = 1, + clust_size = 1, + height_min = -31000, + height_max = -100, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_rot", + wherein = "default:stone", + clust_scarcity = 12*12*12, + clust_num_ores = 1, + clust_size = 1, + height_min = -31000, + height_max = -100, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_titan", + wherein = "default:stone", + clust_scarcity = 16*16*16, + clust_num_ores = 1, + clust_size = 1, + height_min = -31000, + height_max = -400, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_admin", + wherein = "default:stone", + clust_scarcity = 18*18*18, + clust_num_ores = 1, + clust_size = 1, + height_min = -31000, + height_max = -500, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_uranium", + wherein = "default:stone", + clust_scarcity = 8*8*8, + clust_num_ores = 8, + clust_size = 3, + height_min = -31000, + height_max = 64, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_uranium", + wherein = "default:stone", + clust_scarcity = 24*24*24, + clust_num_ores = 27, + clust_size = 6, + height_min = -31000, + height_max = 0, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_white", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 3, + clust_size = 2, + y_min = -15, + y_max = 2, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_white", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = -63, + y_max = -16, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_white", + wherein = "default:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -64, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_white", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = -64, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_black", + wherein = "default:stone", + clust_scarcity = 12 * 12 * 12, + clust_num_ores = 3, + clust_size = 2, + y_min = -15, + y_max = 2, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_black", + wherein = "default:stone", + clust_scarcity = 9 * 9 * 9, + clust_num_ores = 5, + clust_size = 3, + y_min = -63, + y_max = -16, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_black", + wherein = "default:stone", + clust_scarcity = 7 * 7 * 7, + clust_num_ores = 5, + clust_size = 3, + y_min = -31000, + y_max = -64, +}) +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_black", + wherein = "default:stone", + clust_scarcity = 24 * 24 * 24, + clust_num_ores = 27, + clust_size = 6, + y_min = -31000, + y_max = -64, +}) \ No newline at end of file diff --git a/mods/tutorial/basic/other.lua b/mods/tutorial/basic/other.lua new file mode 100644 index 0000000..e5f6365 --- /dev/null +++ b/mods/tutorial/basic/other.lua @@ -0,0 +1,4431 @@ +minetest.register_on_joinplayer(function(player) + minetest.setting_set("node_highlighting", "box") + minetest.setting_set("disable_anticheat", "true") + minetest.setting_set("bones_mode", "keep") + minetest.setting_set("time_speed", "0") + minetest.set_timeofday(0.5) + local player_inv = player:get_inventory() + local g1 = player_inv:get_stack("gem", 1):get_name() + local g2 = player_inv:get_stack("gem", 2):get_name() + local g3 = player_inv:get_stack("gem", 3):get_name() + local g4 = player_inv:get_stack("gem", 4):get_name() + local g5 = player_inv:get_stack("gem", 5):get_name() + local g21 = player_inv:get_stack("2gem", 1):get_name() + local g22 = player_inv:get_stack("2gem", 2):get_name() + local g23 = player_inv:get_stack("2gem", 3):get_name() + local g24 = player_inv:get_stack("2gem", 4):get_name() + local g25 = player_inv:get_stack("2gem", 5):get_name() + local gg1 = 0 + local gg2 = 0 + local gg3 = 0 + local gg4 = 0 + local gg5 = 0 + local gg21 = 0 + local gg22 = 0 + local gg23 = 0 + local gg24 = 0 + local gg25 = 0 + if g1 == "tutorial:magic_gem1" then + gg1 = 1 + end + if g2 == "tutorial:magic_gem2" then + gg2 = 1 + end + if g3 == "tutorial:magic_gem3" then + gg3 = 1 + end + if g4 == "tutorial:magic_gem4" then + gg4 = 1 + end + if g5 == "tutorial:magic_gem5" then + gg5 = 1 + end + if g21 == "tutorial:magic_gem1" then + gg21 = 1 + end + if g22 == "tutorial:magic_gem2" then + gg22 = 1 + end + if g23 == "tutorial:magic_gem3" then + gg23 = 1 + end + if g24 == "tutorial:magic_gem4" then + gg24 = 1 + end + if g25 == "tutorial:magic_gem5" then + gg25 = 1 + end + if gg1 == 1 and gg2 == 1 and gg3 == 1 and gg4 == 1 and gg5 == 1 then + local punched_player_privs = minetest.get_player_privs(player:get_player_name()) + punched_player_privs["home"] = true + punched_player_privs["zoom"] = true + minetest.set_player_privs(player:get_player_name(), punched_player_privs) + end + if gg21 == 1 and gg22 == 1 and gg23 == 1 and gg24 == 1 and gg25 == 1 then + local punched_player_privs = minetest.get_player_privs(player:get_player_name()) + punched_player_privs["fast"] = true + minetest.set_player_privs(player:get_player_name(), punched_player_privs) + end +end) +minetest.register_on_shutdown(function() + minetest.setting_set("disable_anticheat", "false") + minetest.setting_set("bones_mode", "bones") + minetest.setting_set("time_speed", "72") +end) +local gem = {} +gem.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("gem", 5) + player_inv:set_size("2gem", 5) + local g1 = player_inv:get_stack("gem", 1):get_name() + local g2 = player_inv:get_stack("gem", 2):get_name() + local g3 = player_inv:get_stack("gem", 3):get_name() + local g4 = player_inv:get_stack("gem", 4):get_name() + local g5 = player_inv:get_stack("gem", 5):get_name() + local g21 = player_inv:get_stack("2gem", 1):get_name() + local g22 = player_inv:get_stack("2gem", 2):get_name() + local g23 = player_inv:get_stack("2gem", 3):get_name() + local g24 = player_inv:get_stack("2gem", 4):get_name() + local g25 = player_inv:get_stack("2gem", 5):get_name() + formspec = "size[8,8.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[8,8.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."image[1.5,1.25;1,1;tutorial_gem1.png]" + .."image[2.5,1.25;1,1;tutorial_gem2.png]" + .."image[3.5,1.25;1,1;tutorial_gem3.png]" + .."image[4.5,1.25;1,1;tutorial_gem4.png]" + .."image[5.5,1.25;1,1;tutorial_gem5.png]" + if g1 == "tutorial:magic_gem1" and g2 == "tutorial:magic_gem2" and g3 == "tutorial:magic_gem3" and g4 == "tutorial:magic_gem4" and g5 == "tutorial:magic_gem5" then + else + formspec = formspec + .."list[current_player;gem;1.5,1.25;5,1;]" + end + if g21 == "tutorial:magic_gem1" and g22 == "tutorial:magic_gem2" and g23 == "tutorial:magic_gem3" and g24 == "tutorial:magic_gem4" and g25 == "tutorial:magic_gem5" then + formspec = formspec + .."image[1.5,2.25;1,1;tutorial_gem1.png]" + .."image[2.5,2.25;1,1;tutorial_gem2.png]" + .."image[3.5,2.25;1,1;tutorial_gem3.png]" + .."image[4.5,2.25;1,1;tutorial_gem4.png]" + .."image[5.5,2.25;1,1;tutorial_gem5.png]" + else + if g1 == "tutorial:magic_gem1" and g2 == "tutorial:magic_gem2" and g3 == "tutorial:magic_gem3" and g4 == "tutorial:magic_gem4" and g5 == "tutorial:magic_gem5" then + formspec = formspec + .."list[current_player;2gem;1.5,2.25;5,1;]" + .."image[1.5,2.25;1,1;tutorial_gem1.png]" + .."image[2.5,2.25;1,1;tutorial_gem2.png]" + .."image[3.5,2.25;1,1;tutorial_gem3.png]" + .."image[4.5,2.25;1,1;tutorial_gem4.png]" + .."image[5.5,2.25;1,1;tutorial_gem5.png]" + end + end + formspec = formspec + .."list[current_player;main;0,4.25;8,1;]" + .."list[current_player;main;0,5.5;8,3;8]" + return formspec +end +local crafting5 = {} +crafting5.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("gem1", 8) + player_inv:set_size("gem2", 8) + formspec = "size[10,8.3]" + .."background[10,8.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."list[current_player;gem1;2,1;8,1;]" + .."label[0,1.2;Gem fragment]" + .."list[current_player;gem2;2,2;8,1;]" + .."label[0,2.2;Uranium Ingot]" + .."button[4,3.3;2,0.5;craftgem;craft]" + .."list[current_player;main;1,4.25;8,1;]" + .."list[current_player;main;1,5.5;8,3;8]" + return formspec +end +minetest.register_on_player_receive_fields(function(player, formname, fields) + local player_inv = player:get_inventory() + player_inv:set_size("rew", 1) + player_inv:set_size("rewb", 1) + local rew = player_inv:get_stack("rew", 1):get_count() + local rewb = player_inv:get_stack("rewb", 1):get_count() + player_inv:set_size("a1", 1) + player_inv:set_size("a2", 1) + player_inv:set_size("a3", 1) + player_inv:set_size("a4", 1) + player_inv:set_size("a5", 1) + player_inv:set_size("a6", 1) + player_inv:set_size("a7", 1) + player_inv:set_size("a8", 1) + player_inv:set_size("a9", 1) + player_inv:set_size("a10", 1) + player_inv:set_size("a11", 1) + player_inv:set_size("a12", 1) + player_inv:set_size("a13", 1) + player_inv:set_size("a14", 1) + player_inv:set_size("a15", 1) + player_inv:set_size("a16", 1) + player_inv:set_size("a17", 1) + player_inv:set_size("a18", 1) + player_inv:set_size("a19", 1) + player_inv:set_size("a20", 1) + player_inv:set_size("a21", 1) + player_inv:set_size("a22", 1) + player_inv:set_size("a23", 1) + player_inv:set_size("a24", 1) + player_inv:set_size("a25", 1) + player_inv:set_size("a26", 1) + player_inv:set_size("a27", 1) + player_inv:set_size("a28", 1) + player_inv:set_size("a29", 1) + player_inv:set_size("a30", 1) + player_inv:set_size("a31", 1) + player_inv:set_size("a32", 1) + player_inv:set_size("a33", 1) + player_inv:set_size("a34", 1) + player_inv:set_size("a35", 1) + player_inv:set_size("a36", 1) + player_inv:set_size("a37", 1) + player_inv:set_size("a38", 1) + player_inv:set_size("a39", 1) + player_inv:set_size("a40", 1) + player_inv:set_size("a41", 1) + player_inv:set_size("a42", 1) + player_inv:set_size("a43", 1) + player_inv:set_size("a44", 1) + player_inv:set_size("a45", 1) + player_inv:set_size("a46", 1) + player_inv:set_size("a47", 1) + player_inv:set_size("a48", 1) + player_inv:set_size("a49", 1) + player_inv:set_size("a50", 1) + local a1 = player_inv:get_stack("a1", 1):get_count() + local a2 = player_inv:get_stack("a2", 1):get_count() + local a3 = player_inv:get_stack("a3", 1):get_count() + local a4 = player_inv:get_stack("a4", 1):get_count() + local a5 = player_inv:get_stack("a5", 1):get_count() + local a6 = player_inv:get_stack("a6", 1):get_count() + local a7 = player_inv:get_stack("a7", 1):get_count() + local a8 = player_inv:get_stack("a8", 1):get_count() + local a9 = player_inv:get_stack("a9", 1):get_count() + local a10 = player_inv:get_stack("a10", 1):get_count() + local a11 = player_inv:get_stack("a11", 1):get_count() + local a12 = player_inv:get_stack("a12", 1):get_count() + local a13 = player_inv:get_stack("a13", 1):get_count() + local a14 = player_inv:get_stack("a14", 1):get_count() + local a15 = player_inv:get_stack("a15", 1):get_count() + local a16 = player_inv:get_stack("a16", 1):get_count() + local a17 = player_inv:get_stack("a17", 1):get_count() + local a18 = player_inv:get_stack("a18", 1):get_count() + local a19 = player_inv:get_stack("a19", 1):get_count() + local a20 = player_inv:get_stack("a20", 1):get_count() + local a21 = player_inv:get_stack("a21", 1):get_count() + local a22 = player_inv:get_stack("a22", 1):get_count() + local a23 = player_inv:get_stack("a23", 1):get_count() + local a24 = player_inv:get_stack("a24", 1):get_count() + local a25 = player_inv:get_stack("a25", 1):get_count() + local a26 = player_inv:get_stack("a26", 1):get_count() + local a27 = player_inv:get_stack("a27", 1):get_count() + local a28 = player_inv:get_stack("a28", 1):get_count() + local a29 = player_inv:get_stack("a29", 1):get_count() + local a30 = player_inv:get_stack("a30", 1):get_count() + local a31 = player_inv:get_stack("a31", 1):get_count() + local a32 = player_inv:get_stack("a32", 1):get_count() + local a33 = player_inv:get_stack("a33", 1):get_count() + local a34 = player_inv:get_stack("a34", 1):get_count() + local a35 = player_inv:get_stack("a35", 1):get_count() + local a36 = player_inv:get_stack("a36", 1):get_count() + local a37 = player_inv:get_stack("a37", 1):get_count() + local a38 = player_inv:get_stack("a38", 1):get_count() + local a39 = player_inv:get_stack("a39", 1):get_count() + local a40 = player_inv:get_stack("a40", 1):get_count() + local a41 = player_inv:get_stack("a41", 1):get_count() + local a42 = player_inv:get_stack("a42", 1):get_count() + local a43 = player_inv:get_stack("a43", 1):get_count() + local a44 = player_inv:get_stack("a44", 1):get_count() + local a45 = player_inv:get_stack("a45", 1):get_count() + local a46 = player_inv:get_stack("a46", 1):get_count() + local a47 = player_inv:get_stack("a47", 1):get_count() + local a48 = player_inv:get_stack("a48", 1):get_count() + local a49 = player_inv:get_stack("a49", 1):get_count() + local a50 = player_inv:get_stack("a50", 1):get_count() + local d1 = 0 + if a1 == 1 then + d1 = d1+1 + end + if a2 == 1 then + d1 = d1+1 + end + if a3 == 1 then + d1 = d1+1 + end + if a4 == 1 then + d1 = d1+1 + end + if a5 == 1 then + d1 = d1+1 + end + if a6 == 1 then + d1 = d1+1 + end + if a7 == 1 then + d1 = d1+1 + end + if a8 == 1 then + d1 = d1+1 + end + if a9 == 1 then + d1 = d1+1 + end + if a10 == 1 then + d1 = d1+1 + end + if a11 == 1 then + d1 = d1+1 + end + if a12 == 1 then + d1 = d1+1 + end + if a13 == 1 then + d1 = d1+1 + end + if a14 == 1 then + d1 = d1+1 + end + if a15 == 1 then + d1 = d1+1 + end + if a16 == 1 then + d1 = d1+1 + end + if a17 == 1 then + d1 = d1+1 + end + if a18 == 1 then + d1 = d1+1 + end + if a19 == 1 then + d1 = d1+1 + end + if a18 == 1 then + d1 = d1+1 + end + if a21 == 1 then + d1 = d1+1 + end + if a22 == 1 then + d1 = d1+1 + end + if a23 == 1 then + d1 = d1+1 + end + if a24 == 1 then + d1 = d1+1 + end + if a25 == 1 then + d1 = d1+1 + end + if a26 == 1 then + d1 = d1+1 + end + if a27 == 1 then + d1 = d1+1 + end + if a28 == 1 then + d1 = d1+1 + end + if a29 == 1 then + d1 = d1+1 + end + if a30 == 1 then + d1 = d1+1 + end + if a31 == 1 then + d1 = d1+1 + end + if a32 == 1 then + d1 = d1+1 + end + if a33 == 1 then + d1 = d1+1 + end + if a34 == 1 then + d1 = d1+1 + end + if a35 == 1 then + d1 = d1+1 + end + if a36 == 1 then + d1 = d1+1 + end + if a37 == 1 then + d1 = d1+1 + end + if a38 == 1 then + d1 = d1+1 + end + if a39 == 1 then + d1 = d1+1 + end + if a40 == 1 then + d1 = d1+1 + end + if a41 == 1 then + d1 = d1+1 + end + if a42 == 1 then + d1 = d1+1 + end + if a43 == 1 then + d1 = d1+1 + end + if a44 == 1 then + d1 = d1+1 + end + if a45 == 1 then + d1 = d1+1 + end + if a46 == 1 then + d1 = d1+1 + end + if a47 == 1 then + d1 = d1+1 + end + if a48 == 1 then + d1 = d1+1 + end + if a49 == 1 then + d1 = d1+1 + end + if a50 == 1 then + d1 = d1+1 + end + if fields.rew then + if d1 > 24 and rew == 0 and player_inv:room_for_item("main", "mobs:knight_1248_egg") then + player_inv:add_item("main", "mobs:knight_1248_egg") + player_inv:add_item("rew", "default:dirt") + minetest.chat_send_all(player:get_player_name().." has 25 Regnum things and is able to spawn a 1248 Knight") + end + end + if fields.rewb then + if d1 > 49 and rewb == 0 and player_inv:room_for_item("main", "tutorial:hammer") then + player_inv:add_item("main", "tutorial:hammer") + player_inv:add_item("rewb", "default:dirt") + minetest.chat_send_all(player:get_player_name().." has 50 Regnum things and is able to repair the color stick") + end + end + if fields.gem then + inventory_plus.set_inventory_formspec(player, gem.get_formspec(player)) + end + if fields.main or fields.inven then + local player_inv = player:get_inventory() + local g1 = player_inv:get_stack("gem", 1):get_name() + local g2 = player_inv:get_stack("gem", 2):get_name() + local g3 = player_inv:get_stack("gem", 3):get_name() + local g4 = player_inv:get_stack("gem", 4):get_name() + local g5 = player_inv:get_stack("gem", 5):get_name() + local g21 = player_inv:get_stack("2gem", 1):get_name() + local g22 = player_inv:get_stack("2gem", 2):get_name() + local g23 = player_inv:get_stack("2gem", 3):get_name() + local g24 = player_inv:get_stack("2gem", 4):get_name() + local g25 = player_inv:get_stack("2gem", 5):get_name() + local gg1 = 0 + local gg2 = 0 + local gg3 = 0 + local gg4 = 0 + local gg5 = 0 + local gg21 = 0 + local gg22 = 0 + local gg23 = 0 + local gg24 = 0 + local gg25 = 0 + if g1 == "tutorial:magic_gem1" then + gg1 = 1 + end + if g2 == "tutorial:magic_gem2" then + gg2 = 1 + end + if g3 == "tutorial:magic_gem3" then + gg3 = 1 + end + if g4 == "tutorial:magic_gem4" then + gg4 = 1 + end + if g5 == "tutorial:magic_gem5" then + gg5 = 1 + end + if g21 == "tutorial:magic_gem1" then + gg21 = 1 + end + if g22 == "tutorial:magic_gem2" then + gg22 = 1 + end + if g23 == "tutorial:magic_gem3" then + gg23 = 1 + end + if g24 == "tutorial:magic_gem4" then + gg24 = 1 + end + if g25 == "tutorial:magic_gem5" then + gg25 = 1 + end + if gg1 == 1 and gg2 == 1 and gg3 == 1 and gg4 == 1 and gg5 == 1 then + local punched_player_privs = minetest.get_player_privs(player:get_player_name()) + punched_player_privs["home"] = true + punched_player_privs["zoom"] = true + minetest.set_player_privs(player:get_player_name(), punched_player_privs) + end + if gg21 == 1 and gg22 == 1 and gg23 == 1 and gg24 == 1 and gg25 == 1 then + local punched_player_privs = minetest.get_player_privs(player:get_player_name()) + punched_player_privs["fast"] = true + minetest.set_player_privs(player:get_player_name(), punched_player_privs) + end + end + if fields.craftgem then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("gem0", 1) + player_inv:set_size("2gem0", 1) + local gem = player_inv:get_stack("gem0", 1):get_count() + local gem2 = player_inv:get_stack("2gem0", 1):get_count() + local g11 = player_inv:get_stack("gem1", 1):get_name() + local g12 = player_inv:get_stack("gem1", 2):get_name() + local g13 = player_inv:get_stack("gem1", 3):get_name() + local g14 = player_inv:get_stack("gem1", 4):get_name() + local g15 = player_inv:get_stack("gem1", 5):get_name() + local g16 = player_inv:get_stack("gem1", 6):get_name() + local g17 = player_inv:get_stack("gem1", 7):get_name() + local g18 = player_inv:get_stack("gem1", 8):get_name() + local g21 = player_inv:get_stack("gem2", 1):get_name() + local g22 = player_inv:get_stack("gem2", 2):get_name() + local g23 = player_inv:get_stack("gem2", 3):get_name() + local g24 = player_inv:get_stack("gem2", 4):get_name() + local g25 = player_inv:get_stack("gem2", 5):get_name() + local g26 = player_inv:get_stack("gem2", 6):get_name() + local g27 = player_inv:get_stack("gem2", 7):get_name() + local g28 = player_inv:get_stack("gem2", 8):get_name() + local y1 = player_inv:get_stack("gem1", 1):get_count() + local y2 = player_inv:get_stack("gem1", 2):get_count() + local y3 = player_inv:get_stack("gem1", 3):get_count() + local y4 = player_inv:get_stack("gem1", 4):get_count() + local y5 = player_inv:get_stack("gem1", 5):get_count() + local y6 = player_inv:get_stack("gem1", 6):get_count() + local y7 = player_inv:get_stack("gem1", 7):get_count() + local y8 = player_inv:get_stack("gem1", 8):get_count() + local yy1 = player_inv:get_stack("gem2", 1):get_count() + local yy2 = player_inv:get_stack("gem2", 2):get_count() + local yy3 = player_inv:get_stack("gem2", 3):get_count() + local yy4 = player_inv:get_stack("gem2", 4):get_count() + local yy5 = player_inv:get_stack("gem2", 5):get_count() + local yy6 = player_inv:get_stack("gem2", 6):get_count() + local yy7 = player_inv:get_stack("gem2", 7):get_count() + local yy8 = player_inv:get_stack("gem2", 8):get_count() + local k = 0 + local d = 0 + if g11 == g12 and g12 == g13 and g13 == g14 and g14 == g15 and g15 == g16 and g16 == g17 and g17 == g18 then + if g11 == "tutorial:gem_fragment" then + k = k+1 + end + end + if g11 == g12 and g12 == g13 and g13 == g14 and g14 == g15 and g15 == g16 and g16 == g17 and g17 == g18 then + if g11 == "tutorial:gem_fragment2" then + k = k+2 + end + end + if g21 == g22 and g22 == g23 and g23 == g24 and g24 == g25 and g25 == g26 and g26 == g27 and g27 == g28 then + if g21 == "technic:uranium_ingot" then + k = k+1 + end + end + if k == 2 then + if gem == 0 then + if player_inv:room_for_item("main", "tutorial:magic_gem1") == true then + player_inv:add_item("main", "tutorial:magic_gem1") + player_inv:add_item("gem0", "default:dirt") + d = 1 + end + elseif gem == 1 then + if player_inv:room_for_item("main", "tutorial:magic_gem2") == true then + player_inv:add_item("main", "tutorial:magic_gem2") + player_inv:add_item("gem0", "default:dirt") + d = 1 + end + elseif gem == 2 then + if player_inv:room_for_item("main", "tutorial:magic_gem3") == true then + player_inv:add_item("main", "tutorial:magic_gem3") + player_inv:add_item("gem0", "default:dirt") + d = 1 + end + elseif gem == 3 then + if player_inv:room_for_item("main", "tutorial:magic_gem4") == true then + player_inv:add_item("main", "tutorial:magic_gem4") + player_inv:add_item("gem0", "default:dirt") + d = 1 + end + elseif gem == 4 then + if player_inv:room_for_item("main", "tutorial:magic_gem5") == true then + player_inv:add_item("main", "tutorial:magic_gem5") + player_inv:add_item("gem0", "default:dirt") + d = 1 + end + end + if d == 1 then + player_inv:set_stack("gem1", 1, "tutorial:gem_fragment "..(y1-1)) + player_inv:set_stack("gem1", 2, "tutorial:gem_fragment "..(y2-1)) + player_inv:set_stack("gem1", 3, "tutorial:gem_fragment "..(y3-1)) + player_inv:set_stack("gem1", 4, "tutorial:gem_fragment "..(y4-1)) + player_inv:set_stack("gem1", 5, "tutorial:gem_fragment "..(y5-1)) + player_inv:set_stack("gem1", 6, "tutorial:gem_fragment "..(y6-1)) + player_inv:set_stack("gem1", 7, "tutorial:gem_fragment "..(y7-1)) + player_inv:set_stack("gem1", 8, "tutorial:gem_fragment "..(y8-1)) + player_inv:set_stack("gem2", 1, "technic:uranium_ingot "..(yy1-1)) + player_inv:set_stack("gem2", 2, "technic:uranium_ingot "..(yy2-1)) + player_inv:set_stack("gem2", 3, "technic:uranium_ingot "..(yy3-1)) + player_inv:set_stack("gem2", 4, "technic:uranium_ingot "..(yy4-1)) + player_inv:set_stack("gem2", 5, "technic:uranium_ingot "..(yy5-1)) + player_inv:set_stack("gem2", 6, "technic:uranium_ingot "..(yy6-1)) + player_inv:set_stack("gem2", 7, "technic:uranium_ingot "..(yy7-1)) + player_inv:set_stack("gem2", 8, "technic:uranium_ingot "..(yy8-1)) + end + end + if k == 3 then + if gem2 == 0 then + if player_inv:room_for_item("main", "tutorial:magic_gem1") == true then + player_inv:add_item("main", "tutorial:magic_gem1") + player_inv:add_item("2gem0", "default:dirt") + d = 1 + end + elseif gem2 == 1 then + if player_inv:room_for_item("main", "tutorial:magic_gem2") == true then + player_inv:add_item("main", "tutorial:magic_gem2") + player_inv:add_item("2gem0", "default:dirt") + d = 1 + end + elseif gem2 == 2 then + if player_inv:room_for_item("main", "tutorial:magic_gem3") == true then + player_inv:add_item("main", "tutorial:magic_gem3") + player_inv:add_item("2gem0", "default:dirt") + d = 1 + end + elseif gem2 == 3 then + if player_inv:room_for_item("main", "tutorial:magic_gem4") == true then + player_inv:add_item("main", "tutorial:magic_gem4") + player_inv:add_item("2gem0", "default:dirt") + d = 1 + end + elseif gem2 == 4 then + if player_inv:room_for_item("main", "tutorial:magic_gem5") == true then + player_inv:add_item("main", "tutorial:magic_gem5") + player_inv:add_item("2gem0", "default:dirt") + d = 1 + end + end + if d == 1 then + player_inv:set_stack("gem1", 1, "tutorial:gem_fragment2 "..(y1-1)) + player_inv:set_stack("gem1", 2, "tutorial:gem_fragment2 "..(y2-1)) + player_inv:set_stack("gem1", 3, "tutorial:gem_fragment2 "..(y3-1)) + player_inv:set_stack("gem1", 4, "tutorial:gem_fragment2 "..(y4-1)) + player_inv:set_stack("gem1", 5, "tutorial:gem_fragment2 "..(y5-1)) + player_inv:set_stack("gem1", 6, "tutorial:gem_fragment2 "..(y6-1)) + player_inv:set_stack("gem1", 7, "tutorial:gem_fragment2 "..(y7-1)) + player_inv:set_stack("gem1", 8, "tutorial:gem_fragment2 "..(y8-1)) + player_inv:set_stack("gem2", 1, "technic:uranium_ingot "..(yy1-1)) + player_inv:set_stack("gem2", 2, "technic:uranium_ingot "..(yy2-1)) + player_inv:set_stack("gem2", 3, "technic:uranium_ingot "..(yy3-1)) + player_inv:set_stack("gem2", 4, "technic:uranium_ingot "..(yy4-1)) + player_inv:set_stack("gem2", 5, "technic:uranium_ingot "..(yy5-1)) + player_inv:set_stack("gem2", 6, "technic:uranium_ingot "..(yy6-1)) + player_inv:set_stack("gem2", 7, "technic:uranium_ingot "..(yy7-1)) + player_inv:set_stack("gem2", 8, "technic:uranium_ingot "..(yy8-1)) + end + end + inventory_plus.set_inventory_formspec(player, crafting5.get_formspec(player)) + end +end) + +local rg18 = {} +rg18.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;II. 4. Ores]" + .."label[0,1.3;You can find ores in the depth.]" + .."label[0,1.6;Where to find ores:]" + .."label[0,1.9;Silver: y < -2]" + .."label[0,2.2;Mithril: y < -512]" + .."label[0,2.5;Tin: y < 8]" + .."label[0,2.8;Coal: y < 0]" + .."label[0,3.1;Iron: y < 2]" + .."label[0,3.4;Mese: y < -64]" + .."label[0,3.7;Gold: y < -64]" + .."label[0,4.0;Diamond: y < -128]" + .."label[0,4.3;Copper: y < ?]" + .."label[0,4.6;Black/White: y < 2]" + .."label[0,4.9;Uranium: y < -128]" + .."label[0,5.2;Admin: y < -500]" + .."label[0,5.5;Titan: y < -400]" + .."label[0,5.8;Rot/Blau: y < -100]" + .."label[0,6.1;Regnum: y < -600]" + .."label[0,6.4;Technic Uranium: y < -80, y > -300]" + .."label[0,6.7;Cromium: y < -100]" + .."label[0,7.0;Zinc: y < 2]" + .."label[0,7.3;Ruby/Sapphire: y < -300]" + .."label[0,7.6;Amethyst: y < -600]" + .."label[0,7.9;Shadow/Pearl: y < -900]" + .."label[0,8.2;Emerald: y < -1200]" + .."button[2,10; 2,0.5;rg17;<]" + .."button[4,10; 2,0.5;rg19;>]" + return formspec +end +local rg19 = {} +rg19.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;II. 5. Armor, Battleaxes & Guns]" + .."label[0,1.3;There are over 120 differend battleaxes and armors]" + .."label[0,1.6;Here you can see witch kind of armor/battleaxe/gun you have to craft:]" + .."label[0,1.9;(starter)]" + .."label[0,2.2;mega lv.1-20]" + .."label[0,2.5;cloud lv.1-20]" + .."label[0,2.8;super lv.1-4]" + .."label[0,3.1;uranium lv.1-2]" + .."label[0,3.4;energie lv.1-12]" + .."label[0,3.7;superenergy lv.1-7]" + .."label[0,4.0;crystal lv.1-5]" + .."label[0,4.3;ultra lv.1-25]" + .."label[0,4.6;superultra]" + .."label[0,4.9;arena lv.1-4]" + .."label[0,5.2;titan lv.1-10]" + .."label[0,5.5;legendary lv.1-6]" + .."label[0,5.8;superlegendary]" + .."label[0,6.1;regnum]" + .."label[0,6.4;There are differend modes for the superlegendary armor/battleaxe/gun]" + .."label[0,6.7;and also for the regnum:]" + .."label[0,7.0;With the armor you can jump higher and run faster,]" + .."label[0,7.3;with the battleaxe you can dig water/lava]" + .."label[0,7.3;and the gun will add thunder]" + .."label[0,7.6;The legendary battleaxe (or higher) will double some ores if you dig them.]" + .."button[2,10; 2,0.5;rg18;<]" + .."button[4,10; 2,0.5;rg20;>]" + return formspec +end +local rg20 = {} +rg20.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;II. 6. Chat commands]" + .."label[0,1.3;/admin for all admin tools]" + .."label[0,1.6;/regnum for all regnum things]" + .."label[0,1.9;/rank to see your rank]" + .."button[2,10; 2,0.5;rg19;<]" + return formspec +end +minetest.register_on_dignode(function(pos, node, player) + if player == nil then + return + end + local name = player:get_player_name() + local inv = player:get_inventory() + if node.name == "tutorial:geschenk_dragon" then + local x = math.random(0,15) + if x == 8 then + inv:set_size("dgon", 1) + local dgon = inv:get_stack("dgon", 1):get_count() + if dgon == 0 then + inv:add_item("main", "tutorial:dragon_schluessel") + inv:add_item("dgon", "default:dirt") + end + else + inv:add_item("main", "default:coal_lump 20") + end + end + if node.name == "tutorial:geschenk_tortoise" then + local x = math.random(0,15) + if x == 8 then + inv:set_size("ttoise", 1) + local dgon = inv:get_stack("ttoise", 1):get_count() + if dgon == 0 then + inv:add_item("main", "tutorial:tortoise_schluessel") + inv:add_item("ttoise", "default:dirt") + end + else + inv:add_item("main", "default:coal_lump 20") + end + end + if node.name == "tutorial:geschenk_gem" then + local x = math.random(0,8) + if x == 2 then + inv:add_item("main", "tutorial:gem_fragment") + elseif x == 5 then + inv:add_item("main", "tutorial:geschenk_legend") + elseif x == 4 then + inv:add_item("main", "tutorial:geschenk_legend") + end + end + if node.name == "tutorial:geschenk_gem2" then + local x = math.random(0,8) + if x == 2 then + inv:add_item("main", "tutorial:gem_fragment2") + elseif x == 5 then + inv:add_item("main", "tutorial:geschenk_legend") + elseif x == 4 then + inv:add_item("main", "tutorial:geschenk_legend") + end + end + if node.name == "tutorial:geschenk" then + local x = math.random(1, 29) + if x < 10 then + inv:add_item("main", "tutorial:lightstone 1") + elseif x < 18 then + inv:add_item("main", "default:mese_crystal_fragment 2") + elseif x < 24 then + inv:add_item("main", "default:ice") + elseif x < 27 then + inv:add_item("main", "tutorial:dunklematerie4") + else + inv:add_item("main", "tutorial:geschenk") + end + end + if node.name == "tutorial:geschenk_silber" then + local x = math.random(1, 20) + if x < 10 then + inv:add_item("main", "tutorial:lightstone 2") + elseif x < 18 then + inv:add_item("main", "default:mese_crystal_fragment 4") + elseif x < 20 then + inv:add_item("main", "tutorial:arena_block") + else + inv:add_item("main", "tutorial:arena_glass") + end + end + if node.name == "tutorial:geschenk_gold" then + local x = math.random(1, 17) + if x < 2 then + inv:add_item("main", "mobs:dirt_monster_egg") + elseif x < 3 then + inv:add_item("main", "mobs:stone_monster_egg") + elseif x < 4 then + inv:add_item("main", "mobs:sand_monster_egg") + elseif x < 5 then + inv:add_item("main", "mobs:desert_sand_monster_egg") + elseif x < 6 then + inv:add_item("main", "mobs:snow_monster_egg") + elseif x < 7 then + inv:add_item("main", "mobs:desert_stone_monster_egg") + elseif x < 8 then + inv:add_item("main", "mobs:ice_monster_egg") + elseif x < 9 then + inv:add_item("main", "mobs:grass_monster_egg") + elseif x < 10 then + inv:add_item("main", "mobs:rainforest_litter_monster_egg") + elseif x < 11 then + inv:add_item("main", "mobs:dry_grass_monster_egg") + elseif x < 12 then + inv:add_item("main", "mobs:silver_sand_monster_egg") + else + inv:add_item("main", "default:mese_crystal") + end + end + if node.name == "tutorial:geschenk_platin" then + local x = math.random(1, 10) + if x < 5 then + inv:add_item("main", "default:mese_crystal 2") + elseif x < 8 then + inv:add_item("main", "tutorial:geschenk_wool") + elseif x < 10 then + inv:add_item("main", "tutorial:geschenk_wool1") + else + inv:add_item("main", "tutorial:geschenk_wool2") + end + end + if node.name == "tutorial:geschenk_wool1" then + local x = math.random(1, 6) + if x == 1 then + inv:add_item("main", "wool:yellow 2") + elseif x == 2 then + inv:add_item("main", "wool:white 2") + elseif x == 3 then + inv:add_item("main", "wool:violet 2") + elseif x == 4 then + inv:add_item("main", "wool:red 2") + elseif x == 5 then + inv:add_item("main", "wool:orange 2") + else + inv:add_item("main", "wool:blue 2") + end + end + if node.name == "tutorial:geschenk_wool2" then + local x = math.random(1, 15) + if x == 1 then + inv:add_item("main", "wool:yellow 3") + elseif x == 2 then + inv:add_item("main", "wool:white 3") + elseif x == 3 then + inv:add_item("main", "wool:violet 3") + elseif x == 4 then + inv:add_item("main", "wool:red 3") + elseif x == 5 then + inv:add_item("main", "wool:pink 3") + elseif x == 6 then + inv:add_item("main", "wool:orange 3") + elseif x == 7 then + inv:add_item("main", "wool:magenta 3") + elseif x == 8 then + inv:add_item("main", "wool:grey 3") + elseif x == 9 then + inv:add_item("main", "wool:green 3") + elseif x == 10 then + inv:add_item("main", "wool:dark_grey 3") + elseif x == 11 then + inv:add_item("main", "wool:dark_green 3") + elseif x == 12 then + inv:add_item("main", "wool:cyan 3") + elseif x == 13 then + inv:add_item("main", "wool:brown 3") + elseif x == 14 then + inv:add_item("main", "wool:blue 3") + else + inv:add_item("main", "wool:black 3") + end + end +end) +local rg14 = {} +rg14.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 12. Gems]" + .."label[0,1.3;Use the gem inventory to get home and fast privs.]" + .."label[0,1.6;How to use Gems:]" + .."label[0,1.9;1. Craft a dragon in the DNA craft.]" + .."label[0,2.2;2. Craft a dragon crystal.]" + .."label[0,2.5;3. Place the drgagon crystal in the dragon inventory.]" + .."label[0,2.8;4. Collect gifts (gem).]" + .."label[0,3.1;5. Get gem fragents from then gift (gem).]" + .."label[0,3.4;6. Craft in the gem craft a magic gem.]" + .."label[0,3.7;7. Place the magic gems in the right order in the gems inventory.]" + .."button[2,10; 2,0.5;rg13;<]" + .."button[4,10; 2,0.5;rg21;>]" + return formspec +end +local rg15 = {} +rg15.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;II. 1. Gifts]" + .."label[0,1.3;Craft gifts to get nice differend things.]" + .."label[0,1.6;Gift: gift, dark matter Lv.4, ice, mese, lightstone]" + .."label[0,1.9;Gift (silver): arena glass, arena block, mese, lightstone, gift]" + .."label[0,2.2;Gift (gold): dirt/sand/stone monster spawn-egg, mese]" + .."label[0,2.5;Gift (platinum): wool gift, colored wool gift lv.1/2]" + .."label[0,2.8;Deathgift: mese, lightstone, ice, deathgift, regnum part]" + .."label[0,3.1;Deathgift (silver): mese, lightstone, ice, deathgift, regnum part]" + .."label[0,3.4;Deathgift (gold): mese, lightstone, ice, deathgift, regnum part]" + .."label[0,3.7;Deathgift (platinum): mese, lightstone, ice, deathgift, regnum part]" + .."label[0,4.0;Gift (DNA): every spawn-egg (but no monsters)]" + .."label[0,4.3;Gift (legendary): ruby, sapphire, amethyst, pearl, shadow, emerald, legendary crystal]" + .."label[0,4.6;Gift (regnum): gold/green/purple/red/blue regnum pixel]" + .."label[0,4.9;Wool gift: white wool]" + .."label[0,5.2;Colored wool gift lv.1: yellow/white/violetta/red/orange/blue wool]" + .."label[0,5.5;Colored wool gift lv.2: every wool]" + .."label[0,5.8;Gift (dragon): coal lump, dragon key]" + .."label[0,6.1;Gift (gem): gift (legendary), gem fragment]" + .."button[2,10; 2,0.5;rg25;<]" + .."button[4,10; 2,0.5;rg16;>]" + return formspec +end +local rg16 = {} +rg16.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;II. 2. Mobs]" + .."label[0,1.3;There are monsters, animals and pets in Regnum]" + .."label[0,1.6;The monster will kill you, but can get wrapping paper and DNA strings or tears]" + .."label[0,1.9;You can get water and sky animals from the dna gift.]" + .."label[0,2.2;There are turtles, sharks, gulls and many other.]" + .."label[0,2.5;If you use the DNA craft you can get pets.]" + .."label[0,2.8;The dog and the cat will kill monsters and collect the wrapping paper]" + .."label[0,3.1;The sheep will produce wool.]" + .."label[0,3.4;The dagon will produce a dragon gift or a gem gift if you have a regnum crystal.]" + .."label[0,3.4;The fox will produce a fox key and treasures.]" + .."label[0,3.4;The tortoise will produce a tortoise gift or a gem gift if you have a regnum crystal.]" + .."label[0,3.7;You can chage the color of the pets and they can folow you.]" + .."button[2,10; 2,0.5;rg15;<]" + .."button[4,10; 2,0.5;rg17;>]" + return formspec +end +local rg17 = {} +rg17.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;II. 3. Xp & Level]" + .."label[0,1.3;If you dig some things you can get Xp]" + .."label[0,1.6;There are 6 differend kind of Xp:]" + .."label[0,1.9;green, red, blue, grey, yellow and cyan Xp.]" + .."label[0,2.2;If you dig uranium you will get 1 green Xp]" + .."label[0,2.5;If you reach level green 100, you will get the lilabattleaxe.]" + .."label[0,2.8;With it, you can dig red and blue ore.]" + .."label[0,3.1;From them you can get red and blue Xp]" + .."label[0,3.4;If you reach level red/blue 20, you will get a red/blue xp block.]" + .."label[0,3.7;With them you can craft the xp block]" + .."label[0,4.0;From the xp block you will get grey xp.]" + .."label[0,4.3;If you reach level gray 100, you will get the xp block (yellow)]" + .."label[0,4.6;From the xp block (yellow) you will get yellow xp.]" + .."label[0,4.9;If you reach level yellow 100, you will get the goldenkey]" + .."label[0,5.2;With the goldenkey you can use the Crystal craft]" + .."label[0,5.5;From there you can get cristal bottles]" + .."label[0,5.8;If you reach level cyan 25, you have completed all levels]" + .."label[0,6.1;Look in the xp guide for your xp and how much xp you need.]" + .."label[0,6.4;If you reach a new level you will get a reward]" + .."label[0,6.7;Look in Xp items for the reward]" + .."button[2,10; 2,0.5;rg16;<]" + .."button[4,10; 2,0.5;rg18;>]" + return formspec +end +local rg10 = {} +rg10.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 8. Achievements]" + .."label[0,1.3;Here you can see your achievement]" + .."label[0,1.6;If you have all 50 achievements,]" + .."label[0,1.9;you will have all Regnum things and you have completed the Regnum Game]" + .."label[0,2.2;If you have 25 or 50 achivements you will get a reward]" + .."label[0,2.5;There is also one spezial achievment.]" + .."label[0,2.8;You will get it for one year Regnum.]" + .."label[0,3.1;How to use Achievements:]" + .."label[0,3.4;1. Craft the needed items]" + .."label[0,3.7;2. Place them at the right place in the inventory]" + .."label[0,4.0;3. Get 25 or 50 achievements]" + .."label[0,4.3;4. Presse 'reward']" + .."label[0,4.6;5. Presse also 'spezial']" + .."button[2,10; 2,0.5;rg9;<]" + .."button[4,10; 2,0.5;rg11;>]" + return formspec +end +local rg11 = {} +rg11.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 9. Regnum Guide]" + .."label[0,1.3;You can read something about the subgame]" + .."label[0,1.6;How to use Regnum Guide:]" + .."label[0,1.9;1. Read]" + .."button[2,10; 2,0.5;rg10;<]" + .."button[4,10; 2,0.5;rg12;>]" + return formspec +end +local rg12 = {} +rg12.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 10. Awards]" + .."label[0,1.3;Here you can see your awards]" + .."label[0,1.6;If you have all awards, you will get the 'all awards' achievement.]" + .."label[0,1.9;How to use Awards:]" + .."label[0,2.2;1. Dig for the ores]" + .."label[0,2.5;2. For the '???' awards you have to die next to a block]" + .."label[0,2.8;3. Find out which block]" + .."button[2,10; 2,0.5;rg11;<]" + .."button[4,10; 2,0.5;rg13;>]" + return formspec +end +local rg13 = {} +rg13.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 11. Xp items]" + .."label[0,1.3;Here you can get your rewards if you reach a new level.]" + .."label[0,1.6;How to use Xp items:]" + .."label[0,1.9;1. Reach a new level]" + .."label[0,2.2;2. Take coins/max level blocks/keys/battleaxes/xp blocks from the 1st page]" + .."label[0,2.5;3. Take green level blocks from the 2nd page]" + .."label[0,2.8;4. Take red/blue level blocks from the 3rd page]" + .."label[0,3.1;5. Take grey level blocks from the 4th page]" + .."label[0,3.4;6. Take yellow level blocks from the 5th page]" + .."label[0,3.7;7. Take cyan level blocks from the 6th page]" + .."button[2,10; 2,0.5;rg12;<]" + .."button[4,10; 2,0.5;rg14;>]" + return formspec +end +local rg8 = {} +rg8.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 6. Craft Guide]" + .."label[0,1.3;Here you can see how to craft items]" + .."label[0,1.6;Click on one item to see the crafting]" + .."label[0,1.9;You can also see 4x4 and 5x5 craftings,]" + .."label[0,2.2;You can see the craftings for battleaxes/armor/gun ]" + .."label[0,2.5;in the Regnum Craft Guide.]" + .."label[0,2.8;How to use Craft guide:]" + .."label[0,3.1;1. Click on one item and you see the crafting above]" + .."label[0,3.4;2. Click on the arrows below to switch to an other page]" + .."label[0,3.7;3. Click on the arrows below 'main' to see the last]" + .."label[0,4.0; crafting you use]" + .."label[0,4.3;4. Click on the arrows above and below the item to see]" + .."label[0,4.6; differend craftings for the same things]" + .."label[0,4.9;5. Click on the 'Regnum' for armor/battleaxe/gun crafts]" + .."button[2,10; 2,0.5;rg7;<]" + .."button[4,10; 2,0.5;rg9;>]" + return formspec +end +local rg9 = {} +rg9.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 7. Crystals]" + .."label[0,1.3;Here you can get legendary fire balls]" + .."label[0,1.6;If you dig a legendary gift you can get a legendary crystal]" + .."label[0,1.9;With every new cristal you get, get can get better fire balls]" + .."label[0,2.2;After some time you will get the fire ball]" + .."label[0,2.5;If you have a crystalkey,the time will be halved]" + .."label[0,2.8;How to use Cristals:]" + .."label[0,3.1;1. Craft legendary gifts and dig them]" + .."label[0,3.4;2. If you have a cristal,click on a]" + .."label[0,3.7; ball damage, thunder damage and thunder length level]" + .."label[0,4.0;3. Click on create]" + .."label[0,4.3;4. Get the crystalkey]" + .."label[0,4.6;5. wait (seconds above 'crate') and you will get a fire ball]" + .."button[2,10; 2,0.5;rg8;<]" + .."button[4,10; 2,0.5;rg10;>]" + return formspec +end +local xpi0 = {} +xpi0.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local xpi01_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi01",{ + on_take = function(inv, listname, index, stack, player) + player:get_inventory():remove_item(listname,stack) + end, + allow_put = function(inv, listname, index, stack, player) + return 0 + 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 0 + end, + }) + xpi01_inv:set_size("xpi01", 15) + player_inv:set_size("xpi01", 15) + xpi01_inv:set_size("xpi02", 15) + player_inv:set_size("xpi02", 15) + xpi01_inv:set_size("xpi03", 15) + player_inv:set_size("xpi03", 15) + xpi01_inv:set_size("xpi04", 15) + player_inv:set_size("xpi04", 15) + xpi01_inv:set_size("xpi05", 15) + player_inv:set_size("xpi05", 15) + xpi01_inv:set_size("xpi06", 15) + player_inv:set_size("xpi06", 15) + for i=1, 15 do + local stack = player_inv:get_stack("xpi01", i) + xpi01_inv:set_stack("xpi01", i, stack) + local stack = player_inv:get_stack("xpi02", i) + xpi01_inv:set_stack("xpi02", i, stack) + local stack = player_inv:get_stack("xpi03", i) + xpi01_inv:set_stack("xpi03", i, stack) + local stack = player_inv:get_stack("xpi04", i) + xpi01_inv:set_stack("xpi04", i, stack) + local stack = player_inv:get_stack("xpi05", i) + xpi01_inv:set_stack("xpi05", i, stack) + local stack = player_inv:get_stack("xpi06", i) + xpi01_inv:set_stack("xpi06", i, stack) + end + formspec = "size[18,12.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."list[current_player;main;5,7.5;8,1;]" + .."list[current_player;main;5,8.75;8,3;8]" + .."background[18,12.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[detached:"..player:get_player_name().."_xpi01;xpi01;3,1.5;5,1]" + .."list[detached:"..player:get_player_name().."_xpi01;xpi02;3,2.7;5,1]" + .."list[detached:"..player:get_player_name().."_xpi01;xpi03;3,3.9;5,1]" + .."list[detached:"..player:get_player_name().."_xpi01;xpi04;10,1.5;5,1]" + .."list[detached:"..player:get_player_name().."_xpi01;xpi05;10,2.7;5,1]" + .."list[detached:"..player:get_player_name().."_xpi01;xpi06;10,3.9;5,1]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi01;xpi01]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi01;xpi02]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi01;xpi03]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi01;xpi04]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi01;xpi05]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi01;xpi06]" + .."label[3,1.1;Green Xp Items]" + .."label[3,2.3;Red Xp Items]" + .."label[3,3.5;Blue Xp Items]" + .."label[10,1.1;Grey Xp Items]" + .."label[10,2.3;Yellow Xp Items]" + .."label[10,3.5;Cyan Xp Items]" + .."button[9,12;2,0.5;xpi;>]" + return formspec +end + +local xpi = {} +xpi.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local xpi1_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi1",{ + on_take = function(inv, listname, index, stack, player) + player:get_inventory():remove_item(listname,stack) + end, + allow_put = function(inv, listname, index, stack, player) + return 0 + 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 0 + end, + }) + xpi1_inv:set_size("xpi1", 100) + player_inv:set_size("xpi1", 100) + for i=1, 100 do + local stack = player_inv:get_stack("xpi1", i) + xpi1_inv:set_stack("xpi1", i, stack) + end + formspec = "size[18,12.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."list[current_player;main;5,7.5;8,1;]" + .."list[current_player;main;5,8.75;8,3;8]" + .."background[18,12.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[detached:"..player:get_player_name().."_xpi1;xpi1;0,1.3;18,6]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi1;xpi1]" + .."label[0,0.7;Green Level Blocks]" + .."button[9,12;2,0.5;xpi2;>]" + .."button[7,12;2,0.5;xpi0;<]" + return formspec +end + +local xpi2 = {} +xpi2.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local xpi2_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi2",{ + on_take = function(inv, listname, index, stack, player) + player:get_inventory():remove_item(listname,stack) + end, + allow_put = function(inv, listname, index, stack, player) + return 0 + 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 0 + end, + }) + local xpi3_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi3",{ + on_take = function(inv, listname, index, stack, player) + player:get_inventory():remove_item(listname,stack) + end, + allow_put = function(inv, listname, index, stack, player) + return 0 + end, + allow_take = function(inv, listname, index, stack, player) + return 1 + end, + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + return 0 + end, + }) + xpi2_inv:set_size("xpi2", 20) + player_inv:set_size("xpi2", 20) + xpi3_inv:set_size("xpi3", 20) + player_inv:set_size("xpi3", 20) + for i=1, 20 do + local stack = player_inv:get_stack("xpi2", i) + xpi2_inv:set_stack("xpi2", i, stack) + local stack2 = player_inv:get_stack("xpi3", i) + xpi3_inv:set_stack("xpi3", i, stack2) + end + xpi2_inv:set_size("xpi2", 20) + player_inv:set_size("xpi2", 20) + xpi3_inv:set_size("xpi3", 20) + player_inv:set_size("xpi3", 20) + formspec = "size[18,12.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."list[current_player;main;5,7.5;8,1;]" + .."list[current_player;main;5,8.75;8,3;8]" + .."background[18,12.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[detached:"..player:get_player_name().."_xpi2;xpi2;0,1.3;18,2]" + .."list[detached:"..player:get_player_name().."_xpi3;xpi3;0,3.9;18,2]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi2;xpi2]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi3;xpi3]" + .."label[0,0.7;Red Level Blocks]" + .."label[0,3.3;Blue Level Blocks]" + .."button[7,12;2,0.5;xpi;<]" + .."button[9,12;2,0.5;xpi3;>]" + return formspec +end +local xpi3 = {} +xpi3.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local xpi4_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi4",{ + on_take = function(inv, listname, index, stack, player) + player:get_inventory():remove_item(listname,stack) + end, + allow_put = function(inv, listname, index, stack, player) + return 0 + 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 0 + end, + }) + xpi4_inv:set_size("xpi4", 100) + player_inv:set_size("xp4", 100) + for i=1, 100 do + local stack = player_inv:get_stack("xpi4", i) + xpi4_inv:set_stack("xpi4", i, stack) + end + xpi4_inv:set_size("xpi4", 100) + player_inv:set_size("xpi4", 100) + formspec = "size[18,12.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."list[current_player;main;5,7.5;8,1;]" + .."list[current_player;main;5,8.75;8,3;8]" + .."background[18,12.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[detached:"..player:get_player_name().."_xpi4;xpi4;0,1.3;18,6]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi4;xpi4]" + .."label[0,0.7;Grey Level Blocks]" + .."button[7,12;2,0.5;xpi2;<]" + .."button[9,12;2,0.5;xpi4;>]" + return formspec +end +local rg6 = {} +rg6.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 4. Crafting]" + .."label[0,1.3;There are 10 differend crafts:]" + .."label[0,1.6;The '4x4 craft' to craft in a 4x4 field]" + .."label[0,1.9;The '5x5 craft' to craft in a 5x5 field]" + .."label[0,2.2;The Regnum craft to craft a pixeled regnum]" + .."label[0,2.5;The DNA craft to get mobs]" + .."label[0,2.8;The Gem craft to get magic gems]" + .."label[0,3.1;The Mine craft to level you mining laser/drill up.]" + .."label[0,3.4;The Cooking craft, works like furnaces but without fuel]" + .."label[0,3.7;The Medallion craft to get medallions]" + .."label[0,4.0;The Crystal craft to get crystalbottles]" + .."label[0,4.3;The Trophy craft to get trophys]" + .."label[0,4.6;Look in the Craft Guide which item you can craft in 4x4 and 5x5]" + .."label[0,4.9;For Regnum craft you need regnum pixel.You can get them from Regnum gifts.]" + .."label[0,5.2;For DNA craft you need dna strings.You can get them from monsters.]" + .."label[0,5.5;You will get an animal spawn-egg if this animal has 100%.]" + .."label[0,5.8;For Gem craft you need gem fragments and uranium ingots]" + .."label[0,6.1;For Cooking use uranium to get fuel]" + .."label[0,6.4;For Mine craft you need the mining laser/drill and green coins]" + .."label[0,6.7;to level you mining laser/drill up.]" + .."label[0,7.0;For Medallion craft you need Medallions.You will get them if you run around.]" + .."label[0,7.3;For Crystal craft you have to wait.]" + .."label[0,7.6;For each crystal you have, the crafting will take 200s less.]" + .."label[0,7.9;For Trophy craft you need Tears.You can get them from monsters in the same color.]" + .."label[0,8.2;How to use Crafting:]" + .."label[0,8.5;1. For 4x4, 5x5, Regnum, Gem, Medallion craft and Cooking you need a key]" + .."label[0,8.8;2. Craft the key and put the needed items in the fields]" + .."label[0,9.1;3. Press 'craft/use/build DNA']" + .."button[2,10; 2,0.5;rg5;<]" + .."button[4,10; 2,0.5;rg7;>]" + return formspec +end +local rg7 = {} +rg7.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 5. Skins]" + .."label[0,1.3;Here you can change your skin]" + .."label[0,1.6;Click on one skin to change your skin]" + .."label[0,1.9;If you have the pixeled Regnum key you can use the see-through skin]" + .."label[0,2.2;If you have the knight Regnum key you can use the knight skins]" + .."label[0,2.5;How to use Skins:]" + .."label[0,2.8;1. Click on one skin]" + .."label[0,3.1;2. Craft the Pixeled Regnum key]" + .."label[0,3.4;3. Press 'see-through skin']" + .."label[0,3.7;4. Craft the Knight key]" + .."label[0,4.0;5. Press 'knight']" + .."button[2,10; 2,0.5;rg6;<]" + .."button[4,10; 2,0.5;rg8;>]" + return formspec +end +local rg2 = {} +rg2.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1; CONTENS]" + .."label[0,1.3; I. Inventory]" + .."label[0,1.6; 1. Bags]" + .."label[0,1.9; 2. Armor]" + .."label[0,2.2; 3. XP Guide]" + .."label[0,2.5; 4. Crafting]" + .."label[0,2.8; 5. Skins]" + .."label[0,3.1; 6. Craft Guide]" + .."label[0,3.4; 7. Crystals]" + .."label[0,3.7; 8. Achievements]" + .."label[0,4.0; 9. Regnum guide]" + .."label[0,4.3; 10. Awards]" + .."label[0,4.6; 11. Xp items]" + .."label[0,4.9; 12. Gems]" + .."label[0,5.2; 13. Artifacts]" + .."label[0,5.5; 14. Medallion]" + .."label[0,5.8; 15. Treasures]" + .."label[0,6.1; 16. Trophys]" + .."label[0,6.4; 17. Music]" + .."label[0,6.7; II. Game]" + .."label[0,7.0; 1. Gifts]" + .."label[0,7.3; 2. Mobs]" + .."label[0,7.6; 3. Xp & Level]" + .."label[0,7.9; 4. Ores]" + .."label[0,8.2; 5. Armor, Battleaxes & Guns]" + .."label[0,8.5; 6. Chat commands]" + .."button[2,10; 2,0.5;rg1;<]" + .."button[4,10; 2,0.5;rg3;>]" + return formspec +end +local rg3 = {} +rg3.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 1. Bags]" + .."label[0,1.3;You can use bags to take more things with you.]" + .."label[0,1.6;You can have up to eight bags, every bag has eight level.]" + .."label[0,1.9;Every level for a bag give you more space for it.]" + .."label[0,2.2;If you want more then four bags you need also a bagkey.]" + .."label[0,2.5;With each new bagkey level you can get one more bag.]" + .."label[0,2.8;How to use bags:]" + .."label[0,3.1;1. You have to craft a bag (look in the craft guide how).]" + .."label[0,3.4;2. Put the bag in one of the fields and use the button below.]" + .."label[0,3.7;3. You can put your items in the new inventory.]" + .."label[0,4.0;4. If you put the bag in the lower field and you have no bagkey]" + .."label[0,4.3; you can not use it]" + .."label[0,4.6;5. You can use shift to move items quickly (as you use for chests)]" + .."button[2,10; 2,0.5;rg2;<]" + .."button[4,10; 2,0.5;rg4;>]" + return formspec +end +local rg4 = {} +rg4.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 2. Armor]" + .."label[0,1.3;You can use armor to save you from monsters.]" + .."label[0,1.6;There are 5 differend armor parts.]" + .."label[0,1.9;Make your armor invisible to other when you have the armorkey.]" + .."label[0,2.2;Some armor will also save you from lava and fire]" + .."label[0,2.5;and there is also armor that regenerate you.]" + .."label[0,2.8;Get the Protectionkey to get a save bonus]" + .."label[0,3.1;How to use Armor:]" + .."label[0,3.4;1. You have to craft some armor (look in the craft guide how).]" + .."label[0,3.7;2. You can see five fields on the left.]" + .."label[0,4.0;3. You have to put the helmet at the top and the boots at the bottom.(like in minecraft)]" + .."label[0,4.3;4. You have to put the shield in the right field]" + .."label[0,4.6;5. Craft the armor key and than you can press 'armor off']" + .."label[0,4.9;6. Craft the protectionkey to get a save bonus]" + .."button[2,10; 2,0.5;rg3;<]" + .."button[4,10; 2,0.5;rg5;>]" + return formspec +end +local rg5 = {} +rg5.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 3. XP Guide]" + .."label[0,1.3;If you dig uranium/red ore/blue ore/Xp block/Xp Block (yellow)]" + .."label[0,1.6;or you place a Crystalbottle, you will get xp.]" + .."label[0,1.9;Use the Xp Guide to see how many xp you have]" + .."label[0,2.2;If you want to see how many xp you need for the next level]" + .."label[0,2.5;you have to use the xp key]" + .."label[0,2.8;There are 6 differend kinds of xp.]" + .."label[0,3.1;How to use Xp Guide:]" + .."label[0,3.4;1. On the left you can see how many xp you have]" + .."label[0,3.7;2. Craft the xp key and than you can press 'xp green/red/blue/grey/yellow/cyan you need']" + .."button[2,10; 2,0.5;rg4;<]" + .."button[4,10; 2,0.5;rg6;>]" + return formspec +end +local rg = {} +rg.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;This is the first page of the Regnum guide.]" + .."label[0,1.3;Here you can get some basic informations]" + .."label[0,1.6;about my subgame:Regnum]" + .."label[0,1.9;I develop the Regnum subgame over the last 5 years]" + .."label[0,2.2;Thanks to:]" + .."label[0,2.5;NightmareLP who build a mod for my subgame]" + .."label[0,2.8;et77 who had some great ideas]" + .."label[0,3.1;wuschel1912 who tests the subgame]" + .."button[4,10;2,0.5;rg2;>]" + return formspec +end +minetest.register_on_dignode(function(pos, node, player) + if player == nil then + return + end + local name = player:get_player_name() + local inv = player:get_inventory() + if node.name == "tutorial:geschenk_dna" then + local x = math.random(0,15) + print (x) + if x == 0 then + inv:add_item("main", "mobs:watermob_crocodile_lg_egg") + elseif x == 1 then + inv:add_item("main", "mobs:watermob_crocodile_md_egg") + elseif x == 2 then + inv:add_item("main", "mobs:watermob_crocodile_sm_egg") + elseif x == 3 then + inv:add_item("main", "mobs:watermob_clownfish_egg") + elseif x == 4 then + inv:add_item("main", "mobs:watermob_tropical_fish_egg") + elseif x == 5 then + inv:add_item("main", "mobs:watermob_jellyfish_egg") + elseif x == 6 then + inv:add_item("main", "mobs:watermob_shark_sm_egg") + elseif x == 7 then + inv:add_item("main", "mobs:watermob_shark_md_egg") + elseif x == 8 then + inv:add_item("main", "mobs:watermob_shark_lg_egg") + elseif x == 9 then + inv:add_item("main", "mobs:watermob_turtle_lg_egg") + elseif x == 10 then + inv:add_item("main", "mobs:watermob_turtle_sm_egg") + elseif x == 11 then + inv:add_item("main", "mobs:skymob_butterfly_egg") + elseif x == 12 then + inv:add_item("main", "mobs:skymob_gull_egg") + elseif x == 13 then + inv:add_item("main", "mobs:skymob_bird_sm_egg") + elseif x == 14 then + inv:add_item("main", "mobs:skymob_bird_lg_egg") + elseif x == 15 then + inv:add_item("main", "mobs:skymob_bat_egg") + end + end +end) +local dna = {} +dna.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("dna", 8) + player_inv:set_size("dogdna", 1) + player_inv:set_size("catdna", 1) + player_inv:set_size("sheepdna", 1) + player_inv:set_size("dragondna", 1) + player_inv:set_size("foxdna", 1) + player_inv:set_size("tortoisedna", 1) + local dog = player_inv:get_stack("dogdna", 1):get_count() + local cat = player_inv:get_stack("catdna", 1):get_count() + local sheep = player_inv:get_stack("sheepdna", 1):get_count() + local dragon = player_inv:get_stack("dragondna", 1):get_count() + local fox = player_inv:get_stack("foxdna", 1):get_count() + local tortoise = player_inv:get_stack("tortoisedna", 1):get_count() + if cat == 20 then + if player_inv:room_for_item("main", "mobs:cat_egg") == true then + player_inv:add_item("catdna","default:dirt") + player_inv:add_item("main","mobs:cat_egg") + player_inv:add_item("a16","default:dirt") + percat = "" + else + percat = "100% " + end + elseif cat > 20 then + percat = "" + else + percat = (cat*5).."% " + end + if dog == 20 then + if player_inv:room_for_item("main", "mobs:dog_egg") == true then + player_inv:add_item("dogdna","default:dirt") + player_inv:add_item("main","mobs:dog_egg") + player_inv:add_item("a15","default:dirt") + perdog = "" + else + perdog = "100% " + end + elseif dog > 20 then + perdog = "" + else + perdog = (dog*5).."% " + end + if sheep == 20 then + if player_inv:room_for_item("main", "mobs:sheep_egg") == true then + player_inv:add_item("sheepdna","default:dirt") + player_inv:add_item("main","mobs:sheep_egg") + player_inv:add_item("a17","default:dirt") + persheep = "" + else + persheep = "100% " + end + elseif sheep > 20 then + persheep = "" + else + persheep = (sheep*5).."% " + end + if dragon == 25 then + if player_inv:room_for_item("main", "mobs:dragon_egg") == true then + player_inv:add_item("dragondna","default:dirt") + player_inv:add_item("main","mobs:dragon_egg") + player_inv:add_item("a18","default:dirt") + perdragon = "" + else + perdragon = "100% " + end + elseif dragon > 25 then + perdragon = "" + else + perdragon = (dragon*4).."% " + end + if fox == 25 then + if player_inv:room_for_item("main", "mobs:fox_egg") == true then + player_inv:add_item("foxdna","default:dirt") + player_inv:add_item("main","mobs:fox_egg") + player_inv:add_item("a29","default:dirt") + perfox = "" + else + perfox = "100% " + end + elseif fox > 25 then + perfox = "" + else + perfox = (fox*4).."% " + end + if tortoise == 50 then + if player_inv:room_for_item("main", "mobs:tortoise_egg") == true then + player_inv:add_item("tortoisedna","default:dirt") + player_inv:add_item("main","mobs:tortoise_egg") + player_inv:add_item("a30","default:dirt") + pertortoise = "" + else + pertortoise = "100% " + end + elseif tortoise > 50 then + pertortoise = "" + else + pertortoise = (tortoise*2).."% " + end + formspec = "size[8,9.5]" + .."background[8,9.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."button[4,0;2,0.5;mobpos;Mob positions]" + .."label[0,1;loading dog DNA...]" + .."label[0,1.4;loading cat DNA...]" + .."label[0,1.8;loading sheep DNA...]" + .."label[0,2.2;loading dragon DNA...]" + .."label[0,2.6;loading fox DNA...]" + .."label[0,3;loading tortoise DNA...]" + .."label[3,1;"..perdog.."complete]" + .."label[3,1.4;"..percat.."complete]" + .."label[3,1.8;"..persheep.."complete]" + .."label[3,2.2;"..perdragon.."complete]" + .."label[3,2.6;"..perfox.."complete]" + .."label[3,3;"..pertortoise.."complete]" + .."list[current_player;dna;0,3.6;8,1;]" + .."button[5,2.3;2,0.5;dnab;build DNA]" + .."list[current_player;main;0,5.5;8,1;]" + .."list[current_player;main;0,6.75;8,3;8]" + .."listring[current_player;main]" + .."listring[current_player;dna]" + return formspec +end +local mobpos = {} +mobpos.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("gem1", 8) + player_inv:set_size("gem2", 8) + local dog = "" + local cat = "" + local sheep = "" + local dragon = "" + local fox = "" + local tortoise = "" + local knight = "" + if player:get_attribute("dogx") ~= nil then + dog = player:get_attribute("dogx")..", "..player:get_attribute("dogy")..", "..player:get_attribute("dogz") + end + if player:get_attribute("catx") ~= nil then + cat = player:get_attribute("catx")..", "..player:get_attribute("caty")..", "..player:get_attribute("catz") + end + if player:get_attribute("sheepx") ~= nil then + sheep = player:get_attribute("sheepx")..", "..player:get_attribute("sheepy")..", "..player:get_attribute("sheepz") + end + if player:get_attribute("dragonx") ~= nil then + dragon = player:get_attribute("dragonx")..", "..player:get_attribute("dragony")..", "..player:get_attribute("dragonz") + end + if player:get_attribute("foxx") ~= nil then + fox = player:get_attribute("foxx")..", "..player:get_attribute("foxy")..", "..player:get_attribute("foxz") + end + if player:get_attribute("tortoisex") ~= nil then + tortoise = player:get_attribute("tortoisex")..", "..player:get_attribute("tortoisey")..", "..player:get_attribute("tortoisez") + end + if player:get_attribute("knightx") ~= nil then + knight = player:get_attribute("knightx")..", "..player:get_attribute("knighty")..", "..player:get_attribute("knightz") + end + formspec = "size[4,3]" + .."background[4,3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;dna;Back]" + .."button[2,0;2,0.5;main;Main]" + .."label[0,1;Dog pos:"..dog.."]" + .."label[0,1.3;Cat pos:"..cat.."]" + .."label[0,1.6;Sheep pos:"..sheep.."]" + .."label[0,1.9;Dragon pos:"..dragon.."]" + .."label[0,2.2;Fox pos:"..fox.."]" + .."label[0,2.5;Tortoise pos:"..tortoise.."]" + .."label[0,2.8;1248 Knight pos:"..knight.."]" + return formspec +end +minetest.register_on_player_receive_fields(function(player, formname, fields) + if fields.dna then + inventory_plus.set_inventory_formspec(player, dna.get_formspec(player)) + end + if fields.mobpos then + inventory_plus.set_inventory_formspec(player, mobpos.get_formspec(player)) + end + if fields.xpi then + inventory_plus.set_inventory_formspec(player, xpi.get_formspec(player)) + end + if fields.xpi0 then + inventory_plus.set_inventory_formspec(player, xpi0.get_formspec(player)) + end + if fields.xpi2 then + inventory_plus.set_inventory_formspec(player, xpi2.get_formspec(player)) + end + if fields.xpi3 then + inventory_plus.set_inventory_formspec(player, xpi3.get_formspec(player)) + end + if fields.rg then + inventory_plus.set_inventory_formspec(player, rg.get_formspec(player)) + end + if fields.rg1 then + inventory_plus.set_inventory_formspec(player, rg.get_formspec(player)) + end + if fields.rg2 then + inventory_plus.set_inventory_formspec(player, rg2.get_formspec(player)) + end + if fields.rg3 then + inventory_plus.set_inventory_formspec(player, rg3.get_formspec(player)) + end + if fields.rg4 then + inventory_plus.set_inventory_formspec(player, rg4.get_formspec(player)) + end + if fields.rg5 then + inventory_plus.set_inventory_formspec(player, rg5.get_formspec(player)) + end + if fields.rg6 then + inventory_plus.set_inventory_formspec(player, rg6.get_formspec(player)) + end + if fields.rg7 then + inventory_plus.set_inventory_formspec(player, rg7.get_formspec(player)) + end + if fields.rg8 then + inventory_plus.set_inventory_formspec(player, rg8.get_formspec(player)) + end + if fields.rg9 then + inventory_plus.set_inventory_formspec(player, rg9.get_formspec(player)) + end + if fields.rg10 then + inventory_plus.set_inventory_formspec(player, rg10.get_formspec(player)) + end + if fields.rg11 then + inventory_plus.set_inventory_formspec(player, rg11.get_formspec(player)) + end + if fields.rg12 then + inventory_plus.set_inventory_formspec(player, rg12.get_formspec(player)) + end + if fields.rg13 then + inventory_plus.set_inventory_formspec(player, rg13.get_formspec(player)) + end + if fields.rg14 then + inventory_plus.set_inventory_formspec(player, rg14.get_formspec(player)) + end + if fields.rg15 then + inventory_plus.set_inventory_formspec(player, rg15.get_formspec(player)) + end + if fields.rg16 then + inventory_plus.set_inventory_formspec(player, rg16.get_formspec(player)) + end + if fields.rg17 then + inventory_plus.set_inventory_formspec(player, rg17.get_formspec(player)) + end + if fields.rg18 then + inventory_plus.set_inventory_formspec(player, rg18.get_formspec(player)) + end + if fields.rg19 then + inventory_plus.set_inventory_formspec(player, rg19.get_formspec(player)) + end + if fields.rg20 then + inventory_plus.set_inventory_formspec(player, rg20.get_formspec(player)) + end + if fields.crafting5 then + inventory_plus.set_inventory_formspec(player, crafting5.get_formspec(player)) + end + if fields.dnab then + local player_inv = player:get_inventory() + local x1 = player_inv:get_stack("dna", 1):get_name() + local x2 = player_inv:get_stack("dna", 2):get_name() + local x3 = player_inv:get_stack("dna", 3):get_name() + local x4 = player_inv:get_stack("dna", 4):get_name() + local x5 = player_inv:get_stack("dna", 5):get_name() + local x6 = player_inv:get_stack("dna", 6):get_name() + local x7 = player_inv:get_stack("dna", 7):get_name() + local x8 = player_inv:get_stack("dna", 8):get_name() + local y1 = player_inv:get_stack("dna", 1):get_count() + local y2 = player_inv:get_stack("dna", 2):get_count() + local y3 = player_inv:get_stack("dna", 3):get_count() + local y4 = player_inv:get_stack("dna", 4):get_count() + local y5 = player_inv:get_stack("dna", 5):get_count() + local y6 = player_inv:get_stack("dna", 6):get_count() + local y7 = player_inv:get_stack("dna", 7):get_count() + local y8 = player_inv:get_stack("dna", 8):get_count() + local dog = player_inv:get_stack("dogdna", 1):get_count() + local cat = player_inv:get_stack("catdna", 1):get_count() + local sheep = player_inv:get_stack("sheepdna", 1):get_count() + local dragon = player_inv:get_stack("dragondna", 1):get_count() + local fox = player_inv:get_stack("foxdna", 1):get_count() + local tortoise = player_inv:get_stack("tortoisedna", 1):get_count() + if x1 == "tutorial:dna_string" and x2 == "tutorial:dna_string" and x3 == "tutorial:dna_string" and x4 == "tutorial:dna_string" and x5 == "tutorial:dna_string" and x6 == "tutorial:dna_string" and x7 == "tutorial:dna_string" and x8 == "tutorial:dna_string" then + player_inv:set_stack("dna", 1, "tutorial:dna_string "..(y1-1)) + player_inv:set_stack("dna", 2, "tutorial:dna_string "..(y2-1)) + player_inv:set_stack("dna", 3, "tutorial:dna_string "..(y3-1)) + player_inv:set_stack("dna", 4, "tutorial:dna_string "..(y4-1)) + player_inv:set_stack("dna", 5, "tutorial:dna_string "..(y5-1)) + player_inv:set_stack("dna", 6, "tutorial:dna_string "..(y6-1)) + player_inv:set_stack("dna", 7, "tutorial:dna_string "..(y7-1)) + player_inv:set_stack("dna", 8, "tutorial:dna_string "..(y8-1)) + local z = math.random(6) + if z == 1 then + if dog < 20 then + player_inv:add_item("dogdna","default:dirt") + end + elseif z == 2 then + if cat < 20 then + player_inv:add_item("catdna","default:dirt") + end + elseif z == 3 then + if sheep < 20 then + player_inv:add_item("sheepdna","default:dirt") + end + elseif z == 4 then + if dragon < 25 then + player_inv:add_item("dragondna","default:dirt") + end + elseif z == 5 then + if fox < 25 then + player_inv:add_item("foxdna","default:dirt") + end + elseif z == 6 then + if tortoise < 50 then + player_inv:add_item("tortoisedna","default:dirt") + end + end + end + if x1 == "tutorial:big_dna_string" and x2 == "tutorial:big_dna_string" and x3 == "tutorial:big_dna_string" and x4 == "tutorial:big_dna_string" and x5 == "tutorial:big_dna_string" and x6 == "tutorial:big_dna_string" and x7 == "tutorial:big_dna_string" and x8 == "tutorial:big_dna_string" then + player_inv:set_stack("dna", 1, "tutorial:big_dna_string "..(y1-1)) + player_inv:set_stack("dna", 2, "tutorial:big_dna_string "..(y2-1)) + player_inv:set_stack("dna", 3, "tutorial:big_dna_string "..(y3-1)) + player_inv:set_stack("dna", 4, "tutorial:big_dna_string "..(y4-1)) + player_inv:set_stack("dna", 5, "tutorial:big_dna_string "..(y5-1)) + player_inv:set_stack("dna", 6, "tutorial:big_dna_string "..(y6-1)) + player_inv:set_stack("dna", 7, "tutorial:big_dna_string "..(y7-1)) + player_inv:set_stack("dna", 8, "tutorial:big_dna_string "..(y8-1)) + player_inv:add_item("main","mobs:random_monster_egg") + end + inventory_plus.set_inventory_formspec(player, dna.get_formspec(player)) + end +end) +local ach = {} +ach.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("a1", 1) + player_inv:set_size("a2", 1) + player_inv:set_size("a3", 1) + player_inv:set_size("a4", 1) + player_inv:set_size("a5", 1) + player_inv:set_size("a6", 1) + player_inv:set_size("a7", 1) + player_inv:set_size("a8", 1) + player_inv:set_size("a9", 1) + player_inv:set_size("a10", 1) + player_inv:set_size("a11", 1) + player_inv:set_size("a12", 1) + player_inv:set_size("a13", 1) + player_inv:set_size("a14", 1) + player_inv:set_size("a15", 1) + player_inv:set_size("a16", 1) + player_inv:set_size("a17", 1) + player_inv:set_size("a18", 1) + player_inv:set_size("a19", 1) + player_inv:set_size("a20", 1) + player_inv:set_size("a21", 1) + player_inv:set_size("a22", 1) + player_inv:set_size("a23", 1) + player_inv:set_size("a24", 1) + player_inv:set_size("a25", 1) + player_inv:set_size("a26", 1) + player_inv:set_size("a27", 1) + player_inv:set_size("a28", 1) + player_inv:set_size("a29", 1) + player_inv:set_size("a30", 1) + player_inv:set_size("a31", 1) + player_inv:set_size("a32", 1) + player_inv:set_size("a33", 1) + player_inv:set_size("a34", 1) + player_inv:set_size("a35", 1) + player_inv:set_size("a36", 1) + player_inv:set_size("a37", 1) + player_inv:set_size("a38", 1) + player_inv:set_size("a39", 1) + player_inv:set_size("a40", 1) + player_inv:set_size("a41", 1) + player_inv:set_size("a42", 1) + player_inv:set_size("a43", 1) + player_inv:set_size("a44", 1) + player_inv:set_size("a45", 1) + player_inv:set_size("a46", 1) + player_inv:set_size("a47", 1) + player_inv:set_size("a48", 1) + player_inv:set_size("a49", 1) + player_inv:set_size("a50", 1) + local a1 = player_inv:get_stack("a1", 1):get_count() + local a2 = player_inv:get_stack("a2", 1):get_count() + local a3 = player_inv:get_stack("a3", 1):get_count() + local a4 = player_inv:get_stack("a4", 1):get_count() + local a5 = player_inv:get_stack("a5", 1):get_count() + local a6 = player_inv:get_stack("a6", 1):get_count() + local a7 = player_inv:get_stack("a7", 1):get_count() + local a8 = player_inv:get_stack("a8", 1):get_count() + local a9 = player_inv:get_stack("a9", 1):get_count() + local a10 = player_inv:get_stack("a10", 1):get_count() + local a11 = player_inv:get_stack("a11", 1):get_count() + local a12 = player_inv:get_stack("a12", 1):get_count() + local a13 = player_inv:get_stack("a13", 1):get_count() + local a14 = player_inv:get_stack("a14", 1):get_count() + local a15 = player_inv:get_stack("a15", 1):get_count() + local a16 = player_inv:get_stack("a16", 1):get_count() + local a17 = player_inv:get_stack("a17", 1):get_count() + local a18 = player_inv:get_stack("a18", 1):get_count() + local a19 = player_inv:get_stack("a19", 1):get_count() + local a20 = player_inv:get_stack("a20", 1):get_count() + local a21 = player_inv:get_stack("a21", 1):get_count() + local a22 = player_inv:get_stack("a22", 1):get_count() + local a23 = player_inv:get_stack("a23", 1):get_count() + local a24 = player_inv:get_stack("a24", 1):get_count() + local a25 = player_inv:get_stack("a25", 1):get_count() + local a26 = player_inv:get_stack("a26", 1):get_count() + local a27 = player_inv:get_stack("a27", 1):get_count() + local a28 = player_inv:get_stack("a28", 1):get_count() + local a29 = player_inv:get_stack("a29", 1):get_count() + local a30 = player_inv:get_stack("a30", 1):get_count() + local a31 = player_inv:get_stack("a31", 1):get_count() + local a32 = player_inv:get_stack("a32", 1):get_count() + local a33 = player_inv:get_stack("a33", 1):get_count() + local a34 = player_inv:get_stack("a34", 1):get_count() + local a35 = player_inv:get_stack("a35", 1):get_count() + local a36 = player_inv:get_stack("a36", 1):get_count() + local a37 = player_inv:get_stack("a37", 1):get_count() + local a38 = player_inv:get_stack("a38", 1):get_count() + local a39 = player_inv:get_stack("a39", 1):get_count() + local a40 = player_inv:get_stack("a40", 1):get_count() + local a41 = player_inv:get_stack("a41", 1):get_count() + local a42 = player_inv:get_stack("a42", 1):get_count() + local a43 = player_inv:get_stack("a43", 1):get_count() + local a44 = player_inv:get_stack("a44", 1):get_count() + local a45 = player_inv:get_stack("a45", 1):get_count() + local a46 = player_inv:get_stack("a46", 1):get_count() + local a47 = player_inv:get_stack("a47", 1):get_count() + local a48 = player_inv:get_stack("a48", 1):get_count() + local a49 = player_inv:get_stack("a49", 1):get_count() + local a50 = player_inv:get_stack("a50", 1):get_count() + local d1 = 0 + if a1 == 1 then + d1 = d1+1 + end + if a2 == 1 then + d1 = d1+1 + end + if a3 == 1 then + d1 = d1+1 + end + if a4 == 1 then + d1 = d1+1 + end + if a5 == 1 then + d1 = d1+1 + end + if a6 == 1 then + d1 = d1+1 + end + if a7 == 1 then + d1 = d1+1 + end + if a8 == 1 then + d1 = d1+1 + end + if a9 == 1 then + d1 = d1+1 + end + if a10 == 1 then + d1 = d1+1 + end + if a11 == 1 then + d1 = d1+1 + end + if a12 == 1 then + d1 = d1+1 + end + if a13 == 1 then + d1 = d1+1 + end + if a14 == 1 then + d1 = d1+1 + end + if a15 == 1 then + d1 = d1+1 + end + if a16 == 1 then + d1 = d1+1 + end + if a17 == 1 then + d1 = d1+1 + end + if a18 == 1 then + d1 = d1+1 + end + if a19 == 1 then + d1 = d1+1 + end + if a20 == 1 then + d1 = d1+1 + end + if a21 == 1 then + d1 = d1+1 + end + if a22 == 1 then + d1 = d1+1 + end + if a23 == 1 then + d1 = d1+1 + end + if a24 == 1 then + d1 = d1+1 + end + if a25 == 1 then + d1 = d1+1 + end + if a26 == 1 then + d1 = d1+1 + end + if a27 == 1 then + d1 = d1+1 + end + if a28 == 1 then + d1 = d1+1 + end + if a29 == 1 then + d1 = d1+1 + end + if a30 == 1 then + d1 = d1+1 + end + if a31 == 1 then + d1 = d1+1 + end + if a32 == 1 then + d1 = d1+1 + end + if a33 == 1 then + d1 = d1+1 + end + if a34 == 1 then + d1 = d1+1 + end + if a35 == 1 then + d1 = d1+1 + end + if a36 == 1 then + d1 = d1+1 + end + if a37 == 1 then + d1 = d1+1 + end + if a38 == 1 then + d1 = d1+1 + end + if a39 == 1 then + d1 = d1+1 + end + if a40 == 1 then + d1 = d1+1 + end + if a41 == 1 then + d1 = d1+1 + end + if a42 == 1 then + d1 = d1+1 + end + if a43 == 1 then + d1 = d1+1 + end + if a44 == 1 then + d1 = d1+1 + end + if a45 == 1 then + d1 = d1+1 + end + if a46 == 1 then + d1 = d1+1 + end + if a47 == 1 then + d1 = d1+1 + end + if a48 == 1 then + d1 = d1+1 + end + if a49 == 1 then + d1 = d1+1 + end + if a50 == 1 then + d1 = d1+1 + end + formspec = "size[10.5,11.3]" + .."background[10.5,11.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."button[4,0;2,0.5;achc;Spezial]" + .."image[0,1;0.8,0.8;tutorial_"..a1..".png]" + .."image[0,1.8;0.8,0.8;tutorial_"..a2..".png]" + .."image[0,2.6;0.8,0.8;tutorial_"..a3..".png]" + .."image[0,3.4;0.8,0.8;tutorial_"..a4..".png]" + .."image[0,4.2;0.8,0.8;tutorial_"..a5..".png]" + .."image[0,5;0.8,0.8;tutorial_"..a6..".png]" + .."image[0,5.8;0.8,0.8;tutorial_"..a7..".png]" + .."image[0,6.6;0.8,0.8;tutorial_"..a8..".png]" + .."image[0,7.4;0.8,0.8;tutorial_"..a9..".png]" + .."image[0,8.2;0.8,0.8;tutorial_"..a10..".png]" + .."image[0,9;0.8,0.8;tutorial_"..a11..".png]" + .."image[0,9.8;0.8,0.8;tutorial_"..a12..".png]" + .."image[0,10.6;0.8,0.8;tutorial_"..a13..".png]" + .."image[2.5,1.0;0.8,0.8;tutorial_"..a14..".png]" + .."image[2.5,1.8;0.8,0.8;tutorial_"..a15..".png]" + .."image[2.5,2.6;0.8,0.8;tutorial_"..a16..".png]" + .."image[2.5,3.4;0.8,0.8;tutorial_"..a17..".png]" + .."image[2.5,4.2;0.8,0.8;tutorial_"..a18..".png]" + .."image[2.5,5;0.8,0.8;tutorial_"..a19..".png]" + .."image[2.5,5.8;0.8,0.8;tutorial_"..a20..".png]" + .."image[2.5,6.6;0.8,0.8;tutorial_"..a21..".png]" + .."image[2.5,7.4;0.8,0.8;tutorial_"..a22..".png]" + .."image[2.5,8.2;0.8,0.8;tutorial_"..a23..".png]" + .."image[2.5,9;0.8,0.8;tutorial_"..a24..".png]" + .."image[2.5,9.8;0.8,0.8;tutorial_"..a25..".png]" + .."image[2.5,10.6;0.8,0.8;tutorial_"..a26..".png]" + .."image[5,1;0.8,0.8;tutorial_"..a27..".png]" + .."image[5,1.8;0.8,0.8;tutorial_"..a28..".png]" + .."image[5,2.6;0.8,0.8;tutorial_"..a29..".png]" + .."image[5,3.4;0.8,0.8;tutorial_"..a30..".png]" + .."image[5,4.2;0.8,0.8;tutorial_"..a31..".png]" + .."image[5,5;0.8,0.8;tutorial_"..a32..".png]" + .."image[5,5.8;0.8,0.8;tutorial_"..a33..".png]" + .."image[5,6.6;0.8,0.8;tutorial_"..a34..".png]" + .."image[5,7.4;0.8,0.8;tutorial_"..a35..".png]" + .."image[5,8.2;0.8,0.8;tutorial_"..a36..".png]" + .."image[5,9.0;0.8,0.8;tutorial_"..a37..".png]" + .."image[5,9.8;0.8,0.8;tutorial_"..a38..".png]" + .."image[5,10.6;0.8,0.8;tutorial_"..a39..".png]" + .."image[7.5,1;0.8,0.8;tutorial_"..a40..".png]" + .."image[7.5,1.8;0.8,0.8;tutorial_"..a41..".png]" + .."image[7.5,2.6;0.8,0.8;tutorial_"..a42..".png]" + .."image[7.5,3.4;0.8,0.8;tutorial_"..a43..".png]" + .."image[7.5,4.2;0.8,0.8;tutorial_"..a44..".png]" + .."image[7.5,5;0.8,0.8;tutorial_"..a45..".png]" + .."image[7.5,5.8;0.8,0.8;tutorial_"..a46..".png]" + .."image[7.5,6.6;0.8,0.8;tutorial_"..a47..".png]" + .."image[7.5,7.4;0.8,0.8;tutorial_"..a48..".png]" + .."image[7.5,8.2;0.8,0.8;tutorial_"..a49..".png]" + .."image[7.5,9.0;0.8,0.8;tutorial_"..a50..".png]" + .."label[6,0;"..d1.."/50]" + .."button[6.5,0;2,0.5;rew;Reward (25)]" + .."button[8.5,0;2,0.5;rewb;Reward (50)]" + return formspec +end +local ach2 = {} +ach2.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + formspec= "label[0.8,1.1;Regnumbattleaxe]" + .."label[0.8,1.9;Bagkey Lv.MAX]" + .."label[0.8,2.7.5;Armorkey]" + .."label[0.8,3.5;Xp key]" + .."label[0.8,4.3.5;Craftkey Lv.MAX]" + .."label[0.8,5.1;Legendkey]" + .."label[0.8,5.9;Regnumkey]" + .."label[0.8,6.7;Pixeled Regnumkey]" + .."label[0.8,7.5;8 Regnum Trolleys]" + .."label[0.8,8.3;8 Legend crystals]" + .."label[0.8,9.1;Xp green Lv.MAX]" + .."label[0.8,9.9;Xp red Lv.MAX]" + .."label[0.8,10.7;Xp blue Lv.MAX]" + .."label[3.3,1.1;Xp gray Lv.MAX]" + .."label[3.3,1.9;dog spawn-egg]" + .."label[3.3,2.7;cat spawn-egg]" + .."label[3.3,3.5;sheep spawn-egg]" + .."label[3.3,4.3;dragon spawn-egg]" + .."label[3.3,5.1;mining laser lv.150]" + .."label[3.3,5.9;all awards]" + .."label[3.3,6.7;mining drill lv.150]" + .."label[3.3,7.5;Dragon key]" + .."label[3.3,8.3;5 magic gems]" + .."label[3.3,9.1;Regnumhelmet]" + .."label[3.3,9.9;Regnumchestplate]" + .."label[3.3,10.7;Regnumleggings]" + .."label[5.8,1.1;Regnumboots]" + .."label[5.8,1.9;Regnumshield]" + .."label[5.8,2.7;fox spawn-egg]" + .."label[5.8,3.5;tortoise spawn-egg]" + .."label[5.8,4.3;Foxkey]" + .."label[5.8,5.1;10 magic gems]" + .."label[5.8,5.9;Wallplacer lv.MAX]" + .."label[5.8,6.7;Xp yellow Lv.MAX]" + .."label[5.8,7.5;all artifacts]" + .."label[5.8,8.3;Tortoisekey]" + .."label[5.8,9.1;Knightkey]" + .."label[5.8,9.9;all medallions]" + .."label[5.8,10.7;Crystalkey]" + .."label[8.3,1.1;2 Regnum crystal]" + .."label[8.3,1.9;Goldenkey]" + .."label[8.3,2.7;Xp cyan Lv.MAX]" + .."label[8.3,3.5;Cookingkey Lv.MAX]" + .."label[8.3,4.3;2 Pixeled Regnumkeys]" + .."label[8.3,5.1;all trophys]" + .."label[8.3,5.9;Protectionkey lv.MAX]" + .."label[8.3,6.7;all treasures]" + .."label[8.3,7.5;Legendstick lv.MAX]" + .."label[8.3,8.3;Regnumgun]" + .."label[8.3,9.1;Colorstick (broken)]" + return formspec +end +local ach3 = {} +ach3.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("year", 2) + local year = player_inv:get_stack("year", 1):get_count() + local year2 = player_inv:get_stack("year", 2):get_count() + local d = 0 + if year == 1 then + d = d+1 + end + if year2 == 1 then + d = d+1 + end + formspec= "size[10.5,11.3]" + .."background[10.5,11.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;ach;Back]" + .."button[2,0;2,0.5;main;Main]" + .."label[0.8,1.1;one year Trophy]" + .."label[0.8,1.9;two years Trophy]" + .."label[5.5,0;"..d.."/2]" + .."image[0,1;0.8,0.8;tutorial_"..year..".png]" + .."image[0,1.8;0.8,0.8;tutorial_"..year2..".png]" + return formspec +end +for j = 1, 8, 1 do + for i = 1, 8, 1 do + minetest.register_node("tutorial:legend_thunder_"..i.."_"..j, { + description = "Legend thunder: damage lv."..i..",lengh lv."..j, + drawtype = "plantlike", + tiles = {{ + name="tutorial_legend_thunder.png", + }}, + light_source = 12, + walkable = false, + buildable_to = true, + damage_per_second = (i*8), + drop = {}, + groups = {dig_immediate=3}, + }) + minetest.register_abm({ + nodenames = {"tutorial:legend_thunder_"..i.."_"..j}, + interval = (j*3), + chance = 1, + action = function(pos) + minetest.env:remove_node(pos) + end, + }) + end +end +for k = 1, 8, 1 do + for j = 1, 8, 1 do + for i = 1, 8, 1 do + minetest.register_entity("tutorial:legendball_"..i.."_"..j.."_"..k, { + visual = "mesh", + visual_size = {x=5, y=5}, + mesh = "tutorial_fireball.x", + textures = {"tutorial_legendball.png"}, + velocity = 5, + light_source = 12, + on_step = function(self, dtime) + local pos = self.object:getpos() + if minetest.env:get_node(self.object:getpos()).name ~= "air"then + self.hit_node(self, pos, node) + self.object:remove() + return + end + pos.y = pos.y-1 + for _,player in pairs(minetest.env:get_objects_inside_radius(pos, 1)) do + if player:is_player() then + self.hit_player(self, player) + self.object:remove() + return + end + end + end, + hit_player = function(self, player) + local hp = player:get_hp() + if hp > (k*2) then + player:set_hp(hp-(k*2)) + else + player:set_hp(0) + end + local s = player:getpos() + local p = player:get_look_dir() + local vec = {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z} + local pos = player:getpos() + for dx=0,1 do + for dy=0,1 do + for dz=0,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 == "air") then + minetest.env:add_node(p, {name="tutorial:legend_thunder_"..i.."_"..j}) + end + end + end + end + end, + hit_node = function(self, pos, node) + for dx=-1,1 do + for dy=-2,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 == "air") then + minetest.env:add_node(p, {name="tutorial:legend_thunder_"..i.."_"..j}) + end + end + end + end + end + }) + minetest.register_tool("tutorial:legendball_"..i.."_"..j.."_"..k, { + description = "Legend Ball: Ball damage lv."..k..", Thunder damage lv."..i..", Thunder lengh lv."..j, + inventory_image = "tutorial_legendball.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_"..i.."_"..j.."_"..k) + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, + }) + end + end +end +local mode_text = { + {"Give player Enemy rank. (revoke all privs)"}, + {"Give player Member rank. (interact,shout)"}, + {"Give player Premium rank. (interact,shout,fly,fast,home,zoom)"}, + {"Give player VIP rank. (interact,shout,fly,fast,home,teleport,zoom)"}, + {"Give player Hero rank. (interact,shout,fly,fast,home,teleport,noclip,zoom,debug)"}, + {"Give player Legend rank (interact,shout,fly,fast,home,teleport,bring,noclip,settime,zoom,debug)"}, + {"Give player Admin rank (all privs)"}, + {"Mark player as a youtuber "}, +} +local function server_hammer_setmode(user, itemstack, mode, keys) + local puncher = user:get_player_name() + if keys["sneak"] == false and mode == 0 then + minetest.chat_send_player(puncher, "Hold shift and use to change server hammer modes.") + return + end + if keys["sneak"] == true then + mode = mode + 1 + if mode == 9 then + mode = 1 + end + minetest.chat_send_player(puncher, "Ban hammer mode : "..mode.." - "..mode_text[mode][1] ) + end + itemstack:set_name("tutorial:server_hammer"..mode) + itemstack:set_metadata(mode) + return itemstack, mode +end +local function server_hammer_handler(itemstack, user, pointed_thing, mode) + local keys = user:get_player_control() + server_hammer_setmode(user, itemstack, mode, keys) + if pointed_thing.type ~= "object" then + return + end + if not pointed_thing.ref:is_player() then + return + end + local puncher = user:get_player_name() + local puncher_privs = minetest.get_player_privs(puncher) + if (puncher_privs["ban"] == false) then + return + end + local punched_player = pointed_thing.ref:get_player_name() + local punched_player_privs = minetest.get_player_privs(punched_player) + if mode == 1 then + minetest.chat_send_player(punched_player, puncher.." gives you Enemy rank. You have no privs") + minetest.set_player_privs(punched_player, {}) + local punched_player_privs = minetest.get_player_privs(punched_player) + local player = minetest.get_player_by_name(punched_player) + local player_inv = player:get_inventory() + player_inv:set_size("youtube", 1) + local c = player_inv:get_stack("youtube",1):get_count() + if c == 0 then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Enemy]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Youtuber][Enemy]"..player:get_player_name()}) + end + elseif mode == 2 then + minetest.chat_send_player(punched_player, puncher.." gives you Member rank. You can use interact and shout") + minetest.set_player_privs(punched_player, {}) + local punched_player_privs = minetest.get_player_privs(punched_player) + punched_player_privs["interact"] = true + punched_player_privs["shout"] = true + minetest.set_player_privs(punched_player, punched_player_privs) + local player = minetest.get_player_by_name(punched_player) + local player_inv = player:get_inventory() + player_inv:set_size("youtube", 1) + local c = player_inv:get_stack("youtube",1):get_count() + if c == 0 then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 255}, text = "[Member]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 255}, text = "[Youtuber][Member]"..player:get_player_name()}) + end + elseif mode == 3 then + minetest.chat_send_player(punched_player, puncher.." gives you Premium rank. You can use interact,shout,fast,fly,home and zoom") + minetest.set_player_privs(punched_player, {}) + local punched_player_privs = minetest.get_player_privs(punched_player) + punched_player_privs["interact"] = true + punched_player_privs["shout"] = true + punched_player_privs["fly"] = true + punched_player_privs["fast"] = true + punched_player_privs["home"] = true + punched_player_privs["zome"] = true + minetest.set_player_privs(punched_player, punched_player_privs) + local player = minetest.get_player_by_name(punched_player) + local player_inv = player:get_inventory() + player_inv:set_size("youtube", 1) + local c = player_inv:get_stack("youtube",1):get_count() + if c == 0 then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Premium]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()}) + end + elseif mode == 4 then + minetest.chat_send_player(punched_player, puncher.." gives you VIP rank. You can use interact,shout,fast,home,zoom,teleport and fly") + minetest.set_player_privs(punched_player, {}) + local punched_player_privs = minetest.get_player_privs(punched_player) + punched_player_privs["interact"] = true + punched_player_privs["shout"] = true + punched_player_privs["fly"] = true + punched_player_privs["fast"] = true + punched_player_privs["home"] = true + punched_player_privs["zome"] = true + punched_player_privs["teleport"] = true + minetest.set_player_privs(punched_player, punched_player_privs) + local player = minetest.get_player_by_name(punched_player) + local player_inv = player:get_inventory() + player_inv:set_size("youtube", 1) + local c = player_inv:get_stack("youtube",1):get_count() + if c == 0 then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[VIP]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()}) + end + elseif mode == 5 then + minetest.chat_send_player(punched_player, puncher.." gives you Hero rank. You can use interact,shout,fast,home,zoom,teleport,noclip,fly and debug") + minetest.set_player_privs(punched_player, {}) + local punched_player_privs = minetest.get_player_privs(punched_player) + punched_player_privs["interact"] = true + punched_player_privs["shout"] = true + punched_player_privs["fly"] = true + punched_player_privs["fast"] = true + punched_player_privs["home"] = true + punched_player_privs["zome"] = true + punched_player_privs["teleport"] = true + punched_player_privs["noclip"] = true + punched_player_privs["debug"] = true + minetest.set_player_privs(punched_player, punched_player_privs) + local player = minetest.get_player_by_name(punched_player) + local player_inv = player:get_inventory() + player_inv:set_size("youtube", 1) + local c = player_inv:get_stack("youtube",1):get_count() + if c == 0 then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Hero]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()}) + end + elseif mode == 6 then + minetest.chat_send_player(punched_player, puncher.." gives you Legend rank. You can use interact,shout,fast,home,zoom,teleport,noclip,fly,debug,bring and settime") + minetest.set_player_privs(punched_player, {}) + local punched_player_privs = minetest.get_player_privs(punched_player) + punched_player_privs["interact"] = true + punched_player_privs["shout"] = true + punched_player_privs["fly"] = true + punched_player_privs["fast"] = true + punched_player_privs["home"] = true + punched_player_privs["zome"] = true + punched_player_privs["bring"] = true + punched_player_privs["teleport"] = true + punched_player_privs["noclip"] = true + punched_player_privs["debug"] = true + punched_player_privs["settime"] = true + minetest.set_player_privs(punched_player, punched_player_privs) + local player = minetest.get_player_by_name(punched_player) + local player_inv = player:get_inventory() + player_inv:set_size("youtube", 1) + local c = player_inv:get_stack("youtube",1):get_count() + if c == 0 then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Legend]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()}) + end + elseif mode == 7 then + minetest.chat_send_player(punched_player, puncher.." gives you Admin rank. You can use every privs") + minetest.set_player_privs(punched_player, {}) + local punched_player_privs = minetest.get_player_privs(punched_player) + punched_player_privs["interact"] = true + punched_player_privs["shout"] = true + punched_player_privs["fly"] = true + punched_player_privs["fast"] = true + punched_player_privs["home"] = true + punched_player_privs["zome"] = true + punched_player_privs["bring"] = true + punched_player_privs["teleport"] = true + punched_player_privs["noclip"] = true + punched_player_privs["debug"] = true + punched_player_privs["settime"] = true + punched_player_privs["server"] = true + punched_player_privs["password"] = true + punched_player_privs["delprotect"] = true + punched_player_privs["kick"] = true + punched_player_privs["ban"] = true + punched_player_privs["rollback"] = true + punched_player_privs["privs"] = true + punched_player_privs["basic_privs"] = true + punched_player_privs["give"] = true + punched_player_privs["sign_editor"] = true + punched_player_privs["protection_bypass"] = true + punched_player_privs["travelnet_remove"] = true + punched_player_privs["travelnet_attach"] = true + punched_player_privs["shop_admin"] = true + minetest.set_player_privs(punched_player, punched_player_privs) + local player = minetest.get_player_by_name(punched_player) + local player_inv = player:get_inventory() + player_inv:set_size("youtube", 1) + local c = player_inv:get_stack("youtube",1):get_count() + if c == 0 then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Admin]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()}) + end + elseif mode == 8 then + minetest.chat_send_player(punched_player, puncher.." marks you as a youtuber") + pri = minetest.get_player_privs(punched_player) + local player = minetest.get_player_by_name(punched_player) + if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.sign_editor and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()}) + elseif pri.interact and pri.shout then + player:set_nametag_attributes({text = "[Youtuber][Member]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Youtuber][Enemy]"..player:get_player_name()}) + end + local inv = player:get_inventory() + inv:set_size("youtube",1) + inv:set_stack("youtube",1,"default:dirt") + end + return itemstack +end +minetest.register_craftitem("tutorial:server_hammer", { + description = "Admin tool 6: Server Hammer", + inventory_image = "ban_hammer.png", + stack_max = 1, + on_use = function(itemstack, user, pointed_thing) + local mode = 0 + server_hammer_handler(itemstack, user, pointed_thing, mode) + return itemstack + end, +}) +for i = 1, 8 do + minetest.register_craftitem("tutorial:server_hammer"..i, { + description = "Admin tool 6: Server Hammer in Mode "..i, + inventory_image = "ban_hammer.png^technic_tool_mode"..i..".png", + wield_image = "ban_hammer.png", + groups = {not_in_creative_inventory=1}, + on_use = function(itemstack, user, pointed_thing) + local mode = i + server_hammer_handler(itemstack, user, pointed_thing, mode) + return itemstack + end, + }) +end +minetest.register_on_joinplayer(function(player) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("t", 1) + player_inv:add_item("t", "default:dirt") + local pri = minetest.get_player_privs(player:get_player_name()) + player_inv:set_size("youtube", 1) + local c = player_inv:get_stack("youtube",1):get_count() + if c == 0 then + if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.sign_editor and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Admin]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Legend]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Hero]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[VIP]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Premium]"..player:get_player_name()}) + elseif pri.interact and pri.shout then + player:set_nametag_attributes({text = "[Member]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Enemy]"..player:get_player_name()}) + end + else + if pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring and pri.server and pri.password and pri.delprotect and pri.kick and pri.ban and pri.rollback and pri.privs and pri.basic_privs and pri.give and pri.sign_editor and pri.protection_bypass and pri.travelnet_remove and pri.travelnet_attach and pri.shop_admin then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 255}, text = "[Youtuber][Admin]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug and pri.settime and pri.bring then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 0}, text = "[Youtuber][Legend]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport and pri.noclip and pri.debug then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 255, b = 255}, text = "[Youtuber][Hero]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom and pri.teleport then + player:set_nametag_attributes({color = {a = 255, r = 255, g = 255, b = 0}, text = "[Youtuber][VIP]"..player:get_player_name()}) + elseif pri.interact and pri.shout and pri.fly and pri.fast and pri.home and pri.zoom then + player:set_nametag_attributes({color = {a = 255, r = 0, g = 0, b = 255}, text = "[Youtuber][Premium]"..player:get_player_name()}) + elseif pri.interact and pri.shout then + player:set_nametag_attributes({text = "[Youtuber][Member]"..player:get_player_name()}) + else + player:set_nametag_attributes({color = {a = 255, r = 255, g = 0, b = 0}, text = "[Youtuber][Enemy]"..player:get_player_name()}) + end + end +end) +local kri = {} +kri.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local kri_inv = minetest.create_detached_inventory(player:get_player_name().."_kri",{ + allow_put = function(inv, listname, index, stack, player) + return 0 + end, + allow_take = function(inv, listname, index, stack, player) + return 0 + end, + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + return 0 + end, + }) + kri_inv:set_size("kri", 8) + player_inv:set_size("kri", 8) + player_inv:set_size("de", 1) + player_inv:set_size("td", 1) + player_inv:set_size("tl", 1) + player_inv:set_size("time", 1) + player_inv:set_size("t", 1) + player_inv:set_size("krit", 1) + local dl = player_inv:get_stack("de", 1):get_count() + local tdl = player_inv:get_stack("td", 1):get_count() + local tll = player_inv:get_stack("tl", 1):get_count() + local tes = player_inv:get_stack("t", 1):get_count() + if dl == 0 then + dl = "nil" + end + if tdl == 0 then + tdl = "nil" + end + if tll == 0 then + tll = "nil" + end + local k = 0 + for i=1, 8 do + local stack = player_inv:get_stack("kri", i) + kri_inv:set_stack("kri", i, stack) + if not player_inv:get_stack("kri", i):is_empty() then + k = k+1 + end + end + local time = 0 + if dl ~= "nil" and tdl ~= "nil" and tll ~= "nil" then + time = time+(dl*35) + time = time+(tdl*15) + time = time+(tll*10) + if player_inv:get_stack("krit", 1):get_name() == "tutorial:crystal_schluessel" then + time = time/2 + end + else + time = "nil" + end + formspec = "size[10,12.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[10,8.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[current_player;krit;0.3,2.5;1,1;]" + .."list[current_player;main;1,8.75;8,4;]" + .."label[0.3,3.5;crystalkey]" + .."list[detached:"..player:get_player_name().."_kri;kri;3,1;2,1;]" + .."list[detached:"..player:get_player_name().."_kri;kri;5,2;1,2;2]" + .."list[detached:"..player:get_player_name().."_kri;kri;4,4;1,1;4]" + .."list[detached:"..player:get_player_name().."_kri;kri;3,4;1,1;5]" + .."list[detached:"..player:get_player_name().."_kri;kri;2,3;1,1;6]" + .."list[detached:"..player:get_player_name().."_kri;kri;2,2;1,1;7]" + .."listring[current_player;krit]" + .."listring[current_player;main]" + .."label[0,1;You have "..k.."/8 crystals]" + .."image[3.1,2.1;2,2;tutorial_legendenkristall.png]" + .."label[7,1;Ball damage level:"..dl.."]" + .."label[7,1.5;Thunder damage level:"..tdl.."]" + .."label[7,2;Thunder damage level:"..tll.."]" + .."label[7,2.5;Time in s:"..time.."]" + .."label[0,5.75;Ball damage level]" + .."label[0,6.75;Thunder damage level]" + .."label[0,7.75;Thunder length level]" + if k > 0 then + formspec = formspec .."button[2,5.75;1,0.5;adem;1]" + .."button[2,6.75;1,0.5;athu;1]" + .."button[2,7.75;1,0.5;athl;1]" + if time ~= "nil" then + formspec = formspec .."label[7,3;creating..]" + end + end + if k > 1 then + formspec = formspec .."button[3,5.75;1,0.5;bdem;2]" + .."button[3,6.75;1,0.5;bthu;2]" + .."button[3,7.75;1,0.5;bthl;2]" + end + if k > 2 then + formspec = formspec .."button[4,5.75;1,0.5;cdem;3]" + .."button[4,6.75;1,0.5;cthu;3]" + .."button[4,7.75;1,0.5;cthl;3]" + end + if k > 3 then + formspec = formspec .."button[5,5.75;1,0.5;ddem;4]" + .."button[5,6.75;1,0.5;dthu;4]" + .."button[5,7.75;1,0.5;dthl;4]" + end + if k > 4 then + formspec = formspec .."button[6,5.75;1,0.5;edem;5]" + .."button[6,6.75;1,0.5;ethu;5]" + .."button[6,7.75;1,0.5;ethl;5]" + end + if k > 5 then + formspec = formspec .."button[7,5.75;1,0.5;fdem;6]" + .."button[7,6.75;1,0.5;fthu;6]" + .."button[7,7.75;1,0.5;fthl;6]" + end + if k > 6 then + formspec = formspec .."button[8,5.75;1,0.5;gdem;7]" + .."button[8,6.75;1,0.5;gthu;7]" + .."button[8,7.75;1,0.5;gthl;7]" + end + if k > 7 then + formspec = formspec .."button[9,5.75;1,0.5;hdem;8]" + .."button[9,6.75;1,0.5;hthu;8]" + .."button[9,7.75;1,0.5;hthl;8]" + end + if tes > 0 and time ~= "nil" then + formspec = formspec .."button[7,3;2,0.5;cre;create]" + end + return formspec +end +minetest.register_on_player_receive_fields(function(player, formname, fields) + if player == nil then + return + end + if fields.kri then + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.ach then + local player_inv = player:get_inventory() + local name = player:get_player_name() + player_inv:set_size("a1", 1) + player_inv:set_size("a2", 1) + player_inv:set_size("a3", 1) + player_inv:set_size("a4", 1) + player_inv:set_size("a5", 1) + player_inv:set_size("a6", 1) + player_inv:set_size("a7", 1) + player_inv:set_size("a8", 1) + player_inv:set_size("a9", 1) + player_inv:set_size("a10", 1) + player_inv:set_size("a11", 1) + player_inv:set_size("a12", 1) + player_inv:set_size("a13", 1) + player_inv:set_size("a14", 1) + player_inv:set_size("a15", 1) + player_inv:set_size("a16", 1) + player_inv:set_size("a17", 1) + player_inv:set_size("a18", 1) + player_inv:set_size("a19", 1) + player_inv:set_size("a20", 1) + player_inv:set_size("a21", 1) + player_inv:set_size("a22", 1) + player_inv:set_size("a23", 1) + player_inv:set_size("a24", 1) + player_inv:set_size("a25", 1) + player_inv:set_size("a26", 1) + player_inv:set_size("a27", 1) + player_inv:set_size("a28", 1) + player_inv:set_size("a29", 1) + player_inv:set_size("a30", 1) + player_inv:set_size("a31", 1) + player_inv:set_size("a32", 1) + player_inv:set_size("a33", 1) + player_inv:set_size("a34", 1) + player_inv:set_size("a35", 1) + player_inv:set_size("a36", 1) + player_inv:set_size("a37", 1) + player_inv:set_size("a38", 1) + player_inv:set_size("a39", 1) + player_inv:set_size("a40", 1) + player_inv:set_size("a41", 1) + player_inv:set_size("a42", 1) + player_inv:set_size("a43", 1) + player_inv:set_size("a44", 1) + player_inv:set_size("a45", 1) + player_inv:set_size("a46", 1) + player_inv:set_size("a47", 1) + player_inv:set_size("a48", 1) + player_inv:set_size("a49", 1) + player_inv:set_size("a50", 1) + local type = player:get_inventory():get_stack("b",1):get_name() + local type2 = player:get_inventory():get_stack("arm",1):get_name() + local type3 = player:get_inventory():get_stack("feld2",1):get_name() + local type4 = player:get_inventory():get_stack("feld",1):get_name() + local type5 = player:get_inventory():get_stack("feld3",1):get_name() + local type6 = player:get_inventory():get_stack("feld4",1):get_name() + local type7 = player:get_inventory():get_stack("skinskey",1):get_name() + local type8 = 0 + local type9 = 0 + local type10 = player:get_inventory():get_stack("feld5",1):get_name() + local ge = io.open(minetest.get_worldpath().."/"..name.."_experience", "r") + local type10 = ge:read("*l") + local rt = io.open(minetest.get_worldpath().."/"..name.."_experience_rot", "r") + local type11 = rt:read("*l") + local bl = io.open(minetest.get_worldpath().."/"..name.."_experience_blau", "r") + local type12 = bl:read("*l") + local gr = io.open(minetest.get_worldpath().."/"..name.."_experience_grau", "r") + local type13 = gr:read("*l") + local ye = io.open(minetest.get_worldpath().."/"..name.."_experience_gelb", "r") + local type16 = ye:read("*l") + local ce = io.open(minetest.get_worldpath().."/"..name.."_experience_cyan", "r") + local type23 = ce:read("*l") + local type14 = player:get_inventory():get_stack("feld5",1):get_name() + local type15 = player:get_inventory():get_stack("feld6",1):get_name() + local type17 = player:get_inventory():get_stack("feld7",1):get_name() + local type18 = player:get_inventory():get_stack("skinskey2",1):get_name() + local type19 = player:get_inventory():get_stack("krit",1):get_name() + local type20 = player:get_inventory():get_stack("dragon",1):get_name() + local type21 = player:get_inventory():get_stack("tortoise",1):get_name() + local type22 = player:get_inventory():get_stack("feld8",1):get_name() + local type24 = player:get_inventory():get_stack("cookkey",1):get_name() + local type25 = player:get_inventory():get_stack("pixkey",1):get_name() + local type26 = player:get_inventory():get_stack("arm2",1):get_name() + for i=1,8 do + if player:get_inventory():get_stack("bag"..i,1):get_name() == "bags:trolley_admin" then + type8 = type8+1 + end + if player:get_inventory():get_stack("kri",i):get_name() == "tutorial:legenden_kristall_"..i then + type9 = type9+1 + end + end + local g1 = player_inv:get_stack("gem", 1):get_name() + local g2 = player_inv:get_stack("gem", 2):get_name() + local g3 = player_inv:get_stack("gem", 3):get_name() + local g4 = player_inv:get_stack("gem", 4):get_name() + local g5 = player_inv:get_stack("gem", 5):get_name() + local g11 = player_inv:get_stack("gem2", 1):get_name() + local g12 = player_inv:get_stack("gem2", 2):get_name() + local g13 = player_inv:get_stack("gem2", 3):get_name() + local g14 = player_inv:get_stack("gem2", 4):get_name() + local g15 = player_inv:get_stack("gem2", 5):get_name() + local ar1 = player_inv:get_stack("armor", 1):get_name() + local ar2 = player_inv:get_stack("armor", 2):get_name() + local ar3 = player_inv:get_stack("armor", 3):get_name() + local ar4 = player_inv:get_stack("armor", 4):get_name() + local ar5 = player_inv:get_stack("armor", 5):get_name() + local afaf = player_inv:get_stack("afaf", 1):get_count() + local meme = player_inv:get_stack("meme", 1):get_count() + local trtr = player_inv:get_stack("trtr", 1):get_count() + local tata = player_inv:get_stack("tata", 1):get_count() + if afaf == 71 then + player_inv:set_stack("a35", 1,"tutorial:dirt") + end + if meme == 7 then + player_inv:set_stack("a38", 1,"tutorial:dirt") + end + if trtr == 24 then + player_inv:set_stack("a45", 1,"tutorial:dirt") + end + if tata == 6 then + player_inv:set_stack("a47", 1,"tutorial:dirt") + end + if ar1 == "3d_armor:regnumhelmet" or ar1 == "3d_armor:regnumhelmet2" or ar1 == "3d_armor:regnumhelmet3" or ar1 == "3d_armor:regnumhelmet4" then + player_inv:set_stack("a24", 1,"tutorial:dirt") + end + if ar2 == "3d_armor:regnumchestplate" or ar2 == "3d_armor:regnumchestplate2" or ar2 == "3d_armor:regnumchestplate3" or ar2 == "3d_armor:regnumchestplate4" then + player_inv:set_stack("a25", 1,"tutorial:dirt") + end + if ar3 == "3d_armor:regnumleggings" or ar3 == "3d_armor:regnumleggings2" or ar3 == "3d_armor:regnumleggings3" or ar3 == "3d_armor:regnumleggings4" then + player_inv:set_stack("a26", 1,"tutorial:dirt") + end + if ar4 == "3d_armor:regnumboots" or ar4 == "3d_armor:regnumboots2" or ar4 == "3d_armor:regnumboots3" or ar4 == "3d_armor:regnumboots4" then + player_inv:set_stack("a27", 1,"tutorial:dirt") + end + if ar5 == "shields:regnumshield" or ar5 == "shields:regnumshield2" or ar5 == "shields:regnumshield3" or ar5 == "shields:regnumshield4" then + player_inv:set_stack("a28", 1,"tutorial:dirt") + end + if g1 == "tutorial:magic_gem1" and g2 == "tutorial:magic_gem2" and g3 == "tutorial:magic_gem3" and g4 == "tutorial:magic_gem4" and g5 == "tutorial:magic_gem5" then + if g11 == "tutorial:magic_gem1" and g12 == "tutorial:magic_gem2" and g13 == "tutorial:magic_gem3" and g14 == "tutorial:magic_gem4" and g15 == "tutorial:magic_gem5" then + player_inv:set_stack("a23", 1,"tutorial:dirt") + end + end + if g1 == "tutorial:magic_gem1" and g2 == "tutorial:magic_gem2" and g3 == "tutorial:magic_gem3" and g4 == "tutorial:magic_gem4" and g5 == "tutorial:magic_gem5" then + player_inv:set_stack("a32", 1,"tutorial:dirt") + end + if player:get_inventory():contains_item("main", "tutorial:regnumbattleaxe1") or player:get_inventory():contains_item("main", "tutorial:regnumbattleaxe2") or player:get_inventory():contains_item("main", "tutorial:regnumbattleaxe3") then + player_inv:set_stack("a1", 1,"tutorial:dirt") + end + if player:get_inventory():contains_item("main", "tutorial:legendstick9") then + player_inv:set_stack("a48", 1,"tutorial:dirt") + end + if player:get_inventory():contains_item("main", "tutorial:wallplacer5_1") or player:get_inventory():contains_item("main", "tutorial:wallplacer5_2") or player:get_inventory():contains_item("main", "tutorial:wallplacer5_3") or player:get_inventory():contains_item("main", "tutorial:wallplacer5_4") or player:get_inventory():contains_item("main", "tutorial:wallplacer5_5") then + player_inv:set_stack("a33", 1,"tutorial:dirt") + end + if player:get_inventory():contains_item("main", "technic:laser_mkS150") then + player_inv:set_stack("a19", 1,"tutorial:dirt") + end + if player:get_inventory():contains_item("main", "tutorial:colorstick_broken") then + player_inv:set_stack("a50", 1,"tutorial:dirt") + end + if player:get_inventory():contains_item("main", "tutorial:regnumgun1") or player:get_inventory():contains_item("main", "tutorial:regnumgun2") then + player_inv:set_stack("a49", 1,"tutorial:dirt") + end + if player:get_inventory():contains_item("main", "technic:drill_mkS150") or player:get_inventory():contains_item("main", "technic:drill_mkS150_1") or player:get_inventory():contains_item("main", "technic:drill_mkS150_2") or player:get_inventory():contains_item("main", "technic:drill_mkS150_3") or player:get_inventory():contains_item("main", "technic:drill_mkS150_4") or player:get_inventory():contains_item("main", "technic:drill_mkS150_5")then + player_inv:set_stack("a21", 1,"tutorial:dirt") + end + if type == "tutorial:bag_schluessel4" then + player_inv:set_stack("a2", 1,"tutorial:dirt") + end + if type2 == "tutorial:armor_key" then + player_inv:set_stack("a3", 1, "default:dirt") + end + if type3 == "tutorial:level_schluessel" then + player_inv:set_stack("a4", 1, "default:dirt") + end + if type4 == "tutorial:craft_schluessel7" then + player_inv:set_stack("a5", 1, "default:dirt") + end + if type5 == "tutorial:legenden_schluessel" then + player_inv:set_stack("a6", 1, "default:dirt") + end + if type6 == "tutorial:regnum_key" then + player_inv:set_stack("a7", 1, "default:dirt") + end + if type7 == "tutorial:regnum_key_pixeled" or type25 == "tutorial:regnum_key_pixeled" then + player_inv:set_stack("a8", 1, "default:dirt") + end + if type8 == 8 then + player_inv:set_stack("a9", 1, "default:dirt") + end + if type9 == 8 then + player_inv:set_stack("a10", 1, "default:dirt") + end + if type14 == "tutorial:dragon_schluessel" then + player_inv:set_stack("a22", 1, "default:dirt") + end + if type15 == "tutorial:fox_schluessel" then + player_inv:set_stack("a31", 1, "default:dirt") + end + if type17 == "tutorial:tortoise_schluessel" then + player_inv:set_stack("a36", 1, "default:dirt") + end + if type18 == "tutorial:knight_schluessel" then + player_inv:set_stack("a37", 1, "default:dirt") + end + if type19 == "tutorial:crystal_schluessel" then + player_inv:set_stack("a39", 1, "default:dirt") + end + if type20 == "tutorial:dragon_crystal" and type21 == "tutorial:dragon_crystal" then + player_inv:set_stack("a40", 1, "default:dirt") + end + if type22 == "tutorial:golden_schluessel" then + player_inv:set_stack("a41", 1, "default:dirt") + end + if type24 == "tutorial:cooking_schluessel4" then + player_inv:set_stack("a43", 1, "default:dirt") + end + if type26 == "tutorial:protection_schluessel3" then + player_inv:set_stack("a46", 1, "default:dirt") + end + if type7 == "tutorial:regnum_key_pixeled" and type25 == "tutorial:regnum_key_pixeled" then + player_inv:set_stack("a44", 1, "default:dirt") + end + if tonumber(type10) > 11949 then + player_inv:set_stack("a11", 1, "default:dirt") + end + if tonumber(type11) > 249 then + player_inv:set_stack("a12", 1, "default:dirt") + end + if tonumber(type12) > 249 then + player_inv:set_stack("a13", 1, "default:dirt") + end + if tonumber(type13) > 3199 then + player_inv:set_stack("a14", 1, "default:dirt") + end + if tonumber(type16) > 599 then + player_inv:set_stack("a34", 1, "default:dirt") + end + if tonumber(type23) > 899 then + player_inv:set_stack("a42", 1, "default:dirt") + end + inventory_plus.set_inventory_formspec(player, (ach.get_formspec(player)..ach2.get_formspec(player))) + end + if fields.achc then + local player_inv = player:get_inventory() + player_inv:set_size("year", 2) + if player:get_inventory():contains_item("main", "tutorial:trophy_year1") then + player_inv:set_stack("year", 1,"tutorial:dirt") + end + if player:get_inventory():contains_item("main", "tutorial:trophy_year2") then + player_inv:set_stack("year", 2,"tutorial:dirt") + end + inventory_plus.set_inventory_formspec(player, ach3.get_formspec(player)) + end + if fields.adem then + local player_inv = player:get_inventory() + player_inv:set_stack("de", 1,"tutorial:dirt 1") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.bdem then + local player_inv = player:get_inventory() + player_inv:set_stack("de", 1,"tutorial:dirt 2") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.cdem then + local player_inv = player:get_inventory() + player_inv:set_stack("de", 1,"tutorial:dirt 3") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.ddem then + local player_inv = player:get_inventory() + player_inv:set_stack("de", 1,"tutorial:dirt 4") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.edem then + local player_inv = player:get_inventory() + player_inv:set_stack("de", 1,"tutorial:dirt 5") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.fdem then + local player_inv = player:get_inventory() + player_inv:set_stack("de", 1,"tutorial:dirt 6") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.gdem then + local player_inv = player:get_inventory() + player_inv:set_stack("de", 1,"tutorial:dirt 7") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.hdem then + local player_inv = player:get_inventory() + player_inv:set_stack("de", 1,"tutorial:dirt 8") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.athu then + local player_inv = player:get_inventory() + player_inv:set_stack("td", 1,"tutorial:dirt 1") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.bthu then + local player_inv = player:get_inventory() + player_inv:set_stack("td", 1,"tutorial:dirt 2") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.cthu then + local player_inv = player:get_inventory() + player_inv:set_stack("td", 1,"tutorial:dirt 3") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.dthu then + local player_inv = player:get_inventory() + player_inv:set_stack("td", 1,"tutorial:dirt 4") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.ethu then + local player_inv = player:get_inventory() + player_inv:set_stack("td", 1,"tutorial:dirt 5") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.fthu then + local player_inv = player:get_inventory() + player_inv:set_stack("td", 1,"tutorial:dirt 6") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.gthu then + local player_inv = player:get_inventory() + player_inv:set_stack("td", 1,"tutorial:dirt 7") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.hthu then + local player_inv = player:get_inventory() + player_inv:set_stack("td", 1,"tutorial:dirt 8") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.athl then + local player_inv = player:get_inventory() + player_inv:set_stack("tl", 1,"tutorial:dirt 1") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.bthl then + local player_inv = player:get_inventory() + player_inv:set_stack("tl", 1,"tutorial:dirt 2") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.cthl then + local player_inv = player:get_inventory() + player_inv:set_stack("tl", 1,"tutorial:dirt 3") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.dthl then + local player_inv = player:get_inventory() + player_inv:set_stack("tl", 1,"tutorial:dirt 4") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.ethl then + local player_inv = player:get_inventory() + player_inv:set_stack("tl", 1,"tutorial:dirt 5") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.fthl then + local player_inv = player:get_inventory() + player_inv:set_stack("tl", 1,"tutorial:dirt 6") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.gthl then + local player_inv = player:get_inventory() + player_inv:set_stack("tl", 1,"tutorial:dirt 7") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.hthl then + local player_inv = player:get_inventory() + player_inv:set_stack("tl", 1,"tutorial:dirt 8") + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + if fields.cre then + local player_inv = player:get_inventory() + local dl = player_inv:get_stack("de", 1):get_count() + local tdl = player_inv:get_stack("td", 1):get_count() + local tll = player_inv:get_stack("tl", 1):get_count() + local time = 0 + time = time+(dl*35) + time = time+(tdl*15) + time = time+(tll*10) + player_inv:set_stack("t", 1, nil) + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + if player_inv:get_stack("krit", 1):get_name() == "tutorial:crystal_schluessel" then + time = time/2 + end + print(time) + minetest.after(time, function() + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:add_item("main","tutorial:legendball_"..tdl.."_"..tll.."_"..dl) + player_inv:set_stack("t", 1, "default:dirt") + if kri.get_formspec(player) == (player:get_inventory_formspec().."button[10,2;2,0.5;cre;create]") then + inventory_plus.set_inventory_formspec(player, kri.get_formspec(player)) + end + end) + end +end) +minetest.register_on_dignode(function(pos, node, player) + if player == nil then + return + end + local name = player:get_player_name() + local inv = player:get_inventory() + if node.name == "tutorial:geschenk_legend" then + local x = math.random(20) + if x == 16 then + local y = math.random(8) + inv:set_stack("kri", y,"tutorial:legenden_kristall_"..y) + else + local z = math.random(16) + if z == 1 then + inv:add_item("main","gems:emerald_gem 2") + elseif z < 3 then + inv:add_item("main","gems:shadow_gem 2") + elseif z < 5 then + inv:add_item("main","gems:pearl_gem 2") + elseif z < 8 then + inv:add_item("main","gems:amethyst_gem 2") + elseif z < 12 then + inv:add_item("main","gems:ruby_gem 2") + else + inv:add_item("main","gems:sapphire_gem 2") + end + end + end + if node.name == "tutorial:geschenk_regnum" then + local x = math.random(1, 5) + if x == 1 then + inv:add_item("main", "tutorial:regnum_pixel_gold 20") + elseif x == 2 then + inv:add_item("main", "tutorial:regnum_pixel_green 20") + elseif x == 3 then + inv:add_item("main", "tutorial:regnum_pixel_purple 55") + elseif x == 4 then + inv:add_item("main", "tutorial:regnum_pixel_red 185") + elseif x == 5 then + inv:add_item("main", "tutorial:regnum_pixel_blue 185") + end + end +end) +local crafting4 = {} +crafting4.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("crvier4", 5) + formspec = "size[8,11.3]" + .."background[8,11.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."button[6,3.5;2,0.5;cra4;Craft]" + .."list[current_player;main;0,7.25;8,1;]" + .."label[2,1;you need 352 gold pixel]" + .."label[2,2;you need 352 green pixel]" + .."label[2,3;you need 1120 purple pixel]" + .."label[2,4;you need 3696 red pixel]" + .."label[2,5;you need 3696 blue pixel]" + .."list[current_player;main;0,8.5;8,3;8]" + .."list[current_player;crvier4;1,1;1,5;]" + .."listring[current_player;main]" + .."listring[current_player;crvier4]" + return formspec +end +minetest.register_on_dignode(function(pos, node, player) + if player == nil then + return + end + local name = player:get_player_name() + local hp = player:get_hp() + local drops = node.name + local x = math.random(1,50) + local inv = player:get_inventory() + if node.name == "tutorial:geschenk_death" then + if x < 6 then + minetest.get_player_by_name(name):set_hp(0) + elseif x < 21 then + if hp > 3 then + minetest.get_player_by_name(name):set_hp(hp-4) + else + minetest.get_player_by_name(name):set_hp(0) + end + elseif x < 31 then + if hp > 9 then + minetest.get_player_by_name(name):set_hp(hp-10) + else + minetest.get_player_by_name(name):set_hp(0) + end + elseif x < 36 then + inv:add_item("main", "default:mese_crystal_fragment 4") + elseif x < 41 then + inv:add_item("main", "tutorial:lightstone") + elseif x < 46 then + inv:add_item("main", "default:ice") + elseif x < 50 then + inv:add_item("main", "tutorial:geschenk_death") + elseif x == 50 then + inv:add_item("main", "tutorial:regnum_part") + end + end + if node.name == "tutorial:geschenk_death_silber" then + if x < 5 then + minetest.get_player_by_name(name):set_hp(0) + elseif x < 18 then + if hp > 3 then + minetest.get_player_by_name(name):set_hp(hp-4) + else + minetest.get_player_by_name(name):set_hp(0) + end + elseif x < 26 then + if hp > 9 then + minetest.get_player_by_name(name):set_hp(hp-10) + else + minetest.get_player_by_name(name):set_hp(0) + end + elseif x < 32 then + inv:add_item("main", "default:mese_crystal") + elseif x < 38 then + inv:add_item("main", "tutorial:lightstone") + elseif x < 44 then + inv:add_item("main", "default:ice") + elseif x < 50 then + inv:add_item("main", "tutorial:geschenk_death_silber") + elseif x == 50 then + local y = math.random(1,2) + inv:add_item("main", "tutorial:regnum_part "..y) + end + end + if node.name == "tutorial:geschenk_death_gold" then + if x < 4 then + minetest.get_player_by_name(name):set_hp(0) + elseif x < 15 then + if hp > 3 then + minetest.get_player_by_name(name):set_hp(hp-4) + else + minetest.get_player_by_name(name):set_hp(0) + end + elseif x < 21 then + if hp > 9 then + minetest.get_player_by_name(name):set_hp(hp-10) + else + minetest.get_player_by_name(name):set_hp(0) + end + elseif x < 28 then + inv:add_item("main", "default:mese_crystal 2") + elseif x < 35 then + inv:add_item("main", "tutorial:lightstone 2") + elseif x < 42 then + inv:add_item("main", "default:ice") + elseif x < 50 then + inv:add_item("main", "tutorial:geschenk_death_gold") + elseif x == 50 then + local y = math.random(1,3) + inv:add_item("main", "tutorial:regnum_part "..y) + end + end + if node.name == "tutorial:geschenk_death_platin" then + if x < 4 then + minetest.get_player_by_name(name):set_hp(0) + elseif x < 15 then + if hp > 3 then + minetest.get_player_by_name(name):set_hp(hp-4) + else + minetest.get_player_by_name(name):set_hp(0) + end + elseif x < 16 then + if hp > 9 then + minetest.get_player_by_name(name):set_hp(hp-10) + else + minetest.get_player_by_name(name):set_hp(0) + end + elseif x < 24 then + inv:add_item("main", "default:mese_crystal 3") + elseif x < 33 then + inv:add_item("main", "tutorial:lightstone 2") + elseif x < 41 then + inv:add_item("main", "default:ice") + elseif x < 50 then + inv:add_item("main", "tutorial:geschenk_death_platin") + elseif x == 50 then + local y = math.random(1,4) + inv:add_item("main", "tutorial:regnum_part "..y) + end + end +end) +minetest.override_item("default:water_source", { + groups = {water=3, liquid=3, puts_out_fire=1, cracky = 14}, + drop = "default:water_source", + drawtype = "liquid", + diggable = true, + alpha = 180, +}) +minetest.override_item("default:water_flowing", { + groups = {water=3, liquid=3, puts_out_fire=1, cracky = 14}, + drop = "default:water_source", + drawtype = "flowingliquid", + diggable = true, + alpha = 180, +}) +minetest.override_item("default:lava_source", { + groups = {lava=3, liquid=2, hot=3, igniter=1, cracky = 14}, + drop = "default:lava_source", + diggable = true, +}) +minetest.register_on_dignode(function(pos, node, player) + local dig1 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","default:clay"} + local dig2 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium"} + local dig3 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore"} + local dig4 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore","tutorial:stone_with_admin","default:clay"} + local dig5 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore","tutorial:stone_with_admin","tutorial:stone_with_titan"} + local dig6 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore","tutorial:stone_with_admin","tutorial:stone_with_titan","tutorial:stone_with_rot","tutorial:stone_with_blau"} + local dig7 = {"default:stone_with_coal","default:stone_with_iron","default:stone_with_copper","default:stone_with_gold","default:stone_with_mese","default:stone_with_diamond","moreores:silver","moreores:mineral_tin","moreores:mineral_mithril","moreores:mineral_silver","technic:mineral_chromium","technic:mineral_zinc","technic:mineral_uranium","tutorial:stone_with_white","tutorial:stone_with_black","tutorial:stone_with_uranium","gems:ruby_ore","gems:sapphire_ore","gems:amethyst_ore","gems:pearl_ore","gems:shadow_ore","gems:emerald_ore","tutorial:stone_with_admin","tutorial:stone_with_titan","tutorial:stone_with_rot","tutorial:stone_with_blau","default:lava_source","default:water_source"} + local dig8 = {"default:cobble","default:stone","default:dirt","default:sand","default:desert_sand","default:desert_stone","default:dirt_with_grass","default:gravel","default:clay","default:cobble","default:mossycobble","default:dirt_with_snow","default:dirt_with_rainforest_litter","default:grass_3","default:dry_grass_3","default:grass_4","default:dry_grass_4"} + local name, tool, drops, i, drop, drop_name + if player == nil then + return + end + local inv = player:get_inventory() + tool = player:get_wielded_item():get_name() + if tool == "tutorial:legendenbattleaxe1" then + drops = node.name + for _,node_name in ipairs(dig1) do + if drops == node_name then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + end + end + end + end + if tool == "tutorial:legendenbattleaxe2" then + drops = node.name + for _,node_name in ipairs(dig2) do + if drops == node_name then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + end + end + end + end + if tool == "tutorial:legendenbattleaxe3" then + drops = node.name + for _,node_name in ipairs(dig3) do + if drops == node_name then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + end + end + end + end + if tool == "tutorial:legendenbattleaxe4" then + drops = node.name + for _,node_name in ipairs(dig4) do + if drops == node_name then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + end + end + end + end + if tool == "tutorial:legendenbattleaxe5" then + drops = node.name + for _,node_name in ipairs(dig5) do + if drops == node_name then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + end + end + end + end + if tool == "tutorial:legendenbattleaxe6" then + drops = node.name + for _,node_name in ipairs(dig6) do + if drops == node_name then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + end + end + end + end + if tool == "tutorial:superlegendenbattleaxe1" or tool == "tutorial:superlegendenbattleaxe2" then + drops = node.name + for _,node_name in ipairs(dig7) do + if drops == node_name then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + end + end + end + end + if tool == "tutorial:regnumbattleaxe1" or tool == "tutorial:regnumbattleaxe2" or tool == "tutorial:regnumbattleaxe3" then + drops = node.name + for _,node_name in ipairs(dig7) do + if drops == node_name then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + end + end + end + for _,node_name in ipairs(dig8) do + if drops == node_name then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + end + end + end + if drops == "default:grass_5" or drops == "default:dry_grass_5" then + droping = minetest.get_node_drops(node.name) + for _, itemname in ipairs(droping) do + inv:add_item("main", itemname) + inv:add_item("main", itemname) + end + end + end +end) +local old_entities = {"mobs:zombie", "mobs:grass_monster", "mobs:geist", "mobs:tree_monster", "mobs:spider", "mobs:dungeon_master", "mobs:lava_flan", "mobs:mese_monster", "mobs:oerkki","mobs:rat","mobs_crocs:crocodile_swim","mobs:cow","mobs:chicken","mobs:pumba","mobs:sheep_white","mobs:kitten","","spidermob:spider"} +local old_nodes = {} +for _,node_name in ipairs(old_nodes) do + minetest.register_node(":"..node_name, { + groups = {old=1}, + }) +end +minetest.register_abm({ + nodenames = {"group:old"}, + interval = 1, + chance = 1, + action = function(pos, node) + minetest.env:remove_node(pos) + end, +}) +for _,entity_name in ipairs(old_entities) do + minetest.register_entity(":"..entity_name, { + on_activate = function(self, staticdata) + self.object:remove() + end, + }) +end +local xp_gui = {} +local xp_gru = {} +local xp_r_b = {} +local xp_gra = {} +local xp_gel = {} +local xp_cya = {} +local crafting = {} +local crafting3 = {} +local crafting4 = {} +local cr = {} +crafting4.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("crvier4", 5) + formspec = "size[8,11.3]" + .."background[8,11.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."button[6,3.5;2,0.5;cra4;Craft]" + .."list[current_player;main;0,7.25;8,1;]" + .."label[2,1;you need 352 gold pixel]" + .."label[2,2;you need 352 green pixel]" + .."label[2,3;you need 1120 purple pixel]" + .."label[2,4;you need 3696 red pixel]" + .."label[2,5;you need 3696 blue pixel]" + .."list[current_player;main;0,8.5;8,3;8]" + .."list[current_player;crvier4;1,1;1,5;]" + .."listring[current_player;main]" + .."listring[current_player;crvier4]" + return formspec +end +crafting3.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("crvier3", 25) + formspec = "size[8,10.3]" + .."background[8,11.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."button[6,2;2,0.5;cra3;Craft (1)]" + .."button[6,3;2,0.5;cra310;Craft (10)]" + .."button[6,4;2,0.5;cra399;Craft (99)]" + .."list[current_player;main;0,6.25;8,1;]" + .."list[current_player;main;0,7.5;8,3;8]" + .."list[current_player;crvier3;1,1;5,5;]" + .."listring[current_player;main]" + .."listring[current_player;crvier3]" + return formspec +end +crafting.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("crvier", 16) + formspec = "size[8,9.3]" + .."background[8,9.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."button[5,1.5;2,0.5;cra;Craft (1)]" + .."button[5,2.5;2,0.5;cra10;Craft (10)]" + .."button[5,3.5;2,0.5;cra99;Craft (99)]" + .."list[current_player;main;0,5.25;8,1;]" + .."list[current_player;main;0,6.5;8,3;8]" + .."list[current_player;crvier;1,1;4,4;]" + .."listring[current_player;main]" + .."listring[current_player;crvier]" + + return formspec +end +cr.get_formspec = function(player,pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("feld", 1) + player_inv:set_size("feld3", 1) + player_inv:set_size("feld4", 1) + player_inv:set_size("feld5", 1) + player_inv:set_size("feld6", 1) + player_inv:set_size("feld7", 1) + player_inv:set_size("feld8", 1) + local type = player:get_inventory():get_stack("feld",1):get_name() + local type3 = player:get_inventory():get_stack("feld3",1):get_name() + local type4 = player:get_inventory():get_stack("feld4",1):get_name() + local type5 = player:get_inventory():get_stack("feld5",1):get_name() + local type6 = player:get_inventory():get_stack("feld6",1):get_name() + local type7 = player:get_inventory():get_stack("feld7",1):get_name() + local type8 = player:get_inventory():get_stack("feld8",1):get_name() + if type == "tutorial:craft_schluessel7" then + image = "crafting" + else + image = "cr" + end + if type3 == "tutorial:legenden_schluessel" then + image3 = "crafting3" + else + image3 = "cr" + end + if type4 == "tutorial:regnum_key" then + image4 = "crafting4" + else + image4 = "cr" + end + if type5 == "tutorial:dragon_schluessel" then + image5 = "crafting5" + else + image5 = "cr" + end + if type6 == "tutorial:fox_schluessel" then + image6 = "crafting6" + else + image6 = "cr" + end + if type7 == "tutorial:tortoise_schluessel" then + image7 = "crafting7" + else + image7 = "cr" + end + if type8 == "tutorial:golden_schluessel" then + image8 = "crafting8" + else + image8 = "cr" + end + formspec = "size[14,8.55]" + .."background[14,8.55;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."button[0,2.5;2,0.5;"..image..";4x4 craft]" + .."button[2,2.5;2,0.5;"..image3..";5x5 craft]" + .."button[4,2.5;2,0.5;"..image4..";Regnum craft]" + .."button[6,2.5;2,0.5;"..image5..";Gem craft]" + .."button[8,2.5;2,0.5;"..image6..";Cooking]" + .."button[10,2.5;2,0.5;"..image7..";Medallion craft]" + .."button[12,2.5;2,0.5;"..image8..";Crystal craft]" + .."button[4,3.5;2,0.5;dna;DNA craft]" + .."button[6,3.5;2,0.5;mine;Mining craft]" + .."button[8,3.5;2,0.5;troph;Trophy craft]" + .."label[0.5,1.8;Craftkey]" + .."label[2.4,1.8;Legendkey]" + .."label[4.35,1.8;Regnumkey]" + .."label[6.35,1.8;Dragonkey]" + .."label[8.5,1.8;Foxkey]" + .."label[10.4,1.8;Tortoisekey]" + .."label[12.4,1.8;Goldenkey]" + .."list[current_player;feld;0.5,1;1,1;]" + .."list[current_player;feld3;2.5,1;1,1;]" + .."list[current_player;feld4;4.5,1;1,1;]" + .."list[current_player;feld5;6.5,1;1,1;]" + .."list[current_player;feld6;8.5,1;1,1;]" + .."list[current_player;feld7;10.5,1;1,1;]" + .."list[current_player;feld8;12.5,1;1,1;]" + .."list[current_player;main;3,4.5;8,1;]" + .."list[current_player;main;3,5.75;8,3;8]" + return formspec +end +xp_gra.get_formspec = function(player) + formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]" + .."background[6.2,5.95;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[2.5,0;2,0.5;main;Main]" + .."textlist[0,1;6,5;xp_gra;Lv.1 = 5xp,Lv.2 = 10xp,Lv.3 = 15xp,Lv.4 = 20xp,Lv.5 = 25xp,Lv.6 = 30xp,Lv.7 = 35xp,Lv.8 = 40xp,Lv.9 = 45xp,Lv.10 = 50xp,Lv.11 = 60xp,Lv.12 = 70xp,Lv.13 = 80xp,Lv.14 = 90xp,Lv.15 = 100xp,Lv.16 = 110xp,Lv.17 = 120xp,Lv.18 = 130xp,Lv.19 = 140xp,Lv.20 = 150xp,Lv.21 = 165xp,Lv.22 = 180xp,Lv.23 = 195xp,Lv.24 = 210xp,Lv.25 = 225xp,Lv.26 = 240xp,Lv.27 = 255xp,Lv.28 = 270xp,Lv.29 = 285xp,Lv.30 = 300xp,Lv.31 = 320xp,Lv.32 = 340xp,Lv.33 = 360xp,Lv.34 = 380xp,Lv.35 = 400xp,Lv.36 = 420xp,Lv.37 = 440xp,Lv.38 = 460xp,Lv.39 = 480xp,Lv.40 = 500xp,Lv.41 = 525xp,Lv.42 = 550xp,Lv.43 = 575xp,Lv.44 = 600xp,Lv.45 = 625xp,Lv.46 = 650xp,Lv.47 = 675xp,Lv.48 = 700xp,Lv.49 = 725xp,Lv.50 = 750xp,Lv.51 = 780xp,Lv.52 = 810xp,Lv.53 = 840xp,Lv.54 = 870xp,Lv.55 = 900xp,Lv.56 = 930xp,Lv.57 = 960xp,Lv.58 = 990xp,Lv.59 = 1020xp,Lv.60 = 1050xp,Lv.61 = 1085xp,Lv.62 = 1120xp,Lv.63 = 1155xp,Lv.64 = 1190xp,Lv.65 = 1225xp,Lv.66 = 1260xp,Lv.67 = 1295xp,Lv.68 = 1330xp,Lv.69 = 1365xp,Lv.70 = 1400xp,Lv.71 = 1440xp,Lv.72 = 1480xp,Lv.73 = 1520xp,Lv.74 = 1560xp,Lv.75 = 1600xp,Lv.76 = 1640xp,Lv.77 = 1680xp,Lv.78 = 1720xp,Lv.79 = 1760xp,Lv.80 = 1800xp,Lv.81 = 1845xp,Lv.82 = 1890xp,Lv.83 = 1935xp,Lv.84 = 1980xp,Lv.85 = 2025xp,Lv.86 = 2070xp,Lv.87 = 2115xp,Lv.88 = 2160xp,Lv.89 = 2205xp,Lv.90 = 2250xp,Lv.91 = 2300xp,Lv.92 = 2350xp,Lv.93 = 2400xp,Lv.94 = 2450xp,Lv.95 = 2500xp,Lv.96 = 2550xp,Lv.97 = 2600xp,Lv.98 = 2650xp,Lv.99 = 2700xp,Lv.100 = 2750xp,Lv.MAX = 3200xp]" + return formspec +end +xp_r_b.get_formspec = function(player) + formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]" + .."background[6.2,5.95;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[2.5,0;2,0.5;main;Main]" + .."textlist[0,1;6,5;xp_r_b;Lv.1 = 1xp,Lv.2 = 3xp,Lv.3 = 6xp,Lv.4 = 10xp,Lv.5 = 15xp,Lv.6 = 21xp,Lv.7 = 28xp,Lv.8 = 36xp,Lv.9 = 45xp,Lv.10 = 55xp,Lv.11 = 66xp,Lv.12 = 78xp,Lv.13 = 91xp,Lv.14 = 105xp,Lv.15 = 120xp,Lv.16 = 136xp,Lv.17 = 153xp,Lv.18 = 171xp,Lv.19 = 190xp,Lv.20 = 210xp,Lv.MAX = 250xp]" + return formspec +end +xp_gru.get_formspec = function(player) + formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]" + .."background[6.2,5.95;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[2.5,0;2,0.5;main;Main]" + .."textlist[0,1;6,5;xp_gru;Lv.1 = 10xp,Lv.2 = 20xp,Lv.3 = 30xp,Lv.4 = 40xp,Lv.5 = 50xp,Lv.6 = 70xp,Lv.7 = 90xp,Lv.8 = 110xp,Lv.9 = 130xp,Lv.10 = 150xp,Lv.11 = 180xp,Lv.12 = 210xp,Lv.13 = 240xp,Lv.14 = 270xp,Lv.15 = 300xp,Lv.16 = 340xp,Lv.17 = 380xp,Lv.18 = 420xp,Lv.19 = 460xp,Lv.20 = 500xp,Lv.21 = 550xp,Lv.22 = 600xp,Lv.23 = 650xp,Lv.24 = 700xp,Lv.25 = 750xp,Lv.26 = 810xp,Lv.27 = 870xp,Lv.28 = 930xp,Lv.29 = 990xp,Lv.30 = 1050xp,Lv.31 = 1120xp,Lv.32 = 1190xp,Lv.33 = 1260xp,Lv.34 = 1330xp,Lv.35 = 1400xp,Lv.36 = 1480xp,Lv.37 = 1560xp,Lv.38 = 1640xp,Lv.39 = 1720xp,Lv.40 = 1800xp,Lv.41 = 1890xp,Lv.42 = 1980xp,Lv.43 = 2070xp,Lv.44 = 2160xp,Lv.45 = 2250xp,Lv.45 = 2250xp,Lv.46 = 2350xp,Lv.47 = 2450xp,Lv.48 = 2550xp,Lv.49 = 2650xp,Lv.50 = 2750xp,Lv.51 = 2860xp,Lv.52 = 2970xp,Lv.53 = 3080xp,Lv.54 = 3190xp,Lv.55 = 3300xp,Lv.56 = 3420xp,Lv.57 = 3540xp,Lv.58 = 3660xp,Lv.59 = 3780xp,Lv.60 = 3900xp,Lv.61 = 4030xp,Lv.62 = 4160xp,Lv.63 = 4290xp,Lv.64 = 4420xp,Lv.65 = 4550xp,Lv.66 = 4690xp,Lv.67 = 4830xp,Lv.68 = 4970xp,Lv.69 = 5110xp,Lv.70 = 5250xp,Lv.71 = 5400xp,Lv.72 = 5550xp,Lv.73 = 5700xp,Lv.74 = 5850xp,Lv.75 = 6000xp,Lv.76 = 6160xp,Lv.77 = 6320xp,Lv.78 = 6480xp,Lv.79 = 6640xp,Lv.80 = 6800xp,Lv.81 = 6970xp,Lv.82 = 7140xp,Lv.83 = 7310xp,Lv.84 = 7480xp,Lv.85 = 7650xp,Lv.86 = 7830xp,Lv.87 = 8010xp,Lv.88 = 8190xp,Lv.89 = 8370xp,Lv.90 = 8550xp,Lv.91 = 8740xp,Lv.92 = 8930xp,Lv.93 = 9120xp,Lv.94 = 9310xp,Lv.95 = 9500xp,Lv.96 = 9700xp,Lv.97 = 9900xp,Lv.98 = 10100xp,Lv.99 = 10300xp,Lv.100 = 10500xp,Lv.MAX = 11950xp]" + return formspec +end +xp_gel.get_formspec = function(player) + formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]" + .."background[6.2,5.95;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[2.5,0;2,0.5;main;Main]" + .."textlist[0,1;6,5;xp_gel;Lv.1 = 1xp,Lv.2 = 2xp,Lv.3 = 3xp,Lv.4 = 4xp,Lv.5 = 5xp,Lv.6 = 6xp,Lv.7 = 7xp,Lv.8 = 8xp,Lv.9 = 9xp,Lv.10 = 10xp,Lv.11 = 12xp,Lv.12 = 14xp,Lv.13 = 16xp,Lv.14 = 18xp,Lv.15 = 20xp,Lv.16 = 22xp,Lv.17 = 24xp,Lv.18 = 26xp,Lv.19 = 28xp,Lv.20 = 30xp,Lv.21 = 33xp,Lv.22 = 36xp,Lv.23 = 39xp,Lv.24 = 42xp,Lv.25 = 45xp,Lv.26 = 48xp,Lv.27 = 51xp,Lv.28 = 54xp,Lv.29 = 57xp,Lv.30 = 60xp,Lv.31 = 64xp,Lv.32 = 68xp,Lv.33 = 72xp,Lv.34 = 76xp,Lv.35 = 80xp,Lv.36 = 84xp,Lv.37 = 88xp,Lv.38 = 92xp,Lv.39 = 96xp,Lv.40 = 100xp,Lv.41 = 105xp,Lv.42 = 110xp,Lv.43 = 115xp,Lv.44 = 120xp,Lv.45 = 125xp,Lv.46 = 130xp,Lv.47 = 135xp,Lv.48 = 140xp,Lv.49 = 145xp,Lv.50 = 150xp,Lv.51 = 156xp,Lv.52 = 162xp,Lv.53 = 168xp,Lv.54 = 174xp,Lv.55 = 180xp,Lv.56 = 186xp,Lv.57 = 192xp,Lv.58 = 198xp,Lv.59 = 204xp,Lv.60 = 210xp,Lv.61 = 217xp,Lv.62 = 224xp,Lv.63 = 231xp,Lv.64 = 238xp,Lv.65 = 245xp,Lv.66 = 252xp,Lv.67 = 259xp,Lv.68 = 266xp,Lv.69 = 273xp,Lv.70 = 280xp,Lv.71 = 288xp,Lv.72 = 296xp,Lv.73 = 304xp,Lv.74 = 312xp,Lv.75 = 320xp,Lv.76 = 328xp,Lv.77 = 336xp,Lv.78 = 344xp,Lv.79 = 352xp,Lv.80 = 360xp,Lv.81 = 369xp,Lv.82 = 378xp,Lv.83 = 387xp,Lv.84 = 396xp,Lv.85 = 405xp,Lv.86 = 414xp,Lv.87 = 423xp,Lv.88 = 432xp,Lv.89 = 441xp,Lv.90 = 450xp,Lv.91 = 460xp,Lv.92 = 470xp,Lv.93 = 480xp,Lv.94 = 490xp,Lv.95 = 500xp,Lv.96 = 510xp,Lv.97 = 520xp,Lv.98 = 530xp,Lv.99 = 540xp,Lv.100 = 550xp,Lv.MAX = 600xp]" + return formspec +end +xp_cya.get_formspec = function(player) + formspec = "size[6.2,5.95]button[0,0;2,0.5;xp_gui;Back]" + .."background[6.2,5.95;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[2.5,0;2,0.5;main;Main]" + .."textlist[0,1;6,5;xp_cya;Lv.1 = 1xp,Lv.2 = 4xp,Lv.3 = 9xp,Lv.4 = 16xp,Lv.5 = 25xp,Lv.6 = 36xp,Lv.7 = 49xp,Lv.8 = 64xp,Lv.9 = 81xp,Lv.10 = 100xp,Lv.11 = 121xp,Lv.12 = 144xp,Lv.13 = 169xp,Lv.14 = 196xp,Lv.15 = 225xp,Lv.16 = 256xp,Lv.17 = 289xp,Lv.18 = 324xp,Lv.19 = 361xp,Lv.20 = 400xp,Lv.21 = 441xp,Lv.22 = 484xp,Lv.23 = 529xp,Lv.24 = 576xp,Lv.25 = 625xp,Lv.MAX = 900xp]" + return formspec +end +xp_gui.get_formspec = function(player) + if player == nil then + return + end + local name = player:get_player_name() + local player_inv = player:get_inventory() + local xp_gruen_o = io.open(minetest.get_worldpath().."/"..name.."_experience", "r") + local xp_gruen = xp_gruen_o:read("*l") + local xp_rot_o = io.open(minetest.get_worldpath().."/"..name.."_experience_rot", "r") + local xp_rot = xp_rot_o:read("*l") + local xp_blau_o = io.open(minetest.get_worldpath().."/"..name.."_experience_blau", "r") + local xp_blau = xp_blau_o:read("*l") + local xp_grau_o = io.open(minetest.get_worldpath().."/"..name.."_experience_grau", "r") + local xp_grau = xp_grau_o:read("*l") + local xp_gelb_o = io.open(minetest.get_worldpath().."/"..name.."_experience_gelb", "r") + local xp_gelb = xp_gelb_o:read("*l") + local xp_cyan_o = io.open(minetest.get_worldpath().."/"..name.."_experience_cyan", "r") + local xp_cyan = xp_cyan_o:read("*l") + player_inv:set_size("feld2", 1) + local type = player:get_inventory():get_stack("feld2",1):get_name() + if type == "tutorial:level_schluessel" then + image1 = "xp_gru" + image2 = "xp_r_b" + image3 = "xp_gra" + image4 = "xp_gel" + image5 = "xp_cya" + else + image1 = "xp_gui" + image2 = "xp_gui" + image3 = "xp_gui" + image4 = "xp_gui" + image5 = "xp_gui" + end + formspec = "size[8,8.3]button[0,0;2,0.5;inven;Back]" + .."background[8,8.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[2,0;2,0.5;main;Main]" + .."label[0,1;Xp green (Part1) : "..xp_gruen.."xp]" + .."label[0,1.4;Xp red (Part2) : "..xp_rot.."xp]" + .."label[0,1.8;Xp blue (Part2) : "..xp_blau.."xp]" + .."label[0,2.2;Xp gray (Part3) : "..xp_grau.."xp]" + .."label[0,2.6;Xp yellow (Part4) : "..xp_gelb.."xp]" + .."label[0,3;Xp cyan (Part5) : "..xp_cyan.."xp]" + .."list[current_player;main;0,4.25;8,1;]" + .."list[current_player;main;0,5.5;8,3;8]" + .."list[current_player;feld2;5,0;1,1;]" + .."label[5,0.9;Xp key]" + .."button[3.5,1.5;2.0,0.2;"..image1..";Xp green you need]" + .."button[3.5,2.2;2.0,0.2;"..image2..";Xp red/blue you need]" + .."button[5.5,1.5;2.0,0.2;"..image3..";Xp gray you need]" + .."button[5.5,2.2;2.0,0.2;"..image4..";Xp yellow you need]" + .."button[4.5,2.9;2.0,0.2;"..image5..";Xp cyan you need]" + .."listring[current_player;feld2]" + .."listring[current_player;main]" + return formspec +end +minetest.register_on_player_receive_fields(function(player, formname, fields) + if player == nil then + return + end + if fields.xp_gui then + inventory_plus.set_inventory_formspec(player, xp_gui.get_formspec(player)) + end + if fields.cra then + local player_inv = player:get_inventory() + local crafted = nil + local table_dec = nil + local player_inv = player:get_inventory() + local tablelist = player_inv:get_list("crvier") + if tablelist then + crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist}) + end + local k = 0 + if player_inv:room_for_item("main", crafted.item) == true then + k = 1 + end + if crafted.item:get_name() == "" then + k = 0 + end + local kk = nil + if not kk == ture then + k = 0 + end + if k == 1 then + player_inv:add_item("main", crafted.item) + player_inv:set_list("crvier", table_dec.items) + end + inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player)) + end + if fields.cra10 then + for i=1,10 do + local player_inv = player:get_inventory() + local crafted = nil + local table_dec = nil + local player_inv = player:get_inventory() + local tablelist = player_inv:get_list("crvier") + if tablelist then + crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist}) + end + local k = 0 + if player_inv:room_for_item("main", crafted.item) == true then + k = 1 + end + if crafted.item:get_name() == "" then + k = 0 + end + local kk = nil + if not kk == ture then + k = 0 + end + if k == 1 then + player_inv:add_item("main", crafted.item) + player_inv:set_list("crvier", table_dec.items) + end + inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player)) + end + end + if fields.cra99 then + for i=1,99 do + local player_inv = player:get_inventory() + local crafted = nil + local table_dec = nil + local player_inv = player:get_inventory() + local tablelist = player_inv:get_list("crvier") + if tablelist then + crafted,table_dec = minetest.get_craft_result({method = "normal", width = 4, items = tablelist}) + end + local k = 0 + if player_inv:room_for_item("main", crafted.item) == true then + k = 1 + end + if crafted.item:get_name() == "" then + k = 0 + end + local kk = nil + if not kk == ture then + k = 0 + end + if k == 1 then + player_inv:add_item("main", crafted.item) + player_inv:set_list("crvier", table_dec.items) + end + inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player)) + end + end + if fields.cra3 then + local player_inv = player:get_inventory() + local crafted = nil + local table_dec = nil + local player_inv = player:get_inventory() + local tablelist = player_inv:get_list("crvier3") + if tablelist then + crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist}) + end + local k = 0 + if player_inv:room_for_item("main", crafted.item) == true then + k = 1 + end + if crafted.item:get_name() == "" then + k = 0 + end + if k == 1 then + player_inv:add_item("main", crafted.item) + player_inv:set_list("crvier3", table_dec.items) + end + inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player)) + end + if fields.cra310 then + for i=1,10 do + local player_inv = player:get_inventory() + local crafted = nil + local table_dec = nil + local player_inv = player:get_inventory() + local tablelist = player_inv:get_list("crvier3") + if tablelist then + crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist}) + end + local k = 0 + if player_inv:room_for_item("main", crafted.item) == true then + k = 1 + end + if crafted.item:get_name() == "" then + k = 0 + end + if k == 1 then + player_inv:add_item("main", crafted.item) + player_inv:set_list("crvier3", table_dec.items) + end + inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player)) + end + end + if fields.cra399 then + for i=1,99 do + local player_inv = player:get_inventory() + local crafted = nil + local table_dec = nil + local player_inv = player:get_inventory() + local tablelist = player_inv:get_list("crvier3") + if tablelist then + crafted,table_dec = minetest.get_craft_result({method = "normal", width = 5, items = tablelist}) + end + local k = 0 + if player_inv:room_for_item("main", crafted.item) == true then + k = 1 + end + if crafted.item:get_name() == "" then + k = 0 + end + if k == 1 then + player_inv:add_item("main", crafted.item) + player_inv:set_list("crvier3", table_dec.items) + end + inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player)) + end + end + if fields.cra4 then + local player_inv = player:get_inventory() + local crafted = nil + local table_dec = nil + local player_inv = player:get_inventory() + local k = 1 + local x1 = player_inv:get_stack("crvier4", 1):get_name() + local x2 = player_inv:get_stack("crvier4", 2):get_name() + local x3 = player_inv:get_stack("crvier4", 3):get_name() + local x4 = player_inv:get_stack("crvier4", 4):get_name() + local x5 = player_inv:get_stack("crvier4", 5):get_name() + local y1 = player_inv:get_stack("crvier4", 1):get_count() + local y2 = player_inv:get_stack("crvier4", 2):get_count() + local y3 = player_inv:get_stack("crvier4", 3):get_count() + local y4 = player_inv:get_stack("crvier4", 4):get_count() + local y5 = player_inv:get_stack("crvier4", 5):get_count() + if x1 == "tutorial:regnum_pixel_gold" and y1 >= 352 then + else + k = 0 + end + if x2 == "tutorial:regnum_pixel_green" and y2 >= 352 then + else + k = 0 + end + if x3 == "tutorial:regnum_pixel_purple" and y3 >= 1120 then + else + k = 0 + end + if x4 == "tutorial:regnum_pixel_red" and y4 >= 3696 then + else + k = 0 + end + if x5 == "tutorial:regnum_pixel_blue" and y5 >= 3696 then + else + k = 0 + end + if k == 1 then + player_inv:add_item("main", "tutorial:regnum_pixeled") + print (y1-352) + player_inv:set_stack("crvier4", 1, "tutorial:regnum_pixel_gold "..(y1-352)) + player_inv:set_stack("crvier4", 2, "tutorial:regnum_pixel_green "..(y2-352)) + player_inv:set_stack("crvier4", 3, "tutorial:regnum_pixel_purple "..(y3-1120)) + player_inv:set_stack("crvier4", 4, "tutorial:regnum_pixel_red "..(y4-3696)) + player_inv:set_stack("crvier4", 5, "tutorial:regnum_pixel_blue "..(y5-3696)) + end + inventory_plus.set_inventory_formspec(player, crafting4.get_formspec(player)) + end + if fields.xp_gru then + inventory_plus.set_inventory_formspec(player, xp_gru.get_formspec(player)) + end + if fields.xp_r_b then + inventory_plus.set_inventory_formspec(player, xp_r_b.get_formspec(player)) + end + if fields.xp_gra then + inventory_plus.set_inventory_formspec(player, xp_gra.get_formspec(player)) + end + if fields.xp_gel then + inventory_plus.set_inventory_formspec(player, xp_gel.get_formspec(player)) + end + if fields.xp_cya then + inventory_plus.set_inventory_formspec(player, xp_cya.get_formspec(player)) + end + if fields.cr then + inventory_plus.set_inventory_formspec(player, cr.get_formspec(player)) + end + if fields.crafting then + inventory_plus.set_inventory_formspec(player, crafting.get_formspec(player)) + end + if fields.crafting3 then + inventory_plus.set_inventory_formspec(player, crafting3.get_formspec(player)) + end + if fields.crafting4 then + inventory_plus.set_inventory_formspec(player, crafting4.get_formspec(player)) + end +end) +local function has_locked_chest_privilege(meta, player) + if player:get_player_name() ~= meta:get_string("owner") then + return false + end + return true +end +tutorial = {} +local function add_spawner(pos) + minetest.set_node(pos, {name="tutorial:spawner_mummy"}) + if not minetest.setting_getbool("only_peaceful_mobs") then tutorial.spawn_mummy({x=pos.x,y=pos.y,z=pos.z-2},2) end +end +local function can_replace(pos) + local n = minetest.get_node_or_nil(pos) + if n and n.name and minetest.registered_nodes[n.name] and not minetest.registered_nodes[n.name].walkable then + return true + elseif not n then + return true + else + return false + end +end +local function get_sign(i) + if i == 0 then + return 0 + else + return i/math.abs(i) + end +end +local function get_velocity(vx, vy, vz, yaw) + local x = math.cos(yaw)*vx+math.cos(math.pi/2+yaw)*vz + local z = math.sin(yaw)*vx+math.sin(math.pi/2+yaw)*vz + return {x=x, y=vy, z=z} +end +local function get_v(v) + return math.sqrt(vx^2+vz^2) +end +local heli = { + physical = true, + collisionbox = {-1,-0.6,-1, 1,0.3,1}, + collide_with_objects = true, + weight = 5, + visual = "mesh", + mesh = "root.x", + driver = nil, + model = nil, + motor = nil, + left = true, + timer=0, + yaw=0, + prev_y=0, + vx=0, + vy=0, + vz=0 +} +local heliModel = { + visual = "mesh", + mesh = "heli.x", + textures = {"bladest.png","bladest.png","helit.png","Glasst.png"}, +} +local motor = { + physical = true, + collisionbox = {-2,0.5,-1, 1,1,1}, + visual = "mesh", + mesh = "motor.x", + textures = {"motort.png"}, + driver = nil, + left = true, + timer=0, + vx = 0, + vy = 0, + vz = 0 +} +function heli:on_rightclick(clicker) + if not clicker or not clicker:is_player() then + return + end + if self.driver and clicker == self.driver then + clicker:set_attach(self.model, "Root", {x=0,y=0,z=0}, {x=0,y=0,z=0}) + self.driver = nil + clicker:set_detach() + self.model:set_animation({x=0,y=1},0, 0) + elseif not self.driver then + self.model:set_animation({x=0,y=10},10, 0) + self.driver = clicker + clicker:set_attach(self.model, "Root", {x=0,y=0,z=-10}, {x=-90,y=0,z=-90}) + end +end +function heliModel:on_activate(staticdata, dtime_s) + self.object:set_armor_groups({immortal=1}) + local is_attached = false + for _,object in ipairs(minetest.env:get_objects_inside_radius(self.object:getpos(), 2)) do + if object and object:get_luaentity() and object:get_luaentity().name=="tutorial:heli" then + if object:get_luaentity().model == nil then + object:get_luaentity().model = self + end + if object:get_luaentity().model == self then + is_attached = true + end + end + end + if is_attached == false then + self.object:remove() + end +end +function heli:on_activate(staticdata, dtime_s) + self.object:set_armor_groups({immortal=1}) + self.prev_y=self.object:getpos() + if self.model == nil then + self.model = minetest.env:add_entity(self.object:getpos(), "tutorial:heliModel") + self.model:set_attach(self.object, "Root", {x=0,y=0,z=2}, {x=0,y=0,z=0}) + end +end +function heli:get_staticdata(self) +end +function heli:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + if self.model ~= nil then + self.model:remove() + end + self.object:remove() + if puncher and puncher:is_player() then + puncher:get_inventory():add_item("main", "tutorial:heli") + end +end +function heliModel:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + self.object:remove() +end +function heli:on_step(dtime) + if self.driver and ( math.abs(self.driver:getpos().x-self.object:getpos().x)>10*dtime or math.abs(self.driver:getpos().y-self.object:getpos().y)>10*dtime or math.abs(self.driver:getpos().z-self.object:getpos().z)>10*dtime) then + self.driver = nil + end + if self.driver then + self.yaw = self.driver:get_look_yaw() + v = self.object:getvelocity() + local ctrl = self.driver:get_player_control() + if ctrl.up then + self.vx = self.vx + math.cos(self.driver:get_look_yaw())*0.1 + self.vz = self.vz + math.sin(self.driver:get_look_yaw())*0.1 + end + if ctrl.down then + self.vx = self.vx-math.cos(self.driver:get_look_yaw())*0.1 + self.vz = self.vz-math.sin(self.driver:get_look_yaw())*0.1 + end + if ctrl.left then + self.vz = self.vz+math.cos(self.driver:get_look_yaw())*0.1 + self.vx = self.vx+math.sin(math.pi+self.driver:get_look_yaw())*0.1 + end + if ctrl.right then + self.vz = self.vz-math.cos(self.driver:get_look_yaw())*0.1 + self.vx = self.vx-math.sin(math.pi+self.driver:get_look_yaw())*0.1 + end + if ctrl.jump then + if self.vy<1.5 then + self.vy = self.vy+0.2 + end + end + if ctrl.sneak then + if self.vy>-1.5 then + self.vy = self.vy-0.2 + end + end + if math.abs(self.vx) > 4.5 then + self.vx = 4.5*get_sign(self.vx) + end + if math.abs(self.vz) > 4.5 then + self.vz = 4.5*get_sign(self.vz) + end + + end + local sx=get_sign(self.vx) + self.vx = self.vx - 0.02*sx + local sz=get_sign(self.vz) + self.vz = self.vz - 0.02*sz + local sy=get_sign(self.vy) + self.vy = self.vy-0.01*sy + if sx ~= get_sign(self.vx) then + self.vx = 0 + end + if sz ~= get_sign(self.vz) then + self.vz = 0 + end + if math.abs(self.vx) > 4.5 then + self.vx = 4.5*get_sign(self.vx) + end + if math.abs(self.vz) > 4.5 then + self.vz = 4.5*get_sign(self.vz) + end + if math.abs(self.vy) > 4.5 then + self.vz = 4.5*get_sign(self.vz) + end + self.object:setvelocity({x=self.vx, y=self.vy,z=self.vz}) + if self.model then + self.model:set_attach(self.object,"Root", {x=0,y=0,z=0}, { + x=-90+self.vz*4*math.cos(self.yaw)-self.vx*4*math.sin(self.yaw), + y=0-self.vz*4*math.sin(self.yaw)-self.vx*4*math.cos(self.yaw), + z=self.yaw*57}) + end +end +minetest.register_entity("tutorial:heli", heli) +minetest.register_entity("tutorial:heliModel", heliModel) +minetest.register_entity("tutorial:motor", motor) \ No newline at end of file diff --git a/mods/tutorial/basic/tool.lua b/mods/tutorial/basic/tool.lua new file mode 100644 index 0000000..8671358 --- /dev/null +++ b/mods/tutorial/basic/tool.lua @@ -0,0 +1,2628 @@ +--v.2.0.0 +--v.1.13.0 +--v.1.12.0 +--v.1.11.1 +--v.1.11.0 +--v.1.10.0 +--v.1.9.2 +--v.1.9.1 +--v.1.9.0 +--v.1.8.0 +--v.1.7.5 +--v.1.7.4 +--v.1.7.3 +--v.1.7.2 +--v.1.7.1 +--v.1.7.0 +--v.1.6.0 +--v.1.5.0 +--v.1.4.4 +--v.1.4.3 +--v.1.4.2 +--v.1.4.1 +--v.1.4.0 +--v.1.3.3 +--v.1.3.2 +--v.1.3.1 +--v.1.3.0 +--v.1.2.4 +--v.1.2.3 +--v.1.2.2 +--v.1.2.1 +--v.1.2.0 +--v.1.1.5 +--v.1.1.4 +--v.1.1.3 +--v.1.1.2 +--v.1.1.1 +--v.1.1.0 +--v.1.0.10 +--v.1.0.9 +--v.1.0.8 +--v.1.0.7 +--v.1.0.6 +--v.1.0.5 +--v.1.0.4 +--v.1.0.3 +--v.1.0.2 +--v.1.0.1 +--v.1.0.0 +minetest.register_tool("tutorial:regnumbattleaxe1", { + description = "Regnumbattleaxe Mode 1. Can dig water/lava\nBattleaxe-lv.MAX", + inventory_image = "tutorial_regnumbattleaxe.png^technic_tool_mode1.png", + wield_image = "tutorial_regnumbattleaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=5.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=150} + }, + liquids_pointable = true, +}) +minetest.register_tool("tutorial:regnumbattleaxe2", { + description = "Regnumbattleaxe Mode 2. Can not dig water/lava\nBattleaxe-lv.MAX", + inventory_image = "tutorial_regnumbattleaxe.png^technic_tool_mode2.png", + wield_image = "tutorial_regnumbattleaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=5.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=150} + }, + liquids_pointable = false, +}) +minetest.register_tool("tutorial:superlegendenbattleaxe1", { + description = "Superlegendbattleaxe Mode 1. Can dig water/lava\nBattleaxe-lv.122", + inventory_image = "tutorial_superlegendenbattleaxe.png^technic_tool_mode1.png", + wield_image = "tutorial_superlegendenbattleaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=20.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=122} + }, + liquids_pointable = true, +}) +minetest.register_tool("tutorial:superlegendenbattleaxe2", { + description = "Superlegendbattleaxe Mode 2. Can not dig water/lava\nBattleaxe-lv.122", + inventory_image = "tutorial_superlegendenbattleaxe.png^technic_tool_mode2.png", + wield_image = "tutorial_superlegendenbattleaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=20.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=122} + }, + liquids_pointable = false, +}) +minetest.register_tool("tutorial:lilabattleaxe2", { + description = "Purplebattleaxe Lv.2", + inventory_image = "tutorial_lilabattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[13]=0,[14]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=10} + }, + liquids_pointable = true, +}) +minetest.register_tool("tutorial:legendenbattleaxe1", { + description = "Legendbattleaxe Lv.1\nBattleaxe-lv.116", + inventory_image = "tutorial_legendenbattleaxe1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=5.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=116} + }, +}) +minetest.register_tool("tutorial:legendenbattleaxe2", { + description = "Legendbattleaxe Lv.2\nBattleaxe-lv.117", + inventory_image = "tutorial_legendenbattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=4.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=117} + }, +}) +minetest.register_tool("tutorial:legendenbattleaxe3", { + description = "Legendbattleaxe Lv.3\nBattleaxe-lv.118", + inventory_image = "tutorial_legendenbattleaxe3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=3.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=118} + }, +}) +minetest.register_tool("tutorial:legendenbattleaxe4", { + description = "Legendbattleaxe Lv.4\nBattleaxe-lv.119", + inventory_image = "tutorial_legendenbattleaxe4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=2.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=119} + }, +}) +minetest.register_tool("tutorial:legendenbattleaxe5", { + description = "Legendbattleaxe Lv.5\nBattleaxe-lv.120", + inventory_image = "tutorial_legendenbattleaxe5.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=1.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=120} + }, +}) +minetest.register_tool("tutorial:legendenbattleaxe6", { + description = "Legendbattleaxe Lv.6\nBattleaxe-lv.121", + inventory_image = "tutorial_legendenbattleaxe6.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=121} + }, +}) +--v.0.23.3 +--v.0.23.2 +--v.0.23.1 +--v.0.23.0 +--v.0.22.1 +--v.0.22.0 +minetest.register_tool("tutorial:titanentverner", { + description = "Titanium remover", + inventory_image = "tutorial_titanentverner.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={cracky = {times={[12]=75.0,}, uses=1, maxlevel=3},}, + damage_groups = {fleshy=3} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe10", { + description = "Titaniumbattleaxe lv.10\nBattleaxe-lv.115", + inventory_image = "tutorial_titanbattleaxe10.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=10.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=115} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe9", { + description = "Titaniumbattleaxe lv.9\nBattleaxe-lv.114", + inventory_image = "tutorial_titanbattleaxe9.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=1.0, [12]=20.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=114} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe8", { + description = "Titaniumbattleaxe lv.8\nBattleaxe-lv.113", + inventory_image = "tutorial_titanbattleaxe8.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=2.0, [12]=30.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=113} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe7", { + description = "Titaniumbattleaxe lv.7\nBattleaxe-lv.112", + inventory_image = "tutorial_titanbattleaxe7.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=3.0, [12]=40.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=112} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe6", { + description = "Titaniumbattleaxe lv.6\nBattleaxe-lv.111", + inventory_image = "tutorial_titanbattleaxe6.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=4.0, [12]=50.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=111} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe5", { + description = "Titaniumbattleaxe lv.5\nBattleaxe-lv.110", + inventory_image = "tutorial_titanbattleaxe5.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=5.0, [12]=60.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=110} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe4", { + description = "Titaniumbattleaxe lv.4\nBattleaxe-lv.109", + inventory_image = "tutorial_titanbattleaxe4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=6.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=109} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe3", { + description = "Titaniumbattleaxe lv.3\nBattleaxe-lv.108", + inventory_image = "tutorial_titanbattleaxe3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=7.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=108} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe2", { + description = "Titaniumbattleaxe lv.2\nBattleaxe-lv.107", + inventory_image = "tutorial_titanbattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=8.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=107} + }, +}) +minetest.register_tool("tutorial:titanbattleaxe1", { + description = "Titaniumbattleaxe lv.1\nBattleaxe-lv.106", + inventory_image = "tutorial_titanbattleaxe1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=9.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=106} + }, +}) +--v.0.21.0 +--v.0.20.0 +minetest.register_tool("tutorial:lilabattleaxe", { + description = "Purplebattleaxe Lv.1 (only for red and blue ores)", + inventory_image = "tutorial_lilabattleaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + cracky = {times={[13]=0,}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=10} + }, +}) +--v.0.19.1 +minetest.register_tool("tutorial:arena_battleaxe4", { + description = "Arenabattleaxe lv.4\nBattleaxe-lv.105", + inventory_image = "tutorial_arenabattleaxe4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=10.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=105} + }, +}) +minetest.register_tool("tutorial:arena_battleaxe3", { + description = "Arenabattleaxe lv.3\nBattleaxe-lv.104", + inventory_image = "tutorial_arenabattleaxe3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=20.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=104} + }, +}) +minetest.register_tool("tutorial:arena_battleaxe2", { + description = "Arenabattleaxe lv.2\nBattleaxe-lv.103", + inventory_image = "tutorial_arenabattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=30.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=103} + }, +}) +minetest.register_tool("tutorial:arena_battleaxe1", { + description = "Arenabattleaxe lv.1\nBattleaxe-lv.102", + inventory_image = "tutorial_arenabattleaxe1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=40.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=102} + }, +}) +--v.0.18.0 +minetest.register_tool("tutorial:adminbattleaxe", { + description = "Admin tool 3: Admin battleaxe Mode 1. Can not dig water/lava", + inventory_image = "tutorial_adminbattleaxe.png^technic_tool_mode1.png", + wield_image = "tutorial_adminbattleaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=0, [0]=0,}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=2000} + }, + liquids_pointable = false, +}) +minetest.register_tool("tutorial:adminbattleaxe2", { + description = "Admin tool 3: Admin battleaxe Mode 2. Can dig water/lava", + inventory_image = "tutorial_adminbattleaxe.png^technic_tool_mode2.png", + wield_image = "tutorial_adminbattleaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=0, [11]=0, [12]=0, [13]=0, [14]=0, [15]=0, [0]=0,}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=2000} + }, + liquids_pointable = true, +}) +--v.0.17.0 +--v.0.16.0 +minetest.register_tool("tutorial:ultrabattleaxe", { + description = "Superultrabattleaxe\nBattleaxe-lv.101", + inventory_image = "tutorial_super_ultrabattleaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=1.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=101} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe25", { + description = "Ultrabattleaxe lv.25\nBattleaxe-lv.100", + inventory_image = "tutorial_ultrabattleaxe25.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=4.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=100} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe24", { + description = "Ultrabattleaxe lv.24\nBattleaxe-lv.99", + inventory_image = "tutorial_ultrabattleaxe24.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=8.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=99} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe23", { + description = "Ultrabattleaxe lv.23\nBattleaxe-lv.98", + inventory_image = "tutorial_ultrabattleaxe23.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=12.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=98} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe22", { + description = "Ultrabattleaxe lv.22\nBattleaxe-lv.97", + inventory_image = "tutorial_ultrabattleaxe22.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=16.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=97} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe21", { + description = "Ultrabattleaxe lv.21\nBattleaxe-lv.96", + inventory_image = "tutorial_ultrabattleaxe21.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=20.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=96} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe20", { + description = "Ultrabattleaxe lv.20\nBattleaxe-lv.95", + inventory_image = "tutorial_ultrabattleaxe20.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=24.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=95} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe19", { + description = "Ultrabattleaxe lv.19\nBattleaxe-lv.94", + inventory_image = "tutorial_ultrabattleaxe19.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=28.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=94} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe18", { + description = "Ultrabattleaxe lv.18\nBattleaxe-lv.93", + inventory_image = "tutorial_ultrabattleaxe18.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=32.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=93} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe17", { + description = "Ultrabattleaxe lv.17\nBattleaxe-lv.92", + inventory_image = "tutorial_ultrabattleaxe17.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=36.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=92} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe16", { + description = "Ultrabattleaxe lv.16\nBattleaxe-lv.91", + inventory_image = "tutorial_ultrabattleaxe16.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=40.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=91} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe15", { + description = "Ultrabattleaxe lv.15\nBattleaxe-lv.90", + inventory_image = "tutorial_ultrabattleaxe15.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=44.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=90} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe14", { + description = "Ultrabattleaxe lv.14\nBattleaxe-lv.89", + inventory_image = "tutorial_ultrabattleaxe14.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=48.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=89} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe13", { + description = "Ultrabattleaxe lv.13\nBattleaxe-lv.88", + inventory_image = "tutorial_ultrabattleaxe13.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=52.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=88} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe12", { + description = "Ultrabattleaxe lv.12\nBattleaxe-lv.87", + inventory_image = "tutorial_ultrabattleaxe12.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=56.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=87} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe11", { + description = "Ultrabattleaxe lv.11\nBattleaxe-lv.86", + inventory_image = "tutorial_ultrabattleaxe11.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=60.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=86} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe10", { + description = "Ultrabattleaxe lv.10\nBattleaxe-lv.85", + inventory_image = "tutorial_ultrabattleaxe10.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=64.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=85} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe9", { + description = "Ultrabattleaxe lv.9\nBattleaxe-lv.84", + inventory_image = "tutorial_ultrabattleaxe9.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=68.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=84} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe8", { + description = "Ultrabattleaxe lv.8\nBattleaxe-lv.83", + inventory_image = "tutorial_ultrabattleaxe8.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=72.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=83} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe7", { + description = "Ultrabattleaxe lv.7\nBattleaxe-lv.82", + inventory_image = "tutorial_ultrabattleaxe7.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=76.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=82} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe6", { + description = "Ultrabattleaxe lv.6\nBattleaxe-lv.81", + inventory_image = "tutorial_ultrabattleaxe6.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=80.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=81} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe5", { + description = "Ultrabattleaxe lv.5\nBattleaxe-lv.80", + inventory_image = "tutorial_ultrabattleaxe5.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=84.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=80} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe4", { + description = "Ultrabattleaxe lv.4\nBattleaxe-lv.79", + inventory_image = "tutorial_ultrabattleaxe4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=0, [10]=88.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=79} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe3", { + description = "Ultrabattleaxe lv.3\nBattleaxe-lv.78", + inventory_image = "tutorial_ultrabattleaxe3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=1.0, [10]=92.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=78} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe2", { + description = "Ultrabattleaxe lv.2\nBattleaxe-lv.77", + inventory_image = "tutorial_ultrabattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=2.0, [10]=96.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=77} + }, +}) +minetest.register_tool("tutorial:ultrabattleaxe1", { + description = "Ultrabattleaxe lv.1\nBattleaxe-lv.76", + inventory_image = "tutorial_ultrabattleaxe1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=3.0, [10]=100.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=76} + }, +}) +--v.0.15.0 +minetest.register_tool("tutorial:kristallbattleaxe5", { + description = "Crystalbattleaxe lv.5\nBattleaxe-lv.75", + inventory_image = "tutorial_kristallbattleaxe5.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=0, [9]=4.0, [10]=110.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=75} + }, +}) +minetest.register_tool("tutorial:kristallbattleaxe4", { + description = "Crystalbattleaxe lv.4\nBattleaxe-lv.74", + inventory_image = "tutorial_kristallbattleaxe4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=1.0, [9]=5.0, [10]=120.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=74} + }, +}) +minetest.register_tool("tutorial:kristallbattleaxe3", { + description = "Crystalbattleaxe lv.3\nBattleaxe-lv.73", + inventory_image = "tutorial_kristallbattleaxe3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=2.0, [9]=10.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=73} + }, +}) +minetest.register_tool("tutorial:kristallbattleaxe2", { + description = "Crystalbattleaxe lv.2\nBattleaxe-lv.72", + inventory_image = "tutorial_kristallbattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=3.0, [9]=10.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=72} + }, +}) +minetest.register_tool("tutorial:kristallbattleaxe1", { + description = "Crystalbattleaxe lv.1\nBattleaxe-lv.71", + inventory_image = "tutorial_kristallbattleaxe1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=0, [8]=4.0, [9]=10.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=71} + }, +}) +--v.0.14.0 +minetest.register_tool("tutorial:superenergybattleaxe7", { + description = "Superenergybattleaxe lv.7\nBattleaxe-lv.70", + inventory_image = "tutorial_superenergybattleaxe7.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=1.0, [8]=5.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=70} + }, +}) +minetest.register_tool("tutorial:superenergybattleaxe6", { + description = "Superenergybattleaxe lv.6\nBattleaxe-lv.69", + inventory_image = "tutorial_superenergybattleaxe6.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=3.0, [8]=10.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=69} + }, +}) +minetest.register_tool("tutorial:superenergybattleaxe5", { + description = "Superenergybattleaxe lv.5\nBattleaxe-lv.68", + inventory_image = "tutorial_superenergybattleaxe5.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=6.0, [8]=20.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=68} + }, +}) +minetest.register_tool("tutorial:superenergybattleaxe4", { + description = "Superenergybattleaxe lv.4\nBattleaxe-lv.67", + inventory_image = "tutorial_superenergybattleaxe4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=9.0, [8]=30.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=67} + }, +}) +minetest.register_tool("tutorial:superenergybattleaxe3", { + description = "Superenergybattleaxe lv.3\nBattleaxe-lv.66", + inventory_image = "tutorial_superenergybattleaxe3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=12.0, [8]=40.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=66} + }, +}) +minetest.register_tool("tutorial:superenergybattleaxe2", { + description = "Superenergybattleaxe lv.2\nBattleaxe-lv.65", + inventory_image = "tutorial_superenergybattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=15.0, [8]=50.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=65} + }, +}) +minetest.register_tool("tutorial:superenergybattleaxe1", { + description = "Superenergybattleaxe lv.1\nBattleaxe-lv.64", + inventory_image = "tutorial_superenergybattleaxe1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=0, [7]=20.0, [8]=60.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=64} + }, +}) +--v.0.13.0 +minetest.register_tool("tutorial:energybattleaxe12", { + description = "Energybattleaxe lv.12\nBattleaxe-lv.63", + inventory_image = "tutorial_energybattleaxe12.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=1.0, [7]=25.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=63} + }, +}) +minetest.register_tool("tutorial:energybattleaxe11", { + description = "Energybattleaxe lv.11\nBattleaxe-lv.62", + inventory_image = "tutorial_energybattleaxe11.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=3.0, [7]=50.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=62} + }, +}) +minetest.register_tool("tutorial:energybattleaxe10", { + description = "Energybattleaxe lv.10\nBattleaxe-lv.61", + inventory_image = "tutorial_energybattleaxe10.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=5.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=61} + }, +}) +minetest.register_tool("tutorial:energybattleaxe9", { + description = "Energybattleaxe lv.9\nBattleaxe-lv.60", + inventory_image = "tutorial_energybattleaxe9.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=10.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=60} + }, +}) +minetest.register_tool("tutorial:energybattleaxe8", { + description = "Energybattleaxe lv.8\nBattleaxe-lv.59", + inventory_image = "tutorial_energybattleaxe8.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=15.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=59} + }, +}) +minetest.register_tool("tutorial:energybattleaxe7", { + description = "Energybattleaxe lv.7\nBattleaxe-lv.58", + inventory_image = "tutorial_energybattleaxe7.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=20.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=58} + }, +}) +minetest.register_tool("tutorial:energybattleaxe6", { + description = "Energybattleaxe lv.6\nBattleaxe-lv.57", + inventory_image = "tutorial_energybattleaxe6.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=25.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=57} + }, +}) +minetest.register_tool("tutorial:energybattleaxe5", { + description = "Energybattleaxe lv.5\nBattleaxe-lv.56", + inventory_image = "tutorial_energybattleaxe5.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=30.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=56} + }, +}) +minetest.register_tool("tutorial:energybattleaxe4", { + description = "Energybattleaxe lv.4\nBattleaxe-lv.55", + inventory_image = "tutorial_energybattleaxe4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=35.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=55} + }, +}) +minetest.register_tool("tutorial:energybattleaxe3", { + description = "Energybattleaxe lv.3\nBattleaxe-lv.54", + inventory_image = "tutorial_energybattleaxe3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=40.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=54} + }, +}) +minetest.register_tool("tutorial:energybattleaxe2", { + description = "Energybattleaxe lv.2\nBattleaxe-lv.53", + inventory_image = "tutorial_energybattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=45.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=53} + }, +}) +minetest.register_tool("tutorial:energybattleaxe1", { + description = "Energybattleaxe lv.1\nBattleaxe-lv.52", + inventory_image = "tutorial_energybattleaxe1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=50.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=52} + }, +}) +--v.0.12.0 +minetest.register_tool("tutorial:uraniumbattleaxe2", { + description = "Uraniumbattleaxe lv.2\nBattleaxe-lv.51", + inventory_image = "tutorial_uraniumbattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0, [5]=1.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=51} + }, +}) +minetest.register_tool("tutorial:battleaxe", { + description = "Battleaxe\nBattleaxe-lv.0", + inventory_image = "tutorial_battleaxe.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + choppy = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + cracky = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=1}, + }, +}) +--v.0.11.0 +minetest.register_tool("tutorial:uraniumbattleaxe1", { + description = "Uraniumbattleaxe lv.1\nBattleaxe-lv.50", + inventory_image = "tutorial_uraniumbattleaxe1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=0.5, [5]=2.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=50} + }, +}) +minetest.register_tool("tutorial:pistole", { + description = "Admin tool 2: Rocket Gun", + inventory_image = "tutorial_rocket_gun.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:patrone") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 2, +}) +minetest.register_tool("tutorial:superbattleaxe4", { + description = "Superbattleaxe lv.4\nBattleaxe-lv.49", + inventory_image = "tutorial_superbattleaxe4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=1.0, [5]=5.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=49} + }, +}) +minetest.register_tool("tutorial:superbattleaxe3", { + description = "Superbattleaxe lv.3\nBattleaxe-lv.48", + inventory_image = "tutorial_superbattleaxe3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=2.0, [5]=10.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=48} + }, +}) +minetest.register_tool("tutorial:superbattleaxe2", { + description = "Superbattleaxe lv.2\nBattleaxe-lv.47", + inventory_image = "tutorial_superbattleaxe2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=3.0, [5]=15.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=47} + }, +}) +minetest.register_tool("tutorial:superbattleaxe1", { + description = "Superbattleaxe lv.1\nBattleaxe-lv.46", + inventory_image = "tutorial_superbattleaxe1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=4.0, [5]=20.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=46} + }, +}) +--v.0.10.1 +minetest.register_tool("tutorial:zauberstab", { + description = "Magic stick", + inventory_image = "tutorial_zauberstab.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +minetest.register_tool("tutorial:zauberstab9", { + description = "Magic stick lv.9", + inventory_image = "tutorial_zauberstab9.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +minetest.register_tool("tutorial:zauberstab8", { + description = "Magic stick lv.8", + inventory_image = "tutorial_zauberstab8.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +minetest.register_tool("tutorial:zauberstab7", { + description = "Magic stick lv.7", + inventory_image = "tutorial_zauberstab7.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +minetest.register_tool("tutorial:zauberstab6", { + description = "Magic stick lv.6", + inventory_image = "tutorial_zauberstab6.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +minetest.register_tool("tutorial:zauberstab5", { + description = "Magic stick lv.5", + inventory_image = "tutorial_zauberstab5.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +--v.0.10.0 +--v.0.9.0 +minetest.register_tool("tutorial:cloudbattleaxe_mega1", { + description = "Cloudbattleaxe lv.1\nBattleaxe-lv.21", + inventory_image = "tutorial_cloudbattleaxe_mega1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=24.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=21}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega2", { + description = "Cloudbattleaxe lv.2\nBattleaxe-lv.22", + inventory_image = "tutorial_cloudbattleaxe_mega2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=23.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=22}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega3", { + description = "Cloudbattleaxe lv.3\nBattleaxe-lv.23", + inventory_image = "tutorial_cloudbattleaxe_mega3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=22.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=23}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega4", { + description = "Cloudbattleaxe lv.4\nBattleaxe-lv.24", + inventory_image = "tutorial_cloudbattleaxe_mega4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=21.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=24}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega5", { + description = "Cloudbattleaxe lv.5\nBattleaxe-lv.25", + inventory_image = "tutorial_cloudbattleaxe_mega5.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=20.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=25}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega6", { + description = "Cloudbattleaxe lv.6\nBattleaxe-lv.26", + inventory_image = "tutorial_cloudbattleaxe_mega6.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=19.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=26}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega7", { + description = "Cloudbattleaxe lv.7\nBattleaxe-lv.27", + inventory_image = "tutorial_cloudbattleaxe_mega7.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=18.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=27}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega8", { + description = "Cloudbattleaxe lv.8\nBattleaxe-lv.28", + inventory_image = "tutorial_cloudbattleaxe_mega8.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=17.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=28}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega9", { + description = "Cloudbattleaxe lv.9\nBattleaxe-lv.29", + inventory_image = "tutorial_cloudbattleaxe_mega9.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=16.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=29}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega10", { + description = "Cloudbattleaxe lv.10\nBattleaxe-lv.30", + inventory_image = "tutorial_cloudbattleaxe_mega10.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=15.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=30}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega11", { + description = "Cloudbattleaxe lv.11\nBattleaxe-lv.31", + inventory_image = "tutorial_cloudbattleaxe_mega11.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=14.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=31}, + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega12", { + description = "Cloudbattleaxe lv.12\nBattleaxe-lv.32", + inventory_image = "tutorial_cloudbattleaxe_mega12.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=13.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=32} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega13", { + description = "Cloudbattleaxe lv.13\nBattleaxe-lv.33", + inventory_image = "tutorial_cloudbattleaxe_mega13.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=12.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=33} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega14", { + description = "Cloudbattleaxe lv.14\nBattleaxe-lv.34", + inventory_image = "tutorial_cloudbattleaxe_mega14.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=11.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=34} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega15", { + description = "Cloudbattleaxe lv.15\nBattleaxe-lv.35", + inventory_image = "tutorial_cloudbattleaxe_mega15.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=10.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=35} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega16", { + description = "Cloudbattleaxe lv.16\nBattleaxe-lv.36", + inventory_image = "tutorial_cloudbattleaxe_mega16.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=9.5}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=36} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega17", { + description = "Cloudbattleaxe lv.17\nBattleaxe-lv.37", + inventory_image = "tutorial_cloudbattleaxe_mega17.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=9.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=37} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega18", { + description = "Cloudbattleaxe lv.18\nBattleaxe-lv.38", + inventory_image = "tutorial_cloudbattleaxe_mega18.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=8.5}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=38} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega19", { + description = "Cloudbattleaxe lv.19\nBattleaxe-lv.39", + inventory_image = "tutorial_cloudbattleaxe_mega19.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=8.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=39} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega20", { + description = "Cloudbattleaxe lv.20\nBattleaxe-lv.40", + inventory_image = "tutorial_cloudbattleaxe_mega20.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=7.5}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=40} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega21", { + description = "Cloudbattleaxe lv.21\nBattleaxe-lv.41", + inventory_image = "tutorial_cloudbattleaxe_mega21.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=7.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=41} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega22", { + description = "Cloudbattleaxe lv.22\nBattleaxe-lv.42", + inventory_image = "tutorial_cloudbattleaxe_mega22.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=6.5}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=42} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega23", { + description = "Cloudbattleaxe lv.23\nBattleaxe-lv.43", + inventory_image = "tutorial_cloudbattleaxe_mega23.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=6.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=43} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega24", { + description = "Cloudbattleaxe lv.24\nBattleaxe-lv.44", + inventory_image = "tutorial_cloudbattleaxe_mega24.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=5.5}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=44} + }, +}) +minetest.register_tool("tutorial:cloudbattleaxe_mega25", { + description = "Cloudbattleaxe lv.25\nBattleaxe-lv.45", + inventory_image = "tutorial_cloudbattleaxe_mega25.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[0]=0, [1]=0, [2]=0, [3]=0, [4]=5.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=45} + }, +}) +--v.0.8.0 +--v.0.7.2 +minetest.register_tool("tutorial:cloudentverner1", { + description = "Clouds remover lv.1", + inventory_image = "tutorial_cloudentverner.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=1.0}, uses=50, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner2", { + description = "Clouds remover lv.2", + inventory_image = "tutorial_cloudentverner2.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0.9}, uses=100, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner3", { + description = "Clouds remover lv.3", + inventory_image = "tutorial_cloudentverner3.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0.8}, uses=150, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner4", { + description = "Clouds remover lv.4", + inventory_image = "tutorial_cloudentverner4.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0.7}, uses=200, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner5", { + description = "Clouds remover lv.5", + inventory_image = "tutorial_cloudentverner5.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0.6}, uses=250, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner6", { + description = "Clouds remover lv.6", + inventory_image = "tutorial_cloudentverner6.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0.5}, uses=300, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner7", { + description = "Clouds remover lv.7", + inventory_image = "tutorial_cloudentverner7.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0.4}, uses=350, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner8", { + description = "Clouds remover lv.8", + inventory_image = "tutorial_cloudentverner8.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0.3}, uses=400, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner9", { + description = "Clouds remover lv.9", + inventory_image = "tutorial_cloudentverner9.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0.2}, uses=450, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner10", { + description = "Clouds remover lv.10", + inventory_image = "tutorial_cloudentverner10.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0.1}, uses=500, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner11", { + description = "Clouds remover lv.11", + inventory_image = "tutorial_cloudentverner11.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=550, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner12", { + description = "Clouds remover lv.12", + inventory_image = "tutorial_cloudentverner12.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=600, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner13", { + description = "Clouds remover lv.13", + inventory_image = "tutorial_cloudentverner13.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=650, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner14", { + description = "Clouds remover lv.14", + inventory_image = "tutorial_cloudentverner14.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=700, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner15", { + description = "Clouds remover lv.15", + inventory_image = "tutorial_cloudentverner15.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=750, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner16", { + description = "Clouds remover lv.16", + inventory_image = "tutorial_cloudentverner16.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=800, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner17", { + description = "Clouds remover lv.17", + inventory_image = "tutorial_cloudentverner17.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=850, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner18", { + description = "Clouds remover lv.18", + inventory_image = "tutorial_cloudentverner18.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=900, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner19", { + description = "Clouds remover lv.19", + inventory_image = "tutorial_cloudentverner19.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=950, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner20", { + description = "Clouds remover lv.20", + inventory_image = "tutorial_cloudentverner20.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0}, uses=1000, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:cloudentverner21", { + description = "Clouds remover lv.21", + inventory_image = "tutorial_cloudentverner21.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[0]=0, [4]=25.00}, uses=0, maxlevel=3} + } + }, +}) +--v.0.7.1 +minetest.register_tool("tutorial:zauberstab4", { + description = "Magic stick lv.4", + inventory_image = "tutorial_zauberstab4.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +minetest.register_tool("tutorial:zauberstab3", { + description = "Magic stick lv.3", + inventory_image = "tutorial_zauberstab3.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +minetest.register_tool("tutorial:zauberstab2", { + description = "Magic stick lv.2", + inventory_image = "tutorial_zauberstab2.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +minetest.register_tool("tutorial:zauberstab1", { + description = "Magic stick lv.1", + inventory_image = "tutorial_zauberstab1.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +--v.0.7.0 +minetest.register_tool("tutorial:swored_zauber1", { + description = "Magic sword lv.1", + inventory_image = "tutorial_zauberschwert1.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 2, +}) +minetest.register_tool("tutorial:swored_zauber2", { + description = "Magic sword lv.2", + inventory_image = "tutorial_zauberschwert2.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 2, +}) +minetest.register_tool("tutorial:swored_zauber3", { + description = "Magic sword lv.3", + inventory_image = "tutorial_zauberschwert3.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 2, +}) +minetest.register_tool("tutorial:swored_zauber4", { + description = "Magic sword lv.4", + inventory_image = "tutorial_zauberschwert4.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 2, +}) +minetest.register_tool("tutorial:swored_zauber5", { + description = "Magic sword lv.5", + inventory_image = "tutorial_zauberschwert5.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 2, +}) +minetest.register_tool("tutorial:swored_zauber6", { + description = "Magic sword lv.6", + inventory_image = "tutorial_zauberschwert6.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 2, +}) +minetest.register_tool("tutorial:swored_zauber7", { + description = "Magic sword lv.7", + inventory_image = "tutorial_zauberschwert7.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 2, +}) +minetest.register_tool("tutorial:swored_zauber8", { + description = "Magic sword lv.8", + inventory_image = "tutorial_zauberschwert8.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 2, +}) +minetest.register_tool("tutorial:swored_zauber9", { + description = "Magic sword lv.9", + inventory_image = "tutorial_zauberschwert9.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 2, +}) +--v.0.6.6 +minetest.register_tool("tutorial:battleaxe_mega16", { + description = "Mega Battleaxe lv.16\nBattleaxe-lv.16", + inventory_image = "tutorial_battleaxe_mega16.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=16}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega17", { + description = "Mega Battleaxe lv.17\nBattleaxe-lv.17", + inventory_image = "tutorial_battleaxe_mega17.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=17}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega18", { + description = "Mega Battleaxe lv.18\nBattleaxe-lv.18", + inventory_image = "tutorial_battleaxe_mega18.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=18}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega19", { + description = "Mega Battleaxe lv.19\nBattleaxe-lv.19", + inventory_image = "tutorial_battleaxe_mega19.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=19}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega20", { + description = "Mega Battleaxe lv.20\nBattleaxe-lv.20", + inventory_image = "tutorial_battleaxe_mega20.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=20}, + }, +}) +--v.0.6.5 +minetest.register_tool("tutorial:battleaxe_mega13", { + description = "Mega Battleaxe lv.13\nBattleaxe-lv.13", + inventory_image = "tutorial_battleaxe_mega13.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=13}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega14", { + description = "Mega Battleaxe lv.14\nBattleaxe-lv.14", + inventory_image = "tutorial_battleaxe_mega14.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=14}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega15", { + description = "Mega Battleaxe lv.15\nBattleaxe-lv.15", + inventory_image = "tutorial_battleaxe_mega15.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=15}, + }, +}) +--v.0.6.4 +minetest.register_tool("tutorial:battleaxe_mega9", { + description = "Mega Battleaxe lv.9\nBattleaxe-lv.9", + inventory_image = "tutorial_battleaxe_mega9.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0.2, [2]=0.2, [3]=0.2}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.2, [2]=0.2, [3]=0.2}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.2, [2]=0.2, [3]=0.2}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0.2, [2]=0.2, [3]=0.2}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.2, [2]=0.2, [3]=0.2}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=9}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega10", { + description = "Mega Battleaxe lv.10\nBattleaxe-lv.10", + inventory_image = "tutorial_battleaxe_mega10.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0.1, [2]=0.1, [3]=0.1}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.1, [2]=0.1, [3]=0.1}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.1, [2]=0.1, [3]=0.1}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0.1, [2]=0.1, [3]=0.1}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.1, [2]=0.1, [3]=0.1}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=10}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega11", { + description = "Mega Battleaxe lv.11\nBattleaxe-lv.11", + inventory_image = "tutorial_battleaxe_mega11.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=11}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega12", { + description = "Mega Battleaxe lv.12\nBattleaxe-lv.12", + inventory_image = "tutorial_battleaxe_mega12.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + cracky = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=12}, + }, +}) +--v.0.6.3 +minetest.register_tool("tutorial:battleaxe_mega5", { + description = "Mega Battleaxe lv.5\nBattleaxe-lv.5", + inventory_image = "tutorial_battleaxe_mega5.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0.6, [2]=0.6, [3]=0.6}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.6, [2]=0.6, [3]=0.6}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.6, [2]=0.6, [3]=0.6}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0.6, [2]=0.6, [3]=0.6}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.6, [2]=0.6, [3]=0.6}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=5}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega6", { + description = "Mega Battleaxe lv.6\nBattleaxe-lv.6", + inventory_image = "tutorial_battleaxe_mega6.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.5, [2]=0.5, [3]=0.5}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=6}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega7", { + description = "Mega Battleaxe lv.7\nBattleaxe-lv.7", + inventory_image = "tutorial_battleaxe_mega7.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0.4, [2]=0.4, [3]=0.4}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.4, [2]=0.4, [3]=0.4}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.4, [2]=0.4, [3]=0.4}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0.4, [2]=0.4, [3]=0.4}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.4, [2]=0.4, [3]=0.4}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=7}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega8", { + description = "Mega Battleaxe lv.8\nBattleaxe-lv.8", + inventory_image = "tutorial_battleaxe_mega8.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0.3, [2]=0.3, [3]=0.3}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.3, [2]=0.3, [3]=0.3}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.3, [2]=0.3, [3]=0.3}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0.3, [2]=0.3, [3]=0.3}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.3, [2]=0.3, [3]=0.3}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=8}, + }, +}) +--v.0.6.2 +--v.0.6.1 +minetest.register_tool("tutorial:battleaxe_mega4", { + description = "Mega Battleaxe lv.4\nBattleaxe-lv.4", + inventory_image = "tutorial_battleaxe_mega4.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0.7, [2]=0.7, [3]=0.7}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.7, [2]=0.7, [3]=0.7}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.7, [2]=0.7, [3]=0.7}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0.7, [2]=0.7, [3]=0.7}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.7, [2]=0.7, [3]=0.7}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=4}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega3", { + description = "Mega Battleaxe lv.3\nBattleaxe-lv.3", + inventory_image = "tutorial_battleaxe_mega3.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0.8, [2]=0.8, [3]=0.8}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.8, [2]=0.8, [3]=0.8}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.8, [2]=0.8, [3]=0.8}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0.8, [2]=0.8, [3]=0.8}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.8, [2]=0.8, [3]=0.8}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=3}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega2", { + description = "Mega Battleaxe lv.2\nBattleaxe-lv.2", + inventory_image = "tutorial_battleaxe_mega2.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=0.9, [2]=0.9, [3]=0.9}, uses=0, maxlevel=3}, + choppy = {times={[1]=0.9, [2]=0.9, [3]=0.9}, uses=0, maxlevel=3}, + crumbly = {times={[1]=0.9, [2]=0.9, [3]=0.9}, uses=0, maxlevel=3}, + fleshy = {times={[1]=0.9, [2]=0.9, [3]=0.9}, uses=0, maxlevel=3}, + cracky = {times={[1]=0.9, [2]=0.9, [3]=0.9}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=2}, + }, +}) +minetest.register_tool("tutorial:battleaxe_mega1", { + description = "Mega Battleaxe lv.1\nBattleaxe-lv.1", + inventory_image = "tutorial_battleaxe_mega1.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=1, + groupcaps={ + snappy = {times={[1]=1.0, [2]=1.0, [3]=1.0}, uses=0, maxlevel=3}, + choppy = {times={[1]=1.0, [2]=1.0, [3]=1.0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=1.0, [2]=1.0, [3]=1.0}, uses=0, maxlevel=3}, + fleshy = {times={[1]=1.0, [2]=1.0, [3]=1.0}, uses=0, maxlevel=3}, + cracky = {times={[1]=1.0, [2]=1.0, [3]=1.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=1}, + }, +}) +minetest.register_tool('tutorial:paxel_super', { + description = 'Super Paxel', + inventory_image = 'tutorial_tool_superpaxel.png', + tool_capabilities = { + full_punch_interval = 0.4, + max_drop_level=3, + groupcaps={ + choppy = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + crumbly = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + cracky = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=8}, + }, +}) +--v.0.6.0 +minetest.register_tool("tutorial:axe_super", { + description = "Super Axe", + inventory_image = "tutorial_tool_cediaxt.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + choppy = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + fleshy = {times={[2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + } + }, +}) +--v.0.5.2 +minetest.register_tool("tutorial:shovel_super", { + description = "Super Shovel", + inventory_image = "tutorial_tool_cedishovel.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + crumbly = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + } + }, +}) +--v.0.5.1 +--v.0.5.0 +minetest.register_tool("tutorial:pick_super", { + description = "Super Pick", + inventory_image = "tutorial_tool_cedipick.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=0, maxlevel=3}, + } + }, +}) +--v.0.4.0 +--v.0.3.0 +--v.0.2.0 +--v.0.1.0 +minetest.register_tool("tutorial:pick_ice", { + description = "Ice Pick", + inventory_image = "tutorial_tool_icepick.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + cracky={times={[1]=0.01, [2]=0.01, [3]=0.01}, uses=1000, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:shovel_ice", { + description = "Ice Shovel", + inventory_image = "tutorial_tool_iceshovel.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + crumbly = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=1000, maxlevel=3} + } + }, +}) +minetest.register_tool("tutorial:axe_ice", { + description = "Ice Axe", + inventory_image = "tutorial_tool_iceaxt.png", + tool_capabilities = { + max_drop_level=3, + groupcaps={ + fleshy = {times={[2]=2.0, [3]=2.0}, uses=1000, maxlevel=3}, + choppy = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=1000, maxlevel=3}, + } + }, +}) +minetest.register_tool("tutorial:sword_ice", { + description = "Ice Sword", + inventory_image = "tutorial_tool_icesword.png", + tool_capabilities = { + full_punch_interval = 1.0, + max_drop_level=3, + groupcaps={ + fleshy = {times={[2]=2.0, [3]=2.0}, uses=1000, maxlevel=3}, + snappy = {times={[2]=2.0, [3]=2.0}, uses=1000, maxlevel=3}, + choppy = {times={[1]=2.0, [2]=2.0, [3]=2.0}, uses=1000, maxlevel=3}, + } + }, +}) \ No newline at end of file diff --git a/mods/tutorial/depends.txt b/mods/tutorial/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/mods/tutorial/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/tutorial/init.lua b/mods/tutorial/init.lua new file mode 100644 index 0000000..0021364 --- /dev/null +++ b/mods/tutorial/init.lua @@ -0,0 +1,7358 @@ +minetest.register_on_joinplayer(function(player) + local name = player:get_player_name() + player:hud_add({ + hud_elem_type = "text", + position = {x=0, y=0.85}, + offset = {x=0, y=10}, + alignment = {x=1, y=0}, + number = 0xFFFFFF , + text = "For Minetest : 0.4.17", + }) + player:hud_add({ + hud_elem_type = "text", + position = {x=0, y=0.85}, + offset = {x=0, y=30}, + alignment = {x=1, y=0}, + number = 0xFFFFFF , + text = "Game Version : 3.2.7", + }) +end) + +dofile(minetest.get_modpath("tutorial").."/basic/craft.lua") +dofile(minetest.get_modpath("tutorial").."/basic/node.lua") +dofile(minetest.get_modpath("tutorial").."/basic/tool.lua") +dofile(minetest.get_modpath("tutorial").."/basic/craftitem.lua") +dofile(minetest.get_modpath("tutorial").."/basic/ore.lua") +dofile(minetest.get_modpath("tutorial").."/basic/abm.lua") +dofile(minetest.get_modpath("tutorial").."/basic/entity.lua") +dofile(minetest.get_modpath("tutorial").."/basic/chatcommand.lua") +dofile(minetest.get_modpath("tutorial").."/basic/other.lua") +dofile(minetest.get_modpath("tutorial").."/other/atom.lua") +dofile(minetest.get_modpath("tutorial").."/other/mummy.lua") +dofile(minetest.get_modpath("tutorial").."/other/regnum.lua") + +--v.2.0.0+ + +local rg25 = {} +rg25.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 17. Music]" + .."label[0,1.3;Enable Background Music.]" + .."label[0,1.6;Choose an instrument to be randomly selected]" + .."label[0,1.9;and listen to the Regnum Theme.]" + .."label[0,2.2;How to use Music:]" + .."label[0,2.5;1. Enable Background Music.]" + .."label[0,2.8;2. Choose instruments]" + .."button[2,10; 2,0.5;rg24;<]" + .."button[4,10; 2,0.5;rg15;>]" + return formspec +end +minetest.register_craft({ + output = 'tutorial:colorstick_empty', + recipe = { + {'tutorial:colorstick_broken', 'tutorial:hammer'}, + } +}) +minetest.register_craftitem("tutorial:colorstick_empty", { + description = "Colorstick (empty)", + inventory_image = "tutorial_colorstick_empty.png", +}) +minetest.register_craftitem("tutorial:hammer", { + description = "Repairing tool for color stick", + inventory_image = "tutorial_hammer.png", +}) +minetest.register_craftitem("tutorial:colorstick_broken", { + description = "Colorstick (broken)", + inventory_image = "tutorial_colorstick_broken.png", +}) +minetest.register_alias("homedecor:trophy_year1", "tutorial:trophy_year1") +minetest.register_node("tutorial:trophy_year1", { + description = "One year Regnum!!", + tiles = { + "moreores_mithril_block.png" + }, + groups = { snappy=3 }, + drawtype = "nodebox", + 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("tutorial:trophy_year2", { + description = "Two years Regnum!!", + tiles = { + "moreores_mithril_block.png" + }, + groups = { snappy=3 }, + drawtype = "nodebox", + 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_craft({ + output = 'tutorial:legendstick9', + recipe = { + {'tutorial:legendball_8_8_8', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_8_8_8'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendstick8', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:legendball_8_8_8', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_8_8_8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendstick8', + recipe = { + {'tutorial:legendball_7_7_7', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_7_7_7'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendstick7', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:legendball_7_7_7', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_7_7_7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendstick7', + recipe = { + {'tutorial:legendball_6_6_6', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_6_6_6'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendstick6', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:legendball_6_6_6', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_6_6_6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendstick6', + recipe = { + {'tutorial:legendball_6_6_6', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_6_6_6'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendstick5', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:legendball_6_6_6', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_6_6_6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendstick5', + recipe = { + {'tutorial:legendball_5_5_5', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_5_5_5'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendstick4', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:legendball_5_5_5', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_5_5_5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendstick4', + recipe = { + {'tutorial:legendball_4_4_4', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_4_4_4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendstick3', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:legendball_4_4_4', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_4_4_4'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendstick3', + recipe = { + {'tutorial:legendball_3_3_3', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_3_3_3'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendstick2', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:legendball_3_3_3', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_3_3_3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendstick2', + recipe = { + {'tutorial:legendball_2_2_2', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_2_2_2'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendstick1', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:legendball_2_2_2', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_2_2_2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendstick1', + recipe = { + {'tutorial:legendball_1_1_1', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_1_1_1'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendstick', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + {'tutorial:legendball_1_1_1', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder', 'tutorial:legendball_1_1_1'}, + } +}) +minetest.register_entity("tutorial:legendballadmin", { + visual = "mesh", + visual_size = {x=5, y=5}, + mesh = "tutorial_fireball.x", + textures = {"tutorial_adminball.png"}, + velocity = 5, + light_source = 12, + on_step = function(self, dtime) + local pos = self.object:getpos() + if minetest.env:get_node(self.object:getpos()).name ~= "air"then + self.hit_node(self, pos, node) + self.object:remove() + return + end + pos.y = pos.y-1 + for _,player in pairs(minetest.env:get_objects_inside_radius(pos, 1)) do + if player:is_player() then + self.hit_player(self, player) + self.object:remove() + return + end + end + end, + hit_player = function(self, player) + local hp = player:get_hp() + player:set_hp(0) + local s = player:getpos() + local p = player:get_look_dir() + local vec = {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z} + local pos = player:getpos() + for dx=0,1 do + for dy=0,1 do + for dz=0,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 == "air") then + minetest.env:add_node(p, {name="tutorial:legend_thunderadmin"}) + end + end + end + end + end, + hit_node = function(self, pos, node) + for dx=-1,1 do + for dy=-2,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 == "air") then + minetest.env:add_node(p, {name="tutorial:legend_thunderadmin"}) + end + end + end + end + end +}) +minetest.register_tool("tutorial:legendball_admin", { + description = "Admin Legend Ball", + inventory_image = "tutorial_legendball.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_admin") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_node("tutorial:legend_thunderadmin", { + description = "Admin Legend thunder", + drawtype = "plantlike", + tiles = {{ + name="tutorial_legend_thunderadmin.png", + }}, + light_source = 12, + walkable = false, + buildable_to = true, + damage_per_second = 20, + drop = {}, + groups = {dig_immediate=3}, +}) +minetest.register_abm({ + nodenames = {"tutorial:legend_thunderadmin"}, + interval = 30, + chance = 1, + action = function(pos) + minetest.env:remove_node(pos) + end, +}) +minetest.register_tool("tutorial:legendstick_admin", { + description = "Admin tool 10: Legendstick", + inventory_image = "tutorial_legendzauberstabadmin.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendballadmin") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick9", { + description = "Legendstick lv.MAX", + inventory_image = "tutorial_legendzauberstab9.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_8_8_8") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick8", { + description = "Legendstick lv.8", + inventory_image = "tutorial_legendzauberstab8.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_7_7_7") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick7", { + description = "Legendstick lv.7", + inventory_image = "tutorial_legendzauberstab7.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_6_6_6") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick6", { + description = "Legendstick lv.6", + inventory_image = "tutorial_legendzauberstab6.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_5_5_6") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick5", { + description = "Legendstick lv.5", + inventory_image = "tutorial_legendzauberstab5.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_4_4_5") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick4", { + description = "Legendstick lv.4", + inventory_image = "tutorial_legendzauberstab4.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_3_4_4") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick3", { + description = "Legendstick lv.3", + inventory_image = "tutorial_legendzauberstab3.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_2_3_3") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick2", { + description = "Legendstick lv.2", + inventory_image = "tutorial_legendzauberstab2.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_2_2_2") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick1", { + description = "Legendstick lv.1", + inventory_image = "tutorial_legendzauberstab1.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local inv = placer:get_inventory() + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:legendball_1_1_1") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_tool("tutorial:legendstick", { + description = "Legendstick", + inventory_image = "tutorial_legendzauberstab.png", + on_use = function(itemstack, placer, pointed_thing) + end, + light_source = 12, +}) +minetest.register_craftitem("tutorial:protection_schluessel1", { + description = "Protectionkey lv.1", + inventory_image = "tutorial_protection_schluessel1.png", +}) +minetest.register_craftitem("tutorial:protection_schluessel2", { + description = "Protectionkey lv.2", + inventory_image = "tutorial_protection_schluessel2.png", +}) +minetest.register_craftitem("tutorial:protection_schluessel3", { + description = "Protectionkey lv.MAX", + inventory_image = "tutorial_protection_schluessel3.png", +}) +minetest.register_craft({ + output = 'tutorial:protection_schluessel2', + recipe = { + {'tutorial:lila_erz3', 'tutorial:lila_erz3', 'tutorial:lila_erz3'}, + {'tutorial:lila_erz3', 'tutorial:protection_schluessel1', 'tutorial:lila_erz3'}, + {'tutorial:lila_erz3', 'tutorial:lila_erz3', 'tutorial:lila_erz3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:protection_schluessel3', + recipe = { + {'tutorial:lila_erz3', 'tutorial:lila_erz3', 'tutorial:lila_erz3'}, + {'tutorial:lila_erz3', 'tutorial:protection_schluessel2', 'tutorial:lila_erz3'}, + {'tutorial:lila_erz3', 'tutorial:lila_erz3', 'tutorial:lila_erz3'}, + } +}) +local rg23 = {} +rg23.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 15. Treasures]" + .."label[0,1.3;get treasures from the fox]" + .."label[0,1.6;Collect 6 treasures to get the legend stick]" + .."label[0,1.9;How to use artifacts:]" + .."label[0,2.2;1. get 6 treasures]" + .."label[0,2.5;2. press 'reward']" + .."button[2,10; 2,0.5;rg22;<]" + .."button[4,10; 2,0.5;rg24;>]" + return formspec +end +local rg24 = {} +rg24.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 16. Trophys]" + .."label[0,1.3;get trophys in the trophy craft]" + .."label[0,1.6;Collect 24 trothys to get the Protectionkey]" + .."label[0,1.9;How to use artifacts:]" + .."label[0,2.2;1. get 24 trophys]" + .."label[0,2.5;2. press 'reward']" + .."button[2,10; 2,0.5;rg23;<]" + .."button[4,10; 2,0.5;rg25;>]" + return formspec +end +local troph = {} +troph.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("trophcr", 1) + formspec = "size[8,7.5]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[8,7.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[3,2.6;2,0.5;trophcra;Use]" + .."list[current_player;main;0,3.75;8,4;]" + .."list[current_player;trophcr;3.5,1;1,1;]" + .."listring[current_player;main]" + .."listring[current_player;trophcr]" + .."label[3.65,2;Tears]" + return formspec +end +local trophys = {} +trophys.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local red = player_inv:get_stack("tearred", 1):get_count() + local blue = player_inv:get_stack("tearblue", 1):get_count() + local yellow = player_inv:get_stack("tearyellow", 1):get_count() + local purple = player_inv:get_stack("tearpurple", 1):get_count() + local cyan = player_inv:get_stack("tearcyan", 1):get_count() + local green = player_inv:get_stack("teargreen", 1):get_count() + player_inv:set_size("trtr", 1) + formspec = "size[6.5,9.8]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[6.5,9.8;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + local d = 0 + if red > 9 then + formspec = formspec .."image[1,1;1,1;trophy_red_bronze.png]" + d = d+1 + else + formspec = formspec .."image[1,1;1,1;tutorial_0.png]" + end + if red > 19 then + formspec = formspec .."image[2.5,1;1,1;trophy_red_silver.png]" + d = d+1 + else + formspec = formspec .."image[2.5,1;1,1;tutorial_0.png]" + end + if red > 49 then + formspec = formspec .."image[4,1;1,1;trophy_red_gold.png]" + d = d+1 + else + formspec = formspec .."image[4,1;1,1;tutorial_0.png]" + end + if red > 99 then + formspec = formspec .."image[5.5,1;1,1;trophy_red_platin.png]" + d = d+1 + else + formspec = formspec .."image[5.5,1;1,1;tutorial_0.png]" + end + if blue > 9 then + formspec = formspec .."image[1,2.5;1,1;trophy_blue_bronze.png]" + d = d+1 + else + formspec = formspec .."image[1,2.5;1,1;tutorial_0.png]" + end + if blue > 19 then + formspec = formspec .."image[2.5,2.5;1,1;trophy_blue_silver.png]" + d = d+1 + else + formspec = formspec .."image[2.5,2.5;1,1;tutorial_0.png]" + end + if blue > 49 then + formspec = formspec .."image[4,2.5;1,1;trophy_blue_gold.png]" + d = d+1 + else + formspec = formspec .."image[4,2.5;1,1;tutorial_0.png]" + end + if blue > 99 then + formspec = formspec .."image[5.5,2.5;1,1;trophy_blue_platin.png]" + d = d+1 + else + formspec = formspec .."image[5.5,2.5;1,1;tutorial_0.png]" + end + if green > 9 then + formspec = formspec .."image[1,4;1,1;trophy_green_bronze.png]" + d = d+1 + else + formspec = formspec .."image[1,4;1,1;tutorial_0.png]" + end + if green > 19 then + formspec = formspec .."image[2.5,4;1,1;trophy_green_silver.png]" + d = d+1 + else + formspec = formspec .."image[2.5,4;1,1;tutorial_0.png]" + end + if green > 49 then + formspec = formspec .."image[4,4;1,1;trophy_green_gold.png]" + d = d+1 + else + formspec = formspec .."image[4,4;1,1;tutorial_0.png]" + end + if green > 99 then + formspec = formspec .."image[5.5,4;1,1;trophy_green_platin.png]" + d = d+1 + else + formspec = formspec .."image[5.5,4;1,1;tutorial_0.png]" + end + if yellow > 9 then + formspec = formspec .."image[1,5.5;1,1;trophy_yellow_bronze.png]" + d = d+1 + else + formspec = formspec .."image[1,5.5;1,1;tutorial_0.png]" + end + if yellow > 19 then + formspec = formspec .."image[2.5,5.5;1,1;trophy_yellow_silver.png]" + d = d+1 + else + formspec = formspec .."image[2.5,5.5;1,1;tutorial_0.png]" + end + if yellow > 49 then + formspec = formspec .."image[4,5.5;1,1;trophy_yellow_gold.png]" + d = d+1 + else + formspec = formspec .."image[4,5.5;1,1;tutorial_0.png]" + end + if yellow > 99 then + formspec = formspec .."image[5.5,5.5;1,1;trophy_yellow_platin.png]" + d = d+1 + else + formspec = formspec .."image[5.5,5.5;1,1;tutorial_0.png]" + end + if purple > 9 then + formspec = formspec .."image[1,7;1,1;trophy_purple_bronze.png]" + d = d+1 + else + formspec = formspec .."image[1,7;1,1;tutorial_0.png]" + end + if purple > 19 then + formspec = formspec .."image[2.5,7;1,1;trophy_purple_silver.png]" + d = d+1 + else + formspec = formspec .."image[2.5,7;1,1;tutorial_0.png]" + end + if purple > 49 then + formspec = formspec .."image[4,7;1,1;trophy_purple_gold.png]" + d = d+1 + else + formspec = formspec .."image[4,7;1,1;tutorial_0.png]" + end + if purple > 99 then + formspec = formspec .."image[5.5,7;1,1;trophy_purple_platin.png]" + d = d+1 + else + formspec = formspec .."image[5.5,7;1,1;tutorial_0.png]" + end + if cyan > 9 then + formspec = formspec .."image[1,8.5;1,1;trophy_cyan_bronze.png]" + d = d+1 + else + formspec = formspec .."image[1,8.5;1,1;tutorial_0.png]" + end + if cyan > 19 then + formspec = formspec .."image[2.5,8.5;1,1;trophy_cyan_silver.png]" + d = d+1 + else + formspec = formspec .."image[2.5,8.5;1,1;tutorial_0.png]" + end + if cyan > 49 then + formspec = formspec .."image[4,8.5;1,1;trophy_cyan_gold.png]" + d = d+1 + else + formspec = formspec .."image[4,8.5;1,1;tutorial_0.png]" + end + if cyan > 99 then + formspec = formspec .."image[5.5,8.5;1,1;trophy_cyan_platin.png]" + d = d+1 + else + formspec = formspec .."image[5.5,8.5;1,1;tutorial_0.png]" + end + if d == 24 then + formspec = formspec .."button[4.5,0;2,0.5;trorew;Reward]" + end + formspec = formspec + + .."label[1.2,2;"..red.."/10]" + .."label[2.7,2;"..red.."/20]" + .."label[4.2,2;"..red.."/50]" + .."label[5.7,2;"..red.."/100]" + .."label[1.2,3.5;"..blue.."/10]" + .."label[2.7,3.5;"..blue.."/20]" + .."label[4.2,3.5;"..blue.."/50]" + .."label[5.7,3.5;"..blue.."/100]" + .."label[1.2,5;"..green.."/10]" + .."label[2.7,5;"..green.."/20]" + .."label[4.2,5;"..green.."/50]" + .."label[5.7,5;"..green.."/100]" + .."label[1.2,6.5;"..yellow.."/10]" + .."label[2.7,6.5;"..yellow.."/20]" + .."label[4.2,6.5;"..yellow.."/50]" + .."label[5.7,6.5;"..yellow.."/100]" + .."label[1.2,8;"..purple.."/10]" + .."label[2.7,8;"..purple.."/20]" + .."label[4.2,8;"..purple.."/50]" + .."label[5.7,8;"..purple.."/100]" + .."label[1.2,9.5;"..cyan.."/10]" + .."label[2.7,9.5;"..cyan.."/20]" + .."label[4.2,9.5;"..cyan.."/50]" + .."label[5.7,9.5;"..cyan.."/100]" + .."label[0,1.25;Red]" + .."label[0,2.75;Blue]" + .."label[0,4.25;Green]" + .."label[0,5.75;Yellow]" + .."label[0,7.25;Purple]" + .."label[0,8.75;Cyan]" + .."label[4,0;"..d.."/24]" + player_inv:set_stack("trtr", 1 , "default:dirt "..d) + return formspec +end +minetest.register_craftitem("tutorial:big_dna_string", { + description = "Big DNA string", + inventory_image = "tutorial_big_dna_string.png", +}) +minetest.register_craftitem("tutorial:red_tear", { + description = "Red Tear", + inventory_image = "tutorial_red_tear.png", +}) +minetest.register_craftitem("tutorial:blue_tear", { + description = "Blue Tear", + inventory_image = "tutorial_blue_tear.png", +}) +minetest.register_craftitem("tutorial:cyan_tear", { + description = "Cyan Tear", + inventory_image = "tutorial_cyan_tear.png", +}) +minetest.register_craftitem("tutorial:purple_tear", { + description = "Purple Tear", + inventory_image = "tutorial_purple_tear.png", +}) +minetest.register_craftitem("tutorial:green_tear", { + description = "Green Tear", + inventory_image = "tutorial_green_tear.png", +}) +minetest.register_craftitem("tutorial:yellow_tear", { + description = "Yellow Tear", + inventory_image = "tutorial_yellow_tear.png", +}) +minetest.register_craft({ + output = 'tutorial:big_dna_string', + recipe = { + {'tutorial:dna_string', 'tutorial:dna_string', 'tutorial:dna_string', 'tutorial:dna_string', 'tutorial:dna_string'}, + } +}) +minetest.register_craft({ + output = 'tutorial:lightstone', + recipe = { + {'', 'default:cobble', ''}, + {'default:cobble', 'default:coal_lump', 'default:cobble'}, + {'', 'default:cobble', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:cooking_schluessel1', + recipe = { + {'', '', 'tutorial:coin_cyan', '', ''}, + {'', 'tutorial:coin_cyan', '', 'tutorial:coin_cyan', ''}, + {'', '', 'tutorial:coin_cyan', '', ''}, + {'', '', 'tutorial:coin_cyan', '', ''}, + {'', '', 'tutorial:coin_cyan', '', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:cooking_schluessel1', + recipe = { + {'', '', 'tutorial:coin_cyan', '', ''}, + {'', 'tutorial:coin_cyan', '', 'tutorial:coin_cyan', ''}, + {'', '', 'tutorial:coin_cyan', '', ''}, + {'', '', 'tutorial:coin_cyan', '', ''}, + {'', '', 'tutorial:coin_cyan', '', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:cooking_schluessel2', + recipe = { + {'tutorial:coin_cyan', 'tutorial:coin_cyan', 'tutorial:coin_cyan'}, + {'tutorial:coin_cyan', 'tutorial:cooking_schluessel1', 'tutorial:coin_cyan'}, + {'tutorial:coin_cyan', 'tutorial:coin_cyan', 'tutorial:coin_cyan'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cooking_schluessel3', + recipe = { + {'tutorial:coin_cyan', 'tutorial:coin_cyan', 'tutorial:coin_cyan'}, + {'tutorial:coin_cyan', 'tutorial:cooking_schluessel2', 'tutorial:coin_cyan'}, + {'tutorial:coin_cyan', 'tutorial:coin_cyan', 'tutorial:coin_cyan'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cooking_schluessel4', + recipe = { + {'tutorial:coin_cyan', 'tutorial:coin_cyan', 'tutorial:coin_cyan'}, + {'tutorial:coin_cyan', 'tutorial:cooking_schluessel3', 'tutorial:coin_cyan'}, + {'tutorial:coin_cyan', 'tutorial:coin_cyan', 'tutorial:coin_cyan'}, + } +}) +local treasures = {} +treasures.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("tata", 1) + local a = player_inv:get_stack("r1248", 1):get_count() + local b = player_inv:get_stack("r1248", 2):get_count() + local c = player_inv:get_stack("r1248", 3):get_count() + local e = player_inv:get_stack("r1248", 4):get_count() + local f = player_inv:get_stack("r1248", 5):get_count() + local g = player_inv:get_stack("r1248", 6):get_count() + local d = 0 + formspec = "size[9,9.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,9.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if a == 1 then + formspec = formspec .."image[0,2;1.5,1.5;tutorial_1248_helmet_rot.png]" + d = d+1 + else + formspec = formspec .."image[0,2;1.5,1.5;tutorial_0.png]" + end + if b == 1 then + formspec = formspec .."image[1.5,2;1.5,1.5;tutorial_1248_helmet_blue.png]" + d = d+1 + else + formspec = formspec .."image[1.5,2;1.5,1.5;tutorial_0.png]" + end + if c == 1 then + formspec = formspec .."image[3,2;1.5,1.5;tutorial_1248_helmet_cyan.png]" + d = d+1 + else + formspec = formspec .."image[3,2;1.5,1.5;tutorial_0.png]" + end + if e == 1 then + formspec = formspec .."image[4.5,2;1.5,1.5;tutorial_1248_helmet_green.png]" + d = d+1 + else + formspec = formspec .."image[4.5,2;1.5,1.5;tutorial_0.png]" + end + if f == 1 then + formspec = formspec .."image[6,2;1.5,1.5;tutorial_1248_helmet_yellow.png]" + d = d+1 + else + formspec = formspec .."image[6,2;1.5,1.5;tutorial_0.png]" + end + if g == 1 then + formspec = formspec .."image[7.5,2;1.5,1.5;tutorial_1248_helmet_purple.png]" + d = d+1 + else + formspec = formspec .."image[7.5,2;1.5,1.5;tutorial_0.png]" + end + formspec = formspec .."label[5,0;"..d.."/6]" + if d == 6 then + formspec = formspec .."button[6.5,0;2,0.5;trerew;Reward]" + end + player_inv:set_stack("tata", 1 , "default:dirt "..d) + + return formspec +end +minetest.register_craftitem("tutorial:coin_cyan", { + description = "Coin cyan (very rare)", + inventory_image = "tutorial_coin_cyan.png", + stack_max = 1500, +}) +minetest.register_node("tutorial:bottle_crystal", { + description = "Crystalbottle", + drawtype = "plantlike", + tiles = {"tutorial_bottle_crystal.png"}, + wield_image = "tutorial_bottle_crystal.png", + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25} + }, + on_place = function(itemstack, placer, pointed_thing) + minetest.env:add_entity(pointed_thing.above, "experience:orb_cyan") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end, + groups = {vessel=1,dig_immediate=3,attached_node=1}, +}) +for i = 1, 25, 1 do + minetest.register_node("tutorial:level"..i.."_cyan",{ + tiles = {"tutorial_level"..i..".png^tutorial_level_cyan.png"}, + description = "You are now in Level cyan "..i, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, + }) +end +minetest.register_node("tutorial:levelMAX_cyan",{ + tiles = {"tutorial_levelMAX.png^tutorial_level_cyan.png"}, + description = "You are now in Level cyan MAX", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, +}) +minetest.register_on_joinplayer(function(player) + local override_table = player:get_physics_override() + override_table.new_move = false + override_table.sneak_glitch = true + player:set_physics_override(override_table) + local player_inv = player:get_inventory() + player_inv:set_stack("crtime", 1, nil) +end) +minetest.register_craftitem("tutorial:cooking_schluessel1", { + description = "Cookingkey lv.1", + inventory_image = "tutorial_cooking_schluessel1.png", +}) +minetest.register_craftitem("tutorial:cooking_schluessel2", { + description = "Cookingkey lv.2", + inventory_image = "tutorial_cooking_schluessel2.png", +}) +minetest.register_craftitem("tutorial:cooking_schluessel3", { + description = "Cookingkey lv.3", + inventory_image = "tutorial_cooking_schluessel3.png", +}) +minetest.register_craftitem("tutorial:cooking_schluessel4", { + description = "Cookingkey lv.MAX", + inventory_image = "tutorial_cooking_schluessel4.png", +}) +minetest.register_craftitem("tutorial:golden_schluessel", { + description = "Goldenkey", + inventory_image = "tutorial_golden_schluessel.png", +}) +minetest.register_craftitem("tutorial:crystal_schluessel", { + description = "Crystalkey", + inventory_image = "tutorial_crystal_schluessel.png", +}) +minetest.register_craftitem("tutorial:medallion", { + description = "Medallion", + inventory_image = "tutorial_medallion.png", + stack_max = 1000, +}) +minetest.register_craftitem("tutorial:knight_schluessel", { + description = "Knightkey", + inventory_image = "tutorial_knight_schluessel.png", +}) +local crafting7 = {} +crafting7.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + + formspec = "size[8,8.3]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[8,8.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[1,2;2,0.5;meda1;Red]" + .."button[3,2;2,0.5;meda2;Blue]" + .."button[5,2;2,0.5;meda3;Green]" + .."button[1,3;2,0.5;meda5;Purple]" + .."button[3,3;2,0.5;meda4;Yellow]" + .."button[5,3;2,0.5;meda6;Cyan]" + .."button[3,4;2,0.5;meda7;Gray]" + return formspec +end +local crafting8 = {} +crafting8.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local kri_inv = minetest.create_detached_inventory(player:get_player_name().."_kri",{ + allow_put = function(inv, listname, index, stack, player) + return 0 + end, + allow_take = function(inv, listname, index, stack, player) + return 0 + end, + allow_move = function(inv, from_list, from_index, to_list, to_index, count, player) + return 0 + end, + }) + kri_inv:set_size("kri", 8) + player_inv:set_size("kri", 8) + player_inv:set_size("pixkey", 1) + player_inv:set_size("crtime", 1) + local time = player_inv:get_stack("crtime", 1):get_count() + local k = 0 + for i=1, 8 do + local stack = player_inv:get_stack("kri", i) + kri_inv:set_stack("kri", i, stack) + if not player_inv:get_stack("kri", i):is_empty() then + k = k+1 + end + end + formspec = "size[8,7.5]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[8,7.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[current_player;main;0,3.75;8,4;]" + .."list[current_player;pixkey;6.6,1;1,1;]" + .."listring[current_player;main]" + .."listring[current_player;pixkey]" + .."label[5,0;You have "..k.."/8 crystals]" + .."label[6.3,2;Pixeled Regnum Key]" + if time == 0 then + formspec = formspec .."button[1,2;2,0.5;cre2;crystalbottle]" + end + return formspec +end +local meda = {} +meda.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medall", 1) + local med = player_inv:get_stack("medallion", 1):get_count() + local x = "" + if med == 1 then + x = "red" + elseif med == 2 then + x = "blue" + elseif med == 3 then + x = "green" + elseif med == 4 then + x = "yellow" + elseif med == 5 then + x = "purple" + elseif med == 6 then + x = "cyan" + elseif med == 7 then + x = "gray" + end + player_inv:set_size("medallion"..x, 9) + local y1 = player_inv:get_stack("medallion"..x, 1):get_count() + local y2 = player_inv:get_stack("medallion"..x, 2):get_count() + local y3 = player_inv:get_stack("medallion"..x, 3):get_count() + local y4 = player_inv:get_stack("medallion"..x, 4):get_count() + local y5 = player_inv:get_stack("medallion"..x, 5):get_count() + local y6 = player_inv:get_stack("medallion"..x, 6):get_count() + local y7 = player_inv:get_stack("medallion"..x, 7):get_count() + local y8 = player_inv:get_stack("medallion"..x, 8):get_count() + local y9 = player_inv:get_stack("medallion"..x, 9):get_count() + formspec = "size[8,9.3]" + .."button[0,0;2,0.5;crafting7;Back]" + .."button[2,0;2,0.5;main;Main]" + .."button[5,3;2,0.5;mecraft;Craft]" + .."background[8,9.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[current_player;main;0,5.25;8,1;]" + .."list[current_player;main;0,6.5;8,3;8]" + .."list[current_player;medall;5.5,2;1,1;]" + .."listring[current_player;main]" + .."listring[current_player;medall]" + if y1 == 0 then + formspec = formspec .."image[1,1;1,1;tutorial_0.png]" + else + formspec = formspec .."image[1,1;1,1;medallion_"..x.."_1.png]" + end + if y2 == 0 then + formspec = formspec .."image[2,1;1,1;tutorial_0.png]" + else + formspec = formspec .."image[2,1;1,1;medallion_"..x.."_2.png]" + end + if y3 == 0 then + formspec = formspec .."image[3,1;1,1;tutorial_0.png]" + else + formspec = formspec .."image[3,1;1,1;medallion_"..x.."_3.png]" + end + if y4 == 0 then + formspec = formspec .."image[1,2;1,1;tutorial_0.png]" + else + formspec = formspec .."image[1,2;1,1;medallion_"..x.."_4.png]" + end + if y5 == 0 then + formspec = formspec .."image[2,2;1,1;tutorial_0.png]" + else + formspec = formspec .."image[2,2;1,1;medallion_"..x.."_5.png]" + end + if y6 == 0 then + formspec = formspec .."image[3,2;1,1;tutorial_0.png]" + else + formspec = formspec .."image[3,2;1,1;medallion_"..x.."_6.png]" + end + if y7 == 0 then + formspec = formspec .."image[1,3;1,1;tutorial_0.png]" + else + formspec = formspec .."image[1,3;1,1;medallion_"..x.."_7.png]" + end + if y8 == 0 then + formspec = formspec .."image[2,3;1,1;tutorial_0.png]" + else + formspec = formspec .."image[2,3;1,1;medallion_"..x.."_8.png]" + end + if y9 == 0 then + formspec = formspec .."image[3,3;1,1;tutorial_0.png]" + else + formspec = formspec .."image[3,3;1,1;medallion_"..x.."_9.png]" + end + return formspec +end +minetest.register_craftitem("tutorial:tortoise_schluessel", { + description = "Tortoisekey", + inventory_image = "tutorial_tortoise_schluessel.png", +}) +local medallion = {} +medallion.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medallionred", 9) + player_inv:set_size("meme", 1) + local k = 0 + local p = 0 + formspec = "size[8.5,6.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[8.5,6.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0.4,2.2;red]" + .."label[1.6,2.2;blue]" + .."label[2.7,2.2;green]" + .."label[3.9,2.2;purple]" + .."label[5.0,2.2;yellow]" + .."label[6.3,2.2;cyan]" + .."label[7.5,2.2;gray]" + for i=1,9,1 do + if player_inv:get_stack("medallionred", i):get_count() == 0 then + k = 1 + end + end + if k == 0 then + p = p+1 + formspec = formspec .."image[0,1;1.2,1.2;medallion_red.png]" + else + formspec = formspec .."image[0,1;1.2,1.2;tutorial_0.png]" + end + k = 0 + for i=1,9,1 do + if player_inv:get_stack("medallionblue", i):get_count() == 0 then + k = 1 + end + end + if k == 0 then + p = p+1 + formspec = formspec .."image[1.2,1;1.2,1.2;medallion_blue.png]" + else + formspec = formspec .."image[1.2,1;1.2,1.2;tutorial_0.png]" + end + k = 0 + for i=1,9,1 do + if player_inv:get_stack("medalliongreen", i):get_count() == 0 then + k = 1 + end + end + if k == 0 then + p = p+1 + formspec = formspec .."image[2.4,1;1.2,1.2;medallion_green.png]" + else + formspec = formspec .."image[2.4,1;1.2,1.2;tutorial_0.png]" + end + k = 0 + for i=1,9,1 do + if player_inv:get_stack("medallionpurple", i):get_count() == 0 then + k = 1 + end + end + if k == 0 then + p = p+1 + formspec = formspec .."image[3.6,1;1.2,1.2;medallion_purple.png]" + else + formspec = formspec .."image[3.6,1;1.2,1.2;tutorial_0.png]" + end + k = 0 + for i=1,9,1 do + if player_inv:get_stack("medallionyellow", i):get_count() == 0 then + k = 1 + end + end + if k == 0 then + p = p+1 + formspec = formspec .."image[4.8,1;1.2,1.2;medallion_yellow.png]" + else + formspec = formspec .."image[4.8,1;1.2,1.2;tutorial_0.png]" + end + k = 0 + for i=1,9,1 do + if player_inv:get_stack("medallioncyan", i):get_count() == 0 then + k = 1 + end + end + if k == 0 then + p = p+1 + formspec = formspec .."image[6,1;1.2,1.2;medallion_cyan.png]" + else + formspec = formspec .."image[6,1;1.2,1.2;tutorial_0.png]" + end + k = 0 + for i=1,9,1 do + if player_inv:get_stack("medalliongray", i):get_count() == 0 then + k = 1 + end + end + if k == 0 then + p = p+1 + formspec = formspec .."image[7.2,1;1.2,1.2;medallion_gray.png]" + else + formspec = formspec .."image[7.2,1;1.2,1.2;tutorial_0.png]" + end + formspec = formspec .."label[5,0;"..p.."/7]" + if p == 7 then + formspec = formspec .."button[6.5,0;2,0.5;medrew;Reward]" + end + player_inv:set_stack("meme", 1 , "default:dirt "..p) + return formspec +end +local rg21 = {} +rg21.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 13. Artifacts]" + .."label[0,1.3;If you run around you will get artifacts]" + .."label[0,1.6;Collect 71 artifacts to get the Knight key]" + .."label[0,1.9;How to use artifacts:]" + .."label[0,2.2;1. run around]" + .."label[0,2.5;2. get 71 artifacts]" + .."label[0,2.8;3. press 'reward']" + .."button[2,10; 2,0.5;rg14;<]" + .."button[4,10; 2,0.5;rg22;>]" + return formspec +end +local rg22 = {} +rg22.get_formspec = function(player, pos) + if player == nil then + return + end + formspec = "size[9,10.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[9,10.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,1;I. 14. Medallion]" + .."label[0,1.3;craft medallions in the medallion craft]" + .."label[0,1.6;Collect 7 medallions to get the Crystalkey]" + .."label[0,1.9;How to use artifacts:]" + .."label[0,2.2;1. craft medallions]" + .."label[0,2.5;2. get 7 medallions]" + .."label[0,2.8;3. press 'reward']" + .."button[2,10; 2,0.5;rg21;<]" + .."button[4,10; 2,0.5;rg23;>]" + return formspec +end +local timer = 0 +local oldpos = {} +local newpos = {} +minetest.register_globalstep(function(dtime) + timer = timer + dtime + if (timer >= 1) then + local players = minetest.get_connected_players() + for _,player in ipairs(players) do + local player_inv = player:get_inventory() + if (oldpos[player:get_player_name()] ~= nil) then + local playername = player:get_player_name() + local pos = player:getpos() + local player_inv = player:get_inventory() + player_inv:set_size("mov", 1) + player_inv:set_size("mov2", 1) + local count = player_inv:get_stack("mov", 1):get_count() + player_inv:set_stack("mov", 1 , "default:dirt "..count+math.sqrt(math.pow(oldpos[playername].x - pos.x, 2) + math.pow(oldpos[playername].y - pos.y, 2) + math.pow(oldpos[playername].z - pos.z,2))) + local count = player_inv:get_stack("mov", 1):get_count() + local count2 = player_inv:get_stack("mov2", 1):get_count() + player_inv:set_stack("mov2", 1 , "default:dirt "..count2+math.sqrt(math.pow(oldpos[playername].x - pos.x, 2) + math.pow(oldpos[playername].y - pos.y, 2) + math.pow(oldpos[playername].z - pos.z,2))) + local count2 = player_inv:get_stack("mov2", 1):get_count() + if count > 250 then + player_inv:set_stack("mov", 1 , "default:dirt") + local r = math.random(1, 14) + if r == 13 or r == 14 then + local r2 = math.random(1, 11) + player_inv:set_stack("art13", r2 , "default:dirt") + else + local r2 = math.random(1, 5) + player_inv:set_stack("art"..r, r2 , "default:dirt") + end + end + if count2 > 500 then + player_inv:set_stack("mov2", 1 , "default:dirt") + player_inv:add_item("medall", "tutorial:medallion") + end + end + oldpos[player:get_player_name()] = player:getpos() + end + timer = 0 + end +end) +minetest.register_craftitem("tutorial:gem_fragment2", { + description = "Gem fragment lv.2", + inventory_image = "tutorial_gem_fragment2.png", +}) +minetest.register_node("tutorial:geschenk_tortoise",{ + description = "Gift (tortoise)", + is_ground_content = true, + tiles = {"tutorial_geschenk_dragon.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +minetest.register_node("tutorial:geschenk_gem2",{ + description = "Gift lv.2 (gem)", + is_ground_content = true, + tiles = {"tutorial_geschenk_gem2.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = {}, +}) +local artifacts = {} +artifacts.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("afaf", 5) + player_inv:set_size("art1", 5) + player_inv:set_size("art2", 5) + player_inv:set_size("art3", 5) + player_inv:set_size("art4", 5) + player_inv:set_size("art5", 5) + player_inv:set_size("art6", 5) + player_inv:set_size("art7", 5) + player_inv:set_size("art8", 5) + player_inv:set_size("art9", 5) + player_inv:set_size("art10", 5) + player_inv:set_size("art11", 5) + player_inv:set_size("art12", 5) + player_inv:set_size("art13", 11) + local af = 0 + formspec = "size[11.8,7.4]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."label[5.4,1;green artifacts]" + .."label[5.4,2;blue artifacts]" + .."label[5.4,3;yellow artifacts]" + .."label[5.4,4;purple artifacts]" + .."label[5.4,5;cyan artifacts]" + .."label[5.4,6;red artifacts]" + .."label[10.7,7;grey artifacts]" + for j=1,12,1 do + for i=1,5,1 do + local ar = player_inv:get_stack("art"..j, i):get_count() + if ar == 1 and j == 1 then + formspec = formspec .."image["..(-1+i)..",1;0.6,0.6;artifacts_gruen1.png]" + af = af+1 + elseif ar == 1 and j == 2 then + formspec = formspec .."image["..(6+i)..",1;0.6,0.6;artifacts_gruen2.png]" + af = af+1 + elseif ar == 1 and j == 3 then + formspec = formspec .."image["..(-1+i)..",2;0.6,0.6;artifacts_blau1.png]" + af = af+1 + elseif ar == 1 and j == 4 then + formspec = formspec .."image["..(6+i)..",2;0.6,0.6;artifacts_blau2.png]" + af = af+1 + elseif ar == 1 and j == 5 then + formspec = formspec .."image["..(-1+i)..",3;0.6,0.6;artifacts_gelb1.png]" + af = af+1 + elseif ar == 1 and j == 6 then + formspec = formspec .."image["..(6+i)..",3;0.6,0.6;artifacts_gelb2.png]" + af = af+1 + elseif ar == 1 and j == 7 then + formspec = formspec .."image["..(-1+i)..",4;0.6,0.6;artifacts_lila1.png]" + af = af+1 + elseif ar == 1 and j == 8 then + formspec = formspec .."image["..(6+i)..",4;0.6,0.6;artifacts_lila2.png]" + af = af+1 + elseif ar == 1 and j == 9 then + formspec = formspec .."image["..(-1+i)..",5;0.6,0.6;artifacts_cyan1.png]" + af = af+1 + elseif ar == 1 and j == 10 then + formspec = formspec .."image["..(6+i)..",5;0.6,0.6;artifacts_cyan2.png]" + af = af+1 + elseif ar == 1 and j == 11 then + formspec = formspec .."image["..(-1+i)..",6;0.6,0.6;artifacts_rot1.png]" + af = af+1 + elseif ar == 1 and j == 12 then + formspec = formspec .."image["..(6+i)..",6;0.6,0.6;artifacts_rot2.png]" + af = af+1 + else + if j == 1 or j == 3 or j == 5 or j == 7 or j == 9 or j == 11 then + formspec = formspec .."image["..(-1+i)..","..math.ceil((j/2))..";0.6,0.6;tutorial_0.png]" + else + formspec = formspec .."image["..(6+i)..","..math.ceil((j/2))..";0.6,0.6;tutorial_0.png]" + end + end + end + end + for i=1,11,1 do + local ar = player_inv:get_stack("art13", i):get_count() + if ar == 1 then + formspec = formspec .."image["..(-1+i)..",7;0.6,0.6;artifacts_grau"..i..".png]" + af = af+1 + else + formspec = formspec .."image["..(-1+i)..",7;0.6,0.6;tutorial_0.png]" + end + end + if af == 71 then + formspec = formspec .."button[7,0;2,0.5;artrew;Reward]" + end + player_inv:set_stack("afaf", 1 , "default:dirt "..af) + formspec = formspec + .."label[4,0;"..af.."/71]" + .."background[8,8.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + + return formspec +end +local crafting6 = {} +crafting6.get_formspec = function(player, pos) + if player:is_player() then + else + return + end + local player_inv = player:get_inventory() + player_inv:set_size("uranin", 1) + player_inv:set_size("cookin", 1) + player_inv:set_size("cookkey", 1) + player_inv:set_size("fuel", 1) + local fuel = player_inv:get_stack("fuel", 1):get_count() + formspec = "size[8,8.3]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."label[0,1;Fuel:"..fuel.."]" + .."list[current_player;main;0,4.25;8,1;]" + .."list[current_player;uranin;1,2;1,1]" + .."button[2.5,3.3;2,0.5;cook;Craft (MAX)]" + .."list[current_player;cookin;3,2;1,1]" + .."label[1.15,2.8;Uranium]" + .."button[0.5,3.3;2,0.5;fuel;Get Fuel]" + .."list[current_player;cookkey;6,2;1,1]" + .."label[6,2.8;Cookingkey]" + .."list[current_player;main;0,5.5;8,3;8]" + .."background[10,11.3.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + return formspec +end +minetest.register_craftitem("tutorial:fox_schluessel", { + description = "Foxkey", + inventory_image = "tutorial_fox_schluessel.png", +}) +minetest.override_item("default:obsidian", { + description = "Obsidian Lv.1", +}) +minetest.override_item("default:diamondblock", { + description = "Diamond block lv.1", +}) +minetest.register_craft({ + output = 'tutorial:wallplacer1', + recipe = { + {'', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', ''}, + {'', 'tutorial:coin_gelb', '', 'tutorial:coin_gelb', ''}, + {'', '', 'tutorial:coin_gelb', '', ''}, + {'', '', 'tutorial:coin_gelb', '', ''}, + {'', '', 'tutorial:coin_gelb', '', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer2_1', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer1', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer3_1', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer2_1', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer3_2', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer2_2', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer4_1', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer3_1', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer4_2', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer3_2', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer4_3', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer3_3', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer5_1', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer4_1', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer5_2', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer4_2', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer5_3', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer4_3', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craft({ + output = 'tutorial:wallplacer5_4', + recipe = { + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:wallplacer4_4', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + {'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb', 'tutorial:coin_gelb'}, + } +}) +minetest.register_craftitem("tutorial:wallplacer1", { + description = "Wallplacer lv.1", + inventory_image = "tutorial_block_placer1.png", + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer2_2", { + description = "Wallplacer lv.2", + inventory_image = "tutorial_block_placer2.png^technic_tool_mode2.png", + wield_image = "tutorial_block_placer2.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer2_1") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer2_1", { + description = "Wallplacer lv.2", + inventory_image = "tutorial_block_placer2.png^technic_tool_mode1.png", + wield_image = "tutorial_block_placer2.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer2_2") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer3_1", { + description = "Wallplacer lv.3", + inventory_image = "tutorial_block_placer3.png^technic_tool_mode1.png", + wield_image = "tutorial_block_placer3.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer3_2") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer3_2", { + description = "Wallplacer lv.3", + inventory_image = "tutorial_block_placer3.png^technic_tool_mode2.png", + wield_image = "tutorial_block_placer3.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer3_3") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer3_3", { + description = "Wallplacer lv.3", + inventory_image = "tutorial_block_placer3.png^technic_tool_mode3.png", + wield_image = "tutorial_block_placer3.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer3_1") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-4), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-4), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-7), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-7), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-4), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-4), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-7), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-7), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer4_1", { + description = "Wallplacer lv.4", + inventory_image = "tutorial_block_placer4.png^technic_tool_mode1.png", + wield_image = "tutorial_block_placer4.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer4_2") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer4_2", { + description = "Wallplacer lv.4", + inventory_image = "tutorial_block_placer4.png^technic_tool_mode2.png", + wield_image = "tutorial_block_placer4.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer4_3") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer4_3", { + description = "Wallplacer lv.4", + inventory_image = "tutorial_block_placer4.png^technic_tool_mode3.png", + wield_image = "tutorial_block_placer4.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer4_4") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-4), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-4), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-7), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-7), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-4), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-4), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-7), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-7), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer4_4", { + description = "Wallplacer lv.4", + inventory_image = "tutorial_block_placer4.png^technic_tool_mode4.png", + wield_image = "tutorial_block_placer4.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer4_1") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-5)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-5)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-5)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-5)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-9), z=pos.z+(j-5)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-9), z=pos.z+(j-5)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x+(j-5), y=pos.y+(i-5), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-5), y=pos.y+(i-5), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x+(j-5), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-5), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x+(j-5), y=pos.y+(i-9), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-5), y=pos.y+(i-9), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer5_1", { + description = "Wallplacer lv.MAX", + inventory_image = "tutorial_block_placer5.png^technic_tool_mode1.png", + wield_image = "tutorial_block_placer5.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer5_2") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer5_2", { + description = "Wallplacer lv.MAX", + inventory_image = "tutorial_block_placer5.png^technic_tool_mode2.png", + wield_image = "tutorial_block_placer5.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer5_3") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer5_3", { + description = "Wallplacer lv.MAX", + inventory_image = "tutorial_block_placer5.png^technic_tool_mode3.png", + wield_image = "tutorial_block_placer5.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer5_4") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-4), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-4), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-7), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-7), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-4), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-4), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-7), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-7), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer5_4", { + description = "Wallplacer lv.MAX", + inventory_image = "tutorial_block_placer5.png^technic_tool_mode4.png", + wield_image = "tutorial_block_placer5.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer5_5") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-5)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-5)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-5)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-5)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-9), z=pos.z+(j-5)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-9), z=pos.z+(j-5)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x+(j-5), y=pos.y+(i-5), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-5), y=pos.y+(i-5), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x+(j-5), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-5), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x+(j-5), y=pos.y+(i-9), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-5), y=pos.y+(i-9), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:wallplacer5_5", { + description = "Wallplacer lv.MAX", + inventory_image = "tutorial_block_placer5.png^technic_tool_mode5.png", + wield_image = "tutorial_block_placer5.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:wallplacer5_1") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-6), z=pos.z+(j-6)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-6), z=pos.z+(j-6)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-6)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-6)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-11), z=pos.z+(j-6)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-11), z=pos.z+(j-6)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x+(j-6), y=pos.y+(i-6), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-6), y=pos.y+(i-6), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x+(j-6), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-6), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x+(j-6), y=pos.y+(i-11), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-6), y=pos.y+(i-11), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:adminwallplacer_1", { + description = "Admin tool 9: Wallplacer", + inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode1.png", + wield_image = "tutorial_block_placerAdmin.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:adminwallplacer_2") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-2), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-2)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-2), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,3,1 do + for j=1,3,1 do + local name = minetest.get_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-2), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:adminwallplacer_2", { + description = "Admin tool 9: Wallplacer", + inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode2.png", + wield_image = "tutorial_block_placerAdmin.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:adminwallplacer_3") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-3), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-3)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-3), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,5,1 do + for j=1,5,1 do + local name = minetest.get_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-3), y=pos.y+(i-5), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:adminwallplacer_3", { + description = "Admin tool 9: Wallplacer", + inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode3.png", + wield_image = "tutorial_block_placerAdmin.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:adminwallplacer_4") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-4), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-4), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-7), z=pos.z+(j-4)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-7), z=pos.z+(j-4)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-4), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-4), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,7,1 do + for j=1,7,1 do + local name = minetest.get_node({x=pos.x+(j-4), y=pos.y+(i-7), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-4), y=pos.y+(i-7), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:adminwallplacer_4", { + description = "Admin tool 9: Wallplacer", + inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode4.png", + wield_image = "tutorial_block_placerAdmin.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:adminwallplacer_5") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-5)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-5), z=pos.z+(j-5)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-5)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-5)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-9), z=pos.z+(j-5)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-9), z=pos.z+(j-5)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x+(j-5), y=pos.y+(i-5), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-5), y=pos.y+(i-5), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x+(j-5), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-5), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,9,1 do + for j=1,9,1 do + local name = minetest.get_node({x=pos.x+(j-5), y=pos.y+(i-9), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-5), y=pos.y+(i-9), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) +minetest.register_craftitem("tutorial:adminwallplacer_5", { + description = "Admin tool 9: Wallplacer", + inventory_image = "tutorial_block_placerAdmin.png^technic_tool_mode5.png", + wield_image = "tutorial_block_placerAdmin.png", + on_use = function(itemstack, user, pointed_thing) + local keys = user:get_player_control() + if keys["sneak"] == true then + itemstack:set_name("tutorial:adminwallplacer_1") + end + return itemstack + end, + on_place = function(itemstack, placer, pointed_thing) + local main = placer:get_wield_index()+1 + local inv = placer:get_inventory() + local stack = inv:get_stack("main", main) + local count = inv:get_stack("main", main):get_count() + if pointed_thing ~= nil then + local dir=placer:get_look_dir() + local di = 0 + if math.abs(dir.x)>math.abs(dir.z) then + if dir.x>0 then + di = 0 + else + di = 1 + end + elseif dir.z>0 then + di = 2 + else + di = 3 + end + local pos = pointed_thing.above + local pos2 = pointed_thing.under + local ab = 0 + if minetest.registered_nodes[stack:get_name()] then + if di == 1 or di == 0 then + if pos.y == pos2.y then + for i= 1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-6), z=pos.z+(j-6)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-6), z=pos.z+(j-6)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-6)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-1), z=pos.z+(j-6)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x, y=pos.y+(i-11), z=pos.z+(j-6)}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x, y=pos.y+(i-11), z=pos.z+(j-6)}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + if di == 2 or di == 3 then + if pos.y == pos2.y then + for i= 1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x+(j-6), y=pos.y+(i-6), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-6), y=pos.y+(i-6), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y > pos2.y then + for i= 1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x+(j-6), y=pos.y+(i-1), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-6), y=pos.y+(i-1), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + elseif pos.y < pos2.y then + for i=1,11,1 do + for j=1,11,1 do + local name = minetest.get_node({x=pos.x+(j-6), y=pos.y+(i-11), z=pos.z}).name + if name == "air" or name == "default:water_source" or name == "default:water_flowing" or name == "default:river_water_source" or name == "default:river_water_flowing" or name == "default:lava_source" or name == "default:lava_flowing" or name == "technic:corium_flowing" then + local count = inv:get_stack("main", main):get_count() + if count > 0 then + minetest.set_node({x=pos.x+(j-6), y=pos.y+(i-11), z=pos.z}, {name=stack:get_name()}) + inv:remove_item("main", stack:get_name()) + end + end + end + end + end + end + end + end + end, +}) + +minetest.register_craft({ + output = 'tutorial:gun', + recipe = { + {'group:wood', 'group:wood', 'group:wood'}, + {'', 'default:stick', 'group:wood'}, + {'', '', 'default:stick'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega1', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4', 'tutorial:gun', 'tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega2', + recipe = { + {'tutorial:obsidian4', 'tutorial:obsidian4', 'tutorial:obsidian4'}, + {'tutorial:obsidian4','tutorial:gun_mega1','tutorial:obsidian4'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega3', + recipe = { + {'tutorial:obsidian5', 'tutorial:obsidian5', 'tutorial:obsidian5'}, + {'tutorial:obsidian5','tutorial:gun_mega2','tutorial:obsidian5'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega4', + recipe = { + {'tutorial:obsidian6', 'tutorial:obsidian6', 'tutorial:obsidian6'}, + {'tutorial:obsidian6','tutorial:gun_mega3','tutorial:obsidian6'}, + {'tutorial:thunder', 'tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega5', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','tutorial:gun_mega4','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega6', + recipe = { + {'tutorial:dunklematerie4','tutorial:dunklematerie4', 'tutorial:dunklematerie4'}, + {'tutorial:dunklematerie4','tutorial:gun_mega5','tutorial:dunklematerie4'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega7', + recipe = { + {'tutorial:dunklematerie5','tutorial:dunklematerie5', 'tutorial:dunklematerie5'}, + {'tutorial:dunklematerie5','tutorial:gun_mega6','tutorial:dunklematerie5'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega8', + recipe = { + {'tutorial:dunklematerie6','tutorial:dunklematerie6', 'tutorial:dunklematerie6'}, + {'tutorial:dunklematerie6','tutorial:gun_mega7','tutorial:dunklematerie6'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega9', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','tutorial:gun_mega8','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega10', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','tutorial:gun_mega9','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega11', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','tutorial:gun_mega10','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega12', + recipe = { + {'tutorial:diamondblock2','tutorial:diamondblock2', 'tutorial:diamondblock2'}, + {'tutorial:diamondblock2','tutorial:gun_mega11','tutorial:diamondblock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega13', + recipe = { + {'default:goldblock','default:goldblock', 'default:goldblock'}, + {'default:goldblock','tutorial:gun_mega12','default:goldblock'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega14', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','tutorial:gun_mega13','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega15', + recipe = { + {'default:nyancat_rainbow','default:nyancat_rainbow', 'default:nyancat_rainbow'}, + {'default:nyancat_rainbow','tutorial:gun_mega14','default:nyancat_rainbow'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega16', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','tutorial:gun_mega15','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega17', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','tutorial:gun_mega16','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega18', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','tutorial:gun_mega17','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega19', + recipe = { + {'tutorial:megablock1','tutorial:megablock1', 'tutorial:megablock1'}, + {'tutorial:megablock1','tutorial:gun_mega18','tutorial:megablock1'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_mega20', + recipe = { + {'tutorial:megablock2','tutorial:megablock2', 'tutorial:megablock2'}, + {'tutorial:megablock2','tutorial:gun_mega19','tutorial:megablock2'}, + {'tutorial:thunder','tutorial:thunder', 'tutorial:thunder'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega25', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudgun_mega24', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega24', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudgun_mega23', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega23', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudgun_mega22', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega22', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudgun_mega21', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega21', + recipe = { + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:cloudgun_mega20', 'tutorial:superblock9'}, + {'tutorial:superblock9', 'tutorial:superblock9', 'tutorial:superblock9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega20', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudgun_mega19', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega19', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudgun_mega18', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega18', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudgun_mega17', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega17', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudgun_mega16', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega16', + recipe = { + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:cloudgun_mega15', 'tutorial:superblock8'}, + {'tutorial:superblock8', 'tutorial:superblock8', 'tutorial:superblock8'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega15', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudgun_mega14', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega14', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudgun_mega13', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega13', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudgun_mega12', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega12', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudgun_mega11', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega11', + recipe = { + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:cloudgun_mega10', 'tutorial:superblock7'}, + {'tutorial:superblock7', 'tutorial:superblock7', 'tutorial:superblock7'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega10', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudgun_mega9', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega9', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudgun_mega8', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega8', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudgun_mega7', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega7', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudgun_mega6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega6', + recipe = { + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:cloudgun_mega5', 'tutorial:superblock6'}, + {'tutorial:superblock6', 'tutorial:superblock6', 'tutorial:superblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega5', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:cloudgun_mega4', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega4', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:cloudgun_mega3', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega3', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:cloudgun_mega2', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega2', + recipe = { + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:cloudgun_mega1', 'tutorial:superblock5'}, + {'tutorial:superblock5', 'tutorial:superblock5', 'tutorial:superblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:cloudgun_mega1', + recipe = { + {'tutorial:cloudentverner21', 'tutorial:gun_mega20'}, + } +}) +minetest.register_craft({ + output = 'tutorial:supergun4', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:supergun3', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:supergun3', + recipe = { + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:supergun2', 'tutorial:blackblock6'}, + {'tutorial:whiteblock6', 'tutorial:thunder', 'tutorial:blackblock6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:supergun2', + recipe = { + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'tutorial:supergun1', 'tutorial:blackblock5'}, + {'tutorial:whiteblock5', 'tutorial:thunder', 'tutorial:blackblock5'}, + } +}) +minetest.register_craft({ + output = 'tutorial:supergun1', + recipe = { + {'tutorial:zauberstab9', 'tutorial:gun_mega25', 'tutorial:swored_zauber9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uraniumgun2', + recipe = { + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'tutorial:uraniumgun1', 'tutorial:uranium9'}, + {'tutorial:uranium9', 'tutorial:uranium9', 'tutorial:uranium9'}, + } +}) +minetest.register_craft({ + output = 'tutorial:uraniumgun1', + recipe = { + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:supergun4', 'tutorial:uranium8'}, + {'tutorial:uranium8', 'tutorial:uranium8', 'tutorial:uranium8'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun12', + cooktime = 1000, + output = 'tutorial:superenergygun1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergygun1', + cooktime = 1200, + output = 'tutorial:superenergygun2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergygun2', + cooktime = 1400, + output = 'tutorial:superenergygun3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergygun3', + cooktime = 1600, + output = 'tutorial:superenergygun4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergygun4', + cooktime = 1800, + output = 'tutorial:superenergygun5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergygun5', + cooktime = 2000, + output = 'tutorial:superenergygun6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:superenergygun6', + cooktime = 2500, + output = 'tutorial:superenergygun7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:uraniumgun2', + cooktime = 100, + output = 'tutorial:energygun1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun1', + cooktime = 100, + output = 'tutorial:energygun2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun2', + cooktime = 200, + output = 'tutorial:energygun3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun3', + cooktime = 300, + output = 'tutorial:energygun4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun4', + cooktime = 400, + output = 'tutorial:energygun5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun5', + cooktime = 500, + output = 'tutorial:energygun6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun6', + cooktime = 600, + output = 'tutorial:energygun7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun7', + cooktime = 700, + output = 'tutorial:energygun8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun8', + cooktime = 800, + output = 'tutorial:energygun9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun9', + cooktime = 900, + output = 'tutorial:energygun10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun10', + cooktime = 1000, + output = 'tutorial:energygun11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:energygun11', + cooktime = 1500, + output = 'tutorial:energygun12', +}) +minetest.register_craft({ + output = 'tutorial:kristallgun5', + recipe = { + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + {'tutorial:admin', 'tutorial:kristallgun4', 'tutorial:admin'}, + {'tutorial:admin', 'tutorial:thunder', 'tutorial:admin'}, + } +}) +minetest.register_craft({ + output = 'tutorial:kristallgun4', + recipe = { + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + {'gems:emerald_block', 'tutorial:kristallgun3', 'gems:emerald_block'}, + {'gems:emerald_block', 'tutorial:thunder', 'gems:emerald_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:kristallgun3', + recipe = { + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + {'gems:pearl_block', 'tutorial:kristallgun2', 'gems:shadow_block'}, + {'gems:pearl_block', 'tutorial:thunder', 'gems:shadow_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:kristallgun2', + recipe = { + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'tutorial:kristallgun1', 'gems:amethyst_block'}, + {'gems:amethyst_block', 'tutorial:thunder', 'gems:amethyst_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:kristallgun1', + recipe = { + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + {'gems:ruby_block', 'tutorial:superenergygun7', 'gems:sapphire_block'}, + {'gems:ruby_block', 'tutorial:thunder', 'gems:sapphire_block'}, + } +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun24', + cooktime = 5000, + output = 'tutorial:ultragun25', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun23', + cooktime = 4800, + output = 'tutorial:ultragun24', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun22', + cooktime = 4600, + output = 'tutorial:ultragun23', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun21', + cooktime = 4400, + output = 'tutorial:ultragun22', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun20', + cooktime = 4200, + output = 'tutorial:ultragun21', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun19', + cooktime = 4000, + output = 'tutorial:ultragun20', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun18', + cooktime = 3800, + output = 'tutorial:ultragun19', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun17', + cooktime = 3600, + output = 'tutorial:ultragun18', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun16', + cooktime = 3400, + output = 'tutorial:ultragun17', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun15', + cooktime = 3200, + output = 'tutorial:ultragun16', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun14', + cooktime = 3000, + output = 'tutorial:ultragun15', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun13', + cooktime = 2800, + output = 'tutorial:ultragun14', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun12', + cooktime = 2600, + output = 'tutorial:ultragun13', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun11', + cooktime = 2400, + output = 'tutorial:ultragun12', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun10', + cooktime = 2200, + output = 'tutorial:ultragun11', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun9', + cooktime = 2000, + output = 'tutorial:ultragun10', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun8', + cooktime = 1800, + output = 'tutorial:ultragun9', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun7', + cooktime = 1600, + output = 'tutorial:ultragun8', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun6', + cooktime = 1400, + output = 'tutorial:ultragun7', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun5', + cooktime = 1200, + output = 'tutorial:ultragun6', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun4', + cooktime = 1000, + output = 'tutorial:ultragun5', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun3', + cooktime = 800, + output = 'tutorial:ultragun4', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun2', + cooktime = 600, + output = 'tutorial:ultragun3', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun1', + cooktime = 400, + output = 'tutorial:ultragun2', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:kristallgun5', + cooktime = 200, + output = 'tutorial:ultragun1', +}) +minetest.register_craft({ + type = 'cooking', + recipe = 'tutorial:ultragun25', + cooktime = 10000, + output = 'tutorial:ultragun', +}) +minetest.register_craft({ + output = 'tutorial:arenagun4', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arenagun3', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:arenagun3', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arenagun2', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:arenagun2', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arenagun1', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:arenagun1', + recipe = { + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:ultragun', 'tutorial:arena_block'}, + {'tutorial:arena_block', 'tutorial:arena_block', 'tutorial:arena_block'}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun10', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titangun9', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun9', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titangun8', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun8', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titangun7', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun7', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titangun6', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun6', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titangun5', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun5', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titangun4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun4', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titangun3', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun3', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titangun2', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun2', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:titangun1', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:titangun1', + recipe = { + {'', 'tutorial:titan', ''}, + {'tutorial:titan', 'tutorial:arena_gun4', 'tutorial:titan'}, + {'', 'tutorial:titan', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendengun1', + recipe = { + {'tutorial:titangun10', 'default:grass_1', 'default:grass_1', 'tutorial:bottle5'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle5', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendengun2', + recipe = { + {'tutorial:legendengun1', 'default:grass_1', 'default:grass_1', 'tutorial:bottle7'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle7', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendengun3', + recipe = { + {'tutorial:legendengun2', 'default:grass_1', 'default:grass_1', 'tutorial:bottle9'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle9', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendengun4', + recipe = { + {'tutorial:legendengun3', 'default:grass_1', 'default:grass_1', 'tutorial:bottle11'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottle11', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendengun5', + recipe = { + {'tutorial:legendengun4', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:legendengun6', + recipe = { + {'tutorial:legendengun5', 'default:grass_1', 'default:grass_1', 'tutorial:bottleS3'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'default:grass_1', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + {'tutorial:bottleS3', 'default:grass_1', 'default:grass_1', 'default:grass_1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superlegendengun1', + recipe = { + {'tutorial:lilabattleaxe2', 'tutorial:legendengun6'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superlegendengun1', + recipe = { + {'tutorial:superlegendengun2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:superlegendengun2', + recipe = { + {'tutorial:superlegendengun1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnumgun1', + recipe = { + {'', '', 'tutorial:regnum', '', ''}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'tutorial:regnum', 'tutorial:bottleSS', 'tutorial:superlegendengun1', 'tutorial:bottleSS', 'tutorial:regnum'}, + {'', '', 'tutorial:bottleSS', '', ''}, + {'', '', 'tutorial:regnum', '', ''}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnumgun2', + recipe = { + {'tutorial:regnumgun1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnumgun1', + recipe = { + {'tutorial:regnumgun2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_admin1', + recipe = { + {'tutorial:gun_admin2'}, + } +}) +minetest.register_craft({ + output = 'tutorial:gun_admin2', + recipe = { + {'tutorial:gun_admin1'}, + } +}) +minetest.register_craft({ + output = 'tutorial:xp_block_yellow 16', + recipe = { + {'tutorial:titan','tutorial:admin','tutorial:regnum','tutorial:admin','tutorial:titan'}, + } +}) +for i = 1, 100, 1 do + minetest.register_node("tutorial:level"..i.."_gelb",{ + tiles = {"tutorial_level"..i..".png^tutorial_level_gelb.png"}, + description = "You are now in Level yellow "..i, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, + }) +end +minetest.register_craftitem("tutorial:coin_gelb", { + description = "Coin yellow (very rare)", + inventory_image = "tutorial_coin_gelb.png", + stack_max = 1500, +}) +minetest.register_node("tutorial:levelMAX_gelb",{ + tiles = {"tutorial_levelMAX.png^tutorial_level_gelb.png"}, + description = "You are now in Level yellow MAX", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2}, +}) +local xpi4 = {} +xpi4.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local xpi5_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi5",{ + on_take = function(inv, listname, index, stack, player) + player:get_inventory():remove_item(listname,stack) + end, + allow_put = function(inv, listname, index, stack, player) + return 0 + 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 0 + end, + }) + xpi5_inv:set_size("xpi5", 100) + player_inv:set_size("xp5", 100) + for i=1, 100 do + local stack = player_inv:get_stack("xpi5", i) + xpi5_inv:set_stack("xpi5", i, stack) + end + xpi5_inv:set_size("xpi5", 100) + player_inv:set_size("xpi5", 100) + formspec = "size[18,12.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."list[current_player;main;5,7.5;8,1;]" + .."list[current_player;main;5,8.75;8,3;8]" + .."background[18,12.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[detached:"..player:get_player_name().."_xpi5;xpi5;0,1.3;18,6]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi5;xpi5]" + .."label[0,0.7;Yellow Level Blocks]" + .."button[7,12;2,0.5;xpi3;<]" + .."button[9,12;2,0.5;xpi5;>]" + return formspec +end +local xpi5 = {} +xpi5.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local xpi6_inv = minetest.create_detached_inventory(player:get_player_name().."_xpi6",{ + on_take = function(inv, listname, index, stack, player) + player:get_inventory():remove_item(listname,stack) + end, + allow_put = function(inv, listname, index, stack, player) + return 0 + 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 0 + end, + }) + xpi6_inv:set_size("xpi6", 25) + player_inv:set_size("xp6", 25) + for i=1, 25 do + local stack = player_inv:get_stack("xpi6", i) + xpi6_inv:set_stack("xpi6", i, stack) + end + xpi6_inv:set_size("xpi6", 25) + player_inv:set_size("xpi6", 25) + formspec = "size[18,12.3]" + .."button[0,0;2,0.5;inven;Back]" + .."button[2,0;2,0.5;main;Main]" + .."list[current_player;main;5,7.5;8,1;]" + .."list[current_player;main;5,8.75;8,3;8]" + .."background[18,12.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."list[detached:"..player:get_player_name().."_xpi6;xpi6;0,1.3;18,6]" + .."listring[current_player;main]" + .."listring[detached:"..player:get_player_name().."_xpi6;xpi6]" + .."label[0,0.7;Cyan Level Blocks]" + .."button[7,12;2,0.5;xpi4;<]" + return formspec +end +minetest.register_node("tutorial:xp_block_yellow",{ + description = "Xp Block (yellow)", + tiles = {"tutorial_xp_block_yellow.png"}, + drop = '', + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,xpy=1}, +}) +for i = 0, 127 do + local XTRAORES_TB = { + physical = false, + timer = 0, + visual = "sprite", + visual_size = {x=0.075, y=0.075,}, + textures = {'tutorial_titanium_shot.png'}, + lastpos= {}, + collisionbox = {0, 0, 0, 0, 0, 0}, + metadata = "", + } + XTRAORES_TB.on_step = function(self, dtime) + self.timer = self.timer + dtime + local ki = 0 + if i == 0 then + ki = 1 + elseif i == 122 then + ki = 122 + elseif i == 123 then + ki = 150 + elseif i == 124 then + ki = 122 + elseif i == 125 then + ki = 150 + elseif i == 126 then + ki = 500 + elseif i == 127 then + ki = 500 + else + ki = i + end + local l = 0 + if i == 0 then + l = 1 + elseif i < 21 then + l = 2 + elseif i < 46 then + l = 3 + elseif i < 50 then + l = 4 + elseif i < 52 then + l = 5 + elseif i < 64 then + l = 6 + elseif i < 71 then + l = 7 + elseif i < 76 then + l = 8 + elseif i < 101 then + l = 9 + elseif i < 102 then + l = 10 + elseif i < 106 then + l = 11 + elseif i < 116 then + l = 12 + elseif i < 122 then + l = 13 + elseif i < 123 then + l = 14 + elseif i < 124 then + l = 15 + elseif i < 125 then + l = 14 + elseif i < 126 then + l = 15 + elseif i < 128 then + l = 20 + end + local pos = self.object:getpos() + local node = minetest.get_node(pos) + if self.timer > 0.08 then + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y, z = pos.z}, l) + for k, obj in pairs(objs) do + local damage = ki + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "tutorial:tb_"..i and obj:get_luaentity().name ~= "__builtin:item" then + obj:punch(self.object, 1.0, {full_punch_interval = 1.0, damage_groups= {fleshy = damage}}, nil) + minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8}) + end + else + if obj:is_player() then + if obj:get_player_name() == self.player:get_player_name() then + else + obj:punch(self.object, 1.0, {full_punch_interval = 1.0, damage_groups= {fleshy = damage}}, nil) + minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8}) + end + else + obj:punch(self.object, 1.0, {full_punch_interval = 1.0, damage_groups= {fleshy = damage}}, nil) + minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8}) + end + 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, "") + end + if i > 126 then + if minetest.get_node({x = pos.x, y = pos.y+1, z = pos.z+1}).name == "air" then + minetest.set_node({x = pos.x, y = pos.y+1, z = pos.z+1}, {name="tutorial:legend_thunderadmin"}) + end + if minetest.get_node({x = pos.x, y = pos.y+1, z = pos.z-1}).name == "air" then + minetest.set_node({x = pos.x, y = pos.y+1, z = pos.z-1}, {name="tutorial:legend_thunderadmin"}) + end + if minetest.get_node({x = pos.x+1, y = pos.y+1, z = pos.z}).name == "air" then + minetest.set_node({x = pos.x+1, y = pos.y+1, z = pos.z}, {name="tutorial:legend_thunderadmin"}) + end + if minetest.get_node({x = pos.x-1, y = pos.y+1, z = pos.z}).name == "air" then + minetest.set_node({x = pos.x-1, y = pos.y+1, z = pos.z}, {name="tutorial:legend_thunderadmin"}) + end + if minetest.get_node({x = pos.x+1, y = pos.y+1, z = pos.z+1}).name == "air" then + minetest.set_node({x = pos.x+1, y = pos.y+1, z = pos.z+1}, {name="tutorial:legend_thunderadmin"}) + end + if minetest.get_node({x = pos.x+1, y = pos.y+1, z = pos.z-1}).name == "air" then + minetest.set_node({x = pos.x+1, y = pos.y+1, z = pos.z-1}, {name="tutorial:legend_thunderadmin"}) + end + if minetest.get_node({x = pos.x-1, y = pos.y+1, z = pos.z+1}).name == "air" then + minetest.set_node({x = pos.x-1, y = pos.y+1, z = pos.z+1}, {name="tutorial:legend_thunderadmin"}) + end + if minetest.get_node({x = pos.x-1, y = pos.y+1, z = pos.z-1}).name == "air" then + minetest.set_node({x = pos.x-1, y = pos.y+1, z = pos.z-1}, {name="tutorial:legend_thunderadmin"}) + end + 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="tutorial:legend_thunderadmin"}) + end + minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8}) + elseif i > 124 and i ~= 126 then + if minetest.get_node({x = pos.x, y = pos.y+1, z = pos.z+1}).name == "air" then + minetest.set_node({x = pos.x, y = pos.y+1, z = pos.z+1}, {name="tutorial:legend_thunder_8_8"}) + end + if minetest.get_node({x = pos.x, y = pos.y+1, z = pos.z-1}).name == "air" then + minetest.set_node({x = pos.x, y = pos.y+1, z = pos.z-1}, {name="tutorial:legend_thunder_8_8"}) + end + if minetest.get_node({x = pos.x+1, y = pos.y+1, z = pos.z}).name == "air" then + minetest.set_node({x = pos.x+1, y = pos.y+1, z = pos.z}, {name="tutorial:legend_thunder_8_8"}) + end + if minetest.get_node({x = pos.x-1, y = pos.y+1, z = pos.z}).name == "air" then + minetest.set_node({x = pos.x-1, y = pos.y+1, z = pos.z}, {name="tutorial:legend_thunder_8_8"}) + end + if minetest.get_node({x = pos.x+1, y = pos.y+1, z = pos.z+1}).name == "air" then + minetest.set_node({x = pos.x+1, y = pos.y+1, z = pos.z+1}, {name="tutorial:legend_thunder_8_8"}) + end + if minetest.get_node({x = pos.x+1, y = pos.y+1, z = pos.z-1}).name == "air" then + minetest.set_node({x = pos.x+1, y = pos.y+1, z = pos.z-1}, {name="tutorial:legend_thunder_8_8"}) + end + if minetest.get_node({x = pos.x-1, y = pos.y+1, z = pos.z+1}).name == "air" then + minetest.set_node({x = pos.x-1, y = pos.y+1, z = pos.z+1}, {name="tutorial:legend_thunder_8_8"}) + end + if minetest.get_node({x = pos.x-1, y = pos.y+1, z = pos.z-1}).name == "air" then + minetest.set_node({x = pos.x-1, y = pos.y+1, z = pos.z-1}, {name="tutorial:legend_thunder_8_8"}) + end + 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="tutorial:legend_thunder_8_8"}) + end + minetest.sound_play("default_dig_cracky", {pos = self.lastpos, gain = 0.8}) + end + self.object:remove() + end + end + self.lastpos= {x = pos.x, y = pos.y, z = pos.z} + end + minetest.register_entity("tutorial:tb_"..i, XTRAORES_TB) +end +minetest.register_tool("tutorial:gun", { + description = "Gun\nGun-lv.0", + inventory_image = "tutorial_gun.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_0") + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +for i = 1, 20 do + minetest.register_tool("tutorial:gun_mega"..i, { + description = "Mega Gun lv."..i.."\nGun-lv."..i, + inventory_image = "tutorial_gun_mega"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..i) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +for i = 1, 25 do + minetest.register_tool("tutorial:cloudgun_mega"..i, { + description = "Cloudgun lv."..i.."\nGun-lv."..(i+20), + inventory_image = "tutorial_cloudgun_mega"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+20)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +for i = 1, 4 do + minetest.register_tool("tutorial:supergun"..i, { + description = "Supergun lv."..i.."\nGun-lv."..(i+45), + inventory_image = "tutorial_supergun"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+45)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +for i = 1, 2 do + minetest.register_tool("tutorial:uraniumgun"..i, { + description = "Uraniumgun lv."..i.."\nGun-lv."..(i+49), + inventory_image = "tutorial_uraniumgun"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+49)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +for i = 1, 12 do + minetest.register_tool("tutorial:energygun"..i, { + description = "Energygun lv."..i.."\nGun-lv."..(i+51), + inventory_image = "tutorial_energygun"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+51)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +for i = 1, 7 do + minetest.register_tool("tutorial:superenergygun"..i, { + description = "Superenergygun lv."..i.."\nGun-lv."..(i+63), + inventory_image = "tutorial_superenergygun"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+63)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +for i = 1, 5 do + minetest.register_tool("tutorial:kristallgun"..i, { + description = "Crystalgun lv."..i.."\nGun-lv."..(i+70), + inventory_image = "tutorial_kristallgun"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+70)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +for i = 1, 25 do + minetest.register_tool("tutorial:ultragun"..i, { + description = "Ultragun lv."..i.."\nGun-lv."..(i+75), + inventory_image = "tutorial_ultragun"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+75)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +minetest.register_tool("tutorial:ultragun", { + description = "Superultragun\nGun-lv.101", + inventory_image = "tutorial_superultragun.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_101") + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, +}) +for i = 1, 4 do + minetest.register_tool("tutorial:arenagun"..i, { + description = "Arenagun lv."..i.."\nGun-lv."..(i+101), + inventory_image = "tutorial_arenagun"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+101)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +for i = 1, 10 do + minetest.register_tool("tutorial:titangun"..i, { + description = "Titangun lv."..i.."\nGun-lv."..(i+105), + inventory_image = "tutorial_titangun"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+105)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +for i = 1, 6 do + minetest.register_tool("tutorial:legendengun"..i, { + description = "Legendgun lv."..i.."\nGun-lv."..(i+115), + inventory_image = "tutorial_legendengun"..i..".png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_"..(i+115)) + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, + }) +end +minetest.register_tool("tutorial:superlegendengun1", { + description = "Superlegendgun Mode 1. Add no thunder\nGun-lv.122", + inventory_image = "tutorial_superlegendengun.png^technic_tool_mode1.png", + wield_image = "tutorial_superlegendengun.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_122") + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, +}) +minetest.register_tool("tutorial:superlegendengun2", { + description = "Superlegendgun Mode 2. Add thunder\nGun-lv.122", + inventory_image = "tutorial_superlegendengun.png^technic_tool_mode2.png", + wield_image = "tutorial_superlegendengun.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_124") + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, +}) +minetest.register_tool("tutorial:regnumgun1", { + description = "Regnumgun Mode 1. Add no thunder\nGun-lv.MAX", + inventory_image = "tutorial_regnumgun.png^technic_tool_mode1.png", + wield_image = "tutorial_regnumgun.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_123") + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, +}) +minetest.register_tool("tutorial:regnumgun2", { + description = "Regnumgun Mode 2. Add thunder\nGun-lv.MAX", + inventory_image = "tutorial_regnumgun.png^technic_tool_mode2.png", + wield_image = "tutorial_regnumgun.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_125") + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, +}) +minetest.register_tool("tutorial:gun_admin1", { + description = "Admin tool 11: Gun Mode 1. Add no thunder", + inventory_image = "tutorial_admingun.png^technic_tool_mode1.png", + wield_image = "tutorial_admingun.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_126") + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, +}) +minetest.register_tool("tutorial:gun_admin2", { + description = "Admin tool 11: Gun Mode 2. Add thunder", + inventory_image = "tutorial_admingun.png^technic_tool_mode2.png", + wield_image = "tutorial_admingun.png", + on_use = function(itemstack, user, pointed_thing) + local inv = user:get_inventory() + local pos = user:getpos() + local dir = user:get_look_dir() + local yaw = user:get_look_yaw() + if pos and dir and yaw then + pos.y = pos.y + 1.6 + local obj = minetest.add_entity(pos, "tutorial:tb_127") + if obj then + minetest.sound_play("shot", {object=obj}) + obj:setvelocity({x=dir.x * 60, y=dir.y * 60, z=dir.z * 60}) + obj:setacceleration({x=dir.x * -0, y=-0, z=dir.z * -0}) + obj:setyaw(yaw + math.pi) + local ent = obj:get_luaentity() + if ent then + ent.player = user + end + end + end + return itemstack + end, +}) +local mine = {} +mine.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("mine1", 1) + player_inv:set_size("mine2", 8) + formspec = "size[10,8.3]" + .."background[10,8.3;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."button[0,0;2,0.5;cr;Back]" + .."button[2,0;2,0.5;main;Main]" + .."list[current_player;mine1;0,1.25;5,1;]" + .."list[current_player;mine2;1.5,1.25;8,1;]" + .."label[0,2.2;Mining laser/drill]" + .."button[4,3;2,0.5;craftmine;Craft]" + .."label[5,2.2;Green Coins]" + .."list[current_player;main;1,4.25;8,1;]" + .."list[current_player;main;1,5.5;8,3;8]" + return formspec +end +local recraft = {} +recraft.get_formspec = function(player,pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + local lv = { + {1, "normal", 5, "tutorial:obsidian4", "tutorial:obsidian4", "tutorial:obsidian4", "tutorial:obsidian4", "", "tutorial:obsidian4", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {2, "normal", 5, "tutorial:obsidian4", "tutorial:obsidian4", "tutorial:obsidian4", "tutorial:obsidian4", "", "tutorial:obsidian4", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {3, "normal", 5, "tutorial:obsidian5", "tutorial:obsidian5", "tutorial:obsidian5", "tutorial:obsidian5", "", "tutorial:obsidian5", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {4, "normal", 5, "tutorial:obsidian6", "tutorial:obsidian6", "tutorial:obsidian6", "tutorial:obsidian6", "", "tutorial:obsidian6", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {5, "normal", 5, "tutorial:dunklematerie4", "tutorial:dunklematerie4", "tutorial:dunklematerie4", "tutorial:dunklematerie4", "", "tutorial:dunklematerie4", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {6, "normal", 5, "tutorial:dunklematerie4", "tutorial:dunklematerie4", "tutorial:dunklematerie4", "tutorial:dunklematerie4", "", "tutorial:dunklematerie4", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {7, "normal", 5, "tutorial:dunklematerie5", "tutorial:dunklematerie5", "tutorial:dunklematerie5", "tutorial:dunklematerie5", "", "tutorial:dunklematerie5", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {8, "normal", 5, "tutorial:dunklematerie6", "tutorial:dunklematerie6", "tutorial:dunklematerie6", "tutorial:dunklematerie6", "", "tutorial:dunklematerie6", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {9, "normal", 5, "tutorial:diamondblock2", "tutorial:diamondblock2", "tutorial:diamondblock2", "tutorial:diamondblock2", "", "tutorial:diamondblock2", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {10, "normal", 5, "tutorial:diamondblock2", "tutorial:diamondblock2", "tutorial:diamondblock2", "tutorial:diamondblock2", "", "tutorial:diamondblock2", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {11, "normal", 5, "tutorial:diamondblock2", "tutorial:diamondblock2", "tutorial:diamondblock2", "tutorial:diamondblock2", "", "tutorial:diamondblock2", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {12, "normal", 5, "tutorial:diamondblock2", "tutorial:diamondblock2", "tutorial:diamondblock2", "tutorial:diamondblock2", "", "tutorial:diamondblock2", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {13, "normal", 5, "default:goldblock", "default:goldblock", "default:goldblock", "default:goldblock", "", "default:goldblock", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {14, "normal", 5, "nyancat:nyancat_rainbow", "nyancat:nyancat_rainbow", "nyancat:nyancat_rainbow", "nyancat:nyancat_rainbow", "", "nyancat:nyancat_rainbow", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {15, "normal", 5, "nyancat:nyancat_rainbow", "nyancat:nyancat_rainbow", "nyancat:nyancat_rainbow", "nyancat:nyancat_rainbow", "", "nyancat:nyancat_rainbow", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {16, "normal", 5, "tutorial:megablock1", "tutorial:megablock1", "tutorial:megablock1", "tutorial:megablock1", "", "tutorial:megablock1", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {17, "normal", 5, "tutorial:megablock1", "tutorial:megablock1", "tutorial:megablock1", "tutorial:megablock1", "", "tutorial:megablock1", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {18, "normal", 5, "tutorial:megablock1", "tutorial:megablock1", "tutorial:megablock1", "tutorial:megablock1", "", "tutorial:megablock1", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {19, "normal", 5, "tutorial:megablock1", "tutorial:megablock1", "tutorial:megablock1", "tutorial:megablock1", "", "tutorial:megablock1", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {20, "normal", 5, "tutorial:megablock2", "tutorial:megablock2", "tutorial:megablock2", "tutorial:megablock2", "", "tutorial:megablock2", "tutorial:thunder", "tutorial:thunder", "tutorial:thunder", 0}, + {21, "normal", 2, "tutorial:cloudentverner21", "", "", "", "", "", "", "", "", 0}, + {22, "normal", 5, "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", 0}, + {23, "normal", 5, "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", 0}, + {24, "normal", 5, "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", 0}, + {25, "normal", 5, "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", "tutorial:superblock5", 0}, + {26, "normal", 5, "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", 0}, + {27, "normal", 5, "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", 0}, + {28, "normal", 5, "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", 0}, + {29, "normal", 5, "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", 0}, + {30, "normal", 5, "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", "tutorial:superblock6", 0}, + {31, "normal", 5, "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", 0}, + {32, "normal", 5, "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", 0}, + {33, "normal", 5, "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", 0}, + {34, "normal", 5, "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", 0}, + {35, "normal", 5, "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", "tutorial:superblock7", 0}, + {36, "normal", 5, "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", 0}, + {37, "normal", 5, "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", 0}, + {38, "normal", 5, "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", 0}, + {39, "normal", 5, "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", 0}, + {40, "normal", 5, "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", "tutorial:superblock8", 0}, + {41, "normal", 5, "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", 0}, + {42, "normal", 5, "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", 0}, + {43, "normal", 5, "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", 0}, + {44, "normal", 5, "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", 0}, + {45, "normal", 5, "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", "tutorial:superblock9", 0}, + {46, "normal", 2, "tutorial:zauberstab9", "", "tutorial:swored_zauber9", "", "", "", "", "", "", 0}, + {47, "normal", 5, "tutorial:whiteblock5", "tutorial:thunder", "tutorial:blackblock5", "tutorial:whiteblock5", "", "tutorial:blackblock5", "tutorial:whiteblock5", "tutorial:thunder", "tutorial:blackblock5", 0}, + {48, "normal", 5, "tutorial:whiteblock6", "tutorial:thunder", "tutorial:blackblock6", "tutorial:whiteblock6", "", "tutorial:blackblock6", "tutorial:whiteblock6", "tutorial:thunder", "tutorial:blackblock6", 0}, + {49, "normal", 5, "tutorial:whiteblock6", "tutorial:thunder", "tutorial:blackblock6", "tutorial:whiteblock6", "", "tutorial:blackblock6", "tutorial:whiteblock6", "tutorial:thunder", "tutorial:blackblock6", 0}, + {50, "normal", 5, "tutorial:uranium8", "tutorial:uranium8", "tutorial:uranium8", "tutorial:uranium8", "", "tutorial:uranium8", "tutorial:uranium8", "tutorial:uranium8", "tutorial:uranium8", 0}, + {51, "normal", 5, "tutorial:uranium9", "tutorial:uranium9", "tutorial:uranium9", "tutorial:uranium9", "", "tutorial:uranium9", "tutorial:uranium9", "tutorial:uranium9", "tutorial:uranium9", 0}, + {52, "cooking", 1, "", "", "", "", "", "", "", "", "", 100}, + {53, "cooking", 1, "", "", "", "", "", "", "", "", "", 100}, + {54, "cooking", 1, "", "", "", "", "", "", "", "", "", 200}, + {55, "cooking", 1, "", "", "", "", "", "", "", "", "", 300}, + {56, "cooking", 1, "", "", "", "", "", "", "", "", "", 400}, + {57, "cooking", 1, "", "", "", "", "", "", "", "", "", 500}, + {58, "cooking", 1, "", "", "", "", "", "", "", "", "", 600}, + {59, "cooking", 1, "", "", "", "", "", "", "", "", "", 700}, + {60, "cooking", 1, "", "", "", "", "", "", "", "", "", 800}, + {61, "cooking", 1, "", "", "", "", "", "", "", "", "", 900}, + {62, "cooking", 1, "", "", "", "", "", "", "", "", "", 1000}, + {63, "cooking", 1, "", "", "", "", "", "", "", "", "", 1500}, + {64, "cooking", 1, "", "", "", "", "", "", "", "", "", 1000}, + {65, "cooking", 1, "", "", "", "", "", "", "", "", "", 1200}, + {66, "cooking", 1, "", "", "", "", "", "", "", "", "", 1400}, + {67, "cooking", 1, "", "", "", "", "", "", "", "", "", 1600}, + {68, "cooking", 1, "", "", "", "", "", "", "", "", "", 1800}, + {69, "cooking", 1, "", "", "", "", "", "", "", "", "", 2000}, + {70, "cooking", 1, "", "", "", "", "", "", "", "", "", 2500}, + {71, "normal", 5, "gems:ruby_block", "tutorial:thunder", "gems:sapphire_block", "gems:ruby_block", "", "gems:sapphire_block", "gems:ruby_block", "tutorial:thunder", "gems:sapphire_block", 0}, + {72, "normal", 5, "gems:amethyst_block", "tutorial:thunder", "gems:amethyst_block", "gems:amethyst_block", "", "gems:amethyst_block", "gems:amethyst_block", "tutorial:thunder", "gems:amethyst_block", 0}, + {73, "normal", 5, "gems:pearl_block", "tutorial:thunder", "gems:shadow_block", "gems:pearl_block", "", "gems:shadow_block", "gems:pearl_block", "tutorial:thunder", "gems:shadow_block", 0}, + {74, "normal", 5, "gems:emerald_block", "tutorial:thunder", "gems:emerald_block", "gems:emerald_block", "", "gems:emerald_block", "gems:emerald_block", "tutorial:thunder", "gems:emerald_block", 0}, + {75, "normal", 5, "tutorial:admin", "tutorial:thunder", "tutorial:admin", "tutorial:admin", "", "tutorial:admin", "tutorial:admin", "tutorial:thunder", "tutorial:admin", 0}, + {76, "cooking", 1, "", "", "", "", "", "", "", "", "", 200}, + {77, "cooking", 1, "", "", "", "", "", "", "", "", "", 400}, + {78, "cooking", 1, "", "", "", "", "", "", "", "", "", 600}, + {79, "cooking", 1, "", "", "", "", "", "", "", "", "", 800}, + {80, "cooking", 1, "", "", "", "", "", "", "", "", "", 1000}, + {81, "cooking", 1, "", "", "", "", "", "", "", "", "", 1200}, + {82, "cooking", 1, "", "", "", "", "", "", "", "", "", 1400}, + {83, "cooking", 1, "", "", "", "", "", "", "", "", "", 1600}, + {84, "cooking", 1, "", "", "", "", "", "", "", "", "", 1800}, + {85, "cooking", 1, "", "", "", "", "", "", "", "", "", 2000}, + {86, "cooking", 1, "", "", "", "", "", "", "", "", "", 2200}, + {87, "cooking", 1, "", "", "", "", "", "", "", "", "", 2400}, + {88, "cooking", 1, "", "", "", "", "", "", "", "", "", 2600}, + {89, "cooking", 1, "", "", "", "", "", "", "", "", "", 2800}, + {90, "cooking", 1, "", "", "", "", "", "", "", "", "", 3000}, + {91, "cooking", 1, "", "", "", "", "", "", "", "", "", 3200}, + {92, "cooking", 1, "", "", "", "", "", "", "", "", "", 3400}, + {93, "cooking", 1, "", "", "", "", "", "", "", "", "", 3600}, + {94, "cooking", 1, "", "", "", "", "", "", "", "", "", 3800}, + {95, "cooking", 1, "", "", "", "", "", "", "", "", "", 4000}, + {96, "cooking", 1, "", "", "", "", "", "", "", "", "", 4200}, + {97, "cooking", 1, "", "", "", "", "", "", "", "", "", 4400}, + {98, "cooking", 1, "", "", "", "", "", "", "", "", "", 4600}, + {99, "cooking", 1, "", "", "", "", "", "", "", "", "", 4800}, + {100, "cooking", 1, "", "", "", "", "", "", "", "", "", 5000}, + {101, "cooking", 1, "", "", "", "", "", "", "", "", "", 10000}, + {102, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0}, + {103, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0}, + {104, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0}, + {105, "normal", 5, "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", "tutorial:arena_block", 0}, + {106, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {107, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {108, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {109, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {110, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {111, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {112, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {113, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {114, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {115, "normal", 5, "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", "", "tutorial:titan", "tutorial:titan", "tutorial:titan", "tutorial:titan", 0}, + {116, "normal", 1, "tutorial:bottle5", "", "", "", "", "", "", "", "", 0}, + {117, "normal", 1, "tutorial:bottle7", "", "", "", "", "", "", "", "", 0}, + {118, "normal", 1, "tutorial:bottle9", "", "", "", "", "", "", "", "", 0}, + {119, "normal", 1, "tutorial:bottle11", "", "", "", "", "", "", "", "", 0}, + {120, "normal", 1, "tutorial:bottleS1", "", "", "", "", "", "", "", "", 0}, + {121, "normal", 1, "tutorial:bottleS3", "", "", "", "", "", "", "", "", 0}, + {122, "normal", 2, "tutorial:lilabattleaxe2", "", "", "", "", "", "", "", "", 0}, + {123, "normal", 0, "", "", "", "", "", "", "", "", "", 0}, + } + player_inv:set_size("recr", 1) + local re = player_inv:get_stack("recr", 1):get_count() + player_inv:set_size("recr2", 1) + local re2 = player_inv:get_stack("recr2", 1):get_count() + formspec = "size[16,12.5]" + .."button[0,0;2,0.5;zcg;Back]" + .."button[2,0;2,0.5;main;Main]" + .."background[16,12.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if re ~= 0 then + local pr = "" + if re2 == 0 then + pr = "regnum:battleaxe_" + elseif re2 == 1 then + pr = "regnum:helmet_" + elseif re2 == 2 then + pr = "regnum:chestplate_" + elseif re2 == 3 then + pr = "regnum:leggings_" + elseif re2 == 4 then + pr = "regnum:boots_" + elseif re2 == 5 then + pr = "regnum:shield_" + elseif re2 == 6 then + pr = "regnum:gun_" + end + if can ~= 1 then + if lv[re][1] > 115 and lv[re][1] ~= 122 and lv[re][1] ~= 123 then + formspec = formspec + .."item_image_button[5,0;1,1;"..pr..""..(lv[re][1]-1)..";;]" + .."item_image_button[6,0;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[7,0;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[8,0;1,1;"..lv[re][4]..";zcg:"..lv[re][4]..";]" + .."item_image_button[5,1;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[6,1;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[7,1;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[8,1;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[5,2;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[6,2;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[7,2;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[8,2;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[5,3;1,1;"..lv[re][4]..";zcg:"..lv[re][4]..";]" + .."item_image_button[6,3;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[7,3;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[8,3;1,1;default:grass_1;zcg:default:grass_1;]" + .."item_image_button[11,1;1,1;"..pr..""..lv[re][1]..";;]" + elseif lv[re][1] == 123 then + formspec = formspec + .."item_image_button[7,0;1,1;tutorial:regnum;zcg:tutorial:regnum;]" + .."item_image_button[7,1;1,1;tutorial:bottleSS;zcg:tutorial:bottleSS;]" + .."item_image_button[5,2;1,1;tutorial:regnum;zcg:tutorial:regnum;]" + .."item_image_button[6,2;1,1;tutorial:bottleSS;zcg:tutorial:bottleSS;]" + .."item_image_button[7,2;1,1;"..pr..""..(lv[re][1]-1)..";;]" + .."item_image_button[8,2;1,1;tutorial:bottleSS;zcg:tutorial:bottleSS;]" + .."item_image_button[9,2;1,1;tutorial:regnum;zcg:tutorial:regnum;]" + .."item_image_button[7,3;1,1;tutorial:bottleSS;zcg:tutorial:bottleSS;]" + .."item_image_button[7,4;1,1;tutorial:regnum;zcg:tutorial:regnum;]" + .."item_image_button[11,1;1,1;"..pr..""..lv[re][1]..";;]" + else + if lv[re][4] ~= "" or lv[re][3] == 1 then + if lv[re][3] == 1 then + formspec = formspec .."item_image_button[5,0;1,1;"..pr..""..(lv[re][1]-1)..";fia;]" + else + formspec = formspec .."item_image_button[5,0;1,1;"..lv[re][4]..";zcg:"..lv[re][4]..";]" + end + end + if lv[re][5] ~= "" or lv[re][3] == 2 then + if lv[re][3] == 2 then + formspec = formspec .."item_image_button[6,0;1,1;"..pr..""..(lv[re][1]-1)..";fib;]" + else + formspec = formspec .."item_image_button[6,0;1,1;"..lv[re][5]..";zcg:"..lv[re][5]..";]" + end + end + if lv[re][6] ~= "" or lv[re][3] == 3 then + if lv[re][3] == 3 then + formspec = formspec .."item_image_button[7,0;1,1;"..pr..""..(lv[re][1]-1)..";fic;]" + else + formspec = formspec .."item_image_button[7,0;1,1;"..lv[re][6]..";zcg:"..lv[re][6]..";]" + end + end + if lv[re][7] ~= "" or lv[re][3] == 4 then + if lv[re][3] == 4 then + formspec = formspec .."item_image_button[5,1;1,1;"..pr..""..(lv[re][1]-1)..";fid;]" + else + formspec = formspec .."item_image_button[5,1;1,1;"..lv[re][7]..";zcg:"..lv[re][7]..";]" + end + end + if lv[re][8] ~= "" or lv[re][3] == 5 then + if lv[re][3] == 5 then + formspec = formspec .."item_image_button[6,1;1,1;"..pr..""..(lv[re][1]-1)..";fie;]" + else + formspec = formspec .."item_image_button[6,1;1,1;"..lv[re][8]..";zcg:"..lv[re][8]..";]" + end + end + if lv[re][9] ~= "" or lv[re][3] == 6 then + if lv[re][3] == 6 then + formspec = formspec .."item_image_button[7,1;1,1;"..pr..""..(lv[re][1]-1)..";fif;]" + else + formspec = formspec .."item_image_button[7,1;1,1;"..lv[re][9]..";zcg:"..lv[re][9]..";]" + end + end + if lv[re][10] ~= "" or lv[re][3] == 7 then + if lv[re][3] == 7 then + formspec = formspec .."item_image_button[5,2;1,1;"..pr..""..(lv[re][1]-1)..";fig;]" + else + formspec = formspec .."item_image_button[5,2;1,1;"..lv[re][10]..";zcg:"..lv[re][10]..";]" + end + end + if lv[re][11] ~= "" or lv[re][3] == 8 then + if lv[re][3] == 8 then + formspec = formspec .."item_image_button[6,2;1,1;"..pr..""..(lv[re][1]-1)..";fih;]" + else + formspec = formspec .."item_image_button[6,2;1,1;"..lv[re][11]..";zcg:"..lv[re][11]..";]" + end + end + if lv[re][12] ~= "" or lv[re][3] == 9 then + if lv[re][3] == 9 then + formspec = formspec .."item_image_button[7,2;1,1;"..pr..""..(lv[re][1]-1)..";fii;]" + else + formspec = formspec .."item_image_button[7,2;1,1;"..lv[re][12]..";zcg:"..lv[re][12]..";]" + end + end + formspec = formspec .."item_image_button[11,1;1,1;"..pr..""..lv[re][1]..";;]" + end + formspec = formspec .."image[10,2;1,1;zcg_method_"..lv[re][2]..".png]" + .."image[10,1;1,1;zcg_craft_arrow.png]" + if lv[re][13] ~= 0 then + formspec = formspec .."label[10.1.4,2.7i;"..lv[re][13].."s]" + end + + end + end + formspec = formspec + .."item_image_button[0,1;1,1;regnum:battleaxe_0;reg1;]" + .."item_image_button[1,1;1,1;regnum:helmet_0;reg2;]" + .."item_image_button[2,1;1,1;regnum:chestplate_0;reg3;]" + .."item_image_button[0,2;1,1;regnum:leggings_0;reg4;]" + .."item_image_button[1,2;1,1;regnum:boots_0;reg5;]" + .."item_image_button[2,2;1,1;regnum:shield_0;reg6;]" + .."item_image_button[0,3;1,1;regnum:gun_0;reg7;]" + .."button[0,5;1,1;recrafta;1]" + .."button[1,5;1,1;recraftb;2]" + .."button[2,5;1,1;recraftc;3]" + .."button[3,5;1,1;recraftd;4]" + .."button[4,5;1,1;recrafte;5]" + .."button[5,5;1,1;recraftf;6]" + .."button[6,5;1,1;recraftg;7]" + .."button[7,5;1,1;recrafth;8]" + .."button[8,5;1,1;recrafti;9]" + .."button[9,5;1,1;recraftj;10]" + .."button[10,5;1,1;recraftk;11]" + .."button[11,5;1,1;recraftl;12]" + .."button[12,5;1,1;recraftm;13]" + .."button[13,5;1,1;recraftn;14]" + .."button[14,5;1,1;recrafto;15]" + .."button[15,5;1,1;recraftp;16]" + .."button[0,6;1,1;recraftq;17]" + .."button[1,6;1,1;recraftr;18]" + .."button[2,6;1,1;recrafts;19]" + .."button[3,6;1,1;recraftt;20]" + .."button[4,6;1,1;recraftaa;21]" + .."button[5,6;1,1;recraftab;22]" + .."button[6,6;1,1;recraftac;23]" + .."button[7,6;1,1;recraftad;24]" + .."button[8,6;1,1;recraftae;25]" + .."button[9,6;1,1;recraftaf;26]" + .."button[10,6;1,1;recraftag;27]" + .."button[11,6;1,1;recraftah;28]" + .."button[12,6;1,1;recraftai;29]" + .."button[13,6;1,1;recraftaj;30]" + .."button[14,6;1,1;recraftak;31]" + .."button[15,6;1,1;recraftal;32]" + .."button[0,7;1,1;recraftam;33]" + .."button[1,7;1,1;recraftan;34]" + .."button[2,7;1,1;recraftao;35]" + .."button[3,7;1,1;recraftap;36]" + .."button[4,7;1,1;recraftaq;37]" + .."button[5,7;1,1;recraftar;38]" + .."button[6,7;1,1;recraftas;39]" + .."button[7,7;1,1;recraftat;40]" + .."button[8,7;1,1;recraftau;41]" + .."button[9,7;1,1;recraftav;42]" + .."button[10,7;1,1;recraftaw;43]" + .."button[11,7;1,1;recraftax;44]" + .."button[12,7;1,1;recraftay;45]" + .."button[13,7;1,1;recraftba;46]" + .."button[14,7;1,1;recraftbb;47]" + .."button[15,7;1,1;recraftbc;48]" + .."button[0,8;1,1;recraftbd;49]" + .."button[1,8;1,1;recraftca;50]" + .."button[2,8;1,1;recraftcb;51]" + .."button[3,8;1,1;recraftda;52]" + .."button[4,8;1,1;recraftdb;53]" + .."button[5,8;1,1;recraftdc;54]" + .."button[6,8;1,1;recraftdd;55]" + .."button[7,8;1,1;recraftde;56]" + .."button[8,8;1,1;recraftdf;57]" + .."button[9,8;1,1;recraftdg;58]" + .."button[10,8;1,1;recraftdh;59]" + .."button[11,8;1,1;recraftdi;60]" + .."button[12,8;1,1;recraftdj;61]" + .."button[13,8;1,1;recraftdk;62]" + .."button[14,8;1,1;recraftdl;63]" + .."button[15,8;1,1;recraftea;64]" + .."button[0,9;1,1;recrafteb;65]" + .."button[1,9;1,1;recraftec;66]" + .."button[2,9;1,1;recrafted;67]" + .."button[3,9;1,1;recraftee;68]" + .."button[4,9;1,1;recraftef;69]" + .."button[5,9;1,1;recrafteg;70]" + .."button[6,9;1,1;recraftfa;71]" + .."button[7,9;1,1;recraftfb;72]" + .."button[8,9;1,1;recraftfc;73]" + .."button[9,9;1,1;recraftfd;74]" + .."button[10,9;1,1;recraftfe;75]" + .."button[11,9;1,1;recraftga;76]" + .."button[12,9;1,1;recraftgb;77]" + .."button[13,9;1,1;recraftgc;78]" + .."button[14,9;1,1;recraftgd;79]" + .."button[15,9;1,1;recraftge;80]" + .."button[0,10;1,1;recraftgf;81]" + .."button[1,10;1,1;recraftgg;82]" + .."button[2,10;1,1;recraftgh;83]" + .."button[3,10;1,1;recraftgi;84]" + .."button[4,10;1,1;recraftgj;85]" + .."button[5,10;1,1;recraftgk;86]" + .."button[6,10;1,1;recraftgl;87]" + .."button[7,10;1,1;recraftgm;88]" + .."button[8,10;1,1;recraftgn;89]" + .."button[9,10;1,1;recraftgo;90]" + .."button[10,10;1,1;recraftgp;91]" + .."button[11,10;1,1;recraftgq;92]" + .."button[12,10;1,1;recraftgr;93]" + .."button[13,10;1,1;recraftgs;94]" + .."button[14,10;1,1;recraftgt;95]" + .."button[15,10;1,1;recraftgu;96]" + .."button[0,11;1,1;recraftgv;97]" + .."button[1,11;1,1;recraftgw;98]" + .."button[2,11;1,1;recraftgx;99]" + .."button[3,11;1,1;recraftgy;100]" + .."button[4,11;1,1;recraftha;101]" + .."button[5,11;1,1;recraftia;102]" + .."button[6,11;1,1;recraftib;103]" + .."button[7,11;1,1;recraftic;104]" + .."button[8,11;1,1;recraftid;105]" + .."button[9,11;1,1;recraftja;106]" + .."button[10,11;1,1;recraftjb;107]" + .."button[11,11;1,1;recraftjc;108]" + .."button[12,11;1,1;recraftjd;109]" + .."button[13,11;1,1;recraftje;110]" + .."button[14,11;1,1;recraftjf;111]" + .."button[15,11;1,1;recraftjg;112]" + .."button[0,12;1,1;recraftjh;113]" + .."button[1,12;1,1;recraftji;114]" + .."button[2,12;1,1;recraftjj;115]" + .."button[3,12;1,1;recraftka;116]" + .."button[4,12;1,1;recraftkb;117]" + .."button[5,12;1,1;recraftkc;118]" + .."button[6,12;1,1;recraftkd;119]" + .."button[7,12;1,1;recraftke;120]" + .."button[8,12;1,1;recraftkf;121]" + .."button[9,12;1,1;recraftla;122]" + .."button[10,12;1,1;recraftma;MAX]" + return formspec +end +minetest.register_on_player_receive_fields(function(player, formname, fields) + if player == nil then + return + end + local player_inv = player:get_inventory() + if fields.artifacts then + inventory_plus.set_inventory_formspec(player, artifacts.get_formspec(player)) + end + if fields.crafting6 then + inventory_plus.set_inventory_formspec(player, crafting6.get_formspec(player)) + end + if fields.crafting7 then + inventory_plus.set_inventory_formspec(player, crafting7.get_formspec(player)) + end + if fields.crafting8 then + inventory_plus.set_inventory_formspec(player, crafting8.get_formspec(player)) + end + if fields.treasures then + inventory_plus.set_inventory_formspec(player, treasures.get_formspec(player)) + end + if fields.troph then + inventory_plus.set_inventory_formspec(player, troph.get_formspec(player)) + end + if fields.trophys then + inventory_plus.set_inventory_formspec(player, trophys.get_formspec(player)) + end + if fields.fuel then + local uran = player_inv:get_stack("uranin", 1):get_name() + local key = player_inv:get_stack("cookkey", 1):get_name() + fuel2 = 4 + if key == "tutorial:cooking_schluessel1" then + fuel2 = 5 + elseif key == "tutorial:cooking_schluessel2" then + fuel2 = 6 + elseif key == "tutorial:cooking_schluessel3" then + fuel2 = 7 + elseif key == "tutorial:cooking_schluessel4" then + fuel2 = 8 + end + local fuel = 0 + if uran == "tutorial:uranium1" then + fuel = fuel2 + elseif uran == "tutorial:uranium2" then + fuel = fuel2*2 + elseif uran == "tutorial:uranium3" then + fuel = fuel2*4 + elseif uran == "tutorial:uranium4" then + fuel = fuel2*8 + elseif uran == "tutorial:uranium5" then + fuel = fuel2*16 + elseif uran == "tutorial:uranium6" then + fuel = fuel2*32 + elseif uran == "tutorial:uranium7" then + fuel = fuel2*64 + elseif uran == "tutorial:uranium8" then + fuel = fuel2*128 + elseif uran == "tutorial:uranium9" then + fuel = fuel2*256 + end + if (player_inv:get_stack("fuel", 1):get_count()+fuel) > 60000 then + else + if fuel > 0 then + player_inv:set_stack("uranin", 1, uran.." "..(player_inv:get_stack("uranin", 1):get_count()-1)) + end + player_inv:set_stack("fuel", 1, "default:dirt "..(player_inv:get_stack("fuel", 1):get_count()+fuel)) + end + inventory_plus.set_inventory_formspec(player, crafting6.get_formspec(player)) + end + if fields.cook then + local count = player_inv:get_stack("cookin", 1):get_count() + local input = player_inv:get_stack("cookin", 1):get_name() + local time = minetest.get_craft_result({method="cooking", width=1, items={player_inv:get_stack("cookin", 1)}}).time + local output = minetest.get_craft_result({method="cooking", width=1, items={player_inv:get_stack("cookin", 1)}}) + for i=1,count do + if player_inv:room_for_item("main", output.item) and output.item:get_count() ~= 0 then + if (player_inv:get_stack("fuel", 1):get_count()-time) > -1 then + player_inv:set_stack("fuel", 1, "default:dirt "..(player_inv:get_stack("fuel", 1):get_count()-time)) + player_inv:add_item("main",output.item) + player_inv:set_stack("cookin", 1, input.." "..(player_inv:get_stack("cookin", 1):get_count()-1)) + end + end + end + inventory_plus.set_inventory_formspec(player, crafting6.get_formspec(player)) + end + if fields.trophcra then + local player_inv = player:get_inventory() + player_inv:set_size("trophcr", 1) + player_inv:set_size("tearred", 1) + player_inv:set_size("tearblue", 1) + player_inv:set_size("teargreen", 1) + player_inv:set_size("tearpurple", 1) + player_inv:set_size("tearyellow", 1) + player_inv:set_size("tearcyan", 1) + local name = player_inv:get_stack("trophcr", 1):get_name() + if name == "tutorial:red_tear" then + player_inv:remove_item("trophcr", "tutorial:red_tear") + player_inv:add_item("tearred", "tutorial:medallion") + end + if name == "tutorial:blue_tear" then + player_inv:remove_item("trophcr", "tutorial:blue_tear") + player_inv:add_item("tearblue", "tutorial:medallion") + end + if name == "tutorial:green_tear" then + player_inv:remove_item("trophcr", "tutorial:green_tear") + player_inv:add_item("teargreen", "tutorial:medallion") + end + if name == "tutorial:yellow_tear" then + player_inv:remove_item("trophcr", "tutorial:yellow_tear") + player_inv:add_item("tearyellow", "tutorial:medallion") + end + if name == "tutorial:purple_tear" then + player_inv:remove_item("trophcr", "tutorial:purple_tear") + player_inv:add_item("tearpurple", "tutorial:medallion") + end + if name == "tutorial:cyan_tear" then + player_inv:remove_item("trophcr", "tutorial:cyan_tear") + player_inv:add_item("tearcyan", "tutorial:medallion") + end + inventory_plus.set_inventory_formspec(player, troph.get_formspec(player)) + end + if fields.cre2 then + local player_inv = player:get_inventory() + player_inv:set_size("kri", 8) + local k = 0 + for i=1, 8 do + if not player_inv:get_stack("kri", i):is_empty() then + k = k+1 + end + end + + local time = 500-(k*50) + player_inv:set_stack("crtime", 1, "default:dirt") + player_inv:set_size("pixkey", 1) + local name = player_inv:get_stack("pixkey", 1):get_name() + if name == "tutorial:regnum_key_pixeled" then + time = time/2 + end + inventory_plus.set_inventory_formspec(player, crafting8.get_formspec(player)) + minetest.after(time, function() + if player == nil then + return + end + local player_inv = player:get_inventory() + if crafting8.get_formspec(player) == (player:get_inventory_formspec()) then + player_inv:set_stack("crtime", 1, nil) + player_inv:add_item("main", "tutorial:bottle_crystal") + inventory_plus.set_inventory_formspec(player, crafting8.get_formspec(player)) + end + end) + end + if fields.meda1 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medallion", 1) + player_inv:set_stack("medallion", 1, "default:dirt") + inventory_plus.set_inventory_formspec(player, meda.get_formspec(player)) + end + if fields.meda2 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medallion", 1) + player_inv:set_stack("medallion", 1, "default:dirt 2") + inventory_plus.set_inventory_formspec(player, meda.get_formspec(player)) + end + if fields.meda3 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medallion", 1) + player_inv:set_stack("medallion", 1, "default:dirt 3") + inventory_plus.set_inventory_formspec(player, meda.get_formspec(player)) + end + if fields.meda4 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medallion", 1) + player_inv:set_stack("medallion", 1, "default:dirt 4") + inventory_plus.set_inventory_formspec(player, meda.get_formspec(player)) + end + if fields.meda5 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medallion", 1) + player_inv:set_stack("medallion", 1, "default:dirt 5") + inventory_plus.set_inventory_formspec(player, meda.get_formspec(player)) + end + if fields.meda6 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medallion", 1) + player_inv:set_stack("medallion", 1, "default:dirt 6") + inventory_plus.set_inventory_formspec(player, meda.get_formspec(player)) + end + if fields.meda7 then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medallion", 1) + player_inv:set_stack("medallion", 1, "default:dirt 7") + inventory_plus.set_inventory_formspec(player, meda.get_formspec(player)) + end + if fields.mecraft then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medall", 1) + local medall = player_inv:get_stack("medall", 1):get_count() + local medall2 = player_inv:get_stack("medall", 1):get_name() + if medall > 0 and medall2 == "tutorial:medallion" then + player_inv:set_size("medall", 1) + local med = player_inv:get_stack("medallion", 1):get_count() + local x = "" + if med == 1 then + x = "red" + elseif med == 2 then + x = "blue" + elseif med == 3 then + x = "green" + elseif med == 4 then + x = "yellow" + elseif med == 5 then + x = "purple" + elseif med == 6 then + x = "cyan" + elseif med == 7 then + x = "gray" + end + local z = math.random(1,2) + if z == 2 then + local zz = math.random(1,9) + player_inv:set_size("medallion"..x, 9) + player_inv:set_stack("medallion"..x, zz, "default:dirt") + end + player_inv:remove_item("medall", "tutorial:medallion") + end + inventory_plus.set_inventory_formspec(player, meda.get_formspec(player)) + end + if fields.rg21 then + inventory_plus.set_inventory_formspec(player, rg21.get_formspec(player)) + end + if fields.rg22 then + inventory_plus.set_inventory_formspec(player, rg22.get_formspec(player)) + end + if fields.rg23 then + inventory_plus.set_inventory_formspec(player, rg23.get_formspec(player)) + end + if fields.rg24 then + inventory_plus.set_inventory_formspec(player, rg24.get_formspec(player)) + end + if fields.rg25 then + inventory_plus.set_inventory_formspec(player, rg25.get_formspec(player)) + end + if fields.medallion then + inventory_plus.set_inventory_formspec(player, medallion.get_formspec(player)) + end + if fields.artrew then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("artrew", 1) + local artrew = player_inv:get_stack("artrew", 1):get_count() + if artrew == 0 then + if player_inv:room_for_item("main", "tutorial:knight_schluessel") == true then + player_inv:add_item("main", "tutorial:knight_schluessel") + player_inv:add_item("artrew", "default:dirt") + end + end + end + if fields.trerew then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("trerew", 1) + local trerew = player_inv:get_stack("trerew", 1):get_count() + if trerew == 0 then + if player_inv:room_for_item("main", "tutorial:legendstick") == true then + player_inv:add_item("main", "tutorial:legendstick") + player_inv:add_item("trerew", "default:dirt") + end + end + end + if fields.medrew then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("medrew", 1) + local medrew = player_inv:get_stack("medrew", 1):get_count() + if medrew == 0 then + if player_inv:room_for_item("main", "tutorial:crystal_schluessel") == true then + player_inv:add_item("main", "tutorial:crystal_schluessel") + player_inv:add_item("medrew", "default:dirt") + end + end + end + if fields.trorew then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("trorew", 1) + local trorew = player_inv:get_stack("trorew", 1):get_count() + if trorew == 0 then + if player_inv:room_for_item("main", "tutorial:protection_schluessel1") == true then + player_inv:add_item("main", "tutorial:protection_schluessel1") + player_inv:add_item("trorew", "default:dirt") + end + end + end + if fields.colreward then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("colreward", 1) + local colreward = player_inv:get_stack("colreward", 1):get_count() + local tata = player_inv:get_stack("tata", 1):get_count() + local afaf = player_inv:get_stack("afaf", 1):get_count() + local trtr = player_inv:get_stack("trtr", 1):get_count() + local meme = player_inv:get_stack("meme", 1):get_count() + local rew = tata+afaf+trtr+meme + if rew == 108 then + if colreward == 0 then + if player_inv:room_for_item("main", "tutorial:colorstick_broken") == true then + player_inv:add_item("main", "tutorial:colorstick_broken") + player_inv:add_item("colreward", "default:dirt") + end + end + end + end + if fields.craftmine then + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("mine1", 1) + player_inv:set_size("mine2", 8) + local gem = player_inv:get_stack("gem0", 1):get_count() + local g1 = player_inv:get_stack("mine2", 1):get_name() + local g2 = player_inv:get_stack("mine2", 2):get_name() + local g3 = player_inv:get_stack("mine2", 3):get_name() + local g4 = player_inv:get_stack("mine2", 4):get_name() + local g5 = player_inv:get_stack("mine2", 5):get_name() + local g6 = player_inv:get_stack("mine2", 6):get_name() + local g7 = player_inv:get_stack("mine2", 7):get_name() + local g8 = player_inv:get_stack("mine2", 8):get_name() + local y1 = player_inv:get_stack("mine2", 1):get_count() + local y2 = player_inv:get_stack("mine2", 2):get_count() + local y3 = player_inv:get_stack("mine2", 3):get_count() + local y4 = player_inv:get_stack("mine2", 4):get_count() + local y5 = player_inv:get_stack("mine2", 5):get_count() + local y6 = player_inv:get_stack("mine2", 6):get_count() + local y7 = player_inv:get_stack("mine2", 7):get_count() + local y8 = player_inv:get_stack("mine2", 8):get_count() + local k = 0 + local d = 0 + if g1 == g2 and g2 == g3 and g3 == g4 and g4 == g5 and g5 == g6 and g6 == g7 and g7 == g8 then + if g1 == "tutorial:coin" then + k = k+1 + end + if g1 == "tutorial:coin2" then + k = k+2 + end + end + if k == 1 then + local p = 0 + for i = 1, 149 do + if player_inv:get_stack("mine1", 1):get_name() == "technic:laser_mkS"..i and p == 0 then + p = 1 + player_inv:set_stack("mine2", 1, "tutorial:coin "..(y1-1)) + player_inv:set_stack("mine2", 2, "tutorial:coin "..(y2-1)) + player_inv:set_stack("mine2", 3, "tutorial:coin "..(y3-1)) + player_inv:set_stack("mine2", 4, "tutorial:coin "..(y4-1)) + player_inv:set_stack("mine2", 5, "tutorial:coin "..(y5-1)) + player_inv:set_stack("mine2", 6, "tutorial:coin "..(y6-1)) + player_inv:set_stack("mine2", 7, "tutorial:coin "..(y7-1)) + player_inv:set_stack("mine2", 8, "tutorial:coin "..(y8-1)) + player_inv:set_stack("mine1", 1, "technic:laser_mkS"..(i+1)) + end + end + end + if k == 2 then + for i = 1, 149 do + local m = player_inv:get_stack("mine1", 1):get_name() + local p = 0 + if p == 0 and m == "technic:drill_mkS"..i.."_1" or m == "technic:drill_mkS"..i.."_2" or m == "technic:drill_mkS"..i.."_3" or m == "technic:drill_mkS"..i.."_4" or m == "technic:drill_mkS"..i.."_5" or m == "technic:drill_mkS"..i.."" then + p = 1 + player_inv:set_stack("mine2", 1, "tutorial:coin2 "..(y1-1)) + player_inv:set_stack("mine2", 2, "tutorial:coin2 "..(y2-1)) + player_inv:set_stack("mine2", 3, "tutorial:coin2 "..(y3-1)) + player_inv:set_stack("mine2", 4, "tutorial:coin2 "..(y4-1)) + player_inv:set_stack("mine2", 5, "tutorial:coin2 "..(y5-1)) + player_inv:set_stack("mine2", 6, "tutorial:coin2 "..(y6-1)) + player_inv:set_stack("mine2", 7, "tutorial:coin2 "..(y7-1)) + player_inv:set_stack("mine2", 8, "tutorial:coin2 "..(y8-1)) + player_inv:set_stack("mine1", 1, "technic:drill_mkS"..(i+1)) + end + end + end + inventory_plus.set_inventory_formspec(player, mine.get_formspec(player)) + end + if fields.xpi4 then + inventory_plus.set_inventory_formspec(player, xpi4.get_formspec(player)) + end + if fields.xpi5 then + inventory_plus.set_inventory_formspec(player, xpi5.get_formspec(player)) + end + if fields.mine then + inventory_plus.set_inventory_formspec(player, mine.get_formspec(player)) + end + if fields.recraft then + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.reg1 then + player_inv:set_size("recr2", 1) + player_inv:set_stack("recr2", 1, "") + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.reg2 then + player_inv:set_size("recr2", 1) + player_inv:set_stack("recr2", 1, "default:dirt "..1) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.reg3 then + player_inv:set_size("recr2", 2) + player_inv:set_stack("recr2", 1, "default:dirt "..2) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.reg4 then + player_inv:set_size("recr2", 2) + player_inv:set_stack("recr2", 1, "default:dirt "..3) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.reg5 then + player_inv:set_size("recr2", 2) + player_inv:set_stack("recr2", 1, "default:dirt "..4) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.reg6 then + player_inv:set_size("recr2", 2) + player_inv:set_stack("recr2", 1, "default:dirt "..5) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.reg7 then + player_inv:set_size("recr2", 2) + player_inv:set_stack("recr2", 1, "default:dirt "..6) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recrafta then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..1) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftb then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..2) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftc then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..3) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftd then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..4) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recrafte then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..5) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftf then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..6) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftg then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..7) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recrafth then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..8) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recrafti then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..9) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftj then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..10) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftk then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..11) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftl then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..12) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftm then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..13) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftn then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..14) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recrafto then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..15) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftp then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..16) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftq then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..17) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftr then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..18) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recrafts then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..19) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftt then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..20) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftaa then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..21) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftab then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..22) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftac then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..23) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftad then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..24) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftae then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..25) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftaf then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..26) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftag then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..27) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftah then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..28) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftai then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..29) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftaj then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..30) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftak then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..31) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftal then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..32) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftam then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..33) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftan then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..34) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftao then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..35) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftap then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..36) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftaq then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..37) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftar then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..38) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftas then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..39) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftat then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..40) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftau then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..41) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftav then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..42) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftaw then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..43) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftax then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..44) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftay then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..45) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftba then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..46) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftbb then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..47) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftbc then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..48) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftbd then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..49) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftca then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..50) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftcb then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..51) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftda then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..52) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdb then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..53) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdc then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..54) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdd then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..55) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftde then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..56) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdf then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..57) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdg then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..58) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdh then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..59) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdi then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..60) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdj then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..61) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdk then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..62) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftdl then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..63) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftea then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..64) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recrafteb then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..65) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftec then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..66) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recrafted then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..67) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftee then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..68) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftef then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..69) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recrafteg then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..70) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftfa then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..71) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftfb then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..72) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftfc then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..73) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftfd then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..74) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftfe then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..75) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftga then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..76) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgb then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..77) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgc then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..78) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgd then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..79) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftge then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..80) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgf then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..81) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgg then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..82) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgh then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..83) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgi then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..84) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgj then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..85) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgk then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..86) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgl then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..87) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgm then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..88) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgn then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..89) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgo then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..90) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgp then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..91) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgq then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..92) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgr then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..93) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgs then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..94) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgt then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..95) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgu then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..96) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgv then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..97) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgw then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..98) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgx then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..99) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftgy then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..100) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftha then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..101) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftia then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..102) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftib then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..103) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftic then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..104) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftid then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..105) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftja then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..106) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftjb then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..107) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftjc then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..108) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftjd then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..109) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftje then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..110) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftjf then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..111) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftjg then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..112) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftjh then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..113) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftji then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..114) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftjj then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..115) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftka then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..116) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftkb then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..117) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftkc then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..118) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftkd then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..119) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftke then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..120) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftkf then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..121) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftla then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..122) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end + if fields.recraftma then + player_inv:set_size("recr", 1) + player_inv:set_stack("recr", 1, "default:dirt "..123) + inventory_plus.set_inventory_formspec(player, recraft.get_formspec(player)) + end +end) +minetest.register_craft({ + output = 'tutorial:adminbattleaxe', + recipe = { + {'tutorial:adminbattleaxe3'}, + } +}) +minetest.register_tool("tutorial:adminbattleaxe3", { + description = "Admin tool 3: Admin battleaxe Mode 3. Only for hunting mobs", + inventory_image = "tutorial_adminbattleaxe.png^technic_tool_mode3.png", + wield_image = "tutorial_adminbattleaxe.png", + tool_capabilities = { + full_punch_interval = 2.0, + max_drop_level=1, + groupcaps={ + }, + damage_groups = {fleshy=4000} + }, + liquids_pointable = false, +}) +minetest.register_tool("tutorial:superlegendenbattleaxe3", { + description = "Superlegendbattleaxe Mode 3. Only for hunting mobs\nBattleaxe-lv.122", + inventory_image = "tutorial_superlegendenbattleaxe.png^technic_tool_mode3.png", + wield_image = "tutorial_superlegendenbattleaxe.png", + tool_capabilities = { + full_punch_interval = 2.0, + max_drop_level=1, + groupcaps={ + }, + damage_groups = {fleshy=244} + }, + liquids_pointable = false, +}) +minetest.register_craft({ + output = 'tutorial:superlegendenbattleaxe1', + recipe = { + {'tutorial:superlegendenbattleaxe3'}, + } +}) +minetest.register_craft({ + output = 'tutorial:regnumbattleaxe1', + recipe = { + {'tutorial:regnumbattleaxe3'}, + } +}) +minetest.register_tool("tutorial:regnumbattleaxe3", { + description = "Regnumbattleaxe Mode 3. Only for hunting mobs\nBattleaxe-lv.MAX", + inventory_image = "tutorial_regnumbattleaxe.png^technic_tool_mode3.png", + wield_image = "tutorial_regnumbattleaxe.png", + tool_capabilities = { + full_punch_interval = 2.0, + max_drop_level=1, + groupcaps={ + }, + damage_groups = {fleshy=150} + }, + liquids_pointable = false, +}) +minetest.register_craft({ + output = 'tutorial:bottleSS', + recipe = { + {'', 'tutorial:admin', ''}, + {'tutorial:admin', 'tutorial:bottleS3', 'tutorial:admin'}, + {'', 'tutorial:admin', ''}, + } +}) +minetest.register_node("tutorial:bottleSS", { + description = "Ultra magic bottle", + drawtype = "plantlike", + tiles = {"tutorial_bottleSS.png"}, + wield_image = "tutorial_bottleSS.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}, +}) \ No newline at end of file diff --git a/mods/tutorial/init_backup.lua b/mods/tutorial/init_backup.lua new file mode 100644 index 0000000..e58d2e3 --- /dev/null +++ b/mods/tutorial/init_backup.lua @@ -0,0 +1,251 @@ + +-- +-- Helper functions +-- + +local function get_sign(i) + if i == 0 then + return 0 + else + return i/math.abs(i) + end +end + +local function get_velocity(vx, vy, vz, yaw) + local x = math.cos(yaw)*vx+math.cos(math.pi/2+yaw)*vz + local z = math.sin(yaw)*vx+math.sin(math.pi/2+yaw)*vz + return {x=x, y=vy, z=z} +end + +local function get_v(v) + return math.sqrt(v.x^2+v.z^2) +end + +-- +-- Heli entity +-- + +local heli = { + physical = true, + collisionbox = {-1,-0.6,-1, 1,0.3,1}, + + --Just copy from lua api for test + collide_with_objects = true, + weight = 5, + + visual = "mesh", + mesh = "root.x", + --Player + driver = nil, + + --Heli mesh + model = nil, + + --In progress + motor = nil, + left = true, + timer=0, + + --Rotation + yaw=0, + + --Detect hit an object or node + prev_y=0, + + --Speeds + v = {x=0,y=0,z=0} + + +} +local heliModel = { + visual = "mesh", + mesh = "heli.x", + textures = {"blades.png","blades.png","heli.png","Glass.png"}, +} +local motor = { + physical = true, + collisionbox = {-2,0.5,-1, 1,1,1}, + visual = "mesh", + mesh = "motor.x", + textures = {"motor.png"}, + driver = nil, + left = true, + timer=0, + vx = 0,--Velo. for/back-ward + vy = 0,--Velo. up/down + vz = 0--Velo. side +} + +function heli: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() + self.model:set_animation({x=0,y=1},0, 0) + elseif not self.driver then + self.model:set_animation({x=0,y=10},10, 0) + self.driver = clicker + clicker:set_attach(self.object, "Root", {x=0,y=0,z=0}, {x=0,y=0,z=0}) + --self.object:setyaw(clicker:get_look_yaw()) + end +end + +function heli:on_activate(staticdata, dtime_s) + self.object:set_armor_groups({immortal=1}) + self.prev_y=self.object:getpos().y + if self.model == nil then + --if minetest.get_objects_inside_radius(self.object:getpos(), 1) + self.model=minetest.env:add_entity(self.object:getpos(), "tutorial:heliModel") + self.model:set_attach(self.object, "Root", {x=0,y=0,z=0}, {x=0,y=0,z=0}) + end + + if staticdata then + self.v = tonumber(staticdata) + end +end + +function heli:get_staticdata() + return tostring(v) +end + +function heli:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + if self.model ~= nil then + self.model:remove() + end + self.object:remove() + if puncher and puncher:is_player() then + --puncher:get_inventory():add_item("main", "helicopter:heli") + end +end +function heliModel:on_punch(puncher, time_from_last_punch, tool_capabilities, direction) + self.object:remove() +end +function heli:on_step(dtime) + --Prevent shaking heli while sitting in it + + + --Prevent multi heli control bug + if self.driver and ( math.abs(self.driver:getpos().x-self.object:getpos().x)>10*dtime or math.abs(self.driver:getpos().y-self.object:getpos().y)>10*dtime or math.abs(self.driver:getpos().z-self.object:getpos().z)>10*dtime) then + self.driver = nil + end + + if self.driver then + self.yaw = self.driver:get_look_yaw() + v = self.object:getvelocity() + local ctrl = self.driver:get_player_control() + --Forward/backward + if ctrl.up then + self.v.x = self.v.x + math.cos(self.driver:get_look_yaw())*0.1 + self.v.z = self.v.z + math.sin(self.driver:get_look_yaw())*0.1 + end + if ctrl.down then + self.v.x = self.v.x-math.cos(self.driver:get_look_yaw())*0.1 + self.v.z = self.v.z-math.sin(self.driver:get_look_yaw())*0.1 + end + --Left/right + if ctrl.left then + self.v.z = self.v.z+math.cos(self.driver:get_look_yaw())*0.1 + self.v.x = self.v.x+math.sin(math.pi+self.driver:get_look_yaw())*0.1 + end + if ctrl.right then + self.v.z = self.v.z-math.cos(self.driver:get_look_yaw())*0.1 + self.v.x = self.v.x-math.sin(math.pi+self.driver:get_look_yaw())*0.1 + end + --up/down + if ctrl.jump then + if self.v.y<1.5 then + self.v.y = self.v.y+0.2 + end + end + if ctrl.sneak then + if self.v.y>-1.5 then + self.v.y = self.v.y-0.2 + end + end + -- + --Speed limit + if math.abs(self.v.x) > 4.5 then + self.v.x = 4.5*get_sign(self.v.x) + end + if math.abs(self.v.z) > 4.5 then + self.v.z = 4.5*get_sign(self.v.z) + end + + end + + --Decelerating + local sx=get_sign(self.v.x) + self.v.x = self.v.x - 0.02*sx + local sz=get_sign(self.v.z) + self.v.z = self.v.z - 0.02*sz + local sy=get_sign(self.v.y) + self.v.y = self.v.y-0.01*sy + + --Stop + if sx ~= get_sign(self.v.x) then + self.v.x = 0 + end + if sz ~= get_sign(self.v.z) then + self.v.z = 0 + end + + + --Speed limit + if math.abs(self.v.x) > 4.5 then + self.v.x = 4.5*get_sign(self.v.x) + end + if math.abs(self.v.z) > 4.5 then + self.v.z = 4.5*get_sign(self.v.z) + end + if math.abs(self.v.y) > 4.5 then + self.v.z = 4.5*get_sign(self.v.z) + end + + --Set speed to entity + self.object:setvelocity({x=self.v.x, y=self.v.y,z=self.v.z}) + --Model rotation + --[[if self.driver then + self.model:set_attach(self.object,"Root", + {x=-(self.driver:getpos().x-self.object:getpos().x)*dtime, + y=-(self.driver:getpos().z-self.object:getpos().z)*dtime, + z=-(self.driver:getpos().y-self.object:getpos().y)*dtime}, { + x=-90+self.v.z*5*math.cos(self.yaw)-self.v.x*5*math.sin(self.yaw), + y=0-self.v.z*5*math.sin(self.yaw)-self.v.x*5*math.cos(self.yaw), + z=self.yaw*57}) + else]]-- + self.model:set_attach(self.object,"Root", {x=0,y=0,z=0}, { + x=-90+self.v.z*5*math.cos(self.yaw)-self.v.x*5*math.sin(self.yaw), + y=0-self.v.z*5*math.sin(self.yaw)-self.v.x*5*math.cos(self.yaw), + z=self.yaw*57}) + --end +end + +-- +--Registration +-- + +minetest.register_entity("tutorial:heli", heli) +minetest.register_entity("tutorial:heliModel", heliModel) +minetest.register_entity("tutorial:motor", motor) +--minetest.register_entity("helicopter:rocket", rocket) + +minetest.register_craftitem("tutorial:heli", { + description = "Helicopter", + inventory_image = "heli_inv.png", + wield_image = "heli_inv.png", + wield_scale = {x=1, y=1, z=1}, + liquids_pointable = false, + + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" then + return + end + pointed_thing.under.y = pointed_thing.under.y+1 + minetest.env:add_entity(pointed_thing.under, "tutorial:heli") + --minetest.env:add_entity(pointed_thing.under, "helicopter:motor") + --itemstack:take_item() + return itemstack + end, +}) diff --git a/mods/tutorial/models/Glasst.png b/mods/tutorial/models/Glasst.png new file mode 100644 index 0000000..629a61c Binary files /dev/null and b/mods/tutorial/models/Glasst.png differ diff --git a/mods/tutorial/models/bladest.png b/mods/tutorial/models/bladest.png new file mode 100644 index 0000000..3531e4c Binary files /dev/null and b/mods/tutorial/models/bladest.png differ diff --git a/mods/tutorial/models/fireballs_smokeball.x b/mods/tutorial/models/fireballs_smokeball.x new file mode 100644 index 0000000..87a32a2 --- /dev/null +++ b/mods/tutorial/models/fireballs_smokeball.x @@ -0,0 +1,7528 @@ +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 Sphere { + 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 { // Sphere mesh + 1984; + -0.707107; 0.000000;-0.707107;, + -0.831470; 0.000000;-0.555570;, + -0.815493; 0.162212;-0.555570;, + -0.693520; 0.137950;-0.707107;, + -0.923880; 0.000000;-0.382683;, + -0.980785; 0.000000;-0.195090;, + -0.961940; 0.191342;-0.195090;, + -0.906127; 0.180240;-0.382683;, + -1.000000; 0.000000; 0.000000;, + -0.980785; 0.000000; 0.195090;, + -0.961940; 0.191342; 0.195090;, + -0.980785; 0.195090; 0.000000;, + -0.923880; 0.000000; 0.382683;, + -0.831470; 0.000000; 0.555570;, + -0.815493; 0.162212; 0.555570;, + -0.906127; 0.180240; 0.382683;, + -0.707107; 0.000000; 0.707107;, + -0.555570; 0.000000; 0.831470;, + -0.544895; 0.108386; 0.831470;, + -0.693520; 0.137950; 0.707107;, + -0.195090; 0.000000;-0.980785;, + -0.382683; 0.000000;-0.923880;, + -0.375330; 0.074658;-0.923880;, + -0.191341; 0.038060;-0.980785;, + -0.382683; 0.000000; 0.923880;, + -0.195090; 0.000000; 0.980785;, + -0.191342; 0.038060; 0.980785;, + -0.375330; 0.074658; 0.923880;, + -0.555570; 0.000000;-0.831470;, + -0.707107; 0.000000;-0.707107;, + -0.693520; 0.137950;-0.707107;, + -0.544895; 0.108386;-0.831470;, + -0.831470; 0.000000;-0.555570;, + -0.923880; 0.000000;-0.382683;, + -0.906127; 0.180240;-0.382683;, + -0.815493; 0.162212;-0.555570;, + -0.980785; 0.000000;-0.195090;, + -1.000000; 0.000000; 0.000000;, + -0.980785; 0.195090; 0.000000;, + -0.961940; 0.191342;-0.195090;, + -0.980785; 0.000000; 0.195090;, + -0.923880; 0.000000; 0.382683;, + -0.906127; 0.180240; 0.382683;, + -0.961940; 0.191342; 0.195090;, + -0.831470; 0.000000; 0.555570;, + -0.707107; 0.000000; 0.707107;, + -0.693520; 0.137950; 0.707107;, + -0.815493; 0.162212; 0.555570;, + -0.555570; 0.000000; 0.831470;, + -0.382683; 0.000000; 0.923880;, + -0.375330; 0.074658; 0.923880;, + -0.544895; 0.108386; 0.831470;, + -0.382683; 0.000000;-0.923880;, + -0.555570; 0.000000;-0.831470;, + -0.544895; 0.108386;-0.831470;, + -0.375330; 0.074658;-0.923880;, + -0.961940; 0.191342; 0.195090;, + -0.906127; 0.180240; 0.382683;, + -0.853553; 0.353553; 0.382683;, + -0.906127; 0.375330; 0.195090;, + -0.815493; 0.162212; 0.555570;, + -0.693520; 0.137950; 0.707107;, + -0.653281; 0.270598; 0.707107;, + -0.768178; 0.318190; 0.555570;, + -0.544895; 0.108386; 0.831470;, + -0.375330; 0.074658; 0.923880;, + -0.353553; 0.146447; 0.923880;, + -0.513280; 0.212608; 0.831470;, + -0.375330; 0.074658;-0.923880;, + -0.544895; 0.108386;-0.831470;, + -0.513280; 0.212608;-0.831470;, + -0.353553; 0.146447;-0.923880;, + -0.693520; 0.137950;-0.707107;, + -0.815493; 0.162212;-0.555570;, + -0.768178; 0.318190;-0.555570;, + -0.653281; 0.270598;-0.707107;, + -0.906127; 0.180240;-0.382683;, + -0.961940; 0.191342;-0.195090;, + -0.906127; 0.375330;-0.195090;, + -0.853553; 0.353554;-0.382683;, + -0.980785; 0.195090; 0.000000;, + -0.961940; 0.191342; 0.195090;, + -0.906127; 0.375330; 0.195090;, + -0.923879; 0.382684; 0.000000;, + -0.906127; 0.180240; 0.382683;, + -0.815493; 0.162212; 0.555570;, + -0.768178; 0.318190; 0.555570;, + -0.853553; 0.353553; 0.382683;, + -0.693520; 0.137950; 0.707107;, + -0.544895; 0.108386; 0.831470;, + -0.513280; 0.212608; 0.831470;, + -0.653281; 0.270598; 0.707107;, + -0.191341; 0.038060;-0.980785;, + -0.375330; 0.074658;-0.923880;, + -0.353553; 0.146447;-0.923880;, + -0.180240; 0.074658;-0.980785;, + -0.375330; 0.074658; 0.923880;, + -0.191342; 0.038060; 0.980785;, + -0.180240; 0.074658; 0.980785;, + -0.353553; 0.146447; 0.923880;, + -0.544895; 0.108386;-0.831470;, + -0.693520; 0.137950;-0.707107;, + -0.653281; 0.270598;-0.707107;, + -0.513280; 0.212608;-0.831470;, + -0.815493; 0.162212;-0.555570;, + -0.906127; 0.180240;-0.382683;, + -0.853553; 0.353554;-0.382683;, + -0.768178; 0.318190;-0.555570;, + -0.961940; 0.191342;-0.195090;, + -0.980785; 0.195090; 0.000000;, + -0.923879; 0.382684; 0.000000;, + -0.906127; 0.375330;-0.195090;, + -0.906127; 0.375330; 0.195090;, + -0.853553; 0.353553; 0.382683;, + -0.768178; 0.513280; 0.382683;, + -0.815493; 0.544895; 0.195090;, + -0.768178; 0.318190; 0.555570;, + -0.653281; 0.270598; 0.707107;, + -0.587938; 0.392848; 0.707107;, + -0.691342; 0.461940; 0.555570;, + -0.513280; 0.212608; 0.831470;, + -0.353553; 0.146447; 0.923880;, + -0.318190; 0.212608; 0.923880;, + -0.461940; 0.308658; 0.831470;, + -0.353553; 0.146447;-0.923880;, + -0.513280; 0.212608;-0.831470;, + -0.461940; 0.308658;-0.831470;, + -0.318189; 0.212608;-0.923880;, + -0.653281; 0.270598;-0.707107;, + -0.768178; 0.318190;-0.555570;, + -0.691342; 0.461940;-0.555570;, + -0.587938; 0.392848;-0.707107;, + -0.853553; 0.353554;-0.382683;, + -0.906127; 0.375330;-0.195090;, + -0.815493; 0.544895;-0.195090;, + -0.768178; 0.513280;-0.382683;, + -0.923879; 0.382684; 0.000000;, + -0.906127; 0.375330; 0.195090;, + -0.815493; 0.544895; 0.195090;, + -0.831469; 0.555570; 0.000000;, + -0.853553; 0.353553; 0.382683;, + -0.768178; 0.318190; 0.555570;, + -0.691342; 0.461940; 0.555570;, + -0.768178; 0.513280; 0.382683;, + -0.653281; 0.270598; 0.707107;, + -0.513280; 0.212608; 0.831470;, + -0.461940; 0.308658; 0.831470;, + -0.587938; 0.392848; 0.707107;, + -0.180240; 0.074658;-0.980785;, + -0.353553; 0.146447;-0.923880;, + -0.318189; 0.212608;-0.923880;, + -0.162211; 0.108386;-0.980785;, + -0.353553; 0.146447; 0.923880;, + -0.180240; 0.074658; 0.980785;, + -0.162212; 0.108387; 0.980785;, + -0.318190; 0.212608; 0.923880;, + -0.513280; 0.212608;-0.831470;, + -0.653281; 0.270598;-0.707107;, + -0.587938; 0.392848;-0.707107;, + -0.461940; 0.308658;-0.831470;, + -0.768178; 0.318190;-0.555570;, + -0.853553; 0.353554;-0.382683;, + -0.768178; 0.513280;-0.382683;, + -0.691342; 0.461940;-0.555570;, + -0.906127; 0.375330;-0.195090;, + -0.923879; 0.382684; 0.000000;, + -0.831469; 0.555570; 0.000000;, + -0.815493; 0.544895;-0.195090;, + -0.815493; 0.544895; 0.195090;, + -0.768178; 0.513280; 0.382683;, + -0.653281; 0.653282; 0.382683;, + -0.693520; 0.693520; 0.195090;, + -0.691342; 0.461940; 0.555570;, + -0.587938; 0.392848; 0.707107;, + -0.500000; 0.500000; 0.707107;, + -0.587938; 0.587938; 0.555570;, + -0.461940; 0.308658; 0.831470;, + -0.318190; 0.212608; 0.923880;, + -0.270598; 0.270598; 0.923880;, + -0.392847; 0.392848; 0.831470;, + -0.318189; 0.212608;-0.923880;, + -0.461940; 0.308658;-0.831470;, + -0.392847; 0.392848;-0.831470;, + -0.270598; 0.270598;-0.923880;, + -0.587938; 0.392848;-0.707107;, + -0.691342; 0.461940;-0.555570;, + -0.587938; 0.587938;-0.555570;, + -0.500000; 0.500000;-0.707107;, + -0.768178; 0.513280;-0.382683;, + -0.815493; 0.544895;-0.195090;, + -0.693520; 0.693520;-0.195090;, + -0.653281; 0.653282;-0.382683;, + -0.831469; 0.555570; 0.000000;, + -0.815493; 0.544895; 0.195090;, + -0.693520; 0.693520; 0.195090;, + -0.707107; 0.707107; 0.000000;, + -0.768178; 0.513280; 0.382683;, + -0.691342; 0.461940; 0.555570;, + -0.587938; 0.587938; 0.555570;, + -0.653281; 0.653282; 0.382683;, + -0.587938; 0.392848; 0.707107;, + -0.461940; 0.308658; 0.831470;, + -0.392847; 0.392848; 0.831470;, + -0.500000; 0.500000; 0.707107;, + -0.162211; 0.108386;-0.980785;, + -0.318189; 0.212608;-0.923880;, + -0.270598; 0.270598;-0.923880;, + -0.137949; 0.137950;-0.980785;, + -0.318190; 0.212608; 0.923880;, + -0.162212; 0.108387; 0.980785;, + -0.137950; 0.137950; 0.980785;, + -0.270598; 0.270598; 0.923880;, + -0.461940; 0.308658;-0.831470;, + -0.587938; 0.392848;-0.707107;, + -0.500000; 0.500000;-0.707107;, + -0.392847; 0.392848;-0.831470;, + -0.691342; 0.461940;-0.555570;, + -0.768178; 0.513280;-0.382683;, + -0.653281; 0.653282;-0.382683;, + -0.587938; 0.587938;-0.555570;, + -0.815493; 0.544895;-0.195090;, + -0.831469; 0.555570; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.693520; 0.693520;-0.195090;, + -0.693520; 0.693520; 0.195090;, + -0.653281; 0.653282; 0.382683;, + -0.513280; 0.768178; 0.382683;, + -0.544895; 0.815493; 0.195090;, + -0.587938; 0.587938; 0.555570;, + -0.500000; 0.500000; 0.707107;, + -0.392847; 0.587938; 0.707107;, + -0.461940; 0.691342; 0.555570;, + -0.392847; 0.392848; 0.831470;, + -0.270598; 0.270598; 0.923880;, + -0.212607; 0.318190; 0.923880;, + -0.308658; 0.461940; 0.831470;, + -0.270598; 0.270598;-0.923880;, + -0.392847; 0.392848;-0.831470;, + -0.308658; 0.461940;-0.831470;, + -0.212607; 0.318190;-0.923880;, + -0.500000; 0.500000;-0.707107;, + -0.587938; 0.587938;-0.555570;, + -0.461940; 0.691342;-0.555570;, + -0.392847; 0.587938;-0.707107;, + -0.653281; 0.653282;-0.382683;, + -0.693520; 0.693520;-0.195090;, + -0.544895; 0.815493;-0.195090;, + -0.513280; 0.768178;-0.382683;, + -0.707107; 0.707107; 0.000000;, + -0.693520; 0.693520; 0.195090;, + -0.544895; 0.815493; 0.195090;, + -0.555570; 0.831470; 0.000000;, + -0.653281; 0.653282; 0.382683;, + -0.587938; 0.587938; 0.555570;, + -0.461940; 0.691342; 0.555570;, + -0.513280; 0.768178; 0.382683;, + -0.500000; 0.500000; 0.707107;, + -0.392847; 0.392848; 0.831470;, + -0.308658; 0.461940; 0.831470;, + -0.392847; 0.587938; 0.707107;, + -0.137949; 0.137950;-0.980785;, + -0.270598; 0.270598;-0.923880;, + -0.212607; 0.318190;-0.923880;, + -0.108386; 0.162212;-0.980785;, + -0.270598; 0.270598; 0.923880;, + -0.137950; 0.137950; 0.980785;, + -0.108386; 0.162212; 0.980785;, + -0.212607; 0.318190; 0.923880;, + -0.392847; 0.392848;-0.831470;, + -0.500000; 0.500000;-0.707107;, + -0.392847; 0.587938;-0.707107;, + -0.308658; 0.461940;-0.831470;, + -0.587938; 0.587938;-0.555570;, + -0.653281; 0.653282;-0.382683;, + -0.513280; 0.768178;-0.382683;, + -0.461940; 0.691342;-0.555570;, + -0.693520; 0.693520;-0.195090;, + -0.707107; 0.707107; 0.000000;, + -0.555570; 0.831470; 0.000000;, + -0.544895; 0.815493;-0.195090;, + -0.544895; 0.815493; 0.195090;, + -0.513280; 0.768178; 0.382683;, + -0.353553; 0.853554; 0.382683;, + -0.375330; 0.906128; 0.195090;, + -0.461940; 0.691342; 0.555570;, + -0.392847; 0.587938; 0.707107;, + -0.270598; 0.653282; 0.707107;, + -0.318189; 0.768178; 0.555570;, + -0.308658; 0.461940; 0.831470;, + -0.212607; 0.318190; 0.923880;, + -0.146446; 0.353554; 0.923880;, + -0.212607; 0.513280; 0.831470;, + -0.212607; 0.318190;-0.923880;, + -0.308658; 0.461940;-0.831470;, + -0.212607; 0.513280;-0.831470;, + -0.146446; 0.353554;-0.923880;, + -0.392847; 0.587938;-0.707107;, + -0.461940; 0.691342;-0.555570;, + -0.318189; 0.768178;-0.555570;, + -0.270598; 0.653282;-0.707107;, + -0.513280; 0.768178;-0.382683;, + -0.544895; 0.815493;-0.195090;, + -0.375330; 0.906128;-0.195090;, + -0.353553; 0.853554;-0.382683;, + -0.555570; 0.831470; 0.000000;, + -0.544895; 0.815493; 0.195090;, + -0.375330; 0.906128; 0.195090;, + -0.382683; 0.923880; 0.000000;, + -0.513280; 0.768178; 0.382683;, + -0.461940; 0.691342; 0.555570;, + -0.318189; 0.768178; 0.555570;, + -0.353553; 0.853554; 0.382683;, + -0.392847; 0.587938; 0.707107;, + -0.308658; 0.461940; 0.831470;, + -0.212607; 0.513280; 0.831470;, + -0.270598; 0.653282; 0.707107;, + -0.108386; 0.162212;-0.980785;, + -0.212607; 0.318190;-0.923880;, + -0.146446; 0.353554;-0.923880;, + -0.074658; 0.180240;-0.980785;, + -0.212607; 0.318190; 0.923880;, + -0.108386; 0.162212; 0.980785;, + -0.074658; 0.180240; 0.980785;, + -0.146446; 0.353554; 0.923880;, + -0.308658; 0.461940;-0.831470;, + -0.392847; 0.587938;-0.707107;, + -0.270598; 0.653282;-0.707107;, + -0.212607; 0.513280;-0.831470;, + -0.461940; 0.691342;-0.555570;, + -0.513280; 0.768178;-0.382683;, + -0.353553; 0.853554;-0.382683;, + -0.318189; 0.768178;-0.555570;, + -0.544895; 0.815493;-0.195090;, + -0.555570; 0.831470; 0.000000;, + -0.382683; 0.923880; 0.000000;, + -0.375330; 0.906128;-0.195090;, + -0.375330; 0.906128; 0.195090;, + -0.353553; 0.853554; 0.382683;, + -0.180240; 0.906128; 0.382683;, + -0.191341; 0.961940; 0.195090;, + -0.318189; 0.768178; 0.555570;, + -0.270598; 0.653282; 0.707107;, + -0.137949; 0.693520; 0.707107;, + -0.162211; 0.815493; 0.555570;, + -0.212607; 0.513280; 0.831470;, + -0.146446; 0.353554; 0.923880;, + -0.074658; 0.375331; 0.923880;, + -0.108386; 0.544895; 0.831470;, + -0.146446; 0.353554;-0.923880;, + -0.212607; 0.513280;-0.831470;, + -0.108386; 0.544895;-0.831470;, + -0.074658; 0.375330;-0.923880;, + -0.270598; 0.653282;-0.707107;, + -0.318189; 0.768178;-0.555570;, + -0.162211; 0.815493;-0.555570;, + -0.137949; 0.693520;-0.707107;, + -0.353553; 0.853554;-0.382683;, + -0.375330; 0.906128;-0.195090;, + -0.191341; 0.961940;-0.195090;, + -0.180240; 0.906128;-0.382683;, + -0.382683; 0.923880; 0.000000;, + -0.375330; 0.906128; 0.195090;, + -0.191341; 0.961940; 0.195090;, + -0.195090; 0.980785; 0.000000;, + -0.353553; 0.853554; 0.382683;, + -0.318189; 0.768178; 0.555570;, + -0.162211; 0.815493; 0.555570;, + -0.180240; 0.906128; 0.382683;, + -0.270598; 0.653282; 0.707107;, + -0.212607; 0.513280; 0.831470;, + -0.108386; 0.544895; 0.831470;, + -0.137949; 0.693520; 0.707107;, + -0.074658; 0.180240;-0.980785;, + -0.146446; 0.353554;-0.923880;, + -0.074658; 0.375330;-0.923880;, + -0.038060; 0.191342;-0.980785;, + -0.146446; 0.353554; 0.923880;, + -0.074658; 0.180240; 0.980785;, + -0.038060; 0.191342; 0.980785;, + -0.074658; 0.375331; 0.923880;, + -0.212607; 0.513280;-0.831470;, + -0.270598; 0.653282;-0.707107;, + -0.137949; 0.693520;-0.707107;, + -0.108386; 0.544895;-0.831470;, + -0.318189; 0.768178;-0.555570;, + -0.353553; 0.853554;-0.382683;, + -0.180240; 0.906128;-0.382683;, + -0.162211; 0.815493;-0.555570;, + -0.375330; 0.906128;-0.195090;, + -0.382683; 0.923880; 0.000000;, + -0.195090; 0.980785; 0.000000;, + -0.191341; 0.961940;-0.195090;, + -0.191341; 0.961940; 0.195090;, + -0.180240; 0.906128; 0.382683;, + 0.000000; 0.923880; 0.382683;, + 0.000000; 0.980785; 0.195090;, + -0.162211; 0.815493; 0.555570;, + -0.137949; 0.693520; 0.707107;, + 0.000000; 0.707107; 0.707107;, + 0.000000; 0.831470; 0.555570;, + -0.108386; 0.544895; 0.831470;, + -0.074658; 0.375331; 0.923880;, + 0.000000; 0.382684; 0.923880;, + 0.000000; 0.555570; 0.831470;, + -0.074658; 0.375330;-0.923880;, + -0.108386; 0.544895;-0.831470;, + 0.000000; 0.555570;-0.831470;, + 0.000000; 0.382684;-0.923880;, + -0.137949; 0.693520;-0.707107;, + -0.162211; 0.815493;-0.555570;, + 0.000000; 0.831470;-0.555570;, + 0.000000; 0.707107;-0.707107;, + -0.180240; 0.906128;-0.382683;, + -0.191341; 0.961940;-0.195090;, + 0.000000; 0.980785;-0.195090;, + 0.000000; 0.923880;-0.382683;, + -0.195090; 0.980785; 0.000000;, + -0.191341; 0.961940; 0.195090;, + 0.000000; 0.980785; 0.195090;, + 0.000000; 1.000000; 0.000000;, + -0.180240; 0.906128; 0.382683;, + -0.162211; 0.815493; 0.555570;, + 0.000000; 0.831470; 0.555570;, + 0.000000; 0.923880; 0.382683;, + -0.137949; 0.693520; 0.707107;, + -0.108386; 0.544895; 0.831470;, + 0.000000; 0.555570; 0.831470;, + 0.000000; 0.707107; 0.707107;, + -0.038060; 0.191342;-0.980785;, + -0.074658; 0.375330;-0.923880;, + 0.000000; 0.382684;-0.923880;, + 0.000000; 0.195090;-0.980785;, + -0.074658; 0.375331; 0.923880;, + -0.038060; 0.191342; 0.980785;, + 0.000000; 0.195091; 0.980785;, + 0.000000; 0.382684; 0.923880;, + -0.108386; 0.544895;-0.831470;, + -0.137949; 0.693520;-0.707107;, + 0.000000; 0.707107;-0.707107;, + 0.000000; 0.555570;-0.831470;, + -0.162211; 0.815493;-0.555570;, + -0.180240; 0.906128;-0.382683;, + 0.000000; 0.923880;-0.382683;, + 0.000000; 0.831470;-0.555570;, + -0.191341; 0.961940;-0.195090;, + -0.195090; 0.980785; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.980785;-0.195090;, + 0.000000; 0.980785; 0.195090;, + 0.000000; 0.923880; 0.382683;, + 0.180240; 0.906128; 0.382683;, + 0.191342; 0.961940; 0.195090;, + 0.000000; 0.831470; 0.555570;, + 0.000000; 0.707107; 0.707107;, + 0.137950; 0.693520; 0.707107;, + 0.162212; 0.815493; 0.555570;, + 0.000000; 0.555570; 0.831470;, + 0.000000; 0.382684; 0.923880;, + 0.074658; 0.375331; 0.923880;, + 0.108387; 0.544895; 0.831470;, + 0.000000; 0.382684;-0.923880;, + 0.000000; 0.555570;-0.831470;, + 0.108387; 0.544895;-0.831470;, + 0.074658; 0.375330;-0.923880;, + 0.000000; 0.707107;-0.707107;, + 0.000000; 0.831470;-0.555570;, + 0.162212; 0.815493;-0.555570;, + 0.137950; 0.693520;-0.707107;, + 0.000000; 0.923880;-0.382683;, + 0.000000; 0.980785;-0.195090;, + 0.191342; 0.961940;-0.195090;, + 0.180240; 0.906128;-0.382683;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.980785; 0.195090;, + 0.191342; 0.961940; 0.195090;, + 0.195091; 0.980785; 0.000000;, + 0.000000; 0.923880; 0.382683;, + 0.000000; 0.831470; 0.555570;, + 0.162212; 0.815493; 0.555570;, + 0.180240; 0.906128; 0.382683;, + 0.000000; 0.707107; 0.707107;, + 0.000000; 0.555570; 0.831470;, + 0.108387; 0.544895; 0.831470;, + 0.137950; 0.693520; 0.707107;, + 0.000000; 0.195090;-0.980785;, + 0.000000; 0.382684;-0.923880;, + 0.074658; 0.375330;-0.923880;, + 0.038061; 0.191342;-0.980785;, + 0.000000; 0.382684; 0.923880;, + 0.000000; 0.195091; 0.980785;, + 0.038061; 0.191342; 0.980785;, + 0.074658; 0.375331; 0.923880;, + 0.000000; 0.555570;-0.831470;, + 0.000000; 0.707107;-0.707107;, + 0.137950; 0.693520;-0.707107;, + 0.108387; 0.544895;-0.831470;, + 0.000000; 0.831470;-0.555570;, + 0.000000; 0.923880;-0.382683;, + 0.180240; 0.906128;-0.382683;, + 0.162212; 0.815493;-0.555570;, + 0.000000; 0.980785;-0.195090;, + 0.000000; 1.000000; 0.000000;, + 0.195091; 0.980785; 0.000000;, + 0.191342; 0.961940;-0.195090;, + 0.191342; 0.961940; 0.195090;, + 0.180240; 0.906128; 0.382683;, + 0.353554; 0.853554; 0.382683;, + 0.375331; 0.906127; 0.195090;, + 0.162212; 0.815493; 0.555570;, + 0.137950; 0.693520; 0.707107;, + 0.270598; 0.653282; 0.707107;, + 0.318190; 0.768178; 0.555570;, + 0.108387; 0.544895; 0.831470;, + 0.074658; 0.375331; 0.923880;, + 0.146447; 0.353554; 0.923880;, + 0.212608; 0.513280; 0.831470;, + 0.074658; 0.375330;-0.923880;, + 0.108387; 0.544895;-0.831470;, + 0.212608; 0.513280;-0.831470;, + 0.146447; 0.353553;-0.923880;, + 0.137950; 0.693520;-0.707107;, + 0.162212; 0.815493;-0.555570;, + 0.318190; 0.768178;-0.555570;, + 0.270598; 0.653282;-0.707107;, + 0.180240; 0.906128;-0.382683;, + 0.191342; 0.961940;-0.195090;, + 0.375331; 0.906127;-0.195090;, + 0.353554; 0.853554;-0.382683;, + 0.195091; 0.980785; 0.000000;, + 0.191342; 0.961940; 0.195090;, + 0.375331; 0.906127; 0.195090;, + 0.382684; 0.923880; 0.000000;, + 0.180240; 0.906128; 0.382683;, + 0.162212; 0.815493; 0.555570;, + 0.318190; 0.768178; 0.555570;, + 0.353554; 0.853554; 0.382683;, + 0.137950; 0.693520; 0.707107;, + 0.108387; 0.544895; 0.831470;, + 0.212608; 0.513280; 0.831470;, + 0.270598; 0.653282; 0.707107;, + 0.038061; 0.191342;-0.980785;, + 0.074658; 0.375330;-0.923880;, + 0.146447; 0.353553;-0.923880;, + 0.074658; 0.180240;-0.980785;, + 0.074658; 0.375331; 0.923880;, + 0.038061; 0.191342; 0.980785;, + 0.074658; 0.180240; 0.980785;, + 0.146447; 0.353554; 0.923880;, + 0.108387; 0.544895;-0.831470;, + 0.137950; 0.693520;-0.707107;, + 0.270598; 0.653282;-0.707107;, + 0.212608; 0.513280;-0.831470;, + 0.162212; 0.815493;-0.555570;, + 0.180240; 0.906128;-0.382683;, + 0.353554; 0.853554;-0.382683;, + 0.318190; 0.768178;-0.555570;, + 0.191342; 0.961940;-0.195090;, + 0.195091; 0.980785; 0.000000;, + 0.382684; 0.923880; 0.000000;, + 0.375331; 0.906127;-0.195090;, + 0.375331; 0.906127; 0.195090;, + 0.353554; 0.853554; 0.382683;, + 0.513280; 0.768178; 0.382683;, + 0.544895; 0.815493; 0.195090;, + 0.318190; 0.768178; 0.555570;, + 0.270598; 0.653282; 0.707107;, + 0.392848; 0.587938; 0.707107;, + 0.461940; 0.691342; 0.555570;, + 0.212608; 0.513280; 0.831470;, + 0.146447; 0.353554; 0.923880;, + 0.212608; 0.318190; 0.923880;, + 0.308659; 0.461940; 0.831470;, + 0.146447; 0.353553;-0.923880;, + 0.212608; 0.513280;-0.831470;, + 0.308659; 0.461940;-0.831470;, + 0.212608; 0.318190;-0.923880;, + 0.270598; 0.653282;-0.707107;, + 0.318190; 0.768178;-0.555570;, + 0.461940; 0.691342;-0.555570;, + 0.392848; 0.587938;-0.707107;, + 0.353554; 0.853554;-0.382683;, + 0.375331; 0.906127;-0.195090;, + 0.544895; 0.815493;-0.195090;, + 0.513280; 0.768178;-0.382683;, + 0.382684; 0.923880; 0.000000;, + 0.375331; 0.906127; 0.195090;, + 0.544895; 0.815493; 0.195090;, + 0.555571; 0.831470; 0.000000;, + 0.353554; 0.853554; 0.382683;, + 0.318190; 0.768178; 0.555570;, + 0.461940; 0.691342; 0.555570;, + 0.513280; 0.768178; 0.382683;, + 0.270598; 0.653282; 0.707107;, + 0.212608; 0.513280; 0.831470;, + 0.308659; 0.461940; 0.831470;, + 0.392848; 0.587938; 0.707107;, + 0.074658; 0.180240;-0.980785;, + 0.146447; 0.353553;-0.923880;, + 0.212608; 0.318190;-0.923880;, + 0.108387; 0.162212;-0.980785;, + 0.146447; 0.353554; 0.923880;, + 0.074658; 0.180240; 0.980785;, + 0.108387; 0.162212; 0.980785;, + 0.212608; 0.318190; 0.923880;, + 0.212608; 0.513280;-0.831470;, + 0.270598; 0.653282;-0.707107;, + 0.392848; 0.587938;-0.707107;, + 0.308659; 0.461940;-0.831470;, + 0.318190; 0.768178;-0.555570;, + 0.353554; 0.853554;-0.382683;, + 0.513280; 0.768178;-0.382683;, + 0.461940; 0.691342;-0.555570;, + 0.375331; 0.906127;-0.195090;, + 0.382684; 0.923880; 0.000000;, + 0.555571; 0.831470; 0.000000;, + 0.544895; 0.815493;-0.195090;, + 0.544895; 0.815493; 0.195090;, + 0.513280; 0.768178; 0.382683;, + 0.653282; 0.653282; 0.382683;, + 0.693520; 0.693520; 0.195090;, + 0.461940; 0.691342; 0.555570;, + 0.392848; 0.587938; 0.707107;, + 0.500000; 0.500000; 0.707107;, + 0.587938; 0.587938; 0.555570;, + 0.308659; 0.461940; 0.831470;, + 0.212608; 0.318190; 0.923880;, + 0.270599; 0.270598; 0.923880;, + 0.392848; 0.392848; 0.831470;, + 0.212608; 0.318190;-0.923880;, + 0.308659; 0.461940;-0.831470;, + 0.392848; 0.392848;-0.831470;, + 0.270598; 0.270598;-0.923880;, + 0.392848; 0.587938;-0.707107;, + 0.461940; 0.691342;-0.555570;, + 0.587938; 0.587938;-0.555570;, + 0.500000; 0.500000;-0.707107;, + 0.513280; 0.768178;-0.382683;, + 0.544895; 0.815493;-0.195090;, + 0.693520; 0.693520;-0.195090;, + 0.653282; 0.653282;-0.382683;, + 0.555571; 0.831470; 0.000000;, + 0.544895; 0.815493; 0.195090;, + 0.693520; 0.693520; 0.195090;, + 0.707107; 0.707107; 0.000000;, + 0.513280; 0.768178; 0.382683;, + 0.461940; 0.691342; 0.555570;, + 0.587938; 0.587938; 0.555570;, + 0.653282; 0.653282; 0.382683;, + 0.392848; 0.587938; 0.707107;, + 0.308659; 0.461940; 0.831470;, + 0.392848; 0.392848; 0.831470;, + 0.500000; 0.500000; 0.707107;, + 0.108387; 0.162212;-0.980785;, + 0.212608; 0.318190;-0.923880;, + 0.270598; 0.270598;-0.923880;, + 0.137950; 0.137950;-0.980785;, + 0.212608; 0.318190; 0.923880;, + 0.108387; 0.162212; 0.980785;, + 0.137950; 0.137950; 0.980785;, + 0.270599; 0.270598; 0.923880;, + 0.308659; 0.461940;-0.831470;, + 0.392848; 0.587938;-0.707107;, + 0.500000; 0.500000;-0.707107;, + 0.392848; 0.392848;-0.831470;, + 0.461940; 0.691342;-0.555570;, + 0.513280; 0.768178;-0.382683;, + 0.653282; 0.653282;-0.382683;, + 0.587938; 0.587938;-0.555570;, + 0.544895; 0.815493;-0.195090;, + 0.555571; 0.831470; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.693520; 0.693520;-0.195090;, + 0.693520; 0.693520; 0.195090;, + 0.653282; 0.653282; 0.382683;, + 0.768178; 0.513280; 0.382683;, + 0.815493; 0.544895; 0.195090;, + 0.587938; 0.587938; 0.555570;, + 0.500000; 0.500000; 0.707107;, + 0.587938; 0.392848; 0.707107;, + 0.691342; 0.461940; 0.555570;, + 0.392848; 0.392848; 0.831470;, + 0.270599; 0.270598; 0.923880;, + 0.318190; 0.212608; 0.923880;, + 0.461940; 0.308658; 0.831470;, + 0.270598; 0.270598;-0.923880;, + 0.392848; 0.392848;-0.831470;, + 0.461940; 0.308658;-0.831470;, + 0.318190; 0.212608;-0.923880;, + 0.500000; 0.500000;-0.707107;, + 0.587938; 0.587938;-0.555570;, + 0.691342; 0.461940;-0.555570;, + 0.587938; 0.392848;-0.707107;, + 0.653282; 0.653282;-0.382683;, + 0.693520; 0.693520;-0.195090;, + 0.815493; 0.544895;-0.195090;, + 0.768178; 0.513280;-0.382683;, + 0.707107; 0.707107; 0.000000;, + 0.693520; 0.693520; 0.195090;, + 0.815493; 0.544895; 0.195090;, + 0.831470; 0.555570; 0.000000;, + 0.653282; 0.653282; 0.382683;, + 0.587938; 0.587938; 0.555570;, + 0.691342; 0.461940; 0.555570;, + 0.768178; 0.513280; 0.382683;, + 0.500000; 0.500000; 0.707107;, + 0.392848; 0.392848; 0.831470;, + 0.461940; 0.308658; 0.831470;, + 0.587938; 0.392848; 0.707107;, + 0.137950; 0.137950;-0.980785;, + 0.270598; 0.270598;-0.923880;, + 0.318190; 0.212608;-0.923880;, + 0.162212; 0.108386;-0.980785;, + 0.270599; 0.270598; 0.923880;, + 0.137950; 0.137950; 0.980785;, + 0.162212; 0.108386; 0.980785;, + 0.318190; 0.212608; 0.923880;, + 0.392848; 0.392848;-0.831470;, + 0.500000; 0.500000;-0.707107;, + 0.587938; 0.392848;-0.707107;, + 0.461940; 0.308658;-0.831470;, + 0.587938; 0.587938;-0.555570;, + 0.653282; 0.653282;-0.382683;, + 0.768178; 0.513280;-0.382683;, + 0.691342; 0.461940;-0.555570;, + 0.693520; 0.693520;-0.195090;, + 0.707107; 0.707107; 0.000000;, + 0.831470; 0.555570; 0.000000;, + 0.815493; 0.544895;-0.195090;, + 0.815493; 0.544895; 0.195090;, + 0.768178; 0.513280; 0.382683;, + 0.853554; 0.353553; 0.382683;, + 0.906128; 0.375330; 0.195090;, + 0.691342; 0.461940; 0.555570;, + 0.587938; 0.392848; 0.707107;, + 0.653282; 0.270598; 0.707107;, + 0.768178; 0.318190; 0.555570;, + 0.461940; 0.308658; 0.831470;, + 0.318190; 0.212608; 0.923880;, + 0.353554; 0.146447; 0.923880;, + 0.513280; 0.212608; 0.831470;, + 0.318190; 0.212608;-0.923880;, + 0.461940; 0.308658;-0.831470;, + 0.513280; 0.212608;-0.831470;, + 0.353554; 0.146447;-0.923880;, + 0.587938; 0.392848;-0.707107;, + 0.691342; 0.461940;-0.555570;, + 0.768178; 0.318190;-0.555570;, + 0.653282; 0.270598;-0.707107;, + 0.768178; 0.513280;-0.382683;, + 0.815493; 0.544895;-0.195090;, + 0.906128; 0.375330;-0.195090;, + 0.853554; 0.353553;-0.382683;, + 0.831470; 0.555570; 0.000000;, + 0.815493; 0.544895; 0.195090;, + 0.906128; 0.375330; 0.195090;, + 0.923880; 0.382683; 0.000000;, + 0.768178; 0.513280; 0.382683;, + 0.691342; 0.461940; 0.555570;, + 0.768178; 0.318190; 0.555570;, + 0.853554; 0.353553; 0.382683;, + 0.587938; 0.392848; 0.707107;, + 0.461940; 0.308658; 0.831470;, + 0.513280; 0.212608; 0.831470;, + 0.653282; 0.270598; 0.707107;, + 0.162212; 0.108386;-0.980785;, + 0.318190; 0.212608;-0.923880;, + 0.353554; 0.146447;-0.923880;, + 0.180240; 0.074658;-0.980785;, + 0.318190; 0.212608; 0.923880;, + 0.162212; 0.108386; 0.980785;, + 0.180240; 0.074658; 0.980785;, + 0.353554; 0.146447; 0.923880;, + 0.461940; 0.308658;-0.831470;, + 0.587938; 0.392848;-0.707107;, + 0.653282; 0.270598;-0.707107;, + 0.513280; 0.212608;-0.831470;, + 0.691342; 0.461940;-0.555570;, + 0.768178; 0.513280;-0.382683;, + 0.853554; 0.353553;-0.382683;, + 0.768178; 0.318190;-0.555570;, + 0.815493; 0.544895;-0.195090;, + 0.831470; 0.555570; 0.000000;, + 0.923880; 0.382683; 0.000000;, + 0.906128; 0.375330;-0.195090;, + 0.906128; 0.375330; 0.195090;, + 0.853554; 0.353553; 0.382683;, + 0.906128; 0.180240; 0.382683;, + 0.961940; 0.191342; 0.195090;, + 0.768178; 0.318190; 0.555570;, + 0.653282; 0.270598; 0.707107;, + 0.693520; 0.137950; 0.707107;, + 0.815493; 0.162212; 0.555570;, + 0.513280; 0.212608; 0.831470;, + 0.353554; 0.146447; 0.923880;, + 0.375331; 0.074658; 0.923880;, + 0.544896; 0.108386; 0.831470;, + 0.353554; 0.146447;-0.923880;, + 0.513280; 0.212608;-0.831470;, + 0.544895; 0.108386;-0.831470;, + 0.375331; 0.074658;-0.923880;, + 0.653282; 0.270598;-0.707107;, + 0.768178; 0.318190;-0.555570;, + 0.815493; 0.162212;-0.555570;, + 0.693520; 0.137950;-0.707107;, + 0.853554; 0.353553;-0.382683;, + 0.906128; 0.375330;-0.195090;, + 0.961940; 0.191342;-0.195090;, + 0.906128; 0.180240;-0.382683;, + 0.923880; 0.382683; 0.000000;, + 0.906128; 0.375330; 0.195090;, + 0.961940; 0.191342; 0.195090;, + 0.980786; 0.195090; 0.000000;, + 0.853554; 0.353553; 0.382683;, + 0.768178; 0.318190; 0.555570;, + 0.815493; 0.162212; 0.555570;, + 0.906128; 0.180240; 0.382683;, + 0.653282; 0.270598; 0.707107;, + 0.513280; 0.212608; 0.831470;, + 0.544896; 0.108386; 0.831470;, + 0.693520; 0.137950; 0.707107;, + 0.180240; 0.074658;-0.980785;, + 0.353554; 0.146447;-0.923880;, + 0.375331; 0.074658;-0.923880;, + 0.191342; 0.038060;-0.980785;, + 0.353554; 0.146447; 0.923880;, + 0.180240; 0.074658; 0.980785;, + 0.191342; 0.038060; 0.980785;, + 0.375331; 0.074658; 0.923880;, + 0.513280; 0.212608;-0.831470;, + 0.653282; 0.270598;-0.707107;, + 0.693520; 0.137950;-0.707107;, + 0.544895; 0.108386;-0.831470;, + 0.768178; 0.318190;-0.555570;, + 0.853554; 0.353553;-0.382683;, + 0.906128; 0.180240;-0.382683;, + 0.815493; 0.162212;-0.555570;, + 0.906128; 0.375330;-0.195090;, + 0.923880; 0.382683; 0.000000;, + 0.980786; 0.195090; 0.000000;, + 0.961940; 0.191342;-0.195090;, + 0.961940; 0.191342; 0.195090;, + 0.906128; 0.180240; 0.382683;, + 0.923880; 0.000000; 0.382683;, + 0.980785;-0.000000; 0.195090;, + 0.815493; 0.162212; 0.555570;, + 0.693520; 0.137950; 0.707107;, + 0.707107;-0.000000; 0.707107;, + 0.831470;-0.000000; 0.555570;, + 0.544896; 0.108386; 0.831470;, + 0.375331; 0.074658; 0.923880;, + 0.382684; 0.000000; 0.923880;, + 0.555571; 0.000000; 0.831470;, + 0.375331; 0.074658;-0.923880;, + 0.544895; 0.108386;-0.831470;, + 0.555570;-0.000000;-0.831470;, + 0.382684; 0.000000;-0.923880;, + 0.693520; 0.137950;-0.707107;, + 0.815493; 0.162212;-0.555570;, + 0.831470;-0.000000;-0.555570;, + 0.707107;-0.000000;-0.707107;, + 0.906128; 0.180240;-0.382683;, + 0.961940; 0.191342;-0.195090;, + 0.980785;-0.000000;-0.195090;, + 0.923880; 0.000000;-0.382683;, + 0.980786; 0.195090; 0.000000;, + 0.961940; 0.191342; 0.195090;, + 0.980785;-0.000000; 0.195090;, + 1.000000;-0.000000; 0.000000;, + 0.906128; 0.180240; 0.382683;, + 0.815493; 0.162212; 0.555570;, + 0.831470;-0.000000; 0.555570;, + 0.923880; 0.000000; 0.382683;, + 0.693520; 0.137950; 0.707107;, + 0.544896; 0.108386; 0.831470;, + 0.555571; 0.000000; 0.831470;, + 0.707107;-0.000000; 0.707107;, + 0.191342; 0.038060;-0.980785;, + 0.375331; 0.074658;-0.923880;, + 0.382684; 0.000000;-0.923880;, + 0.195091; 0.000000;-0.980785;, + 0.375331; 0.074658; 0.923880;, + 0.191342; 0.038060; 0.980785;, + 0.195091;-0.000000; 0.980785;, + 0.382684; 0.000000; 0.923880;, + 0.544895; 0.108386;-0.831470;, + 0.693520; 0.137950;-0.707107;, + 0.707107;-0.000000;-0.707107;, + 0.555570;-0.000000;-0.831470;, + 0.815493; 0.162212;-0.555570;, + 0.906128; 0.180240;-0.382683;, + 0.923880; 0.000000;-0.382683;, + 0.831470;-0.000000;-0.555570;, + 0.961940; 0.191342;-0.195090;, + 0.980786; 0.195090; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 0.980785;-0.000000;-0.195090;, + 0.980785;-0.000000; 0.195090;, + 0.923880; 0.000000; 0.382683;, + 0.906128;-0.180240; 0.382683;, + 0.961940;-0.191342; 0.195090;, + 0.831470;-0.000000; 0.555570;, + 0.707107;-0.000000; 0.707107;, + 0.693520;-0.137950; 0.707107;, + 0.815493;-0.162212; 0.555570;, + 0.555571; 0.000000; 0.831470;, + 0.382684; 0.000000; 0.923880;, + 0.375331;-0.074658; 0.923880;, + 0.544896;-0.108386; 0.831470;, + 0.382684; 0.000000;-0.923880;, + 0.555570;-0.000000;-0.831470;, + 0.544895;-0.108386;-0.831470;, + 0.375331;-0.074658;-0.923880;, + 0.707107;-0.000000;-0.707107;, + 0.831470;-0.000000;-0.555570;, + 0.815493;-0.162212;-0.555570;, + 0.693520;-0.137950;-0.707107;, + 0.923880; 0.000000;-0.382683;, + 0.980785;-0.000000;-0.195090;, + 0.961940;-0.191342;-0.195090;, + 0.906128;-0.180240;-0.382683;, + 1.000000;-0.000000; 0.000000;, + 0.980785;-0.000000; 0.195090;, + 0.961940;-0.191342; 0.195090;, + 0.980786;-0.195090; 0.000000;, + 0.923880; 0.000000; 0.382683;, + 0.831470;-0.000000; 0.555570;, + 0.815493;-0.162212; 0.555570;, + 0.906128;-0.180240; 0.382683;, + 0.707107;-0.000000; 0.707107;, + 0.555571; 0.000000; 0.831470;, + 0.544896;-0.108386; 0.831470;, + 0.693520;-0.137950; 0.707107;, + 0.195091; 0.000000;-0.980785;, + 0.382684; 0.000000;-0.923880;, + 0.375331;-0.074658;-0.923880;, + 0.191342;-0.038060;-0.980785;, + 0.382684; 0.000000; 0.923880;, + 0.195091;-0.000000; 0.980785;, + 0.191342;-0.038060; 0.980785;, + 0.375331;-0.074658; 0.923880;, + 0.555570;-0.000000;-0.831470;, + 0.707107;-0.000000;-0.707107;, + 0.693520;-0.137950;-0.707107;, + 0.544895;-0.108386;-0.831470;, + 0.831470;-0.000000;-0.555570;, + 0.923880; 0.000000;-0.382683;, + 0.906128;-0.180240;-0.382683;, + 0.815493;-0.162212;-0.555570;, + 0.980785;-0.000000;-0.195090;, + 1.000000;-0.000000; 0.000000;, + 0.980786;-0.195090; 0.000000;, + 0.961940;-0.191342;-0.195090;, + 0.961940;-0.191342; 0.195090;, + 0.906128;-0.180240; 0.382683;, + 0.853554;-0.353553; 0.382683;, + 0.906127;-0.375330; 0.195090;, + 0.815493;-0.162212; 0.555570;, + 0.693520;-0.137950; 0.707107;, + 0.653282;-0.270598; 0.707107;, + 0.768178;-0.318190; 0.555570;, + 0.544896;-0.108386; 0.831470;, + 0.375331;-0.074658; 0.923880;, + 0.353554;-0.146447; 0.923880;, + 0.513280;-0.212608; 0.831470;, + 0.375331;-0.074658;-0.923880;, + 0.544895;-0.108386;-0.831470;, + 0.513280;-0.212608;-0.831470;, + 0.353554;-0.146447;-0.923880;, + 0.693520;-0.137950;-0.707107;, + 0.815493;-0.162212;-0.555570;, + 0.768178;-0.318190;-0.555570;, + 0.653282;-0.270598;-0.707107;, + 0.906128;-0.180240;-0.382683;, + 0.961940;-0.191342;-0.195090;, + 0.906127;-0.375330;-0.195090;, + 0.853554;-0.353553;-0.382683;, + 0.980786;-0.195090; 0.000000;, + 0.961940;-0.191342; 0.195090;, + 0.906127;-0.375330; 0.195090;, + 0.923880;-0.382684; 0.000000;, + 0.906128;-0.180240; 0.382683;, + 0.815493;-0.162212; 0.555570;, + 0.768178;-0.318190; 0.555570;, + 0.853554;-0.353553; 0.382683;, + 0.693520;-0.137950; 0.707107;, + 0.544896;-0.108386; 0.831470;, + 0.513280;-0.212608; 0.831470;, + 0.653282;-0.270598; 0.707107;, + 0.191342;-0.038060;-0.980785;, + 0.375331;-0.074658;-0.923880;, + 0.353554;-0.146447;-0.923880;, + 0.180240;-0.074658;-0.980785;, + 0.375331;-0.074658; 0.923880;, + 0.191342;-0.038060; 0.980785;, + 0.180240;-0.074658; 0.980785;, + 0.353554;-0.146447; 0.923880;, + 0.544895;-0.108386;-0.831470;, + 0.693520;-0.137950;-0.707107;, + 0.653282;-0.270598;-0.707107;, + 0.513280;-0.212608;-0.831470;, + 0.815493;-0.162212;-0.555570;, + 0.906128;-0.180240;-0.382683;, + 0.853554;-0.353553;-0.382683;, + 0.768178;-0.318190;-0.555570;, + 0.961940;-0.191342;-0.195090;, + 0.980786;-0.195090; 0.000000;, + 0.923880;-0.382684; 0.000000;, + 0.906127;-0.375330;-0.195090;, + 0.906127;-0.375330; 0.195090;, + 0.853554;-0.353553; 0.382683;, + 0.768178;-0.513280; 0.382683;, + 0.815493;-0.544895; 0.195090;, + 0.768178;-0.318190; 0.555570;, + 0.653282;-0.270598; 0.707107;, + 0.587938;-0.392847; 0.707107;, + 0.691342;-0.461940; 0.555570;, + 0.513280;-0.212608; 0.831470;, + 0.353554;-0.146447; 0.923880;, + 0.318190;-0.212608; 0.923880;, + 0.461940;-0.308658; 0.831470;, + 0.353554;-0.146447;-0.923880;, + 0.513280;-0.212608;-0.831470;, + 0.461940;-0.308658;-0.831470;, + 0.318190;-0.212607;-0.923880;, + 0.653282;-0.270598;-0.707107;, + 0.768178;-0.318190;-0.555570;, + 0.691342;-0.461940;-0.555570;, + 0.587938;-0.392847;-0.707107;, + 0.853554;-0.353553;-0.382683;, + 0.906127;-0.375330;-0.195090;, + 0.815493;-0.544895;-0.195090;, + 0.768178;-0.513280;-0.382683;, + 0.923880;-0.382684; 0.000000;, + 0.906127;-0.375330; 0.195090;, + 0.815493;-0.544895; 0.195090;, + 0.831470;-0.555570; 0.000000;, + 0.853554;-0.353553; 0.382683;, + 0.768178;-0.318190; 0.555570;, + 0.691342;-0.461940; 0.555570;, + 0.768178;-0.513280; 0.382683;, + 0.653282;-0.270598; 0.707107;, + 0.513280;-0.212608; 0.831470;, + 0.461940;-0.308658; 0.831470;, + 0.587938;-0.392847; 0.707107;, + 0.180240;-0.074658;-0.980785;, + 0.353554;-0.146447;-0.923880;, + 0.318190;-0.212607;-0.923880;, + 0.162212;-0.108386;-0.980785;, + 0.353554;-0.146447; 0.923880;, + 0.180240;-0.074658; 0.980785;, + 0.162212;-0.108386; 0.980785;, + 0.318190;-0.212608; 0.923880;, + 0.513280;-0.212608;-0.831470;, + 0.653282;-0.270598;-0.707107;, + 0.587938;-0.392847;-0.707107;, + 0.461940;-0.308658;-0.831470;, + 0.768178;-0.318190;-0.555570;, + 0.853554;-0.353553;-0.382683;, + 0.768178;-0.513280;-0.382683;, + 0.691342;-0.461940;-0.555570;, + 0.906127;-0.375330;-0.195090;, + 0.923880;-0.382684; 0.000000;, + 0.831470;-0.555570; 0.000000;, + 0.815493;-0.544895;-0.195090;, + 0.815493;-0.544895; 0.195090;, + 0.768178;-0.513280; 0.382683;, + 0.653282;-0.653281; 0.382683;, + 0.693520;-0.693520; 0.195090;, + 0.691342;-0.461940; 0.555570;, + 0.587938;-0.392847; 0.707107;, + 0.500000;-0.500000; 0.707107;, + 0.587938;-0.587938; 0.555570;, + 0.461940;-0.308658; 0.831470;, + 0.318190;-0.212608; 0.923880;, + 0.270598;-0.270598; 0.923880;, + 0.392848;-0.392848; 0.831470;, + 0.318190;-0.212607;-0.923880;, + 0.461940;-0.308658;-0.831470;, + 0.392848;-0.392847;-0.831470;, + 0.270598;-0.270598;-0.923880;, + 0.587938;-0.392847;-0.707107;, + 0.691342;-0.461940;-0.555570;, + 0.587938;-0.587938;-0.555570;, + 0.500000;-0.500000;-0.707107;, + 0.768178;-0.513280;-0.382683;, + 0.815493;-0.544895;-0.195090;, + 0.693520;-0.693520;-0.195090;, + 0.653282;-0.653281;-0.382683;, + 0.831470;-0.555570; 0.000000;, + 0.815493;-0.544895; 0.195090;, + 0.693520;-0.693520; 0.195090;, + 0.707107;-0.707107; 0.000000;, + 0.768178;-0.513280; 0.382683;, + 0.691342;-0.461940; 0.555570;, + 0.587938;-0.587938; 0.555570;, + 0.653282;-0.653281; 0.382683;, + 0.587938;-0.392847; 0.707107;, + 0.461940;-0.308658; 0.831470;, + 0.392848;-0.392848; 0.831470;, + 0.500000;-0.500000; 0.707107;, + 0.162212;-0.108386;-0.980785;, + 0.318190;-0.212607;-0.923880;, + 0.270598;-0.270598;-0.923880;, + 0.137950;-0.137950;-0.980785;, + 0.318190;-0.212608; 0.923880;, + 0.162212;-0.108386; 0.980785;, + 0.137950;-0.137950; 0.980785;, + 0.270598;-0.270598; 0.923880;, + 0.461940;-0.308658;-0.831470;, + 0.587938;-0.392847;-0.707107;, + 0.500000;-0.500000;-0.707107;, + 0.392848;-0.392847;-0.831470;, + 0.691342;-0.461940;-0.555570;, + 0.768178;-0.513280;-0.382683;, + 0.653282;-0.653281;-0.382683;, + 0.587938;-0.587938;-0.555570;, + 0.815493;-0.544895;-0.195090;, + 0.831470;-0.555570; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.693520;-0.693520;-0.195090;, + 0.693520;-0.693520; 0.195090;, + 0.653282;-0.653281; 0.382683;, + 0.513280;-0.768178; 0.382683;, + 0.544895;-0.815493; 0.195090;, + 0.587938;-0.587938; 0.555570;, + 0.500000;-0.500000; 0.707107;, + 0.392848;-0.587938; 0.707107;, + 0.461940;-0.691342; 0.555570;, + 0.392848;-0.392848; 0.831470;, + 0.270598;-0.270598; 0.923880;, + 0.212608;-0.318190; 0.923880;, + 0.308659;-0.461940; 0.831470;, + 0.270598;-0.270598;-0.923880;, + 0.392848;-0.392847;-0.831470;, + 0.308658;-0.461940;-0.831470;, + 0.212608;-0.318190;-0.923880;, + 0.500000;-0.500000;-0.707107;, + 0.587938;-0.587938;-0.555570;, + 0.461940;-0.691342;-0.555570;, + 0.392848;-0.587938;-0.707107;, + 0.653282;-0.653281;-0.382683;, + 0.693520;-0.693520;-0.195090;, + 0.544895;-0.815493;-0.195090;, + 0.513280;-0.768178;-0.382683;, + 0.707107;-0.707107; 0.000000;, + 0.693520;-0.693520; 0.195090;, + 0.544895;-0.815493; 0.195090;, + 0.555570;-0.831470; 0.000000;, + 0.653282;-0.653281; 0.382683;, + 0.587938;-0.587938; 0.555570;, + 0.461940;-0.691342; 0.555570;, + 0.513280;-0.768178; 0.382683;, + 0.500000;-0.500000; 0.707107;, + 0.392848;-0.392848; 0.831470;, + 0.308659;-0.461940; 0.831470;, + 0.392848;-0.587938; 0.707107;, + 0.137950;-0.137950;-0.980785;, + 0.270598;-0.270598;-0.923880;, + 0.212608;-0.318190;-0.923880;, + 0.108387;-0.162212;-0.980785;, + 0.270598;-0.270598; 0.923880;, + 0.137950;-0.137950; 0.980785;, + 0.108387;-0.162212; 0.980785;, + 0.212608;-0.318190; 0.923880;, + 0.392848;-0.392847;-0.831470;, + 0.500000;-0.500000;-0.707107;, + 0.392848;-0.587938;-0.707107;, + 0.308658;-0.461940;-0.831470;, + 0.587938;-0.587938;-0.555570;, + 0.653282;-0.653281;-0.382683;, + 0.513280;-0.768178;-0.382683;, + 0.461940;-0.691342;-0.555570;, + 0.693520;-0.693520;-0.195090;, + 0.707107;-0.707107; 0.000000;, + 0.555570;-0.831470; 0.000000;, + 0.544895;-0.815493;-0.195090;, + 0.544895;-0.815493; 0.195090;, + 0.513280;-0.768178; 0.382683;, + 0.353554;-0.853553; 0.382683;, + 0.375330;-0.906127; 0.195090;, + 0.461940;-0.691342; 0.555570;, + 0.392848;-0.587938; 0.707107;, + 0.270598;-0.653281; 0.707107;, + 0.318190;-0.768177; 0.555570;, + 0.308659;-0.461940; 0.831470;, + 0.212608;-0.318190; 0.923880;, + 0.146447;-0.353553; 0.923880;, + 0.212608;-0.513280; 0.831470;, + 0.212608;-0.318190;-0.923880;, + 0.308658;-0.461940;-0.831470;, + 0.212608;-0.513280;-0.831470;, + 0.146447;-0.353553;-0.923880;, + 0.392848;-0.587938;-0.707107;, + 0.461940;-0.691342;-0.555570;, + 0.318190;-0.768177;-0.555570;, + 0.270598;-0.653281;-0.707107;, + 0.513280;-0.768178;-0.382683;, + 0.544895;-0.815493;-0.195090;, + 0.375330;-0.906127;-0.195090;, + 0.353554;-0.853553;-0.382683;, + 0.555570;-0.831470; 0.000000;, + 0.544895;-0.815493; 0.195090;, + 0.375330;-0.906127; 0.195090;, + 0.382684;-0.923880; 0.000000;, + 0.513280;-0.768178; 0.382683;, + 0.461940;-0.691342; 0.555570;, + 0.318190;-0.768177; 0.555570;, + 0.353554;-0.853553; 0.382683;, + 0.392848;-0.587938; 0.707107;, + 0.308659;-0.461940; 0.831470;, + 0.212608;-0.513280; 0.831470;, + 0.270598;-0.653281; 0.707107;, + 0.108387;-0.162212;-0.980785;, + 0.212608;-0.318190;-0.923880;, + 0.146447;-0.353553;-0.923880;, + 0.074658;-0.180240;-0.980785;, + 0.212608;-0.318190; 0.923880;, + 0.108387;-0.162212; 0.980785;, + 0.074658;-0.180240; 0.980785;, + 0.146447;-0.353553; 0.923880;, + 0.308658;-0.461940;-0.831470;, + 0.392848;-0.587938;-0.707107;, + 0.270598;-0.653281;-0.707107;, + 0.212608;-0.513280;-0.831470;, + 0.461940;-0.691342;-0.555570;, + 0.513280;-0.768178;-0.382683;, + 0.353554;-0.853553;-0.382683;, + 0.318190;-0.768177;-0.555570;, + 0.544895;-0.815493;-0.195090;, + 0.555570;-0.831470; 0.000000;, + 0.382684;-0.923880; 0.000000;, + 0.375330;-0.906127;-0.195090;, + 0.375330;-0.906127; 0.195090;, + 0.353554;-0.853553; 0.382683;, + 0.180240;-0.906127; 0.382683;, + 0.191342;-0.961939; 0.195090;, + 0.318190;-0.768177; 0.555570;, + 0.270598;-0.653281; 0.707107;, + 0.137950;-0.693520; 0.707107;, + 0.162212;-0.815493; 0.555570;, + 0.212608;-0.513280; 0.831470;, + 0.146447;-0.353553; 0.923880;, + 0.074658;-0.375330; 0.923880;, + 0.108387;-0.544895; 0.831470;, + 0.146447;-0.353553;-0.923880;, + 0.212608;-0.513280;-0.831470;, + 0.108387;-0.544895;-0.831470;, + 0.074658;-0.375330;-0.923880;, + 0.270598;-0.653281;-0.707107;, + 0.318190;-0.768177;-0.555570;, + 0.162212;-0.815493;-0.555570;, + 0.137950;-0.693520;-0.707107;, + 0.353554;-0.853553;-0.382683;, + 0.375330;-0.906127;-0.195090;, + 0.191342;-0.961939;-0.195090;, + 0.180240;-0.906127;-0.382683;, + 0.382684;-0.923880; 0.000000;, + 0.375330;-0.906127; 0.195090;, + 0.191342;-0.961939; 0.195090;, + 0.195090;-0.980785; 0.000000;, + 0.353554;-0.853553; 0.382683;, + 0.318190;-0.768177; 0.555570;, + 0.162212;-0.815493; 0.555570;, + 0.180240;-0.906127; 0.382683;, + 0.270598;-0.653281; 0.707107;, + 0.212608;-0.513280; 0.831470;, + 0.108387;-0.544895; 0.831470;, + 0.137950;-0.693520; 0.707107;, + 0.074658;-0.180240;-0.980785;, + 0.146447;-0.353553;-0.923880;, + 0.074658;-0.375330;-0.923880;, + 0.038061;-0.191342;-0.980785;, + 0.146447;-0.353553; 0.923880;, + 0.074658;-0.180240; 0.980785;, + 0.038061;-0.191342; 0.980785;, + 0.074658;-0.375330; 0.923880;, + 0.212608;-0.513280;-0.831470;, + 0.270598;-0.653281;-0.707107;, + 0.137950;-0.693520;-0.707107;, + 0.108387;-0.544895;-0.831470;, + 0.318190;-0.768177;-0.555570;, + 0.353554;-0.853553;-0.382683;, + 0.180240;-0.906127;-0.382683;, + 0.162212;-0.815493;-0.555570;, + 0.375330;-0.906127;-0.195090;, + 0.382684;-0.923880; 0.000000;, + 0.195090;-0.980785; 0.000000;, + 0.191342;-0.961939;-0.195090;, + 0.191342;-0.961939; 0.195090;, + 0.180240;-0.906127; 0.382683;, + 0.000000;-0.923879; 0.382683;, + 0.000000;-0.980785; 0.195090;, + 0.162212;-0.815493; 0.555570;, + 0.137950;-0.693520; 0.707107;, + 0.000000;-0.707107; 0.707107;, + 0.000000;-0.831469; 0.555570;, + 0.108387;-0.544895; 0.831470;, + 0.074658;-0.375330; 0.923880;, + 0.000000;-0.382683; 0.923880;, + 0.000000;-0.555570; 0.831470;, + 0.074658;-0.375330;-0.923880;, + 0.108387;-0.544895;-0.831470;, + 0.000000;-0.555570;-0.831470;, + 0.000000;-0.382683;-0.923880;, + 0.137950;-0.693520;-0.707107;, + 0.162212;-0.815493;-0.555570;, + 0.000000;-0.831469;-0.555570;, + 0.000000;-0.707107;-0.707107;, + 0.180240;-0.906127;-0.382683;, + 0.191342;-0.961939;-0.195090;, + 0.000000;-0.980785;-0.195090;, + 0.000000;-0.923879;-0.382683;, + 0.195090;-0.980785; 0.000000;, + 0.191342;-0.961939; 0.195090;, + 0.000000;-0.980785; 0.195090;, + 0.000000;-1.000000; 0.000000;, + 0.180240;-0.906127; 0.382683;, + 0.162212;-0.815493; 0.555570;, + 0.000000;-0.831469; 0.555570;, + 0.000000;-0.923879; 0.382683;, + 0.137950;-0.693520; 0.707107;, + 0.108387;-0.544895; 0.831470;, + 0.000000;-0.555570; 0.831470;, + 0.000000;-0.707107; 0.707107;, + 0.038061;-0.191342;-0.980785;, + 0.074658;-0.375330;-0.923880;, + 0.000000;-0.382683;-0.923880;, + 0.000000;-0.195090;-0.980785;, + 0.074658;-0.375330; 0.923880;, + 0.038061;-0.191342; 0.980785;, + 0.000000;-0.195090; 0.980785;, + 0.000000;-0.382683; 0.923880;, + 0.108387;-0.544895;-0.831470;, + 0.137950;-0.693520;-0.707107;, + 0.000000;-0.707107;-0.707107;, + 0.000000;-0.555570;-0.831470;, + 0.162212;-0.815493;-0.555570;, + 0.180240;-0.906127;-0.382683;, + 0.000000;-0.923879;-0.382683;, + 0.000000;-0.831469;-0.555570;, + 0.191342;-0.961939;-0.195090;, + 0.195090;-0.980785; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.980785;-0.195090;, + 0.000000;-0.980785; 0.195090;, + 0.000000;-0.923879; 0.382683;, + -0.180240;-0.906127; 0.382683;, + -0.191342;-0.961939; 0.195090;, + 0.000000;-0.831469; 0.555570;, + 0.000000;-0.707107; 0.707107;, + -0.137949;-0.693520; 0.707107;, + -0.162211;-0.815493; 0.555570;, + 0.000000;-0.555570; 0.831470;, + 0.000000;-0.382683; 0.923880;, + -0.074658;-0.375330; 0.923880;, + -0.108386;-0.544895; 0.831470;, + 0.000000;-0.382683;-0.923880;, + 0.000000;-0.555570;-0.831470;, + -0.108386;-0.544895;-0.831470;, + -0.074658;-0.375330;-0.923880;, + 0.000000;-0.707107;-0.707107;, + 0.000000;-0.831469;-0.555570;, + -0.162211;-0.815493;-0.555570;, + -0.137949;-0.693520;-0.707107;, + 0.000000;-0.923879;-0.382683;, + 0.000000;-0.980785;-0.195090;, + -0.191342;-0.961939;-0.195090;, + -0.180240;-0.906127;-0.382683;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.980785; 0.195090;, + -0.191342;-0.961939; 0.195090;, + -0.195090;-0.980785; 0.000000;, + 0.000000;-0.923879; 0.382683;, + 0.000000;-0.831469; 0.555570;, + -0.162211;-0.815493; 0.555570;, + -0.180240;-0.906127; 0.382683;, + 0.000000;-0.707107; 0.707107;, + 0.000000;-0.555570; 0.831470;, + -0.108386;-0.544895; 0.831470;, + -0.137949;-0.693520; 0.707107;, + 0.000000;-0.195090;-0.980785;, + 0.000000;-0.382683;-0.923880;, + -0.074658;-0.375330;-0.923880;, + -0.038060;-0.191342;-0.980785;, + 0.000000;-0.382683; 0.923880;, + 0.000000;-0.195090; 0.980785;, + -0.038060;-0.191342; 0.980785;, + -0.074658;-0.375330; 0.923880;, + 0.000000;-0.555570;-0.831470;, + 0.000000;-0.707107;-0.707107;, + -0.137949;-0.693520;-0.707107;, + -0.108386;-0.544895;-0.831470;, + 0.000000;-0.831469;-0.555570;, + 0.000000;-0.923879;-0.382683;, + -0.180240;-0.906127;-0.382683;, + -0.162211;-0.815493;-0.555570;, + 0.000000;-0.980785;-0.195090;, + 0.000000;-1.000000; 0.000000;, + -0.195090;-0.980785; 0.000000;, + -0.191342;-0.961939;-0.195090;, + -0.191342;-0.961939; 0.195090;, + -0.180240;-0.906127; 0.382683;, + -0.353553;-0.853553; 0.382683;, + -0.375330;-0.906127; 0.195090;, + -0.162211;-0.815493; 0.555570;, + -0.137949;-0.693520; 0.707107;, + -0.270598;-0.653281; 0.707107;, + -0.318189;-0.768177; 0.555570;, + -0.108386;-0.544895; 0.831470;, + -0.074658;-0.375330; 0.923880;, + -0.146446;-0.353553; 0.923880;, + -0.212607;-0.513280; 0.831470;, + -0.074658;-0.375330;-0.923880;, + -0.108386;-0.544895;-0.831470;, + -0.212607;-0.513280;-0.831470;, + -0.146446;-0.353553;-0.923880;, + -0.137949;-0.693520;-0.707107;, + -0.162211;-0.815493;-0.555570;, + -0.318189;-0.768177;-0.555570;, + -0.270598;-0.653281;-0.707107;, + -0.180240;-0.906127;-0.382683;, + -0.191342;-0.961939;-0.195090;, + -0.375330;-0.906127;-0.195090;, + -0.353553;-0.853553;-0.382683;, + -0.195090;-0.980785; 0.000000;, + -0.191342;-0.961939; 0.195090;, + -0.375330;-0.906127; 0.195090;, + -0.382683;-0.923879; 0.000000;, + -0.180240;-0.906127; 0.382683;, + -0.162211;-0.815493; 0.555570;, + -0.318189;-0.768177; 0.555570;, + -0.353553;-0.853553; 0.382683;, + -0.137949;-0.693520; 0.707107;, + -0.108386;-0.544895; 0.831470;, + -0.212607;-0.513280; 0.831470;, + -0.270598;-0.653281; 0.707107;, + -0.038060;-0.191342;-0.980785;, + -0.074658;-0.375330;-0.923880;, + -0.146446;-0.353553;-0.923880;, + -0.074657;-0.180240;-0.980785;, + -0.074658;-0.375330; 0.923880;, + -0.038060;-0.191342; 0.980785;, + -0.074658;-0.180240; 0.980785;, + -0.146446;-0.353553; 0.923880;, + -0.108386;-0.544895;-0.831470;, + -0.137949;-0.693520;-0.707107;, + -0.270598;-0.653281;-0.707107;, + -0.212607;-0.513280;-0.831470;, + -0.162211;-0.815493;-0.555570;, + -0.180240;-0.906127;-0.382683;, + -0.353553;-0.853553;-0.382683;, + -0.318189;-0.768177;-0.555570;, + -0.191342;-0.961939;-0.195090;, + -0.195090;-0.980785; 0.000000;, + -0.382683;-0.923879; 0.000000;, + -0.375330;-0.906127;-0.195090;, + -0.375330;-0.906127; 0.195090;, + -0.353553;-0.853553; 0.382683;, + -0.513280;-0.768178; 0.382683;, + -0.544895;-0.815493; 0.195090;, + -0.318189;-0.768177; 0.555570;, + -0.270598;-0.653281; 0.707107;, + -0.392847;-0.587938; 0.707107;, + -0.461939;-0.691341; 0.555570;, + -0.212607;-0.513280; 0.831470;, + -0.146446;-0.353553; 0.923880;, + -0.212607;-0.318190; 0.923880;, + -0.308658;-0.461940; 0.831470;, + -0.146446;-0.353553;-0.923880;, + -0.212607;-0.513280;-0.831470;, + -0.308658;-0.461940;-0.831470;, + -0.212607;-0.318189;-0.923880;, + -0.270598;-0.653281;-0.707107;, + -0.318189;-0.768177;-0.555570;, + -0.461939;-0.691341;-0.555570;, + -0.392847;-0.587938;-0.707107;, + -0.353553;-0.853553;-0.382683;, + -0.375330;-0.906127;-0.195090;, + -0.544895;-0.815493;-0.195090;, + -0.513280;-0.768178;-0.382683;, + -0.382683;-0.923879; 0.000000;, + -0.375330;-0.906127; 0.195090;, + -0.544895;-0.815493; 0.195090;, + -0.555570;-0.831469; 0.000000;, + -0.353553;-0.853553; 0.382683;, + -0.318189;-0.768177; 0.555570;, + -0.461939;-0.691341; 0.555570;, + -0.513280;-0.768178; 0.382683;, + -0.270598;-0.653281; 0.707107;, + -0.212607;-0.513280; 0.831470;, + -0.308658;-0.461940; 0.831470;, + -0.392847;-0.587938; 0.707107;, + -0.074657;-0.180240;-0.980785;, + -0.146446;-0.353553;-0.923880;, + -0.212607;-0.318189;-0.923880;, + -0.108386;-0.162212;-0.980785;, + -0.146446;-0.353553; 0.923880;, + -0.074658;-0.180240; 0.980785;, + -0.108386;-0.162212; 0.980785;, + -0.212607;-0.318190; 0.923880;, + -0.212607;-0.513280;-0.831470;, + -0.270598;-0.653281;-0.707107;, + -0.392847;-0.587938;-0.707107;, + -0.308658;-0.461940;-0.831470;, + -0.318189;-0.768177;-0.555570;, + -0.353553;-0.853553;-0.382683;, + -0.513280;-0.768178;-0.382683;, + -0.461939;-0.691341;-0.555570;, + -0.375330;-0.906127;-0.195090;, + -0.382683;-0.923879; 0.000000;, + -0.555570;-0.831469; 0.000000;, + -0.544895;-0.815493;-0.195090;, + -0.544895;-0.815493; 0.195090;, + -0.513280;-0.768178; 0.382683;, + -0.653281;-0.653281; 0.382683;, + -0.693519;-0.693519; 0.195090;, + -0.461939;-0.691341; 0.555570;, + -0.392847;-0.587938; 0.707107;, + -0.500000;-0.500000; 0.707107;, + -0.587937;-0.587937; 0.555570;, + -0.308658;-0.461940; 0.831470;, + -0.212607;-0.318190; 0.923880;, + -0.270598;-0.270598; 0.923880;, + -0.392847;-0.392847; 0.831470;, + -0.212607;-0.318189;-0.923880;, + -0.308658;-0.461940;-0.831470;, + -0.392847;-0.392847;-0.831470;, + -0.270598;-0.270598;-0.923880;, + -0.392847;-0.587938;-0.707107;, + -0.461939;-0.691341;-0.555570;, + -0.587937;-0.587937;-0.555570;, + -0.500000;-0.500000;-0.707107;, + -0.513280;-0.768178;-0.382683;, + -0.544895;-0.815493;-0.195090;, + -0.693519;-0.693519;-0.195090;, + -0.653281;-0.653281;-0.382683;, + -0.555570;-0.831469; 0.000000;, + -0.544895;-0.815493; 0.195090;, + -0.693519;-0.693519; 0.195090;, + -0.707106;-0.707106; 0.000000;, + -0.513280;-0.768178; 0.382683;, + -0.461939;-0.691341; 0.555570;, + -0.587937;-0.587937; 0.555570;, + -0.653281;-0.653281; 0.382683;, + -0.392847;-0.587938; 0.707107;, + -0.308658;-0.461940; 0.831470;, + -0.392847;-0.392847; 0.831470;, + -0.500000;-0.500000; 0.707107;, + -0.108386;-0.162212;-0.980785;, + -0.212607;-0.318189;-0.923880;, + -0.270598;-0.270598;-0.923880;, + -0.137949;-0.137950;-0.980785;, + -0.212607;-0.318190; 0.923880;, + -0.108386;-0.162212; 0.980785;, + -0.137949;-0.137950; 0.980785;, + -0.270598;-0.270598; 0.923880;, + -0.308658;-0.461940;-0.831470;, + -0.392847;-0.587938;-0.707107;, + -0.500000;-0.500000;-0.707107;, + -0.392847;-0.392847;-0.831470;, + -0.461939;-0.691341;-0.555570;, + -0.513280;-0.768178;-0.382683;, + -0.653281;-0.653281;-0.382683;, + -0.587937;-0.587937;-0.555570;, + -0.544895;-0.815493;-0.195090;, + -0.555570;-0.831469; 0.000000;, + -0.707106;-0.707106; 0.000000;, + -0.693519;-0.693519;-0.195090;, + -0.693519;-0.693519; 0.195090;, + -0.653281;-0.653281; 0.382683;, + -0.768177;-0.513280; 0.382683;, + -0.815492;-0.544895; 0.195090;, + -0.587937;-0.587937; 0.555570;, + -0.500000;-0.500000; 0.707107;, + -0.587937;-0.392847; 0.707107;, + -0.691341;-0.461939; 0.555570;, + -0.392847;-0.392847; 0.831470;, + -0.270598;-0.270598; 0.923880;, + -0.318189;-0.212607; 0.923880;, + -0.461939;-0.308658; 0.831470;, + -0.270598;-0.270598;-0.923880;, + -0.392847;-0.392847;-0.831470;, + -0.461939;-0.308658;-0.831470;, + -0.318189;-0.212607;-0.923880;, + -0.500000;-0.500000;-0.707107;, + -0.587937;-0.587937;-0.555570;, + -0.691341;-0.461939;-0.555570;, + -0.587937;-0.392847;-0.707107;, + -0.653281;-0.653281;-0.382683;, + -0.693519;-0.693519;-0.195090;, + -0.815492;-0.544895;-0.195090;, + -0.768177;-0.513280;-0.382683;, + -0.707106;-0.707106; 0.000000;, + -0.693519;-0.693519; 0.195090;, + -0.815492;-0.544895; 0.195090;, + -0.831469;-0.555570; 0.000000;, + -0.653281;-0.653281; 0.382683;, + -0.587937;-0.587937; 0.555570;, + -0.691341;-0.461939; 0.555570;, + -0.768177;-0.513280; 0.382683;, + -0.500000;-0.500000; 0.707107;, + -0.392847;-0.392847; 0.831470;, + -0.461939;-0.308658; 0.831470;, + -0.587937;-0.392847; 0.707107;, + -0.137949;-0.137950;-0.980785;, + -0.270598;-0.270598;-0.923880;, + -0.318189;-0.212607;-0.923880;, + -0.162211;-0.108386;-0.980785;, + -0.270598;-0.270598; 0.923880;, + -0.137949;-0.137950; 0.980785;, + -0.162211;-0.108386; 0.980785;, + -0.318189;-0.212607; 0.923880;, + -0.392847;-0.392847;-0.831470;, + -0.500000;-0.500000;-0.707107;, + -0.587937;-0.392847;-0.707107;, + -0.461939;-0.308658;-0.831470;, + -0.587937;-0.587937;-0.555570;, + -0.653281;-0.653281;-0.382683;, + -0.768177;-0.513280;-0.382683;, + -0.691341;-0.461939;-0.555570;, + -0.693519;-0.693519;-0.195090;, + -0.707106;-0.707106; 0.000000;, + -0.831469;-0.555570; 0.000000;, + -0.815492;-0.544895;-0.195090;, + -0.815492;-0.544895; 0.195090;, + -0.768177;-0.513280; 0.382683;, + -0.853553;-0.353553; 0.382683;, + -0.906127;-0.375330; 0.195090;, + -0.691341;-0.461939; 0.555570;, + -0.587937;-0.392847; 0.707107;, + -0.653281;-0.270598; 0.707107;, + -0.768177;-0.318189; 0.555570;, + -0.461939;-0.308658; 0.831470;, + -0.318189;-0.212607; 0.923880;, + -0.353553;-0.146447; 0.923880;, + -0.513280;-0.212607; 0.831470;, + -0.318189;-0.212607;-0.923880;, + -0.461939;-0.308658;-0.831470;, + -0.513279;-0.212607;-0.831470;, + -0.353553;-0.146446;-0.923880;, + -0.587937;-0.392847;-0.707107;, + -0.691341;-0.461939;-0.555570;, + -0.768177;-0.318189;-0.555570;, + -0.653281;-0.270598;-0.707107;, + -0.768177;-0.513280;-0.382683;, + -0.815492;-0.544895;-0.195090;, + -0.906127;-0.375330;-0.195090;, + -0.853553;-0.353553;-0.382683;, + -0.831469;-0.555570; 0.000000;, + -0.815492;-0.544895; 0.195090;, + -0.906127;-0.375330; 0.195090;, + -0.923879;-0.382683; 0.000000;, + -0.768177;-0.513280; 0.382683;, + -0.691341;-0.461939; 0.555570;, + -0.768177;-0.318189; 0.555570;, + -0.853553;-0.353553; 0.382683;, + -0.587937;-0.392847; 0.707107;, + -0.461939;-0.308658; 0.831470;, + -0.513280;-0.212607; 0.831470;, + -0.653281;-0.270598; 0.707107;, + -0.162211;-0.108386;-0.980785;, + -0.318189;-0.212607;-0.923880;, + -0.353553;-0.146446;-0.923880;, + -0.180240;-0.074658;-0.980785;, + -0.318189;-0.212607; 0.923880;, + -0.162211;-0.108386; 0.980785;, + -0.180240;-0.074658; 0.980785;, + -0.353553;-0.146447; 0.923880;, + -0.461939;-0.308658;-0.831470;, + -0.587937;-0.392847;-0.707107;, + -0.653281;-0.270598;-0.707107;, + -0.513279;-0.212607;-0.831470;, + -0.691341;-0.461939;-0.555570;, + -0.768177;-0.513280;-0.382683;, + -0.853553;-0.353553;-0.382683;, + -0.768177;-0.318189;-0.555570;, + -0.815492;-0.544895;-0.195090;, + -0.831469;-0.555570; 0.000000;, + -0.923879;-0.382683; 0.000000;, + -0.906127;-0.375330;-0.195090;, + -0.906127;-0.375330; 0.195090;, + -0.853553;-0.353553; 0.382683;, + -0.906127;-0.180240; 0.382683;, + -0.961939;-0.191341; 0.195090;, + -0.768177;-0.318189; 0.555570;, + -0.653281;-0.270598; 0.707107;, + -0.693520;-0.137950; 0.707107;, + -0.815492;-0.162211; 0.555570;, + -0.513280;-0.212607; 0.831470;, + -0.353553;-0.146447; 0.923880;, + -0.375330;-0.074658; 0.923880;, + -0.544895;-0.108386; 0.831470;, + -0.353553;-0.146446;-0.923880;, + -0.513279;-0.212607;-0.831470;, + -0.544895;-0.108386;-0.831470;, + -0.375330;-0.074658;-0.923880;, + -0.653281;-0.270598;-0.707107;, + -0.768177;-0.318189;-0.555570;, + -0.815492;-0.162211;-0.555570;, + -0.693520;-0.137950;-0.707107;, + -0.853553;-0.353553;-0.382683;, + -0.906127;-0.375330;-0.195090;, + -0.961939;-0.191341;-0.195090;, + -0.906127;-0.180240;-0.382683;, + -0.923879;-0.382683; 0.000000;, + -0.906127;-0.375330; 0.195090;, + -0.961939;-0.191341; 0.195090;, + -0.980785;-0.195090; 0.000000;, + -0.853553;-0.353553; 0.382683;, + -0.768177;-0.318189; 0.555570;, + -0.815492;-0.162211; 0.555570;, + -0.906127;-0.180240; 0.382683;, + -0.653281;-0.270598; 0.707107;, + -0.513280;-0.212607; 0.831470;, + -0.544895;-0.108386; 0.831470;, + -0.693520;-0.137950; 0.707107;, + -0.180240;-0.074658;-0.980785;, + -0.353553;-0.146446;-0.923880;, + -0.375330;-0.074658;-0.923880;, + -0.191341;-0.038060;-0.980785;, + -0.353553;-0.146447; 0.923880;, + -0.180240;-0.074658; 0.980785;, + -0.191342;-0.038060; 0.980785;, + -0.375330;-0.074658; 0.923880;, + -0.513279;-0.212607;-0.831470;, + -0.653281;-0.270598;-0.707107;, + -0.693520;-0.137950;-0.707107;, + -0.544895;-0.108386;-0.831470;, + -0.768177;-0.318189;-0.555570;, + -0.853553;-0.353553;-0.382683;, + -0.906127;-0.180240;-0.382683;, + -0.815492;-0.162211;-0.555570;, + -0.906127;-0.375330;-0.195090;, + -0.923879;-0.382683; 0.000000;, + -0.980785;-0.195090; 0.000000;, + -0.961939;-0.191341;-0.195090;, + -0.195090; 0.000000; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.191342; 0.038060; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.195090; 0.000000;-0.980785;, + -0.191341; 0.038060;-0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.191341; 0.038060;-0.980785;, + -0.180240; 0.074658;-0.980785;, + -0.191342; 0.038060; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.180240; 0.074658; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.180240; 0.074658;-0.980785;, + -0.162211; 0.108386;-0.980785;, + -0.180240; 0.074658; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.162212; 0.108387; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.162211; 0.108386;-0.980785;, + -0.137949; 0.137950;-0.980785;, + -0.162212; 0.108387; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.137950; 0.137950; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.137949; 0.137950;-0.980785;, + -0.108386; 0.162212;-0.980785;, + -0.137950; 0.137950; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.108386; 0.162212; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.108386; 0.162212;-0.980785;, + -0.074658; 0.180240;-0.980785;, + -0.108386; 0.162212; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.074658; 0.180240; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.074658; 0.180240;-0.980785;, + -0.038060; 0.191342;-0.980785;, + -0.074658; 0.180240; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.038060; 0.191342; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.038060; 0.191342;-0.980785;, + 0.000000; 0.195090;-0.980785;, + -0.038060; 0.191342; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.000000; 0.195091; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.195090;-0.980785;, + 0.038061; 0.191342;-0.980785;, + 0.000000; 0.195091; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.038061; 0.191342; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.038061; 0.191342;-0.980785;, + 0.074658; 0.180240;-0.980785;, + 0.038061; 0.191342; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.074658; 0.180240; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.074658; 0.180240;-0.980785;, + 0.108387; 0.162212;-0.980785;, + 0.074658; 0.180240; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.108387; 0.162212; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.108387; 0.162212;-0.980785;, + 0.137950; 0.137950;-0.980785;, + 0.108387; 0.162212; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.137950; 0.137950; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.137950; 0.137950;-0.980785;, + 0.162212; 0.108386;-0.980785;, + 0.137950; 0.137950; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.162212; 0.108386; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.162212; 0.108386;-0.980785;, + 0.180240; 0.074658;-0.980785;, + 0.162212; 0.108386; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.180240; 0.074658; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.180240; 0.074658;-0.980785;, + 0.191342; 0.038060;-0.980785;, + 0.180240; 0.074658; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.191342; 0.038060; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.191342; 0.038060;-0.980785;, + 0.195091; 0.000000;-0.980785;, + 0.191342; 0.038060; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.195091;-0.000000; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.195091; 0.000000;-0.980785;, + 0.191342;-0.038060;-0.980785;, + 0.195091;-0.000000; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.191342;-0.038060; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.191342;-0.038060;-0.980785;, + 0.180240;-0.074658;-0.980785;, + 0.191342;-0.038060; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.180240;-0.074658; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.180240;-0.074658;-0.980785;, + 0.162212;-0.108386;-0.980785;, + 0.180240;-0.074658; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.162212;-0.108386; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.162212;-0.108386;-0.980785;, + 0.137950;-0.137950;-0.980785;, + 0.162212;-0.108386; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.137950;-0.137950; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.137950;-0.137950;-0.980785;, + 0.108387;-0.162212;-0.980785;, + 0.137950;-0.137950; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.108387;-0.162212; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.108387;-0.162212;-0.980785;, + 0.074658;-0.180240;-0.980785;, + 0.108387;-0.162212; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.074658;-0.180240; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.074658;-0.180240;-0.980785;, + 0.038061;-0.191342;-0.980785;, + 0.074658;-0.180240; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.038061;-0.191342; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.038061;-0.191342;-0.980785;, + 0.000000;-0.195090;-0.980785;, + 0.038061;-0.191342; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.195090; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.195090;-0.980785;, + -0.038060;-0.191342;-0.980785;, + 0.000000;-0.195090; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.038060;-0.191342; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.038060;-0.191342;-0.980785;, + -0.074657;-0.180240;-0.980785;, + -0.038060;-0.191342; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.074658;-0.180240; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.074657;-0.180240;-0.980785;, + -0.108386;-0.162212;-0.980785;, + -0.074658;-0.180240; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.108386;-0.162212; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.108386;-0.162212;-0.980785;, + -0.137949;-0.137950;-0.980785;, + -0.108386;-0.162212; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.137949;-0.137950; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.137949;-0.137950;-0.980785;, + -0.162211;-0.108386;-0.980785;, + -0.137949;-0.137950; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.162211;-0.108386; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.162211;-0.108386;-0.980785;, + -0.180240;-0.074658;-0.980785;, + -0.162211;-0.108386; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.180240;-0.074658; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.180240;-0.074658;-0.980785;, + -0.191341;-0.038060;-0.980785;, + -0.180240;-0.074658; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.191342;-0.038060; 0.980785;, + -0.961939;-0.191341; 0.195090;, + -0.906127;-0.180240; 0.382683;, + -0.923880; 0.000000; 0.382683;, + -0.980785; 0.000000; 0.195090;, + -0.815492;-0.162211; 0.555570;, + -0.693520;-0.137950; 0.707107;, + -0.707107; 0.000000; 0.707107;, + -0.831470; 0.000000; 0.555570;, + 0.000000; 0.000000;-1.000000;, + -0.191341;-0.038060;-0.980785;, + -0.195090; 0.000000;-0.980785;, + -0.544895;-0.108386; 0.831470;, + -0.375330;-0.074658; 0.923880;, + -0.382683; 0.000000; 0.923880;, + -0.555570; 0.000000; 0.831470;, + -0.375330;-0.074658;-0.923880;, + -0.544895;-0.108386;-0.831470;, + -0.555570; 0.000000;-0.831470;, + -0.382683; 0.000000;-0.923880;, + -0.191342;-0.038060; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.195090; 0.000000; 0.980785;, + -0.693520;-0.137950;-0.707107;, + -0.815492;-0.162211;-0.555570;, + -0.831470; 0.000000;-0.555570;, + -0.707107; 0.000000;-0.707107;, + -0.906127;-0.180240;-0.382683;, + -0.961939;-0.191341;-0.195090;, + -0.980785; 0.000000;-0.195090;, + -0.923880; 0.000000;-0.382683;, + -0.980785;-0.195090; 0.000000;, + -0.961939;-0.191341; 0.195090;, + -0.980785; 0.000000; 0.195090;, + -1.000000; 0.000000; 0.000000;, + -0.906127;-0.180240; 0.382683;, + -0.815492;-0.162211; 0.555570;, + -0.831470; 0.000000; 0.555570;, + -0.923880; 0.000000; 0.382683;, + -0.693520;-0.137950; 0.707107;, + -0.544895;-0.108386; 0.831470;, + -0.555570; 0.000000; 0.831470;, + -0.707107; 0.000000; 0.707107;, + -0.191341;-0.038060;-0.980785;, + -0.375330;-0.074658;-0.923880;, + -0.382683; 0.000000;-0.923880;, + -0.195090; 0.000000;-0.980785;, + -0.375330;-0.074658; 0.923880;, + -0.191342;-0.038060; 0.980785;, + -0.195090; 0.000000; 0.980785;, + -0.382683; 0.000000; 0.923880;, + -0.544895;-0.108386;-0.831470;, + -0.693520;-0.137950;-0.707107;, + -0.707107; 0.000000;-0.707107;, + -0.555570; 0.000000;-0.831470;, + -0.815492;-0.162211;-0.555570;, + -0.906127;-0.180240;-0.382683;, + -0.923880; 0.000000;-0.382683;, + -0.831470; 0.000000;-0.555570;, + -0.961939;-0.191341;-0.195090;, + -0.980785;-0.195090; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.980785; 0.000000;-0.195090;; + 512; + 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;, + 4;195,194,193,192;, + 4;199,198,197,196;, + 4;203,202,201,200;, + 4;207,206,205,204;, + 4;211,210,209,208;, + 4;215,214,213,212;, + 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;, + 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;, + 4;387,386,385,384;, + 4;391,390,389,388;, + 4;395,394,393,392;, + 4;399,398,397,396;, + 4;403,402,401,400;, + 4;407,406,405,404;, + 4;411,410,409,408;, + 4;415,414,413,412;, + 4;419,418,417,416;, + 4;423,422,421,420;, + 4;427,426,425,424;, + 4;431,430,429,428;, + 4;435,434,433,432;, + 4;439,438,437,436;, + 4;443,442,441,440;, + 4;447,446,445,444;, + 4;451,450,449,448;, + 4;455,454,453,452;, + 4;459,458,457,456;, + 4;463,462,461,460;, + 4;467,466,465,464;, + 4;471,470,469,468;, + 4;475,474,473,472;, + 4;479,478,477,476;, + 4;483,482,481,480;, + 4;487,486,485,484;, + 4;491,490,489,488;, + 4;495,494,493,492;, + 4;499,498,497,496;, + 4;503,502,501,500;, + 4;507,506,505,504;, + 4;511,510,509,508;, + 4;515,514,513,512;, + 4;519,518,517,516;, + 4;523,522,521,520;, + 4;527,526,525,524;, + 4;531,530,529,528;, + 4;535,534,533,532;, + 4;539,538,537,536;, + 4;543,542,541,540;, + 4;547,546,545,544;, + 4;551,550,549,548;, + 4;555,554,553,552;, + 4;559,558,557,556;, + 4;563,562,561,560;, + 4;567,566,565,564;, + 4;571,570,569,568;, + 4;575,574,573,572;, + 4;579,578,577,576;, + 4;583,582,581,580;, + 4;587,586,585,584;, + 4;591,590,589,588;, + 4;595,594,593,592;, + 4;599,598,597,596;, + 4;603,602,601,600;, + 4;607,606,605,604;, + 4;611,610,609,608;, + 4;615,614,613,612;, + 4;619,618,617,616;, + 4;623,622,621,620;, + 4;627,626,625,624;, + 4;631,630,629,628;, + 4;635,634,633,632;, + 4;639,638,637,636;, + 4;643,642,641,640;, + 4;647,646,645,644;, + 4;651,650,649,648;, + 4;655,654,653,652;, + 4;659,658,657,656;, + 4;663,662,661,660;, + 4;667,666,665,664;, + 4;671,670,669,668;, + 4;675,674,673,672;, + 4;679,678,677,676;, + 4;683,682,681,680;, + 4;687,686,685,684;, + 4;691,690,689,688;, + 4;695,694,693,692;, + 4;699,698,697,696;, + 4;703,702,701,700;, + 4;707,706,705,704;, + 4;711,710,709,708;, + 4;715,714,713,712;, + 4;719,718,717,716;, + 4;723,722,721,720;, + 4;727,726,725,724;, + 4;731,730,729,728;, + 4;735,734,733,732;, + 4;739,738,737,736;, + 4;743,742,741,740;, + 4;747,746,745,744;, + 4;751,750,749,748;, + 4;755,754,753,752;, + 4;759,758,757,756;, + 4;763,762,761,760;, + 4;767,766,765,764;, + 4;771,770,769,768;, + 4;775,774,773,772;, + 4;779,778,777,776;, + 4;783,782,781,780;, + 4;787,786,785,784;, + 4;791,790,789,788;, + 4;795,794,793,792;, + 4;799,798,797,796;, + 4;803,802,801,800;, + 4;807,806,805,804;, + 4;811,810,809,808;, + 4;815,814,813,812;, + 4;819,818,817,816;, + 4;823,822,821,820;, + 4;827,826,825,824;, + 4;831,830,829,828;, + 4;835,834,833,832;, + 4;839,838,837,836;, + 4;843,842,841,840;, + 4;847,846,845,844;, + 4;851,850,849,848;, + 4;855,854,853,852;, + 4;859,858,857,856;, + 4;863,862,861,860;, + 4;867,866,865,864;, + 4;871,870,869,868;, + 4;875,874,873,872;, + 4;879,878,877,876;, + 4;883,882,881,880;, + 4;887,886,885,884;, + 4;891,890,889,888;, + 4;895,894,893,892;, + 4;899,898,897,896;, + 4;903,902,901,900;, + 4;907,906,905,904;, + 4;911,910,909,908;, + 4;915,914,913,912;, + 4;919,918,917,916;, + 4;923,922,921,920;, + 4;927,926,925,924;, + 4;931,930,929,928;, + 4;935,934,933,932;, + 4;939,938,937,936;, + 4;943,942,941,940;, + 4;947,946,945,944;, + 4;951,950,949,948;, + 4;955,954,953,952;, + 4;959,958,957,956;, + 4;963,962,961,960;, + 4;967,966,965,964;, + 4;971,970,969,968;, + 4;975,974,973,972;, + 4;979,978,977,976;, + 4;983,982,981,980;, + 4;987,986,985,984;, + 4;991,990,989,988;, + 4;995,994,993,992;, + 4;999,998,997,996;, + 4;1003,1002,1001,1000;, + 4;1007,1006,1005,1004;, + 4;1011,1010,1009,1008;, + 4;1015,1014,1013,1012;, + 4;1019,1018,1017,1016;, + 4;1023,1022,1021,1020;, + 4;1027,1026,1025,1024;, + 4;1031,1030,1029,1028;, + 4;1035,1034,1033,1032;, + 4;1039,1038,1037,1036;, + 4;1043,1042,1041,1040;, + 4;1047,1046,1045,1044;, + 4;1051,1050,1049,1048;, + 4;1055,1054,1053,1052;, + 4;1059,1058,1057,1056;, + 4;1063,1062,1061,1060;, + 4;1067,1066,1065,1064;, + 4;1071,1070,1069,1068;, + 4;1075,1074,1073,1072;, + 4;1079,1078,1077,1076;, + 4;1083,1082,1081,1080;, + 4;1087,1086,1085,1084;, + 4;1091,1090,1089,1088;, + 4;1095,1094,1093,1092;, + 4;1099,1098,1097,1096;, + 4;1103,1102,1101,1100;, + 4;1107,1106,1105,1104;, + 4;1111,1110,1109,1108;, + 4;1115,1114,1113,1112;, + 4;1119,1118,1117,1116;, + 4;1123,1122,1121,1120;, + 4;1127,1126,1125,1124;, + 4;1131,1130,1129,1128;, + 4;1135,1134,1133,1132;, + 4;1139,1138,1137,1136;, + 4;1143,1142,1141,1140;, + 4;1147,1146,1145,1144;, + 4;1151,1150,1149,1148;, + 4;1155,1154,1153,1152;, + 4;1159,1158,1157,1156;, + 4;1163,1162,1161,1160;, + 4;1167,1166,1165,1164;, + 4;1171,1170,1169,1168;, + 4;1175,1174,1173,1172;, + 4;1179,1178,1177,1176;, + 4;1183,1182,1181,1180;, + 4;1187,1186,1185,1184;, + 4;1191,1190,1189,1188;, + 4;1195,1194,1193,1192;, + 4;1199,1198,1197,1196;, + 4;1203,1202,1201,1200;, + 4;1207,1206,1205,1204;, + 4;1211,1210,1209,1208;, + 4;1215,1214,1213,1212;, + 4;1219,1218,1217,1216;, + 4;1223,1222,1221,1220;, + 4;1227,1226,1225,1224;, + 4;1231,1230,1229,1228;, + 4;1235,1234,1233,1232;, + 4;1239,1238,1237,1236;, + 4;1243,1242,1241,1240;, + 4;1247,1246,1245,1244;, + 4;1251,1250,1249,1248;, + 4;1255,1254,1253,1252;, + 4;1259,1258,1257,1256;, + 4;1263,1262,1261,1260;, + 4;1267,1266,1265,1264;, + 4;1271,1270,1269,1268;, + 4;1275,1274,1273,1272;, + 4;1279,1278,1277,1276;, + 4;1283,1282,1281,1280;, + 4;1287,1286,1285,1284;, + 4;1291,1290,1289,1288;, + 4;1295,1294,1293,1292;, + 4;1299,1298,1297,1296;, + 4;1303,1302,1301,1300;, + 4;1307,1306,1305,1304;, + 4;1311,1310,1309,1308;, + 4;1315,1314,1313,1312;, + 4;1319,1318,1317,1316;, + 4;1323,1322,1321,1320;, + 4;1327,1326,1325,1324;, + 4;1331,1330,1329,1328;, + 4;1335,1334,1333,1332;, + 4;1339,1338,1337,1336;, + 4;1343,1342,1341,1340;, + 4;1347,1346,1345,1344;, + 4;1351,1350,1349,1348;, + 4;1355,1354,1353,1352;, + 4;1359,1358,1357,1356;, + 4;1363,1362,1361,1360;, + 4;1367,1366,1365,1364;, + 4;1371,1370,1369,1368;, + 4;1375,1374,1373,1372;, + 4;1379,1378,1377,1376;, + 4;1383,1382,1381,1380;, + 4;1387,1386,1385,1384;, + 4;1391,1390,1389,1388;, + 4;1395,1394,1393,1392;, + 4;1399,1398,1397,1396;, + 4;1403,1402,1401,1400;, + 4;1407,1406,1405,1404;, + 4;1411,1410,1409,1408;, + 4;1415,1414,1413,1412;, + 4;1419,1418,1417,1416;, + 4;1423,1422,1421,1420;, + 4;1427,1426,1425,1424;, + 4;1431,1430,1429,1428;, + 4;1435,1434,1433,1432;, + 4;1439,1438,1437,1436;, + 4;1443,1442,1441,1440;, + 4;1447,1446,1445,1444;, + 4;1451,1450,1449,1448;, + 4;1455,1454,1453,1452;, + 4;1459,1458,1457,1456;, + 4;1463,1462,1461,1460;, + 4;1467,1466,1465,1464;, + 4;1471,1470,1469,1468;, + 4;1475,1474,1473,1472;, + 4;1479,1478,1477,1476;, + 4;1483,1482,1481,1480;, + 4;1487,1486,1485,1484;, + 4;1491,1490,1489,1488;, + 4;1495,1494,1493,1492;, + 4;1499,1498,1497,1496;, + 4;1503,1502,1501,1500;, + 4;1507,1506,1505,1504;, + 4;1511,1510,1509,1508;, + 4;1515,1514,1513,1512;, + 4;1519,1518,1517,1516;, + 4;1523,1522,1521,1520;, + 4;1527,1526,1525,1524;, + 4;1531,1530,1529,1528;, + 4;1535,1534,1533,1532;, + 4;1539,1538,1537,1536;, + 4;1543,1542,1541,1540;, + 4;1547,1546,1545,1544;, + 4;1551,1550,1549,1548;, + 4;1555,1554,1553,1552;, + 4;1559,1558,1557,1556;, + 4;1563,1562,1561,1560;, + 4;1567,1566,1565,1564;, + 4;1571,1570,1569,1568;, + 4;1575,1574,1573,1572;, + 4;1579,1578,1577,1576;, + 4;1583,1582,1581,1580;, + 4;1587,1586,1585,1584;, + 4;1591,1590,1589,1588;, + 4;1595,1594,1593,1592;, + 4;1599,1598,1597,1596;, + 4;1603,1602,1601,1600;, + 4;1607,1606,1605,1604;, + 4;1611,1610,1609,1608;, + 4;1615,1614,1613,1612;, + 4;1619,1618,1617,1616;, + 4;1623,1622,1621,1620;, + 4;1627,1626,1625,1624;, + 4;1631,1630,1629,1628;, + 4;1635,1634,1633,1632;, + 4;1639,1638,1637,1636;, + 4;1643,1642,1641,1640;, + 4;1647,1646,1645,1644;, + 4;1651,1650,1649,1648;, + 4;1655,1654,1653,1652;, + 4;1659,1658,1657,1656;, + 4;1663,1662,1661,1660;, + 4;1667,1666,1665,1664;, + 4;1671,1670,1669,1668;, + 4;1675,1674,1673,1672;, + 4;1679,1678,1677,1676;, + 4;1683,1682,1681,1680;, + 4;1687,1686,1685,1684;, + 4;1691,1690,1689,1688;, + 4;1695,1694,1693,1692;, + 4;1699,1698,1697,1696;, + 4;1703,1702,1701,1700;, + 4;1707,1706,1705,1704;, + 4;1711,1710,1709,1708;, + 4;1715,1714,1713,1712;, + 4;1719,1718,1717,1716;, + 4;1723,1722,1721,1720;, + 4;1727,1726,1725,1724;, + 4;1731,1730,1729,1728;, + 4;1735,1734,1733,1732;, + 3;1738,1737,1736;, + 3;1741,1740,1739;, + 3;1744,1743,1742;, + 3;1747,1746,1745;, + 3;1750,1749,1748;, + 3;1753,1752,1751;, + 3;1756,1755,1754;, + 3;1759,1758,1757;, + 3;1762,1761,1760;, + 3;1765,1764,1763;, + 3;1768,1767,1766;, + 3;1771,1770,1769;, + 3;1774,1773,1772;, + 3;1777,1776,1775;, + 3;1780,1779,1778;, + 3;1783,1782,1781;, + 3;1786,1785,1784;, + 3;1789,1788,1787;, + 3;1792,1791,1790;, + 3;1795,1794,1793;, + 3;1798,1797,1796;, + 3;1801,1800,1799;, + 3;1804,1803,1802;, + 3;1807,1806,1805;, + 3;1810,1809,1808;, + 3;1813,1812,1811;, + 3;1816,1815,1814;, + 3;1819,1818,1817;, + 3;1822,1821,1820;, + 3;1825,1824,1823;, + 3;1828,1827,1826;, + 3;1831,1830,1829;, + 3;1834,1833,1832;, + 3;1837,1836,1835;, + 3;1840,1839,1838;, + 3;1843,1842,1841;, + 3;1846,1845,1844;, + 3;1849,1848,1847;, + 3;1852,1851,1850;, + 3;1855,1854,1853;, + 3;1858,1857,1856;, + 3;1861,1860,1859;, + 3;1864,1863,1862;, + 3;1867,1866,1865;, + 3;1870,1869,1868;, + 3;1873,1872,1871;, + 3;1876,1875,1874;, + 3;1879,1878,1877;, + 3;1882,1881,1880;, + 3;1885,1884,1883;, + 3;1888,1887,1886;, + 3;1891,1890,1889;, + 3;1894,1893,1892;, + 3;1897,1896,1895;, + 3;1900,1899,1898;, + 3;1903,1902,1901;, + 3;1906,1905,1904;, + 3;1909,1908,1907;, + 3;1912,1911,1910;, + 3;1915,1914,1913;, + 3;1918,1917,1916;, + 3;1921,1920,1919;, + 4;1925,1924,1923,1922;, + 4;1929,1928,1927,1926;, + 3;1932,1931,1930;, + 4;1936,1935,1934,1933;, + 4;1940,1939,1938,1937;, + 3;1943,1942,1941;, + 4;1947,1946,1945,1944;, + 4;1951,1950,1949,1948;, + 4;1955,1954,1953,1952;, + 4;1959,1958,1957,1956;, + 4;1963,1962,1961,1960;, + 4;1967,1966,1965,1964;, + 4;1971,1970,1969,1968;, + 4;1975,1974,1973,1972;, + 4;1979,1978,1977,1976;, + 4;1983,1982,1981,1980;; + MeshNormals { // Sphere normals + 1984; + -0.710135; 0.000000;-0.704031;, + -0.833338; 0.000000;-0.552751;, + -0.817316; 0.162572;-0.552751;, + -0.696493; 0.138524;-0.704031;, + -0.924741; 0.000000;-0.380535;, + -0.980987; 0.000000;-0.193915;, + -0.962157; 0.191382;-0.193915;, + -0.906980; 0.180395;-0.380535;, + -1.000000; 0.000000; 0.000000;, + -0.980987; 0.000000; 0.193915;, + -0.962157; 0.191382; 0.193915;, + -0.980773; 0.195074; 0.000000;, + -0.924741; 0.000000; 0.380535;, + -0.833338; 0.000000; 0.552751;, + -0.817316; 0.162572; 0.552751;, + -0.906980; 0.180395; 0.380535;, + -0.710135; 0.000000; 0.704031;, + -0.559771; 0.000000; 0.828639;, + -0.548997; 0.109195; 0.828639;, + -0.696493; 0.138524; 0.704031;, + -0.200964; 0.000000;-0.979583;, + -0.387860; 0.000000;-0.921690;, + -0.380413; 0.075655;-0.921690;, + -0.197089; 0.039186;-0.979583;, + -0.387860; 0.000000; 0.921690;, + -0.200964; 0.000000; 0.979583;, + -0.197089; 0.039186; 0.979583;, + -0.380413; 0.075655; 0.921690;, + -0.559771; 0.000000;-0.828639;, + -0.710135; 0.000000;-0.704031;, + -0.696493; 0.138524;-0.704031;, + -0.548997; 0.109195;-0.828639;, + -0.833338; 0.000000;-0.552751;, + -0.924741; 0.000000;-0.380535;, + -0.906980; 0.180395;-0.380535;, + -0.817316; 0.162572;-0.552751;, + -0.980987; 0.000000;-0.193915;, + -1.000000; 0.000000; 0.000000;, + -0.980773; 0.195074; 0.000000;, + -0.962157; 0.191382;-0.193915;, + -0.980987; 0.000000; 0.193915;, + -0.924741; 0.000000; 0.380535;, + -0.906980; 0.180395; 0.380535;, + -0.962157; 0.191382; 0.193915;, + -0.833338; 0.000000; 0.552751;, + -0.710135; 0.000000; 0.704031;, + -0.696493; 0.138524; 0.704031;, + -0.817316; 0.162572; 0.552751;, + -0.559771; 0.000000; 0.828639;, + -0.387860; 0.000000; 0.921690;, + -0.380413; 0.075655; 0.921690;, + -0.548997; 0.109195; 0.828639;, + -0.387860; 0.000000;-0.921690;, + -0.559771; 0.000000;-0.828639;, + -0.548997; 0.109195;-0.828639;, + -0.380413; 0.075655;-0.921690;, + -0.962157; 0.191382; 0.193915;, + -0.906980; 0.180395; 0.380535;, + -0.854366; 0.353862; 0.380535;, + -0.906339; 0.375408; 0.193915;, + -0.817316; 0.162572; 0.552751;, + -0.696493; 0.138524; 0.704031;, + -0.656056; 0.271737; 0.704031;, + -0.769890; 0.318888; 0.552751;, + -0.548997; 0.109195; 0.828639;, + -0.380413; 0.075655; 0.921690;, + -0.358348; 0.148412; 0.921690;, + -0.517136; 0.214209; 0.828639;, + -0.380413; 0.075655;-0.921690;, + -0.548997; 0.109195;-0.828639;, + -0.517136; 0.214209;-0.828639;, + -0.358348; 0.148412;-0.921690;, + -0.696493; 0.138524;-0.704031;, + -0.817316; 0.162572;-0.552751;, + -0.769890; 0.318888;-0.552751;, + -0.656056; 0.271737;-0.704031;, + -0.906980; 0.180395;-0.380535;, + -0.962157; 0.191382;-0.193915;, + -0.906339; 0.375408;-0.193915;, + -0.854366; 0.353893;-0.380535;, + -0.980773; 0.195074; 0.000000;, + -0.962157; 0.191382; 0.193915;, + -0.906339; 0.375408; 0.193915;, + -0.923856; 0.382672; 0.000000;, + -0.906980; 0.180395; 0.380535;, + -0.817316; 0.162572; 0.552751;, + -0.769890; 0.318888; 0.552751;, + -0.854366; 0.353862; 0.380535;, + -0.696493; 0.138524; 0.704031;, + -0.548997; 0.109195; 0.828639;, + -0.517136; 0.214209; 0.828639;, + -0.656056; 0.271737; 0.704031;, + -0.197089; 0.039186;-0.979583;, + -0.380413; 0.075655;-0.921690;, + -0.358348; 0.148412;-0.921690;, + -0.185644; 0.076907;-0.979583;, + -0.380413; 0.075655; 0.921690;, + -0.197089; 0.039186; 0.979583;, + -0.185644; 0.076907; 0.979583;, + -0.358348; 0.148412; 0.921690;, + -0.548997; 0.109195;-0.828639;, + -0.696493; 0.138524;-0.704031;, + -0.656056; 0.271737;-0.704031;, + -0.517136; 0.214209;-0.828639;, + -0.817316; 0.162572;-0.552751;, + -0.906980; 0.180395;-0.380535;, + -0.854366; 0.353893;-0.380535;, + -0.769890; 0.318888;-0.552751;, + -0.962157; 0.191382;-0.193915;, + -0.980773; 0.195074; 0.000000;, + -0.923856; 0.382672; 0.000000;, + -0.906339; 0.375408;-0.193915;, + -0.906339; 0.375408; 0.193915;, + -0.854366; 0.353862; 0.380535;, + -0.768914; 0.513749; 0.380535;, + -0.815668; 0.545000; 0.193915;, + -0.769890; 0.318888; 0.552751;, + -0.656056; 0.271737; 0.704031;, + -0.590442; 0.394513; 0.704031;, + -0.692892; 0.462966; 0.552751;, + -0.517136; 0.214209; 0.828639;, + -0.358348; 0.148412; 0.921690;, + -0.322489; 0.215491; 0.921690;, + -0.465407; 0.310984; 0.828639;, + -0.358348; 0.148412;-0.921690;, + -0.517136; 0.214209;-0.828639;, + -0.465407; 0.310984;-0.828639;, + -0.322489; 0.215491;-0.921690;, + -0.656056; 0.271737;-0.704031;, + -0.769890; 0.318888;-0.552751;, + -0.692892; 0.462966;-0.552751;, + -0.590442; 0.394513;-0.704031;, + -0.854366; 0.353893;-0.380535;, + -0.906339; 0.375408;-0.193915;, + -0.815668; 0.545000;-0.193915;, + -0.768914; 0.513749;-0.380535;, + -0.923856; 0.382672; 0.000000;, + -0.906339; 0.375408; 0.193915;, + -0.815668; 0.545000; 0.193915;, + -0.831446; 0.555559; 0.000000;, + -0.854366; 0.353862; 0.380535;, + -0.769890; 0.318888; 0.552751;, + -0.692892; 0.462966; 0.552751;, + -0.768914; 0.513749; 0.380535;, + -0.656056; 0.271737; 0.704031;, + -0.517136; 0.214209; 0.828639;, + -0.465407; 0.310984; 0.828639;, + -0.590442; 0.394513; 0.704031;, + -0.185644; 0.076907;-0.979583;, + -0.358348; 0.148412;-0.921690;, + -0.322489; 0.215491;-0.921690;, + -0.167089; 0.111637;-0.979583;, + -0.358348; 0.148412; 0.921690;, + -0.185644; 0.076907; 0.979583;, + -0.167089; 0.111637; 0.979583;, + -0.322489; 0.215491; 0.921690;, + -0.517136; 0.214209;-0.828639;, + -0.656056; 0.271737;-0.704031;, + -0.590442; 0.394513;-0.704031;, + -0.465407; 0.310984;-0.828639;, + -0.769890; 0.318888;-0.552751;, + -0.854366; 0.353893;-0.380535;, + -0.768914; 0.513749;-0.380535;, + -0.692892; 0.462966;-0.552751;, + -0.906339; 0.375408;-0.193915;, + -0.923856; 0.382672; 0.000000;, + -0.831446; 0.555559; 0.000000;, + -0.815668; 0.545000;-0.193915;, + -0.815668; 0.545000; 0.193915;, + -0.768914; 0.513749; 0.380535;, + -0.653890; 0.653890; 0.380535;, + -0.693655; 0.693655; 0.193915;, + -0.692892; 0.462966; 0.552751;, + -0.590442; 0.394513; 0.704031;, + -0.502121; 0.502121; 0.704031;, + -0.589251; 0.589251; 0.552751;, + -0.465407; 0.310984; 0.828639;, + -0.322489; 0.215491; 0.921690;, + -0.274270; 0.274270; 0.921690;, + -0.395795; 0.395795; 0.828639;, + -0.322489; 0.215491;-0.921690;, + -0.465407; 0.310984;-0.828639;, + -0.395795; 0.395795;-0.828639;, + -0.274270; 0.274270;-0.921690;, + -0.590442; 0.394513;-0.704031;, + -0.692892; 0.462966;-0.552751;, + -0.589251; 0.589251;-0.552751;, + -0.502121; 0.502121;-0.704031;, + -0.768914; 0.513749;-0.380535;, + -0.815668; 0.545000;-0.193915;, + -0.693655; 0.693655;-0.193915;, + -0.653890; 0.653890;-0.380535;, + -0.831446; 0.555559; 0.000000;, + -0.815668; 0.545000; 0.193915;, + -0.693655; 0.693655; 0.193915;, + -0.707083; 0.707083; 0.000000;, + -0.768914; 0.513749; 0.380535;, + -0.692892; 0.462966; 0.552751;, + -0.589251; 0.589251; 0.552751;, + -0.653890; 0.653890; 0.380535;, + -0.590442; 0.394513; 0.704031;, + -0.465407; 0.310984; 0.828639;, + -0.395795; 0.395795; 0.828639;, + -0.502121; 0.502121; 0.704031;, + -0.167089; 0.111637;-0.979583;, + -0.322489; 0.215491;-0.921690;, + -0.274270; 0.274270;-0.921690;, + -0.142094; 0.142094;-0.979583;, + -0.322489; 0.215491; 0.921690;, + -0.167089; 0.111637; 0.979583;, + -0.142094; 0.142094; 0.979583;, + -0.274270; 0.274270; 0.921690;, + -0.465407; 0.310984;-0.828639;, + -0.590442; 0.394513;-0.704031;, + -0.502121; 0.502121;-0.704031;, + -0.395795; 0.395795;-0.828639;, + -0.692892; 0.462966;-0.552751;, + -0.768914; 0.513749;-0.380535;, + -0.653890; 0.653890;-0.380535;, + -0.589251; 0.589251;-0.552751;, + -0.815668; 0.545000;-0.193915;, + -0.831446; 0.555559; 0.000000;, + -0.707083; 0.707083; 0.000000;, + -0.693655; 0.693655;-0.193915;, + -0.693655; 0.693655; 0.193915;, + -0.653890; 0.653890; 0.380535;, + -0.513749; 0.768914; 0.380535;, + -0.545000; 0.815668; 0.193915;, + -0.589251; 0.589251; 0.552751;, + -0.502121; 0.502121; 0.704031;, + -0.394513; 0.590442; 0.704031;, + -0.462966; 0.692892; 0.552751;, + -0.395795; 0.395795; 0.828639;, + -0.274270; 0.274270; 0.921690;, + -0.215491; 0.322489; 0.921690;, + -0.310984; 0.465407; 0.828639;, + -0.274270; 0.274270;-0.921690;, + -0.395795; 0.395795;-0.828639;, + -0.310984; 0.465407;-0.828639;, + -0.215491; 0.322489;-0.921690;, + -0.502121; 0.502121;-0.704031;, + -0.589251; 0.589251;-0.552751;, + -0.462966; 0.692892;-0.552751;, + -0.394513; 0.590442;-0.704031;, + -0.653890; 0.653890;-0.380535;, + -0.693655; 0.693655;-0.193915;, + -0.545000; 0.815668;-0.193915;, + -0.513749; 0.768914;-0.380535;, + -0.707083; 0.707083; 0.000000;, + -0.693655; 0.693655; 0.193915;, + -0.545000; 0.815668; 0.193915;, + -0.555559; 0.831446; 0.000000;, + -0.653890; 0.653890; 0.380535;, + -0.589251; 0.589251; 0.552751;, + -0.462966; 0.692892; 0.552751;, + -0.513749; 0.768914; 0.380535;, + -0.502121; 0.502121; 0.704031;, + -0.395795; 0.395795; 0.828639;, + -0.310984; 0.465407; 0.828639;, + -0.394513; 0.590442; 0.704031;, + -0.142094; 0.142094;-0.979583;, + -0.274270; 0.274270;-0.921690;, + -0.215491; 0.322489;-0.921690;, + -0.111637; 0.167089;-0.979583;, + -0.274270; 0.274270; 0.921690;, + -0.142094; 0.142094; 0.979583;, + -0.111637; 0.167089; 0.979583;, + -0.215491; 0.322489; 0.921690;, + -0.395795; 0.395795;-0.828639;, + -0.502121; 0.502121;-0.704031;, + -0.394513; 0.590442;-0.704031;, + -0.310984; 0.465407;-0.828639;, + -0.589251; 0.589251;-0.552751;, + -0.653890; 0.653890;-0.380535;, + -0.513749; 0.768914;-0.380535;, + -0.462966; 0.692892;-0.552751;, + -0.693655; 0.693655;-0.193915;, + -0.707083; 0.707083; 0.000000;, + -0.555559; 0.831446; 0.000000;, + -0.545000; 0.815668;-0.193915;, + -0.545000; 0.815668; 0.193915;, + -0.513749; 0.768914; 0.380535;, + -0.353862; 0.854366; 0.380535;, + -0.375408; 0.906339; 0.193915;, + -0.462966; 0.692892; 0.552751;, + -0.394513; 0.590442; 0.704031;, + -0.271737; 0.656056; 0.704031;, + -0.318888; 0.769890; 0.552751;, + -0.310984; 0.465407; 0.828639;, + -0.215491; 0.322489; 0.921690;, + -0.148412; 0.358348; 0.921690;, + -0.214209; 0.517136; 0.828639;, + -0.215491; 0.322489;-0.921690;, + -0.310984; 0.465407;-0.828639;, + -0.214209; 0.517136;-0.828639;, + -0.148412; 0.358348;-0.921690;, + -0.394513; 0.590442;-0.704031;, + -0.462966; 0.692892;-0.552751;, + -0.318888; 0.769890;-0.552751;, + -0.271737; 0.656056;-0.704031;, + -0.513749; 0.768914;-0.380535;, + -0.545000; 0.815668;-0.193915;, + -0.375408; 0.906339;-0.193915;, + -0.353862; 0.854366;-0.380535;, + -0.555559; 0.831446; 0.000000;, + -0.545000; 0.815668; 0.193915;, + -0.375408; 0.906339; 0.193915;, + -0.382672; 0.923856; 0.000000;, + -0.513749; 0.768914; 0.380535;, + -0.462966; 0.692892; 0.552751;, + -0.318888; 0.769890; 0.552751;, + -0.353862; 0.854366; 0.380535;, + -0.394513; 0.590442; 0.704031;, + -0.310984; 0.465407; 0.828639;, + -0.214209; 0.517136; 0.828639;, + -0.271737; 0.656056; 0.704031;, + -0.111637; 0.167089;-0.979583;, + -0.215491; 0.322489;-0.921690;, + -0.148412; 0.358348;-0.921690;, + -0.076907; 0.185644;-0.979583;, + -0.215491; 0.322489; 0.921690;, + -0.111637; 0.167089; 0.979583;, + -0.076907; 0.185644; 0.979583;, + -0.148412; 0.358348; 0.921690;, + -0.310984; 0.465407;-0.828639;, + -0.394513; 0.590442;-0.704031;, + -0.271737; 0.656056;-0.704031;, + -0.214209; 0.517136;-0.828639;, + -0.462966; 0.692892;-0.552751;, + -0.513749; 0.768914;-0.380535;, + -0.353862; 0.854366;-0.380535;, + -0.318888; 0.769890;-0.552751;, + -0.545000; 0.815668;-0.193915;, + -0.555559; 0.831446; 0.000000;, + -0.382672; 0.923856; 0.000000;, + -0.375408; 0.906339;-0.193915;, + -0.375408; 0.906339; 0.193915;, + -0.353862; 0.854366; 0.380535;, + -0.180395; 0.906980; 0.380535;, + -0.191382; 0.962157; 0.193915;, + -0.318888; 0.769890; 0.552751;, + -0.271737; 0.656056; 0.704031;, + -0.138524; 0.696493; 0.704031;, + -0.162572; 0.817316; 0.552751;, + -0.214209; 0.517136; 0.828639;, + -0.148412; 0.358348; 0.921690;, + -0.075655; 0.380413; 0.921690;, + -0.109195; 0.548997; 0.828639;, + -0.148412; 0.358348;-0.921690;, + -0.214209; 0.517136;-0.828639;, + -0.109195; 0.548997;-0.828639;, + -0.075655; 0.380413;-0.921690;, + -0.271737; 0.656056;-0.704031;, + -0.318888; 0.769890;-0.552751;, + -0.162572; 0.817316;-0.552751;, + -0.138524; 0.696493;-0.704031;, + -0.353862; 0.854366;-0.380535;, + -0.375408; 0.906339;-0.193915;, + -0.191382; 0.962157;-0.193915;, + -0.180395; 0.906980;-0.380535;, + -0.382672; 0.923856; 0.000000;, + -0.375408; 0.906339; 0.193915;, + -0.191382; 0.962157; 0.193915;, + -0.195074; 0.980773; 0.000000;, + -0.353862; 0.854366; 0.380535;, + -0.318888; 0.769890; 0.552751;, + -0.162572; 0.817316; 0.552751;, + -0.180395; 0.906980; 0.380535;, + -0.271737; 0.656056; 0.704031;, + -0.214209; 0.517136; 0.828639;, + -0.109195; 0.548997; 0.828639;, + -0.138524; 0.696493; 0.704031;, + -0.076907; 0.185644;-0.979583;, + -0.148412; 0.358348;-0.921690;, + -0.075655; 0.380413;-0.921690;, + -0.039186; 0.197089;-0.979583;, + -0.148412; 0.358348; 0.921690;, + -0.076907; 0.185644; 0.979583;, + -0.039186; 0.197089; 0.979583;, + -0.075655; 0.380413; 0.921690;, + -0.214209; 0.517136;-0.828639;, + -0.271737; 0.656056;-0.704031;, + -0.138524; 0.696493;-0.704031;, + -0.109195; 0.548997;-0.828639;, + -0.318888; 0.769890;-0.552751;, + -0.353862; 0.854366;-0.380535;, + -0.180395; 0.906980;-0.380535;, + -0.162572; 0.817316;-0.552751;, + -0.375408; 0.906339;-0.193915;, + -0.382672; 0.923856; 0.000000;, + -0.195074; 0.980773; 0.000000;, + -0.191382; 0.962157;-0.193915;, + -0.191382; 0.962157; 0.193915;, + -0.180395; 0.906980; 0.380535;, + 0.000000; 0.924741; 0.380535;, + 0.000000; 0.980987; 0.193915;, + -0.162572; 0.817316; 0.552751;, + -0.138524; 0.696493; 0.704031;, + 0.000000; 0.710135; 0.704031;, + 0.000000; 0.833338; 0.552751;, + -0.109195; 0.548997; 0.828639;, + -0.075655; 0.380413; 0.921690;, + 0.000000; 0.387860; 0.921690;, + 0.000000; 0.559771; 0.828639;, + -0.075655; 0.380413;-0.921690;, + -0.109195; 0.548997;-0.828639;, + 0.000000; 0.559771;-0.828639;, + 0.000000; 0.387860;-0.921690;, + -0.138524; 0.696493;-0.704031;, + -0.162572; 0.817316;-0.552751;, + 0.000000; 0.833338;-0.552751;, + 0.000000; 0.710135;-0.704031;, + -0.180395; 0.906980;-0.380535;, + -0.191382; 0.962157;-0.193915;, + 0.000000; 0.980987;-0.193915;, + 0.000000; 0.924741;-0.380535;, + -0.195074; 0.980773; 0.000000;, + -0.191382; 0.962157; 0.193915;, + 0.000000; 0.980987; 0.193915;, + 0.000000; 1.000000; 0.000000;, + -0.180395; 0.906980; 0.380535;, + -0.162572; 0.817316; 0.552751;, + 0.000000; 0.833338; 0.552751;, + 0.000000; 0.924741; 0.380535;, + -0.138524; 0.696493; 0.704031;, + -0.109195; 0.548997; 0.828639;, + 0.000000; 0.559771; 0.828639;, + 0.000000; 0.710135; 0.704031;, + -0.039186; 0.197089;-0.979583;, + -0.075655; 0.380413;-0.921690;, + 0.000000; 0.387860;-0.921690;, + 0.000000; 0.200964;-0.979583;, + -0.075655; 0.380413; 0.921690;, + -0.039186; 0.197089; 0.979583;, + 0.000000; 0.200964; 0.979583;, + 0.000000; 0.387860; 0.921690;, + -0.109195; 0.548997;-0.828639;, + -0.138524; 0.696493;-0.704031;, + 0.000000; 0.710135;-0.704031;, + 0.000000; 0.559771;-0.828639;, + -0.162572; 0.817316;-0.552751;, + -0.180395; 0.906980;-0.380535;, + 0.000000; 0.924741;-0.380535;, + 0.000000; 0.833338;-0.552751;, + -0.191382; 0.962157;-0.193915;, + -0.195074; 0.980773; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.980987;-0.193915;, + 0.000000; 0.980987; 0.193915;, + 0.000000; 0.924741; 0.380535;, + 0.180395; 0.906980; 0.380535;, + 0.191382; 0.962157; 0.193915;, + 0.000000; 0.833338; 0.552751;, + 0.000000; 0.710135; 0.704031;, + 0.138524; 0.696493; 0.704031;, + 0.162572; 0.817316; 0.552751;, + 0.000000; 0.559771; 0.828639;, + 0.000000; 0.387860; 0.921690;, + 0.075655; 0.380413; 0.921690;, + 0.109195; 0.548997; 0.828639;, + 0.000000; 0.387860;-0.921690;, + 0.000000; 0.559771;-0.828639;, + 0.109195; 0.548997;-0.828639;, + 0.075655; 0.380413;-0.921690;, + 0.000000; 0.710135;-0.704031;, + 0.000000; 0.833338;-0.552751;, + 0.162572; 0.817316;-0.552751;, + 0.138524; 0.696493;-0.704031;, + 0.000000; 0.924741;-0.380535;, + 0.000000; 0.980987;-0.193915;, + 0.191382; 0.962157;-0.193915;, + 0.180395; 0.906980;-0.380535;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.980987; 0.193915;, + 0.191382; 0.962157; 0.193915;, + 0.195074; 0.980773; 0.000000;, + 0.000000; 0.924741; 0.380535;, + 0.000000; 0.833338; 0.552751;, + 0.162572; 0.817316; 0.552751;, + 0.180395; 0.906980; 0.380535;, + 0.000000; 0.710135; 0.704031;, + 0.000000; 0.559771; 0.828639;, + 0.109195; 0.548997; 0.828639;, + 0.138524; 0.696493; 0.704031;, + 0.000000; 0.200964;-0.979583;, + 0.000000; 0.387860;-0.921690;, + 0.075655; 0.380413;-0.921690;, + 0.039186; 0.197089;-0.979583;, + 0.000000; 0.387860; 0.921690;, + 0.000000; 0.200964; 0.979583;, + 0.039186; 0.197089; 0.979583;, + 0.075655; 0.380413; 0.921690;, + 0.000000; 0.559771;-0.828639;, + 0.000000; 0.710135;-0.704031;, + 0.138524; 0.696493;-0.704031;, + 0.109195; 0.548997;-0.828639;, + 0.000000; 0.833338;-0.552751;, + 0.000000; 0.924741;-0.380535;, + 0.180395; 0.906980;-0.380535;, + 0.162572; 0.817316;-0.552751;, + 0.000000; 0.980987;-0.193915;, + 0.000000; 1.000000; 0.000000;, + 0.195074; 0.980773; 0.000000;, + 0.191382; 0.962157;-0.193915;, + 0.191382; 0.962157; 0.193915;, + 0.180395; 0.906980; 0.380535;, + 0.353862; 0.854366; 0.380535;, + 0.375408; 0.906339; 0.193915;, + 0.162572; 0.817316; 0.552751;, + 0.138524; 0.696493; 0.704031;, + 0.271737; 0.656056; 0.704031;, + 0.318888; 0.769890; 0.552751;, + 0.109195; 0.548997; 0.828639;, + 0.075655; 0.380413; 0.921690;, + 0.148412; 0.358348; 0.921690;, + 0.214209; 0.517136; 0.828639;, + 0.075655; 0.380413;-0.921690;, + 0.109195; 0.548997;-0.828639;, + 0.214209; 0.517136;-0.828639;, + 0.148412; 0.358348;-0.921690;, + 0.138524; 0.696493;-0.704031;, + 0.162572; 0.817316;-0.552751;, + 0.318888; 0.769890;-0.552751;, + 0.271737; 0.656056;-0.704031;, + 0.180395; 0.906980;-0.380535;, + 0.191382; 0.962157;-0.193915;, + 0.375408; 0.906339;-0.193915;, + 0.353862; 0.854366;-0.380535;, + 0.195074; 0.980773; 0.000000;, + 0.191382; 0.962157; 0.193915;, + 0.375408; 0.906339; 0.193915;, + 0.382672; 0.923856; 0.000000;, + 0.180395; 0.906980; 0.380535;, + 0.162572; 0.817316; 0.552751;, + 0.318888; 0.769890; 0.552751;, + 0.353862; 0.854366; 0.380535;, + 0.138524; 0.696493; 0.704031;, + 0.109195; 0.548997; 0.828639;, + 0.214209; 0.517136; 0.828639;, + 0.271737; 0.656056; 0.704031;, + 0.039186; 0.197089;-0.979583;, + 0.075655; 0.380413;-0.921690;, + 0.148412; 0.358348;-0.921690;, + 0.076907; 0.185644;-0.979583;, + 0.075655; 0.380413; 0.921690;, + 0.039186; 0.197089; 0.979583;, + 0.076907; 0.185644; 0.979583;, + 0.148412; 0.358348; 0.921690;, + 0.109195; 0.548997;-0.828639;, + 0.138524; 0.696493;-0.704031;, + 0.271737; 0.656056;-0.704031;, + 0.214209; 0.517136;-0.828639;, + 0.162572; 0.817316;-0.552751;, + 0.180395; 0.906980;-0.380535;, + 0.353862; 0.854366;-0.380535;, + 0.318888; 0.769890;-0.552751;, + 0.191382; 0.962157;-0.193915;, + 0.195074; 0.980773; 0.000000;, + 0.382672; 0.923856; 0.000000;, + 0.375408; 0.906339;-0.193915;, + 0.375408; 0.906339; 0.193915;, + 0.353862; 0.854366; 0.380535;, + 0.513749; 0.768914; 0.380535;, + 0.545000; 0.815668; 0.193915;, + 0.318888; 0.769890; 0.552751;, + 0.271737; 0.656056; 0.704031;, + 0.394513; 0.590442; 0.704031;, + 0.462966; 0.692892; 0.552751;, + 0.214209; 0.517136; 0.828639;, + 0.148412; 0.358348; 0.921690;, + 0.215491; 0.322489; 0.921690;, + 0.310984; 0.465407; 0.828639;, + 0.148412; 0.358348;-0.921690;, + 0.214209; 0.517136;-0.828639;, + 0.310984; 0.465407;-0.828639;, + 0.215491; 0.322489;-0.921690;, + 0.271737; 0.656056;-0.704031;, + 0.318888; 0.769890;-0.552751;, + 0.462966; 0.692892;-0.552751;, + 0.394513; 0.590442;-0.704031;, + 0.353862; 0.854366;-0.380535;, + 0.375408; 0.906339;-0.193915;, + 0.545000; 0.815668;-0.193915;, + 0.513749; 0.768914;-0.380535;, + 0.382672; 0.923856; 0.000000;, + 0.375408; 0.906339; 0.193915;, + 0.545000; 0.815668; 0.193915;, + 0.555559; 0.831446; 0.000000;, + 0.353862; 0.854366; 0.380535;, + 0.318888; 0.769890; 0.552751;, + 0.462966; 0.692892; 0.552751;, + 0.513749; 0.768914; 0.380535;, + 0.271737; 0.656056; 0.704031;, + 0.214209; 0.517136; 0.828639;, + 0.310984; 0.465407; 0.828639;, + 0.394513; 0.590442; 0.704031;, + 0.076907; 0.185644;-0.979583;, + 0.148412; 0.358348;-0.921690;, + 0.215491; 0.322489;-0.921690;, + 0.111637; 0.167089;-0.979583;, + 0.148412; 0.358348; 0.921690;, + 0.076907; 0.185644; 0.979583;, + 0.111637; 0.167089; 0.979583;, + 0.215491; 0.322489; 0.921690;, + 0.214209; 0.517136;-0.828639;, + 0.271737; 0.656056;-0.704031;, + 0.394513; 0.590442;-0.704031;, + 0.310984; 0.465407;-0.828639;, + 0.318888; 0.769890;-0.552751;, + 0.353862; 0.854366;-0.380535;, + 0.513749; 0.768914;-0.380535;, + 0.462966; 0.692892;-0.552751;, + 0.375408; 0.906339;-0.193915;, + 0.382672; 0.923856; 0.000000;, + 0.555559; 0.831446; 0.000000;, + 0.545000; 0.815668;-0.193915;, + 0.545000; 0.815668; 0.193915;, + 0.513749; 0.768914; 0.380535;, + 0.653890; 0.653890; 0.380535;, + 0.693655; 0.693655; 0.193915;, + 0.462966; 0.692892; 0.552751;, + 0.394513; 0.590442; 0.704031;, + 0.502121; 0.502121; 0.704031;, + 0.589251; 0.589251; 0.552751;, + 0.310984; 0.465407; 0.828639;, + 0.215491; 0.322489; 0.921690;, + 0.274270; 0.274270; 0.921690;, + 0.395795; 0.395795; 0.828639;, + 0.215491; 0.322489;-0.921690;, + 0.310984; 0.465407;-0.828639;, + 0.395795; 0.395795;-0.828639;, + 0.274270; 0.274270;-0.921690;, + 0.394513; 0.590442;-0.704031;, + 0.462966; 0.692892;-0.552751;, + 0.589251; 0.589251;-0.552751;, + 0.502121; 0.502121;-0.704031;, + 0.513749; 0.768914;-0.380535;, + 0.545000; 0.815668;-0.193915;, + 0.693655; 0.693655;-0.193915;, + 0.653890; 0.653890;-0.380535;, + 0.555559; 0.831446; 0.000000;, + 0.545000; 0.815668; 0.193915;, + 0.693655; 0.693655; 0.193915;, + 0.707083; 0.707083; 0.000000;, + 0.513749; 0.768914; 0.380535;, + 0.462966; 0.692892; 0.552751;, + 0.589251; 0.589251; 0.552751;, + 0.653890; 0.653890; 0.380535;, + 0.394513; 0.590442; 0.704031;, + 0.310984; 0.465407; 0.828639;, + 0.395795; 0.395795; 0.828639;, + 0.502121; 0.502121; 0.704031;, + 0.111637; 0.167089;-0.979583;, + 0.215491; 0.322489;-0.921690;, + 0.274270; 0.274270;-0.921690;, + 0.142094; 0.142094;-0.979583;, + 0.215491; 0.322489; 0.921690;, + 0.111637; 0.167089; 0.979583;, + 0.142094; 0.142094; 0.979583;, + 0.274270; 0.274270; 0.921690;, + 0.310984; 0.465407;-0.828639;, + 0.394513; 0.590442;-0.704031;, + 0.502121; 0.502121;-0.704031;, + 0.395795; 0.395795;-0.828639;, + 0.462966; 0.692892;-0.552751;, + 0.513749; 0.768914;-0.380535;, + 0.653890; 0.653890;-0.380535;, + 0.589251; 0.589251;-0.552751;, + 0.545000; 0.815668;-0.193915;, + 0.555559; 0.831446; 0.000000;, + 0.707083; 0.707083; 0.000000;, + 0.693655; 0.693655;-0.193915;, + 0.693655; 0.693655; 0.193915;, + 0.653890; 0.653890; 0.380535;, + 0.768914; 0.513749; 0.380535;, + 0.815668; 0.545000; 0.193915;, + 0.589251; 0.589251; 0.552751;, + 0.502121; 0.502121; 0.704031;, + 0.590442; 0.394513; 0.704031;, + 0.692892; 0.462966; 0.552751;, + 0.395795; 0.395795; 0.828639;, + 0.274270; 0.274270; 0.921690;, + 0.322489; 0.215491; 0.921690;, + 0.465407; 0.310984; 0.828639;, + 0.274270; 0.274270;-0.921690;, + 0.395795; 0.395795;-0.828639;, + 0.465407; 0.310984;-0.828639;, + 0.322489; 0.215491;-0.921690;, + 0.502121; 0.502121;-0.704031;, + 0.589251; 0.589251;-0.552751;, + 0.692892; 0.462966;-0.552751;, + 0.590442; 0.394513;-0.704031;, + 0.653890; 0.653890;-0.380535;, + 0.693655; 0.693655;-0.193915;, + 0.815668; 0.545000;-0.193915;, + 0.768914; 0.513749;-0.380535;, + 0.707083; 0.707083; 0.000000;, + 0.693655; 0.693655; 0.193915;, + 0.815668; 0.545000; 0.193915;, + 0.831446; 0.555559; 0.000000;, + 0.653890; 0.653890; 0.380535;, + 0.589251; 0.589251; 0.552751;, + 0.692892; 0.462966; 0.552751;, + 0.768914; 0.513749; 0.380535;, + 0.502121; 0.502121; 0.704031;, + 0.395795; 0.395795; 0.828639;, + 0.465407; 0.310984; 0.828639;, + 0.590442; 0.394513; 0.704031;, + 0.142094; 0.142094;-0.979583;, + 0.274270; 0.274270;-0.921690;, + 0.322489; 0.215491;-0.921690;, + 0.167089; 0.111637;-0.979583;, + 0.274270; 0.274270; 0.921690;, + 0.142094; 0.142094; 0.979583;, + 0.167089; 0.111637; 0.979583;, + 0.322489; 0.215491; 0.921690;, + 0.395795; 0.395795;-0.828639;, + 0.502121; 0.502121;-0.704031;, + 0.590442; 0.394513;-0.704031;, + 0.465407; 0.310984;-0.828639;, + 0.589251; 0.589251;-0.552751;, + 0.653890; 0.653890;-0.380535;, + 0.768914; 0.513749;-0.380535;, + 0.692892; 0.462966;-0.552751;, + 0.693655; 0.693655;-0.193915;, + 0.707083; 0.707083; 0.000000;, + 0.831446; 0.555559; 0.000000;, + 0.815668; 0.545000;-0.193915;, + 0.815668; 0.545000; 0.193915;, + 0.768914; 0.513749; 0.380535;, + 0.854366; 0.353862; 0.380535;, + 0.906339; 0.375408; 0.193915;, + 0.692892; 0.462966; 0.552751;, + 0.590442; 0.394513; 0.704031;, + 0.656056; 0.271737; 0.704031;, + 0.769890; 0.318888; 0.552751;, + 0.465407; 0.310984; 0.828639;, + 0.322489; 0.215491; 0.921690;, + 0.358348; 0.148412; 0.921690;, + 0.517136; 0.214209; 0.828639;, + 0.322489; 0.215491;-0.921690;, + 0.465407; 0.310984;-0.828639;, + 0.517136; 0.214209;-0.828639;, + 0.358348; 0.148412;-0.921690;, + 0.590442; 0.394513;-0.704031;, + 0.692892; 0.462966;-0.552751;, + 0.769890; 0.318888;-0.552751;, + 0.656056; 0.271737;-0.704031;, + 0.768914; 0.513749;-0.380535;, + 0.815668; 0.545000;-0.193915;, + 0.906339; 0.375408;-0.193915;, + 0.854366; 0.353862;-0.380535;, + 0.831446; 0.555559; 0.000000;, + 0.815668; 0.545000; 0.193915;, + 0.906339; 0.375408; 0.193915;, + 0.923856; 0.382672; 0.000000;, + 0.768914; 0.513749; 0.380535;, + 0.692892; 0.462966; 0.552751;, + 0.769890; 0.318888; 0.552751;, + 0.854366; 0.353862; 0.380535;, + 0.590442; 0.394513; 0.704031;, + 0.465407; 0.310984; 0.828639;, + 0.517136; 0.214209; 0.828639;, + 0.656056; 0.271737; 0.704031;, + 0.167089; 0.111637;-0.979583;, + 0.322489; 0.215491;-0.921690;, + 0.358348; 0.148412;-0.921690;, + 0.185644; 0.076907;-0.979583;, + 0.322489; 0.215491; 0.921690;, + 0.167089; 0.111637; 0.979583;, + 0.185644; 0.076907; 0.979583;, + 0.358348; 0.148412; 0.921690;, + 0.465407; 0.310984;-0.828639;, + 0.590442; 0.394513;-0.704031;, + 0.656056; 0.271737;-0.704031;, + 0.517136; 0.214209;-0.828639;, + 0.692892; 0.462966;-0.552751;, + 0.768914; 0.513749;-0.380535;, + 0.854366; 0.353862;-0.380535;, + 0.769890; 0.318888;-0.552751;, + 0.815668; 0.545000;-0.193915;, + 0.831446; 0.555559; 0.000000;, + 0.923856; 0.382672; 0.000000;, + 0.906339; 0.375408;-0.193915;, + 0.906339; 0.375408; 0.193915;, + 0.854366; 0.353862; 0.380535;, + 0.906980; 0.180395; 0.380535;, + 0.962157; 0.191382; 0.193915;, + 0.769890; 0.318888; 0.552751;, + 0.656056; 0.271737; 0.704031;, + 0.696493; 0.138524; 0.704031;, + 0.817316; 0.162572; 0.552751;, + 0.517136; 0.214209; 0.828639;, + 0.358348; 0.148412; 0.921690;, + 0.380413; 0.075655; 0.921690;, + 0.548997; 0.109195; 0.828639;, + 0.358348; 0.148412;-0.921690;, + 0.517136; 0.214209;-0.828639;, + 0.548997; 0.109195;-0.828639;, + 0.380413; 0.075655;-0.921690;, + 0.656056; 0.271737;-0.704031;, + 0.769890; 0.318888;-0.552751;, + 0.817316; 0.162572;-0.552751;, + 0.696493; 0.138524;-0.704031;, + 0.854366; 0.353862;-0.380535;, + 0.906339; 0.375408;-0.193915;, + 0.962157; 0.191382;-0.193915;, + 0.906980; 0.180395;-0.380535;, + 0.923856; 0.382672; 0.000000;, + 0.906339; 0.375408; 0.193915;, + 0.962157; 0.191382; 0.193915;, + 0.980773; 0.195074; 0.000000;, + 0.854366; 0.353862; 0.380535;, + 0.769890; 0.318888; 0.552751;, + 0.817316; 0.162572; 0.552751;, + 0.906980; 0.180395; 0.380535;, + 0.656056; 0.271737; 0.704031;, + 0.517136; 0.214209; 0.828639;, + 0.548997; 0.109195; 0.828639;, + 0.696493; 0.138524; 0.704031;, + 0.185644; 0.076907;-0.979583;, + 0.358348; 0.148412;-0.921690;, + 0.380413; 0.075655;-0.921690;, + 0.197089; 0.039186;-0.979583;, + 0.358348; 0.148412; 0.921690;, + 0.185644; 0.076907; 0.979583;, + 0.197089; 0.039186; 0.979583;, + 0.380413; 0.075655; 0.921690;, + 0.517136; 0.214209;-0.828639;, + 0.656056; 0.271737;-0.704031;, + 0.696493; 0.138524;-0.704031;, + 0.548997; 0.109195;-0.828639;, + 0.769890; 0.318888;-0.552751;, + 0.854366; 0.353862;-0.380535;, + 0.906980; 0.180395;-0.380535;, + 0.817316; 0.162572;-0.552751;, + 0.906339; 0.375408;-0.193915;, + 0.923856; 0.382672; 0.000000;, + 0.980773; 0.195074; 0.000000;, + 0.962157; 0.191382;-0.193915;, + 0.962157; 0.191382; 0.193915;, + 0.906980; 0.180395; 0.380535;, + 0.924741; 0.000000; 0.380535;, + 0.980987; 0.000000; 0.193915;, + 0.817316; 0.162572; 0.552751;, + 0.696493; 0.138524; 0.704031;, + 0.710135; 0.000000; 0.704031;, + 0.833338; 0.000000; 0.552751;, + 0.548997; 0.109195; 0.828639;, + 0.380413; 0.075655; 0.921690;, + 0.387860; 0.000000; 0.921690;, + 0.559771; 0.000000; 0.828639;, + 0.380413; 0.075655;-0.921690;, + 0.548997; 0.109195;-0.828639;, + 0.559771; 0.000000;-0.828639;, + 0.387860; 0.000000;-0.921690;, + 0.696493; 0.138524;-0.704031;, + 0.817316; 0.162572;-0.552751;, + 0.833338; 0.000000;-0.552751;, + 0.710135; 0.000000;-0.704031;, + 0.906980; 0.180395;-0.380535;, + 0.962157; 0.191382;-0.193915;, + 0.980987; 0.000000;-0.193915;, + 0.924741; 0.000000;-0.380535;, + 0.980773; 0.195074; 0.000000;, + 0.962157; 0.191382; 0.193915;, + 0.980987; 0.000000; 0.193915;, + 1.000000; 0.000000; 0.000000;, + 0.906980; 0.180395; 0.380535;, + 0.817316; 0.162572; 0.552751;, + 0.833338; 0.000000; 0.552751;, + 0.924741; 0.000000; 0.380535;, + 0.696493; 0.138524; 0.704031;, + 0.548997; 0.109195; 0.828639;, + 0.559771; 0.000000; 0.828639;, + 0.710135; 0.000000; 0.704031;, + 0.197089; 0.039186;-0.979583;, + 0.380413; 0.075655;-0.921690;, + 0.387860; 0.000000;-0.921690;, + 0.200964; 0.000000;-0.979583;, + 0.380413; 0.075655; 0.921690;, + 0.197089; 0.039186; 0.979583;, + 0.200964; 0.000000; 0.979583;, + 0.387860; 0.000000; 0.921690;, + 0.548997; 0.109195;-0.828639;, + 0.696493; 0.138524;-0.704031;, + 0.710135; 0.000000;-0.704031;, + 0.559771; 0.000000;-0.828639;, + 0.817316; 0.162572;-0.552751;, + 0.906980; 0.180395;-0.380535;, + 0.924741; 0.000000;-0.380535;, + 0.833338; 0.000000;-0.552751;, + 0.962157; 0.191382;-0.193915;, + 0.980773; 0.195074; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.980987; 0.000000;-0.193915;, + 0.980987; 0.000000; 0.193915;, + 0.924741; 0.000000; 0.380535;, + 0.906980;-0.180395; 0.380535;, + 0.962157;-0.191382; 0.193915;, + 0.833338; 0.000000; 0.552751;, + 0.710135; 0.000000; 0.704031;, + 0.696493;-0.138524; 0.704031;, + 0.817316;-0.162572; 0.552751;, + 0.559771; 0.000000; 0.828639;, + 0.387860; 0.000000; 0.921690;, + 0.380413;-0.075655; 0.921690;, + 0.548997;-0.109195; 0.828639;, + 0.387860; 0.000000;-0.921690;, + 0.559771; 0.000000;-0.828639;, + 0.548997;-0.109195;-0.828639;, + 0.380413;-0.075655;-0.921690;, + 0.710135; 0.000000;-0.704031;, + 0.833338; 0.000000;-0.552751;, + 0.817316;-0.162572;-0.552751;, + 0.696493;-0.138524;-0.704031;, + 0.924741; 0.000000;-0.380535;, + 0.980987; 0.000000;-0.193915;, + 0.962157;-0.191382;-0.193915;, + 0.906980;-0.180395;-0.380535;, + 1.000000; 0.000000; 0.000000;, + 0.980987; 0.000000; 0.193915;, + 0.962157;-0.191382; 0.193915;, + 0.980773;-0.195074; 0.000000;, + 0.924741; 0.000000; 0.380535;, + 0.833338; 0.000000; 0.552751;, + 0.817316;-0.162572; 0.552751;, + 0.906980;-0.180395; 0.380535;, + 0.710135; 0.000000; 0.704031;, + 0.559771; 0.000000; 0.828639;, + 0.548997;-0.109195; 0.828639;, + 0.696493;-0.138524; 0.704031;, + 0.200964; 0.000000;-0.979583;, + 0.387860; 0.000000;-0.921690;, + 0.380413;-0.075655;-0.921690;, + 0.197089;-0.039186;-0.979583;, + 0.387860; 0.000000; 0.921690;, + 0.200964; 0.000000; 0.979583;, + 0.197089;-0.039186; 0.979583;, + 0.380413;-0.075655; 0.921690;, + 0.559771; 0.000000;-0.828639;, + 0.710135; 0.000000;-0.704031;, + 0.696493;-0.138524;-0.704031;, + 0.548997;-0.109195;-0.828639;, + 0.833338; 0.000000;-0.552751;, + 0.924741; 0.000000;-0.380535;, + 0.906980;-0.180395;-0.380535;, + 0.817316;-0.162572;-0.552751;, + 0.980987; 0.000000;-0.193915;, + 1.000000; 0.000000; 0.000000;, + 0.980773;-0.195074; 0.000000;, + 0.962157;-0.191382;-0.193915;, + 0.962157;-0.191382; 0.193915;, + 0.906980;-0.180395; 0.380535;, + 0.854366;-0.353862; 0.380535;, + 0.906339;-0.375408; 0.193915;, + 0.817316;-0.162572; 0.552751;, + 0.696493;-0.138524; 0.704031;, + 0.656056;-0.271737; 0.704031;, + 0.769890;-0.318888; 0.552751;, + 0.548997;-0.109195; 0.828639;, + 0.380413;-0.075655; 0.921690;, + 0.358348;-0.148412; 0.921690;, + 0.517136;-0.214209; 0.828639;, + 0.380413;-0.075655;-0.921690;, + 0.548997;-0.109195;-0.828639;, + 0.517136;-0.214209;-0.828639;, + 0.358348;-0.148412;-0.921690;, + 0.696493;-0.138524;-0.704031;, + 0.817316;-0.162572;-0.552751;, + 0.769890;-0.318888;-0.552751;, + 0.656056;-0.271737;-0.704031;, + 0.906980;-0.180395;-0.380535;, + 0.962157;-0.191382;-0.193915;, + 0.906339;-0.375408;-0.193915;, + 0.854366;-0.353862;-0.380535;, + 0.980773;-0.195074; 0.000000;, + 0.962157;-0.191382; 0.193915;, + 0.906339;-0.375408; 0.193915;, + 0.923856;-0.382672; 0.000000;, + 0.906980;-0.180395; 0.380535;, + 0.817316;-0.162572; 0.552751;, + 0.769890;-0.318888; 0.552751;, + 0.854366;-0.353862; 0.380535;, + 0.696493;-0.138524; 0.704031;, + 0.548997;-0.109195; 0.828639;, + 0.517136;-0.214209; 0.828639;, + 0.656056;-0.271737; 0.704031;, + 0.197089;-0.039186;-0.979583;, + 0.380413;-0.075655;-0.921690;, + 0.358348;-0.148412;-0.921690;, + 0.185644;-0.076907;-0.979583;, + 0.380413;-0.075655; 0.921690;, + 0.197089;-0.039186; 0.979583;, + 0.185644;-0.076907; 0.979583;, + 0.358348;-0.148412; 0.921690;, + 0.548997;-0.109195;-0.828639;, + 0.696493;-0.138524;-0.704031;, + 0.656056;-0.271737;-0.704031;, + 0.517136;-0.214209;-0.828639;, + 0.817316;-0.162572;-0.552751;, + 0.906980;-0.180395;-0.380535;, + 0.854366;-0.353862;-0.380535;, + 0.769890;-0.318888;-0.552751;, + 0.962157;-0.191382;-0.193915;, + 0.980773;-0.195074; 0.000000;, + 0.923856;-0.382672; 0.000000;, + 0.906339;-0.375408;-0.193915;, + 0.906339;-0.375408; 0.193915;, + 0.854366;-0.353862; 0.380535;, + 0.768914;-0.513749; 0.380535;, + 0.815668;-0.545000; 0.193915;, + 0.769890;-0.318888; 0.552751;, + 0.656056;-0.271737; 0.704031;, + 0.590442;-0.394513; 0.704031;, + 0.692892;-0.462966; 0.552751;, + 0.517136;-0.214209; 0.828639;, + 0.358348;-0.148412; 0.921690;, + 0.322489;-0.215491; 0.921690;, + 0.465407;-0.310984; 0.828639;, + 0.358348;-0.148412;-0.921690;, + 0.517136;-0.214209;-0.828639;, + 0.465407;-0.310984;-0.828639;, + 0.322489;-0.215491;-0.921690;, + 0.656056;-0.271737;-0.704031;, + 0.769890;-0.318888;-0.552751;, + 0.692892;-0.462966;-0.552751;, + 0.590442;-0.394513;-0.704031;, + 0.854366;-0.353862;-0.380535;, + 0.906339;-0.375408;-0.193915;, + 0.815668;-0.545000;-0.193915;, + 0.768914;-0.513749;-0.380535;, + 0.923856;-0.382672; 0.000000;, + 0.906339;-0.375408; 0.193915;, + 0.815668;-0.545000; 0.193915;, + 0.831446;-0.555559; 0.000000;, + 0.854366;-0.353862; 0.380535;, + 0.769890;-0.318888; 0.552751;, + 0.692892;-0.462966; 0.552751;, + 0.768914;-0.513749; 0.380535;, + 0.656056;-0.271737; 0.704031;, + 0.517136;-0.214209; 0.828639;, + 0.465407;-0.310984; 0.828639;, + 0.590442;-0.394513; 0.704031;, + 0.185644;-0.076907;-0.979583;, + 0.358348;-0.148412;-0.921690;, + 0.322489;-0.215491;-0.921690;, + 0.167089;-0.111637;-0.979583;, + 0.358348;-0.148412; 0.921690;, + 0.185644;-0.076907; 0.979583;, + 0.167089;-0.111637; 0.979583;, + 0.322489;-0.215491; 0.921690;, + 0.517136;-0.214209;-0.828639;, + 0.656056;-0.271737;-0.704031;, + 0.590442;-0.394513;-0.704031;, + 0.465407;-0.310984;-0.828639;, + 0.769890;-0.318888;-0.552751;, + 0.854366;-0.353862;-0.380535;, + 0.768914;-0.513749;-0.380535;, + 0.692892;-0.462966;-0.552751;, + 0.906339;-0.375408;-0.193915;, + 0.923856;-0.382672; 0.000000;, + 0.831446;-0.555559; 0.000000;, + 0.815668;-0.545000;-0.193915;, + 0.815668;-0.545000; 0.193915;, + 0.768914;-0.513749; 0.380535;, + 0.653890;-0.653890; 0.380535;, + 0.693655;-0.693655; 0.193915;, + 0.692892;-0.462966; 0.552751;, + 0.590442;-0.394513; 0.704031;, + 0.502121;-0.502121; 0.704031;, + 0.589251;-0.589251; 0.552751;, + 0.465407;-0.310984; 0.828639;, + 0.322489;-0.215491; 0.921690;, + 0.274270;-0.274270; 0.921690;, + 0.395795;-0.395795; 0.828639;, + 0.322489;-0.215491;-0.921690;, + 0.465407;-0.310984;-0.828639;, + 0.395795;-0.395795;-0.828639;, + 0.274270;-0.274270;-0.921690;, + 0.590442;-0.394513;-0.704031;, + 0.692892;-0.462966;-0.552751;, + 0.589251;-0.589251;-0.552751;, + 0.502121;-0.502121;-0.704031;, + 0.768914;-0.513749;-0.380535;, + 0.815668;-0.545000;-0.193915;, + 0.693655;-0.693655;-0.193915;, + 0.653890;-0.653890;-0.380535;, + 0.831446;-0.555559; 0.000000;, + 0.815668;-0.545000; 0.193915;, + 0.693655;-0.693655; 0.193915;, + 0.707083;-0.707083; 0.000000;, + 0.768914;-0.513749; 0.380535;, + 0.692892;-0.462966; 0.552751;, + 0.589251;-0.589251; 0.552751;, + 0.653890;-0.653890; 0.380535;, + 0.590442;-0.394513; 0.704031;, + 0.465407;-0.310984; 0.828639;, + 0.395795;-0.395795; 0.828639;, + 0.502121;-0.502121; 0.704031;, + 0.167089;-0.111637;-0.979583;, + 0.322489;-0.215491;-0.921690;, + 0.274270;-0.274270;-0.921690;, + 0.142094;-0.142094;-0.979583;, + 0.322489;-0.215491; 0.921690;, + 0.167089;-0.111637; 0.979583;, + 0.142094;-0.142094; 0.979583;, + 0.274270;-0.274270; 0.921690;, + 0.465407;-0.310984;-0.828639;, + 0.590442;-0.394513;-0.704031;, + 0.502121;-0.502121;-0.704031;, + 0.395795;-0.395795;-0.828639;, + 0.692892;-0.462966;-0.552751;, + 0.768914;-0.513749;-0.380535;, + 0.653890;-0.653890;-0.380535;, + 0.589251;-0.589251;-0.552751;, + 0.815668;-0.545000;-0.193915;, + 0.831446;-0.555559; 0.000000;, + 0.707083;-0.707083; 0.000000;, + 0.693655;-0.693655;-0.193915;, + 0.693655;-0.693655; 0.193915;, + 0.653890;-0.653890; 0.380535;, + 0.513749;-0.768914; 0.380535;, + 0.545000;-0.815668; 0.193915;, + 0.589251;-0.589251; 0.552751;, + 0.502121;-0.502121; 0.704031;, + 0.394513;-0.590442; 0.704031;, + 0.462966;-0.692892; 0.552751;, + 0.395795;-0.395795; 0.828639;, + 0.274270;-0.274270; 0.921690;, + 0.215491;-0.322489; 0.921690;, + 0.310984;-0.465407; 0.828639;, + 0.274270;-0.274270;-0.921690;, + 0.395795;-0.395795;-0.828639;, + 0.310984;-0.465407;-0.828639;, + 0.215491;-0.322489;-0.921690;, + 0.502121;-0.502121;-0.704031;, + 0.589251;-0.589251;-0.552751;, + 0.462966;-0.692892;-0.552751;, + 0.394513;-0.590442;-0.704031;, + 0.653890;-0.653890;-0.380535;, + 0.693655;-0.693655;-0.193915;, + 0.545000;-0.815668;-0.193915;, + 0.513749;-0.768914;-0.380535;, + 0.707083;-0.707083; 0.000000;, + 0.693655;-0.693655; 0.193915;, + 0.545000;-0.815668; 0.193915;, + 0.555559;-0.831446; 0.000000;, + 0.653890;-0.653890; 0.380535;, + 0.589251;-0.589251; 0.552751;, + 0.462966;-0.692892; 0.552751;, + 0.513749;-0.768914; 0.380535;, + 0.502121;-0.502121; 0.704031;, + 0.395795;-0.395795; 0.828639;, + 0.310984;-0.465407; 0.828639;, + 0.394513;-0.590442; 0.704031;, + 0.142094;-0.142094;-0.979583;, + 0.274270;-0.274270;-0.921690;, + 0.215491;-0.322489;-0.921690;, + 0.111637;-0.167089;-0.979583;, + 0.274270;-0.274270; 0.921690;, + 0.142094;-0.142094; 0.979583;, + 0.111637;-0.167089; 0.979583;, + 0.215491;-0.322489; 0.921690;, + 0.395795;-0.395795;-0.828639;, + 0.502121;-0.502121;-0.704031;, + 0.394513;-0.590442;-0.704031;, + 0.310984;-0.465407;-0.828639;, + 0.589251;-0.589251;-0.552751;, + 0.653890;-0.653890;-0.380535;, + 0.513749;-0.768914;-0.380535;, + 0.462966;-0.692892;-0.552751;, + 0.693655;-0.693655;-0.193915;, + 0.707083;-0.707083; 0.000000;, + 0.555559;-0.831446; 0.000000;, + 0.545000;-0.815668;-0.193915;, + 0.545000;-0.815668; 0.193915;, + 0.513749;-0.768914; 0.380535;, + 0.353862;-0.854366; 0.380535;, + 0.375408;-0.906339; 0.193915;, + 0.462966;-0.692892; 0.552751;, + 0.394513;-0.590442; 0.704031;, + 0.271737;-0.656056; 0.704031;, + 0.318888;-0.769890; 0.552751;, + 0.310984;-0.465407; 0.828639;, + 0.215491;-0.322489; 0.921690;, + 0.148412;-0.358348; 0.921690;, + 0.214209;-0.517136; 0.828639;, + 0.215491;-0.322489;-0.921690;, + 0.310984;-0.465407;-0.828639;, + 0.214209;-0.517136;-0.828639;, + 0.148412;-0.358348;-0.921690;, + 0.394513;-0.590442;-0.704031;, + 0.462966;-0.692892;-0.552751;, + 0.318888;-0.769890;-0.552751;, + 0.271737;-0.656056;-0.704031;, + 0.513749;-0.768914;-0.380535;, + 0.545000;-0.815668;-0.193915;, + 0.375408;-0.906339;-0.193915;, + 0.353862;-0.854366;-0.380535;, + 0.555559;-0.831446; 0.000000;, + 0.545000;-0.815668; 0.193915;, + 0.375408;-0.906339; 0.193915;, + 0.382672;-0.923856; 0.000000;, + 0.513749;-0.768914; 0.380535;, + 0.462966;-0.692892; 0.552751;, + 0.318888;-0.769890; 0.552751;, + 0.353862;-0.854366; 0.380535;, + 0.394513;-0.590442; 0.704031;, + 0.310984;-0.465407; 0.828639;, + 0.214209;-0.517136; 0.828639;, + 0.271737;-0.656056; 0.704031;, + 0.111637;-0.167089;-0.979583;, + 0.215491;-0.322489;-0.921690;, + 0.148412;-0.358348;-0.921690;, + 0.076907;-0.185644;-0.979583;, + 0.215491;-0.322489; 0.921690;, + 0.111637;-0.167089; 0.979583;, + 0.076907;-0.185644; 0.979583;, + 0.148412;-0.358348; 0.921690;, + 0.310984;-0.465407;-0.828639;, + 0.394513;-0.590442;-0.704031;, + 0.271737;-0.656056;-0.704031;, + 0.214209;-0.517136;-0.828639;, + 0.462966;-0.692892;-0.552751;, + 0.513749;-0.768914;-0.380535;, + 0.353862;-0.854366;-0.380535;, + 0.318888;-0.769890;-0.552751;, + 0.545000;-0.815668;-0.193915;, + 0.555559;-0.831446; 0.000000;, + 0.382672;-0.923856; 0.000000;, + 0.375408;-0.906339;-0.193915;, + 0.375408;-0.906339; 0.193915;, + 0.353862;-0.854366; 0.380535;, + 0.180395;-0.906980; 0.380535;, + 0.191382;-0.962157; 0.193915;, + 0.318888;-0.769890; 0.552751;, + 0.271737;-0.656056; 0.704031;, + 0.138524;-0.696493; 0.704031;, + 0.162572;-0.817316; 0.552751;, + 0.214209;-0.517136; 0.828639;, + 0.148412;-0.358348; 0.921690;, + 0.075655;-0.380413; 0.921690;, + 0.109195;-0.548997; 0.828639;, + 0.148412;-0.358348;-0.921690;, + 0.214209;-0.517136;-0.828639;, + 0.109195;-0.548997;-0.828639;, + 0.075655;-0.380413;-0.921690;, + 0.271737;-0.656056;-0.704031;, + 0.318888;-0.769890;-0.552751;, + 0.162572;-0.817316;-0.552751;, + 0.138524;-0.696493;-0.704031;, + 0.353862;-0.854366;-0.380535;, + 0.375408;-0.906339;-0.193915;, + 0.191382;-0.962157;-0.193915;, + 0.180395;-0.906980;-0.380535;, + 0.382672;-0.923856; 0.000000;, + 0.375408;-0.906339; 0.193915;, + 0.191382;-0.962157; 0.193915;, + 0.195074;-0.980773; 0.000000;, + 0.353862;-0.854366; 0.380535;, + 0.318888;-0.769890; 0.552751;, + 0.162572;-0.817316; 0.552751;, + 0.180395;-0.906980; 0.380535;, + 0.271737;-0.656056; 0.704031;, + 0.214209;-0.517136; 0.828639;, + 0.109195;-0.548997; 0.828639;, + 0.138524;-0.696493; 0.704031;, + 0.076907;-0.185644;-0.979583;, + 0.148412;-0.358348;-0.921690;, + 0.075655;-0.380413;-0.921690;, + 0.039186;-0.197089;-0.979583;, + 0.148412;-0.358348; 0.921690;, + 0.076907;-0.185644; 0.979583;, + 0.039186;-0.197089; 0.979583;, + 0.075655;-0.380413; 0.921690;, + 0.214209;-0.517136;-0.828639;, + 0.271737;-0.656056;-0.704031;, + 0.138524;-0.696493;-0.704031;, + 0.109195;-0.548997;-0.828639;, + 0.318888;-0.769890;-0.552751;, + 0.353862;-0.854366;-0.380535;, + 0.180395;-0.906980;-0.380535;, + 0.162572;-0.817316;-0.552751;, + 0.375408;-0.906339;-0.193915;, + 0.382672;-0.923856; 0.000000;, + 0.195074;-0.980773; 0.000000;, + 0.191382;-0.962157;-0.193915;, + 0.191382;-0.962157; 0.193915;, + 0.180395;-0.906980; 0.380535;, + 0.000000;-0.924741; 0.380535;, + 0.000000;-0.980987; 0.193915;, + 0.162572;-0.817316; 0.552751;, + 0.138524;-0.696493; 0.704031;, + 0.000000;-0.710135; 0.704031;, + 0.000000;-0.833338; 0.552751;, + 0.109195;-0.548997; 0.828639;, + 0.075655;-0.380413; 0.921690;, + 0.000000;-0.387860; 0.921690;, + 0.000000;-0.559771; 0.828639;, + 0.075655;-0.380413;-0.921690;, + 0.109195;-0.548997;-0.828639;, + 0.000000;-0.559771;-0.828639;, + 0.000000;-0.387860;-0.921690;, + 0.138524;-0.696493;-0.704031;, + 0.162572;-0.817316;-0.552751;, + 0.000000;-0.833338;-0.552751;, + 0.000000;-0.710135;-0.704031;, + 0.180395;-0.906980;-0.380535;, + 0.191382;-0.962157;-0.193915;, + 0.000000;-0.980987;-0.193915;, + 0.000000;-0.924741;-0.380535;, + 0.195074;-0.980773; 0.000000;, + 0.191382;-0.962157; 0.193915;, + 0.000000;-0.980987; 0.193915;, + 0.000000;-1.000000; 0.000000;, + 0.180395;-0.906980; 0.380535;, + 0.162572;-0.817316; 0.552751;, + 0.000000;-0.833338; 0.552751;, + 0.000000;-0.924741; 0.380535;, + 0.138524;-0.696493; 0.704031;, + 0.109195;-0.548997; 0.828639;, + 0.000000;-0.559771; 0.828639;, + 0.000000;-0.710135; 0.704031;, + 0.039186;-0.197089;-0.979583;, + 0.075655;-0.380413;-0.921690;, + 0.000000;-0.387860;-0.921690;, + 0.000000;-0.200964;-0.979583;, + 0.075655;-0.380413; 0.921690;, + 0.039186;-0.197089; 0.979583;, + 0.000000;-0.200964; 0.979583;, + 0.000000;-0.387860; 0.921690;, + 0.109195;-0.548997;-0.828639;, + 0.138524;-0.696493;-0.704031;, + 0.000000;-0.710135;-0.704031;, + 0.000000;-0.559771;-0.828639;, + 0.162572;-0.817316;-0.552751;, + 0.180395;-0.906980;-0.380535;, + 0.000000;-0.924741;-0.380535;, + 0.000000;-0.833338;-0.552751;, + 0.191382;-0.962157;-0.193915;, + 0.195074;-0.980773; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.980987;-0.193915;, + 0.000000;-0.980987; 0.193915;, + 0.000000;-0.924741; 0.380535;, + -0.180395;-0.906980; 0.380535;, + -0.191382;-0.962157; 0.193915;, + 0.000000;-0.833338; 0.552751;, + 0.000000;-0.710135; 0.704031;, + -0.138524;-0.696493; 0.704031;, + -0.162572;-0.817316; 0.552751;, + 0.000000;-0.559771; 0.828639;, + 0.000000;-0.387860; 0.921690;, + -0.075655;-0.380413; 0.921690;, + -0.109195;-0.548997; 0.828639;, + 0.000000;-0.387860;-0.921690;, + 0.000000;-0.559771;-0.828639;, + -0.109195;-0.548997;-0.828639;, + -0.075655;-0.380413;-0.921690;, + 0.000000;-0.710135;-0.704031;, + 0.000000;-0.833338;-0.552751;, + -0.162572;-0.817316;-0.552751;, + -0.138524;-0.696493;-0.704031;, + 0.000000;-0.924741;-0.380535;, + 0.000000;-0.980987;-0.193915;, + -0.191382;-0.962157;-0.193915;, + -0.180395;-0.906980;-0.380535;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.980987; 0.193915;, + -0.191382;-0.962157; 0.193915;, + -0.195074;-0.980773; 0.000000;, + 0.000000;-0.924741; 0.380535;, + 0.000000;-0.833338; 0.552751;, + -0.162572;-0.817316; 0.552751;, + -0.180395;-0.906980; 0.380535;, + 0.000000;-0.710135; 0.704031;, + 0.000000;-0.559771; 0.828639;, + -0.109195;-0.548997; 0.828639;, + -0.138524;-0.696493; 0.704031;, + 0.000000;-0.200964;-0.979583;, + 0.000000;-0.387860;-0.921690;, + -0.075655;-0.380413;-0.921690;, + -0.039186;-0.197089;-0.979583;, + 0.000000;-0.387860; 0.921690;, + 0.000000;-0.200964; 0.979583;, + -0.039186;-0.197089; 0.979583;, + -0.075655;-0.380413; 0.921690;, + 0.000000;-0.559771;-0.828639;, + 0.000000;-0.710135;-0.704031;, + -0.138524;-0.696493;-0.704031;, + -0.109195;-0.548997;-0.828639;, + 0.000000;-0.833338;-0.552751;, + 0.000000;-0.924741;-0.380535;, + -0.180395;-0.906980;-0.380535;, + -0.162572;-0.817316;-0.552751;, + 0.000000;-0.980987;-0.193915;, + 0.000000;-1.000000; 0.000000;, + -0.195074;-0.980773; 0.000000;, + -0.191382;-0.962157;-0.193915;, + -0.191382;-0.962157; 0.193915;, + -0.180395;-0.906980; 0.380535;, + -0.353893;-0.854366; 0.380535;, + -0.375408;-0.906339; 0.193915;, + -0.162572;-0.817316; 0.552751;, + -0.138524;-0.696493; 0.704031;, + -0.271737;-0.656056; 0.704031;, + -0.318888;-0.769890; 0.552751;, + -0.109195;-0.548997; 0.828639;, + -0.075655;-0.380413; 0.921690;, + -0.148412;-0.358348; 0.921690;, + -0.214209;-0.517136; 0.828639;, + -0.075655;-0.380413;-0.921690;, + -0.109195;-0.548997;-0.828639;, + -0.214209;-0.517136;-0.828639;, + -0.148412;-0.358348;-0.921690;, + -0.138524;-0.696493;-0.704031;, + -0.162572;-0.817316;-0.552751;, + -0.318888;-0.769890;-0.552751;, + -0.271737;-0.656056;-0.704031;, + -0.180395;-0.906980;-0.380535;, + -0.191382;-0.962157;-0.193915;, + -0.375408;-0.906339;-0.193915;, + -0.353893;-0.854366;-0.380535;, + -0.195074;-0.980773; 0.000000;, + -0.191382;-0.962157; 0.193915;, + -0.375408;-0.906339; 0.193915;, + -0.382672;-0.923856; 0.000000;, + -0.180395;-0.906980; 0.380535;, + -0.162572;-0.817316; 0.552751;, + -0.318888;-0.769890; 0.552751;, + -0.353893;-0.854366; 0.380535;, + -0.138524;-0.696493; 0.704031;, + -0.109195;-0.548997; 0.828639;, + -0.214209;-0.517136; 0.828639;, + -0.271737;-0.656056; 0.704031;, + -0.039186;-0.197089;-0.979583;, + -0.075655;-0.380413;-0.921690;, + -0.148412;-0.358348;-0.921690;, + -0.076907;-0.185644;-0.979583;, + -0.075655;-0.380413; 0.921690;, + -0.039186;-0.197089; 0.979583;, + -0.076907;-0.185644; 0.979583;, + -0.148412;-0.358348; 0.921690;, + -0.109195;-0.548997;-0.828639;, + -0.138524;-0.696493;-0.704031;, + -0.271737;-0.656056;-0.704031;, + -0.214209;-0.517136;-0.828639;, + -0.162572;-0.817316;-0.552751;, + -0.180395;-0.906980;-0.380535;, + -0.353893;-0.854366;-0.380535;, + -0.318888;-0.769890;-0.552751;, + -0.191382;-0.962157;-0.193915;, + -0.195074;-0.980773; 0.000000;, + -0.382672;-0.923856; 0.000000;, + -0.375408;-0.906339;-0.193915;, + -0.375408;-0.906339; 0.193915;, + -0.353893;-0.854366; 0.380535;, + -0.513749;-0.768914; 0.380535;, + -0.545000;-0.815668; 0.193915;, + -0.318888;-0.769890; 0.552751;, + -0.271737;-0.656056; 0.704031;, + -0.394513;-0.590442; 0.704031;, + -0.462966;-0.692892; 0.552751;, + -0.214209;-0.517136; 0.828639;, + -0.148412;-0.358348; 0.921690;, + -0.215491;-0.322489; 0.921690;, + -0.310984;-0.465407; 0.828639;, + -0.148412;-0.358348;-0.921690;, + -0.214209;-0.517136;-0.828639;, + -0.310984;-0.465407;-0.828639;, + -0.215491;-0.322489;-0.921690;, + -0.271737;-0.656056;-0.704031;, + -0.318888;-0.769890;-0.552751;, + -0.462966;-0.692892;-0.552751;, + -0.394513;-0.590442;-0.704031;, + -0.353893;-0.854366;-0.380535;, + -0.375408;-0.906339;-0.193915;, + -0.545000;-0.815668;-0.193915;, + -0.513749;-0.768914;-0.380535;, + -0.382672;-0.923856; 0.000000;, + -0.375408;-0.906339; 0.193915;, + -0.545000;-0.815668; 0.193915;, + -0.555559;-0.831446; 0.000000;, + -0.353893;-0.854366; 0.380535;, + -0.318888;-0.769890; 0.552751;, + -0.462966;-0.692892; 0.552751;, + -0.513749;-0.768914; 0.380535;, + -0.271737;-0.656056; 0.704031;, + -0.214209;-0.517136; 0.828639;, + -0.310984;-0.465407; 0.828639;, + -0.394513;-0.590442; 0.704031;, + -0.076907;-0.185644;-0.979583;, + -0.148412;-0.358348;-0.921690;, + -0.215491;-0.322489;-0.921690;, + -0.111637;-0.167089;-0.979583;, + -0.148412;-0.358348; 0.921690;, + -0.076907;-0.185644; 0.979583;, + -0.111637;-0.167089; 0.979583;, + -0.215491;-0.322489; 0.921690;, + -0.214209;-0.517136;-0.828639;, + -0.271737;-0.656056;-0.704031;, + -0.394513;-0.590442;-0.704031;, + -0.310984;-0.465407;-0.828639;, + -0.318888;-0.769890;-0.552751;, + -0.353893;-0.854366;-0.380535;, + -0.513749;-0.768914;-0.380535;, + -0.462966;-0.692892;-0.552751;, + -0.375408;-0.906339;-0.193915;, + -0.382672;-0.923856; 0.000000;, + -0.555559;-0.831446; 0.000000;, + -0.545000;-0.815668;-0.193915;, + -0.545000;-0.815668; 0.193915;, + -0.513749;-0.768914; 0.380535;, + -0.653890;-0.653890; 0.380535;, + -0.693655;-0.693655; 0.193915;, + -0.462966;-0.692892; 0.552751;, + -0.394513;-0.590442; 0.704031;, + -0.502121;-0.502121; 0.704031;, + -0.589251;-0.589251; 0.552751;, + -0.310984;-0.465407; 0.828639;, + -0.215491;-0.322489; 0.921690;, + -0.274270;-0.274270; 0.921690;, + -0.395795;-0.395795; 0.828639;, + -0.215491;-0.322489;-0.921690;, + -0.310984;-0.465407;-0.828639;, + -0.395795;-0.395795;-0.828639;, + -0.274270;-0.274270;-0.921690;, + -0.394513;-0.590442;-0.704031;, + -0.462966;-0.692892;-0.552751;, + -0.589251;-0.589251;-0.552751;, + -0.502121;-0.502121;-0.704031;, + -0.513749;-0.768914;-0.380535;, + -0.545000;-0.815668;-0.193915;, + -0.693655;-0.693655;-0.193915;, + -0.653890;-0.653890;-0.380535;, + -0.555559;-0.831446; 0.000000;, + -0.545000;-0.815668; 0.193915;, + -0.693655;-0.693655; 0.193915;, + -0.707083;-0.707083; 0.000000;, + -0.513749;-0.768914; 0.380535;, + -0.462966;-0.692892; 0.552751;, + -0.589251;-0.589251; 0.552751;, + -0.653890;-0.653890; 0.380535;, + -0.394513;-0.590442; 0.704031;, + -0.310984;-0.465407; 0.828639;, + -0.395795;-0.395795; 0.828639;, + -0.502121;-0.502121; 0.704031;, + -0.111637;-0.167089;-0.979583;, + -0.215491;-0.322489;-0.921690;, + -0.274270;-0.274270;-0.921690;, + -0.142094;-0.142094;-0.979583;, + -0.215491;-0.322489; 0.921690;, + -0.111637;-0.167089; 0.979583;, + -0.142094;-0.142094; 0.979583;, + -0.274270;-0.274270; 0.921690;, + -0.310984;-0.465407;-0.828639;, + -0.394513;-0.590442;-0.704031;, + -0.502121;-0.502121;-0.704031;, + -0.395795;-0.395795;-0.828639;, + -0.462966;-0.692892;-0.552751;, + -0.513749;-0.768914;-0.380535;, + -0.653890;-0.653890;-0.380535;, + -0.589251;-0.589251;-0.552751;, + -0.545000;-0.815668;-0.193915;, + -0.555559;-0.831446; 0.000000;, + -0.707083;-0.707083; 0.000000;, + -0.693655;-0.693655;-0.193915;, + -0.693655;-0.693655; 0.193915;, + -0.653890;-0.653890; 0.380535;, + -0.768914;-0.513749; 0.380535;, + -0.815668;-0.545000; 0.193915;, + -0.589251;-0.589251; 0.552751;, + -0.502121;-0.502121; 0.704031;, + -0.590442;-0.394513; 0.704031;, + -0.692892;-0.462966; 0.552751;, + -0.395795;-0.395795; 0.828639;, + -0.274270;-0.274270; 0.921690;, + -0.322489;-0.215491; 0.921690;, + -0.465407;-0.310984; 0.828639;, + -0.274270;-0.274270;-0.921690;, + -0.395795;-0.395795;-0.828639;, + -0.465407;-0.310984;-0.828639;, + -0.322489;-0.215491;-0.921690;, + -0.502121;-0.502121;-0.704031;, + -0.589251;-0.589251;-0.552751;, + -0.692892;-0.462966;-0.552751;, + -0.590442;-0.394513;-0.704031;, + -0.653890;-0.653890;-0.380535;, + -0.693655;-0.693655;-0.193915;, + -0.815668;-0.545000;-0.193915;, + -0.768914;-0.513749;-0.380535;, + -0.707083;-0.707083; 0.000000;, + -0.693655;-0.693655; 0.193915;, + -0.815668;-0.545000; 0.193915;, + -0.831446;-0.555559; 0.000000;, + -0.653890;-0.653890; 0.380535;, + -0.589251;-0.589251; 0.552751;, + -0.692892;-0.462966; 0.552751;, + -0.768914;-0.513749; 0.380535;, + -0.502121;-0.502121; 0.704031;, + -0.395795;-0.395795; 0.828639;, + -0.465407;-0.310984; 0.828639;, + -0.590442;-0.394513; 0.704031;, + -0.142094;-0.142094;-0.979583;, + -0.274270;-0.274270;-0.921690;, + -0.322489;-0.215491;-0.921690;, + -0.167089;-0.111637;-0.979583;, + -0.274270;-0.274270; 0.921690;, + -0.142094;-0.142094; 0.979583;, + -0.167089;-0.111637; 0.979583;, + -0.322489;-0.215491; 0.921690;, + -0.395795;-0.395795;-0.828639;, + -0.502121;-0.502121;-0.704031;, + -0.590442;-0.394513;-0.704031;, + -0.465407;-0.310984;-0.828639;, + -0.589251;-0.589251;-0.552751;, + -0.653890;-0.653890;-0.380535;, + -0.768914;-0.513749;-0.380535;, + -0.692892;-0.462966;-0.552751;, + -0.693655;-0.693655;-0.193915;, + -0.707083;-0.707083; 0.000000;, + -0.831446;-0.555559; 0.000000;, + -0.815668;-0.545000;-0.193915;, + -0.815668;-0.545000; 0.193915;, + -0.768914;-0.513749; 0.380535;, + -0.854366;-0.353862; 0.380535;, + -0.906339;-0.375408; 0.193915;, + -0.692892;-0.462966; 0.552751;, + -0.590442;-0.394513; 0.704031;, + -0.656056;-0.271737; 0.704031;, + -0.769890;-0.318888; 0.552751;, + -0.465407;-0.310984; 0.828639;, + -0.322489;-0.215491; 0.921690;, + -0.358348;-0.148412; 0.921690;, + -0.517136;-0.214209; 0.828639;, + -0.322489;-0.215491;-0.921690;, + -0.465407;-0.310984;-0.828639;, + -0.517136;-0.214209;-0.828639;, + -0.358348;-0.148412;-0.921690;, + -0.590442;-0.394513;-0.704031;, + -0.692892;-0.462966;-0.552751;, + -0.769890;-0.318888;-0.552751;, + -0.656056;-0.271737;-0.704031;, + -0.768914;-0.513749;-0.380535;, + -0.815668;-0.545000;-0.193915;, + -0.906339;-0.375408;-0.193915;, + -0.854366;-0.353862;-0.380535;, + -0.831446;-0.555559; 0.000000;, + -0.815668;-0.545000; 0.193915;, + -0.906339;-0.375408; 0.193915;, + -0.923856;-0.382672; 0.000000;, + -0.768914;-0.513749; 0.380535;, + -0.692892;-0.462966; 0.552751;, + -0.769890;-0.318888; 0.552751;, + -0.854366;-0.353862; 0.380535;, + -0.590442;-0.394513; 0.704031;, + -0.465407;-0.310984; 0.828639;, + -0.517136;-0.214209; 0.828639;, + -0.656056;-0.271737; 0.704031;, + -0.167089;-0.111637;-0.979583;, + -0.322489;-0.215491;-0.921690;, + -0.358348;-0.148412;-0.921690;, + -0.185644;-0.076907;-0.979583;, + -0.322489;-0.215491; 0.921690;, + -0.167089;-0.111637; 0.979583;, + -0.185644;-0.076907; 0.979583;, + -0.358348;-0.148412; 0.921690;, + -0.465407;-0.310984;-0.828639;, + -0.590442;-0.394513;-0.704031;, + -0.656056;-0.271737;-0.704031;, + -0.517136;-0.214209;-0.828639;, + -0.692892;-0.462966;-0.552751;, + -0.768914;-0.513749;-0.380535;, + -0.854366;-0.353862;-0.380535;, + -0.769890;-0.318888;-0.552751;, + -0.815668;-0.545000;-0.193915;, + -0.831446;-0.555559; 0.000000;, + -0.923856;-0.382672; 0.000000;, + -0.906339;-0.375408;-0.193915;, + -0.906339;-0.375408; 0.193915;, + -0.854366;-0.353862; 0.380535;, + -0.906980;-0.180395; 0.380535;, + -0.962157;-0.191382; 0.193915;, + -0.769890;-0.318888; 0.552751;, + -0.656056;-0.271737; 0.704031;, + -0.696493;-0.138524; 0.704031;, + -0.817316;-0.162572; 0.552751;, + -0.517136;-0.214209; 0.828639;, + -0.358348;-0.148412; 0.921690;, + -0.380413;-0.075655; 0.921690;, + -0.548997;-0.109195; 0.828639;, + -0.358348;-0.148412;-0.921690;, + -0.517136;-0.214209;-0.828639;, + -0.548997;-0.109195;-0.828639;, + -0.380413;-0.075655;-0.921690;, + -0.656056;-0.271737;-0.704031;, + -0.769890;-0.318888;-0.552751;, + -0.817316;-0.162572;-0.552751;, + -0.696493;-0.138524;-0.704031;, + -0.854366;-0.353862;-0.380535;, + -0.906339;-0.375408;-0.193915;, + -0.962157;-0.191382;-0.193915;, + -0.906980;-0.180395;-0.380535;, + -0.923856;-0.382672; 0.000000;, + -0.906339;-0.375408; 0.193915;, + -0.962157;-0.191382; 0.193915;, + -0.980773;-0.195074; 0.000000;, + -0.854366;-0.353862; 0.380535;, + -0.769890;-0.318888; 0.552751;, + -0.817316;-0.162572; 0.552751;, + -0.906980;-0.180395; 0.380535;, + -0.656056;-0.271737; 0.704031;, + -0.517136;-0.214209; 0.828639;, + -0.548997;-0.109195; 0.828639;, + -0.696493;-0.138524; 0.704031;, + -0.185644;-0.076907;-0.979583;, + -0.358348;-0.148412;-0.921690;, + -0.380413;-0.075655;-0.921690;, + -0.197089;-0.039186;-0.979583;, + -0.358348;-0.148412; 0.921690;, + -0.185644;-0.076907; 0.979583;, + -0.197089;-0.039186; 0.979583;, + -0.380413;-0.075655; 0.921690;, + -0.517136;-0.214209;-0.828639;, + -0.656056;-0.271737;-0.704031;, + -0.696493;-0.138524;-0.704031;, + -0.548997;-0.109195;-0.828639;, + -0.769890;-0.318888;-0.552751;, + -0.854366;-0.353862;-0.380535;, + -0.906980;-0.180395;-0.380535;, + -0.817316;-0.162572;-0.552751;, + -0.906339;-0.375408;-0.193915;, + -0.923856;-0.382672; 0.000000;, + -0.980773;-0.195074; 0.000000;, + -0.962157;-0.191382;-0.193915;, + -0.200964; 0.000000; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.197089; 0.039186; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.200964; 0.000000;-0.979583;, + -0.197089; 0.039186;-0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.197089; 0.039186;-0.979583;, + -0.185644; 0.076907;-0.979583;, + -0.197089; 0.039186; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.185644; 0.076907; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.185644; 0.076907;-0.979583;, + -0.167089; 0.111637;-0.979583;, + -0.185644; 0.076907; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.167089; 0.111637; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.167089; 0.111637;-0.979583;, + -0.142094; 0.142094;-0.979583;, + -0.167089; 0.111637; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.142094; 0.142094; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.142094; 0.142094;-0.979583;, + -0.111637; 0.167089;-0.979583;, + -0.142094; 0.142094; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.111637; 0.167089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.111637; 0.167089;-0.979583;, + -0.076907; 0.185644;-0.979583;, + -0.111637; 0.167089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.076907; 0.185644; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.076907; 0.185644;-0.979583;, + -0.039186; 0.197089;-0.979583;, + -0.076907; 0.185644; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.039186; 0.197089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.039186; 0.197089;-0.979583;, + 0.000000; 0.200964;-0.979583;, + -0.039186; 0.197089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.200964; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.200964;-0.979583;, + 0.039186; 0.197089;-0.979583;, + 0.000000; 0.200964; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.039186; 0.197089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.039186; 0.197089;-0.979583;, + 0.076907; 0.185644;-0.979583;, + 0.039186; 0.197089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.076907; 0.185644; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.076907; 0.185644;-0.979583;, + 0.111637; 0.167089;-0.979583;, + 0.076907; 0.185644; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.111637; 0.167089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.111637; 0.167089;-0.979583;, + 0.142094; 0.142094;-0.979583;, + 0.111637; 0.167089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.142094; 0.142094; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.142094; 0.142094;-0.979583;, + 0.167089; 0.111637;-0.979583;, + 0.142094; 0.142094; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.167089; 0.111637; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.167089; 0.111637;-0.979583;, + 0.185644; 0.076907;-0.979583;, + 0.167089; 0.111637; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.185644; 0.076907; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.185644; 0.076907;-0.979583;, + 0.197089; 0.039186;-0.979583;, + 0.185644; 0.076907; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.197089; 0.039186; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.197089; 0.039186;-0.979583;, + 0.200964; 0.000000;-0.979583;, + 0.197089; 0.039186; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.200964; 0.000000; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.200964; 0.000000;-0.979583;, + 0.197089;-0.039186;-0.979583;, + 0.200964; 0.000000; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.197089;-0.039186; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.197089;-0.039186;-0.979583;, + 0.185644;-0.076907;-0.979583;, + 0.197089;-0.039186; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.185644;-0.076907; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.185644;-0.076907;-0.979583;, + 0.167089;-0.111637;-0.979583;, + 0.185644;-0.076907; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.167089;-0.111637; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.167089;-0.111637;-0.979583;, + 0.142094;-0.142094;-0.979583;, + 0.167089;-0.111637; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.142094;-0.142094; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.142094;-0.142094;-0.979583;, + 0.111637;-0.167089;-0.979583;, + 0.142094;-0.142094; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.111637;-0.167089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.111637;-0.167089;-0.979583;, + 0.076907;-0.185644;-0.979583;, + 0.111637;-0.167089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.076907;-0.185644; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.076907;-0.185644;-0.979583;, + 0.039186;-0.197089;-0.979583;, + 0.076907;-0.185644; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.039186;-0.197089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.039186;-0.197089;-0.979583;, + 0.000000;-0.200964;-0.979583;, + 0.039186;-0.197089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-0.200964; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.200964;-0.979583;, + -0.039186;-0.197089;-0.979583;, + 0.000000;-0.200964; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.039186;-0.197089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.039186;-0.197089;-0.979583;, + -0.076907;-0.185644;-0.979583;, + -0.039186;-0.197089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.076907;-0.185644; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.076907;-0.185644;-0.979583;, + -0.111637;-0.167089;-0.979583;, + -0.076907;-0.185644; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.111637;-0.167089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.111637;-0.167089;-0.979583;, + -0.142094;-0.142094;-0.979583;, + -0.111637;-0.167089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.142094;-0.142094; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.142094;-0.142094;-0.979583;, + -0.167089;-0.111637;-0.979583;, + -0.142094;-0.142094; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.167089;-0.111637; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.167089;-0.111637;-0.979583;, + -0.185644;-0.076907;-0.979583;, + -0.167089;-0.111637; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.185644;-0.076907; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.185644;-0.076907;-0.979583;, + -0.197089;-0.039186;-0.979583;, + -0.185644;-0.076907; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.197089;-0.039186; 0.979583;, + -0.962157;-0.191382; 0.193915;, + -0.906980;-0.180395; 0.380535;, + -0.924741; 0.000000; 0.380535;, + -0.980987; 0.000000; 0.193915;, + -0.817316;-0.162572; 0.552751;, + -0.696493;-0.138524; 0.704031;, + -0.710135; 0.000000; 0.704031;, + -0.833338; 0.000000; 0.552751;, + 0.000000; 0.000000;-1.000000;, + -0.197089;-0.039186;-0.979583;, + -0.200964; 0.000000;-0.979583;, + -0.548997;-0.109195; 0.828639;, + -0.380413;-0.075655; 0.921690;, + -0.387860; 0.000000; 0.921690;, + -0.559771; 0.000000; 0.828639;, + -0.380413;-0.075655;-0.921690;, + -0.548997;-0.109195;-0.828639;, + -0.559771; 0.000000;-0.828639;, + -0.387860; 0.000000;-0.921690;, + -0.197089;-0.039186; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.200964; 0.000000; 0.979583;, + -0.696493;-0.138524;-0.704031;, + -0.817316;-0.162572;-0.552751;, + -0.833338; 0.000000;-0.552751;, + -0.710135; 0.000000;-0.704031;, + -0.906980;-0.180395;-0.380535;, + -0.962157;-0.191382;-0.193915;, + -0.980987; 0.000000;-0.193915;, + -0.924741; 0.000000;-0.380535;, + -0.980773;-0.195074; 0.000000;, + -0.962157;-0.191382; 0.193915;, + -0.980987; 0.000000; 0.193915;, + -1.000000; 0.000000; 0.000000;, + -0.906980;-0.180395; 0.380535;, + -0.817316;-0.162572; 0.552751;, + -0.833338; 0.000000; 0.552751;, + -0.924741; 0.000000; 0.380535;, + -0.696493;-0.138524; 0.704031;, + -0.548997;-0.109195; 0.828639;, + -0.559771; 0.000000; 0.828639;, + -0.710135; 0.000000; 0.704031;, + -0.197089;-0.039186;-0.979583;, + -0.380413;-0.075655;-0.921690;, + -0.387860; 0.000000;-0.921690;, + -0.200964; 0.000000;-0.979583;, + -0.380413;-0.075655; 0.921690;, + -0.197089;-0.039186; 0.979583;, + -0.200964; 0.000000; 0.979583;, + -0.387860; 0.000000; 0.921690;, + -0.548997;-0.109195;-0.828639;, + -0.696493;-0.138524;-0.704031;, + -0.710135; 0.000000;-0.704031;, + -0.559771; 0.000000;-0.828639;, + -0.817316;-0.162572;-0.552751;, + -0.906980;-0.180395;-0.380535;, + -0.924741; 0.000000;-0.380535;, + -0.833338; 0.000000;-0.552751;, + -0.962157;-0.191382;-0.193915;, + -0.980773;-0.195074; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.980987; 0.000000;-0.193915;; + 512; + 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;, + 4;195,194,193,192;, + 4;199,198,197,196;, + 4;203,202,201,200;, + 4;207,206,205,204;, + 4;211,210,209,208;, + 4;215,214,213,212;, + 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;, + 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;, + 4;387,386,385,384;, + 4;391,390,389,388;, + 4;395,394,393,392;, + 4;399,398,397,396;, + 4;403,402,401,400;, + 4;407,406,405,404;, + 4;411,410,409,408;, + 4;415,414,413,412;, + 4;419,418,417,416;, + 4;423,422,421,420;, + 4;427,426,425,424;, + 4;431,430,429,428;, + 4;435,434,433,432;, + 4;439,438,437,436;, + 4;443,442,441,440;, + 4;447,446,445,444;, + 4;451,450,449,448;, + 4;455,454,453,452;, + 4;459,458,457,456;, + 4;463,462,461,460;, + 4;467,466,465,464;, + 4;471,470,469,468;, + 4;475,474,473,472;, + 4;479,478,477,476;, + 4;483,482,481,480;, + 4;487,486,485,484;, + 4;491,490,489,488;, + 4;495,494,493,492;, + 4;499,498,497,496;, + 4;503,502,501,500;, + 4;507,506,505,504;, + 4;511,510,509,508;, + 4;515,514,513,512;, + 4;519,518,517,516;, + 4;523,522,521,520;, + 4;527,526,525,524;, + 4;531,530,529,528;, + 4;535,534,533,532;, + 4;539,538,537,536;, + 4;543,542,541,540;, + 4;547,546,545,544;, + 4;551,550,549,548;, + 4;555,554,553,552;, + 4;559,558,557,556;, + 4;563,562,561,560;, + 4;567,566,565,564;, + 4;571,570,569,568;, + 4;575,574,573,572;, + 4;579,578,577,576;, + 4;583,582,581,580;, + 4;587,586,585,584;, + 4;591,590,589,588;, + 4;595,594,593,592;, + 4;599,598,597,596;, + 4;603,602,601,600;, + 4;607,606,605,604;, + 4;611,610,609,608;, + 4;615,614,613,612;, + 4;619,618,617,616;, + 4;623,622,621,620;, + 4;627,626,625,624;, + 4;631,630,629,628;, + 4;635,634,633,632;, + 4;639,638,637,636;, + 4;643,642,641,640;, + 4;647,646,645,644;, + 4;651,650,649,648;, + 4;655,654,653,652;, + 4;659,658,657,656;, + 4;663,662,661,660;, + 4;667,666,665,664;, + 4;671,670,669,668;, + 4;675,674,673,672;, + 4;679,678,677,676;, + 4;683,682,681,680;, + 4;687,686,685,684;, + 4;691,690,689,688;, + 4;695,694,693,692;, + 4;699,698,697,696;, + 4;703,702,701,700;, + 4;707,706,705,704;, + 4;711,710,709,708;, + 4;715,714,713,712;, + 4;719,718,717,716;, + 4;723,722,721,720;, + 4;727,726,725,724;, + 4;731,730,729,728;, + 4;735,734,733,732;, + 4;739,738,737,736;, + 4;743,742,741,740;, + 4;747,746,745,744;, + 4;751,750,749,748;, + 4;755,754,753,752;, + 4;759,758,757,756;, + 4;763,762,761,760;, + 4;767,766,765,764;, + 4;771,770,769,768;, + 4;775,774,773,772;, + 4;779,778,777,776;, + 4;783,782,781,780;, + 4;787,786,785,784;, + 4;791,790,789,788;, + 4;795,794,793,792;, + 4;799,798,797,796;, + 4;803,802,801,800;, + 4;807,806,805,804;, + 4;811,810,809,808;, + 4;815,814,813,812;, + 4;819,818,817,816;, + 4;823,822,821,820;, + 4;827,826,825,824;, + 4;831,830,829,828;, + 4;835,834,833,832;, + 4;839,838,837,836;, + 4;843,842,841,840;, + 4;847,846,845,844;, + 4;851,850,849,848;, + 4;855,854,853,852;, + 4;859,858,857,856;, + 4;863,862,861,860;, + 4;867,866,865,864;, + 4;871,870,869,868;, + 4;875,874,873,872;, + 4;879,878,877,876;, + 4;883,882,881,880;, + 4;887,886,885,884;, + 4;891,890,889,888;, + 4;895,894,893,892;, + 4;899,898,897,896;, + 4;903,902,901,900;, + 4;907,906,905,904;, + 4;911,910,909,908;, + 4;915,914,913,912;, + 4;919,918,917,916;, + 4;923,922,921,920;, + 4;927,926,925,924;, + 4;931,930,929,928;, + 4;935,934,933,932;, + 4;939,938,937,936;, + 4;943,942,941,940;, + 4;947,946,945,944;, + 4;951,950,949,948;, + 4;955,954,953,952;, + 4;959,958,957,956;, + 4;963,962,961,960;, + 4;967,966,965,964;, + 4;971,970,969,968;, + 4;975,974,973,972;, + 4;979,978,977,976;, + 4;983,982,981,980;, + 4;987,986,985,984;, + 4;991,990,989,988;, + 4;995,994,993,992;, + 4;999,998,997,996;, + 4;1003,1002,1001,1000;, + 4;1007,1006,1005,1004;, + 4;1011,1010,1009,1008;, + 4;1015,1014,1013,1012;, + 4;1019,1018,1017,1016;, + 4;1023,1022,1021,1020;, + 4;1027,1026,1025,1024;, + 4;1031,1030,1029,1028;, + 4;1035,1034,1033,1032;, + 4;1039,1038,1037,1036;, + 4;1043,1042,1041,1040;, + 4;1047,1046,1045,1044;, + 4;1051,1050,1049,1048;, + 4;1055,1054,1053,1052;, + 4;1059,1058,1057,1056;, + 4;1063,1062,1061,1060;, + 4;1067,1066,1065,1064;, + 4;1071,1070,1069,1068;, + 4;1075,1074,1073,1072;, + 4;1079,1078,1077,1076;, + 4;1083,1082,1081,1080;, + 4;1087,1086,1085,1084;, + 4;1091,1090,1089,1088;, + 4;1095,1094,1093,1092;, + 4;1099,1098,1097,1096;, + 4;1103,1102,1101,1100;, + 4;1107,1106,1105,1104;, + 4;1111,1110,1109,1108;, + 4;1115,1114,1113,1112;, + 4;1119,1118,1117,1116;, + 4;1123,1122,1121,1120;, + 4;1127,1126,1125,1124;, + 4;1131,1130,1129,1128;, + 4;1135,1134,1133,1132;, + 4;1139,1138,1137,1136;, + 4;1143,1142,1141,1140;, + 4;1147,1146,1145,1144;, + 4;1151,1150,1149,1148;, + 4;1155,1154,1153,1152;, + 4;1159,1158,1157,1156;, + 4;1163,1162,1161,1160;, + 4;1167,1166,1165,1164;, + 4;1171,1170,1169,1168;, + 4;1175,1174,1173,1172;, + 4;1179,1178,1177,1176;, + 4;1183,1182,1181,1180;, + 4;1187,1186,1185,1184;, + 4;1191,1190,1189,1188;, + 4;1195,1194,1193,1192;, + 4;1199,1198,1197,1196;, + 4;1203,1202,1201,1200;, + 4;1207,1206,1205,1204;, + 4;1211,1210,1209,1208;, + 4;1215,1214,1213,1212;, + 4;1219,1218,1217,1216;, + 4;1223,1222,1221,1220;, + 4;1227,1226,1225,1224;, + 4;1231,1230,1229,1228;, + 4;1235,1234,1233,1232;, + 4;1239,1238,1237,1236;, + 4;1243,1242,1241,1240;, + 4;1247,1246,1245,1244;, + 4;1251,1250,1249,1248;, + 4;1255,1254,1253,1252;, + 4;1259,1258,1257,1256;, + 4;1263,1262,1261,1260;, + 4;1267,1266,1265,1264;, + 4;1271,1270,1269,1268;, + 4;1275,1274,1273,1272;, + 4;1279,1278,1277,1276;, + 4;1283,1282,1281,1280;, + 4;1287,1286,1285,1284;, + 4;1291,1290,1289,1288;, + 4;1295,1294,1293,1292;, + 4;1299,1298,1297,1296;, + 4;1303,1302,1301,1300;, + 4;1307,1306,1305,1304;, + 4;1311,1310,1309,1308;, + 4;1315,1314,1313,1312;, + 4;1319,1318,1317,1316;, + 4;1323,1322,1321,1320;, + 4;1327,1326,1325,1324;, + 4;1331,1330,1329,1328;, + 4;1335,1334,1333,1332;, + 4;1339,1338,1337,1336;, + 4;1343,1342,1341,1340;, + 4;1347,1346,1345,1344;, + 4;1351,1350,1349,1348;, + 4;1355,1354,1353,1352;, + 4;1359,1358,1357,1356;, + 4;1363,1362,1361,1360;, + 4;1367,1366,1365,1364;, + 4;1371,1370,1369,1368;, + 4;1375,1374,1373,1372;, + 4;1379,1378,1377,1376;, + 4;1383,1382,1381,1380;, + 4;1387,1386,1385,1384;, + 4;1391,1390,1389,1388;, + 4;1395,1394,1393,1392;, + 4;1399,1398,1397,1396;, + 4;1403,1402,1401,1400;, + 4;1407,1406,1405,1404;, + 4;1411,1410,1409,1408;, + 4;1415,1414,1413,1412;, + 4;1419,1418,1417,1416;, + 4;1423,1422,1421,1420;, + 4;1427,1426,1425,1424;, + 4;1431,1430,1429,1428;, + 4;1435,1434,1433,1432;, + 4;1439,1438,1437,1436;, + 4;1443,1442,1441,1440;, + 4;1447,1446,1445,1444;, + 4;1451,1450,1449,1448;, + 4;1455,1454,1453,1452;, + 4;1459,1458,1457,1456;, + 4;1463,1462,1461,1460;, + 4;1467,1466,1465,1464;, + 4;1471,1470,1469,1468;, + 4;1475,1474,1473,1472;, + 4;1479,1478,1477,1476;, + 4;1483,1482,1481,1480;, + 4;1487,1486,1485,1484;, + 4;1491,1490,1489,1488;, + 4;1495,1494,1493,1492;, + 4;1499,1498,1497,1496;, + 4;1503,1502,1501,1500;, + 4;1507,1506,1505,1504;, + 4;1511,1510,1509,1508;, + 4;1515,1514,1513,1512;, + 4;1519,1518,1517,1516;, + 4;1523,1522,1521,1520;, + 4;1527,1526,1525,1524;, + 4;1531,1530,1529,1528;, + 4;1535,1534,1533,1532;, + 4;1539,1538,1537,1536;, + 4;1543,1542,1541,1540;, + 4;1547,1546,1545,1544;, + 4;1551,1550,1549,1548;, + 4;1555,1554,1553,1552;, + 4;1559,1558,1557,1556;, + 4;1563,1562,1561,1560;, + 4;1567,1566,1565,1564;, + 4;1571,1570,1569,1568;, + 4;1575,1574,1573,1572;, + 4;1579,1578,1577,1576;, + 4;1583,1582,1581,1580;, + 4;1587,1586,1585,1584;, + 4;1591,1590,1589,1588;, + 4;1595,1594,1593,1592;, + 4;1599,1598,1597,1596;, + 4;1603,1602,1601,1600;, + 4;1607,1606,1605,1604;, + 4;1611,1610,1609,1608;, + 4;1615,1614,1613,1612;, + 4;1619,1618,1617,1616;, + 4;1623,1622,1621,1620;, + 4;1627,1626,1625,1624;, + 4;1631,1630,1629,1628;, + 4;1635,1634,1633,1632;, + 4;1639,1638,1637,1636;, + 4;1643,1642,1641,1640;, + 4;1647,1646,1645,1644;, + 4;1651,1650,1649,1648;, + 4;1655,1654,1653,1652;, + 4;1659,1658,1657,1656;, + 4;1663,1662,1661,1660;, + 4;1667,1666,1665,1664;, + 4;1671,1670,1669,1668;, + 4;1675,1674,1673,1672;, + 4;1679,1678,1677,1676;, + 4;1683,1682,1681,1680;, + 4;1687,1686,1685,1684;, + 4;1691,1690,1689,1688;, + 4;1695,1694,1693,1692;, + 4;1699,1698,1697,1696;, + 4;1703,1702,1701,1700;, + 4;1707,1706,1705,1704;, + 4;1711,1710,1709,1708;, + 4;1715,1714,1713,1712;, + 4;1719,1718,1717,1716;, + 4;1723,1722,1721,1720;, + 4;1727,1726,1725,1724;, + 4;1731,1730,1729,1728;, + 4;1735,1734,1733,1732;, + 3;1738,1737,1736;, + 3;1741,1740,1739;, + 3;1744,1743,1742;, + 3;1747,1746,1745;, + 3;1750,1749,1748;, + 3;1753,1752,1751;, + 3;1756,1755,1754;, + 3;1759,1758,1757;, + 3;1762,1761,1760;, + 3;1765,1764,1763;, + 3;1768,1767,1766;, + 3;1771,1770,1769;, + 3;1774,1773,1772;, + 3;1777,1776,1775;, + 3;1780,1779,1778;, + 3;1783,1782,1781;, + 3;1786,1785,1784;, + 3;1789,1788,1787;, + 3;1792,1791,1790;, + 3;1795,1794,1793;, + 3;1798,1797,1796;, + 3;1801,1800,1799;, + 3;1804,1803,1802;, + 3;1807,1806,1805;, + 3;1810,1809,1808;, + 3;1813,1812,1811;, + 3;1816,1815,1814;, + 3;1819,1818,1817;, + 3;1822,1821,1820;, + 3;1825,1824,1823;, + 3;1828,1827,1826;, + 3;1831,1830,1829;, + 3;1834,1833,1832;, + 3;1837,1836,1835;, + 3;1840,1839,1838;, + 3;1843,1842,1841;, + 3;1846,1845,1844;, + 3;1849,1848,1847;, + 3;1852,1851,1850;, + 3;1855,1854,1853;, + 3;1858,1857,1856;, + 3;1861,1860,1859;, + 3;1864,1863,1862;, + 3;1867,1866,1865;, + 3;1870,1869,1868;, + 3;1873,1872,1871;, + 3;1876,1875,1874;, + 3;1879,1878,1877;, + 3;1882,1881,1880;, + 3;1885,1884,1883;, + 3;1888,1887,1886;, + 3;1891,1890,1889;, + 3;1894,1893,1892;, + 3;1897,1896,1895;, + 3;1900,1899,1898;, + 3;1903,1902,1901;, + 3;1906,1905,1904;, + 3;1909,1908,1907;, + 3;1912,1911,1910;, + 3;1915,1914,1913;, + 3;1918,1917,1916;, + 3;1921,1920,1919;, + 4;1925,1924,1923,1922;, + 4;1929,1928,1927,1926;, + 3;1932,1931,1930;, + 4;1936,1935,1934,1933;, + 4;1940,1939,1938,1937;, + 3;1943,1942,1941;, + 4;1947,1946,1945,1944;, + 4;1951,1950,1949,1948;, + 4;1955,1954,1953,1952;, + 4;1959,1958,1957,1956;, + 4;1963,1962,1961,1960;, + 4;1967,1966,1965,1964;, + 4;1971,1970,1969,1968;, + 4;1975,1974,1973,1972;, + 4;1979,1978,1977,1976;, + 4;1983,1982,1981,1980;; + } // End of Sphere normals + MeshTextureCoords { // Sphere UV coordinates + 1984; + 0.696329; 0.649558;, + 0.693439; 0.695942;, + 0.732081; 0.695942;, + 0.729191; 0.649558;, + 0.052296; 0.544562;, + 0.098751; 0.545884;, + 0.098751; 0.500303;, + 0.052296; 0.501626;, + 0.098749; 0.901249;, + 0.052277; 0.901696;, + 0.052277; 0.947277;, + 0.098749; 0.947723;, + 0.507917; 0.304323;, + 0.510064; 0.350748;, + 0.548706; 0.350748;, + 0.550854; 0.304323;, + 0.787055; 0.193057;, + 0.833395; 0.189536;, + 0.833395; 0.163716;, + 0.787055; 0.160195;, + 0.883533; 0.070045;, + 0.837264; 0.065686;, + 0.837264; 0.083471;, + 0.883533; 0.079112;, + 0.153051; 0.080850;, + 0.199320; 0.076491;, + 0.199320; 0.067424;, + 0.153051; 0.063065;, + 0.048334; 0.181823;, + 0.001993; 0.178302;, + 0.001993; 0.211164;, + 0.048334; 0.207643;, + 0.604617; 0.951622;, + 0.602469; 0.998047;, + 0.645406; 0.998047;, + 0.643258; 0.951622;, + 0.354778; 0.649541;, + 0.354331; 0.696013;, + 0.400806; 0.696013;, + 0.400359; 0.649541;, + 0.249759; 0.549751;, + 0.203303; 0.551073;, + 0.203303; 0.594010;, + 0.249759; 0.595332;, + 0.559017; 0.297388;, + 0.561907; 0.343772;, + 0.594769; 0.343772;, + 0.597659; 0.297388;, + 0.203378; 0.139468;, + 0.249678; 0.135451;, + 0.249678; 0.117666;, + 0.203378; 0.113649;, + 0.149094; 0.096599;, + 0.102794; 0.092581;, + 0.102793; 0.118401;, + 0.149094; 0.114384;, + 0.149094; 0.500305;, + 0.102639; 0.501628;, + 0.102639; 0.544564;, + 0.149094; 0.545887;, + 0.098680; 0.267928;, + 0.052296; 0.270817;, + 0.052296; 0.303680;, + 0.098680; 0.306569;, + 0.052340; 0.118399;, + 0.098640; 0.114381;, + 0.098640; 0.096596;, + 0.052340; 0.092579;, + 0.199320; 0.118424;, + 0.153020; 0.114407;, + 0.153020; 0.140226;, + 0.199320; 0.136209;, + 0.203334; 0.302803;, + 0.249718; 0.305693;, + 0.249718; 0.267051;, + 0.203334; 0.269941;, + 0.404655; 0.594008;, + 0.451111; 0.595330;, + 0.451111; 0.549749;, + 0.404655; 0.551071;, + 0.303987; 0.847037;, + 0.350459; 0.846591;, + 0.350459; 0.801010;, + 0.303987; 0.800563;, + 0.350413; 0.310436;, + 0.303989; 0.312584;, + 0.303989; 0.351225;, + 0.350413; 0.353373;, + 0.354446; 0.176197;, + 0.400787; 0.172676;, + 0.400787; 0.146856;, + 0.354446; 0.143335;, + 0.833364; 0.076481;, + 0.787095; 0.072122;, + 0.787095; 0.089907;, + 0.833365; 0.085547;, + 0.912153; 0.516420;, + 0.958422; 0.512061;, + 0.958422; 0.502994;, + 0.912153; 0.498635;, + 0.350370; 0.184463;, + 0.304029; 0.180942;, + 0.304029; 0.213804;, + 0.350370; 0.210283;, + 0.203334; 0.397156;, + 0.249758; 0.399304;, + 0.249758; 0.356367;, + 0.203334; 0.358514;, + 0.299674; 0.796695;, + 0.300120; 0.750223;, + 0.253646; 0.750223;, + 0.254092; 0.796695;, + 0.098751; 0.549753;, + 0.052296; 0.551075;, + 0.052296; 0.594012;, + 0.098751; 0.595334;, + 0.451111; 0.267923;, + 0.404726; 0.270813;, + 0.404727; 0.303675;, + 0.451111; 0.306565;, + 0.507958; 0.112284;, + 0.554258; 0.108267;, + 0.554258; 0.090482;, + 0.507958; 0.086465;, + 0.698125; 0.120976;, + 0.651824; 0.116959;, + 0.651825; 0.142779;, + 0.698125; 0.138761;, + 0.651781; 0.298372;, + 0.698165; 0.301261;, + 0.698165; 0.262620;, + 0.651781; 0.265509;, + 0.303989; 0.594010;, + 0.350444; 0.595332;, + 0.350444; 0.549751;, + 0.303989; 0.551073;, + 0.048408; 0.847042;, + 0.047962; 0.800570;, + 0.002381; 0.800570;, + 0.001934; 0.847042;, + 0.550854; 0.401422;, + 0.504429; 0.403569;, + 0.504429; 0.442211;, + 0.550854; 0.444358;, + 0.304029; 0.177073;, + 0.350370; 0.173552;, + 0.350370; 0.147732;, + 0.304029; 0.144211;, + 0.935490; 0.804974;, + 0.889221; 0.800615;, + 0.889221; 0.818400;, + 0.935490; 0.814040;, + 0.304060; 0.080966;, + 0.350329; 0.076607;, + 0.350329; 0.067540;, + 0.304060; 0.063181;, + 0.098680; 0.192207;, + 0.052340; 0.188686;, + 0.052340; 0.221548;, + 0.098680; 0.218027;, + 0.052296; 0.398032;, + 0.098721; 0.400180;, + 0.098721; 0.357243;, + 0.052296; 0.359390;, + 0.152963; 0.896934;, + 0.199435; 0.897380;, + 0.199435; 0.850906;, + 0.152963; 0.851352;, + 0.203303; 0.545882;, + 0.249759; 0.544560;, + 0.249759; 0.501624;, + 0.203303; 0.500301;, + 0.742463; 0.800615;, + 0.696079; 0.803505;, + 0.696079; 0.836367;, + 0.742463; 0.839257;, + 0.454979; 0.121558;, + 0.501279; 0.117541;, + 0.501280; 0.099756;, + 0.454979; 0.095739;, + 0.883564; 0.121045;, + 0.837264; 0.117028;, + 0.837264; 0.142848;, + 0.883564; 0.138830;, + 0.304029; 0.303678;, + 0.350413; 0.306567;, + 0.350413; 0.267926;, + 0.304029; 0.270815;, + 0.354331; 0.594008;, + 0.400787; 0.595330;, + 0.400787; 0.549749;, + 0.354332; 0.551071;, + 0.203303; 0.847037;, + 0.249775; 0.846591;, + 0.249775; 0.801010;, + 0.203303; 0.800563;, + 0.451111; 0.357239;, + 0.404686; 0.359386;, + 0.404686; 0.398028;, + 0.451111; 0.400176;, + 0.052340; 0.184818;, + 0.098680; 0.181296;, + 0.098680; 0.155477;, + 0.052340; 0.151955;, + 0.950798; 0.430892;, + 0.904529; 0.426533;, + 0.904529; 0.444318;, + 0.950798; 0.439959;, + 0.702065; 0.067218;, + 0.748334; 0.062859;, + 0.748334; 0.053792;, + 0.702065; 0.049433;, + 0.554258; 0.186093;, + 0.507917; 0.182572;, + 0.507917; 0.215434;, + 0.554258; 0.211913;, + 0.253665; 0.443961;, + 0.300089; 0.446109;, + 0.300089; 0.403172;, + 0.253665; 0.405319;, + 0.001934; 0.796255;, + 0.048406; 0.796701;, + 0.048406; 0.750227;, + 0.001934; 0.750674;, + 0.450255; 0.796661;, + 0.448933; 0.750206;, + 0.405996; 0.750206;, + 0.404674; 0.796661;, + 0.601528; 0.301261;, + 0.647912; 0.298372;, + 0.647912; 0.265509;, + 0.601528; 0.262620;, + 0.885352; 0.800615;, + 0.839052; 0.804633;, + 0.839052; 0.822418;, + 0.885352; 0.826435;, + 0.253749; 0.135451;, + 0.300049; 0.139468;, + 0.300049; 0.113649;, + 0.253749; 0.117666;, + 0.501364; 0.308021;, + 0.454980; 0.305130;, + 0.454979; 0.343772;, + 0.501364; 0.340883;, + 0.498377; 0.947704;, + 0.499699; 0.901249;, + 0.454118; 0.901249;, + 0.455440; 0.947704;, + 0.300120; 0.746354;, + 0.299674; 0.699882;, + 0.254092; 0.699882;, + 0.253646; 0.746354;, + 0.102669; 0.353377;, + 0.149094; 0.351229;, + 0.149094; 0.312588;, + 0.102669; 0.310440;, + 0.698165; 0.183378;, + 0.651824; 0.186900;, + 0.651825; 0.212719;, + 0.698165; 0.216240;, + 0.203378; 0.075733;, + 0.249647; 0.080092;, + 0.249647; 0.062307;, + 0.203378; 0.066666;, + 0.501279; 0.052432;, + 0.455010; 0.056791;, + 0.455010; 0.065857;, + 0.501279; 0.070216;, + 0.354446; 0.209407;, + 0.400787; 0.212928;, + 0.400787; 0.180066;, + 0.354446; 0.183587;, + 0.098721; 0.406196;, + 0.052296; 0.404048;, + 0.052296; 0.446985;, + 0.098720; 0.444838;, + 0.203303; 0.947276;, + 0.249775; 0.947723;, + 0.249775; 0.901249;, + 0.203303; 0.901695;, + 0.303989; 0.545882;, + 0.350444; 0.544560;, + 0.350444; 0.501624;, + 0.303989; 0.500301;, + 0.354403; 0.305691;, + 0.400787; 0.302801;, + 0.400787; 0.269939;, + 0.354403; 0.267049;, + 0.149094; 0.122270;, + 0.102794; 0.126286;, + 0.102793; 0.144071;, + 0.149094; 0.148089;, + 0.304029; 0.136325;, + 0.350329; 0.140343;, + 0.350329; 0.114523;, + 0.304029; 0.118540;, + 0.698165; 0.308020;, + 0.651781; 0.305130;, + 0.651781; 0.343772;, + 0.698165; 0.340882;, + 0.300101; 0.551073;, + 0.253646; 0.549751;, + 0.253646; 0.595332;, + 0.300101; 0.594010;, + 0.152963; 0.696009;, + 0.199435; 0.695563;, + 0.199435; 0.649981;, + 0.152963; 0.649535;, + 0.001953; 0.350733;, + 0.048378; 0.348585;, + 0.048378; 0.309943;, + 0.001953; 0.307796;, + 0.300049; 0.143337;, + 0.253709; 0.146858;, + 0.253708; 0.172678;, + 0.300049; 0.176199;, + 0.304060; 0.054953;, + 0.350329; 0.059313;, + 0.350329; 0.041528;, + 0.304060; 0.045887;, + 0.554227; 0.064811;, + 0.507958; 0.069170;, + 0.507958; 0.078237;, + 0.554227; 0.082596;, + 0.203378; 0.209409;, + 0.249718; 0.212930;, + 0.249718; 0.180068;, + 0.203378; 0.183589;, + 0.249759; 0.405320;, + 0.203334; 0.403172;, + 0.203334; 0.446109;, + 0.249758; 0.443962;, + 0.253646; 0.997619;, + 0.300118; 0.998066;, + 0.300118; 0.951592;, + 0.253646; 0.952038;, + 0.052296; 0.496435;, + 0.098751; 0.495112;, + 0.098751; 0.452176;, + 0.052296; 0.450853;, + 0.102710; 0.264061;, + 0.149094; 0.261171;, + 0.149094; 0.228309;, + 0.102710; 0.225419;, + 0.554258; 0.116153;, + 0.507957; 0.120170;, + 0.507958; 0.137955;, + 0.554258; 0.141972;, + 0.153020; 0.106521;, + 0.199320; 0.110538;, + 0.199320; 0.084718;, + 0.153020; 0.088736;, + 0.742462; 0.904139;, + 0.696077; 0.901249;, + 0.696077; 0.939891;, + 0.742462; 0.937001;, + 0.048408; 0.551079;, + 0.001953; 0.549756;, + 0.001952; 0.595337;, + 0.048408; 0.594015;, + 0.303987; 0.998066;, + 0.350459; 0.997619;, + 0.350459; 0.952038;, + 0.303987; 0.951592;, + 0.354362; 0.352496;, + 0.400787; 0.350349;, + 0.400787; 0.311707;, + 0.354362; 0.309560;, + 0.249718; 0.143337;, + 0.203378; 0.146858;, + 0.203378; 0.172678;, + 0.249718; 0.176199;, + 0.917121; 0.138489;, + 0.963390; 0.142848;, + 0.963390; 0.125063;, + 0.917121; 0.129422;, + 0.501279; 0.074085;, + 0.455010; 0.078443;, + 0.455010; 0.087510;, + 0.501279; 0.091870;, + 0.102753; 0.181299;, + 0.149094; 0.184820;, + 0.149094; 0.151958;, + 0.102753; 0.155479;, + 0.350413; 0.406194;, + 0.303989; 0.404046;, + 0.303989; 0.446983;, + 0.350413; 0.444836;, + 0.253644; 0.947276;, + 0.300116; 0.947723;, + 0.300116; 0.901249;, + 0.253644; 0.901695;, + 0.454120; 0.800584;, + 0.455442; 0.847039;, + 0.498379; 0.847039;, + 0.499701; 0.800584;, + 0.693439; 0.750206;, + 0.696329; 0.796590;, + 0.729191; 0.796590;, + 0.732081; 0.750206;, + 0.883564; 0.087340;, + 0.837264; 0.091357;, + 0.837264; 0.109142;, + 0.883564; 0.113160;, + 0.002034; 0.133685;, + 0.048334; 0.137703;, + 0.048334; 0.111883;, + 0.002034; 0.115900;, + 0.697184; 0.448258;, + 0.694294; 0.494642;, + 0.732936; 0.494642;, + 0.730046; 0.448258;, + 0.456302; 0.548875;, + 0.454979; 0.595330;, + 0.500560; 0.595330;, + 0.499238; 0.548875;, + 0.303985; 0.947723;, + 0.350457; 0.947276;, + 0.350457; 0.901695;, + 0.303985; 0.901249;, + 0.404686; 0.353370;, + 0.451111; 0.351223;, + 0.451111; 0.312581;, + 0.404686; 0.310434;, + 0.834241; 0.411496;, + 0.787901; 0.415017;, + 0.787901; 0.440837;, + 0.834241; 0.444358;, + 0.507958; 0.056583;, + 0.554227; 0.060942;, + 0.554227; 0.043157;, + 0.507958; 0.047517;, + 0.048303; 0.060541;, + 0.002034; 0.064900;, + 0.002034; 0.073967;, + 0.048303; 0.078326;, + 0.781100; 0.880320;, + 0.827441; 0.883841;, + 0.827441; 0.850979;, + 0.781100; 0.854501;, + 0.350413; 0.359389;, + 0.303989; 0.357241;, + 0.303989; 0.400178;, + 0.350413; 0.398030;, + 0.098749; 0.952038;, + 0.052277; 0.951592;, + 0.052277; 0.998066;, + 0.098749; 0.997620;, + 0.300120; 0.500301;, + 0.253665; 0.501624;, + 0.253665; 0.544560;, + 0.300120; 0.545882;, + 0.741522; 0.405716;, + 0.695138; 0.408606;, + 0.695138; 0.441469;, + 0.741522; 0.444358;, + 0.878596; 0.595290;, + 0.874579; 0.548990;, + 0.856794; 0.548990;, + 0.852777; 0.595290;, + 0.884110; 0.746337;, + 0.888128; 0.700037;, + 0.862308; 0.700037;, + 0.866326; 0.746337;, + 0.001993; 0.301038;, + 0.048378; 0.303928;, + 0.048378; 0.265286;, + 0.001993; 0.268176;, + 0.001953; 0.495115;, + 0.048408; 0.496437;, + 0.048408; 0.450856;, + 0.001953; 0.452179;, + 0.102618; 0.951592;, + 0.103064; 0.998064;, + 0.148646; 0.998064;, + 0.149092; 0.951592;, + 0.649276; 0.599218;, + 0.651424; 0.645642;, + 0.690065; 0.645642;, + 0.692213; 0.599218;, + 0.871916; 0.645602;, + 0.868395; 0.599261;, + 0.842575; 0.599261;, + 0.839054; 0.645602;, + 0.354487; 0.075731;, + 0.400756; 0.080090;, + 0.400756; 0.062305;, + 0.354487; 0.066664;, + 0.950798; 0.398018;, + 0.904529; 0.402377;, + 0.904529; 0.411444;, + 0.950798; 0.415803;, + 0.810441; 0.997963;, + 0.813963; 0.951622;, + 0.781101; 0.951622;, + 0.784622; 0.997963;, + 0.651426; 0.699913;, + 0.649278; 0.746337;, + 0.692215; 0.746337;, + 0.690067; 0.699913;, + 0.002381; 0.699887;, + 0.001934; 0.746359;, + 0.048408; 0.746359;, + 0.047962; 0.699887;, + 0.350444; 0.450852;, + 0.303989; 0.452174;, + 0.303989; 0.495110;, + 0.350444; 0.496433;, + 0.300049; 0.267052;, + 0.253665; 0.269941;, + 0.253665; 0.302804;, + 0.300049; 0.305693;, + 0.916024; 0.243226;, + 0.912007; 0.196926;, + 0.894222; 0.196926;, + 0.890204; 0.243226;, + 0.874579; 0.544935;, + 0.878596; 0.498635;, + 0.852777; 0.498635;, + 0.856794; 0.544935;, + 0.454979; 0.298372;, + 0.501364; 0.301261;, + 0.501364; 0.262620;, + 0.454979; 0.265509;, + 0.354331; 0.544558;, + 0.400787; 0.545880;, + 0.400787; 0.500299;, + 0.354331; 0.501621;, + 0.203303; 0.897380;, + 0.249775; 0.896934;, + 0.249775; 0.851352;, + 0.203303; 0.850906;, + 0.400787; 0.356365;, + 0.354362; 0.358512;, + 0.354362; 0.397154;, + 0.400787; 0.399302;, + 0.848908; 0.544935;, + 0.845387; 0.498594;, + 0.819567; 0.498594;, + 0.816046; 0.544935;, + 0.887433; 0.066666;, + 0.933702; 0.071026;, + 0.933702; 0.053241;, + 0.887433; 0.057600;, + 0.698094; 0.043964;, + 0.651824; 0.048323;, + 0.651824; 0.057390;, + 0.698094; 0.061749;, + 0.818182; 0.947589;, + 0.821703; 0.901249;, + 0.788841; 0.901249;, + 0.792362; 0.947589;, + 0.052296; 0.351227;, + 0.098721; 0.353375;, + 0.098721; 0.310438;, + 0.052296; 0.312585;, + 0.152963; 0.796248;, + 0.199435; 0.796695;, + 0.199435; 0.750220;, + 0.152963; 0.750667;, + 0.199435; 0.549742;, + 0.152979; 0.551065;, + 0.152979; 0.594001;, + 0.199435; 0.595324;, + 0.554301; 0.261813;, + 0.507917; 0.264703;, + 0.507917; 0.297565;, + 0.554301; 0.300455;, + 0.914472; 0.695942;, + 0.910454; 0.649642;, + 0.892669; 0.649642;, + 0.888652; 0.695942;, + 0.904267; 0.494601;, + 0.908285; 0.448301;, + 0.882465; 0.448301;, + 0.886482; 0.494601;, + 0.696083; 0.743448;, + 0.742468; 0.746337;, + 0.742468; 0.707696;, + 0.696083; 0.710585;, + 0.102639; 0.495115;, + 0.149094; 0.496437;, + 0.149094; 0.450856;, + 0.102639; 0.452178;, + 0.152963; 0.746352;, + 0.199435; 0.745905;, + 0.199435; 0.700324;, + 0.152963; 0.699878;, + 0.400787; 0.403170;, + 0.354362; 0.405317;, + 0.354362; 0.443959;, + 0.400787; 0.446107;, + 0.812177; 0.544935;, + 0.808656; 0.498594;, + 0.782836; 0.498594;, + 0.779315; 0.544935;, + 0.787095; 0.063895;, + 0.833364; 0.068254;, + 0.833364; 0.050469;, + 0.787095; 0.054828;, + 0.960208; 0.951663;, + 0.913939; 0.956022;, + 0.913939; 0.965089;, + 0.960208; 0.969448;, + 0.854918; 0.746337;, + 0.858440; 0.699997;, + 0.825577; 0.699997;, + 0.829099; 0.746337;, + 0.253665; 0.397156;, + 0.300089; 0.399304;, + 0.300089; 0.356367;, + 0.253665; 0.358514;, + 0.052277; 0.695571;, + 0.098749; 0.696018;, + 0.098749; 0.649543;, + 0.052277; 0.649990;, + 0.450255; 0.746337;, + 0.448933; 0.699882;, + 0.405997; 0.699882;, + 0.404674; 0.746337;, + 0.742465; 0.599218;, + 0.696081; 0.602107;, + 0.696081; 0.634970;, + 0.742465; 0.637859;, + 0.886336; 0.343688;, + 0.882319; 0.297388;, + 0.864534; 0.297388;, + 0.860516; 0.343688;, + 0.909235; 0.142848;, + 0.913252; 0.096548;, + 0.887433; 0.096548;, + 0.891450; 0.142848;, + 0.153020; 0.295819;, + 0.199404; 0.298709;, + 0.199404; 0.260067;, + 0.153020; 0.262957;, + 0.152979; 0.544551;, + 0.199435; 0.545874;, + 0.199435; 0.500293;, + 0.152979; 0.501615;, + 0.350463; 0.796695;, + 0.350016; 0.750223;, + 0.304435; 0.750223;, + 0.303989; 0.796695;, + 0.300089; 0.309562;, + 0.253665; 0.311709;, + 0.253665; 0.350351;, + 0.300089; 0.352498;, + 0.849752; 0.394065;, + 0.846230; 0.347725;, + 0.820411; 0.347725;, + 0.816889; 0.394065;, + 0.912153; 0.562415;, + 0.958422; 0.566774;, + 0.958422; 0.548990;, + 0.912153; 0.553349;, + 0.958422; 0.448301;, + 0.912153; 0.452660;, + 0.912153; 0.461727;, + 0.958422; 0.466086;, + 0.807801; 0.695942;, + 0.811322; 0.649602;, + 0.778460; 0.649602;, + 0.781981; 0.695942;, + 0.102669; 0.398035;, + 0.149094; 0.400182;, + 0.149094; 0.357245;, + 0.102669; 0.359393;, + 0.152963; 0.846591;, + 0.199435; 0.847037;, + 0.199435; 0.800563;, + 0.152963; 0.801010;, + 0.549151; 0.847039;, + 0.547828; 0.800584;, + 0.504892; 0.800584;, + 0.503569; 0.847039;, + 0.734721; 0.897364;, + 0.731831; 0.850979;, + 0.698969; 0.850979;, + 0.696079; 0.897364;, + 0.698125; 0.087271;, + 0.651824; 0.091288;, + 0.651824; 0.109073;, + 0.698125; 0.113091;, + 0.354487; 0.135449;, + 0.400787; 0.139466;, + 0.400787; 0.113647;, + 0.354487; 0.117664;, + 0.772557; 0.494642;, + 0.775446; 0.448258;, + 0.736805; 0.448258;, + 0.739694; 0.494642;, + 0.404655; 0.544558;, + 0.451111; 0.545880;, + 0.451111; 0.500299;, + 0.404655; 0.501621;, + 0.400802; 0.998064;, + 0.400355; 0.951592;, + 0.354774; 0.951592;, + 0.354327; 0.998064;, + 0.692209; 0.947673;, + 0.690061; 0.901249;, + 0.651420; 0.901249;, + 0.649272; 0.947673;, + 0.199360; 0.180826;, + 0.153020; 0.184347;, + 0.153020; 0.210167;, + 0.199360; 0.213688;, + 0.905473; 0.641243;, + 0.951742; 0.645602;, + 0.951742; 0.627817;, + 0.905473; 0.632176;, + 0.958422; 0.577505;, + 0.912153; 0.581864;, + 0.912153; 0.590931;, + 0.958422; 0.595290;, + 0.651824; 0.175988;, + 0.698165; 0.179510;, + 0.698165; 0.146648;, + 0.651824; 0.150169;, + 0.495768; 0.444358;, + 0.497916; 0.397934;, + 0.454979; 0.397934;, + 0.457127; 0.444358;, + 0.303987; 0.896934;, + 0.350459; 0.897380;, + 0.350459; 0.850906;, + 0.303987; 0.851352;, + 0.499705; 0.696013;, + 0.498383; 0.649558;, + 0.455446; 0.649558;, + 0.454124; 0.696013;, + 0.733779; 0.394065;, + 0.730890; 0.347681;, + 0.698027; 0.347681;, + 0.695138; 0.394065;, + 0.098640; 0.122267;, + 0.052340; 0.126284;, + 0.052340; 0.144069;, + 0.098640; 0.148087;, + 0.787095; 0.115578;, + 0.833395; 0.119596;, + 0.833395; 0.093776;, + 0.787095; 0.097793;, + 0.731832; 0.998007;, + 0.734721; 0.951622;, + 0.696080; 0.951622;, + 0.698969; 0.998007;, + 0.448929; 0.897363;, + 0.450251; 0.850908;, + 0.404670; 0.850908;, + 0.405992; 0.897364;, + 0.098751; 0.897380;, + 0.098305; 0.850908;, + 0.052723; 0.850908;, + 0.052277; 0.897380;, + 0.692211; 0.998047;, + 0.690064; 0.951622;, + 0.651422; 0.951622;, + 0.649274; 0.998047;, + 0.199360; 0.144095;, + 0.153020; 0.147616;, + 0.153020; 0.173436;, + 0.199360; 0.176957;, + 0.404801; 0.076605;, + 0.451070; 0.080964;, + 0.451070; 0.063179;, + 0.404801; 0.067538;, + 0.300018; 0.062307;, + 0.253749; 0.066666;, + 0.253749; 0.075733;, + 0.300018; 0.080092;, + 0.404770; 0.173550;, + 0.451111; 0.177071;, + 0.451111; 0.144209;, + 0.404770; 0.147730;, + 0.197257; 0.399295;, + 0.199404; 0.352870;, + 0.156467; 0.352870;, + 0.158615; 0.399295;, + 0.249331; 0.796695;, + 0.249777; 0.750223;, + 0.203303; 0.750223;, + 0.203750; 0.796695;, + 0.549155; 0.796661;, + 0.547833; 0.750206;, + 0.504896; 0.750206;, + 0.503574; 0.796661;, + 0.732936; 0.544935;, + 0.730046; 0.498551;, + 0.697184; 0.498551;, + 0.694294; 0.544935;, + 0.451070; 0.084832;, + 0.404770; 0.088850;, + 0.404770; 0.106635;, + 0.451070; 0.110652;, + 0.601568; 0.131019;, + 0.647869; 0.135037;, + 0.647869; 0.109217;, + 0.601568; 0.113234;, + 0.730046; 0.595290;, + 0.732936; 0.548906;, + 0.694294; 0.548906;, + 0.697184; 0.595290;, + 0.498383; 0.746337;, + 0.499705; 0.699882;, + 0.454124; 0.699882;, + 0.455446; 0.746337;, + 0.400801; 0.897380;, + 0.400355; 0.850908;, + 0.354774; 0.850908;, + 0.354327; 0.897380;, + 0.692211; 0.897364;, + 0.690063; 0.850939;, + 0.651421; 0.850939;, + 0.649274; 0.897364;, + 0.647869; 0.175636;, + 0.601528; 0.179157;, + 0.601528; 0.204977;, + 0.647869; 0.208498;, + 0.002034; 0.052313;, + 0.048303; 0.056673;, + 0.048303; 0.038888;, + 0.002034; 0.043247;, + 0.149093; 0.070928;, + 0.102824; 0.075288;, + 0.102824; 0.084355;, + 0.149094; 0.088713;, + 0.788842; 0.829956;, + 0.835183; 0.833477;, + 0.835183; 0.800615;, + 0.788842; 0.804136;, + 0.643262; 0.746337;, + 0.645410; 0.699913;, + 0.602473; 0.699913;, + 0.604620; 0.746337;, + 0.249331; 0.998064;, + 0.249778; 0.951592;, + 0.203304; 0.951592;, + 0.203750; 0.998064;, + 0.499701; 0.897364;, + 0.498379; 0.850908;, + 0.455442; 0.850908;, + 0.454120; 0.897363;, + 0.300049; 0.263183;, + 0.297159; 0.216799;, + 0.264297; 0.216799;, + 0.261407; 0.263183;, + 0.249678; 0.083960;, + 0.203378; 0.087978;, + 0.203378; 0.105763;, + 0.249678; 0.109780;, + 0.253749; 0.105763;, + 0.300049; 0.109780;, + 0.300049; 0.083961;, + 0.253749; 0.087978;, + 0.771701; 0.695942;, + 0.774591; 0.649558;, + 0.735949; 0.649558;, + 0.738839; 0.695942;, + 0.448933; 0.696013;, + 0.450255; 0.649558;, + 0.404674; 0.649558;, + 0.405996; 0.696013;, + 0.149094; 0.897380;, + 0.148647; 0.850908;, + 0.103066; 0.850908;, + 0.102620; 0.897380;, + 0.691269; 0.444358;, + 0.689122; 0.397934;, + 0.650480; 0.397934;, + 0.648333; 0.444358;, + 0.647869; 0.138905;, + 0.601528; 0.142426;, + 0.601528; 0.168246;, + 0.647869; 0.171767;, + 0.601568; 0.071301;, + 0.647838; 0.075660;, + 0.647838; 0.057875;, + 0.601568; 0.062234;, + 0.698094; 0.065617;, + 0.651824; 0.069977;, + 0.651825; 0.079044;, + 0.698094; 0.083402;, + 0.454979; 0.204977;, + 0.501320; 0.208498;, + 0.501320; 0.175636;, + 0.454979; 0.179157;, + 0.595511; 0.444358;, + 0.597659; 0.397934;, + 0.554722; 0.397934;, + 0.556870; 0.444358;, + 0.098305; 0.796699;, + 0.098751; 0.750227;, + 0.052277; 0.750227;, + 0.052724; 0.796699;, + 0.450253; 0.645673;, + 0.448931; 0.599217;, + 0.405994; 0.599218;, + 0.404672; 0.645673;, + 0.342671; 0.264057;, + 0.339781; 0.217673;, + 0.306919; 0.217673;, + 0.304029; 0.264057;, + 0.888122; 0.947589;, + 0.884104; 0.901289;, + 0.866320; 0.901289;, + 0.862302; 0.947589;, + 0.912007; 0.343688;, + 0.916024; 0.297388;, + 0.890205; 0.297388;, + 0.894222; 0.343688;, + 0.737786; 0.343772;, + 0.740676; 0.297388;, + 0.702034; 0.297388;, + 0.704924; 0.343772;, + 0.547833; 0.746337;, + 0.549155; 0.699882;, + 0.503574; 0.699882;, + 0.504896; 0.746337;, + 0.048408; 0.998066;, + 0.047963; 0.951594;, + 0.002382; 0.951593;, + 0.001934; 0.998065;, + 0.690426; 0.494682;, + 0.688278; 0.448258;, + 0.649636; 0.448258;, + 0.647489; 0.494682;, + 0.870972; 0.444358;, + 0.867451; 0.398018;, + 0.841631; 0.398018;, + 0.838110; 0.444358;, + 0.912153; 0.490242;, + 0.958422; 0.494601;, + 0.958422; 0.476817;, + 0.912153; 0.481176;, + 0.951742; 0.599301;, + 0.905473; 0.603661;, + 0.905473; 0.612727;, + 0.951742; 0.617086;, + 0.844531; 0.695942;, + 0.848053; 0.649602;, + 0.815191; 0.649602;, + 0.818712; 0.695942;, + 0.640618; 0.796631;, + 0.642765; 0.750206;, + 0.599829; 0.750206;, + 0.601976; 0.796631;, + 0.047962; 0.696018;, + 0.048408; 0.649546;, + 0.001934; 0.649546;, + 0.002381; 0.696018;, + 0.499701; 0.998047;, + 0.498379; 0.951592;, + 0.455442; 0.951592;, + 0.454120; 0.998047;, + 0.597659; 0.293519;, + 0.594769; 0.247135;, + 0.561907; 0.247135;, + 0.559017; 0.293519;, + 0.899814; 0.193057;, + 0.895797; 0.146757;, + 0.878012; 0.146757;, + 0.873995; 0.193057;, + 0.889842; 0.883801;, + 0.893860; 0.837501;, + 0.868040; 0.837501;, + 0.872057; 0.883801;, + 0.772557; 0.544935;, + 0.775446; 0.498551;, + 0.736805; 0.498551;, + 0.739694; 0.544935;, + 0.498383; 0.796661;, + 0.499705; 0.750206;, + 0.454124; 0.750206;, + 0.455446; 0.796661;, + 0.149094; 0.796699;, + 0.148647; 0.750227;, + 0.103066; 0.750227;, + 0.102620; 0.796699;, + 0.690426; 0.595330;, + 0.688278; 0.548905;, + 0.649636; 0.548905;, + 0.647489; 0.595330;, + 0.487842; 0.171767;, + 0.484320; 0.125427;, + 0.458501; 0.125427;, + 0.454979; 0.171767;, + 0.918340; 0.792191;, + 0.964610; 0.796550;, + 0.964610; 0.778765;, + 0.918340; 0.783124;, + 0.959266; 0.347725;, + 0.912997; 0.352084;, + 0.912997; 0.361150;, + 0.959266; 0.365509;, + 0.853126; 0.293519;, + 0.856648; 0.247178;, + 0.823785; 0.247178;, + 0.827307; 0.293519;, + 0.643260; 0.645642;, + 0.645408; 0.599217;, + 0.602471; 0.599217;, + 0.604618; 0.645642;, + 0.098305; 0.746358;, + 0.098751; 0.699886;, + 0.052277; 0.699886;, + 0.052724; 0.746358;, + 0.450251; 0.847039;, + 0.448929; 0.800584;, + 0.405992; 0.800584;, + 0.404670; 0.847040;, + 0.784032; 0.444358;, + 0.781143; 0.397974;, + 0.748280; 0.397974;, + 0.745391; 0.444358;, + 0.879440; 0.394025;, + 0.875422; 0.347725;, + 0.857638; 0.347724;, + 0.853620; 0.394025;, + 0.779169; 0.142845;, + 0.783186; 0.096545;, + 0.757366; 0.096545;, + 0.761384; 0.142845;, + 0.037745; 0.261417;, + 0.040635; 0.215033;, + 0.001993; 0.215033;, + 0.004883; 0.261417;, + 0.547830; 0.645673;, + 0.549153; 0.599217;, + 0.503572; 0.599217;, + 0.504894; 0.645673;, + 0.249777; 0.746354;, + 0.249331; 0.699882;, + 0.203750; 0.699882;, + 0.203303; 0.746354;, + 0.642765; 0.695983;, + 0.640618; 0.649558;, + 0.601976; 0.649558;, + 0.599829; 0.695983;, + 0.864171; 0.883841;, + 0.860650; 0.837501;, + 0.834830; 0.837501;, + 0.831309; 0.883841;, + 0.912997; 0.389666;, + 0.959266; 0.394025;, + 0.959266; 0.376240;, + 0.912997; 0.380599;, + 0.963390; 0.096548;, + 0.917121; 0.100907;, + 0.917121; 0.109973;, + 0.963390; 0.114333;, + 0.844531; 0.796590;, + 0.848053; 0.750250;, + 0.815190; 0.750250;, + 0.818712; 0.796590;, + 0.594668; 0.494682;, + 0.596815; 0.448258;, + 0.553879; 0.448258;, + 0.556026; 0.494682;, + 0.148646; 0.947723;, + 0.149092; 0.901251;, + 0.102618; 0.901251;, + 0.103065; 0.947723;, + 0.499703; 0.645673;, + 0.498381; 0.599217;, + 0.455444; 0.599218;, + 0.454122; 0.645673;, + 0.783186; 0.293519;, + 0.780296; 0.247135;, + 0.747434; 0.247135;, + 0.744544; 0.293519;, + 0.783186; 0.193013;, + 0.779169; 0.146713;, + 0.761384; 0.146713;, + 0.757366; 0.193013;, + 0.897587; 0.645602;, + 0.901604; 0.599301;, + 0.875785; 0.599301;, + 0.879802; 0.645602;, + 0.637280; 0.258751;, + 0.640170; 0.212367;, + 0.601528; 0.212367;, + 0.604418; 0.258751;, + 0.548688; 0.545006;, + 0.550010; 0.498551;, + 0.504429; 0.498551;, + 0.505751; 0.545006;, + 0.199435; 0.947723;, + 0.198988; 0.901251;, + 0.153407; 0.901251;, + 0.152961; 0.947723;, + 0.644464; 0.394065;, + 0.642317; 0.347641;, + 0.603675; 0.347641;, + 0.601527; 0.394065;, + 0.591879; 0.193013;, + 0.588358; 0.146673;, + 0.562538; 0.146673;, + 0.559017; 0.193013;, + 0.912153; 0.540576;, + 0.958422; 0.544935;, + 0.958422; 0.527150;, + 0.912153; 0.531509;, + 0.249647; 0.040653;, + 0.203378; 0.045013;, + 0.203378; 0.054079;, + 0.249647; 0.058438;, + 0.809499; 0.394065;, + 0.813021; 0.347724;, + 0.780159; 0.347724;, + 0.783680; 0.394065;, + 0.641473; 0.544975;, + 0.643621; 0.498551;, + 0.600684; 0.498551;, + 0.602831; 0.544975;, + 0.198988; 0.998064;, + 0.199435; 0.951592;, + 0.152961; 0.951592;, + 0.153407; 0.998064;, + 0.550010; 0.595330;, + 0.548688; 0.548875;, + 0.505751; 0.548875;, + 0.504429; 0.595330;, + 0.774591; 0.796590;, + 0.771701; 0.750206;, + 0.738839; 0.750206;, + 0.735949; 0.796590;, + 0.909128; 0.394025;, + 0.905111; 0.347725;, + 0.887326; 0.347725;, + 0.883309; 0.394025;, + 0.910454; 0.796550;, + 0.914472; 0.750250;, + 0.888652; 0.750250;, + 0.892669; 0.796550;, + 0.397897; 0.263181;, + 0.400787; 0.216797;, + 0.362145; 0.216797;, + 0.365035; 0.263181;, + 0.547826; 0.947704;, + 0.549149; 0.901249;, + 0.503568; 0.901249;, + 0.504890; 0.947704;, + 0.249777; 0.696013;, + 0.249331; 0.649541;, + 0.203750; 0.649541;, + 0.203303; 0.696013;, + 0.692211; 0.847039;, + 0.690063; 0.800615;, + 0.651421; 0.800615;, + 0.649274; 0.847039;, + 0.884783; 0.695942;, + 0.881262; 0.649602;, + 0.855443; 0.649602;, + 0.851921; 0.695942;, + 0.966162; 0.251578;, + 0.919893; 0.247219;, + 0.919893; 0.265004;, + 0.966162; 0.260645;, + 0.913939; 0.997963;, + 0.960208; 0.993604;, + 0.960208; 0.984537;, + 0.913939; 0.980178;, + 0.853126; 0.243266;, + 0.856648; 0.196926;, + 0.823785; 0.196926;, + 0.827307; 0.243266;, + 0.643258; 0.847039;, + 0.645406; 0.800615;, + 0.602469; 0.800615;, + 0.604616; 0.847039;, + 0.249331; 0.645673;, + 0.249777; 0.599201;, + 0.203303; 0.599201;, + 0.203750; 0.645673;, + 0.400787; 0.496431;, + 0.399465; 0.449975;, + 0.356528; 0.449975;, + 0.355206; 0.496431;, + 0.777232; 0.998007;, + 0.774342; 0.951622;, + 0.741480; 0.951622;, + 0.738590; 0.998007;, + 0.591879; 0.142804;, + 0.587862; 0.096504;, + 0.570077; 0.096504;, + 0.566060; 0.142804;, + 0.906053; 0.997963;, + 0.910070; 0.951663;, + 0.884250; 0.951663;, + 0.888268; 0.997963;, + 0.774342; 0.897363;, + 0.777231; 0.850979;, + 0.738590; 0.850979;, + 0.741479; 0.897363;, + 0.448929; 0.998047;, + 0.450251; 0.951592;, + 0.404670; 0.951592;, + 0.405993; 0.998047;, + 0.149094; 0.696018;, + 0.148647; 0.649546;, + 0.103066; 0.649546;, + 0.102620; 0.696018;, + 0.690426; 0.544975;, + 0.688278; 0.498551;, + 0.649636; 0.498551;, + 0.647489; 0.544975;, + 0.870126; 0.193057;, + 0.866605; 0.146717;, + 0.840785; 0.146717;, + 0.837264; 0.193057;, + 0.199320; 0.045770;, + 0.153051; 0.041411;, + 0.153051; 0.059196;, + 0.199320; 0.054837;, + 0.354487; 0.058436;, + 0.400756; 0.054077;, + 0.400756; 0.045011;, + 0.354487; 0.040651;, + 0.816396; 0.343728;, + 0.819917; 0.297388;, + 0.787055; 0.297388;, + 0.790576; 0.343728;, + 0.643256; 0.947673;, + 0.645404; 0.901249;, + 0.602467; 0.901249;, + 0.604614; 0.947673;, + 0.350016; 0.645673;, + 0.350463; 0.599201;, + 0.303989; 0.599201;, + 0.304435; 0.645673;, + 0.598602; 0.645673;, + 0.597280; 0.599217;, + 0.554344; 0.599217;, + 0.553021; 0.645673;, + 0.776290; 0.394065;, + 0.773400; 0.347681;, + 0.740538; 0.347681;, + 0.737648; 0.394065;, + 0.886336; 0.243226;, + 0.882318; 0.196926;, + 0.864534; 0.196926;, + 0.860516; 0.243226;, + 0.874579; 0.494601;, + 0.878596; 0.448301;, + 0.852777; 0.448301;, + 0.856794; 0.494601;, + 0.737786; 0.293519;, + 0.740676; 0.247135;, + 0.702034; 0.247135;, + 0.704924; 0.293519;, + 0.499238; 0.545006;, + 0.500560; 0.498551;, + 0.454979; 0.498551;, + 0.456302; 0.545006;, + 0.149094; 0.847040;, + 0.148648; 0.800568;, + 0.103066; 0.800567;, + 0.102620; 0.847039;, + 0.643620; 0.595330;, + 0.641473; 0.548905;, + 0.602831; 0.548905;, + 0.600684; 0.595330;, + 0.856648; 0.343728;, + 0.853126; 0.297388;, + 0.827307; 0.297388;, + 0.823785; 0.343728;, + 0.451070; 0.045885;, + 0.404801; 0.041525;, + 0.404801; 0.059310;, + 0.451070; 0.054951;, + 0.919893; 0.293519;, + 0.966162; 0.289160;, + 0.966162; 0.280093;, + 0.919893; 0.275734;, + 0.816396; 0.293476;, + 0.819917; 0.247135;, + 0.787055; 0.247135;, + 0.790576; 0.293476;, + 0.593813; 0.796631;, + 0.595960; 0.750206;, + 0.553024; 0.750206;, + 0.555171; 0.796631;, + 0.299674; 0.696013;, + 0.300120; 0.649541;, + 0.253646; 0.649541;, + 0.254092; 0.696013;, + 0.549151; 0.998047;, + 0.547829; 0.951592;, + 0.504892; 0.951592;, + 0.503570; 0.998047;, + 0.451111; 0.264055;, + 0.448221; 0.217671;, + 0.415359; 0.217671;, + 0.412469; 0.264055;, + 0.886336; 0.293519;, + 0.882318; 0.247219;, + 0.864534; 0.247219;, + 0.860516; 0.293519;, + 0.876364; 0.997963;, + 0.880382; 0.951663;, + 0.854562; 0.951663;, + 0.858580; 0.997963;, + 0.772557; 0.595290;, + 0.775446; 0.548906;, + 0.736805; 0.548906;, + 0.739694; 0.595290;, + 0.597278; 0.998047;, + 0.598601; 0.951592;, + 0.553020; 0.951592;, + 0.554342; 0.998047;, + 0.300118; 0.847035;, + 0.299671; 0.800563;, + 0.254090; 0.800563;, + 0.253644; 0.847035;, + 0.691269; 0.394065;, + 0.689122; 0.347641;, + 0.650480; 0.347641;, + 0.648333; 0.394065;, + 0.850694; 0.997963;, + 0.847172; 0.951622;, + 0.821353; 0.951622;, + 0.817831; 0.997963;, + 0.966162; 0.201285;, + 0.919893; 0.196926;, + 0.919893; 0.214711;, + 0.966162; 0.210351;, + 0.919893; 0.315173;, + 0.966162; 0.310813;, + 0.966162; 0.301747;, + 0.919893; 0.297388;, + 0.808656; 0.595290;, + 0.812177; 0.548949;, + 0.779315; 0.548949;, + 0.782836; 0.595290;, + 0.593813; 0.695983;, + 0.595960; 0.649558;, + 0.553024; 0.649558;, + 0.555171; 0.695983;, + 0.047962; 0.897383;, + 0.048408; 0.850911;, + 0.001934; 0.850911;, + 0.002381; 0.897383;, + 0.549151; 0.897364;, + 0.547828; 0.850908;, + 0.504892; 0.850908;, + 0.503569; 0.897363;, + 0.249718; 0.263183;, + 0.246828; 0.216799;, + 0.213966; 0.216799;, + 0.211076; 0.263183;, + 0.002034; 0.108014;, + 0.048334; 0.103997;, + 0.048334; 0.086212;, + 0.002034; 0.082195;, + 0.400787; 0.087976;, + 0.354487; 0.083958;, + 0.354487; 0.109778;, + 0.400787; 0.105761;, + 0.594769; 0.243266;, + 0.597659; 0.196882;, + 0.559017; 0.196882;, + 0.561907; 0.243266;, + 0.248436; 0.496433;, + 0.249759; 0.449977;, + 0.204177; 0.449977;, + 0.205500; 0.496433;, + 0.149094; 0.645677;, + 0.148647; 0.599205;, + 0.103066; 0.599205;, + 0.102620; 0.645677;, + 0.689570; 0.695983;, + 0.687423; 0.649558;, + 0.648781; 0.649558;, + 0.646634; 0.695983;, + 0.507917; 0.178703;, + 0.554258; 0.175182;, + 0.554258; 0.149362;, + 0.507917; 0.145841;, + 0.149094; 0.053633;, + 0.102824; 0.049274;, + 0.102825; 0.067059;, + 0.149094; 0.062700;, + 0.918340; 0.667427;, + 0.964610; 0.663068;, + 0.964610; 0.654001;, + 0.918340; 0.649642;, + 0.835185; 0.616261;, + 0.788845; 0.612740;, + 0.788845; 0.645602;, + 0.835185; 0.642080;, + 0.642317; 0.444358;, + 0.644464; 0.397934;, + 0.601527; 0.397934;, + 0.603675; 0.444358;, + 0.148647; 0.746358;, + 0.149094; 0.699886;, + 0.102620; 0.699886;, + 0.103066; 0.746358;, + 0.598600; 0.847039;, + 0.597278; 0.800584;, + 0.554342; 0.800584;, + 0.553019; 0.847039;, + 0.783186; 0.343772;, + 0.780296; 0.297388;, + 0.747434; 0.297388;, + 0.744544; 0.343772;, + 0.601568; 0.105348;, + 0.647869; 0.101331;, + 0.647869; 0.083546;, + 0.601568; 0.079529;, + 0.350329; 0.088852;, + 0.304029; 0.084835;, + 0.304029; 0.110654;, + 0.350329; 0.106637;, + 0.782082; 0.947633;, + 0.784972; 0.901249;, + 0.746330; 0.901249;, + 0.749220; 0.947633;, + 0.499238; 0.494682;, + 0.500560; 0.448227;, + 0.454979; 0.448227;, + 0.456302; 0.494682;, + 0.400801; 0.847037;, + 0.400355; 0.800565;, + 0.354774; 0.800565;, + 0.354327; 0.847037;, + 0.497916; 0.394065;, + 0.495768; 0.347641;, + 0.457127; 0.347641;, + 0.454979; 0.394065;, + 0.787055; 0.156326;, + 0.833395; 0.152805;, + 0.833395; 0.126985;, + 0.787055; 0.123464;, + 0.933702; 0.079252;, + 0.887433; 0.074894;, + 0.887433; 0.092679;, + 0.933702; 0.088319;, + 0.837264; 0.061818;, + 0.883533; 0.057459;, + 0.883533; 0.048392;, + 0.837264; 0.044033;, + 0.451111; 0.184461;, + 0.404770; 0.180940;, + 0.404770; 0.213802;, + 0.451111; 0.210281;, + 0.594668; 0.595330;, + 0.596815; 0.548905;, + 0.553879; 0.548905;, + 0.556026; 0.595330;, + 0.047961; 0.947724;, + 0.048408; 0.901252;, + 0.001934; 0.901252;, + 0.002380; 0.947724;, + 0.299246; 0.496433;, + 0.297924; 0.449977;, + 0.254987; 0.449977;, + 0.253665; 0.496433;, + 0.784974; 0.846999;, + 0.782084; 0.800615;, + 0.749222; 0.800615;, + 0.746332; 0.846999;, + 0.702034; 0.096906;, + 0.748334; 0.092889;, + 0.748334; 0.075104;, + 0.702034; 0.071086;, + 0.748334; 0.134481;, + 0.702034; 0.130463;, + 0.702034; 0.156283;, + 0.748334; 0.152266;, + 0.782088; 0.746337;, + 0.784978; 0.699953;, + 0.746336; 0.699953;, + 0.749226; 0.746337;, + 0.548688; 0.494682;, + 0.550010; 0.448227;, + 0.504429; 0.448227;, + 0.505751; 0.494682;, + 0.300120; 0.645673;, + 0.299674; 0.599201;, + 0.254092; 0.599201;, + 0.253646; 0.645673;, + 0.597659; 0.394065;, + 0.595511; 0.347641;, + 0.556870; 0.347641;, + 0.554722; 0.394065;, + 0.001993; 0.174433;, + 0.048334; 0.170912;, + 0.048334; 0.145093;, + 0.001993; 0.141571;, + 0.098609; 0.075284;, + 0.052340; 0.070925;, + 0.052340; 0.088710;, + 0.098609; 0.084351;, + 0.052340; 0.067057;, + 0.098609; 0.062698;, + 0.098609; 0.053631;, + 0.052340; 0.049272;, + 0.300049; 0.183589;, + 0.253708; 0.180068;, + 0.253708; 0.212930;, + 0.300049; 0.209409;, + 0.594668; 0.544975;, + 0.596815; 0.498551;, + 0.553879; 0.498551;, + 0.556026; 0.544975;, + 0.047962; 0.645677;, + 0.048408; 0.599205;, + 0.001934; 0.599205;, + 0.002381; 0.645677;, + 0.450249; 0.947705;, + 0.448928; 0.901250;, + 0.405991; 0.901249;, + 0.404668; 0.947704;, + 0.784976; 0.645602;, + 0.782086; 0.599218;, + 0.749224; 0.599218;, + 0.746334; 0.645602;, + 0.702034; 0.126594;, + 0.748334; 0.122577;, + 0.748334; 0.104792;, + 0.702034; 0.100775;, + 0.451070; 0.118538;, + 0.404770; 0.114521;, + 0.404770; 0.140340;, + 0.451070; 0.136323;, + 0.780296; 0.243266;, + 0.783186; 0.196882;, + 0.744544; 0.196882;, + 0.747434; 0.243266;, + 0.547833; 0.696013;, + 0.549155; 0.649558;, + 0.503574; 0.649558;, + 0.504896; 0.696013;, + 0.354331; 0.645673;, + 0.400803; 0.645226;, + 0.400803; 0.599645;, + 0.354331; 0.599199;, + 0.643621; 0.494682;, + 0.641473; 0.448258;, + 0.602831; 0.448258;, + 0.600684; 0.494682;, + 0.702034; 0.193013;, + 0.748374; 0.189492;, + 0.748374; 0.163672;, + 0.702034; 0.160151;, + 0.967954; 0.732912;, + 0.921685; 0.728552;, + 0.921685; 0.746337;, + 0.967954; 0.741978;, + 0.918340; 0.695942;, + 0.964610; 0.691583;, + 0.964610; 0.682517;, + 0.918340; 0.678157;, + 0.149094; 0.192211;, + 0.102753; 0.188689;, + 0.102753; 0.221551;, + 0.149094; 0.218030;, + 0.643258; 0.897364;, + 0.645405; 0.850939;, + 0.602469; 0.850939;, + 0.604616; 0.897364;, + 0.350016; 0.746354;, + 0.350463; 0.699882;, + 0.303989; 0.699882;, + 0.304435; 0.746354;, + 0.598600; 0.897364;, + 0.597278; 0.850908;, + 0.554342; 0.850908;, + 0.553019; 0.897364;, + 0.651781; 0.258751;, + 0.698165; 0.255861;, + 0.698165; 0.222999;, + 0.651781; 0.220109;, + 0.917816; 0.746337;, + 0.913799; 0.700037;, + 0.896014; 0.700037;, + 0.891996; 0.746337;, + 0.896643; 0.444318;, + 0.900660; 0.398018;, + 0.874841; 0.398018;, + 0.878858; 0.444318;, + 0.647912; 0.308021;, + 0.601528; 0.305130;, + 0.601527; 0.343772;, + 0.647912; 0.340883;, + 0.597276; 0.947704;, + 0.598598; 0.901249;, + 0.553017; 0.901249;, + 0.554340; 0.947704;, + 0.400799; 0.947721;, + 0.400353; 0.901249;, + 0.354772; 0.901249;, + 0.354325; 0.947721;, + 0.001953; 0.397538;, + 0.048378; 0.395390;, + 0.048378; 0.356749;, + 0.001953; 0.354601;, + 0.848908; 0.595290;, + 0.845387; 0.548949;, + 0.819567; 0.548949;, + 0.816046; 0.595290;, + 0.964610; 0.754609;, + 0.918340; 0.750250;, + 0.918340; 0.768035;, + 0.964610; 0.763675;, + 0.919893; 0.343688;, + 0.966162; 0.339329;, + 0.966162; 0.330262;, + 0.919893; 0.325903;, + 0.808656; 0.494642;, + 0.812177; 0.448301;, + 0.779315; 0.448301;, + 0.782836; 0.494642;, + 0.451111; 0.406192;, + 0.404686; 0.404044;, + 0.404686; 0.446981;, + 0.451111; 0.444833;, + 0.299671; 0.897378;, + 0.300118; 0.850906;, + 0.253644; 0.850906;, + 0.254090; 0.897378;, + 0.404655; 0.496430;, + 0.451111; 0.495108;, + 0.451111; 0.452172;, + 0.404655; 0.450849;, + 0.052296; 0.264059;, + 0.098680; 0.261169;, + 0.098680; 0.228307;, + 0.052296; 0.225417;, + 0.908285; 0.595290;, + 0.904267; 0.548990;, + 0.886482; 0.548990;, + 0.882465; 0.595290;, + 0.904267; 0.544935;, + 0.908285; 0.498635;, + 0.882465; 0.498635;, + 0.886482; 0.544935;, + 0.149094; 0.270820;, + 0.102710; 0.267930;, + 0.102710; 0.306572;, + 0.149094; 0.303682;, + 0.149094; 0.551078;, + 0.102639; 0.549755;, + 0.102638; 0.595336;, + 0.149094; 0.594014;, + 0.350463; 0.696013;, + 0.350016; 0.649541;, + 0.304435; 0.649541;, + 0.303989; 0.696013;, + 0.203334; 0.352498;, + 0.249758; 0.350351;, + 0.249758; 0.311709;, + 0.203334; 0.309562;, + 0.821709; 0.746337;, + 0.818187; 0.699997;, + 0.792368; 0.699997;, + 0.788847; 0.746337;, + 0.300018; 0.045013;, + 0.253749; 0.040654;, + 0.253749; 0.058438;, + 0.300018; 0.054079;, + 0.919893; 0.243226;, + 0.966162; 0.238867;, + 0.966162; 0.229800;, + 0.919893; 0.225441;, + 0.807801; 0.796590;, + 0.811322; 0.750250;, + 0.778460; 0.750250;, + 0.781981; 0.796590;, + 0.199404; 0.405311;, + 0.152979; 0.403164;, + 0.152979; 0.446100;, + 0.199404; 0.443953;, + 0.400359; 0.796695;, + 0.400806; 0.750223;, + 0.354331; 0.750223;, + 0.354778; 0.796695;, + 0.001953; 0.446988;, + 0.048408; 0.445665;, + 0.048408; 0.402729;, + 0.001953; 0.401406;, + 0.507917; 0.257944;, + 0.554301; 0.255055;, + 0.554301; 0.222192;, + 0.507917; 0.219303;, + 0.917810; 0.947589;, + 0.913793; 0.901289;, + 0.896008; 0.901289;, + 0.891990; 0.947589;, + 0.912007; 0.293519;, + 0.916024; 0.247219;, + 0.890205; 0.247219;, + 0.894222; 0.293519;, + 0.199404; 0.220446;, + 0.153020; 0.217556;, + 0.153020; 0.256198;, + 0.199404; 0.253308;, + 0.048408; 0.501628;, + 0.001953; 0.500306;, + 0.001953; 0.545887;, + 0.048408; 0.544565;, + 0.098751; 0.847039;, + 0.098305; 0.800567;, + 0.052724; 0.800567;, + 0.052277; 0.847039;, + 0.504429; 0.397553;, + 0.550854; 0.395406;, + 0.550854; 0.356764;, + 0.504429; 0.354617;, + 0.848908; 0.494642;, + 0.845387; 0.448301;, + 0.819567; 0.448301;, + 0.816046; 0.494642;, + 0.967948; 0.934164;, + 0.921679; 0.929805;, + 0.921679; 0.947589;, + 0.967948; 0.943230;, + 0.601568; 0.054007;, + 0.647838; 0.049647;, + 0.647838; 0.040581;, + 0.601568; 0.036222;, + 0.816396; 0.243266;, + 0.819917; 0.196926;, + 0.787055; 0.196926;, + 0.790576; 0.243266;, + 0.149094; 0.406198;, + 0.102669; 0.404051;, + 0.102669; 0.446987;, + 0.149094; 0.444840;, + 0.098305; 0.645675;, + 0.098751; 0.599203;, + 0.052277; 0.599203;, + 0.052724; 0.645675;, + 0.355371; 0.036783;, + 0.400961; 0.027759;, + 0.354487; 0.027759;, + 0.199303; 0.033009;, + 0.153051; 0.028476;, + 0.153051; 0.037543;, + 0.300018; 0.036784;, + 0.254428; 0.027762;, + 0.253544; 0.036785;, + 0.927416; 0.870909;, + 0.973891; 0.870909;, + 0.928301; 0.861886;, + 0.979845; 0.193057;, + 0.934255; 0.184034;, + 0.933371; 0.193057;, + 0.455010; 0.035671;, + 0.501484; 0.035671;, + 0.455894; 0.026647;, + 0.984250; 0.036480;, + 0.938660; 0.027457;, + 0.937776; 0.036480;, + 0.887433; 0.036480;, + 0.933907; 0.036480;, + 0.888317; 0.027457;, + 0.102619; 0.023490;, + 0.148209; 0.032514;, + 0.149094; 0.023490;, + 0.350534; 0.028636;, + 0.304060; 0.028636;, + 0.349650; 0.037659;, + 0.651722; 0.023649;, + 0.697312; 0.032672;, + 0.698196; 0.023649;, + 0.451082; 0.027716;, + 0.404829; 0.032249;, + 0.451082; 0.036783;, + 0.837264; 0.022696;, + 0.883517; 0.027229;, + 0.883517; 0.018162;, + 0.827574; 0.887710;, + 0.781100; 0.887711;, + 0.826690; 0.896734;, + 0.937571; 0.083918;, + 0.984045; 0.083918;, + 0.983160; 0.074894;, + 0.835097; 0.599218;, + 0.788845; 0.603751;, + 0.835097; 0.608284;, + 0.601363; 0.014928;, + 0.647616; 0.019461;, + 0.647616; 0.010394;, + 0.249647; 0.027761;, + 0.203173; 0.027761;, + 0.248763; 0.036785;, + 0.052377; 0.017551;, + 0.098629; 0.022084;, + 0.098629; 0.013017;, + 0.833364; 0.037577;, + 0.786890; 0.037577;, + 0.832480; 0.046600;, + 0.933371; 0.146757;, + 0.978961; 0.155780;, + 0.979845; 0.146757;, + 0.748539; 0.036541;, + 0.702065; 0.036541;, + 0.747655; 0.045564;, + 0.702065; 0.015247;, + 0.748317; 0.019780;, + 0.748317; 0.010713;, + 0.935695; 0.822268;, + 0.889221; 0.822268;, + 0.934810; 0.831292;, + 0.937776; 0.040349;, + 0.983365; 0.049372;, + 0.984250; 0.040349;, + 0.883517; 0.031098;, + 0.837264; 0.035631;, + 0.883517; 0.040164;, + 0.601363; 0.023330;, + 0.646953; 0.032353;, + 0.647838; 0.023330;, + 0.877917; 0.887710;, + 0.831443; 0.887710;, + 0.877033; 0.896734;, + 0.932129; 0.887710;, + 0.977719; 0.896734;, + 0.978603; 0.887710;, + 0.928260; 0.887710;, + 0.881786; 0.887710;, + 0.927376; 0.896734;, + 0.786890; 0.020816;, + 0.833364; 0.020816;, + 0.832480; 0.011793;, + 0.834154; 0.398561;, + 0.787901; 0.403088;, + 0.834153; 0.407627;, + 0.153051; 0.020074;, + 0.199303; 0.024607;, + 0.199303; 0.015541;, + 0.554432; 0.030265;, + 0.507958; 0.030265;, + 0.553548; 0.039289;, + 0.102841; 0.015088;, + 0.149094; 0.019622;, + 0.149094; 0.010555;, + 0.933907; 0.040349;, + 0.887433; 0.040349;, + 0.933023; 0.049372;, + 0.702065; 0.023649;, + 0.747655; 0.032672;, + 0.748539; 0.023649;, + 0.973891; 0.837501;, + 0.927416; 0.837501;, + 0.973006; 0.846524;, + 0.153051; 0.007139;, + 0.199303; 0.011672;, + 0.199303; 0.002605;, + 0.973891; 0.874778;, + 0.927416; 0.874778;, + 0.973006; 0.883801;, + 0.933907; 0.023588;, + 0.888317; 0.014565;, + 0.887433; 0.023588;, + 0.052377; 0.035019;, + 0.098629; 0.030486;, + 0.052377; 0.025952;, + 0.986037; 0.831292;, + 0.940448; 0.822268;, + 0.939563; 0.831292;, + 0.102619; 0.045406;, + 0.149094; 0.045406;, + 0.103504; 0.036382;, + 0.501484; 0.022779;, + 0.455894; 0.013755;, + 0.455010; 0.022779;, + 0.455010; 0.048563;, + 0.501484; 0.048562;, + 0.455894; 0.039540;, + 0.984250; 0.023588;, + 0.938660; 0.014565;, + 0.937776; 0.023588;, + 0.786890; 0.033708;, + 0.833364; 0.033708;, + 0.787775; 0.024685;, + 0.554210; 0.008971;, + 0.507958; 0.004438;, + 0.507958; 0.013505;, + 0.002918; 0.035019;, + 0.048508; 0.025996;, + 0.002034; 0.025996;, + 0.048508; 0.022127;, + 0.002918; 0.013104;, + 0.002034; 0.022127;, + 0.507958; 0.026397;, + 0.554432; 0.026397;, + 0.508842; 0.017373;, + 0.299796; 0.006468;, + 0.253544; 0.001934;, + 0.253544; 0.011001;, + 0.933371; 0.168672;, + 0.979845; 0.168672;, + 0.934255; 0.159649;, + 0.350534; 0.007342;, + 0.304282; 0.002808;, + 0.304282; 0.011875;, + 0.651722; 0.019780;, + 0.697974; 0.015247;, + 0.651722; 0.010713;, + 0.350534; 0.024767;, + 0.304944; 0.015744;, + 0.304060; 0.024767;, + 0.253544; 0.023893;, + 0.300018; 0.023893;, + 0.254428; 0.014870;, + 0.883517; 0.009760;, + 0.837264; 0.005227;, + 0.837264; 0.014294;, + 0.937571; 0.062264;, + 0.984045; 0.062264;, + 0.938455; 0.053241;, + 0.400961; 0.023891;, + 0.355371; 0.014867;, + 0.354487; 0.023891;, + 0.404829; 0.023848;, + 0.451082; 0.019314;, + 0.404829; 0.014781;, + 0.152979; 0.449969;, + 0.154301; 0.496424;, + 0.197238; 0.496424;, + 0.198560; 0.449969;, + 0.702034; 0.196882;, + 0.704924; 0.243266;, + 0.737786; 0.243266;, + 0.740676; 0.196882;, + 0.985833; 0.809638;, + 0.940243; 0.800615;, + 0.939359; 0.809638;, + 0.929502; 0.193057;, + 0.925485; 0.146757;, + 0.907700; 0.146757;, + 0.903683; 0.193057;, + 0.919531; 0.883801;, + 0.923548; 0.837501;, + 0.897728; 0.837501;, + 0.901746; 0.883801;, + 0.203173; 0.023893;, + 0.249647; 0.023893;, + 0.204057; 0.014869;, + 0.457869; 0.212367;, + 0.454979; 0.258751;, + 0.493621; 0.258751;, + 0.490731; 0.212367;, + 0.554346; 0.699882;, + 0.553023; 0.746337;, + 0.598605; 0.746337;, + 0.597282; 0.699882;, + 0.400806; 0.746354;, + 0.400359; 0.699882;, + 0.354778; 0.699882;, + 0.354331; 0.746354;, + 0.156467; 0.302577;, + 0.158615; 0.349002;, + 0.197257; 0.349002;, + 0.199404; 0.302577;, + 0.884783; 0.796590;, + 0.881262; 0.750250;, + 0.855443; 0.750250;, + 0.851921; 0.796590;, + 0.967954; 0.704396;, + 0.921685; 0.700037;, + 0.921685; 0.717822;, + 0.967954; 0.713463;, + 0.921679; 0.919074;, + 0.967948; 0.914715;, + 0.967948; 0.905649;, + 0.921679; 0.901289;, + 0.854912; 0.947589;, + 0.858433; 0.901249;, + 0.825571; 0.901249;, + 0.829093; 0.947589;, + 0.648781; 0.750206;, + 0.646634; 0.796631;, + 0.689570; 0.796631;, + 0.687423; 0.750206;, + 0.152963; 0.645220;, + 0.199435; 0.645666;, + 0.199435; 0.599192;, + 0.152963; 0.599639;; + } // End of Sphere UV coordinates + MeshMaterialList { // Sphere material list + 1; + 512; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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;; + TextureFilename {"Minetest Smokeball.png";} + } + } // End of Sphere material list + } // End of Sphere mesh + } // End of Sphere +} // End of Root diff --git a/mods/tutorial/models/heli.x b/mods/tutorial/models/heli.x new file mode 100644 index 0000000..02f7fd3 --- /dev/null +++ b/mods/tutorial/models/heli.x @@ -0,0 +1,4594 @@ +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 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_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;; + } + } // End of Armature_Bone + Frame Blades_main { + FrameTransformMatrix { + 0.707107,-0.707107, 0.000000, 0.000000, + 0.707107, 0.707107, 0.000000, 0.000000, + 0.000000, 0.000000, 1.000000, 0.000000, + 0.066270, 0.238053,21.380169, 1.000000;; + } + Mesh { // Blades_main mesh + 48; + 1.539207;16.023584; 0.184582;, + 1.539207;16.023584;-0.534882;, + -1.539218;16.023584;-0.534882;, + -1.539218;16.023584; 0.184582;, + -1.539209;-16.023584; 0.184580;, + -1.539209;-16.023584;-0.534885;, + 1.539218;-16.023582;-0.534885;, + 1.539218;-16.023582; 0.184580;, + 1.539207;16.023584; 0.184582;, + -1.539218;16.023584; 0.184582;, + -1.539209;-16.023584; 0.184580;, + 1.539218;-16.023582; 0.184580;, + 1.539207;16.023584;-0.534882;, + 1.539207;16.023584; 0.184582;, + 1.539218;-16.023582; 0.184580;, + 1.539218;-16.023582;-0.534885;, + -1.539218;16.023584;-0.534882;, + 1.539207;16.023584;-0.534882;, + 1.539218;-16.023582;-0.534885;, + -1.539209;-16.023584;-0.534885;, + -1.539218;16.023584; 0.184582;, + -1.539218;16.023584;-0.534882;, + -1.539209;-16.023584;-0.534885;, + -1.539209;-16.023584; 0.184580;, + -16.023581;-1.539215; 0.580299;, + -16.023581;-1.539215;-0.139164;, + 16.023582;-1.539206;-0.139168;, + 16.023582;-1.539206; 0.580296;, + -16.023581;-1.539215;-0.139164;, + -16.023581; 1.539210;-0.139164;, + 16.023584; 1.539219;-0.139168;, + 16.023582;-1.539206;-0.139168;, + -16.023581; 1.539210;-0.139164;, + -16.023581; 1.539210; 0.580299;, + 16.023584; 1.539219; 0.580296;, + 16.023584; 1.539219;-0.139168;, + -16.023581; 1.539210; 0.580299;, + -16.023581;-1.539215; 0.580299;, + 16.023582;-1.539206; 0.580296;, + 16.023584; 1.539219; 0.580296;, + 16.023582;-1.539206; 0.580296;, + 16.023582;-1.539206;-0.139168;, + 16.023584; 1.539219;-0.139168;, + 16.023584; 1.539219; 0.580296;, + -16.023581; 1.539210; 0.580299;, + -16.023581; 1.539210;-0.139164;, + -16.023581;-1.539215;-0.139164;, + -16.023581;-1.539215; 0.580299;; + 12; + 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;; + MeshNormals { // Blades_main normals + 12; + -0.000000; 1.000000; 0.000000;, + 0.000001;-1.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; 0.000000;-1.000000;, + -0.000000; 1.000000; 0.000000;, + 0.000000; 0.000000; 1.000000;, + 1.000000;-0.000001; 0.000000;, + -1.000000; 0.000000; 0.000000;; + 12; + 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;; + } // End of Blades_main normals + MeshTextureCoords { // Blades_main UV coordinates + 48; + 0.531250; 1.000000;, + 0.531250; 0.968750;, + 0.437500; 0.968750;, + 0.437500; 1.000000;, + 0.437500; 0.968750;, + 0.437500; 1.000000;, + 0.531250; 1.000000;, + 0.531250; 0.968750;, + 1.187500; 0.562500;, + 1.187500; 0.437500;, + -0.187500; 0.437500;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.531250;, + -0.187500; 0.531250;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.437500;, + -0.187500; 0.437500;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.531250;, + -0.187500; 0.531250;, + -0.187500; 0.562500;, + -0.187500; 0.531250;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.531250;, + -0.187500; 0.437500;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.437500;, + -0.187500; 0.531250;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.531250;, + -0.187500; 0.437500;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.437500;, + 0.437500; 0.968750;, + 0.437500; 1.000000;, + 0.531250; 1.000000;, + 0.531250; 0.968750;, + 0.531250; 1.000000;, + 0.531250; 0.968750;, + 0.437500; 0.968750;, + 0.437500; 1.000000;; + } // End of Blades_main UV coordinates + } // End of Blades_main mesh + } // End of Blades_main + Frame Blades_main_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, + -21.410040,-4.539900,16.051079, 1.000000;; + } + Mesh { // Blades_main_001 mesh + 48; + 6.209385;-0.092290; 5.121000;, + 6.209385; 0.267441; 5.121000;, + 5.120998; 0.267441; 6.209389;, + 5.120998;-0.092291; 6.209389;, + -6.209387;-0.092289;-5.121000;, + -6.209387; 0.267443;-5.121000;, + -5.120996; 0.267443;-6.209387;, + -5.120996;-0.092289;-6.209387;, + 6.209385;-0.092290; 5.121000;, + 5.120998;-0.092291; 6.209389;, + -6.209387;-0.092289;-5.121000;, + -5.120996;-0.092289;-6.209387;, + 6.209385; 0.267441; 5.121000;, + 6.209385;-0.092290; 5.121000;, + -5.120996;-0.092289;-6.209387;, + -5.120996; 0.267443;-6.209387;, + 5.120998; 0.267441; 6.209389;, + 6.209385; 0.267441; 5.121000;, + -5.120996; 0.267443;-6.209387;, + -6.209387; 0.267443;-5.121000;, + 5.120998;-0.092291; 6.209389;, + 5.120998; 0.267441; 6.209389;, + -6.209387; 0.267443;-5.121000;, + -6.209387;-0.092289;-5.121000;, + -6.209387;-0.290150; 5.120998;, + -6.209387; 0.069582; 5.120998;, + 5.121000; 0.069584;-6.209384;, + 5.121000;-0.290147;-6.209384;, + -6.209387; 0.069582; 5.120998;, + -5.120998; 0.069582; 6.209385;, + 6.209389; 0.069585;-5.120997;, + 5.121000; 0.069584;-6.209384;, + -5.120998; 0.069582; 6.209385;, + -5.120998;-0.290150; 6.209385;, + 6.209389;-0.290147;-5.120997;, + 6.209389; 0.069585;-5.120997;, + -5.120998;-0.290150; 6.209385;, + -6.209387;-0.290150; 5.120998;, + 5.121000;-0.290147;-6.209384;, + 6.209389;-0.290147;-5.120997;, + 5.121000;-0.290147;-6.209384;, + 5.121000; 0.069584;-6.209384;, + 6.209389; 0.069585;-5.120997;, + 6.209389;-0.290147;-5.120997;, + -5.120998;-0.290150; 6.209385;, + -5.120998; 0.069582; 6.209385;, + -6.209387; 0.069582; 5.120998;, + -6.209387;-0.290150; 5.120998;; + 12; + 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;; + MeshNormals { // Blades_main_001 normals + 12; + 0.707107; 0.000000; 0.707106;, + -0.707106; 0.000000;-0.707108;, + 0.000000;-1.000000;-0.000000;, + 0.707107; 0.000000;-0.707107;, + -0.000000; 1.000000; 0.000000;, + -0.707107; 0.000000; 0.707107;, + -0.707107; 0.000000;-0.707107;, + -0.000000; 1.000000; 0.000000;, + 0.707107; 0.000000; 0.707107;, + 0.000000;-1.000000;-0.000000;, + 0.707106; 0.000000;-0.707107;, + -0.707106; 0.000000; 0.707107;; + 12; + 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;; + } // End of Blades_main_001 normals + MeshTextureCoords { // Blades_main_001 UV coordinates + 48; + 0.531250; 1.000000;, + 0.531250; 0.968750;, + 0.437500; 0.968750;, + 0.437500; 1.000000;, + 0.437500; 0.968750;, + 0.437500; 1.000000;, + 0.531250; 1.000000;, + 0.531250; 0.968750;, + 1.187500; 0.562500;, + 1.187500; 0.437500;, + -0.187500; 0.437500;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.531250;, + -0.187500; 0.531250;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.437500;, + -0.187500; 0.437500;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.531250;, + -0.187500; 0.531250;, + -0.187500; 0.562500;, + -0.187500; 0.531250;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.531250;, + -0.187500; 0.437500;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.437500;, + -0.187500; 0.531250;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.531250;, + -0.187500; 0.437500;, + -0.187500; 0.562500;, + 1.187500; 0.562500;, + 1.187500; 0.437500;, + 0.437500; 0.968750;, + 0.437500; 1.000000;, + 0.531250; 1.000000;, + 0.531250; 0.968750;, + 0.531250; 1.000000;, + 0.531250; 0.968750;, + 0.437500; 0.968750;, + 0.437500; 1.000000;; + } // End of Blades_main_001 UV coordinates + } // End of Blades_main_001 mesh + } // End of Blades_main_001 + Frame Heli { + 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 { // Heli mesh + 1288; + -8.737874;-8.188540;-2.383271;, + -8.737874;-8.188540;-3.969275;, + -15.615104;-8.188540;-3.969275;, + -15.615104;-8.188540;-2.383271;, + -6.539935;-10.606809;-0.676760;, + -8.737874;-10.606809;-0.676760;, + -8.737874;-10.606809;-2.383271;, + -6.539935;-10.606809;-2.383271;, + 5.812429;-10.606809;-0.676760;, + 3.528280;-10.606809;-0.676760;, + 3.528280;-10.606809;-2.383271;, + 5.812429;-10.606809;-2.383271;, + 5.812429;-10.606809;-3.977732;, + 3.528280;-10.606809;-3.977732;, + 3.528280;-8.188540;-3.977732;, + 5.812429;-8.188540;-3.977732;, + 5.812429;-10.606809;-2.383271;, + 5.812429;-10.606809;-3.977732;, + 13.705219;-10.606809;-3.977732;, + 13.705219;-10.606809;-2.383271;, + 3.528280;-8.188540;-2.383271;, + 5.812429;-8.188540;-2.383271;, + 5.812429;-8.188540;-3.977732;, + 3.528280;-8.188540;-3.977732;, + 5.812429;-10.606809;-2.383271;, + 3.528280;-10.606809;-2.383271;, + 3.528280;-10.606809;-3.977732;, + 5.812429;-10.606809;-3.977732;, + 3.528280;-8.188540;-3.977732;, + 3.528280;-10.606809;-3.977732;, + -6.538944;-10.606809;-3.977732;, + -6.538944;-8.188540;-3.977732;, + 3.528280;-8.188540;-2.383271;, + 3.528280;-8.188540;-3.977732;, + -6.538944;-8.188540;-3.977732;, + -6.539935;-8.188540;-2.383271;, + -6.539935;-10.606809;-2.383271;, + -6.539935;-8.188540;-2.383271;, + -6.538944;-8.188540;-3.977732;, + -6.538944;-10.606809;-3.977732;, + 3.528280;-10.606809;-3.977732;, + 3.528280;-10.606809;-2.383271;, + -6.539935;-10.606809;-2.383271;, + -6.538944;-10.606809;-3.977732;, + 3.528280;-10.606809;-2.383271;, + 3.528280;-8.188540;-2.383271;, + -6.539935;-8.188540;-2.383271;, + -6.539935;-10.606809;-2.383271;, + -6.538944;-10.606809;-3.977732;, + -8.737874;-10.606809;-3.969275;, + -8.737874;-8.188540;-3.969275;, + -6.538944;-8.188540;-3.977732;, + -8.737874;-8.188540;-2.383271;, + -6.539935;-8.188540;-2.383271;, + -6.538944;-8.188540;-3.977732;, + -8.737874;-8.188540;-3.969275;, + -6.539935;-10.606809;-2.383271;, + -8.737874;-10.606809;-2.383271;, + -8.737874;-10.606809;-3.969275;, + -6.538944;-10.606809;-3.977732;, + 13.705219;-8.188540;-2.383271;, + 13.705219;-10.606809;-2.383271;, + 13.705219;-10.606809;-3.977732;, + 13.705219;-8.188540;-3.977732;, + 5.812429;-8.188540;-3.977732;, + 5.812429;-8.188540;-2.383271;, + 13.705219;-8.188540;-2.383271;, + 13.705219;-8.188540;-3.977732;, + 5.812429;-10.606809;-3.977732;, + 5.812429;-8.188540;-3.977732;, + 13.705219;-8.188540;-3.977732;, + 13.705219;-10.606809;-3.977732;, + 5.812429;-8.188540;-2.383271;, + 5.812429;-10.606809;-2.383271;, + 13.705219;-10.606809;-2.383271;, + 13.705219;-8.188540;-2.383271;, + -15.615104;-10.606809;-2.383271;, + -15.615104;-8.188540;-2.383271;, + -15.615104;-8.188540;-3.969275;, + -15.615104;-10.606809;-3.969275;, + -8.737874;-10.606809;-3.969275;, + -8.737874;-10.606809;-2.383271;, + -15.615104;-10.606809;-2.383271;, + -15.615104;-10.606809;-3.969275;, + -8.737874;-8.188540;-3.969275;, + -8.737874;-10.606809;-3.969275;, + -15.615104;-10.606809;-3.969275;, + -15.615104;-8.188540;-3.969275;, + -8.737874;-10.606809;-2.383271;, + -8.737874;-8.188540;-2.383271;, + -15.615104;-8.188540;-2.383271;, + -15.615104;-10.606809;-2.383271;, + 10.672272;-5.782129; 7.544702;, + 10.672272;-1.788433; 7.544702;, + 10.672272;-1.788433; 5.404183;, + 10.672272;-5.782129; 5.404183;, + 12.812788;-1.788433; 7.544702;, + 12.812788;-5.782129; 7.544702;, + 12.812788;-5.782129; 5.404183;, + 12.812788;-1.788433; 5.404183;, + 10.672272;-5.782129; 5.404183;, + 12.812788;-5.782129; 5.404183;, + 12.812788;-7.764598; 5.404183;, + 10.672272;-7.764598; 5.404183;, + 10.672272;-5.782129; 5.404183;, + 10.672272;-1.788433; 5.404183;, + 12.812788;-1.788433; 5.404183;, + 12.812788;-5.782129; 5.404183;, + 12.812788;-5.782129; 7.544702;, + 12.812788;-1.788433; 7.544702;, + 10.672272;-1.788433; 7.544702;, + 10.672272;-5.782129; 7.544702;, + 12.812788;-7.764598; 7.544702;, + 10.672272;-7.764598; 7.544702;, + 10.672272;-7.764598; 5.404183;, + 12.812788;-7.764598; 5.404183;, + 12.812788;-5.782129; 7.544702;, + 10.672272;-5.782129; 7.544702;, + 10.672272;-7.764598; 7.544702;, + 12.812788;-7.764598; 7.544702;, + 12.812788;-5.782129; 5.404183;, + 12.812788;-5.782129; 7.544702;, + 12.812788;-7.764598; 7.544702;, + 12.812788;-7.764598; 5.404183;, + 10.672272;-7.764598; 7.544702;, + 10.672272;-5.782129; 7.544702;, + 5.812429;-5.782129; 7.544702;, + 5.812429;-7.764598; 7.544702;, + 5.812429;-7.764598; 7.544702;, + 5.812429;-5.782129; 7.544702;, + 3.528280;-5.782129; 7.544702;, + 3.528280;-7.764598; 7.544702;, + 10.672272;-5.782129; 5.404183;, + 10.672272;-7.764598; 5.404183;, + 5.812429;-7.764598; 5.404183;, + 5.812429;-5.782129; 5.404183;, + 10.672272;-7.764598; 5.404183;, + 10.672272;-7.764598; 7.544702;, + 5.812429;-7.764598; 7.544702;, + 5.812429;-7.764598; 5.404183;, + 10.672272;-5.782129; 7.544702;, + 10.672272;-5.782129; 5.404183;, + 5.812429;-5.782129; 5.404183;, + 5.812429;-5.782129; 7.544702;, + 3.528280;-7.764598; 3.813905;, + 3.528280;-7.764598; 5.404183;, + 1.881228;-7.764598; 5.404183;, + 1.881228;-7.764598; 3.813905;, + 5.812429;-7.764598; 5.404183;, + 3.528280;-7.764598; 5.404183;, + 3.528280;-7.764598; 3.813905;, + 5.812429;-7.764598; 3.813905;, + 5.812429;-7.764598; 5.404183;, + 5.812429;-7.764598; 7.544702;, + 3.528280;-7.764598; 7.544702;, + 3.528280;-7.764598; 5.404183;, + 5.812429;-5.782129; 7.544702;, + 5.812429;-5.782129; 5.404183;, + 3.528280;-5.782129; 5.404183;, + 3.528280;-5.782129; 7.544702;, + 5.812429;-7.764598; 3.813905;, + 3.528280;-7.764598; 3.813905;, + 3.528280;-7.764598; 1.443562;, + 5.812429;-7.764598; 1.443562;, + 3.528280;-5.782129; 5.404183;, + 5.812429;-5.782129; 5.404183;, + 5.812429;-5.782129; 3.813905;, + 3.528280;-5.782129; 3.813905;, + 3.528280;-5.782129; 5.404183;, + 3.528280;-5.782129; 3.813905;, + 1.881228;-5.782129; 3.813905;, + 1.881228;-5.782129; 5.404183;, + 5.812429;-5.782129; 5.404183;, + 5.812429;-7.764598; 5.404183;, + 5.812429;-7.764598; 3.813905;, + 5.812429;-5.782129; 3.813905;, + 3.528280;-5.782129; 3.813905;, + 5.812429;-5.782129; 3.813905;, + 5.812429;-5.782129; 1.443562;, + 3.528280;-5.782129; 1.443562;, + -1.808145;-5.782129; 3.813905;, + -1.808145;-5.782129; 1.443562;, + -6.539935;-5.782129; 1.443562;, + -6.539935;-5.782129; 3.813905;, + 5.812429;-5.782129; 3.813905;, + 5.812429;-7.764598; 3.813905;, + 5.812429;-7.764598; 1.443562;, + 5.812429;-5.782129; 1.443562;, + -6.539935;-5.782129; 3.813905;, + -6.539935;-5.782129; 1.443562;, + -8.737874;-5.782129; 1.443562;, + -8.737874;-5.782129; 3.813905;, + -1.808145;-7.764598; 1.443562;, + -1.808145;-7.764598; 3.813905;, + -6.539935;-7.764598; 3.813905;, + -6.539935;-7.764598; 1.443562;, + 5.812429;-5.782129; 1.443562;, + 5.812429;-5.782129;-0.676760;, + 5.812429;-3.363860;-0.676760;, + 5.812429;-3.363860; 1.443562;, + -1.808145;-7.764598; 3.813905;, + -1.808145;-5.782129; 3.813905;, + -6.539935;-5.782129; 3.813905;, + -6.539935;-7.764598; 3.813905;, + -8.737874;-5.782129;-0.676760;, + -8.737874;-7.764598;-0.676760;, + -10.341044;-7.764598;-0.676760;, + -10.341044;-5.782129;-0.676760;, + -6.539935;-7.764598; 1.443562;, + -6.539935;-7.764598; 3.813905;, + -8.737874;-7.764598; 3.813905;, + -8.737874;-7.764598; 1.443562;, + 3.528280;-7.764598; 1.443562;, + 3.528280;-7.764598;-0.676760;, + 3.528280;-8.231336;-0.676760;, + 3.528280;-8.231336; 1.443562;, + -8.737874;-7.764598; 3.813905;, + -6.539935;-7.764598; 3.813905;, + -6.539935;-7.764598;11.097267;, + -8.737874;-7.764598;11.097267;, + -6.539935;-7.764598;11.097267;, + -6.539935;-5.782129;11.097267;, + -8.737874;-5.782129;11.097267;, + -8.737874;-7.764598;11.097267;, + -6.539935;-5.782129; 3.813905;, + -8.737874;-5.782129; 3.813905;, + -8.737874;-5.782129;11.097267;, + -6.539935;-5.782129;11.097267;, + -10.341044;-5.782129; 1.443562;, + -10.341044;-5.782129; 3.813905;, + -10.341044;-3.363860; 3.813905;, + -10.341044;-3.363860; 1.443562;, + -6.539935;-7.764598; 3.813905;, + -6.539935;-5.782129; 3.813905;, + -6.539935;-5.782129;11.097267;, + -6.539935;-7.764598;11.097267;, + 5.812429;-5.782129;-0.676760;, + 5.812429;-7.764598;-0.676760;, + 3.528280;-7.764598;-0.676760;, + 3.528280;-5.782129;-0.676760;, + -1.808145;-5.782129;-0.676760;, + -1.808145;-7.764598;-0.676760;, + -6.539935;-7.764598;-0.676760;, + -6.539935;-5.782129;-0.676760;, + -6.539935;-5.782129;-0.676760;, + -6.539935;-7.764598;-0.676760;, + -8.737874;-7.764598;-0.676760;, + -8.737874;-5.782129;-0.676760;, + -1.808145;-7.764598; 1.443562;, + -6.539935;-7.764598; 1.443562;, + -6.539935;-7.764598;-0.676760;, + -1.808145;-7.764598;-0.676760;, + -10.341044;-5.782129; 3.813905;, + -10.341044;-5.782129;11.097267;, + -10.341044;-3.363860;11.097267;, + -10.341044;-3.363860; 3.813905;, + 5.812429;-7.764598;-0.676760;, + 5.812429;-7.764598; 1.443562;, + 5.812429;-8.231336; 1.443562;, + 5.812429;-8.231336;-0.676760;, + -10.341044;-5.782129;-0.676760;, + -10.341044;-5.782129; 1.443562;, + -10.341044;-3.363860; 1.443562;, + -10.341044;-3.363860;-0.676760;, + 5.812429;-5.782129; 1.443562;, + 5.812429;-7.764598; 1.443562;, + 5.812429;-7.764598;-0.676760;, + 5.812429;-5.782129;-0.676760;, + -10.341044;-7.764598; 1.443562;, + -10.341044;-5.782129; 1.443562;, + -10.341044;-5.782129;-0.676760;, + -10.341044;-7.764598;-0.676760;, + -10.341044;-7.764598; 3.813905;, + -10.341044;-5.782129; 3.813905;, + -10.341044;-5.782129; 1.443562;, + -10.341044;-7.764598; 1.443562;, + -10.341044;-5.782129; 3.813905;, + -10.341044;-7.764598; 3.813905;, + -10.341044;-7.764598;11.097267;, + -10.341044;-5.782129;11.097267;, + -8.737874;-7.764598; 3.813905;, + -8.737874;-7.764598;11.097267;, + -10.341044;-7.764598;11.097267;, + -10.341044;-7.764598; 3.813905;, + -8.737874;-7.764598;11.097267;, + -8.737874;-5.782129;11.097267;, + -10.341044;-5.782129;11.097267;, + -10.341044;-7.764598;11.097267;, + -10.341044;-5.782129;11.097267;, + -8.737874;-5.782129;11.097267;, + -8.737874;-3.363860;11.097267;, + -10.341044;-3.363860;11.097267;, + -8.737874;-7.764598; 1.443562;, + -8.737874;-7.764598; 3.813905;, + -10.341044;-7.764598; 3.813905;, + -10.341044;-7.764598; 1.443562;, + -8.737874;-7.764598;-0.676760;, + -8.737874;-7.764598; 1.443562;, + -10.341044;-7.764598; 1.443562;, + -10.341044;-7.764598;-0.676760;, + 3.528280;-3.363860; 1.443562;, + 3.528280;-3.363860;-0.676760;, + 3.528280; 0.000000;-0.676760;, + 3.528280; 0.000000; 1.443562;, + -10.341044;-3.363860; 1.443562;, + -10.341044;-3.363860; 3.813905;, + -10.341044; 0.000000; 3.813905;, + -10.341044; 0.000000; 1.443562;, + -10.341044;-3.363860; 3.813905;, + -10.341044;-3.363860;11.097267;, + -10.341044; 0.000000;11.097267;, + -10.341044; 0.000000; 3.813905;, + -10.341044;-3.363860;-0.676760;, + -10.341044;-3.363860; 1.443562;, + -10.341044; 0.000000; 1.443562;, + -10.341044; 0.000000;-0.676760;, + 3.528280;-3.363860; 1.443562;, + 5.812429;-3.363860; 1.443562;, + 5.812429;-3.363860;-0.676760;, + 3.528280;-3.363860;-0.676760;, + -1.808145;-5.782129;-0.676760;, + -6.539935;-5.782129;-0.676760;, + -6.539935;-3.363860;-0.676760;, + -1.808145;-3.363860;-0.676760;, + -8.737874;-5.782129;11.097267;, + -8.737874;-5.782129; 3.813905;, + -8.737874;-3.363860; 3.813905;, + -8.737874;-3.363860;11.097267;, + -8.737874;-5.782129; 1.443562;, + -6.539935;-5.782129; 1.443562;, + -6.539935;-3.363860; 1.443562;, + -8.737874;-3.363860; 1.443562;, + -8.737874;-5.782129; 3.813905;, + -8.737874;-5.782129; 1.443562;, + -8.737874;-3.363860; 1.443562;, + -8.737874;-3.363860; 3.813905;, + -8.737874;-5.782129;-0.676760;, + -10.341044;-5.782129;-0.676760;, + -10.341044;-3.363860;-0.676760;, + -8.737874;-3.363860;-0.676760;, + 1.881469;-5.782129; 1.443562;, + 3.528280;-5.782129; 1.443562;, + 3.528280;-3.363860; 1.443562;, + 1.881469;-3.363860; 1.443562;, + 3.528280;-5.782129; 1.443562;, + 5.812429;-5.782129; 1.443562;, + 5.812429;-3.363860; 1.443562;, + 3.528280;-3.363860; 1.443562;, + -6.539935;-3.363860;-0.676760;, + -8.737874;-3.363860;-0.676760;, + -8.737874; 0.000000;-0.676760;, + -6.539935; 0.000000;-0.676760;, + -1.808145;-3.363860;-0.676760;, + -6.539935;-3.363860;-0.676760;, + -6.539935; 0.000000;-0.676760;, + -1.808145; 0.000000;-0.676760;, + -8.737874;-3.363860;11.097267;, + -8.737874;-3.363860; 3.813905;, + -8.737874; 0.000000; 3.813905;, + -8.737874; 0.000000;11.097267;, + -8.737874;-3.363860; 1.443562;, + -6.539935;-3.363860; 1.443562;, + -6.539935; 0.000000; 1.443562;, + -8.737874; 0.000000; 1.443562;, + -8.737874;-3.363860; 3.813905;, + -8.737874;-3.363860; 1.443562;, + -8.737874; 0.000000; 1.443562;, + -8.737874; 0.000000; 3.813905;, + -8.737874;-3.363860;-0.676760;, + -10.341044;-3.363860;-0.676760;, + -10.341044; 0.000000;-0.676760;, + -8.737874; 0.000000;-0.676760;, + 1.881469;-3.363860; 1.443562;, + 3.528280;-3.363860; 1.443562;, + 3.528280; 0.000000; 1.443562;, + 1.881469; 0.000000; 1.443562;, + 3.528280;-5.782129;-0.676760;, + 3.528280;-7.764598;-0.676760;, + 1.881469;-7.764598;-0.676760;, + 1.881469;-5.782129;-0.676760;, + 1.881469;-5.782129;-0.676760;, + 1.881469;-7.764598;-0.676760;, + -1.808145;-7.764598;-0.676760;, + -1.808145;-5.782129;-0.676760;, + 3.528280;-7.764598; 1.443562;, + 1.881469;-7.764598; 1.443562;, + 1.881469;-7.764598;-0.676760;, + 3.528280;-7.764598;-0.676760;, + 1.881469;-7.764598; 1.443562;, + -1.808145;-7.764598; 1.443562;, + -1.808145;-7.764598;-0.676760;, + 1.881469;-7.764598;-0.676760;, + 3.528280;-5.782129;-0.676760;, + 1.881469;-5.782129;-0.676760;, + 1.881469;-3.363860;-0.676760;, + 3.528280;-3.363860;-0.676760;, + 1.881469;-5.782129;-0.676760;, + -1.808145;-5.782129;-0.676760;, + -1.808145;-3.363860;-0.676760;, + 1.881469;-3.363860;-0.676760;, + -6.539935;-5.782129; 1.443562;, + -1.808145;-5.782129; 1.443562;, + -1.808145;-3.363860; 1.443562;, + -6.539935;-3.363860; 1.443562;, + -1.808145;-5.782129; 1.443562;, + 1.881469;-5.782129; 1.443562;, + 1.881469;-3.363860; 1.443562;, + -1.808145;-3.363860; 1.443562;, + 3.528280;-3.363860;-0.676760;, + 1.881469;-3.363860;-0.676760;, + 1.881469; 0.000000;-0.676760;, + 3.528280; 0.000000;-0.676760;, + 1.881469;-3.363860;-0.676760;, + -1.808145;-3.363860;-0.676760;, + -1.808145; 0.000000;-0.676760;, + 1.881469; 0.000000;-0.676760;, + -6.539935;-3.363860; 1.443562;, + -1.808145;-3.363860; 1.443562;, + -1.808145; 0.000000; 1.443562;, + -6.539935; 0.000000; 1.443562;, + -1.808145;-3.363860; 1.443562;, + 1.881469;-3.363860; 1.443562;, + 1.881469; 0.000000; 1.443562;, + -1.808145; 0.000000; 1.443562;, + 1.881228;-5.782129; 7.544702;, + 1.881228;-5.782129; 5.404183;, + 1.881228;-7.764598; 5.404183;, + 1.881228;-7.764598; 7.544702;, + 1.881228;-7.764598; 5.404183;, + 1.881228;-5.782129; 5.404183;, + 1.881228;-5.782129; 3.813905;, + 1.881228;-7.764598; 3.813905;, + 3.528280;-5.782129; 3.813905;, + 3.528280;-7.764598; 3.813905;, + 1.881228;-7.764598; 3.813905;, + 1.881228;-5.782129; 3.813905;, + 3.528280;-7.764598; 7.544702;, + 3.528280;-5.782129; 7.544702;, + 1.881228;-5.782129; 7.544702;, + 1.881228;-7.764598; 7.544702;, + 3.528280;-7.764598; 5.404183;, + 3.528280;-7.764598; 7.544702;, + 1.881228;-7.764598; 7.544702;, + 1.881228;-7.764598; 5.404183;, + 3.528280;-5.782129; 7.544702;, + 3.528280;-5.782129; 5.404183;, + 1.881228;-5.782129; 5.404183;, + 1.881228;-5.782129; 7.544702;, + 3.528280;-5.782129; 3.813905;, + 3.528280;-5.782129; 1.443562;, + 1.881469;-5.782129; 1.443562;, + 1.881228;-5.782129; 3.813905;, + 1.881228;-5.782129; 3.813905;, + 1.881469;-5.782129; 1.443562;, + -1.808145;-5.782129; 1.443562;, + -1.808145;-5.782129; 3.813905;, + 3.528280;-7.764598; 1.443562;, + 3.528280;-7.764598; 3.813905;, + 1.881228;-7.764598; 3.813905;, + 1.881469;-7.764598; 1.443562;, + 1.881469;-7.764598; 1.443562;, + 1.881228;-7.764598; 3.813905;, + -1.808145;-7.764598; 3.813905;, + -1.808145;-7.764598; 1.443562;, + 1.881228;-7.764598; 3.813905;, + 1.881228;-5.782129; 3.813905;, + -1.808145;-5.782129; 3.813905;, + -1.808145;-7.764598; 3.813905;, + 5.812429;-5.782129;-0.676760;, + 3.528280;-5.782129;-0.676760;, + 3.528280;-3.363860;-0.676760;, + 5.812429;-3.363860;-0.676760;, + -8.737874;-5.782129;-0.676760;, + -8.737874;-3.363860;-0.676760;, + -6.539935;-3.363860;-0.676760;, + -6.539935;-5.782129;-0.676760;, + -8.737874;-7.764598;-0.676760;, + -6.539935;-7.764598;-0.676760;, + -6.539935;-8.231336;-0.676760;, + -8.737874;-8.231336;-0.676760;, + 3.528280;-7.764598;-0.676760;, + 5.812429;-7.764598;-0.676760;, + 5.812429;-8.231336;-0.676760;, + 3.528280;-8.231336;-0.676760;, + -6.539935;-7.764598; 1.443562;, + -8.737874;-7.764598; 1.443562;, + -8.737874;-8.231336; 1.443562;, + -6.539935;-8.231336; 1.443562;, + -6.539935;-7.764598;-0.676760;, + -6.539935;-7.764598; 1.443562;, + -6.539935;-8.231336; 1.443562;, + -6.539935;-8.231336;-0.676760;, + 5.812429;-7.764598; 1.443562;, + 3.528280;-7.764598; 1.443562;, + 3.528280;-8.231336; 1.443562;, + 5.812429;-8.231336; 1.443562;, + -8.737874;-7.764598; 1.443562;, + -8.737874;-7.764598;-0.676760;, + -8.737874;-8.231336;-0.676760;, + -8.737874;-8.231336; 1.443562;, + -6.539935;-8.231336; 1.443562;, + -8.737874;-8.231336; 1.443562;, + -8.737874;-10.565021; 1.443562;, + -6.539935;-10.565021; 1.443562;, + 5.812429;-8.231336; 1.443562;, + 3.528280;-8.231336; 1.443562;, + 3.528280;-10.565021; 1.443562;, + 5.812429;-10.565021; 1.443562;, + -8.737874;-10.606809;-0.676760;, + -8.737874;-8.231336;-0.676760;, + -8.737874;-8.188540;-2.383271;, + -8.737874;-10.606809;-2.383271;, + 3.528280;-10.606809;-0.676760;, + 3.528280;-8.231336;-0.676760;, + 3.528280;-8.188540;-2.383271;, + 3.528280;-10.606809;-2.383271;, + -6.539935;-8.231336;-0.676760;, + -6.539935;-10.606809;-0.676760;, + -6.539935;-10.606809;-2.383271;, + -6.539935;-8.188540;-2.383271;, + 5.812429;-8.231336;-0.676760;, + 5.812429;-10.606809;-0.676760;, + 5.812429;-10.606809;-2.383271;, + 5.812429;-8.188540;-2.383271;, + -8.737874;-8.231336;-0.676760;, + -6.539935;-8.231336;-0.676760;, + -6.539935;-8.188540;-2.383271;, + -8.737874;-8.188540;-2.383271;, + 3.528280;-8.231336;-0.676760;, + 5.812429;-8.231336;-0.676760;, + 5.812429;-8.188540;-2.383271;, + 3.528280;-8.188540;-2.383271;, + 3.528280;-8.231336; 1.443562;, + 3.528280;-8.231336;-0.676760;, + 3.528280;-10.606809;-0.676760;, + 3.528280;-10.565021; 1.443562;, + 5.812429;-8.231336;-0.676760;, + 5.812429;-8.231336; 1.443562;, + 5.812429;-10.565021; 1.443562;, + 5.812429;-10.606809;-0.676760;, + -6.539935;-10.565021; 1.443562;, + -8.737874;-10.565021; 1.443562;, + -8.737874;-10.606809;-0.676760;, + -6.539935;-10.606809;-0.676760;, + 5.812429;-10.565021; 1.443562;, + 3.528280;-10.565021; 1.443562;, + 3.528280;-10.606809;-0.676760;, + 5.812429;-10.606809;-0.676760;, + -8.737874;-8.231336;-0.676760;, + -6.539935;-8.231336;-0.676760;, + -6.539935;-10.606809;-0.676760;, + -8.737874;-10.606809;-0.676760;, + 3.528280;-8.231336;-0.676760;, + 5.812429;-8.231336;-0.676760;, + 5.812429;-10.606809;-0.676760;, + 3.528280;-10.606809;-0.676760;, + -6.539935;-8.231336;-0.676760;, + -6.539935;-8.231336; 1.443562;, + -6.539935;-10.565021; 1.443562;, + -6.539935;-10.606809;-0.676760;, + -8.737874;-8.231336; 1.443562;, + -8.737874;-8.231336;-0.676760;, + -8.737874;-10.606809;-0.676760;, + -8.737874;-10.565021; 1.443562;, + -10.341044; 0.000000;11.097267;, + -10.341044;-3.363860;11.097267;, + -10.341044;-3.363860;14.949058;, + -10.341044; 0.000000;14.949058;, + -10.341044;-3.363860;11.097267;, + -8.737874;-3.363860;11.097267;, + -8.737874;-3.363860;14.949058;, + -10.341044;-3.363860;14.949058;, + -8.737874;-3.363860;11.097267;, + -8.737874; 0.000000;11.097267;, + -8.737874; 0.000000;14.949058;, + -8.737874;-3.363860;14.949058;, + -10.341044;-3.363860;14.949058;, + -10.341044;-3.363860;16.717083;, + -22.193354;-3.363860;16.717083;, + -22.193354;-3.363860;14.949058;, + -10.341044;-3.363860;14.949058;, + -8.737874;-3.363860;14.949058;, + -8.737874;-3.363860;16.717083;, + -10.341044;-3.363860;16.717083;, + -8.737874;-3.363860;14.949058;, + -8.737874; 0.000000;14.949058;, + -8.737874; 0.000000;16.717083;, + -8.737874;-3.363860;16.717083;, + -10.341044; 0.000000;16.717083;, + -10.341044;-3.363860;16.717083;, + -10.341044;-3.363860;18.693277;, + -10.341044; 0.000000;18.693277;, + -10.341044;-3.363860;16.717083;, + -8.737874;-3.363860;16.717083;, + -8.737874;-3.363860;18.693277;, + -10.341044;-3.363860;18.693277;, + -8.737874;-3.363860;16.717083;, + -8.737874; 0.000000;16.717083;, + -8.737874; 0.000000;18.693277;, + -8.737874;-3.363860;18.693277;, + -10.341044;-3.363860;20.461302;, + -8.737874;-3.363860;20.461302;, + -8.737874; 0.000000;20.461302;, + -10.341044; 0.000000;20.461302;, + -10.341044; 0.000000;18.693277;, + -10.341044;-3.363860;18.693277;, + -10.341044;-3.363860;20.461302;, + -10.341044; 0.000000;20.461302;, + -10.341044;-3.363860;18.693277;, + -8.737874;-3.363860;18.693277;, + -8.737874;-3.363860;20.461302;, + -10.341044;-3.363860;20.461302;, + -8.737874;-3.363860;20.461302;, + -8.737874;-3.363860;18.693277;, + 2.525095;-3.363860;18.693277;, + 2.525095;-3.363860;20.461302;, + 2.525095;-3.363860;18.693277;, + 2.525095; 0.000000;18.693277;, + 2.525095; 0.000000;20.461302;, + 2.525095;-3.363860;20.461302;, + -8.737874; 0.000000;20.461302;, + -8.737874;-3.363860;20.461302;, + 2.525095;-3.363860;20.461302;, + 2.525095; 0.000000;20.461302;, + -8.737874;-3.363860;18.693277;, + -8.737874; 0.000000;18.693277;, + 2.525095; 0.000000;18.693277;, + 2.525095;-3.363860;18.693277;, + -22.193354; 0.000000;14.949058;, + -22.193354;-3.363860;14.949058;, + -22.193354;-3.363860;16.717083;, + -22.193354; 0.000000;16.717083;, + -10.341044;-3.363860;16.717083;, + -10.341044; 0.000000;16.717083;, + -22.193354; 0.000000;16.717083;, + -22.193354;-3.363860;16.717083;, + -10.341044; 0.000000;14.949058;, + -10.341044;-3.363860;14.949058;, + -22.193354;-3.363860;14.949058;, + -22.193354; 0.000000;14.949058;, + 10.672272;-1.788433; 7.544702;, + 12.812788;-1.788433; 7.544702;, + 12.812788;-1.788433; 5.404183;, + 10.672272;-1.788433; 5.404183;, + -8.737874; 8.188540;-2.383271;, + -15.615104; 8.188540;-2.383271;, + -15.615104; 8.188540;-3.969275;, + -8.737874; 8.188540;-3.969275;, + -6.539935;10.606809;-0.676760;, + -6.539935;10.606809;-2.383271;, + -8.737874;10.606809;-2.383271;, + -8.737874;10.606809;-0.676760;, + 5.812429;10.606809;-0.676760;, + 5.812429;10.606809;-2.383271;, + 3.528280;10.606809;-2.383271;, + 3.528280;10.606809;-0.676760;, + 5.812429;10.606809;-3.977732;, + 5.812429; 8.188540;-3.977732;, + 3.528280; 8.188540;-3.977732;, + 3.528280;10.606809;-3.977732;, + 5.812429;10.606809;-2.383271;, + 13.705219;10.606809;-2.383271;, + 13.705219;10.606809;-3.977732;, + 5.812429;10.606809;-3.977732;, + 3.528280; 8.188540;-2.383271;, + 3.528280; 8.188540;-3.977732;, + 5.812429; 8.188540;-3.977732;, + 5.812429; 8.188540;-2.383271;, + 5.812429;10.606809;-2.383271;, + 5.812429;10.606809;-3.977732;, + 3.528280;10.606809;-3.977732;, + 3.528280;10.606809;-2.383271;, + 3.528280; 8.188540;-3.977732;, + -6.538944; 8.188540;-3.977732;, + -6.538944;10.606809;-3.977732;, + 3.528280;10.606809;-3.977732;, + 3.528280; 8.188540;-2.383271;, + -6.539935; 8.188540;-2.383271;, + -6.538944; 8.188540;-3.977732;, + 3.528280; 8.188540;-3.977732;, + -6.539935;10.606809;-2.383271;, + -6.538944;10.606809;-3.977732;, + -6.538944; 8.188540;-3.977732;, + -6.539935; 8.188540;-2.383271;, + 3.528280;10.606809;-3.977732;, + -6.538944;10.606809;-3.977732;, + -6.539935;10.606809;-2.383271;, + 3.528280;10.606809;-2.383271;, + 3.528280;10.606809;-2.383271;, + -6.539935;10.606809;-2.383271;, + -6.539935; 8.188540;-2.383271;, + 3.528280; 8.188540;-2.383271;, + -6.538944;10.606809;-3.977732;, + -6.538944; 8.188540;-3.977732;, + -8.737874; 8.188540;-3.969275;, + -8.737874;10.606809;-3.969275;, + -8.737874; 8.188540;-2.383271;, + -8.737874; 8.188540;-3.969275;, + -6.538944; 8.188540;-3.977732;, + -6.539935; 8.188540;-2.383271;, + -6.539935;10.606809;-2.383271;, + -6.538944;10.606809;-3.977732;, + -8.737874;10.606809;-3.969275;, + -8.737874;10.606809;-2.383271;, + 13.705219; 8.188540;-2.383271;, + 13.705219; 8.188540;-3.977732;, + 13.705219;10.606809;-3.977732;, + 13.705219;10.606809;-2.383271;, + 5.812429; 8.188540;-3.977732;, + 13.705219; 8.188540;-3.977732;, + 13.705219; 8.188540;-2.383271;, + 5.812429; 8.188540;-2.383271;, + 5.812429;10.606809;-3.977732;, + 13.705219;10.606809;-3.977732;, + 13.705219; 8.188540;-3.977732;, + 5.812429; 8.188540;-3.977732;, + 5.812429; 8.188540;-2.383271;, + 13.705219; 8.188540;-2.383271;, + 13.705219;10.606809;-2.383271;, + 5.812429;10.606809;-2.383271;, + -15.615104;10.606809;-2.383271;, + -15.615104;10.606809;-3.969275;, + -15.615104; 8.188540;-3.969275;, + -15.615104; 8.188540;-2.383271;, + -8.737874;10.606809;-3.969275;, + -15.615104;10.606809;-3.969275;, + -15.615104;10.606809;-2.383271;, + -8.737874;10.606809;-2.383271;, + -8.737874; 8.188540;-3.969275;, + -15.615104; 8.188540;-3.969275;, + -15.615104;10.606809;-3.969275;, + -8.737874;10.606809;-3.969275;, + -8.737874;10.606809;-2.383271;, + -15.615104;10.606809;-2.383271;, + -15.615104; 8.188540;-2.383271;, + -8.737874; 8.188540;-2.383271;, + 10.672272; 5.782129; 7.544702;, + 10.672272; 5.782129; 5.404183;, + 10.672272; 1.788433; 5.404183;, + 10.672272; 1.788433; 7.544702;, + 12.812788; 1.788433; 7.544702;, + 12.812788; 1.788433; 5.404183;, + 12.812788; 5.782129; 5.404183;, + 12.812788; 5.782129; 7.544702;, + 10.672272; 5.782129; 5.404183;, + 10.672272; 7.764598; 5.404183;, + 12.812788; 7.764598; 5.404183;, + 12.812788; 5.782129; 5.404183;, + 10.672272; 5.782129; 5.404183;, + 12.812788; 5.782129; 5.404183;, + 12.812788; 1.788433; 5.404183;, + 10.672272; 1.788433; 5.404183;, + 12.812788; 5.782129; 7.544702;, + 10.672272; 5.782129; 7.544702;, + 10.672272; 1.788433; 7.544702;, + 12.812788; 1.788433; 7.544702;, + 12.812788; 7.764598; 7.544702;, + 12.812788; 7.764598; 5.404183;, + 10.672272; 7.764598; 5.404183;, + 10.672272; 7.764598; 7.544702;, + 12.812788; 5.782129; 7.544702;, + 12.812788; 7.764598; 7.544702;, + 10.672272; 7.764598; 7.544702;, + 10.672272; 5.782129; 7.544702;, + 12.812788; 5.782129; 5.404183;, + 12.812788; 7.764598; 5.404183;, + 12.812788; 7.764598; 7.544702;, + 12.812788; 5.782129; 7.544702;, + 10.672272; 7.764598; 7.544702;, + 5.812429; 7.764598; 7.544702;, + 5.812429; 5.782129; 7.544702;, + 10.672272; 5.782129; 7.544702;, + 5.812429; 7.764598; 7.544702;, + 3.528280; 7.764598; 7.544702;, + 3.528280; 5.782129; 7.544702;, + 5.812429; 5.782129; 7.544702;, + 10.672272; 5.782129; 5.404183;, + 5.812429; 5.782129; 5.404183;, + 5.812429; 7.764598; 5.404183;, + 10.672272; 7.764598; 5.404183;, + 10.672272; 7.764598; 5.404183;, + 5.812429; 7.764598; 5.404183;, + 5.812429; 7.764598; 7.544702;, + 10.672272; 7.764598; 7.544702;, + 10.672272; 5.782129; 7.544702;, + 5.812429; 5.782129; 7.544702;, + 5.812429; 5.782129; 5.404183;, + 10.672272; 5.782129; 5.404183;, + 3.528280; 7.764598; 3.813905;, + 1.881228; 7.764598; 3.813905;, + 1.881228; 7.764598; 5.404183;, + 3.528280; 7.764598; 5.404183;, + 5.812429; 7.764598; 5.404183;, + 5.812429; 7.764598; 3.813905;, + 3.528280; 7.764598; 3.813905;, + 3.528280; 7.764598; 5.404183;, + 5.812429; 7.764598; 5.404183;, + 3.528280; 7.764598; 5.404183;, + 3.528280; 7.764598; 7.544702;, + 5.812429; 7.764598; 7.544702;, + 5.812429; 5.782129; 7.544702;, + 3.528280; 5.782129; 7.544702;, + 3.528280; 5.782129; 5.404183;, + 5.812429; 5.782129; 5.404183;, + 5.812429; 7.764598; 3.813905;, + 5.812429; 7.764598; 1.443562;, + 3.528280; 7.764598; 1.443562;, + 3.528280; 7.764598; 3.813905;, + 3.528280; 5.782129; 5.404183;, + 3.528280; 5.782129; 3.813905;, + 5.812429; 5.782129; 3.813905;, + 5.812429; 5.782129; 5.404183;, + 3.528280; 5.782129; 5.404183;, + 1.881228; 5.782129; 5.404183;, + 1.881228; 5.782129; 3.813905;, + 3.528280; 5.782129; 3.813905;, + 5.812429; 5.782129; 5.404183;, + 5.812429; 5.782129; 3.813905;, + 5.812429; 7.764598; 3.813905;, + 5.812429; 7.764598; 5.404183;, + 3.528280; 5.782129; 3.813905;, + 3.528280; 5.782129; 1.443562;, + 5.812429; 5.782129; 1.443562;, + 5.812429; 5.782129; 3.813905;, + -1.808145; 5.782129; 3.813905;, + -6.539935; 5.782129; 3.813905;, + -6.539935; 5.782129; 1.443562;, + -1.808145; 5.782129; 1.443562;, + 5.812429; 5.782129; 3.813905;, + 5.812429; 5.782129; 1.443562;, + 5.812429; 7.764598; 1.443562;, + 5.812429; 7.764598; 3.813905;, + -6.539935; 5.782129; 3.813905;, + -8.737874; 5.782129; 3.813905;, + -8.737874; 5.782129; 1.443562;, + -6.539935; 5.782129; 1.443562;, + -1.808145; 7.764598; 1.443562;, + -6.539935; 7.764598; 1.443562;, + -6.539935; 7.764598; 3.813905;, + -1.808145; 7.764598; 3.813905;, + 5.812429; 5.782129; 1.443562;, + 5.812429; 3.363860; 1.443562;, + 5.812429; 3.363860;-0.676760;, + 5.812429; 5.782129;-0.676760;, + -1.808145; 7.764598; 3.813905;, + -6.539935; 7.764598; 3.813905;, + -6.539935; 5.782129; 3.813905;, + -1.808145; 5.782129; 3.813905;, + -8.737874; 5.782129;-0.676760;, + -10.341044; 5.782129;-0.676760;, + -10.341044; 7.764598;-0.676760;, + -8.737874; 7.764598;-0.676760;, + -6.539935; 7.764598; 1.443562;, + -8.737874; 7.764598; 1.443562;, + -8.737874; 7.764598; 3.813905;, + -6.539935; 7.764598; 3.813905;, + 3.528280; 7.764598; 1.443562;, + 3.528280; 8.231336; 1.443562;, + 3.528280; 8.231336;-0.676760;, + 3.528280; 7.764598;-0.676760;, + -8.737874; 7.764598; 3.813905;, + -8.737874; 7.764598;11.097267;, + -6.539935; 7.764598;11.097267;, + -6.539935; 7.764598; 3.813905;, + -6.539935; 7.764598;11.097267;, + -8.737874; 7.764598;11.097267;, + -8.737874; 5.782129;11.097267;, + -6.539935; 5.782129;11.097267;, + -6.539935; 5.782129; 3.813905;, + -6.539935; 5.782129;11.097267;, + -8.737874; 5.782129;11.097267;, + -8.737874; 5.782129; 3.813905;, + -10.341044; 5.782129; 1.443562;, + -10.341044; 3.363860; 1.443562;, + -10.341044; 3.363860; 3.813905;, + -10.341044; 5.782129; 3.813905;, + -6.539935; 7.764598; 3.813905;, + -6.539935; 7.764598;11.097267;, + -6.539935; 5.782129;11.097267;, + -6.539935; 5.782129; 3.813905;, + 5.812429; 5.782129;-0.676760;, + 3.528280; 5.782129;-0.676760;, + 3.528280; 7.764598;-0.676760;, + 5.812429; 7.764598;-0.676760;, + -1.808145; 5.782129;-0.676760;, + -6.539935; 5.782129;-0.676760;, + -6.539935; 7.764598;-0.676760;, + -1.808145; 7.764598;-0.676760;, + -6.539935; 5.782129;-0.676760;, + -8.737874; 5.782129;-0.676760;, + -8.737874; 7.764598;-0.676760;, + -6.539935; 7.764598;-0.676760;, + -1.808145; 7.764598; 1.443562;, + -1.808145; 7.764598;-0.676760;, + -6.539935; 7.764598;-0.676760;, + -6.539935; 7.764598; 1.443562;, + -10.341044; 5.782129; 3.813905;, + -10.341044; 3.363860; 3.813905;, + -10.341044; 3.363860;11.097267;, + -10.341044; 5.782129;11.097267;, + 5.812429; 7.764598;-0.676760;, + 5.812429; 8.231336;-0.676760;, + 5.812429; 8.231336; 1.443562;, + 5.812429; 7.764598; 1.443562;, + -10.341044; 5.782129;-0.676760;, + -10.341044; 3.363860;-0.676760;, + -10.341044; 3.363860; 1.443562;, + -10.341044; 5.782129; 1.443562;, + 5.812429; 5.782129; 1.443562;, + 5.812429; 5.782129;-0.676760;, + 5.812429; 7.764598;-0.676760;, + 5.812429; 7.764598; 1.443562;, + -10.341044; 7.764598; 1.443562;, + -10.341044; 7.764598;-0.676760;, + -10.341044; 5.782129;-0.676760;, + -10.341044; 5.782129; 1.443562;, + -10.341044; 7.764598; 3.813905;, + -10.341044; 7.764598; 1.443562;, + -10.341044; 5.782129; 1.443562;, + -10.341044; 5.782129; 3.813905;, + -10.341044; 5.782129; 3.813905;, + -10.341044; 5.782129;11.097267;, + -10.341044; 7.764598;11.097267;, + -10.341044; 7.764598; 3.813905;, + -8.737874; 7.764598; 3.813905;, + -10.341044; 7.764598; 3.813905;, + -10.341044; 7.764598;11.097267;, + -8.737874; 7.764598;11.097267;, + -8.737874; 7.764598;11.097267;, + -10.341044; 7.764598;11.097267;, + -10.341044; 5.782129;11.097267;, + -8.737874; 5.782129;11.097267;, + -10.341044; 5.782129;11.097267;, + -10.341044; 3.363860;11.097267;, + -8.737874; 3.363860;11.097267;, + -8.737874; 5.782129;11.097267;, + -8.737874; 7.764598; 1.443562;, + -10.341044; 7.764598; 1.443562;, + -10.341044; 7.764598; 3.813905;, + -8.737874; 7.764598; 3.813905;, + -8.737874; 7.764598;-0.676760;, + -10.341044; 7.764598;-0.676760;, + -10.341044; 7.764598; 1.443562;, + -8.737874; 7.764598; 1.443562;, + 3.528280; 3.363860; 1.443562;, + 3.528280; 0.000000; 1.443562;, + 3.528280; 0.000000;-0.676760;, + 3.528280; 3.363860;-0.676760;, + -10.341044; 3.363860; 1.443562;, + -10.341044; 0.000000; 1.443562;, + -10.341044; 0.000000; 3.813905;, + -10.341044; 3.363860; 3.813905;, + -10.341044; 3.363860; 3.813905;, + -10.341044; 0.000000; 3.813905;, + -10.341044; 0.000000;11.097267;, + -10.341044; 3.363860;11.097267;, + -10.341044; 3.363860;-0.676760;, + -10.341044; 0.000000;-0.676760;, + -10.341044; 0.000000; 1.443562;, + -10.341044; 3.363860; 1.443562;, + 3.528280; 3.363860; 1.443562;, + 3.528280; 3.363860;-0.676760;, + 5.812429; 3.363860;-0.676760;, + 5.812429; 3.363860; 1.443562;, + -1.808145; 5.782129;-0.676760;, + -1.808145; 3.363860;-0.676760;, + -6.539935; 3.363860;-0.676760;, + -6.539935; 5.782129;-0.676760;, + -8.737874; 5.782129;11.097267;, + -8.737874; 3.363860;11.097267;, + -8.737874; 3.363860; 3.813905;, + -8.737874; 5.782129; 3.813905;, + -8.737874; 5.782129; 1.443562;, + -8.737874; 3.363860; 1.443562;, + -6.539935; 3.363860; 1.443562;, + -6.539935; 5.782129; 1.443562;, + -8.737874; 5.782129; 3.813905;, + -8.737874; 3.363860; 3.813905;, + -8.737874; 3.363860; 1.443562;, + -8.737874; 5.782129; 1.443562;, + -8.737874; 5.782129;-0.676760;, + -8.737874; 3.363860;-0.676760;, + -10.341044; 3.363860;-0.676760;, + -10.341044; 5.782129;-0.676760;, + 1.881469; 5.782129; 1.443562;, + 1.881469; 3.363860; 1.443562;, + 3.528280; 3.363860; 1.443562;, + 3.528280; 5.782129; 1.443562;, + 3.528280; 5.782129; 1.443562;, + 3.528280; 3.363860; 1.443562;, + 5.812429; 3.363860; 1.443562;, + 5.812429; 5.782129; 1.443562;, + -6.539935; 3.363860;-0.676760;, + -6.539935; 0.000000;-0.676760;, + -8.737874; 0.000000;-0.676760;, + -8.737874; 3.363860;-0.676760;, + -1.808145; 3.363860;-0.676760;, + -1.808145; 0.000000;-0.676760;, + -6.539935; 0.000000;-0.676760;, + -6.539935; 3.363860;-0.676760;, + -8.737874; 3.363860;11.097267;, + -8.737874; 0.000000;11.097267;, + -8.737874; 0.000000; 3.813905;, + -8.737874; 3.363860; 3.813905;, + -8.737874; 3.363860; 1.443562;, + -8.737874; 0.000000; 1.443562;, + -6.539935; 0.000000; 1.443562;, + -6.539935; 3.363860; 1.443562;, + -8.737874; 3.363860; 3.813905;, + -8.737874; 0.000000; 3.813905;, + -8.737874; 0.000000; 1.443562;, + -8.737874; 3.363860; 1.443562;, + -8.737874; 3.363860;-0.676760;, + -8.737874; 0.000000;-0.676760;, + -10.341044; 0.000000;-0.676760;, + -10.341044; 3.363860;-0.676760;, + 1.881469; 3.363860; 1.443562;, + 1.881469; 0.000000; 1.443562;, + 3.528280; 0.000000; 1.443562;, + 3.528280; 3.363860; 1.443562;, + 3.528280; 5.782129;-0.676760;, + 1.881469; 5.782129;-0.676760;, + 1.881469; 7.764598;-0.676760;, + 3.528280; 7.764598;-0.676760;, + 1.881469; 5.782129;-0.676760;, + -1.808145; 5.782129;-0.676760;, + -1.808145; 7.764598;-0.676760;, + 1.881469; 7.764598;-0.676760;, + 3.528280; 7.764598; 1.443562;, + 3.528280; 7.764598;-0.676760;, + 1.881469; 7.764598;-0.676760;, + 1.881469; 7.764598; 1.443562;, + 1.881469; 7.764598; 1.443562;, + 1.881469; 7.764598;-0.676760;, + -1.808145; 7.764598;-0.676760;, + -1.808145; 7.764598; 1.443562;, + 3.528280; 5.782129;-0.676760;, + 3.528280; 3.363860;-0.676760;, + 1.881469; 3.363860;-0.676760;, + 1.881469; 5.782129;-0.676760;, + 1.881469; 5.782129;-0.676760;, + 1.881469; 3.363860;-0.676760;, + -1.808145; 3.363860;-0.676760;, + -1.808145; 5.782129;-0.676760;, + -6.539935; 5.782129; 1.443562;, + -6.539935; 3.363860; 1.443562;, + -1.808145; 3.363860; 1.443562;, + -1.808145; 5.782129; 1.443562;, + -1.808145; 5.782129; 1.443562;, + -1.808145; 3.363860; 1.443562;, + 1.881469; 3.363860; 1.443562;, + 1.881469; 5.782129; 1.443562;, + 3.528280; 3.363860;-0.676760;, + 3.528280; 0.000000;-0.676760;, + 1.881469; 0.000000;-0.676760;, + 1.881469; 3.363860;-0.676760;, + 1.881469; 3.363860;-0.676760;, + 1.881469; 0.000000;-0.676760;, + -1.808145; 0.000000;-0.676760;, + -1.808145; 3.363860;-0.676760;, + -6.539935; 3.363860; 1.443562;, + -6.539935; 0.000000; 1.443562;, + -1.808145; 0.000000; 1.443562;, + -1.808145; 3.363860; 1.443562;, + -1.808145; 3.363860; 1.443562;, + -1.808145; 0.000000; 1.443562;, + 1.881469; 0.000000; 1.443562;, + 1.881469; 3.363860; 1.443562;, + 1.881228; 5.782129; 7.544702;, + 1.881228; 7.764598; 7.544702;, + 1.881228; 7.764598; 5.404183;, + 1.881228; 5.782129; 5.404183;, + 1.881228; 7.764598; 5.404183;, + 1.881228; 7.764598; 3.813905;, + 1.881228; 5.782129; 3.813905;, + 1.881228; 5.782129; 5.404183;, + 3.528280; 5.782129; 3.813905;, + 1.881228; 5.782129; 3.813905;, + 1.881228; 7.764598; 3.813905;, + 3.528280; 7.764598; 3.813905;, + 3.528280; 7.764598; 7.544702;, + 1.881228; 7.764598; 7.544702;, + 1.881228; 5.782129; 7.544702;, + 3.528280; 5.782129; 7.544702;, + 3.528280; 7.764598; 5.404183;, + 1.881228; 7.764598; 5.404183;, + 1.881228; 7.764598; 7.544702;, + 3.528280; 7.764598; 7.544702;, + 3.528280; 5.782129; 7.544702;, + 1.881228; 5.782129; 7.544702;, + 1.881228; 5.782129; 5.404183;, + 3.528280; 5.782129; 5.404183;, + 3.528280; 5.782129; 3.813905;, + 1.881228; 5.782129; 3.813905;, + 1.881469; 5.782129; 1.443562;, + 3.528280; 5.782129; 1.443562;, + 1.881228; 5.782129; 3.813905;, + -1.808145; 5.782129; 3.813905;, + -1.808145; 5.782129; 1.443562;, + 1.881469; 5.782129; 1.443562;, + 3.528280; 7.764598; 1.443562;, + 1.881469; 7.764598; 1.443562;, + 1.881228; 7.764598; 3.813905;, + 3.528280; 7.764598; 3.813905;, + 1.881469; 7.764598; 1.443562;, + -1.808145; 7.764598; 1.443562;, + -1.808145; 7.764598; 3.813905;, + 1.881228; 7.764598; 3.813905;, + 1.881228; 7.764598; 3.813905;, + -1.808145; 7.764598; 3.813905;, + -1.808145; 5.782129; 3.813905;, + 1.881228; 5.782129; 3.813905;, + 5.812429; 5.782129;-0.676760;, + 5.812429; 3.363860;-0.676760;, + 3.528280; 3.363860;-0.676760;, + 3.528280; 5.782129;-0.676760;, + -8.737874; 5.782129;-0.676760;, + -6.539935; 5.782129;-0.676760;, + -6.539935; 3.363860;-0.676760;, + -8.737874; 3.363860;-0.676760;, + -8.737874; 7.764598;-0.676760;, + -8.737874; 8.231336;-0.676760;, + -6.539935; 8.231336;-0.676760;, + -6.539935; 7.764598;-0.676760;, + 3.528280; 7.764598;-0.676760;, + 3.528280; 8.231336;-0.676760;, + 5.812429; 8.231336;-0.676760;, + 5.812429; 7.764598;-0.676760;, + -6.539935; 7.764598; 1.443562;, + -6.539935; 8.231336; 1.443562;, + -8.737874; 8.231336; 1.443562;, + -8.737874; 7.764598; 1.443562;, + -6.539935; 7.764598;-0.676760;, + -6.539935; 8.231336;-0.676760;, + -6.539935; 8.231336; 1.443562;, + -6.539935; 7.764598; 1.443562;, + 5.812429; 7.764598; 1.443562;, + 5.812429; 8.231336; 1.443562;, + 3.528280; 8.231336; 1.443562;, + 3.528280; 7.764598; 1.443562;, + -8.737874; 7.764598; 1.443562;, + -8.737874; 8.231336; 1.443562;, + -8.737874; 8.231336;-0.676760;, + -8.737874; 7.764598;-0.676760;, + -6.539935; 8.231336; 1.443562;, + -6.539935;10.565021; 1.443562;, + -8.737874;10.565021; 1.443562;, + -8.737874; 8.231336; 1.443562;, + 5.812429; 8.231336; 1.443562;, + 5.812429;10.565021; 1.443562;, + 3.528280;10.565021; 1.443562;, + 3.528280; 8.231336; 1.443562;, + -8.737874;10.606809;-0.676760;, + -8.737874;10.606809;-2.383271;, + -8.737874; 8.188540;-2.383271;, + -8.737874; 8.231336;-0.676760;, + 3.528280;10.606809;-0.676760;, + 3.528280;10.606809;-2.383271;, + 3.528280; 8.188540;-2.383271;, + 3.528280; 8.231336;-0.676760;, + -6.539935; 8.231336;-0.676760;, + -6.539935; 8.188540;-2.383271;, + -6.539935;10.606809;-2.383271;, + -6.539935;10.606809;-0.676760;, + 5.812429; 8.231336;-0.676760;, + 5.812429; 8.188540;-2.383271;, + 5.812429;10.606809;-2.383271;, + 5.812429;10.606809;-0.676760;, + -8.737874; 8.231336;-0.676760;, + -8.737874; 8.188540;-2.383271;, + -6.539935; 8.188540;-2.383271;, + -6.539935; 8.231336;-0.676760;, + 3.528280; 8.231336;-0.676760;, + 3.528280; 8.188540;-2.383271;, + 5.812429; 8.188540;-2.383271;, + 5.812429; 8.231336;-0.676760;, + 3.528280; 8.231336; 1.443562;, + 3.528280;10.565021; 1.443562;, + 3.528280;10.606809;-0.676760;, + 3.528280; 8.231336;-0.676760;, + 5.812429; 8.231336;-0.676760;, + 5.812429;10.606809;-0.676760;, + 5.812429;10.565021; 1.443562;, + 5.812429; 8.231336; 1.443562;, + -6.539935;10.565021; 1.443562;, + -6.539935;10.606809;-0.676760;, + -8.737874;10.606809;-0.676760;, + -8.737874;10.565021; 1.443562;, + 5.812429;10.565021; 1.443562;, + 5.812429;10.606809;-0.676760;, + 3.528280;10.606809;-0.676760;, + 3.528280;10.565021; 1.443562;, + -8.737874; 8.231336;-0.676760;, + -8.737874;10.606809;-0.676760;, + -6.539935;10.606809;-0.676760;, + -6.539935; 8.231336;-0.676760;, + 3.528280; 8.231336;-0.676760;, + 3.528280;10.606809;-0.676760;, + 5.812429;10.606809;-0.676760;, + 5.812429; 8.231336;-0.676760;, + -6.539935; 8.231336;-0.676760;, + -6.539935;10.606809;-0.676760;, + -6.539935;10.565021; 1.443562;, + -6.539935; 8.231336; 1.443562;, + -8.737874; 8.231336; 1.443562;, + -8.737874;10.565021; 1.443562;, + -8.737874;10.606809;-0.676760;, + -8.737874; 8.231336;-0.676760;, + -10.341044; 0.000000;11.097267;, + -10.341044; 0.000000;14.949058;, + -10.341044; 3.363860;14.949058;, + -10.341044; 3.363860;11.097267;, + -10.341044; 3.363860;11.097267;, + -10.341044; 3.363860;14.949058;, + -8.737874; 3.363860;14.949058;, + -8.737874; 3.363860;11.097267;, + -8.737874; 3.363860;11.097267;, + -8.737874; 3.363860;14.949058;, + -8.737874; 0.000000;14.949058;, + -8.737874; 0.000000;11.097267;, + -10.341044; 3.363860;14.949058;, + -22.193354; 3.363860;14.949058;, + -22.193354; 3.363860;16.717083;, + -10.341044; 3.363860;16.717083;, + -10.341044; 3.363860;14.949058;, + -10.341044; 3.363860;16.717083;, + -8.737874; 3.363860;16.717083;, + -8.737874; 3.363860;14.949058;, + -8.737874; 3.363860;14.949058;, + -8.737874; 3.363860;16.717083;, + -8.737874; 0.000000;16.717083;, + -8.737874; 0.000000;14.949058;, + -10.341044; 0.000000;16.717083;, + -10.341044; 0.000000;18.693277;, + -10.341044; 3.363860;18.693277;, + -10.341044; 3.363860;16.717083;, + -10.341044; 3.363860;16.717083;, + -10.341044; 3.363860;18.693277;, + -8.737874; 3.363860;18.693277;, + -8.737874; 3.363860;16.717083;, + -8.737874; 3.363860;16.717083;, + -8.737874; 3.363860;18.693277;, + -8.737874; 0.000000;18.693277;, + -8.737874; 0.000000;16.717083;, + -10.341044; 3.363860;20.461302;, + -10.341044; 0.000000;20.461302;, + -8.737874; 0.000000;20.461302;, + -8.737874; 3.363860;20.461302;, + -10.341044; 0.000000;18.693277;, + -10.341044; 0.000000;20.461302;, + -10.341044; 3.363860;20.461302;, + -10.341044; 3.363860;18.693277;, + -10.341044; 3.363860;18.693277;, + -10.341044; 3.363860;20.461302;, + -8.737874; 3.363860;20.461302;, + -8.737874; 3.363860;18.693277;, + -8.737874; 3.363860;20.461302;, + 2.525095; 3.363860;20.461302;, + 2.525095; 3.363860;18.693277;, + -8.737874; 3.363860;18.693277;, + 2.525095; 3.363860;18.693277;, + 2.525095; 3.363860;20.461302;, + 2.525095; 0.000000;20.461302;, + 2.525095; 0.000000;18.693277;, + -8.737874; 0.000000;20.461302;, + 2.525095; 0.000000;20.461302;, + 2.525095; 3.363860;20.461302;, + -8.737874; 3.363860;20.461302;, + -8.737874; 3.363860;18.693277;, + 2.525095; 3.363860;18.693277;, + 2.525095; 0.000000;18.693277;, + -8.737874; 0.000000;18.693277;, + -22.193354; 0.000000;14.949058;, + -22.193354; 0.000000;16.717083;, + -22.193354; 3.363860;16.717083;, + -22.193354; 3.363860;14.949058;, + -10.341044; 3.363860;16.717083;, + -22.193354; 3.363860;16.717083;, + -22.193354; 0.000000;16.717083;, + -10.341044; 0.000000;16.717083;, + -10.341044; 0.000000;14.949058;, + -22.193354; 0.000000;14.949058;, + -22.193354; 3.363860;14.949058;, + -10.341044; 3.363860;14.949058;, + 10.672272; 1.788433; 7.544702;, + 10.672272; 1.788433; 5.404183;, + 12.812788; 1.788433; 5.404183;, + 12.812788; 1.788433; 7.544702;; + 322; + 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;, + 4;195,194,193,192;, + 4;199,198,197,196;, + 4;203,202,201,200;, + 4;207,206,205,204;, + 4;211,210,209,208;, + 4;215,214,213,212;, + 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;, + 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;, + 4;387,386,385,384;, + 4;391,390,389,388;, + 4;395,394,393,392;, + 4;399,398,397,396;, + 4;403,402,401,400;, + 4;407,406,405,404;, + 4;411,410,409,408;, + 4;415,414,413,412;, + 4;419,418,417,416;, + 4;423,422,421,420;, + 4;427,426,425,424;, + 4;431,430,429,428;, + 4;435,434,433,432;, + 4;439,438,437,436;, + 4;443,442,441,440;, + 4;447,446,445,444;, + 4;451,450,449,448;, + 4;455,454,453,452;, + 4;459,458,457,456;, + 4;463,462,461,460;, + 4;467,466,465,464;, + 4;471,470,469,468;, + 4;475,474,473,472;, + 4;479,478,477,476;, + 4;483,482,481,480;, + 4;487,486,485,484;, + 4;491,490,489,488;, + 4;495,494,493,492;, + 4;499,498,497,496;, + 4;503,502,501,500;, + 4;507,506,505,504;, + 4;511,510,509,508;, + 4;515,514,513,512;, + 4;519,518,517,516;, + 4;523,522,521,520;, + 4;527,526,525,524;, + 4;531,530,529,528;, + 4;535,534,533,532;, + 4;539,538,537,536;, + 4;543,542,541,540;, + 4;547,546,545,544;, + 4;551,550,549,548;, + 4;555,554,553,552;, + 4;559,558,557,556;, + 4;563,562,561,560;, + 4;567,566,565,564;, + 4;571,570,569,568;, + 4;575,574,573,572;, + 4;579,578,577,576;, + 4;583,582,581,580;, + 4;587,586,585,584;, + 4;591,590,589,588;, + 4;595,594,593,592;, + 4;599,598,597,596;, + 4;603,602,601,600;, + 4;607,606,605,604;, + 4;611,610,609,608;, + 4;615,614,613,612;, + 4;619,618,617,616;, + 4;623,622,621,620;, + 4;627,626,625,624;, + 4;631,630,629,628;, + 4;635,634,633,632;, + 4;639,638,637,636;, + 4;643,642,641,640;, + 4;647,646,645,644;, + 4;651,650,649,648;, + 4;655,654,653,652;, + 4;659,658,657,656;, + 4;663,662,661,660;, + 4;667,666,665,664;, + 4;671,670,669,668;, + 4;675,674,673,672;, + 4;679,678,677,676;, + 4;683,682,681,680;, + 4;687,686,685,684;, + 4;691,690,689,688;, + 4;695,694,693,692;, + 4;699,698,697,696;, + 4;703,702,701,700;, + 4;707,706,705,704;, + 4;711,710,709,708;, + 4;715,714,713,712;, + 4;719,718,717,716;, + 4;723,722,721,720;, + 4;727,726,725,724;, + 4;731,730,729,728;, + 4;735,734,733,732;, + 4;739,738,737,736;, + 4;743,742,741,740;, + 4;747,746,745,744;, + 4;751,750,749,748;, + 4;755,754,753,752;, + 4;759,758,757,756;, + 4;763,762,761,760;, + 4;767,766,765,764;, + 4;771,770,769,768;, + 4;775,774,773,772;, + 4;779,778,777,776;, + 4;783,782,781,780;, + 4;787,786,785,784;, + 4;791,790,789,788;, + 4;795,794,793,792;, + 4;799,798,797,796;, + 4;803,802,801,800;, + 4;807,806,805,804;, + 4;811,810,809,808;, + 4;815,814,813,812;, + 4;819,818,817,816;, + 4;823,822,821,820;, + 4;827,826,825,824;, + 4;831,830,829,828;, + 4;835,834,833,832;, + 4;839,838,837,836;, + 4;843,842,841,840;, + 4;847,846,845,844;, + 4;851,850,849,848;, + 4;855,854,853,852;, + 4;859,858,857,856;, + 4;863,862,861,860;, + 4;867,866,865,864;, + 4;871,870,869,868;, + 4;875,874,873,872;, + 4;879,878,877,876;, + 4;883,882,881,880;, + 4;887,886,885,884;, + 4;891,890,889,888;, + 4;895,894,893,892;, + 4;899,898,897,896;, + 4;903,902,901,900;, + 4;907,906,905,904;, + 4;911,910,909,908;, + 4;915,914,913,912;, + 4;919,918,917,916;, + 4;923,922,921,920;, + 4;927,926,925,924;, + 4;931,930,929,928;, + 4;935,934,933,932;, + 4;939,938,937,936;, + 4;943,942,941,940;, + 4;947,946,945,944;, + 4;951,950,949,948;, + 4;955,954,953,952;, + 4;959,958,957,956;, + 4;963,962,961,960;, + 4;967,966,965,964;, + 4;971,970,969,968;, + 4;975,974,973,972;, + 4;979,978,977,976;, + 4;983,982,981,980;, + 4;987,986,985,984;, + 4;991,990,989,988;, + 4;995,994,993,992;, + 4;999,998,997,996;, + 4;1003,1002,1001,1000;, + 4;1007,1006,1005,1004;, + 4;1011,1010,1009,1008;, + 4;1015,1014,1013,1012;, + 4;1019,1018,1017,1016;, + 4;1023,1022,1021,1020;, + 4;1027,1026,1025,1024;, + 4;1031,1030,1029,1028;, + 4;1035,1034,1033,1032;, + 4;1039,1038,1037,1036;, + 4;1043,1042,1041,1040;, + 4;1047,1046,1045,1044;, + 4;1051,1050,1049,1048;, + 4;1055,1054,1053,1052;, + 4;1059,1058,1057,1056;, + 4;1063,1062,1061,1060;, + 4;1067,1066,1065,1064;, + 4;1071,1070,1069,1068;, + 4;1075,1074,1073,1072;, + 4;1079,1078,1077,1076;, + 4;1083,1082,1081,1080;, + 4;1087,1086,1085,1084;, + 4;1091,1090,1089,1088;, + 4;1095,1094,1093,1092;, + 4;1099,1098,1097,1096;, + 4;1103,1102,1101,1100;, + 4;1107,1106,1105,1104;, + 4;1111,1110,1109,1108;, + 4;1115,1114,1113,1112;, + 4;1119,1118,1117,1116;, + 4;1123,1122,1121,1120;, + 4;1127,1126,1125,1124;, + 4;1131,1130,1129,1128;, + 4;1135,1134,1133,1132;, + 4;1139,1138,1137,1136;, + 4;1143,1142,1141,1140;, + 4;1147,1146,1145,1144;, + 4;1151,1150,1149,1148;, + 4;1155,1154,1153,1152;, + 4;1159,1158,1157,1156;, + 4;1163,1162,1161,1160;, + 4;1167,1166,1165,1164;, + 4;1171,1170,1169,1168;, + 4;1175,1174,1173,1172;, + 4;1179,1178,1177,1176;, + 4;1183,1182,1181,1180;, + 4;1187,1186,1185,1184;, + 4;1191,1190,1189,1188;, + 4;1195,1194,1193,1192;, + 4;1199,1198,1197,1196;, + 4;1203,1202,1201,1200;, + 4;1207,1206,1205,1204;, + 4;1211,1210,1209,1208;, + 4;1215,1214,1213,1212;, + 4;1219,1218,1217,1216;, + 4;1223,1222,1221,1220;, + 4;1227,1226,1225,1224;, + 4;1231,1230,1229,1228;, + 4;1235,1234,1233,1232;, + 4;1239,1238,1237,1236;, + 4;1243,1242,1241,1240;, + 4;1247,1246,1245,1244;, + 4;1251,1250,1249,1248;, + 4;1255,1254,1253,1252;, + 4;1259,1258,1257,1256;, + 4;1263,1262,1261,1260;, + 4;1267,1266,1265,1264;, + 4;1271,1270,1269,1268;, + 4;1275,1274,1273,1272;, + 4;1279,1278,1277,1276;, + 4;1283,1282,1281,1280;, + 4;1287,1286,1285,1284;; + MeshNormals { // Heli normals + 322; + -0.000000; 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; 1.000000;-0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000; 0.000000;-1.000000;, + -0.000000; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000622;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000; 1.000000;, + -0.003846; 0.000000;-0.999993;, + 0.000000; 1.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;, + 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; 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; 0.000000; 1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + 0.000000;-1.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;, + -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; 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; 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;-1.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.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;, + 1.000000; 0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.000000;, + -1.000000;-0.000000; 0.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;, + 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;, + 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;, + 0.000000; 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; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 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;, + 0.000000; 0.000000;-1.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 0.000000; 1.000000;, + 0.000000;-0.000000;-1.000000;, + -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;-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;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000;-0.000000;, + 0.000000; 0.999686; 0.025070;, + 0.000000; 0.999686; 0.025070;, + -1.000000; 0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000;-0.999806; 0.019705;, + 0.000000;-0.999806; 0.019705;, + 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;, + 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;, + -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;, + -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.000000; 0.000000; 1.000000;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 1.000000;-0.000000;, + 0.000000;-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;-1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-1.000000; 0.000000;, + -1.000000; 0.000000;-0.000622;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + -0.003846; 0.000000;-0.999993;, + -0.000000;-1.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;, + 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;-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;-0.000000; 1.000000;, + 0.000000;-0.000000;-1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + -0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + -0.000000; 1.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;, + 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;-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;-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; 1.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000;-0.000000;, + 1.000000; 0.000000; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -1.000000; 0.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;, + 1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.000000;, + -1.000000; 0.000000;-0.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;, + 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;, + 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;, + 0.000000;-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; 0.000000; 1.000000;, + 0.000000; 0.000000; 1.000000;, + 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;, + 0.000000;-0.000000;-1.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000;-0.000000; 1.000000;, + 0.000000; 0.000000;-1.000000;, + 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; 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;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000;-0.999686; 0.025070;, + 0.000000;-0.999686; 0.025070;, + -1.000000; 0.000000; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.000000; 0.999806; 0.019705;, + 0.000000; 0.999806; 0.019705;, + -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;, + 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;, + -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;, + 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.000000;-0.000000; 1.000000;, + 0.000000;-0.000000;-1.000000;, + -0.000000;-1.000000; 0.000000;; + 322; + 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;, + 4;160,160,160,160;, + 4;161,161,161,161;, + 4;162,162,162,162;, + 4;163,163,163,163;, + 4;164,164,164,164;, + 4;165,165,165,165;, + 4;166,166,166,166;, + 4;167,167,167,167;, + 4;168,168,168,168;, + 4;169,169,169,169;, + 4;170,170,170,170;, + 4;171,171,171,171;, + 4;172,172,172,172;, + 4;173,173,173,173;, + 4;174,174,174,174;, + 4;175,175,175,175;, + 4;176,176,176,176;, + 4;177,177,177,177;, + 4;178,178,178,178;, + 4;179,179,179,179;, + 4;180,180,180,180;, + 4;181,181,181,181;, + 4;182,182,182,182;, + 4;183,183,183,183;, + 4;184,184,184,184;, + 4;185,185,185,185;, + 4;186,186,186,186;, + 4;187,187,187,187;, + 4;188,188,188,188;, + 4;189,189,189,189;, + 4;190,190,190,190;, + 4;191,191,191,191;, + 4;192,192,192,192;, + 4;193,193,193,193;, + 4;194,194,194,194;, + 4;195,195,195,195;, + 4;196,196,196,196;, + 4;197,197,197,197;, + 4;198,198,198,198;, + 4;199,199,199,199;, + 4;200,200,200,200;, + 4;201,201,201,201;, + 4;202,202,202,202;, + 4;203,203,203,203;, + 4;204,204,204,204;, + 4;205,205,205,205;, + 4;206,206,206,206;, + 4;207,207,207,207;, + 4;208,208,208,208;, + 4;209,209,209,209;, + 4;210,210,210,210;, + 4;211,211,211,211;, + 4;212,212,212,212;, + 4;213,213,213,213;, + 4;214,214,214,214;, + 4;215,215,215,215;, + 4;216,216,216,216;, + 4;217,217,217,217;, + 4;218,218,218,218;, + 4;219,219,219,219;, + 4;220,220,220,220;, + 4;221,221,221,221;, + 4;222,222,222,222;, + 4;223,223,223,223;, + 4;224,224,224,224;, + 4;225,225,225,225;, + 4;226,226,226,226;, + 4;227,227,227,227;, + 4;228,228,228,228;, + 4;229,229,229,229;, + 4;230,230,230,230;, + 4;231,231,231,231;, + 4;232,232,232,232;, + 4;233,233,233,233;, + 4;234,234,234,234;, + 4;235,235,235,235;, + 4;236,236,236,236;, + 4;237,237,237,237;, + 4;238,238,238,238;, + 4;239,239,239,239;, + 4;240,240,240,240;, + 4;241,241,241,241;, + 4;242,242,242,242;, + 4;243,243,243,243;, + 4;244,244,244,244;, + 4;245,245,245,245;, + 4;246,246,246,246;, + 4;247,247,247,247;, + 4;248,248,248,248;, + 4;249,249,249,249;, + 4;250,250,250,250;, + 4;251,251,251,251;, + 4;252,252,252,252;, + 4;253,253,253,253;, + 4;254,254,254,254;, + 4;255,255,255,255;, + 4;256,256,256,256;, + 4;257,257,257,257;, + 4;258,258,258,258;, + 4;259,259,259,259;, + 4;260,260,260,260;, + 4;261,261,261,261;, + 4;262,262,262,262;, + 4;263,263,263,263;, + 4;264,264,264,264;, + 4;265,265,265,265;, + 4;266,266,266,266;, + 4;267,267,267,267;, + 4;268,268,268,268;, + 4;269,269,269,269;, + 4;270,270,270,270;, + 4;271,271,271,271;, + 4;272,272,272,272;, + 4;273,273,273,273;, + 4;274,274,274,274;, + 4;275,275,275,275;, + 4;276,276,276,276;, + 4;277,277,277,277;, + 4;278,278,278,278;, + 4;279,279,279,279;, + 4;280,280,280,280;, + 4;281,281,281,281;, + 4;282,282,282,282;, + 4;283,283,283,283;, + 4;284,284,284,284;, + 4;285,285,285,285;, + 4;286,286,286,286;, + 4;287,287,287,287;, + 4;288,288,288,288;, + 4;289,289,289,289;, + 4;290,290,290,290;, + 4;291,291,291,291;, + 4;292,292,292,292;, + 4;293,293,293,293;, + 4;294,294,294,294;, + 4;295,295,295,295;, + 4;296,296,296,296;, + 4;297,297,297,297;, + 4;298,298,298,298;, + 4;299,299,299,299;, + 4;300,300,300,300;, + 4;301,301,301,301;, + 4;302,302,302,302;, + 4;303,303,303,303;, + 4;304,304,304,304;, + 4;305,305,305,305;, + 4;306,306,306,306;, + 4;307,307,307,307;, + 4;308,308,308,308;, + 4;309,309,309,309;, + 4;310,310,310,310;, + 4;311,311,311,311;, + 4;312,312,312,312;, + 4;313,313,313,313;, + 4;314,314,314,314;, + 4;315,315,315,315;, + 4;316,316,316,316;, + 4;317,317,317,317;, + 4;318,318,318,318;, + 4;319,319,319,319;, + 4;320,320,320,320;, + 4;321,321,321,321;; + } // End of Heli normals + MeshTextureCoords { // Heli UV coordinates + 1288; + 1.437500;-0.500000;, + 1.437500;-0.562500;, + 1.000000;-0.562500;, + 1.000000;-0.500000;, + 1.562500;-0.812500;, + 1.687500;-0.812500;, + 1.687500;-0.937500;, + 1.562500;-0.937500;, + 1.187500; 1.562500;, + 1.312500; 1.562500;, + 1.312500; 1.437500;, + 1.187500; 1.437500;, + -0.250000;-0.437500;, + -0.375000;-0.437500;, + -0.375000;-0.250000;, + -0.250000;-0.250000;, + -0.250000;-0.500000;, + -0.250000;-0.437500;, + 0.250000;-0.437500;, + 0.250000;-0.500000;, + -0.375000;-0.187500;, + -0.250000;-0.187500;, + -0.250000;-0.250000;, + -0.375000;-0.250000;, + -0.250000;-0.500000;, + -0.375000;-0.500000;, + -0.375000;-0.437500;, + -0.250000;-0.437500;, + -0.375000;-0.250000;, + -0.375000;-0.437500;, + -1.000000;-0.437500;, + -1.000000;-0.250000;, + -0.375000;-0.187500;, + -0.375000;-0.250000;, + -1.000000;-0.250000;, + -1.000000;-0.187500;, + 1.437500; 1.562500;, + 1.625000; 1.562500;, + 1.625000; 1.437500;, + 1.437500; 1.437500;, + -0.375000;-0.437500;, + -0.375000;-0.500000;, + -1.000000;-0.500000;, + -1.000000;-0.437500;, + -0.375000; 0.000000;, + -0.375000;-0.187500;, + -1.000000;-0.187500;, + -1.000000; 0.000000;, + 1.562500;-0.750000;, + 1.437500;-0.750000;, + 1.437500;-0.562500;, + 1.562500;-0.562500;, + 1.437500;-0.500000;, + 1.562500;-0.500000;, + 1.562500;-0.562500;, + 1.437500;-0.562500;, + 1.562500;-0.812500;, + 1.437500;-0.812500;, + 1.437500;-0.750000;, + 1.562500;-0.750000;, + 0.250000;-0.187500;, + 0.250000; 0.000000;, + 0.312500; 0.000000;, + 0.312500;-0.187500;, + -0.250000;-0.250000;, + -0.250000;-0.187500;, + 0.250000;-0.187500;, + 0.250000;-0.250000;, + -0.250000;-0.437500;, + -0.250000;-0.250000;, + 0.250000;-0.250000;, + 0.250000;-0.437500;, + -0.250000;-0.187500;, + -0.250000; 0.000000;, + 0.250000; 0.000000;, + 0.250000;-0.187500;, + 1.000000;-0.375000;, + 1.000000;-0.500000;, + 0.937500;-0.500000;, + 0.937500;-0.375000;, + 1.437500;-0.750000;, + 1.437500;-0.812500;, + 1.000000;-0.812500;, + 1.000000;-0.750000;, + 1.437500;-0.562500;, + 1.437500;-0.750000;, + 1.000000;-0.750000;, + 1.000000;-0.562500;, + 1.437500;-0.375000;, + 1.437500;-0.500000;, + 1.000000;-0.500000;, + 1.000000;-0.375000;, + 0.875000; 1.625000;, + 1.125000; 1.625000;, + 1.125000; 1.500000;, + 0.875000; 1.500000;, + 1.687500; 1.562500;, + 1.687500; 1.812500;, + 1.812500; 1.812500;, + 1.812500; 1.562500;, + 0.187500;-0.750000;, + 0.312500;-0.750000;, + 0.312500;-0.875000;, + 0.187500;-0.875000;, + 0.187500;-0.750000;, + 0.187500;-0.500000;, + 0.312500;-0.500000;, + 0.312500;-0.750000;, + 1.687500; 1.812500;, + 1.687500; 1.562500;, + 1.562500; 1.562500;, + 1.562500; 1.812500;, + 0.437500; 0.187500;, + 0.312500; 0.187500;, + 0.312500; 0.312500;, + 0.437500; 0.312500;, + 1.687500; 1.812500;, + 1.562500; 1.812500;, + 1.562500; 1.937500;, + 1.687500; 1.937500;, + 1.812500; 1.812500;, + 1.687500; 1.812500;, + 1.687500; 1.937500;, + 1.812500; 1.937500;, + 1.562500; 1.937500;, + 1.562500; 1.812500;, + 1.250000; 1.812500;, + 1.250000; 1.937500;, + 1.250000; 1.937500;, + 1.250000; 1.812500;, + 1.125000; 1.812500;, + 1.125000; 1.937500;, + 0.187500;-0.750000;, + 0.187500;-0.875000;, + -0.062500;-0.875000;, + -0.062500;-0.750000;, + 0.312500; 0.312500;, + 0.312500; 0.187500;, + 0.000000; 0.187500;, + 0.000000; 0.312500;, + 0.875000; 1.625000;, + 0.875000; 1.500000;, + 0.562500; 1.500000;, + 0.562500; 1.625000;, + -0.125000; 0.437500;, + -0.125000; 0.312500;, + -0.250000; 0.312500;, + -0.250000; 0.437500;, + 0.000000; 0.312500;, + -0.125000; 0.312500;, + -0.125000; 0.437500;, + 0.000000; 0.437500;, + 0.000000; 0.312500;, + 0.000000; 0.187500;, + -0.125000; 0.187500;, + -0.125000; 0.312500;, + 0.562500; 1.625000;, + 0.562500; 1.500000;, + 0.437500; 1.500000;, + 0.437500; 1.625000;, + 0.000000; 0.437500;, + -0.125000; 0.437500;, + -0.125000; 0.562500;, + 0.000000; 0.562500;, + 0.437500; 1.500000;, + 0.562500; 1.500000;, + 0.562500; 1.375000;, + 0.437500; 1.375000;, + 0.437500; 1.500000;, + 0.437500; 1.375000;, + 0.312500; 1.375000;, + 0.312500; 1.500000;, + -0.062500;-0.750000;, + -0.062500;-0.875000;, + -0.187500;-0.875000;, + -0.187500;-0.750000;, + 0.437500; 1.375000;, + 0.562500; 1.375000;, + 0.562500; 1.250000;, + 0.437500; 1.250000;, + 0.062500; 1.375000;, + 0.062500; 1.250000;, + -0.187500; 1.250000;, + -0.187500; 1.375000;, + -0.187500;-0.750000;, + -0.187500;-0.875000;, + -0.312500;-0.875000;, + -0.312500;-0.750000;, + -0.187500; 1.375000;, + -0.187500; 1.250000;, + -0.375000; 1.250000;, + -0.375000; 1.375000;, + -0.500000; 0.562500;, + -0.500000; 0.437500;, + -0.750000; 0.437500;, + -0.750000; 0.562500;, + -0.312500;-0.750000;, + -0.437500;-0.750000;, + -0.437500;-0.625000;, + -0.312500;-0.625000;, + 1.187500;-0.812500;, + 1.187500;-0.937500;, + 0.937500;-0.937500;, + 0.937500;-0.812500;, + 0.562500; 0.625000;, + 0.437500; 0.625000;, + 0.437500; 0.687500;, + 0.562500; 0.687500;, + -0.750000; 0.562500;, + -0.750000; 0.437500;, + -0.937500; 0.437500;, + -0.937500; 0.562500;, + 1.500000; 1.312500;, + 1.500000; 1.437500;, + 1.500000; 1.437500;, + 1.500000; 1.312500;, + -0.937500; 0.437500;, + -0.750000; 0.437500;, + -0.750000; 0.000000;, + -0.937500; 0.000000;, + 1.500000; 0.750000;, + 1.500000; 0.875000;, + 1.687500; 0.875000;, + 1.687500; 0.750000;, + -0.187500; 1.375000;, + -0.375000; 1.375000;, + -0.375000; 1.812500;, + -0.187500; 1.812500;, + 1.125000; 0.812500;, + 1.125000; 1.000000;, + 1.312500; 1.000000;, + 1.312500; 0.812500;, + 1.562500;-0.375000;, + 1.687500;-0.375000;, + 1.687500;-0.812500;, + 1.562500;-0.812500;, + 0.562500;-0.312500;, + 0.437500;-0.312500;, + 0.437500;-0.125000;, + 0.562500;-0.125000;, + 0.562500; 0.187500;, + 0.437500; 0.187500;, + 0.437500; 0.500000;, + 0.562500; 0.500000;, + 0.562500; 0.500000;, + 0.437500; 0.500000;, + 0.437500; 0.625000;, + 0.562500; 0.625000;, + -0.500000; 0.562500;, + -0.750000; 0.562500;, + -0.750000; 0.687500;, + -0.500000; 0.687500;, + 1.125000; 1.000000;, + 1.125000; 1.437500;, + 1.312500; 1.437500;, + 1.312500; 1.000000;, + 2.000000; 1.437500;, + 2.000000; 1.312500;, + 1.937500; 1.312500;, + 1.937500; 1.437500;, + 1.125000; 0.687500;, + 1.125000; 0.812500;, + 1.312500; 0.812500;, + 1.312500; 0.687500;, + -0.312500;-0.750000;, + -0.312500;-0.875000;, + -0.437500;-0.875000;, + -0.437500;-0.750000;, + 1.000000; 0.812500;, + 1.125000; 0.812500;, + 1.125000; 0.687500;, + 1.000000; 0.687500;, + 1.000000; 1.000000;, + 1.125000; 1.000000;, + 1.125000; 0.812500;, + 1.000000; 0.812500;, + 1.125000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 1.437500;, + 1.125000; 1.437500;, + -0.937500; 0.437500;, + -0.937500; 0.000000;, + -1.000000; 0.000000;, + -1.000000; 0.437500;, + 1.687500; 0.750000;, + 1.687500; 0.875000;, + 1.750000; 0.875000;, + 1.750000; 0.750000;, + 1.750000; 0.875000;, + 1.687500; 0.875000;, + 1.687500; 1.000000;, + 1.750000; 1.000000;, + -0.937500; 0.562500;, + -0.937500; 0.437500;, + -1.000000; 0.437500;, + -1.000000; 0.562500;, + -0.937500; 0.687500;, + -0.937500; 0.562500;, + -1.000000; 0.562500;, + -1.000000; 0.687500;, + 1.750000; 0.000000;, + 1.625000; 0.000000;, + 1.625000; 0.187500;, + 1.750000; 0.187500;, + 1.312500; 0.812500;, + 1.312500; 1.000000;, + 1.500000; 1.000000;, + 1.500000; 0.812500;, + 1.312500; 1.000000;, + 1.312500; 1.437500;, + 1.500000; 1.437500;, + 1.500000; 1.000000;, + 1.312500; 0.687500;, + 1.312500; 0.812500;, + 1.500000; 0.812500;, + 1.500000; 0.687500;, + 1.750000; 0.000000;, + 1.750000;-0.187500;, + 1.625000;-0.187500;, + 1.625000; 0.000000;, + 0.562500; 0.187500;, + 0.562500; 0.500000;, + 0.687500; 0.500000;, + 0.687500; 0.187500;, + -0.937500; 1.250000;, + -0.500000; 1.250000;, + -0.500000; 1.062500;, + -0.937500; 1.062500;, + -0.375000; 1.250000;, + -0.187500; 1.250000;, + -0.187500; 1.062500;, + -0.375000; 1.062500;, + -0.500000; 1.250000;, + -0.375000; 1.250000;, + -0.375000; 1.062500;, + -0.500000; 1.062500;, + 0.562500; 0.625000;, + 0.562500; 0.687500;, + 0.687500; 0.687500;, + 0.687500; 0.625000;, + 0.312500; 1.250000;, + 0.437500; 1.250000;, + 0.437500; 1.062500;, + 0.312500; 1.062500;, + 0.437500; 1.250000;, + 0.562500; 1.250000;, + 0.562500; 1.062500;, + 0.437500; 1.062500;, + 0.687500; 0.500000;, + 0.687500; 0.625000;, + 0.937500; 0.625000;, + 0.937500; 0.500000;, + 0.687500; 0.187500;, + 0.687500; 0.500000;, + 0.937500; 0.500000;, + 0.937500; 0.187500;, + -0.937500; 1.062500;, + -0.500000; 1.062500;, + -0.500000; 0.875000;, + -0.937500; 0.875000;, + -0.375000; 1.062500;, + -0.187500; 1.062500;, + -0.187500; 0.875000;, + -0.375000; 0.875000;, + -0.500000; 1.062500;, + -0.375000; 1.062500;, + -0.375000; 0.875000;, + -0.500000; 0.875000;, + 0.687500; 0.625000;, + 0.687500; 0.687500;, + 0.937500; 0.687500;, + 0.937500; 0.625000;, + 0.312500; 1.062500;, + 0.437500; 1.062500;, + 0.437500; 0.875000;, + 0.312500; 0.875000;, + 0.562500;-0.125000;, + 0.437500;-0.125000;, + 0.437500;-0.062500;, + 0.562500;-0.062500;, + 0.562500;-0.062500;, + 0.437500;-0.062500;, + 0.437500; 0.187500;, + 0.562500; 0.187500;, + -0.125000; 0.562500;, + -0.250000; 0.562500;, + -0.250000; 0.687500;, + -0.125000; 0.687500;, + -0.250000; 0.562500;, + -0.500000; 0.562500;, + -0.500000; 0.687500;, + -0.250000; 0.687500;, + 0.562500;-0.125000;, + 0.562500;-0.062500;, + 0.687500;-0.062500;, + 0.687500;-0.125000;, + 0.562500;-0.062500;, + 0.562500; 0.187500;, + 0.687500; 0.187500;, + 0.687500;-0.062500;, + -0.187500; 1.250000;, + 0.062500; 1.250000;, + 0.062500; 1.062500;, + -0.187500; 1.062500;, + 0.062500; 1.250000;, + 0.312500; 1.250000;, + 0.312500; 1.062500;, + 0.062500; 1.062500;, + 0.687500;-0.125000;, + 0.687500;-0.062500;, + 0.937500;-0.062500;, + 0.937500;-0.125000;, + 0.687500;-0.062500;, + 0.687500; 0.187500;, + 0.937500; 0.187500;, + 0.937500;-0.062500;, + -0.187500; 1.062500;, + 0.062500; 1.062500;, + 0.062500; 0.875000;, + -0.187500; 0.875000;, + 0.062500; 1.062500;, + 0.312500; 1.062500;, + 0.312500; 0.875000;, + 0.062500; 0.875000;, + 1.500000; 1.062500;, + 1.625000; 1.062500;, + 1.625000; 1.000000;, + 1.500000; 1.000000;, + 1.625000; 1.000000;, + 1.625000; 1.062500;, + 1.750000; 1.062500;, + 1.750000; 1.000000;, + 1.750000; 1.437500;, + 1.625000; 1.437500;, + 1.625000; 1.562500;, + 1.750000; 1.562500;, + 1.125000; 1.937500;, + 1.125000; 1.812500;, + 1.000000; 1.812500;, + 1.000000; 1.937500;, + -0.125000; 0.312500;, + -0.125000; 0.187500;, + -0.250000; 0.187500;, + -0.250000; 0.312500;, + 0.437500; 1.625000;, + 0.437500; 1.500000;, + 0.312500; 1.500000;, + 0.312500; 1.625000;, + 0.437500; 1.375000;, + 0.437500; 1.250000;, + 0.312500; 1.250000;, + 0.312500; 1.375000;, + 0.312500; 1.375000;, + 0.312500; 1.250000;, + 0.062500; 1.250000;, + 0.062500; 1.375000;, + -0.125000; 0.562500;, + -0.125000; 0.437500;, + -0.250000; 0.437500;, + -0.250000; 0.562500;, + -0.250000; 0.562500;, + -0.250000; 0.437500;, + -0.500000; 0.437500;, + -0.500000; 0.562500;, + 1.437500;-0.812500;, + 1.437500;-0.937500;, + 1.187500;-0.937500;, + 1.187500;-0.812500;, + 0.562500;-0.312500;, + 0.562500;-0.125000;, + 0.687500;-0.125000;, + 0.687500;-0.312500;, + 0.562500; 0.625000;, + 0.687500; 0.625000;, + 0.687500; 0.500000;, + 0.562500; 0.500000;, + -0.437500;-0.812500;, + -0.437500;-0.937500;, + -0.500000;-0.937500;, + -0.500000;-0.812500;, + 1.500000; 1.125000;, + 1.625000; 1.125000;, + 1.625000; 1.125000;, + 1.500000; 1.125000;, + -0.750000;-0.500000;, + -0.625000;-0.500000;, + -0.625000;-0.562500;, + -0.750000;-0.562500;, + -0.937500;-0.812500;, + -0.937500;-0.687500;, + -0.937500;-0.687500;, + -0.937500;-0.812500;, + 1.812500; 1.125000;, + 1.687500; 1.125000;, + 1.687500; 1.187500;, + 1.812500; 1.187500;, + -0.437500;-0.687500;, + -0.437500;-0.812500;, + -0.500000;-0.812500;, + -0.500000;-0.687500;, + -0.750000;-0.562500;, + -0.625000;-0.562500;, + -0.625000;-0.687500;, + -0.750000;-0.687500;, + 1.812500; 1.187500;, + 1.687500; 1.187500;, + 1.687500; 1.312500;, + 1.812500; 1.312500;, + 1.687500;-0.812500;, + 1.875000;-0.812500;, + 1.875000;-0.937500;, + 1.687500;-0.937500;, + 1.312500; 1.562500;, + 1.437500; 1.562500;, + 1.437500; 1.437500;, + 1.312500; 1.437500;, + 1.437500;-0.812500;, + 1.562500;-0.812500;, + 1.562500;-0.937500;, + 1.437500;-0.937500;, + 1.000000; 1.562500;, + 1.187500; 1.562500;, + 1.187500; 1.437500;, + 1.000000; 1.437500;, + 1.687500; 0.312500;, + 1.687500; 0.437500;, + 1.812500; 0.437500;, + 1.812500; 0.312500;, + 1.687500; 0.187500;, + 1.687500; 0.312500;, + 1.812500; 0.312500;, + 1.812500; 0.187500;, + 1.500000; 1.312500;, + 1.500000; 1.437500;, + 1.687500; 1.437500;, + 1.687500; 1.312500;, + 1.937500; 1.437500;, + 1.937500; 1.312500;, + 1.812500; 1.312500;, + 1.812500; 1.437500;, + -0.750000;-0.687500;, + -0.625000;-0.687500;, + -0.625000;-0.812500;, + -0.750000;-0.812500;, + 1.812500; 1.312500;, + 1.687500; 1.312500;, + 1.687500; 1.437500;, + 1.812500; 1.437500;, + 1.812500;-0.562500;, + 1.812500;-0.687500;, + 1.687500;-0.687500;, + 1.687500;-0.562500;, + 1.812500;-0.187500;, + 1.812500;-0.312500;, + 1.625000;-0.312500;, + 1.625000;-0.187500;, + -0.937500;-0.812500;, + -0.937500;-0.687500;, + -0.750000;-0.687500;, + -0.750000;-0.812500;, + -0.500000;-0.687500;, + -0.500000;-0.812500;, + -0.625000;-0.812500;, + -0.625000;-0.687500;, + 0.375000;-0.312500;, + 0.625000;-0.312500;, + 0.625000;-0.500000;, + 0.375000;-0.500000;, + 0.625000;-0.312500;, + 0.687500;-0.312500;, + 0.687500;-0.500000;, + 0.625000;-0.500000;, + 0.687500;-0.312500;, + 0.937500;-0.312500;, + 0.937500;-0.500000;, + 0.687500;-0.500000;, + 1.625000; 0.000000;, + 1.625000;-0.125000;, + 0.937500;-0.125000;, + 0.937500; 0.000000;, + 0.625000;-0.500000;, + 0.687500;-0.500000;, + 0.687500;-0.625000;, + 0.625000;-0.625000;, + 0.687500;-0.500000;, + 0.937500;-0.500000;, + 0.937500;-0.625000;, + 0.687500;-0.625000;, + 0.375000;-0.625000;, + 0.625000;-0.625000;, + 0.625000;-0.750000;, + 0.375000;-0.750000;, + 0.625000;-0.625000;, + 0.687500;-0.625000;, + 0.687500;-0.750000;, + 0.625000;-0.750000;, + 0.687500;-0.625000;, + 0.937500;-0.625000;, + 0.937500;-0.750000;, + 0.687500;-0.750000;, + 0.625000;-0.875000;, + 0.625000;-1.000000;, + 0.375000;-1.000000;, + 0.375000;-0.875000;, + 0.375000;-0.750000;, + 0.625000;-0.750000;, + 0.625000;-0.875000;, + 0.375000;-0.875000;, + 0.625000;-0.750000;, + 0.687500;-0.750000;, + 0.687500;-0.875000;, + 0.625000;-0.875000;, + 0.937500; 0.375000;, + 0.937500; 0.500000;, + 1.625000; 0.500000;, + 1.625000; 0.375000;, + 1.625000; 0.500000;, + 1.625000; 0.687500;, + 1.687500; 0.687500;, + 1.687500; 0.500000;, + 0.937500; 0.187500;, + 0.937500; 0.375000;, + 1.625000; 0.375000;, + 1.625000; 0.187500;, + 0.937500; 0.500000;, + 0.937500; 0.687500;, + 1.625000; 0.687500;, + 1.625000; 0.500000;, + 1.812500;-0.375000;, + 1.812500;-0.562500;, + 1.687500;-0.562500;, + 1.687500;-0.375000;, + 1.625000;-0.125000;, + 1.625000;-0.312500;, + 0.937500;-0.312500;, + 0.937500;-0.125000;, + 1.625000; 0.187500;, + 1.625000; 0.000000;, + 0.937500; 0.000000;, + 0.937500; 0.187500;, + 1.812500;-0.812500;, + 1.687500;-0.812500;, + 1.687500;-0.687500;, + 1.812500;-0.687500;, + 1.437500;-0.500000;, + 1.000000;-0.500000;, + 1.000000;-0.562500;, + 1.437500;-0.562500;, + 1.562500;-0.812500;, + 1.562500;-0.937500;, + 1.687500;-0.937500;, + 1.687500;-0.812500;, + 1.187500; 1.562500;, + 1.187500; 1.437500;, + 1.312500; 1.437500;, + 1.312500; 1.562500;, + -0.250000;-0.437500;, + -0.250000;-0.250000;, + -0.375000;-0.250000;, + -0.375000;-0.437500;, + -0.250000;-0.500000;, + 0.250000;-0.500000;, + 0.250000;-0.437500;, + -0.250000;-0.437500;, + -0.375000;-0.187500;, + -0.375000;-0.250000;, + -0.250000;-0.250000;, + -0.250000;-0.187500;, + -0.250000;-0.500000;, + -0.250000;-0.437500;, + -0.375000;-0.437500;, + -0.375000;-0.500000;, + -0.375000;-0.250000;, + -1.000000;-0.250000;, + -1.000000;-0.437500;, + -0.375000;-0.437500;, + -0.375000;-0.187500;, + -1.000000;-0.187500;, + -1.000000;-0.250000;, + -0.375000;-0.250000;, + 1.437500; 1.562500;, + 1.437500; 1.437500;, + 1.625000; 1.437500;, + 1.625000; 1.562500;, + -0.375000;-0.437500;, + -1.000000;-0.437500;, + -1.000000;-0.500000;, + -0.375000;-0.500000;, + -0.375000; 0.000000;, + -1.000000; 0.000000;, + -1.000000;-0.187500;, + -0.375000;-0.187500;, + 1.562500;-0.750000;, + 1.562500;-0.562500;, + 1.437500;-0.562500;, + 1.437500;-0.750000;, + 1.437500;-0.500000;, + 1.437500;-0.562500;, + 1.562500;-0.562500;, + 1.562500;-0.500000;, + 1.562500;-0.812500;, + 1.562500;-0.750000;, + 1.437500;-0.750000;, + 1.437500;-0.812500;, + 0.250000;-0.187500;, + 0.312500;-0.187500;, + 0.312500; 0.000000;, + 0.250000; 0.000000;, + -0.250000;-0.250000;, + 0.250000;-0.250000;, + 0.250000;-0.187500;, + -0.250000;-0.187500;, + -0.250000;-0.437500;, + 0.250000;-0.437500;, + 0.250000;-0.250000;, + -0.250000;-0.250000;, + -0.250000;-0.187500;, + 0.250000;-0.187500;, + 0.250000; 0.000000;, + -0.250000; 0.000000;, + 1.000000;-0.375000;, + 0.937500;-0.375000;, + 0.937500;-0.500000;, + 1.000000;-0.500000;, + 1.437500;-0.750000;, + 1.000000;-0.750000;, + 1.000000;-0.812500;, + 1.437500;-0.812500;, + 1.437500;-0.562500;, + 1.000000;-0.562500;, + 1.000000;-0.750000;, + 1.437500;-0.750000;, + 1.437500;-0.375000;, + 1.000000;-0.375000;, + 1.000000;-0.500000;, + 1.437500;-0.500000;, + 0.875000; 1.625000;, + 0.875000; 1.500000;, + 1.125000; 1.500000;, + 1.125000; 1.625000;, + 1.687500; 1.562500;, + 1.812500; 1.562500;, + 1.812500; 1.812500;, + 1.687500; 1.812500;, + 0.187500;-0.750000;, + 0.187500;-0.875000;, + 0.312500;-0.875000;, + 0.312500;-0.750000;, + 0.187500;-0.750000;, + 0.312500;-0.750000;, + 0.312500;-0.500000;, + 0.187500;-0.500000;, + 1.687500; 1.812500;, + 1.562500; 1.812500;, + 1.562500; 1.562500;, + 1.687500; 1.562500;, + 0.437500; 0.187500;, + 0.437500; 0.312500;, + 0.312500; 0.312500;, + 0.312500; 0.187500;, + 1.687500; 1.812500;, + 1.687500; 1.937500;, + 1.562500; 1.937500;, + 1.562500; 1.812500;, + 1.812500; 1.812500;, + 1.812500; 1.937500;, + 1.687500; 1.937500;, + 1.687500; 1.812500;, + 1.562500; 1.937500;, + 1.250000; 1.937500;, + 1.250000; 1.812500;, + 1.562500; 1.812500;, + 1.250000; 1.937500;, + 1.125000; 1.937500;, + 1.125000; 1.812500;, + 1.250000; 1.812500;, + 0.187500;-0.750000;, + -0.062500;-0.750000;, + -0.062500;-0.875000;, + 0.187500;-0.875000;, + 0.312500; 0.312500;, + 0.000000; 0.312500;, + 0.000000; 0.187500;, + 0.312500; 0.187500;, + 0.875000; 1.625000;, + 0.562500; 1.625000;, + 0.562500; 1.500000;, + 0.875000; 1.500000;, + -0.125000; 0.437500;, + -0.250000; 0.437500;, + -0.250000; 0.312500;, + -0.125000; 0.312500;, + 0.000000; 0.312500;, + 0.000000; 0.437500;, + -0.125000; 0.437500;, + -0.125000; 0.312500;, + 0.000000; 0.312500;, + -0.125000; 0.312500;, + -0.125000; 0.187500;, + 0.000000; 0.187500;, + 0.562500; 1.625000;, + 0.437500; 1.625000;, + 0.437500; 1.500000;, + 0.562500; 1.500000;, + 0.000000; 0.437500;, + 0.000000; 0.562500;, + -0.125000; 0.562500;, + -0.125000; 0.437500;, + 0.437500; 1.500000;, + 0.437500; 1.375000;, + 0.562500; 1.375000;, + 0.562500; 1.500000;, + 0.437500; 1.500000;, + 0.312500; 1.500000;, + 0.312500; 1.375000;, + 0.437500; 1.375000;, + -0.062500;-0.750000;, + -0.187500;-0.750000;, + -0.187500;-0.875000;, + -0.062500;-0.875000;, + 0.437500; 1.375000;, + 0.437500; 1.250000;, + 0.562500; 1.250000;, + 0.562500; 1.375000;, + 0.062500; 1.375000;, + -0.187500; 1.375000;, + -0.187500; 1.250000;, + 0.062500; 1.250000;, + -0.187500;-0.750000;, + -0.312500;-0.750000;, + -0.312500;-0.875000;, + -0.187500;-0.875000;, + -0.187500; 1.375000;, + -0.375000; 1.375000;, + -0.375000; 1.250000;, + -0.187500; 1.250000;, + -0.500000; 0.562500;, + -0.750000; 0.562500;, + -0.750000; 0.437500;, + -0.500000; 0.437500;, + -0.312500;-0.750000;, + -0.312500;-0.625000;, + -0.437500;-0.625000;, + -0.437500;-0.750000;, + 1.187500;-0.812500;, + 0.937500;-0.812500;, + 0.937500;-0.937500;, + 1.187500;-0.937500;, + 0.562500; 0.625000;, + 0.562500; 0.687500;, + 0.437500; 0.687500;, + 0.437500; 0.625000;, + -0.750000; 0.562500;, + -0.937500; 0.562500;, + -0.937500; 0.437500;, + -0.750000; 0.437500;, + 1.500000; 1.312500;, + 1.500000; 1.312500;, + 1.500000; 1.437500;, + 1.500000; 1.437500;, + -0.937500; 0.437500;, + -0.937500; 0.000000;, + -0.750000; 0.000000;, + -0.750000; 0.437500;, + 1.500000; 0.750000;, + 1.687500; 0.750000;, + 1.687500; 0.875000;, + 1.500000; 0.875000;, + -0.187500; 1.375000;, + -0.187500; 1.812500;, + -0.375000; 1.812500;, + -0.375000; 1.375000;, + 1.125000; 0.812500;, + 1.312500; 0.812500;, + 1.312500; 1.000000;, + 1.125000; 1.000000;, + 1.562500;-0.375000;, + 1.562500;-0.812500;, + 1.687500;-0.812500;, + 1.687500;-0.375000;, + 0.562500;-0.312500;, + 0.562500;-0.125000;, + 0.437500;-0.125000;, + 0.437500;-0.312500;, + 0.562500; 0.187500;, + 0.562500; 0.500000;, + 0.437500; 0.500000;, + 0.437500; 0.187500;, + 0.562500; 0.500000;, + 0.562500; 0.625000;, + 0.437500; 0.625000;, + 0.437500; 0.500000;, + -0.500000; 0.562500;, + -0.500000; 0.687500;, + -0.750000; 0.687500;, + -0.750000; 0.562500;, + 1.125000; 1.000000;, + 1.312500; 1.000000;, + 1.312500; 1.437500;, + 1.125000; 1.437500;, + 2.000000; 1.437500;, + 1.937500; 1.437500;, + 1.937500; 1.312500;, + 2.000000; 1.312500;, + 1.125000; 0.687500;, + 1.312500; 0.687500;, + 1.312500; 0.812500;, + 1.125000; 0.812500;, + -0.312500;-0.750000;, + -0.437500;-0.750000;, + -0.437500;-0.875000;, + -0.312500;-0.875000;, + 1.000000; 0.812500;, + 1.000000; 0.687500;, + 1.125000; 0.687500;, + 1.125000; 0.812500;, + 1.000000; 1.000000;, + 1.000000; 0.812500;, + 1.125000; 0.812500;, + 1.125000; 1.000000;, + 1.125000; 1.000000;, + 1.125000; 1.437500;, + 1.000000; 1.437500;, + 1.000000; 1.000000;, + -0.937500; 0.437500;, + -1.000000; 0.437500;, + -1.000000; 0.000000;, + -0.937500; 0.000000;, + 1.687500; 0.750000;, + 1.750000; 0.750000;, + 1.750000; 0.875000;, + 1.687500; 0.875000;, + 1.750000; 0.875000;, + 1.750000; 1.000000;, + 1.687500; 1.000000;, + 1.687500; 0.875000;, + -0.937500; 0.562500;, + -1.000000; 0.562500;, + -1.000000; 0.437500;, + -0.937500; 0.437500;, + -0.937500; 0.687500;, + -1.000000; 0.687500;, + -1.000000; 0.562500;, + -0.937500; 0.562500;, + 1.750000; 0.000000;, + 1.750000; 0.187500;, + 1.625000; 0.187500;, + 1.625000; 0.000000;, + 1.312500; 0.812500;, + 1.500000; 0.812500;, + 1.500000; 1.000000;, + 1.312500; 1.000000;, + 1.312500; 1.000000;, + 1.500000; 1.000000;, + 1.500000; 1.437500;, + 1.312500; 1.437500;, + 1.312500; 0.687500;, + 1.500000; 0.687500;, + 1.500000; 0.812500;, + 1.312500; 0.812500;, + 1.750000; 0.000000;, + 1.625000; 0.000000;, + 1.625000;-0.187500;, + 1.750000;-0.187500;, + 0.562500; 0.187500;, + 0.687500; 0.187500;, + 0.687500; 0.500000;, + 0.562500; 0.500000;, + -0.937500; 1.250000;, + -0.937500; 1.062500;, + -0.500000; 1.062500;, + -0.500000; 1.250000;, + -0.375000; 1.250000;, + -0.375000; 1.062500;, + -0.187500; 1.062500;, + -0.187500; 1.250000;, + -0.500000; 1.250000;, + -0.500000; 1.062500;, + -0.375000; 1.062500;, + -0.375000; 1.250000;, + 0.562500; 0.625000;, + 0.687500; 0.625000;, + 0.687500; 0.687500;, + 0.562500; 0.687500;, + 0.312500; 1.250000;, + 0.312500; 1.062500;, + 0.437500; 1.062500;, + 0.437500; 1.250000;, + 0.437500; 1.250000;, + 0.437500; 1.062500;, + 0.562500; 1.062500;, + 0.562500; 1.250000;, + 0.687500; 0.500000;, + 0.937500; 0.500000;, + 0.937500; 0.625000;, + 0.687500; 0.625000;, + 0.687500; 0.187500;, + 0.937500; 0.187500;, + 0.937500; 0.500000;, + 0.687500; 0.500000;, + -0.937500; 1.062500;, + -0.937500; 0.875000;, + -0.500000; 0.875000;, + -0.500000; 1.062500;, + -0.375000; 1.062500;, + -0.375000; 0.875000;, + -0.187500; 0.875000;, + -0.187500; 1.062500;, + -0.500000; 1.062500;, + -0.500000; 0.875000;, + -0.375000; 0.875000;, + -0.375000; 1.062500;, + 0.687500; 0.625000;, + 0.937500; 0.625000;, + 0.937500; 0.687500;, + 0.687500; 0.687500;, + 0.312500; 1.062500;, + 0.312500; 0.875000;, + 0.437500; 0.875000;, + 0.437500; 1.062500;, + 0.562500;-0.125000;, + 0.562500;-0.062500;, + 0.437500;-0.062500;, + 0.437500;-0.125000;, + 0.562500;-0.062500;, + 0.562500; 0.187500;, + 0.437500; 0.187500;, + 0.437500;-0.062500;, + -0.125000; 0.562500;, + -0.125000; 0.687500;, + -0.250000; 0.687500;, + -0.250000; 0.562500;, + -0.250000; 0.562500;, + -0.250000; 0.687500;, + -0.500000; 0.687500;, + -0.500000; 0.562500;, + 0.562500;-0.125000;, + 0.687500;-0.125000;, + 0.687500;-0.062500;, + 0.562500;-0.062500;, + 0.562500;-0.062500;, + 0.687500;-0.062500;, + 0.687500; 0.187500;, + 0.562500; 0.187500;, + -0.187500; 1.250000;, + -0.187500; 1.062500;, + 0.062500; 1.062500;, + 0.062500; 1.250000;, + 0.062500; 1.250000;, + 0.062500; 1.062500;, + 0.312500; 1.062500;, + 0.312500; 1.250000;, + 0.687500;-0.125000;, + 0.937500;-0.125000;, + 0.937500;-0.062500;, + 0.687500;-0.062500;, + 0.687500;-0.062500;, + 0.937500;-0.062500;, + 0.937500; 0.187500;, + 0.687500; 0.187500;, + -0.187500; 1.062500;, + -0.187500; 0.875000;, + 0.062500; 0.875000;, + 0.062500; 1.062500;, + 0.062500; 1.062500;, + 0.062500; 0.875000;, + 0.312500; 0.875000;, + 0.312500; 1.062500;, + 1.500000; 1.062500;, + 1.500000; 1.000000;, + 1.625000; 1.000000;, + 1.625000; 1.062500;, + 1.625000; 1.000000;, + 1.750000; 1.000000;, + 1.750000; 1.062500;, + 1.625000; 1.062500;, + 1.750000; 1.437500;, + 1.750000; 1.562500;, + 1.625000; 1.562500;, + 1.625000; 1.437500;, + 1.125000; 1.937500;, + 1.000000; 1.937500;, + 1.000000; 1.812500;, + 1.125000; 1.812500;, + -0.125000; 0.312500;, + -0.250000; 0.312500;, + -0.250000; 0.187500;, + -0.125000; 0.187500;, + 0.437500; 1.625000;, + 0.312500; 1.625000;, + 0.312500; 1.500000;, + 0.437500; 1.500000;, + 0.437500; 1.375000;, + 0.312500; 1.375000;, + 0.312500; 1.250000;, + 0.437500; 1.250000;, + 0.312500; 1.375000;, + 0.062500; 1.375000;, + 0.062500; 1.250000;, + 0.312500; 1.250000;, + -0.125000; 0.562500;, + -0.250000; 0.562500;, + -0.250000; 0.437500;, + -0.125000; 0.437500;, + -0.250000; 0.562500;, + -0.500000; 0.562500;, + -0.500000; 0.437500;, + -0.250000; 0.437500;, + 1.437500;-0.812500;, + 1.187500;-0.812500;, + 1.187500;-0.937500;, + 1.437500;-0.937500;, + 0.562500;-0.312500;, + 0.687500;-0.312500;, + 0.687500;-0.125000;, + 0.562500;-0.125000;, + 0.562500; 0.625000;, + 0.562500; 0.500000;, + 0.687500; 0.500000;, + 0.687500; 0.625000;, + -0.437500;-0.812500;, + -0.500000;-0.812500;, + -0.500000;-0.937500;, + -0.437500;-0.937500;, + 1.500000; 1.125000;, + 1.500000; 1.125000;, + 1.625000; 1.125000;, + 1.625000; 1.125000;, + -0.750000;-0.500000;, + -0.750000;-0.562500;, + -0.625000;-0.562500;, + -0.625000;-0.500000;, + -0.937500;-0.812500;, + -0.937500;-0.812500;, + -0.937500;-0.687500;, + -0.937500;-0.687500;, + 1.812500; 1.125000;, + 1.812500; 1.187500;, + 1.687500; 1.187500;, + 1.687500; 1.125000;, + -0.437500;-0.687500;, + -0.500000;-0.687500;, + -0.500000;-0.812500;, + -0.437500;-0.812500;, + -0.750000;-0.562500;, + -0.750000;-0.687500;, + -0.625000;-0.687500;, + -0.625000;-0.562500;, + 1.812500; 1.187500;, + 1.812500; 1.312500;, + 1.687500; 1.312500;, + 1.687500; 1.187500;, + 1.687500;-0.812500;, + 1.687500;-0.937500;, + 1.875000;-0.937500;, + 1.875000;-0.812500;, + 1.312500; 1.562500;, + 1.312500; 1.437500;, + 1.437500; 1.437500;, + 1.437500; 1.562500;, + 1.437500;-0.812500;, + 1.437500;-0.937500;, + 1.562500;-0.937500;, + 1.562500;-0.812500;, + 1.000000; 1.562500;, + 1.000000; 1.437500;, + 1.187500; 1.437500;, + 1.187500; 1.562500;, + 1.687500; 0.312500;, + 1.812500; 0.312500;, + 1.812500; 0.437500;, + 1.687500; 0.437500;, + 1.687500; 0.187500;, + 1.812500; 0.187500;, + 1.812500; 0.312500;, + 1.687500; 0.312500;, + 1.500000; 1.312500;, + 1.687500; 1.312500;, + 1.687500; 1.437500;, + 1.500000; 1.437500;, + 1.937500; 1.437500;, + 1.812500; 1.437500;, + 1.812500; 1.312500;, + 1.937500; 1.312500;, + -0.750000;-0.687500;, + -0.750000;-0.812500;, + -0.625000;-0.812500;, + -0.625000;-0.687500;, + 1.812500; 1.312500;, + 1.812500; 1.437500;, + 1.687500; 1.437500;, + 1.687500; 1.312500;, + 1.812500;-0.562500;, + 1.687500;-0.562500;, + 1.687500;-0.687500;, + 1.812500;-0.687500;, + 1.812500;-0.187500;, + 1.625000;-0.187500;, + 1.625000;-0.312500;, + 1.812500;-0.312500;, + -0.937500;-0.812500;, + -0.750000;-0.812500;, + -0.750000;-0.687500;, + -0.937500;-0.687500;, + -0.500000;-0.687500;, + -0.625000;-0.687500;, + -0.625000;-0.812500;, + -0.500000;-0.812500;, + 0.375000;-0.312500;, + 0.375000;-0.500000;, + 0.625000;-0.500000;, + 0.625000;-0.312500;, + 0.625000;-0.312500;, + 0.625000;-0.500000;, + 0.687500;-0.500000;, + 0.687500;-0.312500;, + 0.687500;-0.312500;, + 0.687500;-0.500000;, + 0.937500;-0.500000;, + 0.937500;-0.312500;, + 1.625000; 0.000000;, + 0.937500; 0.000000;, + 0.937500;-0.125000;, + 1.625000;-0.125000;, + 0.625000;-0.500000;, + 0.625000;-0.625000;, + 0.687500;-0.625000;, + 0.687500;-0.500000;, + 0.687500;-0.500000;, + 0.687500;-0.625000;, + 0.937500;-0.625000;, + 0.937500;-0.500000;, + 0.375000;-0.625000;, + 0.375000;-0.750000;, + 0.625000;-0.750000;, + 0.625000;-0.625000;, + 0.625000;-0.625000;, + 0.625000;-0.750000;, + 0.687500;-0.750000;, + 0.687500;-0.625000;, + 0.687500;-0.625000;, + 0.687500;-0.750000;, + 0.937500;-0.750000;, + 0.937500;-0.625000;, + 0.625000;-0.875000;, + 0.375000;-0.875000;, + 0.375000;-1.000000;, + 0.625000;-1.000000;, + 0.375000;-0.750000;, + 0.375000;-0.875000;, + 0.625000;-0.875000;, + 0.625000;-0.750000;, + 0.625000;-0.750000;, + 0.625000;-0.875000;, + 0.687500;-0.875000;, + 0.687500;-0.750000;, + 0.937500; 0.375000;, + 1.625000; 0.375000;, + 1.625000; 0.500000;, + 0.937500; 0.500000;, + 1.625000; 0.500000;, + 1.687500; 0.500000;, + 1.687500; 0.687500;, + 1.625000; 0.687500;, + 0.937500; 0.187500;, + 1.625000; 0.187500;, + 1.625000; 0.375000;, + 0.937500; 0.375000;, + 0.937500; 0.500000;, + 1.625000; 0.500000;, + 1.625000; 0.687500;, + 0.937500; 0.687500;, + 1.812500;-0.375000;, + 1.687500;-0.375000;, + 1.687500;-0.562500;, + 1.812500;-0.562500;, + 1.625000;-0.125000;, + 0.937500;-0.125000;, + 0.937500;-0.312500;, + 1.625000;-0.312500;, + 1.625000; 0.187500;, + 0.937500; 0.187500;, + 0.937500; 0.000000;, + 1.625000; 0.000000;, + 1.812500;-0.812500;, + 1.812500;-0.687500;, + 1.687500;-0.687500;, + 1.687500;-0.812500;; + } // End of Heli UV coordinates + } // End of Heli mesh + } // End of Heli + Frame Heli_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.000000, 0.000000, 1.000000;; + } + Mesh { // Heli_002 mesh + 144; + 3.528280;-3.363860; 0.142274;, + 5.797464;-3.363860; 0.142274;, + 5.797464; 0.000000; 0.142274;, + 3.528280; 0.000000; 0.142274;, + 5.797464;-3.363860; 0.142274;, + 12.153179;-3.363860; 0.142274;, + 12.153179; 0.000000; 0.142274;, + 5.797464; 0.000000; 0.142274;, + 5.797464;-3.363860; 0.142274;, + 5.797464;-7.385555; 0.142274;, + 12.153179;-7.385555; 0.142274;, + 12.153179;-3.363860; 0.142274;, + 12.153179;-7.385555; 0.142274;, + 12.153179;-7.385555; 7.588482;, + 12.153179;-3.363860; 7.588482;, + 12.153179;-3.363860; 0.142274;, + 5.797464;-7.385555; 0.142274;, + 5.797464;-7.385555; 7.588482;, + 12.153179;-7.385555; 7.588482;, + 12.153179;-7.385555; 0.142274;, + 12.153179;-3.363860; 0.142274;, + 12.153179;-3.363860; 7.588482;, + 12.153179; 0.000000; 7.588482;, + 12.153179; 0.000000; 0.142274;, + 12.153179;-7.385555; 7.588482;, + 12.153179;-7.385555;18.855124;, + 12.153179;-3.363860;18.855124;, + 12.153179;-3.363860; 7.588482;, + 5.797464;-7.385555; 7.588482;, + 5.797464;-7.385555;18.855124;, + 12.153179;-7.385555;18.855124;, + 12.153179;-7.385555; 7.588482;, + 12.153179;-3.363860; 7.588482;, + 12.153179;-3.363860;18.855124;, + 12.153179; 0.000000;18.855124;, + 12.153179; 0.000000; 7.588482;, + 3.528280;-3.363860; 0.142274;, + 3.528280; 0.000000; 0.142274;, + 5.797464; 0.000000; 0.142274;, + 5.797464;-3.363860; 0.142274;, + 5.797464;-3.363860; 0.142274;, + 5.797464; 0.000000; 0.142274;, + 12.153179; 0.000000; 0.142274;, + 12.153179;-3.363860; 0.142274;, + 5.797464;-3.363860; 0.142274;, + 12.153179;-3.363860; 0.142274;, + 12.153179;-7.385555; 0.142274;, + 5.797464;-7.385555; 0.142274;, + 12.153179;-7.385555; 0.142274;, + 12.153179;-3.363860; 0.142274;, + 12.153179;-3.363860; 7.588482;, + 12.153179;-7.385555; 7.588482;, + 5.797464;-7.385555; 0.142274;, + 12.153179;-7.385555; 0.142274;, + 12.153179;-7.385555; 7.588482;, + 5.797464;-7.385555; 7.588482;, + 12.153179;-3.363860; 0.142274;, + 12.153179; 0.000000; 0.142274;, + 12.153179; 0.000000; 7.588482;, + 12.153179;-3.363860; 7.588482;, + 12.153179;-7.385555; 7.588482;, + 12.153179;-3.363860; 7.588482;, + 12.153179;-3.363860;18.855124;, + 12.153179;-7.385555;18.855124;, + 5.797464;-7.385555; 7.588482;, + 12.153179;-7.385555; 7.588482;, + 12.153179;-7.385555;18.855124;, + 5.797464;-7.385555;18.855124;, + 12.153179;-3.363860; 7.588482;, + 12.153179; 0.000000; 7.588482;, + 12.153179; 0.000000;18.855124;, + 12.153179;-3.363860;18.855124;, + 3.528280; 3.363860; 0.142274;, + 3.528280; 0.000000; 0.142274;, + 5.797464; 0.000000; 0.142274;, + 5.797464; 3.363860; 0.142274;, + 5.797464; 3.363860; 0.142274;, + 5.797464; 0.000000; 0.142274;, + 12.153179; 0.000000; 0.142274;, + 12.153179; 3.363860; 0.142274;, + 5.797464; 3.363860; 0.142274;, + 12.153179; 3.363860; 0.142274;, + 12.153179; 7.385555; 0.142274;, + 5.797464; 7.385555; 0.142274;, + 12.153179; 7.385555; 0.142274;, + 12.153179; 3.363860; 0.142274;, + 12.153179; 3.363860; 7.588482;, + 12.153179; 7.385555; 7.588482;, + 5.797464; 7.385555; 0.142274;, + 12.153179; 7.385555; 0.142274;, + 12.153179; 7.385555; 7.588482;, + 5.797464; 7.385555; 7.588482;, + 12.153179; 3.363860; 0.142274;, + 12.153179; 0.000000; 0.142274;, + 12.153179; 0.000000; 7.588482;, + 12.153179; 3.363860; 7.588482;, + 12.153179; 7.385555; 7.588482;, + 12.153179; 3.363860; 7.588482;, + 12.153179; 3.363860;18.855124;, + 12.153179; 7.385555;18.855124;, + 5.797464; 7.385555; 7.588482;, + 12.153179; 7.385555; 7.588482;, + 12.153179; 7.385555;18.855124;, + 5.797464; 7.385555;18.855124;, + 12.153179; 3.363860; 7.588482;, + 12.153179; 0.000000; 7.588482;, + 12.153179; 0.000000;18.855124;, + 12.153179; 3.363860;18.855124;, + 3.528280; 3.363860; 0.142274;, + 5.797464; 3.363860; 0.142274;, + 5.797464; 0.000000; 0.142274;, + 3.528280; 0.000000; 0.142274;, + 5.797464; 3.363860; 0.142274;, + 12.153179; 3.363860; 0.142274;, + 12.153179; 0.000000; 0.142274;, + 5.797464; 0.000000; 0.142274;, + 5.797464; 3.363860; 0.142274;, + 5.797464; 7.385555; 0.142274;, + 12.153179; 7.385555; 0.142274;, + 12.153179; 3.363860; 0.142274;, + 12.153179; 7.385555; 0.142274;, + 12.153179; 7.385555; 7.588482;, + 12.153179; 3.363860; 7.588482;, + 12.153179; 3.363860; 0.142274;, + 5.797464; 7.385555; 0.142274;, + 5.797464; 7.385555; 7.588482;, + 12.153179; 7.385555; 7.588482;, + 12.153179; 7.385555; 0.142274;, + 12.153179; 3.363860; 0.142274;, + 12.153179; 3.363860; 7.588482;, + 12.153179; 0.000000; 7.588482;, + 12.153179; 0.000000; 0.142274;, + 12.153179; 7.385555; 7.588482;, + 12.153179; 7.385555;18.855124;, + 12.153179; 3.363860;18.855124;, + 12.153179; 3.363860; 7.588482;, + 5.797464; 7.385555; 7.588482;, + 5.797464; 7.385555;18.855124;, + 12.153179; 7.385555;18.855124;, + 12.153179; 7.385555; 7.588482;, + 12.153179; 3.363860; 7.588482;, + 12.153179; 3.363860;18.855124;, + 12.153179; 0.000000;18.855124;, + 12.153179; 0.000000; 7.588482;; + 36; + 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;; + MeshNormals { // Heli_002 normals + 36; + 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;, + -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; 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;, + 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; 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;, + -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; 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;, + 1.000000;-0.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 1.000000;-0.000000; 0.000000;; + 36; + 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;; + } // End of Heli_002 normals + MeshTextureCoords { // Heli_002 UV coordinates + 144; + 0.875000; 1.000000;, + 0.875000; 0.906250;, + 1.000000; 0.906250;, + 1.000000; 1.000000;, + 0.875000; 0.906250;, + 0.875000; 0.687500;, + 1.000000; 0.687500;, + 1.000000; 0.906250;, + 0.875000; 0.906250;, + 0.718750; 0.906250;, + 0.718750; 0.687500;, + 0.875000; 0.687500;, + 0.718750; 0.687500;, + 0.718750; 0.406250;, + 0.875000; 0.406250;, + 0.875000; 0.687500;, + 0.500000; 0.687500;, + 0.500000; 0.406250;, + 0.718750; 0.406250;, + 0.718750; 0.687500;, + 0.875000; 0.687500;, + 0.875000; 0.406250;, + 1.000000; 0.406250;, + 1.000000; 0.687500;, + 0.718750; 0.406250;, + 0.718750; 0.000000;, + 0.875000; 0.000000;, + 0.875000; 0.406250;, + 0.500000; 0.406250;, + 0.500000; 0.000000;, + 0.718750; 0.000000;, + 0.718750; 0.406250;, + 0.875000; 0.406250;, + 0.875000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.406250;, + 0.875000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.906250;, + 0.875000; 0.906250;, + 0.875000; 0.906250;, + 1.000000; 0.906250;, + 1.000000; 0.687500;, + 0.875000; 0.687500;, + 0.875000; 0.906250;, + 0.875000; 0.687500;, + 0.718750; 0.687500;, + 0.718750; 0.906250;, + 0.718750; 0.687500;, + 0.875000; 0.687500;, + 0.875000; 0.406250;, + 0.718750; 0.406250;, + 0.500000; 0.687500;, + 0.718750; 0.687500;, + 0.718750; 0.406250;, + 0.500000; 0.406250;, + 0.875000; 0.687500;, + 1.000000; 0.687500;, + 1.000000; 0.406250;, + 0.875000; 0.406250;, + 0.718750; 0.406250;, + 0.875000; 0.406250;, + 0.875000; 0.000000;, + 0.718750; 0.000000;, + 0.500000; 0.406250;, + 0.718750; 0.406250;, + 0.718750; 0.000000;, + 0.500000; 0.000000;, + 0.875000; 0.406250;, + 1.000000; 0.406250;, + 1.000000; 0.000000;, + 0.875000; 0.000000;, + 0.875000; 1.000000;, + 1.000000; 1.000000;, + 1.000000; 0.906250;, + 0.875000; 0.906250;, + 0.875000; 0.906250;, + 1.000000; 0.906250;, + 1.000000; 0.687500;, + 0.875000; 0.687500;, + 0.875000; 0.906250;, + 0.875000; 0.687500;, + 0.718750; 0.687500;, + 0.718750; 0.906250;, + 0.718750; 0.687500;, + 0.875000; 0.687500;, + 0.875000; 0.406250;, + 0.718750; 0.406250;, + 0.500000; 0.687500;, + 0.718750; 0.687500;, + 0.718750; 0.406250;, + 0.500000; 0.406250;, + 0.875000; 0.687500;, + 1.000000; 0.687500;, + 1.000000; 0.406250;, + 0.875000; 0.406250;, + 0.718750; 0.406250;, + 0.875000; 0.406250;, + 0.875000; 0.000000;, + 0.718750; 0.000000;, + 0.500000; 0.406250;, + 0.718750; 0.406250;, + 0.718750; 0.000000;, + 0.500000; 0.000000;, + 0.875000; 0.406250;, + 1.000000; 0.406250;, + 1.000000; 0.000000;, + 0.875000; 0.000000;, + 0.875000; 1.000000;, + 0.875000; 0.906250;, + 1.000000; 0.906250;, + 1.000000; 1.000000;, + 0.875000; 0.906250;, + 0.875000; 0.687500;, + 1.000000; 0.687500;, + 1.000000; 0.906250;, + 0.875000; 0.906250;, + 0.718750; 0.906250;, + 0.718750; 0.687500;, + 0.875000; 0.687500;, + 0.718750; 0.687500;, + 0.718750; 0.406250;, + 0.875000; 0.406250;, + 0.875000; 0.687500;, + 0.500000; 0.687500;, + 0.500000; 0.406250;, + 0.718750; 0.406250;, + 0.718750; 0.687500;, + 0.875000; 0.687500;, + 0.875000; 0.406250;, + 1.000000; 0.406250;, + 1.000000; 0.687500;, + 0.718750; 0.406250;, + 0.718750; 0.000000;, + 0.875000; 0.000000;, + 0.875000; 0.406250;, + 0.500000; 0.406250;, + 0.500000; 0.000000;, + 0.718750; 0.000000;, + 0.718750; 0.406250;, + 0.875000; 0.406250;, + 0.875000; 0.000000;, + 1.000000; 0.000000;, + 1.000000; 0.406250;; + } // End of Heli_002 UV coordinates + } // End of Heli_002 mesh + } // End of Heli_002 + } // End of Armature +} // End of Root +AnimationSet Global { + Animation { + {Armature} + AnimationKey { // Rotation + 0; + 11; + 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;;; + } + AnimationKey { // Scale + 1; + 11; + 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;;; + } + AnimationKey { // Position + 2; + 11; + 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;;; + } + } + Animation { + {Armature_Bone} + AnimationKey { // Rotation + 0; + 11; + 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;;; + } + AnimationKey { // Scale + 1; + 11; + 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;;; + } + AnimationKey { // Position + 2; + 11; + 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;;; + } + } + Animation { + {Blades_main} + AnimationKey { // Rotation + 0; + 11; + 0;4;-0.923880, 0.000000, 0.000000,-0.382683;;, + 1;4;-0.999229, 0.000000, 0.000000,-0.039260;;, + 2;4;-0.951056, 0.000000, 0.000000, 0.309017;;, + 3;4;-0.785317, 0.000000, 0.000000, 0.619094;;, + 4;4;-0.522498, 0.000000, 0.000000, 0.852640;;, + 5;4;-0.195090, 0.000000, 0.000000, 0.980785;;, + 6;4; 0.156435,-0.000000, 0.000000, 0.987688;;, + 7;4; 0.488622,-0.000000, 0.000000, 0.872496;;, + 8;4; 0.760407,-0.000000, 0.000000, 0.649447;;, + 9;4; 0.938192,-0.000000, 0.000000, 0.346116;;, + 10;4; 1.000000, 0.000000,-0.000000,-0.000001;;; + } + AnimationKey { // Scale + 1; + 11; + 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;;; + } + AnimationKey { // Position + 2; + 11; + 0;3; 0.066270, 0.238053,21.380169;;, + 1;3; 0.066270, 0.238053,21.380169;;, + 2;3; 0.066270, 0.238053,21.380169;;, + 3;3; 0.066270, 0.238053,21.380169;;, + 4;3; 0.066270, 0.238053,21.380169;;, + 5;3; 0.066270, 0.238053,21.380169;;, + 6;3; 0.066270, 0.238053,21.380169;;, + 7;3; 0.066270, 0.238053,21.380169;;, + 8;3; 0.066270, 0.238053,21.380169;;, + 9;3; 0.066270, 0.238053,21.380169;;, + 10;3; 0.066270, 0.238053,21.380169;;; + } + } + Animation { + {Blades_main_001} + AnimationKey { // Rotation + 0; + 11; + 0;4;-1.000000, 0.000000, 0.000000, 0.000000;;, + 1;4;-0.951056, 0.000000, 0.309017, 0.000000;;, + 2;4;-0.809017, 0.000000, 0.587785, 0.000000;;, + 3;4;-0.587785, 0.000000, 0.809017, 0.000000;;, + 4;4;-0.309016, 0.000000, 0.951057, 0.000000;;, + 5;4; 0.000001,-0.000000, 1.000000,-0.000000;;, + 6;4; 0.309018,-0.000000, 0.951056,-0.000000;;, + 7;4; 0.587786,-0.000000, 0.809016,-0.000000;;, + 8;4; 0.809018,-0.000000, 0.587784,-0.000000;;, + 9;4; 0.951057,-0.000000, 0.309016,-0.000000;;, + 10;4; 1.000000, 0.000000,-0.000001, 0.000000;;; + } + AnimationKey { // Scale + 1; + 11; + 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;;; + } + AnimationKey { // Position + 2; + 11; + 0;3;-21.410040,-4.539900,16.051079;;, + 1;3;-21.410040,-4.539900,16.051079;;, + 2;3;-21.410040,-4.539900,16.051079;;, + 3;3;-21.410040,-4.539900,16.051079;;, + 4;3;-21.410040,-4.539900,16.051079;;, + 5;3;-21.410040,-4.539900,16.051079;;, + 6;3;-21.410040,-4.539900,16.051079;;, + 7;3;-21.410040,-4.539900,16.051079;;, + 8;3;-21.410040,-4.539900,16.051079;;, + 9;3;-21.410040,-4.539900,16.051079;;, + 10;3;-21.410040,-4.539900,16.051079;;; + } + } + Animation { + {Heli} + AnimationKey { // Rotation + 0; + 11; + 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;;; + } + AnimationKey { // Scale + 1; + 11; + 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;;; + } + AnimationKey { // Position + 2; + 11; + 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;;; + } + } + Animation { + {Heli_002} + AnimationKey { // Rotation + 0; + 11; + 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;;; + } + AnimationKey { // Scale + 1; + 11; + 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;;; + } + AnimationKey { // Position + 2; + 11; + 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;;; + } + } +} // End of AnimationSet Global diff --git a/mods/tutorial/models/helit.png b/mods/tutorial/models/helit.png new file mode 100644 index 0000000..52599b6 Binary files /dev/null and b/mods/tutorial/models/helit.png differ diff --git a/mods/tutorial/models/motor.x b/mods/tutorial/models/motor.x new file mode 100644 index 0000000..4e19092 --- /dev/null +++ b/mods/tutorial/models/motor.x @@ -0,0 +1,95 @@ +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 Heli_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.000000, 0.000000, 1.000000;; + } + Mesh { // Heli_001 mesh + 24; + -18.014185;-4.916472;11.713446;, + -18.014185; 4.984048;11.713446;, + -18.014185; 4.984048; 1.812922;, + -18.014185;-4.916472; 1.812922;, + -18.014185; 4.984048;11.713446;, + -8.113663; 4.984048;11.713446;, + -8.113663; 4.984048; 1.812922;, + -18.014185; 4.984048; 1.812922;, + -8.113663; 4.984048;11.713446;, + -8.113663;-4.916472;11.713446;, + -8.113663;-4.916472; 1.812922;, + -8.113663; 4.984048; 1.812922;, + -8.113663;-4.916472;11.713446;, + -18.014185;-4.916472;11.713446;, + -18.014185;-4.916472; 1.812922;, + -8.113663;-4.916472; 1.812922;, + -18.014185;-4.916472; 1.812922;, + -18.014185; 4.984048; 1.812922;, + -8.113663; 4.984048; 1.812922;, + -8.113663;-4.916472; 1.812922;, + -8.113663;-4.916472;11.713446;, + -8.113663; 4.984048;11.713446;, + -18.014185; 4.984048;11.713446;, + -18.014185;-4.916472;11.713446;; + 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 { // Heli_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 Heli_001 normals + MeshTextureCoords { // Heli_001 UV coordinates + 24; + 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 Heli_001 UV coordinates + } // End of Heli_001 mesh + } // End of Heli_001 +} // End of Root diff --git a/mods/tutorial/models/motort.png b/mods/tutorial/models/motort.png new file mode 100644 index 0000000..cb06d07 Binary files /dev/null and b/mods/tutorial/models/motort.png differ diff --git a/mods/tutorial/models/root.x b/mods/tutorial/models/root.x new file mode 100644 index 0000000..ef327dd --- /dev/null +++ b/mods/tutorial/models/root.x @@ -0,0 +1,26 @@ +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 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.001762, 1.000000;; + } + } // End of Armature_Root + } // End of Armature +} // End of Root diff --git a/mods/tutorial/models/tutorial_fireball.x b/mods/tutorial/models/tutorial_fireball.x new file mode 100644 index 0000000..156a60b --- /dev/null +++ b/mods/tutorial/models/tutorial_fireball.x @@ -0,0 +1,7528 @@ +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 Sphere { + 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 { // Sphere mesh + 1984; + -0.707107; 0.000000;-0.707107;, + -0.831470; 0.000000;-0.555570;, + -0.815493; 0.162212;-0.555570;, + -0.693520; 0.137950;-0.707107;, + -0.923880; 0.000000;-0.382683;, + -0.980785; 0.000000;-0.195090;, + -0.961940; 0.191342;-0.195090;, + -0.906127; 0.180240;-0.382683;, + -1.000000; 0.000000; 0.000000;, + -0.980785; 0.000000; 0.195090;, + -0.961940; 0.191342; 0.195090;, + -0.980785; 0.195090; 0.000000;, + -0.923880; 0.000000; 0.382683;, + -0.831470; 0.000000; 0.555570;, + -0.815493; 0.162212; 0.555570;, + -0.906127; 0.180240; 0.382683;, + -0.707107; 0.000000; 0.707107;, + -0.555570; 0.000000; 0.831470;, + -0.544895; 0.108386; 0.831470;, + -0.693520; 0.137950; 0.707107;, + -0.195090; 0.000000;-0.980785;, + -0.382683; 0.000000;-0.923880;, + -0.375330; 0.074658;-0.923880;, + -0.191341; 0.038060;-0.980785;, + -0.382683; 0.000000; 0.923880;, + -0.195090; 0.000000; 0.980785;, + -0.191342; 0.038060; 0.980785;, + -0.375330; 0.074658; 0.923880;, + -0.555570; 0.000000;-0.831470;, + -0.707107; 0.000000;-0.707107;, + -0.693520; 0.137950;-0.707107;, + -0.544895; 0.108386;-0.831470;, + -0.831470; 0.000000;-0.555570;, + -0.923880; 0.000000;-0.382683;, + -0.906127; 0.180240;-0.382683;, + -0.815493; 0.162212;-0.555570;, + -0.980785; 0.000000;-0.195090;, + -1.000000; 0.000000; 0.000000;, + -0.980785; 0.195090; 0.000000;, + -0.961940; 0.191342;-0.195090;, + -0.980785; 0.000000; 0.195090;, + -0.923880; 0.000000; 0.382683;, + -0.906127; 0.180240; 0.382683;, + -0.961940; 0.191342; 0.195090;, + -0.831470; 0.000000; 0.555570;, + -0.707107; 0.000000; 0.707107;, + -0.693520; 0.137950; 0.707107;, + -0.815493; 0.162212; 0.555570;, + -0.555570; 0.000000; 0.831470;, + -0.382683; 0.000000; 0.923880;, + -0.375330; 0.074658; 0.923880;, + -0.544895; 0.108386; 0.831470;, + -0.382683; 0.000000;-0.923880;, + -0.555570; 0.000000;-0.831470;, + -0.544895; 0.108386;-0.831470;, + -0.375330; 0.074658;-0.923880;, + -0.961940; 0.191342; 0.195090;, + -0.906127; 0.180240; 0.382683;, + -0.853553; 0.353553; 0.382683;, + -0.906127; 0.375330; 0.195090;, + -0.815493; 0.162212; 0.555570;, + -0.693520; 0.137950; 0.707107;, + -0.653281; 0.270598; 0.707107;, + -0.768178; 0.318190; 0.555570;, + -0.544895; 0.108386; 0.831470;, + -0.375330; 0.074658; 0.923880;, + -0.353553; 0.146447; 0.923880;, + -0.513280; 0.212608; 0.831470;, + -0.375330; 0.074658;-0.923880;, + -0.544895; 0.108386;-0.831470;, + -0.513280; 0.212608;-0.831470;, + -0.353553; 0.146447;-0.923880;, + -0.693520; 0.137950;-0.707107;, + -0.815493; 0.162212;-0.555570;, + -0.768178; 0.318190;-0.555570;, + -0.653281; 0.270598;-0.707107;, + -0.906127; 0.180240;-0.382683;, + -0.961940; 0.191342;-0.195090;, + -0.906127; 0.375330;-0.195090;, + -0.853553; 0.353554;-0.382683;, + -0.980785; 0.195090; 0.000000;, + -0.961940; 0.191342; 0.195090;, + -0.906127; 0.375330; 0.195090;, + -0.923879; 0.382684; 0.000000;, + -0.906127; 0.180240; 0.382683;, + -0.815493; 0.162212; 0.555570;, + -0.768178; 0.318190; 0.555570;, + -0.853553; 0.353553; 0.382683;, + -0.693520; 0.137950; 0.707107;, + -0.544895; 0.108386; 0.831470;, + -0.513280; 0.212608; 0.831470;, + -0.653281; 0.270598; 0.707107;, + -0.191341; 0.038060;-0.980785;, + -0.375330; 0.074658;-0.923880;, + -0.353553; 0.146447;-0.923880;, + -0.180240; 0.074658;-0.980785;, + -0.375330; 0.074658; 0.923880;, + -0.191342; 0.038060; 0.980785;, + -0.180240; 0.074658; 0.980785;, + -0.353553; 0.146447; 0.923880;, + -0.544895; 0.108386;-0.831470;, + -0.693520; 0.137950;-0.707107;, + -0.653281; 0.270598;-0.707107;, + -0.513280; 0.212608;-0.831470;, + -0.815493; 0.162212;-0.555570;, + -0.906127; 0.180240;-0.382683;, + -0.853553; 0.353554;-0.382683;, + -0.768178; 0.318190;-0.555570;, + -0.961940; 0.191342;-0.195090;, + -0.980785; 0.195090; 0.000000;, + -0.923879; 0.382684; 0.000000;, + -0.906127; 0.375330;-0.195090;, + -0.906127; 0.375330; 0.195090;, + -0.853553; 0.353553; 0.382683;, + -0.768178; 0.513280; 0.382683;, + -0.815493; 0.544895; 0.195090;, + -0.768178; 0.318190; 0.555570;, + -0.653281; 0.270598; 0.707107;, + -0.587938; 0.392848; 0.707107;, + -0.691342; 0.461940; 0.555570;, + -0.513280; 0.212608; 0.831470;, + -0.353553; 0.146447; 0.923880;, + -0.318190; 0.212608; 0.923880;, + -0.461940; 0.308658; 0.831470;, + -0.353553; 0.146447;-0.923880;, + -0.513280; 0.212608;-0.831470;, + -0.461940; 0.308658;-0.831470;, + -0.318189; 0.212608;-0.923880;, + -0.653281; 0.270598;-0.707107;, + -0.768178; 0.318190;-0.555570;, + -0.691342; 0.461940;-0.555570;, + -0.587938; 0.392848;-0.707107;, + -0.853553; 0.353554;-0.382683;, + -0.906127; 0.375330;-0.195090;, + -0.815493; 0.544895;-0.195090;, + -0.768178; 0.513280;-0.382683;, + -0.923879; 0.382684; 0.000000;, + -0.906127; 0.375330; 0.195090;, + -0.815493; 0.544895; 0.195090;, + -0.831469; 0.555570; 0.000000;, + -0.853553; 0.353553; 0.382683;, + -0.768178; 0.318190; 0.555570;, + -0.691342; 0.461940; 0.555570;, + -0.768178; 0.513280; 0.382683;, + -0.653281; 0.270598; 0.707107;, + -0.513280; 0.212608; 0.831470;, + -0.461940; 0.308658; 0.831470;, + -0.587938; 0.392848; 0.707107;, + -0.180240; 0.074658;-0.980785;, + -0.353553; 0.146447;-0.923880;, + -0.318189; 0.212608;-0.923880;, + -0.162211; 0.108386;-0.980785;, + -0.353553; 0.146447; 0.923880;, + -0.180240; 0.074658; 0.980785;, + -0.162212; 0.108387; 0.980785;, + -0.318190; 0.212608; 0.923880;, + -0.513280; 0.212608;-0.831470;, + -0.653281; 0.270598;-0.707107;, + -0.587938; 0.392848;-0.707107;, + -0.461940; 0.308658;-0.831470;, + -0.768178; 0.318190;-0.555570;, + -0.853553; 0.353554;-0.382683;, + -0.768178; 0.513280;-0.382683;, + -0.691342; 0.461940;-0.555570;, + -0.906127; 0.375330;-0.195090;, + -0.923879; 0.382684; 0.000000;, + -0.831469; 0.555570; 0.000000;, + -0.815493; 0.544895;-0.195090;, + -0.815493; 0.544895; 0.195090;, + -0.768178; 0.513280; 0.382683;, + -0.653281; 0.653282; 0.382683;, + -0.693520; 0.693520; 0.195090;, + -0.691342; 0.461940; 0.555570;, + -0.587938; 0.392848; 0.707107;, + -0.500000; 0.500000; 0.707107;, + -0.587938; 0.587938; 0.555570;, + -0.461940; 0.308658; 0.831470;, + -0.318190; 0.212608; 0.923880;, + -0.270598; 0.270598; 0.923880;, + -0.392847; 0.392848; 0.831470;, + -0.318189; 0.212608;-0.923880;, + -0.461940; 0.308658;-0.831470;, + -0.392847; 0.392848;-0.831470;, + -0.270598; 0.270598;-0.923880;, + -0.587938; 0.392848;-0.707107;, + -0.691342; 0.461940;-0.555570;, + -0.587938; 0.587938;-0.555570;, + -0.500000; 0.500000;-0.707107;, + -0.768178; 0.513280;-0.382683;, + -0.815493; 0.544895;-0.195090;, + -0.693520; 0.693520;-0.195090;, + -0.653281; 0.653282;-0.382683;, + -0.831469; 0.555570; 0.000000;, + -0.815493; 0.544895; 0.195090;, + -0.693520; 0.693520; 0.195090;, + -0.707107; 0.707107; 0.000000;, + -0.768178; 0.513280; 0.382683;, + -0.691342; 0.461940; 0.555570;, + -0.587938; 0.587938; 0.555570;, + -0.653281; 0.653282; 0.382683;, + -0.587938; 0.392848; 0.707107;, + -0.461940; 0.308658; 0.831470;, + -0.392847; 0.392848; 0.831470;, + -0.500000; 0.500000; 0.707107;, + -0.162211; 0.108386;-0.980785;, + -0.318189; 0.212608;-0.923880;, + -0.270598; 0.270598;-0.923880;, + -0.137949; 0.137950;-0.980785;, + -0.318190; 0.212608; 0.923880;, + -0.162212; 0.108387; 0.980785;, + -0.137950; 0.137950; 0.980785;, + -0.270598; 0.270598; 0.923880;, + -0.461940; 0.308658;-0.831470;, + -0.587938; 0.392848;-0.707107;, + -0.500000; 0.500000;-0.707107;, + -0.392847; 0.392848;-0.831470;, + -0.691342; 0.461940;-0.555570;, + -0.768178; 0.513280;-0.382683;, + -0.653281; 0.653282;-0.382683;, + -0.587938; 0.587938;-0.555570;, + -0.815493; 0.544895;-0.195090;, + -0.831469; 0.555570; 0.000000;, + -0.707107; 0.707107; 0.000000;, + -0.693520; 0.693520;-0.195090;, + -0.693520; 0.693520; 0.195090;, + -0.653281; 0.653282; 0.382683;, + -0.513280; 0.768178; 0.382683;, + -0.544895; 0.815493; 0.195090;, + -0.587938; 0.587938; 0.555570;, + -0.500000; 0.500000; 0.707107;, + -0.392847; 0.587938; 0.707107;, + -0.461940; 0.691342; 0.555570;, + -0.392847; 0.392848; 0.831470;, + -0.270598; 0.270598; 0.923880;, + -0.212607; 0.318190; 0.923880;, + -0.308658; 0.461940; 0.831470;, + -0.270598; 0.270598;-0.923880;, + -0.392847; 0.392848;-0.831470;, + -0.308658; 0.461940;-0.831470;, + -0.212607; 0.318190;-0.923880;, + -0.500000; 0.500000;-0.707107;, + -0.587938; 0.587938;-0.555570;, + -0.461940; 0.691342;-0.555570;, + -0.392847; 0.587938;-0.707107;, + -0.653281; 0.653282;-0.382683;, + -0.693520; 0.693520;-0.195090;, + -0.544895; 0.815493;-0.195090;, + -0.513280; 0.768178;-0.382683;, + -0.707107; 0.707107; 0.000000;, + -0.693520; 0.693520; 0.195090;, + -0.544895; 0.815493; 0.195090;, + -0.555570; 0.831470; 0.000000;, + -0.653281; 0.653282; 0.382683;, + -0.587938; 0.587938; 0.555570;, + -0.461940; 0.691342; 0.555570;, + -0.513280; 0.768178; 0.382683;, + -0.500000; 0.500000; 0.707107;, + -0.392847; 0.392848; 0.831470;, + -0.308658; 0.461940; 0.831470;, + -0.392847; 0.587938; 0.707107;, + -0.137949; 0.137950;-0.980785;, + -0.270598; 0.270598;-0.923880;, + -0.212607; 0.318190;-0.923880;, + -0.108386; 0.162212;-0.980785;, + -0.270598; 0.270598; 0.923880;, + -0.137950; 0.137950; 0.980785;, + -0.108386; 0.162212; 0.980785;, + -0.212607; 0.318190; 0.923880;, + -0.392847; 0.392848;-0.831470;, + -0.500000; 0.500000;-0.707107;, + -0.392847; 0.587938;-0.707107;, + -0.308658; 0.461940;-0.831470;, + -0.587938; 0.587938;-0.555570;, + -0.653281; 0.653282;-0.382683;, + -0.513280; 0.768178;-0.382683;, + -0.461940; 0.691342;-0.555570;, + -0.693520; 0.693520;-0.195090;, + -0.707107; 0.707107; 0.000000;, + -0.555570; 0.831470; 0.000000;, + -0.544895; 0.815493;-0.195090;, + -0.544895; 0.815493; 0.195090;, + -0.513280; 0.768178; 0.382683;, + -0.353553; 0.853554; 0.382683;, + -0.375330; 0.906128; 0.195090;, + -0.461940; 0.691342; 0.555570;, + -0.392847; 0.587938; 0.707107;, + -0.270598; 0.653282; 0.707107;, + -0.318189; 0.768178; 0.555570;, + -0.308658; 0.461940; 0.831470;, + -0.212607; 0.318190; 0.923880;, + -0.146446; 0.353554; 0.923880;, + -0.212607; 0.513280; 0.831470;, + -0.212607; 0.318190;-0.923880;, + -0.308658; 0.461940;-0.831470;, + -0.212607; 0.513280;-0.831470;, + -0.146446; 0.353554;-0.923880;, + -0.392847; 0.587938;-0.707107;, + -0.461940; 0.691342;-0.555570;, + -0.318189; 0.768178;-0.555570;, + -0.270598; 0.653282;-0.707107;, + -0.513280; 0.768178;-0.382683;, + -0.544895; 0.815493;-0.195090;, + -0.375330; 0.906128;-0.195090;, + -0.353553; 0.853554;-0.382683;, + -0.555570; 0.831470; 0.000000;, + -0.544895; 0.815493; 0.195090;, + -0.375330; 0.906128; 0.195090;, + -0.382683; 0.923880; 0.000000;, + -0.513280; 0.768178; 0.382683;, + -0.461940; 0.691342; 0.555570;, + -0.318189; 0.768178; 0.555570;, + -0.353553; 0.853554; 0.382683;, + -0.392847; 0.587938; 0.707107;, + -0.308658; 0.461940; 0.831470;, + -0.212607; 0.513280; 0.831470;, + -0.270598; 0.653282; 0.707107;, + -0.108386; 0.162212;-0.980785;, + -0.212607; 0.318190;-0.923880;, + -0.146446; 0.353554;-0.923880;, + -0.074658; 0.180240;-0.980785;, + -0.212607; 0.318190; 0.923880;, + -0.108386; 0.162212; 0.980785;, + -0.074658; 0.180240; 0.980785;, + -0.146446; 0.353554; 0.923880;, + -0.308658; 0.461940;-0.831470;, + -0.392847; 0.587938;-0.707107;, + -0.270598; 0.653282;-0.707107;, + -0.212607; 0.513280;-0.831470;, + -0.461940; 0.691342;-0.555570;, + -0.513280; 0.768178;-0.382683;, + -0.353553; 0.853554;-0.382683;, + -0.318189; 0.768178;-0.555570;, + -0.544895; 0.815493;-0.195090;, + -0.555570; 0.831470; 0.000000;, + -0.382683; 0.923880; 0.000000;, + -0.375330; 0.906128;-0.195090;, + -0.375330; 0.906128; 0.195090;, + -0.353553; 0.853554; 0.382683;, + -0.180240; 0.906128; 0.382683;, + -0.191341; 0.961940; 0.195090;, + -0.318189; 0.768178; 0.555570;, + -0.270598; 0.653282; 0.707107;, + -0.137949; 0.693520; 0.707107;, + -0.162211; 0.815493; 0.555570;, + -0.212607; 0.513280; 0.831470;, + -0.146446; 0.353554; 0.923880;, + -0.074658; 0.375331; 0.923880;, + -0.108386; 0.544895; 0.831470;, + -0.146446; 0.353554;-0.923880;, + -0.212607; 0.513280;-0.831470;, + -0.108386; 0.544895;-0.831470;, + -0.074658; 0.375330;-0.923880;, + -0.270598; 0.653282;-0.707107;, + -0.318189; 0.768178;-0.555570;, + -0.162211; 0.815493;-0.555570;, + -0.137949; 0.693520;-0.707107;, + -0.353553; 0.853554;-0.382683;, + -0.375330; 0.906128;-0.195090;, + -0.191341; 0.961940;-0.195090;, + -0.180240; 0.906128;-0.382683;, + -0.382683; 0.923880; 0.000000;, + -0.375330; 0.906128; 0.195090;, + -0.191341; 0.961940; 0.195090;, + -0.195090; 0.980785; 0.000000;, + -0.353553; 0.853554; 0.382683;, + -0.318189; 0.768178; 0.555570;, + -0.162211; 0.815493; 0.555570;, + -0.180240; 0.906128; 0.382683;, + -0.270598; 0.653282; 0.707107;, + -0.212607; 0.513280; 0.831470;, + -0.108386; 0.544895; 0.831470;, + -0.137949; 0.693520; 0.707107;, + -0.074658; 0.180240;-0.980785;, + -0.146446; 0.353554;-0.923880;, + -0.074658; 0.375330;-0.923880;, + -0.038060; 0.191342;-0.980785;, + -0.146446; 0.353554; 0.923880;, + -0.074658; 0.180240; 0.980785;, + -0.038060; 0.191342; 0.980785;, + -0.074658; 0.375331; 0.923880;, + -0.212607; 0.513280;-0.831470;, + -0.270598; 0.653282;-0.707107;, + -0.137949; 0.693520;-0.707107;, + -0.108386; 0.544895;-0.831470;, + -0.318189; 0.768178;-0.555570;, + -0.353553; 0.853554;-0.382683;, + -0.180240; 0.906128;-0.382683;, + -0.162211; 0.815493;-0.555570;, + -0.375330; 0.906128;-0.195090;, + -0.382683; 0.923880; 0.000000;, + -0.195090; 0.980785; 0.000000;, + -0.191341; 0.961940;-0.195090;, + -0.191341; 0.961940; 0.195090;, + -0.180240; 0.906128; 0.382683;, + 0.000000; 0.923880; 0.382683;, + 0.000000; 0.980785; 0.195090;, + -0.162211; 0.815493; 0.555570;, + -0.137949; 0.693520; 0.707107;, + 0.000000; 0.707107; 0.707107;, + 0.000000; 0.831470; 0.555570;, + -0.108386; 0.544895; 0.831470;, + -0.074658; 0.375331; 0.923880;, + 0.000000; 0.382684; 0.923880;, + 0.000000; 0.555570; 0.831470;, + -0.074658; 0.375330;-0.923880;, + -0.108386; 0.544895;-0.831470;, + 0.000000; 0.555570;-0.831470;, + 0.000000; 0.382684;-0.923880;, + -0.137949; 0.693520;-0.707107;, + -0.162211; 0.815493;-0.555570;, + 0.000000; 0.831470;-0.555570;, + 0.000000; 0.707107;-0.707107;, + -0.180240; 0.906128;-0.382683;, + -0.191341; 0.961940;-0.195090;, + 0.000000; 0.980785;-0.195090;, + 0.000000; 0.923880;-0.382683;, + -0.195090; 0.980785; 0.000000;, + -0.191341; 0.961940; 0.195090;, + 0.000000; 0.980785; 0.195090;, + 0.000000; 1.000000; 0.000000;, + -0.180240; 0.906128; 0.382683;, + -0.162211; 0.815493; 0.555570;, + 0.000000; 0.831470; 0.555570;, + 0.000000; 0.923880; 0.382683;, + -0.137949; 0.693520; 0.707107;, + -0.108386; 0.544895; 0.831470;, + 0.000000; 0.555570; 0.831470;, + 0.000000; 0.707107; 0.707107;, + -0.038060; 0.191342;-0.980785;, + -0.074658; 0.375330;-0.923880;, + 0.000000; 0.382684;-0.923880;, + 0.000000; 0.195090;-0.980785;, + -0.074658; 0.375331; 0.923880;, + -0.038060; 0.191342; 0.980785;, + 0.000000; 0.195091; 0.980785;, + 0.000000; 0.382684; 0.923880;, + -0.108386; 0.544895;-0.831470;, + -0.137949; 0.693520;-0.707107;, + 0.000000; 0.707107;-0.707107;, + 0.000000; 0.555570;-0.831470;, + -0.162211; 0.815493;-0.555570;, + -0.180240; 0.906128;-0.382683;, + 0.000000; 0.923880;-0.382683;, + 0.000000; 0.831470;-0.555570;, + -0.191341; 0.961940;-0.195090;, + -0.195090; 0.980785; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.980785;-0.195090;, + 0.000000; 0.980785; 0.195090;, + 0.000000; 0.923880; 0.382683;, + 0.180240; 0.906128; 0.382683;, + 0.191342; 0.961940; 0.195090;, + 0.000000; 0.831470; 0.555570;, + 0.000000; 0.707107; 0.707107;, + 0.137950; 0.693520; 0.707107;, + 0.162212; 0.815493; 0.555570;, + 0.000000; 0.555570; 0.831470;, + 0.000000; 0.382684; 0.923880;, + 0.074658; 0.375331; 0.923880;, + 0.108387; 0.544895; 0.831470;, + 0.000000; 0.382684;-0.923880;, + 0.000000; 0.555570;-0.831470;, + 0.108387; 0.544895;-0.831470;, + 0.074658; 0.375330;-0.923880;, + 0.000000; 0.707107;-0.707107;, + 0.000000; 0.831470;-0.555570;, + 0.162212; 0.815493;-0.555570;, + 0.137950; 0.693520;-0.707107;, + 0.000000; 0.923880;-0.382683;, + 0.000000; 0.980785;-0.195090;, + 0.191342; 0.961940;-0.195090;, + 0.180240; 0.906128;-0.382683;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.980785; 0.195090;, + 0.191342; 0.961940; 0.195090;, + 0.195091; 0.980785; 0.000000;, + 0.000000; 0.923880; 0.382683;, + 0.000000; 0.831470; 0.555570;, + 0.162212; 0.815493; 0.555570;, + 0.180240; 0.906128; 0.382683;, + 0.000000; 0.707107; 0.707107;, + 0.000000; 0.555570; 0.831470;, + 0.108387; 0.544895; 0.831470;, + 0.137950; 0.693520; 0.707107;, + 0.000000; 0.195090;-0.980785;, + 0.000000; 0.382684;-0.923880;, + 0.074658; 0.375330;-0.923880;, + 0.038061; 0.191342;-0.980785;, + 0.000000; 0.382684; 0.923880;, + 0.000000; 0.195091; 0.980785;, + 0.038061; 0.191342; 0.980785;, + 0.074658; 0.375331; 0.923880;, + 0.000000; 0.555570;-0.831470;, + 0.000000; 0.707107;-0.707107;, + 0.137950; 0.693520;-0.707107;, + 0.108387; 0.544895;-0.831470;, + 0.000000; 0.831470;-0.555570;, + 0.000000; 0.923880;-0.382683;, + 0.180240; 0.906128;-0.382683;, + 0.162212; 0.815493;-0.555570;, + 0.000000; 0.980785;-0.195090;, + 0.000000; 1.000000; 0.000000;, + 0.195091; 0.980785; 0.000000;, + 0.191342; 0.961940;-0.195090;, + 0.191342; 0.961940; 0.195090;, + 0.180240; 0.906128; 0.382683;, + 0.353554; 0.853554; 0.382683;, + 0.375331; 0.906127; 0.195090;, + 0.162212; 0.815493; 0.555570;, + 0.137950; 0.693520; 0.707107;, + 0.270598; 0.653282; 0.707107;, + 0.318190; 0.768178; 0.555570;, + 0.108387; 0.544895; 0.831470;, + 0.074658; 0.375331; 0.923880;, + 0.146447; 0.353554; 0.923880;, + 0.212608; 0.513280; 0.831470;, + 0.074658; 0.375330;-0.923880;, + 0.108387; 0.544895;-0.831470;, + 0.212608; 0.513280;-0.831470;, + 0.146447; 0.353553;-0.923880;, + 0.137950; 0.693520;-0.707107;, + 0.162212; 0.815493;-0.555570;, + 0.318190; 0.768178;-0.555570;, + 0.270598; 0.653282;-0.707107;, + 0.180240; 0.906128;-0.382683;, + 0.191342; 0.961940;-0.195090;, + 0.375331; 0.906127;-0.195090;, + 0.353554; 0.853554;-0.382683;, + 0.195091; 0.980785; 0.000000;, + 0.191342; 0.961940; 0.195090;, + 0.375331; 0.906127; 0.195090;, + 0.382684; 0.923880; 0.000000;, + 0.180240; 0.906128; 0.382683;, + 0.162212; 0.815493; 0.555570;, + 0.318190; 0.768178; 0.555570;, + 0.353554; 0.853554; 0.382683;, + 0.137950; 0.693520; 0.707107;, + 0.108387; 0.544895; 0.831470;, + 0.212608; 0.513280; 0.831470;, + 0.270598; 0.653282; 0.707107;, + 0.038061; 0.191342;-0.980785;, + 0.074658; 0.375330;-0.923880;, + 0.146447; 0.353553;-0.923880;, + 0.074658; 0.180240;-0.980785;, + 0.074658; 0.375331; 0.923880;, + 0.038061; 0.191342; 0.980785;, + 0.074658; 0.180240; 0.980785;, + 0.146447; 0.353554; 0.923880;, + 0.108387; 0.544895;-0.831470;, + 0.137950; 0.693520;-0.707107;, + 0.270598; 0.653282;-0.707107;, + 0.212608; 0.513280;-0.831470;, + 0.162212; 0.815493;-0.555570;, + 0.180240; 0.906128;-0.382683;, + 0.353554; 0.853554;-0.382683;, + 0.318190; 0.768178;-0.555570;, + 0.191342; 0.961940;-0.195090;, + 0.195091; 0.980785; 0.000000;, + 0.382684; 0.923880; 0.000000;, + 0.375331; 0.906127;-0.195090;, + 0.375331; 0.906127; 0.195090;, + 0.353554; 0.853554; 0.382683;, + 0.513280; 0.768178; 0.382683;, + 0.544895; 0.815493; 0.195090;, + 0.318190; 0.768178; 0.555570;, + 0.270598; 0.653282; 0.707107;, + 0.392848; 0.587938; 0.707107;, + 0.461940; 0.691342; 0.555570;, + 0.212608; 0.513280; 0.831470;, + 0.146447; 0.353554; 0.923880;, + 0.212608; 0.318190; 0.923880;, + 0.308659; 0.461940; 0.831470;, + 0.146447; 0.353553;-0.923880;, + 0.212608; 0.513280;-0.831470;, + 0.308659; 0.461940;-0.831470;, + 0.212608; 0.318190;-0.923880;, + 0.270598; 0.653282;-0.707107;, + 0.318190; 0.768178;-0.555570;, + 0.461940; 0.691342;-0.555570;, + 0.392848; 0.587938;-0.707107;, + 0.353554; 0.853554;-0.382683;, + 0.375331; 0.906127;-0.195090;, + 0.544895; 0.815493;-0.195090;, + 0.513280; 0.768178;-0.382683;, + 0.382684; 0.923880; 0.000000;, + 0.375331; 0.906127; 0.195090;, + 0.544895; 0.815493; 0.195090;, + 0.555571; 0.831470; 0.000000;, + 0.353554; 0.853554; 0.382683;, + 0.318190; 0.768178; 0.555570;, + 0.461940; 0.691342; 0.555570;, + 0.513280; 0.768178; 0.382683;, + 0.270598; 0.653282; 0.707107;, + 0.212608; 0.513280; 0.831470;, + 0.308659; 0.461940; 0.831470;, + 0.392848; 0.587938; 0.707107;, + 0.074658; 0.180240;-0.980785;, + 0.146447; 0.353553;-0.923880;, + 0.212608; 0.318190;-0.923880;, + 0.108387; 0.162212;-0.980785;, + 0.146447; 0.353554; 0.923880;, + 0.074658; 0.180240; 0.980785;, + 0.108387; 0.162212; 0.980785;, + 0.212608; 0.318190; 0.923880;, + 0.212608; 0.513280;-0.831470;, + 0.270598; 0.653282;-0.707107;, + 0.392848; 0.587938;-0.707107;, + 0.308659; 0.461940;-0.831470;, + 0.318190; 0.768178;-0.555570;, + 0.353554; 0.853554;-0.382683;, + 0.513280; 0.768178;-0.382683;, + 0.461940; 0.691342;-0.555570;, + 0.375331; 0.906127;-0.195090;, + 0.382684; 0.923880; 0.000000;, + 0.555571; 0.831470; 0.000000;, + 0.544895; 0.815493;-0.195090;, + 0.544895; 0.815493; 0.195090;, + 0.513280; 0.768178; 0.382683;, + 0.653282; 0.653282; 0.382683;, + 0.693520; 0.693520; 0.195090;, + 0.461940; 0.691342; 0.555570;, + 0.392848; 0.587938; 0.707107;, + 0.500000; 0.500000; 0.707107;, + 0.587938; 0.587938; 0.555570;, + 0.308659; 0.461940; 0.831470;, + 0.212608; 0.318190; 0.923880;, + 0.270599; 0.270598; 0.923880;, + 0.392848; 0.392848; 0.831470;, + 0.212608; 0.318190;-0.923880;, + 0.308659; 0.461940;-0.831470;, + 0.392848; 0.392848;-0.831470;, + 0.270598; 0.270598;-0.923880;, + 0.392848; 0.587938;-0.707107;, + 0.461940; 0.691342;-0.555570;, + 0.587938; 0.587938;-0.555570;, + 0.500000; 0.500000;-0.707107;, + 0.513280; 0.768178;-0.382683;, + 0.544895; 0.815493;-0.195090;, + 0.693520; 0.693520;-0.195090;, + 0.653282; 0.653282;-0.382683;, + 0.555571; 0.831470; 0.000000;, + 0.544895; 0.815493; 0.195090;, + 0.693520; 0.693520; 0.195090;, + 0.707107; 0.707107; 0.000000;, + 0.513280; 0.768178; 0.382683;, + 0.461940; 0.691342; 0.555570;, + 0.587938; 0.587938; 0.555570;, + 0.653282; 0.653282; 0.382683;, + 0.392848; 0.587938; 0.707107;, + 0.308659; 0.461940; 0.831470;, + 0.392848; 0.392848; 0.831470;, + 0.500000; 0.500000; 0.707107;, + 0.108387; 0.162212;-0.980785;, + 0.212608; 0.318190;-0.923880;, + 0.270598; 0.270598;-0.923880;, + 0.137950; 0.137950;-0.980785;, + 0.212608; 0.318190; 0.923880;, + 0.108387; 0.162212; 0.980785;, + 0.137950; 0.137950; 0.980785;, + 0.270599; 0.270598; 0.923880;, + 0.308659; 0.461940;-0.831470;, + 0.392848; 0.587938;-0.707107;, + 0.500000; 0.500000;-0.707107;, + 0.392848; 0.392848;-0.831470;, + 0.461940; 0.691342;-0.555570;, + 0.513280; 0.768178;-0.382683;, + 0.653282; 0.653282;-0.382683;, + 0.587938; 0.587938;-0.555570;, + 0.544895; 0.815493;-0.195090;, + 0.555571; 0.831470; 0.000000;, + 0.707107; 0.707107; 0.000000;, + 0.693520; 0.693520;-0.195090;, + 0.693520; 0.693520; 0.195090;, + 0.653282; 0.653282; 0.382683;, + 0.768178; 0.513280; 0.382683;, + 0.815493; 0.544895; 0.195090;, + 0.587938; 0.587938; 0.555570;, + 0.500000; 0.500000; 0.707107;, + 0.587938; 0.392848; 0.707107;, + 0.691342; 0.461940; 0.555570;, + 0.392848; 0.392848; 0.831470;, + 0.270599; 0.270598; 0.923880;, + 0.318190; 0.212608; 0.923880;, + 0.461940; 0.308658; 0.831470;, + 0.270598; 0.270598;-0.923880;, + 0.392848; 0.392848;-0.831470;, + 0.461940; 0.308658;-0.831470;, + 0.318190; 0.212608;-0.923880;, + 0.500000; 0.500000;-0.707107;, + 0.587938; 0.587938;-0.555570;, + 0.691342; 0.461940;-0.555570;, + 0.587938; 0.392848;-0.707107;, + 0.653282; 0.653282;-0.382683;, + 0.693520; 0.693520;-0.195090;, + 0.815493; 0.544895;-0.195090;, + 0.768178; 0.513280;-0.382683;, + 0.707107; 0.707107; 0.000000;, + 0.693520; 0.693520; 0.195090;, + 0.815493; 0.544895; 0.195090;, + 0.831470; 0.555570; 0.000000;, + 0.653282; 0.653282; 0.382683;, + 0.587938; 0.587938; 0.555570;, + 0.691342; 0.461940; 0.555570;, + 0.768178; 0.513280; 0.382683;, + 0.500000; 0.500000; 0.707107;, + 0.392848; 0.392848; 0.831470;, + 0.461940; 0.308658; 0.831470;, + 0.587938; 0.392848; 0.707107;, + 0.137950; 0.137950;-0.980785;, + 0.270598; 0.270598;-0.923880;, + 0.318190; 0.212608;-0.923880;, + 0.162212; 0.108386;-0.980785;, + 0.270599; 0.270598; 0.923880;, + 0.137950; 0.137950; 0.980785;, + 0.162212; 0.108386; 0.980785;, + 0.318190; 0.212608; 0.923880;, + 0.392848; 0.392848;-0.831470;, + 0.500000; 0.500000;-0.707107;, + 0.587938; 0.392848;-0.707107;, + 0.461940; 0.308658;-0.831470;, + 0.587938; 0.587938;-0.555570;, + 0.653282; 0.653282;-0.382683;, + 0.768178; 0.513280;-0.382683;, + 0.691342; 0.461940;-0.555570;, + 0.693520; 0.693520;-0.195090;, + 0.707107; 0.707107; 0.000000;, + 0.831470; 0.555570; 0.000000;, + 0.815493; 0.544895;-0.195090;, + 0.815493; 0.544895; 0.195090;, + 0.768178; 0.513280; 0.382683;, + 0.853554; 0.353553; 0.382683;, + 0.906128; 0.375330; 0.195090;, + 0.691342; 0.461940; 0.555570;, + 0.587938; 0.392848; 0.707107;, + 0.653282; 0.270598; 0.707107;, + 0.768178; 0.318190; 0.555570;, + 0.461940; 0.308658; 0.831470;, + 0.318190; 0.212608; 0.923880;, + 0.353554; 0.146447; 0.923880;, + 0.513280; 0.212608; 0.831470;, + 0.318190; 0.212608;-0.923880;, + 0.461940; 0.308658;-0.831470;, + 0.513280; 0.212608;-0.831470;, + 0.353554; 0.146447;-0.923880;, + 0.587938; 0.392848;-0.707107;, + 0.691342; 0.461940;-0.555570;, + 0.768178; 0.318190;-0.555570;, + 0.653282; 0.270598;-0.707107;, + 0.768178; 0.513280;-0.382683;, + 0.815493; 0.544895;-0.195090;, + 0.906128; 0.375330;-0.195090;, + 0.853554; 0.353553;-0.382683;, + 0.831470; 0.555570; 0.000000;, + 0.815493; 0.544895; 0.195090;, + 0.906128; 0.375330; 0.195090;, + 0.923880; 0.382683; 0.000000;, + 0.768178; 0.513280; 0.382683;, + 0.691342; 0.461940; 0.555570;, + 0.768178; 0.318190; 0.555570;, + 0.853554; 0.353553; 0.382683;, + 0.587938; 0.392848; 0.707107;, + 0.461940; 0.308658; 0.831470;, + 0.513280; 0.212608; 0.831470;, + 0.653282; 0.270598; 0.707107;, + 0.162212; 0.108386;-0.980785;, + 0.318190; 0.212608;-0.923880;, + 0.353554; 0.146447;-0.923880;, + 0.180240; 0.074658;-0.980785;, + 0.318190; 0.212608; 0.923880;, + 0.162212; 0.108386; 0.980785;, + 0.180240; 0.074658; 0.980785;, + 0.353554; 0.146447; 0.923880;, + 0.461940; 0.308658;-0.831470;, + 0.587938; 0.392848;-0.707107;, + 0.653282; 0.270598;-0.707107;, + 0.513280; 0.212608;-0.831470;, + 0.691342; 0.461940;-0.555570;, + 0.768178; 0.513280;-0.382683;, + 0.853554; 0.353553;-0.382683;, + 0.768178; 0.318190;-0.555570;, + 0.815493; 0.544895;-0.195090;, + 0.831470; 0.555570; 0.000000;, + 0.923880; 0.382683; 0.000000;, + 0.906128; 0.375330;-0.195090;, + 0.906128; 0.375330; 0.195090;, + 0.853554; 0.353553; 0.382683;, + 0.906128; 0.180240; 0.382683;, + 0.961940; 0.191342; 0.195090;, + 0.768178; 0.318190; 0.555570;, + 0.653282; 0.270598; 0.707107;, + 0.693520; 0.137950; 0.707107;, + 0.815493; 0.162212; 0.555570;, + 0.513280; 0.212608; 0.831470;, + 0.353554; 0.146447; 0.923880;, + 0.375331; 0.074658; 0.923880;, + 0.544896; 0.108386; 0.831470;, + 0.353554; 0.146447;-0.923880;, + 0.513280; 0.212608;-0.831470;, + 0.544895; 0.108386;-0.831470;, + 0.375331; 0.074658;-0.923880;, + 0.653282; 0.270598;-0.707107;, + 0.768178; 0.318190;-0.555570;, + 0.815493; 0.162212;-0.555570;, + 0.693520; 0.137950;-0.707107;, + 0.853554; 0.353553;-0.382683;, + 0.906128; 0.375330;-0.195090;, + 0.961940; 0.191342;-0.195090;, + 0.906128; 0.180240;-0.382683;, + 0.923880; 0.382683; 0.000000;, + 0.906128; 0.375330; 0.195090;, + 0.961940; 0.191342; 0.195090;, + 0.980786; 0.195090; 0.000000;, + 0.853554; 0.353553; 0.382683;, + 0.768178; 0.318190; 0.555570;, + 0.815493; 0.162212; 0.555570;, + 0.906128; 0.180240; 0.382683;, + 0.653282; 0.270598; 0.707107;, + 0.513280; 0.212608; 0.831470;, + 0.544896; 0.108386; 0.831470;, + 0.693520; 0.137950; 0.707107;, + 0.180240; 0.074658;-0.980785;, + 0.353554; 0.146447;-0.923880;, + 0.375331; 0.074658;-0.923880;, + 0.191342; 0.038060;-0.980785;, + 0.353554; 0.146447; 0.923880;, + 0.180240; 0.074658; 0.980785;, + 0.191342; 0.038060; 0.980785;, + 0.375331; 0.074658; 0.923880;, + 0.513280; 0.212608;-0.831470;, + 0.653282; 0.270598;-0.707107;, + 0.693520; 0.137950;-0.707107;, + 0.544895; 0.108386;-0.831470;, + 0.768178; 0.318190;-0.555570;, + 0.853554; 0.353553;-0.382683;, + 0.906128; 0.180240;-0.382683;, + 0.815493; 0.162212;-0.555570;, + 0.906128; 0.375330;-0.195090;, + 0.923880; 0.382683; 0.000000;, + 0.980786; 0.195090; 0.000000;, + 0.961940; 0.191342;-0.195090;, + 0.961940; 0.191342; 0.195090;, + 0.906128; 0.180240; 0.382683;, + 0.923880; 0.000000; 0.382683;, + 0.980785;-0.000000; 0.195090;, + 0.815493; 0.162212; 0.555570;, + 0.693520; 0.137950; 0.707107;, + 0.707107;-0.000000; 0.707107;, + 0.831470;-0.000000; 0.555570;, + 0.544896; 0.108386; 0.831470;, + 0.375331; 0.074658; 0.923880;, + 0.382684; 0.000000; 0.923880;, + 0.555571; 0.000000; 0.831470;, + 0.375331; 0.074658;-0.923880;, + 0.544895; 0.108386;-0.831470;, + 0.555570;-0.000000;-0.831470;, + 0.382684; 0.000000;-0.923880;, + 0.693520; 0.137950;-0.707107;, + 0.815493; 0.162212;-0.555570;, + 0.831470;-0.000000;-0.555570;, + 0.707107;-0.000000;-0.707107;, + 0.906128; 0.180240;-0.382683;, + 0.961940; 0.191342;-0.195090;, + 0.980785;-0.000000;-0.195090;, + 0.923880; 0.000000;-0.382683;, + 0.980786; 0.195090; 0.000000;, + 0.961940; 0.191342; 0.195090;, + 0.980785;-0.000000; 0.195090;, + 1.000000;-0.000000; 0.000000;, + 0.906128; 0.180240; 0.382683;, + 0.815493; 0.162212; 0.555570;, + 0.831470;-0.000000; 0.555570;, + 0.923880; 0.000000; 0.382683;, + 0.693520; 0.137950; 0.707107;, + 0.544896; 0.108386; 0.831470;, + 0.555571; 0.000000; 0.831470;, + 0.707107;-0.000000; 0.707107;, + 0.191342; 0.038060;-0.980785;, + 0.375331; 0.074658;-0.923880;, + 0.382684; 0.000000;-0.923880;, + 0.195091; 0.000000;-0.980785;, + 0.375331; 0.074658; 0.923880;, + 0.191342; 0.038060; 0.980785;, + 0.195091;-0.000000; 0.980785;, + 0.382684; 0.000000; 0.923880;, + 0.544895; 0.108386;-0.831470;, + 0.693520; 0.137950;-0.707107;, + 0.707107;-0.000000;-0.707107;, + 0.555570;-0.000000;-0.831470;, + 0.815493; 0.162212;-0.555570;, + 0.906128; 0.180240;-0.382683;, + 0.923880; 0.000000;-0.382683;, + 0.831470;-0.000000;-0.555570;, + 0.961940; 0.191342;-0.195090;, + 0.980786; 0.195090; 0.000000;, + 1.000000;-0.000000; 0.000000;, + 0.980785;-0.000000;-0.195090;, + 0.980785;-0.000000; 0.195090;, + 0.923880; 0.000000; 0.382683;, + 0.906128;-0.180240; 0.382683;, + 0.961940;-0.191342; 0.195090;, + 0.831470;-0.000000; 0.555570;, + 0.707107;-0.000000; 0.707107;, + 0.693520;-0.137950; 0.707107;, + 0.815493;-0.162212; 0.555570;, + 0.555571; 0.000000; 0.831470;, + 0.382684; 0.000000; 0.923880;, + 0.375331;-0.074658; 0.923880;, + 0.544896;-0.108386; 0.831470;, + 0.382684; 0.000000;-0.923880;, + 0.555570;-0.000000;-0.831470;, + 0.544895;-0.108386;-0.831470;, + 0.375331;-0.074658;-0.923880;, + 0.707107;-0.000000;-0.707107;, + 0.831470;-0.000000;-0.555570;, + 0.815493;-0.162212;-0.555570;, + 0.693520;-0.137950;-0.707107;, + 0.923880; 0.000000;-0.382683;, + 0.980785;-0.000000;-0.195090;, + 0.961940;-0.191342;-0.195090;, + 0.906128;-0.180240;-0.382683;, + 1.000000;-0.000000; 0.000000;, + 0.980785;-0.000000; 0.195090;, + 0.961940;-0.191342; 0.195090;, + 0.980786;-0.195090; 0.000000;, + 0.923880; 0.000000; 0.382683;, + 0.831470;-0.000000; 0.555570;, + 0.815493;-0.162212; 0.555570;, + 0.906128;-0.180240; 0.382683;, + 0.707107;-0.000000; 0.707107;, + 0.555571; 0.000000; 0.831470;, + 0.544896;-0.108386; 0.831470;, + 0.693520;-0.137950; 0.707107;, + 0.195091; 0.000000;-0.980785;, + 0.382684; 0.000000;-0.923880;, + 0.375331;-0.074658;-0.923880;, + 0.191342;-0.038060;-0.980785;, + 0.382684; 0.000000; 0.923880;, + 0.195091;-0.000000; 0.980785;, + 0.191342;-0.038060; 0.980785;, + 0.375331;-0.074658; 0.923880;, + 0.555570;-0.000000;-0.831470;, + 0.707107;-0.000000;-0.707107;, + 0.693520;-0.137950;-0.707107;, + 0.544895;-0.108386;-0.831470;, + 0.831470;-0.000000;-0.555570;, + 0.923880; 0.000000;-0.382683;, + 0.906128;-0.180240;-0.382683;, + 0.815493;-0.162212;-0.555570;, + 0.980785;-0.000000;-0.195090;, + 1.000000;-0.000000; 0.000000;, + 0.980786;-0.195090; 0.000000;, + 0.961940;-0.191342;-0.195090;, + 0.961940;-0.191342; 0.195090;, + 0.906128;-0.180240; 0.382683;, + 0.853554;-0.353553; 0.382683;, + 0.906127;-0.375330; 0.195090;, + 0.815493;-0.162212; 0.555570;, + 0.693520;-0.137950; 0.707107;, + 0.653282;-0.270598; 0.707107;, + 0.768178;-0.318190; 0.555570;, + 0.544896;-0.108386; 0.831470;, + 0.375331;-0.074658; 0.923880;, + 0.353554;-0.146447; 0.923880;, + 0.513280;-0.212608; 0.831470;, + 0.375331;-0.074658;-0.923880;, + 0.544895;-0.108386;-0.831470;, + 0.513280;-0.212608;-0.831470;, + 0.353554;-0.146447;-0.923880;, + 0.693520;-0.137950;-0.707107;, + 0.815493;-0.162212;-0.555570;, + 0.768178;-0.318190;-0.555570;, + 0.653282;-0.270598;-0.707107;, + 0.906128;-0.180240;-0.382683;, + 0.961940;-0.191342;-0.195090;, + 0.906127;-0.375330;-0.195090;, + 0.853554;-0.353553;-0.382683;, + 0.980786;-0.195090; 0.000000;, + 0.961940;-0.191342; 0.195090;, + 0.906127;-0.375330; 0.195090;, + 0.923880;-0.382684; 0.000000;, + 0.906128;-0.180240; 0.382683;, + 0.815493;-0.162212; 0.555570;, + 0.768178;-0.318190; 0.555570;, + 0.853554;-0.353553; 0.382683;, + 0.693520;-0.137950; 0.707107;, + 0.544896;-0.108386; 0.831470;, + 0.513280;-0.212608; 0.831470;, + 0.653282;-0.270598; 0.707107;, + 0.191342;-0.038060;-0.980785;, + 0.375331;-0.074658;-0.923880;, + 0.353554;-0.146447;-0.923880;, + 0.180240;-0.074658;-0.980785;, + 0.375331;-0.074658; 0.923880;, + 0.191342;-0.038060; 0.980785;, + 0.180240;-0.074658; 0.980785;, + 0.353554;-0.146447; 0.923880;, + 0.544895;-0.108386;-0.831470;, + 0.693520;-0.137950;-0.707107;, + 0.653282;-0.270598;-0.707107;, + 0.513280;-0.212608;-0.831470;, + 0.815493;-0.162212;-0.555570;, + 0.906128;-0.180240;-0.382683;, + 0.853554;-0.353553;-0.382683;, + 0.768178;-0.318190;-0.555570;, + 0.961940;-0.191342;-0.195090;, + 0.980786;-0.195090; 0.000000;, + 0.923880;-0.382684; 0.000000;, + 0.906127;-0.375330;-0.195090;, + 0.906127;-0.375330; 0.195090;, + 0.853554;-0.353553; 0.382683;, + 0.768178;-0.513280; 0.382683;, + 0.815493;-0.544895; 0.195090;, + 0.768178;-0.318190; 0.555570;, + 0.653282;-0.270598; 0.707107;, + 0.587938;-0.392847; 0.707107;, + 0.691342;-0.461940; 0.555570;, + 0.513280;-0.212608; 0.831470;, + 0.353554;-0.146447; 0.923880;, + 0.318190;-0.212608; 0.923880;, + 0.461940;-0.308658; 0.831470;, + 0.353554;-0.146447;-0.923880;, + 0.513280;-0.212608;-0.831470;, + 0.461940;-0.308658;-0.831470;, + 0.318190;-0.212607;-0.923880;, + 0.653282;-0.270598;-0.707107;, + 0.768178;-0.318190;-0.555570;, + 0.691342;-0.461940;-0.555570;, + 0.587938;-0.392847;-0.707107;, + 0.853554;-0.353553;-0.382683;, + 0.906127;-0.375330;-0.195090;, + 0.815493;-0.544895;-0.195090;, + 0.768178;-0.513280;-0.382683;, + 0.923880;-0.382684; 0.000000;, + 0.906127;-0.375330; 0.195090;, + 0.815493;-0.544895; 0.195090;, + 0.831470;-0.555570; 0.000000;, + 0.853554;-0.353553; 0.382683;, + 0.768178;-0.318190; 0.555570;, + 0.691342;-0.461940; 0.555570;, + 0.768178;-0.513280; 0.382683;, + 0.653282;-0.270598; 0.707107;, + 0.513280;-0.212608; 0.831470;, + 0.461940;-0.308658; 0.831470;, + 0.587938;-0.392847; 0.707107;, + 0.180240;-0.074658;-0.980785;, + 0.353554;-0.146447;-0.923880;, + 0.318190;-0.212607;-0.923880;, + 0.162212;-0.108386;-0.980785;, + 0.353554;-0.146447; 0.923880;, + 0.180240;-0.074658; 0.980785;, + 0.162212;-0.108386; 0.980785;, + 0.318190;-0.212608; 0.923880;, + 0.513280;-0.212608;-0.831470;, + 0.653282;-0.270598;-0.707107;, + 0.587938;-0.392847;-0.707107;, + 0.461940;-0.308658;-0.831470;, + 0.768178;-0.318190;-0.555570;, + 0.853554;-0.353553;-0.382683;, + 0.768178;-0.513280;-0.382683;, + 0.691342;-0.461940;-0.555570;, + 0.906127;-0.375330;-0.195090;, + 0.923880;-0.382684; 0.000000;, + 0.831470;-0.555570; 0.000000;, + 0.815493;-0.544895;-0.195090;, + 0.815493;-0.544895; 0.195090;, + 0.768178;-0.513280; 0.382683;, + 0.653282;-0.653281; 0.382683;, + 0.693520;-0.693520; 0.195090;, + 0.691342;-0.461940; 0.555570;, + 0.587938;-0.392847; 0.707107;, + 0.500000;-0.500000; 0.707107;, + 0.587938;-0.587938; 0.555570;, + 0.461940;-0.308658; 0.831470;, + 0.318190;-0.212608; 0.923880;, + 0.270598;-0.270598; 0.923880;, + 0.392848;-0.392848; 0.831470;, + 0.318190;-0.212607;-0.923880;, + 0.461940;-0.308658;-0.831470;, + 0.392848;-0.392847;-0.831470;, + 0.270598;-0.270598;-0.923880;, + 0.587938;-0.392847;-0.707107;, + 0.691342;-0.461940;-0.555570;, + 0.587938;-0.587938;-0.555570;, + 0.500000;-0.500000;-0.707107;, + 0.768178;-0.513280;-0.382683;, + 0.815493;-0.544895;-0.195090;, + 0.693520;-0.693520;-0.195090;, + 0.653282;-0.653281;-0.382683;, + 0.831470;-0.555570; 0.000000;, + 0.815493;-0.544895; 0.195090;, + 0.693520;-0.693520; 0.195090;, + 0.707107;-0.707107; 0.000000;, + 0.768178;-0.513280; 0.382683;, + 0.691342;-0.461940; 0.555570;, + 0.587938;-0.587938; 0.555570;, + 0.653282;-0.653281; 0.382683;, + 0.587938;-0.392847; 0.707107;, + 0.461940;-0.308658; 0.831470;, + 0.392848;-0.392848; 0.831470;, + 0.500000;-0.500000; 0.707107;, + 0.162212;-0.108386;-0.980785;, + 0.318190;-0.212607;-0.923880;, + 0.270598;-0.270598;-0.923880;, + 0.137950;-0.137950;-0.980785;, + 0.318190;-0.212608; 0.923880;, + 0.162212;-0.108386; 0.980785;, + 0.137950;-0.137950; 0.980785;, + 0.270598;-0.270598; 0.923880;, + 0.461940;-0.308658;-0.831470;, + 0.587938;-0.392847;-0.707107;, + 0.500000;-0.500000;-0.707107;, + 0.392848;-0.392847;-0.831470;, + 0.691342;-0.461940;-0.555570;, + 0.768178;-0.513280;-0.382683;, + 0.653282;-0.653281;-0.382683;, + 0.587938;-0.587938;-0.555570;, + 0.815493;-0.544895;-0.195090;, + 0.831470;-0.555570; 0.000000;, + 0.707107;-0.707107; 0.000000;, + 0.693520;-0.693520;-0.195090;, + 0.693520;-0.693520; 0.195090;, + 0.653282;-0.653281; 0.382683;, + 0.513280;-0.768178; 0.382683;, + 0.544895;-0.815493; 0.195090;, + 0.587938;-0.587938; 0.555570;, + 0.500000;-0.500000; 0.707107;, + 0.392848;-0.587938; 0.707107;, + 0.461940;-0.691342; 0.555570;, + 0.392848;-0.392848; 0.831470;, + 0.270598;-0.270598; 0.923880;, + 0.212608;-0.318190; 0.923880;, + 0.308659;-0.461940; 0.831470;, + 0.270598;-0.270598;-0.923880;, + 0.392848;-0.392847;-0.831470;, + 0.308658;-0.461940;-0.831470;, + 0.212608;-0.318190;-0.923880;, + 0.500000;-0.500000;-0.707107;, + 0.587938;-0.587938;-0.555570;, + 0.461940;-0.691342;-0.555570;, + 0.392848;-0.587938;-0.707107;, + 0.653282;-0.653281;-0.382683;, + 0.693520;-0.693520;-0.195090;, + 0.544895;-0.815493;-0.195090;, + 0.513280;-0.768178;-0.382683;, + 0.707107;-0.707107; 0.000000;, + 0.693520;-0.693520; 0.195090;, + 0.544895;-0.815493; 0.195090;, + 0.555570;-0.831470; 0.000000;, + 0.653282;-0.653281; 0.382683;, + 0.587938;-0.587938; 0.555570;, + 0.461940;-0.691342; 0.555570;, + 0.513280;-0.768178; 0.382683;, + 0.500000;-0.500000; 0.707107;, + 0.392848;-0.392848; 0.831470;, + 0.308659;-0.461940; 0.831470;, + 0.392848;-0.587938; 0.707107;, + 0.137950;-0.137950;-0.980785;, + 0.270598;-0.270598;-0.923880;, + 0.212608;-0.318190;-0.923880;, + 0.108387;-0.162212;-0.980785;, + 0.270598;-0.270598; 0.923880;, + 0.137950;-0.137950; 0.980785;, + 0.108387;-0.162212; 0.980785;, + 0.212608;-0.318190; 0.923880;, + 0.392848;-0.392847;-0.831470;, + 0.500000;-0.500000;-0.707107;, + 0.392848;-0.587938;-0.707107;, + 0.308658;-0.461940;-0.831470;, + 0.587938;-0.587938;-0.555570;, + 0.653282;-0.653281;-0.382683;, + 0.513280;-0.768178;-0.382683;, + 0.461940;-0.691342;-0.555570;, + 0.693520;-0.693520;-0.195090;, + 0.707107;-0.707107; 0.000000;, + 0.555570;-0.831470; 0.000000;, + 0.544895;-0.815493;-0.195090;, + 0.544895;-0.815493; 0.195090;, + 0.513280;-0.768178; 0.382683;, + 0.353554;-0.853553; 0.382683;, + 0.375330;-0.906127; 0.195090;, + 0.461940;-0.691342; 0.555570;, + 0.392848;-0.587938; 0.707107;, + 0.270598;-0.653281; 0.707107;, + 0.318190;-0.768177; 0.555570;, + 0.308659;-0.461940; 0.831470;, + 0.212608;-0.318190; 0.923880;, + 0.146447;-0.353553; 0.923880;, + 0.212608;-0.513280; 0.831470;, + 0.212608;-0.318190;-0.923880;, + 0.308658;-0.461940;-0.831470;, + 0.212608;-0.513280;-0.831470;, + 0.146447;-0.353553;-0.923880;, + 0.392848;-0.587938;-0.707107;, + 0.461940;-0.691342;-0.555570;, + 0.318190;-0.768177;-0.555570;, + 0.270598;-0.653281;-0.707107;, + 0.513280;-0.768178;-0.382683;, + 0.544895;-0.815493;-0.195090;, + 0.375330;-0.906127;-0.195090;, + 0.353554;-0.853553;-0.382683;, + 0.555570;-0.831470; 0.000000;, + 0.544895;-0.815493; 0.195090;, + 0.375330;-0.906127; 0.195090;, + 0.382684;-0.923880; 0.000000;, + 0.513280;-0.768178; 0.382683;, + 0.461940;-0.691342; 0.555570;, + 0.318190;-0.768177; 0.555570;, + 0.353554;-0.853553; 0.382683;, + 0.392848;-0.587938; 0.707107;, + 0.308659;-0.461940; 0.831470;, + 0.212608;-0.513280; 0.831470;, + 0.270598;-0.653281; 0.707107;, + 0.108387;-0.162212;-0.980785;, + 0.212608;-0.318190;-0.923880;, + 0.146447;-0.353553;-0.923880;, + 0.074658;-0.180240;-0.980785;, + 0.212608;-0.318190; 0.923880;, + 0.108387;-0.162212; 0.980785;, + 0.074658;-0.180240; 0.980785;, + 0.146447;-0.353553; 0.923880;, + 0.308658;-0.461940;-0.831470;, + 0.392848;-0.587938;-0.707107;, + 0.270598;-0.653281;-0.707107;, + 0.212608;-0.513280;-0.831470;, + 0.461940;-0.691342;-0.555570;, + 0.513280;-0.768178;-0.382683;, + 0.353554;-0.853553;-0.382683;, + 0.318190;-0.768177;-0.555570;, + 0.544895;-0.815493;-0.195090;, + 0.555570;-0.831470; 0.000000;, + 0.382684;-0.923880; 0.000000;, + 0.375330;-0.906127;-0.195090;, + 0.375330;-0.906127; 0.195090;, + 0.353554;-0.853553; 0.382683;, + 0.180240;-0.906127; 0.382683;, + 0.191342;-0.961939; 0.195090;, + 0.318190;-0.768177; 0.555570;, + 0.270598;-0.653281; 0.707107;, + 0.137950;-0.693520; 0.707107;, + 0.162212;-0.815493; 0.555570;, + 0.212608;-0.513280; 0.831470;, + 0.146447;-0.353553; 0.923880;, + 0.074658;-0.375330; 0.923880;, + 0.108387;-0.544895; 0.831470;, + 0.146447;-0.353553;-0.923880;, + 0.212608;-0.513280;-0.831470;, + 0.108387;-0.544895;-0.831470;, + 0.074658;-0.375330;-0.923880;, + 0.270598;-0.653281;-0.707107;, + 0.318190;-0.768177;-0.555570;, + 0.162212;-0.815493;-0.555570;, + 0.137950;-0.693520;-0.707107;, + 0.353554;-0.853553;-0.382683;, + 0.375330;-0.906127;-0.195090;, + 0.191342;-0.961939;-0.195090;, + 0.180240;-0.906127;-0.382683;, + 0.382684;-0.923880; 0.000000;, + 0.375330;-0.906127; 0.195090;, + 0.191342;-0.961939; 0.195090;, + 0.195090;-0.980785; 0.000000;, + 0.353554;-0.853553; 0.382683;, + 0.318190;-0.768177; 0.555570;, + 0.162212;-0.815493; 0.555570;, + 0.180240;-0.906127; 0.382683;, + 0.270598;-0.653281; 0.707107;, + 0.212608;-0.513280; 0.831470;, + 0.108387;-0.544895; 0.831470;, + 0.137950;-0.693520; 0.707107;, + 0.074658;-0.180240;-0.980785;, + 0.146447;-0.353553;-0.923880;, + 0.074658;-0.375330;-0.923880;, + 0.038061;-0.191342;-0.980785;, + 0.146447;-0.353553; 0.923880;, + 0.074658;-0.180240; 0.980785;, + 0.038061;-0.191342; 0.980785;, + 0.074658;-0.375330; 0.923880;, + 0.212608;-0.513280;-0.831470;, + 0.270598;-0.653281;-0.707107;, + 0.137950;-0.693520;-0.707107;, + 0.108387;-0.544895;-0.831470;, + 0.318190;-0.768177;-0.555570;, + 0.353554;-0.853553;-0.382683;, + 0.180240;-0.906127;-0.382683;, + 0.162212;-0.815493;-0.555570;, + 0.375330;-0.906127;-0.195090;, + 0.382684;-0.923880; 0.000000;, + 0.195090;-0.980785; 0.000000;, + 0.191342;-0.961939;-0.195090;, + 0.191342;-0.961939; 0.195090;, + 0.180240;-0.906127; 0.382683;, + 0.000000;-0.923879; 0.382683;, + 0.000000;-0.980785; 0.195090;, + 0.162212;-0.815493; 0.555570;, + 0.137950;-0.693520; 0.707107;, + 0.000000;-0.707107; 0.707107;, + 0.000000;-0.831469; 0.555570;, + 0.108387;-0.544895; 0.831470;, + 0.074658;-0.375330; 0.923880;, + 0.000000;-0.382683; 0.923880;, + 0.000000;-0.555570; 0.831470;, + 0.074658;-0.375330;-0.923880;, + 0.108387;-0.544895;-0.831470;, + 0.000000;-0.555570;-0.831470;, + 0.000000;-0.382683;-0.923880;, + 0.137950;-0.693520;-0.707107;, + 0.162212;-0.815493;-0.555570;, + 0.000000;-0.831469;-0.555570;, + 0.000000;-0.707107;-0.707107;, + 0.180240;-0.906127;-0.382683;, + 0.191342;-0.961939;-0.195090;, + 0.000000;-0.980785;-0.195090;, + 0.000000;-0.923879;-0.382683;, + 0.195090;-0.980785; 0.000000;, + 0.191342;-0.961939; 0.195090;, + 0.000000;-0.980785; 0.195090;, + 0.000000;-1.000000; 0.000000;, + 0.180240;-0.906127; 0.382683;, + 0.162212;-0.815493; 0.555570;, + 0.000000;-0.831469; 0.555570;, + 0.000000;-0.923879; 0.382683;, + 0.137950;-0.693520; 0.707107;, + 0.108387;-0.544895; 0.831470;, + 0.000000;-0.555570; 0.831470;, + 0.000000;-0.707107; 0.707107;, + 0.038061;-0.191342;-0.980785;, + 0.074658;-0.375330;-0.923880;, + 0.000000;-0.382683;-0.923880;, + 0.000000;-0.195090;-0.980785;, + 0.074658;-0.375330; 0.923880;, + 0.038061;-0.191342; 0.980785;, + 0.000000;-0.195090; 0.980785;, + 0.000000;-0.382683; 0.923880;, + 0.108387;-0.544895;-0.831470;, + 0.137950;-0.693520;-0.707107;, + 0.000000;-0.707107;-0.707107;, + 0.000000;-0.555570;-0.831470;, + 0.162212;-0.815493;-0.555570;, + 0.180240;-0.906127;-0.382683;, + 0.000000;-0.923879;-0.382683;, + 0.000000;-0.831469;-0.555570;, + 0.191342;-0.961939;-0.195090;, + 0.195090;-0.980785; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.980785;-0.195090;, + 0.000000;-0.980785; 0.195090;, + 0.000000;-0.923879; 0.382683;, + -0.180240;-0.906127; 0.382683;, + -0.191342;-0.961939; 0.195090;, + 0.000000;-0.831469; 0.555570;, + 0.000000;-0.707107; 0.707107;, + -0.137949;-0.693520; 0.707107;, + -0.162211;-0.815493; 0.555570;, + 0.000000;-0.555570; 0.831470;, + 0.000000;-0.382683; 0.923880;, + -0.074658;-0.375330; 0.923880;, + -0.108386;-0.544895; 0.831470;, + 0.000000;-0.382683;-0.923880;, + 0.000000;-0.555570;-0.831470;, + -0.108386;-0.544895;-0.831470;, + -0.074658;-0.375330;-0.923880;, + 0.000000;-0.707107;-0.707107;, + 0.000000;-0.831469;-0.555570;, + -0.162211;-0.815493;-0.555570;, + -0.137949;-0.693520;-0.707107;, + 0.000000;-0.923879;-0.382683;, + 0.000000;-0.980785;-0.195090;, + -0.191342;-0.961939;-0.195090;, + -0.180240;-0.906127;-0.382683;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.980785; 0.195090;, + -0.191342;-0.961939; 0.195090;, + -0.195090;-0.980785; 0.000000;, + 0.000000;-0.923879; 0.382683;, + 0.000000;-0.831469; 0.555570;, + -0.162211;-0.815493; 0.555570;, + -0.180240;-0.906127; 0.382683;, + 0.000000;-0.707107; 0.707107;, + 0.000000;-0.555570; 0.831470;, + -0.108386;-0.544895; 0.831470;, + -0.137949;-0.693520; 0.707107;, + 0.000000;-0.195090;-0.980785;, + 0.000000;-0.382683;-0.923880;, + -0.074658;-0.375330;-0.923880;, + -0.038060;-0.191342;-0.980785;, + 0.000000;-0.382683; 0.923880;, + 0.000000;-0.195090; 0.980785;, + -0.038060;-0.191342; 0.980785;, + -0.074658;-0.375330; 0.923880;, + 0.000000;-0.555570;-0.831470;, + 0.000000;-0.707107;-0.707107;, + -0.137949;-0.693520;-0.707107;, + -0.108386;-0.544895;-0.831470;, + 0.000000;-0.831469;-0.555570;, + 0.000000;-0.923879;-0.382683;, + -0.180240;-0.906127;-0.382683;, + -0.162211;-0.815493;-0.555570;, + 0.000000;-0.980785;-0.195090;, + 0.000000;-1.000000; 0.000000;, + -0.195090;-0.980785; 0.000000;, + -0.191342;-0.961939;-0.195090;, + -0.191342;-0.961939; 0.195090;, + -0.180240;-0.906127; 0.382683;, + -0.353553;-0.853553; 0.382683;, + -0.375330;-0.906127; 0.195090;, + -0.162211;-0.815493; 0.555570;, + -0.137949;-0.693520; 0.707107;, + -0.270598;-0.653281; 0.707107;, + -0.318189;-0.768177; 0.555570;, + -0.108386;-0.544895; 0.831470;, + -0.074658;-0.375330; 0.923880;, + -0.146446;-0.353553; 0.923880;, + -0.212607;-0.513280; 0.831470;, + -0.074658;-0.375330;-0.923880;, + -0.108386;-0.544895;-0.831470;, + -0.212607;-0.513280;-0.831470;, + -0.146446;-0.353553;-0.923880;, + -0.137949;-0.693520;-0.707107;, + -0.162211;-0.815493;-0.555570;, + -0.318189;-0.768177;-0.555570;, + -0.270598;-0.653281;-0.707107;, + -0.180240;-0.906127;-0.382683;, + -0.191342;-0.961939;-0.195090;, + -0.375330;-0.906127;-0.195090;, + -0.353553;-0.853553;-0.382683;, + -0.195090;-0.980785; 0.000000;, + -0.191342;-0.961939; 0.195090;, + -0.375330;-0.906127; 0.195090;, + -0.382683;-0.923879; 0.000000;, + -0.180240;-0.906127; 0.382683;, + -0.162211;-0.815493; 0.555570;, + -0.318189;-0.768177; 0.555570;, + -0.353553;-0.853553; 0.382683;, + -0.137949;-0.693520; 0.707107;, + -0.108386;-0.544895; 0.831470;, + -0.212607;-0.513280; 0.831470;, + -0.270598;-0.653281; 0.707107;, + -0.038060;-0.191342;-0.980785;, + -0.074658;-0.375330;-0.923880;, + -0.146446;-0.353553;-0.923880;, + -0.074657;-0.180240;-0.980785;, + -0.074658;-0.375330; 0.923880;, + -0.038060;-0.191342; 0.980785;, + -0.074658;-0.180240; 0.980785;, + -0.146446;-0.353553; 0.923880;, + -0.108386;-0.544895;-0.831470;, + -0.137949;-0.693520;-0.707107;, + -0.270598;-0.653281;-0.707107;, + -0.212607;-0.513280;-0.831470;, + -0.162211;-0.815493;-0.555570;, + -0.180240;-0.906127;-0.382683;, + -0.353553;-0.853553;-0.382683;, + -0.318189;-0.768177;-0.555570;, + -0.191342;-0.961939;-0.195090;, + -0.195090;-0.980785; 0.000000;, + -0.382683;-0.923879; 0.000000;, + -0.375330;-0.906127;-0.195090;, + -0.375330;-0.906127; 0.195090;, + -0.353553;-0.853553; 0.382683;, + -0.513280;-0.768178; 0.382683;, + -0.544895;-0.815493; 0.195090;, + -0.318189;-0.768177; 0.555570;, + -0.270598;-0.653281; 0.707107;, + -0.392847;-0.587938; 0.707107;, + -0.461939;-0.691341; 0.555570;, + -0.212607;-0.513280; 0.831470;, + -0.146446;-0.353553; 0.923880;, + -0.212607;-0.318190; 0.923880;, + -0.308658;-0.461940; 0.831470;, + -0.146446;-0.353553;-0.923880;, + -0.212607;-0.513280;-0.831470;, + -0.308658;-0.461940;-0.831470;, + -0.212607;-0.318189;-0.923880;, + -0.270598;-0.653281;-0.707107;, + -0.318189;-0.768177;-0.555570;, + -0.461939;-0.691341;-0.555570;, + -0.392847;-0.587938;-0.707107;, + -0.353553;-0.853553;-0.382683;, + -0.375330;-0.906127;-0.195090;, + -0.544895;-0.815493;-0.195090;, + -0.513280;-0.768178;-0.382683;, + -0.382683;-0.923879; 0.000000;, + -0.375330;-0.906127; 0.195090;, + -0.544895;-0.815493; 0.195090;, + -0.555570;-0.831469; 0.000000;, + -0.353553;-0.853553; 0.382683;, + -0.318189;-0.768177; 0.555570;, + -0.461939;-0.691341; 0.555570;, + -0.513280;-0.768178; 0.382683;, + -0.270598;-0.653281; 0.707107;, + -0.212607;-0.513280; 0.831470;, + -0.308658;-0.461940; 0.831470;, + -0.392847;-0.587938; 0.707107;, + -0.074657;-0.180240;-0.980785;, + -0.146446;-0.353553;-0.923880;, + -0.212607;-0.318189;-0.923880;, + -0.108386;-0.162212;-0.980785;, + -0.146446;-0.353553; 0.923880;, + -0.074658;-0.180240; 0.980785;, + -0.108386;-0.162212; 0.980785;, + -0.212607;-0.318190; 0.923880;, + -0.212607;-0.513280;-0.831470;, + -0.270598;-0.653281;-0.707107;, + -0.392847;-0.587938;-0.707107;, + -0.308658;-0.461940;-0.831470;, + -0.318189;-0.768177;-0.555570;, + -0.353553;-0.853553;-0.382683;, + -0.513280;-0.768178;-0.382683;, + -0.461939;-0.691341;-0.555570;, + -0.375330;-0.906127;-0.195090;, + -0.382683;-0.923879; 0.000000;, + -0.555570;-0.831469; 0.000000;, + -0.544895;-0.815493;-0.195090;, + -0.544895;-0.815493; 0.195090;, + -0.513280;-0.768178; 0.382683;, + -0.653281;-0.653281; 0.382683;, + -0.693519;-0.693519; 0.195090;, + -0.461939;-0.691341; 0.555570;, + -0.392847;-0.587938; 0.707107;, + -0.500000;-0.500000; 0.707107;, + -0.587937;-0.587937; 0.555570;, + -0.308658;-0.461940; 0.831470;, + -0.212607;-0.318190; 0.923880;, + -0.270598;-0.270598; 0.923880;, + -0.392847;-0.392847; 0.831470;, + -0.212607;-0.318189;-0.923880;, + -0.308658;-0.461940;-0.831470;, + -0.392847;-0.392847;-0.831470;, + -0.270598;-0.270598;-0.923880;, + -0.392847;-0.587938;-0.707107;, + -0.461939;-0.691341;-0.555570;, + -0.587937;-0.587937;-0.555570;, + -0.500000;-0.500000;-0.707107;, + -0.513280;-0.768178;-0.382683;, + -0.544895;-0.815493;-0.195090;, + -0.693519;-0.693519;-0.195090;, + -0.653281;-0.653281;-0.382683;, + -0.555570;-0.831469; 0.000000;, + -0.544895;-0.815493; 0.195090;, + -0.693519;-0.693519; 0.195090;, + -0.707106;-0.707106; 0.000000;, + -0.513280;-0.768178; 0.382683;, + -0.461939;-0.691341; 0.555570;, + -0.587937;-0.587937; 0.555570;, + -0.653281;-0.653281; 0.382683;, + -0.392847;-0.587938; 0.707107;, + -0.308658;-0.461940; 0.831470;, + -0.392847;-0.392847; 0.831470;, + -0.500000;-0.500000; 0.707107;, + -0.108386;-0.162212;-0.980785;, + -0.212607;-0.318189;-0.923880;, + -0.270598;-0.270598;-0.923880;, + -0.137949;-0.137950;-0.980785;, + -0.212607;-0.318190; 0.923880;, + -0.108386;-0.162212; 0.980785;, + -0.137949;-0.137950; 0.980785;, + -0.270598;-0.270598; 0.923880;, + -0.308658;-0.461940;-0.831470;, + -0.392847;-0.587938;-0.707107;, + -0.500000;-0.500000;-0.707107;, + -0.392847;-0.392847;-0.831470;, + -0.461939;-0.691341;-0.555570;, + -0.513280;-0.768178;-0.382683;, + -0.653281;-0.653281;-0.382683;, + -0.587937;-0.587937;-0.555570;, + -0.544895;-0.815493;-0.195090;, + -0.555570;-0.831469; 0.000000;, + -0.707106;-0.707106; 0.000000;, + -0.693519;-0.693519;-0.195090;, + -0.693519;-0.693519; 0.195090;, + -0.653281;-0.653281; 0.382683;, + -0.768177;-0.513280; 0.382683;, + -0.815492;-0.544895; 0.195090;, + -0.587937;-0.587937; 0.555570;, + -0.500000;-0.500000; 0.707107;, + -0.587937;-0.392847; 0.707107;, + -0.691341;-0.461939; 0.555570;, + -0.392847;-0.392847; 0.831470;, + -0.270598;-0.270598; 0.923880;, + -0.318189;-0.212607; 0.923880;, + -0.461939;-0.308658; 0.831470;, + -0.270598;-0.270598;-0.923880;, + -0.392847;-0.392847;-0.831470;, + -0.461939;-0.308658;-0.831470;, + -0.318189;-0.212607;-0.923880;, + -0.500000;-0.500000;-0.707107;, + -0.587937;-0.587937;-0.555570;, + -0.691341;-0.461939;-0.555570;, + -0.587937;-0.392847;-0.707107;, + -0.653281;-0.653281;-0.382683;, + -0.693519;-0.693519;-0.195090;, + -0.815492;-0.544895;-0.195090;, + -0.768177;-0.513280;-0.382683;, + -0.707106;-0.707106; 0.000000;, + -0.693519;-0.693519; 0.195090;, + -0.815492;-0.544895; 0.195090;, + -0.831469;-0.555570; 0.000000;, + -0.653281;-0.653281; 0.382683;, + -0.587937;-0.587937; 0.555570;, + -0.691341;-0.461939; 0.555570;, + -0.768177;-0.513280; 0.382683;, + -0.500000;-0.500000; 0.707107;, + -0.392847;-0.392847; 0.831470;, + -0.461939;-0.308658; 0.831470;, + -0.587937;-0.392847; 0.707107;, + -0.137949;-0.137950;-0.980785;, + -0.270598;-0.270598;-0.923880;, + -0.318189;-0.212607;-0.923880;, + -0.162211;-0.108386;-0.980785;, + -0.270598;-0.270598; 0.923880;, + -0.137949;-0.137950; 0.980785;, + -0.162211;-0.108386; 0.980785;, + -0.318189;-0.212607; 0.923880;, + -0.392847;-0.392847;-0.831470;, + -0.500000;-0.500000;-0.707107;, + -0.587937;-0.392847;-0.707107;, + -0.461939;-0.308658;-0.831470;, + -0.587937;-0.587937;-0.555570;, + -0.653281;-0.653281;-0.382683;, + -0.768177;-0.513280;-0.382683;, + -0.691341;-0.461939;-0.555570;, + -0.693519;-0.693519;-0.195090;, + -0.707106;-0.707106; 0.000000;, + -0.831469;-0.555570; 0.000000;, + -0.815492;-0.544895;-0.195090;, + -0.815492;-0.544895; 0.195090;, + -0.768177;-0.513280; 0.382683;, + -0.853553;-0.353553; 0.382683;, + -0.906127;-0.375330; 0.195090;, + -0.691341;-0.461939; 0.555570;, + -0.587937;-0.392847; 0.707107;, + -0.653281;-0.270598; 0.707107;, + -0.768177;-0.318189; 0.555570;, + -0.461939;-0.308658; 0.831470;, + -0.318189;-0.212607; 0.923880;, + -0.353553;-0.146447; 0.923880;, + -0.513280;-0.212607; 0.831470;, + -0.318189;-0.212607;-0.923880;, + -0.461939;-0.308658;-0.831470;, + -0.513279;-0.212607;-0.831470;, + -0.353553;-0.146446;-0.923880;, + -0.587937;-0.392847;-0.707107;, + -0.691341;-0.461939;-0.555570;, + -0.768177;-0.318189;-0.555570;, + -0.653281;-0.270598;-0.707107;, + -0.768177;-0.513280;-0.382683;, + -0.815492;-0.544895;-0.195090;, + -0.906127;-0.375330;-0.195090;, + -0.853553;-0.353553;-0.382683;, + -0.831469;-0.555570; 0.000000;, + -0.815492;-0.544895; 0.195090;, + -0.906127;-0.375330; 0.195090;, + -0.923879;-0.382683; 0.000000;, + -0.768177;-0.513280; 0.382683;, + -0.691341;-0.461939; 0.555570;, + -0.768177;-0.318189; 0.555570;, + -0.853553;-0.353553; 0.382683;, + -0.587937;-0.392847; 0.707107;, + -0.461939;-0.308658; 0.831470;, + -0.513280;-0.212607; 0.831470;, + -0.653281;-0.270598; 0.707107;, + -0.162211;-0.108386;-0.980785;, + -0.318189;-0.212607;-0.923880;, + -0.353553;-0.146446;-0.923880;, + -0.180240;-0.074658;-0.980785;, + -0.318189;-0.212607; 0.923880;, + -0.162211;-0.108386; 0.980785;, + -0.180240;-0.074658; 0.980785;, + -0.353553;-0.146447; 0.923880;, + -0.461939;-0.308658;-0.831470;, + -0.587937;-0.392847;-0.707107;, + -0.653281;-0.270598;-0.707107;, + -0.513279;-0.212607;-0.831470;, + -0.691341;-0.461939;-0.555570;, + -0.768177;-0.513280;-0.382683;, + -0.853553;-0.353553;-0.382683;, + -0.768177;-0.318189;-0.555570;, + -0.815492;-0.544895;-0.195090;, + -0.831469;-0.555570; 0.000000;, + -0.923879;-0.382683; 0.000000;, + -0.906127;-0.375330;-0.195090;, + -0.906127;-0.375330; 0.195090;, + -0.853553;-0.353553; 0.382683;, + -0.906127;-0.180240; 0.382683;, + -0.961939;-0.191341; 0.195090;, + -0.768177;-0.318189; 0.555570;, + -0.653281;-0.270598; 0.707107;, + -0.693520;-0.137950; 0.707107;, + -0.815492;-0.162211; 0.555570;, + -0.513280;-0.212607; 0.831470;, + -0.353553;-0.146447; 0.923880;, + -0.375330;-0.074658; 0.923880;, + -0.544895;-0.108386; 0.831470;, + -0.353553;-0.146446;-0.923880;, + -0.513279;-0.212607;-0.831470;, + -0.544895;-0.108386;-0.831470;, + -0.375330;-0.074658;-0.923880;, + -0.653281;-0.270598;-0.707107;, + -0.768177;-0.318189;-0.555570;, + -0.815492;-0.162211;-0.555570;, + -0.693520;-0.137950;-0.707107;, + -0.853553;-0.353553;-0.382683;, + -0.906127;-0.375330;-0.195090;, + -0.961939;-0.191341;-0.195090;, + -0.906127;-0.180240;-0.382683;, + -0.923879;-0.382683; 0.000000;, + -0.906127;-0.375330; 0.195090;, + -0.961939;-0.191341; 0.195090;, + -0.980785;-0.195090; 0.000000;, + -0.853553;-0.353553; 0.382683;, + -0.768177;-0.318189; 0.555570;, + -0.815492;-0.162211; 0.555570;, + -0.906127;-0.180240; 0.382683;, + -0.653281;-0.270598; 0.707107;, + -0.513280;-0.212607; 0.831470;, + -0.544895;-0.108386; 0.831470;, + -0.693520;-0.137950; 0.707107;, + -0.180240;-0.074658;-0.980785;, + -0.353553;-0.146446;-0.923880;, + -0.375330;-0.074658;-0.923880;, + -0.191341;-0.038060;-0.980785;, + -0.353553;-0.146447; 0.923880;, + -0.180240;-0.074658; 0.980785;, + -0.191342;-0.038060; 0.980785;, + -0.375330;-0.074658; 0.923880;, + -0.513279;-0.212607;-0.831470;, + -0.653281;-0.270598;-0.707107;, + -0.693520;-0.137950;-0.707107;, + -0.544895;-0.108386;-0.831470;, + -0.768177;-0.318189;-0.555570;, + -0.853553;-0.353553;-0.382683;, + -0.906127;-0.180240;-0.382683;, + -0.815492;-0.162211;-0.555570;, + -0.906127;-0.375330;-0.195090;, + -0.923879;-0.382683; 0.000000;, + -0.980785;-0.195090; 0.000000;, + -0.961939;-0.191341;-0.195090;, + -0.195090; 0.000000; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.191342; 0.038060; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.195090; 0.000000;-0.980785;, + -0.191341; 0.038060;-0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.191341; 0.038060;-0.980785;, + -0.180240; 0.074658;-0.980785;, + -0.191342; 0.038060; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.180240; 0.074658; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.180240; 0.074658;-0.980785;, + -0.162211; 0.108386;-0.980785;, + -0.180240; 0.074658; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.162212; 0.108387; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.162211; 0.108386;-0.980785;, + -0.137949; 0.137950;-0.980785;, + -0.162212; 0.108387; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.137950; 0.137950; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.137949; 0.137950;-0.980785;, + -0.108386; 0.162212;-0.980785;, + -0.137950; 0.137950; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.108386; 0.162212; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.108386; 0.162212;-0.980785;, + -0.074658; 0.180240;-0.980785;, + -0.108386; 0.162212; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.074658; 0.180240; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.074658; 0.180240;-0.980785;, + -0.038060; 0.191342;-0.980785;, + -0.074658; 0.180240; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.038060; 0.191342; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.038060; 0.191342;-0.980785;, + 0.000000; 0.195090;-0.980785;, + -0.038060; 0.191342; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.000000; 0.195091; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.195090;-0.980785;, + 0.038061; 0.191342;-0.980785;, + 0.000000; 0.195091; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.038061; 0.191342; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.038061; 0.191342;-0.980785;, + 0.074658; 0.180240;-0.980785;, + 0.038061; 0.191342; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.074658; 0.180240; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.074658; 0.180240;-0.980785;, + 0.108387; 0.162212;-0.980785;, + 0.074658; 0.180240; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.108387; 0.162212; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.108387; 0.162212;-0.980785;, + 0.137950; 0.137950;-0.980785;, + 0.108387; 0.162212; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.137950; 0.137950; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.137950; 0.137950;-0.980785;, + 0.162212; 0.108386;-0.980785;, + 0.137950; 0.137950; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.162212; 0.108386; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.162212; 0.108386;-0.980785;, + 0.180240; 0.074658;-0.980785;, + 0.162212; 0.108386; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.180240; 0.074658; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.180240; 0.074658;-0.980785;, + 0.191342; 0.038060;-0.980785;, + 0.180240; 0.074658; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.191342; 0.038060; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.191342; 0.038060;-0.980785;, + 0.195091; 0.000000;-0.980785;, + 0.191342; 0.038060; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.195091;-0.000000; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.195091; 0.000000;-0.980785;, + 0.191342;-0.038060;-0.980785;, + 0.195091;-0.000000; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.191342;-0.038060; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.191342;-0.038060;-0.980785;, + 0.180240;-0.074658;-0.980785;, + 0.191342;-0.038060; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.180240;-0.074658; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.180240;-0.074658;-0.980785;, + 0.162212;-0.108386;-0.980785;, + 0.180240;-0.074658; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.162212;-0.108386; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.162212;-0.108386;-0.980785;, + 0.137950;-0.137950;-0.980785;, + 0.162212;-0.108386; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.137950;-0.137950; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.137950;-0.137950;-0.980785;, + 0.108387;-0.162212;-0.980785;, + 0.137950;-0.137950; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.108387;-0.162212; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.108387;-0.162212;-0.980785;, + 0.074658;-0.180240;-0.980785;, + 0.108387;-0.162212; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.074658;-0.180240; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.074658;-0.180240;-0.980785;, + 0.038061;-0.191342;-0.980785;, + 0.074658;-0.180240; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.038061;-0.191342; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.038061;-0.191342;-0.980785;, + 0.000000;-0.195090;-0.980785;, + 0.038061;-0.191342; 0.980785;, + 0.000000;-0.000000; 1.000000;, + 0.000000;-0.195090; 0.980785;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.195090;-0.980785;, + -0.038060;-0.191342;-0.980785;, + 0.000000;-0.195090; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.038060;-0.191342; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.038060;-0.191342;-0.980785;, + -0.074657;-0.180240;-0.980785;, + -0.038060;-0.191342; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.074658;-0.180240; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.074657;-0.180240;-0.980785;, + -0.108386;-0.162212;-0.980785;, + -0.074658;-0.180240; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.108386;-0.162212; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.108386;-0.162212;-0.980785;, + -0.137949;-0.137950;-0.980785;, + -0.108386;-0.162212; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.137949;-0.137950; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.137949;-0.137950;-0.980785;, + -0.162211;-0.108386;-0.980785;, + -0.137949;-0.137950; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.162211;-0.108386; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.162211;-0.108386;-0.980785;, + -0.180240;-0.074658;-0.980785;, + -0.162211;-0.108386; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.180240;-0.074658; 0.980785;, + 0.000000; 0.000000;-1.000000;, + -0.180240;-0.074658;-0.980785;, + -0.191341;-0.038060;-0.980785;, + -0.180240;-0.074658; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.191342;-0.038060; 0.980785;, + -0.961939;-0.191341; 0.195090;, + -0.906127;-0.180240; 0.382683;, + -0.923880; 0.000000; 0.382683;, + -0.980785; 0.000000; 0.195090;, + -0.815492;-0.162211; 0.555570;, + -0.693520;-0.137950; 0.707107;, + -0.707107; 0.000000; 0.707107;, + -0.831470; 0.000000; 0.555570;, + 0.000000; 0.000000;-1.000000;, + -0.191341;-0.038060;-0.980785;, + -0.195090; 0.000000;-0.980785;, + -0.544895;-0.108386; 0.831470;, + -0.375330;-0.074658; 0.923880;, + -0.382683; 0.000000; 0.923880;, + -0.555570; 0.000000; 0.831470;, + -0.375330;-0.074658;-0.923880;, + -0.544895;-0.108386;-0.831470;, + -0.555570; 0.000000;-0.831470;, + -0.382683; 0.000000;-0.923880;, + -0.191342;-0.038060; 0.980785;, + 0.000000;-0.000000; 1.000000;, + -0.195090; 0.000000; 0.980785;, + -0.693520;-0.137950;-0.707107;, + -0.815492;-0.162211;-0.555570;, + -0.831470; 0.000000;-0.555570;, + -0.707107; 0.000000;-0.707107;, + -0.906127;-0.180240;-0.382683;, + -0.961939;-0.191341;-0.195090;, + -0.980785; 0.000000;-0.195090;, + -0.923880; 0.000000;-0.382683;, + -0.980785;-0.195090; 0.000000;, + -0.961939;-0.191341; 0.195090;, + -0.980785; 0.000000; 0.195090;, + -1.000000; 0.000000; 0.000000;, + -0.906127;-0.180240; 0.382683;, + -0.815492;-0.162211; 0.555570;, + -0.831470; 0.000000; 0.555570;, + -0.923880; 0.000000; 0.382683;, + -0.693520;-0.137950; 0.707107;, + -0.544895;-0.108386; 0.831470;, + -0.555570; 0.000000; 0.831470;, + -0.707107; 0.000000; 0.707107;, + -0.191341;-0.038060;-0.980785;, + -0.375330;-0.074658;-0.923880;, + -0.382683; 0.000000;-0.923880;, + -0.195090; 0.000000;-0.980785;, + -0.375330;-0.074658; 0.923880;, + -0.191342;-0.038060; 0.980785;, + -0.195090; 0.000000; 0.980785;, + -0.382683; 0.000000; 0.923880;, + -0.544895;-0.108386;-0.831470;, + -0.693520;-0.137950;-0.707107;, + -0.707107; 0.000000;-0.707107;, + -0.555570; 0.000000;-0.831470;, + -0.815492;-0.162211;-0.555570;, + -0.906127;-0.180240;-0.382683;, + -0.923880; 0.000000;-0.382683;, + -0.831470; 0.000000;-0.555570;, + -0.961939;-0.191341;-0.195090;, + -0.980785;-0.195090; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.980785; 0.000000;-0.195090;; + 512; + 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;, + 4;195,194,193,192;, + 4;199,198,197,196;, + 4;203,202,201,200;, + 4;207,206,205,204;, + 4;211,210,209,208;, + 4;215,214,213,212;, + 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;, + 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;, + 4;387,386,385,384;, + 4;391,390,389,388;, + 4;395,394,393,392;, + 4;399,398,397,396;, + 4;403,402,401,400;, + 4;407,406,405,404;, + 4;411,410,409,408;, + 4;415,414,413,412;, + 4;419,418,417,416;, + 4;423,422,421,420;, + 4;427,426,425,424;, + 4;431,430,429,428;, + 4;435,434,433,432;, + 4;439,438,437,436;, + 4;443,442,441,440;, + 4;447,446,445,444;, + 4;451,450,449,448;, + 4;455,454,453,452;, + 4;459,458,457,456;, + 4;463,462,461,460;, + 4;467,466,465,464;, + 4;471,470,469,468;, + 4;475,474,473,472;, + 4;479,478,477,476;, + 4;483,482,481,480;, + 4;487,486,485,484;, + 4;491,490,489,488;, + 4;495,494,493,492;, + 4;499,498,497,496;, + 4;503,502,501,500;, + 4;507,506,505,504;, + 4;511,510,509,508;, + 4;515,514,513,512;, + 4;519,518,517,516;, + 4;523,522,521,520;, + 4;527,526,525,524;, + 4;531,530,529,528;, + 4;535,534,533,532;, + 4;539,538,537,536;, + 4;543,542,541,540;, + 4;547,546,545,544;, + 4;551,550,549,548;, + 4;555,554,553,552;, + 4;559,558,557,556;, + 4;563,562,561,560;, + 4;567,566,565,564;, + 4;571,570,569,568;, + 4;575,574,573,572;, + 4;579,578,577,576;, + 4;583,582,581,580;, + 4;587,586,585,584;, + 4;591,590,589,588;, + 4;595,594,593,592;, + 4;599,598,597,596;, + 4;603,602,601,600;, + 4;607,606,605,604;, + 4;611,610,609,608;, + 4;615,614,613,612;, + 4;619,618,617,616;, + 4;623,622,621,620;, + 4;627,626,625,624;, + 4;631,630,629,628;, + 4;635,634,633,632;, + 4;639,638,637,636;, + 4;643,642,641,640;, + 4;647,646,645,644;, + 4;651,650,649,648;, + 4;655,654,653,652;, + 4;659,658,657,656;, + 4;663,662,661,660;, + 4;667,666,665,664;, + 4;671,670,669,668;, + 4;675,674,673,672;, + 4;679,678,677,676;, + 4;683,682,681,680;, + 4;687,686,685,684;, + 4;691,690,689,688;, + 4;695,694,693,692;, + 4;699,698,697,696;, + 4;703,702,701,700;, + 4;707,706,705,704;, + 4;711,710,709,708;, + 4;715,714,713,712;, + 4;719,718,717,716;, + 4;723,722,721,720;, + 4;727,726,725,724;, + 4;731,730,729,728;, + 4;735,734,733,732;, + 4;739,738,737,736;, + 4;743,742,741,740;, + 4;747,746,745,744;, + 4;751,750,749,748;, + 4;755,754,753,752;, + 4;759,758,757,756;, + 4;763,762,761,760;, + 4;767,766,765,764;, + 4;771,770,769,768;, + 4;775,774,773,772;, + 4;779,778,777,776;, + 4;783,782,781,780;, + 4;787,786,785,784;, + 4;791,790,789,788;, + 4;795,794,793,792;, + 4;799,798,797,796;, + 4;803,802,801,800;, + 4;807,806,805,804;, + 4;811,810,809,808;, + 4;815,814,813,812;, + 4;819,818,817,816;, + 4;823,822,821,820;, + 4;827,826,825,824;, + 4;831,830,829,828;, + 4;835,834,833,832;, + 4;839,838,837,836;, + 4;843,842,841,840;, + 4;847,846,845,844;, + 4;851,850,849,848;, + 4;855,854,853,852;, + 4;859,858,857,856;, + 4;863,862,861,860;, + 4;867,866,865,864;, + 4;871,870,869,868;, + 4;875,874,873,872;, + 4;879,878,877,876;, + 4;883,882,881,880;, + 4;887,886,885,884;, + 4;891,890,889,888;, + 4;895,894,893,892;, + 4;899,898,897,896;, + 4;903,902,901,900;, + 4;907,906,905,904;, + 4;911,910,909,908;, + 4;915,914,913,912;, + 4;919,918,917,916;, + 4;923,922,921,920;, + 4;927,926,925,924;, + 4;931,930,929,928;, + 4;935,934,933,932;, + 4;939,938,937,936;, + 4;943,942,941,940;, + 4;947,946,945,944;, + 4;951,950,949,948;, + 4;955,954,953,952;, + 4;959,958,957,956;, + 4;963,962,961,960;, + 4;967,966,965,964;, + 4;971,970,969,968;, + 4;975,974,973,972;, + 4;979,978,977,976;, + 4;983,982,981,980;, + 4;987,986,985,984;, + 4;991,990,989,988;, + 4;995,994,993,992;, + 4;999,998,997,996;, + 4;1003,1002,1001,1000;, + 4;1007,1006,1005,1004;, + 4;1011,1010,1009,1008;, + 4;1015,1014,1013,1012;, + 4;1019,1018,1017,1016;, + 4;1023,1022,1021,1020;, + 4;1027,1026,1025,1024;, + 4;1031,1030,1029,1028;, + 4;1035,1034,1033,1032;, + 4;1039,1038,1037,1036;, + 4;1043,1042,1041,1040;, + 4;1047,1046,1045,1044;, + 4;1051,1050,1049,1048;, + 4;1055,1054,1053,1052;, + 4;1059,1058,1057,1056;, + 4;1063,1062,1061,1060;, + 4;1067,1066,1065,1064;, + 4;1071,1070,1069,1068;, + 4;1075,1074,1073,1072;, + 4;1079,1078,1077,1076;, + 4;1083,1082,1081,1080;, + 4;1087,1086,1085,1084;, + 4;1091,1090,1089,1088;, + 4;1095,1094,1093,1092;, + 4;1099,1098,1097,1096;, + 4;1103,1102,1101,1100;, + 4;1107,1106,1105,1104;, + 4;1111,1110,1109,1108;, + 4;1115,1114,1113,1112;, + 4;1119,1118,1117,1116;, + 4;1123,1122,1121,1120;, + 4;1127,1126,1125,1124;, + 4;1131,1130,1129,1128;, + 4;1135,1134,1133,1132;, + 4;1139,1138,1137,1136;, + 4;1143,1142,1141,1140;, + 4;1147,1146,1145,1144;, + 4;1151,1150,1149,1148;, + 4;1155,1154,1153,1152;, + 4;1159,1158,1157,1156;, + 4;1163,1162,1161,1160;, + 4;1167,1166,1165,1164;, + 4;1171,1170,1169,1168;, + 4;1175,1174,1173,1172;, + 4;1179,1178,1177,1176;, + 4;1183,1182,1181,1180;, + 4;1187,1186,1185,1184;, + 4;1191,1190,1189,1188;, + 4;1195,1194,1193,1192;, + 4;1199,1198,1197,1196;, + 4;1203,1202,1201,1200;, + 4;1207,1206,1205,1204;, + 4;1211,1210,1209,1208;, + 4;1215,1214,1213,1212;, + 4;1219,1218,1217,1216;, + 4;1223,1222,1221,1220;, + 4;1227,1226,1225,1224;, + 4;1231,1230,1229,1228;, + 4;1235,1234,1233,1232;, + 4;1239,1238,1237,1236;, + 4;1243,1242,1241,1240;, + 4;1247,1246,1245,1244;, + 4;1251,1250,1249,1248;, + 4;1255,1254,1253,1252;, + 4;1259,1258,1257,1256;, + 4;1263,1262,1261,1260;, + 4;1267,1266,1265,1264;, + 4;1271,1270,1269,1268;, + 4;1275,1274,1273,1272;, + 4;1279,1278,1277,1276;, + 4;1283,1282,1281,1280;, + 4;1287,1286,1285,1284;, + 4;1291,1290,1289,1288;, + 4;1295,1294,1293,1292;, + 4;1299,1298,1297,1296;, + 4;1303,1302,1301,1300;, + 4;1307,1306,1305,1304;, + 4;1311,1310,1309,1308;, + 4;1315,1314,1313,1312;, + 4;1319,1318,1317,1316;, + 4;1323,1322,1321,1320;, + 4;1327,1326,1325,1324;, + 4;1331,1330,1329,1328;, + 4;1335,1334,1333,1332;, + 4;1339,1338,1337,1336;, + 4;1343,1342,1341,1340;, + 4;1347,1346,1345,1344;, + 4;1351,1350,1349,1348;, + 4;1355,1354,1353,1352;, + 4;1359,1358,1357,1356;, + 4;1363,1362,1361,1360;, + 4;1367,1366,1365,1364;, + 4;1371,1370,1369,1368;, + 4;1375,1374,1373,1372;, + 4;1379,1378,1377,1376;, + 4;1383,1382,1381,1380;, + 4;1387,1386,1385,1384;, + 4;1391,1390,1389,1388;, + 4;1395,1394,1393,1392;, + 4;1399,1398,1397,1396;, + 4;1403,1402,1401,1400;, + 4;1407,1406,1405,1404;, + 4;1411,1410,1409,1408;, + 4;1415,1414,1413,1412;, + 4;1419,1418,1417,1416;, + 4;1423,1422,1421,1420;, + 4;1427,1426,1425,1424;, + 4;1431,1430,1429,1428;, + 4;1435,1434,1433,1432;, + 4;1439,1438,1437,1436;, + 4;1443,1442,1441,1440;, + 4;1447,1446,1445,1444;, + 4;1451,1450,1449,1448;, + 4;1455,1454,1453,1452;, + 4;1459,1458,1457,1456;, + 4;1463,1462,1461,1460;, + 4;1467,1466,1465,1464;, + 4;1471,1470,1469,1468;, + 4;1475,1474,1473,1472;, + 4;1479,1478,1477,1476;, + 4;1483,1482,1481,1480;, + 4;1487,1486,1485,1484;, + 4;1491,1490,1489,1488;, + 4;1495,1494,1493,1492;, + 4;1499,1498,1497,1496;, + 4;1503,1502,1501,1500;, + 4;1507,1506,1505,1504;, + 4;1511,1510,1509,1508;, + 4;1515,1514,1513,1512;, + 4;1519,1518,1517,1516;, + 4;1523,1522,1521,1520;, + 4;1527,1526,1525,1524;, + 4;1531,1530,1529,1528;, + 4;1535,1534,1533,1532;, + 4;1539,1538,1537,1536;, + 4;1543,1542,1541,1540;, + 4;1547,1546,1545,1544;, + 4;1551,1550,1549,1548;, + 4;1555,1554,1553,1552;, + 4;1559,1558,1557,1556;, + 4;1563,1562,1561,1560;, + 4;1567,1566,1565,1564;, + 4;1571,1570,1569,1568;, + 4;1575,1574,1573,1572;, + 4;1579,1578,1577,1576;, + 4;1583,1582,1581,1580;, + 4;1587,1586,1585,1584;, + 4;1591,1590,1589,1588;, + 4;1595,1594,1593,1592;, + 4;1599,1598,1597,1596;, + 4;1603,1602,1601,1600;, + 4;1607,1606,1605,1604;, + 4;1611,1610,1609,1608;, + 4;1615,1614,1613,1612;, + 4;1619,1618,1617,1616;, + 4;1623,1622,1621,1620;, + 4;1627,1626,1625,1624;, + 4;1631,1630,1629,1628;, + 4;1635,1634,1633,1632;, + 4;1639,1638,1637,1636;, + 4;1643,1642,1641,1640;, + 4;1647,1646,1645,1644;, + 4;1651,1650,1649,1648;, + 4;1655,1654,1653,1652;, + 4;1659,1658,1657,1656;, + 4;1663,1662,1661,1660;, + 4;1667,1666,1665,1664;, + 4;1671,1670,1669,1668;, + 4;1675,1674,1673,1672;, + 4;1679,1678,1677,1676;, + 4;1683,1682,1681,1680;, + 4;1687,1686,1685,1684;, + 4;1691,1690,1689,1688;, + 4;1695,1694,1693,1692;, + 4;1699,1698,1697,1696;, + 4;1703,1702,1701,1700;, + 4;1707,1706,1705,1704;, + 4;1711,1710,1709,1708;, + 4;1715,1714,1713,1712;, + 4;1719,1718,1717,1716;, + 4;1723,1722,1721,1720;, + 4;1727,1726,1725,1724;, + 4;1731,1730,1729,1728;, + 4;1735,1734,1733,1732;, + 3;1738,1737,1736;, + 3;1741,1740,1739;, + 3;1744,1743,1742;, + 3;1747,1746,1745;, + 3;1750,1749,1748;, + 3;1753,1752,1751;, + 3;1756,1755,1754;, + 3;1759,1758,1757;, + 3;1762,1761,1760;, + 3;1765,1764,1763;, + 3;1768,1767,1766;, + 3;1771,1770,1769;, + 3;1774,1773,1772;, + 3;1777,1776,1775;, + 3;1780,1779,1778;, + 3;1783,1782,1781;, + 3;1786,1785,1784;, + 3;1789,1788,1787;, + 3;1792,1791,1790;, + 3;1795,1794,1793;, + 3;1798,1797,1796;, + 3;1801,1800,1799;, + 3;1804,1803,1802;, + 3;1807,1806,1805;, + 3;1810,1809,1808;, + 3;1813,1812,1811;, + 3;1816,1815,1814;, + 3;1819,1818,1817;, + 3;1822,1821,1820;, + 3;1825,1824,1823;, + 3;1828,1827,1826;, + 3;1831,1830,1829;, + 3;1834,1833,1832;, + 3;1837,1836,1835;, + 3;1840,1839,1838;, + 3;1843,1842,1841;, + 3;1846,1845,1844;, + 3;1849,1848,1847;, + 3;1852,1851,1850;, + 3;1855,1854,1853;, + 3;1858,1857,1856;, + 3;1861,1860,1859;, + 3;1864,1863,1862;, + 3;1867,1866,1865;, + 3;1870,1869,1868;, + 3;1873,1872,1871;, + 3;1876,1875,1874;, + 3;1879,1878,1877;, + 3;1882,1881,1880;, + 3;1885,1884,1883;, + 3;1888,1887,1886;, + 3;1891,1890,1889;, + 3;1894,1893,1892;, + 3;1897,1896,1895;, + 3;1900,1899,1898;, + 3;1903,1902,1901;, + 3;1906,1905,1904;, + 3;1909,1908,1907;, + 3;1912,1911,1910;, + 3;1915,1914,1913;, + 3;1918,1917,1916;, + 3;1921,1920,1919;, + 4;1925,1924,1923,1922;, + 4;1929,1928,1927,1926;, + 3;1932,1931,1930;, + 4;1936,1935,1934,1933;, + 4;1940,1939,1938,1937;, + 3;1943,1942,1941;, + 4;1947,1946,1945,1944;, + 4;1951,1950,1949,1948;, + 4;1955,1954,1953,1952;, + 4;1959,1958,1957,1956;, + 4;1963,1962,1961,1960;, + 4;1967,1966,1965,1964;, + 4;1971,1970,1969,1968;, + 4;1975,1974,1973,1972;, + 4;1979,1978,1977,1976;, + 4;1983,1982,1981,1980;; + MeshNormals { // Sphere normals + 1984; + -0.710135; 0.000000;-0.704031;, + -0.833338; 0.000000;-0.552751;, + -0.817316; 0.162572;-0.552751;, + -0.696493; 0.138524;-0.704031;, + -0.924741; 0.000000;-0.380535;, + -0.980987; 0.000000;-0.193915;, + -0.962157; 0.191382;-0.193915;, + -0.906980; 0.180395;-0.380535;, + -1.000000; 0.000000; 0.000000;, + -0.980987; 0.000000; 0.193915;, + -0.962157; 0.191382; 0.193915;, + -0.980773; 0.195074; 0.000000;, + -0.924741; 0.000000; 0.380535;, + -0.833338; 0.000000; 0.552751;, + -0.817316; 0.162572; 0.552751;, + -0.906980; 0.180395; 0.380535;, + -0.710135; 0.000000; 0.704031;, + -0.559771; 0.000000; 0.828639;, + -0.548997; 0.109195; 0.828639;, + -0.696493; 0.138524; 0.704031;, + -0.200964; 0.000000;-0.979583;, + -0.387860; 0.000000;-0.921690;, + -0.380413; 0.075655;-0.921690;, + -0.197089; 0.039186;-0.979583;, + -0.387860; 0.000000; 0.921690;, + -0.200964; 0.000000; 0.979583;, + -0.197089; 0.039186; 0.979583;, + -0.380413; 0.075655; 0.921690;, + -0.559771; 0.000000;-0.828639;, + -0.710135; 0.000000;-0.704031;, + -0.696493; 0.138524;-0.704031;, + -0.548997; 0.109195;-0.828639;, + -0.833338; 0.000000;-0.552751;, + -0.924741; 0.000000;-0.380535;, + -0.906980; 0.180395;-0.380535;, + -0.817316; 0.162572;-0.552751;, + -0.980987; 0.000000;-0.193915;, + -1.000000; 0.000000; 0.000000;, + -0.980773; 0.195074; 0.000000;, + -0.962157; 0.191382;-0.193915;, + -0.980987; 0.000000; 0.193915;, + -0.924741; 0.000000; 0.380535;, + -0.906980; 0.180395; 0.380535;, + -0.962157; 0.191382; 0.193915;, + -0.833338; 0.000000; 0.552751;, + -0.710135; 0.000000; 0.704031;, + -0.696493; 0.138524; 0.704031;, + -0.817316; 0.162572; 0.552751;, + -0.559771; 0.000000; 0.828639;, + -0.387860; 0.000000; 0.921690;, + -0.380413; 0.075655; 0.921690;, + -0.548997; 0.109195; 0.828639;, + -0.387860; 0.000000;-0.921690;, + -0.559771; 0.000000;-0.828639;, + -0.548997; 0.109195;-0.828639;, + -0.380413; 0.075655;-0.921690;, + -0.962157; 0.191382; 0.193915;, + -0.906980; 0.180395; 0.380535;, + -0.854366; 0.353862; 0.380535;, + -0.906339; 0.375408; 0.193915;, + -0.817316; 0.162572; 0.552751;, + -0.696493; 0.138524; 0.704031;, + -0.656056; 0.271737; 0.704031;, + -0.769890; 0.318888; 0.552751;, + -0.548997; 0.109195; 0.828639;, + -0.380413; 0.075655; 0.921690;, + -0.358348; 0.148412; 0.921690;, + -0.517136; 0.214209; 0.828639;, + -0.380413; 0.075655;-0.921690;, + -0.548997; 0.109195;-0.828639;, + -0.517136; 0.214209;-0.828639;, + -0.358348; 0.148412;-0.921690;, + -0.696493; 0.138524;-0.704031;, + -0.817316; 0.162572;-0.552751;, + -0.769890; 0.318888;-0.552751;, + -0.656056; 0.271737;-0.704031;, + -0.906980; 0.180395;-0.380535;, + -0.962157; 0.191382;-0.193915;, + -0.906339; 0.375408;-0.193915;, + -0.854366; 0.353893;-0.380535;, + -0.980773; 0.195074; 0.000000;, + -0.962157; 0.191382; 0.193915;, + -0.906339; 0.375408; 0.193915;, + -0.923856; 0.382672; 0.000000;, + -0.906980; 0.180395; 0.380535;, + -0.817316; 0.162572; 0.552751;, + -0.769890; 0.318888; 0.552751;, + -0.854366; 0.353862; 0.380535;, + -0.696493; 0.138524; 0.704031;, + -0.548997; 0.109195; 0.828639;, + -0.517136; 0.214209; 0.828639;, + -0.656056; 0.271737; 0.704031;, + -0.197089; 0.039186;-0.979583;, + -0.380413; 0.075655;-0.921690;, + -0.358348; 0.148412;-0.921690;, + -0.185644; 0.076907;-0.979583;, + -0.380413; 0.075655; 0.921690;, + -0.197089; 0.039186; 0.979583;, + -0.185644; 0.076907; 0.979583;, + -0.358348; 0.148412; 0.921690;, + -0.548997; 0.109195;-0.828639;, + -0.696493; 0.138524;-0.704031;, + -0.656056; 0.271737;-0.704031;, + -0.517136; 0.214209;-0.828639;, + -0.817316; 0.162572;-0.552751;, + -0.906980; 0.180395;-0.380535;, + -0.854366; 0.353893;-0.380535;, + -0.769890; 0.318888;-0.552751;, + -0.962157; 0.191382;-0.193915;, + -0.980773; 0.195074; 0.000000;, + -0.923856; 0.382672; 0.000000;, + -0.906339; 0.375408;-0.193915;, + -0.906339; 0.375408; 0.193915;, + -0.854366; 0.353862; 0.380535;, + -0.768914; 0.513749; 0.380535;, + -0.815668; 0.545000; 0.193915;, + -0.769890; 0.318888; 0.552751;, + -0.656056; 0.271737; 0.704031;, + -0.590442; 0.394513; 0.704031;, + -0.692892; 0.462966; 0.552751;, + -0.517136; 0.214209; 0.828639;, + -0.358348; 0.148412; 0.921690;, + -0.322489; 0.215491; 0.921690;, + -0.465407; 0.310984; 0.828639;, + -0.358348; 0.148412;-0.921690;, + -0.517136; 0.214209;-0.828639;, + -0.465407; 0.310984;-0.828639;, + -0.322489; 0.215491;-0.921690;, + -0.656056; 0.271737;-0.704031;, + -0.769890; 0.318888;-0.552751;, + -0.692892; 0.462966;-0.552751;, + -0.590442; 0.394513;-0.704031;, + -0.854366; 0.353893;-0.380535;, + -0.906339; 0.375408;-0.193915;, + -0.815668; 0.545000;-0.193915;, + -0.768914; 0.513749;-0.380535;, + -0.923856; 0.382672; 0.000000;, + -0.906339; 0.375408; 0.193915;, + -0.815668; 0.545000; 0.193915;, + -0.831446; 0.555559; 0.000000;, + -0.854366; 0.353862; 0.380535;, + -0.769890; 0.318888; 0.552751;, + -0.692892; 0.462966; 0.552751;, + -0.768914; 0.513749; 0.380535;, + -0.656056; 0.271737; 0.704031;, + -0.517136; 0.214209; 0.828639;, + -0.465407; 0.310984; 0.828639;, + -0.590442; 0.394513; 0.704031;, + -0.185644; 0.076907;-0.979583;, + -0.358348; 0.148412;-0.921690;, + -0.322489; 0.215491;-0.921690;, + -0.167089; 0.111637;-0.979583;, + -0.358348; 0.148412; 0.921690;, + -0.185644; 0.076907; 0.979583;, + -0.167089; 0.111637; 0.979583;, + -0.322489; 0.215491; 0.921690;, + -0.517136; 0.214209;-0.828639;, + -0.656056; 0.271737;-0.704031;, + -0.590442; 0.394513;-0.704031;, + -0.465407; 0.310984;-0.828639;, + -0.769890; 0.318888;-0.552751;, + -0.854366; 0.353893;-0.380535;, + -0.768914; 0.513749;-0.380535;, + -0.692892; 0.462966;-0.552751;, + -0.906339; 0.375408;-0.193915;, + -0.923856; 0.382672; 0.000000;, + -0.831446; 0.555559; 0.000000;, + -0.815668; 0.545000;-0.193915;, + -0.815668; 0.545000; 0.193915;, + -0.768914; 0.513749; 0.380535;, + -0.653890; 0.653890; 0.380535;, + -0.693655; 0.693655; 0.193915;, + -0.692892; 0.462966; 0.552751;, + -0.590442; 0.394513; 0.704031;, + -0.502121; 0.502121; 0.704031;, + -0.589251; 0.589251; 0.552751;, + -0.465407; 0.310984; 0.828639;, + -0.322489; 0.215491; 0.921690;, + -0.274270; 0.274270; 0.921690;, + -0.395795; 0.395795; 0.828639;, + -0.322489; 0.215491;-0.921690;, + -0.465407; 0.310984;-0.828639;, + -0.395795; 0.395795;-0.828639;, + -0.274270; 0.274270;-0.921690;, + -0.590442; 0.394513;-0.704031;, + -0.692892; 0.462966;-0.552751;, + -0.589251; 0.589251;-0.552751;, + -0.502121; 0.502121;-0.704031;, + -0.768914; 0.513749;-0.380535;, + -0.815668; 0.545000;-0.193915;, + -0.693655; 0.693655;-0.193915;, + -0.653890; 0.653890;-0.380535;, + -0.831446; 0.555559; 0.000000;, + -0.815668; 0.545000; 0.193915;, + -0.693655; 0.693655; 0.193915;, + -0.707083; 0.707083; 0.000000;, + -0.768914; 0.513749; 0.380535;, + -0.692892; 0.462966; 0.552751;, + -0.589251; 0.589251; 0.552751;, + -0.653890; 0.653890; 0.380535;, + -0.590442; 0.394513; 0.704031;, + -0.465407; 0.310984; 0.828639;, + -0.395795; 0.395795; 0.828639;, + -0.502121; 0.502121; 0.704031;, + -0.167089; 0.111637;-0.979583;, + -0.322489; 0.215491;-0.921690;, + -0.274270; 0.274270;-0.921690;, + -0.142094; 0.142094;-0.979583;, + -0.322489; 0.215491; 0.921690;, + -0.167089; 0.111637; 0.979583;, + -0.142094; 0.142094; 0.979583;, + -0.274270; 0.274270; 0.921690;, + -0.465407; 0.310984;-0.828639;, + -0.590442; 0.394513;-0.704031;, + -0.502121; 0.502121;-0.704031;, + -0.395795; 0.395795;-0.828639;, + -0.692892; 0.462966;-0.552751;, + -0.768914; 0.513749;-0.380535;, + -0.653890; 0.653890;-0.380535;, + -0.589251; 0.589251;-0.552751;, + -0.815668; 0.545000;-0.193915;, + -0.831446; 0.555559; 0.000000;, + -0.707083; 0.707083; 0.000000;, + -0.693655; 0.693655;-0.193915;, + -0.693655; 0.693655; 0.193915;, + -0.653890; 0.653890; 0.380535;, + -0.513749; 0.768914; 0.380535;, + -0.545000; 0.815668; 0.193915;, + -0.589251; 0.589251; 0.552751;, + -0.502121; 0.502121; 0.704031;, + -0.394513; 0.590442; 0.704031;, + -0.462966; 0.692892; 0.552751;, + -0.395795; 0.395795; 0.828639;, + -0.274270; 0.274270; 0.921690;, + -0.215491; 0.322489; 0.921690;, + -0.310984; 0.465407; 0.828639;, + -0.274270; 0.274270;-0.921690;, + -0.395795; 0.395795;-0.828639;, + -0.310984; 0.465407;-0.828639;, + -0.215491; 0.322489;-0.921690;, + -0.502121; 0.502121;-0.704031;, + -0.589251; 0.589251;-0.552751;, + -0.462966; 0.692892;-0.552751;, + -0.394513; 0.590442;-0.704031;, + -0.653890; 0.653890;-0.380535;, + -0.693655; 0.693655;-0.193915;, + -0.545000; 0.815668;-0.193915;, + -0.513749; 0.768914;-0.380535;, + -0.707083; 0.707083; 0.000000;, + -0.693655; 0.693655; 0.193915;, + -0.545000; 0.815668; 0.193915;, + -0.555559; 0.831446; 0.000000;, + -0.653890; 0.653890; 0.380535;, + -0.589251; 0.589251; 0.552751;, + -0.462966; 0.692892; 0.552751;, + -0.513749; 0.768914; 0.380535;, + -0.502121; 0.502121; 0.704031;, + -0.395795; 0.395795; 0.828639;, + -0.310984; 0.465407; 0.828639;, + -0.394513; 0.590442; 0.704031;, + -0.142094; 0.142094;-0.979583;, + -0.274270; 0.274270;-0.921690;, + -0.215491; 0.322489;-0.921690;, + -0.111637; 0.167089;-0.979583;, + -0.274270; 0.274270; 0.921690;, + -0.142094; 0.142094; 0.979583;, + -0.111637; 0.167089; 0.979583;, + -0.215491; 0.322489; 0.921690;, + -0.395795; 0.395795;-0.828639;, + -0.502121; 0.502121;-0.704031;, + -0.394513; 0.590442;-0.704031;, + -0.310984; 0.465407;-0.828639;, + -0.589251; 0.589251;-0.552751;, + -0.653890; 0.653890;-0.380535;, + -0.513749; 0.768914;-0.380535;, + -0.462966; 0.692892;-0.552751;, + -0.693655; 0.693655;-0.193915;, + -0.707083; 0.707083; 0.000000;, + -0.555559; 0.831446; 0.000000;, + -0.545000; 0.815668;-0.193915;, + -0.545000; 0.815668; 0.193915;, + -0.513749; 0.768914; 0.380535;, + -0.353862; 0.854366; 0.380535;, + -0.375408; 0.906339; 0.193915;, + -0.462966; 0.692892; 0.552751;, + -0.394513; 0.590442; 0.704031;, + -0.271737; 0.656056; 0.704031;, + -0.318888; 0.769890; 0.552751;, + -0.310984; 0.465407; 0.828639;, + -0.215491; 0.322489; 0.921690;, + -0.148412; 0.358348; 0.921690;, + -0.214209; 0.517136; 0.828639;, + -0.215491; 0.322489;-0.921690;, + -0.310984; 0.465407;-0.828639;, + -0.214209; 0.517136;-0.828639;, + -0.148412; 0.358348;-0.921690;, + -0.394513; 0.590442;-0.704031;, + -0.462966; 0.692892;-0.552751;, + -0.318888; 0.769890;-0.552751;, + -0.271737; 0.656056;-0.704031;, + -0.513749; 0.768914;-0.380535;, + -0.545000; 0.815668;-0.193915;, + -0.375408; 0.906339;-0.193915;, + -0.353862; 0.854366;-0.380535;, + -0.555559; 0.831446; 0.000000;, + -0.545000; 0.815668; 0.193915;, + -0.375408; 0.906339; 0.193915;, + -0.382672; 0.923856; 0.000000;, + -0.513749; 0.768914; 0.380535;, + -0.462966; 0.692892; 0.552751;, + -0.318888; 0.769890; 0.552751;, + -0.353862; 0.854366; 0.380535;, + -0.394513; 0.590442; 0.704031;, + -0.310984; 0.465407; 0.828639;, + -0.214209; 0.517136; 0.828639;, + -0.271737; 0.656056; 0.704031;, + -0.111637; 0.167089;-0.979583;, + -0.215491; 0.322489;-0.921690;, + -0.148412; 0.358348;-0.921690;, + -0.076907; 0.185644;-0.979583;, + -0.215491; 0.322489; 0.921690;, + -0.111637; 0.167089; 0.979583;, + -0.076907; 0.185644; 0.979583;, + -0.148412; 0.358348; 0.921690;, + -0.310984; 0.465407;-0.828639;, + -0.394513; 0.590442;-0.704031;, + -0.271737; 0.656056;-0.704031;, + -0.214209; 0.517136;-0.828639;, + -0.462966; 0.692892;-0.552751;, + -0.513749; 0.768914;-0.380535;, + -0.353862; 0.854366;-0.380535;, + -0.318888; 0.769890;-0.552751;, + -0.545000; 0.815668;-0.193915;, + -0.555559; 0.831446; 0.000000;, + -0.382672; 0.923856; 0.000000;, + -0.375408; 0.906339;-0.193915;, + -0.375408; 0.906339; 0.193915;, + -0.353862; 0.854366; 0.380535;, + -0.180395; 0.906980; 0.380535;, + -0.191382; 0.962157; 0.193915;, + -0.318888; 0.769890; 0.552751;, + -0.271737; 0.656056; 0.704031;, + -0.138524; 0.696493; 0.704031;, + -0.162572; 0.817316; 0.552751;, + -0.214209; 0.517136; 0.828639;, + -0.148412; 0.358348; 0.921690;, + -0.075655; 0.380413; 0.921690;, + -0.109195; 0.548997; 0.828639;, + -0.148412; 0.358348;-0.921690;, + -0.214209; 0.517136;-0.828639;, + -0.109195; 0.548997;-0.828639;, + -0.075655; 0.380413;-0.921690;, + -0.271737; 0.656056;-0.704031;, + -0.318888; 0.769890;-0.552751;, + -0.162572; 0.817316;-0.552751;, + -0.138524; 0.696493;-0.704031;, + -0.353862; 0.854366;-0.380535;, + -0.375408; 0.906339;-0.193915;, + -0.191382; 0.962157;-0.193915;, + -0.180395; 0.906980;-0.380535;, + -0.382672; 0.923856; 0.000000;, + -0.375408; 0.906339; 0.193915;, + -0.191382; 0.962157; 0.193915;, + -0.195074; 0.980773; 0.000000;, + -0.353862; 0.854366; 0.380535;, + -0.318888; 0.769890; 0.552751;, + -0.162572; 0.817316; 0.552751;, + -0.180395; 0.906980; 0.380535;, + -0.271737; 0.656056; 0.704031;, + -0.214209; 0.517136; 0.828639;, + -0.109195; 0.548997; 0.828639;, + -0.138524; 0.696493; 0.704031;, + -0.076907; 0.185644;-0.979583;, + -0.148412; 0.358348;-0.921690;, + -0.075655; 0.380413;-0.921690;, + -0.039186; 0.197089;-0.979583;, + -0.148412; 0.358348; 0.921690;, + -0.076907; 0.185644; 0.979583;, + -0.039186; 0.197089; 0.979583;, + -0.075655; 0.380413; 0.921690;, + -0.214209; 0.517136;-0.828639;, + -0.271737; 0.656056;-0.704031;, + -0.138524; 0.696493;-0.704031;, + -0.109195; 0.548997;-0.828639;, + -0.318888; 0.769890;-0.552751;, + -0.353862; 0.854366;-0.380535;, + -0.180395; 0.906980;-0.380535;, + -0.162572; 0.817316;-0.552751;, + -0.375408; 0.906339;-0.193915;, + -0.382672; 0.923856; 0.000000;, + -0.195074; 0.980773; 0.000000;, + -0.191382; 0.962157;-0.193915;, + -0.191382; 0.962157; 0.193915;, + -0.180395; 0.906980; 0.380535;, + 0.000000; 0.924741; 0.380535;, + 0.000000; 0.980987; 0.193915;, + -0.162572; 0.817316; 0.552751;, + -0.138524; 0.696493; 0.704031;, + 0.000000; 0.710135; 0.704031;, + 0.000000; 0.833338; 0.552751;, + -0.109195; 0.548997; 0.828639;, + -0.075655; 0.380413; 0.921690;, + 0.000000; 0.387860; 0.921690;, + 0.000000; 0.559771; 0.828639;, + -0.075655; 0.380413;-0.921690;, + -0.109195; 0.548997;-0.828639;, + 0.000000; 0.559771;-0.828639;, + 0.000000; 0.387860;-0.921690;, + -0.138524; 0.696493;-0.704031;, + -0.162572; 0.817316;-0.552751;, + 0.000000; 0.833338;-0.552751;, + 0.000000; 0.710135;-0.704031;, + -0.180395; 0.906980;-0.380535;, + -0.191382; 0.962157;-0.193915;, + 0.000000; 0.980987;-0.193915;, + 0.000000; 0.924741;-0.380535;, + -0.195074; 0.980773; 0.000000;, + -0.191382; 0.962157; 0.193915;, + 0.000000; 0.980987; 0.193915;, + 0.000000; 1.000000; 0.000000;, + -0.180395; 0.906980; 0.380535;, + -0.162572; 0.817316; 0.552751;, + 0.000000; 0.833338; 0.552751;, + 0.000000; 0.924741; 0.380535;, + -0.138524; 0.696493; 0.704031;, + -0.109195; 0.548997; 0.828639;, + 0.000000; 0.559771; 0.828639;, + 0.000000; 0.710135; 0.704031;, + -0.039186; 0.197089;-0.979583;, + -0.075655; 0.380413;-0.921690;, + 0.000000; 0.387860;-0.921690;, + 0.000000; 0.200964;-0.979583;, + -0.075655; 0.380413; 0.921690;, + -0.039186; 0.197089; 0.979583;, + 0.000000; 0.200964; 0.979583;, + 0.000000; 0.387860; 0.921690;, + -0.109195; 0.548997;-0.828639;, + -0.138524; 0.696493;-0.704031;, + 0.000000; 0.710135;-0.704031;, + 0.000000; 0.559771;-0.828639;, + -0.162572; 0.817316;-0.552751;, + -0.180395; 0.906980;-0.380535;, + 0.000000; 0.924741;-0.380535;, + 0.000000; 0.833338;-0.552751;, + -0.191382; 0.962157;-0.193915;, + -0.195074; 0.980773; 0.000000;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.980987;-0.193915;, + 0.000000; 0.980987; 0.193915;, + 0.000000; 0.924741; 0.380535;, + 0.180395; 0.906980; 0.380535;, + 0.191382; 0.962157; 0.193915;, + 0.000000; 0.833338; 0.552751;, + 0.000000; 0.710135; 0.704031;, + 0.138524; 0.696493; 0.704031;, + 0.162572; 0.817316; 0.552751;, + 0.000000; 0.559771; 0.828639;, + 0.000000; 0.387860; 0.921690;, + 0.075655; 0.380413; 0.921690;, + 0.109195; 0.548997; 0.828639;, + 0.000000; 0.387860;-0.921690;, + 0.000000; 0.559771;-0.828639;, + 0.109195; 0.548997;-0.828639;, + 0.075655; 0.380413;-0.921690;, + 0.000000; 0.710135;-0.704031;, + 0.000000; 0.833338;-0.552751;, + 0.162572; 0.817316;-0.552751;, + 0.138524; 0.696493;-0.704031;, + 0.000000; 0.924741;-0.380535;, + 0.000000; 0.980987;-0.193915;, + 0.191382; 0.962157;-0.193915;, + 0.180395; 0.906980;-0.380535;, + 0.000000; 1.000000; 0.000000;, + 0.000000; 0.980987; 0.193915;, + 0.191382; 0.962157; 0.193915;, + 0.195074; 0.980773; 0.000000;, + 0.000000; 0.924741; 0.380535;, + 0.000000; 0.833338; 0.552751;, + 0.162572; 0.817316; 0.552751;, + 0.180395; 0.906980; 0.380535;, + 0.000000; 0.710135; 0.704031;, + 0.000000; 0.559771; 0.828639;, + 0.109195; 0.548997; 0.828639;, + 0.138524; 0.696493; 0.704031;, + 0.000000; 0.200964;-0.979583;, + 0.000000; 0.387860;-0.921690;, + 0.075655; 0.380413;-0.921690;, + 0.039186; 0.197089;-0.979583;, + 0.000000; 0.387860; 0.921690;, + 0.000000; 0.200964; 0.979583;, + 0.039186; 0.197089; 0.979583;, + 0.075655; 0.380413; 0.921690;, + 0.000000; 0.559771;-0.828639;, + 0.000000; 0.710135;-0.704031;, + 0.138524; 0.696493;-0.704031;, + 0.109195; 0.548997;-0.828639;, + 0.000000; 0.833338;-0.552751;, + 0.000000; 0.924741;-0.380535;, + 0.180395; 0.906980;-0.380535;, + 0.162572; 0.817316;-0.552751;, + 0.000000; 0.980987;-0.193915;, + 0.000000; 1.000000; 0.000000;, + 0.195074; 0.980773; 0.000000;, + 0.191382; 0.962157;-0.193915;, + 0.191382; 0.962157; 0.193915;, + 0.180395; 0.906980; 0.380535;, + 0.353862; 0.854366; 0.380535;, + 0.375408; 0.906339; 0.193915;, + 0.162572; 0.817316; 0.552751;, + 0.138524; 0.696493; 0.704031;, + 0.271737; 0.656056; 0.704031;, + 0.318888; 0.769890; 0.552751;, + 0.109195; 0.548997; 0.828639;, + 0.075655; 0.380413; 0.921690;, + 0.148412; 0.358348; 0.921690;, + 0.214209; 0.517136; 0.828639;, + 0.075655; 0.380413;-0.921690;, + 0.109195; 0.548997;-0.828639;, + 0.214209; 0.517136;-0.828639;, + 0.148412; 0.358348;-0.921690;, + 0.138524; 0.696493;-0.704031;, + 0.162572; 0.817316;-0.552751;, + 0.318888; 0.769890;-0.552751;, + 0.271737; 0.656056;-0.704031;, + 0.180395; 0.906980;-0.380535;, + 0.191382; 0.962157;-0.193915;, + 0.375408; 0.906339;-0.193915;, + 0.353862; 0.854366;-0.380535;, + 0.195074; 0.980773; 0.000000;, + 0.191382; 0.962157; 0.193915;, + 0.375408; 0.906339; 0.193915;, + 0.382672; 0.923856; 0.000000;, + 0.180395; 0.906980; 0.380535;, + 0.162572; 0.817316; 0.552751;, + 0.318888; 0.769890; 0.552751;, + 0.353862; 0.854366; 0.380535;, + 0.138524; 0.696493; 0.704031;, + 0.109195; 0.548997; 0.828639;, + 0.214209; 0.517136; 0.828639;, + 0.271737; 0.656056; 0.704031;, + 0.039186; 0.197089;-0.979583;, + 0.075655; 0.380413;-0.921690;, + 0.148412; 0.358348;-0.921690;, + 0.076907; 0.185644;-0.979583;, + 0.075655; 0.380413; 0.921690;, + 0.039186; 0.197089; 0.979583;, + 0.076907; 0.185644; 0.979583;, + 0.148412; 0.358348; 0.921690;, + 0.109195; 0.548997;-0.828639;, + 0.138524; 0.696493;-0.704031;, + 0.271737; 0.656056;-0.704031;, + 0.214209; 0.517136;-0.828639;, + 0.162572; 0.817316;-0.552751;, + 0.180395; 0.906980;-0.380535;, + 0.353862; 0.854366;-0.380535;, + 0.318888; 0.769890;-0.552751;, + 0.191382; 0.962157;-0.193915;, + 0.195074; 0.980773; 0.000000;, + 0.382672; 0.923856; 0.000000;, + 0.375408; 0.906339;-0.193915;, + 0.375408; 0.906339; 0.193915;, + 0.353862; 0.854366; 0.380535;, + 0.513749; 0.768914; 0.380535;, + 0.545000; 0.815668; 0.193915;, + 0.318888; 0.769890; 0.552751;, + 0.271737; 0.656056; 0.704031;, + 0.394513; 0.590442; 0.704031;, + 0.462966; 0.692892; 0.552751;, + 0.214209; 0.517136; 0.828639;, + 0.148412; 0.358348; 0.921690;, + 0.215491; 0.322489; 0.921690;, + 0.310984; 0.465407; 0.828639;, + 0.148412; 0.358348;-0.921690;, + 0.214209; 0.517136;-0.828639;, + 0.310984; 0.465407;-0.828639;, + 0.215491; 0.322489;-0.921690;, + 0.271737; 0.656056;-0.704031;, + 0.318888; 0.769890;-0.552751;, + 0.462966; 0.692892;-0.552751;, + 0.394513; 0.590442;-0.704031;, + 0.353862; 0.854366;-0.380535;, + 0.375408; 0.906339;-0.193915;, + 0.545000; 0.815668;-0.193915;, + 0.513749; 0.768914;-0.380535;, + 0.382672; 0.923856; 0.000000;, + 0.375408; 0.906339; 0.193915;, + 0.545000; 0.815668; 0.193915;, + 0.555559; 0.831446; 0.000000;, + 0.353862; 0.854366; 0.380535;, + 0.318888; 0.769890; 0.552751;, + 0.462966; 0.692892; 0.552751;, + 0.513749; 0.768914; 0.380535;, + 0.271737; 0.656056; 0.704031;, + 0.214209; 0.517136; 0.828639;, + 0.310984; 0.465407; 0.828639;, + 0.394513; 0.590442; 0.704031;, + 0.076907; 0.185644;-0.979583;, + 0.148412; 0.358348;-0.921690;, + 0.215491; 0.322489;-0.921690;, + 0.111637; 0.167089;-0.979583;, + 0.148412; 0.358348; 0.921690;, + 0.076907; 0.185644; 0.979583;, + 0.111637; 0.167089; 0.979583;, + 0.215491; 0.322489; 0.921690;, + 0.214209; 0.517136;-0.828639;, + 0.271737; 0.656056;-0.704031;, + 0.394513; 0.590442;-0.704031;, + 0.310984; 0.465407;-0.828639;, + 0.318888; 0.769890;-0.552751;, + 0.353862; 0.854366;-0.380535;, + 0.513749; 0.768914;-0.380535;, + 0.462966; 0.692892;-0.552751;, + 0.375408; 0.906339;-0.193915;, + 0.382672; 0.923856; 0.000000;, + 0.555559; 0.831446; 0.000000;, + 0.545000; 0.815668;-0.193915;, + 0.545000; 0.815668; 0.193915;, + 0.513749; 0.768914; 0.380535;, + 0.653890; 0.653890; 0.380535;, + 0.693655; 0.693655; 0.193915;, + 0.462966; 0.692892; 0.552751;, + 0.394513; 0.590442; 0.704031;, + 0.502121; 0.502121; 0.704031;, + 0.589251; 0.589251; 0.552751;, + 0.310984; 0.465407; 0.828639;, + 0.215491; 0.322489; 0.921690;, + 0.274270; 0.274270; 0.921690;, + 0.395795; 0.395795; 0.828639;, + 0.215491; 0.322489;-0.921690;, + 0.310984; 0.465407;-0.828639;, + 0.395795; 0.395795;-0.828639;, + 0.274270; 0.274270;-0.921690;, + 0.394513; 0.590442;-0.704031;, + 0.462966; 0.692892;-0.552751;, + 0.589251; 0.589251;-0.552751;, + 0.502121; 0.502121;-0.704031;, + 0.513749; 0.768914;-0.380535;, + 0.545000; 0.815668;-0.193915;, + 0.693655; 0.693655;-0.193915;, + 0.653890; 0.653890;-0.380535;, + 0.555559; 0.831446; 0.000000;, + 0.545000; 0.815668; 0.193915;, + 0.693655; 0.693655; 0.193915;, + 0.707083; 0.707083; 0.000000;, + 0.513749; 0.768914; 0.380535;, + 0.462966; 0.692892; 0.552751;, + 0.589251; 0.589251; 0.552751;, + 0.653890; 0.653890; 0.380535;, + 0.394513; 0.590442; 0.704031;, + 0.310984; 0.465407; 0.828639;, + 0.395795; 0.395795; 0.828639;, + 0.502121; 0.502121; 0.704031;, + 0.111637; 0.167089;-0.979583;, + 0.215491; 0.322489;-0.921690;, + 0.274270; 0.274270;-0.921690;, + 0.142094; 0.142094;-0.979583;, + 0.215491; 0.322489; 0.921690;, + 0.111637; 0.167089; 0.979583;, + 0.142094; 0.142094; 0.979583;, + 0.274270; 0.274270; 0.921690;, + 0.310984; 0.465407;-0.828639;, + 0.394513; 0.590442;-0.704031;, + 0.502121; 0.502121;-0.704031;, + 0.395795; 0.395795;-0.828639;, + 0.462966; 0.692892;-0.552751;, + 0.513749; 0.768914;-0.380535;, + 0.653890; 0.653890;-0.380535;, + 0.589251; 0.589251;-0.552751;, + 0.545000; 0.815668;-0.193915;, + 0.555559; 0.831446; 0.000000;, + 0.707083; 0.707083; 0.000000;, + 0.693655; 0.693655;-0.193915;, + 0.693655; 0.693655; 0.193915;, + 0.653890; 0.653890; 0.380535;, + 0.768914; 0.513749; 0.380535;, + 0.815668; 0.545000; 0.193915;, + 0.589251; 0.589251; 0.552751;, + 0.502121; 0.502121; 0.704031;, + 0.590442; 0.394513; 0.704031;, + 0.692892; 0.462966; 0.552751;, + 0.395795; 0.395795; 0.828639;, + 0.274270; 0.274270; 0.921690;, + 0.322489; 0.215491; 0.921690;, + 0.465407; 0.310984; 0.828639;, + 0.274270; 0.274270;-0.921690;, + 0.395795; 0.395795;-0.828639;, + 0.465407; 0.310984;-0.828639;, + 0.322489; 0.215491;-0.921690;, + 0.502121; 0.502121;-0.704031;, + 0.589251; 0.589251;-0.552751;, + 0.692892; 0.462966;-0.552751;, + 0.590442; 0.394513;-0.704031;, + 0.653890; 0.653890;-0.380535;, + 0.693655; 0.693655;-0.193915;, + 0.815668; 0.545000;-0.193915;, + 0.768914; 0.513749;-0.380535;, + 0.707083; 0.707083; 0.000000;, + 0.693655; 0.693655; 0.193915;, + 0.815668; 0.545000; 0.193915;, + 0.831446; 0.555559; 0.000000;, + 0.653890; 0.653890; 0.380535;, + 0.589251; 0.589251; 0.552751;, + 0.692892; 0.462966; 0.552751;, + 0.768914; 0.513749; 0.380535;, + 0.502121; 0.502121; 0.704031;, + 0.395795; 0.395795; 0.828639;, + 0.465407; 0.310984; 0.828639;, + 0.590442; 0.394513; 0.704031;, + 0.142094; 0.142094;-0.979583;, + 0.274270; 0.274270;-0.921690;, + 0.322489; 0.215491;-0.921690;, + 0.167089; 0.111637;-0.979583;, + 0.274270; 0.274270; 0.921690;, + 0.142094; 0.142094; 0.979583;, + 0.167089; 0.111637; 0.979583;, + 0.322489; 0.215491; 0.921690;, + 0.395795; 0.395795;-0.828639;, + 0.502121; 0.502121;-0.704031;, + 0.590442; 0.394513;-0.704031;, + 0.465407; 0.310984;-0.828639;, + 0.589251; 0.589251;-0.552751;, + 0.653890; 0.653890;-0.380535;, + 0.768914; 0.513749;-0.380535;, + 0.692892; 0.462966;-0.552751;, + 0.693655; 0.693655;-0.193915;, + 0.707083; 0.707083; 0.000000;, + 0.831446; 0.555559; 0.000000;, + 0.815668; 0.545000;-0.193915;, + 0.815668; 0.545000; 0.193915;, + 0.768914; 0.513749; 0.380535;, + 0.854366; 0.353862; 0.380535;, + 0.906339; 0.375408; 0.193915;, + 0.692892; 0.462966; 0.552751;, + 0.590442; 0.394513; 0.704031;, + 0.656056; 0.271737; 0.704031;, + 0.769890; 0.318888; 0.552751;, + 0.465407; 0.310984; 0.828639;, + 0.322489; 0.215491; 0.921690;, + 0.358348; 0.148412; 0.921690;, + 0.517136; 0.214209; 0.828639;, + 0.322489; 0.215491;-0.921690;, + 0.465407; 0.310984;-0.828639;, + 0.517136; 0.214209;-0.828639;, + 0.358348; 0.148412;-0.921690;, + 0.590442; 0.394513;-0.704031;, + 0.692892; 0.462966;-0.552751;, + 0.769890; 0.318888;-0.552751;, + 0.656056; 0.271737;-0.704031;, + 0.768914; 0.513749;-0.380535;, + 0.815668; 0.545000;-0.193915;, + 0.906339; 0.375408;-0.193915;, + 0.854366; 0.353862;-0.380535;, + 0.831446; 0.555559; 0.000000;, + 0.815668; 0.545000; 0.193915;, + 0.906339; 0.375408; 0.193915;, + 0.923856; 0.382672; 0.000000;, + 0.768914; 0.513749; 0.380535;, + 0.692892; 0.462966; 0.552751;, + 0.769890; 0.318888; 0.552751;, + 0.854366; 0.353862; 0.380535;, + 0.590442; 0.394513; 0.704031;, + 0.465407; 0.310984; 0.828639;, + 0.517136; 0.214209; 0.828639;, + 0.656056; 0.271737; 0.704031;, + 0.167089; 0.111637;-0.979583;, + 0.322489; 0.215491;-0.921690;, + 0.358348; 0.148412;-0.921690;, + 0.185644; 0.076907;-0.979583;, + 0.322489; 0.215491; 0.921690;, + 0.167089; 0.111637; 0.979583;, + 0.185644; 0.076907; 0.979583;, + 0.358348; 0.148412; 0.921690;, + 0.465407; 0.310984;-0.828639;, + 0.590442; 0.394513;-0.704031;, + 0.656056; 0.271737;-0.704031;, + 0.517136; 0.214209;-0.828639;, + 0.692892; 0.462966;-0.552751;, + 0.768914; 0.513749;-0.380535;, + 0.854366; 0.353862;-0.380535;, + 0.769890; 0.318888;-0.552751;, + 0.815668; 0.545000;-0.193915;, + 0.831446; 0.555559; 0.000000;, + 0.923856; 0.382672; 0.000000;, + 0.906339; 0.375408;-0.193915;, + 0.906339; 0.375408; 0.193915;, + 0.854366; 0.353862; 0.380535;, + 0.906980; 0.180395; 0.380535;, + 0.962157; 0.191382; 0.193915;, + 0.769890; 0.318888; 0.552751;, + 0.656056; 0.271737; 0.704031;, + 0.696493; 0.138524; 0.704031;, + 0.817316; 0.162572; 0.552751;, + 0.517136; 0.214209; 0.828639;, + 0.358348; 0.148412; 0.921690;, + 0.380413; 0.075655; 0.921690;, + 0.548997; 0.109195; 0.828639;, + 0.358348; 0.148412;-0.921690;, + 0.517136; 0.214209;-0.828639;, + 0.548997; 0.109195;-0.828639;, + 0.380413; 0.075655;-0.921690;, + 0.656056; 0.271737;-0.704031;, + 0.769890; 0.318888;-0.552751;, + 0.817316; 0.162572;-0.552751;, + 0.696493; 0.138524;-0.704031;, + 0.854366; 0.353862;-0.380535;, + 0.906339; 0.375408;-0.193915;, + 0.962157; 0.191382;-0.193915;, + 0.906980; 0.180395;-0.380535;, + 0.923856; 0.382672; 0.000000;, + 0.906339; 0.375408; 0.193915;, + 0.962157; 0.191382; 0.193915;, + 0.980773; 0.195074; 0.000000;, + 0.854366; 0.353862; 0.380535;, + 0.769890; 0.318888; 0.552751;, + 0.817316; 0.162572; 0.552751;, + 0.906980; 0.180395; 0.380535;, + 0.656056; 0.271737; 0.704031;, + 0.517136; 0.214209; 0.828639;, + 0.548997; 0.109195; 0.828639;, + 0.696493; 0.138524; 0.704031;, + 0.185644; 0.076907;-0.979583;, + 0.358348; 0.148412;-0.921690;, + 0.380413; 0.075655;-0.921690;, + 0.197089; 0.039186;-0.979583;, + 0.358348; 0.148412; 0.921690;, + 0.185644; 0.076907; 0.979583;, + 0.197089; 0.039186; 0.979583;, + 0.380413; 0.075655; 0.921690;, + 0.517136; 0.214209;-0.828639;, + 0.656056; 0.271737;-0.704031;, + 0.696493; 0.138524;-0.704031;, + 0.548997; 0.109195;-0.828639;, + 0.769890; 0.318888;-0.552751;, + 0.854366; 0.353862;-0.380535;, + 0.906980; 0.180395;-0.380535;, + 0.817316; 0.162572;-0.552751;, + 0.906339; 0.375408;-0.193915;, + 0.923856; 0.382672; 0.000000;, + 0.980773; 0.195074; 0.000000;, + 0.962157; 0.191382;-0.193915;, + 0.962157; 0.191382; 0.193915;, + 0.906980; 0.180395; 0.380535;, + 0.924741; 0.000000; 0.380535;, + 0.980987; 0.000000; 0.193915;, + 0.817316; 0.162572; 0.552751;, + 0.696493; 0.138524; 0.704031;, + 0.710135; 0.000000; 0.704031;, + 0.833338; 0.000000; 0.552751;, + 0.548997; 0.109195; 0.828639;, + 0.380413; 0.075655; 0.921690;, + 0.387860; 0.000000; 0.921690;, + 0.559771; 0.000000; 0.828639;, + 0.380413; 0.075655;-0.921690;, + 0.548997; 0.109195;-0.828639;, + 0.559771; 0.000000;-0.828639;, + 0.387860; 0.000000;-0.921690;, + 0.696493; 0.138524;-0.704031;, + 0.817316; 0.162572;-0.552751;, + 0.833338; 0.000000;-0.552751;, + 0.710135; 0.000000;-0.704031;, + 0.906980; 0.180395;-0.380535;, + 0.962157; 0.191382;-0.193915;, + 0.980987; 0.000000;-0.193915;, + 0.924741; 0.000000;-0.380535;, + 0.980773; 0.195074; 0.000000;, + 0.962157; 0.191382; 0.193915;, + 0.980987; 0.000000; 0.193915;, + 1.000000; 0.000000; 0.000000;, + 0.906980; 0.180395; 0.380535;, + 0.817316; 0.162572; 0.552751;, + 0.833338; 0.000000; 0.552751;, + 0.924741; 0.000000; 0.380535;, + 0.696493; 0.138524; 0.704031;, + 0.548997; 0.109195; 0.828639;, + 0.559771; 0.000000; 0.828639;, + 0.710135; 0.000000; 0.704031;, + 0.197089; 0.039186;-0.979583;, + 0.380413; 0.075655;-0.921690;, + 0.387860; 0.000000;-0.921690;, + 0.200964; 0.000000;-0.979583;, + 0.380413; 0.075655; 0.921690;, + 0.197089; 0.039186; 0.979583;, + 0.200964; 0.000000; 0.979583;, + 0.387860; 0.000000; 0.921690;, + 0.548997; 0.109195;-0.828639;, + 0.696493; 0.138524;-0.704031;, + 0.710135; 0.000000;-0.704031;, + 0.559771; 0.000000;-0.828639;, + 0.817316; 0.162572;-0.552751;, + 0.906980; 0.180395;-0.380535;, + 0.924741; 0.000000;-0.380535;, + 0.833338; 0.000000;-0.552751;, + 0.962157; 0.191382;-0.193915;, + 0.980773; 0.195074; 0.000000;, + 1.000000; 0.000000; 0.000000;, + 0.980987; 0.000000;-0.193915;, + 0.980987; 0.000000; 0.193915;, + 0.924741; 0.000000; 0.380535;, + 0.906980;-0.180395; 0.380535;, + 0.962157;-0.191382; 0.193915;, + 0.833338; 0.000000; 0.552751;, + 0.710135; 0.000000; 0.704031;, + 0.696493;-0.138524; 0.704031;, + 0.817316;-0.162572; 0.552751;, + 0.559771; 0.000000; 0.828639;, + 0.387860; 0.000000; 0.921690;, + 0.380413;-0.075655; 0.921690;, + 0.548997;-0.109195; 0.828639;, + 0.387860; 0.000000;-0.921690;, + 0.559771; 0.000000;-0.828639;, + 0.548997;-0.109195;-0.828639;, + 0.380413;-0.075655;-0.921690;, + 0.710135; 0.000000;-0.704031;, + 0.833338; 0.000000;-0.552751;, + 0.817316;-0.162572;-0.552751;, + 0.696493;-0.138524;-0.704031;, + 0.924741; 0.000000;-0.380535;, + 0.980987; 0.000000;-0.193915;, + 0.962157;-0.191382;-0.193915;, + 0.906980;-0.180395;-0.380535;, + 1.000000; 0.000000; 0.000000;, + 0.980987; 0.000000; 0.193915;, + 0.962157;-0.191382; 0.193915;, + 0.980773;-0.195074; 0.000000;, + 0.924741; 0.000000; 0.380535;, + 0.833338; 0.000000; 0.552751;, + 0.817316;-0.162572; 0.552751;, + 0.906980;-0.180395; 0.380535;, + 0.710135; 0.000000; 0.704031;, + 0.559771; 0.000000; 0.828639;, + 0.548997;-0.109195; 0.828639;, + 0.696493;-0.138524; 0.704031;, + 0.200964; 0.000000;-0.979583;, + 0.387860; 0.000000;-0.921690;, + 0.380413;-0.075655;-0.921690;, + 0.197089;-0.039186;-0.979583;, + 0.387860; 0.000000; 0.921690;, + 0.200964; 0.000000; 0.979583;, + 0.197089;-0.039186; 0.979583;, + 0.380413;-0.075655; 0.921690;, + 0.559771; 0.000000;-0.828639;, + 0.710135; 0.000000;-0.704031;, + 0.696493;-0.138524;-0.704031;, + 0.548997;-0.109195;-0.828639;, + 0.833338; 0.000000;-0.552751;, + 0.924741; 0.000000;-0.380535;, + 0.906980;-0.180395;-0.380535;, + 0.817316;-0.162572;-0.552751;, + 0.980987; 0.000000;-0.193915;, + 1.000000; 0.000000; 0.000000;, + 0.980773;-0.195074; 0.000000;, + 0.962157;-0.191382;-0.193915;, + 0.962157;-0.191382; 0.193915;, + 0.906980;-0.180395; 0.380535;, + 0.854366;-0.353862; 0.380535;, + 0.906339;-0.375408; 0.193915;, + 0.817316;-0.162572; 0.552751;, + 0.696493;-0.138524; 0.704031;, + 0.656056;-0.271737; 0.704031;, + 0.769890;-0.318888; 0.552751;, + 0.548997;-0.109195; 0.828639;, + 0.380413;-0.075655; 0.921690;, + 0.358348;-0.148412; 0.921690;, + 0.517136;-0.214209; 0.828639;, + 0.380413;-0.075655;-0.921690;, + 0.548997;-0.109195;-0.828639;, + 0.517136;-0.214209;-0.828639;, + 0.358348;-0.148412;-0.921690;, + 0.696493;-0.138524;-0.704031;, + 0.817316;-0.162572;-0.552751;, + 0.769890;-0.318888;-0.552751;, + 0.656056;-0.271737;-0.704031;, + 0.906980;-0.180395;-0.380535;, + 0.962157;-0.191382;-0.193915;, + 0.906339;-0.375408;-0.193915;, + 0.854366;-0.353862;-0.380535;, + 0.980773;-0.195074; 0.000000;, + 0.962157;-0.191382; 0.193915;, + 0.906339;-0.375408; 0.193915;, + 0.923856;-0.382672; 0.000000;, + 0.906980;-0.180395; 0.380535;, + 0.817316;-0.162572; 0.552751;, + 0.769890;-0.318888; 0.552751;, + 0.854366;-0.353862; 0.380535;, + 0.696493;-0.138524; 0.704031;, + 0.548997;-0.109195; 0.828639;, + 0.517136;-0.214209; 0.828639;, + 0.656056;-0.271737; 0.704031;, + 0.197089;-0.039186;-0.979583;, + 0.380413;-0.075655;-0.921690;, + 0.358348;-0.148412;-0.921690;, + 0.185644;-0.076907;-0.979583;, + 0.380413;-0.075655; 0.921690;, + 0.197089;-0.039186; 0.979583;, + 0.185644;-0.076907; 0.979583;, + 0.358348;-0.148412; 0.921690;, + 0.548997;-0.109195;-0.828639;, + 0.696493;-0.138524;-0.704031;, + 0.656056;-0.271737;-0.704031;, + 0.517136;-0.214209;-0.828639;, + 0.817316;-0.162572;-0.552751;, + 0.906980;-0.180395;-0.380535;, + 0.854366;-0.353862;-0.380535;, + 0.769890;-0.318888;-0.552751;, + 0.962157;-0.191382;-0.193915;, + 0.980773;-0.195074; 0.000000;, + 0.923856;-0.382672; 0.000000;, + 0.906339;-0.375408;-0.193915;, + 0.906339;-0.375408; 0.193915;, + 0.854366;-0.353862; 0.380535;, + 0.768914;-0.513749; 0.380535;, + 0.815668;-0.545000; 0.193915;, + 0.769890;-0.318888; 0.552751;, + 0.656056;-0.271737; 0.704031;, + 0.590442;-0.394513; 0.704031;, + 0.692892;-0.462966; 0.552751;, + 0.517136;-0.214209; 0.828639;, + 0.358348;-0.148412; 0.921690;, + 0.322489;-0.215491; 0.921690;, + 0.465407;-0.310984; 0.828639;, + 0.358348;-0.148412;-0.921690;, + 0.517136;-0.214209;-0.828639;, + 0.465407;-0.310984;-0.828639;, + 0.322489;-0.215491;-0.921690;, + 0.656056;-0.271737;-0.704031;, + 0.769890;-0.318888;-0.552751;, + 0.692892;-0.462966;-0.552751;, + 0.590442;-0.394513;-0.704031;, + 0.854366;-0.353862;-0.380535;, + 0.906339;-0.375408;-0.193915;, + 0.815668;-0.545000;-0.193915;, + 0.768914;-0.513749;-0.380535;, + 0.923856;-0.382672; 0.000000;, + 0.906339;-0.375408; 0.193915;, + 0.815668;-0.545000; 0.193915;, + 0.831446;-0.555559; 0.000000;, + 0.854366;-0.353862; 0.380535;, + 0.769890;-0.318888; 0.552751;, + 0.692892;-0.462966; 0.552751;, + 0.768914;-0.513749; 0.380535;, + 0.656056;-0.271737; 0.704031;, + 0.517136;-0.214209; 0.828639;, + 0.465407;-0.310984; 0.828639;, + 0.590442;-0.394513; 0.704031;, + 0.185644;-0.076907;-0.979583;, + 0.358348;-0.148412;-0.921690;, + 0.322489;-0.215491;-0.921690;, + 0.167089;-0.111637;-0.979583;, + 0.358348;-0.148412; 0.921690;, + 0.185644;-0.076907; 0.979583;, + 0.167089;-0.111637; 0.979583;, + 0.322489;-0.215491; 0.921690;, + 0.517136;-0.214209;-0.828639;, + 0.656056;-0.271737;-0.704031;, + 0.590442;-0.394513;-0.704031;, + 0.465407;-0.310984;-0.828639;, + 0.769890;-0.318888;-0.552751;, + 0.854366;-0.353862;-0.380535;, + 0.768914;-0.513749;-0.380535;, + 0.692892;-0.462966;-0.552751;, + 0.906339;-0.375408;-0.193915;, + 0.923856;-0.382672; 0.000000;, + 0.831446;-0.555559; 0.000000;, + 0.815668;-0.545000;-0.193915;, + 0.815668;-0.545000; 0.193915;, + 0.768914;-0.513749; 0.380535;, + 0.653890;-0.653890; 0.380535;, + 0.693655;-0.693655; 0.193915;, + 0.692892;-0.462966; 0.552751;, + 0.590442;-0.394513; 0.704031;, + 0.502121;-0.502121; 0.704031;, + 0.589251;-0.589251; 0.552751;, + 0.465407;-0.310984; 0.828639;, + 0.322489;-0.215491; 0.921690;, + 0.274270;-0.274270; 0.921690;, + 0.395795;-0.395795; 0.828639;, + 0.322489;-0.215491;-0.921690;, + 0.465407;-0.310984;-0.828639;, + 0.395795;-0.395795;-0.828639;, + 0.274270;-0.274270;-0.921690;, + 0.590442;-0.394513;-0.704031;, + 0.692892;-0.462966;-0.552751;, + 0.589251;-0.589251;-0.552751;, + 0.502121;-0.502121;-0.704031;, + 0.768914;-0.513749;-0.380535;, + 0.815668;-0.545000;-0.193915;, + 0.693655;-0.693655;-0.193915;, + 0.653890;-0.653890;-0.380535;, + 0.831446;-0.555559; 0.000000;, + 0.815668;-0.545000; 0.193915;, + 0.693655;-0.693655; 0.193915;, + 0.707083;-0.707083; 0.000000;, + 0.768914;-0.513749; 0.380535;, + 0.692892;-0.462966; 0.552751;, + 0.589251;-0.589251; 0.552751;, + 0.653890;-0.653890; 0.380535;, + 0.590442;-0.394513; 0.704031;, + 0.465407;-0.310984; 0.828639;, + 0.395795;-0.395795; 0.828639;, + 0.502121;-0.502121; 0.704031;, + 0.167089;-0.111637;-0.979583;, + 0.322489;-0.215491;-0.921690;, + 0.274270;-0.274270;-0.921690;, + 0.142094;-0.142094;-0.979583;, + 0.322489;-0.215491; 0.921690;, + 0.167089;-0.111637; 0.979583;, + 0.142094;-0.142094; 0.979583;, + 0.274270;-0.274270; 0.921690;, + 0.465407;-0.310984;-0.828639;, + 0.590442;-0.394513;-0.704031;, + 0.502121;-0.502121;-0.704031;, + 0.395795;-0.395795;-0.828639;, + 0.692892;-0.462966;-0.552751;, + 0.768914;-0.513749;-0.380535;, + 0.653890;-0.653890;-0.380535;, + 0.589251;-0.589251;-0.552751;, + 0.815668;-0.545000;-0.193915;, + 0.831446;-0.555559; 0.000000;, + 0.707083;-0.707083; 0.000000;, + 0.693655;-0.693655;-0.193915;, + 0.693655;-0.693655; 0.193915;, + 0.653890;-0.653890; 0.380535;, + 0.513749;-0.768914; 0.380535;, + 0.545000;-0.815668; 0.193915;, + 0.589251;-0.589251; 0.552751;, + 0.502121;-0.502121; 0.704031;, + 0.394513;-0.590442; 0.704031;, + 0.462966;-0.692892; 0.552751;, + 0.395795;-0.395795; 0.828639;, + 0.274270;-0.274270; 0.921690;, + 0.215491;-0.322489; 0.921690;, + 0.310984;-0.465407; 0.828639;, + 0.274270;-0.274270;-0.921690;, + 0.395795;-0.395795;-0.828639;, + 0.310984;-0.465407;-0.828639;, + 0.215491;-0.322489;-0.921690;, + 0.502121;-0.502121;-0.704031;, + 0.589251;-0.589251;-0.552751;, + 0.462966;-0.692892;-0.552751;, + 0.394513;-0.590442;-0.704031;, + 0.653890;-0.653890;-0.380535;, + 0.693655;-0.693655;-0.193915;, + 0.545000;-0.815668;-0.193915;, + 0.513749;-0.768914;-0.380535;, + 0.707083;-0.707083; 0.000000;, + 0.693655;-0.693655; 0.193915;, + 0.545000;-0.815668; 0.193915;, + 0.555559;-0.831446; 0.000000;, + 0.653890;-0.653890; 0.380535;, + 0.589251;-0.589251; 0.552751;, + 0.462966;-0.692892; 0.552751;, + 0.513749;-0.768914; 0.380535;, + 0.502121;-0.502121; 0.704031;, + 0.395795;-0.395795; 0.828639;, + 0.310984;-0.465407; 0.828639;, + 0.394513;-0.590442; 0.704031;, + 0.142094;-0.142094;-0.979583;, + 0.274270;-0.274270;-0.921690;, + 0.215491;-0.322489;-0.921690;, + 0.111637;-0.167089;-0.979583;, + 0.274270;-0.274270; 0.921690;, + 0.142094;-0.142094; 0.979583;, + 0.111637;-0.167089; 0.979583;, + 0.215491;-0.322489; 0.921690;, + 0.395795;-0.395795;-0.828639;, + 0.502121;-0.502121;-0.704031;, + 0.394513;-0.590442;-0.704031;, + 0.310984;-0.465407;-0.828639;, + 0.589251;-0.589251;-0.552751;, + 0.653890;-0.653890;-0.380535;, + 0.513749;-0.768914;-0.380535;, + 0.462966;-0.692892;-0.552751;, + 0.693655;-0.693655;-0.193915;, + 0.707083;-0.707083; 0.000000;, + 0.555559;-0.831446; 0.000000;, + 0.545000;-0.815668;-0.193915;, + 0.545000;-0.815668; 0.193915;, + 0.513749;-0.768914; 0.380535;, + 0.353862;-0.854366; 0.380535;, + 0.375408;-0.906339; 0.193915;, + 0.462966;-0.692892; 0.552751;, + 0.394513;-0.590442; 0.704031;, + 0.271737;-0.656056; 0.704031;, + 0.318888;-0.769890; 0.552751;, + 0.310984;-0.465407; 0.828639;, + 0.215491;-0.322489; 0.921690;, + 0.148412;-0.358348; 0.921690;, + 0.214209;-0.517136; 0.828639;, + 0.215491;-0.322489;-0.921690;, + 0.310984;-0.465407;-0.828639;, + 0.214209;-0.517136;-0.828639;, + 0.148412;-0.358348;-0.921690;, + 0.394513;-0.590442;-0.704031;, + 0.462966;-0.692892;-0.552751;, + 0.318888;-0.769890;-0.552751;, + 0.271737;-0.656056;-0.704031;, + 0.513749;-0.768914;-0.380535;, + 0.545000;-0.815668;-0.193915;, + 0.375408;-0.906339;-0.193915;, + 0.353862;-0.854366;-0.380535;, + 0.555559;-0.831446; 0.000000;, + 0.545000;-0.815668; 0.193915;, + 0.375408;-0.906339; 0.193915;, + 0.382672;-0.923856; 0.000000;, + 0.513749;-0.768914; 0.380535;, + 0.462966;-0.692892; 0.552751;, + 0.318888;-0.769890; 0.552751;, + 0.353862;-0.854366; 0.380535;, + 0.394513;-0.590442; 0.704031;, + 0.310984;-0.465407; 0.828639;, + 0.214209;-0.517136; 0.828639;, + 0.271737;-0.656056; 0.704031;, + 0.111637;-0.167089;-0.979583;, + 0.215491;-0.322489;-0.921690;, + 0.148412;-0.358348;-0.921690;, + 0.076907;-0.185644;-0.979583;, + 0.215491;-0.322489; 0.921690;, + 0.111637;-0.167089; 0.979583;, + 0.076907;-0.185644; 0.979583;, + 0.148412;-0.358348; 0.921690;, + 0.310984;-0.465407;-0.828639;, + 0.394513;-0.590442;-0.704031;, + 0.271737;-0.656056;-0.704031;, + 0.214209;-0.517136;-0.828639;, + 0.462966;-0.692892;-0.552751;, + 0.513749;-0.768914;-0.380535;, + 0.353862;-0.854366;-0.380535;, + 0.318888;-0.769890;-0.552751;, + 0.545000;-0.815668;-0.193915;, + 0.555559;-0.831446; 0.000000;, + 0.382672;-0.923856; 0.000000;, + 0.375408;-0.906339;-0.193915;, + 0.375408;-0.906339; 0.193915;, + 0.353862;-0.854366; 0.380535;, + 0.180395;-0.906980; 0.380535;, + 0.191382;-0.962157; 0.193915;, + 0.318888;-0.769890; 0.552751;, + 0.271737;-0.656056; 0.704031;, + 0.138524;-0.696493; 0.704031;, + 0.162572;-0.817316; 0.552751;, + 0.214209;-0.517136; 0.828639;, + 0.148412;-0.358348; 0.921690;, + 0.075655;-0.380413; 0.921690;, + 0.109195;-0.548997; 0.828639;, + 0.148412;-0.358348;-0.921690;, + 0.214209;-0.517136;-0.828639;, + 0.109195;-0.548997;-0.828639;, + 0.075655;-0.380413;-0.921690;, + 0.271737;-0.656056;-0.704031;, + 0.318888;-0.769890;-0.552751;, + 0.162572;-0.817316;-0.552751;, + 0.138524;-0.696493;-0.704031;, + 0.353862;-0.854366;-0.380535;, + 0.375408;-0.906339;-0.193915;, + 0.191382;-0.962157;-0.193915;, + 0.180395;-0.906980;-0.380535;, + 0.382672;-0.923856; 0.000000;, + 0.375408;-0.906339; 0.193915;, + 0.191382;-0.962157; 0.193915;, + 0.195074;-0.980773; 0.000000;, + 0.353862;-0.854366; 0.380535;, + 0.318888;-0.769890; 0.552751;, + 0.162572;-0.817316; 0.552751;, + 0.180395;-0.906980; 0.380535;, + 0.271737;-0.656056; 0.704031;, + 0.214209;-0.517136; 0.828639;, + 0.109195;-0.548997; 0.828639;, + 0.138524;-0.696493; 0.704031;, + 0.076907;-0.185644;-0.979583;, + 0.148412;-0.358348;-0.921690;, + 0.075655;-0.380413;-0.921690;, + 0.039186;-0.197089;-0.979583;, + 0.148412;-0.358348; 0.921690;, + 0.076907;-0.185644; 0.979583;, + 0.039186;-0.197089; 0.979583;, + 0.075655;-0.380413; 0.921690;, + 0.214209;-0.517136;-0.828639;, + 0.271737;-0.656056;-0.704031;, + 0.138524;-0.696493;-0.704031;, + 0.109195;-0.548997;-0.828639;, + 0.318888;-0.769890;-0.552751;, + 0.353862;-0.854366;-0.380535;, + 0.180395;-0.906980;-0.380535;, + 0.162572;-0.817316;-0.552751;, + 0.375408;-0.906339;-0.193915;, + 0.382672;-0.923856; 0.000000;, + 0.195074;-0.980773; 0.000000;, + 0.191382;-0.962157;-0.193915;, + 0.191382;-0.962157; 0.193915;, + 0.180395;-0.906980; 0.380535;, + 0.000000;-0.924741; 0.380535;, + 0.000000;-0.980987; 0.193915;, + 0.162572;-0.817316; 0.552751;, + 0.138524;-0.696493; 0.704031;, + 0.000000;-0.710135; 0.704031;, + 0.000000;-0.833338; 0.552751;, + 0.109195;-0.548997; 0.828639;, + 0.075655;-0.380413; 0.921690;, + 0.000000;-0.387860; 0.921690;, + 0.000000;-0.559771; 0.828639;, + 0.075655;-0.380413;-0.921690;, + 0.109195;-0.548997;-0.828639;, + 0.000000;-0.559771;-0.828639;, + 0.000000;-0.387860;-0.921690;, + 0.138524;-0.696493;-0.704031;, + 0.162572;-0.817316;-0.552751;, + 0.000000;-0.833338;-0.552751;, + 0.000000;-0.710135;-0.704031;, + 0.180395;-0.906980;-0.380535;, + 0.191382;-0.962157;-0.193915;, + 0.000000;-0.980987;-0.193915;, + 0.000000;-0.924741;-0.380535;, + 0.195074;-0.980773; 0.000000;, + 0.191382;-0.962157; 0.193915;, + 0.000000;-0.980987; 0.193915;, + 0.000000;-1.000000; 0.000000;, + 0.180395;-0.906980; 0.380535;, + 0.162572;-0.817316; 0.552751;, + 0.000000;-0.833338; 0.552751;, + 0.000000;-0.924741; 0.380535;, + 0.138524;-0.696493; 0.704031;, + 0.109195;-0.548997; 0.828639;, + 0.000000;-0.559771; 0.828639;, + 0.000000;-0.710135; 0.704031;, + 0.039186;-0.197089;-0.979583;, + 0.075655;-0.380413;-0.921690;, + 0.000000;-0.387860;-0.921690;, + 0.000000;-0.200964;-0.979583;, + 0.075655;-0.380413; 0.921690;, + 0.039186;-0.197089; 0.979583;, + 0.000000;-0.200964; 0.979583;, + 0.000000;-0.387860; 0.921690;, + 0.109195;-0.548997;-0.828639;, + 0.138524;-0.696493;-0.704031;, + 0.000000;-0.710135;-0.704031;, + 0.000000;-0.559771;-0.828639;, + 0.162572;-0.817316;-0.552751;, + 0.180395;-0.906980;-0.380535;, + 0.000000;-0.924741;-0.380535;, + 0.000000;-0.833338;-0.552751;, + 0.191382;-0.962157;-0.193915;, + 0.195074;-0.980773; 0.000000;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.980987;-0.193915;, + 0.000000;-0.980987; 0.193915;, + 0.000000;-0.924741; 0.380535;, + -0.180395;-0.906980; 0.380535;, + -0.191382;-0.962157; 0.193915;, + 0.000000;-0.833338; 0.552751;, + 0.000000;-0.710135; 0.704031;, + -0.138524;-0.696493; 0.704031;, + -0.162572;-0.817316; 0.552751;, + 0.000000;-0.559771; 0.828639;, + 0.000000;-0.387860; 0.921690;, + -0.075655;-0.380413; 0.921690;, + -0.109195;-0.548997; 0.828639;, + 0.000000;-0.387860;-0.921690;, + 0.000000;-0.559771;-0.828639;, + -0.109195;-0.548997;-0.828639;, + -0.075655;-0.380413;-0.921690;, + 0.000000;-0.710135;-0.704031;, + 0.000000;-0.833338;-0.552751;, + -0.162572;-0.817316;-0.552751;, + -0.138524;-0.696493;-0.704031;, + 0.000000;-0.924741;-0.380535;, + 0.000000;-0.980987;-0.193915;, + -0.191382;-0.962157;-0.193915;, + -0.180395;-0.906980;-0.380535;, + 0.000000;-1.000000; 0.000000;, + 0.000000;-0.980987; 0.193915;, + -0.191382;-0.962157; 0.193915;, + -0.195074;-0.980773; 0.000000;, + 0.000000;-0.924741; 0.380535;, + 0.000000;-0.833338; 0.552751;, + -0.162572;-0.817316; 0.552751;, + -0.180395;-0.906980; 0.380535;, + 0.000000;-0.710135; 0.704031;, + 0.000000;-0.559771; 0.828639;, + -0.109195;-0.548997; 0.828639;, + -0.138524;-0.696493; 0.704031;, + 0.000000;-0.200964;-0.979583;, + 0.000000;-0.387860;-0.921690;, + -0.075655;-0.380413;-0.921690;, + -0.039186;-0.197089;-0.979583;, + 0.000000;-0.387860; 0.921690;, + 0.000000;-0.200964; 0.979583;, + -0.039186;-0.197089; 0.979583;, + -0.075655;-0.380413; 0.921690;, + 0.000000;-0.559771;-0.828639;, + 0.000000;-0.710135;-0.704031;, + -0.138524;-0.696493;-0.704031;, + -0.109195;-0.548997;-0.828639;, + 0.000000;-0.833338;-0.552751;, + 0.000000;-0.924741;-0.380535;, + -0.180395;-0.906980;-0.380535;, + -0.162572;-0.817316;-0.552751;, + 0.000000;-0.980987;-0.193915;, + 0.000000;-1.000000; 0.000000;, + -0.195074;-0.980773; 0.000000;, + -0.191382;-0.962157;-0.193915;, + -0.191382;-0.962157; 0.193915;, + -0.180395;-0.906980; 0.380535;, + -0.353893;-0.854366; 0.380535;, + -0.375408;-0.906339; 0.193915;, + -0.162572;-0.817316; 0.552751;, + -0.138524;-0.696493; 0.704031;, + -0.271737;-0.656056; 0.704031;, + -0.318888;-0.769890; 0.552751;, + -0.109195;-0.548997; 0.828639;, + -0.075655;-0.380413; 0.921690;, + -0.148412;-0.358348; 0.921690;, + -0.214209;-0.517136; 0.828639;, + -0.075655;-0.380413;-0.921690;, + -0.109195;-0.548997;-0.828639;, + -0.214209;-0.517136;-0.828639;, + -0.148412;-0.358348;-0.921690;, + -0.138524;-0.696493;-0.704031;, + -0.162572;-0.817316;-0.552751;, + -0.318888;-0.769890;-0.552751;, + -0.271737;-0.656056;-0.704031;, + -0.180395;-0.906980;-0.380535;, + -0.191382;-0.962157;-0.193915;, + -0.375408;-0.906339;-0.193915;, + -0.353893;-0.854366;-0.380535;, + -0.195074;-0.980773; 0.000000;, + -0.191382;-0.962157; 0.193915;, + -0.375408;-0.906339; 0.193915;, + -0.382672;-0.923856; 0.000000;, + -0.180395;-0.906980; 0.380535;, + -0.162572;-0.817316; 0.552751;, + -0.318888;-0.769890; 0.552751;, + -0.353893;-0.854366; 0.380535;, + -0.138524;-0.696493; 0.704031;, + -0.109195;-0.548997; 0.828639;, + -0.214209;-0.517136; 0.828639;, + -0.271737;-0.656056; 0.704031;, + -0.039186;-0.197089;-0.979583;, + -0.075655;-0.380413;-0.921690;, + -0.148412;-0.358348;-0.921690;, + -0.076907;-0.185644;-0.979583;, + -0.075655;-0.380413; 0.921690;, + -0.039186;-0.197089; 0.979583;, + -0.076907;-0.185644; 0.979583;, + -0.148412;-0.358348; 0.921690;, + -0.109195;-0.548997;-0.828639;, + -0.138524;-0.696493;-0.704031;, + -0.271737;-0.656056;-0.704031;, + -0.214209;-0.517136;-0.828639;, + -0.162572;-0.817316;-0.552751;, + -0.180395;-0.906980;-0.380535;, + -0.353893;-0.854366;-0.380535;, + -0.318888;-0.769890;-0.552751;, + -0.191382;-0.962157;-0.193915;, + -0.195074;-0.980773; 0.000000;, + -0.382672;-0.923856; 0.000000;, + -0.375408;-0.906339;-0.193915;, + -0.375408;-0.906339; 0.193915;, + -0.353893;-0.854366; 0.380535;, + -0.513749;-0.768914; 0.380535;, + -0.545000;-0.815668; 0.193915;, + -0.318888;-0.769890; 0.552751;, + -0.271737;-0.656056; 0.704031;, + -0.394513;-0.590442; 0.704031;, + -0.462966;-0.692892; 0.552751;, + -0.214209;-0.517136; 0.828639;, + -0.148412;-0.358348; 0.921690;, + -0.215491;-0.322489; 0.921690;, + -0.310984;-0.465407; 0.828639;, + -0.148412;-0.358348;-0.921690;, + -0.214209;-0.517136;-0.828639;, + -0.310984;-0.465407;-0.828639;, + -0.215491;-0.322489;-0.921690;, + -0.271737;-0.656056;-0.704031;, + -0.318888;-0.769890;-0.552751;, + -0.462966;-0.692892;-0.552751;, + -0.394513;-0.590442;-0.704031;, + -0.353893;-0.854366;-0.380535;, + -0.375408;-0.906339;-0.193915;, + -0.545000;-0.815668;-0.193915;, + -0.513749;-0.768914;-0.380535;, + -0.382672;-0.923856; 0.000000;, + -0.375408;-0.906339; 0.193915;, + -0.545000;-0.815668; 0.193915;, + -0.555559;-0.831446; 0.000000;, + -0.353893;-0.854366; 0.380535;, + -0.318888;-0.769890; 0.552751;, + -0.462966;-0.692892; 0.552751;, + -0.513749;-0.768914; 0.380535;, + -0.271737;-0.656056; 0.704031;, + -0.214209;-0.517136; 0.828639;, + -0.310984;-0.465407; 0.828639;, + -0.394513;-0.590442; 0.704031;, + -0.076907;-0.185644;-0.979583;, + -0.148412;-0.358348;-0.921690;, + -0.215491;-0.322489;-0.921690;, + -0.111637;-0.167089;-0.979583;, + -0.148412;-0.358348; 0.921690;, + -0.076907;-0.185644; 0.979583;, + -0.111637;-0.167089; 0.979583;, + -0.215491;-0.322489; 0.921690;, + -0.214209;-0.517136;-0.828639;, + -0.271737;-0.656056;-0.704031;, + -0.394513;-0.590442;-0.704031;, + -0.310984;-0.465407;-0.828639;, + -0.318888;-0.769890;-0.552751;, + -0.353893;-0.854366;-0.380535;, + -0.513749;-0.768914;-0.380535;, + -0.462966;-0.692892;-0.552751;, + -0.375408;-0.906339;-0.193915;, + -0.382672;-0.923856; 0.000000;, + -0.555559;-0.831446; 0.000000;, + -0.545000;-0.815668;-0.193915;, + -0.545000;-0.815668; 0.193915;, + -0.513749;-0.768914; 0.380535;, + -0.653890;-0.653890; 0.380535;, + -0.693655;-0.693655; 0.193915;, + -0.462966;-0.692892; 0.552751;, + -0.394513;-0.590442; 0.704031;, + -0.502121;-0.502121; 0.704031;, + -0.589251;-0.589251; 0.552751;, + -0.310984;-0.465407; 0.828639;, + -0.215491;-0.322489; 0.921690;, + -0.274270;-0.274270; 0.921690;, + -0.395795;-0.395795; 0.828639;, + -0.215491;-0.322489;-0.921690;, + -0.310984;-0.465407;-0.828639;, + -0.395795;-0.395795;-0.828639;, + -0.274270;-0.274270;-0.921690;, + -0.394513;-0.590442;-0.704031;, + -0.462966;-0.692892;-0.552751;, + -0.589251;-0.589251;-0.552751;, + -0.502121;-0.502121;-0.704031;, + -0.513749;-0.768914;-0.380535;, + -0.545000;-0.815668;-0.193915;, + -0.693655;-0.693655;-0.193915;, + -0.653890;-0.653890;-0.380535;, + -0.555559;-0.831446; 0.000000;, + -0.545000;-0.815668; 0.193915;, + -0.693655;-0.693655; 0.193915;, + -0.707083;-0.707083; 0.000000;, + -0.513749;-0.768914; 0.380535;, + -0.462966;-0.692892; 0.552751;, + -0.589251;-0.589251; 0.552751;, + -0.653890;-0.653890; 0.380535;, + -0.394513;-0.590442; 0.704031;, + -0.310984;-0.465407; 0.828639;, + -0.395795;-0.395795; 0.828639;, + -0.502121;-0.502121; 0.704031;, + -0.111637;-0.167089;-0.979583;, + -0.215491;-0.322489;-0.921690;, + -0.274270;-0.274270;-0.921690;, + -0.142094;-0.142094;-0.979583;, + -0.215491;-0.322489; 0.921690;, + -0.111637;-0.167089; 0.979583;, + -0.142094;-0.142094; 0.979583;, + -0.274270;-0.274270; 0.921690;, + -0.310984;-0.465407;-0.828639;, + -0.394513;-0.590442;-0.704031;, + -0.502121;-0.502121;-0.704031;, + -0.395795;-0.395795;-0.828639;, + -0.462966;-0.692892;-0.552751;, + -0.513749;-0.768914;-0.380535;, + -0.653890;-0.653890;-0.380535;, + -0.589251;-0.589251;-0.552751;, + -0.545000;-0.815668;-0.193915;, + -0.555559;-0.831446; 0.000000;, + -0.707083;-0.707083; 0.000000;, + -0.693655;-0.693655;-0.193915;, + -0.693655;-0.693655; 0.193915;, + -0.653890;-0.653890; 0.380535;, + -0.768914;-0.513749; 0.380535;, + -0.815668;-0.545000; 0.193915;, + -0.589251;-0.589251; 0.552751;, + -0.502121;-0.502121; 0.704031;, + -0.590442;-0.394513; 0.704031;, + -0.692892;-0.462966; 0.552751;, + -0.395795;-0.395795; 0.828639;, + -0.274270;-0.274270; 0.921690;, + -0.322489;-0.215491; 0.921690;, + -0.465407;-0.310984; 0.828639;, + -0.274270;-0.274270;-0.921690;, + -0.395795;-0.395795;-0.828639;, + -0.465407;-0.310984;-0.828639;, + -0.322489;-0.215491;-0.921690;, + -0.502121;-0.502121;-0.704031;, + -0.589251;-0.589251;-0.552751;, + -0.692892;-0.462966;-0.552751;, + -0.590442;-0.394513;-0.704031;, + -0.653890;-0.653890;-0.380535;, + -0.693655;-0.693655;-0.193915;, + -0.815668;-0.545000;-0.193915;, + -0.768914;-0.513749;-0.380535;, + -0.707083;-0.707083; 0.000000;, + -0.693655;-0.693655; 0.193915;, + -0.815668;-0.545000; 0.193915;, + -0.831446;-0.555559; 0.000000;, + -0.653890;-0.653890; 0.380535;, + -0.589251;-0.589251; 0.552751;, + -0.692892;-0.462966; 0.552751;, + -0.768914;-0.513749; 0.380535;, + -0.502121;-0.502121; 0.704031;, + -0.395795;-0.395795; 0.828639;, + -0.465407;-0.310984; 0.828639;, + -0.590442;-0.394513; 0.704031;, + -0.142094;-0.142094;-0.979583;, + -0.274270;-0.274270;-0.921690;, + -0.322489;-0.215491;-0.921690;, + -0.167089;-0.111637;-0.979583;, + -0.274270;-0.274270; 0.921690;, + -0.142094;-0.142094; 0.979583;, + -0.167089;-0.111637; 0.979583;, + -0.322489;-0.215491; 0.921690;, + -0.395795;-0.395795;-0.828639;, + -0.502121;-0.502121;-0.704031;, + -0.590442;-0.394513;-0.704031;, + -0.465407;-0.310984;-0.828639;, + -0.589251;-0.589251;-0.552751;, + -0.653890;-0.653890;-0.380535;, + -0.768914;-0.513749;-0.380535;, + -0.692892;-0.462966;-0.552751;, + -0.693655;-0.693655;-0.193915;, + -0.707083;-0.707083; 0.000000;, + -0.831446;-0.555559; 0.000000;, + -0.815668;-0.545000;-0.193915;, + -0.815668;-0.545000; 0.193915;, + -0.768914;-0.513749; 0.380535;, + -0.854366;-0.353862; 0.380535;, + -0.906339;-0.375408; 0.193915;, + -0.692892;-0.462966; 0.552751;, + -0.590442;-0.394513; 0.704031;, + -0.656056;-0.271737; 0.704031;, + -0.769890;-0.318888; 0.552751;, + -0.465407;-0.310984; 0.828639;, + -0.322489;-0.215491; 0.921690;, + -0.358348;-0.148412; 0.921690;, + -0.517136;-0.214209; 0.828639;, + -0.322489;-0.215491;-0.921690;, + -0.465407;-0.310984;-0.828639;, + -0.517136;-0.214209;-0.828639;, + -0.358348;-0.148412;-0.921690;, + -0.590442;-0.394513;-0.704031;, + -0.692892;-0.462966;-0.552751;, + -0.769890;-0.318888;-0.552751;, + -0.656056;-0.271737;-0.704031;, + -0.768914;-0.513749;-0.380535;, + -0.815668;-0.545000;-0.193915;, + -0.906339;-0.375408;-0.193915;, + -0.854366;-0.353862;-0.380535;, + -0.831446;-0.555559; 0.000000;, + -0.815668;-0.545000; 0.193915;, + -0.906339;-0.375408; 0.193915;, + -0.923856;-0.382672; 0.000000;, + -0.768914;-0.513749; 0.380535;, + -0.692892;-0.462966; 0.552751;, + -0.769890;-0.318888; 0.552751;, + -0.854366;-0.353862; 0.380535;, + -0.590442;-0.394513; 0.704031;, + -0.465407;-0.310984; 0.828639;, + -0.517136;-0.214209; 0.828639;, + -0.656056;-0.271737; 0.704031;, + -0.167089;-0.111637;-0.979583;, + -0.322489;-0.215491;-0.921690;, + -0.358348;-0.148412;-0.921690;, + -0.185644;-0.076907;-0.979583;, + -0.322489;-0.215491; 0.921690;, + -0.167089;-0.111637; 0.979583;, + -0.185644;-0.076907; 0.979583;, + -0.358348;-0.148412; 0.921690;, + -0.465407;-0.310984;-0.828639;, + -0.590442;-0.394513;-0.704031;, + -0.656056;-0.271737;-0.704031;, + -0.517136;-0.214209;-0.828639;, + -0.692892;-0.462966;-0.552751;, + -0.768914;-0.513749;-0.380535;, + -0.854366;-0.353862;-0.380535;, + -0.769890;-0.318888;-0.552751;, + -0.815668;-0.545000;-0.193915;, + -0.831446;-0.555559; 0.000000;, + -0.923856;-0.382672; 0.000000;, + -0.906339;-0.375408;-0.193915;, + -0.906339;-0.375408; 0.193915;, + -0.854366;-0.353862; 0.380535;, + -0.906980;-0.180395; 0.380535;, + -0.962157;-0.191382; 0.193915;, + -0.769890;-0.318888; 0.552751;, + -0.656056;-0.271737; 0.704031;, + -0.696493;-0.138524; 0.704031;, + -0.817316;-0.162572; 0.552751;, + -0.517136;-0.214209; 0.828639;, + -0.358348;-0.148412; 0.921690;, + -0.380413;-0.075655; 0.921690;, + -0.548997;-0.109195; 0.828639;, + -0.358348;-0.148412;-0.921690;, + -0.517136;-0.214209;-0.828639;, + -0.548997;-0.109195;-0.828639;, + -0.380413;-0.075655;-0.921690;, + -0.656056;-0.271737;-0.704031;, + -0.769890;-0.318888;-0.552751;, + -0.817316;-0.162572;-0.552751;, + -0.696493;-0.138524;-0.704031;, + -0.854366;-0.353862;-0.380535;, + -0.906339;-0.375408;-0.193915;, + -0.962157;-0.191382;-0.193915;, + -0.906980;-0.180395;-0.380535;, + -0.923856;-0.382672; 0.000000;, + -0.906339;-0.375408; 0.193915;, + -0.962157;-0.191382; 0.193915;, + -0.980773;-0.195074; 0.000000;, + -0.854366;-0.353862; 0.380535;, + -0.769890;-0.318888; 0.552751;, + -0.817316;-0.162572; 0.552751;, + -0.906980;-0.180395; 0.380535;, + -0.656056;-0.271737; 0.704031;, + -0.517136;-0.214209; 0.828639;, + -0.548997;-0.109195; 0.828639;, + -0.696493;-0.138524; 0.704031;, + -0.185644;-0.076907;-0.979583;, + -0.358348;-0.148412;-0.921690;, + -0.380413;-0.075655;-0.921690;, + -0.197089;-0.039186;-0.979583;, + -0.358348;-0.148412; 0.921690;, + -0.185644;-0.076907; 0.979583;, + -0.197089;-0.039186; 0.979583;, + -0.380413;-0.075655; 0.921690;, + -0.517136;-0.214209;-0.828639;, + -0.656056;-0.271737;-0.704031;, + -0.696493;-0.138524;-0.704031;, + -0.548997;-0.109195;-0.828639;, + -0.769890;-0.318888;-0.552751;, + -0.854366;-0.353862;-0.380535;, + -0.906980;-0.180395;-0.380535;, + -0.817316;-0.162572;-0.552751;, + -0.906339;-0.375408;-0.193915;, + -0.923856;-0.382672; 0.000000;, + -0.980773;-0.195074; 0.000000;, + -0.962157;-0.191382;-0.193915;, + -0.200964; 0.000000; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.197089; 0.039186; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.200964; 0.000000;-0.979583;, + -0.197089; 0.039186;-0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.197089; 0.039186;-0.979583;, + -0.185644; 0.076907;-0.979583;, + -0.197089; 0.039186; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.185644; 0.076907; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.185644; 0.076907;-0.979583;, + -0.167089; 0.111637;-0.979583;, + -0.185644; 0.076907; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.167089; 0.111637; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.167089; 0.111637;-0.979583;, + -0.142094; 0.142094;-0.979583;, + -0.167089; 0.111637; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.142094; 0.142094; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.142094; 0.142094;-0.979583;, + -0.111637; 0.167089;-0.979583;, + -0.142094; 0.142094; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.111637; 0.167089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.111637; 0.167089;-0.979583;, + -0.076907; 0.185644;-0.979583;, + -0.111637; 0.167089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.076907; 0.185644; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.076907; 0.185644;-0.979583;, + -0.039186; 0.197089;-0.979583;, + -0.076907; 0.185644; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.039186; 0.197089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.039186; 0.197089;-0.979583;, + 0.000000; 0.200964;-0.979583;, + -0.039186; 0.197089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.000000; 0.200964; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.000000; 0.200964;-0.979583;, + 0.039186; 0.197089;-0.979583;, + 0.000000; 0.200964; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.039186; 0.197089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.039186; 0.197089;-0.979583;, + 0.076907; 0.185644;-0.979583;, + 0.039186; 0.197089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.076907; 0.185644; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.076907; 0.185644;-0.979583;, + 0.111637; 0.167089;-0.979583;, + 0.076907; 0.185644; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.111637; 0.167089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.111637; 0.167089;-0.979583;, + 0.142094; 0.142094;-0.979583;, + 0.111637; 0.167089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.142094; 0.142094; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.142094; 0.142094;-0.979583;, + 0.167089; 0.111637;-0.979583;, + 0.142094; 0.142094; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.167089; 0.111637; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.167089; 0.111637;-0.979583;, + 0.185644; 0.076907;-0.979583;, + 0.167089; 0.111637; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.185644; 0.076907; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.185644; 0.076907;-0.979583;, + 0.197089; 0.039186;-0.979583;, + 0.185644; 0.076907; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.197089; 0.039186; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.197089; 0.039186;-0.979583;, + 0.200964; 0.000000;-0.979583;, + 0.197089; 0.039186; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.200964; 0.000000; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.200964; 0.000000;-0.979583;, + 0.197089;-0.039186;-0.979583;, + 0.200964; 0.000000; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.197089;-0.039186; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.197089;-0.039186;-0.979583;, + 0.185644;-0.076907;-0.979583;, + 0.197089;-0.039186; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.185644;-0.076907; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.185644;-0.076907;-0.979583;, + 0.167089;-0.111637;-0.979583;, + 0.185644;-0.076907; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.167089;-0.111637; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.167089;-0.111637;-0.979583;, + 0.142094;-0.142094;-0.979583;, + 0.167089;-0.111637; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.142094;-0.142094; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.142094;-0.142094;-0.979583;, + 0.111637;-0.167089;-0.979583;, + 0.142094;-0.142094; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.111637;-0.167089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.111637;-0.167089;-0.979583;, + 0.076907;-0.185644;-0.979583;, + 0.111637;-0.167089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.076907;-0.185644; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.076907;-0.185644;-0.979583;, + 0.039186;-0.197089;-0.979583;, + 0.076907;-0.185644; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.039186;-0.197089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.039186;-0.197089;-0.979583;, + 0.000000;-0.200964;-0.979583;, + 0.039186;-0.197089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + 0.000000;-0.200964; 0.979583;, + 0.000000; 0.000000;-1.000000;, + 0.000000;-0.200964;-0.979583;, + -0.039186;-0.197089;-0.979583;, + 0.000000;-0.200964; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.039186;-0.197089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.039186;-0.197089;-0.979583;, + -0.076907;-0.185644;-0.979583;, + -0.039186;-0.197089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.076907;-0.185644; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.076907;-0.185644;-0.979583;, + -0.111637;-0.167089;-0.979583;, + -0.076907;-0.185644; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.111637;-0.167089; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.111637;-0.167089;-0.979583;, + -0.142094;-0.142094;-0.979583;, + -0.111637;-0.167089; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.142094;-0.142094; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.142094;-0.142094;-0.979583;, + -0.167089;-0.111637;-0.979583;, + -0.142094;-0.142094; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.167089;-0.111637; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.167089;-0.111637;-0.979583;, + -0.185644;-0.076907;-0.979583;, + -0.167089;-0.111637; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.185644;-0.076907; 0.979583;, + 0.000000; 0.000000;-1.000000;, + -0.185644;-0.076907;-0.979583;, + -0.197089;-0.039186;-0.979583;, + -0.185644;-0.076907; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.197089;-0.039186; 0.979583;, + -0.962157;-0.191382; 0.193915;, + -0.906980;-0.180395; 0.380535;, + -0.924741; 0.000000; 0.380535;, + -0.980987; 0.000000; 0.193915;, + -0.817316;-0.162572; 0.552751;, + -0.696493;-0.138524; 0.704031;, + -0.710135; 0.000000; 0.704031;, + -0.833338; 0.000000; 0.552751;, + 0.000000; 0.000000;-1.000000;, + -0.197089;-0.039186;-0.979583;, + -0.200964; 0.000000;-0.979583;, + -0.548997;-0.109195; 0.828639;, + -0.380413;-0.075655; 0.921690;, + -0.387860; 0.000000; 0.921690;, + -0.559771; 0.000000; 0.828639;, + -0.380413;-0.075655;-0.921690;, + -0.548997;-0.109195;-0.828639;, + -0.559771; 0.000000;-0.828639;, + -0.387860; 0.000000;-0.921690;, + -0.197089;-0.039186; 0.979583;, + 0.000000; 0.000000; 1.000000;, + -0.200964; 0.000000; 0.979583;, + -0.696493;-0.138524;-0.704031;, + -0.817316;-0.162572;-0.552751;, + -0.833338; 0.000000;-0.552751;, + -0.710135; 0.000000;-0.704031;, + -0.906980;-0.180395;-0.380535;, + -0.962157;-0.191382;-0.193915;, + -0.980987; 0.000000;-0.193915;, + -0.924741; 0.000000;-0.380535;, + -0.980773;-0.195074; 0.000000;, + -0.962157;-0.191382; 0.193915;, + -0.980987; 0.000000; 0.193915;, + -1.000000; 0.000000; 0.000000;, + -0.906980;-0.180395; 0.380535;, + -0.817316;-0.162572; 0.552751;, + -0.833338; 0.000000; 0.552751;, + -0.924741; 0.000000; 0.380535;, + -0.696493;-0.138524; 0.704031;, + -0.548997;-0.109195; 0.828639;, + -0.559771; 0.000000; 0.828639;, + -0.710135; 0.000000; 0.704031;, + -0.197089;-0.039186;-0.979583;, + -0.380413;-0.075655;-0.921690;, + -0.387860; 0.000000;-0.921690;, + -0.200964; 0.000000;-0.979583;, + -0.380413;-0.075655; 0.921690;, + -0.197089;-0.039186; 0.979583;, + -0.200964; 0.000000; 0.979583;, + -0.387860; 0.000000; 0.921690;, + -0.548997;-0.109195;-0.828639;, + -0.696493;-0.138524;-0.704031;, + -0.710135; 0.000000;-0.704031;, + -0.559771; 0.000000;-0.828639;, + -0.817316;-0.162572;-0.552751;, + -0.906980;-0.180395;-0.380535;, + -0.924741; 0.000000;-0.380535;, + -0.833338; 0.000000;-0.552751;, + -0.962157;-0.191382;-0.193915;, + -0.980773;-0.195074; 0.000000;, + -1.000000; 0.000000; 0.000000;, + -0.980987; 0.000000;-0.193915;; + 512; + 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;, + 4;195,194,193,192;, + 4;199,198,197,196;, + 4;203,202,201,200;, + 4;207,206,205,204;, + 4;211,210,209,208;, + 4;215,214,213,212;, + 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;, + 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;, + 4;387,386,385,384;, + 4;391,390,389,388;, + 4;395,394,393,392;, + 4;399,398,397,396;, + 4;403,402,401,400;, + 4;407,406,405,404;, + 4;411,410,409,408;, + 4;415,414,413,412;, + 4;419,418,417,416;, + 4;423,422,421,420;, + 4;427,426,425,424;, + 4;431,430,429,428;, + 4;435,434,433,432;, + 4;439,438,437,436;, + 4;443,442,441,440;, + 4;447,446,445,444;, + 4;451,450,449,448;, + 4;455,454,453,452;, + 4;459,458,457,456;, + 4;463,462,461,460;, + 4;467,466,465,464;, + 4;471,470,469,468;, + 4;475,474,473,472;, + 4;479,478,477,476;, + 4;483,482,481,480;, + 4;487,486,485,484;, + 4;491,490,489,488;, + 4;495,494,493,492;, + 4;499,498,497,496;, + 4;503,502,501,500;, + 4;507,506,505,504;, + 4;511,510,509,508;, + 4;515,514,513,512;, + 4;519,518,517,516;, + 4;523,522,521,520;, + 4;527,526,525,524;, + 4;531,530,529,528;, + 4;535,534,533,532;, + 4;539,538,537,536;, + 4;543,542,541,540;, + 4;547,546,545,544;, + 4;551,550,549,548;, + 4;555,554,553,552;, + 4;559,558,557,556;, + 4;563,562,561,560;, + 4;567,566,565,564;, + 4;571,570,569,568;, + 4;575,574,573,572;, + 4;579,578,577,576;, + 4;583,582,581,580;, + 4;587,586,585,584;, + 4;591,590,589,588;, + 4;595,594,593,592;, + 4;599,598,597,596;, + 4;603,602,601,600;, + 4;607,606,605,604;, + 4;611,610,609,608;, + 4;615,614,613,612;, + 4;619,618,617,616;, + 4;623,622,621,620;, + 4;627,626,625,624;, + 4;631,630,629,628;, + 4;635,634,633,632;, + 4;639,638,637,636;, + 4;643,642,641,640;, + 4;647,646,645,644;, + 4;651,650,649,648;, + 4;655,654,653,652;, + 4;659,658,657,656;, + 4;663,662,661,660;, + 4;667,666,665,664;, + 4;671,670,669,668;, + 4;675,674,673,672;, + 4;679,678,677,676;, + 4;683,682,681,680;, + 4;687,686,685,684;, + 4;691,690,689,688;, + 4;695,694,693,692;, + 4;699,698,697,696;, + 4;703,702,701,700;, + 4;707,706,705,704;, + 4;711,710,709,708;, + 4;715,714,713,712;, + 4;719,718,717,716;, + 4;723,722,721,720;, + 4;727,726,725,724;, + 4;731,730,729,728;, + 4;735,734,733,732;, + 4;739,738,737,736;, + 4;743,742,741,740;, + 4;747,746,745,744;, + 4;751,750,749,748;, + 4;755,754,753,752;, + 4;759,758,757,756;, + 4;763,762,761,760;, + 4;767,766,765,764;, + 4;771,770,769,768;, + 4;775,774,773,772;, + 4;779,778,777,776;, + 4;783,782,781,780;, + 4;787,786,785,784;, + 4;791,790,789,788;, + 4;795,794,793,792;, + 4;799,798,797,796;, + 4;803,802,801,800;, + 4;807,806,805,804;, + 4;811,810,809,808;, + 4;815,814,813,812;, + 4;819,818,817,816;, + 4;823,822,821,820;, + 4;827,826,825,824;, + 4;831,830,829,828;, + 4;835,834,833,832;, + 4;839,838,837,836;, + 4;843,842,841,840;, + 4;847,846,845,844;, + 4;851,850,849,848;, + 4;855,854,853,852;, + 4;859,858,857,856;, + 4;863,862,861,860;, + 4;867,866,865,864;, + 4;871,870,869,868;, + 4;875,874,873,872;, + 4;879,878,877,876;, + 4;883,882,881,880;, + 4;887,886,885,884;, + 4;891,890,889,888;, + 4;895,894,893,892;, + 4;899,898,897,896;, + 4;903,902,901,900;, + 4;907,906,905,904;, + 4;911,910,909,908;, + 4;915,914,913,912;, + 4;919,918,917,916;, + 4;923,922,921,920;, + 4;927,926,925,924;, + 4;931,930,929,928;, + 4;935,934,933,932;, + 4;939,938,937,936;, + 4;943,942,941,940;, + 4;947,946,945,944;, + 4;951,950,949,948;, + 4;955,954,953,952;, + 4;959,958,957,956;, + 4;963,962,961,960;, + 4;967,966,965,964;, + 4;971,970,969,968;, + 4;975,974,973,972;, + 4;979,978,977,976;, + 4;983,982,981,980;, + 4;987,986,985,984;, + 4;991,990,989,988;, + 4;995,994,993,992;, + 4;999,998,997,996;, + 4;1003,1002,1001,1000;, + 4;1007,1006,1005,1004;, + 4;1011,1010,1009,1008;, + 4;1015,1014,1013,1012;, + 4;1019,1018,1017,1016;, + 4;1023,1022,1021,1020;, + 4;1027,1026,1025,1024;, + 4;1031,1030,1029,1028;, + 4;1035,1034,1033,1032;, + 4;1039,1038,1037,1036;, + 4;1043,1042,1041,1040;, + 4;1047,1046,1045,1044;, + 4;1051,1050,1049,1048;, + 4;1055,1054,1053,1052;, + 4;1059,1058,1057,1056;, + 4;1063,1062,1061,1060;, + 4;1067,1066,1065,1064;, + 4;1071,1070,1069,1068;, + 4;1075,1074,1073,1072;, + 4;1079,1078,1077,1076;, + 4;1083,1082,1081,1080;, + 4;1087,1086,1085,1084;, + 4;1091,1090,1089,1088;, + 4;1095,1094,1093,1092;, + 4;1099,1098,1097,1096;, + 4;1103,1102,1101,1100;, + 4;1107,1106,1105,1104;, + 4;1111,1110,1109,1108;, + 4;1115,1114,1113,1112;, + 4;1119,1118,1117,1116;, + 4;1123,1122,1121,1120;, + 4;1127,1126,1125,1124;, + 4;1131,1130,1129,1128;, + 4;1135,1134,1133,1132;, + 4;1139,1138,1137,1136;, + 4;1143,1142,1141,1140;, + 4;1147,1146,1145,1144;, + 4;1151,1150,1149,1148;, + 4;1155,1154,1153,1152;, + 4;1159,1158,1157,1156;, + 4;1163,1162,1161,1160;, + 4;1167,1166,1165,1164;, + 4;1171,1170,1169,1168;, + 4;1175,1174,1173,1172;, + 4;1179,1178,1177,1176;, + 4;1183,1182,1181,1180;, + 4;1187,1186,1185,1184;, + 4;1191,1190,1189,1188;, + 4;1195,1194,1193,1192;, + 4;1199,1198,1197,1196;, + 4;1203,1202,1201,1200;, + 4;1207,1206,1205,1204;, + 4;1211,1210,1209,1208;, + 4;1215,1214,1213,1212;, + 4;1219,1218,1217,1216;, + 4;1223,1222,1221,1220;, + 4;1227,1226,1225,1224;, + 4;1231,1230,1229,1228;, + 4;1235,1234,1233,1232;, + 4;1239,1238,1237,1236;, + 4;1243,1242,1241,1240;, + 4;1247,1246,1245,1244;, + 4;1251,1250,1249,1248;, + 4;1255,1254,1253,1252;, + 4;1259,1258,1257,1256;, + 4;1263,1262,1261,1260;, + 4;1267,1266,1265,1264;, + 4;1271,1270,1269,1268;, + 4;1275,1274,1273,1272;, + 4;1279,1278,1277,1276;, + 4;1283,1282,1281,1280;, + 4;1287,1286,1285,1284;, + 4;1291,1290,1289,1288;, + 4;1295,1294,1293,1292;, + 4;1299,1298,1297,1296;, + 4;1303,1302,1301,1300;, + 4;1307,1306,1305,1304;, + 4;1311,1310,1309,1308;, + 4;1315,1314,1313,1312;, + 4;1319,1318,1317,1316;, + 4;1323,1322,1321,1320;, + 4;1327,1326,1325,1324;, + 4;1331,1330,1329,1328;, + 4;1335,1334,1333,1332;, + 4;1339,1338,1337,1336;, + 4;1343,1342,1341,1340;, + 4;1347,1346,1345,1344;, + 4;1351,1350,1349,1348;, + 4;1355,1354,1353,1352;, + 4;1359,1358,1357,1356;, + 4;1363,1362,1361,1360;, + 4;1367,1366,1365,1364;, + 4;1371,1370,1369,1368;, + 4;1375,1374,1373,1372;, + 4;1379,1378,1377,1376;, + 4;1383,1382,1381,1380;, + 4;1387,1386,1385,1384;, + 4;1391,1390,1389,1388;, + 4;1395,1394,1393,1392;, + 4;1399,1398,1397,1396;, + 4;1403,1402,1401,1400;, + 4;1407,1406,1405,1404;, + 4;1411,1410,1409,1408;, + 4;1415,1414,1413,1412;, + 4;1419,1418,1417,1416;, + 4;1423,1422,1421,1420;, + 4;1427,1426,1425,1424;, + 4;1431,1430,1429,1428;, + 4;1435,1434,1433,1432;, + 4;1439,1438,1437,1436;, + 4;1443,1442,1441,1440;, + 4;1447,1446,1445,1444;, + 4;1451,1450,1449,1448;, + 4;1455,1454,1453,1452;, + 4;1459,1458,1457,1456;, + 4;1463,1462,1461,1460;, + 4;1467,1466,1465,1464;, + 4;1471,1470,1469,1468;, + 4;1475,1474,1473,1472;, + 4;1479,1478,1477,1476;, + 4;1483,1482,1481,1480;, + 4;1487,1486,1485,1484;, + 4;1491,1490,1489,1488;, + 4;1495,1494,1493,1492;, + 4;1499,1498,1497,1496;, + 4;1503,1502,1501,1500;, + 4;1507,1506,1505,1504;, + 4;1511,1510,1509,1508;, + 4;1515,1514,1513,1512;, + 4;1519,1518,1517,1516;, + 4;1523,1522,1521,1520;, + 4;1527,1526,1525,1524;, + 4;1531,1530,1529,1528;, + 4;1535,1534,1533,1532;, + 4;1539,1538,1537,1536;, + 4;1543,1542,1541,1540;, + 4;1547,1546,1545,1544;, + 4;1551,1550,1549,1548;, + 4;1555,1554,1553,1552;, + 4;1559,1558,1557,1556;, + 4;1563,1562,1561,1560;, + 4;1567,1566,1565,1564;, + 4;1571,1570,1569,1568;, + 4;1575,1574,1573,1572;, + 4;1579,1578,1577,1576;, + 4;1583,1582,1581,1580;, + 4;1587,1586,1585,1584;, + 4;1591,1590,1589,1588;, + 4;1595,1594,1593,1592;, + 4;1599,1598,1597,1596;, + 4;1603,1602,1601,1600;, + 4;1607,1606,1605,1604;, + 4;1611,1610,1609,1608;, + 4;1615,1614,1613,1612;, + 4;1619,1618,1617,1616;, + 4;1623,1622,1621,1620;, + 4;1627,1626,1625,1624;, + 4;1631,1630,1629,1628;, + 4;1635,1634,1633,1632;, + 4;1639,1638,1637,1636;, + 4;1643,1642,1641,1640;, + 4;1647,1646,1645,1644;, + 4;1651,1650,1649,1648;, + 4;1655,1654,1653,1652;, + 4;1659,1658,1657,1656;, + 4;1663,1662,1661,1660;, + 4;1667,1666,1665,1664;, + 4;1671,1670,1669,1668;, + 4;1675,1674,1673,1672;, + 4;1679,1678,1677,1676;, + 4;1683,1682,1681,1680;, + 4;1687,1686,1685,1684;, + 4;1691,1690,1689,1688;, + 4;1695,1694,1693,1692;, + 4;1699,1698,1697,1696;, + 4;1703,1702,1701,1700;, + 4;1707,1706,1705,1704;, + 4;1711,1710,1709,1708;, + 4;1715,1714,1713,1712;, + 4;1719,1718,1717,1716;, + 4;1723,1722,1721,1720;, + 4;1727,1726,1725,1724;, + 4;1731,1730,1729,1728;, + 4;1735,1734,1733,1732;, + 3;1738,1737,1736;, + 3;1741,1740,1739;, + 3;1744,1743,1742;, + 3;1747,1746,1745;, + 3;1750,1749,1748;, + 3;1753,1752,1751;, + 3;1756,1755,1754;, + 3;1759,1758,1757;, + 3;1762,1761,1760;, + 3;1765,1764,1763;, + 3;1768,1767,1766;, + 3;1771,1770,1769;, + 3;1774,1773,1772;, + 3;1777,1776,1775;, + 3;1780,1779,1778;, + 3;1783,1782,1781;, + 3;1786,1785,1784;, + 3;1789,1788,1787;, + 3;1792,1791,1790;, + 3;1795,1794,1793;, + 3;1798,1797,1796;, + 3;1801,1800,1799;, + 3;1804,1803,1802;, + 3;1807,1806,1805;, + 3;1810,1809,1808;, + 3;1813,1812,1811;, + 3;1816,1815,1814;, + 3;1819,1818,1817;, + 3;1822,1821,1820;, + 3;1825,1824,1823;, + 3;1828,1827,1826;, + 3;1831,1830,1829;, + 3;1834,1833,1832;, + 3;1837,1836,1835;, + 3;1840,1839,1838;, + 3;1843,1842,1841;, + 3;1846,1845,1844;, + 3;1849,1848,1847;, + 3;1852,1851,1850;, + 3;1855,1854,1853;, + 3;1858,1857,1856;, + 3;1861,1860,1859;, + 3;1864,1863,1862;, + 3;1867,1866,1865;, + 3;1870,1869,1868;, + 3;1873,1872,1871;, + 3;1876,1875,1874;, + 3;1879,1878,1877;, + 3;1882,1881,1880;, + 3;1885,1884,1883;, + 3;1888,1887,1886;, + 3;1891,1890,1889;, + 3;1894,1893,1892;, + 3;1897,1896,1895;, + 3;1900,1899,1898;, + 3;1903,1902,1901;, + 3;1906,1905,1904;, + 3;1909,1908,1907;, + 3;1912,1911,1910;, + 3;1915,1914,1913;, + 3;1918,1917,1916;, + 3;1921,1920,1919;, + 4;1925,1924,1923,1922;, + 4;1929,1928,1927,1926;, + 3;1932,1931,1930;, + 4;1936,1935,1934,1933;, + 4;1940,1939,1938,1937;, + 3;1943,1942,1941;, + 4;1947,1946,1945,1944;, + 4;1951,1950,1949,1948;, + 4;1955,1954,1953,1952;, + 4;1959,1958,1957,1956;, + 4;1963,1962,1961,1960;, + 4;1967,1966,1965,1964;, + 4;1971,1970,1969,1968;, + 4;1975,1974,1973,1972;, + 4;1979,1978,1977,1976;, + 4;1983,1982,1981,1980;; + } // End of Sphere normals + MeshTextureCoords { // Sphere UV coordinates + 1984; + 0.696329; 0.649558;, + 0.693439; 0.695942;, + 0.732081; 0.695942;, + 0.729191; 0.649558;, + 0.052296; 0.544562;, + 0.098751; 0.545884;, + 0.098751; 0.500303;, + 0.052296; 0.501626;, + 0.098749; 0.901249;, + 0.052277; 0.901696;, + 0.052277; 0.947277;, + 0.098749; 0.947723;, + 0.507917; 0.304323;, + 0.510064; 0.350748;, + 0.548706; 0.350748;, + 0.550854; 0.304323;, + 0.787055; 0.193057;, + 0.833395; 0.189536;, + 0.833395; 0.163716;, + 0.787055; 0.160195;, + 0.883533; 0.070045;, + 0.837264; 0.065686;, + 0.837264; 0.083471;, + 0.883533; 0.079112;, + 0.153051; 0.080850;, + 0.199320; 0.076491;, + 0.199320; 0.067424;, + 0.153051; 0.063065;, + 0.048334; 0.181823;, + 0.001993; 0.178302;, + 0.001993; 0.211164;, + 0.048334; 0.207643;, + 0.604617; 0.951622;, + 0.602469; 0.998047;, + 0.645406; 0.998047;, + 0.643258; 0.951622;, + 0.354778; 0.649541;, + 0.354331; 0.696013;, + 0.400806; 0.696013;, + 0.400359; 0.649541;, + 0.249759; 0.549751;, + 0.203303; 0.551073;, + 0.203303; 0.594010;, + 0.249759; 0.595332;, + 0.559017; 0.297388;, + 0.561907; 0.343772;, + 0.594769; 0.343772;, + 0.597659; 0.297388;, + 0.203378; 0.139468;, + 0.249678; 0.135451;, + 0.249678; 0.117666;, + 0.203378; 0.113649;, + 0.149094; 0.096599;, + 0.102794; 0.092581;, + 0.102793; 0.118401;, + 0.149094; 0.114384;, + 0.149094; 0.500305;, + 0.102639; 0.501628;, + 0.102639; 0.544564;, + 0.149094; 0.545887;, + 0.098680; 0.267928;, + 0.052296; 0.270817;, + 0.052296; 0.303680;, + 0.098680; 0.306569;, + 0.052340; 0.118399;, + 0.098640; 0.114381;, + 0.098640; 0.096596;, + 0.052340; 0.092579;, + 0.199320; 0.118424;, + 0.153020; 0.114407;, + 0.153020; 0.140226;, + 0.199320; 0.136209;, + 0.203334; 0.302803;, + 0.249718; 0.305693;, + 0.249718; 0.267051;, + 0.203334; 0.269941;, + 0.404655; 0.594008;, + 0.451111; 0.595330;, + 0.451111; 0.549749;, + 0.404655; 0.551071;, + 0.303987; 0.847037;, + 0.350459; 0.846591;, + 0.350459; 0.801010;, + 0.303987; 0.800563;, + 0.350413; 0.310436;, + 0.303989; 0.312584;, + 0.303989; 0.351225;, + 0.350413; 0.353373;, + 0.354446; 0.176197;, + 0.400787; 0.172676;, + 0.400787; 0.146856;, + 0.354446; 0.143335;, + 0.833364; 0.076481;, + 0.787095; 0.072122;, + 0.787095; 0.089907;, + 0.833365; 0.085547;, + 0.912153; 0.516420;, + 0.958422; 0.512061;, + 0.958422; 0.502994;, + 0.912153; 0.498635;, + 0.350370; 0.184463;, + 0.304029; 0.180942;, + 0.304029; 0.213804;, + 0.350370; 0.210283;, + 0.203334; 0.397156;, + 0.249758; 0.399304;, + 0.249758; 0.356367;, + 0.203334; 0.358514;, + 0.299674; 0.796695;, + 0.300120; 0.750223;, + 0.253646; 0.750223;, + 0.254092; 0.796695;, + 0.098751; 0.549753;, + 0.052296; 0.551075;, + 0.052296; 0.594012;, + 0.098751; 0.595334;, + 0.451111; 0.267923;, + 0.404726; 0.270813;, + 0.404727; 0.303675;, + 0.451111; 0.306565;, + 0.507958; 0.112284;, + 0.554258; 0.108267;, + 0.554258; 0.090482;, + 0.507958; 0.086465;, + 0.698125; 0.120976;, + 0.651824; 0.116959;, + 0.651825; 0.142779;, + 0.698125; 0.138761;, + 0.651781; 0.298372;, + 0.698165; 0.301261;, + 0.698165; 0.262620;, + 0.651781; 0.265509;, + 0.303989; 0.594010;, + 0.350444; 0.595332;, + 0.350444; 0.549751;, + 0.303989; 0.551073;, + 0.048408; 0.847042;, + 0.047962; 0.800570;, + 0.002381; 0.800570;, + 0.001934; 0.847042;, + 0.550854; 0.401422;, + 0.504429; 0.403569;, + 0.504429; 0.442211;, + 0.550854; 0.444358;, + 0.304029; 0.177073;, + 0.350370; 0.173552;, + 0.350370; 0.147732;, + 0.304029; 0.144211;, + 0.935490; 0.804974;, + 0.889221; 0.800615;, + 0.889221; 0.818400;, + 0.935490; 0.814040;, + 0.304060; 0.080966;, + 0.350329; 0.076607;, + 0.350329; 0.067540;, + 0.304060; 0.063181;, + 0.098680; 0.192207;, + 0.052340; 0.188686;, + 0.052340; 0.221548;, + 0.098680; 0.218027;, + 0.052296; 0.398032;, + 0.098721; 0.400180;, + 0.098721; 0.357243;, + 0.052296; 0.359390;, + 0.152963; 0.896934;, + 0.199435; 0.897380;, + 0.199435; 0.850906;, + 0.152963; 0.851352;, + 0.203303; 0.545882;, + 0.249759; 0.544560;, + 0.249759; 0.501624;, + 0.203303; 0.500301;, + 0.742463; 0.800615;, + 0.696079; 0.803505;, + 0.696079; 0.836367;, + 0.742463; 0.839257;, + 0.454979; 0.121558;, + 0.501279; 0.117541;, + 0.501280; 0.099756;, + 0.454979; 0.095739;, + 0.883564; 0.121045;, + 0.837264; 0.117028;, + 0.837264; 0.142848;, + 0.883564; 0.138830;, + 0.304029; 0.303678;, + 0.350413; 0.306567;, + 0.350413; 0.267926;, + 0.304029; 0.270815;, + 0.354331; 0.594008;, + 0.400787; 0.595330;, + 0.400787; 0.549749;, + 0.354332; 0.551071;, + 0.203303; 0.847037;, + 0.249775; 0.846591;, + 0.249775; 0.801010;, + 0.203303; 0.800563;, + 0.451111; 0.357239;, + 0.404686; 0.359386;, + 0.404686; 0.398028;, + 0.451111; 0.400176;, + 0.052340; 0.184818;, + 0.098680; 0.181296;, + 0.098680; 0.155477;, + 0.052340; 0.151955;, + 0.950798; 0.430892;, + 0.904529; 0.426533;, + 0.904529; 0.444318;, + 0.950798; 0.439959;, + 0.702065; 0.067218;, + 0.748334; 0.062859;, + 0.748334; 0.053792;, + 0.702065; 0.049433;, + 0.554258; 0.186093;, + 0.507917; 0.182572;, + 0.507917; 0.215434;, + 0.554258; 0.211913;, + 0.253665; 0.443961;, + 0.300089; 0.446109;, + 0.300089; 0.403172;, + 0.253665; 0.405319;, + 0.001934; 0.796255;, + 0.048406; 0.796701;, + 0.048406; 0.750227;, + 0.001934; 0.750674;, + 0.450255; 0.796661;, + 0.448933; 0.750206;, + 0.405996; 0.750206;, + 0.404674; 0.796661;, + 0.601528; 0.301261;, + 0.647912; 0.298372;, + 0.647912; 0.265509;, + 0.601528; 0.262620;, + 0.885352; 0.800615;, + 0.839052; 0.804633;, + 0.839052; 0.822418;, + 0.885352; 0.826435;, + 0.253749; 0.135451;, + 0.300049; 0.139468;, + 0.300049; 0.113649;, + 0.253749; 0.117666;, + 0.501364; 0.308021;, + 0.454980; 0.305130;, + 0.454979; 0.343772;, + 0.501364; 0.340883;, + 0.498377; 0.947704;, + 0.499699; 0.901249;, + 0.454118; 0.901249;, + 0.455440; 0.947704;, + 0.300120; 0.746354;, + 0.299674; 0.699882;, + 0.254092; 0.699882;, + 0.253646; 0.746354;, + 0.102669; 0.353377;, + 0.149094; 0.351229;, + 0.149094; 0.312588;, + 0.102669; 0.310440;, + 0.698165; 0.183378;, + 0.651824; 0.186900;, + 0.651825; 0.212719;, + 0.698165; 0.216240;, + 0.203378; 0.075733;, + 0.249647; 0.080092;, + 0.249647; 0.062307;, + 0.203378; 0.066666;, + 0.501279; 0.052432;, + 0.455010; 0.056791;, + 0.455010; 0.065857;, + 0.501279; 0.070216;, + 0.354446; 0.209407;, + 0.400787; 0.212928;, + 0.400787; 0.180066;, + 0.354446; 0.183587;, + 0.098721; 0.406196;, + 0.052296; 0.404048;, + 0.052296; 0.446985;, + 0.098720; 0.444838;, + 0.203303; 0.947276;, + 0.249775; 0.947723;, + 0.249775; 0.901249;, + 0.203303; 0.901695;, + 0.303989; 0.545882;, + 0.350444; 0.544560;, + 0.350444; 0.501624;, + 0.303989; 0.500301;, + 0.354403; 0.305691;, + 0.400787; 0.302801;, + 0.400787; 0.269939;, + 0.354403; 0.267049;, + 0.149094; 0.122270;, + 0.102794; 0.126286;, + 0.102793; 0.144071;, + 0.149094; 0.148089;, + 0.304029; 0.136325;, + 0.350329; 0.140343;, + 0.350329; 0.114523;, + 0.304029; 0.118540;, + 0.698165; 0.308020;, + 0.651781; 0.305130;, + 0.651781; 0.343772;, + 0.698165; 0.340882;, + 0.300101; 0.551073;, + 0.253646; 0.549751;, + 0.253646; 0.595332;, + 0.300101; 0.594010;, + 0.152963; 0.696009;, + 0.199435; 0.695563;, + 0.199435; 0.649981;, + 0.152963; 0.649535;, + 0.001953; 0.350733;, + 0.048378; 0.348585;, + 0.048378; 0.309943;, + 0.001953; 0.307796;, + 0.300049; 0.143337;, + 0.253709; 0.146858;, + 0.253708; 0.172678;, + 0.300049; 0.176199;, + 0.304060; 0.054953;, + 0.350329; 0.059313;, + 0.350329; 0.041528;, + 0.304060; 0.045887;, + 0.554227; 0.064811;, + 0.507958; 0.069170;, + 0.507958; 0.078237;, + 0.554227; 0.082596;, + 0.203378; 0.209409;, + 0.249718; 0.212930;, + 0.249718; 0.180068;, + 0.203378; 0.183589;, + 0.249759; 0.405320;, + 0.203334; 0.403172;, + 0.203334; 0.446109;, + 0.249758; 0.443962;, + 0.253646; 0.997619;, + 0.300118; 0.998066;, + 0.300118; 0.951592;, + 0.253646; 0.952038;, + 0.052296; 0.496435;, + 0.098751; 0.495112;, + 0.098751; 0.452176;, + 0.052296; 0.450853;, + 0.102710; 0.264061;, + 0.149094; 0.261171;, + 0.149094; 0.228309;, + 0.102710; 0.225419;, + 0.554258; 0.116153;, + 0.507957; 0.120170;, + 0.507958; 0.137955;, + 0.554258; 0.141972;, + 0.153020; 0.106521;, + 0.199320; 0.110538;, + 0.199320; 0.084718;, + 0.153020; 0.088736;, + 0.742462; 0.904139;, + 0.696077; 0.901249;, + 0.696077; 0.939891;, + 0.742462; 0.937001;, + 0.048408; 0.551079;, + 0.001953; 0.549756;, + 0.001952; 0.595337;, + 0.048408; 0.594015;, + 0.303987; 0.998066;, + 0.350459; 0.997619;, + 0.350459; 0.952038;, + 0.303987; 0.951592;, + 0.354362; 0.352496;, + 0.400787; 0.350349;, + 0.400787; 0.311707;, + 0.354362; 0.309560;, + 0.249718; 0.143337;, + 0.203378; 0.146858;, + 0.203378; 0.172678;, + 0.249718; 0.176199;, + 0.917121; 0.138489;, + 0.963390; 0.142848;, + 0.963390; 0.125063;, + 0.917121; 0.129422;, + 0.501279; 0.074085;, + 0.455010; 0.078443;, + 0.455010; 0.087510;, + 0.501279; 0.091870;, + 0.102753; 0.181299;, + 0.149094; 0.184820;, + 0.149094; 0.151958;, + 0.102753; 0.155479;, + 0.350413; 0.406194;, + 0.303989; 0.404046;, + 0.303989; 0.446983;, + 0.350413; 0.444836;, + 0.253644; 0.947276;, + 0.300116; 0.947723;, + 0.300116; 0.901249;, + 0.253644; 0.901695;, + 0.454120; 0.800584;, + 0.455442; 0.847039;, + 0.498379; 0.847039;, + 0.499701; 0.800584;, + 0.693439; 0.750206;, + 0.696329; 0.796590;, + 0.729191; 0.796590;, + 0.732081; 0.750206;, + 0.883564; 0.087340;, + 0.837264; 0.091357;, + 0.837264; 0.109142;, + 0.883564; 0.113160;, + 0.002034; 0.133685;, + 0.048334; 0.137703;, + 0.048334; 0.111883;, + 0.002034; 0.115900;, + 0.697184; 0.448258;, + 0.694294; 0.494642;, + 0.732936; 0.494642;, + 0.730046; 0.448258;, + 0.456302; 0.548875;, + 0.454979; 0.595330;, + 0.500560; 0.595330;, + 0.499238; 0.548875;, + 0.303985; 0.947723;, + 0.350457; 0.947276;, + 0.350457; 0.901695;, + 0.303985; 0.901249;, + 0.404686; 0.353370;, + 0.451111; 0.351223;, + 0.451111; 0.312581;, + 0.404686; 0.310434;, + 0.834241; 0.411496;, + 0.787901; 0.415017;, + 0.787901; 0.440837;, + 0.834241; 0.444358;, + 0.507958; 0.056583;, + 0.554227; 0.060942;, + 0.554227; 0.043157;, + 0.507958; 0.047517;, + 0.048303; 0.060541;, + 0.002034; 0.064900;, + 0.002034; 0.073967;, + 0.048303; 0.078326;, + 0.781100; 0.880320;, + 0.827441; 0.883841;, + 0.827441; 0.850979;, + 0.781100; 0.854501;, + 0.350413; 0.359389;, + 0.303989; 0.357241;, + 0.303989; 0.400178;, + 0.350413; 0.398030;, + 0.098749; 0.952038;, + 0.052277; 0.951592;, + 0.052277; 0.998066;, + 0.098749; 0.997620;, + 0.300120; 0.500301;, + 0.253665; 0.501624;, + 0.253665; 0.544560;, + 0.300120; 0.545882;, + 0.741522; 0.405716;, + 0.695138; 0.408606;, + 0.695138; 0.441469;, + 0.741522; 0.444358;, + 0.878596; 0.595290;, + 0.874579; 0.548990;, + 0.856794; 0.548990;, + 0.852777; 0.595290;, + 0.884110; 0.746337;, + 0.888128; 0.700037;, + 0.862308; 0.700037;, + 0.866326; 0.746337;, + 0.001993; 0.301038;, + 0.048378; 0.303928;, + 0.048378; 0.265286;, + 0.001993; 0.268176;, + 0.001953; 0.495115;, + 0.048408; 0.496437;, + 0.048408; 0.450856;, + 0.001953; 0.452179;, + 0.102618; 0.951592;, + 0.103064; 0.998064;, + 0.148646; 0.998064;, + 0.149092; 0.951592;, + 0.649276; 0.599218;, + 0.651424; 0.645642;, + 0.690065; 0.645642;, + 0.692213; 0.599218;, + 0.871916; 0.645602;, + 0.868395; 0.599261;, + 0.842575; 0.599261;, + 0.839054; 0.645602;, + 0.354487; 0.075731;, + 0.400756; 0.080090;, + 0.400756; 0.062305;, + 0.354487; 0.066664;, + 0.950798; 0.398018;, + 0.904529; 0.402377;, + 0.904529; 0.411444;, + 0.950798; 0.415803;, + 0.810441; 0.997963;, + 0.813963; 0.951622;, + 0.781101; 0.951622;, + 0.784622; 0.997963;, + 0.651426; 0.699913;, + 0.649278; 0.746337;, + 0.692215; 0.746337;, + 0.690067; 0.699913;, + 0.002381; 0.699887;, + 0.001934; 0.746359;, + 0.048408; 0.746359;, + 0.047962; 0.699887;, + 0.350444; 0.450852;, + 0.303989; 0.452174;, + 0.303989; 0.495110;, + 0.350444; 0.496433;, + 0.300049; 0.267052;, + 0.253665; 0.269941;, + 0.253665; 0.302804;, + 0.300049; 0.305693;, + 0.916024; 0.243226;, + 0.912007; 0.196926;, + 0.894222; 0.196926;, + 0.890204; 0.243226;, + 0.874579; 0.544935;, + 0.878596; 0.498635;, + 0.852777; 0.498635;, + 0.856794; 0.544935;, + 0.454979; 0.298372;, + 0.501364; 0.301261;, + 0.501364; 0.262620;, + 0.454979; 0.265509;, + 0.354331; 0.544558;, + 0.400787; 0.545880;, + 0.400787; 0.500299;, + 0.354331; 0.501621;, + 0.203303; 0.897380;, + 0.249775; 0.896934;, + 0.249775; 0.851352;, + 0.203303; 0.850906;, + 0.400787; 0.356365;, + 0.354362; 0.358512;, + 0.354362; 0.397154;, + 0.400787; 0.399302;, + 0.848908; 0.544935;, + 0.845387; 0.498594;, + 0.819567; 0.498594;, + 0.816046; 0.544935;, + 0.887433; 0.066666;, + 0.933702; 0.071026;, + 0.933702; 0.053241;, + 0.887433; 0.057600;, + 0.698094; 0.043964;, + 0.651824; 0.048323;, + 0.651824; 0.057390;, + 0.698094; 0.061749;, + 0.818182; 0.947589;, + 0.821703; 0.901249;, + 0.788841; 0.901249;, + 0.792362; 0.947589;, + 0.052296; 0.351227;, + 0.098721; 0.353375;, + 0.098721; 0.310438;, + 0.052296; 0.312585;, + 0.152963; 0.796248;, + 0.199435; 0.796695;, + 0.199435; 0.750220;, + 0.152963; 0.750667;, + 0.199435; 0.549742;, + 0.152979; 0.551065;, + 0.152979; 0.594001;, + 0.199435; 0.595324;, + 0.554301; 0.261813;, + 0.507917; 0.264703;, + 0.507917; 0.297565;, + 0.554301; 0.300455;, + 0.914472; 0.695942;, + 0.910454; 0.649642;, + 0.892669; 0.649642;, + 0.888652; 0.695942;, + 0.904267; 0.494601;, + 0.908285; 0.448301;, + 0.882465; 0.448301;, + 0.886482; 0.494601;, + 0.696083; 0.743448;, + 0.742468; 0.746337;, + 0.742468; 0.707696;, + 0.696083; 0.710585;, + 0.102639; 0.495115;, + 0.149094; 0.496437;, + 0.149094; 0.450856;, + 0.102639; 0.452178;, + 0.152963; 0.746352;, + 0.199435; 0.745905;, + 0.199435; 0.700324;, + 0.152963; 0.699878;, + 0.400787; 0.403170;, + 0.354362; 0.405317;, + 0.354362; 0.443959;, + 0.400787; 0.446107;, + 0.812177; 0.544935;, + 0.808656; 0.498594;, + 0.782836; 0.498594;, + 0.779315; 0.544935;, + 0.787095; 0.063895;, + 0.833364; 0.068254;, + 0.833364; 0.050469;, + 0.787095; 0.054828;, + 0.960208; 0.951663;, + 0.913939; 0.956022;, + 0.913939; 0.965089;, + 0.960208; 0.969448;, + 0.854918; 0.746337;, + 0.858440; 0.699997;, + 0.825577; 0.699997;, + 0.829099; 0.746337;, + 0.253665; 0.397156;, + 0.300089; 0.399304;, + 0.300089; 0.356367;, + 0.253665; 0.358514;, + 0.052277; 0.695571;, + 0.098749; 0.696018;, + 0.098749; 0.649543;, + 0.052277; 0.649990;, + 0.450255; 0.746337;, + 0.448933; 0.699882;, + 0.405997; 0.699882;, + 0.404674; 0.746337;, + 0.742465; 0.599218;, + 0.696081; 0.602107;, + 0.696081; 0.634970;, + 0.742465; 0.637859;, + 0.886336; 0.343688;, + 0.882319; 0.297388;, + 0.864534; 0.297388;, + 0.860516; 0.343688;, + 0.909235; 0.142848;, + 0.913252; 0.096548;, + 0.887433; 0.096548;, + 0.891450; 0.142848;, + 0.153020; 0.295819;, + 0.199404; 0.298709;, + 0.199404; 0.260067;, + 0.153020; 0.262957;, + 0.152979; 0.544551;, + 0.199435; 0.545874;, + 0.199435; 0.500293;, + 0.152979; 0.501615;, + 0.350463; 0.796695;, + 0.350016; 0.750223;, + 0.304435; 0.750223;, + 0.303989; 0.796695;, + 0.300089; 0.309562;, + 0.253665; 0.311709;, + 0.253665; 0.350351;, + 0.300089; 0.352498;, + 0.849752; 0.394065;, + 0.846230; 0.347725;, + 0.820411; 0.347725;, + 0.816889; 0.394065;, + 0.912153; 0.562415;, + 0.958422; 0.566774;, + 0.958422; 0.548990;, + 0.912153; 0.553349;, + 0.958422; 0.448301;, + 0.912153; 0.452660;, + 0.912153; 0.461727;, + 0.958422; 0.466086;, + 0.807801; 0.695942;, + 0.811322; 0.649602;, + 0.778460; 0.649602;, + 0.781981; 0.695942;, + 0.102669; 0.398035;, + 0.149094; 0.400182;, + 0.149094; 0.357245;, + 0.102669; 0.359393;, + 0.152963; 0.846591;, + 0.199435; 0.847037;, + 0.199435; 0.800563;, + 0.152963; 0.801010;, + 0.549151; 0.847039;, + 0.547828; 0.800584;, + 0.504892; 0.800584;, + 0.503569; 0.847039;, + 0.734721; 0.897364;, + 0.731831; 0.850979;, + 0.698969; 0.850979;, + 0.696079; 0.897364;, + 0.698125; 0.087271;, + 0.651824; 0.091288;, + 0.651824; 0.109073;, + 0.698125; 0.113091;, + 0.354487; 0.135449;, + 0.400787; 0.139466;, + 0.400787; 0.113647;, + 0.354487; 0.117664;, + 0.772557; 0.494642;, + 0.775446; 0.448258;, + 0.736805; 0.448258;, + 0.739694; 0.494642;, + 0.404655; 0.544558;, + 0.451111; 0.545880;, + 0.451111; 0.500299;, + 0.404655; 0.501621;, + 0.400802; 0.998064;, + 0.400355; 0.951592;, + 0.354774; 0.951592;, + 0.354327; 0.998064;, + 0.692209; 0.947673;, + 0.690061; 0.901249;, + 0.651420; 0.901249;, + 0.649272; 0.947673;, + 0.199360; 0.180826;, + 0.153020; 0.184347;, + 0.153020; 0.210167;, + 0.199360; 0.213688;, + 0.905473; 0.641243;, + 0.951742; 0.645602;, + 0.951742; 0.627817;, + 0.905473; 0.632176;, + 0.958422; 0.577505;, + 0.912153; 0.581864;, + 0.912153; 0.590931;, + 0.958422; 0.595290;, + 0.651824; 0.175988;, + 0.698165; 0.179510;, + 0.698165; 0.146648;, + 0.651824; 0.150169;, + 0.495768; 0.444358;, + 0.497916; 0.397934;, + 0.454979; 0.397934;, + 0.457127; 0.444358;, + 0.303987; 0.896934;, + 0.350459; 0.897380;, + 0.350459; 0.850906;, + 0.303987; 0.851352;, + 0.499705; 0.696013;, + 0.498383; 0.649558;, + 0.455446; 0.649558;, + 0.454124; 0.696013;, + 0.733779; 0.394065;, + 0.730890; 0.347681;, + 0.698027; 0.347681;, + 0.695138; 0.394065;, + 0.098640; 0.122267;, + 0.052340; 0.126284;, + 0.052340; 0.144069;, + 0.098640; 0.148087;, + 0.787095; 0.115578;, + 0.833395; 0.119596;, + 0.833395; 0.093776;, + 0.787095; 0.097793;, + 0.731832; 0.998007;, + 0.734721; 0.951622;, + 0.696080; 0.951622;, + 0.698969; 0.998007;, + 0.448929; 0.897363;, + 0.450251; 0.850908;, + 0.404670; 0.850908;, + 0.405992; 0.897364;, + 0.098751; 0.897380;, + 0.098305; 0.850908;, + 0.052723; 0.850908;, + 0.052277; 0.897380;, + 0.692211; 0.998047;, + 0.690064; 0.951622;, + 0.651422; 0.951622;, + 0.649274; 0.998047;, + 0.199360; 0.144095;, + 0.153020; 0.147616;, + 0.153020; 0.173436;, + 0.199360; 0.176957;, + 0.404801; 0.076605;, + 0.451070; 0.080964;, + 0.451070; 0.063179;, + 0.404801; 0.067538;, + 0.300018; 0.062307;, + 0.253749; 0.066666;, + 0.253749; 0.075733;, + 0.300018; 0.080092;, + 0.404770; 0.173550;, + 0.451111; 0.177071;, + 0.451111; 0.144209;, + 0.404770; 0.147730;, + 0.197257; 0.399295;, + 0.199404; 0.352870;, + 0.156467; 0.352870;, + 0.158615; 0.399295;, + 0.249331; 0.796695;, + 0.249777; 0.750223;, + 0.203303; 0.750223;, + 0.203750; 0.796695;, + 0.549155; 0.796661;, + 0.547833; 0.750206;, + 0.504896; 0.750206;, + 0.503574; 0.796661;, + 0.732936; 0.544935;, + 0.730046; 0.498551;, + 0.697184; 0.498551;, + 0.694294; 0.544935;, + 0.451070; 0.084832;, + 0.404770; 0.088850;, + 0.404770; 0.106635;, + 0.451070; 0.110652;, + 0.601568; 0.131019;, + 0.647869; 0.135037;, + 0.647869; 0.109217;, + 0.601568; 0.113234;, + 0.730046; 0.595290;, + 0.732936; 0.548906;, + 0.694294; 0.548906;, + 0.697184; 0.595290;, + 0.498383; 0.746337;, + 0.499705; 0.699882;, + 0.454124; 0.699882;, + 0.455446; 0.746337;, + 0.400801; 0.897380;, + 0.400355; 0.850908;, + 0.354774; 0.850908;, + 0.354327; 0.897380;, + 0.692211; 0.897364;, + 0.690063; 0.850939;, + 0.651421; 0.850939;, + 0.649274; 0.897364;, + 0.647869; 0.175636;, + 0.601528; 0.179157;, + 0.601528; 0.204977;, + 0.647869; 0.208498;, + 0.002034; 0.052313;, + 0.048303; 0.056673;, + 0.048303; 0.038888;, + 0.002034; 0.043247;, + 0.149093; 0.070928;, + 0.102824; 0.075288;, + 0.102824; 0.084355;, + 0.149094; 0.088713;, + 0.788842; 0.829956;, + 0.835183; 0.833477;, + 0.835183; 0.800615;, + 0.788842; 0.804136;, + 0.643262; 0.746337;, + 0.645410; 0.699913;, + 0.602473; 0.699913;, + 0.604620; 0.746337;, + 0.249331; 0.998064;, + 0.249778; 0.951592;, + 0.203304; 0.951592;, + 0.203750; 0.998064;, + 0.499701; 0.897364;, + 0.498379; 0.850908;, + 0.455442; 0.850908;, + 0.454120; 0.897363;, + 0.300049; 0.263183;, + 0.297159; 0.216799;, + 0.264297; 0.216799;, + 0.261407; 0.263183;, + 0.249678; 0.083960;, + 0.203378; 0.087978;, + 0.203378; 0.105763;, + 0.249678; 0.109780;, + 0.253749; 0.105763;, + 0.300049; 0.109780;, + 0.300049; 0.083961;, + 0.253749; 0.087978;, + 0.771701; 0.695942;, + 0.774591; 0.649558;, + 0.735949; 0.649558;, + 0.738839; 0.695942;, + 0.448933; 0.696013;, + 0.450255; 0.649558;, + 0.404674; 0.649558;, + 0.405996; 0.696013;, + 0.149094; 0.897380;, + 0.148647; 0.850908;, + 0.103066; 0.850908;, + 0.102620; 0.897380;, + 0.691269; 0.444358;, + 0.689122; 0.397934;, + 0.650480; 0.397934;, + 0.648333; 0.444358;, + 0.647869; 0.138905;, + 0.601528; 0.142426;, + 0.601528; 0.168246;, + 0.647869; 0.171767;, + 0.601568; 0.071301;, + 0.647838; 0.075660;, + 0.647838; 0.057875;, + 0.601568; 0.062234;, + 0.698094; 0.065617;, + 0.651824; 0.069977;, + 0.651825; 0.079044;, + 0.698094; 0.083402;, + 0.454979; 0.204977;, + 0.501320; 0.208498;, + 0.501320; 0.175636;, + 0.454979; 0.179157;, + 0.595511; 0.444358;, + 0.597659; 0.397934;, + 0.554722; 0.397934;, + 0.556870; 0.444358;, + 0.098305; 0.796699;, + 0.098751; 0.750227;, + 0.052277; 0.750227;, + 0.052724; 0.796699;, + 0.450253; 0.645673;, + 0.448931; 0.599217;, + 0.405994; 0.599218;, + 0.404672; 0.645673;, + 0.342671; 0.264057;, + 0.339781; 0.217673;, + 0.306919; 0.217673;, + 0.304029; 0.264057;, + 0.888122; 0.947589;, + 0.884104; 0.901289;, + 0.866320; 0.901289;, + 0.862302; 0.947589;, + 0.912007; 0.343688;, + 0.916024; 0.297388;, + 0.890205; 0.297388;, + 0.894222; 0.343688;, + 0.737786; 0.343772;, + 0.740676; 0.297388;, + 0.702034; 0.297388;, + 0.704924; 0.343772;, + 0.547833; 0.746337;, + 0.549155; 0.699882;, + 0.503574; 0.699882;, + 0.504896; 0.746337;, + 0.048408; 0.998066;, + 0.047963; 0.951594;, + 0.002382; 0.951593;, + 0.001934; 0.998065;, + 0.690426; 0.494682;, + 0.688278; 0.448258;, + 0.649636; 0.448258;, + 0.647489; 0.494682;, + 0.870972; 0.444358;, + 0.867451; 0.398018;, + 0.841631; 0.398018;, + 0.838110; 0.444358;, + 0.912153; 0.490242;, + 0.958422; 0.494601;, + 0.958422; 0.476817;, + 0.912153; 0.481176;, + 0.951742; 0.599301;, + 0.905473; 0.603661;, + 0.905473; 0.612727;, + 0.951742; 0.617086;, + 0.844531; 0.695942;, + 0.848053; 0.649602;, + 0.815191; 0.649602;, + 0.818712; 0.695942;, + 0.640618; 0.796631;, + 0.642765; 0.750206;, + 0.599829; 0.750206;, + 0.601976; 0.796631;, + 0.047962; 0.696018;, + 0.048408; 0.649546;, + 0.001934; 0.649546;, + 0.002381; 0.696018;, + 0.499701; 0.998047;, + 0.498379; 0.951592;, + 0.455442; 0.951592;, + 0.454120; 0.998047;, + 0.597659; 0.293519;, + 0.594769; 0.247135;, + 0.561907; 0.247135;, + 0.559017; 0.293519;, + 0.899814; 0.193057;, + 0.895797; 0.146757;, + 0.878012; 0.146757;, + 0.873995; 0.193057;, + 0.889842; 0.883801;, + 0.893860; 0.837501;, + 0.868040; 0.837501;, + 0.872057; 0.883801;, + 0.772557; 0.544935;, + 0.775446; 0.498551;, + 0.736805; 0.498551;, + 0.739694; 0.544935;, + 0.498383; 0.796661;, + 0.499705; 0.750206;, + 0.454124; 0.750206;, + 0.455446; 0.796661;, + 0.149094; 0.796699;, + 0.148647; 0.750227;, + 0.103066; 0.750227;, + 0.102620; 0.796699;, + 0.690426; 0.595330;, + 0.688278; 0.548905;, + 0.649636; 0.548905;, + 0.647489; 0.595330;, + 0.487842; 0.171767;, + 0.484320; 0.125427;, + 0.458501; 0.125427;, + 0.454979; 0.171767;, + 0.918340; 0.792191;, + 0.964610; 0.796550;, + 0.964610; 0.778765;, + 0.918340; 0.783124;, + 0.959266; 0.347725;, + 0.912997; 0.352084;, + 0.912997; 0.361150;, + 0.959266; 0.365509;, + 0.853126; 0.293519;, + 0.856648; 0.247178;, + 0.823785; 0.247178;, + 0.827307; 0.293519;, + 0.643260; 0.645642;, + 0.645408; 0.599217;, + 0.602471; 0.599217;, + 0.604618; 0.645642;, + 0.098305; 0.746358;, + 0.098751; 0.699886;, + 0.052277; 0.699886;, + 0.052724; 0.746358;, + 0.450251; 0.847039;, + 0.448929; 0.800584;, + 0.405992; 0.800584;, + 0.404670; 0.847040;, + 0.784032; 0.444358;, + 0.781143; 0.397974;, + 0.748280; 0.397974;, + 0.745391; 0.444358;, + 0.879440; 0.394025;, + 0.875422; 0.347725;, + 0.857638; 0.347724;, + 0.853620; 0.394025;, + 0.779169; 0.142845;, + 0.783186; 0.096545;, + 0.757366; 0.096545;, + 0.761384; 0.142845;, + 0.037745; 0.261417;, + 0.040635; 0.215033;, + 0.001993; 0.215033;, + 0.004883; 0.261417;, + 0.547830; 0.645673;, + 0.549153; 0.599217;, + 0.503572; 0.599217;, + 0.504894; 0.645673;, + 0.249777; 0.746354;, + 0.249331; 0.699882;, + 0.203750; 0.699882;, + 0.203303; 0.746354;, + 0.642765; 0.695983;, + 0.640618; 0.649558;, + 0.601976; 0.649558;, + 0.599829; 0.695983;, + 0.864171; 0.883841;, + 0.860650; 0.837501;, + 0.834830; 0.837501;, + 0.831309; 0.883841;, + 0.912997; 0.389666;, + 0.959266; 0.394025;, + 0.959266; 0.376240;, + 0.912997; 0.380599;, + 0.963390; 0.096548;, + 0.917121; 0.100907;, + 0.917121; 0.109973;, + 0.963390; 0.114333;, + 0.844531; 0.796590;, + 0.848053; 0.750250;, + 0.815190; 0.750250;, + 0.818712; 0.796590;, + 0.594668; 0.494682;, + 0.596815; 0.448258;, + 0.553879; 0.448258;, + 0.556026; 0.494682;, + 0.148646; 0.947723;, + 0.149092; 0.901251;, + 0.102618; 0.901251;, + 0.103065; 0.947723;, + 0.499703; 0.645673;, + 0.498381; 0.599217;, + 0.455444; 0.599218;, + 0.454122; 0.645673;, + 0.783186; 0.293519;, + 0.780296; 0.247135;, + 0.747434; 0.247135;, + 0.744544; 0.293519;, + 0.783186; 0.193013;, + 0.779169; 0.146713;, + 0.761384; 0.146713;, + 0.757366; 0.193013;, + 0.897587; 0.645602;, + 0.901604; 0.599301;, + 0.875785; 0.599301;, + 0.879802; 0.645602;, + 0.637280; 0.258751;, + 0.640170; 0.212367;, + 0.601528; 0.212367;, + 0.604418; 0.258751;, + 0.548688; 0.545006;, + 0.550010; 0.498551;, + 0.504429; 0.498551;, + 0.505751; 0.545006;, + 0.199435; 0.947723;, + 0.198988; 0.901251;, + 0.153407; 0.901251;, + 0.152961; 0.947723;, + 0.644464; 0.394065;, + 0.642317; 0.347641;, + 0.603675; 0.347641;, + 0.601527; 0.394065;, + 0.591879; 0.193013;, + 0.588358; 0.146673;, + 0.562538; 0.146673;, + 0.559017; 0.193013;, + 0.912153; 0.540576;, + 0.958422; 0.544935;, + 0.958422; 0.527150;, + 0.912153; 0.531509;, + 0.249647; 0.040653;, + 0.203378; 0.045013;, + 0.203378; 0.054079;, + 0.249647; 0.058438;, + 0.809499; 0.394065;, + 0.813021; 0.347724;, + 0.780159; 0.347724;, + 0.783680; 0.394065;, + 0.641473; 0.544975;, + 0.643621; 0.498551;, + 0.600684; 0.498551;, + 0.602831; 0.544975;, + 0.198988; 0.998064;, + 0.199435; 0.951592;, + 0.152961; 0.951592;, + 0.153407; 0.998064;, + 0.550010; 0.595330;, + 0.548688; 0.548875;, + 0.505751; 0.548875;, + 0.504429; 0.595330;, + 0.774591; 0.796590;, + 0.771701; 0.750206;, + 0.738839; 0.750206;, + 0.735949; 0.796590;, + 0.909128; 0.394025;, + 0.905111; 0.347725;, + 0.887326; 0.347725;, + 0.883309; 0.394025;, + 0.910454; 0.796550;, + 0.914472; 0.750250;, + 0.888652; 0.750250;, + 0.892669; 0.796550;, + 0.397897; 0.263181;, + 0.400787; 0.216797;, + 0.362145; 0.216797;, + 0.365035; 0.263181;, + 0.547826; 0.947704;, + 0.549149; 0.901249;, + 0.503568; 0.901249;, + 0.504890; 0.947704;, + 0.249777; 0.696013;, + 0.249331; 0.649541;, + 0.203750; 0.649541;, + 0.203303; 0.696013;, + 0.692211; 0.847039;, + 0.690063; 0.800615;, + 0.651421; 0.800615;, + 0.649274; 0.847039;, + 0.884783; 0.695942;, + 0.881262; 0.649602;, + 0.855443; 0.649602;, + 0.851921; 0.695942;, + 0.966162; 0.251578;, + 0.919893; 0.247219;, + 0.919893; 0.265004;, + 0.966162; 0.260645;, + 0.913939; 0.997963;, + 0.960208; 0.993604;, + 0.960208; 0.984537;, + 0.913939; 0.980178;, + 0.853126; 0.243266;, + 0.856648; 0.196926;, + 0.823785; 0.196926;, + 0.827307; 0.243266;, + 0.643258; 0.847039;, + 0.645406; 0.800615;, + 0.602469; 0.800615;, + 0.604616; 0.847039;, + 0.249331; 0.645673;, + 0.249777; 0.599201;, + 0.203303; 0.599201;, + 0.203750; 0.645673;, + 0.400787; 0.496431;, + 0.399465; 0.449975;, + 0.356528; 0.449975;, + 0.355206; 0.496431;, + 0.777232; 0.998007;, + 0.774342; 0.951622;, + 0.741480; 0.951622;, + 0.738590; 0.998007;, + 0.591879; 0.142804;, + 0.587862; 0.096504;, + 0.570077; 0.096504;, + 0.566060; 0.142804;, + 0.906053; 0.997963;, + 0.910070; 0.951663;, + 0.884250; 0.951663;, + 0.888268; 0.997963;, + 0.774342; 0.897363;, + 0.777231; 0.850979;, + 0.738590; 0.850979;, + 0.741479; 0.897363;, + 0.448929; 0.998047;, + 0.450251; 0.951592;, + 0.404670; 0.951592;, + 0.405993; 0.998047;, + 0.149094; 0.696018;, + 0.148647; 0.649546;, + 0.103066; 0.649546;, + 0.102620; 0.696018;, + 0.690426; 0.544975;, + 0.688278; 0.498551;, + 0.649636; 0.498551;, + 0.647489; 0.544975;, + 0.870126; 0.193057;, + 0.866605; 0.146717;, + 0.840785; 0.146717;, + 0.837264; 0.193057;, + 0.199320; 0.045770;, + 0.153051; 0.041411;, + 0.153051; 0.059196;, + 0.199320; 0.054837;, + 0.354487; 0.058436;, + 0.400756; 0.054077;, + 0.400756; 0.045011;, + 0.354487; 0.040651;, + 0.816396; 0.343728;, + 0.819917; 0.297388;, + 0.787055; 0.297388;, + 0.790576; 0.343728;, + 0.643256; 0.947673;, + 0.645404; 0.901249;, + 0.602467; 0.901249;, + 0.604614; 0.947673;, + 0.350016; 0.645673;, + 0.350463; 0.599201;, + 0.303989; 0.599201;, + 0.304435; 0.645673;, + 0.598602; 0.645673;, + 0.597280; 0.599217;, + 0.554344; 0.599217;, + 0.553021; 0.645673;, + 0.776290; 0.394065;, + 0.773400; 0.347681;, + 0.740538; 0.347681;, + 0.737648; 0.394065;, + 0.886336; 0.243226;, + 0.882318; 0.196926;, + 0.864534; 0.196926;, + 0.860516; 0.243226;, + 0.874579; 0.494601;, + 0.878596; 0.448301;, + 0.852777; 0.448301;, + 0.856794; 0.494601;, + 0.737786; 0.293519;, + 0.740676; 0.247135;, + 0.702034; 0.247135;, + 0.704924; 0.293519;, + 0.499238; 0.545006;, + 0.500560; 0.498551;, + 0.454979; 0.498551;, + 0.456302; 0.545006;, + 0.149094; 0.847040;, + 0.148648; 0.800568;, + 0.103066; 0.800567;, + 0.102620; 0.847039;, + 0.643620; 0.595330;, + 0.641473; 0.548905;, + 0.602831; 0.548905;, + 0.600684; 0.595330;, + 0.856648; 0.343728;, + 0.853126; 0.297388;, + 0.827307; 0.297388;, + 0.823785; 0.343728;, + 0.451070; 0.045885;, + 0.404801; 0.041525;, + 0.404801; 0.059310;, + 0.451070; 0.054951;, + 0.919893; 0.293519;, + 0.966162; 0.289160;, + 0.966162; 0.280093;, + 0.919893; 0.275734;, + 0.816396; 0.293476;, + 0.819917; 0.247135;, + 0.787055; 0.247135;, + 0.790576; 0.293476;, + 0.593813; 0.796631;, + 0.595960; 0.750206;, + 0.553024; 0.750206;, + 0.555171; 0.796631;, + 0.299674; 0.696013;, + 0.300120; 0.649541;, + 0.253646; 0.649541;, + 0.254092; 0.696013;, + 0.549151; 0.998047;, + 0.547829; 0.951592;, + 0.504892; 0.951592;, + 0.503570; 0.998047;, + 0.451111; 0.264055;, + 0.448221; 0.217671;, + 0.415359; 0.217671;, + 0.412469; 0.264055;, + 0.886336; 0.293519;, + 0.882318; 0.247219;, + 0.864534; 0.247219;, + 0.860516; 0.293519;, + 0.876364; 0.997963;, + 0.880382; 0.951663;, + 0.854562; 0.951663;, + 0.858580; 0.997963;, + 0.772557; 0.595290;, + 0.775446; 0.548906;, + 0.736805; 0.548906;, + 0.739694; 0.595290;, + 0.597278; 0.998047;, + 0.598601; 0.951592;, + 0.553020; 0.951592;, + 0.554342; 0.998047;, + 0.300118; 0.847035;, + 0.299671; 0.800563;, + 0.254090; 0.800563;, + 0.253644; 0.847035;, + 0.691269; 0.394065;, + 0.689122; 0.347641;, + 0.650480; 0.347641;, + 0.648333; 0.394065;, + 0.850694; 0.997963;, + 0.847172; 0.951622;, + 0.821353; 0.951622;, + 0.817831; 0.997963;, + 0.966162; 0.201285;, + 0.919893; 0.196926;, + 0.919893; 0.214711;, + 0.966162; 0.210351;, + 0.919893; 0.315173;, + 0.966162; 0.310813;, + 0.966162; 0.301747;, + 0.919893; 0.297388;, + 0.808656; 0.595290;, + 0.812177; 0.548949;, + 0.779315; 0.548949;, + 0.782836; 0.595290;, + 0.593813; 0.695983;, + 0.595960; 0.649558;, + 0.553024; 0.649558;, + 0.555171; 0.695983;, + 0.047962; 0.897383;, + 0.048408; 0.850911;, + 0.001934; 0.850911;, + 0.002381; 0.897383;, + 0.549151; 0.897364;, + 0.547828; 0.850908;, + 0.504892; 0.850908;, + 0.503569; 0.897363;, + 0.249718; 0.263183;, + 0.246828; 0.216799;, + 0.213966; 0.216799;, + 0.211076; 0.263183;, + 0.002034; 0.108014;, + 0.048334; 0.103997;, + 0.048334; 0.086212;, + 0.002034; 0.082195;, + 0.400787; 0.087976;, + 0.354487; 0.083958;, + 0.354487; 0.109778;, + 0.400787; 0.105761;, + 0.594769; 0.243266;, + 0.597659; 0.196882;, + 0.559017; 0.196882;, + 0.561907; 0.243266;, + 0.248436; 0.496433;, + 0.249759; 0.449977;, + 0.204177; 0.449977;, + 0.205500; 0.496433;, + 0.149094; 0.645677;, + 0.148647; 0.599205;, + 0.103066; 0.599205;, + 0.102620; 0.645677;, + 0.689570; 0.695983;, + 0.687423; 0.649558;, + 0.648781; 0.649558;, + 0.646634; 0.695983;, + 0.507917; 0.178703;, + 0.554258; 0.175182;, + 0.554258; 0.149362;, + 0.507917; 0.145841;, + 0.149094; 0.053633;, + 0.102824; 0.049274;, + 0.102825; 0.067059;, + 0.149094; 0.062700;, + 0.918340; 0.667427;, + 0.964610; 0.663068;, + 0.964610; 0.654001;, + 0.918340; 0.649642;, + 0.835185; 0.616261;, + 0.788845; 0.612740;, + 0.788845; 0.645602;, + 0.835185; 0.642080;, + 0.642317; 0.444358;, + 0.644464; 0.397934;, + 0.601527; 0.397934;, + 0.603675; 0.444358;, + 0.148647; 0.746358;, + 0.149094; 0.699886;, + 0.102620; 0.699886;, + 0.103066; 0.746358;, + 0.598600; 0.847039;, + 0.597278; 0.800584;, + 0.554342; 0.800584;, + 0.553019; 0.847039;, + 0.783186; 0.343772;, + 0.780296; 0.297388;, + 0.747434; 0.297388;, + 0.744544; 0.343772;, + 0.601568; 0.105348;, + 0.647869; 0.101331;, + 0.647869; 0.083546;, + 0.601568; 0.079529;, + 0.350329; 0.088852;, + 0.304029; 0.084835;, + 0.304029; 0.110654;, + 0.350329; 0.106637;, + 0.782082; 0.947633;, + 0.784972; 0.901249;, + 0.746330; 0.901249;, + 0.749220; 0.947633;, + 0.499238; 0.494682;, + 0.500560; 0.448227;, + 0.454979; 0.448227;, + 0.456302; 0.494682;, + 0.400801; 0.847037;, + 0.400355; 0.800565;, + 0.354774; 0.800565;, + 0.354327; 0.847037;, + 0.497916; 0.394065;, + 0.495768; 0.347641;, + 0.457127; 0.347641;, + 0.454979; 0.394065;, + 0.787055; 0.156326;, + 0.833395; 0.152805;, + 0.833395; 0.126985;, + 0.787055; 0.123464;, + 0.933702; 0.079252;, + 0.887433; 0.074894;, + 0.887433; 0.092679;, + 0.933702; 0.088319;, + 0.837264; 0.061818;, + 0.883533; 0.057459;, + 0.883533; 0.048392;, + 0.837264; 0.044033;, + 0.451111; 0.184461;, + 0.404770; 0.180940;, + 0.404770; 0.213802;, + 0.451111; 0.210281;, + 0.594668; 0.595330;, + 0.596815; 0.548905;, + 0.553879; 0.548905;, + 0.556026; 0.595330;, + 0.047961; 0.947724;, + 0.048408; 0.901252;, + 0.001934; 0.901252;, + 0.002380; 0.947724;, + 0.299246; 0.496433;, + 0.297924; 0.449977;, + 0.254987; 0.449977;, + 0.253665; 0.496433;, + 0.784974; 0.846999;, + 0.782084; 0.800615;, + 0.749222; 0.800615;, + 0.746332; 0.846999;, + 0.702034; 0.096906;, + 0.748334; 0.092889;, + 0.748334; 0.075104;, + 0.702034; 0.071086;, + 0.748334; 0.134481;, + 0.702034; 0.130463;, + 0.702034; 0.156283;, + 0.748334; 0.152266;, + 0.782088; 0.746337;, + 0.784978; 0.699953;, + 0.746336; 0.699953;, + 0.749226; 0.746337;, + 0.548688; 0.494682;, + 0.550010; 0.448227;, + 0.504429; 0.448227;, + 0.505751; 0.494682;, + 0.300120; 0.645673;, + 0.299674; 0.599201;, + 0.254092; 0.599201;, + 0.253646; 0.645673;, + 0.597659; 0.394065;, + 0.595511; 0.347641;, + 0.556870; 0.347641;, + 0.554722; 0.394065;, + 0.001993; 0.174433;, + 0.048334; 0.170912;, + 0.048334; 0.145093;, + 0.001993; 0.141571;, + 0.098609; 0.075284;, + 0.052340; 0.070925;, + 0.052340; 0.088710;, + 0.098609; 0.084351;, + 0.052340; 0.067057;, + 0.098609; 0.062698;, + 0.098609; 0.053631;, + 0.052340; 0.049272;, + 0.300049; 0.183589;, + 0.253708; 0.180068;, + 0.253708; 0.212930;, + 0.300049; 0.209409;, + 0.594668; 0.544975;, + 0.596815; 0.498551;, + 0.553879; 0.498551;, + 0.556026; 0.544975;, + 0.047962; 0.645677;, + 0.048408; 0.599205;, + 0.001934; 0.599205;, + 0.002381; 0.645677;, + 0.450249; 0.947705;, + 0.448928; 0.901250;, + 0.405991; 0.901249;, + 0.404668; 0.947704;, + 0.784976; 0.645602;, + 0.782086; 0.599218;, + 0.749224; 0.599218;, + 0.746334; 0.645602;, + 0.702034; 0.126594;, + 0.748334; 0.122577;, + 0.748334; 0.104792;, + 0.702034; 0.100775;, + 0.451070; 0.118538;, + 0.404770; 0.114521;, + 0.404770; 0.140340;, + 0.451070; 0.136323;, + 0.780296; 0.243266;, + 0.783186; 0.196882;, + 0.744544; 0.196882;, + 0.747434; 0.243266;, + 0.547833; 0.696013;, + 0.549155; 0.649558;, + 0.503574; 0.649558;, + 0.504896; 0.696013;, + 0.354331; 0.645673;, + 0.400803; 0.645226;, + 0.400803; 0.599645;, + 0.354331; 0.599199;, + 0.643621; 0.494682;, + 0.641473; 0.448258;, + 0.602831; 0.448258;, + 0.600684; 0.494682;, + 0.702034; 0.193013;, + 0.748374; 0.189492;, + 0.748374; 0.163672;, + 0.702034; 0.160151;, + 0.967954; 0.732912;, + 0.921685; 0.728552;, + 0.921685; 0.746337;, + 0.967954; 0.741978;, + 0.918340; 0.695942;, + 0.964610; 0.691583;, + 0.964610; 0.682517;, + 0.918340; 0.678157;, + 0.149094; 0.192211;, + 0.102753; 0.188689;, + 0.102753; 0.221551;, + 0.149094; 0.218030;, + 0.643258; 0.897364;, + 0.645405; 0.850939;, + 0.602469; 0.850939;, + 0.604616; 0.897364;, + 0.350016; 0.746354;, + 0.350463; 0.699882;, + 0.303989; 0.699882;, + 0.304435; 0.746354;, + 0.598600; 0.897364;, + 0.597278; 0.850908;, + 0.554342; 0.850908;, + 0.553019; 0.897364;, + 0.651781; 0.258751;, + 0.698165; 0.255861;, + 0.698165; 0.222999;, + 0.651781; 0.220109;, + 0.917816; 0.746337;, + 0.913799; 0.700037;, + 0.896014; 0.700037;, + 0.891996; 0.746337;, + 0.896643; 0.444318;, + 0.900660; 0.398018;, + 0.874841; 0.398018;, + 0.878858; 0.444318;, + 0.647912; 0.308021;, + 0.601528; 0.305130;, + 0.601527; 0.343772;, + 0.647912; 0.340883;, + 0.597276; 0.947704;, + 0.598598; 0.901249;, + 0.553017; 0.901249;, + 0.554340; 0.947704;, + 0.400799; 0.947721;, + 0.400353; 0.901249;, + 0.354772; 0.901249;, + 0.354325; 0.947721;, + 0.001953; 0.397538;, + 0.048378; 0.395390;, + 0.048378; 0.356749;, + 0.001953; 0.354601;, + 0.848908; 0.595290;, + 0.845387; 0.548949;, + 0.819567; 0.548949;, + 0.816046; 0.595290;, + 0.964610; 0.754609;, + 0.918340; 0.750250;, + 0.918340; 0.768035;, + 0.964610; 0.763675;, + 0.919893; 0.343688;, + 0.966162; 0.339329;, + 0.966162; 0.330262;, + 0.919893; 0.325903;, + 0.808656; 0.494642;, + 0.812177; 0.448301;, + 0.779315; 0.448301;, + 0.782836; 0.494642;, + 0.451111; 0.406192;, + 0.404686; 0.404044;, + 0.404686; 0.446981;, + 0.451111; 0.444833;, + 0.299671; 0.897378;, + 0.300118; 0.850906;, + 0.253644; 0.850906;, + 0.254090; 0.897378;, + 0.404655; 0.496430;, + 0.451111; 0.495108;, + 0.451111; 0.452172;, + 0.404655; 0.450849;, + 0.052296; 0.264059;, + 0.098680; 0.261169;, + 0.098680; 0.228307;, + 0.052296; 0.225417;, + 0.908285; 0.595290;, + 0.904267; 0.548990;, + 0.886482; 0.548990;, + 0.882465; 0.595290;, + 0.904267; 0.544935;, + 0.908285; 0.498635;, + 0.882465; 0.498635;, + 0.886482; 0.544935;, + 0.149094; 0.270820;, + 0.102710; 0.267930;, + 0.102710; 0.306572;, + 0.149094; 0.303682;, + 0.149094; 0.551078;, + 0.102639; 0.549755;, + 0.102638; 0.595336;, + 0.149094; 0.594014;, + 0.350463; 0.696013;, + 0.350016; 0.649541;, + 0.304435; 0.649541;, + 0.303989; 0.696013;, + 0.203334; 0.352498;, + 0.249758; 0.350351;, + 0.249758; 0.311709;, + 0.203334; 0.309562;, + 0.821709; 0.746337;, + 0.818187; 0.699997;, + 0.792368; 0.699997;, + 0.788847; 0.746337;, + 0.300018; 0.045013;, + 0.253749; 0.040654;, + 0.253749; 0.058438;, + 0.300018; 0.054079;, + 0.919893; 0.243226;, + 0.966162; 0.238867;, + 0.966162; 0.229800;, + 0.919893; 0.225441;, + 0.807801; 0.796590;, + 0.811322; 0.750250;, + 0.778460; 0.750250;, + 0.781981; 0.796590;, + 0.199404; 0.405311;, + 0.152979; 0.403164;, + 0.152979; 0.446100;, + 0.199404; 0.443953;, + 0.400359; 0.796695;, + 0.400806; 0.750223;, + 0.354331; 0.750223;, + 0.354778; 0.796695;, + 0.001953; 0.446988;, + 0.048408; 0.445665;, + 0.048408; 0.402729;, + 0.001953; 0.401406;, + 0.507917; 0.257944;, + 0.554301; 0.255055;, + 0.554301; 0.222192;, + 0.507917; 0.219303;, + 0.917810; 0.947589;, + 0.913793; 0.901289;, + 0.896008; 0.901289;, + 0.891990; 0.947589;, + 0.912007; 0.293519;, + 0.916024; 0.247219;, + 0.890205; 0.247219;, + 0.894222; 0.293519;, + 0.199404; 0.220446;, + 0.153020; 0.217556;, + 0.153020; 0.256198;, + 0.199404; 0.253308;, + 0.048408; 0.501628;, + 0.001953; 0.500306;, + 0.001953; 0.545887;, + 0.048408; 0.544565;, + 0.098751; 0.847039;, + 0.098305; 0.800567;, + 0.052724; 0.800567;, + 0.052277; 0.847039;, + 0.504429; 0.397553;, + 0.550854; 0.395406;, + 0.550854; 0.356764;, + 0.504429; 0.354617;, + 0.848908; 0.494642;, + 0.845387; 0.448301;, + 0.819567; 0.448301;, + 0.816046; 0.494642;, + 0.967948; 0.934164;, + 0.921679; 0.929805;, + 0.921679; 0.947589;, + 0.967948; 0.943230;, + 0.601568; 0.054007;, + 0.647838; 0.049647;, + 0.647838; 0.040581;, + 0.601568; 0.036222;, + 0.816396; 0.243266;, + 0.819917; 0.196926;, + 0.787055; 0.196926;, + 0.790576; 0.243266;, + 0.149094; 0.406198;, + 0.102669; 0.404051;, + 0.102669; 0.446987;, + 0.149094; 0.444840;, + 0.098305; 0.645675;, + 0.098751; 0.599203;, + 0.052277; 0.599203;, + 0.052724; 0.645675;, + 0.355371; 0.036783;, + 0.400961; 0.027759;, + 0.354487; 0.027759;, + 0.199303; 0.033009;, + 0.153051; 0.028476;, + 0.153051; 0.037543;, + 0.300018; 0.036784;, + 0.254428; 0.027762;, + 0.253544; 0.036785;, + 0.927416; 0.870909;, + 0.973891; 0.870909;, + 0.928301; 0.861886;, + 0.979845; 0.193057;, + 0.934255; 0.184034;, + 0.933371; 0.193057;, + 0.455010; 0.035671;, + 0.501484; 0.035671;, + 0.455894; 0.026647;, + 0.984250; 0.036480;, + 0.938660; 0.027457;, + 0.937776; 0.036480;, + 0.887433; 0.036480;, + 0.933907; 0.036480;, + 0.888317; 0.027457;, + 0.102619; 0.023490;, + 0.148209; 0.032514;, + 0.149094; 0.023490;, + 0.350534; 0.028636;, + 0.304060; 0.028636;, + 0.349650; 0.037659;, + 0.651722; 0.023649;, + 0.697312; 0.032672;, + 0.698196; 0.023649;, + 0.451082; 0.027716;, + 0.404829; 0.032249;, + 0.451082; 0.036783;, + 0.837264; 0.022696;, + 0.883517; 0.027229;, + 0.883517; 0.018162;, + 0.827574; 0.887710;, + 0.781100; 0.887711;, + 0.826690; 0.896734;, + 0.937571; 0.083918;, + 0.984045; 0.083918;, + 0.983160; 0.074894;, + 0.835097; 0.599218;, + 0.788845; 0.603751;, + 0.835097; 0.608284;, + 0.601363; 0.014928;, + 0.647616; 0.019461;, + 0.647616; 0.010394;, + 0.249647; 0.027761;, + 0.203173; 0.027761;, + 0.248763; 0.036785;, + 0.052377; 0.017551;, + 0.098629; 0.022084;, + 0.098629; 0.013017;, + 0.833364; 0.037577;, + 0.786890; 0.037577;, + 0.832480; 0.046600;, + 0.933371; 0.146757;, + 0.978961; 0.155780;, + 0.979845; 0.146757;, + 0.748539; 0.036541;, + 0.702065; 0.036541;, + 0.747655; 0.045564;, + 0.702065; 0.015247;, + 0.748317; 0.019780;, + 0.748317; 0.010713;, + 0.935695; 0.822268;, + 0.889221; 0.822268;, + 0.934810; 0.831292;, + 0.937776; 0.040349;, + 0.983365; 0.049372;, + 0.984250; 0.040349;, + 0.883517; 0.031098;, + 0.837264; 0.035631;, + 0.883517; 0.040164;, + 0.601363; 0.023330;, + 0.646953; 0.032353;, + 0.647838; 0.023330;, + 0.877917; 0.887710;, + 0.831443; 0.887710;, + 0.877033; 0.896734;, + 0.932129; 0.887710;, + 0.977719; 0.896734;, + 0.978603; 0.887710;, + 0.928260; 0.887710;, + 0.881786; 0.887710;, + 0.927376; 0.896734;, + 0.786890; 0.020816;, + 0.833364; 0.020816;, + 0.832480; 0.011793;, + 0.834154; 0.398561;, + 0.787901; 0.403088;, + 0.834153; 0.407627;, + 0.153051; 0.020074;, + 0.199303; 0.024607;, + 0.199303; 0.015541;, + 0.554432; 0.030265;, + 0.507958; 0.030265;, + 0.553548; 0.039289;, + 0.102841; 0.015088;, + 0.149094; 0.019622;, + 0.149094; 0.010555;, + 0.933907; 0.040349;, + 0.887433; 0.040349;, + 0.933023; 0.049372;, + 0.702065; 0.023649;, + 0.747655; 0.032672;, + 0.748539; 0.023649;, + 0.973891; 0.837501;, + 0.927416; 0.837501;, + 0.973006; 0.846524;, + 0.153051; 0.007139;, + 0.199303; 0.011672;, + 0.199303; 0.002605;, + 0.973891; 0.874778;, + 0.927416; 0.874778;, + 0.973006; 0.883801;, + 0.933907; 0.023588;, + 0.888317; 0.014565;, + 0.887433; 0.023588;, + 0.052377; 0.035019;, + 0.098629; 0.030486;, + 0.052377; 0.025952;, + 0.986037; 0.831292;, + 0.940448; 0.822268;, + 0.939563; 0.831292;, + 0.102619; 0.045406;, + 0.149094; 0.045406;, + 0.103504; 0.036382;, + 0.501484; 0.022779;, + 0.455894; 0.013755;, + 0.455010; 0.022779;, + 0.455010; 0.048563;, + 0.501484; 0.048562;, + 0.455894; 0.039540;, + 0.984250; 0.023588;, + 0.938660; 0.014565;, + 0.937776; 0.023588;, + 0.786890; 0.033708;, + 0.833364; 0.033708;, + 0.787775; 0.024685;, + 0.554210; 0.008971;, + 0.507958; 0.004438;, + 0.507958; 0.013505;, + 0.002918; 0.035019;, + 0.048508; 0.025996;, + 0.002034; 0.025996;, + 0.048508; 0.022127;, + 0.002918; 0.013104;, + 0.002034; 0.022127;, + 0.507958; 0.026397;, + 0.554432; 0.026397;, + 0.508842; 0.017373;, + 0.299796; 0.006468;, + 0.253544; 0.001934;, + 0.253544; 0.011001;, + 0.933371; 0.168672;, + 0.979845; 0.168672;, + 0.934255; 0.159649;, + 0.350534; 0.007342;, + 0.304282; 0.002808;, + 0.304282; 0.011875;, + 0.651722; 0.019780;, + 0.697974; 0.015247;, + 0.651722; 0.010713;, + 0.350534; 0.024767;, + 0.304944; 0.015744;, + 0.304060; 0.024767;, + 0.253544; 0.023893;, + 0.300018; 0.023893;, + 0.254428; 0.014870;, + 0.883517; 0.009760;, + 0.837264; 0.005227;, + 0.837264; 0.014294;, + 0.937571; 0.062264;, + 0.984045; 0.062264;, + 0.938455; 0.053241;, + 0.400961; 0.023891;, + 0.355371; 0.014867;, + 0.354487; 0.023891;, + 0.404829; 0.023848;, + 0.451082; 0.019314;, + 0.404829; 0.014781;, + 0.152979; 0.449969;, + 0.154301; 0.496424;, + 0.197238; 0.496424;, + 0.198560; 0.449969;, + 0.702034; 0.196882;, + 0.704924; 0.243266;, + 0.737786; 0.243266;, + 0.740676; 0.196882;, + 0.985833; 0.809638;, + 0.940243; 0.800615;, + 0.939359; 0.809638;, + 0.929502; 0.193057;, + 0.925485; 0.146757;, + 0.907700; 0.146757;, + 0.903683; 0.193057;, + 0.919531; 0.883801;, + 0.923548; 0.837501;, + 0.897728; 0.837501;, + 0.901746; 0.883801;, + 0.203173; 0.023893;, + 0.249647; 0.023893;, + 0.204057; 0.014869;, + 0.457869; 0.212367;, + 0.454979; 0.258751;, + 0.493621; 0.258751;, + 0.490731; 0.212367;, + 0.554346; 0.699882;, + 0.553023; 0.746337;, + 0.598605; 0.746337;, + 0.597282; 0.699882;, + 0.400806; 0.746354;, + 0.400359; 0.699882;, + 0.354778; 0.699882;, + 0.354331; 0.746354;, + 0.156467; 0.302577;, + 0.158615; 0.349002;, + 0.197257; 0.349002;, + 0.199404; 0.302577;, + 0.884783; 0.796590;, + 0.881262; 0.750250;, + 0.855443; 0.750250;, + 0.851921; 0.796590;, + 0.967954; 0.704396;, + 0.921685; 0.700037;, + 0.921685; 0.717822;, + 0.967954; 0.713463;, + 0.921679; 0.919074;, + 0.967948; 0.914715;, + 0.967948; 0.905649;, + 0.921679; 0.901289;, + 0.854912; 0.947589;, + 0.858433; 0.901249;, + 0.825571; 0.901249;, + 0.829093; 0.947589;, + 0.648781; 0.750206;, + 0.646634; 0.796631;, + 0.689570; 0.796631;, + 0.687423; 0.750206;, + 0.152963; 0.645220;, + 0.199435; 0.645666;, + 0.199435; 0.599192;, + 0.152963; 0.599639;; + } // End of Sphere UV coordinates + MeshMaterialList { // Sphere material list + 1; + 512; + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 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;; + TextureFilename {"fireballs_fireball_texture.png";} + } + } // End of Sphere material list + } // End of Sphere mesh + } // End of Sphere +} // End of Root diff --git a/mods/tutorial/models/tutorial_fireball2_texture.png b/mods/tutorial/models/tutorial_fireball2_texture.png new file mode 100644 index 0000000..f1a9547 Binary files /dev/null and b/mods/tutorial/models/tutorial_fireball2_texture.png differ diff --git a/mods/tutorial/models/tutorial_fireball_texture.png b/mods/tutorial/models/tutorial_fireball_texture.png new file mode 100644 index 0000000..0366526 Binary files /dev/null and b/mods/tutorial/models/tutorial_fireball_texture.png differ diff --git a/mods/tutorial/models/tutorial_hit.png b/mods/tutorial/models/tutorial_hit.png new file mode 100644 index 0000000..786197a Binary files /dev/null and b/mods/tutorial/models/tutorial_hit.png differ diff --git a/mods/tutorial/models/tutorial_mummy.png b/mods/tutorial/models/tutorial_mummy.png new file mode 100644 index 0000000..e2edb9b Binary files /dev/null and b/mods/tutorial/models/tutorial_mummy.png differ diff --git a/mods/tutorial/models/tutorial_mummy.x b/mods/tutorial/models/tutorial_mummy.x new file mode 100644 index 0000000..b38c335 --- /dev/null +++ b/mods/tutorial/models/tutorial_mummy.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/tutorial/other/atom.lua b/mods/tutorial/other/atom.lua new file mode 100644 index 0000000..fc6f75c --- /dev/null +++ b/mods/tutorial/other/atom.lua @@ -0,0 +1,309 @@ +--pictures by et +--programm by 1248 +minetest.register_node("tutorial:radioaktive", { + description = "Radioaktive", + drawtype = "plantlike", + tiles = {{ + name="tutorial_radioaktive.png", + }}, + light_source = 12, + walkable = false, + buildable_to = true, + damage_per_second = 0, + groups = {dig_immediate=3}, +}) + +minetest.register_abm({ + nodenames = {"tutorial:radioaktive"}, + interval = 1, + chance = 2, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.env:remove_node(pos) + end, +}) +minetest.register_entity("tutorial:radioaktiveball", { + visual = "mesh", + visual_size = {x=5, y=5}, + mesh = "fireballs_smokeball.x", + textures = {"tutorial_radioaktiveball.png"}, + velocity = 5, + light_source = 12, + on_step = function(self, dtime) + local pos = self.object:getpos() + if minetest.env:get_node(self.object:getpos()).name ~= "air"then + self.hit_node(self, pos, node) + self.object:remove() + return + end + pos.y = pos.y-1 + for _,player in pairs(minetest.env:get_objects_inside_radius(pos, 1)) do + if player:is_player() then + self.hit_player(self, player) + self.object:remove() + return + end + end + end, + hit_player = function(self, player) + local s = player:getpos() + local p = player:get_look_dir() + local vec = {x=s.x-p.x, y=s.y-p.y, z=s.z-p.z} + local pos = player:getpos() + for dx=0,1 do + for dy=0,1 do + for dz=0,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 == "air") then + minetest.env:add_node(p, {name="tutorial:radioaktive"}) + end + end + end + end + end, + hit_node = function(self, pos, node) + for dx=-1,1 do + for dy=-2,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 == "air") then + minetest.env:add_node(p, {name="tutorial:radioaktive"}) + end + end + end + end + end +}) + +minetest.register_tool("tutorial:raketenwerfer", { + description = "Raketenwerfer", + inventory_image = "tutorial_raketenwerfer.png", + on_use = function(itemstack, placer, pointed_thing) + local dir = placer:get_look_dir(); + local playerpos = placer:getpos(); + local obj = minetest.env:add_entity({x=playerpos.x+0+dir.x,y=playerpos.y+2+dir.y,z=playerpos.z+0+dir.z}, "tutorial:radioaktiveball") + local vec = {x=dir.x*3,y=dir.y*3,z=dir.z*3} + obj:setvelocity(vec) + return itemstack + end, + light_source = 12, +}) +minetest.register_craftitem("tutorial:atombombe", { + description = "Atombombe", + inventory_image = "tutorial_atombombe.png", +}) + +minetest.register_craftitem("tutorial:atombombe2", { + description = "Atombombe Teil2", + inventory_image = "tutorial_atombombe2.png", +}) + +minetest.register_craftitem("tutorial:atombombe1", { + description = "Atombombe Teil1", + inventory_image = "tutorial_atombombe1.png", +}) + +--Version 2 +minetest.register_tool("tutorial:coreentverner", { + description = "Core entverner", + inventory_image = "tutorial_coreentverner.png", + tool_capabilities = { + full_punch_interval = 2.0, + max_drop_level=1, + groupcaps={ +cracky = {times={[-1]=0}, uses=500, maxlevel=3}, + }, + damage_groups = {fleshy=5} + }, +}) +minetest.register_node("tutorial:glass_reaktor_core", { + description = "Glass Reaktor core", + drawtype = "glasslike", + tiles = {"tutorial_glass_reaktor_core.png"}, + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + is_ground_content = true, + groups = {cracky=-1}, + sounds = default.node_sound_glass_defaults() + }) + +minetest.register_node("tutorial:glass_verseuchter_reaktor_core", { + description = "Glass Verseuchter Reaktor core", + drawtype = "glasslike", + tiles = {"tutorial_verseuchter_glass_reaktor_core.png"}, + paramtype = "light", + sunlight_propagates = true, + use_texture_alpha = true, + light_source = 10, + is_ground_content = true, + groups = {cracky=-1}, + sounds = default.node_sound_glass_defaults() + }) + +minetest.register_node("tutorial:verseuchter_reaktor_core", { + description = "Verseuchter Reaktor core", + tiles = {"tutorial_verseuchter_reaktor_core.png"}, + is_ground_content = true, + groups = {cracky=-1}, + light_source = 10, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("tutorial:reaktor_core", { + description = "Reaktor core", + tiles = {"tutorial_reaktor_core.png"}, + is_ground_content = true, + groups = {cracky=-1}, + sounds = default.node_sound_stone_defaults(), +}) + +--Version 1 +minetest.register_craftitem("tutorial:blei_ingot", { + description = "Blei Ingot", + inventory_image = "tutorial_blei_ingot.png", +}) + +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_blei", + wherein = "default:stone", + clust_scarcity = 15*15*15, + clust_num_ores = 3, + clust_size = 2, + height_min = -31000 , + height_max = -25, +}) + +minetest.register_node("tutorial:stone_with_blei", { + description = "Blei", + tiles = {"tutorial_blei.png"}, + is_ground_content = true, + groups = {cracky=0}, + drop = 'tutorial:blei_ingot', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_craftitem("tutorial:plutonium_ingot", { + description = "Plutonium Ingot lv.1", + inventory_image = "tutorial_plutonium_ingot.png", +}) + +minetest.register_craftitem("tutorial:plutonium_ingot2", { + description = "Plutonium Ingot lv.2", + inventory_image = "tutorial_plutonium_ingot2.png", +}) + + + +minetest.register_craftitem("tutorial:plutonium_lump", { + description = "Plutonium Lump", + inventory_image = "tutorial_plutonium_lump.png", +}) + + +minetest.register_ore({ + ore_type = "scatter", + ore = "tutorial:stone_with_plutonium", + wherein = "default:stone", + clust_scarcity = 15*15*15, + clust_num_ores = 3, + clust_size = 2, + height_min = -31000 , + height_max = -25, +}) + +minetest.register_node("tutorial:stone_with_plutonium", { + description = "Plutonium", + tiles = {"tutorial_plutonium.png"}, + is_ground_content = true, + groups = {cracky=4}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("tutorial:verseuchtesgeschenk",{ +description = "Verseuchtesgeschenk", + is_ground_content = true, + tiles = {"tutorial_verseuchtesgeschenk.png"}, + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + drop = { + max_items = 1, + items = { + {items = {'tutorial:verseuchtebattleaxe'},rarity = 10,}, + {items = {'tutorial:uranium1 16'},rarity = 1,}, + {items = {'tutorial:uranium2 8'},rarity = 3,}, + {items = {'tutorial:uranium3 4'},rarity = 5,} + + } + }, + + +}) + + + + +minetest.register_tool("tutorial:atombattleaxe", { + description = "Atombattleaxe", + inventory_image = "tutorial_atombattleaxe.png", + tool_capabilities = { + full_punch_interval = 2.0, + max_drop_level=1, + groupcaps={ + +--sword +snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + --axe +choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, +--shovel +crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, +--pick +cracky = {times={[1]=0, [2]=0, [3]=0, [4]=0, [5]=0, [6]=2.0, [7]=4.0, [8]=4.0, [9]=4.0, [0]=0,}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=500000} + }, +}) + +minetest.register_tool("tutorial:radioaktivebattleaxe", { + description = "Radioaktivebattleaxe", + inventory_image = "tutorial_radioaktivebattleaxe.png", + tool_capabilities = { + full_punch_interval = 2.0, + max_drop_level=1, + groupcaps={ + +--sword +snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + --axe +choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, +--shovel +crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, +--pick +cracky = {times={[1]=0, [2]=0, [3]=0, [4]=0, [5]=1.0, [6]=3.0, [0]=0,}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=250000} + }, +}) + + +minetest.register_tool("tutorial:verseuchtebattleaxe", { + description = "Verseuchtebattleaxe", + inventory_image = "tutorial_verseuchtebattleaxe.png", + tool_capabilities = { + full_punch_interval = 2.0, + max_drop_level=1, + groupcaps={ + +--sword +snappy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, + --axe +choppy = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, +--shovel +crumbly = {times={[1]=0, [2]=0, [3]=0}, uses=0, maxlevel=3}, +--pick +cracky = {times={[1]=0, [2]=0, [3]=0, [4]=0, [5]=2.0, [0]=0,}, uses=0, maxlevel=3}, + }, + damage_groups = {fleshy=50000} + }, +}) diff --git a/mods/tutorial/other/mummy.lua b/mods/tutorial/other/mummy.lua new file mode 100644 index 0000000..0d3c1a1 --- /dev/null +++ b/mods/tutorial/other/mummy.lua @@ -0,0 +1,396 @@ +--tutorial = {} + +walk_limit = 5 +chillaxin_speed = 5 +animation_speed = 100 +-- Note: This is currently broken due to a bug in Irrlicht, leave at 0 +animation_blend = 0 + +-- Default player appearance +mummy_mesh = "tutorial_mummy.x" +mummy_texture = {"tutorial_mummy.png"} +mummy_hp = 500 +mummy_drop = "tutorial:geschenkpapier 128" + +local sound_normal = "mummy" +local sound_hit = "mummy_hurt" +local sound_dead = "mummy_death" + +local spawner_range = 17 +local spawner_max_mobs = 6 + +function get_animations_def() + return { + stand_START = 74, + stand_END = 74, + sit_START = 81, + sit_END = 160, + lay_START = 162, + lay_END = 166, + walk_START = 74, + walk_END = 105, + mine_START = 74, + mine_END = 105, + walk_mine_START = 74, + walk_mine_END = 105 + } +end + +local npc_model = {} +local npc_anim = {} +local npc_sneak = {} +local ANIM_STAND = 1 +local ANIM_SIT = 2 +local ANIM_LAY = 3 +local ANIM_WALK = 4 +local ANIM_WALK_MINE = 5 +local ANIM_MINE = 6 + +function hit(self) + prop = { + mesh = mummy_mesh, + textures = {"tutorial_mummy.png^tutorial_hit.png"}, + } + self.object:set_properties(prop) + minetest.after(0.4, function() + prop = {textures = mummy_texture,} + self.object:set_properties(prop) + end) +end + +function npc_update_visuals_def(self) + --local name = get_player_name() + visual = default_model_def + npc_anim = 0 -- Animation will be set further below immediately + --npc_sneak[name] = false + prop = { + mesh = mummy_mesh, + textures = mummy_texture, + --visual_size = {x=1, y=1, z=1}, + } + self.object:set_properties(prop) +end + +MUMMY_DEF = { + physical = true, + collisionbox = {-0.4, -0.01, -0.4, 0.4, 1.9, 0.4}, + visual = "mesh", + visual_size = {x=8,y=8}, + mesh = mummy_mesh, + textures = mummy_texture, + makes_footstep_sound = true, + npc_anim = 0, + timer = 0, + turn_timer = 0, + vec = 0, + yaw = 0, + yawwer = 0, + state = 1, + jump_timer = 0, + punch_timer = 0, + sound_timer = 0, + attacker = "", + attacking_timer = 0, + mob_name = "mummy" +} + +spawner_DEF = { + hp_max = 1, + physical = true, + collisionbox = {0,0,0,0,0,0}, + visual = "mesh", + visual_size = {x=3.3,y=3.3}, + mesh = mummy_mesh, + textures = mummy_texture, + makes_footstep_sound = false, + timer = 0, + automatic_rotate = math.pi * 2.9, + m_name = "dummy" +} + +spawner_DEF.on_activate = function(self) + npc_update_visuals_def(self) + self.object:setvelocity({x=0, y=0, z=0}) + self.object:setacceleration({x=0, y=0, z=0}) + self.object:set_armor_groups({immortal=1}) + +end + +spawner_DEF.on_step = function(self, dtime) + self.timer = self.timer + 0.01 + local n = minetest.get_node_or_nil(self.object:getpos()) + if self.timer > 1 then + if n and n.name and n.name ~= "tutorial:spawner_mummy" then + self.object:remove() + end + end +end + +spawner_DEF.on_punch = function(self, hitter) + +end + +MUMMY_DEF.on_activate = function(self) + npc_update_visuals_def(self) + self.anim = get_animations_def() + self.object:set_animation({x=self.anim.stand_START,y=self.anim.stand_END}, animation_speed, animation_blend) + self.npc_anim = ANIM_STAND + self.object:setacceleration({x=0,y=-20,z=0})--20 + self.state = 1 + self.object:set_hp(mummy_hp) + self.object:set_armor_groups({fleshy=130}) +end + +MUMMY_DEF.on_punch = function(self, puncher, time_from_last_punch, tool_capabilities, dir) + + --attack as group + --[[for _,object in ipairs(minetest.env:get_objects_inside_radius(self.object:getpos(), 5)) do + if not object:is_player() then + if object:get_luaentity().name == "peaceful_npc:npc_def" then + object:get_luaentity().state = 3 + object:get_luaentity().attacker = puncher:get_player_name() + end + end + end]] + + --if self.state ~= 3 then + --self.state = 3 + self.attacker = puncher--:get_player_name() + --end + + if puncher ~= nil then + local sound = sound_hit + if self.object:get_hp() == 0 then sound = sound_dead end + minetest.sound_play(sound, {to_player = puncher:get_player_name(), loop = false, gain = 0.3}) + if time_from_last_punch >= 0.45 then + hit(self) + --local dir = puncher:get_look_dir() + --self.direction = dir + self.direction = {x=self.object:getvelocity().x, y=self.object:getvelocity().y, z=self.object:getvelocity().z} + self.punch_timer = 0 + self.object:setvelocity({x=dir.x*chillaxin_speed,y=5,z=dir.z*chillaxin_speed})--self.object:setvelocity({x=dir.x*4,y=5,z=dir.z*4}) + if self.state == 1 then + self.state = 8 + elseif self.state >= 2 then + self.state = 9 + end + end + end + + if self.object:get_hp() == 0 then + local obj = minetest.env:add_item(self.object:getpos(), mummy_drop.."default:obsidian 99 "..math.random(0,3)) + end +end + + local cnt1 = 0 + local cnt2 = 0 + +MUMMY_DEF.on_step = function(self, dtime) + self.timer = self.timer + 0.01 + self.turn_timer = self.turn_timer + 0.01 + self.jump_timer = self.jump_timer + 0.01 + self.punch_timer = self.punch_timer + 0.01 + self.attacking_timer = self.attacking_timer + 0.01 + self.sound_timer = self.sound_timer + 0.01 + + local current_pos = self.object:getpos() + local current_node = minetest.env:get_node(current_pos) + if self.time_passed == nil then + self.time_passed = 0 + end + + --self.time_passed = self.time_passed + dtime + if self.object:get_hp() == 0 then-- self.object:remove() end + + --if self.time_passed >= 5 then + minetest.sound_play(sound_dead, {pos = current_pos, max_hear_distance = 10 , gain = 0.3}) + self.object:remove() + end--else + if current_node.name == "default:water_source" or current_node.name == "default:water_flowing" or current_node.name == "default:lava_source" or current_node.name == "default:lava_flowing" then + --self.time_passed = self.time_passed + dtime + self.sound_timer = self.sound_timer + dtime + if self.sound_timer >= 0.8 then + self.sound_timer = 0 + self.object:set_hp(self.object:get_hp()-5) + hit(self) + minetest.sound_play(sound_hit, {pos = current_pos, max_hear_distance = 10, gain = 0.3}) + end + else + self.time_passed = 0 + end + --end + + --update moving state every 1 or 2 seconds + if self.state < 3 then + if self.timer > math.random(1,2) then + if self.attacker == "" then + self.state = math.random(1,2) + else self.state = 1 end + self.timer = 0 + end + end + + --play sound + if self.sound_timer > math.random(5,35) then + minetest.sound_play(sound_normal, {pos = current_pos, max_hear_distance = 10, gain = 0.2}) + self.sound_timer = 0 + end + + --after punched + if self.state >= 8 then + if self.punch_timer > 0.15 then + --self.direction = {x = math.sin(self.yaw)*-1, y = -20, z = math.cos(self.yaw)} + if self.state == 9 then + self.object:setvelocity({x=self.direction.x*chillaxin_speed,y=-20,z=self.direction.z*chillaxin_speed}) + self.state = 2 + elseif self.state == 8 then + self.object:setvelocity({x=0,y=-20,z=0}) + self.state = 1 + end + end + end + + --STANDING + if self.state == 1 then + self.yawwer = true + self.attacker = "" + for _,object in ipairs(minetest.env:get_objects_inside_radius(self.object:getpos(), 4)) do + if object:is_player() then + self.yawwer = false + NPC = self.object:getpos() + PLAYER = object:getpos() + self.vec = {x=PLAYER.x-NPC.x, y=PLAYER.y-NPC.y, z=PLAYER.z-NPC.z} + self.yaw = math.atan(self.vec.z/self.vec.x)+math.pi^2 + if PLAYER.x > NPC.x then + self.yaw = self.yaw + math.pi + end + self.yaw = self.yaw - 2 + self.object:setyaw(self.yaw) + self.attacker = object--:get_player_name() + end + end + + if self.attacker == "" and self.turn_timer > math.random(1,4) then--and yawwer == true then + self.yaw = 360 * math.random() + self.object:setyaw(self.yaw) + self.turn_timer = 0 + self.direction = {x = math.sin(self.yaw)*-1, y = -20, z = math.cos(self.yaw)} + end + self.object:setvelocity({x=0,y=self.object:getvelocity().y,z=0}) + if self.npc_anim ~= ANIM_STAND then + self.anim = get_animations_def() + self.object:set_animation({x=self.anim.stand_START,y=self.anim.stand_END}, animation_speed, animation_blend) + self.npc_anim = ANIM_STAND + end + if self.attacker ~= "" then + self.direction = {x = math.sin(self.yaw)*-1, y = -20, z = math.cos(self.yaw)} + self.state = 2 + end + end + --WALKING + if self.state == 2 then + + if self.direction ~= nil then + self.object:setvelocity({x=self.direction.x*chillaxin_speed,y=self.object:getvelocity().y,z=self.direction.z*chillaxin_speed}) + end + if self.turn_timer > math.random(1,4) and not self.attacker then + self.yaw = 360 * math.random() + self.object:setyaw(self.yaw) + self.turn_timer = 0 + self.direction = {x = math.sin(self.yaw)*-1, y = -20, z = math.cos(self.yaw)} + --self.object:setvelocity({x=self.direction.x,y=self.object:getvelocity().y,z=direction.z}) + --self.object:setacceleration(self.direction) + end + if self.npc_anim ~= ANIM_WALK then + self.anim = get_animations_def() + self.object:set_animation({x=self.anim.walk_START,y=self.anim.walk_END}, animation_speed, animation_blend) + self.npc_anim = ANIM_WALK + end + --[[jump + if self.direction ~= nil then + if self.jump_timer > 0.3 then + if minetest.env:get_node({x=self.object:getpos().x + self.direction.x,y=self.object:getpos().y-1,z=self.object:getpos().z + self.direction.z}).name ~= "air" then + self.object:setvelocity({x=self.object:getvelocity().x,y=5,z=self.object:getvelocity().z}) + self.jump_timer = 0 + end + end + end]] + + if self.attacker ~= "" and minetest.setting_getbool("enable_damage") then + local s = self.object:getpos() + local p = self.attacker:getpos() + local dist = ((p.x-s.x)^2 + (p.y-s.y)^2 + (p.z-s.z)^2)^0.5 + + if dist < 2 and self.attacking_timer > 0.6 then + self.attacker:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups = {fleshy=50} + }) + self.attacking_timer = 0 + end + end + end +end + +minetest.register_entity("tutorial:mummy", MUMMY_DEF) +minetest.register_entity("tutorial:mummy_spawner", spawner_DEF) + + +--spawn-egg/spawner + +minetest.register_craftitem("tutorial:spawn_egg", { + description = "Mummy spawn-egg", + inventory_image = "tutorial_mummy_egg.png", + liquids_pointable = false, + stack_max = 99, + on_place = function(itemstack, placer, pointed_thing) + if pointed_thing.type == "node" then + minetest.env:add_entity(pointed_thing.above,"tutorial:mummy") + if not minetest.setting_getbool("creative_mode") then itemstack:take_item() end + return itemstack + end + end, + +}) + +minetest.register_craft({ + output = "tutorial:spawn_egg", + recipe = { + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + {'default:obsidian', 'default:ice', 'default:obsidian'}, + {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + } +}) + + + +function tutorial.spawn_mummy (pos, number) + for i=0,number do + minetest.env:add_entity(pos,"tutorial:mummy") + end +end + +minetest.register_node("tutorial:spawner_mummy", { + description = "Mummy spawner", + paramtype = "light", + tiles = {"tutorial_spawner.png"}, + is_ground_content = true, + drawtype = "allfaces",--_optional", + groups = {cracky=1,level=1}, + drop = "", + on_construct = function(pos) + pos.y = pos.y - 0.28 + minetest.env:add_entity(pos,"tutorial:mummy_spawner") + end, + on_destruct = function(pos) + for _,obj in ipairs(minetest.env:get_objects_inside_radius(pos, 1)) do + if not obj:is_player() then + if obj ~= nil and obj:get_luaentity().m_name == "dummy" then + obj:remove() + end + end + end + end +}) + + diff --git a/mods/tutorial/other/regnum.lua b/mods/tutorial/other/regnum.lua new file mode 100644 index 0000000..fcb9f7d --- /dev/null +++ b/mods/tutorial/other/regnum.lua @@ -0,0 +1,874 @@ +minetest.register_alias("regnum:battleaxe_0", "tutorial:battleaxe") +minetest.register_alias("regnum:battleaxe_1", "tutorial:battleaxe_mega1") +minetest.register_alias("regnum:battleaxe_2", "tutorial:battleaxe_mega2") +minetest.register_alias("regnum:battleaxe_3", "tutorial:battleaxe_mega3") +minetest.register_alias("regnum:battleaxe_4", "tutorial:battleaxe_mega4") +minetest.register_alias("regnum:battleaxe_5", "tutorial:battleaxe_mega5") +minetest.register_alias("regnum:battleaxe_6", "tutorial:battleaxe_mega6") +minetest.register_alias("regnum:battleaxe_7", "tutorial:battleaxe_mega7") +minetest.register_alias("regnum:battleaxe_8", "tutorial:battleaxe_mega8") +minetest.register_alias("regnum:battleaxe_9", "tutorial:battleaxe_mega9") +minetest.register_alias("regnum:battleaxe_10", "tutorial:battleaxe_mega10") +minetest.register_alias("regnum:battleaxe_11", "tutorial:battleaxe_mega11") +minetest.register_alias("regnum:battleaxe_12", "tutorial:battleaxe_mega12") +minetest.register_alias("regnum:battleaxe_13", "tutorial:battleaxe_mega13") +minetest.register_alias("regnum:battleaxe_14", "tutorial:battleaxe_mega14") +minetest.register_alias("regnum:battleaxe_15", "tutorial:battleaxe_mega15") +minetest.register_alias("regnum:battleaxe_16", "tutorial:battleaxe_mega16") +minetest.register_alias("regnum:battleaxe_17", "tutorial:battleaxe_mega17") +minetest.register_alias("regnum:battleaxe_18", "tutorial:battleaxe_mega18") +minetest.register_alias("regnum:battleaxe_19", "tutorial:battleaxe_mega19") +minetest.register_alias("regnum:battleaxe_20", "tutorial:battleaxe_mega20") +minetest.register_alias("regnum:battleaxe_21", "tutorial:cloudbattleaxe_mega1") +minetest.register_alias("regnum:battleaxe_22", "tutorial:cloudbattleaxe_mega2") +minetest.register_alias("regnum:battleaxe_23", "tutorial:cloudbattleaxe_mega3") +minetest.register_alias("regnum:battleaxe_24", "tutorial:cloudbattleaxe_mega4") +minetest.register_alias("regnum:battleaxe_25", "tutorial:cloudbattleaxe_mega5") +minetest.register_alias("regnum:battleaxe_26", "tutorial:cloudbattleaxe_mega6") +minetest.register_alias("regnum:battleaxe_27", "tutorial:cloudbattleaxe_mega7") +minetest.register_alias("regnum:battleaxe_28", "tutorial:cloudbattleaxe_mega8") +minetest.register_alias("regnum:battleaxe_29", "tutorial:cloudbattleaxe_mega9") +minetest.register_alias("regnum:battleaxe_30", "tutorial:cloudbattleaxe_mega10") +minetest.register_alias("regnum:battleaxe_31", "tutorial:cloudbattleaxe_mega11") +minetest.register_alias("regnum:battleaxe_32", "tutorial:cloudbattleaxe_mega12") +minetest.register_alias("regnum:battleaxe_33", "tutorial:cloudbattleaxe_mega13") +minetest.register_alias("regnum:battleaxe_34", "tutorial:cloudbattleaxe_mega14") +minetest.register_alias("regnum:battleaxe_35", "tutorial:cloudbattleaxe_mega15") +minetest.register_alias("regnum:battleaxe_36", "tutorial:cloudbattleaxe_mega16") +minetest.register_alias("regnum:battleaxe_37", "tutorial:cloudbattleaxe_mega17") +minetest.register_alias("regnum:battleaxe_38", "tutorial:cloudbattleaxe_mega18") +minetest.register_alias("regnum:battleaxe_39", "tutorial:cloudbattleaxe_mega19") +minetest.register_alias("regnum:battleaxe_40", "tutorial:cloudbattleaxe_mega20") +minetest.register_alias("regnum:battleaxe_41", "tutorial:cloudbattleaxe_mega21") +minetest.register_alias("regnum:battleaxe_42", "tutorial:cloudbattleaxe_mega22") +minetest.register_alias("regnum:battleaxe_43", "tutorial:cloudbattleaxe_mega23") +minetest.register_alias("regnum:battleaxe_44", "tutorial:cloudbattleaxe_mega24") +minetest.register_alias("regnum:battleaxe_45", "tutorial:cloudbattleaxe_mega25") +minetest.register_alias("regnum:battleaxe_46", "tutorial:superbattleaxe1") +minetest.register_alias("regnum:battleaxe_47", "tutorial:superbattleaxe2") +minetest.register_alias("regnum:battleaxe_48", "tutorial:superbattleaxe3") +minetest.register_alias("regnum:battleaxe_49", "tutorial:superbattleaxe4") +minetest.register_alias("regnum:battleaxe_50", "tutorial:uraniumbattleaxe1") +minetest.register_alias("regnum:battleaxe_51", "tutorial:uraniumbattleaxe2") +minetest.register_alias("regnum:battleaxe_52", "tutorial:energybattleaxe1") +minetest.register_alias("regnum:battleaxe_53", "tutorial:energybattleaxe2") +minetest.register_alias("regnum:battleaxe_54", "tutorial:energybattleaxe3") +minetest.register_alias("regnum:battleaxe_55", "tutorial:energybattleaxe4") +minetest.register_alias("regnum:battleaxe_56", "tutorial:energybattleaxe5") +minetest.register_alias("regnum:battleaxe_57", "tutorial:energybattleaxe6") +minetest.register_alias("regnum:battleaxe_58", "tutorial:energybattleaxe7") +minetest.register_alias("regnum:battleaxe_59", "tutorial:energybattleaxe8") +minetest.register_alias("regnum:battleaxe_60", "tutorial:energybattleaxe9") +minetest.register_alias("regnum:battleaxe_61", "tutorial:energybattleaxe10") +minetest.register_alias("regnum:battleaxe_62", "tutorial:energybattleaxe11") +minetest.register_alias("regnum:battleaxe_63", "tutorial:energybattleaxe12") +minetest.register_alias("regnum:battleaxe_64", "tutorial:superenergybattleaxe1") +minetest.register_alias("regnum:battleaxe_65", "tutorial:superenergybattleaxe2") +minetest.register_alias("regnum:battleaxe_66", "tutorial:superenergybattleaxe3") +minetest.register_alias("regnum:battleaxe_67", "tutorial:superenergybattleaxe4") +minetest.register_alias("regnum:battleaxe_68", "tutorial:superenergybattleaxe5") +minetest.register_alias("regnum:battleaxe_69", "tutorial:superenergybattleaxe6") +minetest.register_alias("regnum:battleaxe_70", "tutorial:superenergybattleaxe7") +minetest.register_alias("regnum:battleaxe_71", "tutorial:kristallbattleaxe1") +minetest.register_alias("regnum:battleaxe_72", "tutorial:kristallbattleaxe2") +minetest.register_alias("regnum:battleaxe_73", "tutorial:kristallbattleaxe3") +minetest.register_alias("regnum:battleaxe_74", "tutorial:kristallbattleaxe4") +minetest.register_alias("regnum:battleaxe_75", "tutorial:kristallbattleaxe5") +minetest.register_alias("regnum:battleaxe_76", "tutorial:ultrabattleaxe1") +minetest.register_alias("regnum:battleaxe_77", "tutorial:ultrabattleaxe2") +minetest.register_alias("regnum:battleaxe_78", "tutorial:ultrabattleaxe3") +minetest.register_alias("regnum:battleaxe_79", "tutorial:ultrabattleaxe4") +minetest.register_alias("regnum:battleaxe_80", "tutorial:ultrabattleaxe5") +minetest.register_alias("regnum:battleaxe_81", "tutorial:ultrabattleaxe6") +minetest.register_alias("regnum:battleaxe_82", "tutorial:ultrabattleaxe7") +minetest.register_alias("regnum:battleaxe_83", "tutorial:ultrabattleaxe8") +minetest.register_alias("regnum:battleaxe_84", "tutorial:ultrabattleaxe9") +minetest.register_alias("regnum:battleaxe_85", "tutorial:ultrabattleaxe10") +minetest.register_alias("regnum:battleaxe_86", "tutorial:ultrabattleaxe11") +minetest.register_alias("regnum:battleaxe_87", "tutorial:ultrabattleaxe12") +minetest.register_alias("regnum:battleaxe_88", "tutorial:ultrabattleaxe13") +minetest.register_alias("regnum:battleaxe_89", "tutorial:ultrabattleaxe14") +minetest.register_alias("regnum:battleaxe_90", "tutorial:ultrabattleaxe15") +minetest.register_alias("regnum:battleaxe_91", "tutorial:ultrabattleaxe16") +minetest.register_alias("regnum:battleaxe_92", "tutorial:ultrabattleaxe17") +minetest.register_alias("regnum:battleaxe_93", "tutorial:ultrabattleaxe18") +minetest.register_alias("regnum:battleaxe_94", "tutorial:ultrabattleaxe19") +minetest.register_alias("regnum:battleaxe_95", "tutorial:ultrabattleaxe20") +minetest.register_alias("regnum:battleaxe_96", "tutorial:ultrabattleaxe21") +minetest.register_alias("regnum:battleaxe_97", "tutorial:ultrabattleaxe22") +minetest.register_alias("regnum:battleaxe_98", "tutorial:ultrabattleaxe23") +minetest.register_alias("regnum:battleaxe_99", "tutorial:ultrabattleaxe24") +minetest.register_alias("regnum:battleaxe_100", "tutorial:ultrabattleaxe25") +minetest.register_alias("regnum:battleaxe_101", "tutorial:ultrabattleaxe") +minetest.register_alias("regnum:battleaxe_102", "tutorial:arena_battleaxe1") +minetest.register_alias("regnum:battleaxe_103", "tutorial:arena_battleaxe2") +minetest.register_alias("regnum:battleaxe_104", "tutorial:arena_battleaxe3") +minetest.register_alias("regnum:battleaxe_105", "tutorial:arena_battleaxe4") +minetest.register_alias("regnum:battleaxe_106", "tutorial:titanbattleaxe1") +minetest.register_alias("regnum:battleaxe_107", "tutorial:titanbattleaxe2") +minetest.register_alias("regnum:battleaxe_108", "tutorial:titanbattleaxe3") +minetest.register_alias("regnum:battleaxe_109", "tutorial:titanbattleaxe4") +minetest.register_alias("regnum:battleaxe_110", "tutorial:titanbattleaxe5") +minetest.register_alias("regnum:battleaxe_111", "tutorial:titanbattleaxe6") +minetest.register_alias("regnum:battleaxe_112", "tutorial:titanbattleaxe7") +minetest.register_alias("regnum:battleaxe_113", "tutorial:titanbattleaxe8") +minetest.register_alias("regnum:battleaxe_114", "tutorial:titanbattleaxe9") +minetest.register_alias("regnum:battleaxe_115", "tutorial:titanbattleaxe10") +minetest.register_alias("regnum:battleaxe_116", "tutorial:legendenbattleaxe1") +minetest.register_alias("regnum:battleaxe_117", "tutorial:legendenbattleaxe2") +minetest.register_alias("regnum:battleaxe_118", "tutorial:legendenbattleaxe3") +minetest.register_alias("regnum:battleaxe_119", "tutorial:legendenbattleaxe4") +minetest.register_alias("regnum:battleaxe_120", "tutorial:legendenbattleaxe5") +minetest.register_alias("regnum:battleaxe_121", "tutorial:legendenbattleaxe6") +minetest.register_alias("regnum:battleaxe_122", "tutorial:superlegendenbattleaxe1") +minetest.register_alias("regnum:battleaxe_123", "tutorial:regnumbattleaxe1") + +minetest.register_alias("regnum:boots_0", "3d_armor:boots") +minetest.register_alias("regnum:boots_1", "3d_armor:boots_mega1") +minetest.register_alias("regnum:boots_2", "3d_armor:boots_mega2") +minetest.register_alias("regnum:boots_3", "3d_armor:boots_mega3") +minetest.register_alias("regnum:boots_4", "3d_armor:boots_mega4") +minetest.register_alias("regnum:boots_5", "3d_armor:boots_mega5") +minetest.register_alias("regnum:boots_6", "3d_armor:boots_mega6") +minetest.register_alias("regnum:boots_7", "3d_armor:boots_mega7") +minetest.register_alias("regnum:boots_8", "3d_armor:boots_mega8") +minetest.register_alias("regnum:boots_9", "3d_armor:boots_mega9") +minetest.register_alias("regnum:boots_10", "3d_armor:boots_mega10") +minetest.register_alias("regnum:boots_11", "3d_armor:boots_mega11") +minetest.register_alias("regnum:boots_12", "3d_armor:boots_mega12") +minetest.register_alias("regnum:boots_13", "3d_armor:boots_mega13") +minetest.register_alias("regnum:boots_14", "3d_armor:boots_mega14") +minetest.register_alias("regnum:boots_15", "3d_armor:boots_mega15") +minetest.register_alias("regnum:boots_16", "3d_armor:boots_mega16") +minetest.register_alias("regnum:boots_17", "3d_armor:boots_mega17") +minetest.register_alias("regnum:boots_18", "3d_armor:boots_mega18") +minetest.register_alias("regnum:boots_19", "3d_armor:boots_mega19") +minetest.register_alias("regnum:boots_20", "3d_armor:boots_mega20") +minetest.register_alias("regnum:boots_21", "3d_armor:cloudboots_mega1") +minetest.register_alias("regnum:boots_22", "3d_armor:cloudboots_mega2") +minetest.register_alias("regnum:boots_23", "3d_armor:cloudboots_mega3") +minetest.register_alias("regnum:boots_24", "3d_armor:cloudboots_mega4") +minetest.register_alias("regnum:boots_25", "3d_armor:cloudboots_mega5") +minetest.register_alias("regnum:boots_26", "3d_armor:cloudboots_mega6") +minetest.register_alias("regnum:boots_27", "3d_armor:cloudboots_mega7") +minetest.register_alias("regnum:boots_28", "3d_armor:cloudboots_mega8") +minetest.register_alias("regnum:boots_29", "3d_armor:cloudboots_mega9") +minetest.register_alias("regnum:boots_30", "3d_armor:cloudboots_mega10") +minetest.register_alias("regnum:boots_31", "3d_armor:cloudboots_mega11") +minetest.register_alias("regnum:boots_32", "3d_armor:cloudboots_mega12") +minetest.register_alias("regnum:boots_33", "3d_armor:cloudboots_mega13") +minetest.register_alias("regnum:boots_34", "3d_armor:cloudboots_mega14") +minetest.register_alias("regnum:boots_35", "3d_armor:cloudboots_mega15") +minetest.register_alias("regnum:boots_36", "3d_armor:cloudboots_mega16") +minetest.register_alias("regnum:boots_37", "3d_armor:cloudboots_mega17") +minetest.register_alias("regnum:boots_38", "3d_armor:cloudboots_mega18") +minetest.register_alias("regnum:boots_39", "3d_armor:cloudboots_mega19") +minetest.register_alias("regnum:boots_40", "3d_armor:cloudboots_mega20") +minetest.register_alias("regnum:boots_41", "3d_armor:cloudboots_mega21") +minetest.register_alias("regnum:boots_42", "3d_armor:cloudboots_mega22") +minetest.register_alias("regnum:boots_43", "3d_armor:cloudboots_mega23") +minetest.register_alias("regnum:boots_44", "3d_armor:cloudboots_mega24") +minetest.register_alias("regnum:boots_45", "3d_armor:cloudboots_mega25") +minetest.register_alias("regnum:boots_46", "3d_armor:superboots1") +minetest.register_alias("regnum:boots_47", "3d_armor:superboots2") +minetest.register_alias("regnum:boots_48", "3d_armor:superboots3") +minetest.register_alias("regnum:boots_49", "3d_armor:superboots4") +minetest.register_alias("regnum:boots_50", "3d_armor:uraniumboots1") +minetest.register_alias("regnum:boots_51", "3d_armor:uraniumboots2") +minetest.register_alias("regnum:boots_52", "3d_armor:energyboots1") +minetest.register_alias("regnum:boots_53", "3d_armor:energyboots2") +minetest.register_alias("regnum:boots_54", "3d_armor:energyboots3") +minetest.register_alias("regnum:boots_55", "3d_armor:energyboots4") +minetest.register_alias("regnum:boots_56", "3d_armor:energyboots5") +minetest.register_alias("regnum:boots_57", "3d_armor:energyboots6") +minetest.register_alias("regnum:boots_58", "3d_armor:energyboots7") +minetest.register_alias("regnum:boots_59", "3d_armor:energyboots8") +minetest.register_alias("regnum:boots_60", "3d_armor:energyboots9") +minetest.register_alias("regnum:boots_61", "3d_armor:energyboots10") +minetest.register_alias("regnum:boots_62", "3d_armor:energyboots11") +minetest.register_alias("regnum:boots_63", "3d_armor:energyboots12") +minetest.register_alias("regnum:boots_64", "3d_armor:superenergyboots1") +minetest.register_alias("regnum:boots_65", "3d_armor:superenergyboots2") +minetest.register_alias("regnum:boots_66", "3d_armor:superenergyboots3") +minetest.register_alias("regnum:boots_67", "3d_armor:superenergyboots4") +minetest.register_alias("regnum:boots_68", "3d_armor:superenergyboots5") +minetest.register_alias("regnum:boots_69", "3d_armor:superenergyboots6") +minetest.register_alias("regnum:boots_70", "3d_armor:superenergyboots7") +minetest.register_alias("regnum:boots_71", "3d_armor:kristallboots1") +minetest.register_alias("regnum:boots_72", "3d_armor:kristallboots2") +minetest.register_alias("regnum:boots_73", "3d_armor:kristallboots3") +minetest.register_alias("regnum:boots_74", "3d_armor:kristallboots4") +minetest.register_alias("regnum:boots_75", "3d_armor:kristallboots5") +minetest.register_alias("regnum:boots_76", "3d_armor:ultraboots1") +minetest.register_alias("regnum:boots_77", "3d_armor:ultraboots2") +minetest.register_alias("regnum:boots_78", "3d_armor:ultraboots3") +minetest.register_alias("regnum:boots_79", "3d_armor:ultraboots4") +minetest.register_alias("regnum:boots_80", "3d_armor:ultraboots5") +minetest.register_alias("regnum:boots_81", "3d_armor:ultraboots6") +minetest.register_alias("regnum:boots_82", "3d_armor:ultraboots7") +minetest.register_alias("regnum:boots_83", "3d_armor:ultraboots8") +minetest.register_alias("regnum:boots_84", "3d_armor:ultraboots9") +minetest.register_alias("regnum:boots_85", "3d_armor:ultraboots10") +minetest.register_alias("regnum:boots_86", "3d_armor:ultraboots11") +minetest.register_alias("regnum:boots_87", "3d_armor:ultraboots12") +minetest.register_alias("regnum:boots_88", "3d_armor:ultraboots13") +minetest.register_alias("regnum:boots_89", "3d_armor:ultraboots14") +minetest.register_alias("regnum:boots_90", "3d_armor:ultraboots15") +minetest.register_alias("regnum:boots_91", "3d_armor:ultraboots16") +minetest.register_alias("regnum:boots_92", "3d_armor:ultraboots17") +minetest.register_alias("regnum:boots_93", "3d_armor:ultraboots18") +minetest.register_alias("regnum:boots_94", "3d_armor:ultraboots19") +minetest.register_alias("regnum:boots_95", "3d_armor:ultraboots20") +minetest.register_alias("regnum:boots_96", "3d_armor:ultraboots21") +minetest.register_alias("regnum:boots_97", "3d_armor:ultraboots22") +minetest.register_alias("regnum:boots_98", "3d_armor:ultraboots23") +minetest.register_alias("regnum:boots_99", "3d_armor:ultraboots24") +minetest.register_alias("regnum:boots_100", "3d_armor:ultraboots25") +minetest.register_alias("regnum:boots_101", "3d_armor:superultraboots") +minetest.register_alias("regnum:boots_102", "3d_armor:arenaboots1") +minetest.register_alias("regnum:boots_103", "3d_armor:arenaboots2") +minetest.register_alias("regnum:boots_104", "3d_armor:arenaboots3") +minetest.register_alias("regnum:boots_105", "3d_armor:arenaboots4") +minetest.register_alias("regnum:boots_106", "3d_armor:titanboots1") +minetest.register_alias("regnum:boots_107", "3d_armor:titanboots2") +minetest.register_alias("regnum:boots_108", "3d_armor:titanboots3") +minetest.register_alias("regnum:boots_109", "3d_armor:titanboots4") +minetest.register_alias("regnum:boots_110", "3d_armor:titanboots5") +minetest.register_alias("regnum:boots_111", "3d_armor:titanboots6") +minetest.register_alias("regnum:boots_112", "3d_armor:titanboots7") +minetest.register_alias("regnum:boots_113", "3d_armor:titanboots8") +minetest.register_alias("regnum:boots_114", "3d_armor:titanboots9") +minetest.register_alias("regnum:boots_115", "3d_armor:titanboots10") +minetest.register_alias("regnum:boots_116", "3d_armor:legendenboots1") +minetest.register_alias("regnum:boots_117", "3d_armor:legendenboots2") +minetest.register_alias("regnum:boots_118", "3d_armor:legendenboots3") +minetest.register_alias("regnum:boots_119", "3d_armor:legendenboots4") +minetest.register_alias("regnum:boots_120", "3d_armor:legendenboots5") +minetest.register_alias("regnum:boots_121", "3d_armor:legendenboots6") +minetest.register_alias("regnum:boots_122", "3d_armor:superlegendenboots") +minetest.register_alias("regnum:boots_123", "3d_armor:regnumboots") + +minetest.register_alias("regnum:chestplate_0", "3d_armor:chestplate") +minetest.register_alias("regnum:chestplate_1", "3d_armor:chestplate_mega1") +minetest.register_alias("regnum:chestplate_2", "3d_armor:chestplate_mega2") +minetest.register_alias("regnum:chestplate_3", "3d_armor:chestplate_mega3") +minetest.register_alias("regnum:chestplate_4", "3d_armor:chestplate_mega4") +minetest.register_alias("regnum:chestplate_5", "3d_armor:chestplate_mega5") +minetest.register_alias("regnum:chestplate_6", "3d_armor:chestplate_mega6") +minetest.register_alias("regnum:chestplate_7", "3d_armor:chestplate_mega7") +minetest.register_alias("regnum:chestplate_8", "3d_armor:chestplate_mega8") +minetest.register_alias("regnum:chestplate_9", "3d_armor:chestplate_mega9") +minetest.register_alias("regnum:chestplate_10", "3d_armor:chestplate_mega10") +minetest.register_alias("regnum:chestplate_11", "3d_armor:chestplate_mega11") +minetest.register_alias("regnum:chestplate_12", "3d_armor:chestplate_mega12") +minetest.register_alias("regnum:chestplate_13", "3d_armor:chestplate_mega13") +minetest.register_alias("regnum:chestplate_14", "3d_armor:chestplate_mega14") +minetest.register_alias("regnum:chestplate_15", "3d_armor:chestplate_mega15") +minetest.register_alias("regnum:chestplate_16", "3d_armor:chestplate_mega16") +minetest.register_alias("regnum:chestplate_17", "3d_armor:chestplate_mega17") +minetest.register_alias("regnum:chestplate_18", "3d_armor:chestplate_mega18") +minetest.register_alias("regnum:chestplate_19", "3d_armor:chestplate_mega19") +minetest.register_alias("regnum:chestplate_20", "3d_armor:chestplate_mega20") +minetest.register_alias("regnum:chestplate_21", "3d_armor:cloudchestplate_mega1") +minetest.register_alias("regnum:chestplate_22", "3d_armor:cloudchestplate_mega2") +minetest.register_alias("regnum:chestplate_23", "3d_armor:cloudchestplate_mega3") +minetest.register_alias("regnum:chestplate_24", "3d_armor:cloudchestplate_mega4") +minetest.register_alias("regnum:chestplate_25", "3d_armor:cloudchestplate_mega5") +minetest.register_alias("regnum:chestplate_26", "3d_armor:cloudchestplate_mega6") +minetest.register_alias("regnum:chestplate_27", "3d_armor:cloudchestplate_mega7") +minetest.register_alias("regnum:chestplate_28", "3d_armor:cloudchestplate_mega8") +minetest.register_alias("regnum:chestplate_29", "3d_armor:cloudchestplate_mega9") +minetest.register_alias("regnum:chestplate_30", "3d_armor:cloudchestplate_mega10") +minetest.register_alias("regnum:chestplate_31", "3d_armor:cloudchestplate_mega11") +minetest.register_alias("regnum:chestplate_32", "3d_armor:cloudchestplate_mega12") +minetest.register_alias("regnum:chestplate_33", "3d_armor:cloudchestplate_mega13") +minetest.register_alias("regnum:chestplate_34", "3d_armor:cloudchestplate_mega14") +minetest.register_alias("regnum:chestplate_35", "3d_armor:cloudchestplate_mega15") +minetest.register_alias("regnum:chestplate_36", "3d_armor:cloudchestplate_mega16") +minetest.register_alias("regnum:chestplate_37", "3d_armor:cloudchestplate_mega17") +minetest.register_alias("regnum:chestplate_38", "3d_armor:cloudchestplate_mega18") +minetest.register_alias("regnum:chestplate_39", "3d_armor:cloudchestplate_mega19") +minetest.register_alias("regnum:chestplate_40", "3d_armor:cloudchestplate_mega20") +minetest.register_alias("regnum:chestplate_41", "3d_armor:cloudchestplate_mega21") +minetest.register_alias("regnum:chestplate_42", "3d_armor:cloudchestplate_mega22") +minetest.register_alias("regnum:chestplate_43", "3d_armor:cloudchestplate_mega23") +minetest.register_alias("regnum:chestplate_44", "3d_armor:cloudchestplate_mega24") +minetest.register_alias("regnum:chestplate_45", "3d_armor:cloudchestplate_mega25") +minetest.register_alias("regnum:chestplate_46", "3d_armor:superchestplate1") +minetest.register_alias("regnum:chestplate_47", "3d_armor:superchestplate2") +minetest.register_alias("regnum:chestplate_48", "3d_armor:superchestplate3") +minetest.register_alias("regnum:chestplate_49", "3d_armor:superchestplate4") +minetest.register_alias("regnum:chestplate_50", "3d_armor:uraniumchestplate1") +minetest.register_alias("regnum:chestplate_51", "3d_armor:uraniumchestplate2") +minetest.register_alias("regnum:chestplate_52", "3d_armor:energychestplate1") +minetest.register_alias("regnum:chestplate_53", "3d_armor:energychestplate2") +minetest.register_alias("regnum:chestplate_54", "3d_armor:energychestplate3") +minetest.register_alias("regnum:chestplate_55", "3d_armor:energychestplate4") +minetest.register_alias("regnum:chestplate_56", "3d_armor:energychestplate5") +minetest.register_alias("regnum:chestplate_57", "3d_armor:energychestplate6") +minetest.register_alias("regnum:chestplate_58", "3d_armor:energychestplate7") +minetest.register_alias("regnum:chestplate_59", "3d_armor:energychestplate8") +minetest.register_alias("regnum:chestplate_60", "3d_armor:energychestplate9") +minetest.register_alias("regnum:chestplate_61", "3d_armor:energychestplate10") +minetest.register_alias("regnum:chestplate_62", "3d_armor:energychestplate11") +minetest.register_alias("regnum:chestplate_63", "3d_armor:energychestplate12") +minetest.register_alias("regnum:chestplate_64", "3d_armor:superenergychestplate1") +minetest.register_alias("regnum:chestplate_65", "3d_armor:superenergychestplate2") +minetest.register_alias("regnum:chestplate_66", "3d_armor:superenergychestplate3") +minetest.register_alias("regnum:chestplate_67", "3d_armor:superenergychestplate4") +minetest.register_alias("regnum:chestplate_68", "3d_armor:superenergychestplate5") +minetest.register_alias("regnum:chestplate_69", "3d_armor:superenergychestplate6") +minetest.register_alias("regnum:chestplate_70", "3d_armor:superenergychestplate7") +minetest.register_alias("regnum:chestplate_71", "3d_armor:kristallchestplate1") +minetest.register_alias("regnum:chestplate_72", "3d_armor:kristallchestplate2") +minetest.register_alias("regnum:chestplate_73", "3d_armor:kristallchestplate3") +minetest.register_alias("regnum:chestplate_74", "3d_armor:kristallchestplate4") +minetest.register_alias("regnum:chestplate_75", "3d_armor:kristallchestplate5") +minetest.register_alias("regnum:chestplate_76", "3d_armor:ultrachestplate1") +minetest.register_alias("regnum:chestplate_77", "3d_armor:ultrachestplate2") +minetest.register_alias("regnum:chestplate_78", "3d_armor:ultrachestplate3") +minetest.register_alias("regnum:chestplate_79", "3d_armor:ultrachestplate4") +minetest.register_alias("regnum:chestplate_80", "3d_armor:ultrachestplate5") +minetest.register_alias("regnum:chestplate_81", "3d_armor:ultrachestplate6") +minetest.register_alias("regnum:chestplate_82", "3d_armor:ultrachestplate7") +minetest.register_alias("regnum:chestplate_83", "3d_armor:ultrachestplate8") +minetest.register_alias("regnum:chestplate_84", "3d_armor:ultrachestplate9") +minetest.register_alias("regnum:chestplate_85", "3d_armor:ultrachestplate10") +minetest.register_alias("regnum:chestplate_86", "3d_armor:ultrachestplate11") +minetest.register_alias("regnum:chestplate_87", "3d_armor:ultrachestplate12") +minetest.register_alias("regnum:chestplate_88", "3d_armor:ultrachestplate13") +minetest.register_alias("regnum:chestplate_89", "3d_armor:ultrachestplate14") +minetest.register_alias("regnum:chestplate_90", "3d_armor:ultrachestplate15") +minetest.register_alias("regnum:chestplate_91", "3d_armor:ultrachestplate16") +minetest.register_alias("regnum:chestplate_92", "3d_armor:ultrachestplate17") +minetest.register_alias("regnum:chestplate_93", "3d_armor:ultrachestplate18") +minetest.register_alias("regnum:chestplate_94", "3d_armor:ultrachestplate19") +minetest.register_alias("regnum:chestplate_95", "3d_armor:ultrachestplate20") +minetest.register_alias("regnum:chestplate_96", "3d_armor:ultrachestplate21") +minetest.register_alias("regnum:chestplate_97", "3d_armor:ultrachestplate22") +minetest.register_alias("regnum:chestplate_98", "3d_armor:ultrachestplate23") +minetest.register_alias("regnum:chestplate_99", "3d_armor:ultrachestplate24") +minetest.register_alias("regnum:chestplate_100", "3d_armor:ultrachestplate25") +minetest.register_alias("regnum:chestplate_101", "3d_armor:superultrachestplate") +minetest.register_alias("regnum:chestplate_102", "3d_armor:arenachestplate1") +minetest.register_alias("regnum:chestplate_103", "3d_armor:arenachestplate2") +minetest.register_alias("regnum:chestplate_104", "3d_armor:arenachestplate3") +minetest.register_alias("regnum:chestplate_105", "3d_armor:arenachestplate4") +minetest.register_alias("regnum:chestplate_106", "3d_armor:titanchestplate1") +minetest.register_alias("regnum:chestplate_107", "3d_armor:titanchestplate2") +minetest.register_alias("regnum:chestplate_108", "3d_armor:titanchestplate3") +minetest.register_alias("regnum:chestplate_109", "3d_armor:titanchestplate4") +minetest.register_alias("regnum:chestplate_110", "3d_armor:titanchestplate5") +minetest.register_alias("regnum:chestplate_111", "3d_armor:titanchestplate6") +minetest.register_alias("regnum:chestplate_112", "3d_armor:titanchestplate7") +minetest.register_alias("regnum:chestplate_113", "3d_armor:titanchestplate8") +minetest.register_alias("regnum:chestplate_114", "3d_armor:titanchestplate9") +minetest.register_alias("regnum:chestplate_115", "3d_armor:titanchestplate10") +minetest.register_alias("regnum:chestplate_116", "3d_armor:legendenchestplate1") +minetest.register_alias("regnum:chestplate_117", "3d_armor:legendenchestplate2") +minetest.register_alias("regnum:chestplate_118", "3d_armor:legendenchestplate3") +minetest.register_alias("regnum:chestplate_119", "3d_armor:legendenchestplate4") +minetest.register_alias("regnum:chestplate_120", "3d_armor:legendenchestplate5") +minetest.register_alias("regnum:chestplate_121", "3d_armor:legendenchestplate6") +minetest.register_alias("regnum:chestplate_122", "3d_armor:superlegendenchestplate") +minetest.register_alias("regnum:chestplate_123", "3d_armor:regnumchestplate") + +minetest.register_alias("regnum:helmet_0", "3d_armor:helmet") +minetest.register_alias("regnum:helmet_1", "3d_armor:helmet_mega1") +minetest.register_alias("regnum:helmet_2", "3d_armor:helmet_mega2") +minetest.register_alias("regnum:helmet_3", "3d_armor:helmet_mega3") +minetest.register_alias("regnum:helmet_4", "3d_armor:helmet_mega4") +minetest.register_alias("regnum:helmet_5", "3d_armor:helmet_mega5") +minetest.register_alias("regnum:helmet_6", "3d_armor:helmet_mega6") +minetest.register_alias("regnum:helmet_7", "3d_armor:helmet_mega7") +minetest.register_alias("regnum:helmet_8", "3d_armor:helmet_mega8") +minetest.register_alias("regnum:helmet_9", "3d_armor:helmet_mega9") +minetest.register_alias("regnum:helmet_10", "3d_armor:helmet_mega10") +minetest.register_alias("regnum:helmet_11", "3d_armor:helmet_mega11") +minetest.register_alias("regnum:helmet_12", "3d_armor:helmet_mega12") +minetest.register_alias("regnum:helmet_13", "3d_armor:helmet_mega13") +minetest.register_alias("regnum:helmet_14", "3d_armor:helmet_mega14") +minetest.register_alias("regnum:helmet_15", "3d_armor:helmet_mega15") +minetest.register_alias("regnum:helmet_16", "3d_armor:helmet_mega16") +minetest.register_alias("regnum:helmet_17", "3d_armor:helmet_mega17") +minetest.register_alias("regnum:helmet_18", "3d_armor:helmet_mega18") +minetest.register_alias("regnum:helmet_19", "3d_armor:helmet_mega19") +minetest.register_alias("regnum:helmet_20", "3d_armor:helmet_mega20") +minetest.register_alias("regnum:helmet_21", "3d_armor:cloudhelmet_mega1") +minetest.register_alias("regnum:helmet_22", "3d_armor:cloudhelmet_mega2") +minetest.register_alias("regnum:helmet_23", "3d_armor:cloudhelmet_mega3") +minetest.register_alias("regnum:helmet_24", "3d_armor:cloudhelmet_mega4") +minetest.register_alias("regnum:helmet_25", "3d_armor:cloudhelmet_mega5") +minetest.register_alias("regnum:helmet_26", "3d_armor:cloudhelmet_mega6") +minetest.register_alias("regnum:helmet_27", "3d_armor:cloudhelmet_mega7") +minetest.register_alias("regnum:helmet_28", "3d_armor:cloudhelmet_mega8") +minetest.register_alias("regnum:helmet_29", "3d_armor:cloudhelmet_mega9") +minetest.register_alias("regnum:helmet_30", "3d_armor:cloudhelmet_mega10") +minetest.register_alias("regnum:helmet_31", "3d_armor:cloudhelmet_mega11") +minetest.register_alias("regnum:helmet_32", "3d_armor:cloudhelmet_mega12") +minetest.register_alias("regnum:helmet_33", "3d_armor:cloudhelmet_mega13") +minetest.register_alias("regnum:helmet_34", "3d_armor:cloudhelmet_mega14") +minetest.register_alias("regnum:helmet_35", "3d_armor:cloudhelmet_mega15") +minetest.register_alias("regnum:helmet_36", "3d_armor:cloudhelmet_mega16") +minetest.register_alias("regnum:helmet_37", "3d_armor:cloudhelmet_mega17") +minetest.register_alias("regnum:helmet_38", "3d_armor:cloudhelmet_mega18") +minetest.register_alias("regnum:helmet_39", "3d_armor:cloudhelmet_mega19") +minetest.register_alias("regnum:helmet_40", "3d_armor:cloudhelmet_mega20") +minetest.register_alias("regnum:helmet_41", "3d_armor:cloudhelmet_mega21") +minetest.register_alias("regnum:helmet_42", "3d_armor:cloudhelmet_mega22") +minetest.register_alias("regnum:helmet_43", "3d_armor:cloudhelmet_mega23") +minetest.register_alias("regnum:helmet_44", "3d_armor:cloudhelmet_mega24") +minetest.register_alias("regnum:helmet_45", "3d_armor:cloudhelmet_mega25") +minetest.register_alias("regnum:helmet_46", "3d_armor:superhelmet1") +minetest.register_alias("regnum:helmet_47", "3d_armor:superhelmet2") +minetest.register_alias("regnum:helmet_48", "3d_armor:superhelmet3") +minetest.register_alias("regnum:helmet_49", "3d_armor:superhelmet4") +minetest.register_alias("regnum:helmet_50", "3d_armor:uraniumhelmet1") +minetest.register_alias("regnum:helmet_51", "3d_armor:uraniumhelmet2") +minetest.register_alias("regnum:helmet_52", "3d_armor:energyhelmet1") +minetest.register_alias("regnum:helmet_53", "3d_armor:energyhelmet2") +minetest.register_alias("regnum:helmet_54", "3d_armor:energyhelmet3") +minetest.register_alias("regnum:helmet_55", "3d_armor:energyhelmet4") +minetest.register_alias("regnum:helmet_56", "3d_armor:energyhelmet5") +minetest.register_alias("regnum:helmet_57", "3d_armor:energyhelmet6") +minetest.register_alias("regnum:helmet_58", "3d_armor:energyhelmet7") +minetest.register_alias("regnum:helmet_59", "3d_armor:energyhelmet8") +minetest.register_alias("regnum:helmet_60", "3d_armor:energyhelmet9") +minetest.register_alias("regnum:helmet_61", "3d_armor:energyhelmet10") +minetest.register_alias("regnum:helmet_62", "3d_armor:energyhelmet11") +minetest.register_alias("regnum:helmet_63", "3d_armor:energyhelmet12") +minetest.register_alias("regnum:helmet_64", "3d_armor:superenergyhelmet1") +minetest.register_alias("regnum:helmet_65", "3d_armor:superenergyhelmet2") +minetest.register_alias("regnum:helmet_66", "3d_armor:superenergyhelmet3") +minetest.register_alias("regnum:helmet_67", "3d_armor:superenergyhelmet4") +minetest.register_alias("regnum:helmet_68", "3d_armor:superenergyhelmet5") +minetest.register_alias("regnum:helmet_69", "3d_armor:superenergyhelmet6") +minetest.register_alias("regnum:helmet_70", "3d_armor:superenergyhelmet7") +minetest.register_alias("regnum:helmet_71", "3d_armor:kristallhelmet1") +minetest.register_alias("regnum:helmet_72", "3d_armor:kristallhelmet2") +minetest.register_alias("regnum:helmet_73", "3d_armor:kristallhelmet3") +minetest.register_alias("regnum:helmet_74", "3d_armor:kristallhelmet4") +minetest.register_alias("regnum:helmet_75", "3d_armor:kristallhelmet5") +minetest.register_alias("regnum:helmet_76", "3d_armor:ultrahelmet1") +minetest.register_alias("regnum:helmet_77", "3d_armor:ultrahelmet2") +minetest.register_alias("regnum:helmet_78", "3d_armor:ultrahelmet3") +minetest.register_alias("regnum:helmet_79", "3d_armor:ultrahelmet4") +minetest.register_alias("regnum:helmet_80", "3d_armor:ultrahelmet5") +minetest.register_alias("regnum:helmet_81", "3d_armor:ultrahelmet6") +minetest.register_alias("regnum:helmet_82", "3d_armor:ultrahelmet7") +minetest.register_alias("regnum:helmet_83", "3d_armor:ultrahelmet8") +minetest.register_alias("regnum:helmet_84", "3d_armor:ultrahelmet9") +minetest.register_alias("regnum:helmet_85", "3d_armor:ultrahelmet10") +minetest.register_alias("regnum:helmet_86", "3d_armor:ultrahelmet11") +minetest.register_alias("regnum:helmet_87", "3d_armor:ultrahelmet12") +minetest.register_alias("regnum:helmet_88", "3d_armor:ultrahelmet13") +minetest.register_alias("regnum:helmet_89", "3d_armor:ultrahelmet14") +minetest.register_alias("regnum:helmet_90", "3d_armor:ultrahelmet15") +minetest.register_alias("regnum:helmet_91", "3d_armor:ultrahelmet16") +minetest.register_alias("regnum:helmet_92", "3d_armor:ultrahelmet17") +minetest.register_alias("regnum:helmet_93", "3d_armor:ultrahelmet18") +minetest.register_alias("regnum:helmet_94", "3d_armor:ultrahelmet19") +minetest.register_alias("regnum:helmet_95", "3d_armor:ultrahelmet20") +minetest.register_alias("regnum:helmet_96", "3d_armor:ultrahelmet21") +minetest.register_alias("regnum:helmet_97", "3d_armor:ultrahelmet22") +minetest.register_alias("regnum:helmet_98", "3d_armor:ultrahelmet23") +minetest.register_alias("regnum:helmet_99", "3d_armor:ultrahelmet24") +minetest.register_alias("regnum:helmet_100", "3d_armor:ultrahelmet25") +minetest.register_alias("regnum:helmet_101", "3d_armor:superultrahelmet") +minetest.register_alias("regnum:helmet_102", "3d_armor:arenahelmet1") +minetest.register_alias("regnum:helmet_103", "3d_armor:arenahelmet2") +minetest.register_alias("regnum:helmet_104", "3d_armor:arenahelmet3") +minetest.register_alias("regnum:helmet_105", "3d_armor:arenahelmet4") +minetest.register_alias("regnum:helmet_106", "3d_armor:titanhelmet1") +minetest.register_alias("regnum:helmet_107", "3d_armor:titanhelmet2") +minetest.register_alias("regnum:helmet_108", "3d_armor:titanhelmet3") +minetest.register_alias("regnum:helmet_109", "3d_armor:titanhelmet4") +minetest.register_alias("regnum:helmet_110", "3d_armor:titanhelmet5") +minetest.register_alias("regnum:helmet_111", "3d_armor:titanhelmet6") +minetest.register_alias("regnum:helmet_112", "3d_armor:titanhelmet7") +minetest.register_alias("regnum:helmet_113", "3d_armor:titanhelmet8") +minetest.register_alias("regnum:helmet_114", "3d_armor:titanhelmet9") +minetest.register_alias("regnum:helmet_115", "3d_armor:titanhelmet10") +minetest.register_alias("regnum:helmet_116", "3d_armor:legendenhelmet1") +minetest.register_alias("regnum:helmet_117", "3d_armor:legendenhelmet2") +minetest.register_alias("regnum:helmet_118", "3d_armor:legendenhelmet3") +minetest.register_alias("regnum:helmet_119", "3d_armor:legendenhelmet4") +minetest.register_alias("regnum:helmet_120", "3d_armor:legendenhelmet5") +minetest.register_alias("regnum:helmet_121", "3d_armor:legendenhelmet6") +minetest.register_alias("regnum:helmet_122", "3d_armor:superlegendenhelmet") +minetest.register_alias("regnum:helmet_123", "3d_armor:regnumhelmet") + +minetest.register_alias("regnum:leggings_0", "3d_armor:leggings") +minetest.register_alias("regnum:leggings_1", "3d_armor:leggings_mega1") +minetest.register_alias("regnum:leggings_2", "3d_armor:leggings_mega2") +minetest.register_alias("regnum:leggings_3", "3d_armor:leggings_mega3") +minetest.register_alias("regnum:leggings_4", "3d_armor:leggings_mega4") +minetest.register_alias("regnum:leggings_5", "3d_armor:leggings_mega5") +minetest.register_alias("regnum:leggings_6", "3d_armor:leggings_mega6") +minetest.register_alias("regnum:leggings_7", "3d_armor:leggings_mega7") +minetest.register_alias("regnum:leggings_8", "3d_armor:leggings_mega8") +minetest.register_alias("regnum:leggings_9", "3d_armor:leggings_mega9") +minetest.register_alias("regnum:leggings_10", "3d_armor:leggings_mega10") +minetest.register_alias("regnum:leggings_11", "3d_armor:leggings_mega11") +minetest.register_alias("regnum:leggings_12", "3d_armor:leggings_mega12") +minetest.register_alias("regnum:leggings_13", "3d_armor:leggings_mega13") +minetest.register_alias("regnum:leggings_14", "3d_armor:leggings_mega14") +minetest.register_alias("regnum:leggings_15", "3d_armor:leggings_mega15") +minetest.register_alias("regnum:leggings_16", "3d_armor:leggings_mega16") +minetest.register_alias("regnum:leggings_17", "3d_armor:leggings_mega17") +minetest.register_alias("regnum:leggings_18", "3d_armor:leggings_mega18") +minetest.register_alias("regnum:leggings_19", "3d_armor:leggings_mega19") +minetest.register_alias("regnum:leggings_20", "3d_armor:leggings_mega20") +minetest.register_alias("regnum:leggings_21", "3d_armor:cloudleggings_mega1") +minetest.register_alias("regnum:leggings_22", "3d_armor:cloudleggings_mega2") +minetest.register_alias("regnum:leggings_23", "3d_armor:cloudleggings_mega3") +minetest.register_alias("regnum:leggings_24", "3d_armor:cloudleggings_mega4") +minetest.register_alias("regnum:leggings_25", "3d_armor:cloudleggings_mega5") +minetest.register_alias("regnum:leggings_26", "3d_armor:cloudleggings_mega6") +minetest.register_alias("regnum:leggings_27", "3d_armor:cloudleggings_mega7") +minetest.register_alias("regnum:leggings_28", "3d_armor:cloudleggings_mega8") +minetest.register_alias("regnum:leggings_29", "3d_armor:cloudleggings_mega9") +minetest.register_alias("regnum:leggings_30", "3d_armor:cloudleggings_mega10") +minetest.register_alias("regnum:leggings_31", "3d_armor:cloudleggings_mega11") +minetest.register_alias("regnum:leggings_32", "3d_armor:cloudleggings_mega12") +minetest.register_alias("regnum:leggings_33", "3d_armor:cloudleggings_mega13") +minetest.register_alias("regnum:leggings_34", "3d_armor:cloudleggings_mega14") +minetest.register_alias("regnum:leggings_35", "3d_armor:cloudleggings_mega15") +minetest.register_alias("regnum:leggings_36", "3d_armor:cloudleggings_mega16") +minetest.register_alias("regnum:leggings_37", "3d_armor:cloudleggings_mega17") +minetest.register_alias("regnum:leggings_38", "3d_armor:cloudleggings_mega18") +minetest.register_alias("regnum:leggings_39", "3d_armor:cloudleggings_mega19") +minetest.register_alias("regnum:leggings_40", "3d_armor:cloudleggings_mega20") +minetest.register_alias("regnum:leggings_41", "3d_armor:cloudleggings_mega21") +minetest.register_alias("regnum:leggings_42", "3d_armor:cloudleggings_mega22") +minetest.register_alias("regnum:leggings_43", "3d_armor:cloudleggings_mega23") +minetest.register_alias("regnum:leggings_44", "3d_armor:cloudleggings_mega24") +minetest.register_alias("regnum:leggings_45", "3d_armor:cloudleggings_mega25") +minetest.register_alias("regnum:leggings_46", "3d_armor:superleggings1") +minetest.register_alias("regnum:leggings_47", "3d_armor:superleggings2") +minetest.register_alias("regnum:leggings_48", "3d_armor:superleggings3") +minetest.register_alias("regnum:leggings_49", "3d_armor:superleggings4") +minetest.register_alias("regnum:leggings_50", "3d_armor:uraniumleggings1") +minetest.register_alias("regnum:leggings_51", "3d_armor:uraniumleggings2") +minetest.register_alias("regnum:leggings_52", "3d_armor:energyleggings1") +minetest.register_alias("regnum:leggings_53", "3d_armor:energyleggings2") +minetest.register_alias("regnum:leggings_54", "3d_armor:energyleggings3") +minetest.register_alias("regnum:leggings_55", "3d_armor:energyleggings4") +minetest.register_alias("regnum:leggings_56", "3d_armor:energyleggings5") +minetest.register_alias("regnum:leggings_57", "3d_armor:energyleggings6") +minetest.register_alias("regnum:leggings_58", "3d_armor:energyleggings7") +minetest.register_alias("regnum:leggings_59", "3d_armor:energyleggings8") +minetest.register_alias("regnum:leggings_60", "3d_armor:energyleggings9") +minetest.register_alias("regnum:leggings_61", "3d_armor:energyleggings10") +minetest.register_alias("regnum:leggings_62", "3d_armor:energyleggings11") +minetest.register_alias("regnum:leggings_63", "3d_armor:energyleggings12") +minetest.register_alias("regnum:leggings_64", "3d_armor:superenergyleggings1") +minetest.register_alias("regnum:leggings_65", "3d_armor:superenergyleggings2") +minetest.register_alias("regnum:leggings_66", "3d_armor:superenergyleggings3") +minetest.register_alias("regnum:leggings_67", "3d_armor:superenergyleggings4") +minetest.register_alias("regnum:leggings_68", "3d_armor:superenergyleggings5") +minetest.register_alias("regnum:leggings_69", "3d_armor:superenergyleggings6") +minetest.register_alias("regnum:leggings_70", "3d_armor:superenergyleggings7") +minetest.register_alias("regnum:leggings_71", "3d_armor:kristallleggings1") +minetest.register_alias("regnum:leggings_72", "3d_armor:kristallleggings2") +minetest.register_alias("regnum:leggings_73", "3d_armor:kristallleggings3") +minetest.register_alias("regnum:leggings_74", "3d_armor:kristallleggings4") +minetest.register_alias("regnum:leggings_75", "3d_armor:kristallleggings5") +minetest.register_alias("regnum:leggings_76", "3d_armor:ultraleggings1") +minetest.register_alias("regnum:leggings_77", "3d_armor:ultraleggings2") +minetest.register_alias("regnum:leggings_78", "3d_armor:ultraleggings3") +minetest.register_alias("regnum:leggings_79", "3d_armor:ultraleggings4") +minetest.register_alias("regnum:leggings_80", "3d_armor:ultraleggings5") +minetest.register_alias("regnum:leggings_81", "3d_armor:ultraleggings6") +minetest.register_alias("regnum:leggings_82", "3d_armor:ultraleggings7") +minetest.register_alias("regnum:leggings_83", "3d_armor:ultraleggings8") +minetest.register_alias("regnum:leggings_84", "3d_armor:ultraleggings9") +minetest.register_alias("regnum:leggings_85", "3d_armor:ultraleggings10") +minetest.register_alias("regnum:leggings_86", "3d_armor:ultraleggings11") +minetest.register_alias("regnum:leggings_87", "3d_armor:ultraleggings12") +minetest.register_alias("regnum:leggings_88", "3d_armor:ultraleggings13") +minetest.register_alias("regnum:leggings_89", "3d_armor:ultraleggings14") +minetest.register_alias("regnum:leggings_90", "3d_armor:ultraleggings15") +minetest.register_alias("regnum:leggings_91", "3d_armor:ultraleggings16") +minetest.register_alias("regnum:leggings_92", "3d_armor:ultraleggings17") +minetest.register_alias("regnum:leggings_93", "3d_armor:ultraleggings18") +minetest.register_alias("regnum:leggings_94", "3d_armor:ultraleggings19") +minetest.register_alias("regnum:leggings_95", "3d_armor:ultraleggings20") +minetest.register_alias("regnum:leggings_96", "3d_armor:ultraleggings21") +minetest.register_alias("regnum:leggings_97", "3d_armor:ultraleggings22") +minetest.register_alias("regnum:leggings_98", "3d_armor:ultraleggings23") +minetest.register_alias("regnum:leggings_99", "3d_armor:ultraleggings24") +minetest.register_alias("regnum:leggings_100", "3d_armor:ultraleggings25") +minetest.register_alias("regnum:leggings_101", "3d_armor:superultraleggings") +minetest.register_alias("regnum:leggings_102", "3d_armor:arenaleggings1") +minetest.register_alias("regnum:leggings_103", "3d_armor:arenaleggings2") +minetest.register_alias("regnum:leggings_104", "3d_armor:arenaleggings3") +minetest.register_alias("regnum:leggings_105", "3d_armor:arenaleggings4") +minetest.register_alias("regnum:leggings_106", "3d_armor:titanleggings1") +minetest.register_alias("regnum:leggings_107", "3d_armor:titanleggings2") +minetest.register_alias("regnum:leggings_108", "3d_armor:titanleggings3") +minetest.register_alias("regnum:leggings_109", "3d_armor:titanleggings4") +minetest.register_alias("regnum:leggings_110", "3d_armor:titanleggings5") +minetest.register_alias("regnum:leggings_111", "3d_armor:titanleggings6") +minetest.register_alias("regnum:leggings_112", "3d_armor:titanleggings7") +minetest.register_alias("regnum:leggings_113", "3d_armor:titanleggings8") +minetest.register_alias("regnum:leggings_114", "3d_armor:titanleggings9") +minetest.register_alias("regnum:leggings_115", "3d_armor:titanleggings10") +minetest.register_alias("regnum:leggings_116", "3d_armor:legendenleggings1") +minetest.register_alias("regnum:leggings_117", "3d_armor:legendenleggings2") +minetest.register_alias("regnum:leggings_118", "3d_armor:legendenleggings3") +minetest.register_alias("regnum:leggings_119", "3d_armor:legendenleggings4") +minetest.register_alias("regnum:leggings_120", "3d_armor:legendenleggings5") +minetest.register_alias("regnum:leggings_121", "3d_armor:legendenleggings6") +minetest.register_alias("regnum:leggings_122", "3d_armor:superlegendenleggings") +minetest.register_alias("regnum:leggings_123", "3d_armor:regnumleggings") + +minetest.register_alias("regnum:shield_0", "shields:shield") +minetest.register_alias("regnum:shield_1", "shields:shield_mega1") +minetest.register_alias("regnum:shield_2", "shields:shield_mega2") +minetest.register_alias("regnum:shield_3", "shields:shield_mega3") +minetest.register_alias("regnum:shield_4", "shields:shield_mega4") +minetest.register_alias("regnum:shield_5", "shields:shield_mega5") +minetest.register_alias("regnum:shield_6", "shields:shield_mega6") +minetest.register_alias("regnum:shield_7", "shields:shield_mega7") +minetest.register_alias("regnum:shield_8", "shields:shield_mega8") +minetest.register_alias("regnum:shield_9", "shields:shield_mega9") +minetest.register_alias("regnum:shield_10", "shields:shield_mega10") +minetest.register_alias("regnum:shield_11", "shields:shield_mega11") +minetest.register_alias("regnum:shield_12", "shields:shield_mega12") +minetest.register_alias("regnum:shield_13", "shields:shield_mega13") +minetest.register_alias("regnum:shield_14", "shields:shield_mega14") +minetest.register_alias("regnum:shield_15", "shields:shield_mega15") +minetest.register_alias("regnum:shield_16", "shields:shield_mega16") +minetest.register_alias("regnum:shield_17", "shields:shield_mega17") +minetest.register_alias("regnum:shield_18", "shields:shield_mega18") +minetest.register_alias("regnum:shield_19", "shields:shield_mega19") +minetest.register_alias("regnum:shield_20", "shields:shield_mega20") +minetest.register_alias("regnum:shield_21", "shields:cloudshield_mega1") +minetest.register_alias("regnum:shield_22", "shields:cloudshield_mega2") +minetest.register_alias("regnum:shield_23", "shields:cloudshield_mega3") +minetest.register_alias("regnum:shield_24", "shields:cloudshield_mega4") +minetest.register_alias("regnum:shield_25", "shields:cloudshield_mega5") +minetest.register_alias("regnum:shield_26", "shields:cloudshield_mega6") +minetest.register_alias("regnum:shield_27", "shields:cloudshield_mega7") +minetest.register_alias("regnum:shield_28", "shields:cloudshield_mega8") +minetest.register_alias("regnum:shield_29", "shields:cloudshield_mega9") +minetest.register_alias("regnum:shield_30", "shields:cloudshield_mega10") +minetest.register_alias("regnum:shield_31", "shields:cloudshield_mega11") +minetest.register_alias("regnum:shield_32", "shields:cloudshield_mega12") +minetest.register_alias("regnum:shield_33", "shields:cloudshield_mega13") +minetest.register_alias("regnum:shield_34", "shields:cloudshield_mega14") +minetest.register_alias("regnum:shield_35", "shields:cloudshield_mega15") +minetest.register_alias("regnum:shield_36", "shields:cloudshield_mega16") +minetest.register_alias("regnum:shield_37", "shields:cloudshield_mega17") +minetest.register_alias("regnum:shield_38", "shields:cloudshield_mega18") +minetest.register_alias("regnum:shield_39", "shields:cloudshield_mega19") +minetest.register_alias("regnum:shield_40", "shields:cloudshield_mega20") +minetest.register_alias("regnum:shield_41", "shields:cloudshield_mega21") +minetest.register_alias("regnum:shield_42", "shields:cloudshield_mega22") +minetest.register_alias("regnum:shield_43", "shields:cloudshield_mega23") +minetest.register_alias("regnum:shield_44", "shields:cloudshield_mega24") +minetest.register_alias("regnum:shield_45", "shields:cloudshield_mega25") +minetest.register_alias("regnum:shield_46", "shields:supershield1") +minetest.register_alias("regnum:shield_47", "shields:supershield2") +minetest.register_alias("regnum:shield_48", "shields:supershield3") +minetest.register_alias("regnum:shield_49", "shields:supershield4") +minetest.register_alias("regnum:shield_50", "shields:uraniumshield1") +minetest.register_alias("regnum:shield_51", "shields:uraniumshield2") +minetest.register_alias("regnum:shield_52", "shields:energyshield1") +minetest.register_alias("regnum:shield_53", "shields:energyshield2") +minetest.register_alias("regnum:shield_54", "shields:energyshield3") +minetest.register_alias("regnum:shield_55", "shields:energyshield4") +minetest.register_alias("regnum:shield_56", "shields:energyshield5") +minetest.register_alias("regnum:shield_57", "shields:energyshield6") +minetest.register_alias("regnum:shield_58", "shields:energyshield7") +minetest.register_alias("regnum:shield_59", "shields:energyshield8") +minetest.register_alias("regnum:shield_60", "shields:energyshield9") +minetest.register_alias("regnum:shield_61", "shields:energyshield10") +minetest.register_alias("regnum:shield_62", "shields:energyshield11") +minetest.register_alias("regnum:shield_63", "shields:energyshield12") +minetest.register_alias("regnum:shield_64", "shields:superenergyshield1") +minetest.register_alias("regnum:shield_65", "shields:superenergyshield2") +minetest.register_alias("regnum:shield_66", "shields:superenergyshield3") +minetest.register_alias("regnum:shield_67", "shields:superenergyshield4") +minetest.register_alias("regnum:shield_68", "shields:superenergyshield5") +minetest.register_alias("regnum:shield_69", "shields:superenergyshield6") +minetest.register_alias("regnum:shield_70", "shields:superenergyshield7") +minetest.register_alias("regnum:shield_71", "shields:kristallshield1") +minetest.register_alias("regnum:shield_72", "shields:kristallshield2") +minetest.register_alias("regnum:shield_73", "shields:kristallshield3") +minetest.register_alias("regnum:shield_74", "shields:kristallshield4") +minetest.register_alias("regnum:shield_75", "shields:kristallshield5") +minetest.register_alias("regnum:shield_76", "shields:ultrashield1") +minetest.register_alias("regnum:shield_77", "shields:ultrashield2") +minetest.register_alias("regnum:shield_78", "shields:ultrashield3") +minetest.register_alias("regnum:shield_79", "shields:ultrashield4") +minetest.register_alias("regnum:shield_80", "shields:ultrashield5") +minetest.register_alias("regnum:shield_81", "shields:ultrashield6") +minetest.register_alias("regnum:shield_82", "shields:ultrashield7") +minetest.register_alias("regnum:shield_83", "shields:ultrashield8") +minetest.register_alias("regnum:shield_84", "shields:ultrashield9") +minetest.register_alias("regnum:shield_85", "shields:ultrashield10") +minetest.register_alias("regnum:shield_86", "shields:ultrashield11") +minetest.register_alias("regnum:shield_87", "shields:ultrashield12") +minetest.register_alias("regnum:shield_88", "shields:ultrashield13") +minetest.register_alias("regnum:shield_89", "shields:ultrashield14") +minetest.register_alias("regnum:shield_90", "shields:ultrashield15") +minetest.register_alias("regnum:shield_91", "shields:ultrashield16") +minetest.register_alias("regnum:shield_92", "shields:ultrashield17") +minetest.register_alias("regnum:shield_93", "shields:ultrashield18") +minetest.register_alias("regnum:shield_94", "shields:ultrashield19") +minetest.register_alias("regnum:shield_95", "shields:ultrashield20") +minetest.register_alias("regnum:shield_96", "shields:ultrashield21") +minetest.register_alias("regnum:shield_97", "shields:ultrashield22") +minetest.register_alias("regnum:shield_98", "shields:ultrashield23") +minetest.register_alias("regnum:shield_99", "shields:ultrashield24") +minetest.register_alias("regnum:shield_100", "shields:ultrashield25") +minetest.register_alias("regnum:shield_101", "shields:superultrashield") +minetest.register_alias("regnum:shield_102", "shields:arenashield1") +minetest.register_alias("regnum:shield_103", "shields:arenashield2") +minetest.register_alias("regnum:shield_104", "shields:arenashield3") +minetest.register_alias("regnum:shield_105", "shields:arenashield4") +minetest.register_alias("regnum:shield_106", "shields:titanshield1") +minetest.register_alias("regnum:shield_107", "shields:titanshield2") +minetest.register_alias("regnum:shield_108", "shields:titanshield3") +minetest.register_alias("regnum:shield_109", "shields:titanshield4") +minetest.register_alias("regnum:shield_110", "shields:titanshield5") +minetest.register_alias("regnum:shield_111", "shields:titanshield6") +minetest.register_alias("regnum:shield_112", "shields:titanshield7") +minetest.register_alias("regnum:shield_113", "shields:titanshield8") +minetest.register_alias("regnum:shield_114", "shields:titanshield9") +minetest.register_alias("regnum:shield_115", "shields:titanshield10") +minetest.register_alias("regnum:shield_116", "shields:legendenshield1") +minetest.register_alias("regnum:shield_117", "shields:legendenshield2") +minetest.register_alias("regnum:shield_118", "shields:legendenshield3") +minetest.register_alias("regnum:shield_119", "shields:legendenshield4") +minetest.register_alias("regnum:shield_120", "shields:legendenshield5") +minetest.register_alias("regnum:shield_121", "shields:legendenshield6") +minetest.register_alias("regnum:shield_122", "shields:superlegendenshield") +minetest.register_alias("regnum:shield_123", "shields:regnumshield") + +minetest.register_alias("regnum:gun_0", "tutorial:gun") +minetest.register_alias("regnum:gun_1", "tutorial:gun_mega1") +minetest.register_alias("regnum:gun_2", "tutorial:gun_mega2") +minetest.register_alias("regnum:gun_3", "tutorial:gun_mega3") +minetest.register_alias("regnum:gun_4", "tutorial:gun_mega4") +minetest.register_alias("regnum:gun_5", "tutorial:gun_mega5") +minetest.register_alias("regnum:gun_6", "tutorial:gun_mega6") +minetest.register_alias("regnum:gun_7", "tutorial:gun_mega7") +minetest.register_alias("regnum:gun_8", "tutorial:gun_mega8") +minetest.register_alias("regnum:gun_9", "tutorial:gun_mega9") +minetest.register_alias("regnum:gun_10", "tutorial:gun_mega10") +minetest.register_alias("regnum:gun_11", "tutorial:gun_mega11") +minetest.register_alias("regnum:gun_12", "tutorial:gun_mega12") +minetest.register_alias("regnum:gun_13", "tutorial:gun_mega13") +minetest.register_alias("regnum:gun_14", "tutorial:gun_mega14") +minetest.register_alias("regnum:gun_15", "tutorial:gun_mega15") +minetest.register_alias("regnum:gun_16", "tutorial:gun_mega16") +minetest.register_alias("regnum:gun_17", "tutorial:gun_mega17") +minetest.register_alias("regnum:gun_18", "tutorial:gun_mega18") +minetest.register_alias("regnum:gun_19", "tutorial:gun_mega19") +minetest.register_alias("regnum:gun_20", "tutorial:gun_mega20") +minetest.register_alias("regnum:gun_21", "tutorial:cloudgun_mega1") +minetest.register_alias("regnum:gun_22", "tutorial:cloudgun_mega2") +minetest.register_alias("regnum:gun_23", "tutorial:cloudgun_mega3") +minetest.register_alias("regnum:gun_24", "tutorial:cloudgun_mega4") +minetest.register_alias("regnum:gun_25", "tutorial:cloudgun_mega5") +minetest.register_alias("regnum:gun_26", "tutorial:cloudgun_mega6") +minetest.register_alias("regnum:gun_27", "tutorial:cloudgun_mega7") +minetest.register_alias("regnum:gun_28", "tutorial:cloudgun_mega8") +minetest.register_alias("regnum:gun_29", "tutorial:cloudgun_mega9") +minetest.register_alias("regnum:gun_30", "tutorial:cloudgun_mega10") +minetest.register_alias("regnum:gun_31", "tutorial:cloudgun_mega11") +minetest.register_alias("regnum:gun_32", "tutorial:cloudgun_mega12") +minetest.register_alias("regnum:gun_33", "tutorial:cloudgun_mega13") +minetest.register_alias("regnum:gun_34", "tutorial:cloudgun_mega14") +minetest.register_alias("regnum:gun_35", "tutorial:cloudgun_mega15") +minetest.register_alias("regnum:gun_36", "tutorial:cloudgun_mega16") +minetest.register_alias("regnum:gun_37", "tutorial:cloudgun_mega17") +minetest.register_alias("regnum:gun_38", "tutorial:cloudgun_mega18") +minetest.register_alias("regnum:gun_39", "tutorial:cloudgun_mega19") +minetest.register_alias("regnum:gun_40", "tutorial:cloudgun_mega20") +minetest.register_alias("regnum:gun_41", "tutorial:cloudgun_mega21") +minetest.register_alias("regnum:gun_42", "tutorial:cloudgun_mega22") +minetest.register_alias("regnum:gun_43", "tutorial:cloudgun_mega23") +minetest.register_alias("regnum:gun_44", "tutorial:cloudgun_mega24") +minetest.register_alias("regnum:gun_45", "tutorial:cloudgun_mega25") +minetest.register_alias("regnum:gun_46", "tutorial:supergun1") +minetest.register_alias("regnum:gun_47", "tutorial:supergun2") +minetest.register_alias("regnum:gun_48", "tutorial:supergun3") +minetest.register_alias("regnum:gun_49", "tutorial:supergun4") +minetest.register_alias("regnum:gun_50", "tutorial:uraniumgun1") +minetest.register_alias("regnum:gun_51", "tutorial:uraniumgun2") +minetest.register_alias("regnum:gun_52", "tutorial:energygun1") +minetest.register_alias("regnum:gun_53", "tutorial:energygun2") +minetest.register_alias("regnum:gun_54", "tutorial:energygun3") +minetest.register_alias("regnum:gun_55", "tutorial:energygun4") +minetest.register_alias("regnum:gun_56", "tutorial:energygun5") +minetest.register_alias("regnum:gun_57", "tutorial:energygun6") +minetest.register_alias("regnum:gun_58", "tutorial:energygun7") +minetest.register_alias("regnum:gun_59", "tutorial:energygun8") +minetest.register_alias("regnum:gun_60", "tutorial:energygun9") +minetest.register_alias("regnum:gun_61", "tutorial:energygun10") +minetest.register_alias("regnum:gun_62", "tutorial:energygun11") +minetest.register_alias("regnum:gun_63", "tutorial:energygun12") +minetest.register_alias("regnum:gun_64", "tutorial:superenergygun1") +minetest.register_alias("regnum:gun_65", "tutorial:superenergygun2") +minetest.register_alias("regnum:gun_66", "tutorial:superenergygun3") +minetest.register_alias("regnum:gun_67", "tutorial:superenergygun4") +minetest.register_alias("regnum:gun_68", "tutorial:superenergygun5") +minetest.register_alias("regnum:gun_69", "tutorial:superenergygun6") +minetest.register_alias("regnum:gun_70", "tutorial:superenergygun7") +minetest.register_alias("regnum:gun_71", "tutorial:kristallgun1") +minetest.register_alias("regnum:gun_72", "tutorial:kristallgun2") +minetest.register_alias("regnum:gun_73", "tutorial:kristallgun3") +minetest.register_alias("regnum:gun_74", "tutorial:kristallgun4") +minetest.register_alias("regnum:gun_75", "tutorial:kristallgun5") +minetest.register_alias("regnum:gun_76", "tutorial:ultragun1") +minetest.register_alias("regnum:gun_77", "tutorial:ultragun2") +minetest.register_alias("regnum:gun_78", "tutorial:ultragun3") +minetest.register_alias("regnum:gun_79", "tutorial:ultragun4") +minetest.register_alias("regnum:gun_80", "tutorial:ultragun5") +minetest.register_alias("regnum:gun_81", "tutorial:ultragun6") +minetest.register_alias("regnum:gun_82", "tutorial:ultragun7") +minetest.register_alias("regnum:gun_83", "tutorial:ultragun8") +minetest.register_alias("regnum:gun_84", "tutorial:ultragun9") +minetest.register_alias("regnum:gun_85", "tutorial:ultragun10") +minetest.register_alias("regnum:gun_86", "tutorial:ultragun11") +minetest.register_alias("regnum:gun_87", "tutorial:ultragun12") +minetest.register_alias("regnum:gun_88", "tutorial:ultragun13") +minetest.register_alias("regnum:gun_89", "tutorial:ultragun14") +minetest.register_alias("regnum:gun_90", "tutorial:ultragun15") +minetest.register_alias("regnum:gun_91", "tutorial:ultragun16") +minetest.register_alias("regnum:gun_92", "tutorial:ultragun17") +minetest.register_alias("regnum:gun_93", "tutorial:ultragun18") +minetest.register_alias("regnum:gun_94", "tutorial:ultragun19") +minetest.register_alias("regnum:gun_95", "tutorial:ultragun20") +minetest.register_alias("regnum:gun_96", "tutorial:ultragun21") +minetest.register_alias("regnum:gun_97", "tutorial:ultragun22") +minetest.register_alias("regnum:gun_98", "tutorial:ultragun23") +minetest.register_alias("regnum:gun_99", "tutorial:ultragun24") +minetest.register_alias("regnum:gun_100", "tutorial:ultragun25") +minetest.register_alias("regnum:gun_101", "tutorial:ultragun") +minetest.register_alias("regnum:gun_102", "tutorial:arenagun1") +minetest.register_alias("regnum:gun_103", "tutorial:arenagun2") +minetest.register_alias("regnum:gun_104", "tutorial:arenagun3") +minetest.register_alias("regnum:gun_105", "tutorial:arenagun4") +minetest.register_alias("regnum:gun_106", "tutorial:titangun1") +minetest.register_alias("regnum:gun_107", "tutorial:titangun2") +minetest.register_alias("regnum:gun_108", "tutorial:titangun3") +minetest.register_alias("regnum:gun_109", "tutorial:titangun4") +minetest.register_alias("regnum:gun_110", "tutorial:titangun5") +minetest.register_alias("regnum:gun_111", "tutorial:titangun6") +minetest.register_alias("regnum:gun_112", "tutorial:titangun7") +minetest.register_alias("regnum:gun_113", "tutorial:titangun8") +minetest.register_alias("regnum:gun_114", "tutorial:titangun9") +minetest.register_alias("regnum:gun_115", "tutorial:titangun10") +minetest.register_alias("regnum:gun_116", "tutorial:legendengun1") +minetest.register_alias("regnum:gun_117", "tutorial:legendengun2") +minetest.register_alias("regnum:gun_118", "tutorial:legendengun3") +minetest.register_alias("regnum:gun_119", "tutorial:legendengun4") +minetest.register_alias("regnum:gun_120", "tutorial:legendengun5") +minetest.register_alias("regnum:gun_121", "tutorial:legendengun6") +minetest.register_alias("regnum:gun_122", "tutorial:superlegendengun1") +minetest.register_alias("regnum:gun_123", "tutorial:regnumgun1") \ No newline at end of file diff --git a/mods/tutorial/sounds/mummy.1.ogg b/mods/tutorial/sounds/mummy.1.ogg new file mode 100644 index 0000000..cc9ae67 Binary files /dev/null and b/mods/tutorial/sounds/mummy.1.ogg differ diff --git a/mods/tutorial/sounds/mummy.2.ogg b/mods/tutorial/sounds/mummy.2.ogg new file mode 100644 index 0000000..2fcb5fa Binary files /dev/null and b/mods/tutorial/sounds/mummy.2.ogg differ diff --git a/mods/tutorial/sounds/mummy_death.1.ogg b/mods/tutorial/sounds/mummy_death.1.ogg new file mode 100644 index 0000000..03902e1 Binary files /dev/null and b/mods/tutorial/sounds/mummy_death.1.ogg differ diff --git a/mods/tutorial/sounds/mummy_hurt.1.ogg b/mods/tutorial/sounds/mummy_hurt.1.ogg new file mode 100644 index 0000000..6548fa7 Binary files /dev/null and b/mods/tutorial/sounds/mummy_hurt.1.ogg differ diff --git a/mods/tutorial/textures/artifacts_blau1.png b/mods/tutorial/textures/artifacts_blau1.png new file mode 100644 index 0000000..2ea700b Binary files /dev/null and b/mods/tutorial/textures/artifacts_blau1.png differ diff --git a/mods/tutorial/textures/artifacts_blau2.png b/mods/tutorial/textures/artifacts_blau2.png new file mode 100644 index 0000000..31fec1a Binary files /dev/null and b/mods/tutorial/textures/artifacts_blau2.png differ diff --git a/mods/tutorial/textures/artifacts_cyan1.png b/mods/tutorial/textures/artifacts_cyan1.png new file mode 100644 index 0000000..80a31cd Binary files /dev/null and b/mods/tutorial/textures/artifacts_cyan1.png differ diff --git a/mods/tutorial/textures/artifacts_cyan2.png b/mods/tutorial/textures/artifacts_cyan2.png new file mode 100644 index 0000000..62e8e31 Binary files /dev/null and b/mods/tutorial/textures/artifacts_cyan2.png differ diff --git a/mods/tutorial/textures/artifacts_gelb1.png b/mods/tutorial/textures/artifacts_gelb1.png new file mode 100644 index 0000000..12de94b Binary files /dev/null and b/mods/tutorial/textures/artifacts_gelb1.png differ diff --git a/mods/tutorial/textures/artifacts_gelb2.png b/mods/tutorial/textures/artifacts_gelb2.png new file mode 100644 index 0000000..1efad46 Binary files /dev/null and b/mods/tutorial/textures/artifacts_gelb2.png differ diff --git a/mods/tutorial/textures/artifacts_grau1.png b/mods/tutorial/textures/artifacts_grau1.png new file mode 100644 index 0000000..9fc5493 Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau1.png differ diff --git a/mods/tutorial/textures/artifacts_grau10.png b/mods/tutorial/textures/artifacts_grau10.png new file mode 100644 index 0000000..9fb460a Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau10.png differ diff --git a/mods/tutorial/textures/artifacts_grau11.png b/mods/tutorial/textures/artifacts_grau11.png new file mode 100644 index 0000000..d6dee3c Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau11.png differ diff --git a/mods/tutorial/textures/artifacts_grau2.png b/mods/tutorial/textures/artifacts_grau2.png new file mode 100644 index 0000000..f18b3d1 Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau2.png differ diff --git a/mods/tutorial/textures/artifacts_grau3.png b/mods/tutorial/textures/artifacts_grau3.png new file mode 100644 index 0000000..db3c284 Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau3.png differ diff --git a/mods/tutorial/textures/artifacts_grau4.png b/mods/tutorial/textures/artifacts_grau4.png new file mode 100644 index 0000000..58a2bdb Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau4.png differ diff --git a/mods/tutorial/textures/artifacts_grau5.png b/mods/tutorial/textures/artifacts_grau5.png new file mode 100644 index 0000000..56f05f5 Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau5.png differ diff --git a/mods/tutorial/textures/artifacts_grau6.png b/mods/tutorial/textures/artifacts_grau6.png new file mode 100644 index 0000000..60923c9 Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau6.png differ diff --git a/mods/tutorial/textures/artifacts_grau7.png b/mods/tutorial/textures/artifacts_grau7.png new file mode 100644 index 0000000..1dbec69 Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau7.png differ diff --git a/mods/tutorial/textures/artifacts_grau8.png b/mods/tutorial/textures/artifacts_grau8.png new file mode 100644 index 0000000..86f4395 Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau8.png differ diff --git a/mods/tutorial/textures/artifacts_grau9.png b/mods/tutorial/textures/artifacts_grau9.png new file mode 100644 index 0000000..6b57d94 Binary files /dev/null and b/mods/tutorial/textures/artifacts_grau9.png differ diff --git a/mods/tutorial/textures/artifacts_gruen1.png b/mods/tutorial/textures/artifacts_gruen1.png new file mode 100644 index 0000000..1cc87a6 Binary files /dev/null and b/mods/tutorial/textures/artifacts_gruen1.png differ diff --git a/mods/tutorial/textures/artifacts_gruen2.png b/mods/tutorial/textures/artifacts_gruen2.png new file mode 100644 index 0000000..05110c4 Binary files /dev/null and b/mods/tutorial/textures/artifacts_gruen2.png differ diff --git a/mods/tutorial/textures/artifacts_lila1.png b/mods/tutorial/textures/artifacts_lila1.png new file mode 100644 index 0000000..cc80984 Binary files /dev/null and b/mods/tutorial/textures/artifacts_lila1.png differ diff --git a/mods/tutorial/textures/artifacts_lila2.png b/mods/tutorial/textures/artifacts_lila2.png new file mode 100644 index 0000000..32536c2 Binary files /dev/null and b/mods/tutorial/textures/artifacts_lila2.png differ diff --git a/mods/tutorial/textures/artifacts_rot1.png b/mods/tutorial/textures/artifacts_rot1.png new file mode 100644 index 0000000..ff7de5a Binary files /dev/null and b/mods/tutorial/textures/artifacts_rot1.png differ diff --git a/mods/tutorial/textures/artifacts_rot2.png b/mods/tutorial/textures/artifacts_rot2.png new file mode 100644 index 0000000..4583f36 Binary files /dev/null and b/mods/tutorial/textures/artifacts_rot2.png differ diff --git a/mods/tutorial/textures/blades_inv.png b/mods/tutorial/textures/blades_inv.png new file mode 100644 index 0000000..47a6224 Binary files /dev/null and b/mods/tutorial/textures/blades_inv.png differ diff --git a/mods/tutorial/textures/blades_invt.png b/mods/tutorial/textures/blades_invt.png new file mode 100644 index 0000000..47a6224 Binary files /dev/null and b/mods/tutorial/textures/blades_invt.png differ diff --git a/mods/tutorial/textures/cabin_inv.png b/mods/tutorial/textures/cabin_inv.png new file mode 100644 index 0000000..2755911 Binary files /dev/null and b/mods/tutorial/textures/cabin_inv.png differ diff --git a/mods/tutorial/textures/cabin_invt.png b/mods/tutorial/textures/cabin_invt.png new file mode 100644 index 0000000..2755911 Binary files /dev/null and b/mods/tutorial/textures/cabin_invt.png differ diff --git a/mods/tutorial/textures/heli_inv.png b/mods/tutorial/textures/heli_inv.png new file mode 100644 index 0000000..7b9541a Binary files /dev/null and b/mods/tutorial/textures/heli_inv.png differ diff --git a/mods/tutorial/textures/heli_invt.png b/mods/tutorial/textures/heli_invt.png new file mode 100644 index 0000000..7b9541a Binary files /dev/null and b/mods/tutorial/textures/heli_invt.png differ diff --git a/mods/tutorial/textures/inventory_plus_cr.png b/mods/tutorial/textures/inventory_plus_cr.png new file mode 100644 index 0000000..bea1265 Binary files /dev/null and b/mods/tutorial/textures/inventory_plus_cr.png differ diff --git a/mods/tutorial/textures/inventory_plus_xp_gui.png b/mods/tutorial/textures/inventory_plus_xp_gui.png new file mode 100644 index 0000000..056d96d Binary files /dev/null and b/mods/tutorial/textures/inventory_plus_xp_gui.png differ diff --git a/mods/tutorial/textures/medallion_blue.png b/mods/tutorial/textures/medallion_blue.png new file mode 100644 index 0000000..a8c34d8 Binary files /dev/null and b/mods/tutorial/textures/medallion_blue.png differ diff --git a/mods/tutorial/textures/medallion_blue_1.png b/mods/tutorial/textures/medallion_blue_1.png new file mode 100644 index 0000000..4baee5e Binary files /dev/null and b/mods/tutorial/textures/medallion_blue_1.png differ diff --git a/mods/tutorial/textures/medallion_blue_2.png b/mods/tutorial/textures/medallion_blue_2.png new file mode 100644 index 0000000..9650318 Binary files /dev/null and b/mods/tutorial/textures/medallion_blue_2.png differ diff --git a/mods/tutorial/textures/medallion_blue_3.png b/mods/tutorial/textures/medallion_blue_3.png new file mode 100644 index 0000000..7e01c07 Binary files /dev/null and b/mods/tutorial/textures/medallion_blue_3.png differ diff --git a/mods/tutorial/textures/medallion_blue_4.png b/mods/tutorial/textures/medallion_blue_4.png new file mode 100644 index 0000000..ad999a4 Binary files /dev/null and b/mods/tutorial/textures/medallion_blue_4.png differ diff --git a/mods/tutorial/textures/medallion_blue_5.png b/mods/tutorial/textures/medallion_blue_5.png new file mode 100644 index 0000000..8977d73 Binary files /dev/null and b/mods/tutorial/textures/medallion_blue_5.png differ diff --git a/mods/tutorial/textures/medallion_blue_6.png b/mods/tutorial/textures/medallion_blue_6.png new file mode 100644 index 0000000..242cbf5 Binary files /dev/null and b/mods/tutorial/textures/medallion_blue_6.png differ diff --git a/mods/tutorial/textures/medallion_blue_7.png b/mods/tutorial/textures/medallion_blue_7.png new file mode 100644 index 0000000..d410fd0 Binary files /dev/null and b/mods/tutorial/textures/medallion_blue_7.png differ diff --git a/mods/tutorial/textures/medallion_blue_8.png b/mods/tutorial/textures/medallion_blue_8.png new file mode 100644 index 0000000..86b4c1d Binary files /dev/null and b/mods/tutorial/textures/medallion_blue_8.png differ diff --git a/mods/tutorial/textures/medallion_blue_9.png b/mods/tutorial/textures/medallion_blue_9.png new file mode 100644 index 0000000..776e310 Binary files /dev/null and b/mods/tutorial/textures/medallion_blue_9.png differ diff --git a/mods/tutorial/textures/medallion_cyan.png b/mods/tutorial/textures/medallion_cyan.png new file mode 100644 index 0000000..6201106 Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan.png differ diff --git a/mods/tutorial/textures/medallion_cyan_1.png b/mods/tutorial/textures/medallion_cyan_1.png new file mode 100644 index 0000000..23ca4f3 Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan_1.png differ diff --git a/mods/tutorial/textures/medallion_cyan_2.png b/mods/tutorial/textures/medallion_cyan_2.png new file mode 100644 index 0000000..b9a8838 Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan_2.png differ diff --git a/mods/tutorial/textures/medallion_cyan_3.png b/mods/tutorial/textures/medallion_cyan_3.png new file mode 100644 index 0000000..370c7d1 Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan_3.png differ diff --git a/mods/tutorial/textures/medallion_cyan_4.png b/mods/tutorial/textures/medallion_cyan_4.png new file mode 100644 index 0000000..b315808 Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan_4.png differ diff --git a/mods/tutorial/textures/medallion_cyan_5.png b/mods/tutorial/textures/medallion_cyan_5.png new file mode 100644 index 0000000..7c60fd5 Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan_5.png differ diff --git a/mods/tutorial/textures/medallion_cyan_6.png b/mods/tutorial/textures/medallion_cyan_6.png new file mode 100644 index 0000000..4e8133e Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan_6.png differ diff --git a/mods/tutorial/textures/medallion_cyan_7.png b/mods/tutorial/textures/medallion_cyan_7.png new file mode 100644 index 0000000..211a8ba Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan_7.png differ diff --git a/mods/tutorial/textures/medallion_cyan_8.png b/mods/tutorial/textures/medallion_cyan_8.png new file mode 100644 index 0000000..6f10d2c Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan_8.png differ diff --git a/mods/tutorial/textures/medallion_cyan_9.png b/mods/tutorial/textures/medallion_cyan_9.png new file mode 100644 index 0000000..fa87b25 Binary files /dev/null and b/mods/tutorial/textures/medallion_cyan_9.png differ diff --git a/mods/tutorial/textures/medallion_gray.png b/mods/tutorial/textures/medallion_gray.png new file mode 100644 index 0000000..b8ca170 Binary files /dev/null and b/mods/tutorial/textures/medallion_gray.png differ diff --git a/mods/tutorial/textures/medallion_gray_1.png b/mods/tutorial/textures/medallion_gray_1.png new file mode 100644 index 0000000..64624c4 Binary files /dev/null and b/mods/tutorial/textures/medallion_gray_1.png differ diff --git a/mods/tutorial/textures/medallion_gray_2.png b/mods/tutorial/textures/medallion_gray_2.png new file mode 100644 index 0000000..1f3685a Binary files /dev/null and b/mods/tutorial/textures/medallion_gray_2.png differ diff --git a/mods/tutorial/textures/medallion_gray_3.png b/mods/tutorial/textures/medallion_gray_3.png new file mode 100644 index 0000000..1772480 Binary files /dev/null and b/mods/tutorial/textures/medallion_gray_3.png differ diff --git a/mods/tutorial/textures/medallion_gray_4.png b/mods/tutorial/textures/medallion_gray_4.png new file mode 100644 index 0000000..1d4bbd2 Binary files /dev/null and b/mods/tutorial/textures/medallion_gray_4.png differ diff --git a/mods/tutorial/textures/medallion_gray_5.png b/mods/tutorial/textures/medallion_gray_5.png new file mode 100644 index 0000000..f601536 Binary files /dev/null and b/mods/tutorial/textures/medallion_gray_5.png differ diff --git a/mods/tutorial/textures/medallion_gray_6.png b/mods/tutorial/textures/medallion_gray_6.png new file mode 100644 index 0000000..9e93813 Binary files /dev/null and b/mods/tutorial/textures/medallion_gray_6.png differ diff --git a/mods/tutorial/textures/medallion_gray_7.png b/mods/tutorial/textures/medallion_gray_7.png new file mode 100644 index 0000000..7e67722 Binary files /dev/null and b/mods/tutorial/textures/medallion_gray_7.png differ diff --git a/mods/tutorial/textures/medallion_gray_8.png b/mods/tutorial/textures/medallion_gray_8.png new file mode 100644 index 0000000..46c8a30 Binary files /dev/null and b/mods/tutorial/textures/medallion_gray_8.png differ diff --git a/mods/tutorial/textures/medallion_gray_9.png b/mods/tutorial/textures/medallion_gray_9.png new file mode 100644 index 0000000..e4483a6 Binary files /dev/null and b/mods/tutorial/textures/medallion_gray_9.png differ diff --git a/mods/tutorial/textures/medallion_green.png b/mods/tutorial/textures/medallion_green.png new file mode 100644 index 0000000..387ba0c Binary files /dev/null and b/mods/tutorial/textures/medallion_green.png differ diff --git a/mods/tutorial/textures/medallion_green_1.png b/mods/tutorial/textures/medallion_green_1.png new file mode 100644 index 0000000..509a78c Binary files /dev/null and b/mods/tutorial/textures/medallion_green_1.png differ diff --git a/mods/tutorial/textures/medallion_green_2.png b/mods/tutorial/textures/medallion_green_2.png new file mode 100644 index 0000000..45d8fd2 Binary files /dev/null and b/mods/tutorial/textures/medallion_green_2.png differ diff --git a/mods/tutorial/textures/medallion_green_3.png b/mods/tutorial/textures/medallion_green_3.png new file mode 100644 index 0000000..acb1217 Binary files /dev/null and b/mods/tutorial/textures/medallion_green_3.png differ diff --git a/mods/tutorial/textures/medallion_green_4.png b/mods/tutorial/textures/medallion_green_4.png new file mode 100644 index 0000000..7b7bd0c Binary files /dev/null and b/mods/tutorial/textures/medallion_green_4.png differ diff --git a/mods/tutorial/textures/medallion_green_5.png b/mods/tutorial/textures/medallion_green_5.png new file mode 100644 index 0000000..8a81eb5 Binary files /dev/null and b/mods/tutorial/textures/medallion_green_5.png differ diff --git a/mods/tutorial/textures/medallion_green_6.png b/mods/tutorial/textures/medallion_green_6.png new file mode 100644 index 0000000..b149249 Binary files /dev/null and b/mods/tutorial/textures/medallion_green_6.png differ diff --git a/mods/tutorial/textures/medallion_green_7.png b/mods/tutorial/textures/medallion_green_7.png new file mode 100644 index 0000000..a74f3df Binary files /dev/null and b/mods/tutorial/textures/medallion_green_7.png differ diff --git a/mods/tutorial/textures/medallion_green_8.png b/mods/tutorial/textures/medallion_green_8.png new file mode 100644 index 0000000..b6789f3 Binary files /dev/null and b/mods/tutorial/textures/medallion_green_8.png differ diff --git a/mods/tutorial/textures/medallion_green_9.png b/mods/tutorial/textures/medallion_green_9.png new file mode 100644 index 0000000..cebeab6 Binary files /dev/null and b/mods/tutorial/textures/medallion_green_9.png differ diff --git a/mods/tutorial/textures/medallion_purple.png b/mods/tutorial/textures/medallion_purple.png new file mode 100644 index 0000000..4fe1637 Binary files /dev/null and b/mods/tutorial/textures/medallion_purple.png differ diff --git a/mods/tutorial/textures/medallion_purple_1.png b/mods/tutorial/textures/medallion_purple_1.png new file mode 100644 index 0000000..0e3322a Binary files /dev/null and b/mods/tutorial/textures/medallion_purple_1.png differ diff --git a/mods/tutorial/textures/medallion_purple_2.png b/mods/tutorial/textures/medallion_purple_2.png new file mode 100644 index 0000000..f2aa890 Binary files /dev/null and b/mods/tutorial/textures/medallion_purple_2.png differ diff --git a/mods/tutorial/textures/medallion_purple_3.png b/mods/tutorial/textures/medallion_purple_3.png new file mode 100644 index 0000000..99e18c5 Binary files /dev/null and b/mods/tutorial/textures/medallion_purple_3.png differ diff --git a/mods/tutorial/textures/medallion_purple_4.png b/mods/tutorial/textures/medallion_purple_4.png new file mode 100644 index 0000000..7d25a18 Binary files /dev/null and b/mods/tutorial/textures/medallion_purple_4.png differ diff --git a/mods/tutorial/textures/medallion_purple_5.png b/mods/tutorial/textures/medallion_purple_5.png new file mode 100644 index 0000000..817f62b Binary files /dev/null and b/mods/tutorial/textures/medallion_purple_5.png differ diff --git a/mods/tutorial/textures/medallion_purple_6.png b/mods/tutorial/textures/medallion_purple_6.png new file mode 100644 index 0000000..f6d834b Binary files /dev/null and b/mods/tutorial/textures/medallion_purple_6.png differ diff --git a/mods/tutorial/textures/medallion_purple_7.png b/mods/tutorial/textures/medallion_purple_7.png new file mode 100644 index 0000000..f578455 Binary files /dev/null and b/mods/tutorial/textures/medallion_purple_7.png differ diff --git a/mods/tutorial/textures/medallion_purple_8.png b/mods/tutorial/textures/medallion_purple_8.png new file mode 100644 index 0000000..821e639 Binary files /dev/null and b/mods/tutorial/textures/medallion_purple_8.png differ diff --git a/mods/tutorial/textures/medallion_purple_9.png b/mods/tutorial/textures/medallion_purple_9.png new file mode 100644 index 0000000..9e0901f Binary files /dev/null and b/mods/tutorial/textures/medallion_purple_9.png differ diff --git a/mods/tutorial/textures/medallion_red.png b/mods/tutorial/textures/medallion_red.png new file mode 100644 index 0000000..4a409a7 Binary files /dev/null and b/mods/tutorial/textures/medallion_red.png differ diff --git a/mods/tutorial/textures/medallion_red_1.png b/mods/tutorial/textures/medallion_red_1.png new file mode 100644 index 0000000..7ee5918 Binary files /dev/null and b/mods/tutorial/textures/medallion_red_1.png differ diff --git a/mods/tutorial/textures/medallion_red_2.png b/mods/tutorial/textures/medallion_red_2.png new file mode 100644 index 0000000..59d6b40 Binary files /dev/null and b/mods/tutorial/textures/medallion_red_2.png differ diff --git a/mods/tutorial/textures/medallion_red_3.png b/mods/tutorial/textures/medallion_red_3.png new file mode 100644 index 0000000..2b1dd53 Binary files /dev/null and b/mods/tutorial/textures/medallion_red_3.png differ diff --git a/mods/tutorial/textures/medallion_red_4.png b/mods/tutorial/textures/medallion_red_4.png new file mode 100644 index 0000000..1310b51 Binary files /dev/null and b/mods/tutorial/textures/medallion_red_4.png differ diff --git a/mods/tutorial/textures/medallion_red_5.png b/mods/tutorial/textures/medallion_red_5.png new file mode 100644 index 0000000..4f533e8 Binary files /dev/null and b/mods/tutorial/textures/medallion_red_5.png differ diff --git a/mods/tutorial/textures/medallion_red_6.png b/mods/tutorial/textures/medallion_red_6.png new file mode 100644 index 0000000..1354cad Binary files /dev/null and b/mods/tutorial/textures/medallion_red_6.png differ diff --git a/mods/tutorial/textures/medallion_red_7.png b/mods/tutorial/textures/medallion_red_7.png new file mode 100644 index 0000000..944525c Binary files /dev/null and b/mods/tutorial/textures/medallion_red_7.png differ diff --git a/mods/tutorial/textures/medallion_red_8.png b/mods/tutorial/textures/medallion_red_8.png new file mode 100644 index 0000000..c9379c9 Binary files /dev/null and b/mods/tutorial/textures/medallion_red_8.png differ diff --git a/mods/tutorial/textures/medallion_red_9.png b/mods/tutorial/textures/medallion_red_9.png new file mode 100644 index 0000000..06f3846 Binary files /dev/null and b/mods/tutorial/textures/medallion_red_9.png differ diff --git a/mods/tutorial/textures/medallion_yellow.png b/mods/tutorial/textures/medallion_yellow.png new file mode 100644 index 0000000..7fa5dcb Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow.png differ diff --git a/mods/tutorial/textures/medallion_yellow_1.png b/mods/tutorial/textures/medallion_yellow_1.png new file mode 100644 index 0000000..920cd74 Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow_1.png differ diff --git a/mods/tutorial/textures/medallion_yellow_2.png b/mods/tutorial/textures/medallion_yellow_2.png new file mode 100644 index 0000000..c724c33 Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow_2.png differ diff --git a/mods/tutorial/textures/medallion_yellow_3.png b/mods/tutorial/textures/medallion_yellow_3.png new file mode 100644 index 0000000..981f73a Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow_3.png differ diff --git a/mods/tutorial/textures/medallion_yellow_4.png b/mods/tutorial/textures/medallion_yellow_4.png new file mode 100644 index 0000000..586ecbe Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow_4.png differ diff --git a/mods/tutorial/textures/medallion_yellow_5.png b/mods/tutorial/textures/medallion_yellow_5.png new file mode 100644 index 0000000..0dfb93c Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow_5.png differ diff --git a/mods/tutorial/textures/medallion_yellow_6.png b/mods/tutorial/textures/medallion_yellow_6.png new file mode 100644 index 0000000..16a2dfd Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow_6.png differ diff --git a/mods/tutorial/textures/medallion_yellow_7.png b/mods/tutorial/textures/medallion_yellow_7.png new file mode 100644 index 0000000..4221946 Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow_7.png differ diff --git a/mods/tutorial/textures/medallion_yellow_8.png b/mods/tutorial/textures/medallion_yellow_8.png new file mode 100644 index 0000000..6074dfc Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow_8.png differ diff --git a/mods/tutorial/textures/medallion_yellow_9.png b/mods/tutorial/textures/medallion_yellow_9.png new file mode 100644 index 0000000..32c1d6a Binary files /dev/null and b/mods/tutorial/textures/medallion_yellow_9.png differ diff --git a/mods/tutorial/textures/trophy_blue_bronze.png b/mods/tutorial/textures/trophy_blue_bronze.png new file mode 100644 index 0000000..46c92d2 Binary files /dev/null and b/mods/tutorial/textures/trophy_blue_bronze.png differ diff --git a/mods/tutorial/textures/trophy_blue_gold.png b/mods/tutorial/textures/trophy_blue_gold.png new file mode 100644 index 0000000..7c06503 Binary files /dev/null and b/mods/tutorial/textures/trophy_blue_gold.png differ diff --git a/mods/tutorial/textures/trophy_blue_platin.png b/mods/tutorial/textures/trophy_blue_platin.png new file mode 100644 index 0000000..a18c0f4 Binary files /dev/null and b/mods/tutorial/textures/trophy_blue_platin.png differ diff --git a/mods/tutorial/textures/trophy_blue_silver.png b/mods/tutorial/textures/trophy_blue_silver.png new file mode 100644 index 0000000..668c365 Binary files /dev/null and b/mods/tutorial/textures/trophy_blue_silver.png differ diff --git a/mods/tutorial/textures/trophy_cyan_bronze.png b/mods/tutorial/textures/trophy_cyan_bronze.png new file mode 100644 index 0000000..f09fa35 Binary files /dev/null and b/mods/tutorial/textures/trophy_cyan_bronze.png differ diff --git a/mods/tutorial/textures/trophy_cyan_gold.png b/mods/tutorial/textures/trophy_cyan_gold.png new file mode 100644 index 0000000..148743c Binary files /dev/null and b/mods/tutorial/textures/trophy_cyan_gold.png differ diff --git a/mods/tutorial/textures/trophy_cyan_platin.png b/mods/tutorial/textures/trophy_cyan_platin.png new file mode 100644 index 0000000..4d89b2f Binary files /dev/null and b/mods/tutorial/textures/trophy_cyan_platin.png differ diff --git a/mods/tutorial/textures/trophy_cyan_silver.png b/mods/tutorial/textures/trophy_cyan_silver.png new file mode 100644 index 0000000..6496b5e Binary files /dev/null and b/mods/tutorial/textures/trophy_cyan_silver.png differ diff --git a/mods/tutorial/textures/trophy_green_bronze.png b/mods/tutorial/textures/trophy_green_bronze.png new file mode 100644 index 0000000..41d6069 Binary files /dev/null and b/mods/tutorial/textures/trophy_green_bronze.png differ diff --git a/mods/tutorial/textures/trophy_green_gold.png b/mods/tutorial/textures/trophy_green_gold.png new file mode 100644 index 0000000..c7b60e5 Binary files /dev/null and b/mods/tutorial/textures/trophy_green_gold.png differ diff --git a/mods/tutorial/textures/trophy_green_platin.png b/mods/tutorial/textures/trophy_green_platin.png new file mode 100644 index 0000000..5329d60 Binary files /dev/null and b/mods/tutorial/textures/trophy_green_platin.png differ diff --git a/mods/tutorial/textures/trophy_green_silver.png b/mods/tutorial/textures/trophy_green_silver.png new file mode 100644 index 0000000..dfab959 Binary files /dev/null and b/mods/tutorial/textures/trophy_green_silver.png differ diff --git a/mods/tutorial/textures/trophy_purple_bronze.png b/mods/tutorial/textures/trophy_purple_bronze.png new file mode 100644 index 0000000..bb4ff92 Binary files /dev/null and b/mods/tutorial/textures/trophy_purple_bronze.png differ diff --git a/mods/tutorial/textures/trophy_purple_gold.png b/mods/tutorial/textures/trophy_purple_gold.png new file mode 100644 index 0000000..a31f9a9 Binary files /dev/null and b/mods/tutorial/textures/trophy_purple_gold.png differ diff --git a/mods/tutorial/textures/trophy_purple_platin.png b/mods/tutorial/textures/trophy_purple_platin.png new file mode 100644 index 0000000..c869b44 Binary files /dev/null and b/mods/tutorial/textures/trophy_purple_platin.png differ diff --git a/mods/tutorial/textures/trophy_purple_silver.png b/mods/tutorial/textures/trophy_purple_silver.png new file mode 100644 index 0000000..f3e1b3d Binary files /dev/null and b/mods/tutorial/textures/trophy_purple_silver.png differ diff --git a/mods/tutorial/textures/trophy_red_bronze.png b/mods/tutorial/textures/trophy_red_bronze.png new file mode 100644 index 0000000..fdcf2d7 Binary files /dev/null and b/mods/tutorial/textures/trophy_red_bronze.png differ diff --git a/mods/tutorial/textures/trophy_red_gold.png b/mods/tutorial/textures/trophy_red_gold.png new file mode 100644 index 0000000..1872c1b Binary files /dev/null and b/mods/tutorial/textures/trophy_red_gold.png differ diff --git a/mods/tutorial/textures/trophy_red_platin.png b/mods/tutorial/textures/trophy_red_platin.png new file mode 100644 index 0000000..e46d2e4 Binary files /dev/null and b/mods/tutorial/textures/trophy_red_platin.png differ diff --git a/mods/tutorial/textures/trophy_red_silver.png b/mods/tutorial/textures/trophy_red_silver.png new file mode 100644 index 0000000..c7aa244 Binary files /dev/null and b/mods/tutorial/textures/trophy_red_silver.png differ diff --git a/mods/tutorial/textures/trophy_yellow_bronze.png b/mods/tutorial/textures/trophy_yellow_bronze.png new file mode 100644 index 0000000..99177fe Binary files /dev/null and b/mods/tutorial/textures/trophy_yellow_bronze.png differ diff --git a/mods/tutorial/textures/trophy_yellow_gold.png b/mods/tutorial/textures/trophy_yellow_gold.png new file mode 100644 index 0000000..d70da65 Binary files /dev/null and b/mods/tutorial/textures/trophy_yellow_gold.png differ diff --git a/mods/tutorial/textures/trophy_yellow_platin.png b/mods/tutorial/textures/trophy_yellow_platin.png new file mode 100644 index 0000000..71066a7 Binary files /dev/null and b/mods/tutorial/textures/trophy_yellow_platin.png differ diff --git a/mods/tutorial/textures/trophy_yellow_silver.png b/mods/tutorial/textures/trophy_yellow_silver.png new file mode 100644 index 0000000..360f907 Binary files /dev/null and b/mods/tutorial/textures/trophy_yellow_silver.png differ diff --git a/mods/tutorial/textures/tutorial_0.png b/mods/tutorial/textures/tutorial_0.png new file mode 100644 index 0000000..e9445ed Binary files /dev/null and b/mods/tutorial/textures/tutorial_0.png differ diff --git a/mods/tutorial/textures/tutorial_1.1.png b/mods/tutorial/textures/tutorial_1.1.png new file mode 100644 index 0000000..78ed73a Binary files /dev/null and b/mods/tutorial/textures/tutorial_1.1.png differ diff --git a/mods/tutorial/textures/tutorial_1.2.png b/mods/tutorial/textures/tutorial_1.2.png new file mode 100644 index 0000000..bafb2be Binary files /dev/null and b/mods/tutorial/textures/tutorial_1.2.png differ diff --git a/mods/tutorial/textures/tutorial_1.3.png b/mods/tutorial/textures/tutorial_1.3.png new file mode 100644 index 0000000..de4f61b Binary files /dev/null and b/mods/tutorial/textures/tutorial_1.3.png differ diff --git a/mods/tutorial/textures/tutorial_1.4.png b/mods/tutorial/textures/tutorial_1.4.png new file mode 100644 index 0000000..dad5597 Binary files /dev/null and b/mods/tutorial/textures/tutorial_1.4.png differ diff --git a/mods/tutorial/textures/tutorial_1.5.png b/mods/tutorial/textures/tutorial_1.5.png new file mode 100644 index 0000000..f90937b Binary files /dev/null and b/mods/tutorial/textures/tutorial_1.5.png differ diff --git a/mods/tutorial/textures/tutorial_1.6.png b/mods/tutorial/textures/tutorial_1.6.png new file mode 100644 index 0000000..55257ed Binary files /dev/null and b/mods/tutorial/textures/tutorial_1.6.png differ diff --git a/mods/tutorial/textures/tutorial_1.png b/mods/tutorial/textures/tutorial_1.png new file mode 100644 index 0000000..f368e66 Binary files /dev/null and b/mods/tutorial/textures/tutorial_1.png differ diff --git a/mods/tutorial/textures/tutorial_1248_helmet_blue.png b/mods/tutorial/textures/tutorial_1248_helmet_blue.png new file mode 100644 index 0000000..ab6618f Binary files /dev/null and b/mods/tutorial/textures/tutorial_1248_helmet_blue.png differ diff --git a/mods/tutorial/textures/tutorial_1248_helmet_cyan.png b/mods/tutorial/textures/tutorial_1248_helmet_cyan.png new file mode 100644 index 0000000..e64df2c Binary files /dev/null and b/mods/tutorial/textures/tutorial_1248_helmet_cyan.png differ diff --git a/mods/tutorial/textures/tutorial_1248_helmet_green.png b/mods/tutorial/textures/tutorial_1248_helmet_green.png new file mode 100644 index 0000000..ae80ae3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_1248_helmet_green.png differ diff --git a/mods/tutorial/textures/tutorial_1248_helmet_purple.png b/mods/tutorial/textures/tutorial_1248_helmet_purple.png new file mode 100644 index 0000000..91d16f6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_1248_helmet_purple.png differ diff --git a/mods/tutorial/textures/tutorial_1248_helmet_rot.png b/mods/tutorial/textures/tutorial_1248_helmet_rot.png new file mode 100644 index 0000000..2f7601b Binary files /dev/null and b/mods/tutorial/textures/tutorial_1248_helmet_rot.png differ diff --git a/mods/tutorial/textures/tutorial_1248_helmet_yellow.png b/mods/tutorial/textures/tutorial_1248_helmet_yellow.png new file mode 100644 index 0000000..4f1263b Binary files /dev/null and b/mods/tutorial/textures/tutorial_1248_helmet_yellow.png differ diff --git a/mods/tutorial/textures/tutorial_Solar lv.3_solar_array_bottom.png b/mods/tutorial/textures/tutorial_Solar lv.3_solar_array_bottom.png new file mode 100644 index 0000000..596e79a Binary files /dev/null and b/mods/tutorial/textures/tutorial_Solar lv.3_solar_array_bottom.png differ diff --git a/mods/tutorial/textures/tutorial_Solar lv.3_solar_array_side.png b/mods/tutorial/textures/tutorial_Solar lv.3_solar_array_side.png new file mode 100644 index 0000000..a3aa8c7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_Solar lv.3_solar_array_side.png differ diff --git a/mods/tutorial/textures/tutorial_Solar lv.3_solar_array_top.png b/mods/tutorial/textures/tutorial_Solar lv.3_solar_array_top.png new file mode 100644 index 0000000..b7f0b43 Binary files /dev/null and b/mods/tutorial/textures/tutorial_Solar lv.3_solar_array_top.png differ diff --git a/mods/tutorial/textures/tutorial_XP.png b/mods/tutorial/textures/tutorial_XP.png new file mode 100644 index 0000000..f8da111 Binary files /dev/null and b/mods/tutorial/textures/tutorial_XP.png differ diff --git a/mods/tutorial/textures/tutorial_admin_ore.png b/mods/tutorial/textures/tutorial_admin_ore.png new file mode 100644 index 0000000..07d4267 Binary files /dev/null and b/mods/tutorial/textures/tutorial_admin_ore.png differ diff --git a/mods/tutorial/textures/tutorial_adminball.png b/mods/tutorial/textures/tutorial_adminball.png new file mode 100644 index 0000000..f042904 Binary files /dev/null and b/mods/tutorial/textures/tutorial_adminball.png differ diff --git a/mods/tutorial/textures/tutorial_adminbattleaxe.png b/mods/tutorial/textures/tutorial_adminbattleaxe.png new file mode 100644 index 0000000..4605d67 Binary files /dev/null and b/mods/tutorial/textures/tutorial_adminbattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_admingun.png b/mods/tutorial/textures/tutorial_admingun.png new file mode 100644 index 0000000..4447f81 Binary files /dev/null and b/mods/tutorial/textures/tutorial_admingun.png differ diff --git a/mods/tutorial/textures/tutorial_arena_block.png b/mods/tutorial/textures/tutorial_arena_block.png new file mode 100644 index 0000000..056d96d Binary files /dev/null and b/mods/tutorial/textures/tutorial_arena_block.png differ diff --git a/mods/tutorial/textures/tutorial_arena_glass.png b/mods/tutorial/textures/tutorial_arena_glass.png new file mode 100644 index 0000000..69f9d1f Binary files /dev/null and b/mods/tutorial/textures/tutorial_arena_glass.png differ diff --git a/mods/tutorial/textures/tutorial_arenabattleaxe1.png b/mods/tutorial/textures/tutorial_arenabattleaxe1.png new file mode 100644 index 0000000..40419cd Binary files /dev/null and b/mods/tutorial/textures/tutorial_arenabattleaxe1.png differ diff --git a/mods/tutorial/textures/tutorial_arenabattleaxe2.png b/mods/tutorial/textures/tutorial_arenabattleaxe2.png new file mode 100644 index 0000000..363078c Binary files /dev/null and b/mods/tutorial/textures/tutorial_arenabattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_arenabattleaxe3.png b/mods/tutorial/textures/tutorial_arenabattleaxe3.png new file mode 100644 index 0000000..8aab32b Binary files /dev/null and b/mods/tutorial/textures/tutorial_arenabattleaxe3.png differ diff --git a/mods/tutorial/textures/tutorial_arenabattleaxe4.png b/mods/tutorial/textures/tutorial_arenabattleaxe4.png new file mode 100644 index 0000000..b81232a Binary files /dev/null and b/mods/tutorial/textures/tutorial_arenabattleaxe4.png differ diff --git a/mods/tutorial/textures/tutorial_arenagun1.png b/mods/tutorial/textures/tutorial_arenagun1.png new file mode 100644 index 0000000..01bb31f Binary files /dev/null and b/mods/tutorial/textures/tutorial_arenagun1.png differ diff --git a/mods/tutorial/textures/tutorial_arenagun2.png b/mods/tutorial/textures/tutorial_arenagun2.png new file mode 100644 index 0000000..a60bc34 Binary files /dev/null and b/mods/tutorial/textures/tutorial_arenagun2.png differ diff --git a/mods/tutorial/textures/tutorial_arenagun3.png b/mods/tutorial/textures/tutorial_arenagun3.png new file mode 100644 index 0000000..17d0eee Binary files /dev/null and b/mods/tutorial/textures/tutorial_arenagun3.png differ diff --git a/mods/tutorial/textures/tutorial_arenagun4.png b/mods/tutorial/textures/tutorial_arenagun4.png new file mode 100644 index 0000000..bc3eb20 Binary files /dev/null and b/mods/tutorial/textures/tutorial_arenagun4.png differ diff --git a/mods/tutorial/textures/tutorial_armor_schluessel.png b/mods/tutorial/textures/tutorial_armor_schluessel.png new file mode 100644 index 0000000..3bd8275 Binary files /dev/null and b/mods/tutorial/textures/tutorial_armor_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_atombattleaxe.png b/mods/tutorial/textures/tutorial_atombattleaxe.png new file mode 100644 index 0000000..d489adc Binary files /dev/null and b/mods/tutorial/textures/tutorial_atombattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_atombombe.png b/mods/tutorial/textures/tutorial_atombombe.png new file mode 100644 index 0000000..268d30c Binary files /dev/null and b/mods/tutorial/textures/tutorial_atombombe.png differ diff --git a/mods/tutorial/textures/tutorial_atombombe1.png b/mods/tutorial/textures/tutorial_atombombe1.png new file mode 100644 index 0000000..b76eb3b Binary files /dev/null and b/mods/tutorial/textures/tutorial_atombombe1.png differ diff --git a/mods/tutorial/textures/tutorial_atombombe2.png b/mods/tutorial/textures/tutorial_atombombe2.png new file mode 100644 index 0000000..7944b3a Binary files /dev/null and b/mods/tutorial/textures/tutorial_atombombe2.png differ diff --git a/mods/tutorial/textures/tutorial_bag_schluessel1.png b/mods/tutorial/textures/tutorial_bag_schluessel1.png new file mode 100644 index 0000000..035ca7b Binary files /dev/null and b/mods/tutorial/textures/tutorial_bag_schluessel1.png differ diff --git a/mods/tutorial/textures/tutorial_bag_schluessel2.png b/mods/tutorial/textures/tutorial_bag_schluessel2.png new file mode 100644 index 0000000..bc29b26 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bag_schluessel2.png differ diff --git a/mods/tutorial/textures/tutorial_bag_schluessel3.png b/mods/tutorial/textures/tutorial_bag_schluessel3.png new file mode 100644 index 0000000..984bd47 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bag_schluessel3.png differ diff --git a/mods/tutorial/textures/tutorial_bag_schluessel4.png b/mods/tutorial/textures/tutorial_bag_schluessel4.png new file mode 100644 index 0000000..f4adefa Binary files /dev/null and b/mods/tutorial/textures/tutorial_bag_schluessel4.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe.png b/mods/tutorial/textures/tutorial_battleaxe.png new file mode 100644 index 0000000..6dd531d Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega1.png b/mods/tutorial/textures/tutorial_battleaxe_mega1.png new file mode 100644 index 0000000..5db73c3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega1.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega10.png b/mods/tutorial/textures/tutorial_battleaxe_mega10.png new file mode 100644 index 0000000..56b0209 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega10.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega11.png b/mods/tutorial/textures/tutorial_battleaxe_mega11.png new file mode 100644 index 0000000..77dde34 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega11.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega12.png b/mods/tutorial/textures/tutorial_battleaxe_mega12.png new file mode 100644 index 0000000..9f1f930 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega12.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega13.png b/mods/tutorial/textures/tutorial_battleaxe_mega13.png new file mode 100644 index 0000000..101891d Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega13.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega14.png b/mods/tutorial/textures/tutorial_battleaxe_mega14.png new file mode 100644 index 0000000..e3107ed Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega14.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega15.png b/mods/tutorial/textures/tutorial_battleaxe_mega15.png new file mode 100644 index 0000000..12eb2b6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega15.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega16.png b/mods/tutorial/textures/tutorial_battleaxe_mega16.png new file mode 100644 index 0000000..e3bada5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega16.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega17.png b/mods/tutorial/textures/tutorial_battleaxe_mega17.png new file mode 100644 index 0000000..dce6c7a Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega17.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega18.png b/mods/tutorial/textures/tutorial_battleaxe_mega18.png new file mode 100644 index 0000000..d1859ca Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega18.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega19.png b/mods/tutorial/textures/tutorial_battleaxe_mega19.png new file mode 100644 index 0000000..857fcc3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega19.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega2.png b/mods/tutorial/textures/tutorial_battleaxe_mega2.png new file mode 100644 index 0000000..c8fbc82 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega2.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega20.png b/mods/tutorial/textures/tutorial_battleaxe_mega20.png new file mode 100644 index 0000000..b25b318 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega20.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega3.png b/mods/tutorial/textures/tutorial_battleaxe_mega3.png new file mode 100644 index 0000000..1d4fc77 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega3.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega4.png b/mods/tutorial/textures/tutorial_battleaxe_mega4.png new file mode 100644 index 0000000..a1361f7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega4.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega5.png b/mods/tutorial/textures/tutorial_battleaxe_mega5.png new file mode 100644 index 0000000..6643bfd Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega5.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega6.png b/mods/tutorial/textures/tutorial_battleaxe_mega6.png new file mode 100644 index 0000000..9228494 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega6.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega7.png b/mods/tutorial/textures/tutorial_battleaxe_mega7.png new file mode 100644 index 0000000..3862311 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega7.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega8.png b/mods/tutorial/textures/tutorial_battleaxe_mega8.png new file mode 100644 index 0000000..d979bfa Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega8.png differ diff --git a/mods/tutorial/textures/tutorial_battleaxe_mega9.png b/mods/tutorial/textures/tutorial_battleaxe_mega9.png new file mode 100644 index 0000000..38abb20 Binary files /dev/null and b/mods/tutorial/textures/tutorial_battleaxe_mega9.png differ diff --git a/mods/tutorial/textures/tutorial_big_dna_string.png b/mods/tutorial/textures/tutorial_big_dna_string.png new file mode 100644 index 0000000..de57aa2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_big_dna_string.png differ diff --git a/mods/tutorial/textures/tutorial_black.png b/mods/tutorial/textures/tutorial_black.png new file mode 100644 index 0000000..4d95710 Binary files /dev/null and b/mods/tutorial/textures/tutorial_black.png differ diff --git a/mods/tutorial/textures/tutorial_black_mummystab.png b/mods/tutorial/textures/tutorial_black_mummystab.png new file mode 100644 index 0000000..66e1175 Binary files /dev/null and b/mods/tutorial/textures/tutorial_black_mummystab.png differ diff --git a/mods/tutorial/textures/tutorial_blackblock1.png b/mods/tutorial/textures/tutorial_blackblock1.png new file mode 100644 index 0000000..4a55874 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blackblock1.png differ diff --git a/mods/tutorial/textures/tutorial_blackblock2.png b/mods/tutorial/textures/tutorial_blackblock2.png new file mode 100644 index 0000000..3ef187e Binary files /dev/null and b/mods/tutorial/textures/tutorial_blackblock2.png differ diff --git a/mods/tutorial/textures/tutorial_blackblock3.png b/mods/tutorial/textures/tutorial_blackblock3.png new file mode 100644 index 0000000..f1e2336 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blackblock3.png differ diff --git a/mods/tutorial/textures/tutorial_blackblock4.png b/mods/tutorial/textures/tutorial_blackblock4.png new file mode 100644 index 0000000..8c0b4df Binary files /dev/null and b/mods/tutorial/textures/tutorial_blackblock4.png differ diff --git a/mods/tutorial/textures/tutorial_blackblock5.png b/mods/tutorial/textures/tutorial_blackblock5.png new file mode 100644 index 0000000..72e3d37 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blackblock5.png differ diff --git a/mods/tutorial/textures/tutorial_blackblock6.png b/mods/tutorial/textures/tutorial_blackblock6.png new file mode 100644 index 0000000..24f51aa Binary files /dev/null and b/mods/tutorial/textures/tutorial_blackblock6.png differ diff --git a/mods/tutorial/textures/tutorial_blackstone.png b/mods/tutorial/textures/tutorial_blackstone.png new file mode 100644 index 0000000..7f21089 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blackstone.png differ diff --git a/mods/tutorial/textures/tutorial_blau.png b/mods/tutorial/textures/tutorial_blau.png new file mode 100644 index 0000000..8db1964 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blau.png differ diff --git a/mods/tutorial/textures/tutorial_blau_block.png b/mods/tutorial/textures/tutorial_blau_block.png new file mode 100644 index 0000000..ccc7482 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blau_block.png differ diff --git a/mods/tutorial/textures/tutorial_blau_block2.png b/mods/tutorial/textures/tutorial_blau_block2.png new file mode 100644 index 0000000..1b0cdb6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blau_block2.png differ diff --git a/mods/tutorial/textures/tutorial_blau_block3.png b/mods/tutorial/textures/tutorial_blau_block3.png new file mode 100644 index 0000000..2fadd3e Binary files /dev/null and b/mods/tutorial/textures/tutorial_blau_block3.png differ diff --git a/mods/tutorial/textures/tutorial_blau_erz.png b/mods/tutorial/textures/tutorial_blau_erz.png new file mode 100644 index 0000000..83ee969 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blau_erz.png differ diff --git a/mods/tutorial/textures/tutorial_blau_gebrant.png b/mods/tutorial/textures/tutorial_blau_gebrant.png new file mode 100644 index 0000000..e07272e Binary files /dev/null and b/mods/tutorial/textures/tutorial_blau_gebrant.png differ diff --git a/mods/tutorial/textures/tutorial_blau_gebrant_block.png b/mods/tutorial/textures/tutorial_blau_gebrant_block.png new file mode 100644 index 0000000..d1dfb45 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blau_gebrant_block.png differ diff --git a/mods/tutorial/textures/tutorial_blei.png b/mods/tutorial/textures/tutorial_blei.png new file mode 100644 index 0000000..c0e58a9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blei.png differ diff --git a/mods/tutorial/textures/tutorial_blei_ingot.png b/mods/tutorial/textures/tutorial_blei_ingot.png new file mode 100644 index 0000000..a54d578 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blei_ingot.png differ diff --git a/mods/tutorial/textures/tutorial_block_placer1.png b/mods/tutorial/textures/tutorial_block_placer1.png new file mode 100644 index 0000000..5053572 Binary files /dev/null and b/mods/tutorial/textures/tutorial_block_placer1.png differ diff --git a/mods/tutorial/textures/tutorial_block_placer2.png b/mods/tutorial/textures/tutorial_block_placer2.png new file mode 100644 index 0000000..201a617 Binary files /dev/null and b/mods/tutorial/textures/tutorial_block_placer2.png differ diff --git a/mods/tutorial/textures/tutorial_block_placer3.png b/mods/tutorial/textures/tutorial_block_placer3.png new file mode 100644 index 0000000..d17a414 Binary files /dev/null and b/mods/tutorial/textures/tutorial_block_placer3.png differ diff --git a/mods/tutorial/textures/tutorial_block_placer4.png b/mods/tutorial/textures/tutorial_block_placer4.png new file mode 100644 index 0000000..b846e4c Binary files /dev/null and b/mods/tutorial/textures/tutorial_block_placer4.png differ diff --git a/mods/tutorial/textures/tutorial_block_placer5.png b/mods/tutorial/textures/tutorial_block_placer5.png new file mode 100644 index 0000000..3a2199e Binary files /dev/null and b/mods/tutorial/textures/tutorial_block_placer5.png differ diff --git a/mods/tutorial/textures/tutorial_block_placerAdmin.png b/mods/tutorial/textures/tutorial_block_placerAdmin.png new file mode 100644 index 0000000..a5a5776 Binary files /dev/null and b/mods/tutorial/textures/tutorial_block_placerAdmin.png differ diff --git a/mods/tutorial/textures/tutorial_blue_tear.png b/mods/tutorial/textures/tutorial_blue_tear.png new file mode 100644 index 0000000..3880b21 Binary files /dev/null and b/mods/tutorial/textures/tutorial_blue_tear.png differ diff --git a/mods/tutorial/textures/tutorial_bluestone.png b/mods/tutorial/textures/tutorial_bluestone.png new file mode 100644 index 0000000..e85c689 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bluestone.png differ diff --git a/mods/tutorial/textures/tutorial_boat_inventory.png b/mods/tutorial/textures/tutorial_boat_inventory.png new file mode 100644 index 0000000..eae8dfe Binary files /dev/null and b/mods/tutorial/textures/tutorial_boat_inventory.png differ diff --git a/mods/tutorial/textures/tutorial_boat_wield.png b/mods/tutorial/textures/tutorial_boat_wield.png new file mode 100644 index 0000000..54683e9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_boat_wield.png differ diff --git a/mods/tutorial/textures/tutorial_bogen.png b/mods/tutorial/textures/tutorial_bogen.png new file mode 100644 index 0000000..d07620f Binary files /dev/null and b/mods/tutorial/textures/tutorial_bogen.png differ diff --git a/mods/tutorial/textures/tutorial_bottle1.png b/mods/tutorial/textures/tutorial_bottle1.png new file mode 100644 index 0000000..800f137 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle1.png differ diff --git a/mods/tutorial/textures/tutorial_bottle10.png b/mods/tutorial/textures/tutorial_bottle10.png new file mode 100644 index 0000000..55a6e4e Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle10.png differ diff --git a/mods/tutorial/textures/tutorial_bottle11.png b/mods/tutorial/textures/tutorial_bottle11.png new file mode 100644 index 0000000..01dc765 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle11.png differ diff --git a/mods/tutorial/textures/tutorial_bottle12.png b/mods/tutorial/textures/tutorial_bottle12.png new file mode 100644 index 0000000..20d1023 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle12.png differ diff --git a/mods/tutorial/textures/tutorial_bottle2.png b/mods/tutorial/textures/tutorial_bottle2.png new file mode 100644 index 0000000..41ed7a3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle2.png differ diff --git a/mods/tutorial/textures/tutorial_bottle3.png b/mods/tutorial/textures/tutorial_bottle3.png new file mode 100644 index 0000000..d9503ec Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle3.png differ diff --git a/mods/tutorial/textures/tutorial_bottle4.png b/mods/tutorial/textures/tutorial_bottle4.png new file mode 100644 index 0000000..004be2e Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle4.png differ diff --git a/mods/tutorial/textures/tutorial_bottle5.png b/mods/tutorial/textures/tutorial_bottle5.png new file mode 100644 index 0000000..cace038 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle5.png differ diff --git a/mods/tutorial/textures/tutorial_bottle6.png b/mods/tutorial/textures/tutorial_bottle6.png new file mode 100644 index 0000000..94524b2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle6.png differ diff --git a/mods/tutorial/textures/tutorial_bottle7.png b/mods/tutorial/textures/tutorial_bottle7.png new file mode 100644 index 0000000..6a0a88e Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle7.png differ diff --git a/mods/tutorial/textures/tutorial_bottle8.png b/mods/tutorial/textures/tutorial_bottle8.png new file mode 100644 index 0000000..9b76ab3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle8.png differ diff --git a/mods/tutorial/textures/tutorial_bottle9.png b/mods/tutorial/textures/tutorial_bottle9.png new file mode 100644 index 0000000..e4f1ad9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle9.png differ diff --git a/mods/tutorial/textures/tutorial_bottleS1.png b/mods/tutorial/textures/tutorial_bottleS1.png new file mode 100644 index 0000000..50ed054 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottleS1.png differ diff --git a/mods/tutorial/textures/tutorial_bottleS2.png b/mods/tutorial/textures/tutorial_bottleS2.png new file mode 100644 index 0000000..6901aa5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottleS2.png differ diff --git a/mods/tutorial/textures/tutorial_bottleS3.png b/mods/tutorial/textures/tutorial_bottleS3.png new file mode 100644 index 0000000..ecb31f6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottleS3.png differ diff --git a/mods/tutorial/textures/tutorial_bottleSS.png b/mods/tutorial/textures/tutorial_bottleSS.png new file mode 100644 index 0000000..09b1ca2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottleSS.png differ diff --git a/mods/tutorial/textures/tutorial_bottle_crystal.png b/mods/tutorial/textures/tutorial_bottle_crystal.png new file mode 100644 index 0000000..aeae756 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle_crystal.png differ diff --git a/mods/tutorial/textures/tutorial_bottle_roh.png b/mods/tutorial/textures/tutorial_bottle_roh.png new file mode 100644 index 0000000..828f4a1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_bottle_roh.png differ diff --git a/mods/tutorial/textures/tutorial_clouda.png b/mods/tutorial/textures/tutorial_clouda.png new file mode 100644 index 0000000..fccd30a Binary files /dev/null and b/mods/tutorial/textures/tutorial_clouda.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega1.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega1.png new file mode 100644 index 0000000..a9a75fd Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega1.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega10.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega10.png new file mode 100644 index 0000000..6128253 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega10.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega11.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega11.png new file mode 100644 index 0000000..6b235db Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega11.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega12.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega12.png new file mode 100644 index 0000000..189a98f Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega12.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega13.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega13.png new file mode 100644 index 0000000..d949647 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega13.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega14.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega14.png new file mode 100644 index 0000000..7d7518d Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega14.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega15.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega15.png new file mode 100644 index 0000000..6c87610 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega15.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega16.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega16.png new file mode 100644 index 0000000..afc61ce Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega16.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega17.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega17.png new file mode 100644 index 0000000..0481604 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega17.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega18.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega18.png new file mode 100644 index 0000000..9f931ed Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega18.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega19.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega19.png new file mode 100644 index 0000000..0f2d63a Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega19.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega2.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega2.png new file mode 100644 index 0000000..d99f933 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega2.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega20.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega20.png new file mode 100644 index 0000000..3146ed0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega20.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega21.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega21.png new file mode 100644 index 0000000..5535851 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega21.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega22.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega22.png new file mode 100644 index 0000000..417388c Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega22.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega23.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega23.png new file mode 100644 index 0000000..6b65094 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega23.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega24.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega24.png new file mode 100644 index 0000000..22a6855 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega24.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega25.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega25.png new file mode 100644 index 0000000..81d9aed Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega25.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega3.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega3.png new file mode 100644 index 0000000..c65844f Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega3.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega4.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega4.png new file mode 100644 index 0000000..d923650 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega4.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega5.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega5.png new file mode 100644 index 0000000..7143d81 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega5.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega6.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega6.png new file mode 100644 index 0000000..35c1d45 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega6.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega7.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega7.png new file mode 100644 index 0000000..c8debb0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega7.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega8.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega8.png new file mode 100644 index 0000000..4b407d2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega8.png differ diff --git a/mods/tutorial/textures/tutorial_cloudbattleaxe_mega9.png b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega9.png new file mode 100644 index 0000000..01a4cc4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudbattleaxe_mega9.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner.png b/mods/tutorial/textures/tutorial_cloudentverner.png new file mode 100644 index 0000000..f7262cb Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner10.png b/mods/tutorial/textures/tutorial_cloudentverner10.png new file mode 100644 index 0000000..8887f48 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner10.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner11.png b/mods/tutorial/textures/tutorial_cloudentverner11.png new file mode 100644 index 0000000..5280091 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner11.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner12.png b/mods/tutorial/textures/tutorial_cloudentverner12.png new file mode 100644 index 0000000..9d2f3c0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner12.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner13.png b/mods/tutorial/textures/tutorial_cloudentverner13.png new file mode 100644 index 0000000..a72eb01 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner13.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner14.png b/mods/tutorial/textures/tutorial_cloudentverner14.png new file mode 100644 index 0000000..934211d Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner14.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner15.png b/mods/tutorial/textures/tutorial_cloudentverner15.png new file mode 100644 index 0000000..7b067b5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner15.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner16.png b/mods/tutorial/textures/tutorial_cloudentverner16.png new file mode 100644 index 0000000..5ea3653 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner16.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner17.png b/mods/tutorial/textures/tutorial_cloudentverner17.png new file mode 100644 index 0000000..0d12fb9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner17.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner18.png b/mods/tutorial/textures/tutorial_cloudentverner18.png new file mode 100644 index 0000000..f5aeb4b Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner18.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner19.png b/mods/tutorial/textures/tutorial_cloudentverner19.png new file mode 100644 index 0000000..4647937 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner19.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner2.png b/mods/tutorial/textures/tutorial_cloudentverner2.png new file mode 100644 index 0000000..49f401f Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner2.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner20.png b/mods/tutorial/textures/tutorial_cloudentverner20.png new file mode 100644 index 0000000..ac8cdc2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner20.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner21.png b/mods/tutorial/textures/tutorial_cloudentverner21.png new file mode 100644 index 0000000..574b4ca Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner21.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner3.png b/mods/tutorial/textures/tutorial_cloudentverner3.png new file mode 100644 index 0000000..2c0d169 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner3.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner4.png b/mods/tutorial/textures/tutorial_cloudentverner4.png new file mode 100644 index 0000000..e798812 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner4.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner5.png b/mods/tutorial/textures/tutorial_cloudentverner5.png new file mode 100644 index 0000000..c6edf00 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner5.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner6.png b/mods/tutorial/textures/tutorial_cloudentverner6.png new file mode 100644 index 0000000..d0f8ca7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner6.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner7.png b/mods/tutorial/textures/tutorial_cloudentverner7.png new file mode 100644 index 0000000..d05a91e Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner7.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner8.png b/mods/tutorial/textures/tutorial_cloudentverner8.png new file mode 100644 index 0000000..87d107e Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner8.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentverner9.png b/mods/tutorial/textures/tutorial_cloudentverner9.png new file mode 100644 index 0000000..14e9177 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentverner9.png differ diff --git a/mods/tutorial/textures/tutorial_cloudentvernerg.png b/mods/tutorial/textures/tutorial_cloudentvernerg.png new file mode 100644 index 0000000..573fc51 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudentvernerg.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega1.png b/mods/tutorial/textures/tutorial_cloudgun_mega1.png new file mode 100644 index 0000000..71f008d Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega1.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega10.png b/mods/tutorial/textures/tutorial_cloudgun_mega10.png new file mode 100644 index 0000000..7d17435 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega10.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega11.png b/mods/tutorial/textures/tutorial_cloudgun_mega11.png new file mode 100644 index 0000000..13c25ef Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega11.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega12.png b/mods/tutorial/textures/tutorial_cloudgun_mega12.png new file mode 100644 index 0000000..401aa92 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega12.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega13.png b/mods/tutorial/textures/tutorial_cloudgun_mega13.png new file mode 100644 index 0000000..fc61a1e Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega13.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega14.png b/mods/tutorial/textures/tutorial_cloudgun_mega14.png new file mode 100644 index 0000000..6715885 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega14.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega15.png b/mods/tutorial/textures/tutorial_cloudgun_mega15.png new file mode 100644 index 0000000..b2c9d03 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega15.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega16.png b/mods/tutorial/textures/tutorial_cloudgun_mega16.png new file mode 100644 index 0000000..9fe7132 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega16.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega17.png b/mods/tutorial/textures/tutorial_cloudgun_mega17.png new file mode 100644 index 0000000..c7e747a Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega17.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega18.png b/mods/tutorial/textures/tutorial_cloudgun_mega18.png new file mode 100644 index 0000000..98303bc Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega18.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega19.png b/mods/tutorial/textures/tutorial_cloudgun_mega19.png new file mode 100644 index 0000000..2dc0474 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega19.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega2.png b/mods/tutorial/textures/tutorial_cloudgun_mega2.png new file mode 100644 index 0000000..ab5b777 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega2.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega20.png b/mods/tutorial/textures/tutorial_cloudgun_mega20.png new file mode 100644 index 0000000..6930f8e Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega20.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega21.png b/mods/tutorial/textures/tutorial_cloudgun_mega21.png new file mode 100644 index 0000000..3505775 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega21.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega22.png b/mods/tutorial/textures/tutorial_cloudgun_mega22.png new file mode 100644 index 0000000..a0c79e2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega22.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega23.png b/mods/tutorial/textures/tutorial_cloudgun_mega23.png new file mode 100644 index 0000000..dbb5e36 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega23.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega24.png b/mods/tutorial/textures/tutorial_cloudgun_mega24.png new file mode 100644 index 0000000..bff7482 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega24.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega25.png b/mods/tutorial/textures/tutorial_cloudgun_mega25.png new file mode 100644 index 0000000..b498b64 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega25.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega3.png b/mods/tutorial/textures/tutorial_cloudgun_mega3.png new file mode 100644 index 0000000..455f74d Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega3.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega4.png b/mods/tutorial/textures/tutorial_cloudgun_mega4.png new file mode 100644 index 0000000..804dc29 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega4.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega5.png b/mods/tutorial/textures/tutorial_cloudgun_mega5.png new file mode 100644 index 0000000..58a3fa2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega5.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega6.png b/mods/tutorial/textures/tutorial_cloudgun_mega6.png new file mode 100644 index 0000000..0d303db Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega6.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega7.png b/mods/tutorial/textures/tutorial_cloudgun_mega7.png new file mode 100644 index 0000000..cd597a6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega7.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega8.png b/mods/tutorial/textures/tutorial_cloudgun_mega8.png new file mode 100644 index 0000000..f51a73d Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega8.png differ diff --git a/mods/tutorial/textures/tutorial_cloudgun_mega9.png b/mods/tutorial/textures/tutorial_cloudgun_mega9.png new file mode 100644 index 0000000..6e1ddc3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cloudgun_mega9.png differ diff --git a/mods/tutorial/textures/tutorial_coin.png b/mods/tutorial/textures/tutorial_coin.png new file mode 100644 index 0000000..af0a73d Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin.png differ diff --git a/mods/tutorial/textures/tutorial_coin_blau.png b/mods/tutorial/textures/tutorial_coin_blau.png new file mode 100644 index 0000000..50790a7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_blau.png differ diff --git a/mods/tutorial/textures/tutorial_coin_cyan.png b/mods/tutorial/textures/tutorial_coin_cyan.png new file mode 100644 index 0000000..29f8ba9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_cyan.png differ diff --git a/mods/tutorial/textures/tutorial_coin_gelb.png b/mods/tutorial/textures/tutorial_coin_gelb.png new file mode 100644 index 0000000..afaa61e Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_gelb.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau.png b/mods/tutorial/textures/tutorial_coin_grau.png new file mode 100644 index 0000000..1b79667 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau1.png b/mods/tutorial/textures/tutorial_coin_grau1.png new file mode 100644 index 0000000..0b19316 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau1.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau10.png b/mods/tutorial/textures/tutorial_coin_grau10.png new file mode 100644 index 0000000..119aaf7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau10.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau11.png b/mods/tutorial/textures/tutorial_coin_grau11.png new file mode 100644 index 0000000..30edad0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau11.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau12.png b/mods/tutorial/textures/tutorial_coin_grau12.png new file mode 100644 index 0000000..b1c1478 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau12.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau13.png b/mods/tutorial/textures/tutorial_coin_grau13.png new file mode 100644 index 0000000..27394dd Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau13.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau14.png b/mods/tutorial/textures/tutorial_coin_grau14.png new file mode 100644 index 0000000..9a7736d Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau14.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau15.png b/mods/tutorial/textures/tutorial_coin_grau15.png new file mode 100644 index 0000000..1ceca2d Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau15.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau16.png b/mods/tutorial/textures/tutorial_coin_grau16.png new file mode 100644 index 0000000..3cda8e5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau16.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau17.png b/mods/tutorial/textures/tutorial_coin_grau17.png new file mode 100644 index 0000000..5f78e19 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau17.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau18.png b/mods/tutorial/textures/tutorial_coin_grau18.png new file mode 100644 index 0000000..babd56b Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau18.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau19.png b/mods/tutorial/textures/tutorial_coin_grau19.png new file mode 100644 index 0000000..cbde110 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau19.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau2.png b/mods/tutorial/textures/tutorial_coin_grau2.png new file mode 100644 index 0000000..4c5693c Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau2.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau20.png b/mods/tutorial/textures/tutorial_coin_grau20.png new file mode 100644 index 0000000..e7a8c46 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau20.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau3.png b/mods/tutorial/textures/tutorial_coin_grau3.png new file mode 100644 index 0000000..08123fe Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau3.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau4.png b/mods/tutorial/textures/tutorial_coin_grau4.png new file mode 100644 index 0000000..9e09d1b Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau4.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau5.png b/mods/tutorial/textures/tutorial_coin_grau5.png new file mode 100644 index 0000000..85e85e2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau5.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau6.png b/mods/tutorial/textures/tutorial_coin_grau6.png new file mode 100644 index 0000000..ed64132 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau6.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau7.png b/mods/tutorial/textures/tutorial_coin_grau7.png new file mode 100644 index 0000000..c71334f Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau7.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau8.png b/mods/tutorial/textures/tutorial_coin_grau8.png new file mode 100644 index 0000000..fe90efe Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau8.png differ diff --git a/mods/tutorial/textures/tutorial_coin_grau9.png b/mods/tutorial/textures/tutorial_coin_grau9.png new file mode 100644 index 0000000..309fee0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_grau9.png differ diff --git a/mods/tutorial/textures/tutorial_coin_lila.png b/mods/tutorial/textures/tutorial_coin_lila.png new file mode 100644 index 0000000..1c0e591 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_lila.png differ diff --git a/mods/tutorial/textures/tutorial_coin_rot.png b/mods/tutorial/textures/tutorial_coin_rot.png new file mode 100644 index 0000000..53ad1f0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_coin_rot.png differ diff --git a/mods/tutorial/textures/tutorial_colorstick_broken.png b/mods/tutorial/textures/tutorial_colorstick_broken.png new file mode 100644 index 0000000..b404756 Binary files /dev/null and b/mods/tutorial/textures/tutorial_colorstick_broken.png differ diff --git a/mods/tutorial/textures/tutorial_colorstick_empty.png b/mods/tutorial/textures/tutorial_colorstick_empty.png new file mode 100644 index 0000000..2bd9de0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_colorstick_empty.png differ diff --git a/mods/tutorial/textures/tutorial_cooking_schluessel1.png b/mods/tutorial/textures/tutorial_cooking_schluessel1.png new file mode 100644 index 0000000..d025261 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cooking_schluessel1.png differ diff --git a/mods/tutorial/textures/tutorial_cooking_schluessel2.png b/mods/tutorial/textures/tutorial_cooking_schluessel2.png new file mode 100644 index 0000000..e42b5f1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cooking_schluessel2.png differ diff --git a/mods/tutorial/textures/tutorial_cooking_schluessel3.png b/mods/tutorial/textures/tutorial_cooking_schluessel3.png new file mode 100644 index 0000000..2dfadc1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cooking_schluessel3.png differ diff --git a/mods/tutorial/textures/tutorial_cooking_schluessel4.png b/mods/tutorial/textures/tutorial_cooking_schluessel4.png new file mode 100644 index 0000000..f062dc7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cooking_schluessel4.png differ diff --git a/mods/tutorial/textures/tutorial_coreentverner.png b/mods/tutorial/textures/tutorial_coreentverner.png new file mode 100644 index 0000000..823471f Binary files /dev/null and b/mods/tutorial/textures/tutorial_coreentverner.png differ diff --git a/mods/tutorial/textures/tutorial_craft_schluessel1.png b/mods/tutorial/textures/tutorial_craft_schluessel1.png new file mode 100644 index 0000000..7140902 Binary files /dev/null and b/mods/tutorial/textures/tutorial_craft_schluessel1.png differ diff --git a/mods/tutorial/textures/tutorial_craft_schluessel2.png b/mods/tutorial/textures/tutorial_craft_schluessel2.png new file mode 100644 index 0000000..cad389c Binary files /dev/null and b/mods/tutorial/textures/tutorial_craft_schluessel2.png differ diff --git a/mods/tutorial/textures/tutorial_craft_schluessel3.png b/mods/tutorial/textures/tutorial_craft_schluessel3.png new file mode 100644 index 0000000..8c70b3c Binary files /dev/null and b/mods/tutorial/textures/tutorial_craft_schluessel3.png differ diff --git a/mods/tutorial/textures/tutorial_craft_schluessel4.png b/mods/tutorial/textures/tutorial_craft_schluessel4.png new file mode 100644 index 0000000..c445fab Binary files /dev/null and b/mods/tutorial/textures/tutorial_craft_schluessel4.png differ diff --git a/mods/tutorial/textures/tutorial_craft_schluessel5.png b/mods/tutorial/textures/tutorial_craft_schluessel5.png new file mode 100644 index 0000000..84bf10a Binary files /dev/null and b/mods/tutorial/textures/tutorial_craft_schluessel5.png differ diff --git a/mods/tutorial/textures/tutorial_craft_schluessel6.png b/mods/tutorial/textures/tutorial_craft_schluessel6.png new file mode 100644 index 0000000..a527025 Binary files /dev/null and b/mods/tutorial/textures/tutorial_craft_schluessel6.png differ diff --git a/mods/tutorial/textures/tutorial_craft_schluessel7.png b/mods/tutorial/textures/tutorial_craft_schluessel7.png new file mode 100644 index 0000000..fa704b1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_craft_schluessel7.png differ diff --git a/mods/tutorial/textures/tutorial_crystal_schluessel.png b/mods/tutorial/textures/tutorial_crystal_schluessel.png new file mode 100644 index 0000000..25215b7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_crystal_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_cyan_tear.png b/mods/tutorial/textures/tutorial_cyan_tear.png new file mode 100644 index 0000000..8f51b84 Binary files /dev/null and b/mods/tutorial/textures/tutorial_cyan_tear.png differ diff --git a/mods/tutorial/textures/tutorial_decowood.png b/mods/tutorial/textures/tutorial_decowood.png new file mode 100644 index 0000000..366470f Binary files /dev/null and b/mods/tutorial/textures/tutorial_decowood.png differ diff --git a/mods/tutorial/textures/tutorial_diamondblock2.png b/mods/tutorial/textures/tutorial_diamondblock2.png new file mode 100644 index 0000000..d39c329 Binary files /dev/null and b/mods/tutorial/textures/tutorial_diamondblock2.png differ diff --git a/mods/tutorial/textures/tutorial_dna_string.png b/mods/tutorial/textures/tutorial_dna_string.png new file mode 100644 index 0000000..b1efe6d Binary files /dev/null and b/mods/tutorial/textures/tutorial_dna_string.png differ diff --git a/mods/tutorial/textures/tutorial_dragon_crystal.png b/mods/tutorial/textures/tutorial_dragon_crystal.png new file mode 100644 index 0000000..be7fc55 Binary files /dev/null and b/mods/tutorial/textures/tutorial_dragon_crystal.png differ diff --git a/mods/tutorial/textures/tutorial_dragon_schluessel.png b/mods/tutorial/textures/tutorial_dragon_schluessel.png new file mode 100644 index 0000000..218086b Binary files /dev/null and b/mods/tutorial/textures/tutorial_dragon_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_dunklematerie1.png b/mods/tutorial/textures/tutorial_dunklematerie1.png new file mode 100644 index 0000000..b31c675 Binary files /dev/null and b/mods/tutorial/textures/tutorial_dunklematerie1.png differ diff --git a/mods/tutorial/textures/tutorial_dunklematerie2.png b/mods/tutorial/textures/tutorial_dunklematerie2.png new file mode 100644 index 0000000..9ab5ffd Binary files /dev/null and b/mods/tutorial/textures/tutorial_dunklematerie2.png differ diff --git a/mods/tutorial/textures/tutorial_dunklematerie3.png b/mods/tutorial/textures/tutorial_dunklematerie3.png new file mode 100644 index 0000000..d3ac40e Binary files /dev/null and b/mods/tutorial/textures/tutorial_dunklematerie3.png differ diff --git a/mods/tutorial/textures/tutorial_dunklematerie4.png b/mods/tutorial/textures/tutorial_dunklematerie4.png new file mode 100644 index 0000000..7f9c13c Binary files /dev/null and b/mods/tutorial/textures/tutorial_dunklematerie4.png differ diff --git a/mods/tutorial/textures/tutorial_dunklematerie5.png b/mods/tutorial/textures/tutorial_dunklematerie5.png new file mode 100644 index 0000000..fa921f1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_dunklematerie5.png differ diff --git a/mods/tutorial/textures/tutorial_dunklematerie6.png b/mods/tutorial/textures/tutorial_dunklematerie6.png new file mode 100644 index 0000000..d22dc99 Binary files /dev/null and b/mods/tutorial/textures/tutorial_dunklematerie6.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe1.png b/mods/tutorial/textures/tutorial_energybattleaxe1.png new file mode 100644 index 0000000..cd64175 Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe1.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe10.png b/mods/tutorial/textures/tutorial_energybattleaxe10.png new file mode 100644 index 0000000..cb12f9f Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe10.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe11.png b/mods/tutorial/textures/tutorial_energybattleaxe11.png new file mode 100644 index 0000000..29f24bb Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe11.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe12.png b/mods/tutorial/textures/tutorial_energybattleaxe12.png new file mode 100644 index 0000000..ec15f1f Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe12.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe2.png b/mods/tutorial/textures/tutorial_energybattleaxe2.png new file mode 100644 index 0000000..e6f69d9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe3.png b/mods/tutorial/textures/tutorial_energybattleaxe3.png new file mode 100644 index 0000000..d225aef Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe3.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe4.png b/mods/tutorial/textures/tutorial_energybattleaxe4.png new file mode 100644 index 0000000..1733e4c Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe4.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe5.png b/mods/tutorial/textures/tutorial_energybattleaxe5.png new file mode 100644 index 0000000..0c2533f Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe5.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe6.png b/mods/tutorial/textures/tutorial_energybattleaxe6.png new file mode 100644 index 0000000..fba8e3c Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe6.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe7.png b/mods/tutorial/textures/tutorial_energybattleaxe7.png new file mode 100644 index 0000000..77b1186 Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe7.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe8.png b/mods/tutorial/textures/tutorial_energybattleaxe8.png new file mode 100644 index 0000000..44bb27b Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe8.png differ diff --git a/mods/tutorial/textures/tutorial_energybattleaxe9.png b/mods/tutorial/textures/tutorial_energybattleaxe9.png new file mode 100644 index 0000000..e7027ea Binary files /dev/null and b/mods/tutorial/textures/tutorial_energybattleaxe9.png differ diff --git a/mods/tutorial/textures/tutorial_energygun1.png b/mods/tutorial/textures/tutorial_energygun1.png new file mode 100644 index 0000000..30fcd8f Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun1.png differ diff --git a/mods/tutorial/textures/tutorial_energygun10.png b/mods/tutorial/textures/tutorial_energygun10.png new file mode 100644 index 0000000..1061da6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun10.png differ diff --git a/mods/tutorial/textures/tutorial_energygun11.png b/mods/tutorial/textures/tutorial_energygun11.png new file mode 100644 index 0000000..59a3a9f Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun11.png differ diff --git a/mods/tutorial/textures/tutorial_energygun12.png b/mods/tutorial/textures/tutorial_energygun12.png new file mode 100644 index 0000000..949e978 Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun12.png differ diff --git a/mods/tutorial/textures/tutorial_energygun2.png b/mods/tutorial/textures/tutorial_energygun2.png new file mode 100644 index 0000000..7b0dbad Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun2.png differ diff --git a/mods/tutorial/textures/tutorial_energygun3.png b/mods/tutorial/textures/tutorial_energygun3.png new file mode 100644 index 0000000..d0c79e3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun3.png differ diff --git a/mods/tutorial/textures/tutorial_energygun4.png b/mods/tutorial/textures/tutorial_energygun4.png new file mode 100644 index 0000000..d4af3ee Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun4.png differ diff --git a/mods/tutorial/textures/tutorial_energygun5.png b/mods/tutorial/textures/tutorial_energygun5.png new file mode 100644 index 0000000..b80804b Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun5.png differ diff --git a/mods/tutorial/textures/tutorial_energygun6.png b/mods/tutorial/textures/tutorial_energygun6.png new file mode 100644 index 0000000..ae09cbd Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun6.png differ diff --git a/mods/tutorial/textures/tutorial_energygun7.png b/mods/tutorial/textures/tutorial_energygun7.png new file mode 100644 index 0000000..540d674 Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun7.png differ diff --git a/mods/tutorial/textures/tutorial_energygun8.png b/mods/tutorial/textures/tutorial_energygun8.png new file mode 100644 index 0000000..617403f Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun8.png differ diff --git a/mods/tutorial/textures/tutorial_energygun9.png b/mods/tutorial/textures/tutorial_energygun9.png new file mode 100644 index 0000000..30311a3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_energygun9.png differ diff --git a/mods/tutorial/textures/tutorial_fireball.png b/mods/tutorial/textures/tutorial_fireball.png new file mode 100644 index 0000000..3d7668d Binary files /dev/null and b/mods/tutorial/textures/tutorial_fireball.png differ diff --git a/mods/tutorial/textures/tutorial_fireball2.png b/mods/tutorial/textures/tutorial_fireball2.png new file mode 100644 index 0000000..86cefae Binary files /dev/null and b/mods/tutorial/textures/tutorial_fireball2.png differ diff --git a/mods/tutorial/textures/tutorial_fox_schluessel.png b/mods/tutorial/textures/tutorial_fox_schluessel.png new file mode 100644 index 0000000..a2f68c4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_fox_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_fragezeichen.png b/mods/tutorial/textures/tutorial_fragezeichen.png new file mode 100644 index 0000000..40bcf9a Binary files /dev/null and b/mods/tutorial/textures/tutorial_fragezeichen.png differ diff --git a/mods/tutorial/textures/tutorial_gelb.png b/mods/tutorial/textures/tutorial_gelb.png new file mode 100644 index 0000000..cdfc4c0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gelb.png differ diff --git a/mods/tutorial/textures/tutorial_gelb_block.png b/mods/tutorial/textures/tutorial_gelb_block.png new file mode 100644 index 0000000..6701f2a Binary files /dev/null and b/mods/tutorial/textures/tutorial_gelb_block.png differ diff --git a/mods/tutorial/textures/tutorial_gelb_block2.png b/mods/tutorial/textures/tutorial_gelb_block2.png new file mode 100644 index 0000000..f506a9f Binary files /dev/null and b/mods/tutorial/textures/tutorial_gelb_block2.png differ diff --git a/mods/tutorial/textures/tutorial_gelb_block3.png b/mods/tutorial/textures/tutorial_gelb_block3.png new file mode 100644 index 0000000..c811ad5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gelb_block3.png differ diff --git a/mods/tutorial/textures/tutorial_gelb_gebrant.png b/mods/tutorial/textures/tutorial_gelb_gebrant.png new file mode 100644 index 0000000..d67d8e1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gelb_gebrant.png differ diff --git a/mods/tutorial/textures/tutorial_gelb_gebrant_block.png b/mods/tutorial/textures/tutorial_gelb_gebrant_block.png new file mode 100644 index 0000000..000b52d Binary files /dev/null and b/mods/tutorial/textures/tutorial_gelb_gebrant_block.png differ diff --git a/mods/tutorial/textures/tutorial_geld.png b/mods/tutorial/textures/tutorial_geld.png new file mode 100644 index 0000000..c52b2de Binary files /dev/null and b/mods/tutorial/textures/tutorial_geld.png differ diff --git a/mods/tutorial/textures/tutorial_geld_lv1.png b/mods/tutorial/textures/tutorial_geld_lv1.png new file mode 100644 index 0000000..0dc268f Binary files /dev/null and b/mods/tutorial/textures/tutorial_geld_lv1.png differ diff --git a/mods/tutorial/textures/tutorial_geld_lv2.png b/mods/tutorial/textures/tutorial_geld_lv2.png new file mode 100644 index 0000000..6f0e926 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geld_lv2.png differ diff --git a/mods/tutorial/textures/tutorial_geld_lv3.png b/mods/tutorial/textures/tutorial_geld_lv3.png new file mode 100644 index 0000000..90ff9ca Binary files /dev/null and b/mods/tutorial/textures/tutorial_geld_lv3.png differ diff --git a/mods/tutorial/textures/tutorial_geld_lv4.png b/mods/tutorial/textures/tutorial_geld_lv4.png new file mode 100644 index 0000000..77dd2e2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geld_lv4.png differ diff --git a/mods/tutorial/textures/tutorial_geld_lv5.png b/mods/tutorial/textures/tutorial_geld_lv5.png new file mode 100644 index 0000000..3b4ae06 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geld_lv5.png differ diff --git a/mods/tutorial/textures/tutorial_gem1.png b/mods/tutorial/textures/tutorial_gem1.png new file mode 100644 index 0000000..025a48b Binary files /dev/null and b/mods/tutorial/textures/tutorial_gem1.png differ diff --git a/mods/tutorial/textures/tutorial_gem2.png b/mods/tutorial/textures/tutorial_gem2.png new file mode 100644 index 0000000..b9be395 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gem2.png differ diff --git a/mods/tutorial/textures/tutorial_gem3.png b/mods/tutorial/textures/tutorial_gem3.png new file mode 100644 index 0000000..ed433fe Binary files /dev/null and b/mods/tutorial/textures/tutorial_gem3.png differ diff --git a/mods/tutorial/textures/tutorial_gem4.png b/mods/tutorial/textures/tutorial_gem4.png new file mode 100644 index 0000000..59fd46b Binary files /dev/null and b/mods/tutorial/textures/tutorial_gem4.png differ diff --git a/mods/tutorial/textures/tutorial_gem5.png b/mods/tutorial/textures/tutorial_gem5.png new file mode 100644 index 0000000..7daa61b Binary files /dev/null and b/mods/tutorial/textures/tutorial_gem5.png differ diff --git a/mods/tutorial/textures/tutorial_gem_fragment.png b/mods/tutorial/textures/tutorial_gem_fragment.png new file mode 100644 index 0000000..b031cb3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gem_fragment.png differ diff --git a/mods/tutorial/textures/tutorial_gem_fragment2.png b/mods/tutorial/textures/tutorial_gem_fragment2.png new file mode 100644 index 0000000..4c5e53c Binary files /dev/null and b/mods/tutorial/textures/tutorial_gem_fragment2.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk.png b/mods/tutorial/textures/tutorial_geschenk.png new file mode 100644 index 0000000..13d390f Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_death.png b/mods/tutorial/textures/tutorial_geschenk_death.png new file mode 100644 index 0000000..25c39e8 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_death.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_death_gold.png b/mods/tutorial/textures/tutorial_geschenk_death_gold.png new file mode 100644 index 0000000..4cd2e2d Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_death_gold.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_death_platin.png b/mods/tutorial/textures/tutorial_geschenk_death_platin.png new file mode 100644 index 0000000..e1f11e0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_death_platin.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_death_silber.png b/mods/tutorial/textures/tutorial_geschenk_death_silber.png new file mode 100644 index 0000000..7a3e483 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_death_silber.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_dna.png b/mods/tutorial/textures/tutorial_geschenk_dna.png new file mode 100644 index 0000000..8c08b3a Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_dna.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_dragon.png b/mods/tutorial/textures/tutorial_geschenk_dragon.png new file mode 100644 index 0000000..d58821c Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_dragon.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_gem.png b/mods/tutorial/textures/tutorial_geschenk_gem.png new file mode 100644 index 0000000..f24d191 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_gem.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_gem2.png b/mods/tutorial/textures/tutorial_geschenk_gem2.png new file mode 100644 index 0000000..932e31e Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_gem2.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_gold.png b/mods/tutorial/textures/tutorial_geschenk_gold.png new file mode 100644 index 0000000..fbf9242 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_gold.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_legenden.png b/mods/tutorial/textures/tutorial_geschenk_legenden.png new file mode 100644 index 0000000..eb2c47f Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_legenden.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_platin.png b/mods/tutorial/textures/tutorial_geschenk_platin.png new file mode 100644 index 0000000..4816a02 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_platin.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_regnum.png b/mods/tutorial/textures/tutorial_geschenk_regnum.png new file mode 100644 index 0000000..1e66d54 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_regnum.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_silber.png b/mods/tutorial/textures/tutorial_geschenk_silber.png new file mode 100644 index 0000000..e042fa9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_silber.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_wool.png b/mods/tutorial/textures/tutorial_geschenk_wool.png new file mode 100644 index 0000000..7c39900 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_wool.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_wool1.png b/mods/tutorial/textures/tutorial_geschenk_wool1.png new file mode 100644 index 0000000..d5948b0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_wool1.png differ diff --git a/mods/tutorial/textures/tutorial_geschenk_wool2.png b/mods/tutorial/textures/tutorial_geschenk_wool2.png new file mode 100644 index 0000000..052920d Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenk_wool2.png differ diff --git a/mods/tutorial/textures/tutorial_geschenkpapier.png b/mods/tutorial/textures/tutorial_geschenkpapier.png new file mode 100644 index 0000000..befa614 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenkpapier.png differ diff --git a/mods/tutorial/textures/tutorial_geschenkpapier_death.png b/mods/tutorial/textures/tutorial_geschenkpapier_death.png new file mode 100644 index 0000000..21ccc44 Binary files /dev/null and b/mods/tutorial/textures/tutorial_geschenkpapier_death.png differ diff --git a/mods/tutorial/textures/tutorial_glass_reaktor_core.png b/mods/tutorial/textures/tutorial_glass_reaktor_core.png new file mode 100644 index 0000000..5165e53 Binary files /dev/null and b/mods/tutorial/textures/tutorial_glass_reaktor_core.png differ diff --git a/mods/tutorial/textures/tutorial_golden_schluessel.png b/mods/tutorial/textures/tutorial_golden_schluessel.png new file mode 100644 index 0000000..2fccefe Binary files /dev/null and b/mods/tutorial/textures/tutorial_golden_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_goldstone.png b/mods/tutorial/textures/tutorial_goldstone.png new file mode 100644 index 0000000..a73530e Binary files /dev/null and b/mods/tutorial/textures/tutorial_goldstone.png differ diff --git a/mods/tutorial/textures/tutorial_granatenwerfer.png b/mods/tutorial/textures/tutorial_granatenwerfer.png new file mode 100644 index 0000000..8a87a4d Binary files /dev/null and b/mods/tutorial/textures/tutorial_granatenwerfer.png differ diff --git a/mods/tutorial/textures/tutorial_green_tear.png b/mods/tutorial/textures/tutorial_green_tear.png new file mode 100644 index 0000000..2bfd323 Binary files /dev/null and b/mods/tutorial/textures/tutorial_green_tear.png differ diff --git a/mods/tutorial/textures/tutorial_greenstone.png b/mods/tutorial/textures/tutorial_greenstone.png new file mode 100644 index 0000000..086a249 Binary files /dev/null and b/mods/tutorial/textures/tutorial_greenstone.png differ diff --git a/mods/tutorial/textures/tutorial_gruen.png b/mods/tutorial/textures/tutorial_gruen.png new file mode 100644 index 0000000..875de43 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gruen.png differ diff --git a/mods/tutorial/textures/tutorial_gruen_block.png b/mods/tutorial/textures/tutorial_gruen_block.png new file mode 100644 index 0000000..076411b Binary files /dev/null and b/mods/tutorial/textures/tutorial_gruen_block.png differ diff --git a/mods/tutorial/textures/tutorial_gruen_block2.png b/mods/tutorial/textures/tutorial_gruen_block2.png new file mode 100644 index 0000000..9ab2b07 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gruen_block2.png differ diff --git a/mods/tutorial/textures/tutorial_gruen_block3.png b/mods/tutorial/textures/tutorial_gruen_block3.png new file mode 100644 index 0000000..268143e Binary files /dev/null and b/mods/tutorial/textures/tutorial_gruen_block3.png differ diff --git a/mods/tutorial/textures/tutorial_gruen_gebrant.png b/mods/tutorial/textures/tutorial_gruen_gebrant.png new file mode 100644 index 0000000..aad2d35 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gruen_gebrant.png differ diff --git a/mods/tutorial/textures/tutorial_gruen_gebrant_block.png b/mods/tutorial/textures/tutorial_gruen_gebrant_block.png new file mode 100644 index 0000000..4e657db Binary files /dev/null and b/mods/tutorial/textures/tutorial_gruen_gebrant_block.png differ diff --git a/mods/tutorial/textures/tutorial_gun.png b/mods/tutorial/textures/tutorial_gun.png new file mode 100644 index 0000000..2b54c77 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega1.png b/mods/tutorial/textures/tutorial_gun_mega1.png new file mode 100644 index 0000000..9e76868 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega1.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega10.png b/mods/tutorial/textures/tutorial_gun_mega10.png new file mode 100644 index 0000000..fa7b5cd Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega10.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega11.png b/mods/tutorial/textures/tutorial_gun_mega11.png new file mode 100644 index 0000000..c65fd2a Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega11.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega12.png b/mods/tutorial/textures/tutorial_gun_mega12.png new file mode 100644 index 0000000..aa00015 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega12.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega13.png b/mods/tutorial/textures/tutorial_gun_mega13.png new file mode 100644 index 0000000..cdb9513 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega13.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega14.png b/mods/tutorial/textures/tutorial_gun_mega14.png new file mode 100644 index 0000000..8c65d50 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega14.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega15.png b/mods/tutorial/textures/tutorial_gun_mega15.png new file mode 100644 index 0000000..7001b44 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega15.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega16.png b/mods/tutorial/textures/tutorial_gun_mega16.png new file mode 100644 index 0000000..8941185 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega16.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega17.png b/mods/tutorial/textures/tutorial_gun_mega17.png new file mode 100644 index 0000000..4c1b80e Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega17.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega18.png b/mods/tutorial/textures/tutorial_gun_mega18.png new file mode 100644 index 0000000..51f8e73 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega18.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega19.png b/mods/tutorial/textures/tutorial_gun_mega19.png new file mode 100644 index 0000000..0c46f0f Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega19.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega2.png b/mods/tutorial/textures/tutorial_gun_mega2.png new file mode 100644 index 0000000..09ba579 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega2.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega20.png b/mods/tutorial/textures/tutorial_gun_mega20.png new file mode 100644 index 0000000..56f9f9f Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega20.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega3.png b/mods/tutorial/textures/tutorial_gun_mega3.png new file mode 100644 index 0000000..fab020f Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega3.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega4.png b/mods/tutorial/textures/tutorial_gun_mega4.png new file mode 100644 index 0000000..f24f493 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega4.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega5.png b/mods/tutorial/textures/tutorial_gun_mega5.png new file mode 100644 index 0000000..9268802 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega5.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega6.png b/mods/tutorial/textures/tutorial_gun_mega6.png new file mode 100644 index 0000000..5a2064a Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega6.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega7.png b/mods/tutorial/textures/tutorial_gun_mega7.png new file mode 100644 index 0000000..c8b7cd4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega7.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega8.png b/mods/tutorial/textures/tutorial_gun_mega8.png new file mode 100644 index 0000000..595f535 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega8.png differ diff --git a/mods/tutorial/textures/tutorial_gun_mega9.png b/mods/tutorial/textures/tutorial_gun_mega9.png new file mode 100644 index 0000000..cfb57a9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_gun_mega9.png differ diff --git a/mods/tutorial/textures/tutorial_hammer.png b/mods/tutorial/textures/tutorial_hammer.png new file mode 100644 index 0000000..71c919f Binary files /dev/null and b/mods/tutorial/textures/tutorial_hammer.png differ diff --git a/mods/tutorial/textures/tutorial_helmet_King.png b/mods/tutorial/textures/tutorial_helmet_King.png new file mode 100644 index 0000000..2f7dea2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_helmet_King.png differ diff --git a/mods/tutorial/textures/tutorial_helmet_King1_preview.png b/mods/tutorial/textures/tutorial_helmet_King1_preview.png new file mode 100644 index 0000000..8000fc0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_helmet_King1_preview.png differ diff --git a/mods/tutorial/textures/tutorial_knight_schluessel.png b/mods/tutorial/textures/tutorial_knight_schluessel.png new file mode 100644 index 0000000..58b8993 Binary files /dev/null and b/mods/tutorial/textures/tutorial_knight_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_kreutz.png b/mods/tutorial/textures/tutorial_kreutz.png new file mode 100644 index 0000000..968534d Binary files /dev/null and b/mods/tutorial/textures/tutorial_kreutz.png differ diff --git a/mods/tutorial/textures/tutorial_kristallbattleaxe1.png b/mods/tutorial/textures/tutorial_kristallbattleaxe1.png new file mode 100644 index 0000000..1b1edfb Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallbattleaxe1.png differ diff --git a/mods/tutorial/textures/tutorial_kristallbattleaxe2.png b/mods/tutorial/textures/tutorial_kristallbattleaxe2.png new file mode 100644 index 0000000..f233e65 Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallbattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_kristallbattleaxe3.png b/mods/tutorial/textures/tutorial_kristallbattleaxe3.png new file mode 100644 index 0000000..4b537c8 Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallbattleaxe3.png differ diff --git a/mods/tutorial/textures/tutorial_kristallbattleaxe4.png b/mods/tutorial/textures/tutorial_kristallbattleaxe4.png new file mode 100644 index 0000000..a19721c Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallbattleaxe4.png differ diff --git a/mods/tutorial/textures/tutorial_kristallbattleaxe5.png b/mods/tutorial/textures/tutorial_kristallbattleaxe5.png new file mode 100644 index 0000000..e9f8f7b Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallbattleaxe5.png differ diff --git a/mods/tutorial/textures/tutorial_kristallgun1.png b/mods/tutorial/textures/tutorial_kristallgun1.png new file mode 100644 index 0000000..3cc615b Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallgun1.png differ diff --git a/mods/tutorial/textures/tutorial_kristallgun2.png b/mods/tutorial/textures/tutorial_kristallgun2.png new file mode 100644 index 0000000..08a0855 Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallgun2.png differ diff --git a/mods/tutorial/textures/tutorial_kristallgun3.png b/mods/tutorial/textures/tutorial_kristallgun3.png new file mode 100644 index 0000000..ec741ec Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallgun3.png differ diff --git a/mods/tutorial/textures/tutorial_kristallgun4.png b/mods/tutorial/textures/tutorial_kristallgun4.png new file mode 100644 index 0000000..7027bed Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallgun4.png differ diff --git a/mods/tutorial/textures/tutorial_kristallgun5.png b/mods/tutorial/textures/tutorial_kristallgun5.png new file mode 100644 index 0000000..9ca8b1a Binary files /dev/null and b/mods/tutorial/textures/tutorial_kristallgun5.png differ diff --git a/mods/tutorial/textures/tutorial_lavaball.png b/mods/tutorial/textures/tutorial_lavaball.png new file mode 100644 index 0000000..7e43002 Binary files /dev/null and b/mods/tutorial/textures/tutorial_lavaball.png differ diff --git a/mods/tutorial/textures/tutorial_lavabattleaxe.png b/mods/tutorial/textures/tutorial_lavabattleaxe.png new file mode 100644 index 0000000..8ee8ba2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_lavabattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_lavasword.png b/mods/tutorial/textures/tutorial_lavasword.png new file mode 100644 index 0000000..b40e413 Binary files /dev/null and b/mods/tutorial/textures/tutorial_lavasword.png differ diff --git a/mods/tutorial/textures/tutorial_legend_thunder.png b/mods/tutorial/textures/tutorial_legend_thunder.png new file mode 100644 index 0000000..7393b75 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legend_thunder.png differ diff --git a/mods/tutorial/textures/tutorial_legend_thunderadmin.png b/mods/tutorial/textures/tutorial_legend_thunderadmin.png new file mode 100644 index 0000000..08beaf6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legend_thunderadmin.png differ diff --git a/mods/tutorial/textures/tutorial_legendball.png b/mods/tutorial/textures/tutorial_legendball.png new file mode 100644 index 0000000..b07f055 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendball.png differ diff --git a/mods/tutorial/textures/tutorial_legenden_schluessel.png b/mods/tutorial/textures/tutorial_legenden_schluessel.png new file mode 100644 index 0000000..7e5a85b Binary files /dev/null and b/mods/tutorial/textures/tutorial_legenden_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_legendenbattleaxe1.png b/mods/tutorial/textures/tutorial_legendenbattleaxe1.png new file mode 100644 index 0000000..d30e94c Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendenbattleaxe1.png differ diff --git a/mods/tutorial/textures/tutorial_legendenbattleaxe2.png b/mods/tutorial/textures/tutorial_legendenbattleaxe2.png new file mode 100644 index 0000000..370d4d4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendenbattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_legendenbattleaxe3.png b/mods/tutorial/textures/tutorial_legendenbattleaxe3.png new file mode 100644 index 0000000..c84f8dc Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendenbattleaxe3.png differ diff --git a/mods/tutorial/textures/tutorial_legendenbattleaxe4.png b/mods/tutorial/textures/tutorial_legendenbattleaxe4.png new file mode 100644 index 0000000..43720fb Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendenbattleaxe4.png differ diff --git a/mods/tutorial/textures/tutorial_legendenbattleaxe5.png b/mods/tutorial/textures/tutorial_legendenbattleaxe5.png new file mode 100644 index 0000000..d2065f7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendenbattleaxe5.png differ diff --git a/mods/tutorial/textures/tutorial_legendenbattleaxe6.png b/mods/tutorial/textures/tutorial_legendenbattleaxe6.png new file mode 100644 index 0000000..5d2028f Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendenbattleaxe6.png differ diff --git a/mods/tutorial/textures/tutorial_legendengun1.png b/mods/tutorial/textures/tutorial_legendengun1.png new file mode 100644 index 0000000..64e9ec2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendengun1.png differ diff --git a/mods/tutorial/textures/tutorial_legendengun2.png b/mods/tutorial/textures/tutorial_legendengun2.png new file mode 100644 index 0000000..f60244f Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendengun2.png differ diff --git a/mods/tutorial/textures/tutorial_legendengun3.png b/mods/tutorial/textures/tutorial_legendengun3.png new file mode 100644 index 0000000..90033ac Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendengun3.png differ diff --git a/mods/tutorial/textures/tutorial_legendengun4.png b/mods/tutorial/textures/tutorial_legendengun4.png new file mode 100644 index 0000000..6a87a18 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendengun4.png differ diff --git a/mods/tutorial/textures/tutorial_legendengun5.png b/mods/tutorial/textures/tutorial_legendengun5.png new file mode 100644 index 0000000..daaa666 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendengun5.png differ diff --git a/mods/tutorial/textures/tutorial_legendengun6.png b/mods/tutorial/textures/tutorial_legendengun6.png new file mode 100644 index 0000000..f52f2c0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendengun6.png differ diff --git a/mods/tutorial/textures/tutorial_legendenkristall.png b/mods/tutorial/textures/tutorial_legendenkristall.png new file mode 100644 index 0000000..c9c60a9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendenkristall.png differ diff --git a/mods/tutorial/textures/tutorial_legendenkristall_no.png b/mods/tutorial/textures/tutorial_legendenkristall_no.png new file mode 100644 index 0000000..7f8d17d Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendenkristall_no.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab.png b/mods/tutorial/textures/tutorial_legendzauberstab.png new file mode 100644 index 0000000..3ebc8e2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab1.png b/mods/tutorial/textures/tutorial_legendzauberstab1.png new file mode 100644 index 0000000..c11b793 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab1.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab2.png b/mods/tutorial/textures/tutorial_legendzauberstab2.png new file mode 100644 index 0000000..2de4313 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab2.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab3.png b/mods/tutorial/textures/tutorial_legendzauberstab3.png new file mode 100644 index 0000000..66cd57e Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab3.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab4.png b/mods/tutorial/textures/tutorial_legendzauberstab4.png new file mode 100644 index 0000000..9e7422e Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab4.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab5.png b/mods/tutorial/textures/tutorial_legendzauberstab5.png new file mode 100644 index 0000000..707566c Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab5.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab6.png b/mods/tutorial/textures/tutorial_legendzauberstab6.png new file mode 100644 index 0000000..dd688c0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab6.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab7.png b/mods/tutorial/textures/tutorial_legendzauberstab7.png new file mode 100644 index 0000000..432b55c Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab7.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab8.png b/mods/tutorial/textures/tutorial_legendzauberstab8.png new file mode 100644 index 0000000..31c56cb Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab8.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstab9.png b/mods/tutorial/textures/tutorial_legendzauberstab9.png new file mode 100644 index 0000000..d977619 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstab9.png differ diff --git a/mods/tutorial/textures/tutorial_legendzauberstabadmin.png b/mods/tutorial/textures/tutorial_legendzauberstabadmin.png new file mode 100644 index 0000000..7deef19 Binary files /dev/null and b/mods/tutorial/textures/tutorial_legendzauberstabadmin.png differ diff --git a/mods/tutorial/textures/tutorial_level1.png b/mods/tutorial/textures/tutorial_level1.png new file mode 100644 index 0000000..a974457 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level1.png differ diff --git a/mods/tutorial/textures/tutorial_level10.png b/mods/tutorial/textures/tutorial_level10.png new file mode 100644 index 0000000..6e929fe Binary files /dev/null and b/mods/tutorial/textures/tutorial_level10.png differ diff --git a/mods/tutorial/textures/tutorial_level100.png b/mods/tutorial/textures/tutorial_level100.png new file mode 100644 index 0000000..cfb5bf3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level100.png differ diff --git a/mods/tutorial/textures/tutorial_level11.png b/mods/tutorial/textures/tutorial_level11.png new file mode 100644 index 0000000..8477184 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level11.png differ diff --git a/mods/tutorial/textures/tutorial_level12.png b/mods/tutorial/textures/tutorial_level12.png new file mode 100644 index 0000000..b660443 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level12.png differ diff --git a/mods/tutorial/textures/tutorial_level13.png b/mods/tutorial/textures/tutorial_level13.png new file mode 100644 index 0000000..7a5c82a Binary files /dev/null and b/mods/tutorial/textures/tutorial_level13.png differ diff --git a/mods/tutorial/textures/tutorial_level14.png b/mods/tutorial/textures/tutorial_level14.png new file mode 100644 index 0000000..9164917 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level14.png differ diff --git a/mods/tutorial/textures/tutorial_level15.png b/mods/tutorial/textures/tutorial_level15.png new file mode 100644 index 0000000..f85be0f Binary files /dev/null and b/mods/tutorial/textures/tutorial_level15.png differ diff --git a/mods/tutorial/textures/tutorial_level16.png b/mods/tutorial/textures/tutorial_level16.png new file mode 100644 index 0000000..d68d9af Binary files /dev/null and b/mods/tutorial/textures/tutorial_level16.png differ diff --git a/mods/tutorial/textures/tutorial_level17.png b/mods/tutorial/textures/tutorial_level17.png new file mode 100644 index 0000000..cab8bfb Binary files /dev/null and b/mods/tutorial/textures/tutorial_level17.png differ diff --git a/mods/tutorial/textures/tutorial_level18.png b/mods/tutorial/textures/tutorial_level18.png new file mode 100644 index 0000000..8a0f7b0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level18.png differ diff --git a/mods/tutorial/textures/tutorial_level19.png b/mods/tutorial/textures/tutorial_level19.png new file mode 100644 index 0000000..9a6641f Binary files /dev/null and b/mods/tutorial/textures/tutorial_level19.png differ diff --git a/mods/tutorial/textures/tutorial_level2.png b/mods/tutorial/textures/tutorial_level2.png new file mode 100644 index 0000000..569e6ef Binary files /dev/null and b/mods/tutorial/textures/tutorial_level2.png differ diff --git a/mods/tutorial/textures/tutorial_level20.png b/mods/tutorial/textures/tutorial_level20.png new file mode 100644 index 0000000..8763d22 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level20.png differ diff --git a/mods/tutorial/textures/tutorial_level21.png b/mods/tutorial/textures/tutorial_level21.png new file mode 100644 index 0000000..64ea17f Binary files /dev/null and b/mods/tutorial/textures/tutorial_level21.png differ diff --git a/mods/tutorial/textures/tutorial_level22.png b/mods/tutorial/textures/tutorial_level22.png new file mode 100644 index 0000000..774d25b Binary files /dev/null and b/mods/tutorial/textures/tutorial_level22.png differ diff --git a/mods/tutorial/textures/tutorial_level23.png b/mods/tutorial/textures/tutorial_level23.png new file mode 100644 index 0000000..bfca272 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level23.png differ diff --git a/mods/tutorial/textures/tutorial_level24.png b/mods/tutorial/textures/tutorial_level24.png new file mode 100644 index 0000000..e9d56aa Binary files /dev/null and b/mods/tutorial/textures/tutorial_level24.png differ diff --git a/mods/tutorial/textures/tutorial_level25.png b/mods/tutorial/textures/tutorial_level25.png new file mode 100644 index 0000000..5e3c595 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level25.png differ diff --git a/mods/tutorial/textures/tutorial_level26.png b/mods/tutorial/textures/tutorial_level26.png new file mode 100644 index 0000000..a616d63 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level26.png differ diff --git a/mods/tutorial/textures/tutorial_level27.png b/mods/tutorial/textures/tutorial_level27.png new file mode 100644 index 0000000..929ccfe Binary files /dev/null and b/mods/tutorial/textures/tutorial_level27.png differ diff --git a/mods/tutorial/textures/tutorial_level28.png b/mods/tutorial/textures/tutorial_level28.png new file mode 100644 index 0000000..ea5a551 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level28.png differ diff --git a/mods/tutorial/textures/tutorial_level29.png b/mods/tutorial/textures/tutorial_level29.png new file mode 100644 index 0000000..1e80df8 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level29.png differ diff --git a/mods/tutorial/textures/tutorial_level3.png b/mods/tutorial/textures/tutorial_level3.png new file mode 100644 index 0000000..fa70f2c Binary files /dev/null and b/mods/tutorial/textures/tutorial_level3.png differ diff --git a/mods/tutorial/textures/tutorial_level30.png b/mods/tutorial/textures/tutorial_level30.png new file mode 100644 index 0000000..53ac67e Binary files /dev/null and b/mods/tutorial/textures/tutorial_level30.png differ diff --git a/mods/tutorial/textures/tutorial_level31.png b/mods/tutorial/textures/tutorial_level31.png new file mode 100644 index 0000000..b0ab54f Binary files /dev/null and b/mods/tutorial/textures/tutorial_level31.png differ diff --git a/mods/tutorial/textures/tutorial_level32.png b/mods/tutorial/textures/tutorial_level32.png new file mode 100644 index 0000000..f003cca Binary files /dev/null and b/mods/tutorial/textures/tutorial_level32.png differ diff --git a/mods/tutorial/textures/tutorial_level33.png b/mods/tutorial/textures/tutorial_level33.png new file mode 100644 index 0000000..3abdf7a Binary files /dev/null and b/mods/tutorial/textures/tutorial_level33.png differ diff --git a/mods/tutorial/textures/tutorial_level34.png b/mods/tutorial/textures/tutorial_level34.png new file mode 100644 index 0000000..9463424 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level34.png differ diff --git a/mods/tutorial/textures/tutorial_level35.png b/mods/tutorial/textures/tutorial_level35.png new file mode 100644 index 0000000..5017b9b Binary files /dev/null and b/mods/tutorial/textures/tutorial_level35.png differ diff --git a/mods/tutorial/textures/tutorial_level36.png b/mods/tutorial/textures/tutorial_level36.png new file mode 100644 index 0000000..fd7c028 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level36.png differ diff --git a/mods/tutorial/textures/tutorial_level37.png b/mods/tutorial/textures/tutorial_level37.png new file mode 100644 index 0000000..a3fe2bc Binary files /dev/null and b/mods/tutorial/textures/tutorial_level37.png differ diff --git a/mods/tutorial/textures/tutorial_level38.png b/mods/tutorial/textures/tutorial_level38.png new file mode 100644 index 0000000..f310a22 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level38.png differ diff --git a/mods/tutorial/textures/tutorial_level39.png b/mods/tutorial/textures/tutorial_level39.png new file mode 100644 index 0000000..4cb2d0c Binary files /dev/null and b/mods/tutorial/textures/tutorial_level39.png differ diff --git a/mods/tutorial/textures/tutorial_level4.png b/mods/tutorial/textures/tutorial_level4.png new file mode 100644 index 0000000..82c0349 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level4.png differ diff --git a/mods/tutorial/textures/tutorial_level40.png b/mods/tutorial/textures/tutorial_level40.png new file mode 100644 index 0000000..fff5cdc Binary files /dev/null and b/mods/tutorial/textures/tutorial_level40.png differ diff --git a/mods/tutorial/textures/tutorial_level41.png b/mods/tutorial/textures/tutorial_level41.png new file mode 100644 index 0000000..3b9ed88 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level41.png differ diff --git a/mods/tutorial/textures/tutorial_level42.png b/mods/tutorial/textures/tutorial_level42.png new file mode 100644 index 0000000..2949f25 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level42.png differ diff --git a/mods/tutorial/textures/tutorial_level43.png b/mods/tutorial/textures/tutorial_level43.png new file mode 100644 index 0000000..55b007c Binary files /dev/null and b/mods/tutorial/textures/tutorial_level43.png differ diff --git a/mods/tutorial/textures/tutorial_level44.png b/mods/tutorial/textures/tutorial_level44.png new file mode 100644 index 0000000..8f977e5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level44.png differ diff --git a/mods/tutorial/textures/tutorial_level45.png b/mods/tutorial/textures/tutorial_level45.png new file mode 100644 index 0000000..045b08b Binary files /dev/null and b/mods/tutorial/textures/tutorial_level45.png differ diff --git a/mods/tutorial/textures/tutorial_level46.png b/mods/tutorial/textures/tutorial_level46.png new file mode 100644 index 0000000..4848000 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level46.png differ diff --git a/mods/tutorial/textures/tutorial_level47.png b/mods/tutorial/textures/tutorial_level47.png new file mode 100644 index 0000000..afa0549 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level47.png differ diff --git a/mods/tutorial/textures/tutorial_level48.png b/mods/tutorial/textures/tutorial_level48.png new file mode 100644 index 0000000..fe797b7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level48.png differ diff --git a/mods/tutorial/textures/tutorial_level49.png b/mods/tutorial/textures/tutorial_level49.png new file mode 100644 index 0000000..1fc667a Binary files /dev/null and b/mods/tutorial/textures/tutorial_level49.png differ diff --git a/mods/tutorial/textures/tutorial_level5.png b/mods/tutorial/textures/tutorial_level5.png new file mode 100644 index 0000000..410c610 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level5.png differ diff --git a/mods/tutorial/textures/tutorial_level50.png b/mods/tutorial/textures/tutorial_level50.png new file mode 100644 index 0000000..e620c5c Binary files /dev/null and b/mods/tutorial/textures/tutorial_level50.png differ diff --git a/mods/tutorial/textures/tutorial_level51.png b/mods/tutorial/textures/tutorial_level51.png new file mode 100644 index 0000000..bbc5138 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level51.png differ diff --git a/mods/tutorial/textures/tutorial_level52.png b/mods/tutorial/textures/tutorial_level52.png new file mode 100644 index 0000000..64076aa Binary files /dev/null and b/mods/tutorial/textures/tutorial_level52.png differ diff --git a/mods/tutorial/textures/tutorial_level53.png b/mods/tutorial/textures/tutorial_level53.png new file mode 100644 index 0000000..3c0d226 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level53.png differ diff --git a/mods/tutorial/textures/tutorial_level54.png b/mods/tutorial/textures/tutorial_level54.png new file mode 100644 index 0000000..d1d0aa1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level54.png differ diff --git a/mods/tutorial/textures/tutorial_level55.png b/mods/tutorial/textures/tutorial_level55.png new file mode 100644 index 0000000..d7662b7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level55.png differ diff --git a/mods/tutorial/textures/tutorial_level56.png b/mods/tutorial/textures/tutorial_level56.png new file mode 100644 index 0000000..b770c97 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level56.png differ diff --git a/mods/tutorial/textures/tutorial_level57.png b/mods/tutorial/textures/tutorial_level57.png new file mode 100644 index 0000000..1465b7f Binary files /dev/null and b/mods/tutorial/textures/tutorial_level57.png differ diff --git a/mods/tutorial/textures/tutorial_level58.png b/mods/tutorial/textures/tutorial_level58.png new file mode 100644 index 0000000..599a3cb Binary files /dev/null and b/mods/tutorial/textures/tutorial_level58.png differ diff --git a/mods/tutorial/textures/tutorial_level59.png b/mods/tutorial/textures/tutorial_level59.png new file mode 100644 index 0000000..78d1fd9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level59.png differ diff --git a/mods/tutorial/textures/tutorial_level6.png b/mods/tutorial/textures/tutorial_level6.png new file mode 100644 index 0000000..a77e166 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level6.png differ diff --git a/mods/tutorial/textures/tutorial_level60.png b/mods/tutorial/textures/tutorial_level60.png new file mode 100644 index 0000000..8a1a2dd Binary files /dev/null and b/mods/tutorial/textures/tutorial_level60.png differ diff --git a/mods/tutorial/textures/tutorial_level61.png b/mods/tutorial/textures/tutorial_level61.png new file mode 100644 index 0000000..8aa19e5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level61.png differ diff --git a/mods/tutorial/textures/tutorial_level62.png b/mods/tutorial/textures/tutorial_level62.png new file mode 100644 index 0000000..5c516db Binary files /dev/null and b/mods/tutorial/textures/tutorial_level62.png differ diff --git a/mods/tutorial/textures/tutorial_level63.png b/mods/tutorial/textures/tutorial_level63.png new file mode 100644 index 0000000..8789b18 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level63.png differ diff --git a/mods/tutorial/textures/tutorial_level64.png b/mods/tutorial/textures/tutorial_level64.png new file mode 100644 index 0000000..76d317c Binary files /dev/null and b/mods/tutorial/textures/tutorial_level64.png differ diff --git a/mods/tutorial/textures/tutorial_level65.png b/mods/tutorial/textures/tutorial_level65.png new file mode 100644 index 0000000..5fa9058 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level65.png differ diff --git a/mods/tutorial/textures/tutorial_level66.png b/mods/tutorial/textures/tutorial_level66.png new file mode 100644 index 0000000..623592c Binary files /dev/null and b/mods/tutorial/textures/tutorial_level66.png differ diff --git a/mods/tutorial/textures/tutorial_level67.png b/mods/tutorial/textures/tutorial_level67.png new file mode 100644 index 0000000..7f5671f Binary files /dev/null and b/mods/tutorial/textures/tutorial_level67.png differ diff --git a/mods/tutorial/textures/tutorial_level68.png b/mods/tutorial/textures/tutorial_level68.png new file mode 100644 index 0000000..7cc91f1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level68.png differ diff --git a/mods/tutorial/textures/tutorial_level69.png b/mods/tutorial/textures/tutorial_level69.png new file mode 100644 index 0000000..d780d50 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level69.png differ diff --git a/mods/tutorial/textures/tutorial_level7.png b/mods/tutorial/textures/tutorial_level7.png new file mode 100644 index 0000000..ee88c48 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level7.png differ diff --git a/mods/tutorial/textures/tutorial_level70.png b/mods/tutorial/textures/tutorial_level70.png new file mode 100644 index 0000000..e7f0080 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level70.png differ diff --git a/mods/tutorial/textures/tutorial_level71.png b/mods/tutorial/textures/tutorial_level71.png new file mode 100644 index 0000000..957adf0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level71.png differ diff --git a/mods/tutorial/textures/tutorial_level72.png b/mods/tutorial/textures/tutorial_level72.png new file mode 100644 index 0000000..eeaff6d Binary files /dev/null and b/mods/tutorial/textures/tutorial_level72.png differ diff --git a/mods/tutorial/textures/tutorial_level73.png b/mods/tutorial/textures/tutorial_level73.png new file mode 100644 index 0000000..ee06fa2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level73.png differ diff --git a/mods/tutorial/textures/tutorial_level74.png b/mods/tutorial/textures/tutorial_level74.png new file mode 100644 index 0000000..8297ea6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level74.png differ diff --git a/mods/tutorial/textures/tutorial_level75.png b/mods/tutorial/textures/tutorial_level75.png new file mode 100644 index 0000000..6a2c595 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level75.png differ diff --git a/mods/tutorial/textures/tutorial_level76.png b/mods/tutorial/textures/tutorial_level76.png new file mode 100644 index 0000000..0994123 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level76.png differ diff --git a/mods/tutorial/textures/tutorial_level77.png b/mods/tutorial/textures/tutorial_level77.png new file mode 100644 index 0000000..48798d2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level77.png differ diff --git a/mods/tutorial/textures/tutorial_level78.png b/mods/tutorial/textures/tutorial_level78.png new file mode 100644 index 0000000..e233023 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level78.png differ diff --git a/mods/tutorial/textures/tutorial_level79.png b/mods/tutorial/textures/tutorial_level79.png new file mode 100644 index 0000000..fc38ad3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level79.png differ diff --git a/mods/tutorial/textures/tutorial_level8.png b/mods/tutorial/textures/tutorial_level8.png new file mode 100644 index 0000000..39a79e1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level8.png differ diff --git a/mods/tutorial/textures/tutorial_level80.png b/mods/tutorial/textures/tutorial_level80.png new file mode 100644 index 0000000..8b73a84 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level80.png differ diff --git a/mods/tutorial/textures/tutorial_level81.png b/mods/tutorial/textures/tutorial_level81.png new file mode 100644 index 0000000..4d28bb4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level81.png differ diff --git a/mods/tutorial/textures/tutorial_level82.png b/mods/tutorial/textures/tutorial_level82.png new file mode 100644 index 0000000..8359bdb Binary files /dev/null and b/mods/tutorial/textures/tutorial_level82.png differ diff --git a/mods/tutorial/textures/tutorial_level83.png b/mods/tutorial/textures/tutorial_level83.png new file mode 100644 index 0000000..e45dce9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level83.png differ diff --git a/mods/tutorial/textures/tutorial_level84.png b/mods/tutorial/textures/tutorial_level84.png new file mode 100644 index 0000000..02c2db9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level84.png differ diff --git a/mods/tutorial/textures/tutorial_level85.png b/mods/tutorial/textures/tutorial_level85.png new file mode 100644 index 0000000..eced4ac Binary files /dev/null and b/mods/tutorial/textures/tutorial_level85.png differ diff --git a/mods/tutorial/textures/tutorial_level86.png b/mods/tutorial/textures/tutorial_level86.png new file mode 100644 index 0000000..a55e4dd Binary files /dev/null and b/mods/tutorial/textures/tutorial_level86.png differ diff --git a/mods/tutorial/textures/tutorial_level87.png b/mods/tutorial/textures/tutorial_level87.png new file mode 100644 index 0000000..36903c5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level87.png differ diff --git a/mods/tutorial/textures/tutorial_level88.png b/mods/tutorial/textures/tutorial_level88.png new file mode 100644 index 0000000..f377ba0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level88.png differ diff --git a/mods/tutorial/textures/tutorial_level89.png b/mods/tutorial/textures/tutorial_level89.png new file mode 100644 index 0000000..5585dda Binary files /dev/null and b/mods/tutorial/textures/tutorial_level89.png differ diff --git a/mods/tutorial/textures/tutorial_level9.png b/mods/tutorial/textures/tutorial_level9.png new file mode 100644 index 0000000..72a88b3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level9.png differ diff --git a/mods/tutorial/textures/tutorial_level90.png b/mods/tutorial/textures/tutorial_level90.png new file mode 100644 index 0000000..b783d3d Binary files /dev/null and b/mods/tutorial/textures/tutorial_level90.png differ diff --git a/mods/tutorial/textures/tutorial_level91.png b/mods/tutorial/textures/tutorial_level91.png new file mode 100644 index 0000000..41d46fd Binary files /dev/null and b/mods/tutorial/textures/tutorial_level91.png differ diff --git a/mods/tutorial/textures/tutorial_level92.png b/mods/tutorial/textures/tutorial_level92.png new file mode 100644 index 0000000..1888f9e Binary files /dev/null and b/mods/tutorial/textures/tutorial_level92.png differ diff --git a/mods/tutorial/textures/tutorial_level93.png b/mods/tutorial/textures/tutorial_level93.png new file mode 100644 index 0000000..2e5659e Binary files /dev/null and b/mods/tutorial/textures/tutorial_level93.png differ diff --git a/mods/tutorial/textures/tutorial_level94.png b/mods/tutorial/textures/tutorial_level94.png new file mode 100644 index 0000000..2158675 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level94.png differ diff --git a/mods/tutorial/textures/tutorial_level95.png b/mods/tutorial/textures/tutorial_level95.png new file mode 100644 index 0000000..0c723cb Binary files /dev/null and b/mods/tutorial/textures/tutorial_level95.png differ diff --git a/mods/tutorial/textures/tutorial_level96.png b/mods/tutorial/textures/tutorial_level96.png new file mode 100644 index 0000000..ca52c13 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level96.png differ diff --git a/mods/tutorial/textures/tutorial_level97.png b/mods/tutorial/textures/tutorial_level97.png new file mode 100644 index 0000000..abffbe3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level97.png differ diff --git a/mods/tutorial/textures/tutorial_level98.png b/mods/tutorial/textures/tutorial_level98.png new file mode 100644 index 0000000..a85fe18 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level98.png differ diff --git a/mods/tutorial/textures/tutorial_level99.png b/mods/tutorial/textures/tutorial_level99.png new file mode 100644 index 0000000..b7f782f Binary files /dev/null and b/mods/tutorial/textures/tutorial_level99.png differ diff --git a/mods/tutorial/textures/tutorial_levelMAX.png b/mods/tutorial/textures/tutorial_levelMAX.png new file mode 100644 index 0000000..df672ca Binary files /dev/null and b/mods/tutorial/textures/tutorial_levelMAX.png differ diff --git a/mods/tutorial/textures/tutorial_level_blau.png b/mods/tutorial/textures/tutorial_level_blau.png new file mode 100644 index 0000000..4ff95f9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level_blau.png differ diff --git a/mods/tutorial/textures/tutorial_level_cyan.png b/mods/tutorial/textures/tutorial_level_cyan.png new file mode 100644 index 0000000..bde904f Binary files /dev/null and b/mods/tutorial/textures/tutorial_level_cyan.png differ diff --git a/mods/tutorial/textures/tutorial_level_gelb.png b/mods/tutorial/textures/tutorial_level_gelb.png new file mode 100644 index 0000000..36931e2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level_gelb.png differ diff --git a/mods/tutorial/textures/tutorial_level_grau.png b/mods/tutorial/textures/tutorial_level_grau.png new file mode 100644 index 0000000..f66c596 Binary files /dev/null and b/mods/tutorial/textures/tutorial_level_grau.png differ diff --git a/mods/tutorial/textures/tutorial_level_green.png b/mods/tutorial/textures/tutorial_level_green.png new file mode 100644 index 0000000..41b08ce Binary files /dev/null and b/mods/tutorial/textures/tutorial_level_green.png differ diff --git a/mods/tutorial/textures/tutorial_level_rot.png b/mods/tutorial/textures/tutorial_level_rot.png new file mode 100644 index 0000000..aaa15aa Binary files /dev/null and b/mods/tutorial/textures/tutorial_level_rot.png differ diff --git a/mods/tutorial/textures/tutorial_level_schluessel.png b/mods/tutorial/textures/tutorial_level_schluessel.png new file mode 100644 index 0000000..6d9141d Binary files /dev/null and b/mods/tutorial/textures/tutorial_level_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_lightstone.png b/mods/tutorial/textures/tutorial_lightstone.png new file mode 100644 index 0000000..fe73730 Binary files /dev/null and b/mods/tutorial/textures/tutorial_lightstone.png differ diff --git a/mods/tutorial/textures/tutorial_lightstone_red_off.png b/mods/tutorial/textures/tutorial_lightstone_red_off.png new file mode 100644 index 0000000..3c828b2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_lightstone_red_off.png differ diff --git a/mods/tutorial/textures/tutorial_lightstone_red_on.png b/mods/tutorial/textures/tutorial_lightstone_red_on.png new file mode 100644 index 0000000..512b0fe Binary files /dev/null and b/mods/tutorial/textures/tutorial_lightstone_red_on.png differ diff --git a/mods/tutorial/textures/tutorial_lila_erz1.png b/mods/tutorial/textures/tutorial_lila_erz1.png new file mode 100644 index 0000000..6baf976 Binary files /dev/null and b/mods/tutorial/textures/tutorial_lila_erz1.png differ diff --git a/mods/tutorial/textures/tutorial_lila_erz2.png b/mods/tutorial/textures/tutorial_lila_erz2.png new file mode 100644 index 0000000..c5948a9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_lila_erz2.png differ diff --git a/mods/tutorial/textures/tutorial_lila_erz3.png b/mods/tutorial/textures/tutorial_lila_erz3.png new file mode 100644 index 0000000..03c102b Binary files /dev/null and b/mods/tutorial/textures/tutorial_lila_erz3.png differ diff --git a/mods/tutorial/textures/tutorial_lilabattleaxe.png b/mods/tutorial/textures/tutorial_lilabattleaxe.png new file mode 100644 index 0000000..849569c Binary files /dev/null and b/mods/tutorial/textures/tutorial_lilabattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_lilabattleaxe2.png b/mods/tutorial/textures/tutorial_lilabattleaxe2.png new file mode 100644 index 0000000..ce7dced Binary files /dev/null and b/mods/tutorial/textures/tutorial_lilabattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_medallion.png b/mods/tutorial/textures/tutorial_medallion.png new file mode 100644 index 0000000..533f4b7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_medallion.png differ diff --git a/mods/tutorial/textures/tutorial_megablock1.png b/mods/tutorial/textures/tutorial_megablock1.png new file mode 100644 index 0000000..a09bcdc Binary files /dev/null and b/mods/tutorial/textures/tutorial_megablock1.png differ diff --git a/mods/tutorial/textures/tutorial_megablock2.png b/mods/tutorial/textures/tutorial_megablock2.png new file mode 100644 index 0000000..d1ae833 Binary files /dev/null and b/mods/tutorial/textures/tutorial_megablock2.png differ diff --git a/mods/tutorial/textures/tutorial_megablock3.png b/mods/tutorial/textures/tutorial_megablock3.png new file mode 100644 index 0000000..6d80d81 Binary files /dev/null and b/mods/tutorial/textures/tutorial_megablock3.png differ diff --git a/mods/tutorial/textures/tutorial_megablock4.png b/mods/tutorial/textures/tutorial_megablock4.png new file mode 100644 index 0000000..79b53b3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_megablock4.png differ diff --git a/mods/tutorial/textures/tutorial_mineral_black.png b/mods/tutorial/textures/tutorial_mineral_black.png new file mode 100644 index 0000000..7983b72 Binary files /dev/null and b/mods/tutorial/textures/tutorial_mineral_black.png differ diff --git a/mods/tutorial/textures/tutorial_mineral_blau.png b/mods/tutorial/textures/tutorial_mineral_blau.png new file mode 100644 index 0000000..d38cbe5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_mineral_blau.png differ diff --git a/mods/tutorial/textures/tutorial_mineral_gelb.png b/mods/tutorial/textures/tutorial_mineral_gelb.png new file mode 100644 index 0000000..60b5c51 Binary files /dev/null and b/mods/tutorial/textures/tutorial_mineral_gelb.png differ diff --git a/mods/tutorial/textures/tutorial_mineral_gruen.png b/mods/tutorial/textures/tutorial_mineral_gruen.png new file mode 100644 index 0000000..4904e05 Binary files /dev/null and b/mods/tutorial/textures/tutorial_mineral_gruen.png differ diff --git a/mods/tutorial/textures/tutorial_mineral_rosa.png b/mods/tutorial/textures/tutorial_mineral_rosa.png new file mode 100644 index 0000000..354a89d Binary files /dev/null and b/mods/tutorial/textures/tutorial_mineral_rosa.png differ diff --git a/mods/tutorial/textures/tutorial_mineral_rot.png b/mods/tutorial/textures/tutorial_mineral_rot.png new file mode 100644 index 0000000..05c7841 Binary files /dev/null and b/mods/tutorial/textures/tutorial_mineral_rot.png differ diff --git a/mods/tutorial/textures/tutorial_mineral_turkis.png b/mods/tutorial/textures/tutorial_mineral_turkis.png new file mode 100644 index 0000000..2d34a14 Binary files /dev/null and b/mods/tutorial/textures/tutorial_mineral_turkis.png differ diff --git a/mods/tutorial/textures/tutorial_mineral_uran.png b/mods/tutorial/textures/tutorial_mineral_uran.png new file mode 100644 index 0000000..c3953f1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_mineral_uran.png differ diff --git a/mods/tutorial/textures/tutorial_mineral_withe.png b/mods/tutorial/textures/tutorial_mineral_withe.png new file mode 100644 index 0000000..9f70fb1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_mineral_withe.png differ diff --git a/mods/tutorial/textures/tutorial_monster_entverner.png b/mods/tutorial/textures/tutorial_monster_entverner.png new file mode 100644 index 0000000..ab57077 Binary files /dev/null and b/mods/tutorial/textures/tutorial_monster_entverner.png differ diff --git a/mods/tutorial/textures/tutorial_mummy_egg.png b/mods/tutorial/textures/tutorial_mummy_egg.png new file mode 100644 index 0000000..a93b95e Binary files /dev/null and b/mods/tutorial/textures/tutorial_mummy_egg.png differ diff --git a/mods/tutorial/textures/tutorial_mummyball.png b/mods/tutorial/textures/tutorial_mummyball.png new file mode 100644 index 0000000..9646bc6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_mummyball.png differ diff --git a/mods/tutorial/textures/tutorial_obsidian2.png b/mods/tutorial/textures/tutorial_obsidian2.png new file mode 100644 index 0000000..7420168 Binary files /dev/null and b/mods/tutorial/textures/tutorial_obsidian2.png differ diff --git a/mods/tutorial/textures/tutorial_obsidian3.png b/mods/tutorial/textures/tutorial_obsidian3.png new file mode 100644 index 0000000..dec76a9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_obsidian3.png differ diff --git a/mods/tutorial/textures/tutorial_obsidian4.png b/mods/tutorial/textures/tutorial_obsidian4.png new file mode 100644 index 0000000..5e4dcf7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_obsidian4.png differ diff --git a/mods/tutorial/textures/tutorial_obsidian5.png b/mods/tutorial/textures/tutorial_obsidian5.png new file mode 100644 index 0000000..698a01f Binary files /dev/null and b/mods/tutorial/textures/tutorial_obsidian5.png differ diff --git a/mods/tutorial/textures/tutorial_obsidian6.png b/mods/tutorial/textures/tutorial_obsidian6.png new file mode 100644 index 0000000..1c40612 Binary files /dev/null and b/mods/tutorial/textures/tutorial_obsidian6.png differ diff --git a/mods/tutorial/textures/tutorial_patrone.png b/mods/tutorial/textures/tutorial_patrone.png new file mode 100644 index 0000000..5d8a8d5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_patrone.png differ diff --git a/mods/tutorial/textures/tutorial_pingu.png b/mods/tutorial/textures/tutorial_pingu.png new file mode 100644 index 0000000..ca79e09 Binary files /dev/null and b/mods/tutorial/textures/tutorial_pingu.png differ diff --git a/mods/tutorial/textures/tutorial_pistole.png b/mods/tutorial/textures/tutorial_pistole.png new file mode 100644 index 0000000..4117ec2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_pistole.png differ diff --git a/mods/tutorial/textures/tutorial_plutonium.png b/mods/tutorial/textures/tutorial_plutonium.png new file mode 100644 index 0000000..c76056f Binary files /dev/null and b/mods/tutorial/textures/tutorial_plutonium.png differ diff --git a/mods/tutorial/textures/tutorial_plutonium_ingot.png b/mods/tutorial/textures/tutorial_plutonium_ingot.png new file mode 100644 index 0000000..58fc2ff Binary files /dev/null and b/mods/tutorial/textures/tutorial_plutonium_ingot.png differ diff --git a/mods/tutorial/textures/tutorial_plutonium_ingot2.png b/mods/tutorial/textures/tutorial_plutonium_ingot2.png new file mode 100644 index 0000000..db73d66 Binary files /dev/null and b/mods/tutorial/textures/tutorial_plutonium_ingot2.png differ diff --git a/mods/tutorial/textures/tutorial_plutonium_lump.png b/mods/tutorial/textures/tutorial_plutonium_lump.png new file mode 100644 index 0000000..c306afd Binary files /dev/null and b/mods/tutorial/textures/tutorial_plutonium_lump.png differ diff --git a/mods/tutorial/textures/tutorial_protection_schluessel1.png b/mods/tutorial/textures/tutorial_protection_schluessel1.png new file mode 100644 index 0000000..9ee784f Binary files /dev/null and b/mods/tutorial/textures/tutorial_protection_schluessel1.png differ diff --git a/mods/tutorial/textures/tutorial_protection_schluessel2.png b/mods/tutorial/textures/tutorial_protection_schluessel2.png new file mode 100644 index 0000000..a347010 Binary files /dev/null and b/mods/tutorial/textures/tutorial_protection_schluessel2.png differ diff --git a/mods/tutorial/textures/tutorial_protection_schluessel3.png b/mods/tutorial/textures/tutorial_protection_schluessel3.png new file mode 100644 index 0000000..4645d57 Binary files /dev/null and b/mods/tutorial/textures/tutorial_protection_schluessel3.png differ diff --git a/mods/tutorial/textures/tutorial_purple_tear.png b/mods/tutorial/textures/tutorial_purple_tear.png new file mode 100644 index 0000000..520f3c2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_purple_tear.png differ diff --git a/mods/tutorial/textures/tutorial_radioaktive.png b/mods/tutorial/textures/tutorial_radioaktive.png new file mode 100644 index 0000000..374dd88 Binary files /dev/null and b/mods/tutorial/textures/tutorial_radioaktive.png differ diff --git a/mods/tutorial/textures/tutorial_radioaktiveball.png b/mods/tutorial/textures/tutorial_radioaktiveball.png new file mode 100644 index 0000000..490a520 Binary files /dev/null and b/mods/tutorial/textures/tutorial_radioaktiveball.png differ diff --git a/mods/tutorial/textures/tutorial_radioaktivebattleaxe.png b/mods/tutorial/textures/tutorial_radioaktivebattleaxe.png new file mode 100644 index 0000000..f17fe3f Binary files /dev/null and b/mods/tutorial/textures/tutorial_radioaktivebattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_raketenwerfer.png b/mods/tutorial/textures/tutorial_raketenwerfer.png new file mode 100644 index 0000000..8a87a4d Binary files /dev/null and b/mods/tutorial/textures/tutorial_raketenwerfer.png differ diff --git a/mods/tutorial/textures/tutorial_reaktor_core.png b/mods/tutorial/textures/tutorial_reaktor_core.png new file mode 100644 index 0000000..eb8e5f5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_reaktor_core.png differ diff --git a/mods/tutorial/textures/tutorial_red_tear.png b/mods/tutorial/textures/tutorial_red_tear.png new file mode 100644 index 0000000..3b6ab23 Binary files /dev/null and b/mods/tutorial/textures/tutorial_red_tear.png differ diff --git a/mods/tutorial/textures/tutorial_redstone.png b/mods/tutorial/textures/tutorial_redstone.png new file mode 100644 index 0000000..507ff41 Binary files /dev/null and b/mods/tutorial/textures/tutorial_redstone.png differ diff --git a/mods/tutorial/textures/tutorial_regnum.png b/mods/tutorial/textures/tutorial_regnum.png new file mode 100644 index 0000000..6d77ebb Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnum.png differ diff --git a/mods/tutorial/textures/tutorial_regnum_ore.png b/mods/tutorial/textures/tutorial_regnum_ore.png new file mode 100644 index 0000000..05f827e Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnum_ore.png differ diff --git a/mods/tutorial/textures/tutorial_regnum_part.png b/mods/tutorial/textures/tutorial_regnum_part.png new file mode 100644 index 0000000..df2ab60 Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnum_part.png differ diff --git a/mods/tutorial/textures/tutorial_regnum_pixel_blau.png b/mods/tutorial/textures/tutorial_regnum_pixel_blau.png new file mode 100644 index 0000000..5312093 Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnum_pixel_blau.png differ diff --git a/mods/tutorial/textures/tutorial_regnum_pixel_gold.png b/mods/tutorial/textures/tutorial_regnum_pixel_gold.png new file mode 100644 index 0000000..56838ec Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnum_pixel_gold.png differ diff --git a/mods/tutorial/textures/tutorial_regnum_pixel_gruen.png b/mods/tutorial/textures/tutorial_regnum_pixel_gruen.png new file mode 100644 index 0000000..112d7b0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnum_pixel_gruen.png differ diff --git a/mods/tutorial/textures/tutorial_regnum_pixel_lila.png b/mods/tutorial/textures/tutorial_regnum_pixel_lila.png new file mode 100644 index 0000000..87deb31 Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnum_pixel_lila.png differ diff --git a/mods/tutorial/textures/tutorial_regnum_pixel_rot.png b/mods/tutorial/textures/tutorial_regnum_pixel_rot.png new file mode 100644 index 0000000..6b9b55e Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnum_pixel_rot.png differ diff --git a/mods/tutorial/textures/tutorial_regnum_schluessel.png b/mods/tutorial/textures/tutorial_regnum_schluessel.png new file mode 100644 index 0000000..adc55bf Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnum_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_regnumbattleaxe.png b/mods/tutorial/textures/tutorial_regnumbattleaxe.png new file mode 100644 index 0000000..d05f087 Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnumbattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_regnumgun.png b/mods/tutorial/textures/tutorial_regnumgun.png new file mode 100644 index 0000000..c47bd09 Binary files /dev/null and b/mods/tutorial/textures/tutorial_regnumgun.png differ diff --git a/mods/tutorial/textures/tutorial_rocket_gun.png b/mods/tutorial/textures/tutorial_rocket_gun.png new file mode 100644 index 0000000..a685820 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rocket_gun.png differ diff --git a/mods/tutorial/textures/tutorial_rosa.png b/mods/tutorial/textures/tutorial_rosa.png new file mode 100644 index 0000000..0e01619 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rosa.png differ diff --git a/mods/tutorial/textures/tutorial_rosa_block.png b/mods/tutorial/textures/tutorial_rosa_block.png new file mode 100644 index 0000000..80a1d03 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rosa_block.png differ diff --git a/mods/tutorial/textures/tutorial_rosa_block2.png b/mods/tutorial/textures/tutorial_rosa_block2.png new file mode 100644 index 0000000..979b62f Binary files /dev/null and b/mods/tutorial/textures/tutorial_rosa_block2.png differ diff --git a/mods/tutorial/textures/tutorial_rosa_block3.png b/mods/tutorial/textures/tutorial_rosa_block3.png new file mode 100644 index 0000000..8483ba1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rosa_block3.png differ diff --git a/mods/tutorial/textures/tutorial_rosa_gebrant.png b/mods/tutorial/textures/tutorial_rosa_gebrant.png new file mode 100644 index 0000000..66d9914 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rosa_gebrant.png differ diff --git a/mods/tutorial/textures/tutorial_rosa_gebrant_block.png b/mods/tutorial/textures/tutorial_rosa_gebrant_block.png new file mode 100644 index 0000000..feadb1d Binary files /dev/null and b/mods/tutorial/textures/tutorial_rosa_gebrant_block.png differ diff --git a/mods/tutorial/textures/tutorial_rot.png b/mods/tutorial/textures/tutorial_rot.png new file mode 100644 index 0000000..91ca85a Binary files /dev/null and b/mods/tutorial/textures/tutorial_rot.png differ diff --git a/mods/tutorial/textures/tutorial_rot_block.png b/mods/tutorial/textures/tutorial_rot_block.png new file mode 100644 index 0000000..e5a8000 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rot_block.png differ diff --git a/mods/tutorial/textures/tutorial_rot_block2.png b/mods/tutorial/textures/tutorial_rot_block2.png new file mode 100644 index 0000000..f0140a1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rot_block2.png differ diff --git a/mods/tutorial/textures/tutorial_rot_block3.png b/mods/tutorial/textures/tutorial_rot_block3.png new file mode 100644 index 0000000..05344b5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rot_block3.png differ diff --git a/mods/tutorial/textures/tutorial_rot_erz.png b/mods/tutorial/textures/tutorial_rot_erz.png new file mode 100644 index 0000000..8d9b5c3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rot_erz.png differ diff --git a/mods/tutorial/textures/tutorial_rot_gebrant.png b/mods/tutorial/textures/tutorial_rot_gebrant.png new file mode 100644 index 0000000..4868b60 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rot_gebrant.png differ diff --git a/mods/tutorial/textures/tutorial_rot_gebrant_block.png b/mods/tutorial/textures/tutorial_rot_gebrant_block.png new file mode 100644 index 0000000..57e0515 Binary files /dev/null and b/mods/tutorial/textures/tutorial_rot_gebrant_block.png differ diff --git a/mods/tutorial/textures/tutorial_solar_panel.png b/mods/tutorial/textures/tutorial_solar_panel.png new file mode 100644 index 0000000..a7b0f75 Binary files /dev/null and b/mods/tutorial/textures/tutorial_solar_panel.png differ diff --git a/mods/tutorial/textures/tutorial_spawner.png b/mods/tutorial/textures/tutorial_spawner.png new file mode 100644 index 0000000..06037b4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_spawner.png differ diff --git a/mods/tutorial/textures/tutorial_stampfi_ei.png b/mods/tutorial/textures/tutorial_stampfi_ei.png new file mode 100644 index 0000000..3bc1a26 Binary files /dev/null and b/mods/tutorial/textures/tutorial_stampfi_ei.png differ diff --git a/mods/tutorial/textures/tutorial_stone_coal_lump.png b/mods/tutorial/textures/tutorial_stone_coal_lump.png new file mode 100644 index 0000000..5ec2aee Binary files /dev/null and b/mods/tutorial/textures/tutorial_stone_coal_lump.png differ diff --git a/mods/tutorial/textures/tutorial_super_ultrabattleaxe.png b/mods/tutorial/textures/tutorial_super_ultrabattleaxe.png new file mode 100644 index 0000000..697c88a Binary files /dev/null and b/mods/tutorial/textures/tutorial_super_ultrabattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_superbattleaxe1.png b/mods/tutorial/textures/tutorial_superbattleaxe1.png new file mode 100644 index 0000000..70cf63f Binary files /dev/null and b/mods/tutorial/textures/tutorial_superbattleaxe1.png differ diff --git a/mods/tutorial/textures/tutorial_superbattleaxe2.png b/mods/tutorial/textures/tutorial_superbattleaxe2.png new file mode 100644 index 0000000..089e986 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superbattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_superbattleaxe3.png b/mods/tutorial/textures/tutorial_superbattleaxe3.png new file mode 100644 index 0000000..931f6e5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superbattleaxe3.png differ diff --git a/mods/tutorial/textures/tutorial_superbattleaxe4.png b/mods/tutorial/textures/tutorial_superbattleaxe4.png new file mode 100644 index 0000000..74d217c Binary files /dev/null and b/mods/tutorial/textures/tutorial_superbattleaxe4.png differ diff --git a/mods/tutorial/textures/tutorial_superblock1.png b/mods/tutorial/textures/tutorial_superblock1.png new file mode 100644 index 0000000..2ec99b4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superblock1.png differ diff --git a/mods/tutorial/textures/tutorial_superblock2.png b/mods/tutorial/textures/tutorial_superblock2.png new file mode 100644 index 0000000..99abe18 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superblock2.png differ diff --git a/mods/tutorial/textures/tutorial_superblock3.png b/mods/tutorial/textures/tutorial_superblock3.png new file mode 100644 index 0000000..a2aca2d Binary files /dev/null and b/mods/tutorial/textures/tutorial_superblock3.png differ diff --git a/mods/tutorial/textures/tutorial_superblock4.png b/mods/tutorial/textures/tutorial_superblock4.png new file mode 100644 index 0000000..c36af30 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superblock4.png differ diff --git a/mods/tutorial/textures/tutorial_superblock5.png b/mods/tutorial/textures/tutorial_superblock5.png new file mode 100644 index 0000000..d95a401 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superblock5.png differ diff --git a/mods/tutorial/textures/tutorial_superblock6.png b/mods/tutorial/textures/tutorial_superblock6.png new file mode 100644 index 0000000..1408bb8 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superblock6.png differ diff --git a/mods/tutorial/textures/tutorial_superblock7.png b/mods/tutorial/textures/tutorial_superblock7.png new file mode 100644 index 0000000..724a3ba Binary files /dev/null and b/mods/tutorial/textures/tutorial_superblock7.png differ diff --git a/mods/tutorial/textures/tutorial_superblock8.png b/mods/tutorial/textures/tutorial_superblock8.png new file mode 100644 index 0000000..1159a03 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superblock8.png differ diff --git a/mods/tutorial/textures/tutorial_superblock9.png b/mods/tutorial/textures/tutorial_superblock9.png new file mode 100644 index 0000000..b656703 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superblock9.png differ diff --git a/mods/tutorial/textures/tutorial_superenergybattleaxe1.png b/mods/tutorial/textures/tutorial_superenergybattleaxe1.png new file mode 100644 index 0000000..fb9f177 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergybattleaxe1.png differ diff --git a/mods/tutorial/textures/tutorial_superenergybattleaxe2.png b/mods/tutorial/textures/tutorial_superenergybattleaxe2.png new file mode 100644 index 0000000..16993ce Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergybattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_superenergybattleaxe3.png b/mods/tutorial/textures/tutorial_superenergybattleaxe3.png new file mode 100644 index 0000000..cea8b5b Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergybattleaxe3.png differ diff --git a/mods/tutorial/textures/tutorial_superenergybattleaxe4.png b/mods/tutorial/textures/tutorial_superenergybattleaxe4.png new file mode 100644 index 0000000..285dcf1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergybattleaxe4.png differ diff --git a/mods/tutorial/textures/tutorial_superenergybattleaxe5.png b/mods/tutorial/textures/tutorial_superenergybattleaxe5.png new file mode 100644 index 0000000..2d327ae Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergybattleaxe5.png differ diff --git a/mods/tutorial/textures/tutorial_superenergybattleaxe6.png b/mods/tutorial/textures/tutorial_superenergybattleaxe6.png new file mode 100644 index 0000000..213b694 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergybattleaxe6.png differ diff --git a/mods/tutorial/textures/tutorial_superenergybattleaxe7.png b/mods/tutorial/textures/tutorial_superenergybattleaxe7.png new file mode 100644 index 0000000..54bcecb Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergybattleaxe7.png differ diff --git a/mods/tutorial/textures/tutorial_superenergygun1.png b/mods/tutorial/textures/tutorial_superenergygun1.png new file mode 100644 index 0000000..3ece4ce Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergygun1.png differ diff --git a/mods/tutorial/textures/tutorial_superenergygun2.png b/mods/tutorial/textures/tutorial_superenergygun2.png new file mode 100644 index 0000000..9e7a67e Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergygun2.png differ diff --git a/mods/tutorial/textures/tutorial_superenergygun3.png b/mods/tutorial/textures/tutorial_superenergygun3.png new file mode 100644 index 0000000..438f93b Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergygun3.png differ diff --git a/mods/tutorial/textures/tutorial_superenergygun4.png b/mods/tutorial/textures/tutorial_superenergygun4.png new file mode 100644 index 0000000..f2c22da Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergygun4.png differ diff --git a/mods/tutorial/textures/tutorial_superenergygun5.png b/mods/tutorial/textures/tutorial_superenergygun5.png new file mode 100644 index 0000000..2fcf418 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergygun5.png differ diff --git a/mods/tutorial/textures/tutorial_superenergygun6.png b/mods/tutorial/textures/tutorial_superenergygun6.png new file mode 100644 index 0000000..ce49186 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergygun6.png differ diff --git a/mods/tutorial/textures/tutorial_superenergygun7.png b/mods/tutorial/textures/tutorial_superenergygun7.png new file mode 100644 index 0000000..318ac98 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superenergygun7.png differ diff --git a/mods/tutorial/textures/tutorial_supergun1.png b/mods/tutorial/textures/tutorial_supergun1.png new file mode 100644 index 0000000..e7b5ae4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_supergun1.png differ diff --git a/mods/tutorial/textures/tutorial_supergun2.png b/mods/tutorial/textures/tutorial_supergun2.png new file mode 100644 index 0000000..833e758 Binary files /dev/null and b/mods/tutorial/textures/tutorial_supergun2.png differ diff --git a/mods/tutorial/textures/tutorial_supergun3.png b/mods/tutorial/textures/tutorial_supergun3.png new file mode 100644 index 0000000..c3cf8ce Binary files /dev/null and b/mods/tutorial/textures/tutorial_supergun3.png differ diff --git a/mods/tutorial/textures/tutorial_supergun4.png b/mods/tutorial/textures/tutorial_supergun4.png new file mode 100644 index 0000000..7ce9647 Binary files /dev/null and b/mods/tutorial/textures/tutorial_supergun4.png differ diff --git a/mods/tutorial/textures/tutorial_superlegendenbattleaxe.png b/mods/tutorial/textures/tutorial_superlegendenbattleaxe.png new file mode 100644 index 0000000..1815e3a Binary files /dev/null and b/mods/tutorial/textures/tutorial_superlegendenbattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_superlegendengun.png b/mods/tutorial/textures/tutorial_superlegendengun.png new file mode 100644 index 0000000..6312318 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superlegendengun.png differ diff --git a/mods/tutorial/textures/tutorial_superultragun.png b/mods/tutorial/textures/tutorial_superultragun.png new file mode 100644 index 0000000..0970444 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superultragun.png differ diff --git a/mods/tutorial/textures/tutorial_superzauberdiamondaxe.png b/mods/tutorial/textures/tutorial_superzauberdiamondaxe.png new file mode 100644 index 0000000..e79ee65 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superzauberdiamondaxe.png differ diff --git a/mods/tutorial/textures/tutorial_superzauberdiamondpick.png b/mods/tutorial/textures/tutorial_superzauberdiamondpick.png new file mode 100644 index 0000000..fc6f913 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superzauberdiamondpick.png differ diff --git a/mods/tutorial/textures/tutorial_superzauberdiamondshovel.png b/mods/tutorial/textures/tutorial_superzauberdiamondshovel.png new file mode 100644 index 0000000..b47bc77 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superzauberdiamondshovel.png differ diff --git a/mods/tutorial/textures/tutorial_superzauberdiamondsword.png b/mods/tutorial/textures/tutorial_superzauberdiamondsword.png new file mode 100644 index 0000000..2a059ad Binary files /dev/null and b/mods/tutorial/textures/tutorial_superzauberdiamondsword.png differ diff --git a/mods/tutorial/textures/tutorial_superzauberstab1.png b/mods/tutorial/textures/tutorial_superzauberstab1.png new file mode 100644 index 0000000..e47b17c Binary files /dev/null and b/mods/tutorial/textures/tutorial_superzauberstab1.png differ diff --git a/mods/tutorial/textures/tutorial_superzauberstab2.png b/mods/tutorial/textures/tutorial_superzauberstab2.png new file mode 100644 index 0000000..9eb308f Binary files /dev/null and b/mods/tutorial/textures/tutorial_superzauberstab2.png differ diff --git a/mods/tutorial/textures/tutorial_superzauberstab3.png b/mods/tutorial/textures/tutorial_superzauberstab3.png new file mode 100644 index 0000000..97dce9e Binary files /dev/null and b/mods/tutorial/textures/tutorial_superzauberstab3.png differ diff --git a/mods/tutorial/textures/tutorial_superzauberstab4.png b/mods/tutorial/textures/tutorial_superzauberstab4.png new file mode 100644 index 0000000..bc92606 Binary files /dev/null and b/mods/tutorial/textures/tutorial_superzauberstab4.png differ diff --git a/mods/tutorial/textures/tutorial_thunder.png b/mods/tutorial/textures/tutorial_thunder.png new file mode 100644 index 0000000..de6b2ef Binary files /dev/null and b/mods/tutorial/textures/tutorial_thunder.png differ diff --git a/mods/tutorial/textures/tutorial_titan.png b/mods/tutorial/textures/tutorial_titan.png new file mode 100644 index 0000000..c8f20d1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titan.png differ diff --git a/mods/tutorial/textures/tutorial_titan_ore.png b/mods/tutorial/textures/tutorial_titan_ore.png new file mode 100644 index 0000000..57ebcfa Binary files /dev/null and b/mods/tutorial/textures/tutorial_titan_ore.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe1.png b/mods/tutorial/textures/tutorial_titanbattleaxe1.png new file mode 100644 index 0000000..2469a68 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe1.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe10.png b/mods/tutorial/textures/tutorial_titanbattleaxe10.png new file mode 100644 index 0000000..e61915e Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe10.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe2.png b/mods/tutorial/textures/tutorial_titanbattleaxe2.png new file mode 100644 index 0000000..3d7d4b6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe3.png b/mods/tutorial/textures/tutorial_titanbattleaxe3.png new file mode 100644 index 0000000..be374a2 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe3.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe4.png b/mods/tutorial/textures/tutorial_titanbattleaxe4.png new file mode 100644 index 0000000..1c079fc Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe4.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe5.png b/mods/tutorial/textures/tutorial_titanbattleaxe5.png new file mode 100644 index 0000000..8a97a82 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe5.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe6.png b/mods/tutorial/textures/tutorial_titanbattleaxe6.png new file mode 100644 index 0000000..ca3f82a Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe6.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe7.png b/mods/tutorial/textures/tutorial_titanbattleaxe7.png new file mode 100644 index 0000000..ce56959 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe7.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe8.png b/mods/tutorial/textures/tutorial_titanbattleaxe8.png new file mode 100644 index 0000000..57ff58e Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe8.png differ diff --git a/mods/tutorial/textures/tutorial_titanbattleaxe9.png b/mods/tutorial/textures/tutorial_titanbattleaxe9.png new file mode 100644 index 0000000..4e47941 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanbattleaxe9.png differ diff --git a/mods/tutorial/textures/tutorial_titanentverner.png b/mods/tutorial/textures/tutorial_titanentverner.png new file mode 100644 index 0000000..36997cd Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanentverner.png differ diff --git a/mods/tutorial/textures/tutorial_titangun1.png b/mods/tutorial/textures/tutorial_titangun1.png new file mode 100644 index 0000000..f7fde75 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun1.png differ diff --git a/mods/tutorial/textures/tutorial_titangun10.png b/mods/tutorial/textures/tutorial_titangun10.png new file mode 100644 index 0000000..77dec37 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun10.png differ diff --git a/mods/tutorial/textures/tutorial_titangun2.png b/mods/tutorial/textures/tutorial_titangun2.png new file mode 100644 index 0000000..56ab054 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun2.png differ diff --git a/mods/tutorial/textures/tutorial_titangun3.png b/mods/tutorial/textures/tutorial_titangun3.png new file mode 100644 index 0000000..b5998ec Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun3.png differ diff --git a/mods/tutorial/textures/tutorial_titangun4.png b/mods/tutorial/textures/tutorial_titangun4.png new file mode 100644 index 0000000..5548c8b Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun4.png differ diff --git a/mods/tutorial/textures/tutorial_titangun5.png b/mods/tutorial/textures/tutorial_titangun5.png new file mode 100644 index 0000000..9083bd5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun5.png differ diff --git a/mods/tutorial/textures/tutorial_titangun6.png b/mods/tutorial/textures/tutorial_titangun6.png new file mode 100644 index 0000000..c68e2d5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun6.png differ diff --git a/mods/tutorial/textures/tutorial_titangun7.png b/mods/tutorial/textures/tutorial_titangun7.png new file mode 100644 index 0000000..0d4ec07 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun7.png differ diff --git a/mods/tutorial/textures/tutorial_titangun8.png b/mods/tutorial/textures/tutorial_titangun8.png new file mode 100644 index 0000000..e06e4b1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun8.png differ diff --git a/mods/tutorial/textures/tutorial_titangun9.png b/mods/tutorial/textures/tutorial_titangun9.png new file mode 100644 index 0000000..2c78d28 Binary files /dev/null and b/mods/tutorial/textures/tutorial_titangun9.png differ diff --git a/mods/tutorial/textures/tutorial_titanium_shot.png b/mods/tutorial/textures/tutorial_titanium_shot.png new file mode 100644 index 0000000..688aa6e Binary files /dev/null and b/mods/tutorial/textures/tutorial_titanium_shot.png differ diff --git a/mods/tutorial/textures/tutorial_tool_cediaxt.png b/mods/tutorial/textures/tutorial_tool_cediaxt.png new file mode 100644 index 0000000..6c09392 Binary files /dev/null and b/mods/tutorial/textures/tutorial_tool_cediaxt.png differ diff --git a/mods/tutorial/textures/tutorial_tool_cedipick.png b/mods/tutorial/textures/tutorial_tool_cedipick.png new file mode 100644 index 0000000..c333252 Binary files /dev/null and b/mods/tutorial/textures/tutorial_tool_cedipick.png differ diff --git a/mods/tutorial/textures/tutorial_tool_cedishovel.png b/mods/tutorial/textures/tutorial_tool_cedishovel.png new file mode 100644 index 0000000..376e19d Binary files /dev/null and b/mods/tutorial/textures/tutorial_tool_cedishovel.png differ diff --git a/mods/tutorial/textures/tutorial_tool_diamondpick.png b/mods/tutorial/textures/tutorial_tool_diamondpick.png new file mode 100644 index 0000000..10cdd90 Binary files /dev/null and b/mods/tutorial/textures/tutorial_tool_diamondpick.png differ diff --git a/mods/tutorial/textures/tutorial_tool_iceaxt.png b/mods/tutorial/textures/tutorial_tool_iceaxt.png new file mode 100644 index 0000000..b96c225 Binary files /dev/null and b/mods/tutorial/textures/tutorial_tool_iceaxt.png differ diff --git a/mods/tutorial/textures/tutorial_tool_icepick.png b/mods/tutorial/textures/tutorial_tool_icepick.png new file mode 100644 index 0000000..ad5c295 Binary files /dev/null and b/mods/tutorial/textures/tutorial_tool_icepick.png differ diff --git a/mods/tutorial/textures/tutorial_tool_iceshovel.png b/mods/tutorial/textures/tutorial_tool_iceshovel.png new file mode 100644 index 0000000..3f3beb9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_tool_iceshovel.png differ diff --git a/mods/tutorial/textures/tutorial_tool_icesword.png b/mods/tutorial/textures/tutorial_tool_icesword.png new file mode 100644 index 0000000..12d6766 Binary files /dev/null and b/mods/tutorial/textures/tutorial_tool_icesword.png differ diff --git a/mods/tutorial/textures/tutorial_tool_superpaxel.png b/mods/tutorial/textures/tutorial_tool_superpaxel.png new file mode 100644 index 0000000..7a3575a Binary files /dev/null and b/mods/tutorial/textures/tutorial_tool_superpaxel.png differ diff --git a/mods/tutorial/textures/tutorial_torch.png b/mods/tutorial/textures/tutorial_torch.png new file mode 100644 index 0000000..cae7f98 Binary files /dev/null and b/mods/tutorial/textures/tutorial_torch.png differ diff --git a/mods/tutorial/textures/tutorial_torch_animated.png b/mods/tutorial/textures/tutorial_torch_animated.png new file mode 100644 index 0000000..b12fea4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_torch_animated.png differ diff --git a/mods/tutorial/textures/tutorial_torch_on_ceiling.png b/mods/tutorial/textures/tutorial_torch_on_ceiling.png new file mode 100644 index 0000000..a1bd75b Binary files /dev/null and b/mods/tutorial/textures/tutorial_torch_on_ceiling.png differ diff --git a/mods/tutorial/textures/tutorial_torch_on_ceiling_animated.png b/mods/tutorial/textures/tutorial_torch_on_ceiling_animated.png new file mode 100644 index 0000000..954014f Binary files /dev/null and b/mods/tutorial/textures/tutorial_torch_on_ceiling_animated.png differ diff --git a/mods/tutorial/textures/tutorial_torch_on_floor.png b/mods/tutorial/textures/tutorial_torch_on_floor.png new file mode 100644 index 0000000..dfab7ff Binary files /dev/null and b/mods/tutorial/textures/tutorial_torch_on_floor.png differ diff --git a/mods/tutorial/textures/tutorial_torch_on_floor_animated.png b/mods/tutorial/textures/tutorial_torch_on_floor_animated.png new file mode 100644 index 0000000..b308598 Binary files /dev/null and b/mods/tutorial/textures/tutorial_torch_on_floor_animated.png differ diff --git a/mods/tutorial/textures/tutorial_tortoise_schluessel.png b/mods/tutorial/textures/tutorial_tortoise_schluessel.png new file mode 100644 index 0000000..5f7f75a Binary files /dev/null and b/mods/tutorial/textures/tutorial_tortoise_schluessel.png differ diff --git a/mods/tutorial/textures/tutorial_turkis.png b/mods/tutorial/textures/tutorial_turkis.png new file mode 100644 index 0000000..8113797 Binary files /dev/null and b/mods/tutorial/textures/tutorial_turkis.png differ diff --git a/mods/tutorial/textures/tutorial_turkis_block.png b/mods/tutorial/textures/tutorial_turkis_block.png new file mode 100644 index 0000000..d3cdae4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_turkis_block.png differ diff --git a/mods/tutorial/textures/tutorial_turkis_block2.png b/mods/tutorial/textures/tutorial_turkis_block2.png new file mode 100644 index 0000000..3ce43fb Binary files /dev/null and b/mods/tutorial/textures/tutorial_turkis_block2.png differ diff --git a/mods/tutorial/textures/tutorial_turkis_block3.png b/mods/tutorial/textures/tutorial_turkis_block3.png new file mode 100644 index 0000000..c6d1d9e Binary files /dev/null and b/mods/tutorial/textures/tutorial_turkis_block3.png differ diff --git a/mods/tutorial/textures/tutorial_turkis_gebrant.png b/mods/tutorial/textures/tutorial_turkis_gebrant.png new file mode 100644 index 0000000..e650409 Binary files /dev/null and b/mods/tutorial/textures/tutorial_turkis_gebrant.png differ diff --git a/mods/tutorial/textures/tutorial_turkis_gebrant_block.png b/mods/tutorial/textures/tutorial_turkis_gebrant_block.png new file mode 100644 index 0000000..a9594c4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_turkis_gebrant_block.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe1.png b/mods/tutorial/textures/tutorial_ultrabattleaxe1.png new file mode 100644 index 0000000..ae52926 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe1.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe10.png b/mods/tutorial/textures/tutorial_ultrabattleaxe10.png new file mode 100644 index 0000000..d6f4b42 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe10.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe11.png b/mods/tutorial/textures/tutorial_ultrabattleaxe11.png new file mode 100644 index 0000000..e81e3cc Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe11.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe12.png b/mods/tutorial/textures/tutorial_ultrabattleaxe12.png new file mode 100644 index 0000000..f270db0 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe12.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe13.png b/mods/tutorial/textures/tutorial_ultrabattleaxe13.png new file mode 100644 index 0000000..f35ec5b Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe13.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe14.png b/mods/tutorial/textures/tutorial_ultrabattleaxe14.png new file mode 100644 index 0000000..f9fd804 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe14.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe15.png b/mods/tutorial/textures/tutorial_ultrabattleaxe15.png new file mode 100644 index 0000000..3528295 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe15.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe16.png b/mods/tutorial/textures/tutorial_ultrabattleaxe16.png new file mode 100644 index 0000000..77da131 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe16.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe17.png b/mods/tutorial/textures/tutorial_ultrabattleaxe17.png new file mode 100644 index 0000000..564c434 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe17.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe18.png b/mods/tutorial/textures/tutorial_ultrabattleaxe18.png new file mode 100644 index 0000000..940b4e7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe18.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe19.png b/mods/tutorial/textures/tutorial_ultrabattleaxe19.png new file mode 100644 index 0000000..9169065 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe19.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe2.png b/mods/tutorial/textures/tutorial_ultrabattleaxe2.png new file mode 100644 index 0000000..5f87f10 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe20.png b/mods/tutorial/textures/tutorial_ultrabattleaxe20.png new file mode 100644 index 0000000..b9fa527 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe20.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe21.png b/mods/tutorial/textures/tutorial_ultrabattleaxe21.png new file mode 100644 index 0000000..de95248 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe21.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe22.png b/mods/tutorial/textures/tutorial_ultrabattleaxe22.png new file mode 100644 index 0000000..0edf191 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe22.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe23.png b/mods/tutorial/textures/tutorial_ultrabattleaxe23.png new file mode 100644 index 0000000..30d44f5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe23.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe24.png b/mods/tutorial/textures/tutorial_ultrabattleaxe24.png new file mode 100644 index 0000000..0573bae Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe24.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe25.png b/mods/tutorial/textures/tutorial_ultrabattleaxe25.png new file mode 100644 index 0000000..240550c Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe25.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe3.png b/mods/tutorial/textures/tutorial_ultrabattleaxe3.png new file mode 100644 index 0000000..8551492 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe3.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe4.png b/mods/tutorial/textures/tutorial_ultrabattleaxe4.png new file mode 100644 index 0000000..1da6bdf Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe4.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe5.png b/mods/tutorial/textures/tutorial_ultrabattleaxe5.png new file mode 100644 index 0000000..a40d958 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe5.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe6.png b/mods/tutorial/textures/tutorial_ultrabattleaxe6.png new file mode 100644 index 0000000..19b952b Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe6.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe7.png b/mods/tutorial/textures/tutorial_ultrabattleaxe7.png new file mode 100644 index 0000000..dd02f4f Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe7.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe8.png b/mods/tutorial/textures/tutorial_ultrabattleaxe8.png new file mode 100644 index 0000000..180caca Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe8.png differ diff --git a/mods/tutorial/textures/tutorial_ultrabattleaxe9.png b/mods/tutorial/textures/tutorial_ultrabattleaxe9.png new file mode 100644 index 0000000..84dc46a Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultrabattleaxe9.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun1.png b/mods/tutorial/textures/tutorial_ultragun1.png new file mode 100644 index 0000000..2d0e067 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun1.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun10.png b/mods/tutorial/textures/tutorial_ultragun10.png new file mode 100644 index 0000000..8319573 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun10.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun11.png b/mods/tutorial/textures/tutorial_ultragun11.png new file mode 100644 index 0000000..38c624f Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun11.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun12.png b/mods/tutorial/textures/tutorial_ultragun12.png new file mode 100644 index 0000000..6780241 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun12.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun13.png b/mods/tutorial/textures/tutorial_ultragun13.png new file mode 100644 index 0000000..0a9d733 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun13.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun14.png b/mods/tutorial/textures/tutorial_ultragun14.png new file mode 100644 index 0000000..72d0439 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun14.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun15.png b/mods/tutorial/textures/tutorial_ultragun15.png new file mode 100644 index 0000000..84ce40d Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun15.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun16.png b/mods/tutorial/textures/tutorial_ultragun16.png new file mode 100644 index 0000000..16f972b Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun16.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun17.png b/mods/tutorial/textures/tutorial_ultragun17.png new file mode 100644 index 0000000..82cdc10 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun17.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun18.png b/mods/tutorial/textures/tutorial_ultragun18.png new file mode 100644 index 0000000..2158e08 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun18.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun19.png b/mods/tutorial/textures/tutorial_ultragun19.png new file mode 100644 index 0000000..430366b Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun19.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun2.png b/mods/tutorial/textures/tutorial_ultragun2.png new file mode 100644 index 0000000..a030249 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun2.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun20.png b/mods/tutorial/textures/tutorial_ultragun20.png new file mode 100644 index 0000000..27d1030 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun20.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun21.png b/mods/tutorial/textures/tutorial_ultragun21.png new file mode 100644 index 0000000..4bbe00a Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun21.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun22.png b/mods/tutorial/textures/tutorial_ultragun22.png new file mode 100644 index 0000000..2fb3eb7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun22.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun23.png b/mods/tutorial/textures/tutorial_ultragun23.png new file mode 100644 index 0000000..b68d1b5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun23.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun24.png b/mods/tutorial/textures/tutorial_ultragun24.png new file mode 100644 index 0000000..4b787f3 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun24.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun25.png b/mods/tutorial/textures/tutorial_ultragun25.png new file mode 100644 index 0000000..50585ae Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun25.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun3.png b/mods/tutorial/textures/tutorial_ultragun3.png new file mode 100644 index 0000000..b624c25 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun3.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun4.png b/mods/tutorial/textures/tutorial_ultragun4.png new file mode 100644 index 0000000..5c85117 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun4.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun5.png b/mods/tutorial/textures/tutorial_ultragun5.png new file mode 100644 index 0000000..ca8b347 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun5.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun6.png b/mods/tutorial/textures/tutorial_ultragun6.png new file mode 100644 index 0000000..bc2c20b Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun6.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun7.png b/mods/tutorial/textures/tutorial_ultragun7.png new file mode 100644 index 0000000..ad44387 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun7.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun8.png b/mods/tutorial/textures/tutorial_ultragun8.png new file mode 100644 index 0000000..f6250f8 Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun8.png differ diff --git a/mods/tutorial/textures/tutorial_ultragun9.png b/mods/tutorial/textures/tutorial_ultragun9.png new file mode 100644 index 0000000..e38cd7b Binary files /dev/null and b/mods/tutorial/textures/tutorial_ultragun9.png differ diff --git a/mods/tutorial/textures/tutorial_uran_chest_front.png b/mods/tutorial/textures/tutorial_uran_chest_front.png new file mode 100644 index 0000000..ab09c6c Binary files /dev/null and b/mods/tutorial/textures/tutorial_uran_chest_front.png differ diff --git a/mods/tutorial/textures/tutorial_uran_chest_front_lock.png b/mods/tutorial/textures/tutorial_uran_chest_front_lock.png new file mode 100644 index 0000000..643f417 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uran_chest_front_lock.png differ diff --git a/mods/tutorial/textures/tutorial_uran_chest_side.png b/mods/tutorial/textures/tutorial_uran_chest_side.png new file mode 100644 index 0000000..8fc3dcb Binary files /dev/null and b/mods/tutorial/textures/tutorial_uran_chest_side.png differ diff --git a/mods/tutorial/textures/tutorial_uran_chest_top.png b/mods/tutorial/textures/tutorial_uran_chest_top.png new file mode 100644 index 0000000..32ae5da Binary files /dev/null and b/mods/tutorial/textures/tutorial_uran_chest_top.png differ diff --git a/mods/tutorial/textures/tutorial_uranium1.png b/mods/tutorial/textures/tutorial_uranium1.png new file mode 100644 index 0000000..a8b0429 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uranium1.png differ diff --git a/mods/tutorial/textures/tutorial_uranium2.png b/mods/tutorial/textures/tutorial_uranium2.png new file mode 100644 index 0000000..7bc9728 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uranium2.png differ diff --git a/mods/tutorial/textures/tutorial_uranium3.png b/mods/tutorial/textures/tutorial_uranium3.png new file mode 100644 index 0000000..14d8cff Binary files /dev/null and b/mods/tutorial/textures/tutorial_uranium3.png differ diff --git a/mods/tutorial/textures/tutorial_uranium4.png b/mods/tutorial/textures/tutorial_uranium4.png new file mode 100644 index 0000000..4e69db4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uranium4.png differ diff --git a/mods/tutorial/textures/tutorial_uranium5.png b/mods/tutorial/textures/tutorial_uranium5.png new file mode 100644 index 0000000..0270e19 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uranium5.png differ diff --git a/mods/tutorial/textures/tutorial_uranium6.png b/mods/tutorial/textures/tutorial_uranium6.png new file mode 100644 index 0000000..f1beed7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uranium6.png differ diff --git a/mods/tutorial/textures/tutorial_uranium7.png b/mods/tutorial/textures/tutorial_uranium7.png new file mode 100644 index 0000000..ea4e567 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uranium7.png differ diff --git a/mods/tutorial/textures/tutorial_uranium8.png b/mods/tutorial/textures/tutorial_uranium8.png new file mode 100644 index 0000000..2d57dd4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uranium8.png differ diff --git a/mods/tutorial/textures/tutorial_uranium9.png b/mods/tutorial/textures/tutorial_uranium9.png new file mode 100644 index 0000000..ee97777 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uranium9.png differ diff --git a/mods/tutorial/textures/tutorial_uraniumbattleaxe1.png b/mods/tutorial/textures/tutorial_uraniumbattleaxe1.png new file mode 100644 index 0000000..c86db1a Binary files /dev/null and b/mods/tutorial/textures/tutorial_uraniumbattleaxe1.png differ diff --git a/mods/tutorial/textures/tutorial_uraniumbattleaxe2.png b/mods/tutorial/textures/tutorial_uraniumbattleaxe2.png new file mode 100644 index 0000000..d2f6a39 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uraniumbattleaxe2.png differ diff --git a/mods/tutorial/textures/tutorial_uraniumgun1.png b/mods/tutorial/textures/tutorial_uraniumgun1.png new file mode 100644 index 0000000..be1b2be Binary files /dev/null and b/mods/tutorial/textures/tutorial_uraniumgun1.png differ diff --git a/mods/tutorial/textures/tutorial_uraniumgun2.png b/mods/tutorial/textures/tutorial_uraniumgun2.png new file mode 100644 index 0000000..a8ded92 Binary files /dev/null and b/mods/tutorial/textures/tutorial_uraniumgun2.png differ diff --git a/mods/tutorial/textures/tutorial_verseuchtebattleaxe.png b/mods/tutorial/textures/tutorial_verseuchtebattleaxe.png new file mode 100644 index 0000000..e76f599 Binary files /dev/null and b/mods/tutorial/textures/tutorial_verseuchtebattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_verseuchter_glass_reaktor_core.png b/mods/tutorial/textures/tutorial_verseuchter_glass_reaktor_core.png new file mode 100644 index 0000000..4811710 Binary files /dev/null and b/mods/tutorial/textures/tutorial_verseuchter_glass_reaktor_core.png differ diff --git a/mods/tutorial/textures/tutorial_verseuchter_reaktor_core.png b/mods/tutorial/textures/tutorial_verseuchter_reaktor_core.png new file mode 100644 index 0000000..81228e9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_verseuchter_reaktor_core.png differ diff --git a/mods/tutorial/textures/tutorial_verseuchtesgeschenk.png b/mods/tutorial/textures/tutorial_verseuchtesgeschenk.png new file mode 100644 index 0000000..ebe8783 Binary files /dev/null and b/mods/tutorial/textures/tutorial_verseuchtesgeschenk.png differ diff --git a/mods/tutorial/textures/tutorial_waterball.png b/mods/tutorial/textures/tutorial_waterball.png new file mode 100644 index 0000000..1226474 Binary files /dev/null and b/mods/tutorial/textures/tutorial_waterball.png differ diff --git a/mods/tutorial/textures/tutorial_waterbattleaxe.png b/mods/tutorial/textures/tutorial_waterbattleaxe.png new file mode 100644 index 0000000..3590481 Binary files /dev/null and b/mods/tutorial/textures/tutorial_waterbattleaxe.png differ diff --git a/mods/tutorial/textures/tutorial_watersword.png b/mods/tutorial/textures/tutorial_watersword.png new file mode 100644 index 0000000..98b7e96 Binary files /dev/null and b/mods/tutorial/textures/tutorial_watersword.png differ diff --git a/mods/tutorial/textures/tutorial_white.png b/mods/tutorial/textures/tutorial_white.png new file mode 100644 index 0000000..2502fd1 Binary files /dev/null and b/mods/tutorial/textures/tutorial_white.png differ diff --git a/mods/tutorial/textures/tutorial_whiteblock1.png b/mods/tutorial/textures/tutorial_whiteblock1.png new file mode 100644 index 0000000..7e6d619 Binary files /dev/null and b/mods/tutorial/textures/tutorial_whiteblock1.png differ diff --git a/mods/tutorial/textures/tutorial_whiteblock2.png b/mods/tutorial/textures/tutorial_whiteblock2.png new file mode 100644 index 0000000..21138bd Binary files /dev/null and b/mods/tutorial/textures/tutorial_whiteblock2.png differ diff --git a/mods/tutorial/textures/tutorial_whiteblock3.png b/mods/tutorial/textures/tutorial_whiteblock3.png new file mode 100644 index 0000000..22e38ac Binary files /dev/null and b/mods/tutorial/textures/tutorial_whiteblock3.png differ diff --git a/mods/tutorial/textures/tutorial_whiteblock4.png b/mods/tutorial/textures/tutorial_whiteblock4.png new file mode 100644 index 0000000..aa2d7a4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_whiteblock4.png differ diff --git a/mods/tutorial/textures/tutorial_whiteblock5.png b/mods/tutorial/textures/tutorial_whiteblock5.png new file mode 100644 index 0000000..caed01c Binary files /dev/null and b/mods/tutorial/textures/tutorial_whiteblock5.png differ diff --git a/mods/tutorial/textures/tutorial_whiteblock6.png b/mods/tutorial/textures/tutorial_whiteblock6.png new file mode 100644 index 0000000..c83ecf5 Binary files /dev/null and b/mods/tutorial/textures/tutorial_whiteblock6.png differ diff --git a/mods/tutorial/textures/tutorial_wool_titan.png b/mods/tutorial/textures/tutorial_wool_titan.png new file mode 100644 index 0000000..584fe43 Binary files /dev/null and b/mods/tutorial/textures/tutorial_wool_titan.png differ diff --git a/mods/tutorial/textures/tutorial_xp_blau.png b/mods/tutorial/textures/tutorial_xp_blau.png new file mode 100644 index 0000000..b4187bb Binary files /dev/null and b/mods/tutorial/textures/tutorial_xp_blau.png differ diff --git a/mods/tutorial/textures/tutorial_xp_block.png b/mods/tutorial/textures/tutorial_xp_block.png new file mode 100644 index 0000000..d67b27e Binary files /dev/null and b/mods/tutorial/textures/tutorial_xp_block.png differ diff --git a/mods/tutorial/textures/tutorial_xp_block_yellow.png b/mods/tutorial/textures/tutorial_xp_block_yellow.png new file mode 100644 index 0000000..bf34817 Binary files /dev/null and b/mods/tutorial/textures/tutorial_xp_block_yellow.png differ diff --git a/mods/tutorial/textures/tutorial_xp_rot.png b/mods/tutorial/textures/tutorial_xp_rot.png new file mode 100644 index 0000000..abed28d Binary files /dev/null and b/mods/tutorial/textures/tutorial_xp_rot.png differ diff --git a/mods/tutorial/textures/tutorial_yellow_tear.png b/mods/tutorial/textures/tutorial_yellow_tear.png new file mode 100644 index 0000000..2067a45 Binary files /dev/null and b/mods/tutorial/textures/tutorial_yellow_tear.png differ diff --git a/mods/tutorial/textures/tutorial_yellowstone.png b/mods/tutorial/textures/tutorial_yellowstone.png new file mode 100644 index 0000000..6fa08a7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_yellowstone.png differ diff --git a/mods/tutorial/textures/tutorial_zauberbogen.png b/mods/tutorial/textures/tutorial_zauberbogen.png new file mode 100644 index 0000000..672e1b6 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberbogen.png differ diff --git a/mods/tutorial/textures/tutorial_zauberschwert1.png b/mods/tutorial/textures/tutorial_zauberschwert1.png new file mode 100644 index 0000000..93f750f Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberschwert1.png differ diff --git a/mods/tutorial/textures/tutorial_zauberschwert2.png b/mods/tutorial/textures/tutorial_zauberschwert2.png new file mode 100644 index 0000000..4adcad4 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberschwert2.png differ diff --git a/mods/tutorial/textures/tutorial_zauberschwert3.png b/mods/tutorial/textures/tutorial_zauberschwert3.png new file mode 100644 index 0000000..d06cb82 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberschwert3.png differ diff --git a/mods/tutorial/textures/tutorial_zauberschwert4.png b/mods/tutorial/textures/tutorial_zauberschwert4.png new file mode 100644 index 0000000..57a0bbc Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberschwert4.png differ diff --git a/mods/tutorial/textures/tutorial_zauberschwert5.png b/mods/tutorial/textures/tutorial_zauberschwert5.png new file mode 100644 index 0000000..01847df Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberschwert5.png differ diff --git a/mods/tutorial/textures/tutorial_zauberschwert6.png b/mods/tutorial/textures/tutorial_zauberschwert6.png new file mode 100644 index 0000000..c682e28 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberschwert6.png differ diff --git a/mods/tutorial/textures/tutorial_zauberschwert7.png b/mods/tutorial/textures/tutorial_zauberschwert7.png new file mode 100644 index 0000000..5b5bb46 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberschwert7.png differ diff --git a/mods/tutorial/textures/tutorial_zauberschwert8.png b/mods/tutorial/textures/tutorial_zauberschwert8.png new file mode 100644 index 0000000..cd6b2ac Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberschwert8.png differ diff --git a/mods/tutorial/textures/tutorial_zauberschwert9.png b/mods/tutorial/textures/tutorial_zauberschwert9.png new file mode 100644 index 0000000..4a8ceab Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberschwert9.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab.png b/mods/tutorial/textures/tutorial_zauberstab.png new file mode 100644 index 0000000..006b8cc Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab1.png b/mods/tutorial/textures/tutorial_zauberstab1.png new file mode 100644 index 0000000..1397b96 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab1.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab2.png b/mods/tutorial/textures/tutorial_zauberstab2.png new file mode 100644 index 0000000..1ffc3d7 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab2.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab3.png b/mods/tutorial/textures/tutorial_zauberstab3.png new file mode 100644 index 0000000..cfddb92 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab3.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab4.png b/mods/tutorial/textures/tutorial_zauberstab4.png new file mode 100644 index 0000000..6c87538 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab4.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab5.png b/mods/tutorial/textures/tutorial_zauberstab5.png new file mode 100644 index 0000000..ce39ea9 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab5.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab6.png b/mods/tutorial/textures/tutorial_zauberstab6.png new file mode 100644 index 0000000..03bc01c Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab6.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab7.png b/mods/tutorial/textures/tutorial_zauberstab7.png new file mode 100644 index 0000000..8fa990f Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab7.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab8.png b/mods/tutorial/textures/tutorial_zauberstab8.png new file mode 100644 index 0000000..a6d7e65 Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab8.png differ diff --git a/mods/tutorial/textures/tutorial_zauberstab9.png b/mods/tutorial/textures/tutorial_zauberstab9.png new file mode 100644 index 0000000..16c09ea Binary files /dev/null and b/mods/tutorial/textures/tutorial_zauberstab9.png differ diff --git a/mods/vessels/README.txt b/mods/vessels/README.txt new file mode 100644 index 0000000..5bb798c --- /dev/null +++ b/mods/vessels/README.txt @@ -0,0 +1,22 @@ +Minetest Game mod: vessels +========================== +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Vanessa Ezekowitz (LGPL 2.1) +Modified by Perttu Ahola (LGPL 2.1) +Various Minetest developers and contributors (LGPL 2.1) + +Authors of media (textures) +--------------------------- +All not listed below, Vanessa Ezekowitz (CC BY-SA 3.0) + +The following textures were modified by Thomas-S (CC BY-SA 3.0): + vessels_drinking_glass.png + vessels_drinking_glass_inv.png + vessels_glass_bottle.png + vessels_steel_bottle.png + +The following texture was created by Wuzzy (CC BY-SA 3.0): + vessels_shelf_slot.png (based on vessels_glass_bottle.png) diff --git a/mods/vessels/depends.txt b/mods/vessels/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/vessels/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/vessels/init.lua b/mods/vessels/init.lua new file mode 100644 index 0000000..688413f --- /dev/null +++ b/mods/vessels/init.lua @@ -0,0 +1,216 @@ +-- Minetest 0.4 mod: vessels +-- See README.txt for licensing and other information. + +local vessels_shelf_formspec = + "size[8,7;]" .. + default.gui_bg .. + default.gui_bg_img .. + default.gui_slots .. + "list[context;vessels;0,0.3;8,2;]" .. + "list[current_player;main;0,2.85;8,1;]" .. + "list[current_player;main;0,4.08;8,3;8]" .. + "listring[context;vessels]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0, 2.85) + +local function get_vessels_shelf_formspec(inv) + local formspec = vessels_shelf_formspec + local invlist = inv and inv:get_list("vessels") + -- Inventory slots overlay + local vx, vy = 0, 0.3 + for i = 1, 16 do + if i == 9 then + vx = 0 + vy = vy + 1 + end + if not invlist or invlist[i]:is_empty() then + formspec = formspec .. + "image[" .. vx .. "," .. vy .. ";1,1;vessels_shelf_slot.png]" + end + vx = vx + 1 + end + return formspec +end + +minetest.register_node("vessels:shelf", { + description = "Vessels Shelf", + tiles = {"default_wood.png", "default_wood.png", "default_wood.png", + "default_wood.png", "vessels_shelf.png", "vessels_shelf.png"}, + paramtype2 = "facedir", + is_ground_content = false, + groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + sounds = default.node_sound_wood_defaults(), + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_vessels_shelf_formspec(nil)) + local inv = meta:get_inventory() + inv:set_size("vessels", 8 * 2) + end, + can_dig = function(pos,player) + local inv = minetest.get_meta(pos):get_inventory() + return inv:is_empty("vessels") + end, + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + if minetest.get_item_group(stack:get_name(), "vessel") ~= 0 then + return stack:get_count() + end + return 0 + end, + on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player) + minetest.log("action", player:get_player_name() .. + " moves stuff in vessels shelf at ".. minetest.pos_to_string(pos)) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_vessels_shelf_formspec(meta:get_inventory())) + end, + on_metadata_inventory_put = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " moves stuff to vessels shelf at ".. minetest.pos_to_string(pos)) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_vessels_shelf_formspec(meta:get_inventory())) + end, + on_metadata_inventory_take = function(pos, listname, index, stack, player) + minetest.log("action", player:get_player_name() .. + " takes stuff from vessels shelf at ".. minetest.pos_to_string(pos)) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", get_vessels_shelf_formspec(meta:get_inventory())) + end, + on_blast = function(pos) + local drops = {} + default.get_inventory_drops(pos, "vessels", drops) + drops[#drops + 1] = "vessels:shelf" + minetest.remove_node(pos) + return drops + end, +}) + +minetest.register_craft({ + output = "vessels:shelf", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"group:vessel", "group:vessel", "group:vessel"}, + {"group:wood", "group:wood", "group:wood"}, + } +}) + +minetest.register_node("vessels:glass_bottle", { + description = "Glass Bottle (empty)", + drawtype = "plantlike", + tiles = {"vessels_glass_bottle.png"}, + inventory_image = "vessels_glass_bottle.png", + wield_image = "vessels_glass_bottle.png", + paramtype = "light", + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 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", + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 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.png", + wield_image = "vessels_steel_bottle.png", + paramtype = "light", + is_ground_content = false, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 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", ""} + } +}) + + +-- Glass and steel recycling + +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", +}) + +minetest.register_craft({ + type = "fuel", + recipe = "vessels:shelf", + burntime = 30, +}) diff --git a/mods/vessels/license.txt b/mods/vessels/license.txt new file mode 100644 index 0000000..de16a3b --- /dev/null +++ b/mods/vessels/license.txt @@ -0,0 +1,52 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2012-2016 Vanessa Ezekowitz +Copyright (C) 2012-2016 celeron55, Perttu Ahola +Copyright (C) 2012-2016 Various Minetest developers and contributors + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Vanessa Ezekowitz +Copyright (C) 2016 Thomas-S + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/vessels/textures/vessels_drinking_glass.png b/mods/vessels/textures/vessels_drinking_glass.png new file mode 100644 index 0000000..d5037b8 Binary files /dev/null and b/mods/vessels/textures/vessels_drinking_glass.png differ diff --git a/mods/vessels/textures/vessels_drinking_glass_inv.png b/mods/vessels/textures/vessels_drinking_glass_inv.png new file mode 100644 index 0000000..9992bd9 Binary files /dev/null and b/mods/vessels/textures/vessels_drinking_glass_inv.png differ diff --git a/mods/vessels/textures/vessels_glass_bottle.png b/mods/vessels/textures/vessels_glass_bottle.png new file mode 100644 index 0000000..6ea37db Binary files /dev/null and b/mods/vessels/textures/vessels_glass_bottle.png differ diff --git a/mods/vessels/textures/vessels_glass_fragments.png b/mods/vessels/textures/vessels_glass_fragments.png new file mode 100644 index 0000000..7c6c488 Binary files /dev/null and b/mods/vessels/textures/vessels_glass_fragments.png differ diff --git a/mods/vessels/textures/vessels_shelf.png b/mods/vessels/textures/vessels_shelf.png new file mode 100644 index 0000000..87c69b2 Binary files /dev/null and b/mods/vessels/textures/vessels_shelf.png differ diff --git a/mods/vessels/textures/vessels_shelf_slot.png b/mods/vessels/textures/vessels_shelf_slot.png new file mode 100644 index 0000000..ff29082 Binary files /dev/null and b/mods/vessels/textures/vessels_shelf_slot.png differ diff --git a/mods/vessels/textures/vessels_steel_bottle.png b/mods/vessels/textures/vessels_steel_bottle.png new file mode 100644 index 0000000..61d3071 Binary files /dev/null and b/mods/vessels/textures/vessels_steel_bottle.png differ diff --git a/mods/walls/README.txt b/mods/walls/README.txt new file mode 100644 index 0000000..0389174 --- /dev/null +++ b/mods/walls/README.txt @@ -0,0 +1,7 @@ +Minetest Game mod: walls +======================== +See license.txt for license information. + +Authors of source code +---------------------- +Auke Kok (LGPL 2.1) diff --git a/mods/walls/depends.txt b/mods/walls/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/walls/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/walls/init.lua b/mods/walls/init.lua new file mode 100644 index 0000000..bee8e46 --- /dev/null +++ b/mods/walls/init.lua @@ -0,0 +1,46 @@ +walls = {} + +walls.register = function(wall_name, wall_desc, wall_texture, wall_mat, wall_sounds) + -- inventory node, and pole-type wall start item + minetest.register_node(wall_name, { + description = wall_desc, + drawtype = "nodebox", + node_box = { + type = "connected", + fixed = {{-1/4, -1/2, -1/4, 1/4, 1/2, 1/4}}, + -- connect_bottom = + connect_front = {{-3/16, -1/2, -1/2, 3/16, 3/8, -1/4}}, + connect_left = {{-1/2, -1/2, -3/16, -1/4, 3/8, 3/16}}, + connect_back = {{-3/16, -1/2, 1/4, 3/16, 3/8, 1/2}}, + connect_right = {{ 1/4, -1/2, -3/16, 1/2, 3/8, 3/16}}, + }, + connects_to = { "group:wall", "group:stone" }, + paramtype = "light", + is_ground_content = false, + tiles = { wall_texture, }, + walkable = true, + groups = { cracky = 3, wall = 1, stone = 2 }, + sounds = wall_sounds, + }) + + -- crafting recipe + minetest.register_craft({ + output = wall_name .. " 6", + recipe = { + { '', '', '' }, + { wall_mat, wall_mat, wall_mat}, + { wall_mat, wall_mat, wall_mat}, + } + }) + +end + +walls.register("walls:cobble", "Cobblestone Wall", "default_cobble.png", + "default:cobble", default.node_sound_stone_defaults()) + +walls.register("walls:mossycobble", "Mossy Cobblestone Wall", "default_mossycobble.png", + "default:mossycobble", default.node_sound_stone_defaults()) + +walls.register("walls:desertcobble", "Desert Cobblestone Wall", "default_desert_cobble.png", + "default:desert_cobble", default.node_sound_stone_defaults()) + diff --git a/mods/walls/license.txt b/mods/walls/license.txt new file mode 100644 index 0000000..ccfaf1c --- /dev/null +++ b/mods/walls/license.txt @@ -0,0 +1,14 @@ +License of source code +---------------------- + +GNU Lesser General Public License, version 2.1 +Copyright (C) 2015 Auke Kok + +This program is free software; you can redistribute it and/or modify it under the terms +of the GNU Lesser General Public License as published by the Free Software Foundation; +either version 2.1 of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; +without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +See the GNU Lesser General Public License for more details: +https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html diff --git a/mods/wool/README.txt b/mods/wool/README.txt new file mode 100644 index 0000000..a66677d --- /dev/null +++ b/mods/wool/README.txt @@ -0,0 +1,16 @@ +Minetest Game mod: wool +======================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by Perttu Ahola (celeron55) (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +Cisoun (CC BY-SA 3.0): + wool_black.png wool_brown.png wool_dark_green.png wool_green.png + wool_magenta.png wool_pink.png wool_violet.png wool_yellow.png + wool_blue.png wool_cyan.png wool_dark_grey.png wool_grey.png + wool_orange.png wool_red.png wool_white.png diff --git a/mods/wool/depends.txt b/mods/wool/depends.txt new file mode 100644 index 0000000..4ad96d5 --- /dev/null +++ b/mods/wool/depends.txt @@ -0,0 +1 @@ +default diff --git a/mods/wool/init.lua b/mods/wool/init.lua new file mode 100644 index 0000000..a36e4dd --- /dev/null +++ b/mods/wool/init.lua @@ -0,0 +1,47 @@ +-- 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. + +local dyes = { + {"white", "White", "basecolor_white"}, + {"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 i = 1, #dyes do + local name, desc, craft_color_group = unpack(dyes[i]) + + minetest.register_node("wool:" .. name, { + description = desc .. " Wool", + tiles = {"wool_" .. name .. ".png"}, + is_ground_content = false, + groups = {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, + flammable = 3, wool = 1}, + sounds = default.node_sound_defaults(), + }) + + minetest.register_craft{ + type = "shapeless", + output = "wool:" .. name, + recipe = {"group:dye," .. craft_color_group, "group:wool"}, + } +end + + +-- legacy + +-- Backwards compatibility with jordach's 16-color wool mod +minetest.register_alias("wool:dark_blue", "wool:blue") +minetest.register_alias("wool:gold", "wool:yellow") diff --git a/mods/wool/license.txt b/mods/wool/license.txt new file mode 100644 index 0000000..9310163 --- /dev/null +++ b/mods/wool/license.txt @@ -0,0 +1,60 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2012-2016 Perttu Ahola (celeron55) +Copyright (C) 2012-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2012-2016 Cisoun + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/wool/textures/wool_black.png b/mods/wool/textures/wool_black.png new file mode 100644 index 0000000..700d439 Binary files /dev/null and b/mods/wool/textures/wool_black.png differ diff --git a/mods/wool/textures/wool_blue.png b/mods/wool/textures/wool_blue.png new file mode 100644 index 0000000..a074986 Binary files /dev/null and b/mods/wool/textures/wool_blue.png differ diff --git a/mods/wool/textures/wool_brown.png b/mods/wool/textures/wool_brown.png new file mode 100644 index 0000000..2620dfd Binary files /dev/null and b/mods/wool/textures/wool_brown.png differ diff --git a/mods/wool/textures/wool_cyan.png b/mods/wool/textures/wool_cyan.png new file mode 100644 index 0000000..395b6ac Binary files /dev/null and b/mods/wool/textures/wool_cyan.png differ diff --git a/mods/wool/textures/wool_dark_green.png b/mods/wool/textures/wool_dark_green.png new file mode 100644 index 0000000..0e73999 Binary files /dev/null and b/mods/wool/textures/wool_dark_green.png differ diff --git a/mods/wool/textures/wool_dark_grey.png b/mods/wool/textures/wool_dark_grey.png new file mode 100644 index 0000000..7253696 Binary files /dev/null and b/mods/wool/textures/wool_dark_grey.png differ diff --git a/mods/wool/textures/wool_green.png b/mods/wool/textures/wool_green.png new file mode 100644 index 0000000..dcb663b Binary files /dev/null and b/mods/wool/textures/wool_green.png differ diff --git a/mods/wool/textures/wool_grey.png b/mods/wool/textures/wool_grey.png new file mode 100644 index 0000000..2f4c338 Binary files /dev/null and b/mods/wool/textures/wool_grey.png differ diff --git a/mods/wool/textures/wool_magenta.png b/mods/wool/textures/wool_magenta.png new file mode 100644 index 0000000..5c2c4a7 Binary files /dev/null and b/mods/wool/textures/wool_magenta.png differ diff --git a/mods/wool/textures/wool_orange.png b/mods/wool/textures/wool_orange.png new file mode 100644 index 0000000..a059f36 Binary files /dev/null and b/mods/wool/textures/wool_orange.png differ diff --git a/mods/wool/textures/wool_pink.png b/mods/wool/textures/wool_pink.png new file mode 100644 index 0000000..8e90140 Binary files /dev/null and b/mods/wool/textures/wool_pink.png differ diff --git a/mods/wool/textures/wool_red.png b/mods/wool/textures/wool_red.png new file mode 100644 index 0000000..da12ecf Binary files /dev/null and b/mods/wool/textures/wool_red.png differ diff --git a/mods/wool/textures/wool_violet.png b/mods/wool/textures/wool_violet.png new file mode 100644 index 0000000..d7d6783 Binary files /dev/null and b/mods/wool/textures/wool_violet.png differ diff --git a/mods/wool/textures/wool_white.png b/mods/wool/textures/wool_white.png new file mode 100644 index 0000000..88f1e2f Binary files /dev/null and b/mods/wool/textures/wool_white.png differ diff --git a/mods/wool/textures/wool_yellow.png b/mods/wool/textures/wool_yellow.png new file mode 100644 index 0000000..2b0f048 Binary files /dev/null and b/mods/wool/textures/wool_yellow.png differ diff --git a/mods/xpanes/README.txt b/mods/xpanes/README.txt new file mode 100644 index 0000000..bcbc129 --- /dev/null +++ b/mods/xpanes/README.txt @@ -0,0 +1,21 @@ +Minetest Game mod: xpanes +========================= +See license.txt for license information. + +Authors of source code +---------------------- +Originally by xyz (MIT) +BlockMen (MIT) +sofar (MIT) +Various Minetest developers and contributors (MIT) + +Authors of media (textures) +--------------------------- +xyz (CC BY-SA 3.0): + All textures not mentioned below. + +Gambit (CC BY-SA 3.0): + xpanes_bar.png + +paramat (CC BY-SA 3.0): + xpanes_bar_top.png diff --git a/mods/xpanes/depends.txt b/mods/xpanes/depends.txt new file mode 100644 index 0000000..331d858 --- /dev/null +++ b/mods/xpanes/depends.txt @@ -0,0 +1 @@ +default \ No newline at end of file diff --git a/mods/xpanes/init.lua b/mods/xpanes/init.lua new file mode 100644 index 0000000..77278a5 --- /dev/null +++ b/mods/xpanes/init.lua @@ -0,0 +1,184 @@ + +local function is_pane(pos) + return minetest.get_item_group(minetest.get_node(pos).name, "pane") > 0 +end + +local function connects_dir(pos, name, dir) + local aside = vector.add(pos, minetest.facedir_to_dir(dir)) + if is_pane(aside) then + return true + end + + local connects_to = minetest.registered_nodes[name].connects_to + if not connects_to then + return false + end + local list = minetest.find_nodes_in_area(aside, aside, connects_to) + + if #list > 0 then + return true + end + + return false +end + +local function swap(pos, node, name, param2) + if node.name == name and node.param2 == param2 then + return + end + + minetest.set_node(pos, {name = name, param2 = param2}) +end + +local function update_pane(pos) + if not is_pane(pos) then + return + end + local node = minetest.get_node(pos) + local name = node.name + if name:sub(-5) == "_flat" then + name = name:sub(1, -6) + end + + local any = node.param2 + local c = {} + local count = 0 + for dir = 0, 3 do + c[dir] = connects_dir(pos, name, dir) + if c[dir] then + any = dir + count = count + 1 + end + end + + if count == 0 then + swap(pos, node, name .. "_flat", any) + elseif count == 1 then + swap(pos, node, name .. "_flat", (any + 1) % 4) + elseif count == 2 then + if (c[0] and c[2]) or (c[1] and c[3]) then + swap(pos, node, name .. "_flat", (any + 1) % 4) + else + swap(pos, node, name, 0) + end + else + swap(pos, node, name, 0) + end +end + +minetest.register_on_placenode(function(pos, node) + if minetest.get_item_group(node, "pane") then + update_pane(pos) + end + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end +end) + +minetest.register_on_dignode(function(pos) + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end +end) + +xpanes = {} +function xpanes.register_pane(name, def) + for i = 1, 15 do + minetest.register_alias("xpanes:" .. name .. "_" .. i, "xpanes:" .. name .. "_flat") + end + + local flatgroups = table.copy(def.groups) + flatgroups.pane = 1 + minetest.register_node(":xpanes:" .. name .. "_flat", { + description = def.description, + drawtype = "nodebox", + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + inventory_image = def.inventory_image, + wield_image = def.wield_image, + paramtype2 = "facedir", + tiles = {def.textures[3], def.textures[3], def.textures[1]}, + groups = flatgroups, + drop = "xpanes:" .. name .. "_flat", + sounds = def.sounds, + node_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + selection_box = { + type = "fixed", + fixed = {{-1/2, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + connect_sides = { "left", "right" }, + }) + + local groups = table.copy(def.groups) + groups.pane = 1 + groups.not_in_creative_inventory = 1 + minetest.register_node(":xpanes:" .. name, { + drawtype = "nodebox", + paramtype = "light", + is_ground_content = false, + sunlight_propagates = true, + description = def.description, + tiles = {def.textures[3], def.textures[3], def.textures[1]}, + groups = groups, + drop = "xpanes:" .. name .. "_flat", + sounds = def.sounds, + node_box = { + type = "connected", + fixed = {{-1/32, -1/2, -1/32, 1/32, 1/2, 1/32}}, + connect_front = {{-1/32, -1/2, -1/2, 1/32, 1/2, -1/32}}, + connect_left = {{-1/2, -1/2, -1/32, -1/32, 1/2, 1/32}}, + connect_back = {{-1/32, -1/2, 1/32, 1/32, 1/2, 1/2}}, + connect_right = {{1/32, -1/2, -1/32, 1/2, 1/2, 1/32}}, + }, + connects_to = {"group:pane", "group:stone", "group:glass", "group:wood", "group:tree"}, + }) + + minetest.register_craft({ + output = "xpanes:" .. name .. "_flat 16", + recipe = def.recipe + }) +end + +xpanes.register_pane("pane", { + description = "Glass Pane", + textures = {"default_glass.png","xpanes_pane_half.png","xpanes_white.png"}, + inventory_image = "default_glass.png", + wield_image = "default_glass.png", + sounds = default.node_sound_glass_defaults(), + groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3}, + recipe = { + {"default:glass", "default:glass", "default:glass"}, + {"default:glass", "default:glass", "default:glass"} + } +}) + +xpanes.register_pane("bar", { + description = "Iron bar", + textures = {"xpanes_bar.png","xpanes_bar.png","xpanes_bar_top.png"}, + inventory_image = "xpanes_bar.png", + wield_image = "xpanes_bar.png", + groups = {cracky=2}, + sounds = default.node_sound_metal_defaults(), + recipe = { + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} + } +}) + +minetest.register_lbm({ + name = "xpanes:gen2", + nodenames = {"group:pane"}, + action = function(pos, node) + update_pane(pos) + for i = 0, 3 do + local dir = minetest.facedir_to_dir(i) + update_pane(vector.add(pos, dir)) + end + end +}) diff --git a/mods/xpanes/license.txt b/mods/xpanes/license.txt new file mode 100644 index 0000000..dff7227 --- /dev/null +++ b/mods/xpanes/license.txt @@ -0,0 +1,64 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2014-2016 xyz +Copyright (C) 2014-2016 BlockMen +Copyright (C) 2016 Auke Kok +Copyright (C) 2014-2016 Various Minetest developers and contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (textures) +---------------------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2014-2016 xyz +Copyright (C) 2013-2016 Gambit +Copyright (C) 2016 paramat + +You are free to: +Share β€” copy and redistribute the material in any medium or format. +Adapt β€” remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution β€” You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike β€” If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions β€” You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/xpanes/textures/xpanes_bar.png b/mods/xpanes/textures/xpanes_bar.png new file mode 100644 index 0000000..3ea62a9 Binary files /dev/null and b/mods/xpanes/textures/xpanes_bar.png differ diff --git a/mods/xpanes/textures/xpanes_bar_top.png b/mods/xpanes/textures/xpanes_bar_top.png new file mode 100644 index 0000000..887518a Binary files /dev/null and b/mods/xpanes/textures/xpanes_bar_top.png differ diff --git a/mods/xpanes/textures/xpanes_pane_half.png b/mods/xpanes/textures/xpanes_pane_half.png new file mode 100644 index 0000000..4e846df Binary files /dev/null and b/mods/xpanes/textures/xpanes_pane_half.png differ diff --git a/mods/xpanes/textures/xpanes_space.png b/mods/xpanes/textures/xpanes_space.png new file mode 100644 index 0000000..016cb35 Binary files /dev/null and b/mods/xpanes/textures/xpanes_space.png differ diff --git a/mods/xpanes/textures/xpanes_white.png b/mods/xpanes/textures/xpanes_white.png new file mode 100644 index 0000000..a2f4b63 Binary files /dev/null and b/mods/xpanes/textures/xpanes_white.png differ diff --git a/mods/zcg/README b/mods/zcg/README new file mode 100644 index 0000000..f007946 --- /dev/null +++ b/mods/zcg/README @@ -0,0 +1,6 @@ +minetest-zgc +============ + +Zeg9's craft guide mod for minetest. +Written from scratch, ideas from cornernote's craft guide. +This mod adds a craft guide button in the inventory, through inventory_plus. diff --git a/mods/zcg/modpack.txt b/mods/zcg/modpack.txt new file mode 100644 index 0000000..e69de29 diff --git a/mods/zcg/zcg/depends.txt b/mods/zcg/zcg/depends.txt new file mode 100644 index 0000000..eb98431 --- /dev/null +++ b/mods/zcg/zcg/depends.txt @@ -0,0 +1 @@ +inventory_plus diff --git a/mods/zcg/zcg/init.lua b/mods/zcg/zcg/init.lua new file mode 100644 index 0000000..7e6d307 --- /dev/null +++ b/mods/zcg/zcg/init.lua @@ -0,0 +1,219 @@ +-- ZCG mod for minetest +-- See README for more information +-- Released by Zeg9 under WTFPL + +zcg = {} + +zcg.users = {} +zcg.crafts = {} +zcg.itemlist = {} + +zcg.items_in_group = function(group) + local items = {} + local ok = true + for name, item in pairs(minetest.registered_items) do + -- the node should be in all groups + ok = true + for _, g in ipairs(group:split(',')) do + if not item.groups[g] then + ok = false + end + end + if ok then table.insert(items,name) end + end + return items +end + +local table_copy = function(table) + out = {} + for k,v in pairs(table) do + out[k] = v + end + return out +end + +zcg.add_craft = function(input, output, groups) + local str = minetest.registered_items[output].description + if string.find(str, "\n") then + if string.find(str, "lv.0") then + else + return + end + end + if minetest.get_item_group(output, "not_in_craft_guide") > 0 then + return + end + if not groups then groups = {} end + local c = {} + c.width = input.width + c.type = input.type + c.items = input.items + if c.items == nil then return end + for i, item in pairs(c.items) do + if item:sub(0,6) == "group:" then + local groupname = item:sub(7) + if groups[groupname] ~= nil then + c.items[i] = groups[groupname] + else + for _, gi in ipairs(zcg.items_in_group(groupname)) do + local g2 = groups + g2[groupname] = gi + zcg.add_craft({ + width = c.width, + type = c.type, + items = table_copy(c.items) + }, output, g2) -- it is needed to copy the table, else groups won't work right + end + return + end + end + end + if c.width == 0 then c.width = 3 end + table.insert(zcg.crafts[output],c) +end + +zcg.load_crafts = function(name) + zcg.crafts[name] = {} + local _recipes = minetest.get_all_craft_recipes(name) + if _recipes then + for i, recipe in ipairs(_recipes) do + if (recipe and recipe.items and recipe.type) then + zcg.add_craft(recipe, name) + end + end + end + if zcg.crafts[name] == nil or #zcg.crafts[name] == 0 then + zcg.crafts[name] = nil + else + table.insert(zcg.itemlist,name) + end +end + +zcg.need_load_all = true + +zcg.load_all = function() + print("Loading all crafts, this may take some time...") + local i = 0 + for name, item in pairs(minetest.registered_items) do + if (name and name ~= "") then + zcg.load_crafts(name) + end + i = i+1 + end + table.sort(zcg.itemlist) + zcg.need_load_all = false + print("All crafts loaded !") +end + +zcg.formspec = function(pn) + if zcg.need_load_all then zcg.load_all() end + page = zcg.users[pn].page + alt = zcg.users[pn].alt + current_item = zcg.users[pn].current_item + local formspec = "size[16,12.5]" + .. "button[0,0;2,.5;inven;Back]" + .. "button[0,1;2,.5;main;Main]" + .. "button[0,2;2,.5;recraft;Regnum]" + .."background[16,12.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + if zcg.users[pn].history.index > 1 then + formspec = formspec .. "image_button[0,3;1,1;zcg_previous.png;zcg_previous;;false;false;zcg_previous_press.png]" + else + formspec = formspec .. "image[0,3;1,1;zcg_previous_inactive.png]" + end + if zcg.users[pn].history.index < #zcg.users[pn].history.list then + formspec = formspec .. "image_button[1,3;1,1;zcg_next.png;zcg_next;;false;false;zcg_next_press.png]" + else + formspec = formspec .. "image[1,3;1,1;zcg_next_inactive.png]" + end + -- Show craft recipe + if current_item ~= "" then + if zcg.crafts[current_item] then + if alt > #zcg.crafts[current_item] then + alt = #zcg.crafts[current_item] + end + if alt > 1 then + formspec = formspec .. "button[9,0;1,1;zcg_alt:"..(alt-1)..";^]" + end + if alt < #zcg.crafts[current_item] then + formspec = formspec .. "button[9,2;1,1;zcg_alt:"..(alt+1)..";v]" + end + local c = zcg.crafts[current_item][alt] + if c then + local x = 3 + local y = 0 + for i, item in pairs(c.items) do + formspec = formspec .. "item_image_button["..((i-1)%c.width+x)..","..(math.floor((i-1)/c.width+y))..";1,1;"..item..";zcg:"..item..";]" + end + if c.type == "normal" or c.type == "cooking" then + formspec = formspec .. "image[8,2;1,1;zcg_method_"..c.type..".png]" + else -- we don't have an image for other types of crafting + formspec = formspec .. "label[0,2;Method: "..c.type.."]" + end + formspec = formspec .. "image[8,1;1,1;zcg_craft_arrow.png]" + formspec = formspec .. "item_image_button[9,1;1,1;"..zcg.users[pn].current_item..";;]" + end + end + end + + -- Node list + local npp = 16*6 -- nodes per page + local i = 0 -- for positionning buttons + local s = 0 -- for skipping pages + for _, name in ipairs(zcg.itemlist) do + if s < page*npp then s = s+1 else + if i >= npp then break end + formspec = formspec .. "item_image_button["..(i%16)..","..(math.floor(i/16)+5.5)..";1,1;"..name..";zcg:"..name..";]" + i = i+1 + end + end + if page > 0 then + formspec = formspec .. "button[0,12;1,.5;zcg_page:"..(page-1)..";<<]" + end + if i >= npp then + formspec = formspec .. "button[1,12;1,.5;zcg_page:"..(page+1)..";>>]" + end + formspec = formspec .. "label[2,11.85;Page "..(page+1).."/"..(math.floor(#zcg.itemlist/npp+1)).."]" -- The Y is approximatively the good one to have it centered vertically... + return formspec +end + + + +minetest.register_on_player_receive_fields(function(player,formname,fields) + local pn = player:get_player_name(); + if zcg.users[pn] == nil then zcg.users[pn] = {current_item = "", alt = 1, page = 0, history={index=0,list={}}} end + if fields.zcg then + inventory_plus.set_inventory_formspec(player, zcg.formspec(pn)) + return + elseif fields.zcg_previous then + if zcg.users[pn].history.index > 1 then + zcg.users[pn].history.index = zcg.users[pn].history.index - 1 + zcg.users[pn].current_item = zcg.users[pn].history.list[zcg.users[pn].history.index] + inventory_plus.set_inventory_formspec(player,zcg.formspec(pn)) + end + elseif fields.zcg_next then + if zcg.users[pn].history.index < #zcg.users[pn].history.list then + zcg.users[pn].history.index = zcg.users[pn].history.index + 1 + zcg.users[pn].current_item = zcg.users[pn].history.list[zcg.users[pn].history.index] + inventory_plus.set_inventory_formspec(player,zcg.formspec(pn)) + end + end + for k, v in pairs(fields) do + if (k:sub(0,4)=="zcg:") then + local ni = k:sub(5) + if zcg.crafts[ni] then + zcg.users[pn].current_item = ni + table.insert(zcg.users[pn].history.list, ni) + zcg.users[pn].history.index = #zcg.users[pn].history.list + inventory_plus.set_inventory_formspec(player,zcg.formspec(pn)) + end + elseif (k:sub(0,9)=="zcg_page:") then + zcg.users[pn].page = tonumber(k:sub(10)) + inventory_plus.set_inventory_formspec(player,zcg.formspec(pn)) + elseif (k:sub(0,8)=="zcg_alt:") then + zcg.users[pn].alt = tonumber(k:sub(9)) + inventory_plus.set_inventory_formspec(player,zcg.formspec(pn)) + end + end +end) diff --git a/mods/zcg/zcg/textures/inventory_plus_zcg.png b/mods/zcg/zcg/textures/inventory_plus_zcg.png new file mode 100644 index 0000000..2828407 Binary files /dev/null and b/mods/zcg/zcg/textures/inventory_plus_zcg.png differ diff --git a/mods/zcg/zcg/textures/zcg_craft_arrow.png b/mods/zcg/zcg/textures/zcg_craft_arrow.png new file mode 100644 index 0000000..cc0648b Binary files /dev/null and b/mods/zcg/zcg/textures/zcg_craft_arrow.png differ diff --git a/mods/zcg/zcg/textures/zcg_method_cooking.png b/mods/zcg/zcg/textures/zcg_method_cooking.png new file mode 100644 index 0000000..8779cf6 Binary files /dev/null and b/mods/zcg/zcg/textures/zcg_method_cooking.png differ diff --git a/mods/zcg/zcg/textures/zcg_method_normal.png b/mods/zcg/zcg/textures/zcg_method_normal.png new file mode 100644 index 0000000..f0fa64d Binary files /dev/null and b/mods/zcg/zcg/textures/zcg_method_normal.png differ diff --git a/mods/zcg/zcg/textures/zcg_next.png b/mods/zcg/zcg/textures/zcg_next.png new file mode 100644 index 0000000..e6e496c Binary files /dev/null and b/mods/zcg/zcg/textures/zcg_next.png differ diff --git a/mods/zcg/zcg/textures/zcg_next_inactive.png b/mods/zcg/zcg/textures/zcg_next_inactive.png new file mode 100644 index 0000000..5ce9cd3 Binary files /dev/null and b/mods/zcg/zcg/textures/zcg_next_inactive.png differ diff --git a/mods/zcg/zcg/textures/zcg_next_press.png b/mods/zcg/zcg/textures/zcg_next_press.png new file mode 100644 index 0000000..2bdaf86 Binary files /dev/null and b/mods/zcg/zcg/textures/zcg_next_press.png differ diff --git a/mods/zcg/zcg/textures/zcg_previous.png b/mods/zcg/zcg/textures/zcg_previous.png new file mode 100644 index 0000000..232e8e7 Binary files /dev/null and b/mods/zcg/zcg/textures/zcg_previous.png differ diff --git a/mods/zcg/zcg/textures/zcg_previous_inactive.png b/mods/zcg/zcg/textures/zcg_previous_inactive.png new file mode 100644 index 0000000..1c16fb2 Binary files /dev/null and b/mods/zcg/zcg/textures/zcg_previous_inactive.png differ diff --git a/mods/zcg/zcg/textures/zcg_previous_press.png b/mods/zcg/zcg/textures/zcg_previous_press.png new file mode 100644 index 0000000..81f3af1 Binary files /dev/null and b/mods/zcg/zcg/textures/zcg_previous_press.png differ