From fbe33b14cd06d9a07121387a7a65f2d9de6bf9b2 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Tue, 13 Jan 2015 21:08:35 +0100 Subject: [PATCH 01/39] HUD still buggy --- mods/hud/hunger.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/hud/hunger.lua b/mods/hud/hunger.lua index 236af426..c9e74f39 100755 --- a/mods/hud/hunger.lua +++ b/mods/hud/hunger.lua @@ -368,6 +368,7 @@ function hud.handle_node_actions(pos, oldnode, player, ext) new = HUD_HUNGER_EXHAUST_MOVE end if exhaus == nil then return end + print("zerobin") print(exhaus) -- If exhaus goes through the condition exhaus = exhaus + new if exhaus > HUD_HUNGER_EXHAUST_LVL then From 69bd6f34450b247573518b88b658773db139768a Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Tue, 13 Jan 2015 21:17:48 +0100 Subject: [PATCH 02/39] Commented stuff --- mods/hud/hunger.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/hud/hunger.lua b/mods/hud/hunger.lua index c9e74f39..d26054c0 100755 --- a/mods/hud/hunger.lua +++ b/mods/hud/hunger.lua @@ -352,7 +352,7 @@ end -- player-action based hunger changes function hud.handle_node_actions(pos, oldnode, player, ext) - if not player or not player:is_player() then + --[[if not player or not player:is_player() then return end local name = player:get_player_name() @@ -379,7 +379,7 @@ function hud.handle_node_actions(pos, oldnode, player, ext) hud.hunger[name] = h hud.set_hunger(player) end - hud.exhaustion[name] = exhaus + hud.exhaustion[name] = exhaus]] end minetest.register_on_placenode(hud.handle_node_actions) From 0f7316f5e9532f6f353dcce4ea38b885c6723d29 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Wed, 14 Jan 2015 13:58:13 +0100 Subject: [PATCH 03/39] correction de bug message irc pour shout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit correction d'une condition toujours fausse qui ne déclenche pas l'affichage du message pour l'option privs shout --- mods/_misc/noshout_messages.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/_misc/noshout_messages.lua b/mods/_misc/noshout_messages.lua index 889984d3..a61ef8e6 100755 --- a/mods/_misc/noshout_messages.lua +++ b/mods/_misc/noshout_messages.lua @@ -5,9 +5,9 @@ minetest.register_globalstep(function(dtime) TIMER = 0 for _,player in ipairs(minetest.get_connected_players()) do local name = player:get_player_name() - if not minetest.check_player_privs(name, {interact=shout}) then + if not minetest.check_player_privs(name, {shout=true}) then minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir communiquer avec les autres joueurs sur ce serveur, tu dois lire les règles de l'irc et les accepter. Tape /irc.") minetest.chat_send_player(name, "Hey " .. name .. " ! To speak to other people on this server, you have to read the rules of our irc channel and agree them. Type /irc.") end end -end) \ No newline at end of file +end) From 1f248792a5a49dd022ee2ed48858e2fb7dbdf327 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Wed, 14 Jan 2015 16:09:03 +0100 Subject: [PATCH 04/39] =?UTF-8?q?debug=20et=20am=C3=A9lioration=20de=20fut?= =?UTF-8?q?ure=5Fban?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit debug d'une mauvaise variable ajout d'une vérification pour éviter de rebannir un joueur déja banni --- mods/future_ban/init.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mods/future_ban/init.lua b/mods/future_ban/init.lua index d3854c8c..3380fbe4 100755 --- a/mods/future_ban/init.lua +++ b/mods/future_ban/init.lua @@ -26,6 +26,12 @@ minetest.register_chatcommand("future_ban", { minetest.chat_send_player(name, "Future ban list: " .. dump(future_ban_list)) return end + for _,n in ipairs(future_ban_list) do + if n == param then + minetest.chat_send_player(name, param .. " is already in future ban list.") + return + end + end if not minetest.get_player_by_name(param) then table.insert(future_ban_list, param) minetest.chat_send_player(name, param .. " to future ban list added.") @@ -35,8 +41,8 @@ minetest.register_chatcommand("future_ban", { end if not minetest.ban_player(param) then table.insert(future_ban_list, param) - minetest.chat_send_player(name, desc .. " to future ban list added.") - minetest.log("action", name .. " added " .. desc .. " to future ban list.") + minetest.chat_send_player(name, param .. " to future ban list added.") + minetest.log("action", name .. " added " .. param .. " to future ban list.") save_file() else local desc = minetest.get_ban_description(param) From 0dc48fc64367ea16dff75689c388c4621bcd0c0e Mon Sep 17 00:00:00 2001 From: crabman77 Date: Wed, 14 Jan 2015 17:33:46 +0100 Subject: [PATCH 05/39] passage de variables global en local passage de variables global en local --- mods/ambience_modpack/ambience/init.lua | 16 ++++++++-------- mods/builtin_falling/func.lua | 8 ++++---- mods/builtin_falling/rewirting.lua | 2 +- mods/builtin_item/init.lua | 2 +- mods/gauges/init.lua | 4 ++-- mods/lavatemple/dagger.lua | 8 ++++---- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/mods/ambience_modpack/ambience/init.lua b/mods/ambience_modpack/ambience/init.lua index 11ae692e..3a14d97d 100755 --- a/mods/ambience_modpack/ambience/init.lua +++ b/mods/ambience_modpack/ambience/init.lua @@ -236,15 +236,15 @@ local is_daytime = function() end local nodes_in_range = function(pos, search_distance, node_name) - minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} - maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} - nodes = minetest.find_nodes_in_area(minp, maxp, node_name) + local minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} + local maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} + local nodes = minetest.find_nodes_in_area(minp, maxp, node_name) --minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") return #nodes end local nodes_in_coords = function(minp, maxp, node_name) - nodes = minetest.find_nodes_in_area(minp, maxp, node_name) + local nodes = minetest.find_nodes_in_area(minp, maxp, node_name) --minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") return #nodes end @@ -394,11 +394,11 @@ local get_ambience = function(player) -- minetest.chat_send_all("n3uf:" ..node_3_under_feet) -- local air_or_ignore = {air=true,ignore=true} - minp = {x=pos.x-3,y=pos.y-4, z=pos.z-3} - maxp = {x=pos.x+3,y=pos.y-1, z=pos.z+3} + local minp = {x=pos.x-3,y=pos.y-4, z=pos.z-3} + local maxp = {x=pos.x+3,y=pos.y-1, z=pos.z+3} local air_under_player = nodes_in_coords(minp, maxp, "air") local ignore_under_player = nodes_in_coords(minp, maxp, "ignore") - air_plus_ignore_under = air_under_player + ignore_under_player + local air_plus_ignore_under = air_under_player + ignore_under_player -- minetest.chat_send_all("airUnder:" ..air_under_player) -- minetest.chat_send_all("ignoreUnder:" ..ignore_under_player) -- minetest.chat_send_all("a+i:" ..air_plus_ignore_under) @@ -448,7 +448,7 @@ local get_ambience = function(player) end - desert_in_range = (nodes_in_range(pos, 6, "default:desert_sand")+nodes_in_range(pos, 6, "default:desert_stone")) + local desert_in_range = (nodes_in_range(pos, 6, "default:desert_sand")+nodes_in_range(pos, 6, "default:desert_stone")) --minetest.chat_send_all("desertcount: " .. desert_in_range .. ",".. pos.y ) if desert_in_range >250 then if music then diff --git a/mods/builtin_falling/func.lua b/mods/builtin_falling/func.lua index 478d2745..5d2a714e 100755 --- a/mods/builtin_falling/func.lua +++ b/mods/builtin_falling/func.lua @@ -1,6 +1,6 @@ function spawn_falling_node(p, node, owners) - obj = minetest.add_entity(p, "__builtin:falling_node") + local obj = minetest.add_entity(p, "__builtin:falling_node") obj:get_luaentity():set_node(node) obj:get_luaentity():set_owner(owners) end @@ -52,10 +52,10 @@ end -- function nodeupdate_single(p, delay) - n = minetest.get_node(p) + local n = minetest.get_node(p) if minetest.get_item_group(n.name, "falling_node") ~= 0 then - p_bottom = {x=p.x, y=p.y-1, z=p.z} - n_bottom = minetest.get_node(p_bottom) + local p_bottom = {x=p.x, y=p.y-1, z=p.z} + local n_bottom = minetest.get_node(p_bottom) -- Note: walkable is in the node definition, not in item groups if minetest.registered_nodes[n_bottom.name] and (minetest.get_item_group(n.name, "float") == 0 or diff --git a/mods/builtin_falling/rewirting.lua b/mods/builtin_falling/rewirting.lua index 5033c1e4..af78035d 100755 --- a/mods/builtin_falling/rewirting.lua +++ b/mods/builtin_falling/rewirting.lua @@ -29,7 +29,7 @@ minetest.register_entity(":__builtin:falling_node", { item_texture = minetest.registered_items[itemname].inventory_image item_type = minetest.registered_items[itemname].type end - prop = { + local prop = { is_visible = true, textures = {node.name}, } diff --git a/mods/builtin_item/init.lua b/mods/builtin_item/init.lua index cd58665f..b5fbd6c6 100755 --- a/mods/builtin_item/init.lua +++ b/mods/builtin_item/init.lua @@ -30,7 +30,7 @@ minetest.register_entity(":__builtin:item", { item_texture = minetest.registered_items[itemname].inventory_image item_type = minetest.registered_items[itemname].type end - prop = { + local prop = { is_visible = true, visual = "sprite", textures = {"unknown_item.png"} diff --git a/mods/gauges/init.lua b/mods/gauges/init.lua index f9134cbf..c2c66d0a 100755 --- a/mods/gauges/init.lua +++ b/mods/gauges/init.lua @@ -19,8 +19,8 @@ function hp_bar:on_step(dtime) self.object:remove() return end - hp = wielder:get_hp() - breath = wielder:get_breath() + local hp = wielder:get_hp() + local breath = wielder:get_breath() self.object:set_properties({textures = {"health_" .. tostring(hp) .. ".png^breath_" .. tostring(breath) .. ".png"}}) end diff --git a/mods/lavatemple/dagger.lua b/mods/lavatemple/dagger.lua index bdd3c5d1..e1e24f13 100755 --- a/mods/lavatemple/dagger.lua +++ b/mods/lavatemple/dagger.lua @@ -3,13 +3,13 @@ minetest.register_globalstep(function(dtime) local players = minetest.get_connected_players() for i,player in ipairs(players) do - target = lavatemple.mapgen_data.pos; + local target = lavatemple.mapgen_data.pos; if not target then return end - pos = player:getpos() - dir = player:get_look_yaw() + local pos = player:getpos() + local dir = player:get_look_yaw() local angle_north = math.deg(math.atan2(target.x - pos.x, target.z - pos.z)) if angle_north < 0 then angle_north = angle_north + 360 end - angle_dir = 90 - math.deg(dir) + local angle_dir = 90 - math.deg(dir) local angle_relative = (angle_north - angle_dir) % 360 local compass_image = math.floor((angle_relative/30) + 0.5)%12 From db6c18ee365535eb76d3c2e63f7da3496acd0227 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Wed, 14 Jan 2015 23:16:22 +0100 Subject: [PATCH 06/39] Removed debug print from crabman77's pull-request in sprint --- mods/sprint/esprint.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/mods/sprint/esprint.lua b/mods/sprint/esprint.lua index 4ae36218..d200b2ed 100755 --- a/mods/sprint/esprint.lua +++ b/mods/sprint/esprint.lua @@ -12,7 +12,6 @@ local staminaHud = {} minetest.register_on_joinplayer(function(player) local playerName = player:get_player_name() - print("playename: " ..playerName) players[playerName] = { sprinting = false, timeOut = 0, From e1ba20639b9453aed40b93af9b551fdd782840e0 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 18:57:59 +0100 Subject: [PATCH 07/39] Removed global variables in maptools --- mods/maptools/default_nodes.lua | 70 +++++++++++++++++---------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/mods/maptools/default_nodes.lua b/mods/maptools/default_nodes.lua index 83d0df02..f7667586 100644 --- a/mods/maptools/default_nodes.lua +++ b/mods/maptools/default_nodes.lua @@ -6,13 +6,15 @@ if (minetest.get_modpath("intllib")) then S = function ( s ) return s end end + + minetest.register_node("maptools:stone", { description = S("Unbreakable Stone"), range = 12, stack_max = 10000, tiles = {"default_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -22,7 +24,7 @@ minetest.register_node("maptools:stonebrick", { stack_max = 10000, tiles = {"default_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -32,7 +34,7 @@ minetest.register_node("maptools:tree", { stack_max = 10000, tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -43,7 +45,7 @@ minetest.register_node("maptools:jungletree", { stack_max = 10000, tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -54,7 +56,7 @@ minetest.register_node("maptools:cactus", { stack_max = 10000, tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -75,7 +77,7 @@ minetest.register_node("maptools:papyrus", { type = "fixed", fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} }, - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_leaves_defaults(), }) @@ -85,7 +87,7 @@ minetest.register_node("maptools:dirt", { stack_max = 10000, tiles = {"default_dirt.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults(), }) @@ -95,7 +97,7 @@ minetest.register_node("maptools:wood", { stack_max = 10000, tiles = {"default_wood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), }) @@ -105,7 +107,7 @@ minetest.register_node("maptools:junglewood", { stack_max = 10000, tiles = {"default_junglewood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), }) @@ -118,7 +120,7 @@ minetest.register_node("maptools:glass", { paramtype = "light", sunlight_propagates = true, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_glass_defaults(), }) @@ -130,7 +132,7 @@ minetest.register_node("maptools:leaves", { tiles = {"default_leaves.png"}, paramtype = "light", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_leaves_defaults(), }) @@ -140,7 +142,7 @@ minetest.register_node("maptools:sand", { stack_max = 10000, tiles = {"default_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_sand_defaults(), }) @@ -150,7 +152,7 @@ minetest.register_node("maptools:gravel", { stack_max = 10000, tiles = {"default_gravel.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.35}, dug = {name="default_gravel_footstep", gain=0.6}, @@ -163,7 +165,7 @@ minetest.register_node("maptools:clay", { stack_max = 10000, tiles = {"default_clay.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults(), }) @@ -173,7 +175,7 @@ minetest.register_node("maptools:desert_sand", { stack_max = 10000, tiles = {"default_desert_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_sand_defaults(), }) @@ -183,7 +185,7 @@ minetest.register_node("maptools:sandstone", { stack_max = 10000, tiles = {"default_sandstone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -193,7 +195,7 @@ minetest.register_node("maptools:sandstone_brick", { stack_max = 10000, tiles = {"default_sandstone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -203,7 +205,7 @@ minetest.register_node("maptools:desert_stone", { stack_max = 10000, tiles = {"default_desert_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -213,7 +215,7 @@ minetest.register_node("maptools:desert_cobble", { stack_max = 10000, tiles = {"default_desert_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -223,7 +225,7 @@ minetest.register_node("maptools:desert_stonebrick", { stack_max = 10000, tiles = {"default_desert_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -234,7 +236,7 @@ minetest.register_node("maptools:grass", { tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain = 0.4}, }), @@ -246,7 +248,7 @@ minetest.register_node("maptools:fullgrass", { stack_max = 10000, tiles = {"default_grass.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), @@ -267,7 +269,7 @@ for slab_num = 1,3,1 do paramtype = "light", paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), }) end @@ -278,7 +280,7 @@ minetest.register_node("maptools:cobble", { stack_max = 10000, tiles = {"default_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -288,7 +290,7 @@ minetest.register_node("maptools:mossycobble", { stack_max = 10000, tiles = {"default_mossycobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -298,7 +300,7 @@ minetest.register_node("maptools:brick", { stack_max = 10000, tiles = {"default_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -308,7 +310,7 @@ minetest.register_node("maptools:coalblock", { stack_max = 10000, tiles = {"default_coal_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -319,7 +321,7 @@ minetest.register_node("maptools:steelblock", { stack_max = 10000, tiles = {"default_steel_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -329,7 +331,7 @@ minetest.register_node("maptools:goldblock", { stack_max = 10000, tiles = {"default_gold_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -339,7 +341,7 @@ minetest.register_node("maptools:copperblock", { stack_max = 10000, tiles = {"default_copper_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -349,7 +351,7 @@ minetest.register_node("maptools:bronzeblock", { stack_max = 10000, tiles = {"default_bronze_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -359,7 +361,7 @@ minetest.register_node("maptools:diamondblock", { stack_max = 10000, tiles = {"default_diamond_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -371,7 +373,7 @@ minetest.register_node("maptools:soil_wet", { stack_max = 10000, tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, grassland = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, soil = 3, wet = 1, grassland = 1}, sounds = default.node_sound_dirt_defaults(), }) @@ -381,6 +383,6 @@ minetest.register_node("maptools:desert_sand_soil_wet", { stack_max = 10000, drop = "", tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, desert = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, soil = 3, wet = 1, desert = 1}, sounds = default.node_sound_sand_defaults(), }) From a19c57fe440216c262ca8406ee23caeee24e6623 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 19:06:12 +0100 Subject: [PATCH 08/39] Maptool's update --- mods/maptools/{LICENSE.txt => LICENSE.md} | 7 +- mods/maptools/NODES.md | 45 ++ mods/maptools/README.md | 11 + mods/maptools/README.txt | 22 - mods/maptools/_README.txt | 53 -- mods/maptools/aliases.lua | 9 +- mods/maptools/config.lua | 29 + mods/maptools/craftitems.lua | 47 ++ mods/maptools/default_nodes.lua | 85 +-- mods/maptools/init.lua | 583 +----------------- mods/maptools/nodes.lua | 429 +++++++++++++ .../textures/maptools_super_apple_bottom.png | Bin 295 -> 0 bytes .../textures/maptools_super_apple_side.png | Bin 295 -> 0 bytes .../textures/maptools_super_apple_top.png | Bin 498 -> 0 bytes mods/maptools/tools.lua | 61 ++ 15 files changed, 707 insertions(+), 674 deletions(-) rename mods/maptools/{LICENSE.txt => LICENSE.md} (71%) create mode 100644 mods/maptools/NODES.md create mode 100644 mods/maptools/README.md delete mode 100644 mods/maptools/README.txt delete mode 100644 mods/maptools/_README.txt create mode 100644 mods/maptools/config.lua create mode 100644 mods/maptools/craftitems.lua create mode 100644 mods/maptools/nodes.lua delete mode 100644 mods/maptools/textures/maptools_super_apple_bottom.png delete mode 100644 mods/maptools/textures/maptools_super_apple_side.png delete mode 100644 mods/maptools/textures/maptools_super_apple_top.png create mode 100644 mods/maptools/tools.lua diff --git a/mods/maptools/LICENSE.txt b/mods/maptools/LICENSE.md similarity index 71% rename from mods/maptools/LICENSE.txt rename to mods/maptools/LICENSE.md index f42bd647..ca48e3a1 100644 --- a/mods/maptools/LICENSE.txt +++ b/mods/maptools/LICENSE.md @@ -1,8 +1,9 @@ -+---- zlib/libpng license ----+ +zlib license +============ -Copyright (c) 2013 Calinou +Copyright (c) 2012-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. +**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: diff --git a/mods/maptools/NODES.md b/mods/maptools/NODES.md new file mode 100644 index 00000000..f5ce3cc3 --- /dev/null +++ b/mods/maptools/NODES.md @@ -0,0 +1,45 @@ +Item names for spawning the items using /give or /giveme +======================================================== + +Items +----- + +* `admin_pick:` magenta pickaxe, infinite durability, mines everything including unbreakable blocks instantly. No drops. Don't put this pickaxe in the hands of a griefer, of course. + +* `admin_pick_with_drops:` same as admin pickaxe, but drops stuff. + +* `infinite_fuel:` fuel lasting for a (near)-infinite time. Don't worry about the "near" * it lasts for about 50 in-real-life years. + +* `super_apple:` a yellow apple which heals 20 HP. + +* `copper_coin,` +* `silver_coin,` +* `gold_coin:` these have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. + +Blocks +------ + +**[!]** denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit or similar). + + +* `(block)_u` : unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). Examples: `stone_u`, `wood_u`, `glass_u`, … + +* `full_grass:` unbreakable block with the grass texture on all sides. + +* `player_clip:` **[!]** invisible block, not pointable. + +* `full_clip:` invisible block, pointable. Also available as a thin face: full_clip_face. + +* `smoke_block:` some smoke (does not harm players or entities). + +* `no_build:` **[!]** very basic building prevention. + +* `no_interact:` prevents interacting through the block (opening chests, furnaces, attacking entities, …). + +* `damage_(1…5):` **[!]** damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). + +* `kill:` **[!]** instant kill (deals 10 heart damage) blocks. + +* `light_block:` **[!]** invisible non-solid block, prevents light from passing through. + +* `light_bulb:` **[!]** invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/README.md b/mods/maptools/README.md new file mode 100644 index 00000000..3a428b7e --- /dev/null +++ b/mods/maptools/README.md @@ -0,0 +1,11 @@ +Map Tools +========= + +Map Tools for Minetest , a free/libre infinite +world block sandbox game. + +To install, just clone this repository into your "mods" directory. + +Map Tools 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/maptools/README.txt b/mods/maptools/README.txt deleted file mode 100644 index 4c155813..00000000 --- a/mods/maptools/README.txt +++ /dev/null @@ -1,22 +0,0 @@ -Calinou's Minetest Mods -===================== - -Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. - -This Git repository is mostly made for servers; it allows easy updating. - -To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. - - - -Misc stuff -===================== - -All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. - -Mods' forum threads: -More Blocks: http://minetest.net/forum/viewtopic.php?id=509 -More Ores: http://minetest.net/forum/viewtopic.php?id=549 -Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 -Doors+: http://minetest.net/forum/viewtopic.php?id=2059 -Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 diff --git a/mods/maptools/_README.txt b/mods/maptools/_README.txt deleted file mode 100644 index cfbe0b2e..00000000 --- a/mods/maptools/_README.txt +++ /dev/null @@ -1,53 +0,0 @@ -*** Item names for spawning the items using /give or /giveme *** - -Items: - -- admin_pick -Purple pickaxe, infinite durability, mines everything including unbreakable blocks instantly. Don't put this pickaxe in the hands of a griefer, of course. :) - -- infinitefuel -Fuel lasting for a (near)-infinite time. Don't worry about the "near" - it lasts for about 50 in-real-life years. - -- superapple -An apple which heals all 10 hearts. - -- copper_coin -- silver_coin -- gold_coin -These have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. - -Blocks: -A /!\ denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit). - -- (insert block name here)_u -- example: stone_u -Unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). - -- fullgrass -Unbrakable block with the "grass" texture on all sides. - -- playerclip -/!\ Invisible block, not pointable. - -- fullclip -Invisible block, pointable. - -- smoke_block -Some smoke (does not harm players or entities). - -- nobuild -/!\ Very basic building prevention. - -- nointeract -Prevents interacting through the block (interacting as in opening chests, furnaces, attacking entities...). - -- damage_(insert damage in half hearts here) -/!\ Damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). - -- killblock -/!\ Instant kill (deals 10 heart damage) blocks. - -- lightblock -/!\ Invisible non-solid block, prevents light from passing through. - -- lightbulb -/!\ Invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/aliases.lua b/mods/maptools/aliases.lua index 8742f44e..f1f0cc57 100644 --- a/mods/maptools/aliases.lua +++ b/mods/maptools/aliases.lua @@ -1,4 +1,9 @@ --- Aliases +--[[ +Map Tools: alias definitions + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] minetest.register_alias("adminpick", "maptools:pick_admin") minetest.register_alias("adminpickaxe", "maptools:pick_admin") @@ -69,8 +74,6 @@ minetest.register_alias("fake_fire", "maptools:fake_fire") minetest.register_alias("ffire", "maptools:fake_fire") minetest.register_alias("igniter", "maptools:igniter") --- Unbreakable block aliases - minetest.register_alias("stone_u", "maptools:stone") minetest.register_alias("tree_u", "maptools:tree") minetest.register_alias("cobble_u", "maptools:cobble") diff --git a/mods/maptools/config.lua b/mods/maptools/config.lua new file mode 100644 index 00000000..63f1a260 --- /dev/null +++ b/mods/maptools/config.lua @@ -0,0 +1,29 @@ +--[[ +Map Tools: configuration handling + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +maptools.config = {} + +local function getbool_default(setting, default) + local value = minetest.setting_getbool(setting) + if value == nil then + value = default + end + return value +end + +local function setting(settingtype, name, default) + if settingtype == "bool" then + maptools.config[name] = + getbool_default("maptools." .. name, default) + else + maptools.config[name] = + minetest.setting_get("maptools." .. name) or default + end +end + +-- Show Map Tools stuff in creative inventory (1 or 0): +setting("integer", "hide_from_creative_inventory", 1) diff --git a/mods/maptools/craftitems.lua b/mods/maptools/craftitems.lua new file mode 100644 index 00000000..c311aa95 --- /dev/null +++ b/mods/maptools/craftitems.lua @@ -0,0 +1,47 @@ +--[[ +Map Tools: item definitions + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = maptools.intllib + +maptools.creative = maptools.config["hide_from_creative_inventory"] + +minetest.register_craftitem("maptools:copper_coin", { + description = S("Copper Coin"), + inventory_image = "maptools_copper_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craftitem("maptools:silver_coin", { + description = S("Silver Coin"), + inventory_image = "maptools_silver_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craftitem("maptools:gold_coin", { + description = S("Gold Coin"), + inventory_image = "maptools_gold_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craftitem("maptools:infinitefuel", { + description = S("Infinite Fuel"), + inventory_image = "maptools_infinitefuel.png", + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "maptools:infinitefuel", + burntime = 1000000000, +}) diff --git a/mods/maptools/default_nodes.lua b/mods/maptools/default_nodes.lua index f7667586..3ac0caf5 100644 --- a/mods/maptools/default_nodes.lua +++ b/mods/maptools/default_nodes.lua @@ -1,12 +1,13 @@ -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 +--[[ +Map Tools: unbreakable default nodes +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] +local S = maptools.intllib + +maptools.creative = maptools.config["hide_from_creative_inventory"] minetest.register_node("maptools:stone", { description = S("Unbreakable Stone"), @@ -14,7 +15,7 @@ minetest.register_node("maptools:stone", { stack_max = 10000, tiles = {"default_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -24,7 +25,7 @@ minetest.register_node("maptools:stonebrick", { stack_max = 10000, tiles = {"default_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -34,7 +35,7 @@ minetest.register_node("maptools:tree", { stack_max = 10000, tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -45,7 +46,7 @@ minetest.register_node("maptools:jungletree", { stack_max = 10000, tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -56,7 +57,7 @@ minetest.register_node("maptools:cactus", { stack_max = 10000, tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -77,7 +78,7 @@ minetest.register_node("maptools:papyrus", { type = "fixed", fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} }, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -87,7 +88,7 @@ minetest.register_node("maptools:dirt", { stack_max = 10000, tiles = {"default_dirt.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -97,7 +98,7 @@ minetest.register_node("maptools:wood", { stack_max = 10000, tiles = {"default_wood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), }) @@ -107,7 +108,7 @@ minetest.register_node("maptools:junglewood", { stack_max = 10000, tiles = {"default_junglewood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), }) @@ -120,7 +121,7 @@ minetest.register_node("maptools:glass", { paramtype = "light", sunlight_propagates = true, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_glass_defaults(), }) @@ -132,7 +133,7 @@ minetest.register_node("maptools:leaves", { tiles = {"default_leaves.png"}, paramtype = "light", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -142,7 +143,7 @@ minetest.register_node("maptools:sand", { stack_max = 10000, tiles = {"default_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_sand_defaults(), }) @@ -152,7 +153,7 @@ minetest.register_node("maptools:gravel", { stack_max = 10000, tiles = {"default_gravel.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.35}, dug = {name="default_gravel_footstep", gain=0.6}, @@ -165,7 +166,7 @@ minetest.register_node("maptools:clay", { stack_max = 10000, tiles = {"default_clay.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -175,7 +176,7 @@ minetest.register_node("maptools:desert_sand", { stack_max = 10000, tiles = {"default_desert_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_sand_defaults(), }) @@ -185,7 +186,7 @@ minetest.register_node("maptools:sandstone", { stack_max = 10000, tiles = {"default_sandstone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -195,7 +196,7 @@ minetest.register_node("maptools:sandstone_brick", { stack_max = 10000, tiles = {"default_sandstone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -205,7 +206,7 @@ minetest.register_node("maptools:desert_stone", { stack_max = 10000, tiles = {"default_desert_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -215,7 +216,7 @@ minetest.register_node("maptools:desert_cobble", { stack_max = 10000, tiles = {"default_desert_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -225,7 +226,7 @@ minetest.register_node("maptools:desert_stonebrick", { stack_max = 10000, tiles = {"default_desert_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -236,7 +237,7 @@ minetest.register_node("maptools:grass", { tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain = 0.4}, }), @@ -248,7 +249,7 @@ minetest.register_node("maptools:fullgrass", { stack_max = 10000, tiles = {"default_grass.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), @@ -269,7 +270,7 @@ for slab_num = 1,3,1 do paramtype = "light", paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), }) end @@ -280,7 +281,7 @@ minetest.register_node("maptools:cobble", { stack_max = 10000, tiles = {"default_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -290,7 +291,7 @@ minetest.register_node("maptools:mossycobble", { stack_max = 10000, tiles = {"default_mossycobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -300,7 +301,7 @@ minetest.register_node("maptools:brick", { stack_max = 10000, tiles = {"default_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -310,7 +311,7 @@ minetest.register_node("maptools:coalblock", { stack_max = 10000, tiles = {"default_coal_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -321,7 +322,7 @@ minetest.register_node("maptools:steelblock", { stack_max = 10000, tiles = {"default_steel_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -331,7 +332,7 @@ minetest.register_node("maptools:goldblock", { stack_max = 10000, tiles = {"default_gold_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -341,7 +342,7 @@ minetest.register_node("maptools:copperblock", { stack_max = 10000, tiles = {"default_copper_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -351,7 +352,7 @@ minetest.register_node("maptools:bronzeblock", { stack_max = 10000, tiles = {"default_bronze_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -359,9 +360,9 @@ minetest.register_node("maptools:diamondblock", { description = S("Unbreakable Diamond Block"), range = 12, stack_max = 10000, - tiles = {"default_diamond_block.png"}, + tiles = {"default_steel_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -373,7 +374,7 @@ minetest.register_node("maptools:soil_wet", { stack_max = 10000, tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, soil = 3, wet = 1, grassland = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, grassland = 1}, sounds = default.node_sound_dirt_defaults(), }) @@ -383,6 +384,6 @@ minetest.register_node("maptools:desert_sand_soil_wet", { stack_max = 10000, drop = "", tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, soil = 3, wet = 1, desert = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, desert = 1}, sounds = default.node_sound_sand_defaults(), }) diff --git a/mods/maptools/init.lua b/mods/maptools/init.lua index c5178fae..dbff209c 100644 --- a/mods/maptools/init.lua +++ b/mods/maptools/init.lua @@ -1,551 +1,32 @@ -MAPTOOLS_CREATIVE = 1 -- Set this to 0 if you want Map Tools nodes and items to appear in the creative inventory. - --- Load translation library if intllib is installed - -local S -if (minetest.get_modpath("intllib")) then - dofile(minetest.get_modpath("intllib").."/intllib.lua") - S = intllib.Getter(minetest.get_current_modname()) - else - S = function ( s ) return s end -end - -dofile(minetest.get_modpath("maptools").."/aliases.lua") -dofile(minetest.get_modpath("maptools").."/default_nodes.lua") - ---[[ -Map Tools by Calinou -Licensed under the zlib license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. ---]] - --- Redefine cloud so that the admin pickaxe can mine it. - -minetest.register_node(":default:cloud", { - description = S("Cloud"), - tiles = {"default_cloud.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_defaults(), -}) - --- Items - -minetest.register_craft({ - type = "fuel", - recipe = "maptools:infinitefuel", - burntime = 1000000000, -}) - --- Nodes - -minetest.register_node("maptools:black", { - description = S("Black"), - range = 12, - stack_max = 10000, - tiles = {"black.png"}, - drop = "", - post_effect_color = {a=255, r=0, g=0, b=0}, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:white", { - description = S("White"), - range = 12, - stack_max = 10000, - tiles = {"white.png"}, - drop = "", - post_effect_color = {a=255, r=128, g=128, b=128}, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:playerclip", { - description = S("Player Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fake_walkable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fullclip", { - description = S("Full Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_blue.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fake_walkable_pointable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:ignore_like", { - description = S("Ignore-like"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:ignore_like_no_clip", { - description = S("Ignore-like (no clip)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - - -minetest.register_node("maptools:ignore_like_no_point", { - description = S("Ignore-like (no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:ignore_like_no_clip_no_point", { - description = S("Ignore-like (no clip, no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fullclip_face", { - description = S("Full Clip Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_white.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_bottom", { - description = S("Player Clip Bottom Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_orange.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_top", { - description = S("Player Clip Top Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_yellow.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, -}) - -for pusher_num=1,10,1 do -minetest.register_node("maptools:pusher_" .. pusher_num, { - description = S("Pusher (%s)"):format(pusher_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_apple.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100, bouncy=pusher_num*100}, -}) -end - -minetest.register_node("maptools:lightbulb", { - description = S("Light Bulb"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", - drawtype = "airlike", - walkable = false, - pointable = false, - light_source = 15, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:nobuild", { - description = S("Build Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^bones_bones.png", - drawtype = "airlike", - walkable = false, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:nointeract", { - description = S("Interact Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_scorched_stuff.png", - drawtype = "airlike", - walkable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:climb", { - description = S("Climb Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_ladder.png", - drawtype = "airlike", - walkable = false, - climbable = true, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -for damage_num=1,5,1 do -minetest.register_node("maptools:damage_" .. damage_num, { - description = S("Damaging Block (%s)"):format(damage_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = damage_num, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) -end - -minetest.register_node("maptools:kill", { - description = S("Kill Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_black.png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = 20, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:smoke", { - description = S("Smoke Block"), - range = 12, - stack_max = 10000, - tiles = {"maptools_smoke.png"}, - drawtype = "allfaces_optional", - walkable = false, - paramtype = "light", - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - post_effect_color = {a=192, r=96, g=96, b=96}, -}) - -minetest.register_node("maptools:ladder", { - description = S("Fake Ladder"), - range = 12, - stack_max = 10000, - drawtype = "signlike", - tiles = {"default_ladder.png"}, - inventory_image = "default_ladder.png", - wield_image = "default_ladder.png", - paramtype = "light", - paramtype2 = "wallmounted", - walkable = false, - sunlight_propagates = true, - selection_box = { - type = "wallmounted", - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("maptools:permanent_fire", { - description = S("Permanent Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sunlight_propagates = true, - walkable = false, - damage_per_second = 4, -}) - -minetest.register_node("maptools:fake_fire", { - description = S("Fake Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sunlight_propagates = true, - walkable = false, -}) - -minetest.register_node("maptools:igniter", { - drawtype = "airlike", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^crosshair.png", - description = S("Igniter"), - paramtype = "light", - inventory_image = "fire_basic_flame.png", - drop = "", - groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sunlight_propagates = true, - pointable = false, - walkable = false, -}) - -minetest.register_node("maptools:superapple", { - description = S("Super Apple"), - range = 12, - stack_max = 99, - drawtype = "nodebox", - visual_scale = 1.0, - tiles = {"maptools_super_apple_top.png","maptools_super_apple_bottom.png","maptools_super_apple_side.png"}, - inventory_image = "maptools_superapple.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - node_box = { - type = "fixed", - fixed = { - {-3/16, -7/16, -3/16, 3/16, 1/16, 3/16}, - {-4/16, -6/16, -3/16, 4/16, 0, 3/16}, - {-3/16, -6/16, -4/16, 3/16, 0, 4/16}, - {-1/32, 1/16, -1/32, 1/32, 4/16, 1/32}, - {-1/16, 1.6/16, 0, 1/16, 1.8/16, 1/16}, - {-2/16, 1.4/16, 1/16, 1/16, 1.6/16, 2/16}, - {-2/16, 1.2/16, 2/16, 0, 1.4/16, 3/16}, - {-1.5/16, 1/16, .5/16, 0.5/16, 1.2/16, 2.5/16}, - } - }, - is_ground_content = true, - groups = {fleshy = 3, dig_immediate = 3, not_in_creative_inventory = 0, flammable = 2, leafdecay = 3, leafdecay_drop = 1}, - on_use = minetest.item_eat(20), - sounds = default.node_sound_leaves_defaults(), - after_place_node = function(pos, placer, itemstack) - if placer:is_player() then - minetest.set_node(pos, {name = "maptools:superapple", param2= 1}) - end - end, -}) - --- Items - -minetest.register_craftitem("maptools:copper_coin", { - description = S("Copper Coin"), - inventory_image = "maptools_copper_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_craftitem("maptools:silver_coin", { - description = S("Silver Coin"), - inventory_image = "maptools_silver_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_craftitem("maptools:gold_coin", { - description = S("Gold Coin"), - inventory_image = "maptools_gold_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_craftitem("maptools:infinitefuel", { - description = S("Infinite Fuel"), - inventory_image = "maptools_infinitefuel.png", - stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - --- Tools - -minetest.register_tool("maptools:pick_admin", { - description = S("Admin Pickaxe"), - range = 12, - inventory_image = "maptools_adminpick.png", - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, - tool_capabilities = { - full_punch_interval = 0.1, - max_drop_level = 3, - groupcaps= { - unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - }, - damage_groups = {fleshy = 1000}, - }, -}) - -minetest.register_tool("maptools:pick_admin_with_drops", { - description = S("Admin Pickaxe with Drops"), - range = 12, - inventory_image = "maptools_adminpick_with_drops.png", - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, - tool_capabilities = { - full_punch_interval = 0.35, - max_drop_level = 3, - groupcaps = { - unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - }, - damage_groups = {fleshy = 1000}, - }, -}) - -minetest.register_on_punchnode(function(pos, node, puncher) - if puncher:get_wielded_item():get_name() == "maptools:pick_admin" - and minetest.get_node(pos).name ~= "air" then - minetest.log("action", puncher:get_player_name() .. " digs " .. minetest.get_node(pos).name .. " at " .. minetest.pos_to_string(pos) .. " using an Admin Pickaxe.") - minetest.remove_node(pos) -- The node is removed directly, which means it even works on non-empty containers and group-less nodes. - nodeupdate(pos) -- Run node update actions like falling nodes. - end -end) - -if minetest.setting_getbool("log_mods") then - minetest.log("action", "Carbone: [maptools] loaded.") -end +--[[ +===================================================================== +** Map Tools ** +By Calinou. + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +===================================================================== +--]] + +maptools = {} + +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function(s) return s end +end +maptools.intllib = S + +local modpath = minetest.get_modpath("maptools") + +dofile(modpath .. "/config.lua") +dofile(modpath .. "/aliases.lua") +dofile(modpath .. "/craftitems.lua") +dofile(modpath .. "/default_nodes.lua") +dofile(modpath .. "/nodes.lua") +dofile(modpath .. "/tools.lua") + +if minetest.setting_getbool("log_mods") then + minetest.log("action", S("[maptools] loaded.")) +end diff --git a/mods/maptools/nodes.lua b/mods/maptools/nodes.lua new file mode 100644 index 00000000..8ceef647 --- /dev/null +++ b/mods/maptools/nodes.lua @@ -0,0 +1,429 @@ +--[[ +Map Tools: node definitions + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = maptools.intllib + +maptools.creative = maptools.config["hide_from_creative_inventory"] + +-- Redefine cloud so that the admin pickaxe can mine it: +minetest.register_node(":default:cloud", { + description = S("Cloud"), + tiles = {"default_cloud.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_defaults(), +}) + +-- Nodes +-- ===== + +minetest.register_node("maptools:black", { + description = S("Black"), + range = 12, + stack_max = 10000, + tiles = {"black.png"}, + drop = "", + post_effect_color = {a=255, r=0, g=0, b=0}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:white", { + description = S("White"), + range = 12, + stack_max = 10000, + tiles = {"white.png"}, + drop = "", + post_effect_color = {a=255, r=128, g=128, b=128}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:playerclip", { + description = S("Player Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fake_walkable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fullclip", { + description = S("Full Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_blue.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fake_walkable_pointable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:ignore_like", { + description = S("Ignore-like"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:ignore_like_no_clip", { + description = S("Ignore-like (no clip)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + + +minetest.register_node("maptools:ignore_like_no_point", { + description = S("Ignore-like (no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:ignore_like_no_clip_no_point", { + description = S("Ignore-like (no clip, no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fullclip_face", { + description = S("Full Clip Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_white.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_bottom", { + description = S("Player Clip Bottom Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_orange.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_top", { + description = S("Player Clip Top Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_yellow.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, +}) + +for pusher_num=1,10,1 do +minetest.register_node("maptools:pusher_" .. pusher_num, { + description = S("Pusher (%s)"):format(pusher_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_apple.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100, bouncy=pusher_num*100}, +}) +end + +minetest.register_node("maptools:lightbulb", { + description = S("Light Bulb"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", + drawtype = "airlike", + walkable = false, + pointable = false, + light_source = 15, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:nobuild", { + description = S("Build Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^bones_bones.png", + drawtype = "airlike", + walkable = false, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:nointeract", { + description = S("Interact Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_scorched_stuff.png", + drawtype = "airlike", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:climb", { + description = S("Climb Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_ladder.png", + drawtype = "airlike", + walkable = false, + climbable = true, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +for damage_num=1,5,1 do +minetest.register_node("maptools:damage_" .. damage_num, { + description = S("Damaging Block (%s)"):format(damage_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = damage_num, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) +end + +minetest.register_node("maptools:kill", { + description = S("Kill Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_black.png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = 20, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:smoke", { + description = S("Smoke Block"), + range = 12, + stack_max = 10000, + tiles = {"maptools_smoke.png"}, + drawtype = "allfaces_optional", + walkable = false, + paramtype = "light", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + post_effect_color = {a=192, r=96, g=96, b=96}, +}) + +minetest.register_node("maptools:ladder", { + description = S("Fake Ladder"), + range = 12, + stack_max = 10000, + drawtype = "signlike", + tiles = {"default_ladder.png"}, + inventory_image = "default_ladder.png", + wield_image = "default_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:permanent_fire", { + description = S("Permanent Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sunlight_propagates = true, + walkable = false, + damage_per_second = 4, +}) + +minetest.register_node("maptools:fake_fire", { + description = S("Fake Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sunlight_propagates = true, + walkable = false, +}) + +minetest.register_node("maptools:igniter", { + drawtype = "airlike", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^crosshair.png", + description = S("Igniter"), + paramtype = "light", + inventory_image = "fire_basic_flame.png", + drop = "", + groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sunlight_propagates = true, + pointable = false, + walkable = false, +}) + +minetest.register_node("maptools:superapple", { + description = S("Super Apple"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"maptools_superapple.png"}, + inventory_image = "maptools_superapple.png", + paramtype = "light", + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + walkable = false, + groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = maptools.creative}, + on_use = minetest.item_eat(20), + sounds = default.node_sound_defaults(), +}) diff --git a/mods/maptools/textures/maptools_super_apple_bottom.png b/mods/maptools/textures/maptools_super_apple_bottom.png deleted file mode 100644 index 97f61e171c0291015d80fb19c8cbae5a11436b2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqkEEyw(>0&3oIs&1o-U3d7N?(1G~{Y_5OJA*I(_0% zraVvj6r-M*LXT7jAL4j?;3E=m$^F zGdWW47!ETWa|m1!KkfE!6)`c!=OPMBm3)c^Yz{yDG-u)srsoQ$58M(p@V&6@_HEt+ z60B#8dloaTxmxb?>?#N2rI2Q&TYDPz-rsnjI`?#OZrq-TAG!-(U%TmDeE;>L*!vOJ mfAt<)^VxO5sz=}duVb%TVcO~SWotOl{S2P2elF{r5}E)Rt8^Iv diff --git a/mods/maptools/textures/maptools_super_apple_side.png b/mods/maptools/textures/maptools_super_apple_side.png deleted file mode 100644 index cd4c83153f2abe5c0c2ed349e3c0d676b27a2f80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqkEE!u^3{~$2|%GOo-U3d7N?(1G~{Y_5OJA*I(_0% zraVvj6r-M*LXT7jAL4j?;3E=m$^F zGdWW47!ETWa|m1!KkfE!6)`c!=OPMBm3)c^Yz{yDG-u)srsoQ$58M(p@V&6@_HEt+ z60B#8dloaTxmxb?>?#N2rI2Q&TYDPz-rsnjI`?#OZrq-TAG!-(U%TmDeE;>L*!vOJ mfAt<)^VxO5sz=}duVb%TVcO~SWotOl{S2P2elF{r5}E)>;dE61 diff --git a/mods/maptools/textures/maptools_super_apple_top.png b/mods/maptools/textures/maptools_super_apple_top.png deleted file mode 100644 index 4d4dbc056e1913768f70134e28a6bf551b87216b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmV{Ut&2O5LW0q`a zv=Id$>4dnxgUhon0QI^&*J}AI;MYCiTY+p=^8M`^$0rfegE#=`xRfTB8%?L Date: Thu, 15 Jan 2015 19:12:20 +0100 Subject: [PATCH 09/39] Moreblocks' update - Moreblocks' update to use last version's nodes and features --- mods/moreblocks/{LICENSE.txt => LICENSE.md} | 7 +- mods/moreblocks/README.md | 11 + mods/moreblocks/README.txt | 12 - mods/moreblocks/aliases.lua | 21 +- mods/moreblocks/circular_saw.lua | 10 +- mods/moreblocks/config.lua | 7 + mods/moreblocks/crafting.lua | 7 +- mods/moreblocks/depends.txt | 4 +- mods/moreblocks/init.lua | 23 +- mods/moreblocks/locale/de.txt | 0 mods/moreblocks/locale/es.txt | 0 mods/moreblocks/locale/fr.txt | 0 mods/moreblocks/locale/template.txt | 0 mods/moreblocks/models/moreblocks_slope.obj | 21 + .../models/moreblocks_slope_half.obj | 23 + .../models/moreblocks_slope_half_raised.obj | 26 + .../models/moreblocks_slope_inner.obj | 26 + .../models/moreblocks_slope_inner_half.obj | 28 ++ .../moreblocks_slope_inner_half_raised.obj | 31 ++ .../models/moreblocks_slope_outer.obj | 18 + .../models/moreblocks_slope_outer_cut.obj | 19 + .../moreblocks_slope_outer_cut_half.obj | 20 + ...moreblocks_slope_outer_cut_half_raised.obj | 23 + .../models/moreblocks_slope_outer_half.obj | 22 + .../moreblocks_slope_outer_half_raised.obj | 27 ++ mods/moreblocks/nodes.lua | 14 +- mods/moreblocks/ownership.lua | 6 + mods/moreblocks/redefinitions.lua | 12 + mods/moreblocks/stairsplus/API.md | 3 +- mods/moreblocks/stairsplus/aliases.lua | 8 + mods/moreblocks/stairsplus/conversion.lua | 7 + mods/moreblocks/stairsplus/init.lua | 19 +- mods/moreblocks/stairsplus/microblocks.lua | 15 +- mods/moreblocks/stairsplus/panels.lua | 15 +- mods/moreblocks/stairsplus/registrations.lua | 11 +- mods/moreblocks/stairsplus/slabs.lua | 21 +- mods/moreblocks/stairsplus/slopes.lua | 459 ++++++++++++++++++ mods/moreblocks/stairsplus/stairs.lua | 21 +- mods/moreblocks/textures/default_brick.png | Bin .../textures/default_fence_overlay.png | Bin mods/moreblocks/textures/invisible.png | Bin .../textures/moreblocks_cactus_brick.png | Bin .../textures/moreblocks_cactus_checker.png | Bin .../moreblocks_circle_stone_bricks.png | Bin .../moreblocks_circular_saw_bottom.png | Bin .../textures/moreblocks_circular_saw_side.png | Bin .../textures/moreblocks_circular_saw_top.png | Bin .../textures/moreblocks_clean_glass.png | Bin .../textures/moreblocks_coal_checker.png | Bin .../textures/moreblocks_coal_glass.png | Bin .../moreblocks_coal_glass_stairsplus.png | Bin .../textures/moreblocks_coal_stone.png | Bin .../textures/moreblocks_coal_stone_bricks.png | Bin .../textures/moreblocks_empty_bookshelf.png | Bin .../textures/moreblocks_fence_jungle_wood.png | Bin .../textures/moreblocks_fence_wood.png | Bin mods/moreblocks/textures/moreblocks_glass.png | Bin .../textures/moreblocks_glass_stairsplus.png | Bin .../textures/moreblocks_glow_glass.png | Bin .../moreblocks_glow_glass_stairsplus.png | Bin .../textures/moreblocks_grey_bricks.png | Bin .../textures/moreblocks_iron_checker.png | Bin .../textures/moreblocks_iron_glass.png | Bin .../moreblocks_iron_glass_stairsplus.png | Bin .../textures/moreblocks_iron_stone.png | Bin .../textures/moreblocks_iron_stone_bricks.png | Bin .../textures/moreblocks_junglestick.png | Bin .../moreblocks_obsidian_glass_stairsplus.png | Bin .../textures/moreblocks_plankstone.png | Bin .../textures/moreblocks_plankstone_2.png | Bin mods/moreblocks/textures/moreblocks_rope.png | Bin .../textures/moreblocks_split_stone_tile.png | Bin .../moreblocks_split_stone_tile_alt.png | Bin .../moreblocks_split_stone_tile_top.png | Bin .../textures/moreblocks_stone_tile.png | Bin .../textures/moreblocks_super_glow_glass.png | Bin ...moreblocks_super_glow_glass_stairsplus.png | Bin .../textures/moreblocks_sweeper.png | Bin mods/moreblocks/textures/moreblocks_tar.png | Bin .../textures/moreblocks_trap_glass.png | Bin .../textures/moreblocks_trap_glow_glass.png | Bin .../textures/moreblocks_trap_stone.png | Bin .../moreblocks_trap_super_glow_glass.png | Bin .../textures/moreblocks_tree_stairsplus.png | Bin .../textures/moreblocks_wood_tile.png | Bin .../textures/moreblocks_wood_tile_center.png | Bin .../textures/moreblocks_wood_tile_full.png | Bin .../textures/moreblocks_wood_tile_up.png | Bin 88 files changed, 915 insertions(+), 82 deletions(-) rename mods/moreblocks/{LICENSE.txt => LICENSE.md} (71%) mode change 100755 => 100644 create mode 100644 mods/moreblocks/README.md delete mode 100755 mods/moreblocks/README.txt mode change 100755 => 100644 mods/moreblocks/aliases.lua mode change 100755 => 100644 mods/moreblocks/circular_saw.lua mode change 100755 => 100644 mods/moreblocks/config.lua mode change 100755 => 100644 mods/moreblocks/crafting.lua mode change 100755 => 100644 mods/moreblocks/depends.txt mode change 100755 => 100644 mods/moreblocks/init.lua mode change 100755 => 100644 mods/moreblocks/locale/de.txt mode change 100755 => 100644 mods/moreblocks/locale/es.txt mode change 100755 => 100644 mods/moreblocks/locale/fr.txt mode change 100755 => 100644 mods/moreblocks/locale/template.txt create mode 100644 mods/moreblocks/models/moreblocks_slope.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_half.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_half_raised.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_inner.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_inner_half.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_half.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj mode change 100755 => 100644 mods/moreblocks/nodes.lua mode change 100755 => 100644 mods/moreblocks/ownership.lua mode change 100755 => 100644 mods/moreblocks/redefinitions.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/API.md mode change 100755 => 100644 mods/moreblocks/stairsplus/aliases.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/conversion.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/init.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/microblocks.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/panels.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/registrations.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/slabs.lua create mode 100644 mods/moreblocks/stairsplus/slopes.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/stairs.lua mode change 100755 => 100644 mods/moreblocks/textures/default_brick.png mode change 100755 => 100644 mods/moreblocks/textures/default_fence_overlay.png mode change 100755 => 100644 mods/moreblocks/textures/invisible.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_cactus_brick.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_cactus_checker.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_circle_stone_bricks.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_circular_saw_bottom.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_circular_saw_side.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_circular_saw_top.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_clean_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_checker.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_stone.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_stone_bricks.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_empty_bookshelf.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_fence_jungle_wood.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_fence_wood.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_glow_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_grey_bricks.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_checker.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_stone.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_stone_bricks.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_junglestick.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_plankstone.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_plankstone_2.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_rope.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_split_stone_tile.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_split_stone_tile_top.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_stone_tile.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_super_glow_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_sweeper.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_tar.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_trap_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_trap_glow_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_trap_stone.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_tree_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_wood_tile.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_wood_tile_center.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_wood_tile_full.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_wood_tile_up.png diff --git a/mods/moreblocks/LICENSE.txt b/mods/moreblocks/LICENSE.md old mode 100755 new mode 100644 similarity index 71% rename from mods/moreblocks/LICENSE.txt rename to mods/moreblocks/LICENSE.md index 726257de..45c5ff5a --- a/mods/moreblocks/LICENSE.txt +++ b/mods/moreblocks/LICENSE.md @@ -1,8 +1,9 @@ -+---- zlib/libpng license ----+ +zlib license +============ -Copyright (c) 2013-2014 Calinou and contributors +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. +**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: diff --git a/mods/moreblocks/README.md b/mods/moreblocks/README.md new file mode 100644 index 00000000..228ce97d --- /dev/null +++ b/mods/moreblocks/README.md @@ -0,0 +1,11 @@ +More Blocks +=========== + +More Blocks for Minetest , a free/libre infinite +world block sandbox game. + +To install, just clone this repository into your "mods" directory. + +More Blocks 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/moreblocks/README.txt b/mods/moreblocks/README.txt deleted file mode 100755 index aa99eda3..00000000 --- a/mods/moreblocks/README.txt +++ /dev/null @@ -1,12 +0,0 @@ -More Blocks -========== - -More Blocks for Minetest (http://minetest.net), a free and open source infinite -world block sandbox game. - -To install, just clone this repository into your "mods" directory. - -More Blocks code is under the zlib license, textures are under CC BY-SA 3.0 unported. - -Forum topic: http://forum.minetest.net/viewtopic.php?id=509 - diff --git a/mods/moreblocks/aliases.lua b/mods/moreblocks/aliases.lua old mode 100755 new mode 100644 index df820c33..15f7b6b2 --- a/mods/moreblocks/aliases.lua +++ b/mods/moreblocks/aliases.lua @@ -1,24 +1,28 @@ --- More Blocks aliases +--[[ +More Blocks: alias definitions +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +-- More Blocks aliases: minetest.register_alias("sweeper", "moreblocks:sweeper") minetest.register_alias("circular_saw", "moreblocks:circular_saw") minetest.register_alias("jungle_stick", "moreblocks:jungle_stick") --- Old block/item replacement - +-- Old block/item replacement: minetest.register_alias("moreblocks:oerkkiblock", "default:mossycobble") minetest.register_alias("moreblocks:screwdriver", "screwdriver:screwdriver") --- Node and item renaming - +-- Node and item renaming: minetest.register_alias("moreblocks:stone_bricks", "default:stonebrick") minetest.register_alias("moreblocks:stonebrick", "default:stonebrick") minetest.register_alias("moreblocks:junglewood", "default:junglewood") minetest.register_alias("moreblocks:jungle_wood", "default:junglewood") for _, t in pairs(circular_saw.names) do - minetest.register_alias("moreblocks:" ..t[1].. "_jungle_wood" ..t[2], - "moreblocks:" ..t[1].. "_junglewood" ..t[2]) + minetest.register_alias("moreblocks:" .. t[1] .. "_jungle_wood" .. t[2], + "moreblocks:" .. t[1] .. "_junglewood" .. t[2]) end minetest.register_alias("moreblocks:horizontaltree", "moreblocks:horizontal_tree") minetest.register_alias("moreblocks:horizontaljungletree", "moreblocks:horizontal_jungle_tree") @@ -51,8 +55,7 @@ minetest.register_alias("moreblocks:junglestick", "moreblocks:jungle_stick") minetest.register_alias("moreblocks:splitstonesquare","moreblocks:split_stone_tile") minetest.register_alias("moreblocks:allfacestree","moreblocks:all_faces_tree") --- ABM for horizontal trees (fix facedir). - +-- ABM for horizontal trees (fix facedir): local horizontal_tree_convert_facedir = {7, 12, 9, 18} minetest.register_abm({ diff --git a/mods/moreblocks/circular_saw.lua b/mods/moreblocks/circular_saw.lua old mode 100755 new mode 100644 index 2af5972a..98ddecbc --- a/mods/moreblocks/circular_saw.lua +++ b/mods/moreblocks/circular_saw.lua @@ -1,4 +1,12 @@ -local S = moreblocks.gettext +--[[ +More Blocks: circular saw + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib + circular_saw = {} circular_saw.known_stairs = setmetatable({}, { diff --git a/mods/moreblocks/config.lua b/mods/moreblocks/config.lua old mode 100755 new mode 100644 index e5db0861..d646dacd --- a/mods/moreblocks/config.lua +++ b/mods/moreblocks/config.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: configuration handling + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + moreblocks.config = {} local function getbool_default(setting, default) diff --git a/mods/moreblocks/crafting.lua b/mods/moreblocks/crafting.lua old mode 100755 new mode 100644 index 158d40a5..4429d9ae --- a/mods/moreblocks/crafting.lua +++ b/mods/moreblocks/crafting.lua @@ -1,4 +1,9 @@ --- Crafting +--[[ +More Blocks: crafting recipes + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] minetest.register_craft({ output = "default:stick", diff --git a/mods/moreblocks/depends.txt b/mods/moreblocks/depends.txt old mode 100755 new mode 100644 index 9207dab8..198fe8a6 --- a/mods/moreblocks/depends.txt +++ b/mods/moreblocks/depends.txt @@ -1,2 +1,2 @@ -default -intllib? +default +intllib? diff --git a/mods/moreblocks/init.lua b/mods/moreblocks/init.lua old mode 100755 new mode 100644 index a86a38ea..2919a308 --- a/mods/moreblocks/init.lua +++ b/mods/moreblocks/init.lua @@ -1,20 +1,22 @@ --[[ --- More Blocks (moreblocks) by Calinou --- Licensed under the zlib/ license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. +===================================================================== +** More Blocks ** +By Calinou, with the help of ShadowNinja and VanessaE. + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +===================================================================== --]] moreblocks = {} --- Load translation library if intllib is installed - -local S -- Load translation library if intllib is installed: -if (minetest.get_modpath("intllib")) then - dofile(minetest.get_modpath("intllib").."/intllib.lua") - S = intllib.Getter(minetest.get_current_modname()) +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() else S = function(s) return s end end -moreblocks.gettext = S +moreblocks.intllib = S local modpath = minetest.get_modpath("moreblocks") @@ -27,6 +29,5 @@ dofile(modpath .. "/crafting.lua") dofile(modpath .. "/aliases.lua") if minetest.setting_getbool("log_mods") then - print(S("[moreblocks] loaded.")) + minetest.log("action", S("[moreblocks] loaded.")) end - diff --git a/mods/moreblocks/locale/de.txt b/mods/moreblocks/locale/de.txt old mode 100755 new mode 100644 diff --git a/mods/moreblocks/locale/es.txt b/mods/moreblocks/locale/es.txt old mode 100755 new mode 100644 diff --git a/mods/moreblocks/locale/fr.txt b/mods/moreblocks/locale/fr.txt old mode 100755 new mode 100644 diff --git a/mods/moreblocks/locale/template.txt b/mods/moreblocks/locale/template.txt old mode 100755 new mode 100644 diff --git a/mods/moreblocks/models/moreblocks_slope.obj b/mods/moreblocks/models/moreblocks_slope.obj new file mode 100644 index 00000000..05c853b7 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_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/moreblocks/models/moreblocks_slope_half.obj b/mods/moreblocks/models/moreblocks_slope_half.obj new file mode 100644 index 00000000..bc96bb8b --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_half.obj @@ -0,0 +1,23 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_fronthalf_onetexture.blend' +# www.blender.org +mtllib slope_test_slope_long_fronthalf_onetexture.mtl +o Cube_Cube.002 +v 0.500000 -0.000000 0.500000 +v -0.500000 -0.000000 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.500000 +vt 0.000000 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/5 6/6 +f 2/1 5/3 3/4 +f 1/2 4/3 6/4 +f 2/5 1/6 6/3 5/4 diff --git a/mods/moreblocks/models/moreblocks_slope_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_half_raised.obj new file mode 100644 index 00000000..79e0dc01 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_half_raised.obj @@ -0,0 +1,26 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_backhalf_onetexture.blend' +# www.blender.org +mtllib slope_test_slope_long_backhalf_onetexture.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.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 1.000000 +usemtl None +s off +f 5/1 6/2 2/3 1/4 +f 6/5 7/2 3/3 2/4 +f 7/5 8/6 4/3 3/4 +f 8/1 5/6 1/3 4/4 +f 1/4 2/1 3/6 4/3 +f 8/6 7/3 6/4 5/1 diff --git a/mods/moreblocks/models/moreblocks_slope_inner.obj b/mods/moreblocks/models/moreblocks_slope_inner.obj new file mode 100644 index 00000000..68fc1700 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_inner.obj @@ -0,0 +1,26 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend' +# www.blender.org +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 +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/moreblocks/models/moreblocks_slope_inner_half.obj b/mods/moreblocks/models/moreblocks_slope_inner_half.obj new file mode 100644 index 00000000..6decaea3 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_inner_half.obj @@ -0,0 +1,28 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_short_onetexture.blend' +# www.blender.org +mtllib slope_test_icorner_half_short_onetexture.mtl +o Cube_Cube.000 +v 0.500000 -0.000000 0.500000 +v -0.500000 -0.000000 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.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/moreblocks/models/moreblocks_slope_inner_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj new file mode 100644 index 00000000..8aff6cab --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj @@ -0,0 +1,31 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_tall_onetexture.blend' +# www.blender.org +mtllib slope_test_icorner_half_tall_onetexture.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.000000 -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.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +usemtl None +s off +f 6/1 1/2 7/3 8/4 +f 2/1 1/2 5/4 +f 3/3 7/4 1/1 2/2 +f 1/2 6/3 9/4 +f 3/1 10/2 8/3 7/4 +f 8/3 10/4 5/5 6/2 +f 3/4 2/1 5/6 10/3 +l 1 4 +l 3 4 diff --git a/mods/moreblocks/models/moreblocks_slope_outer.obj b/mods/moreblocks/models/moreblocks_slope_outer.obj new file mode 100644 index 00000000..383c195f --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer.obj @@ -0,0 +1,18 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend' +# www.blender.org +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 +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/moreblocks/models/moreblocks_slope_outer_cut.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut.obj new file mode 100644 index 00000000..4608c69c --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_cut.obj @@ -0,0 +1,19 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_2_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_tall_2_onetexture.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 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +usemtl None +s off +f 4/1 1/2 3/3 +f 2/3 4/4 3/2 +f 3/2 1/3 2/4 +f 1/3 4/5 2/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj new file mode 100644 index 00000000..e4be8825 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj @@ -0,0 +1,20 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_2_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_short_2_onetexture.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.000000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.500000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +usemtl None +s off +f 4/1 1/2 3/3 +f 2/3 4/4 3/2 +f 3/2 1/3 2/5 +f 1/3 4/6 2/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj new file mode 100644 index 00000000..65a3b8ac --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj @@ -0,0 +1,23 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_3_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_short_3_onetexture.mtl +o Cube_Cube.002 +v -0.500000 -0.000000 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 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.500000 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 4/5 3/2 5/3 6/6 +f 2/5 5/3 3/4 +f 1/2 4/3 6/4 +f 2/3 1/6 6/1 5/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_half.obj new file mode 100644 index 00000000..0c56e26a --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_half.obj @@ -0,0 +1,22 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_1_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_short_1_onetexture.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.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 5/5 1/3 4/4 +f 3/4 5/6 4/3 +f 2/4 5/2 3/3 +f 1/4 5/1 2/3 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj new file mode 100644 index 00000000..e4fa3d1f --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj @@ -0,0 +1,27 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_3_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_tall_3_onetexture.mtl +o Cube_Cube.002 +v -0.500000 -0.000000 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.500000 +v -0.500000 -0.000000 -0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.500000 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 4/5 3/2 5/3 6/6 +f 8/3 4/5 6/2 +f 1/6 8/1 7/2 2/3 +f 4/5 8/3 1/4 +f 6/1 5/2 7/3 8/6 +f 5/5 3/2 2/3 7/4 diff --git a/mods/moreblocks/nodes.lua b/mods/moreblocks/nodes.lua old mode 100755 new mode 100644 index 5efda8f8..d3120c9a --- a/mods/moreblocks/nodes.lua +++ b/mods/moreblocks/nodes.lua @@ -1,4 +1,11 @@ -local S = moreblocks.gettext +--[[ +More Blocks: node definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib local sound_wood = default.node_sound_wood_defaults() local sound_stone = default.node_sound_stone_defaults() @@ -116,6 +123,11 @@ local nodes = { groups = {cracky = 2}, sounds = sound_stone, }, + ["cobble_compressed"] = { + description = S("Compressed Cobblestone"), + groups = {cracky = 1}, + sounds = sound_stone, + }, ["plankstone"] = { description = S("Plankstone"), groups = {cracky = 3}, diff --git a/mods/moreblocks/ownership.lua b/mods/moreblocks/ownership.lua old mode 100755 new mode 100644 index 9cd4cb30..1c2431ba --- a/mods/moreblocks/ownership.lua +++ b/mods/moreblocks/ownership.lua @@ -1,3 +1,9 @@ +--[[ +More Blocks: ownership handling + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] local S = moreblocks.gettext diff --git a/mods/moreblocks/redefinitions.lua b/mods/moreblocks/redefinitions.lua old mode 100755 new mode 100644 index 4db169b1..a6498f16 --- a/mods/moreblocks/redefinitions.lua +++ b/mods/moreblocks/redefinitions.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: redefinitions of default stuff + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + -- Redefinitions of some default crafting recipes: minetest.register_craft({ @@ -71,6 +78,11 @@ minetest.override_item("default:papyrus", { sunlight_propagates = true, }) +minetest.override_item("default:fence_wood", { + paramtype = "light", + sunlight_propagates = true, +}) + minetest.override_item("default:junglegrass", { paramtype = "light", sunlight_propagates = true, diff --git a/mods/moreblocks/stairsplus/API.md b/mods/moreblocks/stairsplus/API.md old mode 100755 new mode 100644 index a98ec81e..2db0f2b3 --- a/mods/moreblocks/stairsplus/API.md +++ b/mods/moreblocks/stairsplus/API.md @@ -1,6 +1,5 @@ API documentation for Stairs+ -================================ -- - - - - - - - - - - - - - - - +============================= * `stairsplus:register_all(modname, subname, recipeitem, fields)` Registers a stair, slab, panel, microblock, and any other types of diff --git a/mods/moreblocks/stairsplus/aliases.lua b/mods/moreblocks/stairsplus/aliases.lua old mode 100755 new mode 100644 index c92df483..c235d342 --- a/mods/moreblocks/stairsplus/aliases.lua +++ b/mods/moreblocks/stairsplus/aliases.lua @@ -1,3 +1,9 @@ +--[[ +More Blocks: alias definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] local function register_stairsplus_alias(modname, origname, newname) minetest.register_alias(modname.. ":slab_" ..origname, "moreblocks:slab_" ..newname) @@ -33,12 +39,14 @@ end register_stairsplus_alias("stairsplus", "stone", "stone") register_stairsplus_alias("stairsplus", "wood", "wood") +register_stairsplus_alias("stairsplus", "pinewood", "pinewood") register_stairsplus_alias("stairsplus", "cobble", "cobble") register_stairsplus_alias("stairsplus", "brick", "brick") register_stairsplus_alias("stairsplus", "sandstone", "sandstone") register_stairsplus_alias("stairsplus", "glass", "glass") register_stairsplus_alias("stairsplus", "tree", "tree") register_stairsplus_alias("stairsplus", "jungletree", "jungletree") +register_stairsplus_alias("stairsplus", "pinetree", "pinetree") register_stairsplus_alias("stairsplus", "desert_stone", "desert_stone") register_stairsplus_alias("stairsplus", "steelblock", "steelblock") register_stairsplus_alias("stairsplus", "mossycobble", "mossycobble") diff --git a/mods/moreblocks/stairsplus/conversion.lua b/mods/moreblocks/stairsplus/conversion.lua old mode 100755 new mode 100644 index fda30c7b..13966b66 --- a/mods/moreblocks/stairsplus/conversion.lua +++ b/mods/moreblocks/stairsplus/conversion.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: conversion + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + -- Function to convert all stairs/slabs/etc nodes from -- inverted, wall, etc to regular + 6d facedir diff --git a/mods/moreblocks/stairsplus/init.lua b/mods/moreblocks/stairsplus/init.lua old mode 100755 new mode 100644 index ae09b7d3..ffec1b7f --- a/mods/moreblocks/stairsplus/init.lua +++ b/mods/moreblocks/stairsplus/init.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: Stairs+ + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + -- Nodes will be called :{stair,slab,panel,micro}_ local modpath = minetest.get_modpath("moreblocks").. "/stairsplus" @@ -18,6 +25,7 @@ function stairsplus:register_all(modname, subname, recipeitem, fields) end self:register_stair(modname, subname, recipeitem, fields) self:register_slab (modname, subname, recipeitem, fields) + self:register_slope(modname, subname, recipeitem, fields) self:register_panel(modname, subname, recipeitem, fields) self:register_micro(modname, subname, recipeitem, fields) -- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps. @@ -36,8 +44,9 @@ end -- dofile(modpath.. "/aliases.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. -- dofile(modpath.. "/conversion.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. -dofile(modpath.. "/stairs.lua") -dofile(modpath.. "/slabs.lua") -dofile(modpath.. "/panels.lua") -dofile(modpath.. "/microblocks.lua") -dofile(modpath.. "/registrations.lua") +dofile(modpath .. "/stairs.lua") +dofile(modpath .. "/slabs.lua") +dofile(modpath .. "/slopes.lua") +dofile(modpath .. "/panels.lua") +dofile(modpath .. "/microblocks.lua") +dofile(modpath .. "/registrations.lua") diff --git a/mods/moreblocks/stairsplus/microblocks.lua b/mods/moreblocks/stairsplus/microblocks.lua old mode 100755 new mode 100644 index f88ed12e..8d52c4a2 --- a/mods/moreblocks/stairsplus/microblocks.lua +++ b/mods/moreblocks/stairsplus/microblocks.lua @@ -1,10 +1,11 @@ -local S -- Load translation library if intllib is installed: -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 +--[[ +More Blocks: microblock definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib -- Node will be called :micro_ diff --git a/mods/moreblocks/stairsplus/panels.lua b/mods/moreblocks/stairsplus/panels.lua old mode 100755 new mode 100644 index 73b283ed..2220fe42 --- a/mods/moreblocks/stairsplus/panels.lua +++ b/mods/moreblocks/stairsplus/panels.lua @@ -1,10 +1,11 @@ -local S -- Load translation library if intllib is installed: -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 +--[[ +More Blocks: panel definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib -- Node will be called :panel_ diff --git a/mods/moreblocks/stairsplus/registrations.lua b/mods/moreblocks/stairsplus/registrations.lua old mode 100755 new mode 100644 index cc22d333..7b38b13b --- a/mods/moreblocks/stairsplus/registrations.lua +++ b/mods/moreblocks/stairsplus/registrations.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: registrations + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + local default_nodes = { -- Default stairs/slabs/panels/microblocks: "stone", "cobble", @@ -10,12 +17,14 @@ local default_nodes = { -- Default stairs/slabs/panels/microblocks: "bronzeblock", "diamondblock", "desert_stone", --- "desert_cobble", + "desert_cobble", "glass", "tree", "wood", "jungletree", "junglewood", + "pinetree", + "pinewood", "obsidian", "obsidian_glass", "stonebrick", diff --git a/mods/moreblocks/stairsplus/slabs.lua b/mods/moreblocks/stairsplus/slabs.lua old mode 100755 new mode 100644 index 9c31745d..68ba5200 --- a/mods/moreblocks/stairsplus/slabs.lua +++ b/mods/moreblocks/stairsplus/slabs.lua @@ -1,10 +1,11 @@ -local S -- Load translation library if intllib is installed: -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 +--[[ +More Blocks: slab definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib -- Node will be called :slab_ @@ -75,11 +76,11 @@ function stairsplus:register_slab(modname, subname, recipeitem, fields) end def.description = desc if fields.drop then - def.drop = modname.. ":slab_" ..fields.drop..alternate + def.drop = modname.. ":slab_" .. fields.drop .. alternate end - minetest.register_node(":" ..modname.. ":slab_" ..subname..alternate, def) + minetest.register_node(":" .. modname .. ":slab_" .. subname .. alternate, def) end - minetest.register_alias("stairs:slab_" ..subname, modname.. ":slab_" ..subname) + minetest.register_alias("stairs:slab_" .. subname, modname .. ":slab_" .. subname) -- Some saw-less recipes: diff --git a/mods/moreblocks/stairsplus/slopes.lua b/mods/moreblocks/stairsplus/slopes.lua new file mode 100644 index 00000000..3a169060 --- /dev/null +++ b/mods/moreblocks/stairsplus/slopes.lua @@ -0,0 +1,459 @@ +--[[ +More Blocks: slope definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib + +local box_slope = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.25, -0.25, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.25, 0.5}, + {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5} + } +} + +local box_slope_half = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, + {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, + {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, + {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, + } +} + +local box_slope_half_raised = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, + {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, + {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, + {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, + } +} + +--============================================================== + +local box_slope_inner = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.5, -0.25, 0.5, 0, 0.5}, + {-0.5, -0.5, -0.5, 0.25, 0, 0.5}, + {-0.5, 0, -0.5, 0, 0.25, 0.5}, + {-0.5, 0, 0, 0.5, 0.25, 0.5}, + {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}, + {-0.5, 0.25, -0.5, -0.25, 0.5, 0.5}, + } +} + +local box_slope_inner_half = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, + {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, + {-0.5, -0.375, -0.5, 0.25, -0.25, 0.5}, + {-0.5, -0.25, -0.5, 0, -0.125, 0.5}, + {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, + {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, + {-0.5, -0.125, -0.5, -0.25, 0, 0.5}, + } +} + +local box_slope_inner_half_raised = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, + {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, + {-0.5, 0.125, -0.5, 0.25, 0.25, 0.5}, + {-0.5, 0.25, -0.5, 0, 0.375, 0.5}, + {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, + {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, + {-0.5, 0.375, -0.5, -0.25, 0.5, 0.5}, + } +} + +--============================================================== + +local box_slope_outer = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.25, -0.25, 0.25, 0, 0.5}, + {-0.5, 0, 0, 0, 0.25, 0.5}, + {-0.5, 0.25, 0.25, -0.25, 0.5, 0.5} + } +} + +local box_slope_outer_half = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, + {-0.5, -0.375, -0.25, 0.25, -0.25, 0.5}, + {-0.5, -0.25, 0, 0, -0.125, 0.5}, + {-0.5, -0.125, 0.25, -0.25, 0, 0.5} + } +} + +local box_slope_outer_half_raised = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, + {-0.5, 0.125, -0.25, 0.25, 0.25, 0.5}, + {-0.5, 0.25, 0, 0, 0.375, 0.5}, + {-0.5, 0.375, 0.25, -0.25, 0.5, 0.5} + } +} + +-- Node will be called :slope_ + +function register_slope(modname, subname, recipeitem, groups, images, description, drop, light) + return stairsplus:register_slope(modname, subname, recipeitem, { + groups = groups, + tiles = images, + description = description, + drop = drop, + light_source = light, + sounds = default.node_sound_stone_defaults(), + }) +end + +function stairsplus:register_slope(modname, subname, recipeitem, fields) + local defs = { + [""] = { + mesh = "moreblocks_slope.obj", + collision_box = box_slope, + selection_box = box_slope, + + }, + ["_half"] = { + mesh = "moreblocks_slope_half.obj", + collision_box = box_slope_half, + selection_box = box_slope_half, + }, + ["_half_raised"] = { + mesh = "moreblocks_slope_half_raised.obj", + collision_box = box_slope_half_raised, + selection_box = box_slope_half_raised, + }, + +--============================================================== + + ["_inner"] = { + mesh = "moreblocks_slope_inner.obj", + collision_box = box_slope_inner, + selection_box = box_slope_inner, + }, + ["_inner_half"] = { + mesh = "moreblocks_slope_inner_half.obj", + collision_box = box_slope_inner_half, + selection_box = box_slope_inner_half, + }, + ["_inner_half_raised"] = { + mesh = "moreblocks_slope_inner_half_raised.obj", + collision_box = box_slope_inner_half_raised, + selection_box = box_slope_inner_half_raised, + }, + +--============================================================== + + ["_outer"] = { + mesh = "moreblocks_slope_outer.obj", + collision_box = box_slope_outer, + selection_box = box_slope_outer, + }, + ["_outer_half"] = { + mesh = "moreblocks_slope_outer_half.obj", + collision_box = box_slope_outer_half, + selection_box = box_slope_outer_half, + }, + ["_outer_half_raised"] = { + mesh = "moreblocks_slope_outer_half_raised.obj", + collision_box = box_slope_outer_half_raised, + selection_box = box_slope_outer_half_raised, + }, + +--============================================================== + + ["_outer_cut"] = { + mesh = "moreblocks_slope_outer_cut.obj", + collision_box = box_slope_outer, + selection_box = box_slope_outer, + }, + ["_outer_cut_half"] = { + mesh = "moreblocks_slope_outer_cut_half.obj", + collision_box = box_slope_outer_half, + selection_box = box_slope_outer_half, + }, + ["_outer_cut_half_raised"] = { + mesh = "moreblocks_slope_outer_cut_half_raised.obj", + collision_box = box_slope_outer_half_raised, + selection_box = box_slope_outer_half_raised, + }, + } + + local desc = S("%s Slope"):format(fields.description) + for alternate, def in pairs(defs) do + def.drawtype = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.on_place = minetest.rotate_node + for k, v in pairs(fields) do + def[k] = v + end + def.description = desc + if fields.drop then + def.drop = modname.. ":slope_" ..fields.drop..alternate + end + minetest.register_node(":" ..modname.. ":slope_" ..subname..alternate, def) + end + + -- Some saw-less recipes: + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. " 7", + recipe = { + {modname .. ":panel_" .. subname, "", ""}, + {recipeitem, modname .. ":panel_" .. subname, ""}, + {recipeitem, recipeitem, modname .. ":panel_" .. subname}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. " 7", + recipe = { + {"", "", modname .. ":panel_" .. subname}, + {"", modname .. ":panel_" .. subname, recipeitem}, + {modname .. ":panel_" .. subname, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_half 10", + recipe = { + {modname .. ":panel_" .. subname, "", ""}, + {recipeitem, recipeitem, modname .. ":panel_" .. subname}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_half 10", + recipe = { + {"", "", modname .. ":panel_" .. subname}, + {modname .. ":panel_" .. subname, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_half_raised 7", + recipe = { + {modname .. ":panel_" .. subname, "", ""}, + {recipeitem, recipeitem, modname .. ":panel_" .. subname}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_half_raised 7", + recipe = { + {"", "", modname .. ":panel_" .. subname}, + {modname .. ":panel_" .. subname, recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + +--===================================================== Inner == + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner 7", + recipe = { + {modname .. ":stair_" .. subname .. "_half", "", ""}, + {recipeitem, modname .. ":stair_" .. subname .. "_half", ""}, + {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner 7", + recipe = { + {"", "", modname .. ":stair_" .. subname .. "_half"}, + {"", modname .. ":stair_" .. subname .. "_half", recipeitem}, + {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner_half 10", + recipe = { + {modname .. ":stair_" .. subname .. "_half", "", ""}, + {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner_half 10", + recipe = { + {"", "", modname .. ":stair_" .. subname .. "_half"}, + {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner_half_raised 7", + recipe = { + {modname .. ":stair_" .. subname .. "_half", "", ""}, + {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner_half_raised 7", + recipe = { + {"", "", modname .. ":stair_" .. subname .. "_half"}, + {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + +--===================================================== Outer == + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer 7", + recipe = { + {modname .. ":micro_" .. subname, "", ""}, + {recipeitem, modname .. ":micro_" .. subname, ""}, + {recipeitem, recipeitem, modname .. ":micro_" .. subname}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer 7", + recipe = { + {"", "", modname .. ":micro_" .. subname}, + {"", modname .. ":micro_" .. subname, recipeitem}, + {modname .. ":micro_" .. subname, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer_half 10", + recipe = { + {modname .. ":micro_" .. subname, "", ""}, + {recipeitem, recipeitem, modname .. ":micro_" .. subname}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer_half 10", + recipe = { + {"", "", modname .. ":micro_" .. subname}, + {modname .. ":micro_" .. subname, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer_half_raised 7", + recipe = { + {modname .. ":micro_" .. subname, "", ""}, + {recipeitem, recipeitem, modname .. ":micro_" .. subname}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer_half_raised 7", + recipe = { + {"", "", modname .. ":micro_" .. subname}, + {modname .. ":micro_" .. subname, recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + +--================================================= Shapeless == + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":slope_" .. subname, modname .. ":slope_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":slope_" .. subname .. "_outer_cut", modname .. ":slope_" .. subname .. "_outer_cut"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half_raised"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", + modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slab_" .. subname, + recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_half_raised", + recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", + modname .. ":slope_" .. subname .. "_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_half_raised", + recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_inner_half_raised", + recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_inner_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_half_raised", + recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_cut_half_raised", + recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_cut_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_cut", + recipe = {modname .. ":slope_" .. subname .. "_outer"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_cut_half", + recipe = {modname .. ":slope_" .. subname .. "_outer_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_cut_half_raised", + recipe = {modname .. ":slope_" .. subname .. "_outer_half_raised"}, + }) +end diff --git a/mods/moreblocks/stairsplus/stairs.lua b/mods/moreblocks/stairsplus/stairs.lua old mode 100755 new mode 100644 index a4f54e39..a93cda08 --- a/mods/moreblocks/stairsplus/stairs.lua +++ b/mods/moreblocks/stairsplus/stairs.lua @@ -1,10 +1,11 @@ -local S -- Load translation library if intllib is installed: -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 +--[[ +More Blocks: stair definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib -- Node will be called :stair_ @@ -116,11 +117,11 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields) end def.description = desc if fields.drop then - def.drop = modname.. ":stair_" ..fields.drop..alternate + def.drop = modname .. ":stair_" .. fields.drop .. alternate end - minetest.register_node(":" ..modname.. ":stair_" ..subname..alternate, def) + minetest.register_node(":" .. modname .. ":stair_" .. subname .. alternate, def) end - minetest.register_alias(":stairs:stair_" ..subname, modname.. ":stair_" ..subname) + minetest.register_alias("stairs:stair_" .. subname, modname .. ":stair_" .. subname) -- Some saw-less recipes: diff --git a/mods/moreblocks/textures/default_brick.png b/mods/moreblocks/textures/default_brick.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/default_fence_overlay.png b/mods/moreblocks/textures/default_fence_overlay.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/invisible.png b/mods/moreblocks/textures/invisible.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_cactus_brick.png b/mods/moreblocks/textures/moreblocks_cactus_brick.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_cactus_checker.png b/mods/moreblocks/textures/moreblocks_cactus_checker.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png b/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png b/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_side.png b/mods/moreblocks/textures/moreblocks_circular_saw_side.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_top.png b/mods/moreblocks/textures/moreblocks_circular_saw_top.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_clean_glass.png b/mods/moreblocks/textures/moreblocks_clean_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_checker.png b/mods/moreblocks/textures/moreblocks_coal_checker.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_glass.png b/mods/moreblocks/textures/moreblocks_coal_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_stone.png b/mods/moreblocks/textures/moreblocks_coal_stone.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png b/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_empty_bookshelf.png b/mods/moreblocks/textures/moreblocks_empty_bookshelf.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png b/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_fence_wood.png b/mods/moreblocks/textures/moreblocks_fence_wood.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_glass.png b/mods/moreblocks/textures/moreblocks_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_glow_glass.png b/mods/moreblocks/textures/moreblocks_glow_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_grey_bricks.png b/mods/moreblocks/textures/moreblocks_grey_bricks.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_checker.png b/mods/moreblocks/textures/moreblocks_iron_checker.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_glass.png b/mods/moreblocks/textures/moreblocks_iron_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_stone.png b/mods/moreblocks/textures/moreblocks_iron_stone.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png b/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_junglestick.png b/mods/moreblocks/textures/moreblocks_junglestick.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_plankstone.png b/mods/moreblocks/textures/moreblocks_plankstone.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_plankstone_2.png b/mods/moreblocks/textures/moreblocks_plankstone_2.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_rope.png b/mods/moreblocks/textures/moreblocks_rope.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile.png b/mods/moreblocks/textures/moreblocks_split_stone_tile.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_stone_tile.png b/mods/moreblocks/textures/moreblocks_stone_tile.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_super_glow_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_sweeper.png b/mods/moreblocks/textures/moreblocks_sweeper.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_tar.png b/mods/moreblocks/textures/moreblocks_tar.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_trap_glass.png b/mods/moreblocks/textures/moreblocks_trap_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_trap_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_glow_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_trap_stone.png b/mods/moreblocks/textures/moreblocks_trap_stone.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_tree_stairsplus.png b/mods/moreblocks/textures/moreblocks_tree_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile.png b/mods/moreblocks/textures/moreblocks_wood_tile.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_center.png b/mods/moreblocks/textures/moreblocks_wood_tile_center.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_full.png b/mods/moreblocks/textures/moreblocks_wood_tile_full.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_up.png b/mods/moreblocks/textures/moreblocks_wood_tile_up.png old mode 100755 new mode 100644 From d7eeffa5b18289017d04aa52d3f7b8ca9815c7a2 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 19:57:57 +0100 Subject: [PATCH 10/39] Sent last global variables' patchs - There is, from now on, no more known global variables error in the repository! (not 100% guaranteed) --- mods/chesttools/init.lua | 2 +- mods/fences/init.lua | 3 ++- mods/snow/src/nodes.lua | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mods/chesttools/init.lua b/mods/chesttools/init.lua index e2dcb6b2..fa219361 100755 --- a/mods/chesttools/init.lua +++ b/mods/chesttools/init.lua @@ -58,7 +58,7 @@ chesttools.may_use = function( pos, player ) local meta = minetest.get_meta( pos ); local owner = meta:get_string( 'owner' ) -- the owner can access the chest - if( onwer == name or owner == "" ) then + if( owner == name or owner == "" ) then return true; end -- the shared function only kicks in if the area is protected diff --git a/mods/fences/init.lua b/mods/fences/init.lua index 82c8da9e..8ab786c5 100755 --- a/mods/fences/init.lua +++ b/mods/fences/init.lua @@ -71,6 +71,7 @@ end local p0 = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16} local p1 = {-2/16, 1/2, -2/16, -2/16, 1/2+8/16, -2/16} local p2 = {-2/16, 1/2, 2/16, -2/16, 1/2+8/16, 2/16} +local p3 = {0, 0, 0, 0, 0, 0} local p4 = {2/16, 1/2, -2/16, 2/16, 1/2+8/16, -2/16} local p5 = {2/16, 1/2, 2/16, 2/16, 1/2+8/16, 2/16} @@ -532,7 +533,7 @@ minetest.register_node("fences:fence_wood_13", { --right(2)+top(11)=13 type = "fixed", fixed = { p0,p1,p2,p3,p4,p5, - z2,z22,x1,x12, + z2,z22,x1,x22, bz1,bz11,bx1,bx11, } }, diff --git a/mods/snow/src/nodes.lua b/mods/snow/src/nodes.lua index cd6d02f8..a6113c20 100755 --- a/mods/snow/src/nodes.lua +++ b/mods/snow/src/nodes.lua @@ -66,7 +66,7 @@ end --Christmas easter egg minetest.register_on_mapgen_init( function() - if skins then + if minetest.get_modpath("skins") ~= nil then skins.add("character_snow_man") end end From 9cc798c461686d371e9e89c66b6b205e205be30e Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 21:06:57 +0100 Subject: [PATCH 11/39] Reverted moreblocks and maptools updates --- mods/maptools/{LICENSE.md => LICENSE.txt} | 7 +- mods/maptools/NODES.md | 45 -- mods/maptools/README.md | 11 - mods/maptools/README.txt | 22 + mods/maptools/_README.txt | 53 ++ mods/maptools/aliases.lua | 9 +- mods/maptools/config.lua | 29 - mods/maptools/craftitems.lua | 47 -- mods/maptools/default_nodes.lua | 87 ++- mods/maptools/init.lua | 583 +++++++++++++++++- mods/maptools/nodes.lua | 429 ------------- .../textures/maptools_super_apple_bottom.png | Bin 0 -> 295 bytes .../textures/maptools_super_apple_side.png | Bin 0 -> 295 bytes .../textures/maptools_super_apple_top.png | Bin 0 -> 498 bytes mods/maptools/tools.lua | 61 -- mods/moreblocks/{LICENSE.md => LICENSE.txt} | 7 +- mods/moreblocks/README.md | 11 - mods/moreblocks/README.txt | 12 + mods/moreblocks/aliases.lua | 21 +- mods/moreblocks/circular_saw.lua | 10 +- mods/moreblocks/config.lua | 7 - mods/moreblocks/crafting.lua | 7 +- mods/moreblocks/depends.txt | 4 +- mods/moreblocks/init.lua | 23 +- mods/moreblocks/locale/de.txt | 0 mods/moreblocks/locale/es.txt | 0 mods/moreblocks/locale/fr.txt | 0 mods/moreblocks/locale/template.txt | 0 mods/moreblocks/models/moreblocks_slope.obj | 21 - .../models/moreblocks_slope_half.obj | 23 - .../models/moreblocks_slope_half_raised.obj | 26 - .../models/moreblocks_slope_inner.obj | 26 - .../models/moreblocks_slope_inner_half.obj | 28 - .../moreblocks_slope_inner_half_raised.obj | 31 - .../models/moreblocks_slope_outer.obj | 18 - .../models/moreblocks_slope_outer_cut.obj | 19 - .../moreblocks_slope_outer_cut_half.obj | 20 - ...moreblocks_slope_outer_cut_half_raised.obj | 23 - .../models/moreblocks_slope_outer_half.obj | 22 - .../moreblocks_slope_outer_half_raised.obj | 27 - mods/moreblocks/nodes.lua | 14 +- mods/moreblocks/ownership.lua | 6 - mods/moreblocks/redefinitions.lua | 12 - mods/moreblocks/stairsplus/API.md | 3 +- mods/moreblocks/stairsplus/aliases.lua | 8 - mods/moreblocks/stairsplus/conversion.lua | 7 - mods/moreblocks/stairsplus/init.lua | 19 +- mods/moreblocks/stairsplus/microblocks.lua | 15 +- mods/moreblocks/stairsplus/panels.lua | 15 +- mods/moreblocks/stairsplus/registrations.lua | 11 +- mods/moreblocks/stairsplus/slabs.lua | 21 +- mods/moreblocks/stairsplus/slopes.lua | 459 -------------- mods/moreblocks/stairsplus/stairs.lua | 21 +- mods/moreblocks/textures/default_brick.png | Bin .../textures/default_fence_overlay.png | Bin mods/moreblocks/textures/invisible.png | Bin .../textures/moreblocks_cactus_brick.png | Bin .../textures/moreblocks_cactus_checker.png | Bin .../moreblocks_circle_stone_bricks.png | Bin .../moreblocks_circular_saw_bottom.png | Bin .../textures/moreblocks_circular_saw_side.png | Bin .../textures/moreblocks_circular_saw_top.png | Bin .../textures/moreblocks_clean_glass.png | Bin .../textures/moreblocks_coal_checker.png | Bin .../textures/moreblocks_coal_glass.png | Bin .../moreblocks_coal_glass_stairsplus.png | Bin .../textures/moreblocks_coal_stone.png | Bin .../textures/moreblocks_coal_stone_bricks.png | Bin .../textures/moreblocks_empty_bookshelf.png | Bin .../textures/moreblocks_fence_jungle_wood.png | Bin .../textures/moreblocks_fence_wood.png | Bin mods/moreblocks/textures/moreblocks_glass.png | Bin .../textures/moreblocks_glass_stairsplus.png | Bin .../textures/moreblocks_glow_glass.png | Bin .../moreblocks_glow_glass_stairsplus.png | Bin .../textures/moreblocks_grey_bricks.png | Bin .../textures/moreblocks_iron_checker.png | Bin .../textures/moreblocks_iron_glass.png | Bin .../moreblocks_iron_glass_stairsplus.png | Bin .../textures/moreblocks_iron_stone.png | Bin .../textures/moreblocks_iron_stone_bricks.png | Bin .../textures/moreblocks_junglestick.png | Bin .../moreblocks_obsidian_glass_stairsplus.png | Bin .../textures/moreblocks_plankstone.png | Bin .../textures/moreblocks_plankstone_2.png | Bin mods/moreblocks/textures/moreblocks_rope.png | Bin .../textures/moreblocks_split_stone_tile.png | Bin .../moreblocks_split_stone_tile_alt.png | Bin .../moreblocks_split_stone_tile_top.png | Bin .../textures/moreblocks_stone_tile.png | Bin .../textures/moreblocks_super_glow_glass.png | Bin ...moreblocks_super_glow_glass_stairsplus.png | Bin .../textures/moreblocks_sweeper.png | Bin mods/moreblocks/textures/moreblocks_tar.png | Bin .../textures/moreblocks_trap_glass.png | Bin .../textures/moreblocks_trap_glow_glass.png | Bin .../textures/moreblocks_trap_stone.png | Bin .../moreblocks_trap_super_glow_glass.png | Bin .../textures/moreblocks_tree_stairsplus.png | Bin .../textures/moreblocks_wood_tile.png | Bin .../textures/moreblocks_wood_tile_center.png | Bin .../textures/moreblocks_wood_tile_full.png | Bin .../textures/moreblocks_wood_tile_up.png | Bin 103 files changed, 756 insertions(+), 1624 deletions(-) rename mods/maptools/{LICENSE.md => LICENSE.txt} (71%) delete mode 100644 mods/maptools/NODES.md delete mode 100644 mods/maptools/README.md create mode 100644 mods/maptools/README.txt create mode 100644 mods/maptools/_README.txt delete mode 100644 mods/maptools/config.lua delete mode 100644 mods/maptools/craftitems.lua delete mode 100644 mods/maptools/nodes.lua create mode 100644 mods/maptools/textures/maptools_super_apple_bottom.png create mode 100644 mods/maptools/textures/maptools_super_apple_side.png create mode 100644 mods/maptools/textures/maptools_super_apple_top.png delete mode 100644 mods/maptools/tools.lua rename mods/moreblocks/{LICENSE.md => LICENSE.txt} (71%) mode change 100644 => 100755 delete mode 100644 mods/moreblocks/README.md create mode 100755 mods/moreblocks/README.txt mode change 100644 => 100755 mods/moreblocks/aliases.lua mode change 100644 => 100755 mods/moreblocks/circular_saw.lua mode change 100644 => 100755 mods/moreblocks/config.lua mode change 100644 => 100755 mods/moreblocks/crafting.lua mode change 100644 => 100755 mods/moreblocks/depends.txt mode change 100644 => 100755 mods/moreblocks/init.lua mode change 100644 => 100755 mods/moreblocks/locale/de.txt mode change 100644 => 100755 mods/moreblocks/locale/es.txt mode change 100644 => 100755 mods/moreblocks/locale/fr.txt mode change 100644 => 100755 mods/moreblocks/locale/template.txt delete mode 100644 mods/moreblocks/models/moreblocks_slope.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_half.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_half_raised.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_inner.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_inner_half.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_half.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj mode change 100644 => 100755 mods/moreblocks/nodes.lua mode change 100644 => 100755 mods/moreblocks/ownership.lua mode change 100644 => 100755 mods/moreblocks/redefinitions.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/API.md mode change 100644 => 100755 mods/moreblocks/stairsplus/aliases.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/conversion.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/init.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/microblocks.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/panels.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/registrations.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/slabs.lua delete mode 100644 mods/moreblocks/stairsplus/slopes.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/stairs.lua mode change 100644 => 100755 mods/moreblocks/textures/default_brick.png mode change 100644 => 100755 mods/moreblocks/textures/default_fence_overlay.png mode change 100644 => 100755 mods/moreblocks/textures/invisible.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_cactus_brick.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_cactus_checker.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_circle_stone_bricks.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_circular_saw_bottom.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_circular_saw_side.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_circular_saw_top.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_clean_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_checker.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_stone.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_stone_bricks.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_empty_bookshelf.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_fence_jungle_wood.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_fence_wood.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_glow_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_grey_bricks.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_checker.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_stone.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_stone_bricks.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_junglestick.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_plankstone.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_plankstone_2.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_rope.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_split_stone_tile.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_split_stone_tile_top.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_stone_tile.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_super_glow_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_sweeper.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_tar.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_trap_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_trap_glow_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_trap_stone.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_tree_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_wood_tile.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_wood_tile_center.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_wood_tile_full.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_wood_tile_up.png diff --git a/mods/maptools/LICENSE.md b/mods/maptools/LICENSE.txt similarity index 71% rename from mods/maptools/LICENSE.md rename to mods/maptools/LICENSE.txt index ca48e3a1..f42bd647 100644 --- a/mods/maptools/LICENSE.md +++ b/mods/maptools/LICENSE.txt @@ -1,9 +1,8 @@ -zlib license -============ ++---- zlib/libpng license ----+ -Copyright (c) 2012-2015 Calinou and contributors +Copyright (c) 2013 Calinou -**This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.** +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: diff --git a/mods/maptools/NODES.md b/mods/maptools/NODES.md deleted file mode 100644 index f5ce3cc3..00000000 --- a/mods/maptools/NODES.md +++ /dev/null @@ -1,45 +0,0 @@ -Item names for spawning the items using /give or /giveme -======================================================== - -Items ------ - -* `admin_pick:` magenta pickaxe, infinite durability, mines everything including unbreakable blocks instantly. No drops. Don't put this pickaxe in the hands of a griefer, of course. - -* `admin_pick_with_drops:` same as admin pickaxe, but drops stuff. - -* `infinite_fuel:` fuel lasting for a (near)-infinite time. Don't worry about the "near" * it lasts for about 50 in-real-life years. - -* `super_apple:` a yellow apple which heals 20 HP. - -* `copper_coin,` -* `silver_coin,` -* `gold_coin:` these have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. - -Blocks ------- - -**[!]** denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit or similar). - - -* `(block)_u` : unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). Examples: `stone_u`, `wood_u`, `glass_u`, … - -* `full_grass:` unbreakable block with the grass texture on all sides. - -* `player_clip:` **[!]** invisible block, not pointable. - -* `full_clip:` invisible block, pointable. Also available as a thin face: full_clip_face. - -* `smoke_block:` some smoke (does not harm players or entities). - -* `no_build:` **[!]** very basic building prevention. - -* `no_interact:` prevents interacting through the block (opening chests, furnaces, attacking entities, …). - -* `damage_(1…5):` **[!]** damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). - -* `kill:` **[!]** instant kill (deals 10 heart damage) blocks. - -* `light_block:` **[!]** invisible non-solid block, prevents light from passing through. - -* `light_bulb:` **[!]** invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/README.md b/mods/maptools/README.md deleted file mode 100644 index 3a428b7e..00000000 --- a/mods/maptools/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Map Tools -========= - -Map Tools for Minetest , a free/libre infinite -world block sandbox game. - -To install, just clone this repository into your "mods" directory. - -Map Tools 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/maptools/README.txt b/mods/maptools/README.txt new file mode 100644 index 00000000..4c155813 --- /dev/null +++ b/mods/maptools/README.txt @@ -0,0 +1,22 @@ +Calinou's Minetest Mods +===================== + +Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. + +This Git repository is mostly made for servers; it allows easy updating. + +To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. + + + +Misc stuff +===================== + +All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. + +Mods' forum threads: +More Blocks: http://minetest.net/forum/viewtopic.php?id=509 +More Ores: http://minetest.net/forum/viewtopic.php?id=549 +Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 +Doors+: http://minetest.net/forum/viewtopic.php?id=2059 +Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 diff --git a/mods/maptools/_README.txt b/mods/maptools/_README.txt new file mode 100644 index 00000000..cfbe0b2e --- /dev/null +++ b/mods/maptools/_README.txt @@ -0,0 +1,53 @@ +*** Item names for spawning the items using /give or /giveme *** + +Items: + +- admin_pick +Purple pickaxe, infinite durability, mines everything including unbreakable blocks instantly. Don't put this pickaxe in the hands of a griefer, of course. :) + +- infinitefuel +Fuel lasting for a (near)-infinite time. Don't worry about the "near" - it lasts for about 50 in-real-life years. + +- superapple +An apple which heals all 10 hearts. + +- copper_coin +- silver_coin +- gold_coin +These have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. + +Blocks: +A /!\ denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit). + +- (insert block name here)_u -- example: stone_u +Unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). + +- fullgrass +Unbrakable block with the "grass" texture on all sides. + +- playerclip +/!\ Invisible block, not pointable. + +- fullclip +Invisible block, pointable. + +- smoke_block +Some smoke (does not harm players or entities). + +- nobuild +/!\ Very basic building prevention. + +- nointeract +Prevents interacting through the block (interacting as in opening chests, furnaces, attacking entities...). + +- damage_(insert damage in half hearts here) +/!\ Damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). + +- killblock +/!\ Instant kill (deals 10 heart damage) blocks. + +- lightblock +/!\ Invisible non-solid block, prevents light from passing through. + +- lightbulb +/!\ Invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/aliases.lua b/mods/maptools/aliases.lua index f1f0cc57..8742f44e 100644 --- a/mods/maptools/aliases.lua +++ b/mods/maptools/aliases.lua @@ -1,9 +1,4 @@ ---[[ -Map Tools: alias definitions - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] +-- Aliases minetest.register_alias("adminpick", "maptools:pick_admin") minetest.register_alias("adminpickaxe", "maptools:pick_admin") @@ -74,6 +69,8 @@ minetest.register_alias("fake_fire", "maptools:fake_fire") minetest.register_alias("ffire", "maptools:fake_fire") minetest.register_alias("igniter", "maptools:igniter") +-- Unbreakable block aliases + minetest.register_alias("stone_u", "maptools:stone") minetest.register_alias("tree_u", "maptools:tree") minetest.register_alias("cobble_u", "maptools:cobble") diff --git a/mods/maptools/config.lua b/mods/maptools/config.lua deleted file mode 100644 index 63f1a260..00000000 --- a/mods/maptools/config.lua +++ /dev/null @@ -1,29 +0,0 @@ ---[[ -Map Tools: configuration handling - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -maptools.config = {} - -local function getbool_default(setting, default) - local value = minetest.setting_getbool(setting) - if value == nil then - value = default - end - return value -end - -local function setting(settingtype, name, default) - if settingtype == "bool" then - maptools.config[name] = - getbool_default("maptools." .. name, default) - else - maptools.config[name] = - minetest.setting_get("maptools." .. name) or default - end -end - --- Show Map Tools stuff in creative inventory (1 or 0): -setting("integer", "hide_from_creative_inventory", 1) diff --git a/mods/maptools/craftitems.lua b/mods/maptools/craftitems.lua deleted file mode 100644 index c311aa95..00000000 --- a/mods/maptools/craftitems.lua +++ /dev/null @@ -1,47 +0,0 @@ ---[[ -Map Tools: item definitions - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = maptools.intllib - -maptools.creative = maptools.config["hide_from_creative_inventory"] - -minetest.register_craftitem("maptools:copper_coin", { - description = S("Copper Coin"), - inventory_image = "maptools_copper_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_craftitem("maptools:silver_coin", { - description = S("Silver Coin"), - inventory_image = "maptools_silver_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_craftitem("maptools:gold_coin", { - description = S("Gold Coin"), - inventory_image = "maptools_gold_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_craftitem("maptools:infinitefuel", { - description = S("Infinite Fuel"), - inventory_image = "maptools_infinitefuel.png", - stack_max = 10000, - groups = {not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "maptools:infinitefuel", - burntime = 1000000000, -}) diff --git a/mods/maptools/default_nodes.lua b/mods/maptools/default_nodes.lua index 3ac0caf5..83d0df02 100644 --- a/mods/maptools/default_nodes.lua +++ b/mods/maptools/default_nodes.lua @@ -1,13 +1,10 @@ ---[[ -Map Tools: unbreakable default nodes - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = maptools.intllib - -maptools.creative = maptools.config["hide_from_creative_inventory"] +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) + else + S = function ( s ) return s end +end minetest.register_node("maptools:stone", { description = S("Unbreakable Stone"), @@ -15,7 +12,7 @@ minetest.register_node("maptools:stone", { stack_max = 10000, tiles = {"default_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -25,7 +22,7 @@ minetest.register_node("maptools:stonebrick", { stack_max = 10000, tiles = {"default_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -35,7 +32,7 @@ minetest.register_node("maptools:tree", { stack_max = 10000, tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -46,7 +43,7 @@ minetest.register_node("maptools:jungletree", { stack_max = 10000, tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -57,7 +54,7 @@ minetest.register_node("maptools:cactus", { stack_max = 10000, tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -78,7 +75,7 @@ minetest.register_node("maptools:papyrus", { type = "fixed", fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} }, - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -88,7 +85,7 @@ minetest.register_node("maptools:dirt", { stack_max = 10000, tiles = {"default_dirt.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -98,7 +95,7 @@ minetest.register_node("maptools:wood", { stack_max = 10000, tiles = {"default_wood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), }) @@ -108,7 +105,7 @@ minetest.register_node("maptools:junglewood", { stack_max = 10000, tiles = {"default_junglewood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), }) @@ -121,7 +118,7 @@ minetest.register_node("maptools:glass", { paramtype = "light", sunlight_propagates = true, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_glass_defaults(), }) @@ -133,7 +130,7 @@ minetest.register_node("maptools:leaves", { tiles = {"default_leaves.png"}, paramtype = "light", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -143,7 +140,7 @@ minetest.register_node("maptools:sand", { stack_max = 10000, tiles = {"default_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_sand_defaults(), }) @@ -153,7 +150,7 @@ minetest.register_node("maptools:gravel", { stack_max = 10000, tiles = {"default_gravel.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.35}, dug = {name="default_gravel_footstep", gain=0.6}, @@ -166,7 +163,7 @@ minetest.register_node("maptools:clay", { stack_max = 10000, tiles = {"default_clay.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -176,7 +173,7 @@ minetest.register_node("maptools:desert_sand", { stack_max = 10000, tiles = {"default_desert_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_sand_defaults(), }) @@ -186,7 +183,7 @@ minetest.register_node("maptools:sandstone", { stack_max = 10000, tiles = {"default_sandstone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -196,7 +193,7 @@ minetest.register_node("maptools:sandstone_brick", { stack_max = 10000, tiles = {"default_sandstone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -206,7 +203,7 @@ minetest.register_node("maptools:desert_stone", { stack_max = 10000, tiles = {"default_desert_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -216,7 +213,7 @@ minetest.register_node("maptools:desert_cobble", { stack_max = 10000, tiles = {"default_desert_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -226,7 +223,7 @@ minetest.register_node("maptools:desert_stonebrick", { stack_max = 10000, tiles = {"default_desert_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -237,7 +234,7 @@ minetest.register_node("maptools:grass", { tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain = 0.4}, }), @@ -249,7 +246,7 @@ minetest.register_node("maptools:fullgrass", { stack_max = 10000, tiles = {"default_grass.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), @@ -270,7 +267,7 @@ for slab_num = 1,3,1 do paramtype = "light", paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), }) end @@ -281,7 +278,7 @@ minetest.register_node("maptools:cobble", { stack_max = 10000, tiles = {"default_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -291,7 +288,7 @@ minetest.register_node("maptools:mossycobble", { stack_max = 10000, tiles = {"default_mossycobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -301,7 +298,7 @@ minetest.register_node("maptools:brick", { stack_max = 10000, tiles = {"default_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -311,7 +308,7 @@ minetest.register_node("maptools:coalblock", { stack_max = 10000, tiles = {"default_coal_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -322,7 +319,7 @@ minetest.register_node("maptools:steelblock", { stack_max = 10000, tiles = {"default_steel_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -332,7 +329,7 @@ minetest.register_node("maptools:goldblock", { stack_max = 10000, tiles = {"default_gold_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -342,7 +339,7 @@ minetest.register_node("maptools:copperblock", { stack_max = 10000, tiles = {"default_copper_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -352,7 +349,7 @@ minetest.register_node("maptools:bronzeblock", { stack_max = 10000, tiles = {"default_bronze_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -360,9 +357,9 @@ minetest.register_node("maptools:diamondblock", { description = S("Unbreakable Diamond Block"), range = 12, stack_max = 10000, - tiles = {"default_steel_block.png"}, + tiles = {"default_diamond_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -374,7 +371,7 @@ minetest.register_node("maptools:soil_wet", { stack_max = 10000, tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, grassland = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, grassland = 1}, sounds = default.node_sound_dirt_defaults(), }) @@ -384,6 +381,6 @@ minetest.register_node("maptools:desert_sand_soil_wet", { stack_max = 10000, drop = "", tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, desert = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, desert = 1}, sounds = default.node_sound_sand_defaults(), }) diff --git a/mods/maptools/init.lua b/mods/maptools/init.lua index dbff209c..c5178fae 100644 --- a/mods/maptools/init.lua +++ b/mods/maptools/init.lua @@ -1,32 +1,551 @@ ---[[ -===================================================================== -** Map Tools ** -By Calinou. - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. -===================================================================== ---]] - -maptools = {} - -local S -if minetest.get_modpath("intllib") then - S = intllib.Getter() -else - S = function(s) return s end -end -maptools.intllib = S - -local modpath = minetest.get_modpath("maptools") - -dofile(modpath .. "/config.lua") -dofile(modpath .. "/aliases.lua") -dofile(modpath .. "/craftitems.lua") -dofile(modpath .. "/default_nodes.lua") -dofile(modpath .. "/nodes.lua") -dofile(modpath .. "/tools.lua") - -if minetest.setting_getbool("log_mods") then - minetest.log("action", S("[maptools] loaded.")) -end +MAPTOOLS_CREATIVE = 1 -- Set this to 0 if you want Map Tools nodes and items to appear in the creative inventory. + +-- Load translation library if intllib is installed + +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) + else + S = function ( s ) return s end +end + +dofile(minetest.get_modpath("maptools").."/aliases.lua") +dofile(minetest.get_modpath("maptools").."/default_nodes.lua") + +--[[ +Map Tools by Calinou +Licensed under the zlib license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. +--]] + +-- Redefine cloud so that the admin pickaxe can mine it. + +minetest.register_node(":default:cloud", { + description = S("Cloud"), + tiles = {"default_cloud.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_defaults(), +}) + +-- Items + +minetest.register_craft({ + type = "fuel", + recipe = "maptools:infinitefuel", + burntime = 1000000000, +}) + +-- Nodes + +minetest.register_node("maptools:black", { + description = S("Black"), + range = 12, + stack_max = 10000, + tiles = {"black.png"}, + drop = "", + post_effect_color = {a=255, r=0, g=0, b=0}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:white", { + description = S("White"), + range = 12, + stack_max = 10000, + tiles = {"white.png"}, + drop = "", + post_effect_color = {a=255, r=128, g=128, b=128}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:playerclip", { + description = S("Player Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fake_walkable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fullclip", { + description = S("Full Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_blue.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fake_walkable_pointable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:ignore_like", { + description = S("Ignore-like"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:ignore_like_no_clip", { + description = S("Ignore-like (no clip)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + + +minetest.register_node("maptools:ignore_like_no_point", { + description = S("Ignore-like (no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:ignore_like_no_clip_no_point", { + description = S("Ignore-like (no clip, no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fullclip_face", { + description = S("Full Clip Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_white.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_bottom", { + description = S("Player Clip Bottom Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_orange.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_top", { + description = S("Player Clip Top Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_yellow.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, +}) + +for pusher_num=1,10,1 do +minetest.register_node("maptools:pusher_" .. pusher_num, { + description = S("Pusher (%s)"):format(pusher_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_apple.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100, bouncy=pusher_num*100}, +}) +end + +minetest.register_node("maptools:lightbulb", { + description = S("Light Bulb"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", + drawtype = "airlike", + walkable = false, + pointable = false, + light_source = 15, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:nobuild", { + description = S("Build Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^bones_bones.png", + drawtype = "airlike", + walkable = false, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:nointeract", { + description = S("Interact Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_scorched_stuff.png", + drawtype = "airlike", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:climb", { + description = S("Climb Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_ladder.png", + drawtype = "airlike", + walkable = false, + climbable = true, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +for damage_num=1,5,1 do +minetest.register_node("maptools:damage_" .. damage_num, { + description = S("Damaging Block (%s)"):format(damage_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = damage_num, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) +end + +minetest.register_node("maptools:kill", { + description = S("Kill Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_black.png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = 20, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:smoke", { + description = S("Smoke Block"), + range = 12, + stack_max = 10000, + tiles = {"maptools_smoke.png"}, + drawtype = "allfaces_optional", + walkable = false, + paramtype = "light", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + post_effect_color = {a=192, r=96, g=96, b=96}, +}) + +minetest.register_node("maptools:ladder", { + description = S("Fake Ladder"), + range = 12, + stack_max = 10000, + drawtype = "signlike", + tiles = {"default_ladder.png"}, + inventory_image = "default_ladder.png", + wield_image = "default_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:permanent_fire", { + description = S("Permanent Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sunlight_propagates = true, + walkable = false, + damage_per_second = 4, +}) + +minetest.register_node("maptools:fake_fire", { + description = S("Fake Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sunlight_propagates = true, + walkable = false, +}) + +minetest.register_node("maptools:igniter", { + drawtype = "airlike", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^crosshair.png", + description = S("Igniter"), + paramtype = "light", + inventory_image = "fire_basic_flame.png", + drop = "", + groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sunlight_propagates = true, + pointable = false, + walkable = false, +}) + +minetest.register_node("maptools:superapple", { + description = S("Super Apple"), + range = 12, + stack_max = 99, + drawtype = "nodebox", + visual_scale = 1.0, + tiles = {"maptools_super_apple_top.png","maptools_super_apple_bottom.png","maptools_super_apple_side.png"}, + inventory_image = "maptools_superapple.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + node_box = { + type = "fixed", + fixed = { + {-3/16, -7/16, -3/16, 3/16, 1/16, 3/16}, + {-4/16, -6/16, -3/16, 4/16, 0, 3/16}, + {-3/16, -6/16, -4/16, 3/16, 0, 4/16}, + {-1/32, 1/16, -1/32, 1/32, 4/16, 1/32}, + {-1/16, 1.6/16, 0, 1/16, 1.8/16, 1/16}, + {-2/16, 1.4/16, 1/16, 1/16, 1.6/16, 2/16}, + {-2/16, 1.2/16, 2/16, 0, 1.4/16, 3/16}, + {-1.5/16, 1/16, .5/16, 0.5/16, 1.2/16, 2.5/16}, + } + }, + is_ground_content = true, + groups = {fleshy = 3, dig_immediate = 3, not_in_creative_inventory = 0, flammable = 2, leafdecay = 3, leafdecay_drop = 1}, + on_use = minetest.item_eat(20), + sounds = default.node_sound_leaves_defaults(), + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = "maptools:superapple", param2= 1}) + end + end, +}) + +-- Items + +minetest.register_craftitem("maptools:copper_coin", { + description = S("Copper Coin"), + inventory_image = "maptools_copper_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_craftitem("maptools:silver_coin", { + description = S("Silver Coin"), + inventory_image = "maptools_silver_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_craftitem("maptools:gold_coin", { + description = S("Gold Coin"), + inventory_image = "maptools_gold_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_craftitem("maptools:infinitefuel", { + description = S("Infinite Fuel"), + inventory_image = "maptools_infinitefuel.png", + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +-- Tools + +minetest.register_tool("maptools:pick_admin", { + description = S("Admin Pickaxe"), + range = 12, + inventory_image = "maptools_adminpick.png", + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, + tool_capabilities = { + full_punch_interval = 0.1, + max_drop_level = 3, + groupcaps= { + unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + }, + damage_groups = {fleshy = 1000}, + }, +}) + +minetest.register_tool("maptools:pick_admin_with_drops", { + description = S("Admin Pickaxe with Drops"), + range = 12, + inventory_image = "maptools_adminpick_with_drops.png", + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, + tool_capabilities = { + full_punch_interval = 0.35, + max_drop_level = 3, + groupcaps = { + unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + }, + damage_groups = {fleshy = 1000}, + }, +}) + +minetest.register_on_punchnode(function(pos, node, puncher) + if puncher:get_wielded_item():get_name() == "maptools:pick_admin" + and minetest.get_node(pos).name ~= "air" then + minetest.log("action", puncher:get_player_name() .. " digs " .. minetest.get_node(pos).name .. " at " .. minetest.pos_to_string(pos) .. " using an Admin Pickaxe.") + minetest.remove_node(pos) -- The node is removed directly, which means it even works on non-empty containers and group-less nodes. + nodeupdate(pos) -- Run node update actions like falling nodes. + end +end) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [maptools] loaded.") +end diff --git a/mods/maptools/nodes.lua b/mods/maptools/nodes.lua deleted file mode 100644 index 8ceef647..00000000 --- a/mods/maptools/nodes.lua +++ /dev/null @@ -1,429 +0,0 @@ ---[[ -Map Tools: node definitions - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = maptools.intllib - -maptools.creative = maptools.config["hide_from_creative_inventory"] - --- Redefine cloud so that the admin pickaxe can mine it: -minetest.register_node(":default:cloud", { - description = S("Cloud"), - tiles = {"default_cloud.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_defaults(), -}) - --- Nodes --- ===== - -minetest.register_node("maptools:black", { - description = S("Black"), - range = 12, - stack_max = 10000, - tiles = {"black.png"}, - drop = "", - post_effect_color = {a=255, r=0, g=0, b=0}, - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:white", { - description = S("White"), - range = 12, - stack_max = 10000, - tiles = {"white.png"}, - drop = "", - post_effect_color = {a=255, r=128, g=128, b=128}, - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:playerclip", { - description = S("Player Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:fake_walkable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:fullclip", { - description = S("Full Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_blue.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:fake_walkable_pointable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:ignore_like", { - description = S("Ignore-like"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:ignore_like_no_clip", { - description = S("Ignore-like (no clip)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - - -minetest.register_node("maptools:ignore_like_no_point", { - description = S("Ignore-like (no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:ignore_like_no_clip_no_point", { - description = S("Ignore-like (no clip, no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:fullclip_face", { - description = S("Full Clip Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_white.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_bottom", { - description = S("Player Clip Bottom Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_orange.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_top", { - description = S("Player Clip Top Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_yellow.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, -}) - -for pusher_num=1,10,1 do -minetest.register_node("maptools:pusher_" .. pusher_num, { - description = S("Pusher (%s)"):format(pusher_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_apple.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100, bouncy=pusher_num*100}, -}) -end - -minetest.register_node("maptools:lightbulb", { - description = S("Light Bulb"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", - drawtype = "airlike", - walkable = false, - pointable = false, - light_source = 15, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:nobuild", { - description = S("Build Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^bones_bones.png", - drawtype = "airlike", - walkable = false, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:nointeract", { - description = S("Interact Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_scorched_stuff.png", - drawtype = "airlike", - walkable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:climb", { - description = S("Climb Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_ladder.png", - drawtype = "airlike", - walkable = false, - climbable = true, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -for damage_num=1,5,1 do -minetest.register_node("maptools:damage_" .. damage_num, { - description = S("Damaging Block (%s)"):format(damage_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = damage_num, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) -end - -minetest.register_node("maptools:kill", { - description = S("Kill Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_black.png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = 20, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:smoke", { - description = S("Smoke Block"), - range = 12, - stack_max = 10000, - tiles = {"maptools_smoke.png"}, - drawtype = "allfaces_optional", - walkable = false, - paramtype = "light", - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - post_effect_color = {a=192, r=96, g=96, b=96}, -}) - -minetest.register_node("maptools:ladder", { - description = S("Fake Ladder"), - range = 12, - stack_max = 10000, - drawtype = "signlike", - tiles = {"default_ladder.png"}, - inventory_image = "default_ladder.png", - wield_image = "default_ladder.png", - paramtype = "light", - paramtype2 = "wallmounted", - walkable = false, - sunlight_propagates = true, - selection_box = { - type = "wallmounted", - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("maptools:permanent_fire", { - description = S("Permanent Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sunlight_propagates = true, - walkable = false, - damage_per_second = 4, -}) - -minetest.register_node("maptools:fake_fire", { - description = S("Fake Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sunlight_propagates = true, - walkable = false, -}) - -minetest.register_node("maptools:igniter", { - drawtype = "airlike", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^crosshair.png", - description = S("Igniter"), - paramtype = "light", - inventory_image = "fire_basic_flame.png", - drop = "", - groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sunlight_propagates = true, - pointable = false, - walkable = false, -}) - -minetest.register_node("maptools:superapple", { - description = S("Super Apple"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"maptools_superapple.png"}, - inventory_image = "maptools_superapple.png", - paramtype = "light", - sunlight_propagates = true, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} - }, - walkable = false, - groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = maptools.creative}, - on_use = minetest.item_eat(20), - sounds = default.node_sound_defaults(), -}) diff --git a/mods/maptools/textures/maptools_super_apple_bottom.png b/mods/maptools/textures/maptools_super_apple_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..97f61e171c0291015d80fb19c8cbae5a11436b2b GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqkEEyw(>0&3oIs&1o-U3d7N?(1G~{Y_5OJA*I(_0% zraVvj6r-M*LXT7jAL4j?;3E=m$^F zGdWW47!ETWa|m1!KkfE!6)`c!=OPMBm3)c^Yz{yDG-u)srsoQ$58M(p@V&6@_HEt+ z60B#8dloaTxmxb?>?#N2rI2Q&TYDPz-rsnjI`?#OZrq-TAG!-(U%TmDeE;>L*!vOJ mfAt<)^VxO5sz=}duVb%TVcO~SWotOl{S2P2elF{r5}E)Rt8^Iv literal 0 HcmV?d00001 diff --git a/mods/maptools/textures/maptools_super_apple_side.png b/mods/maptools/textures/maptools_super_apple_side.png new file mode 100644 index 0000000000000000000000000000000000000000..cd4c83153f2abe5c0c2ed349e3c0d676b27a2f80 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqkEE!u^3{~$2|%GOo-U3d7N?(1G~{Y_5OJA*I(_0% zraVvj6r-M*LXT7jAL4j?;3E=m$^F zGdWW47!ETWa|m1!KkfE!6)`c!=OPMBm3)c^Yz{yDG-u)srsoQ$58M(p@V&6@_HEt+ z60B#8dloaTxmxb?>?#N2rI2Q&TYDPz-rsnjI`?#OZrq-TAG!-(U%TmDeE;>L*!vOJ mfAt<)^VxO5sz=}duVb%TVcO~SWotOl{S2P2elF{r5}E)>;dE61 literal 0 HcmV?d00001 diff --git a/mods/maptools/textures/maptools_super_apple_top.png b/mods/maptools/textures/maptools_super_apple_top.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4dbc056e1913768f70134e28a6bf551b87216b GIT binary patch literal 498 zcmV{Ut&2O5LW0q`a zv=Id$>4dnxgUhon0QI^&*J}AI;MYCiTY+p=^8M`^$0rfegE#=`xRfTB8%?L, a free/libre infinite -world block sandbox game. - -To install, just clone this repository into your "mods" directory. - -More Blocks 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/moreblocks/README.txt b/mods/moreblocks/README.txt new file mode 100755 index 00000000..aa99eda3 --- /dev/null +++ b/mods/moreblocks/README.txt @@ -0,0 +1,12 @@ +More Blocks +========== + +More Blocks for Minetest (http://minetest.net), a free and open source infinite +world block sandbox game. + +To install, just clone this repository into your "mods" directory. + +More Blocks code is under the zlib license, textures are under CC BY-SA 3.0 unported. + +Forum topic: http://forum.minetest.net/viewtopic.php?id=509 + diff --git a/mods/moreblocks/aliases.lua b/mods/moreblocks/aliases.lua old mode 100644 new mode 100755 index 15f7b6b2..df820c33 --- a/mods/moreblocks/aliases.lua +++ b/mods/moreblocks/aliases.lua @@ -1,28 +1,24 @@ ---[[ -More Blocks: alias definitions +-- More Blocks aliases -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - --- More Blocks aliases: minetest.register_alias("sweeper", "moreblocks:sweeper") minetest.register_alias("circular_saw", "moreblocks:circular_saw") minetest.register_alias("jungle_stick", "moreblocks:jungle_stick") --- Old block/item replacement: +-- Old block/item replacement + minetest.register_alias("moreblocks:oerkkiblock", "default:mossycobble") minetest.register_alias("moreblocks:screwdriver", "screwdriver:screwdriver") --- Node and item renaming: +-- Node and item renaming + minetest.register_alias("moreblocks:stone_bricks", "default:stonebrick") minetest.register_alias("moreblocks:stonebrick", "default:stonebrick") minetest.register_alias("moreblocks:junglewood", "default:junglewood") minetest.register_alias("moreblocks:jungle_wood", "default:junglewood") for _, t in pairs(circular_saw.names) do - minetest.register_alias("moreblocks:" .. t[1] .. "_jungle_wood" .. t[2], - "moreblocks:" .. t[1] .. "_junglewood" .. t[2]) + minetest.register_alias("moreblocks:" ..t[1].. "_jungle_wood" ..t[2], + "moreblocks:" ..t[1].. "_junglewood" ..t[2]) end minetest.register_alias("moreblocks:horizontaltree", "moreblocks:horizontal_tree") minetest.register_alias("moreblocks:horizontaljungletree", "moreblocks:horizontal_jungle_tree") @@ -55,7 +51,8 @@ minetest.register_alias("moreblocks:junglestick", "moreblocks:jungle_stick") minetest.register_alias("moreblocks:splitstonesquare","moreblocks:split_stone_tile") minetest.register_alias("moreblocks:allfacestree","moreblocks:all_faces_tree") --- ABM for horizontal trees (fix facedir): +-- ABM for horizontal trees (fix facedir). + local horizontal_tree_convert_facedir = {7, 12, 9, 18} minetest.register_abm({ diff --git a/mods/moreblocks/circular_saw.lua b/mods/moreblocks/circular_saw.lua old mode 100644 new mode 100755 index 98ddecbc..2af5972a --- a/mods/moreblocks/circular_saw.lua +++ b/mods/moreblocks/circular_saw.lua @@ -1,12 +1,4 @@ ---[[ -More Blocks: circular saw - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib - +local S = moreblocks.gettext circular_saw = {} circular_saw.known_stairs = setmetatable({}, { diff --git a/mods/moreblocks/config.lua b/mods/moreblocks/config.lua old mode 100644 new mode 100755 index d646dacd..e5db0861 --- a/mods/moreblocks/config.lua +++ b/mods/moreblocks/config.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: configuration handling - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - moreblocks.config = {} local function getbool_default(setting, default) diff --git a/mods/moreblocks/crafting.lua b/mods/moreblocks/crafting.lua old mode 100644 new mode 100755 index 4429d9ae..158d40a5 --- a/mods/moreblocks/crafting.lua +++ b/mods/moreblocks/crafting.lua @@ -1,9 +1,4 @@ ---[[ -More Blocks: crafting recipes - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] +-- Crafting minetest.register_craft({ output = "default:stick", diff --git a/mods/moreblocks/depends.txt b/mods/moreblocks/depends.txt old mode 100644 new mode 100755 index 198fe8a6..9207dab8 --- a/mods/moreblocks/depends.txt +++ b/mods/moreblocks/depends.txt @@ -1,2 +1,2 @@ -default -intllib? +default +intllib? diff --git a/mods/moreblocks/init.lua b/mods/moreblocks/init.lua old mode 100644 new mode 100755 index 2919a308..a86a38ea --- a/mods/moreblocks/init.lua +++ b/mods/moreblocks/init.lua @@ -1,22 +1,20 @@ --[[ -===================================================================== -** More Blocks ** -By Calinou, with the help of ShadowNinja and VanessaE. - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. -===================================================================== +-- More Blocks (moreblocks) by Calinou +-- Licensed under the zlib/ license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. --]] moreblocks = {} -local S -if minetest.get_modpath("intllib") then - S = intllib.Getter() +-- Load translation library if intllib is installed + +local S -- Load translation library if intllib is installed: +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 -moreblocks.intllib = S +moreblocks.gettext = S local modpath = minetest.get_modpath("moreblocks") @@ -29,5 +27,6 @@ dofile(modpath .. "/crafting.lua") dofile(modpath .. "/aliases.lua") if minetest.setting_getbool("log_mods") then - minetest.log("action", S("[moreblocks] loaded.")) + print(S("[moreblocks] loaded.")) end + diff --git a/mods/moreblocks/locale/de.txt b/mods/moreblocks/locale/de.txt old mode 100644 new mode 100755 diff --git a/mods/moreblocks/locale/es.txt b/mods/moreblocks/locale/es.txt old mode 100644 new mode 100755 diff --git a/mods/moreblocks/locale/fr.txt b/mods/moreblocks/locale/fr.txt old mode 100644 new mode 100755 diff --git a/mods/moreblocks/locale/template.txt b/mods/moreblocks/locale/template.txt old mode 100644 new mode 100755 diff --git a/mods/moreblocks/models/moreblocks_slope.obj b/mods/moreblocks/models/moreblocks_slope.obj deleted file mode 100644 index 05c853b7..00000000 --- a/mods/moreblocks/models/moreblocks_slope.obj +++ /dev/null @@ -1,21 +0,0 @@ -# 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/moreblocks/models/moreblocks_slope_half.obj b/mods/moreblocks/models/moreblocks_slope_half.obj deleted file mode 100644 index bc96bb8b..00000000 --- a/mods/moreblocks/models/moreblocks_slope_half.obj +++ /dev/null @@ -1,23 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_fronthalf_onetexture.blend' -# www.blender.org -mtllib slope_test_slope_long_fronthalf_onetexture.mtl -o Cube_Cube.002 -v 0.500000 -0.000000 0.500000 -v -0.500000 -0.000000 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.500000 -vt 0.000000 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/5 6/6 -f 2/1 5/3 3/4 -f 1/2 4/3 6/4 -f 2/5 1/6 6/3 5/4 diff --git a/mods/moreblocks/models/moreblocks_slope_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_half_raised.obj deleted file mode 100644 index 79e0dc01..00000000 --- a/mods/moreblocks/models/moreblocks_slope_half_raised.obj +++ /dev/null @@ -1,26 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_backhalf_onetexture.blend' -# www.blender.org -mtllib slope_test_slope_long_backhalf_onetexture.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.500000 0.500000 -v -0.500000 0.000000 -0.500000 -v 0.500000 0.000000 -0.500000 -v 0.500000 0.500000 0.500000 -vt 1.000000 1.000000 -vt 0.000000 0.500000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 0.500000 -vt 0.000000 1.000000 -usemtl None -s off -f 5/1 6/2 2/3 1/4 -f 6/5 7/2 3/3 2/4 -f 7/5 8/6 4/3 3/4 -f 8/1 5/6 1/3 4/4 -f 1/4 2/1 3/6 4/3 -f 8/6 7/3 6/4 5/1 diff --git a/mods/moreblocks/models/moreblocks_slope_inner.obj b/mods/moreblocks/models/moreblocks_slope_inner.obj deleted file mode 100644 index 68fc1700..00000000 --- a/mods/moreblocks/models/moreblocks_slope_inner.obj +++ /dev/null @@ -1,26 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend' -# www.blender.org -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 -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/moreblocks/models/moreblocks_slope_inner_half.obj b/mods/moreblocks/models/moreblocks_slope_inner_half.obj deleted file mode 100644 index 6decaea3..00000000 --- a/mods/moreblocks/models/moreblocks_slope_inner_half.obj +++ /dev/null @@ -1,28 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_short_onetexture.blend' -# www.blender.org -mtllib slope_test_icorner_half_short_onetexture.mtl -o Cube_Cube.000 -v 0.500000 -0.000000 0.500000 -v -0.500000 -0.000000 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.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/moreblocks/models/moreblocks_slope_inner_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj deleted file mode 100644 index 8aff6cab..00000000 --- a/mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj +++ /dev/null @@ -1,31 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_tall_onetexture.blend' -# www.blender.org -mtllib slope_test_icorner_half_tall_onetexture.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.000000 -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.500000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -usemtl None -s off -f 6/1 1/2 7/3 8/4 -f 2/1 1/2 5/4 -f 3/3 7/4 1/1 2/2 -f 1/2 6/3 9/4 -f 3/1 10/2 8/3 7/4 -f 8/3 10/4 5/5 6/2 -f 3/4 2/1 5/6 10/3 -l 1 4 -l 3 4 diff --git a/mods/moreblocks/models/moreblocks_slope_outer.obj b/mods/moreblocks/models/moreblocks_slope_outer.obj deleted file mode 100644 index 383c195f..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer.obj +++ /dev/null @@ -1,18 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend' -# www.blender.org -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 -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/moreblocks/models/moreblocks_slope_outer_cut.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut.obj deleted file mode 100644 index 4608c69c..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_cut.obj +++ /dev/null @@ -1,19 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_2_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_tall_2_onetexture.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 -vt 1.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 0.000000 1.000000 -vt 0.500000 1.000000 -usemtl None -s off -f 4/1 1/2 3/3 -f 2/3 4/4 3/2 -f 3/2 1/3 2/4 -f 1/3 4/5 2/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj deleted file mode 100644 index e4be8825..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj +++ /dev/null @@ -1,20 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_2_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_short_2_onetexture.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.000000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 0.000000 0.500000 -vt 0.000000 1.000000 -vt 0.500000 1.000000 -usemtl None -s off -f 4/1 1/2 3/3 -f 2/3 4/4 3/2 -f 3/2 1/3 2/5 -f 1/3 4/6 2/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj deleted file mode 100644 index 65a3b8ac..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj +++ /dev/null @@ -1,23 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_3_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_short_3_onetexture.mtl -o Cube_Cube.002 -v -0.500000 -0.000000 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 -vt 0.000000 0.500000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 0.500000 -usemtl None -s off -f 1/1 2/2 3/3 4/4 -f 4/5 3/2 5/3 6/6 -f 2/5 5/3 3/4 -f 1/2 4/3 6/4 -f 2/3 1/6 6/1 5/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_half.obj deleted file mode 100644 index 0c56e26a..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_half.obj +++ /dev/null @@ -1,22 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_1_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_short_1_onetexture.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.000000 0.500000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -usemtl None -s off -f 1/1 2/2 3/3 4/4 -f 5/5 1/3 4/4 -f 3/4 5/6 4/3 -f 2/4 5/2 3/3 -f 1/4 5/1 2/3 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj deleted file mode 100644 index e4fa3d1f..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj +++ /dev/null @@ -1,27 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_3_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_tall_3_onetexture.mtl -o Cube_Cube.002 -v -0.500000 -0.000000 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.500000 -v -0.500000 -0.000000 -0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 0.500000 -usemtl None -s off -f 1/1 2/2 3/3 4/4 -f 4/5 3/2 5/3 6/6 -f 8/3 4/5 6/2 -f 1/6 8/1 7/2 2/3 -f 4/5 8/3 1/4 -f 6/1 5/2 7/3 8/6 -f 5/5 3/2 2/3 7/4 diff --git a/mods/moreblocks/nodes.lua b/mods/moreblocks/nodes.lua old mode 100644 new mode 100755 index d3120c9a..5efda8f8 --- a/mods/moreblocks/nodes.lua +++ b/mods/moreblocks/nodes.lua @@ -1,11 +1,4 @@ ---[[ -More Blocks: node definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S = moreblocks.gettext local sound_wood = default.node_sound_wood_defaults() local sound_stone = default.node_sound_stone_defaults() @@ -123,11 +116,6 @@ local nodes = { groups = {cracky = 2}, sounds = sound_stone, }, - ["cobble_compressed"] = { - description = S("Compressed Cobblestone"), - groups = {cracky = 1}, - sounds = sound_stone, - }, ["plankstone"] = { description = S("Plankstone"), groups = {cracky = 3}, diff --git a/mods/moreblocks/ownership.lua b/mods/moreblocks/ownership.lua old mode 100644 new mode 100755 index 1c2431ba..9cd4cb30 --- a/mods/moreblocks/ownership.lua +++ b/mods/moreblocks/ownership.lua @@ -1,9 +1,3 @@ ---[[ -More Blocks: ownership handling - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] local S = moreblocks.gettext diff --git a/mods/moreblocks/redefinitions.lua b/mods/moreblocks/redefinitions.lua old mode 100644 new mode 100755 index a6498f16..4db169b1 --- a/mods/moreblocks/redefinitions.lua +++ b/mods/moreblocks/redefinitions.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: redefinitions of default stuff - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -- Redefinitions of some default crafting recipes: minetest.register_craft({ @@ -78,11 +71,6 @@ minetest.override_item("default:papyrus", { sunlight_propagates = true, }) -minetest.override_item("default:fence_wood", { - paramtype = "light", - sunlight_propagates = true, -}) - minetest.override_item("default:junglegrass", { paramtype = "light", sunlight_propagates = true, diff --git a/mods/moreblocks/stairsplus/API.md b/mods/moreblocks/stairsplus/API.md old mode 100644 new mode 100755 index 2db0f2b3..a98ec81e --- a/mods/moreblocks/stairsplus/API.md +++ b/mods/moreblocks/stairsplus/API.md @@ -1,5 +1,6 @@ API documentation for Stairs+ -============================= +================================ +- - - - - - - - - - - - - - - - * `stairsplus:register_all(modname, subname, recipeitem, fields)` Registers a stair, slab, panel, microblock, and any other types of diff --git a/mods/moreblocks/stairsplus/aliases.lua b/mods/moreblocks/stairsplus/aliases.lua old mode 100644 new mode 100755 index c235d342..c92df483 --- a/mods/moreblocks/stairsplus/aliases.lua +++ b/mods/moreblocks/stairsplus/aliases.lua @@ -1,9 +1,3 @@ ---[[ -More Blocks: alias definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] local function register_stairsplus_alias(modname, origname, newname) minetest.register_alias(modname.. ":slab_" ..origname, "moreblocks:slab_" ..newname) @@ -39,14 +33,12 @@ end register_stairsplus_alias("stairsplus", "stone", "stone") register_stairsplus_alias("stairsplus", "wood", "wood") -register_stairsplus_alias("stairsplus", "pinewood", "pinewood") register_stairsplus_alias("stairsplus", "cobble", "cobble") register_stairsplus_alias("stairsplus", "brick", "brick") register_stairsplus_alias("stairsplus", "sandstone", "sandstone") register_stairsplus_alias("stairsplus", "glass", "glass") register_stairsplus_alias("stairsplus", "tree", "tree") register_stairsplus_alias("stairsplus", "jungletree", "jungletree") -register_stairsplus_alias("stairsplus", "pinetree", "pinetree") register_stairsplus_alias("stairsplus", "desert_stone", "desert_stone") register_stairsplus_alias("stairsplus", "steelblock", "steelblock") register_stairsplus_alias("stairsplus", "mossycobble", "mossycobble") diff --git a/mods/moreblocks/stairsplus/conversion.lua b/mods/moreblocks/stairsplus/conversion.lua old mode 100644 new mode 100755 index 13966b66..fda30c7b --- a/mods/moreblocks/stairsplus/conversion.lua +++ b/mods/moreblocks/stairsplus/conversion.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: conversion - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -- Function to convert all stairs/slabs/etc nodes from -- inverted, wall, etc to regular + 6d facedir diff --git a/mods/moreblocks/stairsplus/init.lua b/mods/moreblocks/stairsplus/init.lua old mode 100644 new mode 100755 index ffec1b7f..ae09b7d3 --- a/mods/moreblocks/stairsplus/init.lua +++ b/mods/moreblocks/stairsplus/init.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: Stairs+ - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -- Nodes will be called :{stair,slab,panel,micro}_ local modpath = minetest.get_modpath("moreblocks").. "/stairsplus" @@ -25,7 +18,6 @@ function stairsplus:register_all(modname, subname, recipeitem, fields) end self:register_stair(modname, subname, recipeitem, fields) self:register_slab (modname, subname, recipeitem, fields) - self:register_slope(modname, subname, recipeitem, fields) self:register_panel(modname, subname, recipeitem, fields) self:register_micro(modname, subname, recipeitem, fields) -- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps. @@ -44,9 +36,8 @@ end -- dofile(modpath.. "/aliases.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. -- dofile(modpath.. "/conversion.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. -dofile(modpath .. "/stairs.lua") -dofile(modpath .. "/slabs.lua") -dofile(modpath .. "/slopes.lua") -dofile(modpath .. "/panels.lua") -dofile(modpath .. "/microblocks.lua") -dofile(modpath .. "/registrations.lua") +dofile(modpath.. "/stairs.lua") +dofile(modpath.. "/slabs.lua") +dofile(modpath.. "/panels.lua") +dofile(modpath.. "/microblocks.lua") +dofile(modpath.. "/registrations.lua") diff --git a/mods/moreblocks/stairsplus/microblocks.lua b/mods/moreblocks/stairsplus/microblocks.lua old mode 100644 new mode 100755 index 8d52c4a2..f88ed12e --- a/mods/moreblocks/stairsplus/microblocks.lua +++ b/mods/moreblocks/stairsplus/microblocks.lua @@ -1,11 +1,10 @@ ---[[ -More Blocks: microblock definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S -- Load translation library if intllib is installed: +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 -- Node will be called :micro_ diff --git a/mods/moreblocks/stairsplus/panels.lua b/mods/moreblocks/stairsplus/panels.lua old mode 100644 new mode 100755 index 2220fe42..73b283ed --- a/mods/moreblocks/stairsplus/panels.lua +++ b/mods/moreblocks/stairsplus/panels.lua @@ -1,11 +1,10 @@ ---[[ -More Blocks: panel definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S -- Load translation library if intllib is installed: +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 -- Node will be called :panel_ diff --git a/mods/moreblocks/stairsplus/registrations.lua b/mods/moreblocks/stairsplus/registrations.lua old mode 100644 new mode 100755 index 7b38b13b..cc22d333 --- a/mods/moreblocks/stairsplus/registrations.lua +++ b/mods/moreblocks/stairsplus/registrations.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: registrations - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - local default_nodes = { -- Default stairs/slabs/panels/microblocks: "stone", "cobble", @@ -17,14 +10,12 @@ local default_nodes = { -- Default stairs/slabs/panels/microblocks: "bronzeblock", "diamondblock", "desert_stone", - "desert_cobble", +-- "desert_cobble", "glass", "tree", "wood", "jungletree", "junglewood", - "pinetree", - "pinewood", "obsidian", "obsidian_glass", "stonebrick", diff --git a/mods/moreblocks/stairsplus/slabs.lua b/mods/moreblocks/stairsplus/slabs.lua old mode 100644 new mode 100755 index 68ba5200..9c31745d --- a/mods/moreblocks/stairsplus/slabs.lua +++ b/mods/moreblocks/stairsplus/slabs.lua @@ -1,11 +1,10 @@ ---[[ -More Blocks: slab definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S -- Load translation library if intllib is installed: +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 -- Node will be called :slab_ @@ -76,11 +75,11 @@ function stairsplus:register_slab(modname, subname, recipeitem, fields) end def.description = desc if fields.drop then - def.drop = modname.. ":slab_" .. fields.drop .. alternate + def.drop = modname.. ":slab_" ..fields.drop..alternate end - minetest.register_node(":" .. modname .. ":slab_" .. subname .. alternate, def) + minetest.register_node(":" ..modname.. ":slab_" ..subname..alternate, def) end - minetest.register_alias("stairs:slab_" .. subname, modname .. ":slab_" .. subname) + minetest.register_alias("stairs:slab_" ..subname, modname.. ":slab_" ..subname) -- Some saw-less recipes: diff --git a/mods/moreblocks/stairsplus/slopes.lua b/mods/moreblocks/stairsplus/slopes.lua deleted file mode 100644 index 3a169060..00000000 --- a/mods/moreblocks/stairsplus/slopes.lua +++ /dev/null @@ -1,459 +0,0 @@ ---[[ -More Blocks: slope definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib - -local box_slope = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, - {-0.5, -0.25, -0.25, 0.5, 0, 0.5}, - {-0.5, 0, 0, 0.5, 0.25, 0.5}, - {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5} - } -} - -local box_slope_half = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, - {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, - {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, - {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, - } -} - -local box_slope_half_raised = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, - {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, - {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, - {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, - } -} - ---============================================================== - -local box_slope_inner = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, - {-0.5, -0.5, -0.25, 0.5, 0, 0.5}, - {-0.5, -0.5, -0.5, 0.25, 0, 0.5}, - {-0.5, 0, -0.5, 0, 0.25, 0.5}, - {-0.5, 0, 0, 0.5, 0.25, 0.5}, - {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}, - {-0.5, 0.25, -0.5, -0.25, 0.5, 0.5}, - } -} - -local box_slope_inner_half = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, - {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, - {-0.5, -0.375, -0.5, 0.25, -0.25, 0.5}, - {-0.5, -0.25, -0.5, 0, -0.125, 0.5}, - {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, - {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, - {-0.5, -0.125, -0.5, -0.25, 0, 0.5}, - } -} - -local box_slope_inner_half_raised = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, - {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, - {-0.5, 0.125, -0.5, 0.25, 0.25, 0.5}, - {-0.5, 0.25, -0.5, 0, 0.375, 0.5}, - {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, - {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, - {-0.5, 0.375, -0.5, -0.25, 0.5, 0.5}, - } -} - ---============================================================== - -local box_slope_outer = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, - {-0.5, -0.25, -0.25, 0.25, 0, 0.5}, - {-0.5, 0, 0, 0, 0.25, 0.5}, - {-0.5, 0.25, 0.25, -0.25, 0.5, 0.5} - } -} - -local box_slope_outer_half = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, - {-0.5, -0.375, -0.25, 0.25, -0.25, 0.5}, - {-0.5, -0.25, 0, 0, -0.125, 0.5}, - {-0.5, -0.125, 0.25, -0.25, 0, 0.5} - } -} - -local box_slope_outer_half_raised = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, - {-0.5, 0.125, -0.25, 0.25, 0.25, 0.5}, - {-0.5, 0.25, 0, 0, 0.375, 0.5}, - {-0.5, 0.375, 0.25, -0.25, 0.5, 0.5} - } -} - --- Node will be called :slope_ - -function register_slope(modname, subname, recipeitem, groups, images, description, drop, light) - return stairsplus:register_slope(modname, subname, recipeitem, { - groups = groups, - tiles = images, - description = description, - drop = drop, - light_source = light, - sounds = default.node_sound_stone_defaults(), - }) -end - -function stairsplus:register_slope(modname, subname, recipeitem, fields) - local defs = { - [""] = { - mesh = "moreblocks_slope.obj", - collision_box = box_slope, - selection_box = box_slope, - - }, - ["_half"] = { - mesh = "moreblocks_slope_half.obj", - collision_box = box_slope_half, - selection_box = box_slope_half, - }, - ["_half_raised"] = { - mesh = "moreblocks_slope_half_raised.obj", - collision_box = box_slope_half_raised, - selection_box = box_slope_half_raised, - }, - ---============================================================== - - ["_inner"] = { - mesh = "moreblocks_slope_inner.obj", - collision_box = box_slope_inner, - selection_box = box_slope_inner, - }, - ["_inner_half"] = { - mesh = "moreblocks_slope_inner_half.obj", - collision_box = box_slope_inner_half, - selection_box = box_slope_inner_half, - }, - ["_inner_half_raised"] = { - mesh = "moreblocks_slope_inner_half_raised.obj", - collision_box = box_slope_inner_half_raised, - selection_box = box_slope_inner_half_raised, - }, - ---============================================================== - - ["_outer"] = { - mesh = "moreblocks_slope_outer.obj", - collision_box = box_slope_outer, - selection_box = box_slope_outer, - }, - ["_outer_half"] = { - mesh = "moreblocks_slope_outer_half.obj", - collision_box = box_slope_outer_half, - selection_box = box_slope_outer_half, - }, - ["_outer_half_raised"] = { - mesh = "moreblocks_slope_outer_half_raised.obj", - collision_box = box_slope_outer_half_raised, - selection_box = box_slope_outer_half_raised, - }, - ---============================================================== - - ["_outer_cut"] = { - mesh = "moreblocks_slope_outer_cut.obj", - collision_box = box_slope_outer, - selection_box = box_slope_outer, - }, - ["_outer_cut_half"] = { - mesh = "moreblocks_slope_outer_cut_half.obj", - collision_box = box_slope_outer_half, - selection_box = box_slope_outer_half, - }, - ["_outer_cut_half_raised"] = { - mesh = "moreblocks_slope_outer_cut_half_raised.obj", - collision_box = box_slope_outer_half_raised, - selection_box = box_slope_outer_half_raised, - }, - } - - local desc = S("%s Slope"):format(fields.description) - for alternate, def in pairs(defs) do - def.drawtype = "mesh" - def.paramtype = "light" - def.paramtype2 = "facedir" - def.on_place = minetest.rotate_node - for k, v in pairs(fields) do - def[k] = v - end - def.description = desc - if fields.drop then - def.drop = modname.. ":slope_" ..fields.drop..alternate - end - minetest.register_node(":" ..modname.. ":slope_" ..subname..alternate, def) - end - - -- Some saw-less recipes: - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. " 7", - recipe = { - {modname .. ":panel_" .. subname, "", ""}, - {recipeitem, modname .. ":panel_" .. subname, ""}, - {recipeitem, recipeitem, modname .. ":panel_" .. subname}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. " 7", - recipe = { - {"", "", modname .. ":panel_" .. subname}, - {"", modname .. ":panel_" .. subname, recipeitem}, - {modname .. ":panel_" .. subname, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_half 10", - recipe = { - {modname .. ":panel_" .. subname, "", ""}, - {recipeitem, recipeitem, modname .. ":panel_" .. subname}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_half 10", - recipe = { - {"", "", modname .. ":panel_" .. subname}, - {modname .. ":panel_" .. subname, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_half_raised 7", - recipe = { - {modname .. ":panel_" .. subname, "", ""}, - {recipeitem, recipeitem, modname .. ":panel_" .. subname}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_half_raised 7", - recipe = { - {"", "", modname .. ":panel_" .. subname}, - {modname .. ":panel_" .. subname, recipeitem, recipeitem}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - ---===================================================== Inner == - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner 7", - recipe = { - {modname .. ":stair_" .. subname .. "_half", "", ""}, - {recipeitem, modname .. ":stair_" .. subname .. "_half", ""}, - {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner 7", - recipe = { - {"", "", modname .. ":stair_" .. subname .. "_half"}, - {"", modname .. ":stair_" .. subname .. "_half", recipeitem}, - {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner_half 10", - recipe = { - {modname .. ":stair_" .. subname .. "_half", "", ""}, - {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner_half 10", - recipe = { - {"", "", modname .. ":stair_" .. subname .. "_half"}, - {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner_half_raised 7", - recipe = { - {modname .. ":stair_" .. subname .. "_half", "", ""}, - {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner_half_raised 7", - recipe = { - {"", "", modname .. ":stair_" .. subname .. "_half"}, - {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - ---===================================================== Outer == - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer 7", - recipe = { - {modname .. ":micro_" .. subname, "", ""}, - {recipeitem, modname .. ":micro_" .. subname, ""}, - {recipeitem, recipeitem, modname .. ":micro_" .. subname}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer 7", - recipe = { - {"", "", modname .. ":micro_" .. subname}, - {"", modname .. ":micro_" .. subname, recipeitem}, - {modname .. ":micro_" .. subname, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer_half 10", - recipe = { - {modname .. ":micro_" .. subname, "", ""}, - {recipeitem, recipeitem, modname .. ":micro_" .. subname}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer_half 10", - recipe = { - {"", "", modname .. ":micro_" .. subname}, - {modname .. ":micro_" .. subname, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer_half_raised 7", - recipe = { - {modname .. ":micro_" .. subname, "", ""}, - {recipeitem, recipeitem, modname .. ":micro_" .. subname}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer_half_raised 7", - recipe = { - {"", "", modname .. ":micro_" .. subname}, - {modname .. ":micro_" .. subname, recipeitem, recipeitem}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - ---================================================= Shapeless == - - minetest.register_craft({ - type = "shapeless", - output = recipeitem, - recipe = {modname .. ":slope_" .. subname, modname .. ":slope_" .. subname}, - }) - - minetest.register_craft({ - type = "shapeless", - output = recipeitem, - recipe = {modname .. ":slope_" .. subname .. "_outer_cut", modname .. ":slope_" .. subname .. "_outer_cut"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = recipeitem, - recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half_raised"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = recipeitem, - recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", - modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slab_" .. subname, - recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_half_raised", - recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", - modname .. ":slope_" .. subname .. "_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_half_raised", - recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_inner_half_raised", - recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_inner_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_half_raised", - recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_cut_half_raised", - recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_cut_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_cut", - recipe = {modname .. ":slope_" .. subname .. "_outer"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_cut_half", - recipe = {modname .. ":slope_" .. subname .. "_outer_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_cut_half_raised", - recipe = {modname .. ":slope_" .. subname .. "_outer_half_raised"}, - }) -end diff --git a/mods/moreblocks/stairsplus/stairs.lua b/mods/moreblocks/stairsplus/stairs.lua old mode 100644 new mode 100755 index a93cda08..a4f54e39 --- a/mods/moreblocks/stairsplus/stairs.lua +++ b/mods/moreblocks/stairsplus/stairs.lua @@ -1,11 +1,10 @@ ---[[ -More Blocks: stair definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S -- Load translation library if intllib is installed: +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 -- Node will be called :stair_ @@ -117,11 +116,11 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields) end def.description = desc if fields.drop then - def.drop = modname .. ":stair_" .. fields.drop .. alternate + def.drop = modname.. ":stair_" ..fields.drop..alternate end - minetest.register_node(":" .. modname .. ":stair_" .. subname .. alternate, def) + minetest.register_node(":" ..modname.. ":stair_" ..subname..alternate, def) end - minetest.register_alias("stairs:stair_" .. subname, modname .. ":stair_" .. subname) + minetest.register_alias(":stairs:stair_" ..subname, modname.. ":stair_" ..subname) -- Some saw-less recipes: diff --git a/mods/moreblocks/textures/default_brick.png b/mods/moreblocks/textures/default_brick.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/default_fence_overlay.png b/mods/moreblocks/textures/default_fence_overlay.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/invisible.png b/mods/moreblocks/textures/invisible.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_cactus_brick.png b/mods/moreblocks/textures/moreblocks_cactus_brick.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_cactus_checker.png b/mods/moreblocks/textures/moreblocks_cactus_checker.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png b/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png b/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_side.png b/mods/moreblocks/textures/moreblocks_circular_saw_side.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_top.png b/mods/moreblocks/textures/moreblocks_circular_saw_top.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_clean_glass.png b/mods/moreblocks/textures/moreblocks_clean_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_checker.png b/mods/moreblocks/textures/moreblocks_coal_checker.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_glass.png b/mods/moreblocks/textures/moreblocks_coal_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_stone.png b/mods/moreblocks/textures/moreblocks_coal_stone.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png b/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_empty_bookshelf.png b/mods/moreblocks/textures/moreblocks_empty_bookshelf.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png b/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_fence_wood.png b/mods/moreblocks/textures/moreblocks_fence_wood.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_glass.png b/mods/moreblocks/textures/moreblocks_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_glow_glass.png b/mods/moreblocks/textures/moreblocks_glow_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_grey_bricks.png b/mods/moreblocks/textures/moreblocks_grey_bricks.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_checker.png b/mods/moreblocks/textures/moreblocks_iron_checker.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_glass.png b/mods/moreblocks/textures/moreblocks_iron_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_stone.png b/mods/moreblocks/textures/moreblocks_iron_stone.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png b/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_junglestick.png b/mods/moreblocks/textures/moreblocks_junglestick.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_plankstone.png b/mods/moreblocks/textures/moreblocks_plankstone.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_plankstone_2.png b/mods/moreblocks/textures/moreblocks_plankstone_2.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_rope.png b/mods/moreblocks/textures/moreblocks_rope.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile.png b/mods/moreblocks/textures/moreblocks_split_stone_tile.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_stone_tile.png b/mods/moreblocks/textures/moreblocks_stone_tile.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_super_glow_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_sweeper.png b/mods/moreblocks/textures/moreblocks_sweeper.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_tar.png b/mods/moreblocks/textures/moreblocks_tar.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_trap_glass.png b/mods/moreblocks/textures/moreblocks_trap_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_trap_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_glow_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_trap_stone.png b/mods/moreblocks/textures/moreblocks_trap_stone.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_tree_stairsplus.png b/mods/moreblocks/textures/moreblocks_tree_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile.png b/mods/moreblocks/textures/moreblocks_wood_tile.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_center.png b/mods/moreblocks/textures/moreblocks_wood_tile_center.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_full.png b/mods/moreblocks/textures/moreblocks_wood_tile_full.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_up.png b/mods/moreblocks/textures/moreblocks_wood_tile_up.png old mode 100644 new mode 100755 From a2591f025c138c8fee55e602c6c507760446975a Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 21:08:54 +0100 Subject: [PATCH 12/39] Removed global variables' errors file --- global_to_solve.txt | 82 --------------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 global_to_solve.txt diff --git a/global_to_solve.txt b/global_to_solve.txt deleted file mode 100644 index e1386f70..00000000 --- a/global_to_solve.txt +++ /dev/null @@ -1,82 +0,0 @@ -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/awards/init.lua:8 -14:41:30: WARNING: Undeclared global variable "worldedit" accessed at ...eFun/worldmods/WorldEdit/worldedit_infinity/init.lua:1 -14:41:30: WARNING: Undeclared global variable "check_set" accessed at ...eFun/worldmods/WorldEdit/worldedit_commands/init.lua:830 -14:41:30: WARNING: Undeclared global variable "check_set" accessed at ...eFun/worldmods/WorldEdit/worldedit_commands/init.lua:841 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at .../NodesJustWannaHaveFun/worldmods/moreblocks/init.lua:11 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...naHaveFun/worldmods/moreblocks/stairsplus/stairs.lua:2 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...nnaHaveFun/worldmods/moreblocks/stairsplus/slabs.lua:2 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...naHaveFun/worldmods/moreblocks/stairsplus/panels.lua:2 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...eFun/worldmods/moreblocks/stairsplus/microblocks.lua:2 -14:41:30: ERROR[main]: Assignment to undeclared global "v" inside a function at ...ds/NodesJustWannaHaveFun/worldmods/snow/src/util.lua:51. -14:41:30: ERROR[main]: Assignment to undeclared global "i" inside a function at ...ds/NodesJustWannaHaveFun/worldmods/snow/src/util.lua:51. -14:41:30: WARNING: Undeclared global variable "skins" accessed at ...s/NodesJustWannaHaveFun/worldmods/snow/src/nodes.lua:69 -14:41:30: WARNING: Undeclared global variable "HUD" accessed at ...ds/NodesJustWannaHaveFun/worldmods/snow/src/sled.lua:71 -14:41:30: WARNING: Undeclared global variable "drop" accessed at ...esJustWannaHaveFun/worldmods/snow/src/stairsplus.lua:276 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:15 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:25 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:35 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:46 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:57 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:78 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:88 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:98 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:108 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:121 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:133 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:143 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:153 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:166 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:176 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:186 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:196 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:206 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:216 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:226 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:237 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:249 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:270 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:281 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:291 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:301 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:311 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:322 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:332 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:342 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:352 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:362 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:374 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:384 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:109 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:141 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:169 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:197 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:225 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:253 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:282 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:310 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:338 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:366 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:394 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:422 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:450 -14:41:30: WARNING: Undeclared global variable "x21" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:451 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:478 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:506 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:534 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:661 -14:41:30: WARNING: Undeclared global variable "convert_base" accessed at ...ustWannaHaveFun/worldmods/mesecons/mesecons/util.lua:104 -14:41:31: WARNING: Undeclared global variable "handle_timer" accessed at ...n/worldmods/mesecons/mesecons_luacontroller/init.lua:562 -14:41:31: WARNING: Undeclared global variable "selectionbox" accessed at ...n/worldmods/mesecons/mesecons_luacontroller/init.lua:603 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:36 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:82 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:128 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:174 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:356 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at ...JustWannaHaveFun/worldmods/unified_inventory/api.lua:2 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at ...annaHaveFun/worldmods/unified_inventory/internal.lua:2 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at ...annaHaveFun/worldmods/unified_inventory/register.lua:2 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at ...ustWannaHaveFun/worldmods/unified_inventory/bags.lua:7 -14:41:31: WARNING: Undeclared global variable "inventory_plus" accessed at ...stWannaHaveFun/worldmods/3d_armor/3d_armor/armor.lua:40 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at .../worlds/NodesJustWannaHaveFun/worldmods/food/api.lua:11 -14:41:31: ERROR[main]: Assignment to undeclared global "mod" inside a function at .../worlds/NodesJustWannaHaveFun/worldmods/food/api.lua:44. -14:41:31: ERROR[main]: Assignment to undeclared global "g" inside a function at .../worlds/NodesJustWannaHaveFun/worldmods/food/api.lua:63. From ae4295babc17d810682927222be4d39096b58529 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 21:16:00 +0100 Subject: [PATCH 13/39] Made superapples harder to craft - Changed craft recipe for default:superapple, now using : "default:apple","default:mese","default:mese" --- minetestforfun_game/mods/default/crafting.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minetestforfun_game/mods/default/crafting.lua b/minetestforfun_game/mods/default/crafting.lua index d6e4081f..84a7232d 100644 --- a/minetestforfun_game/mods/default/crafting.lua +++ b/minetestforfun_game/mods/default/crafting.lua @@ -630,7 +630,7 @@ minetest.register_craft({ minetest.register_craft({ output = "maptools:superapple", type = "shapeless", - recipe = {"default:apple", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + recipe = {"default:apple", "default:mese", "default:mese"}, }) minetest.register_craft({ From 42885ee458b0a1613ced21068f52e0125f7071ef Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 22:45:27 +0100 Subject: [PATCH 14/39] More global vars --- mods/ambience_modpack/ambience/init.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/ambience_modpack/ambience/init.lua b/mods/ambience_modpack/ambience/init.lua index 3a14d97d..64545c8a 100755 --- a/mods/ambience_modpack/ambience/init.lua +++ b/mods/ambience_modpack/ambience/init.lua @@ -252,14 +252,14 @@ end local atleast_nodes_in_grid = function(pos, search_distance, height, node_name, threshold) counter = counter +1 -- minetest.chat_send_all("counter: (" .. counter .. ")") - minp = {x=pos.x-search_distance,y=height, z=pos.z+20} - maxp = {x=pos.x+search_distance,y=height, z=pos.z+20} - nodes = minetest.find_nodes_in_area(minp, maxp, node_name) + local minp = {x=pos.x-search_distance,y=height, z=pos.z+20} + local maxp = {x=pos.x+search_distance,y=height, z=pos.z+20} + local nodes = minetest.find_nodes_in_area(minp, maxp, node_name) -- minetest.chat_send_all("z+Found (" .. node_name .. ": " .. #nodes .. ")") if #nodes >= threshold then return true end - totalnodes = #nodes + local totalnodes = #nodes minp = {x=pos.x-search_distance,y=height, z=pos.z-20} maxp = {x=pos.x+search_distance,y=height, z=pos.z-20} nodes = minetest.find_nodes_in_area(minp, maxp, node_name) From c75b3780ca02e234843356be9d45192d95c35fb6 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 23:27:03 +0100 Subject: [PATCH 15/39] Loads of fixs --- mods/builtin_falling/func.lua | 2 +- mods/sea/clams/init.lua | 2 +- mods/snow/src/mapgen_v6.lua | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mods/builtin_falling/func.lua b/mods/builtin_falling/func.lua index 5d2a714e..32b0b80e 100755 --- a/mods/builtin_falling/func.lua +++ b/mods/builtin_falling/func.lua @@ -169,7 +169,7 @@ function add_protected_bukket_liquid(nameofbukket,liquidsourcename) return end -- Check if pointing to a buildable node - n = minetest.get_node(pointed_thing.under) + local n = minetest.get_node(pointed_thing.under) if is_protected_area(pointed_thing.under, 7 ,user:get_player_name()) then minetest.chat_send_player(user:get_player_name(),"You cant place here - Too short of a protected area.") diff --git a/mods/sea/clams/init.lua b/mods/sea/clams/init.lua index d9e6a13d..c6f88f75 100755 --- a/mods/sea/clams/init.lua +++ b/mods/sea/clams/init.lua @@ -127,7 +127,7 @@ minetest.register_entity("clams:whiteshell", { self.phase = 0 end self.object:setsprite({x=0, y=self.phase}) - phasearmor = { + local phasearmor = { [0]={fleshy=0}, [1]={fleshy=30}, [2]={fleshy=70} diff --git a/mods/snow/src/mapgen_v6.lua b/mods/snow/src/mapgen_v6.lua index 414fddc2..9f9453ed 100755 --- a/mods/snow/src/mapgen_v6.lua +++ b/mods/snow/src/mapgen_v6.lua @@ -106,7 +106,7 @@ minetest.register_on_generated(function(minp, maxp, seed) local plain = biome == 2 -- spawns not much local alpine = biome == 3 -- rocky terrain -- Water biomes - biome2 = pr:next(1, 5) + local biome2 = pr:next(1, 5) local cool = biome == 1 -- only spawns ice on edge of water local icebergs = biome == 2 local icesheet = biome == 3 From f05544c10a47e89d85a9f1680621f12a530082e6 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Tue, 13 Jan 2015 21:08:35 +0100 Subject: [PATCH 16/39] HUD still buggy --- mods/hud/hunger.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/mods/hud/hunger.lua b/mods/hud/hunger.lua index 236af426..c9e74f39 100755 --- a/mods/hud/hunger.lua +++ b/mods/hud/hunger.lua @@ -368,6 +368,7 @@ function hud.handle_node_actions(pos, oldnode, player, ext) new = HUD_HUNGER_EXHAUST_MOVE end if exhaus == nil then return end + print("zerobin") print(exhaus) -- If exhaus goes through the condition exhaus = exhaus + new if exhaus > HUD_HUNGER_EXHAUST_LVL then From e4747df46c4c23c7a3d32c868ad97dcdc1d121ff Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Tue, 13 Jan 2015 21:17:48 +0100 Subject: [PATCH 17/39] Commented stuff --- mods/hud/hunger.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/hud/hunger.lua b/mods/hud/hunger.lua index c9e74f39..d26054c0 100755 --- a/mods/hud/hunger.lua +++ b/mods/hud/hunger.lua @@ -352,7 +352,7 @@ end -- player-action based hunger changes function hud.handle_node_actions(pos, oldnode, player, ext) - if not player or not player:is_player() then + --[[if not player or not player:is_player() then return end local name = player:get_player_name() @@ -379,7 +379,7 @@ function hud.handle_node_actions(pos, oldnode, player, ext) hud.hunger[name] = h hud.set_hunger(player) end - hud.exhaustion[name] = exhaus + hud.exhaustion[name] = exhaus]] end minetest.register_on_placenode(hud.handle_node_actions) From a8f0d538731b088dc4b9dc83e5ec65ff90866f09 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Wed, 14 Jan 2015 13:58:13 +0100 Subject: [PATCH 18/39] correction de bug message irc pour shout MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit correction d'une condition toujours fausse qui ne déclenche pas l'affichage du message pour l'option privs shout --- mods/_misc/noshout_messages.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mods/_misc/noshout_messages.lua b/mods/_misc/noshout_messages.lua index 889984d3..a61ef8e6 100755 --- a/mods/_misc/noshout_messages.lua +++ b/mods/_misc/noshout_messages.lua @@ -5,9 +5,9 @@ minetest.register_globalstep(function(dtime) TIMER = 0 for _,player in ipairs(minetest.get_connected_players()) do local name = player:get_player_name() - if not minetest.check_player_privs(name, {interact=shout}) then + if not minetest.check_player_privs(name, {shout=true}) then minetest.chat_send_player(name, "Hey " .. name .. " ! Pour pouvoir communiquer avec les autres joueurs sur ce serveur, tu dois lire les règles de l'irc et les accepter. Tape /irc.") minetest.chat_send_player(name, "Hey " .. name .. " ! To speak to other people on this server, you have to read the rules of our irc channel and agree them. Type /irc.") end end -end) \ No newline at end of file +end) From 7e58605553d3d3279f3d870146610a07babf70c7 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Wed, 14 Jan 2015 16:09:03 +0100 Subject: [PATCH 19/39] =?UTF-8?q?debug=20et=20am=C3=A9lioration=20de=20fut?= =?UTF-8?q?ure=5Fban?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit debug d'une mauvaise variable ajout d'une vérification pour éviter de rebannir un joueur déja banni --- mods/future_ban/init.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/mods/future_ban/init.lua b/mods/future_ban/init.lua index d3854c8c..3380fbe4 100755 --- a/mods/future_ban/init.lua +++ b/mods/future_ban/init.lua @@ -26,6 +26,12 @@ minetest.register_chatcommand("future_ban", { minetest.chat_send_player(name, "Future ban list: " .. dump(future_ban_list)) return end + for _,n in ipairs(future_ban_list) do + if n == param then + minetest.chat_send_player(name, param .. " is already in future ban list.") + return + end + end if not minetest.get_player_by_name(param) then table.insert(future_ban_list, param) minetest.chat_send_player(name, param .. " to future ban list added.") @@ -35,8 +41,8 @@ minetest.register_chatcommand("future_ban", { end if not minetest.ban_player(param) then table.insert(future_ban_list, param) - minetest.chat_send_player(name, desc .. " to future ban list added.") - minetest.log("action", name .. " added " .. desc .. " to future ban list.") + minetest.chat_send_player(name, param .. " to future ban list added.") + minetest.log("action", name .. " added " .. param .. " to future ban list.") save_file() else local desc = minetest.get_ban_description(param) From 5fb7a6e662e31ca28c2db3a80ca701aeec9db319 Mon Sep 17 00:00:00 2001 From: crabman77 Date: Wed, 14 Jan 2015 17:33:46 +0100 Subject: [PATCH 20/39] passage de variables global en local passage de variables global en local --- mods/ambience_modpack/ambience/init.lua | 16 ++++++++-------- mods/builtin_falling/func.lua | 8 ++++---- mods/builtin_falling/rewirting.lua | 2 +- mods/builtin_item/init.lua | 2 +- mods/gauges/init.lua | 4 ++-- mods/lavatemple/dagger.lua | 8 ++++---- 6 files changed, 20 insertions(+), 20 deletions(-) diff --git a/mods/ambience_modpack/ambience/init.lua b/mods/ambience_modpack/ambience/init.lua index 11ae692e..3a14d97d 100755 --- a/mods/ambience_modpack/ambience/init.lua +++ b/mods/ambience_modpack/ambience/init.lua @@ -236,15 +236,15 @@ local is_daytime = function() end local nodes_in_range = function(pos, search_distance, node_name) - minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} - maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} - nodes = minetest.find_nodes_in_area(minp, maxp, node_name) + local minp = {x=pos.x-search_distance,y=pos.y-search_distance, z=pos.z-search_distance} + local maxp = {x=pos.x+search_distance,y=pos.y+search_distance, z=pos.z+search_distance} + local nodes = minetest.find_nodes_in_area(minp, maxp, node_name) --minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") return #nodes end local nodes_in_coords = function(minp, maxp, node_name) - nodes = minetest.find_nodes_in_area(minp, maxp, node_name) + local nodes = minetest.find_nodes_in_area(minp, maxp, node_name) --minetest.chat_send_all("Found (" .. node_name .. ": " .. #nodes .. ")") return #nodes end @@ -394,11 +394,11 @@ local get_ambience = function(player) -- minetest.chat_send_all("n3uf:" ..node_3_under_feet) -- local air_or_ignore = {air=true,ignore=true} - minp = {x=pos.x-3,y=pos.y-4, z=pos.z-3} - maxp = {x=pos.x+3,y=pos.y-1, z=pos.z+3} + local minp = {x=pos.x-3,y=pos.y-4, z=pos.z-3} + local maxp = {x=pos.x+3,y=pos.y-1, z=pos.z+3} local air_under_player = nodes_in_coords(minp, maxp, "air") local ignore_under_player = nodes_in_coords(minp, maxp, "ignore") - air_plus_ignore_under = air_under_player + ignore_under_player + local air_plus_ignore_under = air_under_player + ignore_under_player -- minetest.chat_send_all("airUnder:" ..air_under_player) -- minetest.chat_send_all("ignoreUnder:" ..ignore_under_player) -- minetest.chat_send_all("a+i:" ..air_plus_ignore_under) @@ -448,7 +448,7 @@ local get_ambience = function(player) end - desert_in_range = (nodes_in_range(pos, 6, "default:desert_sand")+nodes_in_range(pos, 6, "default:desert_stone")) + local desert_in_range = (nodes_in_range(pos, 6, "default:desert_sand")+nodes_in_range(pos, 6, "default:desert_stone")) --minetest.chat_send_all("desertcount: " .. desert_in_range .. ",".. pos.y ) if desert_in_range >250 then if music then diff --git a/mods/builtin_falling/func.lua b/mods/builtin_falling/func.lua index 478d2745..5d2a714e 100755 --- a/mods/builtin_falling/func.lua +++ b/mods/builtin_falling/func.lua @@ -1,6 +1,6 @@ function spawn_falling_node(p, node, owners) - obj = minetest.add_entity(p, "__builtin:falling_node") + local obj = minetest.add_entity(p, "__builtin:falling_node") obj:get_luaentity():set_node(node) obj:get_luaentity():set_owner(owners) end @@ -52,10 +52,10 @@ end -- function nodeupdate_single(p, delay) - n = minetest.get_node(p) + local n = minetest.get_node(p) if minetest.get_item_group(n.name, "falling_node") ~= 0 then - p_bottom = {x=p.x, y=p.y-1, z=p.z} - n_bottom = minetest.get_node(p_bottom) + local p_bottom = {x=p.x, y=p.y-1, z=p.z} + local n_bottom = minetest.get_node(p_bottom) -- Note: walkable is in the node definition, not in item groups if minetest.registered_nodes[n_bottom.name] and (minetest.get_item_group(n.name, "float") == 0 or diff --git a/mods/builtin_falling/rewirting.lua b/mods/builtin_falling/rewirting.lua index 5033c1e4..af78035d 100755 --- a/mods/builtin_falling/rewirting.lua +++ b/mods/builtin_falling/rewirting.lua @@ -29,7 +29,7 @@ minetest.register_entity(":__builtin:falling_node", { item_texture = minetest.registered_items[itemname].inventory_image item_type = minetest.registered_items[itemname].type end - prop = { + local prop = { is_visible = true, textures = {node.name}, } diff --git a/mods/builtin_item/init.lua b/mods/builtin_item/init.lua index cd58665f..b5fbd6c6 100755 --- a/mods/builtin_item/init.lua +++ b/mods/builtin_item/init.lua @@ -30,7 +30,7 @@ minetest.register_entity(":__builtin:item", { item_texture = minetest.registered_items[itemname].inventory_image item_type = minetest.registered_items[itemname].type end - prop = { + local prop = { is_visible = true, visual = "sprite", textures = {"unknown_item.png"} diff --git a/mods/gauges/init.lua b/mods/gauges/init.lua index f9134cbf..c2c66d0a 100755 --- a/mods/gauges/init.lua +++ b/mods/gauges/init.lua @@ -19,8 +19,8 @@ function hp_bar:on_step(dtime) self.object:remove() return end - hp = wielder:get_hp() - breath = wielder:get_breath() + local hp = wielder:get_hp() + local breath = wielder:get_breath() self.object:set_properties({textures = {"health_" .. tostring(hp) .. ".png^breath_" .. tostring(breath) .. ".png"}}) end diff --git a/mods/lavatemple/dagger.lua b/mods/lavatemple/dagger.lua index bdd3c5d1..e1e24f13 100755 --- a/mods/lavatemple/dagger.lua +++ b/mods/lavatemple/dagger.lua @@ -3,13 +3,13 @@ minetest.register_globalstep(function(dtime) local players = minetest.get_connected_players() for i,player in ipairs(players) do - target = lavatemple.mapgen_data.pos; + local target = lavatemple.mapgen_data.pos; if not target then return end - pos = player:getpos() - dir = player:get_look_yaw() + local pos = player:getpos() + local dir = player:get_look_yaw() local angle_north = math.deg(math.atan2(target.x - pos.x, target.z - pos.z)) if angle_north < 0 then angle_north = angle_north + 360 end - angle_dir = 90 - math.deg(dir) + local angle_dir = 90 - math.deg(dir) local angle_relative = (angle_north - angle_dir) % 360 local compass_image = math.floor((angle_relative/30) + 0.5)%12 From be396bfd1f6c068b48c0a42f11106f524e24a2e1 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Wed, 14 Jan 2015 23:16:22 +0100 Subject: [PATCH 21/39] Removed debug print from crabman77's pull-request in sprint --- mods/sprint/esprint.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/mods/sprint/esprint.lua b/mods/sprint/esprint.lua index 4ae36218..d200b2ed 100755 --- a/mods/sprint/esprint.lua +++ b/mods/sprint/esprint.lua @@ -12,7 +12,6 @@ local staminaHud = {} minetest.register_on_joinplayer(function(player) local playerName = player:get_player_name() - print("playename: " ..playerName) players[playerName] = { sprinting = false, timeOut = 0, From ebddea15370dbfec382d3010a70a0972ef3b17cf Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 18:57:59 +0100 Subject: [PATCH 22/39] Removed global variables in maptools --- mods/maptools/default_nodes.lua | 70 +++++++++++++++++---------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/mods/maptools/default_nodes.lua b/mods/maptools/default_nodes.lua index 83d0df02..f7667586 100644 --- a/mods/maptools/default_nodes.lua +++ b/mods/maptools/default_nodes.lua @@ -6,13 +6,15 @@ if (minetest.get_modpath("intllib")) then S = function ( s ) return s end end + + minetest.register_node("maptools:stone", { description = S("Unbreakable Stone"), range = 12, stack_max = 10000, tiles = {"default_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -22,7 +24,7 @@ minetest.register_node("maptools:stonebrick", { stack_max = 10000, tiles = {"default_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -32,7 +34,7 @@ minetest.register_node("maptools:tree", { stack_max = 10000, tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -43,7 +45,7 @@ minetest.register_node("maptools:jungletree", { stack_max = 10000, tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -54,7 +56,7 @@ minetest.register_node("maptools:cactus", { stack_max = 10000, tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -75,7 +77,7 @@ minetest.register_node("maptools:papyrus", { type = "fixed", fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} }, - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_leaves_defaults(), }) @@ -85,7 +87,7 @@ minetest.register_node("maptools:dirt", { stack_max = 10000, tiles = {"default_dirt.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults(), }) @@ -95,7 +97,7 @@ minetest.register_node("maptools:wood", { stack_max = 10000, tiles = {"default_wood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), }) @@ -105,7 +107,7 @@ minetest.register_node("maptools:junglewood", { stack_max = 10000, tiles = {"default_junglewood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_wood_defaults(), }) @@ -118,7 +120,7 @@ minetest.register_node("maptools:glass", { paramtype = "light", sunlight_propagates = true, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_glass_defaults(), }) @@ -130,7 +132,7 @@ minetest.register_node("maptools:leaves", { tiles = {"default_leaves.png"}, paramtype = "light", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_leaves_defaults(), }) @@ -140,7 +142,7 @@ minetest.register_node("maptools:sand", { stack_max = 10000, tiles = {"default_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_sand_defaults(), }) @@ -150,7 +152,7 @@ minetest.register_node("maptools:gravel", { stack_max = 10000, tiles = {"default_gravel.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.35}, dug = {name="default_gravel_footstep", gain=0.6}, @@ -163,7 +165,7 @@ minetest.register_node("maptools:clay", { stack_max = 10000, tiles = {"default_clay.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults(), }) @@ -173,7 +175,7 @@ minetest.register_node("maptools:desert_sand", { stack_max = 10000, tiles = {"default_desert_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_sand_defaults(), }) @@ -183,7 +185,7 @@ minetest.register_node("maptools:sandstone", { stack_max = 10000, tiles = {"default_sandstone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -193,7 +195,7 @@ minetest.register_node("maptools:sandstone_brick", { stack_max = 10000, tiles = {"default_sandstone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -203,7 +205,7 @@ minetest.register_node("maptools:desert_stone", { stack_max = 10000, tiles = {"default_desert_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -213,7 +215,7 @@ minetest.register_node("maptools:desert_cobble", { stack_max = 10000, tiles = {"default_desert_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -223,7 +225,7 @@ minetest.register_node("maptools:desert_stonebrick", { stack_max = 10000, tiles = {"default_desert_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -234,7 +236,7 @@ minetest.register_node("maptools:grass", { tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain = 0.4}, }), @@ -246,7 +248,7 @@ minetest.register_node("maptools:fullgrass", { stack_max = 10000, tiles = {"default_grass.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), @@ -267,7 +269,7 @@ for slab_num = 1,3,1 do paramtype = "light", paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), }) end @@ -278,7 +280,7 @@ minetest.register_node("maptools:cobble", { stack_max = 10000, tiles = {"default_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -288,7 +290,7 @@ minetest.register_node("maptools:mossycobble", { stack_max = 10000, tiles = {"default_mossycobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -298,7 +300,7 @@ minetest.register_node("maptools:brick", { stack_max = 10000, tiles = {"default_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -308,7 +310,7 @@ minetest.register_node("maptools:coalblock", { stack_max = 10000, tiles = {"default_coal_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -319,7 +321,7 @@ minetest.register_node("maptools:steelblock", { stack_max = 10000, tiles = {"default_steel_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -329,7 +331,7 @@ minetest.register_node("maptools:goldblock", { stack_max = 10000, tiles = {"default_gold_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -339,7 +341,7 @@ minetest.register_node("maptools:copperblock", { stack_max = 10000, tiles = {"default_copper_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -349,7 +351,7 @@ minetest.register_node("maptools:bronzeblock", { stack_max = 10000, tiles = {"default_bronze_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -359,7 +361,7 @@ minetest.register_node("maptools:diamondblock", { stack_max = 10000, tiles = {"default_diamond_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, sounds = default.node_sound_stone_defaults(), }) @@ -371,7 +373,7 @@ minetest.register_node("maptools:soil_wet", { stack_max = 10000, tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, grassland = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, soil = 3, wet = 1, grassland = 1}, sounds = default.node_sound_dirt_defaults(), }) @@ -381,6 +383,6 @@ minetest.register_node("maptools:desert_sand_soil_wet", { stack_max = 10000, drop = "", tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, desert = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, soil = 3, wet = 1, desert = 1}, sounds = default.node_sound_sand_defaults(), }) From b409af28c36d328703182cf762e5d9fbf68561dd Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 19:06:12 +0100 Subject: [PATCH 23/39] Maptool's update --- mods/maptools/{LICENSE.txt => LICENSE.md} | 7 +- mods/maptools/NODES.md | 45 ++ mods/maptools/README.md | 11 + mods/maptools/README.txt | 22 - mods/maptools/_README.txt | 53 -- mods/maptools/aliases.lua | 9 +- mods/maptools/config.lua | 29 + mods/maptools/craftitems.lua | 47 ++ mods/maptools/default_nodes.lua | 85 +-- mods/maptools/init.lua | 583 +----------------- mods/maptools/nodes.lua | 429 +++++++++++++ .../textures/maptools_super_apple_bottom.png | Bin 295 -> 0 bytes .../textures/maptools_super_apple_side.png | Bin 295 -> 0 bytes .../textures/maptools_super_apple_top.png | Bin 498 -> 0 bytes mods/maptools/tools.lua | 61 ++ 15 files changed, 707 insertions(+), 674 deletions(-) rename mods/maptools/{LICENSE.txt => LICENSE.md} (71%) create mode 100644 mods/maptools/NODES.md create mode 100644 mods/maptools/README.md delete mode 100644 mods/maptools/README.txt delete mode 100644 mods/maptools/_README.txt create mode 100644 mods/maptools/config.lua create mode 100644 mods/maptools/craftitems.lua create mode 100644 mods/maptools/nodes.lua delete mode 100644 mods/maptools/textures/maptools_super_apple_bottom.png delete mode 100644 mods/maptools/textures/maptools_super_apple_side.png delete mode 100644 mods/maptools/textures/maptools_super_apple_top.png create mode 100644 mods/maptools/tools.lua diff --git a/mods/maptools/LICENSE.txt b/mods/maptools/LICENSE.md similarity index 71% rename from mods/maptools/LICENSE.txt rename to mods/maptools/LICENSE.md index f42bd647..ca48e3a1 100644 --- a/mods/maptools/LICENSE.txt +++ b/mods/maptools/LICENSE.md @@ -1,8 +1,9 @@ -+---- zlib/libpng license ----+ +zlib license +============ -Copyright (c) 2013 Calinou +Copyright (c) 2012-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. +**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: diff --git a/mods/maptools/NODES.md b/mods/maptools/NODES.md new file mode 100644 index 00000000..f5ce3cc3 --- /dev/null +++ b/mods/maptools/NODES.md @@ -0,0 +1,45 @@ +Item names for spawning the items using /give or /giveme +======================================================== + +Items +----- + +* `admin_pick:` magenta pickaxe, infinite durability, mines everything including unbreakable blocks instantly. No drops. Don't put this pickaxe in the hands of a griefer, of course. + +* `admin_pick_with_drops:` same as admin pickaxe, but drops stuff. + +* `infinite_fuel:` fuel lasting for a (near)-infinite time. Don't worry about the "near" * it lasts for about 50 in-real-life years. + +* `super_apple:` a yellow apple which heals 20 HP. + +* `copper_coin,` +* `silver_coin,` +* `gold_coin:` these have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. + +Blocks +------ + +**[!]** denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit or similar). + + +* `(block)_u` : unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). Examples: `stone_u`, `wood_u`, `glass_u`, … + +* `full_grass:` unbreakable block with the grass texture on all sides. + +* `player_clip:` **[!]** invisible block, not pointable. + +* `full_clip:` invisible block, pointable. Also available as a thin face: full_clip_face. + +* `smoke_block:` some smoke (does not harm players or entities). + +* `no_build:` **[!]** very basic building prevention. + +* `no_interact:` prevents interacting through the block (opening chests, furnaces, attacking entities, …). + +* `damage_(1…5):` **[!]** damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). + +* `kill:` **[!]** instant kill (deals 10 heart damage) blocks. + +* `light_block:` **[!]** invisible non-solid block, prevents light from passing through. + +* `light_bulb:` **[!]** invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/README.md b/mods/maptools/README.md new file mode 100644 index 00000000..3a428b7e --- /dev/null +++ b/mods/maptools/README.md @@ -0,0 +1,11 @@ +Map Tools +========= + +Map Tools for Minetest , a free/libre infinite +world block sandbox game. + +To install, just clone this repository into your "mods" directory. + +Map Tools 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/maptools/README.txt b/mods/maptools/README.txt deleted file mode 100644 index 4c155813..00000000 --- a/mods/maptools/README.txt +++ /dev/null @@ -1,22 +0,0 @@ -Calinou's Minetest Mods -===================== - -Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. - -This Git repository is mostly made for servers; it allows easy updating. - -To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. - - - -Misc stuff -===================== - -All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. - -Mods' forum threads: -More Blocks: http://minetest.net/forum/viewtopic.php?id=509 -More Ores: http://minetest.net/forum/viewtopic.php?id=549 -Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 -Doors+: http://minetest.net/forum/viewtopic.php?id=2059 -Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 diff --git a/mods/maptools/_README.txt b/mods/maptools/_README.txt deleted file mode 100644 index cfbe0b2e..00000000 --- a/mods/maptools/_README.txt +++ /dev/null @@ -1,53 +0,0 @@ -*** Item names for spawning the items using /give or /giveme *** - -Items: - -- admin_pick -Purple pickaxe, infinite durability, mines everything including unbreakable blocks instantly. Don't put this pickaxe in the hands of a griefer, of course. :) - -- infinitefuel -Fuel lasting for a (near)-infinite time. Don't worry about the "near" - it lasts for about 50 in-real-life years. - -- superapple -An apple which heals all 10 hearts. - -- copper_coin -- silver_coin -- gold_coin -These have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. - -Blocks: -A /!\ denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit). - -- (insert block name here)_u -- example: stone_u -Unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). - -- fullgrass -Unbrakable block with the "grass" texture on all sides. - -- playerclip -/!\ Invisible block, not pointable. - -- fullclip -Invisible block, pointable. - -- smoke_block -Some smoke (does not harm players or entities). - -- nobuild -/!\ Very basic building prevention. - -- nointeract -Prevents interacting through the block (interacting as in opening chests, furnaces, attacking entities...). - -- damage_(insert damage in half hearts here) -/!\ Damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). - -- killblock -/!\ Instant kill (deals 10 heart damage) blocks. - -- lightblock -/!\ Invisible non-solid block, prevents light from passing through. - -- lightbulb -/!\ Invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/aliases.lua b/mods/maptools/aliases.lua index 8742f44e..f1f0cc57 100644 --- a/mods/maptools/aliases.lua +++ b/mods/maptools/aliases.lua @@ -1,4 +1,9 @@ --- Aliases +--[[ +Map Tools: alias definitions + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] minetest.register_alias("adminpick", "maptools:pick_admin") minetest.register_alias("adminpickaxe", "maptools:pick_admin") @@ -69,8 +74,6 @@ minetest.register_alias("fake_fire", "maptools:fake_fire") minetest.register_alias("ffire", "maptools:fake_fire") minetest.register_alias("igniter", "maptools:igniter") --- Unbreakable block aliases - minetest.register_alias("stone_u", "maptools:stone") minetest.register_alias("tree_u", "maptools:tree") minetest.register_alias("cobble_u", "maptools:cobble") diff --git a/mods/maptools/config.lua b/mods/maptools/config.lua new file mode 100644 index 00000000..63f1a260 --- /dev/null +++ b/mods/maptools/config.lua @@ -0,0 +1,29 @@ +--[[ +Map Tools: configuration handling + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +maptools.config = {} + +local function getbool_default(setting, default) + local value = minetest.setting_getbool(setting) + if value == nil then + value = default + end + return value +end + +local function setting(settingtype, name, default) + if settingtype == "bool" then + maptools.config[name] = + getbool_default("maptools." .. name, default) + else + maptools.config[name] = + minetest.setting_get("maptools." .. name) or default + end +end + +-- Show Map Tools stuff in creative inventory (1 or 0): +setting("integer", "hide_from_creative_inventory", 1) diff --git a/mods/maptools/craftitems.lua b/mods/maptools/craftitems.lua new file mode 100644 index 00000000..c311aa95 --- /dev/null +++ b/mods/maptools/craftitems.lua @@ -0,0 +1,47 @@ +--[[ +Map Tools: item definitions + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = maptools.intllib + +maptools.creative = maptools.config["hide_from_creative_inventory"] + +minetest.register_craftitem("maptools:copper_coin", { + description = S("Copper Coin"), + inventory_image = "maptools_copper_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craftitem("maptools:silver_coin", { + description = S("Silver Coin"), + inventory_image = "maptools_silver_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craftitem("maptools:gold_coin", { + description = S("Gold Coin"), + inventory_image = "maptools_gold_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craftitem("maptools:infinitefuel", { + description = S("Infinite Fuel"), + inventory_image = "maptools_infinitefuel.png", + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "maptools:infinitefuel", + burntime = 1000000000, +}) diff --git a/mods/maptools/default_nodes.lua b/mods/maptools/default_nodes.lua index f7667586..3ac0caf5 100644 --- a/mods/maptools/default_nodes.lua +++ b/mods/maptools/default_nodes.lua @@ -1,12 +1,13 @@ -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 +--[[ +Map Tools: unbreakable default nodes +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] +local S = maptools.intllib + +maptools.creative = maptools.config["hide_from_creative_inventory"] minetest.register_node("maptools:stone", { description = S("Unbreakable Stone"), @@ -14,7 +15,7 @@ minetest.register_node("maptools:stone", { stack_max = 10000, tiles = {"default_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -24,7 +25,7 @@ minetest.register_node("maptools:stonebrick", { stack_max = 10000, tiles = {"default_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -34,7 +35,7 @@ minetest.register_node("maptools:tree", { stack_max = 10000, tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -45,7 +46,7 @@ minetest.register_node("maptools:jungletree", { stack_max = 10000, tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -56,7 +57,7 @@ minetest.register_node("maptools:cactus", { stack_max = 10000, tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -77,7 +78,7 @@ minetest.register_node("maptools:papyrus", { type = "fixed", fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} }, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -87,7 +88,7 @@ minetest.register_node("maptools:dirt", { stack_max = 10000, tiles = {"default_dirt.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -97,7 +98,7 @@ minetest.register_node("maptools:wood", { stack_max = 10000, tiles = {"default_wood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), }) @@ -107,7 +108,7 @@ minetest.register_node("maptools:junglewood", { stack_max = 10000, tiles = {"default_junglewood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), }) @@ -120,7 +121,7 @@ minetest.register_node("maptools:glass", { paramtype = "light", sunlight_propagates = true, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_glass_defaults(), }) @@ -132,7 +133,7 @@ minetest.register_node("maptools:leaves", { tiles = {"default_leaves.png"}, paramtype = "light", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -142,7 +143,7 @@ minetest.register_node("maptools:sand", { stack_max = 10000, tiles = {"default_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_sand_defaults(), }) @@ -152,7 +153,7 @@ minetest.register_node("maptools:gravel", { stack_max = 10000, tiles = {"default_gravel.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.35}, dug = {name="default_gravel_footstep", gain=0.6}, @@ -165,7 +166,7 @@ minetest.register_node("maptools:clay", { stack_max = 10000, tiles = {"default_clay.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -175,7 +176,7 @@ minetest.register_node("maptools:desert_sand", { stack_max = 10000, tiles = {"default_desert_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_sand_defaults(), }) @@ -185,7 +186,7 @@ minetest.register_node("maptools:sandstone", { stack_max = 10000, tiles = {"default_sandstone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -195,7 +196,7 @@ minetest.register_node("maptools:sandstone_brick", { stack_max = 10000, tiles = {"default_sandstone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -205,7 +206,7 @@ minetest.register_node("maptools:desert_stone", { stack_max = 10000, tiles = {"default_desert_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -215,7 +216,7 @@ minetest.register_node("maptools:desert_cobble", { stack_max = 10000, tiles = {"default_desert_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -225,7 +226,7 @@ minetest.register_node("maptools:desert_stonebrick", { stack_max = 10000, tiles = {"default_desert_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -236,7 +237,7 @@ minetest.register_node("maptools:grass", { tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain = 0.4}, }), @@ -248,7 +249,7 @@ minetest.register_node("maptools:fullgrass", { stack_max = 10000, tiles = {"default_grass.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), @@ -269,7 +270,7 @@ for slab_num = 1,3,1 do paramtype = "light", paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), }) end @@ -280,7 +281,7 @@ minetest.register_node("maptools:cobble", { stack_max = 10000, tiles = {"default_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -290,7 +291,7 @@ minetest.register_node("maptools:mossycobble", { stack_max = 10000, tiles = {"default_mossycobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -300,7 +301,7 @@ minetest.register_node("maptools:brick", { stack_max = 10000, tiles = {"default_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -310,7 +311,7 @@ minetest.register_node("maptools:coalblock", { stack_max = 10000, tiles = {"default_coal_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -321,7 +322,7 @@ minetest.register_node("maptools:steelblock", { stack_max = 10000, tiles = {"default_steel_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -331,7 +332,7 @@ minetest.register_node("maptools:goldblock", { stack_max = 10000, tiles = {"default_gold_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -341,7 +342,7 @@ minetest.register_node("maptools:copperblock", { stack_max = 10000, tiles = {"default_copper_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -351,7 +352,7 @@ minetest.register_node("maptools:bronzeblock", { stack_max = 10000, tiles = {"default_bronze_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -359,9 +360,9 @@ minetest.register_node("maptools:diamondblock", { description = S("Unbreakable Diamond Block"), range = 12, stack_max = 10000, - tiles = {"default_diamond_block.png"}, + tiles = {"default_steel_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -373,7 +374,7 @@ minetest.register_node("maptools:soil_wet", { stack_max = 10000, tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, soil = 3, wet = 1, grassland = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, grassland = 1}, sounds = default.node_sound_dirt_defaults(), }) @@ -383,6 +384,6 @@ minetest.register_node("maptools:desert_sand_soil_wet", { stack_max = 10000, drop = "", tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, soil = 3, wet = 1, desert = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, desert = 1}, sounds = default.node_sound_sand_defaults(), }) diff --git a/mods/maptools/init.lua b/mods/maptools/init.lua index c5178fae..dbff209c 100644 --- a/mods/maptools/init.lua +++ b/mods/maptools/init.lua @@ -1,551 +1,32 @@ -MAPTOOLS_CREATIVE = 1 -- Set this to 0 if you want Map Tools nodes and items to appear in the creative inventory. - --- Load translation library if intllib is installed - -local S -if (minetest.get_modpath("intllib")) then - dofile(minetest.get_modpath("intllib").."/intllib.lua") - S = intllib.Getter(minetest.get_current_modname()) - else - S = function ( s ) return s end -end - -dofile(minetest.get_modpath("maptools").."/aliases.lua") -dofile(minetest.get_modpath("maptools").."/default_nodes.lua") - ---[[ -Map Tools by Calinou -Licensed under the zlib license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. ---]] - --- Redefine cloud so that the admin pickaxe can mine it. - -minetest.register_node(":default:cloud", { - description = S("Cloud"), - tiles = {"default_cloud.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_defaults(), -}) - --- Items - -minetest.register_craft({ - type = "fuel", - recipe = "maptools:infinitefuel", - burntime = 1000000000, -}) - --- Nodes - -minetest.register_node("maptools:black", { - description = S("Black"), - range = 12, - stack_max = 10000, - tiles = {"black.png"}, - drop = "", - post_effect_color = {a=255, r=0, g=0, b=0}, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:white", { - description = S("White"), - range = 12, - stack_max = 10000, - tiles = {"white.png"}, - drop = "", - post_effect_color = {a=255, r=128, g=128, b=128}, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:playerclip", { - description = S("Player Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fake_walkable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fullclip", { - description = S("Full Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_blue.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fake_walkable_pointable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:ignore_like", { - description = S("Ignore-like"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:ignore_like_no_clip", { - description = S("Ignore-like (no clip)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - - -minetest.register_node("maptools:ignore_like_no_point", { - description = S("Ignore-like (no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:ignore_like_no_clip_no_point", { - description = S("Ignore-like (no clip, no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fullclip_face", { - description = S("Full Clip Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_white.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_bottom", { - description = S("Player Clip Bottom Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_orange.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_top", { - description = S("Player Clip Top Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_yellow.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, -}) - -for pusher_num=1,10,1 do -minetest.register_node("maptools:pusher_" .. pusher_num, { - description = S("Pusher (%s)"):format(pusher_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_apple.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100, bouncy=pusher_num*100}, -}) -end - -minetest.register_node("maptools:lightbulb", { - description = S("Light Bulb"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", - drawtype = "airlike", - walkable = false, - pointable = false, - light_source = 15, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:nobuild", { - description = S("Build Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^bones_bones.png", - drawtype = "airlike", - walkable = false, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:nointeract", { - description = S("Interact Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_scorched_stuff.png", - drawtype = "airlike", - walkable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:climb", { - description = S("Climb Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_ladder.png", - drawtype = "airlike", - walkable = false, - climbable = true, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -for damage_num=1,5,1 do -minetest.register_node("maptools:damage_" .. damage_num, { - description = S("Damaging Block (%s)"):format(damage_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = damage_num, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) -end - -minetest.register_node("maptools:kill", { - description = S("Kill Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_black.png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = 20, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:smoke", { - description = S("Smoke Block"), - range = 12, - stack_max = 10000, - tiles = {"maptools_smoke.png"}, - drawtype = "allfaces_optional", - walkable = false, - paramtype = "light", - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - post_effect_color = {a=192, r=96, g=96, b=96}, -}) - -minetest.register_node("maptools:ladder", { - description = S("Fake Ladder"), - range = 12, - stack_max = 10000, - drawtype = "signlike", - tiles = {"default_ladder.png"}, - inventory_image = "default_ladder.png", - wield_image = "default_ladder.png", - paramtype = "light", - paramtype2 = "wallmounted", - walkable = false, - sunlight_propagates = true, - selection_box = { - type = "wallmounted", - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("maptools:permanent_fire", { - description = S("Permanent Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sunlight_propagates = true, - walkable = false, - damage_per_second = 4, -}) - -minetest.register_node("maptools:fake_fire", { - description = S("Fake Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sunlight_propagates = true, - walkable = false, -}) - -minetest.register_node("maptools:igniter", { - drawtype = "airlike", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^crosshair.png", - description = S("Igniter"), - paramtype = "light", - inventory_image = "fire_basic_flame.png", - drop = "", - groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sunlight_propagates = true, - pointable = false, - walkable = false, -}) - -minetest.register_node("maptools:superapple", { - description = S("Super Apple"), - range = 12, - stack_max = 99, - drawtype = "nodebox", - visual_scale = 1.0, - tiles = {"maptools_super_apple_top.png","maptools_super_apple_bottom.png","maptools_super_apple_side.png"}, - inventory_image = "maptools_superapple.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - node_box = { - type = "fixed", - fixed = { - {-3/16, -7/16, -3/16, 3/16, 1/16, 3/16}, - {-4/16, -6/16, -3/16, 4/16, 0, 3/16}, - {-3/16, -6/16, -4/16, 3/16, 0, 4/16}, - {-1/32, 1/16, -1/32, 1/32, 4/16, 1/32}, - {-1/16, 1.6/16, 0, 1/16, 1.8/16, 1/16}, - {-2/16, 1.4/16, 1/16, 1/16, 1.6/16, 2/16}, - {-2/16, 1.2/16, 2/16, 0, 1.4/16, 3/16}, - {-1.5/16, 1/16, .5/16, 0.5/16, 1.2/16, 2.5/16}, - } - }, - is_ground_content = true, - groups = {fleshy = 3, dig_immediate = 3, not_in_creative_inventory = 0, flammable = 2, leafdecay = 3, leafdecay_drop = 1}, - on_use = minetest.item_eat(20), - sounds = default.node_sound_leaves_defaults(), - after_place_node = function(pos, placer, itemstack) - if placer:is_player() then - minetest.set_node(pos, {name = "maptools:superapple", param2= 1}) - end - end, -}) - --- Items - -minetest.register_craftitem("maptools:copper_coin", { - description = S("Copper Coin"), - inventory_image = "maptools_copper_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_craftitem("maptools:silver_coin", { - description = S("Silver Coin"), - inventory_image = "maptools_silver_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_craftitem("maptools:gold_coin", { - description = S("Gold Coin"), - inventory_image = "maptools_gold_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_craftitem("maptools:infinitefuel", { - description = S("Infinite Fuel"), - inventory_image = "maptools_infinitefuel.png", - stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - --- Tools - -minetest.register_tool("maptools:pick_admin", { - description = S("Admin Pickaxe"), - range = 12, - inventory_image = "maptools_adminpick.png", - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, - tool_capabilities = { - full_punch_interval = 0.1, - max_drop_level = 3, - groupcaps= { - unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - }, - damage_groups = {fleshy = 1000}, - }, -}) - -minetest.register_tool("maptools:pick_admin_with_drops", { - description = S("Admin Pickaxe with Drops"), - range = 12, - inventory_image = "maptools_adminpick_with_drops.png", - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, - tool_capabilities = { - full_punch_interval = 0.35, - max_drop_level = 3, - groupcaps = { - unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - }, - damage_groups = {fleshy = 1000}, - }, -}) - -minetest.register_on_punchnode(function(pos, node, puncher) - if puncher:get_wielded_item():get_name() == "maptools:pick_admin" - and minetest.get_node(pos).name ~= "air" then - minetest.log("action", puncher:get_player_name() .. " digs " .. minetest.get_node(pos).name .. " at " .. minetest.pos_to_string(pos) .. " using an Admin Pickaxe.") - minetest.remove_node(pos) -- The node is removed directly, which means it even works on non-empty containers and group-less nodes. - nodeupdate(pos) -- Run node update actions like falling nodes. - end -end) - -if minetest.setting_getbool("log_mods") then - minetest.log("action", "Carbone: [maptools] loaded.") -end +--[[ +===================================================================== +** Map Tools ** +By Calinou. + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +===================================================================== +--]] + +maptools = {} + +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function(s) return s end +end +maptools.intllib = S + +local modpath = minetest.get_modpath("maptools") + +dofile(modpath .. "/config.lua") +dofile(modpath .. "/aliases.lua") +dofile(modpath .. "/craftitems.lua") +dofile(modpath .. "/default_nodes.lua") +dofile(modpath .. "/nodes.lua") +dofile(modpath .. "/tools.lua") + +if minetest.setting_getbool("log_mods") then + minetest.log("action", S("[maptools] loaded.")) +end diff --git a/mods/maptools/nodes.lua b/mods/maptools/nodes.lua new file mode 100644 index 00000000..8ceef647 --- /dev/null +++ b/mods/maptools/nodes.lua @@ -0,0 +1,429 @@ +--[[ +Map Tools: node definitions + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = maptools.intllib + +maptools.creative = maptools.config["hide_from_creative_inventory"] + +-- Redefine cloud so that the admin pickaxe can mine it: +minetest.register_node(":default:cloud", { + description = S("Cloud"), + tiles = {"default_cloud.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_defaults(), +}) + +-- Nodes +-- ===== + +minetest.register_node("maptools:black", { + description = S("Black"), + range = 12, + stack_max = 10000, + tiles = {"black.png"}, + drop = "", + post_effect_color = {a=255, r=0, g=0, b=0}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:white", { + description = S("White"), + range = 12, + stack_max = 10000, + tiles = {"white.png"}, + drop = "", + post_effect_color = {a=255, r=128, g=128, b=128}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:playerclip", { + description = S("Player Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fake_walkable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fullclip", { + description = S("Full Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_blue.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fake_walkable_pointable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:ignore_like", { + description = S("Ignore-like"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:ignore_like_no_clip", { + description = S("Ignore-like (no clip)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + + +minetest.register_node("maptools:ignore_like_no_point", { + description = S("Ignore-like (no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:ignore_like_no_clip_no_point", { + description = S("Ignore-like (no clip, no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fullclip_face", { + description = S("Full Clip Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_white.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_bottom", { + description = S("Player Clip Bottom Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_orange.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_top", { + description = S("Player Clip Top Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_yellow.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, +}) + +for pusher_num=1,10,1 do +minetest.register_node("maptools:pusher_" .. pusher_num, { + description = S("Pusher (%s)"):format(pusher_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_apple.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100, bouncy=pusher_num*100}, +}) +end + +minetest.register_node("maptools:lightbulb", { + description = S("Light Bulb"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", + drawtype = "airlike", + walkable = false, + pointable = false, + light_source = 15, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:nobuild", { + description = S("Build Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^bones_bones.png", + drawtype = "airlike", + walkable = false, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:nointeract", { + description = S("Interact Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_scorched_stuff.png", + drawtype = "airlike", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:climb", { + description = S("Climb Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_ladder.png", + drawtype = "airlike", + walkable = false, + climbable = true, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +for damage_num=1,5,1 do +minetest.register_node("maptools:damage_" .. damage_num, { + description = S("Damaging Block (%s)"):format(damage_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = damage_num, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) +end + +minetest.register_node("maptools:kill", { + description = S("Kill Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_black.png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = 20, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:smoke", { + description = S("Smoke Block"), + range = 12, + stack_max = 10000, + tiles = {"maptools_smoke.png"}, + drawtype = "allfaces_optional", + walkable = false, + paramtype = "light", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + post_effect_color = {a=192, r=96, g=96, b=96}, +}) + +minetest.register_node("maptools:ladder", { + description = S("Fake Ladder"), + range = 12, + stack_max = 10000, + drawtype = "signlike", + tiles = {"default_ladder.png"}, + inventory_image = "default_ladder.png", + wield_image = "default_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:permanent_fire", { + description = S("Permanent Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sunlight_propagates = true, + walkable = false, + damage_per_second = 4, +}) + +minetest.register_node("maptools:fake_fire", { + description = S("Fake Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sunlight_propagates = true, + walkable = false, +}) + +minetest.register_node("maptools:igniter", { + drawtype = "airlike", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^crosshair.png", + description = S("Igniter"), + paramtype = "light", + inventory_image = "fire_basic_flame.png", + drop = "", + groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sunlight_propagates = true, + pointable = false, + walkable = false, +}) + +minetest.register_node("maptools:superapple", { + description = S("Super Apple"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"maptools_superapple.png"}, + inventory_image = "maptools_superapple.png", + paramtype = "light", + sunlight_propagates = true, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} + }, + walkable = false, + groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = maptools.creative}, + on_use = minetest.item_eat(20), + sounds = default.node_sound_defaults(), +}) diff --git a/mods/maptools/textures/maptools_super_apple_bottom.png b/mods/maptools/textures/maptools_super_apple_bottom.png deleted file mode 100644 index 97f61e171c0291015d80fb19c8cbae5a11436b2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqkEEyw(>0&3oIs&1o-U3d7N?(1G~{Y_5OJA*I(_0% zraVvj6r-M*LXT7jAL4j?;3E=m$^F zGdWW47!ETWa|m1!KkfE!6)`c!=OPMBm3)c^Yz{yDG-u)srsoQ$58M(p@V&6@_HEt+ z60B#8dloaTxmxb?>?#N2rI2Q&TYDPz-rsnjI`?#OZrq-TAG!-(U%TmDeE;>L*!vOJ mfAt<)^VxO5sz=}duVb%TVcO~SWotOl{S2P2elF{r5}E)Rt8^Iv diff --git a/mods/maptools/textures/maptools_super_apple_side.png b/mods/maptools/textures/maptools_super_apple_side.png deleted file mode 100644 index cd4c83153f2abe5c0c2ed349e3c0d676b27a2f80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqkEE!u^3{~$2|%GOo-U3d7N?(1G~{Y_5OJA*I(_0% zraVvj6r-M*LXT7jAL4j?;3E=m$^F zGdWW47!ETWa|m1!KkfE!6)`c!=OPMBm3)c^Yz{yDG-u)srsoQ$58M(p@V&6@_HEt+ z60B#8dloaTxmxb?>?#N2rI2Q&TYDPz-rsnjI`?#OZrq-TAG!-(U%TmDeE;>L*!vOJ mfAt<)^VxO5sz=}duVb%TVcO~SWotOl{S2P2elF{r5}E)>;dE61 diff --git a/mods/maptools/textures/maptools_super_apple_top.png b/mods/maptools/textures/maptools_super_apple_top.png deleted file mode 100644 index 4d4dbc056e1913768f70134e28a6bf551b87216b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 498 zcmV{Ut&2O5LW0q`a zv=Id$>4dnxgUhon0QI^&*J}AI;MYCiTY+p=^8M`^$0rfegE#=`xRfTB8%?L Date: Thu, 15 Jan 2015 19:12:20 +0100 Subject: [PATCH 24/39] Moreblocks' update - Moreblocks' update to use last version's nodes and features --- mods/moreblocks/{LICENSE.txt => LICENSE.md} | 7 +- mods/moreblocks/README.md | 11 + mods/moreblocks/README.txt | 12 - mods/moreblocks/aliases.lua | 21 +- mods/moreblocks/circular_saw.lua | 10 +- mods/moreblocks/config.lua | 7 + mods/moreblocks/crafting.lua | 7 +- mods/moreblocks/depends.txt | 4 +- mods/moreblocks/init.lua | 23 +- mods/moreblocks/locale/de.txt | 0 mods/moreblocks/locale/es.txt | 0 mods/moreblocks/locale/fr.txt | 0 mods/moreblocks/locale/template.txt | 0 mods/moreblocks/models/moreblocks_slope.obj | 21 + .../models/moreblocks_slope_half.obj | 23 + .../models/moreblocks_slope_half_raised.obj | 26 + .../models/moreblocks_slope_inner.obj | 26 + .../models/moreblocks_slope_inner_half.obj | 28 ++ .../moreblocks_slope_inner_half_raised.obj | 31 ++ .../models/moreblocks_slope_outer.obj | 18 + .../models/moreblocks_slope_outer_cut.obj | 19 + .../moreblocks_slope_outer_cut_half.obj | 20 + ...moreblocks_slope_outer_cut_half_raised.obj | 23 + .../models/moreblocks_slope_outer_half.obj | 22 + .../moreblocks_slope_outer_half_raised.obj | 27 ++ mods/moreblocks/nodes.lua | 14 +- mods/moreblocks/ownership.lua | 6 + mods/moreblocks/redefinitions.lua | 12 + mods/moreblocks/stairsplus/API.md | 3 +- mods/moreblocks/stairsplus/aliases.lua | 8 + mods/moreblocks/stairsplus/conversion.lua | 7 + mods/moreblocks/stairsplus/init.lua | 19 +- mods/moreblocks/stairsplus/microblocks.lua | 15 +- mods/moreblocks/stairsplus/panels.lua | 15 +- mods/moreblocks/stairsplus/registrations.lua | 11 +- mods/moreblocks/stairsplus/slabs.lua | 21 +- mods/moreblocks/stairsplus/slopes.lua | 459 ++++++++++++++++++ mods/moreblocks/stairsplus/stairs.lua | 21 +- mods/moreblocks/textures/default_brick.png | Bin .../textures/default_fence_overlay.png | Bin mods/moreblocks/textures/invisible.png | Bin .../textures/moreblocks_cactus_brick.png | Bin .../textures/moreblocks_cactus_checker.png | Bin .../moreblocks_circle_stone_bricks.png | Bin .../moreblocks_circular_saw_bottom.png | Bin .../textures/moreblocks_circular_saw_side.png | Bin .../textures/moreblocks_circular_saw_top.png | Bin .../textures/moreblocks_clean_glass.png | Bin .../textures/moreblocks_coal_checker.png | Bin .../textures/moreblocks_coal_glass.png | Bin .../moreblocks_coal_glass_stairsplus.png | Bin .../textures/moreblocks_coal_stone.png | Bin .../textures/moreblocks_coal_stone_bricks.png | Bin .../textures/moreblocks_empty_bookshelf.png | Bin .../textures/moreblocks_fence_jungle_wood.png | Bin .../textures/moreblocks_fence_wood.png | Bin mods/moreblocks/textures/moreblocks_glass.png | Bin .../textures/moreblocks_glass_stairsplus.png | Bin .../textures/moreblocks_glow_glass.png | Bin .../moreblocks_glow_glass_stairsplus.png | Bin .../textures/moreblocks_grey_bricks.png | Bin .../textures/moreblocks_iron_checker.png | Bin .../textures/moreblocks_iron_glass.png | Bin .../moreblocks_iron_glass_stairsplus.png | Bin .../textures/moreblocks_iron_stone.png | Bin .../textures/moreblocks_iron_stone_bricks.png | Bin .../textures/moreblocks_junglestick.png | Bin .../moreblocks_obsidian_glass_stairsplus.png | Bin .../textures/moreblocks_plankstone.png | Bin .../textures/moreblocks_plankstone_2.png | Bin mods/moreblocks/textures/moreblocks_rope.png | Bin .../textures/moreblocks_split_stone_tile.png | Bin .../moreblocks_split_stone_tile_alt.png | Bin .../moreblocks_split_stone_tile_top.png | Bin .../textures/moreblocks_stone_tile.png | Bin .../textures/moreblocks_super_glow_glass.png | Bin ...moreblocks_super_glow_glass_stairsplus.png | Bin .../textures/moreblocks_sweeper.png | Bin mods/moreblocks/textures/moreblocks_tar.png | Bin .../textures/moreblocks_trap_glass.png | Bin .../textures/moreblocks_trap_glow_glass.png | Bin .../textures/moreblocks_trap_stone.png | Bin .../moreblocks_trap_super_glow_glass.png | Bin .../textures/moreblocks_tree_stairsplus.png | Bin .../textures/moreblocks_wood_tile.png | Bin .../textures/moreblocks_wood_tile_center.png | Bin .../textures/moreblocks_wood_tile_full.png | Bin .../textures/moreblocks_wood_tile_up.png | Bin 88 files changed, 915 insertions(+), 82 deletions(-) rename mods/moreblocks/{LICENSE.txt => LICENSE.md} (71%) mode change 100755 => 100644 create mode 100644 mods/moreblocks/README.md delete mode 100755 mods/moreblocks/README.txt mode change 100755 => 100644 mods/moreblocks/aliases.lua mode change 100755 => 100644 mods/moreblocks/circular_saw.lua mode change 100755 => 100644 mods/moreblocks/config.lua mode change 100755 => 100644 mods/moreblocks/crafting.lua mode change 100755 => 100644 mods/moreblocks/depends.txt mode change 100755 => 100644 mods/moreblocks/init.lua mode change 100755 => 100644 mods/moreblocks/locale/de.txt mode change 100755 => 100644 mods/moreblocks/locale/es.txt mode change 100755 => 100644 mods/moreblocks/locale/fr.txt mode change 100755 => 100644 mods/moreblocks/locale/template.txt create mode 100644 mods/moreblocks/models/moreblocks_slope.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_half.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_half_raised.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_inner.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_inner_half.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_half.obj create mode 100644 mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj mode change 100755 => 100644 mods/moreblocks/nodes.lua mode change 100755 => 100644 mods/moreblocks/ownership.lua mode change 100755 => 100644 mods/moreblocks/redefinitions.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/API.md mode change 100755 => 100644 mods/moreblocks/stairsplus/aliases.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/conversion.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/init.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/microblocks.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/panels.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/registrations.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/slabs.lua create mode 100644 mods/moreblocks/stairsplus/slopes.lua mode change 100755 => 100644 mods/moreblocks/stairsplus/stairs.lua mode change 100755 => 100644 mods/moreblocks/textures/default_brick.png mode change 100755 => 100644 mods/moreblocks/textures/default_fence_overlay.png mode change 100755 => 100644 mods/moreblocks/textures/invisible.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_cactus_brick.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_cactus_checker.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_circle_stone_bricks.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_circular_saw_bottom.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_circular_saw_side.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_circular_saw_top.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_clean_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_checker.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_stone.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_coal_stone_bricks.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_empty_bookshelf.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_fence_jungle_wood.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_fence_wood.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_glow_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_grey_bricks.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_checker.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_stone.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_iron_stone_bricks.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_junglestick.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_plankstone.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_plankstone_2.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_rope.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_split_stone_tile.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_split_stone_tile_top.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_stone_tile.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_super_glow_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_sweeper.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_tar.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_trap_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_trap_glow_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_trap_stone.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_tree_stairsplus.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_wood_tile.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_wood_tile_center.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_wood_tile_full.png mode change 100755 => 100644 mods/moreblocks/textures/moreblocks_wood_tile_up.png diff --git a/mods/moreblocks/LICENSE.txt b/mods/moreblocks/LICENSE.md old mode 100755 new mode 100644 similarity index 71% rename from mods/moreblocks/LICENSE.txt rename to mods/moreblocks/LICENSE.md index 726257de..45c5ff5a --- a/mods/moreblocks/LICENSE.txt +++ b/mods/moreblocks/LICENSE.md @@ -1,8 +1,9 @@ -+---- zlib/libpng license ----+ +zlib license +============ -Copyright (c) 2013-2014 Calinou and contributors +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. +**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: diff --git a/mods/moreblocks/README.md b/mods/moreblocks/README.md new file mode 100644 index 00000000..228ce97d --- /dev/null +++ b/mods/moreblocks/README.md @@ -0,0 +1,11 @@ +More Blocks +=========== + +More Blocks for Minetest , a free/libre infinite +world block sandbox game. + +To install, just clone this repository into your "mods" directory. + +More Blocks 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/moreblocks/README.txt b/mods/moreblocks/README.txt deleted file mode 100755 index aa99eda3..00000000 --- a/mods/moreblocks/README.txt +++ /dev/null @@ -1,12 +0,0 @@ -More Blocks -========== - -More Blocks for Minetest (http://minetest.net), a free and open source infinite -world block sandbox game. - -To install, just clone this repository into your "mods" directory. - -More Blocks code is under the zlib license, textures are under CC BY-SA 3.0 unported. - -Forum topic: http://forum.minetest.net/viewtopic.php?id=509 - diff --git a/mods/moreblocks/aliases.lua b/mods/moreblocks/aliases.lua old mode 100755 new mode 100644 index df820c33..15f7b6b2 --- a/mods/moreblocks/aliases.lua +++ b/mods/moreblocks/aliases.lua @@ -1,24 +1,28 @@ --- More Blocks aliases +--[[ +More Blocks: alias definitions +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +-- More Blocks aliases: minetest.register_alias("sweeper", "moreblocks:sweeper") minetest.register_alias("circular_saw", "moreblocks:circular_saw") minetest.register_alias("jungle_stick", "moreblocks:jungle_stick") --- Old block/item replacement - +-- Old block/item replacement: minetest.register_alias("moreblocks:oerkkiblock", "default:mossycobble") minetest.register_alias("moreblocks:screwdriver", "screwdriver:screwdriver") --- Node and item renaming - +-- Node and item renaming: minetest.register_alias("moreblocks:stone_bricks", "default:stonebrick") minetest.register_alias("moreblocks:stonebrick", "default:stonebrick") minetest.register_alias("moreblocks:junglewood", "default:junglewood") minetest.register_alias("moreblocks:jungle_wood", "default:junglewood") for _, t in pairs(circular_saw.names) do - minetest.register_alias("moreblocks:" ..t[1].. "_jungle_wood" ..t[2], - "moreblocks:" ..t[1].. "_junglewood" ..t[2]) + minetest.register_alias("moreblocks:" .. t[1] .. "_jungle_wood" .. t[2], + "moreblocks:" .. t[1] .. "_junglewood" .. t[2]) end minetest.register_alias("moreblocks:horizontaltree", "moreblocks:horizontal_tree") minetest.register_alias("moreblocks:horizontaljungletree", "moreblocks:horizontal_jungle_tree") @@ -51,8 +55,7 @@ minetest.register_alias("moreblocks:junglestick", "moreblocks:jungle_stick") minetest.register_alias("moreblocks:splitstonesquare","moreblocks:split_stone_tile") minetest.register_alias("moreblocks:allfacestree","moreblocks:all_faces_tree") --- ABM for horizontal trees (fix facedir). - +-- ABM for horizontal trees (fix facedir): local horizontal_tree_convert_facedir = {7, 12, 9, 18} minetest.register_abm({ diff --git a/mods/moreblocks/circular_saw.lua b/mods/moreblocks/circular_saw.lua old mode 100755 new mode 100644 index 2af5972a..98ddecbc --- a/mods/moreblocks/circular_saw.lua +++ b/mods/moreblocks/circular_saw.lua @@ -1,4 +1,12 @@ -local S = moreblocks.gettext +--[[ +More Blocks: circular saw + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib + circular_saw = {} circular_saw.known_stairs = setmetatable({}, { diff --git a/mods/moreblocks/config.lua b/mods/moreblocks/config.lua old mode 100755 new mode 100644 index e5db0861..d646dacd --- a/mods/moreblocks/config.lua +++ b/mods/moreblocks/config.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: configuration handling + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + moreblocks.config = {} local function getbool_default(setting, default) diff --git a/mods/moreblocks/crafting.lua b/mods/moreblocks/crafting.lua old mode 100755 new mode 100644 index 158d40a5..4429d9ae --- a/mods/moreblocks/crafting.lua +++ b/mods/moreblocks/crafting.lua @@ -1,4 +1,9 @@ --- Crafting +--[[ +More Blocks: crafting recipes + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] minetest.register_craft({ output = "default:stick", diff --git a/mods/moreblocks/depends.txt b/mods/moreblocks/depends.txt old mode 100755 new mode 100644 index 9207dab8..198fe8a6 --- a/mods/moreblocks/depends.txt +++ b/mods/moreblocks/depends.txt @@ -1,2 +1,2 @@ -default -intllib? +default +intllib? diff --git a/mods/moreblocks/init.lua b/mods/moreblocks/init.lua old mode 100755 new mode 100644 index a86a38ea..2919a308 --- a/mods/moreblocks/init.lua +++ b/mods/moreblocks/init.lua @@ -1,20 +1,22 @@ --[[ --- More Blocks (moreblocks) by Calinou --- Licensed under the zlib/ license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. +===================================================================== +** More Blocks ** +By Calinou, with the help of ShadowNinja and VanessaE. + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +===================================================================== --]] moreblocks = {} --- Load translation library if intllib is installed - -local S -- Load translation library if intllib is installed: -if (minetest.get_modpath("intllib")) then - dofile(minetest.get_modpath("intllib").."/intllib.lua") - S = intllib.Getter(minetest.get_current_modname()) +local S +if minetest.get_modpath("intllib") then + S = intllib.Getter() else S = function(s) return s end end -moreblocks.gettext = S +moreblocks.intllib = S local modpath = minetest.get_modpath("moreblocks") @@ -27,6 +29,5 @@ dofile(modpath .. "/crafting.lua") dofile(modpath .. "/aliases.lua") if minetest.setting_getbool("log_mods") then - print(S("[moreblocks] loaded.")) + minetest.log("action", S("[moreblocks] loaded.")) end - diff --git a/mods/moreblocks/locale/de.txt b/mods/moreblocks/locale/de.txt old mode 100755 new mode 100644 diff --git a/mods/moreblocks/locale/es.txt b/mods/moreblocks/locale/es.txt old mode 100755 new mode 100644 diff --git a/mods/moreblocks/locale/fr.txt b/mods/moreblocks/locale/fr.txt old mode 100755 new mode 100644 diff --git a/mods/moreblocks/locale/template.txt b/mods/moreblocks/locale/template.txt old mode 100755 new mode 100644 diff --git a/mods/moreblocks/models/moreblocks_slope.obj b/mods/moreblocks/models/moreblocks_slope.obj new file mode 100644 index 00000000..05c853b7 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_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/moreblocks/models/moreblocks_slope_half.obj b/mods/moreblocks/models/moreblocks_slope_half.obj new file mode 100644 index 00000000..bc96bb8b --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_half.obj @@ -0,0 +1,23 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_fronthalf_onetexture.blend' +# www.blender.org +mtllib slope_test_slope_long_fronthalf_onetexture.mtl +o Cube_Cube.002 +v 0.500000 -0.000000 0.500000 +v -0.500000 -0.000000 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.500000 +vt 0.000000 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/5 6/6 +f 2/1 5/3 3/4 +f 1/2 4/3 6/4 +f 2/5 1/6 6/3 5/4 diff --git a/mods/moreblocks/models/moreblocks_slope_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_half_raised.obj new file mode 100644 index 00000000..79e0dc01 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_half_raised.obj @@ -0,0 +1,26 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_backhalf_onetexture.blend' +# www.blender.org +mtllib slope_test_slope_long_backhalf_onetexture.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.500000 0.500000 +v -0.500000 0.000000 -0.500000 +v 0.500000 0.000000 -0.500000 +v 0.500000 0.500000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 1.000000 +usemtl None +s off +f 5/1 6/2 2/3 1/4 +f 6/5 7/2 3/3 2/4 +f 7/5 8/6 4/3 3/4 +f 8/1 5/6 1/3 4/4 +f 1/4 2/1 3/6 4/3 +f 8/6 7/3 6/4 5/1 diff --git a/mods/moreblocks/models/moreblocks_slope_inner.obj b/mods/moreblocks/models/moreblocks_slope_inner.obj new file mode 100644 index 00000000..68fc1700 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_inner.obj @@ -0,0 +1,26 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend' +# www.blender.org +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 +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/moreblocks/models/moreblocks_slope_inner_half.obj b/mods/moreblocks/models/moreblocks_slope_inner_half.obj new file mode 100644 index 00000000..6decaea3 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_inner_half.obj @@ -0,0 +1,28 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_short_onetexture.blend' +# www.blender.org +mtllib slope_test_icorner_half_short_onetexture.mtl +o Cube_Cube.000 +v 0.500000 -0.000000 0.500000 +v -0.500000 -0.000000 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.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/moreblocks/models/moreblocks_slope_inner_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj new file mode 100644 index 00000000..8aff6cab --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj @@ -0,0 +1,31 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_tall_onetexture.blend' +# www.blender.org +mtllib slope_test_icorner_half_tall_onetexture.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.000000 -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.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +usemtl None +s off +f 6/1 1/2 7/3 8/4 +f 2/1 1/2 5/4 +f 3/3 7/4 1/1 2/2 +f 1/2 6/3 9/4 +f 3/1 10/2 8/3 7/4 +f 8/3 10/4 5/5 6/2 +f 3/4 2/1 5/6 10/3 +l 1 4 +l 3 4 diff --git a/mods/moreblocks/models/moreblocks_slope_outer.obj b/mods/moreblocks/models/moreblocks_slope_outer.obj new file mode 100644 index 00000000..383c195f --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer.obj @@ -0,0 +1,18 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend' +# www.blender.org +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 +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/moreblocks/models/moreblocks_slope_outer_cut.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut.obj new file mode 100644 index 00000000..4608c69c --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_cut.obj @@ -0,0 +1,19 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_2_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_tall_2_onetexture.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 +vt 1.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +usemtl None +s off +f 4/1 1/2 3/3 +f 2/3 4/4 3/2 +f 3/2 1/3 2/4 +f 1/3 4/5 2/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj new file mode 100644 index 00000000..e4be8825 --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj @@ -0,0 +1,20 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_2_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_short_2_onetexture.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.000000 0.500000 +vt 1.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 0.000000 0.500000 +vt 0.000000 1.000000 +vt 0.500000 1.000000 +usemtl None +s off +f 4/1 1/2 3/3 +f 2/3 4/4 3/2 +f 3/2 1/3 2/5 +f 1/3 4/6 2/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj new file mode 100644 index 00000000..65a3b8ac --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj @@ -0,0 +1,23 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_3_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_short_3_onetexture.mtl +o Cube_Cube.002 +v -0.500000 -0.000000 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 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.500000 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 4/5 3/2 5/3 6/6 +f 2/5 5/3 3/4 +f 1/2 4/3 6/4 +f 2/3 1/6 6/1 5/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_half.obj new file mode 100644 index 00000000..0c56e26a --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_half.obj @@ -0,0 +1,22 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_1_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_short_1_onetexture.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.000000 0.500000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 0.500000 +vt 0.000000 0.500000 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 5/5 1/3 4/4 +f 3/4 5/6 4/3 +f 2/4 5/2 3/3 +f 1/4 5/1 2/3 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj new file mode 100644 index 00000000..e4fa3d1f --- /dev/null +++ b/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj @@ -0,0 +1,27 @@ +# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_3_onetexture.blend' +# www.blender.org +mtllib slope_test_corner_pyramid_tall_3_onetexture.mtl +o Cube_Cube.002 +v -0.500000 -0.000000 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.500000 +v -0.500000 -0.000000 -0.500000 +vt 0.000000 0.500000 +vt 0.000000 0.000000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 1.000000 0.500000 +usemtl None +s off +f 1/1 2/2 3/3 4/4 +f 4/5 3/2 5/3 6/6 +f 8/3 4/5 6/2 +f 1/6 8/1 7/2 2/3 +f 4/5 8/3 1/4 +f 6/1 5/2 7/3 8/6 +f 5/5 3/2 2/3 7/4 diff --git a/mods/moreblocks/nodes.lua b/mods/moreblocks/nodes.lua old mode 100755 new mode 100644 index 5efda8f8..d3120c9a --- a/mods/moreblocks/nodes.lua +++ b/mods/moreblocks/nodes.lua @@ -1,4 +1,11 @@ -local S = moreblocks.gettext +--[[ +More Blocks: node definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib local sound_wood = default.node_sound_wood_defaults() local sound_stone = default.node_sound_stone_defaults() @@ -116,6 +123,11 @@ local nodes = { groups = {cracky = 2}, sounds = sound_stone, }, + ["cobble_compressed"] = { + description = S("Compressed Cobblestone"), + groups = {cracky = 1}, + sounds = sound_stone, + }, ["plankstone"] = { description = S("Plankstone"), groups = {cracky = 3}, diff --git a/mods/moreblocks/ownership.lua b/mods/moreblocks/ownership.lua old mode 100755 new mode 100644 index 9cd4cb30..1c2431ba --- a/mods/moreblocks/ownership.lua +++ b/mods/moreblocks/ownership.lua @@ -1,3 +1,9 @@ +--[[ +More Blocks: ownership handling + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] local S = moreblocks.gettext diff --git a/mods/moreblocks/redefinitions.lua b/mods/moreblocks/redefinitions.lua old mode 100755 new mode 100644 index 4db169b1..a6498f16 --- a/mods/moreblocks/redefinitions.lua +++ b/mods/moreblocks/redefinitions.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: redefinitions of default stuff + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + -- Redefinitions of some default crafting recipes: minetest.register_craft({ @@ -71,6 +78,11 @@ minetest.override_item("default:papyrus", { sunlight_propagates = true, }) +minetest.override_item("default:fence_wood", { + paramtype = "light", + sunlight_propagates = true, +}) + minetest.override_item("default:junglegrass", { paramtype = "light", sunlight_propagates = true, diff --git a/mods/moreblocks/stairsplus/API.md b/mods/moreblocks/stairsplus/API.md old mode 100755 new mode 100644 index a98ec81e..2db0f2b3 --- a/mods/moreblocks/stairsplus/API.md +++ b/mods/moreblocks/stairsplus/API.md @@ -1,6 +1,5 @@ API documentation for Stairs+ -================================ -- - - - - - - - - - - - - - - - +============================= * `stairsplus:register_all(modname, subname, recipeitem, fields)` Registers a stair, slab, panel, microblock, and any other types of diff --git a/mods/moreblocks/stairsplus/aliases.lua b/mods/moreblocks/stairsplus/aliases.lua old mode 100755 new mode 100644 index c92df483..c235d342 --- a/mods/moreblocks/stairsplus/aliases.lua +++ b/mods/moreblocks/stairsplus/aliases.lua @@ -1,3 +1,9 @@ +--[[ +More Blocks: alias definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] local function register_stairsplus_alias(modname, origname, newname) minetest.register_alias(modname.. ":slab_" ..origname, "moreblocks:slab_" ..newname) @@ -33,12 +39,14 @@ end register_stairsplus_alias("stairsplus", "stone", "stone") register_stairsplus_alias("stairsplus", "wood", "wood") +register_stairsplus_alias("stairsplus", "pinewood", "pinewood") register_stairsplus_alias("stairsplus", "cobble", "cobble") register_stairsplus_alias("stairsplus", "brick", "brick") register_stairsplus_alias("stairsplus", "sandstone", "sandstone") register_stairsplus_alias("stairsplus", "glass", "glass") register_stairsplus_alias("stairsplus", "tree", "tree") register_stairsplus_alias("stairsplus", "jungletree", "jungletree") +register_stairsplus_alias("stairsplus", "pinetree", "pinetree") register_stairsplus_alias("stairsplus", "desert_stone", "desert_stone") register_stairsplus_alias("stairsplus", "steelblock", "steelblock") register_stairsplus_alias("stairsplus", "mossycobble", "mossycobble") diff --git a/mods/moreblocks/stairsplus/conversion.lua b/mods/moreblocks/stairsplus/conversion.lua old mode 100755 new mode 100644 index fda30c7b..13966b66 --- a/mods/moreblocks/stairsplus/conversion.lua +++ b/mods/moreblocks/stairsplus/conversion.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: conversion + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + -- Function to convert all stairs/slabs/etc nodes from -- inverted, wall, etc to regular + 6d facedir diff --git a/mods/moreblocks/stairsplus/init.lua b/mods/moreblocks/stairsplus/init.lua old mode 100755 new mode 100644 index ae09b7d3..ffec1b7f --- a/mods/moreblocks/stairsplus/init.lua +++ b/mods/moreblocks/stairsplus/init.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: Stairs+ + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + -- Nodes will be called :{stair,slab,panel,micro}_ local modpath = minetest.get_modpath("moreblocks").. "/stairsplus" @@ -18,6 +25,7 @@ function stairsplus:register_all(modname, subname, recipeitem, fields) end self:register_stair(modname, subname, recipeitem, fields) self:register_slab (modname, subname, recipeitem, fields) + self:register_slope(modname, subname, recipeitem, fields) self:register_panel(modname, subname, recipeitem, fields) self:register_micro(modname, subname, recipeitem, fields) -- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps. @@ -36,8 +44,9 @@ end -- dofile(modpath.. "/aliases.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. -- dofile(modpath.. "/conversion.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. -dofile(modpath.. "/stairs.lua") -dofile(modpath.. "/slabs.lua") -dofile(modpath.. "/panels.lua") -dofile(modpath.. "/microblocks.lua") -dofile(modpath.. "/registrations.lua") +dofile(modpath .. "/stairs.lua") +dofile(modpath .. "/slabs.lua") +dofile(modpath .. "/slopes.lua") +dofile(modpath .. "/panels.lua") +dofile(modpath .. "/microblocks.lua") +dofile(modpath .. "/registrations.lua") diff --git a/mods/moreblocks/stairsplus/microblocks.lua b/mods/moreblocks/stairsplus/microblocks.lua old mode 100755 new mode 100644 index f88ed12e..8d52c4a2 --- a/mods/moreblocks/stairsplus/microblocks.lua +++ b/mods/moreblocks/stairsplus/microblocks.lua @@ -1,10 +1,11 @@ -local S -- Load translation library if intllib is installed: -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 +--[[ +More Blocks: microblock definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib -- Node will be called :micro_ diff --git a/mods/moreblocks/stairsplus/panels.lua b/mods/moreblocks/stairsplus/panels.lua old mode 100755 new mode 100644 index 73b283ed..2220fe42 --- a/mods/moreblocks/stairsplus/panels.lua +++ b/mods/moreblocks/stairsplus/panels.lua @@ -1,10 +1,11 @@ -local S -- Load translation library if intllib is installed: -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 +--[[ +More Blocks: panel definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib -- Node will be called :panel_ diff --git a/mods/moreblocks/stairsplus/registrations.lua b/mods/moreblocks/stairsplus/registrations.lua old mode 100755 new mode 100644 index cc22d333..7b38b13b --- a/mods/moreblocks/stairsplus/registrations.lua +++ b/mods/moreblocks/stairsplus/registrations.lua @@ -1,3 +1,10 @@ +--[[ +More Blocks: registrations + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + local default_nodes = { -- Default stairs/slabs/panels/microblocks: "stone", "cobble", @@ -10,12 +17,14 @@ local default_nodes = { -- Default stairs/slabs/panels/microblocks: "bronzeblock", "diamondblock", "desert_stone", --- "desert_cobble", + "desert_cobble", "glass", "tree", "wood", "jungletree", "junglewood", + "pinetree", + "pinewood", "obsidian", "obsidian_glass", "stonebrick", diff --git a/mods/moreblocks/stairsplus/slabs.lua b/mods/moreblocks/stairsplus/slabs.lua old mode 100755 new mode 100644 index 9c31745d..68ba5200 --- a/mods/moreblocks/stairsplus/slabs.lua +++ b/mods/moreblocks/stairsplus/slabs.lua @@ -1,10 +1,11 @@ -local S -- Load translation library if intllib is installed: -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 +--[[ +More Blocks: slab definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib -- Node will be called :slab_ @@ -75,11 +76,11 @@ function stairsplus:register_slab(modname, subname, recipeitem, fields) end def.description = desc if fields.drop then - def.drop = modname.. ":slab_" ..fields.drop..alternate + def.drop = modname.. ":slab_" .. fields.drop .. alternate end - minetest.register_node(":" ..modname.. ":slab_" ..subname..alternate, def) + minetest.register_node(":" .. modname .. ":slab_" .. subname .. alternate, def) end - minetest.register_alias("stairs:slab_" ..subname, modname.. ":slab_" ..subname) + minetest.register_alias("stairs:slab_" .. subname, modname .. ":slab_" .. subname) -- Some saw-less recipes: diff --git a/mods/moreblocks/stairsplus/slopes.lua b/mods/moreblocks/stairsplus/slopes.lua new file mode 100644 index 00000000..3a169060 --- /dev/null +++ b/mods/moreblocks/stairsplus/slopes.lua @@ -0,0 +1,459 @@ +--[[ +More Blocks: slope definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib + +local box_slope = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.25, -0.25, 0.5, 0, 0.5}, + {-0.5, 0, 0, 0.5, 0.25, 0.5}, + {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5} + } +} + +local box_slope_half = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, + {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, + {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, + {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, + } +} + +local box_slope_half_raised = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, + {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, + {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, + {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, + } +} + +--============================================================== + +local box_slope_inner = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.5, -0.25, 0.5, 0, 0.5}, + {-0.5, -0.5, -0.5, 0.25, 0, 0.5}, + {-0.5, 0, -0.5, 0, 0.25, 0.5}, + {-0.5, 0, 0, 0.5, 0.25, 0.5}, + {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}, + {-0.5, 0.25, -0.5, -0.25, 0.5, 0.5}, + } +} + +local box_slope_inner_half = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, + {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, + {-0.5, -0.375, -0.5, 0.25, -0.25, 0.5}, + {-0.5, -0.25, -0.5, 0, -0.125, 0.5}, + {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, + {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, + {-0.5, -0.125, -0.5, -0.25, 0, 0.5}, + } +} + +local box_slope_inner_half_raised = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, + {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, + {-0.5, 0.125, -0.5, 0.25, 0.25, 0.5}, + {-0.5, 0.25, -0.5, 0, 0.375, 0.5}, + {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, + {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, + {-0.5, 0.375, -0.5, -0.25, 0.5, 0.5}, + } +} + +--============================================================== + +local box_slope_outer = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, + {-0.5, -0.25, -0.25, 0.25, 0, 0.5}, + {-0.5, 0, 0, 0, 0.25, 0.5}, + {-0.5, 0.25, 0.25, -0.25, 0.5, 0.5} + } +} + +local box_slope_outer_half = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, + {-0.5, -0.375, -0.25, 0.25, -0.25, 0.5}, + {-0.5, -0.25, 0, 0, -0.125, 0.5}, + {-0.5, -0.125, 0.25, -0.25, 0, 0.5} + } +} + +local box_slope_outer_half_raised = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, + {-0.5, 0.125, -0.25, 0.25, 0.25, 0.5}, + {-0.5, 0.25, 0, 0, 0.375, 0.5}, + {-0.5, 0.375, 0.25, -0.25, 0.5, 0.5} + } +} + +-- Node will be called :slope_ + +function register_slope(modname, subname, recipeitem, groups, images, description, drop, light) + return stairsplus:register_slope(modname, subname, recipeitem, { + groups = groups, + tiles = images, + description = description, + drop = drop, + light_source = light, + sounds = default.node_sound_stone_defaults(), + }) +end + +function stairsplus:register_slope(modname, subname, recipeitem, fields) + local defs = { + [""] = { + mesh = "moreblocks_slope.obj", + collision_box = box_slope, + selection_box = box_slope, + + }, + ["_half"] = { + mesh = "moreblocks_slope_half.obj", + collision_box = box_slope_half, + selection_box = box_slope_half, + }, + ["_half_raised"] = { + mesh = "moreblocks_slope_half_raised.obj", + collision_box = box_slope_half_raised, + selection_box = box_slope_half_raised, + }, + +--============================================================== + + ["_inner"] = { + mesh = "moreblocks_slope_inner.obj", + collision_box = box_slope_inner, + selection_box = box_slope_inner, + }, + ["_inner_half"] = { + mesh = "moreblocks_slope_inner_half.obj", + collision_box = box_slope_inner_half, + selection_box = box_slope_inner_half, + }, + ["_inner_half_raised"] = { + mesh = "moreblocks_slope_inner_half_raised.obj", + collision_box = box_slope_inner_half_raised, + selection_box = box_slope_inner_half_raised, + }, + +--============================================================== + + ["_outer"] = { + mesh = "moreblocks_slope_outer.obj", + collision_box = box_slope_outer, + selection_box = box_slope_outer, + }, + ["_outer_half"] = { + mesh = "moreblocks_slope_outer_half.obj", + collision_box = box_slope_outer_half, + selection_box = box_slope_outer_half, + }, + ["_outer_half_raised"] = { + mesh = "moreblocks_slope_outer_half_raised.obj", + collision_box = box_slope_outer_half_raised, + selection_box = box_slope_outer_half_raised, + }, + +--============================================================== + + ["_outer_cut"] = { + mesh = "moreblocks_slope_outer_cut.obj", + collision_box = box_slope_outer, + selection_box = box_slope_outer, + }, + ["_outer_cut_half"] = { + mesh = "moreblocks_slope_outer_cut_half.obj", + collision_box = box_slope_outer_half, + selection_box = box_slope_outer_half, + }, + ["_outer_cut_half_raised"] = { + mesh = "moreblocks_slope_outer_cut_half_raised.obj", + collision_box = box_slope_outer_half_raised, + selection_box = box_slope_outer_half_raised, + }, + } + + local desc = S("%s Slope"):format(fields.description) + for alternate, def in pairs(defs) do + def.drawtype = "mesh" + def.paramtype = "light" + def.paramtype2 = "facedir" + def.on_place = minetest.rotate_node + for k, v in pairs(fields) do + def[k] = v + end + def.description = desc + if fields.drop then + def.drop = modname.. ":slope_" ..fields.drop..alternate + end + minetest.register_node(":" ..modname.. ":slope_" ..subname..alternate, def) + end + + -- Some saw-less recipes: + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. " 7", + recipe = { + {modname .. ":panel_" .. subname, "", ""}, + {recipeitem, modname .. ":panel_" .. subname, ""}, + {recipeitem, recipeitem, modname .. ":panel_" .. subname}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. " 7", + recipe = { + {"", "", modname .. ":panel_" .. subname}, + {"", modname .. ":panel_" .. subname, recipeitem}, + {modname .. ":panel_" .. subname, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_half 10", + recipe = { + {modname .. ":panel_" .. subname, "", ""}, + {recipeitem, recipeitem, modname .. ":panel_" .. subname}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_half 10", + recipe = { + {"", "", modname .. ":panel_" .. subname}, + {modname .. ":panel_" .. subname, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_half_raised 7", + recipe = { + {modname .. ":panel_" .. subname, "", ""}, + {recipeitem, recipeitem, modname .. ":panel_" .. subname}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_half_raised 7", + recipe = { + {"", "", modname .. ":panel_" .. subname}, + {modname .. ":panel_" .. subname, recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + +--===================================================== Inner == + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner 7", + recipe = { + {modname .. ":stair_" .. subname .. "_half", "", ""}, + {recipeitem, modname .. ":stair_" .. subname .. "_half", ""}, + {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner 7", + recipe = { + {"", "", modname .. ":stair_" .. subname .. "_half"}, + {"", modname .. ":stair_" .. subname .. "_half", recipeitem}, + {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner_half 10", + recipe = { + {modname .. ":stair_" .. subname .. "_half", "", ""}, + {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner_half 10", + recipe = { + {"", "", modname .. ":stair_" .. subname .. "_half"}, + {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner_half_raised 7", + recipe = { + {modname .. ":stair_" .. subname .. "_half", "", ""}, + {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_inner_half_raised 7", + recipe = { + {"", "", modname .. ":stair_" .. subname .. "_half"}, + {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + +--===================================================== Outer == + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer 7", + recipe = { + {modname .. ":micro_" .. subname, "", ""}, + {recipeitem, modname .. ":micro_" .. subname, ""}, + {recipeitem, recipeitem, modname .. ":micro_" .. subname}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer 7", + recipe = { + {"", "", modname .. ":micro_" .. subname}, + {"", modname .. ":micro_" .. subname, recipeitem}, + {modname .. ":micro_" .. subname, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer_half 10", + recipe = { + {modname .. ":micro_" .. subname, "", ""}, + {recipeitem, recipeitem, modname .. ":micro_" .. subname}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer_half 10", + recipe = { + {"", "", modname .. ":micro_" .. subname}, + {modname .. ":micro_" .. subname, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer_half_raised 7", + recipe = { + {modname .. ":micro_" .. subname, "", ""}, + {recipeitem, recipeitem, modname .. ":micro_" .. subname}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + + minetest.register_craft({ + output = modname .. ":slope_" .. subname .. "_outer_half_raised 7", + recipe = { + {"", "", modname .. ":micro_" .. subname}, + {modname .. ":micro_" .. subname, recipeitem, recipeitem}, + {recipeitem, recipeitem, recipeitem}, + }, + }) + +--================================================= Shapeless == + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":slope_" .. subname, modname .. ":slope_" .. subname}, + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":slope_" .. subname .. "_outer_cut", modname .. ":slope_" .. subname .. "_outer_cut"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half_raised"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = recipeitem, + recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", + modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slab_" .. subname, + recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_half_raised", + recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", + modname .. ":slope_" .. subname .. "_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_half_raised", + recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_inner_half_raised", + recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_inner_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_half_raised", + recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_cut_half_raised", + recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_cut_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_cut", + recipe = {modname .. ":slope_" .. subname .. "_outer"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_cut_half", + recipe = {modname .. ":slope_" .. subname .. "_outer_half"}, + }) + + minetest.register_craft({ + type = "shapeless", + output = modname .. ":slope_" .. subname .. "_outer_cut_half_raised", + recipe = {modname .. ":slope_" .. subname .. "_outer_half_raised"}, + }) +end diff --git a/mods/moreblocks/stairsplus/stairs.lua b/mods/moreblocks/stairsplus/stairs.lua old mode 100755 new mode 100644 index a4f54e39..a93cda08 --- a/mods/moreblocks/stairsplus/stairs.lua +++ b/mods/moreblocks/stairsplus/stairs.lua @@ -1,10 +1,11 @@ -local S -- Load translation library if intllib is installed: -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 +--[[ +More Blocks: stair definitions + +Copyright (c) 2011-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = moreblocks.intllib -- Node will be called :stair_ @@ -116,11 +117,11 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields) end def.description = desc if fields.drop then - def.drop = modname.. ":stair_" ..fields.drop..alternate + def.drop = modname .. ":stair_" .. fields.drop .. alternate end - minetest.register_node(":" ..modname.. ":stair_" ..subname..alternate, def) + minetest.register_node(":" .. modname .. ":stair_" .. subname .. alternate, def) end - minetest.register_alias(":stairs:stair_" ..subname, modname.. ":stair_" ..subname) + minetest.register_alias("stairs:stair_" .. subname, modname .. ":stair_" .. subname) -- Some saw-less recipes: diff --git a/mods/moreblocks/textures/default_brick.png b/mods/moreblocks/textures/default_brick.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/default_fence_overlay.png b/mods/moreblocks/textures/default_fence_overlay.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/invisible.png b/mods/moreblocks/textures/invisible.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_cactus_brick.png b/mods/moreblocks/textures/moreblocks_cactus_brick.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_cactus_checker.png b/mods/moreblocks/textures/moreblocks_cactus_checker.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png b/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png b/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_side.png b/mods/moreblocks/textures/moreblocks_circular_saw_side.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_top.png b/mods/moreblocks/textures/moreblocks_circular_saw_top.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_clean_glass.png b/mods/moreblocks/textures/moreblocks_clean_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_checker.png b/mods/moreblocks/textures/moreblocks_coal_checker.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_glass.png b/mods/moreblocks/textures/moreblocks_coal_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_stone.png b/mods/moreblocks/textures/moreblocks_coal_stone.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png b/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_empty_bookshelf.png b/mods/moreblocks/textures/moreblocks_empty_bookshelf.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png b/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_fence_wood.png b/mods/moreblocks/textures/moreblocks_fence_wood.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_glass.png b/mods/moreblocks/textures/moreblocks_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_glow_glass.png b/mods/moreblocks/textures/moreblocks_glow_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_grey_bricks.png b/mods/moreblocks/textures/moreblocks_grey_bricks.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_checker.png b/mods/moreblocks/textures/moreblocks_iron_checker.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_glass.png b/mods/moreblocks/textures/moreblocks_iron_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_stone.png b/mods/moreblocks/textures/moreblocks_iron_stone.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png b/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_junglestick.png b/mods/moreblocks/textures/moreblocks_junglestick.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_plankstone.png b/mods/moreblocks/textures/moreblocks_plankstone.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_plankstone_2.png b/mods/moreblocks/textures/moreblocks_plankstone_2.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_rope.png b/mods/moreblocks/textures/moreblocks_rope.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile.png b/mods/moreblocks/textures/moreblocks_split_stone_tile.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_stone_tile.png b/mods/moreblocks/textures/moreblocks_stone_tile.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_super_glow_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_sweeper.png b/mods/moreblocks/textures/moreblocks_sweeper.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_tar.png b/mods/moreblocks/textures/moreblocks_tar.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_trap_glass.png b/mods/moreblocks/textures/moreblocks_trap_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_trap_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_glow_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_trap_stone.png b/mods/moreblocks/textures/moreblocks_trap_stone.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_tree_stairsplus.png b/mods/moreblocks/textures/moreblocks_tree_stairsplus.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile.png b/mods/moreblocks/textures/moreblocks_wood_tile.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_center.png b/mods/moreblocks/textures/moreblocks_wood_tile_center.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_full.png b/mods/moreblocks/textures/moreblocks_wood_tile_full.png old mode 100755 new mode 100644 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_up.png b/mods/moreblocks/textures/moreblocks_wood_tile_up.png old mode 100755 new mode 100644 From dde4d34ab465f5acb5685e127eb68444b4f26beb Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 19:57:57 +0100 Subject: [PATCH 25/39] Sent last global variables' patchs - There is, from now on, no more known global variables error in the repository! (not 100% guaranteed) --- mods/chesttools/init.lua | 2 +- mods/fences/init.lua | 3 ++- mods/snow/src/nodes.lua | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/mods/chesttools/init.lua b/mods/chesttools/init.lua index e2dcb6b2..fa219361 100755 --- a/mods/chesttools/init.lua +++ b/mods/chesttools/init.lua @@ -58,7 +58,7 @@ chesttools.may_use = function( pos, player ) local meta = minetest.get_meta( pos ); local owner = meta:get_string( 'owner' ) -- the owner can access the chest - if( onwer == name or owner == "" ) then + if( owner == name or owner == "" ) then return true; end -- the shared function only kicks in if the area is protected diff --git a/mods/fences/init.lua b/mods/fences/init.lua index 82c8da9e..8ab786c5 100755 --- a/mods/fences/init.lua +++ b/mods/fences/init.lua @@ -71,6 +71,7 @@ end local p0 = {-2/16, -1/2, -2/16, 2/16, 1/2, 2/16} local p1 = {-2/16, 1/2, -2/16, -2/16, 1/2+8/16, -2/16} local p2 = {-2/16, 1/2, 2/16, -2/16, 1/2+8/16, 2/16} +local p3 = {0, 0, 0, 0, 0, 0} local p4 = {2/16, 1/2, -2/16, 2/16, 1/2+8/16, -2/16} local p5 = {2/16, 1/2, 2/16, 2/16, 1/2+8/16, 2/16} @@ -532,7 +533,7 @@ minetest.register_node("fences:fence_wood_13", { --right(2)+top(11)=13 type = "fixed", fixed = { p0,p1,p2,p3,p4,p5, - z2,z22,x1,x12, + z2,z22,x1,x22, bz1,bz11,bx1,bx11, } }, diff --git a/mods/snow/src/nodes.lua b/mods/snow/src/nodes.lua index cd6d02f8..a6113c20 100755 --- a/mods/snow/src/nodes.lua +++ b/mods/snow/src/nodes.lua @@ -66,7 +66,7 @@ end --Christmas easter egg minetest.register_on_mapgen_init( function() - if skins then + if minetest.get_modpath("skins") ~= nil then skins.add("character_snow_man") end end From d5e41c3391361c3238383e8f69e2da825ca69d6e Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 21:06:57 +0100 Subject: [PATCH 26/39] Reverted moreblocks and maptools updates --- mods/maptools/{LICENSE.md => LICENSE.txt} | 7 +- mods/maptools/NODES.md | 45 -- mods/maptools/README.md | 11 - mods/maptools/README.txt | 22 + mods/maptools/_README.txt | 53 ++ mods/maptools/aliases.lua | 9 +- mods/maptools/config.lua | 29 - mods/maptools/craftitems.lua | 47 -- mods/maptools/default_nodes.lua | 87 ++- mods/maptools/init.lua | 583 +++++++++++++++++- mods/maptools/nodes.lua | 429 ------------- .../textures/maptools_super_apple_bottom.png | Bin 0 -> 295 bytes .../textures/maptools_super_apple_side.png | Bin 0 -> 295 bytes .../textures/maptools_super_apple_top.png | Bin 0 -> 498 bytes mods/maptools/tools.lua | 61 -- mods/moreblocks/{LICENSE.md => LICENSE.txt} | 7 +- mods/moreblocks/README.md | 11 - mods/moreblocks/README.txt | 12 + mods/moreblocks/aliases.lua | 21 +- mods/moreblocks/circular_saw.lua | 10 +- mods/moreblocks/config.lua | 7 - mods/moreblocks/crafting.lua | 7 +- mods/moreblocks/depends.txt | 4 +- mods/moreblocks/init.lua | 23 +- mods/moreblocks/locale/de.txt | 0 mods/moreblocks/locale/es.txt | 0 mods/moreblocks/locale/fr.txt | 0 mods/moreblocks/locale/template.txt | 0 mods/moreblocks/models/moreblocks_slope.obj | 21 - .../models/moreblocks_slope_half.obj | 23 - .../models/moreblocks_slope_half_raised.obj | 26 - .../models/moreblocks_slope_inner.obj | 26 - .../models/moreblocks_slope_inner_half.obj | 28 - .../moreblocks_slope_inner_half_raised.obj | 31 - .../models/moreblocks_slope_outer.obj | 18 - .../models/moreblocks_slope_outer_cut.obj | 19 - .../moreblocks_slope_outer_cut_half.obj | 20 - ...moreblocks_slope_outer_cut_half_raised.obj | 23 - .../models/moreblocks_slope_outer_half.obj | 22 - .../moreblocks_slope_outer_half_raised.obj | 27 - mods/moreblocks/nodes.lua | 14 +- mods/moreblocks/ownership.lua | 6 - mods/moreblocks/redefinitions.lua | 12 - mods/moreblocks/stairsplus/API.md | 3 +- mods/moreblocks/stairsplus/aliases.lua | 8 - mods/moreblocks/stairsplus/conversion.lua | 7 - mods/moreblocks/stairsplus/init.lua | 19 +- mods/moreblocks/stairsplus/microblocks.lua | 15 +- mods/moreblocks/stairsplus/panels.lua | 15 +- mods/moreblocks/stairsplus/registrations.lua | 11 +- mods/moreblocks/stairsplus/slabs.lua | 21 +- mods/moreblocks/stairsplus/slopes.lua | 459 -------------- mods/moreblocks/stairsplus/stairs.lua | 21 +- mods/moreblocks/textures/default_brick.png | Bin .../textures/default_fence_overlay.png | Bin mods/moreblocks/textures/invisible.png | Bin .../textures/moreblocks_cactus_brick.png | Bin .../textures/moreblocks_cactus_checker.png | Bin .../moreblocks_circle_stone_bricks.png | Bin .../moreblocks_circular_saw_bottom.png | Bin .../textures/moreblocks_circular_saw_side.png | Bin .../textures/moreblocks_circular_saw_top.png | Bin .../textures/moreblocks_clean_glass.png | Bin .../textures/moreblocks_coal_checker.png | Bin .../textures/moreblocks_coal_glass.png | Bin .../moreblocks_coal_glass_stairsplus.png | Bin .../textures/moreblocks_coal_stone.png | Bin .../textures/moreblocks_coal_stone_bricks.png | Bin .../textures/moreblocks_empty_bookshelf.png | Bin .../textures/moreblocks_fence_jungle_wood.png | Bin .../textures/moreblocks_fence_wood.png | Bin mods/moreblocks/textures/moreblocks_glass.png | Bin .../textures/moreblocks_glass_stairsplus.png | Bin .../textures/moreblocks_glow_glass.png | Bin .../moreblocks_glow_glass_stairsplus.png | Bin .../textures/moreblocks_grey_bricks.png | Bin .../textures/moreblocks_iron_checker.png | Bin .../textures/moreblocks_iron_glass.png | Bin .../moreblocks_iron_glass_stairsplus.png | Bin .../textures/moreblocks_iron_stone.png | Bin .../textures/moreblocks_iron_stone_bricks.png | Bin .../textures/moreblocks_junglestick.png | Bin .../moreblocks_obsidian_glass_stairsplus.png | Bin .../textures/moreblocks_plankstone.png | Bin .../textures/moreblocks_plankstone_2.png | Bin mods/moreblocks/textures/moreblocks_rope.png | Bin .../textures/moreblocks_split_stone_tile.png | Bin .../moreblocks_split_stone_tile_alt.png | Bin .../moreblocks_split_stone_tile_top.png | Bin .../textures/moreblocks_stone_tile.png | Bin .../textures/moreblocks_super_glow_glass.png | Bin ...moreblocks_super_glow_glass_stairsplus.png | Bin .../textures/moreblocks_sweeper.png | Bin mods/moreblocks/textures/moreblocks_tar.png | Bin .../textures/moreblocks_trap_glass.png | Bin .../textures/moreblocks_trap_glow_glass.png | Bin .../textures/moreblocks_trap_stone.png | Bin .../moreblocks_trap_super_glow_glass.png | Bin .../textures/moreblocks_tree_stairsplus.png | Bin .../textures/moreblocks_wood_tile.png | Bin .../textures/moreblocks_wood_tile_center.png | Bin .../textures/moreblocks_wood_tile_full.png | Bin .../textures/moreblocks_wood_tile_up.png | Bin 103 files changed, 756 insertions(+), 1624 deletions(-) rename mods/maptools/{LICENSE.md => LICENSE.txt} (71%) delete mode 100644 mods/maptools/NODES.md delete mode 100644 mods/maptools/README.md create mode 100644 mods/maptools/README.txt create mode 100644 mods/maptools/_README.txt delete mode 100644 mods/maptools/config.lua delete mode 100644 mods/maptools/craftitems.lua delete mode 100644 mods/maptools/nodes.lua create mode 100644 mods/maptools/textures/maptools_super_apple_bottom.png create mode 100644 mods/maptools/textures/maptools_super_apple_side.png create mode 100644 mods/maptools/textures/maptools_super_apple_top.png delete mode 100644 mods/maptools/tools.lua rename mods/moreblocks/{LICENSE.md => LICENSE.txt} (71%) mode change 100644 => 100755 delete mode 100644 mods/moreblocks/README.md create mode 100755 mods/moreblocks/README.txt mode change 100644 => 100755 mods/moreblocks/aliases.lua mode change 100644 => 100755 mods/moreblocks/circular_saw.lua mode change 100644 => 100755 mods/moreblocks/config.lua mode change 100644 => 100755 mods/moreblocks/crafting.lua mode change 100644 => 100755 mods/moreblocks/depends.txt mode change 100644 => 100755 mods/moreblocks/init.lua mode change 100644 => 100755 mods/moreblocks/locale/de.txt mode change 100644 => 100755 mods/moreblocks/locale/es.txt mode change 100644 => 100755 mods/moreblocks/locale/fr.txt mode change 100644 => 100755 mods/moreblocks/locale/template.txt delete mode 100644 mods/moreblocks/models/moreblocks_slope.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_half.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_half_raised.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_inner.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_inner_half.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_half.obj delete mode 100644 mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj mode change 100644 => 100755 mods/moreblocks/nodes.lua mode change 100644 => 100755 mods/moreblocks/ownership.lua mode change 100644 => 100755 mods/moreblocks/redefinitions.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/API.md mode change 100644 => 100755 mods/moreblocks/stairsplus/aliases.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/conversion.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/init.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/microblocks.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/panels.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/registrations.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/slabs.lua delete mode 100644 mods/moreblocks/stairsplus/slopes.lua mode change 100644 => 100755 mods/moreblocks/stairsplus/stairs.lua mode change 100644 => 100755 mods/moreblocks/textures/default_brick.png mode change 100644 => 100755 mods/moreblocks/textures/default_fence_overlay.png mode change 100644 => 100755 mods/moreblocks/textures/invisible.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_cactus_brick.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_cactus_checker.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_circle_stone_bricks.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_circular_saw_bottom.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_circular_saw_side.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_circular_saw_top.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_clean_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_checker.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_stone.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_coal_stone_bricks.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_empty_bookshelf.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_fence_jungle_wood.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_fence_wood.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_glow_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_grey_bricks.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_checker.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_stone.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_iron_stone_bricks.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_junglestick.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_plankstone.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_plankstone_2.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_rope.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_split_stone_tile.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_split_stone_tile_top.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_stone_tile.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_super_glow_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_sweeper.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_tar.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_trap_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_trap_glow_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_trap_stone.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_tree_stairsplus.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_wood_tile.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_wood_tile_center.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_wood_tile_full.png mode change 100644 => 100755 mods/moreblocks/textures/moreblocks_wood_tile_up.png diff --git a/mods/maptools/LICENSE.md b/mods/maptools/LICENSE.txt similarity index 71% rename from mods/maptools/LICENSE.md rename to mods/maptools/LICENSE.txt index ca48e3a1..f42bd647 100644 --- a/mods/maptools/LICENSE.md +++ b/mods/maptools/LICENSE.txt @@ -1,9 +1,8 @@ -zlib license -============ ++---- zlib/libpng license ----+ -Copyright (c) 2012-2015 Calinou and contributors +Copyright (c) 2013 Calinou -**This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.** +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: diff --git a/mods/maptools/NODES.md b/mods/maptools/NODES.md deleted file mode 100644 index f5ce3cc3..00000000 --- a/mods/maptools/NODES.md +++ /dev/null @@ -1,45 +0,0 @@ -Item names for spawning the items using /give or /giveme -======================================================== - -Items ------ - -* `admin_pick:` magenta pickaxe, infinite durability, mines everything including unbreakable blocks instantly. No drops. Don't put this pickaxe in the hands of a griefer, of course. - -* `admin_pick_with_drops:` same as admin pickaxe, but drops stuff. - -* `infinite_fuel:` fuel lasting for a (near)-infinite time. Don't worry about the "near" * it lasts for about 50 in-real-life years. - -* `super_apple:` a yellow apple which heals 20 HP. - -* `copper_coin,` -* `silver_coin,` -* `gold_coin:` these have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. - -Blocks ------- - -**[!]** denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit or similar). - - -* `(block)_u` : unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). Examples: `stone_u`, `wood_u`, `glass_u`, … - -* `full_grass:` unbreakable block with the grass texture on all sides. - -* `player_clip:` **[!]** invisible block, not pointable. - -* `full_clip:` invisible block, pointable. Also available as a thin face: full_clip_face. - -* `smoke_block:` some smoke (does not harm players or entities). - -* `no_build:` **[!]** very basic building prevention. - -* `no_interact:` prevents interacting through the block (opening chests, furnaces, attacking entities, …). - -* `damage_(1…5):` **[!]** damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). - -* `kill:` **[!]** instant kill (deals 10 heart damage) blocks. - -* `light_block:` **[!]** invisible non-solid block, prevents light from passing through. - -* `light_bulb:` **[!]** invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/README.md b/mods/maptools/README.md deleted file mode 100644 index 3a428b7e..00000000 --- a/mods/maptools/README.md +++ /dev/null @@ -1,11 +0,0 @@ -Map Tools -========= - -Map Tools for Minetest , a free/libre infinite -world block sandbox game. - -To install, just clone this repository into your "mods" directory. - -Map Tools 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/maptools/README.txt b/mods/maptools/README.txt new file mode 100644 index 00000000..4c155813 --- /dev/null +++ b/mods/maptools/README.txt @@ -0,0 +1,22 @@ +Calinou's Minetest Mods +===================== + +Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. + +This Git repository is mostly made for servers; it allows easy updating. + +To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. + + + +Misc stuff +===================== + +All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. + +Mods' forum threads: +More Blocks: http://minetest.net/forum/viewtopic.php?id=509 +More Ores: http://minetest.net/forum/viewtopic.php?id=549 +Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 +Doors+: http://minetest.net/forum/viewtopic.php?id=2059 +Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 diff --git a/mods/maptools/_README.txt b/mods/maptools/_README.txt new file mode 100644 index 00000000..cfbe0b2e --- /dev/null +++ b/mods/maptools/_README.txt @@ -0,0 +1,53 @@ +*** Item names for spawning the items using /give or /giveme *** + +Items: + +- admin_pick +Purple pickaxe, infinite durability, mines everything including unbreakable blocks instantly. Don't put this pickaxe in the hands of a griefer, of course. :) + +- infinitefuel +Fuel lasting for a (near)-infinite time. Don't worry about the "near" - it lasts for about 50 in-real-life years. + +- superapple +An apple which heals all 10 hearts. + +- copper_coin +- silver_coin +- gold_coin +These have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. + +Blocks: +A /!\ denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit). + +- (insert block name here)_u -- example: stone_u +Unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). + +- fullgrass +Unbrakable block with the "grass" texture on all sides. + +- playerclip +/!\ Invisible block, not pointable. + +- fullclip +Invisible block, pointable. + +- smoke_block +Some smoke (does not harm players or entities). + +- nobuild +/!\ Very basic building prevention. + +- nointeract +Prevents interacting through the block (interacting as in opening chests, furnaces, attacking entities...). + +- damage_(insert damage in half hearts here) +/!\ Damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). + +- killblock +/!\ Instant kill (deals 10 heart damage) blocks. + +- lightblock +/!\ Invisible non-solid block, prevents light from passing through. + +- lightbulb +/!\ Invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/aliases.lua b/mods/maptools/aliases.lua index f1f0cc57..8742f44e 100644 --- a/mods/maptools/aliases.lua +++ b/mods/maptools/aliases.lua @@ -1,9 +1,4 @@ ---[[ -Map Tools: alias definitions - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] +-- Aliases minetest.register_alias("adminpick", "maptools:pick_admin") minetest.register_alias("adminpickaxe", "maptools:pick_admin") @@ -74,6 +69,8 @@ minetest.register_alias("fake_fire", "maptools:fake_fire") minetest.register_alias("ffire", "maptools:fake_fire") minetest.register_alias("igniter", "maptools:igniter") +-- Unbreakable block aliases + minetest.register_alias("stone_u", "maptools:stone") minetest.register_alias("tree_u", "maptools:tree") minetest.register_alias("cobble_u", "maptools:cobble") diff --git a/mods/maptools/config.lua b/mods/maptools/config.lua deleted file mode 100644 index 63f1a260..00000000 --- a/mods/maptools/config.lua +++ /dev/null @@ -1,29 +0,0 @@ ---[[ -Map Tools: configuration handling - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -maptools.config = {} - -local function getbool_default(setting, default) - local value = minetest.setting_getbool(setting) - if value == nil then - value = default - end - return value -end - -local function setting(settingtype, name, default) - if settingtype == "bool" then - maptools.config[name] = - getbool_default("maptools." .. name, default) - else - maptools.config[name] = - minetest.setting_get("maptools." .. name) or default - end -end - --- Show Map Tools stuff in creative inventory (1 or 0): -setting("integer", "hide_from_creative_inventory", 1) diff --git a/mods/maptools/craftitems.lua b/mods/maptools/craftitems.lua deleted file mode 100644 index c311aa95..00000000 --- a/mods/maptools/craftitems.lua +++ /dev/null @@ -1,47 +0,0 @@ ---[[ -Map Tools: item definitions - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = maptools.intllib - -maptools.creative = maptools.config["hide_from_creative_inventory"] - -minetest.register_craftitem("maptools:copper_coin", { - description = S("Copper Coin"), - inventory_image = "maptools_copper_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_craftitem("maptools:silver_coin", { - description = S("Silver Coin"), - inventory_image = "maptools_silver_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_craftitem("maptools:gold_coin", { - description = S("Gold Coin"), - inventory_image = "maptools_gold_coin.png", - wield_scale = {x = 0.5, y = 0.5, z = 0.25}, - stack_max = 10000, - groups = {not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_craftitem("maptools:infinitefuel", { - description = S("Infinite Fuel"), - inventory_image = "maptools_infinitefuel.png", - stack_max = 10000, - groups = {not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_craft({ - type = "fuel", - recipe = "maptools:infinitefuel", - burntime = 1000000000, -}) diff --git a/mods/maptools/default_nodes.lua b/mods/maptools/default_nodes.lua index 3ac0caf5..83d0df02 100644 --- a/mods/maptools/default_nodes.lua +++ b/mods/maptools/default_nodes.lua @@ -1,13 +1,10 @@ ---[[ -Map Tools: unbreakable default nodes - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = maptools.intllib - -maptools.creative = maptools.config["hide_from_creative_inventory"] +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) + else + S = function ( s ) return s end +end minetest.register_node("maptools:stone", { description = S("Unbreakable Stone"), @@ -15,7 +12,7 @@ minetest.register_node("maptools:stone", { stack_max = 10000, tiles = {"default_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -25,7 +22,7 @@ minetest.register_node("maptools:stonebrick", { stack_max = 10000, tiles = {"default_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -35,7 +32,7 @@ minetest.register_node("maptools:tree", { stack_max = 10000, tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -46,7 +43,7 @@ minetest.register_node("maptools:jungletree", { stack_max = 10000, tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -57,7 +54,7 @@ minetest.register_node("maptools:cactus", { stack_max = 10000, tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -78,7 +75,7 @@ minetest.register_node("maptools:papyrus", { type = "fixed", fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} }, - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -88,7 +85,7 @@ minetest.register_node("maptools:dirt", { stack_max = 10000, tiles = {"default_dirt.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -98,7 +95,7 @@ minetest.register_node("maptools:wood", { stack_max = 10000, tiles = {"default_wood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), }) @@ -108,7 +105,7 @@ minetest.register_node("maptools:junglewood", { stack_max = 10000, tiles = {"default_junglewood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_wood_defaults(), }) @@ -121,7 +118,7 @@ minetest.register_node("maptools:glass", { paramtype = "light", sunlight_propagates = true, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_glass_defaults(), }) @@ -133,7 +130,7 @@ minetest.register_node("maptools:leaves", { tiles = {"default_leaves.png"}, paramtype = "light", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -143,7 +140,7 @@ minetest.register_node("maptools:sand", { stack_max = 10000, tiles = {"default_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_sand_defaults(), }) @@ -153,7 +150,7 @@ minetest.register_node("maptools:gravel", { stack_max = 10000, tiles = {"default_gravel.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.35}, dug = {name="default_gravel_footstep", gain=0.6}, @@ -166,7 +163,7 @@ minetest.register_node("maptools:clay", { stack_max = 10000, tiles = {"default_clay.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -176,7 +173,7 @@ minetest.register_node("maptools:desert_sand", { stack_max = 10000, tiles = {"default_desert_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_sand_defaults(), }) @@ -186,7 +183,7 @@ minetest.register_node("maptools:sandstone", { stack_max = 10000, tiles = {"default_sandstone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -196,7 +193,7 @@ minetest.register_node("maptools:sandstone_brick", { stack_max = 10000, tiles = {"default_sandstone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -206,7 +203,7 @@ minetest.register_node("maptools:desert_stone", { stack_max = 10000, tiles = {"default_desert_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -216,7 +213,7 @@ minetest.register_node("maptools:desert_cobble", { stack_max = 10000, tiles = {"default_desert_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -226,7 +223,7 @@ minetest.register_node("maptools:desert_stonebrick", { stack_max = 10000, tiles = {"default_desert_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -237,7 +234,7 @@ minetest.register_node("maptools:grass", { tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain = 0.4}, }), @@ -249,7 +246,7 @@ minetest.register_node("maptools:fullgrass", { stack_max = 10000, tiles = {"default_grass.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), @@ -270,7 +267,7 @@ for slab_num = 1,3,1 do paramtype = "light", paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), }) end @@ -281,7 +278,7 @@ minetest.register_node("maptools:cobble", { stack_max = 10000, tiles = {"default_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -291,7 +288,7 @@ minetest.register_node("maptools:mossycobble", { stack_max = 10000, tiles = {"default_mossycobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -301,7 +298,7 @@ minetest.register_node("maptools:brick", { stack_max = 10000, tiles = {"default_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -311,7 +308,7 @@ minetest.register_node("maptools:coalblock", { stack_max = 10000, tiles = {"default_coal_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -322,7 +319,7 @@ minetest.register_node("maptools:steelblock", { stack_max = 10000, tiles = {"default_steel_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -332,7 +329,7 @@ minetest.register_node("maptools:goldblock", { stack_max = 10000, tiles = {"default_gold_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -342,7 +339,7 @@ minetest.register_node("maptools:copperblock", { stack_max = 10000, tiles = {"default_copper_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -352,7 +349,7 @@ minetest.register_node("maptools:bronzeblock", { stack_max = 10000, tiles = {"default_bronze_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -360,9 +357,9 @@ minetest.register_node("maptools:diamondblock", { description = S("Unbreakable Diamond Block"), range = 12, stack_max = 10000, - tiles = {"default_steel_block.png"}, + tiles = {"default_diamond_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, sounds = default.node_sound_stone_defaults(), }) @@ -374,7 +371,7 @@ minetest.register_node("maptools:soil_wet", { stack_max = 10000, tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, grassland = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, grassland = 1}, sounds = default.node_sound_dirt_defaults(), }) @@ -384,6 +381,6 @@ minetest.register_node("maptools:desert_sand_soil_wet", { stack_max = 10000, drop = "", tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, desert = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, desert = 1}, sounds = default.node_sound_sand_defaults(), }) diff --git a/mods/maptools/init.lua b/mods/maptools/init.lua index dbff209c..c5178fae 100644 --- a/mods/maptools/init.lua +++ b/mods/maptools/init.lua @@ -1,32 +1,551 @@ ---[[ -===================================================================== -** Map Tools ** -By Calinou. - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. -===================================================================== ---]] - -maptools = {} - -local S -if minetest.get_modpath("intllib") then - S = intllib.Getter() -else - S = function(s) return s end -end -maptools.intllib = S - -local modpath = minetest.get_modpath("maptools") - -dofile(modpath .. "/config.lua") -dofile(modpath .. "/aliases.lua") -dofile(modpath .. "/craftitems.lua") -dofile(modpath .. "/default_nodes.lua") -dofile(modpath .. "/nodes.lua") -dofile(modpath .. "/tools.lua") - -if minetest.setting_getbool("log_mods") then - minetest.log("action", S("[maptools] loaded.")) -end +MAPTOOLS_CREATIVE = 1 -- Set this to 0 if you want Map Tools nodes and items to appear in the creative inventory. + +-- Load translation library if intllib is installed + +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) + else + S = function ( s ) return s end +end + +dofile(minetest.get_modpath("maptools").."/aliases.lua") +dofile(minetest.get_modpath("maptools").."/default_nodes.lua") + +--[[ +Map Tools by Calinou +Licensed under the zlib license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. +--]] + +-- Redefine cloud so that the admin pickaxe can mine it. + +minetest.register_node(":default:cloud", { + description = S("Cloud"), + tiles = {"default_cloud.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_defaults(), +}) + +-- Items + +minetest.register_craft({ + type = "fuel", + recipe = "maptools:infinitefuel", + burntime = 1000000000, +}) + +-- Nodes + +minetest.register_node("maptools:black", { + description = S("Black"), + range = 12, + stack_max = 10000, + tiles = {"black.png"}, + drop = "", + post_effect_color = {a=255, r=0, g=0, b=0}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:white", { + description = S("White"), + range = 12, + stack_max = 10000, + tiles = {"white.png"}, + drop = "", + post_effect_color = {a=255, r=128, g=128, b=128}, + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:playerclip", { + description = S("Player Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fake_walkable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fullclip", { + description = S("Full Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_blue.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fake_walkable_pointable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:ignore_like", { + description = S("Ignore-like"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:ignore_like_no_clip", { + description = S("Ignore-like (no clip)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + + +minetest.register_node("maptools:ignore_like_no_point", { + description = S("Ignore-like (no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:ignore_like_no_clip_no_point", { + description = S("Ignore-like (no clip, no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:fullclip_face", { + description = S("Full Clip Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_white.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_bottom", { + description = S("Player Clip Bottom Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_orange.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_top", { + description = S("Player Clip Top Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_yellow.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, +}) + +for pusher_num=1,10,1 do +minetest.register_node("maptools:pusher_" .. pusher_num, { + description = S("Pusher (%s)"):format(pusher_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_apple.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100, bouncy=pusher_num*100}, +}) +end + +minetest.register_node("maptools:lightbulb", { + description = S("Light Bulb"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", + drawtype = "airlike", + walkable = false, + pointable = false, + light_source = 15, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:nobuild", { + description = S("Build Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^bones_bones.png", + drawtype = "airlike", + walkable = false, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:nointeract", { + description = S("Interact Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_scorched_stuff.png", + drawtype = "airlike", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:climb", { + description = S("Climb Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_ladder.png", + drawtype = "airlike", + walkable = false, + climbable = true, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +for damage_num=1,5,1 do +minetest.register_node("maptools:damage_" .. damage_num, { + description = S("Damaging Block (%s)"):format(damage_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = damage_num, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) +end + +minetest.register_node("maptools:kill", { + description = S("Kill Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_black.png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = 20, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_node("maptools:smoke", { + description = S("Smoke Block"), + range = 12, + stack_max = 10000, + tiles = {"maptools_smoke.png"}, + drawtype = "allfaces_optional", + walkable = false, + paramtype = "light", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + post_effect_color = {a=192, r=96, g=96, b=96}, +}) + +minetest.register_node("maptools:ladder", { + description = S("Fake Ladder"), + range = 12, + stack_max = 10000, + drawtype = "signlike", + tiles = {"default_ladder.png"}, + inventory_image = "default_ladder.png", + wield_image = "default_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:permanent_fire", { + description = S("Permanent Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sunlight_propagates = true, + walkable = false, + damage_per_second = 4, +}) + +minetest.register_node("maptools:fake_fire", { + description = S("Fake Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sunlight_propagates = true, + walkable = false, +}) + +minetest.register_node("maptools:igniter", { + drawtype = "airlike", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^crosshair.png", + description = S("Igniter"), + paramtype = "light", + inventory_image = "fire_basic_flame.png", + drop = "", + groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + sunlight_propagates = true, + pointable = false, + walkable = false, +}) + +minetest.register_node("maptools:superapple", { + description = S("Super Apple"), + range = 12, + stack_max = 99, + drawtype = "nodebox", + visual_scale = 1.0, + tiles = {"maptools_super_apple_top.png","maptools_super_apple_bottom.png","maptools_super_apple_side.png"}, + inventory_image = "maptools_superapple.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + node_box = { + type = "fixed", + fixed = { + {-3/16, -7/16, -3/16, 3/16, 1/16, 3/16}, + {-4/16, -6/16, -3/16, 4/16, 0, 3/16}, + {-3/16, -6/16, -4/16, 3/16, 0, 4/16}, + {-1/32, 1/16, -1/32, 1/32, 4/16, 1/32}, + {-1/16, 1.6/16, 0, 1/16, 1.8/16, 1/16}, + {-2/16, 1.4/16, 1/16, 1/16, 1.6/16, 2/16}, + {-2/16, 1.2/16, 2/16, 0, 1.4/16, 3/16}, + {-1.5/16, 1/16, .5/16, 0.5/16, 1.2/16, 2.5/16}, + } + }, + is_ground_content = true, + groups = {fleshy = 3, dig_immediate = 3, not_in_creative_inventory = 0, flammable = 2, leafdecay = 3, leafdecay_drop = 1}, + on_use = minetest.item_eat(20), + sounds = default.node_sound_leaves_defaults(), + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = "maptools:superapple", param2= 1}) + end + end, +}) + +-- Items + +minetest.register_craftitem("maptools:copper_coin", { + description = S("Copper Coin"), + inventory_image = "maptools_copper_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_craftitem("maptools:silver_coin", { + description = S("Silver Coin"), + inventory_image = "maptools_silver_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_craftitem("maptools:gold_coin", { + description = S("Gold Coin"), + inventory_image = "maptools_gold_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +minetest.register_craftitem("maptools:infinitefuel", { + description = S("Infinite Fuel"), + inventory_image = "maptools_infinitefuel.png", + stack_max = 10000, + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, +}) + +-- Tools + +minetest.register_tool("maptools:pick_admin", { + description = S("Admin Pickaxe"), + range = 12, + inventory_image = "maptools_adminpick.png", + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, + tool_capabilities = { + full_punch_interval = 0.1, + max_drop_level = 3, + groupcaps= { + unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + }, + damage_groups = {fleshy = 1000}, + }, +}) + +minetest.register_tool("maptools:pick_admin_with_drops", { + description = S("Admin Pickaxe with Drops"), + range = 12, + inventory_image = "maptools_adminpick_with_drops.png", + groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, + tool_capabilities = { + full_punch_interval = 0.35, + max_drop_level = 3, + groupcaps = { + unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, + }, + damage_groups = {fleshy = 1000}, + }, +}) + +minetest.register_on_punchnode(function(pos, node, puncher) + if puncher:get_wielded_item():get_name() == "maptools:pick_admin" + and minetest.get_node(pos).name ~= "air" then + minetest.log("action", puncher:get_player_name() .. " digs " .. minetest.get_node(pos).name .. " at " .. minetest.pos_to_string(pos) .. " using an Admin Pickaxe.") + minetest.remove_node(pos) -- The node is removed directly, which means it even works on non-empty containers and group-less nodes. + nodeupdate(pos) -- Run node update actions like falling nodes. + end +end) + +if minetest.setting_getbool("log_mods") then + minetest.log("action", "Carbone: [maptools] loaded.") +end diff --git a/mods/maptools/nodes.lua b/mods/maptools/nodes.lua deleted file mode 100644 index 8ceef647..00000000 --- a/mods/maptools/nodes.lua +++ /dev/null @@ -1,429 +0,0 @@ ---[[ -Map Tools: node definitions - -Copyright (c) 2012-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = maptools.intllib - -maptools.creative = maptools.config["hide_from_creative_inventory"] - --- Redefine cloud so that the admin pickaxe can mine it: -minetest.register_node(":default:cloud", { - description = S("Cloud"), - tiles = {"default_cloud.png"}, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_defaults(), -}) - --- Nodes --- ===== - -minetest.register_node("maptools:black", { - description = S("Black"), - range = 12, - stack_max = 10000, - tiles = {"black.png"}, - drop = "", - post_effect_color = {a=255, r=0, g=0, b=0}, - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:white", { - description = S("White"), - range = 12, - stack_max = 10000, - tiles = {"white.png"}, - drop = "", - post_effect_color = {a=255, r=128, g=128, b=128}, - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:playerclip", { - description = S("Player Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:fake_walkable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:fullclip", { - description = S("Full Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_blue.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:fake_walkable_pointable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:ignore_like", { - description = S("Ignore-like"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:ignore_like_no_clip", { - description = S("Ignore-like (no clip)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - - -minetest.register_node("maptools:ignore_like_no_point", { - description = S("Ignore-like (no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:ignore_like_no_clip_no_point", { - description = S("Ignore-like (no clip, no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:fullclip_face", { - description = S("Full Clip Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_white.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_bottom", { - description = S("Player Clip Bottom Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_orange.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_top", { - description = S("Player Clip Top Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_yellow.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, -}) - -for pusher_num=1,10,1 do -minetest.register_node("maptools:pusher_" .. pusher_num, { - description = S("Pusher (%s)"):format(pusher_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_apple.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100, bouncy=pusher_num*100}, -}) -end - -minetest.register_node("maptools:lightbulb", { - description = S("Light Bulb"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", - drawtype = "airlike", - walkable = false, - pointable = false, - light_source = 15, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:nobuild", { - description = S("Build Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^bones_bones.png", - drawtype = "airlike", - walkable = false, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:nointeract", { - description = S("Interact Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_scorched_stuff.png", - drawtype = "airlike", - walkable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:climb", { - description = S("Climb Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_ladder.png", - drawtype = "airlike", - walkable = false, - climbable = true, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -for damage_num=1,5,1 do -minetest.register_node("maptools:damage_" .. damage_num, { - description = S("Damaging Block (%s)"):format(damage_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = damage_num, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) -end - -minetest.register_node("maptools:kill", { - description = S("Kill Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_black.png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = 20, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, -}) - -minetest.register_node("maptools:smoke", { - description = S("Smoke Block"), - range = 12, - stack_max = 10000, - tiles = {"maptools_smoke.png"}, - drawtype = "allfaces_optional", - walkable = false, - paramtype = "light", - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - post_effect_color = {a=192, r=96, g=96, b=96}, -}) - -minetest.register_node("maptools:ladder", { - description = S("Fake Ladder"), - range = 12, - stack_max = 10000, - drawtype = "signlike", - tiles = {"default_ladder.png"}, - inventory_image = "default_ladder.png", - wield_image = "default_ladder.png", - paramtype = "light", - paramtype2 = "wallmounted", - walkable = false, - sunlight_propagates = true, - selection_box = { - type = "wallmounted", - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("maptools:permanent_fire", { - description = S("Permanent Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sunlight_propagates = true, - walkable = false, - damage_per_second = 4, -}) - -minetest.register_node("maptools:fake_fire", { - description = S("Fake Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sunlight_propagates = true, - walkable = false, -}) - -minetest.register_node("maptools:igniter", { - drawtype = "airlike", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^crosshair.png", - description = S("Igniter"), - paramtype = "light", - inventory_image = "fire_basic_flame.png", - drop = "", - groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = maptools.creative}, - sunlight_propagates = true, - pointable = false, - walkable = false, -}) - -minetest.register_node("maptools:superapple", { - description = S("Super Apple"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"maptools_superapple.png"}, - inventory_image = "maptools_superapple.png", - paramtype = "light", - sunlight_propagates = true, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2} - }, - walkable = false, - groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = maptools.creative}, - on_use = minetest.item_eat(20), - sounds = default.node_sound_defaults(), -}) diff --git a/mods/maptools/textures/maptools_super_apple_bottom.png b/mods/maptools/textures/maptools_super_apple_bottom.png new file mode 100644 index 0000000000000000000000000000000000000000..97f61e171c0291015d80fb19c8cbae5a11436b2b GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqkEEyw(>0&3oIs&1o-U3d7N?(1G~{Y_5OJA*I(_0% zraVvj6r-M*LXT7jAL4j?;3E=m$^F zGdWW47!ETWa|m1!KkfE!6)`c!=OPMBm3)c^Yz{yDG-u)srsoQ$58M(p@V&6@_HEt+ z60B#8dloaTxmxb?>?#N2rI2Q&TYDPz-rsnjI`?#OZrq-TAG!-(U%TmDeE;>L*!vOJ mfAt<)^VxO5sz=}duVb%TVcO~SWotOl{S2P2elF{r5}E)Rt8^Iv literal 0 HcmV?d00001 diff --git a/mods/maptools/textures/maptools_super_apple_side.png b/mods/maptools/textures/maptools_super_apple_side.png new file mode 100644 index 0000000000000000000000000000000000000000..cd4c83153f2abe5c0c2ed349e3c0d676b27a2f80 GIT binary patch literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmPqkEE!u^3{~$2|%GOo-U3d7N?(1G~{Y_5OJA*I(_0% zraVvj6r-M*LXT7jAL4j?;3E=m$^F zGdWW47!ETWa|m1!KkfE!6)`c!=OPMBm3)c^Yz{yDG-u)srsoQ$58M(p@V&6@_HEt+ z60B#8dloaTxmxb?>?#N2rI2Q&TYDPz-rsnjI`?#OZrq-TAG!-(U%TmDeE;>L*!vOJ mfAt<)^VxO5sz=}duVb%TVcO~SWotOl{S2P2elF{r5}E)>;dE61 literal 0 HcmV?d00001 diff --git a/mods/maptools/textures/maptools_super_apple_top.png b/mods/maptools/textures/maptools_super_apple_top.png new file mode 100644 index 0000000000000000000000000000000000000000..4d4dbc056e1913768f70134e28a6bf551b87216b GIT binary patch literal 498 zcmV{Ut&2O5LW0q`a zv=Id$>4dnxgUhon0QI^&*J}AI;MYCiTY+p=^8M`^$0rfegE#=`xRfTB8%?L, a free/libre infinite -world block sandbox game. - -To install, just clone this repository into your "mods" directory. - -More Blocks 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/moreblocks/README.txt b/mods/moreblocks/README.txt new file mode 100755 index 00000000..aa99eda3 --- /dev/null +++ b/mods/moreblocks/README.txt @@ -0,0 +1,12 @@ +More Blocks +========== + +More Blocks for Minetest (http://minetest.net), a free and open source infinite +world block sandbox game. + +To install, just clone this repository into your "mods" directory. + +More Blocks code is under the zlib license, textures are under CC BY-SA 3.0 unported. + +Forum topic: http://forum.minetest.net/viewtopic.php?id=509 + diff --git a/mods/moreblocks/aliases.lua b/mods/moreblocks/aliases.lua old mode 100644 new mode 100755 index 15f7b6b2..df820c33 --- a/mods/moreblocks/aliases.lua +++ b/mods/moreblocks/aliases.lua @@ -1,28 +1,24 @@ ---[[ -More Blocks: alias definitions +-- More Blocks aliases -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - --- More Blocks aliases: minetest.register_alias("sweeper", "moreblocks:sweeper") minetest.register_alias("circular_saw", "moreblocks:circular_saw") minetest.register_alias("jungle_stick", "moreblocks:jungle_stick") --- Old block/item replacement: +-- Old block/item replacement + minetest.register_alias("moreblocks:oerkkiblock", "default:mossycobble") minetest.register_alias("moreblocks:screwdriver", "screwdriver:screwdriver") --- Node and item renaming: +-- Node and item renaming + minetest.register_alias("moreblocks:stone_bricks", "default:stonebrick") minetest.register_alias("moreblocks:stonebrick", "default:stonebrick") minetest.register_alias("moreblocks:junglewood", "default:junglewood") minetest.register_alias("moreblocks:jungle_wood", "default:junglewood") for _, t in pairs(circular_saw.names) do - minetest.register_alias("moreblocks:" .. t[1] .. "_jungle_wood" .. t[2], - "moreblocks:" .. t[1] .. "_junglewood" .. t[2]) + minetest.register_alias("moreblocks:" ..t[1].. "_jungle_wood" ..t[2], + "moreblocks:" ..t[1].. "_junglewood" ..t[2]) end minetest.register_alias("moreblocks:horizontaltree", "moreblocks:horizontal_tree") minetest.register_alias("moreblocks:horizontaljungletree", "moreblocks:horizontal_jungle_tree") @@ -55,7 +51,8 @@ minetest.register_alias("moreblocks:junglestick", "moreblocks:jungle_stick") minetest.register_alias("moreblocks:splitstonesquare","moreblocks:split_stone_tile") minetest.register_alias("moreblocks:allfacestree","moreblocks:all_faces_tree") --- ABM for horizontal trees (fix facedir): +-- ABM for horizontal trees (fix facedir). + local horizontal_tree_convert_facedir = {7, 12, 9, 18} minetest.register_abm({ diff --git a/mods/moreblocks/circular_saw.lua b/mods/moreblocks/circular_saw.lua old mode 100644 new mode 100755 index 98ddecbc..2af5972a --- a/mods/moreblocks/circular_saw.lua +++ b/mods/moreblocks/circular_saw.lua @@ -1,12 +1,4 @@ ---[[ -More Blocks: circular saw - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib - +local S = moreblocks.gettext circular_saw = {} circular_saw.known_stairs = setmetatable({}, { diff --git a/mods/moreblocks/config.lua b/mods/moreblocks/config.lua old mode 100644 new mode 100755 index d646dacd..e5db0861 --- a/mods/moreblocks/config.lua +++ b/mods/moreblocks/config.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: configuration handling - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - moreblocks.config = {} local function getbool_default(setting, default) diff --git a/mods/moreblocks/crafting.lua b/mods/moreblocks/crafting.lua old mode 100644 new mode 100755 index 4429d9ae..158d40a5 --- a/mods/moreblocks/crafting.lua +++ b/mods/moreblocks/crafting.lua @@ -1,9 +1,4 @@ ---[[ -More Blocks: crafting recipes - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] +-- Crafting minetest.register_craft({ output = "default:stick", diff --git a/mods/moreblocks/depends.txt b/mods/moreblocks/depends.txt old mode 100644 new mode 100755 index 198fe8a6..9207dab8 --- a/mods/moreblocks/depends.txt +++ b/mods/moreblocks/depends.txt @@ -1,2 +1,2 @@ -default -intllib? +default +intllib? diff --git a/mods/moreblocks/init.lua b/mods/moreblocks/init.lua old mode 100644 new mode 100755 index 2919a308..a86a38ea --- a/mods/moreblocks/init.lua +++ b/mods/moreblocks/init.lua @@ -1,22 +1,20 @@ --[[ -===================================================================== -** More Blocks ** -By Calinou, with the help of ShadowNinja and VanessaE. - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. -===================================================================== +-- More Blocks (moreblocks) by Calinou +-- Licensed under the zlib/ license for code and CC BY-SA 3.0 for textures, see LICENSE.txt for info. --]] moreblocks = {} -local S -if minetest.get_modpath("intllib") then - S = intllib.Getter() +-- Load translation library if intllib is installed + +local S -- Load translation library if intllib is installed: +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 -moreblocks.intllib = S +moreblocks.gettext = S local modpath = minetest.get_modpath("moreblocks") @@ -29,5 +27,6 @@ dofile(modpath .. "/crafting.lua") dofile(modpath .. "/aliases.lua") if minetest.setting_getbool("log_mods") then - minetest.log("action", S("[moreblocks] loaded.")) + print(S("[moreblocks] loaded.")) end + diff --git a/mods/moreblocks/locale/de.txt b/mods/moreblocks/locale/de.txt old mode 100644 new mode 100755 diff --git a/mods/moreblocks/locale/es.txt b/mods/moreblocks/locale/es.txt old mode 100644 new mode 100755 diff --git a/mods/moreblocks/locale/fr.txt b/mods/moreblocks/locale/fr.txt old mode 100644 new mode 100755 diff --git a/mods/moreblocks/locale/template.txt b/mods/moreblocks/locale/template.txt old mode 100644 new mode 100755 diff --git a/mods/moreblocks/models/moreblocks_slope.obj b/mods/moreblocks/models/moreblocks_slope.obj deleted file mode 100644 index 05c853b7..00000000 --- a/mods/moreblocks/models/moreblocks_slope.obj +++ /dev/null @@ -1,21 +0,0 @@ -# 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/moreblocks/models/moreblocks_slope_half.obj b/mods/moreblocks/models/moreblocks_slope_half.obj deleted file mode 100644 index bc96bb8b..00000000 --- a/mods/moreblocks/models/moreblocks_slope_half.obj +++ /dev/null @@ -1,23 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_fronthalf_onetexture.blend' -# www.blender.org -mtllib slope_test_slope_long_fronthalf_onetexture.mtl -o Cube_Cube.002 -v 0.500000 -0.000000 0.500000 -v -0.500000 -0.000000 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.500000 -vt 0.000000 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/5 6/6 -f 2/1 5/3 3/4 -f 1/2 4/3 6/4 -f 2/5 1/6 6/3 5/4 diff --git a/mods/moreblocks/models/moreblocks_slope_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_half_raised.obj deleted file mode 100644 index 79e0dc01..00000000 --- a/mods/moreblocks/models/moreblocks_slope_half_raised.obj +++ /dev/null @@ -1,26 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_slope_long_backhalf_onetexture.blend' -# www.blender.org -mtllib slope_test_slope_long_backhalf_onetexture.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.500000 0.500000 -v -0.500000 0.000000 -0.500000 -v 0.500000 0.000000 -0.500000 -v 0.500000 0.500000 0.500000 -vt 1.000000 1.000000 -vt 0.000000 0.500000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 0.500000 -vt 0.000000 1.000000 -usemtl None -s off -f 5/1 6/2 2/3 1/4 -f 6/5 7/2 3/3 2/4 -f 7/5 8/6 4/3 3/4 -f 8/1 5/6 1/3 4/4 -f 1/4 2/1 3/6 4/3 -f 8/6 7/3 6/4 5/1 diff --git a/mods/moreblocks/models/moreblocks_slope_inner.obj b/mods/moreblocks/models/moreblocks_slope_inner.obj deleted file mode 100644 index 68fc1700..00000000 --- a/mods/moreblocks/models/moreblocks_slope_inner.obj +++ /dev/null @@ -1,26 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_onetexture.blend' -# www.blender.org -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 -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/moreblocks/models/moreblocks_slope_inner_half.obj b/mods/moreblocks/models/moreblocks_slope_inner_half.obj deleted file mode 100644 index 6decaea3..00000000 --- a/mods/moreblocks/models/moreblocks_slope_inner_half.obj +++ /dev/null @@ -1,28 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_short_onetexture.blend' -# www.blender.org -mtllib slope_test_icorner_half_short_onetexture.mtl -o Cube_Cube.000 -v 0.500000 -0.000000 0.500000 -v -0.500000 -0.000000 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.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/moreblocks/models/moreblocks_slope_inner_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj deleted file mode 100644 index 8aff6cab..00000000 --- a/mods/moreblocks/models/moreblocks_slope_inner_half_raised.obj +++ /dev/null @@ -1,31 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_icorner_half_tall_onetexture.blend' -# www.blender.org -mtllib slope_test_icorner_half_tall_onetexture.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.000000 -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.500000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -usemtl None -s off -f 6/1 1/2 7/3 8/4 -f 2/1 1/2 5/4 -f 3/3 7/4 1/1 2/2 -f 1/2 6/3 9/4 -f 3/1 10/2 8/3 7/4 -f 8/3 10/4 5/5 6/2 -f 3/4 2/1 5/6 10/3 -l 1 4 -l 3 4 diff --git a/mods/moreblocks/models/moreblocks_slope_outer.obj b/mods/moreblocks/models/moreblocks_slope_outer.obj deleted file mode 100644 index 383c195f..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer.obj +++ /dev/null @@ -1,18 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_ocorner_onetexture.blend' -# www.blender.org -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 -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/moreblocks/models/moreblocks_slope_outer_cut.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut.obj deleted file mode 100644 index 4608c69c..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_cut.obj +++ /dev/null @@ -1,19 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_2_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_tall_2_onetexture.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 -vt 1.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 0.000000 1.000000 -vt 0.500000 1.000000 -usemtl None -s off -f 4/1 1/2 3/3 -f 2/3 4/4 3/2 -f 3/2 1/3 2/4 -f 1/3 4/5 2/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj deleted file mode 100644 index e4be8825..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_cut_half.obj +++ /dev/null @@ -1,20 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_2_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_short_2_onetexture.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.000000 0.500000 -vt 1.000000 0.500000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 0.000000 0.500000 -vt 0.000000 1.000000 -vt 0.500000 1.000000 -usemtl None -s off -f 4/1 1/2 3/3 -f 2/3 4/4 3/2 -f 3/2 1/3 2/5 -f 1/3 4/6 2/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj deleted file mode 100644 index 65a3b8ac..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_cut_half_raised.obj +++ /dev/null @@ -1,23 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_3_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_short_3_onetexture.mtl -o Cube_Cube.002 -v -0.500000 -0.000000 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 -vt 0.000000 0.500000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 0.500000 -usemtl None -s off -f 1/1 2/2 3/3 4/4 -f 4/5 3/2 5/3 6/6 -f 2/5 5/3 3/4 -f 1/2 4/3 6/4 -f 2/3 1/6 6/1 5/2 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_half.obj b/mods/moreblocks/models/moreblocks_slope_outer_half.obj deleted file mode 100644 index 0c56e26a..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_half.obj +++ /dev/null @@ -1,22 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_short_1_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_short_1_onetexture.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.000000 0.500000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 0.500000 -vt 0.000000 0.500000 -usemtl None -s off -f 1/1 2/2 3/3 4/4 -f 5/5 1/3 4/4 -f 3/4 5/6 4/3 -f 2/4 5/2 3/3 -f 1/4 5/1 2/3 diff --git a/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj b/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj deleted file mode 100644 index e4fa3d1f..00000000 --- a/mods/moreblocks/models/moreblocks_slope_outer_half_raised.obj +++ /dev/null @@ -1,27 +0,0 @@ -# Blender v2.69 (sub 0) OBJ File: 'slope_test_corner_pyramid_tall_3_onetexture.blend' -# www.blender.org -mtllib slope_test_corner_pyramid_tall_3_onetexture.mtl -o Cube_Cube.002 -v -0.500000 -0.000000 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.500000 -v -0.500000 -0.000000 -0.500000 -vt 0.000000 0.500000 -vt 0.000000 0.000000 -vt 1.000000 0.000000 -vt 1.000000 1.000000 -vt 0.000000 1.000000 -vt 1.000000 0.500000 -usemtl None -s off -f 1/1 2/2 3/3 4/4 -f 4/5 3/2 5/3 6/6 -f 8/3 4/5 6/2 -f 1/6 8/1 7/2 2/3 -f 4/5 8/3 1/4 -f 6/1 5/2 7/3 8/6 -f 5/5 3/2 2/3 7/4 diff --git a/mods/moreblocks/nodes.lua b/mods/moreblocks/nodes.lua old mode 100644 new mode 100755 index d3120c9a..5efda8f8 --- a/mods/moreblocks/nodes.lua +++ b/mods/moreblocks/nodes.lua @@ -1,11 +1,4 @@ ---[[ -More Blocks: node definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S = moreblocks.gettext local sound_wood = default.node_sound_wood_defaults() local sound_stone = default.node_sound_stone_defaults() @@ -123,11 +116,6 @@ local nodes = { groups = {cracky = 2}, sounds = sound_stone, }, - ["cobble_compressed"] = { - description = S("Compressed Cobblestone"), - groups = {cracky = 1}, - sounds = sound_stone, - }, ["plankstone"] = { description = S("Plankstone"), groups = {cracky = 3}, diff --git a/mods/moreblocks/ownership.lua b/mods/moreblocks/ownership.lua old mode 100644 new mode 100755 index 1c2431ba..9cd4cb30 --- a/mods/moreblocks/ownership.lua +++ b/mods/moreblocks/ownership.lua @@ -1,9 +1,3 @@ ---[[ -More Blocks: ownership handling - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] local S = moreblocks.gettext diff --git a/mods/moreblocks/redefinitions.lua b/mods/moreblocks/redefinitions.lua old mode 100644 new mode 100755 index a6498f16..4db169b1 --- a/mods/moreblocks/redefinitions.lua +++ b/mods/moreblocks/redefinitions.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: redefinitions of default stuff - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -- Redefinitions of some default crafting recipes: minetest.register_craft({ @@ -78,11 +71,6 @@ minetest.override_item("default:papyrus", { sunlight_propagates = true, }) -minetest.override_item("default:fence_wood", { - paramtype = "light", - sunlight_propagates = true, -}) - minetest.override_item("default:junglegrass", { paramtype = "light", sunlight_propagates = true, diff --git a/mods/moreblocks/stairsplus/API.md b/mods/moreblocks/stairsplus/API.md old mode 100644 new mode 100755 index 2db0f2b3..a98ec81e --- a/mods/moreblocks/stairsplus/API.md +++ b/mods/moreblocks/stairsplus/API.md @@ -1,5 +1,6 @@ API documentation for Stairs+ -============================= +================================ +- - - - - - - - - - - - - - - - * `stairsplus:register_all(modname, subname, recipeitem, fields)` Registers a stair, slab, panel, microblock, and any other types of diff --git a/mods/moreblocks/stairsplus/aliases.lua b/mods/moreblocks/stairsplus/aliases.lua old mode 100644 new mode 100755 index c235d342..c92df483 --- a/mods/moreblocks/stairsplus/aliases.lua +++ b/mods/moreblocks/stairsplus/aliases.lua @@ -1,9 +1,3 @@ ---[[ -More Blocks: alias definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] local function register_stairsplus_alias(modname, origname, newname) minetest.register_alias(modname.. ":slab_" ..origname, "moreblocks:slab_" ..newname) @@ -39,14 +33,12 @@ end register_stairsplus_alias("stairsplus", "stone", "stone") register_stairsplus_alias("stairsplus", "wood", "wood") -register_stairsplus_alias("stairsplus", "pinewood", "pinewood") register_stairsplus_alias("stairsplus", "cobble", "cobble") register_stairsplus_alias("stairsplus", "brick", "brick") register_stairsplus_alias("stairsplus", "sandstone", "sandstone") register_stairsplus_alias("stairsplus", "glass", "glass") register_stairsplus_alias("stairsplus", "tree", "tree") register_stairsplus_alias("stairsplus", "jungletree", "jungletree") -register_stairsplus_alias("stairsplus", "pinetree", "pinetree") register_stairsplus_alias("stairsplus", "desert_stone", "desert_stone") register_stairsplus_alias("stairsplus", "steelblock", "steelblock") register_stairsplus_alias("stairsplus", "mossycobble", "mossycobble") diff --git a/mods/moreblocks/stairsplus/conversion.lua b/mods/moreblocks/stairsplus/conversion.lua old mode 100644 new mode 100755 index 13966b66..fda30c7b --- a/mods/moreblocks/stairsplus/conversion.lua +++ b/mods/moreblocks/stairsplus/conversion.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: conversion - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -- Function to convert all stairs/slabs/etc nodes from -- inverted, wall, etc to regular + 6d facedir diff --git a/mods/moreblocks/stairsplus/init.lua b/mods/moreblocks/stairsplus/init.lua old mode 100644 new mode 100755 index ffec1b7f..ae09b7d3 --- a/mods/moreblocks/stairsplus/init.lua +++ b/mods/moreblocks/stairsplus/init.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: Stairs+ - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -- Nodes will be called :{stair,slab,panel,micro}_ local modpath = minetest.get_modpath("moreblocks").. "/stairsplus" @@ -25,7 +18,6 @@ function stairsplus:register_all(modname, subname, recipeitem, fields) end self:register_stair(modname, subname, recipeitem, fields) self:register_slab (modname, subname, recipeitem, fields) - self:register_slope(modname, subname, recipeitem, fields) self:register_panel(modname, subname, recipeitem, fields) self:register_micro(modname, subname, recipeitem, fields) -- self:register_6dfacedir_conversion(modname, subname) -- Not needed as of Q3 2013, uncomment to fix old maps. @@ -44,9 +36,8 @@ end -- dofile(modpath.. "/aliases.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. -- dofile(modpath.. "/conversion.lua") -- Not needed as of Q2 2013, uncomment to fix old maps. -dofile(modpath .. "/stairs.lua") -dofile(modpath .. "/slabs.lua") -dofile(modpath .. "/slopes.lua") -dofile(modpath .. "/panels.lua") -dofile(modpath .. "/microblocks.lua") -dofile(modpath .. "/registrations.lua") +dofile(modpath.. "/stairs.lua") +dofile(modpath.. "/slabs.lua") +dofile(modpath.. "/panels.lua") +dofile(modpath.. "/microblocks.lua") +dofile(modpath.. "/registrations.lua") diff --git a/mods/moreblocks/stairsplus/microblocks.lua b/mods/moreblocks/stairsplus/microblocks.lua old mode 100644 new mode 100755 index 8d52c4a2..f88ed12e --- a/mods/moreblocks/stairsplus/microblocks.lua +++ b/mods/moreblocks/stairsplus/microblocks.lua @@ -1,11 +1,10 @@ ---[[ -More Blocks: microblock definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S -- Load translation library if intllib is installed: +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 -- Node will be called :micro_ diff --git a/mods/moreblocks/stairsplus/panels.lua b/mods/moreblocks/stairsplus/panels.lua old mode 100644 new mode 100755 index 2220fe42..73b283ed --- a/mods/moreblocks/stairsplus/panels.lua +++ b/mods/moreblocks/stairsplus/panels.lua @@ -1,11 +1,10 @@ ---[[ -More Blocks: panel definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S -- Load translation library if intllib is installed: +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 -- Node will be called :panel_ diff --git a/mods/moreblocks/stairsplus/registrations.lua b/mods/moreblocks/stairsplus/registrations.lua old mode 100644 new mode 100755 index 7b38b13b..cc22d333 --- a/mods/moreblocks/stairsplus/registrations.lua +++ b/mods/moreblocks/stairsplus/registrations.lua @@ -1,10 +1,3 @@ ---[[ -More Blocks: registrations - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - local default_nodes = { -- Default stairs/slabs/panels/microblocks: "stone", "cobble", @@ -17,14 +10,12 @@ local default_nodes = { -- Default stairs/slabs/panels/microblocks: "bronzeblock", "diamondblock", "desert_stone", - "desert_cobble", +-- "desert_cobble", "glass", "tree", "wood", "jungletree", "junglewood", - "pinetree", - "pinewood", "obsidian", "obsidian_glass", "stonebrick", diff --git a/mods/moreblocks/stairsplus/slabs.lua b/mods/moreblocks/stairsplus/slabs.lua old mode 100644 new mode 100755 index 68ba5200..9c31745d --- a/mods/moreblocks/stairsplus/slabs.lua +++ b/mods/moreblocks/stairsplus/slabs.lua @@ -1,11 +1,10 @@ ---[[ -More Blocks: slab definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S -- Load translation library if intllib is installed: +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 -- Node will be called :slab_ @@ -76,11 +75,11 @@ function stairsplus:register_slab(modname, subname, recipeitem, fields) end def.description = desc if fields.drop then - def.drop = modname.. ":slab_" .. fields.drop .. alternate + def.drop = modname.. ":slab_" ..fields.drop..alternate end - minetest.register_node(":" .. modname .. ":slab_" .. subname .. alternate, def) + minetest.register_node(":" ..modname.. ":slab_" ..subname..alternate, def) end - minetest.register_alias("stairs:slab_" .. subname, modname .. ":slab_" .. subname) + minetest.register_alias("stairs:slab_" ..subname, modname.. ":slab_" ..subname) -- Some saw-less recipes: diff --git a/mods/moreblocks/stairsplus/slopes.lua b/mods/moreblocks/stairsplus/slopes.lua deleted file mode 100644 index 3a169060..00000000 --- a/mods/moreblocks/stairsplus/slopes.lua +++ /dev/null @@ -1,459 +0,0 @@ ---[[ -More Blocks: slope definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib - -local box_slope = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, - {-0.5, -0.25, -0.25, 0.5, 0, 0.5}, - {-0.5, 0, 0, 0.5, 0.25, 0.5}, - {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5} - } -} - -local box_slope_half = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, - {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, - {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, - {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, - } -} - -local box_slope_half_raised = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, - {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, - {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, - {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, - } -} - ---============================================================== - -local box_slope_inner = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, - {-0.5, -0.5, -0.25, 0.5, 0, 0.5}, - {-0.5, -0.5, -0.5, 0.25, 0, 0.5}, - {-0.5, 0, -0.5, 0, 0.25, 0.5}, - {-0.5, 0, 0, 0.5, 0.25, 0.5}, - {-0.5, 0.25, 0.25, 0.5, 0.5, 0.5}, - {-0.5, 0.25, -0.5, -0.25, 0.5, 0.5}, - } -} - -local box_slope_inner_half = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, - {-0.5, -0.375, -0.25, 0.5, -0.25, 0.5}, - {-0.5, -0.375, -0.5, 0.25, -0.25, 0.5}, - {-0.5, -0.25, -0.5, 0, -0.125, 0.5}, - {-0.5, -0.25, 0, 0.5, -0.125, 0.5}, - {-0.5, -0.125, 0.25, 0.5, 0, 0.5}, - {-0.5, -0.125, -0.5, -0.25, 0, 0.5}, - } -} - -local box_slope_inner_half_raised = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, - {-0.5, 0.125, -0.25, 0.5, 0.25, 0.5}, - {-0.5, 0.125, -0.5, 0.25, 0.25, 0.5}, - {-0.5, 0.25, -0.5, 0, 0.375, 0.5}, - {-0.5, 0.25, 0, 0.5, 0.375, 0.5}, - {-0.5, 0.375, 0.25, 0.5, 0.5, 0.5}, - {-0.5, 0.375, -0.5, -0.25, 0.5, 0.5}, - } -} - ---============================================================== - -local box_slope_outer = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, - {-0.5, -0.25, -0.25, 0.25, 0, 0.5}, - {-0.5, 0, 0, 0, 0.25, 0.5}, - {-0.5, 0.25, 0.25, -0.25, 0.5, 0.5} - } -} - -local box_slope_outer_half = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, - {-0.5, -0.375, -0.25, 0.25, -0.25, 0.5}, - {-0.5, -0.25, 0, 0, -0.125, 0.5}, - {-0.5, -0.125, 0.25, -0.25, 0, 0.5} - } -} - -local box_slope_outer_half_raised = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.125, 0.5}, - {-0.5, 0.125, -0.25, 0.25, 0.25, 0.5}, - {-0.5, 0.25, 0, 0, 0.375, 0.5}, - {-0.5, 0.375, 0.25, -0.25, 0.5, 0.5} - } -} - --- Node will be called :slope_ - -function register_slope(modname, subname, recipeitem, groups, images, description, drop, light) - return stairsplus:register_slope(modname, subname, recipeitem, { - groups = groups, - tiles = images, - description = description, - drop = drop, - light_source = light, - sounds = default.node_sound_stone_defaults(), - }) -end - -function stairsplus:register_slope(modname, subname, recipeitem, fields) - local defs = { - [""] = { - mesh = "moreblocks_slope.obj", - collision_box = box_slope, - selection_box = box_slope, - - }, - ["_half"] = { - mesh = "moreblocks_slope_half.obj", - collision_box = box_slope_half, - selection_box = box_slope_half, - }, - ["_half_raised"] = { - mesh = "moreblocks_slope_half_raised.obj", - collision_box = box_slope_half_raised, - selection_box = box_slope_half_raised, - }, - ---============================================================== - - ["_inner"] = { - mesh = "moreblocks_slope_inner.obj", - collision_box = box_slope_inner, - selection_box = box_slope_inner, - }, - ["_inner_half"] = { - mesh = "moreblocks_slope_inner_half.obj", - collision_box = box_slope_inner_half, - selection_box = box_slope_inner_half, - }, - ["_inner_half_raised"] = { - mesh = "moreblocks_slope_inner_half_raised.obj", - collision_box = box_slope_inner_half_raised, - selection_box = box_slope_inner_half_raised, - }, - ---============================================================== - - ["_outer"] = { - mesh = "moreblocks_slope_outer.obj", - collision_box = box_slope_outer, - selection_box = box_slope_outer, - }, - ["_outer_half"] = { - mesh = "moreblocks_slope_outer_half.obj", - collision_box = box_slope_outer_half, - selection_box = box_slope_outer_half, - }, - ["_outer_half_raised"] = { - mesh = "moreblocks_slope_outer_half_raised.obj", - collision_box = box_slope_outer_half_raised, - selection_box = box_slope_outer_half_raised, - }, - ---============================================================== - - ["_outer_cut"] = { - mesh = "moreblocks_slope_outer_cut.obj", - collision_box = box_slope_outer, - selection_box = box_slope_outer, - }, - ["_outer_cut_half"] = { - mesh = "moreblocks_slope_outer_cut_half.obj", - collision_box = box_slope_outer_half, - selection_box = box_slope_outer_half, - }, - ["_outer_cut_half_raised"] = { - mesh = "moreblocks_slope_outer_cut_half_raised.obj", - collision_box = box_slope_outer_half_raised, - selection_box = box_slope_outer_half_raised, - }, - } - - local desc = S("%s Slope"):format(fields.description) - for alternate, def in pairs(defs) do - def.drawtype = "mesh" - def.paramtype = "light" - def.paramtype2 = "facedir" - def.on_place = minetest.rotate_node - for k, v in pairs(fields) do - def[k] = v - end - def.description = desc - if fields.drop then - def.drop = modname.. ":slope_" ..fields.drop..alternate - end - minetest.register_node(":" ..modname.. ":slope_" ..subname..alternate, def) - end - - -- Some saw-less recipes: - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. " 7", - recipe = { - {modname .. ":panel_" .. subname, "", ""}, - {recipeitem, modname .. ":panel_" .. subname, ""}, - {recipeitem, recipeitem, modname .. ":panel_" .. subname}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. " 7", - recipe = { - {"", "", modname .. ":panel_" .. subname}, - {"", modname .. ":panel_" .. subname, recipeitem}, - {modname .. ":panel_" .. subname, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_half 10", - recipe = { - {modname .. ":panel_" .. subname, "", ""}, - {recipeitem, recipeitem, modname .. ":panel_" .. subname}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_half 10", - recipe = { - {"", "", modname .. ":panel_" .. subname}, - {modname .. ":panel_" .. subname, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_half_raised 7", - recipe = { - {modname .. ":panel_" .. subname, "", ""}, - {recipeitem, recipeitem, modname .. ":panel_" .. subname}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_half_raised 7", - recipe = { - {"", "", modname .. ":panel_" .. subname}, - {modname .. ":panel_" .. subname, recipeitem, recipeitem}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - ---===================================================== Inner == - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner 7", - recipe = { - {modname .. ":stair_" .. subname .. "_half", "", ""}, - {recipeitem, modname .. ":stair_" .. subname .. "_half", ""}, - {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner 7", - recipe = { - {"", "", modname .. ":stair_" .. subname .. "_half"}, - {"", modname .. ":stair_" .. subname .. "_half", recipeitem}, - {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner_half 10", - recipe = { - {modname .. ":stair_" .. subname .. "_half", "", ""}, - {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner_half 10", - recipe = { - {"", "", modname .. ":stair_" .. subname .. "_half"}, - {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner_half_raised 7", - recipe = { - {modname .. ":stair_" .. subname .. "_half", "", ""}, - {recipeitem, recipeitem, modname .. ":stair_" .. subname .. "_half"}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_inner_half_raised 7", - recipe = { - {"", "", modname .. ":stair_" .. subname .. "_half"}, - {modname .. ":stair_" .. subname .. "_half", recipeitem, recipeitem}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - ---===================================================== Outer == - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer 7", - recipe = { - {modname .. ":micro_" .. subname, "", ""}, - {recipeitem, modname .. ":micro_" .. subname, ""}, - {recipeitem, recipeitem, modname .. ":micro_" .. subname}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer 7", - recipe = { - {"", "", modname .. ":micro_" .. subname}, - {"", modname .. ":micro_" .. subname, recipeitem}, - {modname .. ":micro_" .. subname, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer_half 10", - recipe = { - {modname .. ":micro_" .. subname, "", ""}, - {recipeitem, recipeitem, modname .. ":micro_" .. subname}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer_half 10", - recipe = { - {"", "", modname .. ":micro_" .. subname}, - {modname .. ":micro_" .. subname, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer_half_raised 7", - recipe = { - {modname .. ":micro_" .. subname, "", ""}, - {recipeitem, recipeitem, modname .. ":micro_" .. subname}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - - minetest.register_craft({ - output = modname .. ":slope_" .. subname .. "_outer_half_raised 7", - recipe = { - {"", "", modname .. ":micro_" .. subname}, - {modname .. ":micro_" .. subname, recipeitem, recipeitem}, - {recipeitem, recipeitem, recipeitem}, - }, - }) - ---================================================= Shapeless == - - minetest.register_craft({ - type = "shapeless", - output = recipeitem, - recipe = {modname .. ":slope_" .. subname, modname .. ":slope_" .. subname}, - }) - - minetest.register_craft({ - type = "shapeless", - output = recipeitem, - recipe = {modname .. ":slope_" .. subname .. "_outer_cut", modname .. ":slope_" .. subname .. "_outer_cut"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = recipeitem, - recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half_raised"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = recipeitem, - recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", - modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slab_" .. subname, - recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_half_raised", - recipe = {modname .. ":slope_" .. subname .. "_half", modname .. ":slope_" .. subname .. "_half", - modname .. ":slope_" .. subname .. "_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_half_raised", - recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_inner_half_raised", - recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_inner_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_half_raised", - recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_cut_half_raised", - recipe = {modname .. ":slab_" .. subname, modname .. ":slope_" .. subname .. "_outer_cut_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_cut", - recipe = {modname .. ":slope_" .. subname .. "_outer"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_cut_half", - recipe = {modname .. ":slope_" .. subname .. "_outer_half"}, - }) - - minetest.register_craft({ - type = "shapeless", - output = modname .. ":slope_" .. subname .. "_outer_cut_half_raised", - recipe = {modname .. ":slope_" .. subname .. "_outer_half_raised"}, - }) -end diff --git a/mods/moreblocks/stairsplus/stairs.lua b/mods/moreblocks/stairsplus/stairs.lua old mode 100644 new mode 100755 index a93cda08..a4f54e39 --- a/mods/moreblocks/stairsplus/stairs.lua +++ b/mods/moreblocks/stairsplus/stairs.lua @@ -1,11 +1,10 @@ ---[[ -More Blocks: stair definitions - -Copyright (c) 2011-2015 Calinou and contributors. -Licensed under the zlib license. See LICENSE.md for more information. ---]] - -local S = moreblocks.intllib +local S -- Load translation library if intllib is installed: +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 -- Node will be called :stair_ @@ -117,11 +116,11 @@ function stairsplus:register_stair(modname, subname, recipeitem, fields) end def.description = desc if fields.drop then - def.drop = modname .. ":stair_" .. fields.drop .. alternate + def.drop = modname.. ":stair_" ..fields.drop..alternate end - minetest.register_node(":" .. modname .. ":stair_" .. subname .. alternate, def) + minetest.register_node(":" ..modname.. ":stair_" ..subname..alternate, def) end - minetest.register_alias("stairs:stair_" .. subname, modname .. ":stair_" .. subname) + minetest.register_alias(":stairs:stair_" ..subname, modname.. ":stair_" ..subname) -- Some saw-less recipes: diff --git a/mods/moreblocks/textures/default_brick.png b/mods/moreblocks/textures/default_brick.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/default_fence_overlay.png b/mods/moreblocks/textures/default_fence_overlay.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/invisible.png b/mods/moreblocks/textures/invisible.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_cactus_brick.png b/mods/moreblocks/textures/moreblocks_cactus_brick.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_cactus_checker.png b/mods/moreblocks/textures/moreblocks_cactus_checker.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png b/mods/moreblocks/textures/moreblocks_circle_stone_bricks.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png b/mods/moreblocks/textures/moreblocks_circular_saw_bottom.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_side.png b/mods/moreblocks/textures/moreblocks_circular_saw_side.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_circular_saw_top.png b/mods/moreblocks/textures/moreblocks_circular_saw_top.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_clean_glass.png b/mods/moreblocks/textures/moreblocks_clean_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_checker.png b/mods/moreblocks/textures/moreblocks_coal_checker.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_glass.png b/mods/moreblocks/textures/moreblocks_coal_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_coal_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_stone.png b/mods/moreblocks/textures/moreblocks_coal_stone.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png b/mods/moreblocks/textures/moreblocks_coal_stone_bricks.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_empty_bookshelf.png b/mods/moreblocks/textures/moreblocks_empty_bookshelf.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png b/mods/moreblocks/textures/moreblocks_fence_jungle_wood.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_fence_wood.png b/mods/moreblocks/textures/moreblocks_fence_wood.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_glass.png b/mods/moreblocks/textures/moreblocks_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_glow_glass.png b/mods/moreblocks/textures/moreblocks_glow_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_glow_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_grey_bricks.png b/mods/moreblocks/textures/moreblocks_grey_bricks.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_checker.png b/mods/moreblocks/textures/moreblocks_iron_checker.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_glass.png b/mods/moreblocks/textures/moreblocks_iron_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_iron_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_stone.png b/mods/moreblocks/textures/moreblocks_iron_stone.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png b/mods/moreblocks/textures/moreblocks_iron_stone_bricks.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_junglestick.png b/mods/moreblocks/textures/moreblocks_junglestick.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_obsidian_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_plankstone.png b/mods/moreblocks/textures/moreblocks_plankstone.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_plankstone_2.png b/mods/moreblocks/textures/moreblocks_plankstone_2.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_rope.png b/mods/moreblocks/textures/moreblocks_rope.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile.png b/mods/moreblocks/textures/moreblocks_split_stone_tile.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_alt.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png b/mods/moreblocks/textures/moreblocks_split_stone_tile_top.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_stone_tile.png b/mods/moreblocks/textures/moreblocks_stone_tile.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_super_glow_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png b/mods/moreblocks/textures/moreblocks_super_glow_glass_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_sweeper.png b/mods/moreblocks/textures/moreblocks_sweeper.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_tar.png b/mods/moreblocks/textures/moreblocks_tar.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_trap_glass.png b/mods/moreblocks/textures/moreblocks_trap_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_trap_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_glow_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_trap_stone.png b/mods/moreblocks/textures/moreblocks_trap_stone.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png b/mods/moreblocks/textures/moreblocks_trap_super_glow_glass.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_tree_stairsplus.png b/mods/moreblocks/textures/moreblocks_tree_stairsplus.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile.png b/mods/moreblocks/textures/moreblocks_wood_tile.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_center.png b/mods/moreblocks/textures/moreblocks_wood_tile_center.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_full.png b/mods/moreblocks/textures/moreblocks_wood_tile_full.png old mode 100644 new mode 100755 diff --git a/mods/moreblocks/textures/moreblocks_wood_tile_up.png b/mods/moreblocks/textures/moreblocks_wood_tile_up.png old mode 100644 new mode 100755 From 8fc268c41fe6fe0029330c684ac104a1f9ad9359 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 21:08:54 +0100 Subject: [PATCH 27/39] Removed global variables' errors file --- global_to_solve.txt | 82 --------------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 global_to_solve.txt diff --git a/global_to_solve.txt b/global_to_solve.txt deleted file mode 100644 index e1386f70..00000000 --- a/global_to_solve.txt +++ /dev/null @@ -1,82 +0,0 @@ -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/awards/init.lua:8 -14:41:30: WARNING: Undeclared global variable "worldedit" accessed at ...eFun/worldmods/WorldEdit/worldedit_infinity/init.lua:1 -14:41:30: WARNING: Undeclared global variable "check_set" accessed at ...eFun/worldmods/WorldEdit/worldedit_commands/init.lua:830 -14:41:30: WARNING: Undeclared global variable "check_set" accessed at ...eFun/worldmods/WorldEdit/worldedit_commands/init.lua:841 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at .../NodesJustWannaHaveFun/worldmods/moreblocks/init.lua:11 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...naHaveFun/worldmods/moreblocks/stairsplus/stairs.lua:2 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...nnaHaveFun/worldmods/moreblocks/stairsplus/slabs.lua:2 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...naHaveFun/worldmods/moreblocks/stairsplus/panels.lua:2 -14:41:30: WARNING: Undeclared global variable "intllib" accessed at ...eFun/worldmods/moreblocks/stairsplus/microblocks.lua:2 -14:41:30: ERROR[main]: Assignment to undeclared global "v" inside a function at ...ds/NodesJustWannaHaveFun/worldmods/snow/src/util.lua:51. -14:41:30: ERROR[main]: Assignment to undeclared global "i" inside a function at ...ds/NodesJustWannaHaveFun/worldmods/snow/src/util.lua:51. -14:41:30: WARNING: Undeclared global variable "skins" accessed at ...s/NodesJustWannaHaveFun/worldmods/snow/src/nodes.lua:69 -14:41:30: WARNING: Undeclared global variable "HUD" accessed at ...ds/NodesJustWannaHaveFun/worldmods/snow/src/sled.lua:71 -14:41:30: WARNING: Undeclared global variable "drop" accessed at ...esJustWannaHaveFun/worldmods/snow/src/stairsplus.lua:276 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:15 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:25 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:35 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:46 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:57 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:78 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:88 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:98 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:108 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:121 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:133 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:143 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:153 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:166 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:176 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:186 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:196 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:206 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:216 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:226 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:237 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:249 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:270 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:281 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:291 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:301 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:311 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:322 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:332 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:342 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:352 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:362 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:374 -14:41:30: WARNING: Undeclared global variable "maptools_creative" accessed at ...ustWannaHaveFun/worldmods/maptools/default_nodes.lua:384 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:109 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:141 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:169 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:197 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:225 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:253 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:282 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:310 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:338 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:366 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:394 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:422 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:450 -14:41:30: WARNING: Undeclared global variable "x21" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:451 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:478 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:506 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:534 -14:41:30: WARNING: Undeclared global variable "p3" accessed at ...rlds/NodesJustWannaHaveFun/worldmods/fences/init.lua:661 -14:41:30: WARNING: Undeclared global variable "convert_base" accessed at ...ustWannaHaveFun/worldmods/mesecons/mesecons/util.lua:104 -14:41:31: WARNING: Undeclared global variable "handle_timer" accessed at ...n/worldmods/mesecons/mesecons_luacontroller/init.lua:562 -14:41:31: WARNING: Undeclared global variable "selectionbox" accessed at ...n/worldmods/mesecons/mesecons_luacontroller/init.lua:603 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:36 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:82 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:128 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:174 -14:41:31: WARNING: Undeclared global variable "cp" accessed at ...dmods/homedecor_modpack/fake_fire/modfiles/nodes.lua:356 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at ...JustWannaHaveFun/worldmods/unified_inventory/api.lua:2 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at ...annaHaveFun/worldmods/unified_inventory/internal.lua:2 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at ...annaHaveFun/worldmods/unified_inventory/register.lua:2 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at ...ustWannaHaveFun/worldmods/unified_inventory/bags.lua:7 -14:41:31: WARNING: Undeclared global variable "inventory_plus" accessed at ...stWannaHaveFun/worldmods/3d_armor/3d_armor/armor.lua:40 -14:41:31: WARNING: Undeclared global variable "intllib" accessed at .../worlds/NodesJustWannaHaveFun/worldmods/food/api.lua:11 -14:41:31: ERROR[main]: Assignment to undeclared global "mod" inside a function at .../worlds/NodesJustWannaHaveFun/worldmods/food/api.lua:44. -14:41:31: ERROR[main]: Assignment to undeclared global "g" inside a function at .../worlds/NodesJustWannaHaveFun/worldmods/food/api.lua:63. From a9c5df278e9ba6defcec111aec5c8a478f266c82 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 21:16:00 +0100 Subject: [PATCH 28/39] Made superapples harder to craft - Changed craft recipe for default:superapple, now using : "default:apple","default:mese","default:mese" --- minetestforfun_game/mods/default/crafting.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/minetestforfun_game/mods/default/crafting.lua b/minetestforfun_game/mods/default/crafting.lua index d6e4081f..84a7232d 100644 --- a/minetestforfun_game/mods/default/crafting.lua +++ b/minetestforfun_game/mods/default/crafting.lua @@ -630,7 +630,7 @@ minetest.register_craft({ minetest.register_craft({ output = "maptools:superapple", type = "shapeless", - recipe = {"default:apple", "default:mese_crystal_fragment", "default:mese_crystal_fragment"}, + recipe = {"default:apple", "default:mese", "default:mese"}, }) minetest.register_craft({ From 544f6282220fd1a39630b1586d87f39e96423805 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 22:45:27 +0100 Subject: [PATCH 29/39] More global vars --- mods/ambience_modpack/ambience/init.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mods/ambience_modpack/ambience/init.lua b/mods/ambience_modpack/ambience/init.lua index 3a14d97d..64545c8a 100755 --- a/mods/ambience_modpack/ambience/init.lua +++ b/mods/ambience_modpack/ambience/init.lua @@ -252,14 +252,14 @@ end local atleast_nodes_in_grid = function(pos, search_distance, height, node_name, threshold) counter = counter +1 -- minetest.chat_send_all("counter: (" .. counter .. ")") - minp = {x=pos.x-search_distance,y=height, z=pos.z+20} - maxp = {x=pos.x+search_distance,y=height, z=pos.z+20} - nodes = minetest.find_nodes_in_area(minp, maxp, node_name) + local minp = {x=pos.x-search_distance,y=height, z=pos.z+20} + local maxp = {x=pos.x+search_distance,y=height, z=pos.z+20} + local nodes = minetest.find_nodes_in_area(minp, maxp, node_name) -- minetest.chat_send_all("z+Found (" .. node_name .. ": " .. #nodes .. ")") if #nodes >= threshold then return true end - totalnodes = #nodes + local totalnodes = #nodes minp = {x=pos.x-search_distance,y=height, z=pos.z-20} maxp = {x=pos.x+search_distance,y=height, z=pos.z-20} nodes = minetest.find_nodes_in_area(minp, maxp, node_name) From 3b28b09066be11ec8e6a69641b74a366ad7f927a Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Thu, 15 Jan 2015 23:27:03 +0100 Subject: [PATCH 30/39] Loads of fixs --- mods/builtin_falling/func.lua | 2 +- mods/sea/clams/init.lua | 2 +- mods/snow/src/mapgen_v6.lua | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mods/builtin_falling/func.lua b/mods/builtin_falling/func.lua index 5d2a714e..32b0b80e 100755 --- a/mods/builtin_falling/func.lua +++ b/mods/builtin_falling/func.lua @@ -169,7 +169,7 @@ function add_protected_bukket_liquid(nameofbukket,liquidsourcename) return end -- Check if pointing to a buildable node - n = minetest.get_node(pointed_thing.under) + local n = minetest.get_node(pointed_thing.under) if is_protected_area(pointed_thing.under, 7 ,user:get_player_name()) then minetest.chat_send_player(user:get_player_name(),"You cant place here - Too short of a protected area.") diff --git a/mods/sea/clams/init.lua b/mods/sea/clams/init.lua index d9e6a13d..c6f88f75 100755 --- a/mods/sea/clams/init.lua +++ b/mods/sea/clams/init.lua @@ -127,7 +127,7 @@ minetest.register_entity("clams:whiteshell", { self.phase = 0 end self.object:setsprite({x=0, y=self.phase}) - phasearmor = { + local phasearmor = { [0]={fleshy=0}, [1]={fleshy=30}, [2]={fleshy=70} diff --git a/mods/snow/src/mapgen_v6.lua b/mods/snow/src/mapgen_v6.lua index 414fddc2..9f9453ed 100755 --- a/mods/snow/src/mapgen_v6.lua +++ b/mods/snow/src/mapgen_v6.lua @@ -106,7 +106,7 @@ minetest.register_on_generated(function(minp, maxp, seed) local plain = biome == 2 -- spawns not much local alpine = biome == 3 -- rocky terrain -- Water biomes - biome2 = pr:next(1, 5) + local biome2 = pr:next(1, 5) local cool = biome == 1 -- only spawns ice on edge of water local icebergs = biome == 2 local icesheet = biome == 3 From 330d63ae96abfb2e4a26af97fbb3f967b90596d0 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Fri, 16 Jan 2015 22:45:43 +0100 Subject: [PATCH 31/39] Updated fishing mod from Xanthin fork - I found recently that MossManikin's fishing mod is outdated: its last commit has been sent on August 2013. However, there are some forks of it. The mod updated is Xanthin's one. It updates API, and a little bit of global variables. - Variables specifically modified for MFF have been changed to their last state. - The fork works perfectly fine for 0.4.11-dev - It can use intllib for translation --- mods/fishing/bobber.lua | 35 +++++++---- mods/fishing/bobber_shark.lua | 31 ++++++---- mods/fishing/crafting.lua | 0 mods/fishing/depends.txt | 0 mods/fishing/fishes.lua | 25 +++++--- mods/fishing/init.lua | 27 ++++++--- mods/fishing/locale/de.txt | 56 ++++++++++++++++++ mods/fishing/locale/template.txt | 56 ++++++++++++++++++ mods/fishing/settings.txt | 0 mods/fishing/sounds/SoundLicense.txt | 0 mods/fishing/sounds/fishing_bobber1.ogg | Bin mods/fishing/sounds/fishing_bobber2.ogg | Bin .../textures/alternates/fishing_bobber.png | Bin .../alternates/fishing_bobber_bottom.png | Bin .../alternates/fishing_bobber_top.png | Bin .../textures/alternates/fishing_pole.png | Bin .../animal_clownfish_clownfish_item.png | Bin ...l_fish_blue_white_fish_blue_white_item.png | Bin mods/fishing/textures/fishing_bobber.png | Bin .../textures/fishing_bobber_bottom.png | Bin .../textures/fishing_bobber_feather_1.png | Bin mods/fishing/textures/fishing_bobber_top.png | Bin mods/fishing/textures/fishing_deco_pike.png | Bin mods/fishing/textures/fishing_fish.png | Bin mods/fishing/textures/fishing_fish_cooked.png | Bin mods/fishing/textures/fishing_pike.png | Bin mods/fishing/textures/fishing_pike_cooked.png | Bin mods/fishing/textures/fishing_pole.png | Bin mods/fishing/textures/fishing_pole_back.png | Bin mods/fishing/textures/fishing_pole_bottom.png | Bin mods/fishing/textures/fishing_pole_deco.png | Bin mods/fishing/textures/fishing_pole_front.png | Bin mods/fishing/textures/fishing_pole_simple.png | Bin mods/fishing/textures/fishing_pole_top.png | Bin mods/fishing/textures/fishing_shark.png | Bin .../fishing/textures/fishing_shark_cooked.png | Bin mods/fishing/textures/fishing_sushi.png | Bin .../fishing/textures/fishing_trophy_label.png | Bin mods/fishing/textures/fishing_worm.png | Bin .../not_in_use/fishing_bobber_feather_1.png | Bin .../not_in_use/fishing_bobber_feather_2.png | Bin .../not_in_use/fishing_bobber_ready.png | Bin .../not_in_use/fishing_pole_on_use.png | Bin .../old/fishing_bobber_alternate_old.png | Bin .../textures/old/fishing_bobber_old.png | Bin .../textures/old/fishing_pole_wield.png | Bin .../textures/old/fishing_shark_old6.png | Bin mods/fishing/trophies.lua | 18 ++++-- mods/fishing/worm.lua | 14 ++++- 49 files changed, 214 insertions(+), 48 deletions(-) mode change 100755 => 100644 mods/fishing/bobber.lua mode change 100755 => 100644 mods/fishing/bobber_shark.lua mode change 100755 => 100644 mods/fishing/crafting.lua mode change 100755 => 100644 mods/fishing/depends.txt mode change 100755 => 100644 mods/fishing/fishes.lua mode change 100755 => 100644 mods/fishing/init.lua create mode 100644 mods/fishing/locale/de.txt create mode 100644 mods/fishing/locale/template.txt mode change 100755 => 100644 mods/fishing/settings.txt mode change 100755 => 100644 mods/fishing/sounds/SoundLicense.txt mode change 100755 => 100644 mods/fishing/sounds/fishing_bobber1.ogg mode change 100755 => 100644 mods/fishing/sounds/fishing_bobber2.ogg mode change 100755 => 100644 mods/fishing/textures/alternates/fishing_bobber.png mode change 100755 => 100644 mods/fishing/textures/alternates/fishing_bobber_bottom.png mode change 100755 => 100644 mods/fishing/textures/alternates/fishing_bobber_top.png mode change 100755 => 100644 mods/fishing/textures/alternates/fishing_pole.png mode change 100755 => 100644 mods/fishing/textures/animal_clownfish_clownfish_item.png mode change 100755 => 100644 mods/fishing/textures/animal_fish_blue_white_fish_blue_white_item.png mode change 100755 => 100644 mods/fishing/textures/fishing_bobber.png mode change 100755 => 100644 mods/fishing/textures/fishing_bobber_bottom.png mode change 100755 => 100644 mods/fishing/textures/fishing_bobber_feather_1.png mode change 100755 => 100644 mods/fishing/textures/fishing_bobber_top.png mode change 100755 => 100644 mods/fishing/textures/fishing_deco_pike.png mode change 100755 => 100644 mods/fishing/textures/fishing_fish.png mode change 100755 => 100644 mods/fishing/textures/fishing_fish_cooked.png mode change 100755 => 100644 mods/fishing/textures/fishing_pike.png mode change 100755 => 100644 mods/fishing/textures/fishing_pike_cooked.png mode change 100755 => 100644 mods/fishing/textures/fishing_pole.png mode change 100755 => 100644 mods/fishing/textures/fishing_pole_back.png mode change 100755 => 100644 mods/fishing/textures/fishing_pole_bottom.png mode change 100755 => 100644 mods/fishing/textures/fishing_pole_deco.png mode change 100755 => 100644 mods/fishing/textures/fishing_pole_front.png mode change 100755 => 100644 mods/fishing/textures/fishing_pole_simple.png mode change 100755 => 100644 mods/fishing/textures/fishing_pole_top.png mode change 100755 => 100644 mods/fishing/textures/fishing_shark.png mode change 100755 => 100644 mods/fishing/textures/fishing_shark_cooked.png mode change 100755 => 100644 mods/fishing/textures/fishing_sushi.png mode change 100755 => 100644 mods/fishing/textures/fishing_trophy_label.png mode change 100755 => 100644 mods/fishing/textures/fishing_worm.png mode change 100755 => 100644 mods/fishing/textures/not_in_use/fishing_bobber_feather_1.png mode change 100755 => 100644 mods/fishing/textures/not_in_use/fishing_bobber_feather_2.png mode change 100755 => 100644 mods/fishing/textures/not_in_use/fishing_bobber_ready.png mode change 100755 => 100644 mods/fishing/textures/not_in_use/fishing_pole_on_use.png mode change 100755 => 100644 mods/fishing/textures/old/fishing_bobber_alternate_old.png mode change 100755 => 100644 mods/fishing/textures/old/fishing_bobber_old.png mode change 100755 => 100644 mods/fishing/textures/old/fishing_pole_wield.png mode change 100755 => 100644 mods/fishing/textures/old/fishing_shark_old6.png mode change 100755 => 100644 mods/fishing/trophies.lua mode change 100755 => 100644 mods/fishing/worm.lua diff --git a/mods/fishing/bobber.lua b/mods/fishing/bobber.lua old mode 100755 new mode 100644 index 5600c58b..31f3e388 --- a/mods/fishing/bobber.lua +++ b/mods/fishing/bobber.lua @@ -5,6 +5,15 @@ -- Supports: 3d_armor, animal_clownfish, animal_fish_blue_white, animal_rat, flowers_plus, mobs, seaplants ----------------------------------------------------------------------------------------------- +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + local PoLeWeaR = (65535/(30-(math.random(15, 29)))) local BooTSWear = (2000*(math.random(20, 29))) -- Here's what you can catch @@ -98,11 +107,11 @@ local FISHING_BOBBER_ENTITY={ on_punch = function (self, puncher, time_from_last_punch, tool_capabilities, dir) local player = puncher:get_player_name() local inv = puncher:get_inventory() - if MESSAGES == true then minetest.chat_send_player(player, "You didn't catch anything.", false) end -- fish escaped + if MESSAGES == true then minetest.chat_send_player(player, S("You didn't catch anything."), false) end -- fish escaped if not minetest.setting_getbool("creative_mode") then if inv:room_for_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) then inv:add_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) - if MESSAGES == true then minetest.chat_send_player(player, "The bait is still there.", false) end -- bait still there + if MESSAGES == true then minetest.chat_send_player(player, S("The bait is still there."), false) end -- bait still there end end -- make sound and remove bobber @@ -130,12 +139,12 @@ local FISHING_BOBBER_ENTITY={ minetest.add_node({x=pos.x, y=pos.y, z=pos.z}, {name="air"}) if inv:room_for_item("main", {name=DRoP, count=1, wear=0, metadata=""}) then inv:add_item("main", {name=DRoP, count=1, wear=0, metadata=""}) - if MESSAGES == true then say(player, "You caught "..MeSSaGe, false) end -- caught Plant + if MESSAGES == true then say(player, S("You caught "..MeSSaGe), false) end -- caught Plant end if not minetest.setting_getbool("creative_mode") then if inv:room_for_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) then inv:add_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) - if MESSAGES == true then say(player, "The bait is still there.", false) end -- bait still there + if MESSAGES == true then say(player, S("The bait is still there."), false) end -- bait still there end end end @@ -145,7 +154,7 @@ local FISHING_BOBBER_ENTITY={ -- catch visible fish and invisible stuff if self.object:get_hp() <= 300 then if math.random(1, 100) < FISH_CHANCE then - local chance = math.random(1, 122) -- ><((((º> + local chance = math.random(1, 122) -- ><((((º> for i in pairs(CaTCH) do local MoD = CaTCH[i][1] local iTeM = CaTCH[i][2] @@ -164,42 +173,42 @@ local FISHING_BOBBER_ENTITY={ MoD = "animal_fish_blue_white" iTeM = "fish_blue_white" WeaR = 0 - MeSSaGe = "a Blue white fish." + MeSSaGe = S("a Blue white fish.") obj:remove() end end -- add (in)visible fish to inventory if inv:room_for_item("main", {name=MoD..":"..iTeM, count=1, wear=WeaR, metadata=""}) then inv:add_item("main", {name=MoD..":"..iTeM, count=1, wear=WeaR, metadata=""}) - if MESSAGES == true then say(player, "You caught "..MeSSaGe, false) end -- caught somethin' + if MESSAGES == true then say(player, S("You caught "..MeSSaGe), false) end -- caught somethin' end if not minetest.setting_getbool("creative_mode") then if GeTBaiTBack == true then if inv:room_for_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) then inv:add_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) - if MESSAGES == true then say(player, "The bait is still there.", false) end -- bait still there? + if MESSAGES == true then say(player, S("The bait is still there."), false) end -- bait still there? end end end else if inv:room_for_item("main", {name="fishing:fish_raw", count=1, wear=0, metadata=""}) then inv:add_item("main", {name="fishing:fish_raw", count=1, wear=0, metadata=""}) - if MESSAGES == true then say(player, "You caught a Fish.", false) end -- caught Fish + if MESSAGES == true then say(player, S("You caught a Fish."), false) end -- caught Fish end end end end else --if math.random(1, 100) > FISH_CHANCE then - if MESSAGES == true then say(player, "Your fish escaped.", false) end -- fish escaped + if MESSAGES == true then say(player, S("Your fish escaped."), false) end -- fish escaped end end if self.object:get_hp() > 300 and minetest.get_node(pos).name == "air" then - if MESSAGES == true then say(player, "You didn't catch anything.", false) end -- fish escaped + if MESSAGES == true then say(player, S("You didn't catch anything."), false) end -- fish escaped if not minetest.setting_getbool("creative_mode") then if math.random(1, 2) == 1 then if inv:room_for_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) then inv:add_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) - if MESSAGES == true then say(player, "The bait is still there.", false) end -- bait still there + if MESSAGES == true then say(player, S("The bait is still there."), false) end -- bait still there end end end @@ -307,4 +316,4 @@ local FISHING_BOBBER_ENTITY={ end, } -minetest.register_entity("fishing:bobber_entity", FISHING_BOBBER_ENTITY) \ No newline at end of file +minetest.register_entity("fishing:bobber_entity", FISHING_BOBBER_ENTITY) diff --git a/mods/fishing/bobber_shark.lua b/mods/fishing/bobber_shark.lua old mode 100755 new mode 100644 index 858f5327..ede4de25 --- a/mods/fishing/bobber_shark.lua +++ b/mods/fishing/bobber_shark.lua @@ -3,6 +3,15 @@ -- License (code & textures): WTFPL ----------------------------------------------------------------------------------------------- +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + -- Here's what you can catch if you use a fish as bait local CaTCH_BiG = { -- MoD iTeM WeaR MeSSaGe ("You caught "..) GeTBaiTBack NRMiN CHaNCe (../120) @@ -54,7 +63,7 @@ local FISHING_BOBBER_ENTITY_SHARK={ -- DESTROY BOBBER WHEN PUNCHING IT on_punch = function (self, puncher, time_from_last_punch, tool_capabilities, dir) local player = puncher:get_player_name() - if MESSAGES == true then minetest.chat_send_player(player, "Your fish escaped.", false) end -- fish escaped + if MESSAGES == true then minetest.chat_send_player(player, S("Your fish escaped."), false) end -- fish escaped minetest.sound_play("fishing_bobber1", { pos = self.object:getpos(), gain = 0.5, @@ -79,12 +88,12 @@ local FISHING_BOBBER_ENTITY_SHARK={ minetest.add_node({x=pos.x, y=pos.y, z=pos.z}, {name="air"}) if inv:room_for_item("main", {name=DRoP, count=1, wear=0, metadata=""}) then inv:add_item("main", {name=DRoP, count=1, wear=0, metadata=""}) - if MESSAGES == true then say(player, "You caught "..MeSSaGe, false) end -- caught Plant + if MESSAGES == true then say(player, S("You caught "..MeSSaGe), false) end -- caught Plant end if not minetest.setting_getbool("creative_mode") then if inv:room_for_item("main", {name="fishing:fish_raw", count=1, wear=0, metadata=""}) then inv:add_item("main", {name="fishing:bait_worm", count=1, wear=0, metadata=""}) - if MESSAGES == true then say(player, "The bait is still there.", false) end -- bait still there + if MESSAGES == true then say(player, S("The bait is still there."), false) end -- bait still there end end end @@ -93,7 +102,7 @@ local FISHING_BOBBER_ENTITY_SHARK={ --elseif minetest.get_node(pos).name == "air" then if self.object:get_hp() <= 300 then if math.random(1, 100) < SHARK_CHANCE then - local chance = math.random(1, 5) -- ><((((º> + local chance = math.random(1, 5) -- ><((((º> for i in pairs(CaTCH_BiG) do local MoD = CaTCH_BiG[i][1] local iTeM = CaTCH_BiG[i][2] @@ -107,13 +116,13 @@ local FISHING_BOBBER_ENTITY_SHARK={ if minetest.get_modpath(MoD) ~= nil then if inv:room_for_item("main", {name=MoD..":"..iTeM, count=1, wear=WeaR, metadata=""}) then inv:add_item("main", {name=MoD..":"..iTeM, count=1, wear=WeaR, metadata=""}) - if MESSAGES == true then say(player, "You caught "..MeSSaGe, false) end -- caught somethin' + if MESSAGES == true then say(player, S("You caught "..MeSSaGe), false) end -- caught somethin' end if not minetest.setting_getbool("creative_mode") then if GeTBaiTBack == true then if inv:room_for_item("main", {name="fishing:fish_raw", count=1, wear=0, metadata=""}) then inv:add_item("main", {name="fishing:fish_raw", count=1, wear=0, metadata=""}) - if MESSAGES == true then say(player, "The bait is still there.", false) end -- bait still there? + if MESSAGES == true then say(player, S("The bait is still there."), false) end -- bait still there? end end end @@ -121,23 +130,23 @@ local FISHING_BOBBER_ENTITY_SHARK={ end end else --if math.random(1, 100) > FISH_CHANCE then - if MESSAGES == true then say(player, "Your fish escaped.", false) end -- fish escaped + if MESSAGES == true then say(player, S("Your fish escaped."), false) end -- fish escaped end end if self.object:get_hp() > 300 and minetest.get_node(pos).name == "air" then - if MESSAGES == true then say(player, "You didn't catch any fish.", false) end -- fish escaped + if MESSAGES == true then say(player, S("You didn't catch any fish."), false) end -- fish escaped if not minetest.setting_getbool("creative_mode") then if math.random(1, 3) == 1 then if inv:room_for_item("main", {name="fishing:fish_raw", count=1, wear=0, metadata=""}) then inv:add_item("main", {name="fishing:fish_raw", count=1, wear=0, metadata=""}) - if MESSAGES == true then say(player, "The bait is still there.", false) end -- bait still there + if MESSAGES == true then say(player, S("The bait is still there."), false) end -- bait still there end end end end --end else - if MESSAGES == true then say(player, "Your fish escaped.", false) end -- fish escaped + if MESSAGES == true then say(player, S("Your fish escaped."), false) end -- fish escaped end minetest.sound_play("fishing_bobber1", { pos = self.object:getpos(), @@ -220,4 +229,4 @@ local FISHING_BOBBER_ENTITY_SHARK={ end, } -minetest.register_entity("fishing:bobber_entity_shark", FISHING_BOBBER_ENTITY_SHARK) \ No newline at end of file +minetest.register_entity("fishing:bobber_entity_shark", FISHING_BOBBER_ENTITY_SHARK) diff --git a/mods/fishing/crafting.lua b/mods/fishing/crafting.lua old mode 100755 new mode 100644 diff --git a/mods/fishing/depends.txt b/mods/fishing/depends.txt old mode 100755 new mode 100644 diff --git a/mods/fishing/fishes.lua b/mods/fishing/fishes.lua old mode 100755 new mode 100644 index 1290e1c2..5faca951 --- a/mods/fishing/fishes.lua +++ b/mods/fishing/fishes.lua @@ -3,11 +3,20 @@ -- License (code & textures): WTFPL ----------------------------------------------------------------------------------------------- +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + ----------------------------------------------------------------------------------------------- -- Fish ----------------------------------------------------------------------------------------------- minetest.register_craftitem("fishing:fish_raw", { - description = "Fish", + description = S("Fish"), groups = {}, inventory_image = "fishing_fish.png", on_use = minetest.item_eat(2), @@ -16,7 +25,7 @@ minetest.register_craftitem("fishing:fish_raw", { -- Roasted Fish ----------------------------------------------------- minetest.register_craftitem("fishing:fish", { - description = "Roasted Fish", + description = S("Roasted Fish"), groups = {}, inventory_image = "fishing_fish_cooked.png", on_use = minetest.item_eat(4), @@ -25,7 +34,7 @@ minetest.register_craftitem("fishing:fish_raw", { -- Sushi ----------------------------------------------------- minetest.register_craftitem("fishing:sushi", { - description = "Sushi (Hoso Maki)", + description = S("Sushi (Hoso Maki)"), groups = {}, inventory_image = "fishing_sushi.png", on_use = minetest.item_eat(6), @@ -35,7 +44,7 @@ minetest.register_craftitem("fishing:fish_raw", { -- Whatthef... it's a freakin' Shark! ----------------------------------------------------------------------------------------------- minetest.register_craftitem("fishing:shark", { - description = "Shark", + description = S("Shark"), groups = {}, inventory_image = "fishing_shark.png", on_use = minetest.item_eat(2), @@ -44,7 +53,7 @@ minetest.register_craftitem("fishing:shark", { -- Roasted Shark ----------------------------------------------------- minetest.register_craftitem("fishing:shark_cooked", { - description = "Roasted Shark", + description = S("Roasted Shark"), groups = {}, inventory_image = "fishing_shark_cooked.png", on_use = minetest.item_eat(6), @@ -54,7 +63,7 @@ minetest.register_craftitem("fishing:shark", { -- Pike ----------------------------------------------------------------------------------------------- minetest.register_craftitem("fishing:pike", { - description = "Northern Pike", + description = S("Northern Pike"), groups = {}, inventory_image = "fishing_pike.png", on_use = minetest.item_eat(2), @@ -63,8 +72,8 @@ minetest.register_craftitem("fishing:pike", { -- Roasted Pike ----------------------------------------------------- minetest.register_craftitem("fishing:pike_cooked", { - description = "Roasted Northern Pike", + description = S("Roasted Northern Pike"), groups = {}, inventory_image = "fishing_pike_cooked.png", on_use = minetest.item_eat(6), - }) \ No newline at end of file + }) diff --git a/mods/fishing/init.lua b/mods/fishing/init.lua old mode 100755 new mode 100644 index 6487db9e..ffdea4dc --- a/mods/fishing/init.lua +++ b/mods/fishing/init.lua @@ -26,6 +26,15 @@ local mname = "fishing" ----------------------------------------------------------------------------------------------- +-- 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 + dofile(minetest.get_modpath("fishing").."/settings.txt") dofile(minetest.get_modpath("fishing").."/bobber.lua") dofile(minetest.get_modpath("fishing").."/bobber_shark.lua") @@ -45,7 +54,7 @@ end minetest.register_tool("fishing:pole", { - description = "Fishing Pole", + description = S("Fishing Pole"), groups = {}, inventory_image = "fishing_pole.png", wield_image = "fishing_pole.png^[transformFXR270", @@ -117,7 +126,7 @@ minetest.register_tool("fishing:pole", { if SIMPLE_DECO_FISHING_POLE == true then minetest.register_node("fishing:pole_deco", { - description = "Fishing Pole", + description = S("Fishing Pole"), inventory_image = "fishing_pole.png", wield_image = "fishing_pole.png^[transformFXR270", drawtype = "nodebox", @@ -159,7 +168,7 @@ minetest.register_node("fishing:pole_deco", { else minetest.register_node("fishing:pole_deco", { - description = "Fishing Pole", + description = S("Fishing Pole"), inventory_image = "fishing_pole.png", wield_image = "fishing_pole.png^[transformFXR270", drawtype = "nodebox", @@ -229,7 +238,7 @@ end if NEW_WORM_SOURCE == false then minetest.register_node(":default:dirt", { - description = "Dirt", + description = S("Dirt"), tiles = {"default_dirt.png"}, is_ground_content = true, groups = {crumbly=3}, @@ -310,28 +319,28 @@ end -- didn't change the hoes, just here because hoe_on_use is local minetest.register_tool(":farming:hoe_wood", { - description = "Wooden Hoe", + description = S("Wooden Hoe"), inventory_image = "farming_tool_woodhoe.png", on_use = function(itemstack, user, pointed_thing) return hoe_on_use(itemstack, user, pointed_thing, 30) end, }) minetest.register_tool(":farming:hoe_stone", { - description = "Stone Hoe", + description = S("Stone Hoe"), inventory_image = "farming_tool_stonehoe.png", on_use = function(itemstack, user, pointed_thing) return hoe_on_use(itemstack, user, pointed_thing, 90) end, }) minetest.register_tool(":farming:hoe_steel", { - description = "Steel Hoe", + description = S("Steel Hoe"), inventory_image = "farming_tool_steelhoe.png", on_use = function(itemstack, user, pointed_thing) return hoe_on_use(itemstack, user, pointed_thing, 200) end, }) minetest.register_tool(":farming:hoe_bronze", { - description = "Bronze Hoe", + description = S("Bronze Hoe"), inventory_image = "farming_tool_bronzehoe.png", on_use = function(itemstack, user, pointed_thing) return hoe_on_use(itemstack, user, pointed_thing, 220) @@ -341,4 +350,4 @@ minetest.register_tool(":farming:hoe_bronze", { end ----------------------------------------------------------------------------------------------- print("[Mod] "..title.." ["..version.."] ["..mname.."] Loaded...") ------------------------------------------------------------------------------------------------ \ No newline at end of file +----------------------------------------------------------------------------------------------- diff --git a/mods/fishing/locale/de.txt b/mods/fishing/locale/de.txt new file mode 100644 index 00000000..0e1ea572 --- /dev/null +++ b/mods/fishing/locale/de.txt @@ -0,0 +1,56 @@ +# Translation by Xanthin + +### bobber.lua ### +You caught a Fish. = Du hast einen Fisch gefangen. +You caught a Clownfish. = Du hast einen Clownfisch gefangen. +You caught a Blue white fish. = Du hast einen blau-weissen Fisch gefangen. +You caught a Twig. = Du hast einen Zweig gefangen. +You caught a Rat. = Du hast eine Ratte gefangen. +You caught some Seaweed. = Du hast etwas Seetang gefangen. +You caught a Green Kelp. = Du hast etwas gruenen Kelp gefangen. +You caught a String. = Du hast eine Schnur gefangen. +You caught an old Fishing Pole. = Du hast eine alte Angelrute gefangen. +You caught some very old Boots. = Du hast ein Paar sehr alte Schuhe gefangen. +You caught a Waterlily. = Du hast eine Seerose gefangen. +You didn't catch anything. = Du hast nichts gefangen. +The bait is still there. = Der Koeder ist noch vorhanden. +Your fish escaped. = Dein Fisch ist entkommen. + +### bobber_shark.lua ### +You caught a small Shark. = Du hast einen kleinen Hai gefangen. +You caught a Northern Pike. = Du hast einen Hecht gefangen. +You didn't catch any fish. = Du hast keinen Fisch gefangen. + +### crafting.lua ### +### fishes.lua ### +Fish = Fisch +Roasted Fish = Gebratener Fisch +Sushi (Hoso Maki) = Sushi (Hoso Maki) +Shark = Hai +Roasted Shark = Gebratener Hai +Northern Pike = Hecht +Roasted Northern Pike = Gebratener Hecht + +### init.lua ### +Fishing Pole = Angelrute +Dirt = Erde +Wooden Hoe = Holzhacke +Stone Hoe = Steinhacke +Steel Hoe = Stahlhacke +Bronze Hoe = Bronzehacke + +### trophies.lua ### +Fish Trophy = Fisch-Trophaee +Northern Pike Trophy = Hecht-Trophaee +Shark Trophy = Hai-Trophaee +Clownfish Trophy = Clownfisch-Trophaee +Blue white fish Trophy = Blau-weisser-Fisch-Trophaee +Trophy = Trophaee +This Huge Fish was caught by the Famous Angler %s ! = Dieser riesige Fisch wurde vom beruehmten Angler %s gefangen! +This Huge Northern Pike was caught by the Famous Angler %s ! = Dieser riesige Hecht wurde vom beruehmten Angler %s gefangen! +This Huge Shark was caught by the Famous Angler %s ! = Dieser riesige Hai wurde vom beruehmten Angler %s gefangen! +This Huge Clownfish was caught by the Famous Angler %s ! = Dieser riesige Clownfisch wurde vom beruehmten Angler %s gefangen! +This Huge Blue white fish was caught by the Famous Angler %s ! = Dieser riesige blau-weisse Fisch wurde vom beruehmten Angler %s gefangen! + +### worms.lua ### +Worm = Wurm diff --git a/mods/fishing/locale/template.txt b/mods/fishing/locale/template.txt new file mode 100644 index 00000000..3ed36dc8 --- /dev/null +++ b/mods/fishing/locale/template.txt @@ -0,0 +1,56 @@ +# Template + +### bobber.lua ### +You caught a Fish. = +You caught a Clownfish. = +You caught a Blue white fish. = +You caught a Twig. = +You caught a Rat. = +You caught some Seaweed. = +You caught a Green Kelp. = +You caught a String. = +You caught an old Fishing Pole. = +You caught some very old Boots. = +You caught a Waterlily. = +You didn't catch anything. = +The bait is still there. = +Your fish escaped. = + +### bobber_shark.lua ### +You caught small Shark. = +You caught a Northern Pike. = +You didn't catch any fish. = + +### crafting.lua ### +### fishes.lua ### +Fish = +Roasted Fish = +Sushi (Hoso Maki) = +Shark = +Roasted Shark = +Northern Pike = +Roasted Northern Pike = + +### init.lua ### +Fishing Pole = +Dirt = +Wooden Hoe = +Stone Hoe = +Steel Hoe = +Bronze Hoe = + +### trophies.lua ### +Fish Trophy = +Northern Pike Trophy = +Shark Trophy = +Clownfish Trophy = +Blue white fish Trophy = +Trophy = +This Huge Fish was caught by the Famous Angler %s ! = +This Huge Northern Pike was caught by the Famous Angler %s ! = +This Huge Shark was caught by the Famous Angler %s ! = +This Huge Clownfish was caught by the Famous Angler %s ! = +This Huge Blue white fish was caught by the Famous Angler %s ! = + +### worms.lua ### +Worm = diff --git a/mods/fishing/settings.txt b/mods/fishing/settings.txt old mode 100755 new mode 100644 diff --git a/mods/fishing/sounds/SoundLicense.txt b/mods/fishing/sounds/SoundLicense.txt old mode 100755 new mode 100644 diff --git a/mods/fishing/sounds/fishing_bobber1.ogg b/mods/fishing/sounds/fishing_bobber1.ogg old mode 100755 new mode 100644 diff --git a/mods/fishing/sounds/fishing_bobber2.ogg b/mods/fishing/sounds/fishing_bobber2.ogg old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/alternates/fishing_bobber.png b/mods/fishing/textures/alternates/fishing_bobber.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/alternates/fishing_bobber_bottom.png b/mods/fishing/textures/alternates/fishing_bobber_bottom.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/alternates/fishing_bobber_top.png b/mods/fishing/textures/alternates/fishing_bobber_top.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/alternates/fishing_pole.png b/mods/fishing/textures/alternates/fishing_pole.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/animal_clownfish_clownfish_item.png b/mods/fishing/textures/animal_clownfish_clownfish_item.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/animal_fish_blue_white_fish_blue_white_item.png b/mods/fishing/textures/animal_fish_blue_white_fish_blue_white_item.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_bobber.png b/mods/fishing/textures/fishing_bobber.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_bobber_bottom.png b/mods/fishing/textures/fishing_bobber_bottom.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_bobber_feather_1.png b/mods/fishing/textures/fishing_bobber_feather_1.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_bobber_top.png b/mods/fishing/textures/fishing_bobber_top.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_deco_pike.png b/mods/fishing/textures/fishing_deco_pike.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_fish.png b/mods/fishing/textures/fishing_fish.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_fish_cooked.png b/mods/fishing/textures/fishing_fish_cooked.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_pike.png b/mods/fishing/textures/fishing_pike.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_pike_cooked.png b/mods/fishing/textures/fishing_pike_cooked.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_pole.png b/mods/fishing/textures/fishing_pole.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_pole_back.png b/mods/fishing/textures/fishing_pole_back.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_pole_bottom.png b/mods/fishing/textures/fishing_pole_bottom.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_pole_deco.png b/mods/fishing/textures/fishing_pole_deco.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_pole_front.png b/mods/fishing/textures/fishing_pole_front.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_pole_simple.png b/mods/fishing/textures/fishing_pole_simple.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_pole_top.png b/mods/fishing/textures/fishing_pole_top.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_shark.png b/mods/fishing/textures/fishing_shark.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_shark_cooked.png b/mods/fishing/textures/fishing_shark_cooked.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_sushi.png b/mods/fishing/textures/fishing_sushi.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_trophy_label.png b/mods/fishing/textures/fishing_trophy_label.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/fishing_worm.png b/mods/fishing/textures/fishing_worm.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/not_in_use/fishing_bobber_feather_1.png b/mods/fishing/textures/not_in_use/fishing_bobber_feather_1.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/not_in_use/fishing_bobber_feather_2.png b/mods/fishing/textures/not_in_use/fishing_bobber_feather_2.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/not_in_use/fishing_bobber_ready.png b/mods/fishing/textures/not_in_use/fishing_bobber_ready.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/not_in_use/fishing_pole_on_use.png b/mods/fishing/textures/not_in_use/fishing_pole_on_use.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/old/fishing_bobber_alternate_old.png b/mods/fishing/textures/old/fishing_bobber_alternate_old.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/old/fishing_bobber_old.png b/mods/fishing/textures/old/fishing_bobber_old.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/old/fishing_pole_wield.png b/mods/fishing/textures/old/fishing_pole_wield.png old mode 100755 new mode 100644 diff --git a/mods/fishing/textures/old/fishing_shark_old6.png b/mods/fishing/textures/old/fishing_shark_old6.png old mode 100755 new mode 100644 diff --git a/mods/fishing/trophies.lua b/mods/fishing/trophies.lua old mode 100755 new mode 100644 index ebe7edb8..d2446450 --- a/mods/fishing/trophies.lua +++ b/mods/fishing/trophies.lua @@ -5,6 +5,15 @@ -- Supports: animal_clownfish, animal_fish_blue_white ----------------------------------------------------------------------------------------------- +-- Boilerplate to support localized strings if intllib mod is installed. +local S +if (minetest.get_modpath("intllib")) then + dofile(minetest.get_modpath("intllib").."/intllib.lua") + S = intllib.Getter(minetest.get_current_modname()) +else + S = function ( s ) return s end +end + local TRoPHY = { -- MoD iTeM NaMe iCoN {"fishing", "fish_raw", "Fish", "fishing_fish.png"}, @@ -27,7 +36,7 @@ for i in pairs(TRoPHY) do local NaMe = TRoPHY[i][3] local iCoN = TRoPHY[i][4] minetest.register_node("fishing:trophy_"..iTeM, { - description = NaMe.." Trophy", + description = S(NaMe.." Trophy"), inventory_image = "default_chest_top.png^"..iCoN.."^fishing_trophy_label.png", drawtype = "nodebox", tiles = { @@ -58,9 +67,8 @@ for i in pairs(TRoPHY) do 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", "This Huge "..NaMe.." was caught by the Famous Angler ".. - meta:get_string("owner").."!") + meta:set_string("owner", placer:get_player_name() or "") + meta:set_string("infotext", S("This Huge "..NaMe.." was caught by the Famous Angler %s !"):format((placer:get_player_name() or ""))) end, on_construct = function(pos) local meta = minetest.get_meta(pos) @@ -79,4 +87,4 @@ for i in pairs(TRoPHY) do recipe = {MoD..":"..iTeM, "default:sign_wall"}, }) -end \ No newline at end of file +end diff --git a/mods/fishing/worm.lua b/mods/fishing/worm.lua old mode 100755 new mode 100644 index 88985576..a9e08925 --- a/mods/fishing/worm.lua +++ b/mods/fishing/worm.lua @@ -6,11 +6,21 @@ -- Looked at code from: my_mobs -- Dependencies: default ----------------------------------------------------------------------------------------------- + +-- 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 + ----------------------------------------------------------------------------------------------- -- WORM ITEM ----------------------------------------------------------------------------------------------- minetest.register_craftitem("fishing:bait_worm", { - description = "Worm", + description = S("Worm"), groups = { fishing_bait=1 }, inventory_image = "fishing_worm.png", on_use = minetest.item_eat(1), @@ -115,4 +125,4 @@ minetest.register_entity("fishing:bait_worm_entity", { end look_whats_up(self) end, -}) \ No newline at end of file +}) From 4a25fa3f89da5216559c03b1bc13eed7d4a1f546 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Fri, 16 Jan 2015 23:37:48 +0100 Subject: [PATCH 32/39] Removed a global variable in carts --- mods/carts/init.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/carts/init.lua b/mods/carts/init.lua index 15b44b80..acea8fc4 100755 --- a/mods/carts/init.lua +++ b/mods/carts/init.lua @@ -552,7 +552,7 @@ function cart:on_step(dtime) elseif diff<(-math.pi) then diff=diff+(2*math.pi) end - yawdir=cart_func:get_sign(diff) + local yawdir=cart_func:get_sign(diff) local step=self.YAW_STEP if math.abs(diff)<=self.YAW_STEP then step=diff From 9564156b2f48c241dd1c476ae255c320e2bf8ed8 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Sat, 17 Jan 2015 00:51:52 +0100 Subject: [PATCH 33/39] Added security in carts about driver's yaw calculation - Thanks to @crabman77 for having reported the issue --- mods/carts/init.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mods/carts/init.lua b/mods/carts/init.lua index acea8fc4..722325b7 100755 --- a/mods/carts/init.lua +++ b/mods/carts/init.lua @@ -543,6 +543,9 @@ function cart:on_step(dtime) self.yawtarget=newyaw -- Set new target. -- minetest.log("action", "--Cart yawtarget set "..self.yawtarget) end + if self.driver:get_look_yaw() == nil then + return + end local playeryaw=self.driver:get_look_yaw()-1.57 if playeryaw<0 then playeryaw=playeryaw+(math.pi*2) end if self.yawtarget and playeryaw ~= self.yawtarget then From 105935e44ad312c0d1e1feb092565c44f3cc0556 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Sat, 17 Jan 2015 22:18:52 +0100 Subject: [PATCH 34/39] Updated chatlog mods : invalid commands are hidden - From now on, invalid commands are hidden when launched, like in realchat. NOTE: The update have been checked with git diff : no differencies, the mod have never been changed by us. --- mods/chatplus/init.lua | 44 +++++++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/mods/chatplus/init.lua b/mods/chatplus/init.lua index 3a7b9b98..fdd70f9c 100644 --- a/mods/chatplus/init.lua +++ b/mods/chatplus/init.lua @@ -16,7 +16,7 @@ chatplus = { function chatplus.init() chatplus.load() chatplus.clean_players() - + if not chatplus.players then chatplus.players = {} end @@ -34,7 +34,7 @@ function chatplus.setting(name) else minetest.log("[Chatplus] Setting chatplus_"..name.." not found!") return nil - end + end end function chatplus.load() @@ -45,9 +45,9 @@ function chatplus.load() minetest.log("error","Unable to open chat plus log file: "..chatplus.log_file) else minetest.log("action","Logging chat plus to: "..chatplus.log_file) - end + end end - + -- Load player data minetest.log("[Chatplus] Loading data") local file = io.open(minetest.get_worldpath().."/chatplus.txt", "r") @@ -58,12 +58,12 @@ function chatplus.load() chatplus.players = table return end - end + end end function chatplus.save() minetest.log("[Chatplus] Saving data") - + local file = io.open(minetest.get_worldpath().."/chatplus.txt", "w") if file then file:write(minetest.serialize(chatplus.players)) @@ -81,9 +81,9 @@ function chatplus.clean_players() for key,value in pairs(chatplus.players) do if value.messages then value.inbox = value.messages - value.messages = nil + value.messages = nil end - + if ( (not value.inbox or #value.inbox==0) and (not value.ignore or #value.ignore==0) @@ -107,23 +107,23 @@ function chatplus.poke(name,player) end check(name,"ignore") check(name,"inbox") - + chatplus.players[name].enabled = true - + if player then if player=="end" then chatplus.players[name].enabled = false chatplus.loggedin[name] = nil else if not chatplus.loggedin[name] then - chatplus.loggedin[name] = {} + chatplus.loggedin[name] = {} end chatplus.loggedin[name].player = player end end - + chatplus.save() - + return chatplus.players[name] end @@ -135,7 +135,11 @@ function chatplus.register_handler(func,place) end end -function chatplus.send(from,msg) +function chatplus.send(from, msg) + if msg:sub(1, 1) == "/" then + return false + end + -- Log chat message if chatplus.log_handle ~= nil then chatplus.log_handle:write( @@ -146,14 +150,14 @@ function chatplus.send(from,msg) ) chatplus.log_handle:flush() end - + -- Loop through senders for key,value in pairs(chatplus.loggedin) do local res = nil for i=1,#chatplus._handlers do if chatplus._handlers[i] then res = chatplus._handlers[i](from,key,msg) - + if res ~= nil then break end @@ -179,7 +183,7 @@ minetest.register_on_joinplayer(function(player) -- inbox stuff! if _player.inbox and #_player.inbox>0 then - minetest.after(10,minetest.chat_send_player,player:get_player_name(),"("..#_player.inbox..") You have mail! Type /inbox to recieve") + minetest.after(10,minetest.chat_send_player,player:get_player_name(),"("..#_player.inbox..") You have mail! Type /inbox to recieve") end end) minetest.register_on_leaveplayer(function(player) @@ -301,7 +305,7 @@ minetest.register_chatcommand("mail", { func = function(name, param) chatplus.poke(name) local to, msg = string.match(param, "([%a%d_]+) (.+)") - + if not to or not msg then minetest.chat_send_player(name,"mail: ",false) return @@ -336,7 +340,7 @@ minetest.register_globalstep(function(dtime) value.inbox and chatplus.loggedin[key].player.hud_add and chatplus.loggedin[key].lastcount ~= #value.inbox - ) then + ) then if chatplus.loggedin[key].msgicon then chatplus.loggedin[key].player:hud_remove(chatplus.loggedin[key].msgicon) end @@ -361,7 +365,7 @@ minetest.register_globalstep(function(dtime) text=#value.inbox, scale = {x=1,y=1}, alignment = {x=0.5, y=0.5}, - }) + }) end chatplus.loggedin[key].lastcount = #value.inbox end From 376cb57fd3b93096bc2975a69d981fe49460c2b7 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Sat, 17 Jan 2015 22:25:49 +0100 Subject: [PATCH 35/39] Updated homedecor_modpack to fix entities' remove - This commit adds the following modification : when an area using particles from homedecor_modpack is destroyed or unloaded, particles are removed to prevent a huge and useless use of memory - This update have been checked with git diff : the mod have never been changed by us --- mods/homedecor_modpack/itemframes/init.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mods/homedecor_modpack/itemframes/init.lua b/mods/homedecor_modpack/itemframes/init.lua index f3b9acba..a75d2ddb 100644 --- a/mods/homedecor_modpack/itemframes/init.lua +++ b/mods/homedecor_modpack/itemframes/init.lua @@ -137,6 +137,7 @@ minetest.register_node("itemframes:frame",{ local meta = minetest.get_meta(pos) return player:get_player_name() == meta:get_string("owner") end, + after_destruct = remove_item, }) @@ -181,6 +182,7 @@ minetest.register_node("itemframes:pedestal",{ local meta = minetest.get_meta(pos) return player:get_player_name() == meta:get_string("owner") end, + after_destruct = remove_item, }) -- automatically restore entities lost from frames/pedestals From ef5570cee40359b7ea36d729a9d3180fd5c99fb1 Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Sat, 17 Jan 2015 22:33:45 +0100 Subject: [PATCH 36/39] Updated riesenpilz for new stem textures - Changed stem texture - The update have been checked with git diff : the mod have never been changed by us --- mods/riesenpilz/LICENSE.txt | 1 - mods/riesenpilz/init.lua | 2 +- mods/riesenpilz/textures/riesenpilz_stem.png | Bin 2325 -> 525 bytes .../textures/riesenpilz_stem_normal.png | Bin 4174 -> 338 bytes 4 files changed, 1 insertion(+), 2 deletions(-) diff --git a/mods/riesenpilz/LICENSE.txt b/mods/riesenpilz/LICENSE.txt index f397d18b..7acfd3c8 100755 --- a/mods/riesenpilz/LICENSE.txt +++ b/mods/riesenpilz/LICENSE.txt @@ -1,5 +1,4 @@ ------Mushrooms------ -— riesenpilz_stem.png (edited with gimp) from gamiano.de — glowshroom and lavashroom from bas080's plants mod (WTFPL) — parasol mushroom from a mod called mushrooms (WTFPL) — "45" mushrooms from r01922090's mush45 mod (WTFPL) diff --git a/mods/riesenpilz/init.lua b/mods/riesenpilz/init.lua index 5aac5521..9951cf6d 100755 --- a/mods/riesenpilz/init.lua +++ b/mods/riesenpilz/init.lua @@ -680,7 +680,7 @@ for name,i in pairs(mushrooms_list) do for _,p in pairs(ps) do minetest.set_node(p, {name=nd}) end - print("[riesenpilz] "..nd.." mushrooms grew at "..minetest.pos_to_string(pos)) + minetest.log("info", "[riesenpilz] "..nd.." mushrooms grew at "..minetest.pos_to_string(pos)) end }) end diff --git a/mods/riesenpilz/textures/riesenpilz_stem.png b/mods/riesenpilz/textures/riesenpilz_stem.png index a04187e43054f06fd233b4b397f9f81cb2e6868c..72410d97363cc489e0868dec952603288813cf30 100755 GIT binary patch literal 525 zcmV+o0`mQdP) z_O4v_^SUmQ;a){lJsv+yh!L+pz1-LB(@_ART$#Wee&54mg=g;#MM@&1N<^$x zdAz*%oHCL)U(RL?0D${>ySvPa1S!-)=GOYLZCNF%vPhaqMT*zBGfR?@lmsHMWa`@% zGbEDC6%lLrFd3@A!uyj-nM~BSZN2wZL77OOF~)7JSvS#|wccCCs)7LR+hMYO-!fML z1w`eT?%^cQ^E}Rd`IPx$<4{agMZlqN!J=@&qjAHea>S)`#in$|r**=qb;zi8#;AP5s&>h#cf_lA%BpzC zs(!_+c+0DK#;tkGta{6>fX%IY$FG6Ru7S?3e9fy_DI!l-s)7v%A)1UsNl?~=*y$#%cYE>C&j@(yr*!uj$mV>eaF9*Rtu?xa!!s?bx&K*|hB0y6@Vx?b^HW+qUl8 zz46?*@7%uf-MR4Hzw_R@@!r7n-@EeQ!S><2^x?ww;=}gi#P{UI_~pj==EwTy$ouHZ z{p!p9>&*Y`&He1t|LxBH?bQG7)%@_!feXKh000KyNkl1YG;sinnwr9HPMMk(|7N7s}?|=UK=YROGfBgEH|N5W*W*lS2<#}EA zdM?l3GV<@QzvjpNcK>?+{;TG%{NMhc`1v3I{r>q^UaxZ;dwP|@LCnrs9}@<;d%I_`-aBPKl5@c5Jv;2kS)m zu8K>7{5k~%wX`z)%M(Z4CRWg#2c-zQ9*m7RVYZwHU?is?>bk!|8 zPG^vnMf_wIIqCKurYj6XUUqje=}fv=)zs0bdZO}uhEp=d32$3Gq!1acn}Hq(#u9W? z;IW&S#&abP&ar=GlQHtr89O8d$c;?C>CLQwQzPq~?>>L|daRNG8ZvD9j<$|F;vB83 zPj`5h-_yzT=NA6_*}wMtn1C5B2`8iZkldnGZB;m~D6*da!*{%o?{%A#o?^-dI|7jr zop-c8wX5RS+CCw_*TJ*@dVg)!z!AxW@D^S2HMC4>cc0U_j*o$S_TGE*{;L=>cG@Ef zcgJK$P!WMh7K~nh-;7J;vD;ToOzF^DnCOmjnhpWD(G)&;jg!x_<9iuA;|>?hY1-Kk zEt-gefRN{|$^Bbao?{#)dtMam!6a_!4$)3@LnMsw;q`Im2WjQ##UCaeM_>|@ly~Te zK+~kyGV#G{j!aL!X8PqfBcc&XN)hRD6G14Y!cB+a^KN61p7|rE_s54@Gr1C_BglcE zyMPP=AA`A$94B9YeCGMc0Xvo+noPir7>>yWC>x33s z_N|-9Yyr;WWWFZm>%H$wNOKy3MlL6!2^}SMAg~bcw@yEPu(z-F6cc(P&@8$|L^RQu z-R8}&(WfKbJkIC-(`6#`47j`R77eI-`z2GJ#LW%AYf);?s zIoElQmKk3cUOl|x&e=9mNixthnS==J(gwR%lGPoK;a)$|*_)L&gm9Z78qs`%Lgyai zT_2=+b6)c`0c26chjR7LJY5KjEj`x z^~Xt{bIk#driHE+notqlUpl&5&Uw$A_qeY|mGs+GT;JxflavGtQ6v#gWJh#I%vT2P zt4W#TBi6F~yvBjeT(?Rg;uO)sDou&F6@@A318A0tfAnaeE+)g94I z;zVFAUE%zBs;ZOqHO{fd$$2h?8Dxfb*XaP4umrUIa27|*;)ylD4`-K=N6s^LaJxkZKHNlP7*}*VdX4BRs(U+Ac^@ZB*6w zixH5sJdM3Cq;sD!27fu{Svb9`)YIJ&5h7Du;{%Nj%7E*Tdta7$zYnx-l&b2k3@Jv+ zA-emNz6YeIi;xRvj_d6Gm3B9=t5&^RXV8&!M|Snux17t4YUT4%xsGk%JQRYxRyP4U z1<2LsAy9nDj4@6=h!>A9b-Ghgv3g4#-HukJMZHVWE&RG7+Npe&Pm|?)pVN)5@9M2W z2i?M19Um$-f{b&_5t;HiYkXWNU(3b~6rm#;uKhlbJ}9ns6T40lE?_S7#PQuaf$VtDIg z6^^N^YxU6)!6qY94W`{Zt~-aU1B_$&i=W3gM5v`#MRcFr)0x56je_4yCl$Qj)BD6X vQ-2&IdH`qEo;9zMDee<_@97Ds-sk@TF|?w^gY0?P00000NkvXXu0mjfkSqb5 diff --git a/mods/riesenpilz/textures/riesenpilz_stem_normal.png b/mods/riesenpilz/textures/riesenpilz_stem_normal.png index b1ee24d337d3f4a576dbbe22132f28c29473dfbb..0a59cff95a1ec0fe6820813234c10f3db2d7ecd0 100755 GIT binary patch literal 338 zcmV-Y0j>UtP))9~KZM zRH6*SV&guM!YV3@r4bao*hD^ImXb?Y?B&GJXl(M*hg%@lSVya5!;}gu(U{7}qK2s)sa4q~<_6+*wVXUyyV4UBVZn kdEC8o;(P2U=NcpY1-kRD6V>=@>;M1&07*qoM6N<$g0I+^IsgCw literal 4174 zcmV-U5V7xxP)000mbNklf%%pYdG( zZ~V6Zp8PBRull$8xAuP}&-g!H|NrqJ^%LP+;$8nX{o$XRdz|_cbKjoL4-FWuMp^or zYFR@H6|`Qa&g09}6NB+vm?QD29`At1td1=&9K^C^om$GFAhfU-h8viN$~A|RoKoSf zJy7&ef5p_Dz8}9Q zsVQrKKzTXG2S;lTuMNi-^U0yLh+dbjsU02tm^vj<)iOMYWgnPJ_=OiWlyjww9q*WH zej&?|KaRA1s{iN-nql9@~T61LW(KR^+(NYg;2kyv` z=vZ}RYp5<`$mPoF(OSd-sT++)u}g)mXPxz@#k5&{1s_WgpP}9_RfKCxU?|@;MiSA7 zkw_HdL}Q0oE?pC4$HWuM@>A-iC4y6I`6MqTL?35l+<&M>CmE@q;rcT&hK~DcWQB$U zUa6$Jb_{%az^y}vBiv(F#^us$j)cT;GN>+i^;Jzh;4-|Q-t|*69)|DN@9Or*!@1pP z3BS(KVdUy@kH*wN{9)_U9$Gi%Lz3^ueW|A&-a;t2&bxt*z(vqGnq=wNuq7ss50_uWL#x*uTaL57?WKQv*TbWD zk8r^zhZ~kmLKr`dKMVi7c_}t`pC?Cs)3z9#z03F7MS46S)$> z=y+GJ&)C=Zn7^rmaYrj7kBc~8Qq^00uzpEBly7_~ANd*9JN8ITg*jX;FJ;{^^-M1> zeN1IRjPlj!Kp$OaJ+H3&+Ew1l*WZuw^2El=A<+x(5l*}j&N%FP(;2B$>mD9?1gqRJ z%v;g8Jmqt-mN@olp{tM&5x zDLyY15?dncf+^f(oT}U-oLY?VUg4?4aw{u%A&pTo(Bop9*8{$>WK0?R1`}H=c?8U% z^=_@y{PDr~=ddPvi^D|As|n^y?Ex5$jn=RT!}_q*F&c_^Qc;j9%N^EJc`e1ja@UDN z>BvWhn5nD3I^>ntr*^%s87;|^h^;rQXZwxTr*ep>K;uS^VUNpyjld0zGDll}oNU-g15FC++pcn5}J(40&{1 zvW7<2l)B(4>`M&KQg5L=RladZeICQ_$6HSsZ(v$=nPZRp`m9vx60OFm)T+o22uET@ zn=mmK*J*+%J9)nU!FtUn3rRZS)nnvay(Cz!dt=GU&Ahir#{z>Hyq?W5l^&G zj434$#GPh5B)V?6ED;i7!-^;vLVXZ#(j+CQEx7~^yhr@vT zRGTU#v0&sD&I`FzCt2va?3i^%fsZ8-#gMoF_oarcA#rc^8Ze^cZW9NwOJp6E?{Oxd z$B7)bUY?uQKaqOMaP7;`s`qdWWg2ZNwO~g^V)+UDhJZ1Mf?N$l?Df>)H)$Qjg!x!5 zId0vzhU<_^8L(VlsOHt^ak#H9b3J$s#W*jkX=5toLJ2uq@Jrx?5mGO24NnFAa4>c(t`hEsuh3V&f-8|}Xc)tk z{`T2CSL3oDf0gl$R0@vI!iy*t`cj9%(Q9#>xj6N3s zfM`6NaUX3r!l}jM)8={~K$8jAt&KaPrIA(6?Ywq4&S{S_W8*!h(>eK>SXJ%)twJbm~+Ub1>DPds$&jmrYYIC9vpyAr$RC>!NFK4onEC>Gpm zoFlL09$9mo!f)jEujP7AcO-~q-8ZiJg%7UZLrg&AE#^4f$BvA-?R81u(${QM@71p- zo`uW38s}xeawJ>;aVzmE9T~8)F39V79l4{JUcO@=%Ts?1V=ins3^B*4cg(L`_b5Bb z8jP+tzA>e>WC$@d)ICHILqIFwSG`8@(AW?dmOD8-oB7%iJi=#uAK#DX#~Ik_b(rYL z=+%GRYwPo6iA*o5sL(N6t&(-tg!PWDlmkAButdO%PtIWoG4#<$6mhTR=NcmF6_J;Z z499)6a-GPf-p#L^b%q*F&2?p)(~6DOGW`}C9nYa=ZM_U3pw)p~0_8lc*5Qr>?g%%2 zW3JC}MoNmPQ8H$H*2{lJI6!6WBlPw1=pDneeQP2t24*(TW;lm<0}u%ZIueODNj;-D z_UOuS)*Ob_!xHafA1CI@nn$Ceat!y_m*4ac>(o4^#6Q>fn6KwJoVCY$lR9Y&<*mVt zDV0}_uw&PQKt38Bmw9AGX6)%kIm~*=dLQNCQX1;-I^%uy?cBQZ>U!nR+wbk)@vp7x z;!>rNhfscPh$&a;wJ}dUPl`B!)?GWEa6QAd!?*~Hp16-2Dpy_|PYv%wy(NOjr>s90 zQm(VSUcEd&@lnn-w0=MC^~1x)%W&ucO9;%5Jk`o0+^fvU@JKmaCvIKx;p4$16h#sGst7Ew9K01sXUcptKa{M+e;~B#qdd)npYTC;^og!54qqE@x)ngIIIm}%mZ1uhFkZ-PE(&lbU5y#8!@Ld=9snX zj_=5Eesu#ck6=tZ+;~HzRi!LVj1z}>M7_W5>SI@`68@sq>xsK|4eE?#YYKaLiBrpt zXLU`Tx^#QSuD*hB_0wPe;aNZ0*R!T}IF?-K1-MFO9!U+TY5caY9*o90a_Z6L`i#Bq zny}``>Z>)4x|Nq|xQt*lQt!*i>wTT|*KOAfH~-N#o{zhBopG+uwd>`%ZoMZbRxoi= zYd0+wCRF#xfgUIDmN?;XiUAuN(IOB$m-ZbEbq&aM~?GPac^(*$ZE~w z#C>#~*A4upOYB`RhL=uD-O+NSv3rBjwc}Ugr`Qs4tE=b$rHoOqQwwmm%DED!f;i zYbm~_7He3_VWZ<;JZj?r`d YZ~S^5K&u&megFUf07*qoM6N<$f+l-yO#lD@ From e2aa26fc8e50caf0f6445adace68d91c5e1a008f Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Mon, 19 Jan 2015 23:34:44 +0100 Subject: [PATCH 37/39] Updated homedecor : wine rack mesh is fixed and optimized a bit --- .../homedecor/models/homedecor_wine_rack.obj | 12791 ++++++---------- 1 file changed, 4575 insertions(+), 8216 deletions(-) diff --git a/mods/homedecor_modpack/homedecor/models/homedecor_wine_rack.obj b/mods/homedecor_modpack/homedecor/models/homedecor_wine_rack.obj index d82e7bea..65630ba7 100644 --- a/mods/homedecor_modpack/homedecor/models/homedecor_wine_rack.obj +++ b/mods/homedecor_modpack/homedecor/models/homedecor_wine_rack.obj @@ -1,4 +1,4 @@ -# Blender v2.69 (sub 0) OBJ File: 'wine-rack2.blend' +# Blender v2.73 (sub 0) OBJ File: 'wine-rack2.blend' # www.blender.org mtllib homedecor_wine_rack.mtl o bottle.002_Cylinder.001 @@ -514,11 +514,6 @@ v 0.317561 0.397536 -0.009718 v 0.301637 0.421320 -0.009718 v 0.277805 0.437212 -0.009718 v 0.249693 0.442793 -0.009718 -v 0.231268 0.101790 -0.188981 -v 0.197748 0.172017 0.236647 -v 0.152902 0.177097 -0.009718 -v 0.198250 0.244829 -0.009718 -v 0.356171 0.226441 -0.188981 v 0.234074 0.499517 0.018695 v 0.249687 0.483935 0.018695 v 0.265300 0.499517 0.018695 @@ -954,7 +949,6 @@ v -0.375210 0.171517 -0.009718 v -0.347098 0.177097 -0.009718 v -0.323266 0.192989 -0.009718 v -0.307342 0.216774 -0.009718 -v -0.301750 0.244829 -0.009718 v -0.307342 0.272884 -0.009718 v -0.323266 0.296669 -0.009718 v -0.347098 0.312561 -0.009718 @@ -1215,11 +1209,7 @@ v -0.182439 0.397536 -0.009718 v -0.198363 0.421320 -0.009718 v -0.222195 0.437212 -0.009718 v -0.250307 0.442793 -0.009718 -v -0.268732 0.101790 -0.188981 -v -0.302252 0.172017 0.236647 -v -0.347098 0.177097 -0.009718 v -0.301750 0.244829 -0.009718 -v -0.143829 0.226441 -0.188981 v -0.265926 0.499517 0.018695 v -0.250313 0.483935 0.018695 v -0.234700 0.499517 0.018695 @@ -1916,11 +1906,6 @@ v -0.182439 -0.102464 -0.009718 v -0.198363 -0.078680 -0.009718 v -0.222195 -0.062788 -0.009718 v -0.250307 -0.057207 -0.009718 -v -0.268732 -0.398210 -0.188981 -v -0.302252 -0.327983 0.236647 -v -0.347098 -0.322903 -0.009718 -v -0.301750 -0.255171 -0.009718 -v -0.143829 -0.273559 -0.188981 v -0.265926 -0.000483 0.018695 v -0.250313 -0.016065 0.018695 v -0.234700 -0.000483 0.018695 @@ -2617,11 +2602,6 @@ v 0.317561 -0.102464 -0.009718 v 0.301637 -0.078680 -0.009718 v 0.277805 -0.062788 -0.009718 v 0.249693 -0.057207 -0.009718 -v 0.231268 -0.398210 -0.188981 -v 0.197748 -0.327983 0.236647 -v 0.152902 -0.322903 -0.009718 -v 0.198250 -0.255171 -0.009718 -v 0.356171 -0.273559 -0.188981 v 0.234074 -0.000483 0.018695 v 0.249687 -0.016065 0.018695 v 0.265300 -0.000483 0.018695 @@ -3846,277 +3826,277 @@ v 0.124596 -0.005171 -0.237407 v 0.124596 -0.005171 0.246067 v -0.000307 0.119480 -0.237408 v -0.000307 0.119480 0.246067 -vt 0.257812 0.984375 -vt 0.257812 0.992188 -vt 0.250000 0.992188 -vt 0.132812 0.984375 -vt 0.187500 0.929688 -vt 0.195312 0.937500 -vt 0.140625 0.742188 -vt 0.195312 0.796875 -vt 0.187500 0.804688 -vt 0.007812 0.750000 -vt 0.007812 0.742188 -vt 0.015625 0.742188 -vt 0.078125 0.929688 -vt 0.070312 0.937500 -vt 0.125000 0.742188 -vt 0.078125 0.804688 -vt 0.070312 0.796875 -vt 0.023438 0.554688 -vt 0.023438 0.492188 -vt 0.007812 0.492188 -vt 0.023438 0.570312 -vt 0.085938 0.570312 -vt 0.328125 0.929688 -vt 0.382812 0.984375 -vt 0.320312 0.937500 -vt 0.039062 0.554688 -vt 0.039062 0.492188 -vt 0.992188 0.023438 -vt 0.976562 0.023438 -vt 0.976562 0.007812 -vt 0.023438 0.585938 -vt 0.085938 0.585938 -vt 0.054688 0.554688 -vt 0.054688 0.492188 -vt 0.070312 0.554688 -vt 0.070312 0.492188 -vt 0.023438 0.617188 -vt 0.085938 0.617188 -vt 0.023438 0.601562 -vt 0.023438 0.695312 -vt 0.007812 0.695312 -vt 0.023438 0.710938 -vt 0.257812 0.750000 -vt 0.257812 0.742188 -vt 0.265625 0.742188 -vt 0.148438 0.570312 +vt 0.101562 0.492188 +vt 0.085938 0.492188 vt 0.085938 0.554688 -vt 0.226562 0.632812 -vt 0.210938 0.632812 -vt 0.210938 0.648438 -vt 0.507812 0.984375 -vt 0.507812 0.992188 -vt 0.500000 0.992188 +vt 0.101562 0.554688 +vt 0.570312 0.492188 +vt 0.570312 0.742188 +vt 0.148438 0.695312 +vt 0.164062 0.695312 +vt 0.164062 0.632812 +vt 0.148438 0.632812 +vt 0.257812 0.875000 +vt 0.203125 0.929688 +vt 0.195312 0.921875 +vt 0.250000 0.867188 +vt 0.312500 0.929688 +vt 0.265625 0.867188 +vt 0.320312 0.921875 +vt 0.148438 0.570312 +vt 0.148438 0.554688 +vt 0.085938 0.570312 +vt 0.070312 0.937500 +vt 0.078125 0.929688 +vt 0.132812 0.984375 +vt 0.125000 0.992188 +vt 0.023438 0.554688 +vt 0.023438 0.570312 +vt 0.960938 0.023438 +vt 0.960938 0.007812 +vt 0.976562 0.007812 +vt 0.976562 0.023438 +vt 0.265625 0.742188 +vt 0.382812 0.859375 +vt 0.375000 0.867188 +vt 0.257812 0.750000 +vt 0.945312 0.007812 vt 0.945312 0.023438 vt 0.929688 0.023438 vt 0.929688 0.007812 -vt 0.117188 0.554688 -vt 0.117188 0.492188 -vt 0.101562 0.554688 +vt 0.164062 0.710938 +vt 0.101562 0.695312 +vt 0.101562 0.710938 +vt 0.453125 0.929688 +vt 0.445312 0.921875 +vt 0.500000 0.867188 +vt 0.507812 0.875000 +vt 0.390625 0.867188 +vt 0.382812 0.875000 +vt 0.039062 0.492188 +vt 0.023438 0.492188 +vt 0.039062 0.554688 +vt 0.320312 0.937500 +vt 0.328125 0.929688 +vt 0.382812 0.984375 +vt 0.375000 0.992188 +vt 0.148438 0.617188 +vt 0.085938 0.617188 +vt 0.085938 0.632812 +vt 0.210938 0.570312 +vt 0.195312 0.570312 +vt 0.195312 0.632812 +vt 0.210938 0.632812 +vt 0.492188 0.492188 +vt 0.507812 0.492188 +vt 0.507812 0.742188 +vt 0.492188 0.742188 +vt 0.015625 0.742188 +vt 0.132812 0.859375 +vt 0.125000 0.867188 +vt 0.007812 0.750000 +vt 0.164062 0.570312 +vt 0.179688 0.570312 +vt 0.179688 0.507812 +vt 0.164062 0.507812 +vt 0.210938 0.507812 +vt 0.195312 0.507812 +vt 0.554688 0.492188 +vt 0.554688 0.742188 +vt 0.148438 0.585938 +vt 0.085938 0.585938 +vt 0.414062 0.742188 +vt 0.414062 0.492188 +vt 0.476562 0.492188 +vt 0.476562 0.742188 +vt 0.453125 0.804688 +vt 0.507812 0.859375 +vt 0.445312 0.812500 +vt 0.054688 0.554688 +vt 0.070312 0.554688 +vt 0.070312 0.492188 +vt 0.054688 0.492188 +vt 0.195312 0.812500 +vt 0.203125 0.804688 +vt 0.257812 0.859375 +vt 0.242188 0.523438 +vt 0.242188 0.507812 +vt 0.226562 0.507812 +vt 0.226562 0.523438 +vt 0.132812 0.875000 +vt 0.015625 0.992188 +vt 0.007812 0.984375 +vt 0.187500 0.804688 +vt 0.132812 0.750000 +vt 0.140625 0.742188 +vt 0.195312 0.796875 +vt 0.226562 0.664062 +vt 0.226562 0.648438 +vt 0.210938 0.648438 +vt 0.210938 0.664062 +vt 0.023438 0.617188 +vt 0.023438 0.632812 +vt 0.007812 0.695312 +vt 0.007812 0.710938 +vt 0.023438 0.710938 +vt 0.023438 0.695312 +vt 0.148438 0.664062 +vt 0.148438 0.648438 +vt 0.085938 0.648438 +vt 0.085938 0.664062 +vt 0.257812 0.984375 +vt 0.257812 0.992188 +vt 0.250000 0.992188 +vt 0.078125 0.804688 +vt 0.070312 0.796875 +vt 0.125000 0.742188 +vt 0.007812 0.742188 +vt 0.140625 0.992188 +vt 0.187500 0.929688 +vt 0.195312 0.937500 +vt 0.390625 0.992188 vt 0.437500 0.929688 vt 0.445312 0.937500 +vt 0.023438 0.585938 +vt 0.234375 0.710938 +vt 0.234375 0.695312 +vt 0.539062 0.742188 +vt 0.539062 0.492188 +vt 0.257812 0.742188 +vt 0.265625 0.992188 +vt 0.507812 0.984375 +vt 0.507812 0.992188 +vt 0.500000 0.992188 vt 0.085938 0.601562 vt 0.148438 0.601562 -vt 0.148438 0.585938 +vt 0.117188 0.492188 +vt 0.117188 0.554688 +vt 0.007812 0.617188 vt 0.007812 0.554688 -vt 0.132812 0.554688 -vt 0.132812 0.492188 -vt 0.085938 0.632812 -vt 0.148438 0.632812 -vt 0.960938 0.023438 -vt 0.960938 0.007812 +vt 0.179688 0.632812 vt 0.003106 0.453387 vt 0.003106 0.450363 vt 0.720679 0.450363 vt 0.720679 0.453387 -vt 0.148438 0.554688 -vt 0.148438 0.492188 -vt 0.023438 0.632812 -vt 0.226562 0.648438 -vt 0.210938 0.664062 -vt 0.164062 0.632812 -vt 0.164062 0.570312 +vt 0.437500 0.804688 +vt 0.382812 0.750000 vt 0.390625 0.742188 vt 0.445312 0.796875 -vt 0.437500 0.804688 -vt 0.226562 0.601562 -vt 0.210938 0.601562 -vt 0.210938 0.617188 -vt 0.085938 0.648438 -vt 0.148438 0.648438 +vt 0.375000 0.742188 +vt 0.328125 0.804688 +vt 0.320312 0.796875 vt 0.023438 0.648438 -vt 0.382812 0.750000 -vt 0.179688 0.632812 -vt 0.179688 0.570312 -vt 0.085938 0.664062 -vt 0.148438 0.664062 -vt 0.179688 0.507812 -vt 0.164062 0.507812 vt 0.914062 0.023438 vt 0.914062 0.007812 vt 0.023438 0.664062 -vt 0.023438 0.679688 -vt 0.007812 0.679688 -vt 0.195312 0.632812 -vt 0.195312 0.570312 -vt 0.085938 0.679688 -vt 0.039062 0.710938 -vt 0.023438 0.726562 -vt 0.148438 0.507812 -vt 0.210938 0.507812 -vt 0.210938 0.492188 -vt 0.250000 0.695312 -vt 0.234375 0.695312 -vt 0.234375 0.710938 -vt 0.898438 0.023438 -vt 0.898438 0.007812 -vt 0.179688 0.695312 -vt 0.085938 0.695312 -vt 0.148438 0.695312 -vt 0.148438 0.679688 -vt 0.195312 0.695312 -vt 0.210938 0.695312 -vt 0.101562 0.710938 -vt 0.164062 0.710938 -vt 0.101562 0.695312 -vt 0.210938 0.570312 -vt 0.085938 0.710938 +vt 0.132812 0.492188 +vt 0.132812 0.554688 +vt 0.335938 0.492188 +vt 0.335938 0.742188 +vt 0.351562 0.742188 +vt 0.351562 0.492188 +vt 0.242188 0.570312 vt 0.242188 0.554688 vt 0.226562 0.554688 vt 0.226562 0.570312 -vt 0.242188 0.507812 -vt 0.226562 0.507812 -vt 0.226562 0.523438 +vt 0.148438 0.492188 +vt 0.148438 0.507812 +vt 0.210938 0.492188 +vt 0.250000 0.710938 +vt 0.250000 0.695312 +vt 0.898438 0.023438 +vt 0.898438 0.007812 +vt 0.179688 0.695312 +vt 0.085938 0.679688 +vt 0.085938 0.695312 +vt 0.148438 0.679688 +vt 0.195312 0.695312 +vt 0.210938 0.695312 +vt 0.023438 0.601562 +vt 0.023438 0.679688 vt 0.164062 0.726562 vt 0.234375 0.726562 vt 0.101562 0.726562 -vt 0.289062 0.492188 vt 0.289062 0.742188 +vt 0.289062 0.492188 +vt 0.382812 0.742188 vt 0.367188 0.742188 vt 0.367188 0.492188 vt 0.382812 0.492188 -vt 0.382812 0.742188 -vt 0.617188 0.742188 -vt 0.617188 0.492188 vt 0.601562 0.742188 -vt 0.320312 0.742188 -vt 0.320312 0.492188 +vt 0.601562 0.492188 +vt 0.304688 0.742188 vt 0.304688 0.492188 -vt 0.507812 0.492188 -vt 0.507812 0.742188 +vt 0.617188 0.492188 +vt 0.617188 0.742188 +vt 0.695312 0.492188 vt 0.679688 0.492188 vt 0.679688 0.742188 vt 0.695312 0.742188 -vt 0.351562 0.492188 -vt 0.351562 0.742188 -vt 0.601562 0.492188 -vt 0.539062 0.742188 -vt 0.539062 0.492188 -vt 0.554688 0.492188 -vt 0.570312 0.742188 +vt 0.320312 0.742188 +vt 0.320312 0.492188 vt 0.585938 0.742188 vt 0.585938 0.492188 vt 0.632812 0.742188 vt 0.632812 0.492188 -vt 0.476562 0.742188 -vt 0.476562 0.492188 -vt 0.335938 0.492188 -vt 0.335938 0.742188 -vt 0.664062 0.742188 -vt 0.664062 0.492188 -vt 0.492188 0.742188 +vt 0.429688 0.492188 +vt 0.429688 0.742188 vt 0.445312 0.742188 vt 0.445312 0.492188 +vt 0.664062 0.742188 +vt 0.664062 0.492188 +vt 0.460938 0.742188 vt 0.460938 0.492188 -vt 0.492188 0.492188 -vt 0.429688 0.492188 +vt 0.398438 0.492188 +vt 0.398438 0.742188 +vt 0.726562 0.742188 vt 0.726562 0.492188 vt 0.710938 0.492188 vt 0.710938 0.742188 -vt 0.695312 0.492188 +vt 0.648438 0.742188 vt 0.648438 0.492188 -vt 0.398438 0.742188 -vt 0.414062 0.742188 -vt 0.398438 0.492188 -vt 0.414062 0.492188 -vt 0.554688 0.742188 vt 0.015625 0.867188 vt 0.070312 0.921875 vt 0.062500 0.929688 -vt 0.195312 0.812500 -vt 0.203125 0.804688 -vt 0.257812 0.859375 -vt 0.250000 0.867188 -vt 0.203125 0.929688 -vt 0.195312 0.921875 -vt 0.085938 0.492188 -vt 0.101562 0.492188 -vt 0.500000 0.867188 -vt 0.445312 0.812500 -vt 0.453125 0.804688 -vt 0.148438 0.617188 -vt 0.265625 0.867188 -vt 0.320312 0.921875 -vt 0.312500 0.929688 -vt 0.226562 0.679688 -vt 0.210938 0.679688 -vt 0.507812 0.859375 +vt 0.007812 0.859375 +vt 0.062500 0.804688 +vt 0.070312 0.812500 +vt 0.312500 0.804688 +vt 0.320312 0.812500 +vt 0.226562 0.585938 +vt 0.242188 0.585938 +vt 0.007812 0.875000 vt 0.003106 0.443642 vt 0.003106 0.442802 vt 0.720679 0.442802 vt 0.720679 0.443642 -vt 0.195312 0.507812 -vt 0.164062 0.695312 -vt 0.242188 0.570312 -vt 0.242188 0.585938 vt 0.523438 0.492188 vt 0.523438 0.742188 -vt 0.570312 0.492188 -vt 0.125000 0.992188 -vt 0.445312 0.921875 -vt 0.507812 0.875000 -vt 0.390625 0.867188 -vt 0.382812 0.875000 -vt 0.375000 0.867188 -vt 0.375000 0.992188 -vt 0.132812 0.859375 -vt 0.125000 0.867188 -vt 0.945312 0.007812 -vt 0.007812 0.710938 -vt 0.007812 0.984375 -vt 0.015625 0.992188 +vt 0.007812 0.679688 vt 0.007812 0.992188 vt 0.250000 0.742188 -vt 0.132812 0.875000 vt 0.140625 0.867188 -vt 0.140625 0.992188 -vt 0.132812 0.750000 -vt 0.390625 0.992188 +vt 0.007812 0.492188 vt 0.992188 0.007812 +vt 0.992188 0.023438 vt 0.507812 0.750000 vt 0.500000 0.742188 -vt 0.265625 0.992188 -vt 0.382812 0.859375 -vt 0.007812 0.617188 +vt 0.226562 0.632812 +vt 0.039062 0.726562 +vt 0.039062 0.710938 +vt 0.023438 0.726562 vt 0.720515 0.441247 vt 0.717490 0.441247 vt 0.717490 0.373696 vt 0.720515 0.373696 -vt 0.226562 0.664062 -vt 0.375000 0.742188 -vt 0.320312 0.796875 -vt 0.328125 0.804688 -vt 0.257812 0.875000 vt 0.226562 0.617188 -vt 0.039062 0.726562 -vt 0.250000 0.710938 -vt 0.242188 0.523438 -vt 0.304688 0.742188 -vt 0.429688 0.742188 -vt 0.460938 0.742188 -vt 0.726562 0.742188 -vt 0.648438 0.742188 -vt 0.062500 0.804688 -vt 0.070312 0.812500 -vt 0.007812 0.859375 -vt 0.007812 0.875000 -vt 0.453125 0.929688 -vt 0.320312 0.812500 -vt 0.312500 0.804688 +vt 0.226562 0.601562 +vt 0.210938 0.601562 +vt 0.210938 0.617188 +vt 0.085938 0.710938 vt 0.226562 0.695312 -vt 0.226562 0.585938 +vt 0.226562 0.679688 +vt 0.210938 0.679688 vt 0.643052 0.395877 vt 0.643052 0.395037 vt 0.710602 0.395037 @@ -4133,47 +4113,44 @@ vt 0.676827 0.425285 vt 0.676827 0.426126 vt 0.643052 0.426126 vt 0.643052 0.425285 +vt 0.242188 0.664062 vt 0.242188 0.648438 -vt 0.070312 0.710938 -vt 0.070312 0.726562 vt 0.676827 0.421924 vt 0.643052 0.421924 vt 0.643052 0.421084 vt 0.676827 0.421084 vt 0.714466 0.373696 -vt 0.242188 0.664062 vt 0.643052 0.397558 vt 0.710602 0.397558 vt 0.710602 0.398398 vt 0.643052 0.398399 vt 0.085938 0.726562 +vt 0.070312 0.710938 +vt 0.070312 0.726562 +vt 0.250000 0.726562 +vt 0.242188 0.492188 vt 0.226562 0.492188 vt 0.210938 0.585938 -vt 0.720679 0.456412 -vt 0.003106 0.456411 -vt 0.007812 0.726562 +vt 0.242188 0.695312 vt 0.242188 0.679688 -vt 0.242188 0.492188 +vt 0.257812 0.492188 vt 0.273438 0.492188 vt 0.273438 0.742188 vt 0.710602 0.396718 vt 0.643052 0.396718 vt 0.643052 0.420244 vt 0.676827 0.420244 +vt 0.007812 0.726562 vt 0.710602 0.432174 vt 0.707578 0.432174 vt 0.707578 0.398399 -vt 0.710602 0.398399 vt 0.710602 0.435198 vt 0.643052 0.435198 vt 0.643052 0.432174 -vt 0.242188 0.695312 -vt 0.250000 0.726562 vt 0.289062 0.523438 vt 0.289062 0.710938 vt 0.273438 0.710938 vt 0.273438 0.523438 -vt 0.257812 0.492188 vt 0.676827 0.432174 vt 0.643052 0.429150 vt 0.676827 0.429150 @@ -4207,7 +4184,6 @@ vt 0.003106 0.474555 vt 0.003106 0.471532 vt 0.720649 0.471532 vt 0.720649 0.474556 -vt 0.720679 0.446162 vt 0.720679 0.447002 vt 0.003106 0.447002 vt 0.643052 0.441247 @@ -4216,7 +4192,6 @@ vt 0.720679 0.465484 vt 0.003106 0.465484 vt 0.720680 0.468509 vt 0.720679 0.471533 -vt 0.003106 0.471533 vt 0.003106 0.468509 vt 0.003106 0.447842 vt 0.720680 0.447842 @@ -4224,107 +4199,150 @@ vt 0.720679 0.448683 vt 0.003106 0.448683 vt 0.003106 0.444482 vt 0.720679 0.444482 -vt 0.720679 0.468509 -vt 0.003106 0.468508 -vt 0.720680 0.448683 -vt 0.720679 0.449523 -vt 0.003106 0.449523 -vt 0.720679 0.447842 -vt 0.851562 0.593750 -vt 0.851562 0.625000 -vt 0.843750 0.625000 -vt 0.843750 0.593750 -vt 0.835938 0.625000 vt 0.835938 0.593750 -vt 0.828125 0.625000 +vt 0.843750 0.593750 +vt 0.843750 0.625000 +vt 0.835938 0.625000 vt 0.828125 0.593750 -vt 0.820312 0.625000 +vt 0.828125 0.625000 vt 0.820312 0.593750 -vt 0.812500 0.593750 -vt 0.812500 0.625000 -vt 0.804688 0.593750 -vt 0.804688 0.625000 -vt 0.796875 0.625000 -vt 0.796875 0.593750 -vt 0.789062 0.625000 +vt 0.820312 0.625000 +vt 0.445312 0.210938 +vt 0.460938 0.210938 +vt 0.460938 0.281250 +vt 0.445312 0.281250 vt 0.789062 0.593750 -vt 0.781250 0.625000 +vt 0.796875 0.593750 +vt 0.796875 0.625000 +vt 0.789062 0.625000 vt 0.781250 0.593750 -vt 0.773438 0.625000 +vt 0.781250 0.625000 vt 0.773438 0.593750 -vt 0.765625 0.625000 +vt 0.773438 0.625000 vt 0.765625 0.593750 -vt 0.757812 0.625000 +vt 0.765625 0.625000 vt 0.757812 0.593750 -vt 0.750000 0.593750 -vt 0.750000 0.625000 -vt 0.742188 0.625000 -vt 0.914445 0.619705 -vt 0.901551 0.617178 -vt 0.914352 0.586032 +vt 0.757812 0.625000 +vt 0.945312 0.539062 +vt 0.929688 0.539062 +vt 0.929688 0.468750 +vt 0.945312 0.468750 +vt 0.031250 0.335938 +vt 0.039062 0.335938 +vt 0.039062 0.367188 +vt 0.031250 0.367188 +vt 0.851562 0.593750 vt 0.859375 0.593750 vt 0.859375 0.625000 -vt 0.867188 0.593750 -vt 0.867188 0.625000 -vt 0.982279 0.966970 -vt 0.976584 0.968145 +vt 0.851562 0.625000 +vt 0.883277 0.599004 +vt 0.880678 0.586125 +vt 0.914352 0.586032 +vt 0.890607 0.609908 +vt 0.789062 0.906250 +vt 0.773438 0.906250 +vt 0.773438 0.835938 +vt 0.789062 0.835938 +vt 0.289062 0.296875 +vt 0.296875 0.296875 +vt 0.296875 0.335938 +vt 0.289062 0.335938 +vt 0.970873 0.967052 +vt 0.966015 0.963856 vt 0.976477 0.953242 -vt 0.960938 0.453125 -vt 0.960938 0.468750 -vt 0.945312 0.453125 -vt 0.945312 0.468750 -vt 0.929688 0.453125 -vt 0.929688 0.468750 -vt 0.914062 0.468750 -vt 0.914062 0.453125 -vt 0.898438 0.468750 +vt 0.976584 0.968145 +vt 0.804688 0.593750 +vt 0.804688 0.625000 +vt 0.742188 0.554688 +vt 0.750000 0.554688 +vt 0.750000 0.593750 +vt 0.742188 0.593750 vt 0.898438 0.453125 -vt 0.882812 0.453125 -vt 0.882812 0.468750 +vt 0.914062 0.453125 +vt 0.914062 0.468750 +vt 0.898438 0.468750 +vt 0.085938 0.367188 +vt 0.078125 0.367188 +vt 0.078125 0.335938 +vt 0.085938 0.335938 +vt 0.914062 0.539062 +vt 0.851562 0.453125 vt 0.867188 0.453125 vt 0.867188 0.468750 vt 0.851562 0.468750 -vt 0.851562 0.453125 -vt 0.835938 0.468750 vt 0.835938 0.453125 -vt 0.820312 0.453125 -vt 0.820312 0.468750 -vt 0.804688 0.453125 -vt 0.804688 0.468750 -vt 0.789062 0.468750 -vt 0.789062 0.453125 -vt 0.773438 0.468750 +vt 0.835938 0.468750 +vt 0.125000 0.367188 +vt 0.117188 0.367188 +vt 0.117188 0.335938 +vt 0.125000 0.335938 +vt 0.085938 0.210938 +vt 0.101562 0.210938 +vt 0.101562 0.281250 +vt 0.085938 0.281250 vt 0.773438 0.453125 -vt 0.757812 0.453125 -vt 0.757812 0.468750 -vt 0.742188 0.468750 +vt 0.789062 0.453125 +vt 0.789062 0.468750 +vt 0.773438 0.468750 +vt 0.757812 0.820312 +vt 0.742188 0.820312 +vt 0.742188 0.742188 +vt 0.757812 0.742188 +vt 0.367188 0.296875 +vt 0.375000 0.296875 +vt 0.375000 0.335938 +vt 0.367188 0.335938 +vt 0.960938 0.453125 vt 0.976562 0.453125 vt 0.976562 0.468750 +vt 0.960938 0.468750 vt 0.992188 0.453125 vt 0.992188 0.468750 -vt 0.960938 0.539062 -vt 0.945312 0.539062 -vt 0.929688 0.539062 -vt 0.914062 0.539062 +vt 0.320312 0.367188 +vt 0.312500 0.367188 +vt 0.312500 0.335938 +vt 0.320312 0.335938 +vt 0.750000 0.625000 +vt 0.742188 0.625000 vt 0.898438 0.539062 +vt 0.882812 0.468750 vt 0.882812 0.539062 vt 0.867188 0.539062 vt 0.851562 0.539062 vt 0.835938 0.539062 +vt 0.820312 0.468750 vt 0.820312 0.539062 +vt 0.804688 0.468750 vt 0.804688 0.539062 vt 0.789062 0.539062 vt 0.773438 0.539062 +vt 0.757812 0.468750 vt 0.757812 0.539062 +vt 0.742188 0.468750 vt 0.742188 0.539062 -vt 0.976562 0.539062 -vt 0.992188 0.539062 -vt 0.851562 0.554688 -vt 0.843750 0.554688 -vt 0.835938 0.554688 -vt 0.828125 0.554688 +vt 0.093750 0.335938 +vt 0.085938 0.296875 +vt 0.093750 0.296875 +vt 0.289062 0.210938 +vt 0.273438 0.210938 +vt 0.273438 0.195312 +vt 0.289062 0.195312 +vt 0.882812 0.906250 +vt 0.867188 0.906250 +vt 0.867188 0.835938 +vt 0.882812 0.835938 +vt 0.164062 0.210938 +vt 0.179688 0.210938 +vt 0.179688 0.281250 +vt 0.164062 0.281250 +vt 0.867188 0.742188 +vt 0.882812 0.742188 +vt 0.882812 0.820312 +vt 0.867188 0.820312 vt 0.820312 0.554688 +vt 0.828125 0.554688 vt 0.812500 0.554688 +vt 0.812500 0.593750 vt 0.804688 0.554688 vt 0.796875 0.554688 vt 0.789062 0.554688 @@ -4332,45 +4350,57 @@ vt 0.781250 0.554688 vt 0.773438 0.554688 vt 0.765625 0.554688 vt 0.757812 0.554688 -vt 0.750000 0.554688 -vt 0.742188 0.593750 +vt 0.929688 0.453125 +vt 0.945312 0.453125 +vt 0.851562 0.921875 +vt 0.859375 0.921875 +vt 0.859375 0.960938 +vt 0.851562 0.960938 +vt 0.851562 0.554688 vt 0.859375 0.554688 -vt 0.867188 0.554688 -vt 0.960938 0.265625 -vt 0.960938 0.281250 -vt 0.945312 0.281250 -vt 0.945312 0.265625 -vt 0.929688 0.281250 vt 0.929688 0.265625 -vt 0.914062 0.265625 -vt 0.914062 0.281250 -vt 0.898438 0.281250 -vt 0.898438 0.265625 -vt 0.882812 0.281250 +vt 0.945312 0.265625 +vt 0.945312 0.281250 +vt 0.929688 0.281250 +vt 0.851562 0.835938 +vt 0.851562 0.820312 +vt 0.750000 0.960938 +vt 0.757812 0.960938 +vt 0.757812 0.992188 +vt 0.750000 0.992188 vt 0.882812 0.265625 -vt 0.867188 0.281250 +vt 0.898438 0.265625 +vt 0.898438 0.281250 +vt 0.882812 0.281250 vt 0.867188 0.265625 -vt 0.851562 0.281250 +vt 0.867188 0.281250 vt 0.851562 0.265625 -vt 0.835938 0.281250 +vt 0.851562 0.281250 vt 0.835938 0.265625 -vt 0.820312 0.281250 +vt 0.835938 0.281250 vt 0.820312 0.265625 -vt 0.804688 0.281250 +vt 0.820312 0.281250 vt 0.804688 0.265625 -vt 0.789062 0.281250 +vt 0.804688 0.281250 vt 0.789062 0.265625 -vt 0.773438 0.281250 +vt 0.789062 0.281250 vt 0.773438 0.265625 -vt 0.757812 0.265625 +vt 0.773438 0.281250 vt 0.757812 0.281250 +vt 0.757812 0.265625 +vt 0.742188 0.281250 vt 0.742188 0.265625 -vt 0.976562 0.265625 vt 0.976562 0.281250 -vt 0.992188 0.265625 +vt 0.960938 0.281250 +vt 0.960938 0.265625 +vt 0.976562 0.265625 vt 0.992188 0.281250 -vt 0.945312 0.375000 -vt 0.929688 0.375000 +vt 0.992188 0.265625 +vt 0.742188 0.835938 +vt 0.757812 0.835938 +vt 0.757812 0.906250 +vt 0.742188 0.906250 +vt 0.914062 0.281250 vt 0.914062 0.375000 vt 0.898438 0.375000 vt 0.882812 0.375000 @@ -4378,110 +4408,165 @@ vt 0.867188 0.375000 vt 0.851562 0.375000 vt 0.835938 0.375000 vt 0.820312 0.375000 -vt 0.804688 0.375000 -vt 0.789062 0.375000 -vt 0.773438 0.375000 +vt 0.195312 0.023438 +vt 0.179688 0.023438 +vt 0.179688 0.007812 +vt 0.195312 0.007812 +vt 0.382812 0.335938 +vt 0.382812 0.367188 +vt 0.375000 0.367188 +vt 0.054688 0.023438 +vt 0.070312 0.023438 +vt 0.070312 0.117188 +vt 0.054688 0.117188 vt 0.757812 0.375000 vt 0.742188 0.375000 vt 0.976562 0.375000 vt 0.960938 0.375000 vt 0.992188 0.375000 -vt 0.851562 0.960938 +vt 0.945312 0.375000 +vt 0.929688 0.375000 +vt 0.898438 0.648438 +vt 0.882812 0.648438 +vt 0.882812 0.632812 +vt 0.898438 0.632812 +vt 0.132812 0.335938 +vt 0.132812 0.367188 +vt 0.476562 0.117188 +vt 0.460938 0.117188 +vt 0.460938 0.023438 +vt 0.476562 0.023438 +vt 0.070312 0.195312 +vt 0.085938 0.195312 +vt 0.070312 0.210938 +vt 0.179688 0.195312 +vt 0.164062 0.195312 +vt 0.164062 0.117188 +vt 0.179688 0.117188 +vt 0.132812 0.023438 +vt 0.148438 0.023438 +vt 0.148438 0.117188 +vt 0.132812 0.117188 +vt 0.164062 0.007812 +vt 0.164062 0.023438 +vt 0.843750 0.960938 vt 0.851562 0.992188 vt 0.843750 0.992188 -vt 0.843750 0.960938 -vt 0.835938 0.960938 -vt 0.835938 0.992188 -vt 0.828125 0.992188 -vt 0.828125 0.960938 -vt 0.820312 0.992188 +vt 0.523438 0.210938 +vt 0.507812 0.210938 +vt 0.507812 0.195312 +vt 0.523438 0.195312 +vt 0.296875 0.367188 +vt 0.289062 0.367188 +vt 0.289062 0.281250 +vt 0.273438 0.281250 +vt 0.429688 0.195312 +vt 0.445312 0.195312 +vt 0.429688 0.210938 vt 0.820312 0.960938 -vt 0.812500 0.992188 +vt 0.828125 0.960938 +vt 0.828125 0.992188 +vt 0.820312 0.992188 vt 0.812500 0.960938 -vt 0.804688 0.960938 -vt 0.804688 0.992188 -vt 0.796875 0.992188 -vt 0.796875 0.960938 -vt 0.789062 0.992188 +vt 0.812500 0.992188 +vt 0.195312 0.281250 +vt 0.195312 0.210938 vt 0.789062 0.960938 -vt 0.781250 0.992188 +vt 0.796875 0.960938 +vt 0.796875 0.992188 +vt 0.789062 0.992188 vt 0.781250 0.960938 -vt 0.773438 0.992188 +vt 0.781250 0.992188 vt 0.773438 0.960938 -vt 0.765625 0.992188 +vt 0.773438 0.992188 vt 0.765625 0.960938 -vt 0.757812 0.960938 -vt 0.757812 0.992188 -vt 0.750000 0.992188 -vt 0.750000 0.960938 +vt 0.765625 0.992188 +vt 0.914062 0.265625 +vt 0.742188 0.960938 vt 0.742188 0.992188 -vt 0.914435 0.986879 -vt 0.901541 0.984352 -vt 0.914342 0.953206 -vt 0.859375 0.960938 vt 0.859375 0.992188 +vt 0.890597 0.977082 +vt 0.883267 0.966178 +vt 0.914342 0.953206 +vt 0.901541 0.984352 vt 0.867188 0.960938 vt 0.867188 0.992188 -vt 0.513898 0.341718 -vt 0.508203 0.342893 -vt 0.508096 0.327990 +vt 0.945312 0.820312 vt 0.960938 0.820312 vt 0.960938 0.835938 vt 0.945312 0.835938 -vt 0.945312 0.820312 -vt 0.929688 0.835938 +vt 0.502491 0.341800 +vt 0.497633 0.338604 +vt 0.508096 0.327990 +vt 0.508203 0.342893 vt 0.929688 0.820312 -vt 0.914062 0.835938 +vt 0.929688 0.835938 vt 0.914062 0.820312 -vt 0.898438 0.835938 +vt 0.914062 0.835938 vt 0.898438 0.820312 -vt 0.882812 0.835938 -vt 0.882812 0.820312 -vt 0.867188 0.820312 -vt 0.867188 0.835938 -vt 0.851562 0.820312 -vt 0.851562 0.835938 -vt 0.835938 0.835938 -vt 0.835938 0.820312 -vt 0.820312 0.820312 -vt 0.820312 0.835938 +vt 0.898438 0.835938 +vt 0.804688 0.906250 vt 0.804688 0.835938 -vt 0.804688 0.820312 -vt 0.789062 0.835938 +vt 0.929688 0.742188 +vt 0.914062 0.742188 +vt 0.914062 0.648438 +vt 0.929688 0.648438 +vt 0.523438 0.281250 +vt 0.507812 0.281250 vt 0.789062 0.820312 -vt 0.773438 0.835938 +vt 0.804688 0.820312 vt 0.773438 0.820312 -vt 0.757812 0.820312 -vt 0.757812 0.835938 -vt 0.742188 0.835938 -vt 0.976562 0.820312 -vt 0.976562 0.835938 -vt 0.992188 0.820312 -vt 0.992188 0.835938 -vt 0.960938 0.906250 -vt 0.945312 0.906250 -vt 0.929688 0.906250 -vt 0.914062 0.906250 +vt 0.046875 0.367188 +vt 0.046875 0.335938 +vt 0.382812 0.296875 +vt 0.390625 0.296875 +vt 0.390625 0.335938 +vt 0.492188 0.117188 +vt 0.507812 0.117188 +vt 0.492188 0.195312 +vt 0.945312 0.648438 +vt 0.929688 0.632812 +vt 0.945312 0.632812 +vt 0.398438 0.007812 +vt 0.414062 0.007812 +vt 0.414062 0.023438 +vt 0.398438 0.023438 vt 0.898438 0.906250 -vt 0.882812 0.906250 -vt 0.867188 0.906250 +vt 0.382812 0.281250 +vt 0.367188 0.281250 +vt 0.367188 0.210938 +vt 0.382812 0.210938 +vt 0.101562 0.335938 +vt 0.101562 0.296875 +vt 0.835938 0.835938 vt 0.851562 0.906250 vt 0.835938 0.906250 +vt 0.820312 0.835938 vt 0.820312 0.906250 -vt 0.804688 0.906250 -vt 0.789062 0.906250 -vt 0.773438 0.906250 -vt 0.757812 0.906250 -vt 0.742188 0.906250 +vt 0.109375 0.367188 +vt 0.109375 0.335938 +vt 0.835938 0.820312 +vt 0.242188 0.195312 +vt 0.226562 0.195312 +vt 0.226562 0.117188 +vt 0.242188 0.117188 +vt 0.054688 0.335938 +vt 0.062500 0.335938 +vt 0.062500 0.367188 +vt 0.054688 0.367188 +vt 0.976562 0.835938 vt 0.976562 0.906250 +vt 0.960938 0.906250 +vt 0.992188 0.835938 vt 0.992188 0.906250 -vt 0.851562 0.921875 vt 0.843750 0.921875 vt 0.835938 0.921875 +vt 0.835938 0.960938 vt 0.828125 0.921875 vt 0.820312 0.921875 vt 0.812500 0.921875 vt 0.804688 0.921875 +vt 0.804688 0.960938 vt 0.796875 0.921875 vt 0.789062 0.921875 vt 0.781250 0.921875 @@ -4489,384 +4574,275 @@ vt 0.773438 0.921875 vt 0.765625 0.921875 vt 0.757812 0.921875 vt 0.750000 0.921875 -vt 0.742188 0.921875 -vt 0.859375 0.921875 vt 0.867188 0.921875 vt 0.960938 0.632812 vt 0.960938 0.648438 -vt 0.945312 0.648438 -vt 0.945312 0.632812 -vt 0.929688 0.632812 -vt 0.929688 0.648438 -vt 0.914062 0.632812 -vt 0.914062 0.648438 -vt 0.898438 0.648438 -vt 0.898438 0.632812 -vt 0.882812 0.632812 -vt 0.882812 0.648438 -vt 0.867188 0.648438 -vt 0.867188 0.632812 -vt 0.851562 0.648438 +vt 0.304688 0.335938 +vt 0.304688 0.296875 +vt 0.812500 0.625000 +vt 0.117188 0.195312 +vt 0.132812 0.195312 +vt 0.132812 0.210938 +vt 0.117188 0.210938 +vt 0.039062 0.210938 +vt 0.023438 0.210938 +vt 0.023438 0.195312 +vt 0.039062 0.195312 +vt 0.882812 0.453125 vt 0.851562 0.632812 -vt 0.835938 0.648438 +vt 0.867188 0.632812 +vt 0.867188 0.648438 +vt 0.851562 0.648438 vt 0.835938 0.632812 -vt 0.820312 0.648438 +vt 0.835938 0.648438 vt 0.820312 0.632812 -vt 0.804688 0.648438 +vt 0.820312 0.648438 vt 0.804688 0.632812 -vt 0.789062 0.648438 +vt 0.804688 0.648438 vt 0.789062 0.632812 -vt 0.773438 0.648438 +vt 0.789062 0.648438 vt 0.773438 0.632812 -vt 0.757812 0.632812 +vt 0.773438 0.648438 vt 0.757812 0.648438 +vt 0.757812 0.632812 +vt 0.742188 0.648438 vt 0.742188 0.632812 -vt 0.976562 0.632812 vt 0.976562 0.648438 -vt 0.992188 0.632812 +vt 0.976562 0.632812 vt 0.992188 0.648438 -vt 0.945312 0.742188 -vt 0.929688 0.742188 -vt 0.914062 0.742188 +vt 0.992188 0.632812 +vt 0.304688 0.023438 +vt 0.320312 0.023438 +vt 0.320312 0.117188 +vt 0.304688 0.117188 +vt 0.820312 0.820312 vt 0.898438 0.742188 -vt 0.882812 0.742188 -vt 0.867188 0.742188 vt 0.851562 0.742188 vt 0.835938 0.742188 vt 0.820312 0.742188 vt 0.804688 0.742188 vt 0.789062 0.742188 vt 0.773438 0.742188 -vt 0.757812 0.742188 -vt 0.742188 0.742188 vt 0.976562 0.742188 vt 0.960938 0.742188 vt 0.992188 0.742188 -vt 0.382812 0.335938 -vt 0.382812 0.367188 -vt 0.375000 0.367188 -vt 0.375000 0.335938 +vt 0.945312 0.742188 +vt 0.210938 0.281250 +vt 0.210938 0.210938 +vt 0.835938 0.554688 +vt 0.843750 0.554688 +vt 0.757812 0.453125 +vt 0.742188 0.453125 +vt 0.257812 0.023438 +vt 0.242188 0.023438 +vt 0.242188 0.007812 +vt 0.257812 0.007812 +vt 0.007812 0.023438 +vt 0.023438 0.023438 +vt 0.023438 0.117188 +vt 0.007812 0.117188 +vt 0.992188 0.820312 +vt 0.976562 0.820312 +vt 0.804688 0.375000 vt 0.367188 0.367188 -vt 0.367188 0.335938 -vt 0.359375 0.367188 vt 0.359375 0.335938 -vt 0.351562 0.367188 +vt 0.359375 0.367188 vt 0.351562 0.335938 -vt 0.343750 0.367188 +vt 0.351562 0.367188 vt 0.343750 0.335938 -vt 0.335938 0.335938 -vt 0.335938 0.367188 -vt 0.328125 0.367188 +vt 0.343750 0.367188 +vt 0.148438 0.210938 +vt 0.148438 0.195312 vt 0.328125 0.335938 -vt 0.320312 0.367188 -vt 0.320312 0.335938 -vt 0.312500 0.335938 -vt 0.312500 0.367188 +vt 0.328125 0.367188 vt 0.304688 0.367188 -vt 0.304688 0.335938 -vt 0.296875 0.335938 -vt 0.296875 0.367188 -vt 0.289062 0.367188 -vt 0.289062 0.335938 -vt 0.281250 0.367188 vt 0.281250 0.335938 +vt 0.281250 0.367188 +vt 0.273438 0.335938 vt 0.273438 0.367188 -vt 0.446054 0.361949 -vt 0.433160 0.359422 +vt 0.304688 0.281250 +vt 0.304688 0.210938 +vt 0.422215 0.352152 +vt 0.414886 0.341248 vt 0.445961 0.328276 -vt 0.390625 0.335938 -vt 0.390625 0.367188 -vt 0.398438 0.335938 -vt 0.398438 0.367188 -vt 0.248156 0.341696 -vt 0.242461 0.342871 -vt 0.242354 0.327968 -vt 0.492188 0.195312 +vt 0.433160 0.359422 +vt 0.476562 0.195312 vt 0.492188 0.210938 vt 0.476562 0.210938 -vt 0.476562 0.195312 -vt 0.460938 0.210938 +vt 0.236750 0.341777 +vt 0.231892 0.338581 +vt 0.242354 0.327968 +vt 0.242461 0.342871 vt 0.460938 0.195312 -vt 0.445312 0.195312 -vt 0.445312 0.210938 -vt 0.429688 0.210938 -vt 0.429688 0.195312 -vt 0.414062 0.210938 +vt 0.835938 0.992188 +vt 0.804688 0.453125 vt 0.414062 0.195312 -vt 0.398438 0.195312 +vt 0.414062 0.210938 vt 0.398438 0.210938 -vt 0.382812 0.195312 -vt 0.382812 0.210938 -vt 0.367188 0.210938 +vt 0.398438 0.195312 +vt 0.117188 0.281250 +vt 0.351562 0.195312 vt 0.367188 0.195312 vt 0.351562 0.210938 -vt 0.351562 0.195312 -vt 0.335938 0.210938 vt 0.335938 0.195312 -vt 0.320312 0.210938 +vt 0.335938 0.210938 vt 0.320312 0.195312 -vt 0.304688 0.210938 +vt 0.320312 0.210938 vt 0.304688 0.195312 -vt 0.289062 0.210938 -vt 0.289062 0.195312 -vt 0.273438 0.195312 -vt 0.507812 0.195312 -vt 0.507812 0.210938 -vt 0.523438 0.195312 -vt 0.523438 0.210938 +vt 0.976562 0.539062 +vt 0.960938 0.539062 +vt 0.945312 0.906250 +vt 0.929688 0.906250 vt 0.492188 0.281250 -vt 0.476562 0.281250 -vt 0.460938 0.281250 -vt 0.445312 0.281250 +vt 0.015625 0.296875 +vt 0.023438 0.296875 +vt 0.023438 0.335938 +vt 0.015625 0.335938 vt 0.429688 0.281250 vt 0.414062 0.281250 vt 0.398438 0.281250 -vt 0.382812 0.281250 -vt 0.367188 0.281250 +vt 0.031250 0.296875 vt 0.351562 0.281250 vt 0.335938 0.281250 vt 0.320312 0.281250 -vt 0.304688 0.281250 -vt 0.289062 0.281250 -vt 0.273438 0.210938 -vt 0.507812 0.281250 -vt 0.523438 0.281250 -vt 0.382812 0.296875 -vt 0.375000 0.296875 -vt 0.367188 0.296875 +vt 0.382812 0.195312 +vt 0.398438 0.335938 +vt 0.398438 0.367188 +vt 0.390625 0.367188 vt 0.359375 0.296875 vt 0.351562 0.296875 vt 0.343750 0.296875 vt 0.335938 0.296875 +vt 0.335938 0.335938 vt 0.328125 0.296875 vt 0.320312 0.296875 vt 0.312500 0.296875 -vt 0.304688 0.296875 -vt 0.296875 0.296875 -vt 0.289062 0.296875 +vt 0.867188 0.625000 +vt 0.867188 0.593750 vt 0.281250 0.296875 -vt 0.273438 0.296875 -vt 0.390625 0.296875 vt 0.398438 0.296875 +vt 0.476562 0.007812 vt 0.492188 0.007812 vt 0.492188 0.023438 -vt 0.476562 0.023438 -vt 0.476562 0.007812 -vt 0.460938 0.023438 vt 0.460938 0.007812 -vt 0.445312 0.007812 -vt 0.445312 0.023438 vt 0.429688 0.023438 -vt 0.429688 0.007812 -vt 0.414062 0.007812 -vt 0.414062 0.023438 -vt 0.398438 0.023438 -vt 0.398438 0.007812 -vt 0.382812 0.023438 -vt 0.382812 0.007812 -vt 0.367188 0.023438 -vt 0.367188 0.007812 -vt 0.351562 0.023438 -vt 0.351562 0.007812 -vt 0.335938 0.023438 -vt 0.335938 0.007812 -vt 0.320312 0.023438 -vt 0.320312 0.007812 -vt 0.304688 0.023438 -vt 0.304688 0.007812 -vt 0.289062 0.007812 -vt 0.289062 0.023438 -vt 0.273438 0.007812 -vt 0.507812 0.007812 -vt 0.507812 0.023438 -vt 0.523438 0.007812 -vt 0.523438 0.023438 -vt 0.476562 0.117188 -vt 0.460938 0.117188 +vt 0.445312 0.023438 vt 0.445312 0.117188 vt 0.429688 0.117188 +vt 0.914062 0.906250 +vt 0.039062 0.117188 +vt 0.039062 0.023438 +vt 0.382812 0.007812 +vt 0.382812 0.023438 +vt 0.367188 0.007812 +vt 0.367188 0.023438 +vt 0.351562 0.007812 +vt 0.351562 0.023438 +vt 0.335938 0.007812 +vt 0.335938 0.023438 +vt 0.320312 0.007812 +vt 0.304688 0.007812 +vt 0.289062 0.023438 +vt 0.289062 0.007812 +vt 0.273438 0.023438 +vt 0.273438 0.007812 +vt 0.507812 0.023438 +vt 0.507812 0.007812 +vt 0.523438 0.023438 +vt 0.523438 0.007812 +vt 0.820312 0.453125 vt 0.414062 0.117188 -vt 0.398438 0.117188 vt 0.382812 0.117188 vt 0.367188 0.117188 vt 0.351562 0.117188 -vt 0.335938 0.117188 -vt 0.320312 0.117188 -vt 0.304688 0.117188 vt 0.289062 0.117188 -vt 0.273438 0.023438 -vt 0.507812 0.117188 -vt 0.492188 0.117188 +vt 0.195312 0.117188 vt 0.523438 0.117188 -vt 0.273438 0.117188 -vt 0.117188 0.335938 -vt 0.117188 0.367188 -vt 0.109375 0.335938 -vt 0.109375 0.367188 -vt 0.101562 0.335938 +vt 0.398438 0.117188 +vt 0.335938 0.117188 +vt 0.335938 0.367188 +vt 0.007812 0.195312 vt 0.101562 0.367188 vt 0.093750 0.367188 -vt 0.093750 0.335938 -vt 0.085938 0.367188 -vt 0.085938 0.335938 -vt 0.078125 0.335938 -vt 0.078125 0.367188 -vt 0.070312 0.335938 -vt 0.070312 0.367188 -vt 0.062500 0.335938 -vt 0.062500 0.367188 -vt 0.054688 0.367188 -vt 0.054688 0.335938 -vt 0.046875 0.335938 -vt 0.046875 0.367188 -vt 0.039062 0.335938 -vt 0.039062 0.367188 -vt 0.031250 0.367188 -vt 0.031250 0.335938 +vt 0.273438 0.296875 +vt 0.914062 0.632812 vt 0.023438 0.367188 -vt 0.023438 0.335938 vt 0.015625 0.367188 -vt 0.015625 0.335938 +vt 0.007812 0.335938 vt 0.007812 0.367188 -vt 0.180089 0.361949 -vt 0.167196 0.359422 +vt 0.148922 0.341248 +vt 0.146323 0.328368 vt 0.179996 0.328276 -vt 0.125000 0.335938 -vt 0.125000 0.367188 -vt 0.132812 0.335938 -vt 0.132812 0.367188 -vt 0.226562 0.195312 -vt 0.226562 0.210938 -vt 0.210938 0.210938 +vt 0.156251 0.352152 vt 0.210938 0.195312 -vt 0.195312 0.210938 +vt 0.226562 0.210938 vt 0.195312 0.195312 -vt 0.179688 0.210938 -vt 0.179688 0.195312 -vt 0.164062 0.210938 -vt 0.164062 0.195312 -vt 0.148438 0.195312 -vt 0.148438 0.210938 -vt 0.132812 0.195312 -vt 0.132812 0.210938 -vt 0.117188 0.210938 -vt 0.117188 0.195312 -vt 0.101562 0.210938 +vt 0.070312 0.367188 +vt 0.070312 0.335938 vt 0.101562 0.195312 -vt 0.085938 0.195312 -vt 0.085938 0.210938 -vt 0.070312 0.210938 -vt 0.070312 0.195312 -vt 0.054688 0.210938 vt 0.054688 0.195312 -vt 0.039062 0.210938 -vt 0.039062 0.195312 -vt 0.023438 0.195312 -vt 0.023438 0.210938 -vt 0.007812 0.210938 -vt 0.242188 0.195312 +vt 0.054688 0.210938 +vt 0.070312 0.296875 +vt 0.078125 0.296875 vt 0.242188 0.210938 vt 0.257812 0.195312 vt 0.257812 0.210938 -vt 0.226562 0.281250 -vt 0.210938 0.281250 -vt 0.195312 0.281250 -vt 0.179688 0.281250 -vt 0.164062 0.281250 +vt 0.062500 0.296875 +vt 0.804688 0.992188 vt 0.148438 0.281250 vt 0.132812 0.281250 -vt 0.117188 0.281250 -vt 0.101562 0.281250 -vt 0.085938 0.281250 +vt 0.257812 0.117188 vt 0.070312 0.281250 vt 0.054688 0.281250 vt 0.039062 0.281250 vt 0.023438 0.281250 +vt 0.007812 0.210938 vt 0.007812 0.281250 vt 0.242188 0.281250 +vt 0.226562 0.281250 vt 0.257812 0.281250 -vt 0.117188 0.296875 vt 0.109375 0.296875 -vt 0.101562 0.296875 -vt 0.093750 0.296875 -vt 0.085938 0.296875 -vt 0.078125 0.296875 -vt 0.070312 0.296875 -vt 0.062500 0.296875 +vt 0.117188 0.296875 +vt 0.992188 0.539062 vt 0.054688 0.296875 vt 0.046875 0.296875 vt 0.039062 0.296875 -vt 0.031250 0.296875 -vt 0.023438 0.296875 -vt 0.015625 0.296875 -vt 0.007812 0.335938 +vt 0.476562 0.281250 +vt 0.007812 0.296875 vt 0.125000 0.296875 vt 0.132812 0.296875 +vt 0.210938 0.007812 vt 0.226562 0.007812 vt 0.226562 0.023438 vt 0.210938 0.023438 -vt 0.210938 0.007812 -vt 0.195312 0.023438 -vt 0.195312 0.007812 -vt 0.179688 0.007812 -vt 0.179688 0.023438 -vt 0.164062 0.023438 -vt 0.164062 0.007812 -vt 0.148438 0.023438 +vt 0.773438 0.375000 +vt 0.789062 0.375000 vt 0.148438 0.007812 -vt 0.132812 0.023438 vt 0.132812 0.007812 -vt 0.117188 0.023438 vt 0.117188 0.007812 -vt 0.101562 0.023438 +vt 0.117188 0.023438 vt 0.101562 0.007812 -vt 0.085938 0.023438 +vt 0.101562 0.023438 vt 0.085938 0.007812 -vt 0.070312 0.023438 +vt 0.085938 0.023438 vt 0.070312 0.007812 -vt 0.054688 0.023438 vt 0.054688 0.007812 -vt 0.039062 0.023438 vt 0.039062 0.007812 vt 0.023438 0.007812 -vt 0.023438 0.023438 vt 0.007812 0.007812 -vt 0.242188 0.007812 -vt 0.242188 0.023438 -vt 0.257812 0.007812 -vt 0.257812 0.023438 vt 0.210938 0.117188 -vt 0.195312 0.117188 -vt 0.179688 0.117188 -vt 0.164062 0.117188 -vt 0.148438 0.117188 -vt 0.132812 0.117188 vt 0.117188 0.117188 vt 0.101562 0.117188 vt 0.085938 0.117188 -vt 0.070312 0.117188 -vt 0.054688 0.117188 -vt 0.039062 0.117188 -vt 0.023438 0.117188 -vt 0.007812 0.117188 -vt 0.242188 0.117188 -vt 0.257812 0.117188 -vt 0.226562 0.117188 -vt 0.742188 0.820312 -vt 0.742188 0.453125 -vt 0.742188 0.554688 -vt 0.742188 0.281250 -vt 0.273438 0.281250 -vt 0.742188 0.960938 -vt 0.742188 0.648438 -vt 0.982289 0.599796 +vt 0.273438 0.117188 +vt 0.429688 0.007812 +vt 0.445312 0.007812 +vt 0.867188 0.554688 vt 0.976594 0.600971 -vt 0.976487 0.586068 -vt 0.273438 0.335938 -vt 0.007812 0.195312 -vt 0.007812 0.296875 -vt 0.007812 0.023438 vt 0.970883 0.599878 +vt 0.976487 0.586068 +vt 0.982289 0.599796 +vt 0.742188 0.921875 vt 0.966025 0.596682 vt 0.962760 0.591870 vt 0.961584 0.586175 @@ -4880,7626 +4856,4009 @@ vt 0.990215 0.580266 vt 0.991390 0.585961 vt 0.990297 0.591673 vt 0.987101 0.596531 -vt 0.890607 0.609908 -vt 0.883277 0.599004 -vt 0.880678 0.586125 +vt 0.927324 0.617107 +vt 0.914445 0.619705 +vt 0.901551 0.617178 vt 0.883206 0.573231 vt 0.890476 0.562286 vt 0.901380 0.554957 vt 0.914259 0.552358 -vt 0.927153 0.554886 vt 0.938097 0.562155 vt 0.945427 0.573059 -vt 0.948026 0.585939 +vt 0.927153 0.554886 vt 0.945498 0.598832 vt 0.938229 0.609777 -vt 0.927324 0.617107 -vt 0.970873 0.967052 -vt 0.966015 0.963856 -vt 0.962749 0.959044 +vt 0.948026 0.585939 +vt 0.987091 0.963705 +vt 0.982279 0.966970 vt 0.961574 0.953349 vt 0.962668 0.947638 +vt 0.962749 0.959044 vt 0.965864 0.942780 vt 0.970675 0.939515 vt 0.976371 0.938339 vt 0.982082 0.939433 vt 0.986940 0.942629 vt 0.990205 0.947441 -vt 0.991380 0.953136 vt 0.990287 0.958847 -vt 0.987091 0.963705 -vt 0.890597 0.977082 -vt 0.883267 0.966178 -vt 0.880668 0.953299 +vt 0.991380 0.953136 +vt 0.927314 0.984281 +vt 0.914435 0.986879 vt 0.883196 0.940405 vt 0.890465 0.929460 +vt 0.880668 0.953299 vt 0.901370 0.922131 vt 0.914249 0.919532 vt 0.927143 0.922059 vt 0.938087 0.929329 -vt 0.945417 0.940233 vt 0.948016 0.953113 vt 0.945488 0.966006 +vt 0.945417 0.940233 vt 0.938219 0.976951 -vt 0.927314 0.984281 -vt 0.502491 0.341800 -vt 0.497633 0.338604 +vt 0.518709 0.338453 +vt 0.513898 0.341718 vt 0.494368 0.333792 vt 0.493193 0.328097 vt 0.494286 0.322386 vt 0.497482 0.317528 vt 0.502294 0.314263 vt 0.507989 0.313087 -vt 0.513701 0.314181 vt 0.518559 0.317377 vt 0.521824 0.322189 +vt 0.513701 0.314181 vt 0.522999 0.327884 vt 0.521905 0.333595 -vt 0.518709 0.338453 -vt 0.422215 0.352152 -vt 0.414886 0.341248 +vt 0.458933 0.359351 +vt 0.446054 0.361949 vt 0.412287 0.328368 vt 0.414815 0.315475 vt 0.422084 0.304530 vt 0.432988 0.297201 -vt 0.445868 0.294602 vt 0.458761 0.297129 vt 0.469706 0.304399 -vt 0.477036 0.315303 +vt 0.445868 0.294602 vt 0.479634 0.328183 vt 0.477107 0.341076 +vt 0.477036 0.315303 vt 0.469837 0.352021 -vt 0.458933 0.359351 -vt 0.236750 0.341777 -vt 0.231892 0.338581 -vt 0.228627 0.333770 +vt 0.252968 0.338430 +vt 0.248156 0.341696 vt 0.227451 0.328075 vt 0.228545 0.322363 +vt 0.228627 0.333770 vt 0.231741 0.317505 vt 0.236552 0.314240 vt 0.242248 0.313065 vt 0.247959 0.314158 -vt 0.252817 0.317354 vt 0.256082 0.322166 vt 0.257257 0.327861 +vt 0.252817 0.317354 vt 0.256164 0.333572 -vt 0.252968 0.338430 -vt 0.156251 0.352152 -vt 0.148922 0.341248 -vt 0.146323 0.328368 +vt 0.192969 0.359351 +vt 0.180089 0.361949 +vt 0.167196 0.359422 vt 0.148850 0.315475 vt 0.156120 0.304530 vt 0.167024 0.297201 vt 0.179904 0.294602 -vt 0.192797 0.297129 vt 0.203742 0.304399 vt 0.211071 0.315303 -vt 0.213670 0.328183 +vt 0.192797 0.297129 vt 0.211143 0.341076 vt 0.203873 0.352021 -vt 0.192969 0.359351 +vt 0.213670 0.328183 usemtl Material s off -f 539/1 532/2 540/3 -f 519/4 557/5 558/6 -f 528/7 548/8 547/9 -f 589/10 576/11 583/12 -f 603/13 564/4 604/14 -f 573/15 593/16 594/17 -f 557/18 519/19 564/20 -f 535/21 543/22 581/18 -f 690/23 651/24 691/25 -f 534/26 538/27 580/18 -f 550/28 549/29 595/30 -f 520/31 558/32 604/22 -f 539/33 535/34 585/26 -f 542/35 534/36 580/34 -f 549/37 527/38 595/39 -f 532/40 539/41 578/42 -f 676/43 663/44 670/45 -f 529/22 550/46 574/47 -f 540/48 532/49 578/50 -f 628/51 621/52 629/53 -f 556/54 555/55 601/56 -f 533/57 540/58 579/59 -f 607/24 646/60 647/61 -f 555/62 518/63 563/64 -f 536/37 541/18 587/65 -f 559/66 524/67 605/57 -f 544/68 533/69 590/38 -f 547/70 548/54 593/71 -f 2664/72 617/73 574/74 2666/75 -f 519/76 556/77 564/66 -f 537/78 536/68 583/37 -f 531/79 544/50 590/80 -f 548/81 528/82 573/46 -f 616/83 637/84 636/85 -f 518/86 520/87 565/88 -f 521/89 553/90 599/69 -f 527/91 547/89 593/68 -f 683/84 682/85 659/92 -f 646/93 607/94 651/82 -f 624/95 632/96 668/89 -f 623/94 627/97 671/98 -f 639/55 638/99 682/100 -f 608/101 647/95 691/89 -f 628/102 624/37 672/103 -f 631/104 623/105 667/94 -f 638/102 615/106 682/101 -f 621/107 628/42 672/108 -f 617/109 639/110 683/111 -f 629/112 621/113 665/114 -f 645/99 644/115 688/116 -f 622/117 629/93 673/81 -f 644/118 561/119 650/120 -f 625/121 630/104 674/93 -f 648/122 612/49 656/104 -f 633/123 622/124 677/125 -f 636/29 637/70 680/30 -f 607/49 645/126 651/104 -f 626/42 625/127 670/40 -f 620/128 633/129 677/130 -f 637/126 616/110 681/105 -f 561/131 608/132 652/133 -f 609/134 642/135 686/114 -f 615/136 636/134 680/124 -f 675/137 674/137 541/138 -f 529/139 661/140 659/141 -f 528/142 527/142 659/141 -f 666/143 533/144 667/145 -f 667/146 534/147 536/148 -f 668/149 535/150 666/149 -f 536/148 535/137 668/138 -f 678/151 545/152 547/153 -f 547/140 548/154 681/155 -f 681/155 548/154 679/155 -f 546/145 545/145 679/156 -f 688/157 555/158 553/159 -f 688/160 689/161 556/162 -f 554/163 687/164 686/164 -f 689/158 687/158 556/157 -f 676/165 543/166 670/165 -f 557/167 690/168 691/146 -f 693/144 690/164 557/163 -f 560/152 559/169 692/170 -f 691/146 692/146 558/147 -f 673/149 540/150 539/171 -f 665/172 532/173 540/174 -f 532/175 665/171 672/165 -f 652/173 651/176 520/172 -f 518/172 650/173 652/173 -f 651/177 650/178 518/179 -f 677/180 671/180 538/153 -f 531/163 664/164 677/181 -f 684/178 682/180 549/153 -f 682/182 683/183 549/184 -f 552/185 550/185 683/183 -f 552/186 685/159 551/160 -f 522/187 554/188 553/189 -f 545/190 546/191 526/192 -f 567/193 599/194 600/195 -f 570/187 606/188 605/189 -f 552/39 523/62 568/32 -f 545/47 525/196 591/35 -f 525/59 560/197 570/47 -f 522/32 551/64 567/22 -f 613/198 634/199 635/200 -f 554/38 522/201 600/62 -f 610/202 643/203 642/204 -f 524/205 526/206 571/122 -f 526/82 546/98 592/109 -f 653/181 654/170 522/169 -f 654/198 684/199 655/207 -f 657/202 693/203 692/204 -f 611/208 1315/209 1272/210 568/211 -f 641/106 611/120 655/96 -f 634/105 613/212 678/94 -f 613/213 649/81 693/69 -f 610/40 640/118 654/102 -f 643/124 610/114 687/213 -f 612/214 614/130 656/215 -f 614/130 635/132 679/110 -f 654/170 655/170 523/169 -f 656/216 524/217 525/157 -f 657/160 525/218 658/160 -f 656/168 658/155 526/154 -f 560/197 606/196 570/47 -f 559/194 560/195 525/193 -f 550/46 596/76 574/47 -f 556/13 519/4 518/219 -f 632/96 676/90 668/89 -f 543/22 589/47 581/18 -f 622/124 666/213 677/125 -f 649/220 613/198 612/221 -f 624/222 622/223 623/224 -f 637/70 681/71 680/30 -f 538/27 584/19 580/18 -f 645/23 607/24 561/225 -f 533/69 579/201 590/38 -f 536/226 534/227 542/10 -f 685/159 684/218 551/160 -f 551/64 597/46 567/22 -f 543/166 537/166 670/165 -f 548/54 594/228 593/71 -f 645/126 689/105 651/104 -f 539/41 585/229 578/42 -f 538/230 544/231 531/232 -f 543/43 537/233 530/44 -f 538/230 533/234 544/231 -f 543/43 535/235 537/233 -f 534/227 533/234 538/230 -f 537/233 535/235 536/226 -f 535/235 539/1 540/3 -f 535/235 540/3 533/234 -f 536/226 535/235 533/234 -f 536/226 533/234 534/227 -f 541/12 536/226 542/10 -f 556/77 602/67 564/66 -f 555/14 556/13 518/219 -f 519/4 558/6 520/236 -f 519/4 520/236 518/219 -f 528/7 547/9 527/237 -f 529/15 528/7 527/237 -f 550/17 529/15 527/237 -f 549/16 550/17 527/237 -f 588/43 587/233 575/44 -f 590/3 584/1 577/2 -f 585/230 586/231 578/232 -f 581/227 589/10 583/12 -f 581/227 583/12 582/226 -f 585/230 581/227 586/231 -f 579/234 584/1 590/3 -f 586/231 581/227 579/234 -f 581/227 582/226 579/234 -f 587/233 588/43 580/235 -f 582/226 587/233 580/235 -f 579/234 582/226 580/235 -f 584/1 579/234 580/235 -f 604/14 564/4 565/219 -f 565/219 564/4 563/236 -f 564/4 602/5 601/6 -f 563/236 564/4 601/6 -f 573/15 572/237 593/16 -f 573/15 574/7 572/237 -f 574/7 596/8 595/9 -f 572/237 574/7 595/9 -f 603/65 557/18 564/20 -f 691/25 651/24 652/225 -f 652/225 651/24 650/238 -f 651/24 689/60 688/61 -f 650/238 651/24 688/61 -f 596/239 550/28 595/30 -f 565/21 520/31 604/22 -f 588/33 542/35 580/34 -f 675/240 674/241 662/150 -f 677/53 671/51 664/52 -f 672/1 673/242 665/2 -f 668/224 676/43 670/45 -f 672/1 668/224 673/242 -f 668/224 670/45 669/243 -f 673/242 668/224 666/223 -f 668/224 669/243 666/223 -f 666/223 671/51 677/53 -f 674/241 675/240 667/222 -f 669/243 674/241 667/222 -f 666/223 669/243 667/222 -f 671/51 666/223 667/222 -f 632/240 624/222 625/243 -f 586/79 540/48 578/50 -f 627/1 633/242 620/2 -f 630/45 631/43 618/44 -f 632/240 626/241 619/150 -f 627/1 622/223 633/242 -f 626/241 632/240 625/243 -f 623/224 622/223 627/1 -f 623/224 631/43 625/243 -f 624/222 628/51 629/53 -f 624/222 629/53 622/223 -f 625/243 624/222 623/224 -f 525/218 526/218 658/160 -f 616/83 636/85 615/92 -f 602/228 556/54 601/56 -f 687/158 554/157 556/157 -f 644/25 645/23 561/225 -f 607/24 647/61 608/238 -f 540/58 586/197 579/59 -f 607/24 608/238 561/225 -f 601/32 555/62 563/64 -f 582/244 536/37 587/65 -f 535/150 533/150 666/149 -f 536/68 582/38 583/37 -f 573/245 2668/246 2666/247 574/248 -f 577/249 531/79 590/80 -f 594/69 548/81 573/46 -f 617/250 616/83 615/92 -f 639/251 617/250 638/252 -f 566/253 599/194 567/193 -f 638/252 617/250 615/92 -f 563/254 518/86 565/88 -f 566/68 521/89 599/69 -f 572/78 527/91 593/68 -f 681/251 659/92 680/252 -f 661/83 683/84 659/92 -f 660/250 661/83 681/251 -f 661/83 659/92 681/251 -f 690/81 646/93 651/82 -f 667/82 623/94 671/98 -f 683/56 639/55 682/100 -f 652/91 608/101 691/89 -f 524/67 569/58 605/57 -f 675/93 631/104 667/94 -f 631/43 630/45 625/243 -f 665/255 621/107 672/108 -f 661/77 617/109 683/111 -f 673/256 629/112 665/114 -f 689/100 645/99 688/116 -f 666/213 622/117 673/81 -f 688/106 644/118 650/120 -f 669/117 625/121 674/93 -f 692/121 648/122 656/104 -f 616/110 660/212 681/105 -f 615/106 659/95 682/101 -f 664/214 620/128 677/130 -f 650/257 561/131 652/133 -f 653/124 609/134 686/114 -f 659/123 615/136 680/124 -f 542/138 675/137 541/138 -f 527/142 529/139 659/141 -f 660/141 528/142 659/141 -f 545/145 678/156 679/156 -f 669/258 667/146 536/148 -f 533/144 534/156 667/145 -f 669/258 536/148 668/138 -f 680/180 678/151 547/153 -f 680/139 547/140 681/155 -f 525/196 570/36 591/35 -f 527/38 572/62 595/39 -f 686/186 688/157 553/159 -f 555/218 688/160 556/162 -f 553/163 554/163 686/164 -f 651/176 519/259 520/172 -f 683/183 550/185 549/184 -f 558/147 557/167 691/146 -f 560/143 693/144 557/163 -f 693/151 560/152 692/170 -f 672/175 673/149 539/171 -f 673/260 665/172 540/174 -f 539/166 532/175 672/165 -f 692/146 559/147 558/147 -f 520/172 518/172 652/173 -f 519/261 651/177 518/179 -f 544/153 677/180 538/153 -f 544/262 531/163 677/181 -f 551/179 684/178 549/153 -f 685/183 552/185 683/183 -f 522/201 567/63 600/62 -f 552/263 551/264 523/265 -f 551/264 522/187 523/265 -f 522/187 553/189 523/265 -f 553/189 521/266 523/265 -f 524/253 559/194 525/193 -f 640/118 684/106 654/102 -f 525/193 545/190 526/192 -f 524/253 525/193 526/192 -f 567/193 597/190 568/192 -f 684/199 685/200 655/207 -f 568/192 566/253 567/193 -f 570/187 569/266 571/265 -f 591/264 570/187 592/263 -f 570/187 605/189 569/266 -f 592/263 570/187 571/265 -f 625/127 669/118 670/40 -f 598/31 552/39 568/32 -f 597/190 598/191 568/192 -f 648/267 649/220 612/221 -f 613/198 635/200 614/207 -f 613/212 657/97 678/94 -f 613/198 614/207 612/221 -f 610/202 642/204 609/253 -f 610/202 609/253 611/192 -f 640/268 610/202 611/192 -f 641/269 640/268 611/192 -f 569/270 524/205 571/122 -f 571/46 526/82 592/109 -f 521/262 653/181 522/169 -f 654/198 686/267 687/220 -f 614/130 658/271 656/215 -f 655/207 653/221 686/267 -f 654/198 655/207 686/267 -f 678/268 657/202 679/269 -f 657/202 692/204 656/253 -f 679/269 657/202 658/192 -f 657/202 656/253 658/192 -f 568/272 1272/273 1270/274 566/275 -f 685/95 641/106 655/96 -f 657/119 613/213 693/69 -f 548/154 546/154 679/155 -f 535/34 581/27 585/26 -f 610/114 654/113 687/213 -f 658/126 614/130 679/110 -f 522/169 654/170 523/169 -f 657/158 656/216 525/157 -f 624/37 668/244 672/103 -f 524/167 656/168 526/154 -f 1240/1 1233/2 1241/3 -f 1220/4 1258/5 1259/6 -f 1229/7 1249/8 1248/9 -f 1290/10 1277/11 1284/12 -f 1304/13 1265/4 1305/14 -f 1274/15 1294/16 1295/17 -f 1258/18 1220/19 1265/20 -f 1236/21 1244/22 1282/18 -f 2693/276 1988/277 1284/278 587/279 -f 1391/23 1352/24 1392/25 -f 1235/26 1239/27 1281/18 -f 1251/28 1250/29 1296/30 -f 1221/31 1259/32 1305/22 -f 1240/33 1236/34 1286/26 -f 1243/35 1235/36 1281/34 -f 1250/37 1228/38 1296/39 -f 1377/43 1364/44 1371/45 -f 1230/22 1251/46 1275/47 -f 1241/48 1233/49 1279/50 -f 1329/51 1322/52 1330/53 -f 1257/54 1256/55 1302/56 -f 1234/57 1241/58 1280/59 -f 1308/24 1347/60 1348/61 -f 1256/62 1219/63 1264/64 -f 1237/37 1242/18 1288/65 -f 1260/66 1225/67 1306/57 -f 1245/68 1234/69 1291/38 -f 1248/70 1249/54 1294/71 -f 1963/280 1318/281 1275/282 1965/283 -f 1220/76 1257/77 1265/66 -f 1238/78 1237/68 1284/37 -f 1232/79 1245/50 1291/80 -f 1249/81 1229/82 1274/46 -f 1317/83 1338/84 1337/85 -f 1219/86 1221/87 1266/88 -f 1222/89 1254/90 1300/69 -f 1239/249 1232/80 1278/206 -f 1228/91 1248/89 1294/68 -f 1384/84 1383/85 1360/92 -f 1347/93 1308/94 1352/82 -f 1325/95 1333/96 1369/89 -f 631/284 1333/285 1320/286 618/287 -f 1324/94 1328/97 1372/98 -f 1340/55 1339/99 1383/100 -f 1309/101 1348/95 1392/89 -f 1329/102 1325/37 1373/103 -f 1332/104 1324/105 1368/94 -f 1339/102 1316/106 1383/101 -f 1318/109 1340/110 1384/111 -f 1330/112 1322/113 1366/114 -f 1346/99 1345/115 1389/116 -f 1323/117 1330/93 1374/81 -f 1345/118 1262/119 1351/120 -f 1326/121 1331/104 1375/93 -f 1349/122 1313/49 1357/104 -f 1334/123 1323/124 1378/125 -f 1337/29 1338/70 1381/30 -f 1308/49 1346/126 1352/104 -f 1327/42 1326/127 1371/40 -f 1321/128 1334/129 1378/130 -f 1338/126 1317/110 1382/105 -f 1262/131 1309/132 1353/133 -f 1310/134 1343/135 1387/114 -f 1328/288 1321/79 1365/249 -f 1316/136 1337/134 1381/124 -f 1376/137 1375/137 1242/138 -f 1230/139 1362/140 1360/141 -f 1229/142 1228/142 1360/141 -f 1367/143 1234/144 1368/145 -f 1368/146 1235/147 1237/148 -f 1369/149 1236/150 1367/149 -f 1237/148 1236/137 1369/138 -f 1379/151 1246/152 1248/153 -f 1248/140 1249/154 1382/155 -f 1382/155 1249/154 1380/155 -f 1247/145 1246/145 1380/156 -f 1389/157 1256/158 1254/159 -f 1389/160 1390/161 1257/162 -f 1255/163 1388/164 1387/164 -f 1390/158 1388/158 1257/157 -f 1377/165 1244/166 1371/165 -f 1258/167 1391/168 1392/146 -f 1394/144 1391/164 1258/163 -f 1261/152 1260/169 1393/170 -f 1392/146 1393/146 1259/147 -f 1374/149 1241/150 1240/171 -f 1366/172 1233/173 1241/174 -f 1353/173 1352/176 1221/172 -f 1219/172 1351/173 1353/173 -f 1352/177 1351/178 1219/179 -f 1378/180 1372/180 1239/153 -f 1232/163 1365/164 1378/181 -f 1365/156 1232/145 1239/161 -f 1385/178 1383/180 1250/153 -f 1383/182 1384/183 1250/184 -f 1253/185 1251/185 1384/183 -f 1253/186 1386/159 1252/160 -f 1223/187 1255/188 1254/189 -f 1246/190 1247/191 1227/192 -f 1268/193 1300/194 1301/195 -f 1271/187 1307/188 1306/189 -f 1224/125 1222/118 1267/127 -f 1253/39 1224/62 1269/32 -f 1246/47 1226/196 1292/35 -f 1226/59 1261/197 1271/47 -f 1223/32 1252/64 1268/22 -f 1314/198 1335/199 1336/200 -f 1255/38 1223/201 1301/62 -f 1311/202 1344/203 1343/204 -f 1227/82 1247/98 1293/109 -f 1354/181 1355/170 1223/169 -f 1355/198 1385/199 1356/207 -f 1358/202 1394/203 1393/204 -f 1312/127 1310/289 1354/290 -f 1342/106 1312/120 1356/96 -f 1335/105 1314/212 1379/94 -f 1314/213 1350/81 1394/69 -f 1311/40 1341/118 1355/102 -f 1344/124 1311/114 1388/213 -f 1315/130 1336/132 1380/110 -f 1355/170 1356/170 1224/169 -f 1354/183 1222/185 1224/176 -f 1357/216 1225/217 1226/157 -f 1358/160 1226/218 1359/160 -f 1261/197 1307/196 1271/47 -f 1260/194 1261/195 1226/193 -f 1251/46 1297/76 1275/47 -f 1257/13 1220/4 1219/219 -f 1333/96 1377/90 1369/89 -f 1244/22 1290/47 1282/18 -f 1323/124 1367/213 1378/125 -f 1350/220 1314/198 1313/221 -f 1325/222 1323/223 1324/224 -f 1338/70 1382/71 1381/30 -f 1239/27 1285/19 1281/18 -f 1346/23 1308/24 1262/225 -f 1234/69 1280/201 1291/38 -f 1237/226 1235/227 1243/10 -f 1386/159 1385/218 1252/160 -f 1252/64 1298/46 1268/22 -f 1244/166 1238/166 1371/165 -f 1249/54 1295/228 1294/71 -f 1346/126 1390/105 1352/104 -f 1239/230 1245/231 1232/232 -f 1242/12 1243/10 1231/11 -f 1239/230 1234/234 1245/231 -f 1244/43 1236/235 1238/233 -f 1235/227 1234/234 1239/230 -f 1238/233 1236/235 1237/226 -f 1236/235 1240/1 1241/3 -f 1236/235 1241/3 1234/234 -f 1237/226 1236/235 1234/234 -f 1237/226 1234/234 1235/227 -f 1242/12 1237/226 1243/10 -f 1257/77 1303/67 1265/66 -f 1256/14 1257/13 1219/219 -f 1220/4 1259/6 1221/236 -f 1220/4 1221/236 1219/219 -f 1229/7 1248/9 1228/237 -f 1230/15 1229/7 1228/237 -f 1251/17 1230/15 1228/237 -f 1250/16 1251/17 1228/237 -f 1289/43 1288/233 1276/44 -f 1291/3 1285/1 1278/2 -f 1286/230 1287/231 1279/232 -f 1282/227 1290/10 1284/12 -f 1282/227 1284/12 1283/226 -f 1286/230 1282/227 1287/231 -f 1280/234 1285/1 1291/3 -f 1287/231 1282/227 1280/234 -f 1282/227 1283/226 1280/234 -f 1288/233 1289/43 1281/235 -f 1283/226 1288/233 1281/235 -f 1280/234 1283/226 1281/235 -f 1285/1 1280/234 1281/235 -f 1305/14 1265/4 1266/219 -f 1266/219 1265/4 1264/236 -f 1265/4 1303/5 1302/6 -f 1264/236 1265/4 1302/6 -f 1274/15 1273/237 1294/16 -f 1274/15 1275/7 1273/237 -f 1275/7 1297/8 1296/9 -f 1273/237 1275/7 1296/9 -f 1304/65 1258/18 1265/20 -f 1392/25 1352/24 1353/225 -f 1353/225 1352/24 1351/238 -f 1352/24 1390/60 1389/61 -f 1351/238 1352/24 1389/61 -f 588/291 575/292 1277/293 1290/294 -f 1297/239 1251/28 1296/30 -f 1266/21 1221/31 1305/22 -f 1289/33 1243/35 1281/34 -f 1376/240 1375/241 1363/150 -f 1378/53 1372/51 1365/52 -f 1373/1 1374/242 1366/2 -f 1369/224 1377/43 1371/45 -f 1373/1 1369/224 1374/242 -f 1369/224 1371/45 1370/243 -f 1374/242 1369/224 1367/223 -f 1369/224 1370/243 1367/223 -f 1367/223 1372/51 1378/53 -f 1375/241 1376/240 1368/222 -f 1370/243 1375/241 1368/222 -f 1367/223 1370/243 1368/222 -f 1372/51 1367/223 1368/222 -f 1333/240 1325/222 1326/243 -f 1287/79 1241/48 1279/50 -f 1328/1 1334/242 1321/2 -f 1331/45 1332/43 1319/44 -f 1333/240 1327/241 1320/150 -f 1328/1 1323/223 1334/242 -f 1327/241 1333/240 1326/243 -f 1324/224 1323/223 1328/1 -f 1324/224 1332/43 1326/243 -f 1325/222 1329/51 1330/53 -f 1325/222 1330/53 1323/223 -f 1326/243 1325/222 1324/224 -f 1226/218 1227/218 1359/160 -f 1317/83 1337/85 1316/92 -f 1303/228 1257/54 1302/56 -f 1388/158 1255/157 1257/157 -f 1345/25 1346/23 1262/225 -f 1308/24 1348/61 1309/238 -f 1241/58 1287/197 1280/59 -f 1308/24 1309/238 1262/225 -f 1302/32 1256/62 1264/64 -f 1283/244 1237/37 1288/65 -f 1236/150 1234/150 1367/149 -f 1237/68 1283/38 1284/37 -f 1274/246 1967/279 1965/295 1275/247 -f 1278/249 1232/79 1291/80 -f 1295/69 1249/81 1274/46 -f 1318/250 1317/83 1316/92 -f 1340/251 1318/250 1339/252 -f 1267/253 1300/194 1268/193 -f 1339/252 1318/250 1316/92 -f 1264/254 1219/86 1266/88 -f 1267/68 1222/89 1300/69 -f 1285/205 1239/249 1278/206 -f 1273/78 1228/91 1294/68 -f 1382/251 1360/92 1381/252 -f 1362/83 1384/84 1360/92 -f 1361/250 1362/83 1382/251 -f 1362/83 1360/92 1382/251 -f 1391/81 1347/93 1352/82 -f 1368/82 1324/94 1372/98 -f 1384/56 1340/55 1383/100 -f 1353/91 1309/101 1392/89 -f 1225/67 1270/58 1306/57 -f 1376/93 1332/104 1368/94 -f 1332/43 1331/45 1326/243 -f 1362/77 1318/109 1384/111 -f 1374/256 1330/112 1366/114 -f 1390/100 1346/99 1389/116 -f 1367/213 1323/117 1374/81 -f 1389/106 1345/118 1351/120 -f 1370/117 1326/121 1375/93 -f 1393/121 1349/122 1357/104 -f 1317/110 1361/212 1382/105 -f 1316/106 1360/95 1383/101 -f 1365/214 1321/128 1378/130 -f 1351/257 1262/131 1353/133 -f 1354/124 1310/134 1387/114 -f 1372/296 1328/288 1365/249 -f 1360/123 1316/136 1381/124 -f 1243/138 1376/137 1242/138 -f 1228/142 1230/139 1360/141 -f 1361/141 1229/142 1360/141 -f 1246/145 1379/156 1380/156 -f 1370/258 1368/146 1237/148 -f 1234/144 1235/156 1368/145 -f 1370/258 1237/148 1369/138 -f 1381/180 1379/151 1248/153 -f 1381/139 1248/140 1382/155 -f 1226/196 1271/36 1292/35 -f 1228/38 1273/62 1296/39 -f 1387/186 1389/157 1254/159 -f 1256/218 1389/160 1257/162 -f 1254/163 1255/163 1387/164 -f 1352/176 1220/259 1221/172 -f 1384/183 1251/185 1250/184 -f 1259/147 1258/167 1392/146 -f 1261/143 1394/144 1258/163 -f 1394/151 1261/152 1393/170 -f 1373/175 1374/149 1240/171 -f 1374/260 1366/172 1241/174 -f 1393/146 1260/147 1259/147 -f 1221/172 1219/172 1353/173 -f 1220/261 1352/177 1219/179 -f 1245/153 1378/180 1239/153 -f 1245/262 1232/163 1378/181 -f 1372/162 1365/156 1239/161 -f 1252/179 1385/178 1250/153 -f 1386/183 1253/185 1384/183 -f 1223/201 1268/63 1301/62 -f 1253/263 1252/264 1224/265 -f 1252/264 1223/187 1224/265 -f 1223/187 1254/189 1224/265 -f 1254/189 1222/266 1224/265 -f 1225/253 1260/194 1226/193 -f 1341/118 1385/106 1355/102 -f 1226/193 1246/190 1227/192 -f 1225/253 1226/193 1227/192 -f 1268/193 1298/190 1269/192 -f 1385/199 1386/200 1356/207 -f 1269/192 1267/253 1268/193 -f 1271/187 1270/266 1272/265 -f 1292/264 1271/187 1293/263 -f 1271/187 1306/189 1270/266 -f 1293/263 1271/187 1272/265 -f 1326/127 1370/118 1371/40 -f 1269/123 1224/125 1267/127 -f 1299/31 1253/39 1269/32 -f 1298/190 1299/191 1269/192 -f 1349/267 1350/220 1313/221 -f 1314/198 1336/200 1315/207 -f 1314/212 1358/97 1379/94 -f 1314/198 1315/207 1313/221 -f 1311/202 1343/204 1310/253 -f 1311/202 1310/253 1312/192 -f 1341/268 1311/202 1312/192 -f 1342/269 1341/268 1312/192 -f 1272/46 1227/82 1293/109 -f 1222/262 1354/181 1223/169 -f 1355/198 1387/267 1388/220 -f 611/297 609/298 1313/299 1315/300 -f 1356/207 1354/221 1387/267 -f 1355/198 1356/207 1387/267 -f 1379/268 1358/202 1380/269 -f 1358/202 1393/204 1357/253 -f 1380/269 1358/202 1359/192 -f 1356/301 1312/127 1354/290 -f 1386/95 1342/106 1356/96 -f 1358/119 1314/213 1394/69 -f 1249/154 1247/154 1380/155 -f 1236/34 1282/27 1286/26 -f 1311/114 1355/113 1388/213 -f 1359/126 1315/130 1380/110 -f 1223/169 1355/170 1224/169 -f 1356/259 1354/183 1224/176 -f 1358/158 1357/216 1226/157 -f 1325/37 1369/244 1373/103 -f 1921/4 1959/5 1960/6 -f 1930/7 1950/8 1949/9 -f 1991/10 1978/11 1985/12 -f 2005/13 1966/4 2006/14 -f 1975/15 1995/16 1996/17 -f 1959/18 1921/19 1966/20 -f 1937/21 1945/22 1983/18 -f 2092/23 2053/24 2093/25 -f 1936/26 1940/27 1982/18 -f 1952/28 1951/29 1997/30 -f 1922/31 1960/32 2006/22 -f 1941/33 1937/34 1987/26 -f 1944/35 1936/36 1982/34 -f 1951/37 1929/38 1997/39 -f 1932/302 1944/111 1990/110 -f 1931/22 1952/46 1976/47 -f 2030/51 2023/52 2031/53 -f 1958/54 1957/55 2003/56 -f 1943/254 1932/88 1977/49 -f 1935/57 1942/58 1981/59 -f 2009/24 2048/60 2049/61 -f 1957/62 1920/63 1965/64 -f 1938/37 1943/18 1989/65 -f 1961/66 1926/67 2007/57 -f 1946/68 1935/69 1992/38 -f 1949/70 1950/54 1995/71 -f 1930/130 1931/126 1976/303 -f 1921/76 1958/77 1966/66 -f 1939/78 1938/68 1985/37 -f 1950/81 1930/82 1975/46 -f 2018/83 2039/84 2038/85 -f 2010/72 1967/75 1274/304 1317/305 -f 1933/271 1939/303 1985/87 -f 1923/89 1955/90 2001/69 -f 1929/91 1949/89 1995/68 -f 2085/84 2084/85 2061/92 -f 2048/93 2009/94 2053/82 -f 2026/95 2034/96 2070/89 -f 2025/94 2029/97 2073/98 -f 2041/55 2040/99 2084/100 -f 2010/101 2049/95 2093/89 -f 2030/102 2026/37 2074/103 -f 2033/104 2025/105 2069/94 -f 2040/102 2017/106 2084/101 -f 2020/42 2033/229 2077/306 -f 2019/109 2041/110 2085/111 -f 2047/99 2046/115 2090/116 -f 2032/307 2020/205 2064/270 -f 2024/117 2031/93 2075/81 -f 2046/118 1963/119 2052/120 -f 2027/121 2032/104 2076/93 -f 2050/122 2014/49 2058/104 -f 2035/123 2024/124 2079/125 -f 2038/29 2039/70 2082/30 -f 2018/256 2019/114 2063/135 -f 2009/49 2047/126 2053/104 -f 2028/42 2027/127 2072/40 -f 2039/126 2018/110 2083/105 -f 2021/308 2028/302 2072/132 -f 2011/134 2044/135 2088/114 -f 2017/136 2038/134 2082/124 -f 2077/137 2076/137 1943/138 -f 2064/309 1932/310 1943/44 -f 1932/310 2064/309 2077/137 -f 2063/184 1931/182 1930/142 -f 1931/139 2063/140 2061/141 -f 1930/142 1929/142 2061/141 -f 2068/143 1935/144 2069/145 -f 2069/146 1936/147 1938/148 -f 2070/149 1937/150 2068/149 -f 1938/148 1937/137 2070/138 -f 2080/151 1947/152 1949/153 -f 1949/140 1950/154 2083/155 -f 2083/155 1950/154 2081/155 -f 1948/145 1947/145 2081/156 -f 2090/157 1957/158 1955/159 -f 2090/160 2091/161 1958/162 -f 1956/163 2089/164 2088/164 -f 2091/158 2089/158 1958/157 -f 2078/165 1945/166 2072/165 -f 1933/150 2065/149 2072/216 -f 1959/167 2092/168 2093/146 -f 2095/144 2092/164 1959/163 -f 1962/152 1961/169 2094/170 -f 2093/146 2094/146 1960/147 -f 2075/149 1942/150 1941/171 -f 2054/173 2053/176 1922/172 -f 2053/177 2052/178 1920/179 -f 2079/180 2073/180 1940/153 -f 2086/178 2084/180 1951/153 -f 2084/182 2085/183 1951/184 -f 1954/185 1952/185 2085/183 -f 1954/186 2087/159 1953/160 -f 1924/187 1956/188 1955/189 -f 1947/190 1948/191 1928/192 -f 1969/193 2001/194 2002/195 -f 1972/187 2008/188 2007/189 -f 1925/125 1923/118 1968/127 -f 1954/39 1925/62 1970/32 -f 1947/47 1927/196 1993/35 -f 1927/59 1962/197 1972/47 -f 1924/32 1953/64 1969/22 -f 2015/198 2036/199 2037/200 -f 1956/38 1924/201 2002/62 -f 2012/202 2045/203 2044/204 -f 1928/82 1948/98 1994/109 -f 2055/181 2056/170 1924/169 -f 2056/198 2086/199 2057/207 -f 2059/202 2095/203 2094/204 -f 2013/127 2011/289 2055/290 -f 2043/106 2013/120 2057/96 -f 2036/105 2015/212 2080/94 -f 2015/213 2051/81 2095/69 -f 2012/40 2042/118 2056/102 -f 2045/124 2012/114 2089/213 -f 1973/272 1971/275 2669/311 2671/312 -f 2016/130 2037/132 2081/110 -f 2056/170 2057/170 1925/169 -f 2055/183 1923/185 1925/176 -f 2058/216 1926/217 1927/157 -f 2059/160 1927/218 2060/160 -f 1962/197 2008/196 1972/47 -f 1961/194 1962/195 1927/193 -f 1952/46 1998/76 1976/47 -f 1958/13 1921/4 1920/219 -f 2034/96 2078/90 2070/89 -f 1945/22 1991/47 1983/18 -f 2024/124 2068/213 2079/125 -f 2051/220 2015/198 2014/221 -f 2026/222 2024/223 2025/224 -f 2039/70 2083/71 2082/30 -f 1940/27 1986/19 1982/18 -f 2047/23 2009/24 1963/225 -f 1935/69 1981/201 1992/38 -f 1938/226 1936/227 1944/10 -f 2087/159 2086/218 1953/160 -f 1953/64 1999/46 1969/22 -f 1945/166 1939/166 2072/165 -f 1950/54 1996/228 1995/71 -f 2047/126 2091/105 2053/104 -f 2687/293 1987/313 1980/314 2680/294 -f 1940/230 1946/231 1934/232 -f 1943/12 1944/10 1932/11 -f 1940/230 1935/234 1946/231 -f 1945/43 1937/235 1939/233 -f 1936/227 1935/234 1940/230 -f 1939/233 1937/235 1938/226 -f 1937/235 1941/1 1942/3 -f 1937/235 1942/3 1935/234 -f 1938/226 1937/235 1935/234 -f 1938/226 1935/234 1936/227 -f 1943/12 1938/226 1944/10 -f 1958/77 2004/67 1966/66 -f 1957/14 1958/13 1920/219 -f 1921/4 1960/6 1922/236 -f 1921/4 1922/236 1920/219 -f 1930/7 1949/9 1929/237 -f 1931/15 1930/7 1929/237 -f 1952/17 1931/15 1929/237 -f 1951/16 1952/17 1929/237 -f 1990/43 1989/233 1977/44 -f 1992/3 1986/1 1979/2 -f 1987/230 1988/231 1980/232 -f 1983/227 1991/10 1985/12 -f 1983/227 1985/12 1984/226 -f 1987/230 1983/227 1988/231 -f 1981/234 1986/1 1992/3 -f 1988/231 1983/227 1981/234 -f 1983/227 1984/226 1981/234 -f 1989/233 1990/43 1982/235 -f 1984/226 1989/233 1982/235 -f 1981/234 1984/226 1982/235 -f 1986/1 1981/234 1982/235 -f 2006/14 1966/4 1967/219 -f 1967/219 1966/4 1965/236 -f 1966/4 2004/5 2003/6 -f 1965/236 1966/4 2003/6 -f 1975/15 1974/237 1995/16 -f 1975/15 1976/7 1974/237 -f 1976/7 1998/8 1997/9 -f 1974/237 1976/7 1997/9 -f 2005/65 1959/18 1966/20 -f 2093/25 2053/24 2054/225 -f 2054/225 2053/24 2052/238 -f 2053/24 2091/60 2090/61 -f 2052/238 2053/24 2090/61 -f 1998/239 1952/28 1997/30 -f 1967/21 1922/31 2006/22 -f 1990/33 1944/35 1982/34 -f 2077/240 2076/241 2064/150 -f 2079/53 2073/51 2066/52 -f 2074/1 2075/242 2067/2 -f 2070/224 2078/43 2072/45 -f 2074/1 2070/224 2075/242 -f 2070/224 2072/45 2071/243 -f 2075/242 2070/224 2068/223 -f 2070/224 2071/243 2068/223 -f 2068/223 2073/51 2079/53 -f 2076/241 2077/240 2069/222 -f 2071/243 2076/241 2069/222 -f 2068/223 2071/243 2069/222 -f 2073/51 2068/223 2069/222 -f 1977/132 1932/302 1990/110 -f 2034/240 2026/222 2027/243 -f 2029/1 2035/242 2022/2 -f 2032/45 2033/43 2020/44 -f 2034/240 2028/241 2021/150 -f 2029/1 2024/223 2035/242 -f 2028/241 2034/240 2027/243 -f 2025/224 2024/223 2029/1 -f 2025/224 2033/43 2027/243 -f 2026/222 2030/51 2031/53 -f 2026/222 2031/53 2024/223 -f 2027/243 2026/222 2025/224 -f 1927/218 1928/218 2060/160 -f 2018/83 2038/85 2017/92 -f 2004/228 1958/54 2003/56 -f 1989/48 1943/254 1977/49 -f 2089/158 1956/157 1958/157 -f 2046/25 2047/23 1963/225 -f 2009/24 2049/61 2010/238 -f 1942/58 1988/197 1981/59 -f 2009/24 2010/238 1963/225 -f 2003/32 1957/62 1965/64 -f 1984/244 1938/37 1989/65 -f 1937/150 1935/150 2068/149 -f 1938/68 1984/38 1985/37 -f 1975/271 1930/130 1976/303 -f 1288/315 1992/316 1979/317 1276/318 -f 1996/69 1950/81 1975/46 -f 2019/250 2018/83 2017/92 -f 2041/251 2019/250 2040/252 -f 1968/253 2001/194 1969/193 -f 2040/252 2019/250 2017/92 -f 1317/319 1318/320 1963/321 2010/315 -f 1978/86 1933/271 1985/87 -f 1968/68 1923/89 2001/69 -f 1974/78 1929/91 1995/68 -f 2083/251 2061/92 2082/252 -f 2063/83 2085/84 2061/92 -f 2062/250 2063/83 2083/251 -f 2063/83 2061/92 2083/251 -f 2092/81 2048/93 2053/82 -f 2069/82 2025/94 2073/98 -f 2085/56 2041/55 2084/100 -f 2054/91 2010/101 2093/89 -f 1926/67 1971/58 2007/57 -f 2077/93 2033/104 2069/94 -f 2033/43 2032/45 2027/243 -f 2064/108 2020/42 2077/306 -f 2063/77 2019/109 2085/111 -f 2091/100 2047/99 2090/116 -f 2076/322 2032/307 2064/270 -f 2068/213 2024/117 2075/81 -f 2090/106 2046/118 2052/120 -f 2071/117 2027/121 2076/93 -f 2094/121 2050/122 2058/104 -f 2062/323 2018/256 2063/135 -f 2018/110 2062/212 2083/105 -f 2017/106 2061/95 2084/101 -f 1376/324 1243/325 1289/138 1986/310 1940/326 2073/327 2029/309 1332/137 -f 2065/131 2021/308 2072/132 -f 2055/124 2011/134 2088/114 -f 2061/123 2017/136 2082/124 -f 1944/138 2077/137 1943/138 -f 2076/328 2064/309 1943/44 -f 1944/138 1932/310 2077/137 -f 2062/141 2063/184 1930/142 -f 1929/142 1931/139 2061/141 -f 2062/141 1930/142 2061/141 -f 1947/145 2080/156 2081/156 -f 2071/258 2069/146 1938/148 -f 1935/144 1936/156 2069/145 -f 2071/258 1938/148 2070/138 -f 2082/180 2080/151 1949/153 -f 2082/139 1949/140 2083/155 -f 1927/196 1972/36 1993/35 -f 1929/38 1974/62 1997/39 -f 2088/186 2090/157 1955/159 -f 1957/218 2090/160 1958/162 -f 1955/163 1956/163 2088/164 -f 2053/176 1921/259 1922/172 -f 2085/183 1952/185 1951/184 -f 1939/217 1933/150 2072/216 -f 1960/147 1959/167 2093/146 -f 1962/143 2095/144 1959/163 -f 2095/151 1962/152 2094/170 -f 2074/175 2075/149 1941/171 -f 2094/146 1961/147 1960/147 -f 1921/261 2053/177 1920/179 -f 1946/153 2079/180 1940/153 -f 1331/329 1319/321 2022/330 2035/331 -f 1953/179 2086/178 1951/153 -f 2087/183 1954/185 2085/183 -f 1924/201 1969/63 2002/62 -f 1954/263 1953/264 1925/265 -f 1953/264 1924/187 1925/265 -f 1924/187 1955/189 1925/265 -f 1955/189 1923/266 1925/265 -f 1926/253 1961/194 1927/193 -f 2042/118 2086/106 2056/102 -f 1927/193 1947/190 1928/192 -f 1926/253 1927/193 1928/192 -f 1969/193 1999/190 1970/192 -f 2086/199 2087/200 2057/207 -f 1970/192 1968/253 1969/193 -f 1972/187 1971/266 1973/265 -f 1993/264 1972/187 1994/263 -f 1972/187 2007/189 1971/266 -f 1994/263 1972/187 1973/265 -f 2027/127 2071/118 2072/40 -f 1970/123 1925/125 1968/127 -f 2000/31 1954/39 1970/32 -f 1999/190 2000/191 1970/192 -f 2050/267 2051/220 2014/221 -f 2015/198 2037/200 2016/207 -f 2015/212 2059/97 2080/94 -f 2015/198 2016/207 2014/221 -f 2012/202 2044/204 2011/253 -f 2012/202 2011/253 2013/192 -f 2042/268 2012/202 2013/192 -f 2043/269 2042/268 2013/192 -f 1973/46 1928/82 1994/109 -f 1923/262 2055/181 1924/169 -f 2056/198 2088/267 2089/220 -f 2671/332 2714/333 2016/334 1973/335 -f 2057/207 2055/221 2088/267 -f 2056/198 2057/207 2088/267 -f 2080/268 2059/202 2081/269 -f 2059/202 2094/204 2058/253 -f 2081/269 2059/202 2060/192 -f 2057/301 2013/127 2055/290 -f 2087/95 2043/106 2057/96 -f 2059/119 2015/213 2095/69 -f 1950/154 1948/154 2081/155 -f 1937/34 1983/27 1987/26 -f 2012/114 2056/113 2089/213 -f 2060/126 2016/130 2081/110 -f 1924/169 2056/170 1925/169 -f 2057/259 2055/183 1925/176 -f 2059/158 2058/216 1927/157 -f 2026/37 2070/244 2074/103 -f 2642/1 2635/2 2643/3 -f 2622/4 2660/5 2661/6 -f 2631/7 2651/8 2650/9 -f 2692/10 2679/11 2686/12 -f 2706/13 2667/4 2707/14 -f 2676/15 2696/16 2697/17 -f 2660/18 2622/19 2667/20 -f 2638/21 2646/22 2684/18 -f 2646/102 2634/103 2692/40 -f 2793/23 2754/24 2794/25 -f 2637/26 2641/27 2683/18 -f 2653/28 2652/29 2698/30 -f 2623/31 2661/32 2707/22 -f 2642/33 2638/34 2688/26 -f 2645/35 2637/36 2683/34 -f 2652/37 2630/38 2698/39 -f 2779/43 2766/44 2773/45 -f 2632/22 2653/46 2677/47 -f 2731/51 2724/52 2732/53 -f 2659/54 2658/55 2704/56 -f 2644/254 2633/88 2678/49 -f 2636/57 2643/58 2682/59 -f 2710/24 2749/60 2750/61 -f 2658/62 2621/63 2666/64 -f 2639/37 2644/18 2690/65 -f 2662/66 2627/67 2708/57 -f 2647/68 2636/69 2693/38 -f 2650/70 2651/54 2696/71 -f 2631/130 2632/126 2677/303 -f 2622/76 2659/77 2667/66 -f 2640/78 2639/68 2686/37 -f 2651/81 2631/82 2676/46 -f 2719/83 2740/84 2739/85 -f 2711/282 2668/281 573/336 616/337 -f 2634/271 2640/303 2686/87 -f 2624/89 2656/90 2702/69 -f 2630/91 2650/89 2696/68 -f 2786/84 2785/85 2762/92 -f 2749/93 2710/94 2754/82 -f 2727/95 2735/96 2771/89 -f 2735/123 2722/127 2779/136 -f 2726/94 2730/97 2774/98 -f 2742/55 2741/99 2785/100 -f 2711/101 2750/95 2794/89 -f 2731/102 2727/37 2775/103 -f 2734/104 2726/105 2770/94 -f 2741/102 2718/106 2785/101 -f 543/327 676/326 632/310 2731/44 2775/338 2642/339 2688/328 589/309 -f 2720/109 2742/110 2786/111 -f 2748/99 2747/115 2791/116 -f 2733/307 2721/205 2765/270 -f 2725/117 2732/93 2776/81 -f 2747/118 2664/119 2753/120 -f 2728/121 2733/104 2777/93 -f 2751/122 2715/49 2759/104 -f 2736/123 2725/124 2780/125 -f 2739/29 2740/70 2783/30 -f 2719/256 2720/114 2764/135 -f 2710/49 2748/126 2754/104 -f 2729/42 2728/127 2773/40 -f 2740/126 2719/110 2784/105 -f 2722/308 2729/302 2773/132 -f 2712/134 2745/135 2789/114 -f 2718/136 2739/134 2783/124 -f 2778/137 2777/137 2644/138 -f 2765/309 2633/310 2644/44 -f 2734/74 2691/73 1991/340 2034/341 -f 2764/184 2632/182 2631/142 -f 2632/139 2764/140 2762/141 -f 2631/142 2630/142 2762/141 -f 2769/143 2636/144 2770/145 -f 2770/146 2637/147 2639/148 -f 2771/149 2638/150 2769/149 -f 2639/148 2638/137 2771/138 -f 2781/151 2648/152 2650/153 -f 2650/140 2651/154 2784/155 -f 2784/155 2651/154 2782/155 -f 2649/145 2648/145 2782/156 -f 2791/157 2658/158 2656/159 -f 2791/160 2792/161 2659/162 -f 2657/163 2790/164 2789/164 -f 2792/158 2790/158 2659/157 -f 2779/165 2646/166 2773/165 -f 2766/260 2634/174 2646/166 -f 2634/150 2766/149 2773/216 -f 2660/167 2793/168 2794/146 -f 2796/144 2793/164 2660/163 -f 2663/152 2662/169 2795/170 -f 2794/146 2795/146 2661/147 -f 2776/149 2643/150 2642/171 -f 2755/173 2754/176 2623/172 -f 2754/177 2753/178 2621/179 -f 2780/180 2774/180 2641/153 -f 2787/178 2785/180 2652/153 -f 2785/182 2786/183 2652/184 -f 2655/185 2653/185 2786/183 -f 2655/186 2788/159 2654/160 -f 2625/187 2657/188 2656/189 -f 2648/190 2649/191 2629/192 -f 2670/193 2702/194 2703/195 -f 2673/187 2709/188 2708/189 -f 2655/39 2626/62 2671/32 -f 2648/47 2628/196 2694/35 -f 2628/59 2663/197 2673/47 -f 2625/32 2654/64 2670/22 -f 2716/198 2737/199 2738/200 -f 2657/38 2625/201 2703/62 -f 2713/202 2746/203 2745/204 -f 2627/205 2629/206 2674/122 -f 2629/82 2649/98 2695/109 -f 2756/181 2757/170 2625/169 -f 2757/198 2787/199 2758/207 -f 2760/202 2796/203 2795/204 -f 2016/311 2714/298 2712/297 2014/312 -f 2744/106 2714/120 2758/96 -f 2737/105 2716/212 2781/94 -f 2716/213 2752/81 2796/69 -f 2713/40 2743/118 2757/102 -f 2746/124 2713/114 2790/213 -f 2715/214 2717/130 2759/215 -f 2717/130 2738/132 2782/110 -f 2757/170 2758/170 2626/169 -f 2759/216 2627/217 2628/157 -f 2760/160 2628/218 2761/160 -f 2759/168 2761/155 2629/154 -f 2663/197 2709/196 2673/47 -f 2662/194 2663/195 2628/193 -f 2653/46 2699/76 2677/47 -f 2659/13 2622/4 2621/219 -f 2735/96 2779/90 2771/89 -f 2646/22 2692/47 2684/18 -f 2722/127 2766/301 2779/136 -f 2725/124 2769/213 2780/125 -f 2752/220 2716/198 2715/221 -f 2727/222 2725/223 2726/224 -f 2740/70 2784/71 2783/30 -f 2641/27 2687/19 2683/18 -f 2748/23 2710/24 2664/225 -f 2636/69 2682/201 2693/38 -f 2639/226 2637/227 2645/10 -f 2788/159 2787/218 2654/160 -f 2654/64 2700/46 2670/22 -f 2646/166 2640/166 2773/165 -f 2651/54 2697/228 2696/71 -f 2748/126 2792/105 2754/104 -f 626/285 2732/331 2724/330 619/286 -f 2646/43 2640/233 2634/44 -f 2641/230 2636/234 2647/231 -f 2646/43 2638/235 2640/233 -f 2637/227 2636/234 2641/230 -f 2640/233 2638/235 2639/226 -f 2638/235 2642/1 2643/3 -f 2638/235 2643/3 2636/234 -f 2639/226 2638/235 2636/234 -f 2639/226 2636/234 2637/227 -f 2644/12 2639/226 2645/10 -f 2659/77 2705/67 2667/66 -f 2658/14 2659/13 2621/219 -f 2622/4 2661/6 2623/236 -f 2622/4 2623/236 2621/219 -f 2631/7 2650/9 2630/237 -f 2632/15 2631/7 2630/237 -f 2653/17 2632/15 2630/237 -f 2652/16 2653/17 2630/237 -f 2691/43 2690/233 2678/44 -f 2693/3 2687/1 2680/2 -f 2688/230 2689/231 2681/232 -f 2684/227 2692/10 2686/12 -f 2684/227 2686/12 2685/226 -f 2688/230 2684/227 2689/231 -f 2682/234 2687/1 2693/3 -f 2689/231 2684/227 2682/234 -f 2684/227 2685/226 2682/234 -f 2690/233 2691/43 2683/235 -f 2685/226 2690/233 2683/235 -f 2682/234 2685/226 2683/235 -f 2687/1 2682/234 2683/235 -f 2707/14 2667/4 2668/219 -f 2668/219 2667/4 2666/236 -f 2667/4 2705/5 2704/6 -f 2666/236 2667/4 2704/6 -f 2676/15 2675/237 2696/16 -f 2676/15 2677/7 2675/237 -f 2677/7 2699/8 2698/9 -f 2675/237 2677/7 2698/9 -f 2706/65 2660/18 2667/20 -f 2794/25 2754/24 2755/225 -f 2755/225 2754/24 2753/238 -f 2754/24 2792/60 2791/61 -f 2753/238 2754/24 2791/61 -f 2634/103 2679/41 2692/40 -f 2699/239 2653/28 2698/30 -f 2668/21 2623/31 2707/22 -f 2691/33 2645/35 2683/34 -f 2780/53 2774/51 2767/52 -f 2775/1 2776/242 2768/2 -f 2771/224 2779/43 2773/45 -f 2775/1 2771/224 2776/242 -f 2771/224 2773/45 2772/243 -f 2776/242 2771/224 2769/223 -f 2771/224 2772/243 2769/223 -f 2769/223 2774/51 2780/53 -f 2777/241 2778/240 2770/222 -f 2772/243 2777/241 2770/222 -f 2769/223 2772/243 2770/222 -f 2774/51 2769/223 2770/222 -f 1991/342 2691/343 2678/344 1978/345 -f 2735/240 2727/222 2728/243 -f 2730/1 2736/242 2723/2 -f 2733/45 2734/43 2721/44 -f 2735/240 2729/241 2722/150 -f 2730/1 2725/223 2736/242 -f 2729/241 2735/240 2728/243 -f 2726/224 2725/223 2730/1 -f 2726/224 2734/43 2728/243 -f 2727/222 2731/51 2732/53 -f 2727/222 2732/53 2725/223 -f 2728/243 2727/222 2726/224 -f 2628/218 2629/218 2761/160 -f 2719/83 2739/85 2718/92 -f 2705/228 2659/54 2704/56 -f 2690/48 2644/254 2678/49 -f 2790/158 2657/157 2659/157 -f 2747/25 2748/23 2664/225 -f 2710/24 2750/61 2711/238 -f 2643/58 2689/197 2682/59 -f 2710/24 2711/238 2664/225 -f 2704/32 2658/62 2666/64 -f 2685/244 2639/37 2690/65 -f 2638/150 2636/150 2769/149 -f 2639/68 2685/38 2686/37 -f 2676/271 2631/130 2677/303 -f 2697/69 2651/81 2676/46 -f 2720/250 2719/83 2718/92 -f 2742/251 2720/250 2741/252 -f 2669/253 2702/194 2670/193 -f 2741/252 2720/250 2718/92 -f 616/346 617/347 2664/320 2711/319 -f 2679/86 2634/271 2686/87 -f 2669/68 2624/89 2702/69 -f 2730/348 2723/349 2023/342 2030/345 -f 2675/78 2630/91 2696/68 -f 2784/251 2762/92 2783/252 -f 2764/83 2786/84 2762/92 -f 2763/250 2764/83 2784/251 -f 2764/83 2762/92 2784/251 -f 2793/81 2749/93 2754/82 -f 2770/82 2726/94 2774/98 -f 2786/56 2742/55 2785/100 -f 2755/91 2711/101 2794/89 -f 2627/67 2672/58 2708/57 -f 2778/93 2734/104 2770/94 -f 2734/43 2733/45 2728/243 -f 2678/210 2721/209 2021/350 1978/351 -f 2764/77 2720/109 2786/111 -f 2792/100 2748/99 2791/116 -f 2777/322 2733/307 2765/270 -f 2769/213 2725/117 2776/81 -f 2791/106 2747/118 2753/120 -f 2772/117 2728/121 2777/93 -f 2795/121 2751/122 2759/104 -f 2763/323 2719/256 2764/135 -f 2719/110 2763/212 2784/105 -f 2718/106 2762/95 2785/101 -f 2766/131 2722/308 2773/132 -f 2756/124 2712/134 2789/114 -f 2762/123 2718/136 2783/124 -f 2645/138 2778/137 2644/138 -f 2777/328 2765/309 2644/44 -f 2034/352 2021/273 2721/353 2734/354 -f 2763/141 2764/184 2631/142 -f 2630/142 2632/139 2762/141 -f 2763/141 2631/142 2762/141 -f 2648/145 2781/156 2782/156 -f 2772/258 2770/146 2639/148 -f 2636/144 2637/156 2770/145 -f 2772/258 2639/148 2771/138 -f 2783/180 2781/151 2650/153 -f 2783/139 2650/140 2784/155 -f 2628/196 2673/36 2694/35 -f 2630/38 2675/62 2698/39 -f 2789/186 2791/157 2656/159 -f 2658/218 2791/160 2659/162 -f 2656/163 2657/163 2789/164 -f 2754/176 2622/259 2623/172 -f 2786/183 2653/185 2652/184 -f 2779/165 2766/260 2646/166 -f 2640/217 2634/150 2773/216 -f 2661/147 2660/167 2794/146 -f 2663/143 2796/144 2660/163 -f 2796/151 2663/152 2795/170 -f 2775/175 2776/149 2642/171 -f 583/355 576/356 2681/329 2689/357 -f 2795/146 2662/147 2661/147 -f 2732/358 626/359 583/360 2689/361 -f 2622/261 2754/177 2621/179 -f 2647/153 2780/180 2641/153 -f 2654/179 2787/178 2652/153 -f 2788/183 2655/185 2786/183 -f 2625/201 2670/63 2703/62 -f 2655/263 2654/264 2626/265 -f 2654/264 2625/187 2626/265 -f 2625/187 2656/189 2626/265 -f 2656/189 2624/266 2626/265 -f 2627/253 2662/194 2628/193 -f 2743/118 2787/106 2757/102 -f 2628/193 2648/190 2629/192 -f 2627/253 2628/193 2629/192 -f 2670/193 2700/190 2671/192 -f 2787/199 2788/200 2758/207 -f 2671/192 2669/253 2670/193 -f 2673/187 2672/266 2674/265 -f 2694/264 2673/187 2695/263 -f 2673/187 2708/189 2672/266 -f 2695/263 2673/187 2674/265 -f 2728/127 2772/118 2773/40 -f 2701/31 2655/39 2671/32 -f 2700/190 2701/191 2671/192 -f 2751/267 2752/220 2715/221 -f 2716/198 2738/200 2717/207 -f 2716/212 2760/97 2781/94 -f 2716/198 2717/207 2715/221 -f 2713/202 2745/204 2712/253 -f 2713/202 2712/253 2714/192 -f 2743/268 2713/202 2714/192 -f 2744/269 2743/268 2714/192 -f 2672/270 2627/205 2674/122 -f 2674/46 2629/82 2695/109 -f 2624/262 2756/181 2625/169 -f 2757/198 2789/267 2790/220 -f 2717/130 2761/271 2759/215 -f 2758/207 2756/221 2789/267 -f 2757/198 2758/207 2789/267 -f 2781/268 2760/202 2782/269 -f 2760/202 2795/204 2759/253 -f 2782/269 2760/202 2761/192 -f 2760/202 2759/253 2761/192 -f 2669/362 1971/363 2014/364 2712/333 -f 2788/95 2744/106 2758/96 -f 2760/119 2716/213 2796/69 -f 2651/154 2649/154 2782/155 -f 2638/34 2684/27 2688/26 -f 2713/114 2757/113 2790/213 -f 2761/126 2717/130 2782/110 -f 2625/169 2757/170 2626/169 -f 2760/158 2759/216 2628/157 -f 2727/37 2771/244 2775/103 -f 2627/167 2759/168 2629/154 -f 2031/276 2736/365 630/347 1327/366 -f 2693/336 587/367 630/368 2736/337 -f 1284/369 1988/370 2031/371 1327/372 -f 1290/373 1333/374 631/375 588/376 -f 2730/377 2030/208 1987/211 2687/378 -f 1992/367 1288/379 1331/380 2035/368 -f 584/348 1286/292 1279/291 577/349 -f 1322/381 620/382 577/383 1279/376 -f 627/344 620/343 1322/284 1329/287 -f 1286/378 584/335 627/334 1329/377 -f 1270/364 1313/363 609/384 566/373 +f 555/1 601/2 565/3 520/4 +f 520/5 521/5 653/6 652/6 +f 652/7 608/8 644/9 688/10 +f 519/11 554/12 555/13 520/14 +f 637/15 604/11 605/16 638/17 +f 545/18 591/19 569/3 524/20 +f 550/21 551/22 514/23 513/24 +f 538/20 584/3 576/25 530/26 +f 632/27 676/28 675/29 631/30 +f 665/31 664/32 663/33 671/34 +f 597/35 551/36 550/37 596/38 +f 617/39 661/8 672/40 628/41 +f 643/42 644/43 608/44 607/45 +f 620/32 619/46 617/47 618/33 +f 533/48 579/49 575/25 529/50 +f 639/51 640/52 602/53 556/54 +f 528/10 574/55 585/56 539/57 +f 640/58 684/59 646/60 602/61 +f 667/62 668/63 535/64 534/65 +f 536/66 531/67 529/68 537/69 +f 662/70 618/71 622/72 666/73 +f 611/74 655/75 676/59 632/58 +f 680/76 679/5 546/6 547/77 +f 546/78 592/18 562/20 517/79 +f 680/80 547/81 545/81 678/80 +f 538/82 532/82 665/83 671/83 +f 630/84 609/85 608/44 629/86 +f 583/87 537/88 529/89 575/90 +f 543/36 589/35 588/28 542/27 +f 592/91 593/92 563/93 562/14 +f 645/94 556/95 603/96 647/97 +f 529/68 528/98 539/99 533/100 +f 542/101 522/102 523/103 543/104 +f 572/105 526/106 539/107 585/108 +f 531/57 577/56 578/109 532/110 +f 534/111 580/112 573/113 527/114 +f 627/115 671/116 663/117 619/118 +f 646/53 647/54 686/51 685/52 +f 534/119 527/120 535/121 +f 544/122 545/123 524/124 522/102 +f 584/69 571/125 578/66 +f 558/126 559/23 597/127 596/128 +f 567/102 569/103 591/104 590/101 +f 645/129 646/53 684/130 683/131 +f 560/26 515/132 553/79 599/20 +f 605/133 649/134 682/8 638/39 +f 681/77 683/135 550/136 548/76 +f 671/34 658/137 665/31 +f 618/33 617/47 628/138 622/119 +f 623/139 616/140 624/141 +f 682/136 549/135 551/135 684/136 +f 596/79 550/142 513/143 558/78 +f 535/144 581/1 574/4 528/145 +f 577/146 531/109 536/25 582/147 +f 530/64 528/64 661/63 663/63 +f 670/148 626/60 618/59 662/71 +f 2644/149 612/150 569/151 2646/152 +f 553/128 515/126 514/23 552/127 +f 589/10 543/9 523/70 568/18 +f 631/153 610/154 611/155 632/156 +f 612/157 610/154 633/158 634/159 +f 561/57 516/117 548/116 594/10 +f 567/110 522/160 542/117 588/57 +f 656/155 678/156 677/153 654/154 +f 685/9 641/148 602/71 646/70 +f 678/38 634/37 633/161 677/162 +f 647/160 603/163 642/118 686/117 +f 519/164 564/144 600/145 554/165 +f 519/166 651/167 653/168 521/169 +f 626/34 625/31 620/32 618/33 +f 659/170 615/171 628/172 672/173 +f 656/174 612/175 634/74 678/176 +f 668/177 624/178 616/134 660/133 +f 684/162 640/161 639/179 683/180 +f 661/8 617/181 624/148 668/9 +f 683/182 639/183 556/7 645/184 +f 664/181 620/185 625/60 669/148 +f 687/185 643/186 607/61 651/60 +f 593/132 547/187 518/142 563/79 +f 610/182 654/118 677/163 633/188 +f 648/39 604/189 637/190 681/133 +f 654/41 610/191 631/189 675/39 +f 537/192 670/193 669/193 536/192 +f 522/194 524/195 656/196 654/197 +f 655/197 523/194 522/194 654/197 +f 540/198 673/199 674/199 541/198 +f 664/200 531/201 530/193 663/192 +f 528/202 529/199 662/198 661/203 +f 675/204 673/205 540/206 542/207 +f 675/195 542/196 543/169 676/168 +f 520/2 565/89 586/88 540/3 +f 530/90 576/48 580/50 534/87 +f 664/200 662/208 529/209 531/201 +f 550/5 683/6 684/210 551/211 +f 548/212 549/212 682/213 681/213 +f 646/214 514/215 515/216 647/217 +f 642/131 603/129 602/53 641/130 +f 555/203 688/202 685/213 552/212 +f 688/205 555/206 554/218 687/219 +f 515/216 513/216 645/217 647/217 +f 668/220 660/216 527/217 535/221 +f 534/82 527/62 660/65 667/83 +f 687/208 554/209 553/209 686/208 +f 678/80 545/81 544/222 677/223 +f 514/224 646/225 645/226 513/227 +f 539/207 672/204 666/204 533/207 +f 539/228 526/212 659/213 672/229 +f 546/227 679/226 677/204 544/207 +f 553/209 552/166 685/167 686/208 +f 517/55 562/143 595/142 549/56 +f 517/230 549/231 548/232 +f 635/183 679/182 649/188 605/114 +f 679/86 680/84 650/85 649/44 +f 565/230 566/233 587/234 586/235 +f 522/56 567/142 590/187 544/109 +f 608/75 652/72 673/71 629/59 +f 546/235 517/230 518/233 547/234 +f 636/236 635/237 605/16 606/93 +f 566/18 521/70 541/73 587/175 +f 516/228 648/229 649/219 517/218 +f 609/173 653/238 651/239 607/170 +f 600/232 564/240 565/230 601/231 +f 652/16 653/93 674/236 673/237 +f 606/241 1305/242 1262/243 563/244 +f 543/169 541/169 674/168 676/168 +f 561/11 594/12 595/13 562/14 +f 653/58 609/173 630/96 674/74 +f 687/15 651/11 652/16 688/17 +f 517/218 649/219 650/219 518/218 +f 652/136 651/245 519/246 520/135 +f 619/109 663/146 667/247 623/188 +f 624/141 617/47 619/46 623/139 +f 533/100 539/99 526/248 +f 538/34 532/249 525/137 +f 530/250 531/67 532/249 538/34 +f 535/121 528/98 530/250 534/119 +f 528/98 529/68 531/67 530/250 +f 551/174 597/164 559/165 514/19 +f 514/23 515/126 513/24 +f 524/124 523/103 522/102 +f 578/66 577/67 576/68 584/69 +f 583/34 582/249 570/137 +f 585/121 579/119 572/120 +f 580/100 581/99 573/248 +f 576/68 574/98 581/99 580/100 +f 574/98 575/250 579/119 585/121 +f 577/67 575/250 574/98 576/68 +f 577/67 582/249 583/34 575/250 +f 559/23 560/24 599/21 598/22 +f 560/24 559/23 558/126 +f 568/124 567/102 588/122 589/123 +f 568/124 569/103 567/102 +f 598/147 552/25 514/49 559/251 +f 647/54 646/53 645/129 +f 591/252 545/253 544/30 590/29 +f 670/254 669/255 657/64 +f 672/141 666/139 659/140 +f 667/119 668/138 660/120 +f 663/33 661/47 668/138 667/119 +f 664/32 662/46 661/47 663/33 +f 661/47 662/46 666/139 672/141 +f 664/32 669/255 670/254 662/46 +f 621/255 627/254 619/46 620/32 +f 581/106 535/256 527/61 573/107 +f 622/119 628/138 615/120 +f 625/31 626/34 613/137 +f 627/254 621/255 614/64 +f 660/257 616/258 623/113 667/259 +f 602/53 603/129 556/54 +f 568/260 2648/261 2646/262 569/263 +f 612/157 611/155 610/154 +f 558/264 513/265 515/266 560/267 +f 676/159 654/154 675/158 +f 655/157 656/155 676/159 +f 656/155 654/154 676/159 +f 520/14 540/91 541/92 521/93 +f 517/230 548/232 518/233 +f 548/232 516/240 518/233 +f 519/11 520/14 521/93 +f 563/93 561/11 562/14 +f 565/230 564/240 566/233 +f 620/268 664/183 665/114 621/113 +f 608/44 609/85 607/45 +f 605/16 604/11 606/93 +f 564/269 519/270 521/271 566/186 +f 649/44 681/42 682/43 +f 650/85 648/45 681/42 +f 649/44 650/85 681/42 +f 680/118 636/182 606/184 650/115 +f 652/16 651/11 653/93 +f 563/272 1262/273 1260/274 561/275 +f 1251/1 1297/2 1261/3 1216/4 +f 1216/5 1217/5 1349/6 1348/6 +f 1348/7 1304/8 1340/9 1384/10 +f 1215/11 1250/12 1251/13 1216/14 +f 1333/15 1300/11 1301/16 1334/17 +f 1241/18 1287/19 1265/3 1220/20 +f 1246/21 1247/22 1210/23 1209/24 +f 1234/20 1280/3 1272/25 1226/26 +f 1328/27 1372/28 1371/29 1327/30 +f 1361/31 1360/32 1359/33 1367/34 +f 1313/39 1357/8 1368/40 1324/41 +f 1339/42 1340/43 1304/44 1303/45 +f 1316/32 1315/46 1313/47 1314/33 +f 1229/48 1275/49 1271/25 1225/50 +f 1224/10 1270/55 1281/56 1235/57 +f 1336/58 1380/59 1342/60 1298/61 +f 1363/62 1364/63 1231/64 1230/65 +f 1232/66 1227/67 1225/68 1233/69 +f 1358/70 1314/71 1318/72 1362/73 +f 1307/74 1351/75 1372/59 1328/58 +f 1376/76 1375/5 1242/6 1243/77 +f 1242/78 1288/18 1258/20 1213/79 +f 1376/80 1243/81 1241/81 1374/80 +f 1234/82 1228/82 1361/83 1367/83 +f 1326/84 1305/85 1304/44 1325/86 +f 1279/87 1233/88 1225/89 1271/90 +f 1239/36 1285/35 1284/28 1238/27 +f 1288/91 1289/92 1259/93 1258/14 +f 1341/94 1252/95 1299/96 1343/97 +f 1225/68 1224/98 1235/99 1229/100 +f 1238/101 1218/102 1219/103 1239/104 +f 1268/105 1222/106 1235/107 1281/108 +f 1227/57 1273/56 1274/109 1228/110 +f 1323/115 1367/116 1359/117 1315/118 +f 1342/53 1343/54 1382/51 1381/52 +f 1230/119 1223/120 1231/121 +f 1240/122 1241/123 1220/124 1218/102 +f 1280/69 1267/125 1274/66 +f 1254/126 1255/23 1293/127 1292/128 +f 1263/102 1265/103 1287/104 1286/101 +f 2673/276 1973/277 1274/278 582/279 +f 1341/129 1342/53 1380/130 1379/131 +f 1256/26 1211/132 1249/79 1295/20 +f 1301/133 1345/134 1378/8 1334/39 +f 1377/77 1379/135 1246/136 1244/76 +f 1367/34 1354/137 1361/31 +f 1314/33 1313/47 1324/138 1318/119 +f 1319/139 1312/140 1320/141 +f 1378/136 1245/135 1247/135 1380/136 +f 1292/79 1246/142 1209/143 1254/78 +f 1231/144 1277/1 1270/4 1224/145 +f 1273/146 1227/109 1232/25 1278/147 +f 1226/64 1224/64 1357/63 1359/63 +f 1366/148 1322/60 1314/59 1358/71 +f 1948/280 1308/281 1265/282 1950/283 +f 1249/128 1211/126 1210/23 1248/127 +f 1285/10 1239/9 1219/70 1264/18 +f 1327/153 1306/154 1307/155 1328/156 +f 1308/157 1306/154 1329/158 1330/159 +f 1257/57 1212/117 1244/116 1290/10 +f 1275/270 1229/105 1222/108 1268/271 +f 1263/110 1218/160 1238/117 1284/57 +f 1352/155 1374/156 1373/153 1350/154 +f 1381/9 1337/148 1298/71 1342/70 +f 626/284 1323/285 1310/286 613/287 +f 1374/38 1330/37 1329/161 1373/162 +f 1343/160 1299/163 1338/118 1382/117 +f 1215/164 1260/144 1296/145 1250/165 +f 1322/34 1321/31 1316/32 1314/33 +f 1355/170 1311/171 1324/172 1368/173 +f 1364/177 1320/178 1312/134 1356/133 +f 1380/162 1336/161 1335/179 1379/180 +f 1357/8 1313/181 1320/148 1364/9 +f 1379/182 1335/183 1252/7 1341/184 +f 1360/181 1316/185 1321/60 1365/148 +f 1383/185 1339/186 1303/61 1347/60 +f 1259/41 1214/40 1212/183 1257/268 +f 1306/182 1350/118 1373/163 1329/188 +f 1344/39 1300/189 1333/190 1377/133 +f 1362/288 1318/289 1311/106 1355/105 +f 1350/41 1306/191 1327/189 1371/39 +f 1233/192 1366/193 1365/193 1232/192 +f 1218/194 1220/195 1352/196 1350/197 +f 1351/197 1219/194 1218/194 1350/197 +f 1236/198 1369/199 1370/199 1237/198 +f 1360/200 1227/201 1226/193 1359/192 +f 1224/202 1225/199 1358/198 1357/203 +f 1371/204 1369/205 1236/206 1238/207 +f 1371/195 1238/196 1239/169 1372/168 +f 1216/2 1261/89 1282/88 1236/3 +f 1226/90 1272/48 1276/50 1230/87 +f 1360/200 1358/208 1225/209 1227/201 +f 1246/5 1379/6 1380/210 1247/211 +f 1244/212 1245/212 1378/213 1377/213 +f 1342/214 1210/215 1211/216 1343/217 +f 1338/131 1299/129 1298/53 1337/130 +f 1251/203 1384/202 1381/213 1248/212 +f 1384/205 1251/206 1250/218 1383/219 +f 1211/216 1209/216 1341/217 1343/217 +f 1364/220 1356/216 1223/217 1231/221 +f 1383/208 1250/209 1249/209 1382/208 +f 1374/80 1241/81 1240/222 1373/223 +f 1210/224 1342/225 1341/226 1209/227 +f 1235/207 1368/204 1362/204 1229/207 +f 1235/228 1222/212 1355/213 1368/229 +f 1362/211 1355/199 1222/198 1229/210 +f 1242/227 1375/226 1373/204 1240/207 +f 1249/209 1248/166 1381/167 1382/208 +f 1213/55 1258/143 1291/142 1245/56 +f 1213/230 1245/231 1244/232 +f 1331/183 1375/182 1345/188 1301/114 +f 1375/86 1376/84 1346/85 1345/44 +f 1261/230 1262/233 1283/234 1282/235 +f 1289/132 1243/187 1214/142 1259/79 +f 1218/56 1263/142 1286/187 1240/109 +f 1304/75 1348/72 1369/71 1325/59 +f 1242/235 1213/230 1214/233 1243/234 +f 1332/236 1331/237 1301/16 1302/93 +f 1212/228 1344/229 1345/219 1213/218 +f 1383/15 1347/11 1348/16 1384/17 +f 1296/232 1260/240 1261/230 1297/231 +f 1348/16 1349/93 1370/236 1369/237 +f 1376/118 1332/182 1302/184 1346/115 +f 1239/169 1237/169 1370/168 1372/168 +f 1257/11 1290/12 1291/13 1258/14 +f 1349/58 1305/173 1326/96 1370/74 +f 1213/218 1345/219 1346/219 1214/218 +f 1346/215 1344/80 1212/81 1214/214 +f 1348/136 1347/245 1215/246 1216/135 +f 1315/109 1359/146 1363/247 1319/188 +f 1320/141 1313/47 1315/46 1319/139 +f 1335/51 1336/52 1298/53 1252/54 +f 1229/100 1235/99 1222/248 +f 1232/66 1233/69 1221/125 +f 1226/250 1227/67 1228/249 1234/34 +f 1231/121 1224/98 1226/250 1230/119 +f 1224/98 1225/68 1227/67 1226/250 +f 1247/174 1293/164 1255/165 1210/19 +f 1210/23 1211/126 1209/24 +f 1220/124 1219/103 1218/102 +f 1274/66 1273/67 1272/68 1280/69 +f 1279/34 1278/249 1266/137 +f 1281/121 1275/119 1268/120 +f 1276/100 1277/99 1269/248 +f 1272/68 1270/98 1277/99 1276/100 +f 1270/98 1271/250 1275/119 1281/121 +f 1273/67 1271/250 1270/98 1272/68 +f 1273/67 1278/249 1279/34 1271/250 +f 1255/23 1256/24 1295/21 1294/22 +f 1256/24 1255/23 1254/126 +f 1264/124 1263/102 1284/122 1285/123 +f 1264/124 1265/103 1263/102 +f 1294/147 1248/25 1210/49 1255/251 +f 1343/54 1342/53 1341/129 +f 1287/252 1241/253 1240/30 1286/29 +f 583/290 570/291 1267/292 1280/293 +f 1366/254 1365/255 1353/64 +f 1368/141 1362/139 1355/140 +f 1363/119 1364/138 1356/120 +f 1359/33 1357/47 1364/138 1363/119 +f 1360/32 1358/46 1357/47 1359/33 +f 1357/47 1358/46 1362/139 1368/141 +f 1360/32 1365/255 1366/254 1358/46 +f 1317/255 1323/254 1315/46 1316/32 +f 1277/106 1231/256 1223/61 1269/107 +f 1318/119 1324/138 1311/120 +f 1321/31 1322/34 1309/137 +f 1323/254 1317/255 1310/64 +f 1352/174 1308/175 1330/74 1374/176 +f 1298/53 1299/129 1252/54 +f 1264/261 1952/279 1950/294 1265/262 +f 1308/157 1307/155 1306/154 +f 1254/264 1209/265 1211/266 1256/267 +f 1372/159 1350/154 1371/158 +f 1351/157 1352/155 1372/159 +f 1352/155 1350/154 1372/159 +f 1216/14 1236/91 1237/92 1217/93 +f 1213/230 1244/232 1214/233 +f 1244/232 1212/240 1214/233 +f 1215/11 1216/14 1217/93 +f 1259/93 1257/11 1258/14 +f 1261/230 1260/240 1262/233 +f 1316/268 1360/183 1361/114 1317/113 +f 1304/44 1305/85 1303/45 +f 1301/16 1300/11 1302/93 +f 1262/18 1217/70 1237/73 1283/175 +f 1345/44 1377/42 1378/43 +f 606/295 604/296 1303/297 1305/298 +f 1346/85 1344/45 1377/42 +f 1345/44 1346/85 1377/42 +f 1346/299 1302/268 1300/300 1344/301 +f 1293/35 1247/36 1246/37 1292/38 +f 1947/1 1993/2 1957/3 1912/4 +f 1912/5 1913/5 2045/6 2044/6 +f 2044/7 2000/8 2036/9 2080/10 +f 1911/11 1946/12 1947/13 1912/14 +f 2029/15 1996/11 1997/16 2030/17 +f 1937/18 1983/19 1961/3 1916/20 +f 1942/21 1943/22 1906/23 1905/24 +f 1930/20 1976/3 1968/25 1922/26 +f 2024/27 2068/28 2067/29 2023/30 +f 2057/31 2056/32 2055/33 2063/34 +f 1989/35 1943/36 1942/37 1988/38 +f 2009/39 2053/8 2064/40 2020/41 +f 2035/42 2036/43 2000/44 1999/45 +f 2012/32 2011/46 2009/47 2010/33 +f 1925/48 1971/49 1967/25 1921/50 +f 2031/51 2032/52 1994/53 1948/54 +f 1920/10 1966/55 1977/56 1931/57 +f 2032/58 2076/59 2038/60 1994/61 +f 2059/62 2060/63 1927/64 1926/65 +f 1928/66 1923/67 1921/68 1929/69 +f 2054/70 2010/71 2014/72 2058/73 +f 2047/302 2003/177 2004/133 2048/190 +f 2072/76 2071/5 1938/6 1939/77 +f 1938/78 1984/18 1954/20 1909/79 +f 2072/80 1939/81 1937/81 2070/80 +f 1930/82 1924/82 2057/83 2063/83 +f 2022/84 2001/85 2000/44 2021/86 +f 1975/87 1929/88 1921/89 1967/90 +f 1935/36 1981/35 1980/28 1934/27 +f 1984/91 1985/92 1955/93 1954/14 +f 2050/95 2006/303 2013/304 2057/96 +f 1921/68 1920/98 1931/99 1925/100 +f 1934/101 1914/102 1915/103 1935/104 +f 1981/10 1935/9 1915/70 1960/18 +f 1923/57 1969/56 1970/109 1924/110 +f 2019/115 2063/116 2055/117 2011/118 +f 2038/53 2039/54 2078/51 2077/52 +f 1936/122 1937/123 1916/124 1914/102 +f 1976/69 1963/125 1970/66 +f 1950/126 1951/23 1989/127 1988/128 +f 1959/102 1961/103 1983/104 1982/101 +f 2037/129 2038/53 2076/130 2075/131 +f 1952/26 1907/132 1945/79 1991/20 +f 1997/133 2041/134 2074/8 2030/39 +f 2073/77 2075/135 1942/136 1940/76 +f 2013/255 2019/254 2011/46 2012/32 +f 2015/139 2008/140 2016/141 +f 1974/256 1928/264 1917/267 1962/61 +f 2074/136 1941/135 1943/135 2076/136 +f 1988/79 1942/142 1905/143 1950/78 +f 1927/144 1973/1 1966/4 1920/145 +f 1969/146 1923/109 1928/25 1974/147 +f 1922/64 1920/64 2053/63 2055/63 +f 2062/148 2018/60 2010/59 2054/71 +f 1945/128 1907/126 1906/23 1944/127 +f 1960/238 1915/173 1916/58 1961/305 +f 2023/153 2002/154 2003/155 2024/156 +f 2004/157 2002/154 2025/158 2026/159 +f 1995/149 1952/152 1264/280 1307/283 +f 1953/57 1908/117 1940/116 1986/10 +f 1959/110 1914/160 1934/117 1980/57 +f 2048/155 2070/156 2069/153 2046/154 +f 2077/9 2033/148 1994/71 2038/70 +f 2070/38 2026/37 2025/161 2069/162 +f 2039/160 1995/163 2034/118 2078/117 +f 1911/164 1956/144 1992/145 1946/165 +f 2018/34 2017/31 2012/32 2010/33 +f 2048/174 2004/175 2026/74 2070/176 +f 2076/162 2032/161 2031/179 2075/180 +f 2061/306 2017/307 2005/270 2049/269 +f 2053/8 2009/181 2016/148 2060/9 +f 2075/182 2031/183 1948/7 2037/184 +f 2056/181 2012/185 2017/60 2061/148 +f 2079/185 2035/186 1999/61 2043/60 +f 2003/74 2047/75 2068/59 2024/58 +f 1955/41 1910/40 1908/183 1953/268 +f 2002/182 2046/118 2069/163 2025/188 +f 2040/39 1996/189 2029/190 2073/133 +f 2046/41 2002/191 2023/189 2067/39 +f 1929/192 2062/193 2061/193 1928/192 +f 2061/308 2049/309 1917/310 1928/137 +f 1929/192 1917/310 2049/309 2062/193 +f 2047/197 2048/222 1916/223 1915/194 +f 1914/194 1916/195 2048/196 2046/197 +f 2047/197 1915/194 1914/194 2046/197 +f 1932/198 2065/199 2066/199 1933/198 +f 2056/200 1923/201 1922/193 2055/192 +f 1920/202 1921/199 2054/198 2053/203 +f 2067/204 2065/205 1932/206 1934/207 +f 2067/195 1934/196 1935/169 2068/168 +f 1912/2 1957/89 1978/88 1932/3 +f 1922/90 1968/48 1972/50 1926/87 +f 2056/200 2054/208 1921/209 1923/201 +f 1942/5 2075/6 2076/210 1943/211 +f 1940/212 1941/212 2074/213 2073/213 +f 2038/214 1906/215 1907/216 2039/217 +f 2034/131 1995/129 1994/53 2033/130 +f 1945/209 1944/166 2077/167 2078/208 +f 1947/203 2080/202 2077/213 1944/212 +f 2080/205 1947/206 1946/218 2079/219 +f 1906/224 2038/225 2037/226 1905/227 +f 2079/208 1946/209 1945/209 2078/208 +f 2070/80 1937/81 1936/222 2069/223 +f 1931/207 2064/204 2058/204 1925/207 +f 1938/227 2071/226 2069/204 1936/207 +f 1924/246 1918/64 2050/63 2057/245 +f 1909/55 1954/143 1987/142 1941/56 +f 1909/230 1941/231 1940/232 +f 2027/183 2071/182 2041/188 1997/114 +f 2071/86 2072/84 2042/85 2041/44 +f 1957/230 1958/233 1979/234 1978/235 +f 1985/132 1939/187 1910/142 1955/79 +f 1914/56 1959/142 1982/187 1936/109 +f 2000/75 2044/72 2065/71 2021/59 +f 1938/235 1909/230 1910/233 1939/234 +f 2028/236 2027/237 1997/16 1998/93 +f 1908/228 2040/229 2041/219 1909/218 +f 2079/15 2043/11 2044/16 2080/17 +f 1992/232 1956/240 1957/230 1993/231 +f 2044/16 2045/93 2066/236 2065/237 +f 2072/118 2028/182 1998/184 2042/115 +f 1935/169 1933/169 2066/168 2068/168 +f 1953/11 1986/12 1987/13 1954/14 +f 2045/58 2001/173 2022/96 2066/74 +f 1958/272 1956/275 2649/311 2651/312 +f 1909/218 2041/219 2042/219 1910/218 +f 2042/215 2040/80 1908/81 1910/214 +f 2044/136 2043/245 1911/246 1912/135 +f 2011/109 2055/146 2059/247 2015/188 +f 2016/141 2009/47 2011/46 2015/139 +f 2667/292 1972/313 1965/314 2660/293 +f 1925/100 1931/99 1919/248 +f 1928/66 1929/69 1917/125 +f 1922/250 1923/67 1924/249 1930/34 +f 1927/121 1920/98 1922/250 1926/119 +f 1920/98 1921/68 1923/67 1922/250 +f 1943/174 1989/164 1951/165 1906/19 +f 1906/23 1907/126 1905/24 +f 1916/124 1915/103 1914/102 +f 1970/66 1969/67 1968/68 1976/69 +f 1975/34 1974/249 1962/137 +f 1977/121 1971/119 1964/120 +f 1972/100 1973/99 1965/248 +f 1968/68 1966/98 1973/99 1972/100 +f 1966/98 1967/250 1971/119 1977/121 +f 1969/67 1967/250 1966/98 1968/68 +f 1969/67 1974/249 1975/34 1967/250 +f 1951/23 1952/24 1991/21 1990/22 +f 1952/24 1951/23 1950/126 +f 1960/124 1959/102 1980/122 1981/123 +f 1960/124 1961/103 1959/102 +f 1990/147 1944/25 1906/49 1951/251 +f 2039/54 2038/53 2037/129 +f 1983/252 1937/253 1936/30 1982/29 +f 2062/254 2061/255 2049/64 +f 2064/141 2058/139 2051/140 +f 2059/119 2060/138 2052/120 +f 2055/33 2053/47 2060/138 2059/119 +f 2056/32 2054/46 2053/47 2055/33 +f 2053/47 2054/46 2058/139 2064/141 +f 2056/32 2061/255 2062/254 2054/46 +f 1962/96 1917/304 1929/176 1975/74 +f 2010/33 2009/47 2020/138 2014/119 +f 2014/119 2020/138 2007/120 +f 2017/31 2018/34 2005/137 +f 2019/254 2013/255 2006/64 +f 2049/259 2005/113 2018/112 2062/315 +f 1994/53 1995/129 1948/54 +f 1278/316 1977/317 1964/318 1266/297 +f 2004/157 2003/155 2002/154 +f 1963/265 1918/238 1924/305 1970/266 +f 1307/319 1308/320 1948/321 1995/316 +f 2068/159 2046/154 2067/158 +f 2047/157 2048/155 2068/159 +f 2048/155 2046/154 2068/159 +f 1366/322 1233/323 1279/192 1971/310 1925/324 2058/325 2014/309 1322/193 +f 1321/326 1309/321 2007/327 2020/328 +f 1912/14 1932/91 1933/92 1913/93 +f 1909/230 1940/232 1910/233 +f 1940/232 1908/240 1910/233 +f 1911/11 1912/14 1913/93 +f 1955/93 1953/11 1954/14 +f 1957/230 1956/240 1958/233 +f 2012/268 2056/183 2057/114 2013/113 +f 2000/44 2001/85 1999/45 +f 1997/16 1996/11 1998/93 +f 1958/18 1913/70 1933/73 1979/175 +f 2041/44 2073/42 2074/43 +f 2651/329 2694/330 2001/331 1958/332 +f 2042/85 2040/45 2073/42 +f 2041/44 2042/85 2073/42 +f 2042/299 1998/268 1996/300 2040/301 +f 2643/1 2689/2 2653/3 2608/4 +f 2608/5 2609/5 2741/6 2740/6 +f 2740/7 2696/8 2732/9 2776/10 +f 2607/11 2642/12 2643/13 2608/14 +f 2725/15 2692/11 2693/16 2726/17 +f 2633/18 2679/19 2657/3 2612/20 +f 2638/21 2639/22 2602/23 2601/24 +f 2626/20 2672/3 2664/25 2618/26 +f 2720/27 2764/28 2763/29 2719/30 +f 2753/31 2752/32 2751/33 2759/34 +f 2685/35 2639/36 2638/37 2684/38 +f 2705/39 2749/8 2760/40 2716/41 +f 2731/42 2732/43 2696/44 2695/45 +f 2708/32 2707/46 2705/47 2706/33 +f 2621/48 2667/49 2663/25 2617/50 +f 2702/268 2746/299 2759/191 2715/41 +f 2727/51 2728/52 2690/53 2644/54 +f 2616/10 2662/55 2673/56 2627/57 +f 2728/58 2772/59 2734/60 2690/61 +f 2755/62 2756/63 2623/64 2622/65 +f 2624/66 2619/67 2617/68 2625/69 +f 2750/70 2706/71 2710/72 2754/73 +f 2743/302 2699/177 2700/133 2744/190 +f 2768/76 2767/5 2634/6 2635/77 +f 2634/78 2680/18 2650/20 2605/79 +f 2768/80 2635/81 2633/81 2766/80 +f 2626/82 2620/82 2753/83 2759/83 +f 2718/84 2697/85 2696/44 2717/86 +f 2671/87 2625/88 2617/89 2663/90 +f 2631/36 2677/35 2676/28 2630/27 +f 2680/91 2681/92 2651/93 2650/14 +f 2746/95 2702/303 2709/304 2753/96 +f 2617/68 2616/98 2627/99 2621/100 +f 2630/101 2610/102 2611/103 2631/104 +f 2677/10 2631/9 2611/70 2656/18 +f 2619/57 2665/56 2666/109 2620/110 +f 2715/115 2759/116 2751/117 2707/118 +f 2734/53 2735/54 2774/51 2773/52 +f 2622/119 2615/120 2623/121 +f 2632/122 2633/123 2612/124 2610/102 +f 2672/69 2659/125 2666/66 +f 2646/126 2647/23 2685/127 2684/128 +f 2655/102 2657/103 2679/104 2678/101 +f 2679/252 2633/253 2632/30 2678/29 +f 2733/129 2734/53 2772/130 2771/131 +f 2648/26 2603/132 2641/79 2687/20 +f 2693/133 2737/134 2770/8 2726/39 +f 2769/77 2771/135 2638/136 2636/76 +f 2759/34 2746/137 2753/31 +f 2711/139 2704/140 2712/141 +f 2670/256 2624/264 2613/267 2658/61 +f 2770/136 2637/135 2639/135 2772/136 +f 2684/79 2638/142 2601/143 2646/78 +f 2623/144 2669/1 2662/4 2616/145 +f 2665/146 2619/109 2624/25 2670/147 +f 2618/64 2616/64 2749/63 2751/63 +f 2758/148 2714/60 2706/59 2750/71 +f 2641/128 2603/126 2602/23 2640/127 +f 2656/238 2611/173 2612/58 2657/305 +f 2719/153 2698/154 2699/155 2720/156 +f 2700/157 2698/154 2721/158 2722/159 +f 2691/282 2648/281 568/333 611/334 +f 2649/57 2604/117 2636/116 2682/10 +f 2655/110 2610/160 2630/117 2676/57 +f 2744/155 2766/156 2765/153 2742/154 +f 2773/9 2729/148 2690/71 2734/70 +f 2766/38 2722/37 2721/161 2765/162 +f 2735/160 2691/163 2730/118 2774/117 +f 2607/164 2652/144 2688/145 2642/165 +f 2607/166 2739/167 2741/168 2609/169 +f 2714/34 2713/31 2708/32 2706/33 +f 538/325 671/324 627/310 2711/137 2755/335 2622/336 2668/308 584/309 +f 2772/162 2728/161 2727/179 2771/180 +f 2757/306 2713/307 2701/270 2745/269 +f 2749/8 2705/181 2712/148 2756/9 +f 2771/182 2727/183 2644/7 2733/184 +f 2752/181 2708/185 2713/60 2757/148 +f 2775/185 2731/186 2695/61 2739/60 +f 2699/74 2743/75 2764/59 2720/58 +f 2681/132 2635/187 2606/142 2651/79 +f 2698/182 2742/118 2765/163 2721/188 +f 2736/39 2692/189 2725/190 2769/133 +f 2742/41 2698/191 2719/189 2763/39 +f 2625/192 2758/193 2757/193 2624/192 +f 2757/308 2745/309 2613/310 2624/137 +f 2743/197 2744/222 2612/223 2611/194 +f 2714/151 2671/150 1976/337 2019/338 +f 2610/194 2612/195 2744/196 2742/197 +f 2743/197 2611/194 2610/194 2742/197 +f 2628/198 2761/199 2762/199 2629/198 +f 2752/200 2619/201 2618/193 2751/192 +f 2616/202 2617/199 2750/198 2749/203 +f 2763/204 2761/205 2628/206 2630/207 +f 2763/195 2630/196 2631/169 2764/168 +f 2608/2 2653/89 2674/88 2628/3 +f 2618/90 2664/48 2668/50 2622/87 +f 2752/200 2750/208 2617/209 2619/201 +f 2638/5 2771/6 2772/210 2639/211 +f 2636/212 2637/212 2770/213 2769/213 +f 2734/214 2602/215 2603/216 2735/217 +f 2730/131 2691/129 2690/53 2729/130 +f 2620/246 2614/64 2746/63 2753/245 +f 2641/209 2640/166 2773/167 2774/208 +f 2643/203 2776/202 2773/213 2640/212 +f 2776/205 2643/206 2642/218 2775/219 +f 2602/224 2734/225 2733/226 2601/227 +f 2775/208 2642/209 2641/209 2774/208 +f 2766/80 2633/81 2632/222 2765/223 +f 2627/207 2760/204 2754/204 2621/207 +f 2634/227 2767/226 2765/204 2632/207 +f 2759/83 2746/220 2614/221 2626/82 +f 2605/55 2650/143 2683/142 2637/56 +f 2605/230 2637/231 2636/232 +f 2723/183 2767/182 2737/188 2693/114 +f 2767/86 2768/84 2738/85 2737/44 +f 2653/230 2654/233 2675/234 2674/235 +f 2610/56 2655/142 2678/187 2632/109 +f 2696/75 2740/72 2761/71 2717/59 +f 2634/235 2605/230 2606/233 2635/234 +f 2724/236 2723/237 2693/16 2694/93 +f 2654/18 2609/70 2629/73 2675/175 +f 2604/228 2736/229 2737/219 2605/218 +f 2697/173 2741/238 2739/239 2695/170 +f 2688/232 2652/240 2653/230 2689/231 +f 2740/16 2741/93 2762/236 2761/237 +f 2001/311 2694/296 2692/295 1999/312 +f 2631/169 2629/169 2762/168 2764/168 +f 2649/11 2682/12 2683/13 2650/14 +f 2741/58 2697/173 2718/96 2762/74 +f 2775/15 2739/11 2740/16 2776/17 +f 2605/218 2737/219 2738/219 2606/218 +f 2740/136 2739/245 2607/246 2608/135 +f 2707/109 2751/146 2755/247 2711/188 +f 2712/141 2705/47 2707/46 2711/139 +f 621/285 2712/328 2704/327 614/286 +f 2626/34 2620/249 2614/137 +f 2618/250 2619/67 2620/249 2626/34 +f 2623/121 2616/98 2618/250 2622/119 +f 2616/98 2617/68 2619/67 2618/250 +f 2639/174 2685/164 2647/165 2602/19 +f 2602/23 2603/126 2601/24 +f 2612/124 2611/103 2610/102 +f 2666/66 2665/67 2664/68 2672/69 +f 2671/34 2670/249 2658/137 +f 2673/121 2667/119 2660/120 +f 2668/100 2669/99 2661/248 +f 2664/68 2662/98 2669/99 2668/100 +f 2662/98 2663/250 2667/119 2673/121 +f 2665/67 2663/250 2662/98 2664/68 +f 2665/67 2670/249 2671/34 2663/250 +f 2647/23 2648/24 2687/21 2686/22 +f 2648/24 2647/23 2646/126 +f 2656/124 2655/102 2676/122 2677/123 +f 2656/124 2657/103 2655/102 +f 2686/147 2640/25 2602/49 2647/251 +f 2735/54 2734/53 2733/129 +f 2614/247 2659/111 2672/114 2626/188 +f 2760/141 2754/139 2747/140 +f 2755/119 2756/138 2748/120 +f 2751/33 2749/47 2756/138 2755/119 +f 2752/32 2750/46 2749/47 2751/33 +f 2749/47 2750/46 2754/139 2760/141 +f 2752/32 2757/255 2758/254 2750/46 +f 2709/255 2715/254 2707/46 2708/32 +f 1976/339 2671/340 2658/341 1963/342 +f 2706/33 2705/47 2716/138 2710/119 +f 2710/119 2716/138 2703/120 +f 2713/31 2714/34 2701/137 +f 2715/254 2709/255 2702/64 +f 2744/174 2700/175 2722/74 2766/176 +f 2690/53 2691/129 2644/54 +f 2700/157 2699/155 2698/154 +f 2659/265 2614/238 2620/305 2666/266 +f 611/343 612/344 2644/320 2691/319 +f 2710/345 2703/346 2008/339 2015/342 +f 2764/159 2742/154 2763/158 +f 2743/157 2744/155 2764/159 +f 2744/155 2742/154 2764/159 +f 2658/243 2701/242 2006/347 1963/348 +f 2019/349 2006/273 2701/350 2714/351 +f 578/352 571/353 2661/326 2669/354 +f 2712/355 621/356 578/357 2669/358 +f 2608/14 2628/91 2629/92 2609/93 +f 2605/230 2636/232 2606/233 +f 2636/232 2604/240 2606/233 +f 2607/11 2608/14 2609/93 +f 2651/93 2649/11 2650/14 +f 2653/230 2652/240 2654/233 +f 2708/268 2752/183 2753/114 2709/113 +f 2696/44 2697/85 2695/45 +f 2693/16 2692/11 2694/93 +f 2652/269 2607/270 2609/271 2654/186 +f 2737/44 2769/42 2770/43 +f 2738/85 2736/45 2769/42 +f 2737/44 2738/85 2769/42 +f 2768/118 2724/182 2694/184 2738/115 +f 2740/16 2739/11 2741/93 +f 2649/329 1956/359 1999/360 2692/330 +f 2016/276 2716/361 625/344 1317/362 +f 2673/333 582/363 625/364 2716/334 +f 1274/365 1973/366 2016/356 1317/367 +f 1280/368 1323/369 626/370 583/371 +f 2710/372 2015/241 1972/244 2667/373 +f 1977/363 1278/365 1321/367 2020/364 +f 579/345 1276/291 1269/290 572/346 +f 1312/370 615/338 572/337 1269/371 +f 622/341 615/340 1312/284 1319/287 +f 1276/373 579/332 622/331 1319/372 +f 1260/360 1303/359 604/369 561/368 s 1 -f 65/385 2/386 4/387 -f 66/388 4/387 6/389 -f 67/390 6/389 8/391 -f 68/392 8/391 10/393 -f 69/394 10/393 70/395 -f 70/395 12/396 71/397 -f 71/397 14/398 16/399 -f 72/400 16/399 18/401 -f 73/402 18/401 20/403 -f 74/404 20/403 22/405 -f 75/406 22/405 24/407 -f 76/408 24/407 26/409 -f 77/410 26/409 78/411 -f 78/411 28/412 30/413 -f 1/414 3/415 695/416 -f 80/417 32/418 2/386 -f 79/419 30/420 80/417 -f 132/421 130/422 696/423 -f 128/424 33/425 113/426 -f 113/426 34/427 114/428 -f 114/428 35/429 36/430 -f 115/431 36/430 37/432 -f 116/433 37/432 117/434 -f 117/434 38/435 118/436 -f 118/436 39/437 40/438 -f 119/439 40/438 41/440 -f 120/441 41/440 121/442 -f 121/442 42/443 122/444 -f 122/444 43/445 44/446 -f 123/447 44/446 45/448 -f 124/449 45/448 125/450 -f 125/450 46/451 47/452 -f 127/453 48/454 33/425 -f 126/455 47/456 48/454 -f 33/425 49/457 34/427 -f 34/427 50/458 35/429 -f 35/429 51/459 52/460 -f 36/430 52/460 53/461 -f 37/432 53/461 54/462 -f 38/435 54/462 55/463 -f 39/437 55/463 56/464 -f 40/438 56/464 57/465 -f 41/440 57/465 58/466 -f 42/443 58/466 59/467 -f 43/445 59/467 60/468 -f 44/446 60/468 61/469 -f 45/448 61/469 62/470 -f 46/451 62/470 63/471 -f 48/454 64/472 33/425 -f 47/456 63/473 64/472 -f 49/474 65/385 50/475 -f 50/475 66/388 51/476 -f 51/476 67/390 68/392 -f 52/477 68/392 69/394 -f 53/478 69/394 70/395 -f 54/479 70/395 71/397 -f 55/480 71/397 72/400 -f 56/481 72/400 73/402 -f 57/482 73/402 74/404 -f 58/483 74/404 75/406 -f 59/484 75/406 76/408 -f 60/485 76/408 77/410 -f 61/486 77/410 62/487 -f 62/487 78/411 79/488 -f 64/489 80/417 65/385 -f 63/490 79/419 64/489 -f 1/491 96/492 81/493 -f 3/494 81/493 82/495 -f 5/496 82/495 7/497 -f 7/497 83/498 84/499 -f 9/500 84/499 85/501 -f 11/502 85/501 86/503 -f 13/504 86/503 87/505 -f 15/506 87/505 88/507 -f 17/508 88/507 89/509 -f 19/510 89/509 90/511 -f 21/512 90/511 91/513 -f 23/514 91/513 92/515 -f 25/516 92/515 27/517 -f 27/517 93/518 29/519 -f 31/520 95/521 1/491 -f 29/522 94/523 31/520 -f 81/493 97/524 82/495 -f 82/495 98/525 99/526 -f 83/498 99/526 100/527 -f 84/499 100/527 101/528 -f 85/501 101/528 102/529 -f 86/503 102/529 103/530 -f 87/505 103/530 104/531 -f 88/507 104/531 105/532 -f 89/509 105/532 90/511 -f 90/511 106/533 107/534 -f 91/513 107/534 92/515 -f 92/515 108/535 109/536 -f 93/518 109/536 110/537 -f 95/521 111/538 112/539 -f 94/523 110/540 111/538 -f 112/539 128/424 113/426 -f 97/524 113/426 114/428 -f 98/525 114/428 115/431 -f 99/526 115/431 116/433 -f 100/527 116/433 101/528 -f 101/528 117/434 118/436 -f 102/529 118/436 119/439 -f 103/530 119/439 120/441 -f 104/531 120/441 105/532 -f 105/532 121/442 122/444 -f 106/533 122/444 107/534 -f 107/534 123/447 108/535 -f 108/535 124/449 125/450 -f 109/536 125/450 110/537 -f 111/538 127/453 112/539 -f 110/540 126/455 111/538 -f 96/492 112/539 81/493 -f 193/541 130/542 132/543 -f 194/544 132/543 195/545 -f 195/545 134/546 136/547 -f 196/548 136/547 138/549 -f 197/550 138/549 140/551 -f 198/552 140/551 199/553 -f 199/553 142/554 144/555 -f 200/556 144/555 146/557 -f 201/558 146/557 148/559 -f 202/560 148/559 150/561 -f 203/562 150/561 152/563 -f 204/564 152/563 205/565 -f 205/565 154/566 156/567 -f 206/568 156/567 158/569 -f 129/570 131/571 697/572 -f 208/573 160/574 130/542 -f 207/575 158/576 160/574 -f 260/577 258/578 698/579 -f 256/580 161/581 162/582 -f 241/583 162/582 163/584 -f 242/585 163/584 164/586 -f 243/587 164/586 165/588 -f 244/589 165/588 166/590 -f 245/591 166/590 246/592 -f 246/592 167/593 247/594 -f 247/594 168/595 169/596 -f 248/597 169/596 249/598 -f 249/598 170/599 171/600 -f 250/601 171/600 172/602 -f 251/603 172/602 173/604 -f 252/605 173/604 253/606 -f 253/606 174/607 175/608 -f 255/609 176/610 256/580 -f 254/611 175/612 176/610 -f 161/581 177/613 162/582 -f 162/582 178/614 163/584 -f 163/584 179/615 164/586 -f 164/586 180/616 181/617 -f 165/588 181/617 182/618 -f 166/590 182/618 167/593 -f 167/593 183/619 184/620 -f 168/595 184/620 185/621 -f 169/596 185/621 186/622 -f 170/599 186/622 187/623 -f 171/600 187/623 172/602 -f 172/602 188/624 173/604 -f 173/604 189/625 174/607 -f 174/607 190/626 191/627 -f 176/610 192/628 177/613 -f 175/612 191/629 192/628 -f 177/630 193/541 194/544 -f 178/631 194/544 195/545 -f 179/632 195/545 196/548 -f 180/633 196/548 197/550 -f 181/634 197/550 198/552 -f 182/635 198/552 199/553 -f 183/636 199/553 200/556 -f 184/637 200/556 201/558 -f 185/638 201/558 202/560 -f 186/639 202/560 203/562 -f 187/640 203/562 204/564 -f 188/641 204/564 205/565 -f 189/642 205/565 206/568 -f 190/643 206/568 191/644 -f 192/645 208/573 193/541 -f 191/646 207/575 208/573 -f 129/647 224/648 209/649 -f 131/650 209/649 133/651 -f 133/651 210/652 135/653 -f 135/653 211/654 212/655 -f 137/656 212/655 139/657 -f 139/657 213/658 214/659 -f 141/660 214/659 215/661 -f 143/662 215/661 216/663 -f 145/664 216/663 217/665 -f 147/666 217/665 218/667 -f 149/668 218/667 219/669 -f 151/670 219/669 220/671 -f 153/672 220/671 155/673 -f 155/673 221/674 157/675 -f 159/676 223/677 129/647 -f 157/678 222/679 159/676 -f 209/649 225/680 210/652 -f 210/652 226/681 211/654 -f 211/654 227/682 228/683 -f 212/655 228/683 229/684 -f 213/658 229/684 230/685 -f 214/659 230/685 231/686 -f 215/661 231/686 232/687 -f 216/663 232/687 233/688 -f 217/665 233/688 234/689 -f 218/667 234/689 235/690 -f 219/669 235/690 236/691 -f 220/671 236/691 237/692 -f 221/674 237/692 238/693 -f 223/677 239/694 240/695 -f 222/679 238/696 239/694 -f 240/695 256/580 241/583 -f 225/680 241/583 226/681 -f 226/681 242/585 243/587 -f 227/682 243/587 244/589 -f 228/683 244/589 229/684 -f 229/684 245/591 246/592 -f 230/685 246/592 247/594 -f 231/686 247/594 232/687 -f 232/687 248/597 249/598 -f 233/688 249/598 250/601 -f 234/689 250/601 235/690 -f 235/690 251/603 252/605 -f 236/691 252/605 253/606 -f 237/692 253/606 238/693 -f 239/694 255/609 256/580 -f 238/696 254/611 255/609 -f 224/648 240/695 209/649 -f 321/697 258/698 260/699 -f 322/700 260/699 262/701 -f 323/702 262/701 264/703 -f 324/704 264/703 266/705 -f 325/706 266/705 268/707 -f 326/708 268/707 327/709 -f 327/709 270/710 272/711 -f 328/712 272/711 274/713 -f 329/714 274/713 330/715 -f 330/715 276/716 278/717 -f 331/718 278/717 332/719 -f 332/719 280/720 282/721 -f 333/722 282/721 284/723 -f 334/724 284/723 286/725 -f 257/726 259/727 699/728 -f 336/729 288/730 321/697 -f 335/731 286/732 288/730 -f 388/733 386/734 700/735 -f 384/736 289/737 290/738 -f 369/739 290/738 291/740 -f 370/741 291/740 371/742 -f 371/742 292/743 293/744 -f 372/745 293/744 294/746 -f 373/747 294/746 374/748 -f 374/748 295/749 375/750 -f 375/750 296/751 297/752 -f 376/753 297/752 298/754 -f 377/755 298/754 299/756 -f 378/757 299/756 300/758 -f 379/759 300/758 301/760 -f 380/761 301/760 302/762 -f 381/763 302/762 382/764 -f 383/765 304/766 384/736 -f 382/767 303/768 383/765 -f 289/737 305/769 290/738 -f 290/738 306/770 291/740 -f 291/740 307/771 308/772 -f 292/743 308/772 309/773 -f 293/744 309/773 310/774 -f 294/746 310/774 311/775 -f 295/749 311/775 312/776 -f 296/751 312/776 297/752 -f 297/752 313/777 314/778 -f 298/754 314/778 315/779 -f 299/756 315/779 316/780 -f 300/758 316/780 317/781 -f 301/760 317/781 302/762 -f 302/762 318/782 303/783 -f 304/766 320/784 305/769 -f 303/768 319/785 304/766 -f 305/786 321/697 306/787 -f 306/787 322/700 323/702 -f 307/788 323/702 324/704 -f 308/789 324/704 325/706 -f 309/790 325/706 326/708 -f 310/791 326/708 327/709 -f 311/792 327/709 328/712 -f 312/793 328/712 329/714 -f 313/794 329/714 330/715 -f 314/795 330/715 331/718 -f 315/796 331/718 316/797 -f 316/797 332/719 333/722 -f 317/798 333/722 334/724 -f 318/799 334/724 319/800 -f 320/801 336/729 321/697 -f 319/802 335/731 336/729 -f 257/803 352/804 337/805 -f 259/806 337/805 338/807 -f 261/808 338/807 263/809 -f 263/809 339/810 340/811 -f 265/812 340/811 267/813 -f 267/813 341/814 342/815 -f 269/816 342/815 343/817 -f 271/818 343/817 344/819 -f 273/820 344/819 345/821 -f 275/822 345/821 346/823 -f 277/824 346/823 347/825 -f 279/826 347/825 348/827 -f 281/828 348/827 283/829 -f 283/829 349/830 285/831 -f 287/832 351/833 257/803 -f 285/834 350/835 287/832 -f 337/805 353/836 338/807 -f 338/807 354/837 339/810 -f 339/810 355/838 356/839 -f 340/811 356/839 357/840 -f 341/814 357/840 342/815 -f 342/815 358/841 359/842 -f 343/817 359/842 360/843 -f 344/819 360/843 361/844 -f 345/821 361/844 346/823 -f 346/823 362/845 347/825 -f 347/825 363/846 364/847 -f 348/827 364/847 365/848 -f 349/830 365/848 350/849 -f 351/833 367/850 368/851 -f 350/835 366/852 367/850 -f 368/851 384/736 369/739 -f 353/836 369/739 370/741 -f 354/837 370/741 371/742 -f 355/838 371/742 372/745 -f 356/839 372/745 373/747 -f 357/840 373/747 374/748 -f 358/841 374/748 375/750 -f 359/842 375/750 376/753 -f 360/843 376/753 377/755 -f 361/844 377/755 378/757 -f 362/845 378/757 379/759 -f 363/846 379/759 380/761 -f 364/847 380/761 381/763 -f 365/848 381/763 366/853 -f 367/850 383/765 384/736 -f 366/852 382/767 383/765 -f 352/804 368/851 337/805 -f 449/854 386/855 450/856 -f 450/856 388/857 451/858 -f 451/858 390/859 392/860 -f 452/861 392/860 394/862 -f 453/863 394/862 454/864 -f 454/864 396/865 455/866 -f 455/866 398/867 456/868 -f 456/868 400/869 402/870 -f 457/871 402/870 458/872 -f 458/872 404/873 459/874 -f 459/874 406/875 408/876 -f 460/877 408/876 410/878 -f 461/879 410/878 412/880 -f 462/881 412/880 414/882 -f 385/883 387/884 701/885 -f 464/886 416/887 449/854 -f 463/888 414/889 416/887 -f 512/890 417/891 418/892 -f 497/893 418/892 419/894 -f 498/895 419/894 420/896 -f 499/897 420/896 421/898 -f 500/899 421/898 501/900 -f 501/900 422/901 502/902 -f 502/902 423/903 424/904 -f 503/905 424/904 425/906 -f 504/907 425/906 505/908 -f 505/908 426/909 427/910 -f 506/911 427/910 428/912 -f 507/913 428/912 429/914 -f 508/915 429/914 509/916 -f 509/916 430/917 431/918 -f 511/919 432/920 417/891 -f 510/921 431/922 432/920 -f 417/891 433/923 418/892 -f 418/892 434/924 419/894 -f 419/894 435/925 420/896 -f 420/896 436/926 437/927 -f 421/898 437/927 438/928 -f 422/901 438/928 439/929 -f 423/903 439/929 424/904 -f 424/904 440/930 425/906 -f 425/906 441/931 442/932 -f 426/909 442/932 443/933 -f 427/910 443/933 444/934 -f 428/912 444/934 445/935 -f 429/914 445/935 446/936 -f 430/917 446/936 447/937 -f 432/920 448/938 433/923 -f 431/922 447/939 448/938 -f 433/940 449/854 450/856 -f 434/941 450/856 451/858 -f 435/942 451/858 436/943 -f 436/943 452/861 437/944 -f 437/944 453/863 454/864 -f 438/945 454/864 439/946 -f 439/946 455/866 456/868 -f 440/947 456/868 457/871 -f 441/948 457/871 458/872 -f 442/949 458/872 459/874 -f 443/950 459/874 460/877 -f 444/951 460/877 445/952 -f 445/952 461/879 462/881 -f 446/953 462/881 463/954 -f 448/955 464/886 449/854 -f 447/956 463/888 464/886 -f 385/957 480/958 465/959 -f 387/960 465/959 466/961 -f 389/962 466/961 391/963 -f 391/963 467/964 468/965 -f 393/966 468/965 469/967 -f 395/968 469/967 470/969 -f 397/970 470/969 471/971 -f 399/972 471/971 472/973 -f 401/974 472/973 473/975 -f 403/976 473/975 474/977 -f 405/978 474/977 475/979 -f 407/980 475/979 476/981 -f 409/982 476/981 411/983 -f 411/983 477/984 413/985 -f 415/986 479/987 385/957 -f 413/988 478/989 415/986 -f 465/959 481/990 482/991 -f 466/961 482/991 467/964 -f 467/964 483/992 484/993 -f 468/965 484/993 469/967 -f 469/967 485/994 486/995 -f 470/969 486/995 487/996 -f 471/971 487/996 488/997 -f 472/973 488/997 489/998 -f 473/975 489/998 474/977 -f 474/977 490/999 491/1000 -f 475/979 491/1000 476/981 -f 476/981 492/1001 477/984 -f 477/984 493/1002 494/1003 -f 479/987 495/1004 480/958 -f 478/989 494/1005 479/987 -f 496/1006 512/890 497/893 -f 481/990 497/893 498/895 -f 482/991 498/895 483/992 -f 483/992 499/897 484/993 -f 484/993 500/899 501/900 -f 485/994 501/900 502/902 -f 486/995 502/902 503/905 -f 487/996 503/905 504/907 -f 488/997 504/907 505/908 -f 489/998 505/908 490/999 -f 490/999 506/911 507/913 -f 491/1000 507/913 508/915 -f 492/1001 508/915 509/916 -f 493/1002 509/916 494/1003 -f 495/1004 511/919 496/1006 -f 494/1005 510/921 495/1004 -f 480/958 496/1006 465/959 -f 66/388 65/385 4/387 -f 67/390 66/388 6/389 -f 68/392 67/390 8/391 -f 69/394 68/392 10/393 -f 33/425 34/427 113/426 -f 72/400 71/397 16/399 -f 73/402 72/400 18/401 -f 74/404 73/402 20/403 -f 75/406 74/404 22/405 -f 76/408 75/406 24/407 -f 77/410 76/408 26/409 -f 50/458 51/459 35/429 -f 79/488 78/411 30/413 -f 65/385 80/417 2/386 -f 188/624 189/625 173/604 -f 511/919 512/890 496/1006 -f 140/551 142/554 199/553 -f 115/431 114/428 36/430 -f 116/433 115/431 37/432 -f 394/862 396/865 454/864 -f 38/435 39/437 118/436 -f 119/439 118/436 40/438 -f 120/441 119/439 41/440 -f 416/887 386/855 449/854 -f 291/740 292/743 371/742 -f 123/447 122/444 44/446 -f 124/449 123/447 45/448 -f 253/606 254/1007 238/693 -f 126/1008 125/450 47/452 -f 128/424 127/453 33/425 -f 127/453 126/455 48/454 -f 274/713 276/716 330/715 -f 37/432 38/435 117/434 -f 36/430 35/429 52/460 -f 37/432 36/430 53/461 -f 38/435 37/432 54/462 -f 39/437 38/435 55/463 -f 40/438 39/437 56/464 -f 41/440 40/438 57/465 -f 42/443 41/440 58/466 -f 43/445 42/443 59/467 -f 44/446 43/445 60/468 -f 45/448 44/446 61/469 -f 46/451 45/448 62/470 -f 47/452 46/451 63/471 -f 452/861 453/863 437/944 -f 48/454 47/456 64/472 -f 182/618 183/619 167/593 -f 451/858 452/861 436/943 -f 52/477 51/476 68/392 -f 53/478 52/477 69/394 -f 54/479 53/478 70/395 -f 55/480 54/479 71/397 -f 56/481 55/480 72/400 -f 57/482 56/481 73/402 -f 58/483 57/482 74/404 -f 59/484 58/483 75/406 -f 60/485 59/484 76/408 -f 61/486 60/485 77/410 -f 34/427 35/429 114/428 -f 63/1009 62/487 79/488 -f 49/474 64/489 65/385 -f 3/494 1/491 81/493 -f 5/496 3/494 82/495 -f 167/593 168/595 247/594 -f 9/500 7/497 84/499 -f 11/502 9/500 85/501 -f 13/504 11/502 86/503 -f 15/506 13/504 87/505 -f 17/508 15/506 88/507 -f 19/510 17/508 89/509 -f 21/512 19/510 90/511 -f 23/514 21/512 91/513 -f 25/516 23/514 92/515 -f 92/515 93/518 27/517 -f 93/518 94/1010 29/519 -f 95/521 96/492 1/491 -f 94/523 95/521 31/520 -f 83/498 82/495 99/526 -f 84/499 83/498 100/527 -f 85/501 84/499 101/528 -f 86/503 85/501 102/529 -f 87/505 86/503 103/530 -f 88/507 87/505 104/531 -f 89/509 88/507 105/532 -f 466/961 467/964 391/963 -f 91/513 90/511 107/534 -f 93/518 92/515 109/536 -f 94/1010 93/518 110/537 -f 96/492 95/521 112/539 -f 95/521 94/523 111/538 -f 97/524 112/539 113/426 -f 98/525 97/524 114/428 -f 99/526 98/525 115/431 -f 100/527 99/526 116/433 -f 212/655 213/658 139/657 -f 102/529 101/528 118/436 -f 103/530 102/529 119/439 -f 104/531 103/530 120/441 -f 353/836 354/837 338/807 -f 106/533 105/532 122/444 -f 499/897 500/899 484/993 -f 109/536 108/535 125/450 -f 244/589 245/591 229/684 -f 125/450 126/1008 110/537 -f 194/544 193/541 132/543 -f 318/782 319/1011 303/783 -f 196/548 195/545 136/547 -f 197/550 196/548 138/549 -f 198/552 197/550 140/551 -f 435/925 436/926 420/896 -f 200/556 199/553 144/555 -f 201/558 200/556 146/557 -f 202/560 201/558 148/559 -f 203/562 202/560 150/561 -f 204/564 203/562 152/563 -f 82/495 83/498 7/497 -f 206/568 205/565 156/567 -f 207/1012 206/568 158/569 -f 193/541 208/573 130/542 -f 208/573 207/575 160/574 -f 241/583 256/580 162/582 -f 242/585 241/583 163/584 -f 243/587 242/585 164/586 -f 244/589 243/587 165/588 -f 245/591 244/589 166/590 -f 166/590 167/593 246/592 -f 187/623 188/624 172/602 -f 248/597 247/594 169/596 -f 226/681 227/682 211/654 -f 250/601 249/598 171/600 -f 251/603 250/601 172/602 -f 252/605 251/603 173/604 -f 404/873 406/875 459/874 -f 254/1007 253/606 175/608 -f 255/609 254/611 176/610 -f 206/568 207/1012 191/644 -f 165/588 164/586 181/617 -f 166/590 165/588 182/618 -f 312/776 313/777 297/752 -f 168/595 167/593 184/620 -f 169/596 168/595 185/621 -f 170/599 169/596 186/622 -f 171/600 170/599 187/623 -f 386/855 388/857 450/856 -f 388/857 390/859 451/858 -f 97/524 98/525 82/495 -f 175/608 174/607 191/627 -f 161/581 176/610 177/613 -f 176/610 175/612 192/628 -f 178/631 177/630 194/544 -f 179/632 178/631 195/545 -f 180/633 179/632 196/548 -f 181/634 180/633 197/550 -f 182/635 181/634 198/552 -f 183/636 182/635 199/553 -f 184/637 183/636 200/556 -f 185/638 184/637 201/558 -f 186/639 185/638 202/560 -f 187/640 186/639 203/562 -f 188/641 187/640 204/564 -f 189/642 188/641 205/565 -f 190/643 189/642 206/568 -f 77/410 78/411 62/487 -f 177/630 192/645 193/541 -f 192/645 191/646 208/573 -f 131/650 129/647 209/649 -f 331/718 332/719 316/797 -f 421/898 422/901 501/900 -f 137/656 135/653 212/655 -f 429/914 430/917 509/916 -f 141/660 139/657 214/659 -f 143/662 141/660 215/661 -f 145/664 143/662 216/663 -f 147/666 145/664 217/665 -f 149/668 147/666 218/667 -f 151/670 149/668 219/669 -f 153/672 151/670 220/671 -f 220/671 221/674 155/673 -f 221/674 222/1013 157/675 -f 223/677 224/648 129/647 -f 222/679 223/677 159/676 -f 112/539 97/524 81/493 -f 212/655 211/654 228/683 -f 213/658 212/655 229/684 -f 214/659 213/658 230/685 -f 215/661 214/659 231/686 -f 216/663 215/661 232/687 -f 217/665 216/663 233/688 -f 218/667 217/665 234/689 -f 219/669 218/667 235/690 -f 220/671 219/669 236/691 -f 221/674 220/671 237/692 -f 222/1013 221/674 238/693 -f 224/648 223/677 240/695 -f 223/677 222/679 239/694 -f 225/680 240/695 241/583 -f 227/682 226/681 243/587 -f 228/683 227/682 244/589 -f 66/388 67/390 51/476 -f 230/685 229/684 246/592 -f 231/686 230/685 247/594 -f 478/989 479/987 415/986 -f 233/688 232/687 249/598 -f 234/689 233/688 250/601 -f 240/695 225/680 209/649 -f 236/691 235/690 252/605 -f 237/692 236/691 253/606 -f 240/695 239/694 256/580 -f 239/694 238/696 255/609 -f 105/532 106/533 90/511 -f 322/700 321/697 260/699 -f 323/702 322/700 262/701 -f 324/704 323/702 264/703 -f 325/706 324/704 266/705 -f 326/708 325/706 268/707 -f 328/712 327/709 272/711 -f 329/714 328/712 274/713 -f 4/1014 2/1015 694/1016 -f 331/718 330/715 278/717 -f 126/455 127/453 111/538 -f 333/722 332/719 282/721 -f 334/724 333/722 284/723 -f 335/1017 334/724 286/725 -f 317/781 318/782 302/762 -f 336/729 335/731 288/730 -f 369/739 384/736 290/738 -f 370/741 369/739 291/740 -f 132/543 134/546 195/545 -f 372/745 371/742 293/744 -f 373/747 372/745 294/746 -f 294/746 295/749 374/748 -f 440/930 441/931 425/906 -f 376/753 375/750 297/752 -f 377/755 376/753 298/754 -f 378/757 377/755 299/756 -f 379/759 378/757 300/758 -f 380/761 379/759 301/760 -f 381/763 380/761 302/762 -f 64/472 49/457 33/425 -f 302/762 303/783 382/764 -f 178/614 179/615 163/584 -f 209/649 210/652 133/651 -f 10/393 12/396 70/395 -f 292/743 291/740 308/772 -f 293/744 292/743 309/773 -f 294/746 293/744 310/774 -f 295/749 294/746 311/775 -f 296/751 295/749 312/776 -f 460/877 461/879 445/952 -f 298/754 297/752 314/778 -f 299/756 298/754 315/779 -f 300/758 299/756 316/780 -f 301/760 300/758 317/781 -f 295/749 296/751 375/750 -f 304/766 289/737 384/736 -f 289/737 304/766 305/769 -f 45/448 46/451 125/450 -f 307/788 306/787 323/702 -f 308/789 307/788 324/704 -f 309/790 308/789 325/706 -f 310/791 309/790 326/708 -f 311/792 310/791 327/709 -f 312/793 311/792 328/712 -f 313/794 312/793 329/714 -f 314/795 313/794 330/715 -f 315/796 314/795 331/718 -f 30/420 32/418 80/417 -f 317/798 316/797 333/722 -f 318/799 317/798 334/724 -f 176/610 161/581 256/580 -f 305/786 320/801 321/697 -f 320/801 319/802 336/729 -f 259/806 257/803 337/805 -f 261/808 259/806 338/807 -f 265/812 263/809 340/811 -f 179/615 180/616 164/586 -f 269/816 267/813 342/815 -f 271/818 269/816 343/817 -f 273/820 271/818 344/819 -f 275/822 273/820 345/821 -f 277/824 275/822 346/823 -f 279/826 277/824 347/825 -f 281/828 279/826 348/827 -f 348/827 349/830 283/829 -f 349/830 350/849 285/831 -f 351/833 352/804 257/803 -f 350/835 351/833 287/832 -f 338/807 339/810 263/809 -f 340/811 339/810 356/839 -f 341/814 340/811 357/840 -f 343/817 342/815 359/842 -f 344/819 343/817 360/843 -f 345/821 344/819 361/844 -f 247/594 248/597 232/687 -f 225/680 226/681 210/652 -f 348/827 347/825 364/847 -f 349/830 348/827 365/848 -f 352/804 351/833 368/851 -f 351/833 350/835 367/850 -f 353/836 368/851 369/739 -f 354/837 353/836 370/741 -f 355/838 354/837 371/742 -f 356/839 355/838 372/745 -f 357/840 356/839 373/747 -f 358/841 357/840 374/748 -f 359/842 358/841 375/750 -f 360/843 359/842 376/753 -f 361/844 360/843 377/755 -f 362/845 361/844 378/757 -f 363/846 362/845 379/759 -f 364/847 363/846 380/761 -f 365/848 364/847 381/763 -f 177/613 178/614 162/582 -f 368/851 367/850 384/736 -f 367/850 366/852 383/765 -f 268/707 270/710 327/709 -f 422/901 423/903 502/902 -f 402/870 404/873 458/872 -f 452/861 451/858 392/860 -f 453/863 452/861 394/862 -f 288/730 258/698 321/697 -f 189/625 190/626 174/607 -f 457/871 456/868 402/870 -f 49/457 50/458 34/427 -f 26/409 28/412 78/411 -f 460/877 459/874 408/876 -f 461/879 460/877 410/878 -f 462/881 461/879 412/880 -f 463/954 462/881 414/882 -f 116/433 117/434 101/528 -f 464/886 463/888 416/887 -f 497/893 512/890 418/892 -f 498/895 497/893 419/894 -f 499/897 498/895 420/896 -f 500/899 499/897 421/898 -f 398/867 400/869 456/868 -f 210/652 211/654 135/653 -f 503/905 502/902 424/904 -f 504/907 503/905 425/906 -f 120/441 121/442 105/532 -f 506/911 505/908 427/910 -f 507/913 506/911 428/912 -f 508/915 507/913 429/914 -f 454/864 455/866 439/946 -f 510/1018 509/916 431/918 -f 512/890 511/919 417/891 -f 511/919 510/921 432/920 -f 127/453 128/424 112/539 -f 303/768 304/766 383/765 -f 65/385 66/388 50/475 -f 421/898 420/896 437/927 -f 422/901 421/898 438/928 -f 423/903 422/901 439/929 -f 510/921 511/919 495/1004 -f 42/443 43/445 122/444 -f 426/909 425/906 442/932 -f 427/910 426/909 443/933 -f 428/912 427/910 444/934 -f 429/914 428/912 445/935 -f 430/917 429/914 446/936 -f 431/918 430/917 447/937 -f 417/891 432/920 433/923 -f 432/920 431/922 448/938 -f 434/941 433/940 450/856 -f 435/942 434/941 451/858 -f 241/583 242/585 226/681 -f 434/924 435/925 419/894 -f 438/945 437/944 454/864 -f 433/923 434/924 418/892 -f 440/947 439/946 456/868 -f 441/948 440/947 457/871 -f 442/949 441/948 458/872 -f 443/950 442/949 459/874 -f 444/951 443/950 460/877 -f 305/769 306/770 290/738 -f 446/953 445/952 462/881 -f 447/1019 446/953 463/954 -f 433/940 448/955 449/854 -f 448/955 447/956 464/886 -f 387/960 385/957 465/959 -f 389/962 387/960 466/961 -f 123/447 124/449 108/535 -f 393/966 391/963 468/965 -f 395/968 393/966 469/967 -f 397/970 395/968 470/969 -f 399/972 397/970 471/971 -f 401/974 399/972 472/973 -f 403/976 401/974 473/975 -f 405/978 403/976 474/977 -f 407/980 405/978 475/979 -f 409/982 407/980 476/981 -f 476/981 477/984 411/983 -f 477/984 478/1020 413/985 -f 479/987 480/958 385/957 -f 484/993 485/994 469/967 -f 466/961 465/959 482/991 -f 361/844 362/845 346/823 -f 468/965 467/964 484/993 -f 122/444 123/447 107/534 -f 470/969 469/967 486/995 -f 471/971 470/969 487/996 -f 472/973 471/971 488/997 -f 473/975 472/973 489/998 -f 107/534 108/535 92/515 -f 475/979 474/977 491/1000 -f 505/908 506/911 490/999 -f 250/601 251/603 235/690 -f 478/1020 477/984 494/1003 -f 365/848 366/853 350/849 -f 482/991 483/992 467/964 -f 481/990 496/1006 497/893 -f 482/991 481/990 498/895 -f 278/717 280/720 332/719 -f 485/994 484/993 501/900 -f 486/995 485/994 502/902 -f 487/996 486/995 503/905 -f 488/997 487/996 504/907 -f 489/998 488/997 505/908 -f 498/895 499/897 483/992 -f 491/1000 490/999 507/913 -f 492/1001 491/1000 508/915 -f 493/1002 492/1001 509/916 -f 494/1005 495/1004 479/987 -f 368/851 353/836 337/805 -f 509/916 510/1018 494/1003 -f 439/929 440/930 424/904 -f 491/1000 492/1001 476/981 -f 489/998 490/999 474/977 -f 496/1006 481/990 465/959 -f 362/845 363/846 347/825 -f 321/697 322/700 306/787 -f 152/563 154/566 205/565 -f 12/396 14/398 71/397 -f 495/1004 496/1006 480/958 -f 340/811 341/814 267/813 -f 492/1001 493/1002 477/984 -f 169/596 170/599 249/598 -f 319/785 320/784 304/766 -f 396/865 398/867 455/866 -f 334/724 335/1017 319/800 -f 425/906 426/909 505/908 -f 306/770 307/771 291/740 -f 354/837 355/838 339/810 -f 381/763 382/764 366/853 -f 357/840 358/841 342/815 -f 79/419 80/417 64/489 -f 41/440 42/443 121/442 -f 173/604 174/607 253/606 -f 2/1015 32/1021 694/1016 -f 32/1021 30/1022 694/1016 -f 30/1022 28/1023 694/1016 -f 28/1023 26/1024 694/1016 -f 26/1024 24/1025 694/1016 -f 24/1025 22/1026 694/1016 -f 22/1026 20/1027 694/1016 -f 20/1027 18/1028 694/1016 -f 18/1028 16/1029 694/1016 -f 16/1029 14/1030 694/1016 -f 14/1030 12/1031 694/1016 -f 12/1031 10/1032 694/1016 -f 10/1032 8/1033 694/1016 -f 8/1033 6/1034 694/1016 -f 6/1034 4/1014 694/1016 -f 3/415 5/1035 695/416 -f 5/1035 7/1036 695/416 -f 7/1036 9/1037 695/416 -f 9/1037 11/1038 695/416 -f 11/1038 13/1039 695/416 -f 13/1039 15/1040 695/416 -f 15/1040 17/1041 695/416 -f 17/1041 19/1042 695/416 -f 19/1042 21/1043 695/416 -f 21/1043 23/1044 695/416 -f 23/1044 25/1045 695/416 -f 25/1045 27/1046 695/416 -f 27/1046 29/1047 695/416 -f 29/1047 31/1048 695/416 -f 31/1048 1/414 695/416 -f 130/422 160/1049 696/423 -f 160/1049 158/1050 696/423 -f 158/1050 156/1051 696/423 -f 156/1051 154/1052 696/423 -f 154/1052 152/1053 696/423 -f 152/1053 150/1054 696/423 -f 150/1054 148/1055 696/423 -f 148/1055 146/1056 696/423 -f 146/1056 144/1057 696/423 -f 144/1057 142/1058 696/423 -f 142/1058 140/1059 696/423 -f 140/1059 138/1060 696/423 -f 138/1060 136/1061 696/423 -f 136/1061 134/1062 696/423 -f 134/1062 132/421 696/423 -f 131/571 133/1063 697/572 -f 133/1063 135/1064 697/572 -f 135/1064 137/1065 697/572 -f 137/1065 139/1066 697/572 -f 139/1066 141/1067 697/572 -f 141/1067 143/1068 697/572 -f 143/1068 145/1069 697/572 -f 145/1069 147/1070 697/572 -f 147/1070 149/1071 697/572 -f 149/1071 151/1072 697/572 -f 151/1072 153/1073 697/572 -f 153/1073 155/1074 697/572 -f 155/1074 157/1075 697/572 -f 157/1075 159/1076 697/572 -f 159/1076 129/570 697/572 -f 258/578 288/1077 698/579 -f 288/1077 286/1078 698/579 -f 286/1078 284/1079 698/579 -f 284/1079 282/1080 698/579 -f 282/1080 280/1081 698/579 -f 280/1081 278/1082 698/579 -f 278/1082 276/1083 698/579 -f 276/1083 274/1084 698/579 -f 274/1084 272/1085 698/579 -f 272/1085 270/1086 698/579 -f 270/1086 268/1087 698/579 -f 268/1087 266/1088 698/579 -f 266/1088 264/1089 698/579 -f 264/1089 262/1090 698/579 -f 262/1090 260/577 698/579 -f 259/727 261/1091 699/728 -f 261/1091 263/1092 699/728 -f 263/1092 265/1093 699/728 -f 265/1093 267/1094 699/728 -f 267/1094 269/1095 699/728 -f 269/1095 271/1096 699/728 -f 271/1096 273/1097 699/728 -f 273/1097 275/1098 699/728 -f 275/1098 277/1099 699/728 -f 277/1099 279/1100 699/728 -f 279/1100 281/1101 699/728 -f 281/1101 283/1102 699/728 -f 283/1102 285/1103 699/728 -f 285/1103 287/1104 699/728 -f 287/1104 257/726 699/728 -f 386/734 416/1105 700/735 -f 416/1105 414/1106 700/735 -f 414/1106 412/1107 700/735 -f 412/1107 410/1108 700/735 -f 410/1108 408/1109 700/735 -f 408/1109 406/1110 700/735 -f 406/1110 404/1111 700/735 -f 404/1111 402/1112 700/735 -f 402/1112 400/1113 700/735 -f 400/1113 398/1114 700/735 -f 398/1114 396/1115 700/735 -f 396/1115 394/1116 700/735 -f 394/1116 392/1117 700/735 -f 392/1117 390/1118 700/735 -f 390/1118 388/733 700/735 -f 387/884 389/1119 701/885 -f 389/1119 391/1120 701/885 -f 391/1120 393/1121 701/885 -f 393/1121 395/1122 701/885 -f 395/1122 397/1123 701/885 -f 397/1123 399/1124 701/885 -f 399/1124 401/1125 701/885 -f 401/1125 403/1126 701/885 -f 403/1126 405/1127 701/885 -f 405/1127 407/1128 701/885 -f 407/1128 409/1129 701/885 -f 409/1129 411/1130 701/885 -f 411/1130 413/1131 701/885 -f 413/1131 415/1132 701/885 -f 415/1132 385/883 701/885 -f 766/385 703/386 705/387 -f 767/388 705/387 707/389 -f 768/390 707/389 709/391 -f 769/392 709/391 711/393 -f 770/394 711/393 771/395 -f 771/395 713/396 772/397 -f 772/397 715/398 717/399 -f 773/400 717/399 719/401 -f 774/402 719/401 721/403 -f 775/404 721/403 723/405 -f 776/406 723/405 725/407 -f 777/408 725/407 727/409 -f 778/410 727/409 779/411 -f 779/411 729/412 731/413 -f 702/414 704/415 1396/416 -f 781/417 733/418 703/386 -f 780/419 731/420 781/417 -f 833/421 831/422 1397/423 -f 829/424 734/425 814/426 -f 814/426 735/427 815/428 -f 815/428 736/429 737/430 -f 816/431 737/430 738/432 -f 817/433 738/432 818/434 -f 818/434 739/435 819/436 -f 819/436 740/437 741/438 -f 820/439 741/438 742/440 -f 821/441 742/440 822/442 -f 822/442 743/443 823/444 -f 823/444 744/445 745/446 -f 824/447 745/446 746/448 -f 825/449 746/448 826/450 -f 826/450 747/451 748/452 -f 828/453 749/454 734/425 -f 827/455 748/456 749/454 -f 734/425 750/457 735/427 -f 735/427 751/458 736/429 -f 736/429 752/459 753/460 -f 737/430 753/460 754/461 -f 738/432 754/461 755/462 -f 739/435 755/462 756/463 -f 740/437 756/463 757/464 -f 741/438 757/464 758/465 -f 742/440 758/465 759/466 -f 743/443 759/466 760/467 -f 744/445 760/467 761/468 -f 745/446 761/468 762/469 -f 746/448 762/469 763/470 -f 747/451 763/470 764/471 -f 749/454 765/472 734/425 -f 748/456 764/473 765/472 -f 750/474 766/385 751/475 -f 751/475 767/388 752/476 -f 752/476 768/390 769/392 -f 753/477 769/392 770/394 -f 754/478 770/394 771/395 -f 755/479 771/395 772/397 -f 756/480 772/397 773/400 -f 757/481 773/400 774/402 -f 758/482 774/402 775/404 -f 759/483 775/404 776/406 -f 760/484 776/406 777/408 -f 761/485 777/408 778/410 -f 762/486 778/410 763/487 -f 763/487 779/411 780/488 -f 765/489 781/417 766/385 -f 764/490 780/419 765/489 -f 702/491 797/492 782/493 -f 704/494 782/493 783/495 -f 706/496 783/495 708/497 -f 708/497 784/498 785/499 -f 710/500 785/499 786/501 -f 712/502 786/501 787/503 -f 714/504 787/503 788/505 -f 716/506 788/505 789/507 -f 718/508 789/507 790/509 -f 720/510 790/509 791/511 -f 722/512 791/511 792/513 -f 724/514 792/513 793/515 -f 726/516 793/515 728/517 -f 728/517 794/518 730/519 -f 732/520 796/521 702/491 -f 730/522 795/523 732/520 -f 782/493 798/524 783/495 -f 783/495 799/525 800/526 -f 784/498 800/526 801/527 -f 785/499 801/527 802/528 -f 786/501 802/528 803/529 -f 787/503 803/529 804/530 -f 788/505 804/530 805/531 -f 789/507 805/531 806/532 -f 790/509 806/532 791/511 -f 791/511 807/533 808/534 -f 792/513 808/534 793/515 -f 793/515 809/535 810/536 -f 794/518 810/536 811/537 -f 796/521 812/538 813/539 -f 795/523 811/540 812/538 -f 813/539 829/424 814/426 -f 798/524 814/426 815/428 -f 799/525 815/428 816/431 -f 800/526 816/431 817/433 -f 801/527 817/433 802/528 -f 802/528 818/434 819/436 -f 803/529 819/436 820/439 -f 804/530 820/439 821/441 -f 805/531 821/441 806/532 -f 806/532 822/442 823/444 -f 807/533 823/444 808/534 -f 808/534 824/447 809/535 -f 809/535 825/449 826/450 -f 810/536 826/450 811/537 -f 812/538 828/453 813/539 -f 811/540 827/455 812/538 -f 797/492 813/539 782/493 -f 894/541 831/542 833/543 -f 895/544 833/543 896/545 -f 896/545 835/546 837/547 -f 897/548 837/547 839/549 -f 898/550 839/549 841/551 -f 899/552 841/551 900/553 -f 900/553 843/554 845/555 -f 901/556 845/555 847/557 -f 902/558 847/557 849/559 -f 903/560 849/559 851/561 -f 904/562 851/561 853/563 -f 905/564 853/563 906/565 -f 906/565 855/566 857/567 -f 907/568 857/567 859/569 -f 830/570 832/571 1398/572 -f 909/573 861/574 831/542 -f 908/575 859/576 861/574 -f 961/577 959/578 1399/579 -f 957/580 862/581 863/582 -f 942/583 863/582 864/584 -f 943/585 864/584 865/586 -f 944/587 865/586 866/588 -f 945/589 866/588 867/590 -f 946/591 867/590 947/592 -f 947/592 868/593 948/594 -f 948/594 869/595 870/596 -f 949/597 870/596 950/598 -f 950/598 871/599 872/600 -f 951/601 872/600 873/602 -f 952/603 873/602 874/604 -f 953/605 874/604 954/606 -f 954/606 875/607 876/608 -f 956/609 877/610 957/580 -f 955/611 876/612 877/610 -f 862/581 878/613 863/582 -f 863/582 879/614 864/584 -f 864/584 880/615 865/586 -f 865/586 881/616 882/617 -f 866/588 882/617 883/618 -f 867/590 883/618 868/593 -f 868/593 884/619 885/620 -f 869/595 885/620 886/621 -f 870/596 886/621 887/622 -f 871/599 887/622 888/623 -f 872/600 888/623 873/602 -f 873/602 889/624 874/604 -f 874/604 890/625 875/607 -f 875/607 891/626 892/627 -f 877/610 893/628 878/613 -f 876/612 892/629 893/628 -f 878/630 894/541 895/544 -f 879/631 895/544 896/545 -f 880/632 896/545 897/548 -f 881/633 897/548 898/550 -f 882/634 898/550 899/552 -f 883/635 899/552 900/553 -f 884/636 900/553 901/556 -f 885/637 901/556 902/558 -f 886/638 902/558 903/560 -f 887/639 903/560 904/562 -f 888/640 904/562 905/564 -f 889/641 905/564 906/565 -f 890/642 906/565 907/568 -f 891/643 907/568 892/644 -f 893/645 909/573 894/541 -f 892/646 908/575 909/573 -f 830/647 925/648 910/649 -f 832/650 910/649 834/651 -f 834/651 911/652 836/653 -f 836/653 912/654 913/655 -f 838/656 913/655 840/657 -f 840/657 914/658 915/659 -f 842/660 915/659 916/661 -f 844/662 916/661 917/663 -f 846/664 917/663 918/665 -f 848/666 918/665 919/667 -f 850/668 919/667 920/669 -f 852/670 920/669 921/671 -f 854/672 921/671 856/673 -f 856/673 922/674 858/675 -f 860/676 924/677 830/647 -f 858/678 923/679 860/676 -f 910/649 926/680 911/652 -f 911/652 927/681 912/654 -f 912/654 928/682 929/683 -f 913/655 929/683 930/684 -f 914/658 930/684 931/685 -f 915/659 931/685 932/686 -f 916/661 932/686 933/687 -f 917/663 933/687 934/688 -f 918/665 934/688 935/689 -f 919/667 935/689 936/690 -f 920/669 936/690 937/691 -f 921/671 937/691 938/692 -f 922/674 938/692 939/693 -f 924/677 940/694 941/695 -f 923/679 939/696 940/694 -f 941/695 957/580 942/583 -f 926/680 942/583 927/681 -f 927/681 943/585 944/587 -f 928/682 944/587 945/589 -f 929/683 945/589 930/684 -f 930/684 946/591 947/592 -f 931/685 947/592 948/594 -f 932/686 948/594 933/687 -f 933/687 949/597 950/598 -f 934/688 950/598 951/601 -f 935/689 951/601 936/690 -f 936/690 952/603 953/605 -f 937/691 953/605 954/606 -f 938/692 954/606 939/693 -f 940/694 956/609 957/580 -f 939/696 955/611 956/609 -f 925/648 941/695 910/649 -f 1022/697 959/698 961/699 -f 1023/700 961/699 963/701 -f 1024/702 963/701 965/703 -f 1025/704 965/703 967/705 -f 1026/706 967/705 969/707 -f 1027/708 969/707 1028/709 -f 1028/709 971/710 973/711 -f 1029/712 973/711 975/713 -f 1030/714 975/713 1031/715 -f 1031/715 977/716 979/717 -f 1032/718 979/717 1033/719 -f 1033/719 981/720 983/721 -f 1034/722 983/721 985/723 -f 1035/724 985/723 987/725 -f 958/726 960/727 1400/728 -f 1037/729 989/730 1022/697 -f 1036/731 987/732 989/730 -f 1089/733 1087/734 1401/735 -f 1085/736 990/737 991/738 -f 1070/739 991/738 992/740 -f 1071/741 992/740 1072/742 -f 1072/742 993/743 994/744 -f 1073/745 994/744 995/746 -f 1074/747 995/746 1075/748 -f 1075/748 996/749 1076/750 -f 1076/750 997/751 998/752 -f 1077/753 998/752 999/754 -f 1078/755 999/754 1000/756 -f 1079/757 1000/756 1001/758 -f 1080/759 1001/758 1002/760 -f 1081/761 1002/760 1003/762 -f 1082/763 1003/762 1083/764 -f 1084/765 1005/766 1085/736 -f 1083/767 1004/768 1084/765 -f 990/737 1006/769 991/738 -f 991/738 1007/770 992/740 -f 992/740 1008/771 1009/772 -f 993/743 1009/772 1010/773 -f 994/744 1010/773 1011/774 -f 995/746 1011/774 1012/775 -f 996/749 1012/775 1013/776 -f 997/751 1013/776 998/752 -f 998/752 1014/777 1015/778 -f 999/754 1015/778 1016/779 -f 1000/756 1016/779 1017/780 -f 1001/758 1017/780 1018/781 -f 1002/760 1018/781 1003/762 -f 1003/762 1019/782 1004/783 -f 1005/766 1021/784 1006/769 -f 1004/768 1020/785 1005/766 -f 1006/786 1022/697 1007/787 -f 1007/787 1023/700 1024/702 -f 1008/788 1024/702 1025/704 -f 1009/789 1025/704 1026/706 -f 1010/790 1026/706 1027/708 -f 1011/791 1027/708 1028/709 -f 1012/792 1028/709 1029/712 -f 1013/793 1029/712 1030/714 -f 1014/794 1030/714 1031/715 -f 1015/795 1031/715 1032/718 -f 1016/796 1032/718 1017/797 -f 1017/797 1033/719 1034/722 -f 1018/798 1034/722 1035/724 -f 1019/799 1035/724 1020/800 -f 1021/801 1037/729 1022/697 -f 1020/802 1036/731 1037/729 -f 958/803 1053/804 1038/805 -f 960/806 1038/805 1039/807 -f 962/808 1039/807 964/809 -f 964/809 1040/810 1041/811 -f 966/812 1041/811 968/813 -f 968/813 1042/814 1043/815 -f 970/816 1043/815 1044/817 -f 972/818 1044/817 1045/819 -f 974/820 1045/819 1046/821 -f 976/822 1046/821 1047/823 -f 978/824 1047/823 1048/825 -f 980/826 1048/825 1049/827 -f 982/828 1049/827 984/829 -f 984/829 1050/830 986/831 -f 988/832 1052/833 958/803 -f 986/834 1051/835 988/832 -f 1038/805 1054/836 1039/807 -f 1039/807 1055/837 1040/810 -f 1040/810 1056/838 1057/839 -f 1041/811 1057/839 1058/840 -f 1042/814 1058/840 1043/815 -f 1043/815 1059/841 1060/842 -f 1044/817 1060/842 1061/843 -f 1045/819 1061/843 1062/844 -f 1046/821 1062/844 1047/823 -f 1047/823 1063/845 1048/825 -f 1048/825 1064/846 1065/847 -f 1049/827 1065/847 1066/848 -f 1050/830 1066/848 1051/849 -f 1052/833 1068/850 1069/851 -f 1051/835 1067/852 1068/850 -f 1069/851 1085/736 1070/739 -f 1054/836 1070/739 1071/741 -f 1055/837 1071/741 1072/742 -f 1056/838 1072/742 1073/745 -f 1057/839 1073/745 1074/747 -f 1058/840 1074/747 1075/748 -f 1059/841 1075/748 1076/750 -f 1060/842 1076/750 1077/753 -f 1061/843 1077/753 1078/755 -f 1062/844 1078/755 1079/757 -f 1063/845 1079/757 1080/759 -f 1064/846 1080/759 1081/761 -f 1065/847 1081/761 1082/763 -f 1066/848 1082/763 1067/853 -f 1068/850 1084/765 1085/736 -f 1067/852 1083/767 1084/765 -f 1053/804 1069/851 1038/805 -f 1150/854 1087/855 1151/856 -f 1151/856 1089/857 1152/858 -f 1152/858 1091/859 1093/860 -f 1153/861 1093/860 1095/862 -f 1154/863 1095/862 1155/864 -f 1155/864 1097/865 1156/866 -f 1156/866 1099/867 1157/868 -f 1157/868 1101/869 1103/870 -f 1158/871 1103/870 1159/872 -f 1159/872 1105/873 1160/874 -f 1160/874 1107/875 1109/876 -f 1161/877 1109/876 1111/878 -f 1162/879 1111/878 1113/880 -f 1163/881 1113/880 1115/882 -f 1086/883 1088/884 1402/885 -f 1165/886 1117/887 1150/854 -f 1164/888 1115/889 1117/887 -f 1213/890 1118/891 1119/892 -f 1198/893 1119/892 1120/894 -f 1199/895 1120/894 1121/896 -f 1200/897 1121/896 1122/898 -f 1201/899 1122/898 1202/900 -f 1202/900 1123/901 1203/902 -f 1203/902 1124/903 1125/904 -f 1204/905 1125/904 1126/906 -f 1205/907 1126/906 1206/908 -f 1206/908 1127/909 1128/910 -f 1207/911 1128/910 1129/912 -f 1208/913 1129/912 1130/914 -f 1209/915 1130/914 1210/916 -f 1210/916 1131/917 1132/918 -f 1212/919 1133/920 1118/891 -f 1211/921 1132/922 1133/920 -f 1118/891 1134/923 1119/892 -f 1119/892 1135/924 1120/894 -f 1120/894 1136/925 1121/896 -f 1121/896 1137/926 1138/927 -f 1122/898 1138/927 1139/928 -f 1123/901 1139/928 1140/929 -f 1124/903 1140/929 1125/904 -f 1125/904 1141/930 1126/906 -f 1126/906 1142/931 1143/932 -f 1127/909 1143/932 1144/933 -f 1128/910 1144/933 1145/934 -f 1129/912 1145/934 1146/935 -f 1130/914 1146/935 1147/936 -f 1131/917 1147/936 1148/937 -f 1133/920 1149/938 1134/923 -f 1132/922 1148/939 1149/938 -f 1134/940 1150/854 1151/856 -f 1135/941 1151/856 1152/858 -f 1136/942 1152/858 1137/943 -f 1137/943 1153/861 1138/944 -f 1138/944 1154/863 1155/864 -f 1139/945 1155/864 1140/946 -f 1140/946 1156/866 1157/868 -f 1141/947 1157/868 1158/871 -f 1142/948 1158/871 1159/872 -f 1143/949 1159/872 1160/874 -f 1144/950 1160/874 1161/877 -f 1145/951 1161/877 1146/952 -f 1146/952 1162/879 1163/881 -f 1147/953 1163/881 1164/954 -f 1149/955 1165/886 1150/854 -f 1148/956 1164/888 1165/886 -f 1086/957 1181/958 1166/959 -f 1088/960 1166/959 1167/961 -f 1090/962 1167/961 1092/963 -f 1092/963 1168/964 1169/965 -f 1094/966 1169/965 1170/967 -f 1096/968 1170/967 1171/969 -f 1098/970 1171/969 1172/971 -f 1100/972 1172/971 1173/973 -f 1102/974 1173/973 1174/975 -f 1104/976 1174/975 1175/977 -f 1106/978 1175/977 1176/979 -f 1108/980 1176/979 1177/981 -f 1110/982 1177/981 1112/983 -f 1112/983 1178/984 1114/985 -f 1116/986 1180/987 1086/957 -f 1114/988 1179/989 1116/986 -f 1166/959 1182/990 1183/991 -f 1167/961 1183/991 1168/964 -f 1168/964 1184/992 1185/993 -f 1169/965 1185/993 1170/967 -f 1170/967 1186/994 1187/995 -f 1171/969 1187/995 1188/996 -f 1172/971 1188/996 1189/997 -f 1173/973 1189/997 1190/998 -f 1174/975 1190/998 1175/977 -f 1175/977 1191/999 1192/1000 -f 1176/979 1192/1000 1177/981 -f 1177/981 1193/1001 1178/984 -f 1178/984 1194/1002 1195/1003 -f 1180/987 1196/1004 1181/958 -f 1179/989 1195/1005 1180/987 -f 1197/1006 1213/890 1198/893 -f 1182/990 1198/893 1199/895 -f 1183/991 1199/895 1184/992 -f 1184/992 1200/897 1185/993 -f 1185/993 1201/899 1202/900 -f 1186/994 1202/900 1203/902 -f 1187/995 1203/902 1204/905 -f 1188/996 1204/905 1205/907 -f 1189/997 1205/907 1206/908 -f 1190/998 1206/908 1191/999 -f 1191/999 1207/911 1208/913 -f 1192/1000 1208/913 1209/915 -f 1193/1001 1209/915 1210/916 -f 1194/1002 1210/916 1195/1003 -f 1196/1004 1212/919 1197/1006 -f 1195/1005 1211/921 1196/1004 -f 1181/958 1197/1006 1166/959 -f 767/388 766/385 705/387 -f 768/390 767/388 707/389 -f 769/392 768/390 709/391 -f 770/394 769/392 711/393 -f 734/425 735/427 814/426 -f 773/400 772/397 717/399 -f 774/402 773/400 719/401 -f 775/404 774/402 721/403 -f 776/406 775/404 723/405 -f 777/408 776/406 725/407 -f 778/410 777/408 727/409 -f 751/458 752/459 736/429 -f 780/488 779/411 731/413 -f 766/385 781/417 703/386 -f 889/624 890/625 874/604 -f 1212/919 1213/890 1197/1006 -f 841/551 843/554 900/553 -f 816/431 815/428 737/430 -f 817/433 816/431 738/432 -f 1095/862 1097/865 1155/864 -f 739/435 740/437 819/436 -f 820/439 819/436 741/438 -f 821/441 820/439 742/440 -f 1117/887 1087/855 1150/854 -f 992/740 993/743 1072/742 -f 824/447 823/444 745/446 -f 825/449 824/447 746/448 -f 954/606 955/1007 939/693 -f 827/1008 826/450 748/452 -f 829/424 828/453 734/425 -f 828/453 827/455 749/454 -f 975/713 977/716 1031/715 -f 738/432 739/435 818/434 -f 737/430 736/429 753/460 -f 738/432 737/430 754/461 -f 739/435 738/432 755/462 -f 740/437 739/435 756/463 -f 741/438 740/437 757/464 -f 742/440 741/438 758/465 -f 743/443 742/440 759/466 -f 744/445 743/443 760/467 -f 745/446 744/445 761/468 -f 746/448 745/446 762/469 -f 747/451 746/448 763/470 -f 748/452 747/451 764/471 -f 1153/861 1154/863 1138/944 -f 749/454 748/456 765/472 -f 883/618 884/619 868/593 -f 1152/858 1153/861 1137/943 -f 753/477 752/476 769/392 -f 754/478 753/477 770/394 -f 755/479 754/478 771/395 -f 756/480 755/479 772/397 -f 757/481 756/480 773/400 -f 758/482 757/481 774/402 -f 759/483 758/482 775/404 -f 760/484 759/483 776/406 -f 761/485 760/484 777/408 -f 762/486 761/485 778/410 -f 735/427 736/429 815/428 -f 764/1009 763/487 780/488 -f 750/474 765/489 766/385 -f 704/494 702/491 782/493 -f 706/496 704/494 783/495 -f 868/593 869/595 948/594 -f 710/500 708/497 785/499 -f 712/502 710/500 786/501 -f 714/504 712/502 787/503 -f 716/506 714/504 788/505 -f 718/508 716/506 789/507 -f 720/510 718/508 790/509 -f 722/512 720/510 791/511 -f 724/514 722/512 792/513 -f 726/516 724/514 793/515 -f 793/515 794/518 728/517 -f 794/518 795/1010 730/519 -f 796/521 797/492 702/491 -f 795/523 796/521 732/520 -f 784/498 783/495 800/526 -f 785/499 784/498 801/527 -f 786/501 785/499 802/528 -f 787/503 786/501 803/529 -f 788/505 787/503 804/530 -f 789/507 788/505 805/531 -f 790/509 789/507 806/532 -f 1167/961 1168/964 1092/963 -f 792/513 791/511 808/534 -f 794/518 793/515 810/536 -f 795/1010 794/518 811/537 -f 797/492 796/521 813/539 -f 796/521 795/523 812/538 -f 798/524 813/539 814/426 -f 799/525 798/524 815/428 -f 800/526 799/525 816/431 -f 801/527 800/526 817/433 -f 913/655 914/658 840/657 -f 803/529 802/528 819/436 -f 804/530 803/529 820/439 -f 805/531 804/530 821/441 -f 1054/836 1055/837 1039/807 -f 807/533 806/532 823/444 -f 1200/897 1201/899 1185/993 -f 810/536 809/535 826/450 -f 945/589 946/591 930/684 -f 826/450 827/1008 811/537 -f 895/544 894/541 833/543 -f 1019/782 1020/1011 1004/783 -f 897/548 896/545 837/547 -f 898/550 897/548 839/549 -f 899/552 898/550 841/551 -f 1136/925 1137/926 1121/896 -f 901/556 900/553 845/555 -f 902/558 901/556 847/557 -f 903/560 902/558 849/559 -f 904/562 903/560 851/561 -f 905/564 904/562 853/563 -f 783/495 784/498 708/497 -f 907/568 906/565 857/567 -f 908/1012 907/568 859/569 -f 894/541 909/573 831/542 -f 909/573 908/575 861/574 -f 942/583 957/580 863/582 -f 943/585 942/583 864/584 -f 944/587 943/585 865/586 -f 945/589 944/587 866/588 -f 946/591 945/589 867/590 -f 867/590 868/593 947/592 -f 888/623 889/624 873/602 -f 949/597 948/594 870/596 -f 927/681 928/682 912/654 -f 951/601 950/598 872/600 -f 952/603 951/601 873/602 -f 953/605 952/603 874/604 -f 1105/873 1107/875 1160/874 -f 955/1007 954/606 876/608 -f 956/609 955/611 877/610 -f 907/568 908/1012 892/644 -f 866/588 865/586 882/617 -f 867/590 866/588 883/618 -f 1013/776 1014/777 998/752 -f 869/595 868/593 885/620 -f 870/596 869/595 886/621 -f 871/599 870/596 887/622 -f 872/600 871/599 888/623 -f 1087/855 1089/857 1151/856 -f 1089/857 1091/859 1152/858 -f 798/524 799/525 783/495 -f 876/608 875/607 892/627 -f 862/581 877/610 878/613 -f 877/610 876/612 893/628 -f 879/631 878/630 895/544 -f 880/632 879/631 896/545 -f 881/633 880/632 897/548 -f 882/634 881/633 898/550 -f 883/635 882/634 899/552 -f 884/636 883/635 900/553 -f 885/637 884/636 901/556 -f 886/638 885/637 902/558 -f 887/639 886/638 903/560 -f 888/640 887/639 904/562 -f 889/641 888/640 905/564 -f 890/642 889/641 906/565 -f 891/643 890/642 907/568 -f 778/410 779/411 763/487 -f 878/630 893/645 894/541 -f 893/645 892/646 909/573 -f 832/650 830/647 910/649 -f 1032/718 1033/719 1017/797 -f 1122/898 1123/901 1202/900 -f 838/656 836/653 913/655 -f 1130/914 1131/917 1210/916 -f 842/660 840/657 915/659 -f 844/662 842/660 916/661 -f 846/664 844/662 917/663 -f 848/666 846/664 918/665 -f 850/668 848/666 919/667 -f 852/670 850/668 920/669 -f 854/672 852/670 921/671 -f 921/671 922/674 856/673 -f 922/674 923/1013 858/675 -f 924/677 925/648 830/647 -f 923/679 924/677 860/676 -f 813/539 798/524 782/493 -f 913/655 912/654 929/683 -f 914/658 913/655 930/684 -f 915/659 914/658 931/685 -f 916/661 915/659 932/686 -f 917/663 916/661 933/687 -f 918/665 917/663 934/688 -f 919/667 918/665 935/689 -f 920/669 919/667 936/690 -f 921/671 920/669 937/691 -f 922/674 921/671 938/692 -f 923/1013 922/674 939/693 -f 925/648 924/677 941/695 -f 924/677 923/679 940/694 -f 926/680 941/695 942/583 -f 928/682 927/681 944/587 -f 929/683 928/682 945/589 -f 767/388 768/390 752/476 -f 931/685 930/684 947/592 -f 932/686 931/685 948/594 -f 1179/989 1180/987 1116/986 -f 934/688 933/687 950/598 -f 935/689 934/688 951/601 -f 941/695 926/680 910/649 -f 937/691 936/690 953/605 -f 938/692 937/691 954/606 -f 941/695 940/694 957/580 -f 940/694 939/696 956/609 -f 806/532 807/533 791/511 -f 1023/700 1022/697 961/699 -f 1024/702 1023/700 963/701 -f 1025/704 1024/702 965/703 -f 1026/706 1025/704 967/705 -f 1027/708 1026/706 969/707 -f 1029/712 1028/709 973/711 -f 1030/714 1029/712 975/713 -f 705/1014 703/1015 1395/1016 -f 1032/718 1031/715 979/717 -f 827/455 828/453 812/538 -f 1034/722 1033/719 983/721 -f 1035/724 1034/722 985/723 -f 1036/1017 1035/724 987/725 -f 1018/781 1019/782 1003/762 -f 1037/729 1036/731 989/730 -f 1070/739 1085/736 991/738 -f 1071/741 1070/739 992/740 -f 833/543 835/546 896/545 -f 1073/745 1072/742 994/744 -f 1074/747 1073/745 995/746 -f 995/746 996/749 1075/748 -f 1141/930 1142/931 1126/906 -f 1077/753 1076/750 998/752 -f 1078/755 1077/753 999/754 -f 1079/757 1078/755 1000/756 -f 1080/759 1079/757 1001/758 -f 1081/761 1080/759 1002/760 -f 1082/763 1081/761 1003/762 -f 765/472 750/457 734/425 -f 1003/762 1004/783 1083/764 -f 879/614 880/615 864/584 -f 910/649 911/652 834/651 -f 711/393 713/396 771/395 -f 993/743 992/740 1009/772 -f 994/744 993/743 1010/773 -f 995/746 994/744 1011/774 -f 996/749 995/746 1012/775 -f 997/751 996/749 1013/776 -f 1161/877 1162/879 1146/952 -f 999/754 998/752 1015/778 -f 1000/756 999/754 1016/779 -f 1001/758 1000/756 1017/780 -f 1002/760 1001/758 1018/781 -f 996/749 997/751 1076/750 -f 1005/766 990/737 1085/736 -f 990/737 1005/766 1006/769 -f 746/448 747/451 826/450 -f 1008/788 1007/787 1024/702 -f 1009/789 1008/788 1025/704 -f 1010/790 1009/789 1026/706 -f 1011/791 1010/790 1027/708 -f 1012/792 1011/791 1028/709 -f 1013/793 1012/792 1029/712 -f 1014/794 1013/793 1030/714 -f 1015/795 1014/794 1031/715 -f 1016/796 1015/795 1032/718 -f 731/420 733/418 781/417 -f 1018/798 1017/797 1034/722 -f 1019/799 1018/798 1035/724 -f 877/610 862/581 957/580 -f 1006/786 1021/801 1022/697 -f 1021/801 1020/802 1037/729 -f 960/806 958/803 1038/805 -f 962/808 960/806 1039/807 -f 966/812 964/809 1041/811 -f 880/615 881/616 865/586 -f 970/816 968/813 1043/815 -f 972/818 970/816 1044/817 -f 974/820 972/818 1045/819 -f 976/822 974/820 1046/821 -f 978/824 976/822 1047/823 -f 980/826 978/824 1048/825 -f 982/828 980/826 1049/827 -f 1049/827 1050/830 984/829 -f 1050/830 1051/849 986/831 -f 1052/833 1053/804 958/803 -f 1051/835 1052/833 988/832 -f 1039/807 1040/810 964/809 -f 1041/811 1040/810 1057/839 -f 1042/814 1041/811 1058/840 -f 1044/817 1043/815 1060/842 -f 1045/819 1044/817 1061/843 -f 1046/821 1045/819 1062/844 -f 948/594 949/597 933/687 -f 926/680 927/681 911/652 -f 1049/827 1048/825 1065/847 -f 1050/830 1049/827 1066/848 -f 1053/804 1052/833 1069/851 -f 1052/833 1051/835 1068/850 -f 1054/836 1069/851 1070/739 -f 1055/837 1054/836 1071/741 -f 1056/838 1055/837 1072/742 -f 1057/839 1056/838 1073/745 -f 1058/840 1057/839 1074/747 -f 1059/841 1058/840 1075/748 -f 1060/842 1059/841 1076/750 -f 1061/843 1060/842 1077/753 -f 1062/844 1061/843 1078/755 -f 1063/845 1062/844 1079/757 -f 1064/846 1063/845 1080/759 -f 1065/847 1064/846 1081/761 -f 1066/848 1065/847 1082/763 -f 878/613 879/614 863/582 -f 1069/851 1068/850 1085/736 -f 1068/850 1067/852 1084/765 -f 969/707 971/710 1028/709 -f 1123/901 1124/903 1203/902 -f 1103/870 1105/873 1159/872 -f 1153/861 1152/858 1093/860 -f 1154/863 1153/861 1095/862 -f 989/730 959/698 1022/697 -f 890/625 891/626 875/607 -f 1158/871 1157/868 1103/870 -f 750/457 751/458 735/427 -f 727/409 729/412 779/411 -f 1161/877 1160/874 1109/876 -f 1162/879 1161/877 1111/878 -f 1163/881 1162/879 1113/880 -f 1164/954 1163/881 1115/882 -f 817/433 818/434 802/528 -f 1165/886 1164/888 1117/887 -f 1198/893 1213/890 1119/892 -f 1199/895 1198/893 1120/894 -f 1200/897 1199/895 1121/896 -f 1201/899 1200/897 1122/898 -f 1099/867 1101/869 1157/868 -f 911/652 912/654 836/653 -f 1204/905 1203/902 1125/904 -f 1205/907 1204/905 1126/906 -f 821/441 822/442 806/532 -f 1207/911 1206/908 1128/910 -f 1208/913 1207/911 1129/912 -f 1209/915 1208/913 1130/914 -f 1155/864 1156/866 1140/946 -f 1211/1018 1210/916 1132/918 -f 1213/890 1212/919 1118/891 -f 1212/919 1211/921 1133/920 -f 828/453 829/424 813/539 -f 1004/768 1005/766 1084/765 -f 766/385 767/388 751/475 -f 1122/898 1121/896 1138/927 -f 1123/901 1122/898 1139/928 -f 1124/903 1123/901 1140/929 -f 1211/921 1212/919 1196/1004 -f 743/443 744/445 823/444 -f 1127/909 1126/906 1143/932 -f 1128/910 1127/909 1144/933 -f 1129/912 1128/910 1145/934 -f 1130/914 1129/912 1146/935 -f 1131/917 1130/914 1147/936 -f 1132/918 1131/917 1148/937 -f 1118/891 1133/920 1134/923 -f 1133/920 1132/922 1149/938 -f 1135/941 1134/940 1151/856 -f 1136/942 1135/941 1152/858 -f 942/583 943/585 927/681 -f 1135/924 1136/925 1120/894 -f 1139/945 1138/944 1155/864 -f 1134/923 1135/924 1119/892 -f 1141/947 1140/946 1157/868 -f 1142/948 1141/947 1158/871 -f 1143/949 1142/948 1159/872 -f 1144/950 1143/949 1160/874 -f 1145/951 1144/950 1161/877 -f 1006/769 1007/770 991/738 -f 1147/953 1146/952 1163/881 -f 1148/1019 1147/953 1164/954 -f 1134/940 1149/955 1150/854 -f 1149/955 1148/956 1165/886 -f 1088/960 1086/957 1166/959 -f 1090/962 1088/960 1167/961 -f 824/447 825/449 809/535 -f 1094/966 1092/963 1169/965 -f 1096/968 1094/966 1170/967 -f 1098/970 1096/968 1171/969 -f 1100/972 1098/970 1172/971 -f 1102/974 1100/972 1173/973 -f 1104/976 1102/974 1174/975 -f 1106/978 1104/976 1175/977 -f 1108/980 1106/978 1176/979 -f 1110/982 1108/980 1177/981 -f 1177/981 1178/984 1112/983 -f 1178/984 1179/1020 1114/985 -f 1180/987 1181/958 1086/957 -f 1185/993 1186/994 1170/967 -f 1167/961 1166/959 1183/991 -f 1062/844 1063/845 1047/823 -f 1169/965 1168/964 1185/993 -f 823/444 824/447 808/534 -f 1171/969 1170/967 1187/995 -f 1172/971 1171/969 1188/996 -f 1173/973 1172/971 1189/997 -f 1174/975 1173/973 1190/998 -f 808/534 809/535 793/515 -f 1176/979 1175/977 1192/1000 -f 1206/908 1207/911 1191/999 -f 951/601 952/603 936/690 -f 1179/1020 1178/984 1195/1003 -f 1066/848 1067/853 1051/849 -f 1183/991 1184/992 1168/964 -f 1182/990 1197/1006 1198/893 -f 1183/991 1182/990 1199/895 -f 979/717 981/720 1033/719 -f 1186/994 1185/993 1202/900 -f 1187/995 1186/994 1203/902 -f 1188/996 1187/995 1204/905 -f 1189/997 1188/996 1205/907 -f 1190/998 1189/997 1206/908 -f 1199/895 1200/897 1184/992 -f 1192/1000 1191/999 1208/913 -f 1193/1001 1192/1000 1209/915 -f 1194/1002 1193/1001 1210/916 -f 1195/1005 1196/1004 1180/987 -f 1069/851 1054/836 1038/805 -f 1210/916 1211/1018 1195/1003 -f 1140/929 1141/930 1125/904 -f 1192/1000 1193/1001 1177/981 -f 1190/998 1191/999 1175/977 -f 1197/1006 1182/990 1166/959 -f 1063/845 1064/846 1048/825 -f 1022/697 1023/700 1007/787 -f 853/563 855/566 906/565 -f 713/396 715/398 772/397 -f 1196/1004 1197/1006 1181/958 -f 1041/811 1042/814 968/813 -f 1193/1001 1194/1002 1178/984 -f 870/596 871/599 950/598 -f 1020/785 1021/784 1005/766 -f 1097/865 1099/867 1156/866 -f 1035/724 1036/1017 1020/800 -f 1126/906 1127/909 1206/908 -f 1007/770 1008/771 992/740 -f 1055/837 1056/838 1040/810 -f 1082/763 1083/764 1067/853 -f 1058/840 1059/841 1043/815 -f 780/419 781/417 765/489 -f 742/440 743/443 822/442 -f 874/604 875/607 954/606 -f 703/1015 733/1021 1395/1016 -f 733/1021 731/1022 1395/1016 -f 731/1022 729/1023 1395/1016 -f 729/1023 727/1024 1395/1016 -f 727/1024 725/1025 1395/1016 -f 725/1025 723/1026 1395/1016 -f 723/1026 721/1027 1395/1016 -f 721/1027 719/1028 1395/1016 -f 719/1028 717/1029 1395/1016 -f 717/1029 715/1030 1395/1016 -f 715/1030 713/1031 1395/1016 -f 713/1031 711/1032 1395/1016 -f 711/1032 709/1033 1395/1016 -f 709/1033 707/1034 1395/1016 -f 707/1034 705/1014 1395/1016 -f 704/415 706/1035 1396/416 -f 706/1035 708/1036 1396/416 -f 708/1036 710/1037 1396/416 -f 710/1037 712/1038 1396/416 -f 712/1038 714/1039 1396/416 -f 714/1039 716/1040 1396/416 -f 716/1040 718/1041 1396/416 -f 718/1041 720/1042 1396/416 -f 720/1042 722/1043 1396/416 -f 722/1043 724/1044 1396/416 -f 724/1044 726/1045 1396/416 -f 726/1045 728/1046 1396/416 -f 728/1046 730/1047 1396/416 -f 730/1047 732/1048 1396/416 -f 732/1048 702/414 1396/416 -f 831/422 861/1049 1397/423 -f 861/1049 859/1050 1397/423 -f 859/1050 857/1051 1397/423 -f 857/1051 855/1052 1397/423 -f 855/1052 853/1053 1397/423 -f 853/1053 851/1054 1397/423 -f 851/1054 849/1055 1397/423 -f 849/1055 847/1056 1397/423 -f 847/1056 845/1057 1397/423 -f 845/1057 843/1058 1397/423 -f 843/1058 841/1059 1397/423 -f 841/1059 839/1060 1397/423 -f 839/1060 837/1061 1397/423 -f 837/1061 835/1062 1397/423 -f 835/1062 833/421 1397/423 -f 832/571 834/1063 1398/572 -f 834/1063 836/1064 1398/572 -f 836/1064 838/1065 1398/572 -f 838/1065 840/1066 1398/572 -f 840/1066 842/1067 1398/572 -f 842/1067 844/1068 1398/572 -f 844/1068 846/1069 1398/572 -f 846/1069 848/1070 1398/572 -f 848/1070 850/1071 1398/572 -f 850/1071 852/1072 1398/572 -f 852/1072 854/1073 1398/572 -f 854/1073 856/1074 1398/572 -f 856/1074 858/1075 1398/572 -f 858/1075 860/1076 1398/572 -f 860/1076 830/570 1398/572 -f 959/578 989/1077 1399/579 -f 989/1077 987/1078 1399/579 -f 987/1078 985/1079 1399/579 -f 985/1079 983/1080 1399/579 -f 983/1080 981/1081 1399/579 -f 981/1081 979/1082 1399/579 -f 979/1082 977/1083 1399/579 -f 977/1083 975/1084 1399/579 -f 975/1084 973/1085 1399/579 -f 973/1085 971/1086 1399/579 -f 971/1086 969/1087 1399/579 -f 969/1087 967/1088 1399/579 -f 967/1088 965/1089 1399/579 -f 965/1089 963/1090 1399/579 -f 963/1090 961/577 1399/579 -f 960/727 962/1091 1400/728 -f 962/1091 964/1092 1400/728 -f 964/1092 966/1093 1400/728 -f 966/1093 968/1094 1400/728 -f 968/1094 970/1095 1400/728 -f 970/1095 972/1096 1400/728 -f 972/1096 974/1097 1400/728 -f 974/1097 976/1098 1400/728 -f 976/1098 978/1099 1400/728 -f 978/1099 980/1100 1400/728 -f 980/1100 982/1101 1400/728 -f 982/1101 984/1102 1400/728 -f 984/1102 986/1103 1400/728 -f 986/1103 988/1104 1400/728 -f 988/1104 958/726 1400/728 -f 1087/734 1117/1105 1401/735 -f 1117/1105 1115/1106 1401/735 -f 1115/1106 1113/1107 1401/735 -f 1113/1107 1111/1108 1401/735 -f 1111/1108 1109/1109 1401/735 -f 1109/1109 1107/1110 1401/735 -f 1107/1110 1105/1111 1401/735 -f 1105/1111 1103/1112 1401/735 -f 1103/1112 1101/1113 1401/735 -f 1101/1113 1099/1114 1401/735 -f 1099/1114 1097/1115 1401/735 -f 1097/1115 1095/1116 1401/735 -f 1095/1116 1093/1117 1401/735 -f 1093/1117 1091/1118 1401/735 -f 1091/1118 1089/733 1401/735 -f 1088/884 1090/1119 1402/885 -f 1090/1119 1092/1120 1402/885 -f 1092/1120 1094/1121 1402/885 -f 1094/1121 1096/1122 1402/885 -f 1096/1122 1098/1123 1402/885 -f 1098/1123 1100/1124 1402/885 -f 1100/1124 1102/1125 1402/885 -f 1102/1125 1104/1126 1402/885 -f 1104/1126 1106/1127 1402/885 -f 1106/1127 1108/1128 1402/885 -f 1108/1128 1110/1129 1402/885 -f 1110/1129 1112/1130 1402/885 -f 1112/1130 1114/1131 1402/885 -f 1114/1131 1116/1132 1402/885 -f 1116/1132 1086/883 1402/885 -f 1467/385 1404/386 1406/387 -f 1468/388 1406/387 1408/389 -f 1469/390 1408/389 1410/391 -f 1470/392 1410/391 1412/393 -f 1471/394 1412/393 1472/395 -f 1472/395 1414/396 1473/397 -f 1473/397 1416/398 1418/399 -f 1474/400 1418/399 1420/401 -f 1475/402 1420/401 1422/403 -f 1476/404 1422/403 1424/405 -f 1477/406 1424/405 1426/407 -f 1478/408 1426/407 1428/409 -f 1479/410 1428/409 1480/411 -f 1480/411 1430/412 1432/413 -f 1403/414 1405/415 2097/416 -f 1482/417 1434/418 1404/386 -f 1481/419 1432/420 1482/417 -f 1534/421 1532/422 2098/423 -f 1530/424 1435/425 1515/426 -f 1515/426 1436/427 1516/428 -f 1516/428 1437/429 1438/430 -f 1517/431 1438/430 1439/432 -f 1518/433 1439/432 1519/434 -f 1519/434 1440/435 1520/436 -f 1520/436 1441/437 1442/438 -f 1521/439 1442/438 1443/440 -f 1522/441 1443/440 1523/442 -f 1523/442 1444/443 1524/444 -f 1524/444 1445/445 1446/446 -f 1525/447 1446/446 1447/448 -f 1526/449 1447/448 1527/450 -f 1527/450 1448/451 1449/452 -f 1529/453 1450/454 1435/425 -f 1528/455 1449/456 1450/454 -f 1435/425 1451/457 1436/427 -f 1436/427 1452/458 1437/429 -f 1437/429 1453/459 1454/460 -f 1438/430 1454/460 1455/461 -f 1439/432 1455/461 1456/462 -f 1440/435 1456/462 1457/463 -f 1441/437 1457/463 1458/464 -f 1442/438 1458/464 1459/465 -f 1443/440 1459/465 1460/466 -f 1444/443 1460/466 1461/467 -f 1445/445 1461/467 1462/468 -f 1446/446 1462/468 1463/469 -f 1447/448 1463/469 1464/470 -f 1448/451 1464/470 1465/471 -f 1450/454 1466/472 1435/425 -f 1449/456 1465/473 1466/472 -f 1451/474 1467/385 1452/475 -f 1452/475 1468/388 1453/476 -f 1453/476 1469/390 1470/392 -f 1454/477 1470/392 1471/394 -f 1455/478 1471/394 1472/395 -f 1456/479 1472/395 1473/397 -f 1457/480 1473/397 1474/400 -f 1458/481 1474/400 1475/402 -f 1459/482 1475/402 1476/404 -f 1460/483 1476/404 1477/406 -f 1461/484 1477/406 1478/408 -f 1462/485 1478/408 1479/410 -f 1463/486 1479/410 1464/487 -f 1464/487 1480/411 1481/488 -f 1466/489 1482/417 1467/385 -f 1465/490 1481/419 1466/489 -f 1403/491 1498/492 1483/493 -f 1405/494 1483/493 1484/495 -f 1407/496 1484/495 1409/497 -f 1409/497 1485/498 1486/499 -f 1411/500 1486/499 1487/501 -f 1413/502 1487/501 1488/503 -f 1415/504 1488/503 1489/505 -f 1417/506 1489/505 1490/507 -f 1419/508 1490/507 1491/509 -f 1421/510 1491/509 1492/511 -f 1423/512 1492/511 1493/513 -f 1425/514 1493/513 1494/515 -f 1427/516 1494/515 1429/517 -f 1429/517 1495/518 1431/519 -f 1433/520 1497/521 1403/491 -f 1431/522 1496/523 1433/520 -f 1483/493 1499/524 1484/495 -f 1484/495 1500/525 1501/526 -f 1485/498 1501/526 1502/527 -f 1486/499 1502/527 1503/528 -f 1487/501 1503/528 1504/529 -f 1488/503 1504/529 1505/530 -f 1489/505 1505/530 1506/531 -f 1490/507 1506/531 1507/532 -f 1491/509 1507/532 1492/511 -f 1492/511 1508/533 1509/534 -f 1493/513 1509/534 1494/515 -f 1494/515 1510/535 1511/536 -f 1495/518 1511/536 1512/537 -f 1497/521 1513/538 1514/539 -f 1496/523 1512/540 1513/538 -f 1514/539 1530/424 1515/426 -f 1499/524 1515/426 1516/428 -f 1500/525 1516/428 1517/431 -f 1501/526 1517/431 1518/433 -f 1502/527 1518/433 1503/528 -f 1503/528 1519/434 1520/436 -f 1504/529 1520/436 1521/439 -f 1505/530 1521/439 1522/441 -f 1506/531 1522/441 1507/532 -f 1507/532 1523/442 1524/444 -f 1508/533 1524/444 1509/534 -f 1509/534 1525/447 1510/535 -f 1510/535 1526/449 1527/450 -f 1511/536 1527/450 1512/537 -f 1513/538 1529/453 1514/539 -f 1512/540 1528/455 1513/538 -f 1498/492 1514/539 1483/493 -f 1595/541 1532/542 1534/543 -f 1596/544 1534/543 1597/545 -f 1597/545 1536/546 1538/547 -f 1598/548 1538/547 1540/549 -f 1599/550 1540/549 1542/551 -f 1600/552 1542/551 1601/553 -f 1601/553 1544/554 1546/555 -f 1602/556 1546/555 1548/557 -f 1603/558 1548/557 1550/559 -f 1604/560 1550/559 1552/561 -f 1605/562 1552/561 1554/563 -f 1606/564 1554/563 1607/565 -f 1607/565 1556/566 1558/567 -f 1608/568 1558/567 1560/569 -f 1531/570 1533/571 2099/572 -f 1610/573 1562/574 1532/542 -f 1609/575 1560/576 1562/574 -f 1662/577 1660/578 2100/579 -f 1658/580 1563/581 1564/582 -f 1643/583 1564/582 1565/584 -f 1644/585 1565/584 1566/586 -f 1645/587 1566/586 1567/588 -f 1646/589 1567/588 1568/590 -f 1647/591 1568/590 1648/592 -f 1648/592 1569/593 1649/594 -f 1649/594 1570/595 1571/596 -f 1650/597 1571/596 1651/598 -f 1651/598 1572/599 1573/600 -f 1652/601 1573/600 1574/602 -f 1653/603 1574/602 1575/604 -f 1654/605 1575/604 1655/606 -f 1655/606 1576/607 1577/608 -f 1657/609 1578/610 1658/580 -f 1656/611 1577/612 1578/610 -f 1563/581 1579/613 1564/582 -f 1564/582 1580/614 1565/584 -f 1565/584 1581/615 1566/586 -f 1566/586 1582/616 1583/617 -f 1567/588 1583/617 1584/618 -f 1568/590 1584/618 1569/593 -f 1569/593 1585/619 1586/620 -f 1570/595 1586/620 1587/621 -f 1571/596 1587/621 1588/622 -f 1572/599 1588/622 1589/623 -f 1573/600 1589/623 1574/602 -f 1574/602 1590/624 1575/604 -f 1575/604 1591/625 1576/607 -f 1576/607 1592/626 1593/627 -f 1578/610 1594/628 1579/613 -f 1577/612 1593/629 1594/628 -f 1579/630 1595/541 1596/544 -f 1580/631 1596/544 1597/545 -f 1581/632 1597/545 1598/548 -f 1582/633 1598/548 1599/550 -f 1583/634 1599/550 1600/552 -f 1584/635 1600/552 1601/553 -f 1585/636 1601/553 1602/556 -f 1586/637 1602/556 1603/558 -f 1587/638 1603/558 1604/560 -f 1588/639 1604/560 1605/562 -f 1589/640 1605/562 1606/564 -f 1590/641 1606/564 1607/565 -f 1591/642 1607/565 1608/568 -f 1592/643 1608/568 1593/644 -f 1594/645 1610/573 1595/541 -f 1593/646 1609/575 1610/573 -f 1531/647 1626/648 1611/649 -f 1533/650 1611/649 1535/651 -f 1535/651 1612/652 1537/653 -f 1537/653 1613/654 1614/655 -f 1539/656 1614/655 1541/657 -f 1541/657 1615/658 1616/659 -f 1543/660 1616/659 1617/661 -f 1545/662 1617/661 1618/663 -f 1547/664 1618/663 1619/665 -f 1549/666 1619/665 1620/667 -f 1551/668 1620/667 1621/669 -f 1553/670 1621/669 1622/671 -f 1555/672 1622/671 1557/673 -f 1557/673 1623/674 1559/675 -f 1561/676 1625/677 1531/647 -f 1559/678 1624/679 1561/676 -f 1611/649 1627/680 1612/652 -f 1612/652 1628/681 1613/654 -f 1613/654 1629/682 1630/683 -f 1614/655 1630/683 1631/684 -f 1615/658 1631/684 1632/685 -f 1616/659 1632/685 1633/686 -f 1617/661 1633/686 1634/687 -f 1618/663 1634/687 1635/688 -f 1619/665 1635/688 1636/689 -f 1620/667 1636/689 1637/690 -f 1621/669 1637/690 1638/691 -f 1622/671 1638/691 1639/692 -f 1623/674 1639/692 1640/693 -f 1625/677 1641/694 1642/695 -f 1624/679 1640/696 1641/694 -f 1642/695 1658/580 1643/583 -f 1627/680 1643/583 1628/681 -f 1628/681 1644/585 1645/587 -f 1629/682 1645/587 1646/589 -f 1630/683 1646/589 1631/684 -f 1631/684 1647/591 1648/592 -f 1632/685 1648/592 1649/594 -f 1633/686 1649/594 1634/687 -f 1634/687 1650/597 1651/598 -f 1635/688 1651/598 1652/601 -f 1636/689 1652/601 1637/690 -f 1637/690 1653/603 1654/605 -f 1638/691 1654/605 1655/606 -f 1639/692 1655/606 1640/693 -f 1641/694 1657/609 1658/580 -f 1640/696 1656/611 1657/609 -f 1626/648 1642/695 1611/649 -f 1723/697 1660/698 1662/699 -f 1724/700 1662/699 1664/701 -f 1725/702 1664/701 1666/703 -f 1726/704 1666/703 1668/705 -f 1727/706 1668/705 1670/707 -f 1728/708 1670/707 1729/709 -f 1729/709 1672/710 1674/711 -f 1730/712 1674/711 1676/713 -f 1731/714 1676/713 1732/715 -f 1732/715 1678/716 1680/717 -f 1733/718 1680/717 1734/719 -f 1734/719 1682/720 1684/721 -f 1735/722 1684/721 1686/723 -f 1736/724 1686/723 1688/725 -f 1659/726 1661/727 2101/728 -f 1738/729 1690/730 1723/697 -f 1737/731 1688/732 1690/730 -f 1790/733 1788/734 2102/735 -f 1786/736 1691/737 1692/738 -f 1771/739 1692/738 1693/740 -f 1772/741 1693/740 1773/742 -f 1773/742 1694/743 1695/744 -f 1774/745 1695/744 1696/746 -f 1775/747 1696/746 1776/748 -f 1776/748 1697/749 1777/750 -f 1777/750 1698/751 1699/752 -f 1778/753 1699/752 1700/754 -f 1779/755 1700/754 1701/756 -f 1780/757 1701/756 1702/758 -f 1781/759 1702/758 1703/760 -f 1782/761 1703/760 1704/762 -f 1783/763 1704/762 1784/764 -f 1785/765 1706/766 1786/736 -f 1784/767 1705/768 1785/765 -f 1691/737 1707/769 1692/738 -f 1692/738 1708/770 1693/740 -f 1693/740 1709/771 1710/772 -f 1694/743 1710/772 1711/773 -f 1695/744 1711/773 1712/774 -f 1696/746 1712/774 1713/775 -f 1697/749 1713/775 1714/776 -f 1698/751 1714/776 1699/752 -f 1699/752 1715/777 1716/778 -f 1700/754 1716/778 1717/779 -f 1701/756 1717/779 1718/780 -f 1702/758 1718/780 1719/781 -f 1703/760 1719/781 1704/762 -f 1704/762 1720/782 1705/783 -f 1706/766 1722/784 1707/769 -f 1705/768 1721/785 1706/766 -f 1707/786 1723/697 1708/787 -f 1708/787 1724/700 1725/702 -f 1709/788 1725/702 1726/704 -f 1710/789 1726/704 1727/706 -f 1711/790 1727/706 1728/708 -f 1712/791 1728/708 1729/709 -f 1713/792 1729/709 1730/712 -f 1714/793 1730/712 1731/714 -f 1715/794 1731/714 1732/715 -f 1716/795 1732/715 1733/718 -f 1717/796 1733/718 1718/797 -f 1718/797 1734/719 1735/722 -f 1719/798 1735/722 1736/724 -f 1720/799 1736/724 1721/800 -f 1722/801 1738/729 1723/697 -f 1721/802 1737/731 1738/729 -f 1659/803 1754/804 1739/805 -f 1661/806 1739/805 1740/807 -f 1663/808 1740/807 1665/809 -f 1665/809 1741/810 1742/811 -f 1667/812 1742/811 1669/813 -f 1669/813 1743/814 1744/815 -f 1671/816 1744/815 1745/817 -f 1673/818 1745/817 1746/819 -f 1675/820 1746/819 1747/821 -f 1677/822 1747/821 1748/823 -f 1679/824 1748/823 1749/825 -f 1681/826 1749/825 1750/827 -f 1683/828 1750/827 1685/829 -f 1685/829 1751/830 1687/831 -f 1689/832 1753/833 1659/803 -f 1687/834 1752/835 1689/832 -f 1739/805 1755/836 1740/807 -f 1740/807 1756/837 1741/810 -f 1741/810 1757/838 1758/839 -f 1742/811 1758/839 1759/840 -f 1743/814 1759/840 1744/815 -f 1744/815 1760/841 1761/842 -f 1745/817 1761/842 1762/843 -f 1746/819 1762/843 1763/844 -f 1747/821 1763/844 1748/823 -f 1748/823 1764/845 1749/825 -f 1749/825 1765/846 1766/847 -f 1750/827 1766/847 1767/848 -f 1751/830 1767/848 1752/849 -f 1753/833 1769/850 1770/851 -f 1752/835 1768/852 1769/850 -f 1770/851 1786/736 1771/739 -f 1755/836 1771/739 1772/741 -f 1756/837 1772/741 1773/742 -f 1757/838 1773/742 1774/745 -f 1758/839 1774/745 1775/747 -f 1759/840 1775/747 1776/748 -f 1760/841 1776/748 1777/750 -f 1761/842 1777/750 1778/753 -f 1762/843 1778/753 1779/755 -f 1763/844 1779/755 1780/757 -f 1764/845 1780/757 1781/759 -f 1765/846 1781/759 1782/761 -f 1766/847 1782/761 1783/763 -f 1767/848 1783/763 1768/853 -f 1769/850 1785/765 1786/736 -f 1768/852 1784/767 1785/765 -f 1754/804 1770/851 1739/805 -f 1851/854 1788/855 1852/856 -f 1852/856 1790/857 1853/858 -f 1853/858 1792/859 1794/860 -f 1854/861 1794/860 1796/862 -f 1855/863 1796/862 1856/864 -f 1856/864 1798/865 1857/866 -f 1857/866 1800/867 1858/868 -f 1858/868 1802/869 1804/870 -f 1859/871 1804/870 1860/872 -f 1860/872 1806/873 1861/874 -f 1861/874 1808/875 1810/876 -f 1862/877 1810/876 1812/878 -f 1863/879 1812/878 1814/880 -f 1864/881 1814/880 1816/882 -f 1787/883 1789/884 2103/885 -f 1866/886 1818/887 1851/854 -f 1865/888 1816/889 1818/887 -f 1914/890 1819/891 1820/892 -f 1899/893 1820/892 1821/894 -f 1900/895 1821/894 1822/896 -f 1901/897 1822/896 1823/898 -f 1902/899 1823/898 1903/900 -f 1903/900 1824/901 1904/902 -f 1904/902 1825/903 1826/904 -f 1905/905 1826/904 1827/906 -f 1906/907 1827/906 1907/908 -f 1907/908 1828/909 1829/910 -f 1908/911 1829/910 1830/912 -f 1909/913 1830/912 1831/914 -f 1910/915 1831/914 1911/916 -f 1911/916 1832/917 1833/918 -f 1913/919 1834/920 1819/891 -f 1912/921 1833/922 1834/920 -f 1819/891 1835/923 1820/892 -f 1820/892 1836/924 1821/894 -f 1821/894 1837/925 1822/896 -f 1822/896 1838/926 1839/927 -f 1823/898 1839/927 1840/928 -f 1824/901 1840/928 1841/929 -f 1825/903 1841/929 1826/904 -f 1826/904 1842/930 1827/906 -f 1827/906 1843/931 1844/932 -f 1828/909 1844/932 1845/933 -f 1829/910 1845/933 1846/934 -f 1830/912 1846/934 1847/935 -f 1831/914 1847/935 1848/936 -f 1832/917 1848/936 1849/937 -f 1834/920 1850/938 1835/923 -f 1833/922 1849/939 1850/938 -f 1835/940 1851/854 1852/856 -f 1836/941 1852/856 1853/858 -f 1837/942 1853/858 1838/943 -f 1838/943 1854/861 1839/944 -f 1839/944 1855/863 1856/864 -f 1840/945 1856/864 1841/946 -f 1841/946 1857/866 1858/868 -f 1842/947 1858/868 1859/871 -f 1843/948 1859/871 1860/872 -f 1844/949 1860/872 1861/874 -f 1845/950 1861/874 1862/877 -f 1846/951 1862/877 1847/952 -f 1847/952 1863/879 1864/881 -f 1848/953 1864/881 1865/954 -f 1850/955 1866/886 1851/854 -f 1849/956 1865/888 1866/886 -f 1787/957 1882/958 1867/959 -f 1789/960 1867/959 1868/961 -f 1791/962 1868/961 1793/963 -f 1793/963 1869/964 1870/965 -f 1795/966 1870/965 1871/967 -f 1797/968 1871/967 1872/969 -f 1799/970 1872/969 1873/971 -f 1801/972 1873/971 1874/973 -f 1803/974 1874/973 1875/975 -f 1805/976 1875/975 1876/977 -f 1807/978 1876/977 1877/979 -f 1809/980 1877/979 1878/981 -f 1811/982 1878/981 1813/983 -f 1813/983 1879/984 1815/985 -f 1817/986 1881/987 1787/957 -f 1815/988 1880/989 1817/986 -f 1867/959 1883/990 1884/991 -f 1868/961 1884/991 1869/964 -f 1869/964 1885/992 1886/993 -f 1870/965 1886/993 1871/967 -f 1871/967 1887/994 1888/995 -f 1872/969 1888/995 1889/996 -f 1873/971 1889/996 1890/997 -f 1874/973 1890/997 1891/998 -f 1875/975 1891/998 1876/977 -f 1876/977 1892/999 1893/1000 -f 1877/979 1893/1000 1878/981 -f 1878/981 1894/1001 1879/984 -f 1879/984 1895/1002 1896/1003 -f 1881/987 1897/1004 1882/958 -f 1880/989 1896/1005 1881/987 -f 1898/1006 1914/890 1899/893 -f 1883/990 1899/893 1900/895 -f 1884/991 1900/895 1885/992 -f 1885/992 1901/897 1886/993 -f 1886/993 1902/899 1903/900 -f 1887/994 1903/900 1904/902 -f 1888/995 1904/902 1905/905 -f 1889/996 1905/905 1906/907 -f 1890/997 1906/907 1907/908 -f 1891/998 1907/908 1892/999 -f 1892/999 1908/911 1909/913 -f 1893/1000 1909/913 1910/915 -f 1894/1001 1910/915 1911/916 -f 1895/1002 1911/916 1896/1003 -f 1897/1004 1913/919 1898/1006 -f 1896/1005 1912/921 1897/1004 -f 1882/958 1898/1006 1867/959 -f 1468/388 1467/385 1406/387 -f 1469/390 1468/388 1408/389 -f 1470/392 1469/390 1410/391 -f 1471/394 1470/392 1412/393 -f 1435/425 1436/427 1515/426 -f 1474/400 1473/397 1418/399 -f 1475/402 1474/400 1420/401 -f 1476/404 1475/402 1422/403 -f 1477/406 1476/404 1424/405 -f 1478/408 1477/406 1426/407 -f 1479/410 1478/408 1428/409 -f 1452/458 1453/459 1437/429 -f 1481/488 1480/411 1432/413 -f 1467/385 1482/417 1404/386 -f 1590/624 1591/625 1575/604 -f 1913/919 1914/890 1898/1006 -f 1542/551 1544/554 1601/553 -f 1517/431 1516/428 1438/430 -f 1518/433 1517/431 1439/432 -f 1796/862 1798/865 1856/864 -f 1440/435 1441/437 1520/436 -f 1521/439 1520/436 1442/438 -f 1522/441 1521/439 1443/440 -f 1818/887 1788/855 1851/854 -f 1693/740 1694/743 1773/742 -f 1525/447 1524/444 1446/446 -f 1526/449 1525/447 1447/448 -f 1655/606 1656/1007 1640/693 -f 1528/1008 1527/450 1449/452 -f 1530/424 1529/453 1435/425 -f 1529/453 1528/455 1450/454 -f 1676/713 1678/716 1732/715 -f 1439/432 1440/435 1519/434 -f 1438/430 1437/429 1454/460 -f 1439/432 1438/430 1455/461 -f 1440/435 1439/432 1456/462 -f 1441/437 1440/435 1457/463 -f 1442/438 1441/437 1458/464 -f 1443/440 1442/438 1459/465 -f 1444/443 1443/440 1460/466 -f 1445/445 1444/443 1461/467 -f 1446/446 1445/445 1462/468 -f 1447/448 1446/446 1463/469 -f 1448/451 1447/448 1464/470 -f 1449/452 1448/451 1465/471 -f 1854/861 1855/863 1839/944 -f 1450/454 1449/456 1466/472 -f 1584/618 1585/619 1569/593 -f 1853/858 1854/861 1838/943 -f 1454/477 1453/476 1470/392 -f 1455/478 1454/477 1471/394 -f 1456/479 1455/478 1472/395 -f 1457/480 1456/479 1473/397 -f 1458/481 1457/480 1474/400 -f 1459/482 1458/481 1475/402 -f 1460/483 1459/482 1476/404 -f 1461/484 1460/483 1477/406 -f 1462/485 1461/484 1478/408 -f 1463/486 1462/485 1479/410 -f 1436/427 1437/429 1516/428 -f 1465/1009 1464/487 1481/488 -f 1451/474 1466/489 1467/385 -f 1405/494 1403/491 1483/493 -f 1407/496 1405/494 1484/495 -f 1569/593 1570/595 1649/594 -f 1411/500 1409/497 1486/499 -f 1413/502 1411/500 1487/501 -f 1415/504 1413/502 1488/503 -f 1417/506 1415/504 1489/505 -f 1419/508 1417/506 1490/507 -f 1421/510 1419/508 1491/509 -f 1423/512 1421/510 1492/511 -f 1425/514 1423/512 1493/513 -f 1427/516 1425/514 1494/515 -f 1494/515 1495/518 1429/517 -f 1495/518 1496/1010 1431/519 -f 1497/521 1498/492 1403/491 -f 1496/523 1497/521 1433/520 -f 1485/498 1484/495 1501/526 -f 1486/499 1485/498 1502/527 -f 1487/501 1486/499 1503/528 -f 1488/503 1487/501 1504/529 -f 1489/505 1488/503 1505/530 -f 1490/507 1489/505 1506/531 -f 1491/509 1490/507 1507/532 -f 1868/961 1869/964 1793/963 -f 1493/513 1492/511 1509/534 -f 1495/518 1494/515 1511/536 -f 1496/1010 1495/518 1512/537 -f 1498/492 1497/521 1514/539 -f 1497/521 1496/523 1513/538 -f 1499/524 1514/539 1515/426 -f 1500/525 1499/524 1516/428 -f 1501/526 1500/525 1517/431 -f 1502/527 1501/526 1518/433 -f 1614/655 1615/658 1541/657 -f 1504/529 1503/528 1520/436 -f 1505/530 1504/529 1521/439 -f 1506/531 1505/530 1522/441 -f 1755/836 1756/837 1740/807 -f 1508/533 1507/532 1524/444 -f 1901/897 1902/899 1886/993 -f 1511/536 1510/535 1527/450 -f 1646/589 1647/591 1631/684 -f 1527/450 1528/1008 1512/537 -f 1596/544 1595/541 1534/543 -f 1720/782 1721/1011 1705/783 -f 1598/548 1597/545 1538/547 -f 1599/550 1598/548 1540/549 -f 1600/552 1599/550 1542/551 -f 1837/925 1838/926 1822/896 -f 1602/556 1601/553 1546/555 -f 1603/558 1602/556 1548/557 -f 1604/560 1603/558 1550/559 -f 1605/562 1604/560 1552/561 -f 1606/564 1605/562 1554/563 -f 1484/495 1485/498 1409/497 -f 1608/568 1607/565 1558/567 -f 1609/1012 1608/568 1560/569 -f 1595/541 1610/573 1532/542 -f 1610/573 1609/575 1562/574 -f 1643/583 1658/580 1564/582 -f 1644/585 1643/583 1565/584 -f 1645/587 1644/585 1566/586 -f 1646/589 1645/587 1567/588 -f 1647/591 1646/589 1568/590 -f 1568/590 1569/593 1648/592 -f 1589/623 1590/624 1574/602 -f 1650/597 1649/594 1571/596 -f 1628/681 1629/682 1613/654 -f 1652/601 1651/598 1573/600 -f 1653/603 1652/601 1574/602 -f 1654/605 1653/603 1575/604 -f 1806/873 1808/875 1861/874 -f 1656/1007 1655/606 1577/608 -f 1657/609 1656/611 1578/610 -f 1608/568 1609/1012 1593/644 -f 1567/588 1566/586 1583/617 -f 1568/590 1567/588 1584/618 -f 1714/776 1715/777 1699/752 -f 1570/595 1569/593 1586/620 -f 1571/596 1570/595 1587/621 -f 1572/599 1571/596 1588/622 -f 1573/600 1572/599 1589/623 -f 1788/855 1790/857 1852/856 -f 1790/857 1792/859 1853/858 -f 1499/524 1500/525 1484/495 -f 1577/608 1576/607 1593/627 -f 1563/581 1578/610 1579/613 -f 1578/610 1577/612 1594/628 -f 1580/631 1579/630 1596/544 -f 1581/632 1580/631 1597/545 -f 1582/633 1581/632 1598/548 -f 1583/634 1582/633 1599/550 -f 1584/635 1583/634 1600/552 -f 1585/636 1584/635 1601/553 -f 1586/637 1585/636 1602/556 -f 1587/638 1586/637 1603/558 -f 1588/639 1587/638 1604/560 -f 1589/640 1588/639 1605/562 -f 1590/641 1589/640 1606/564 -f 1591/642 1590/641 1607/565 -f 1592/643 1591/642 1608/568 -f 1479/410 1480/411 1464/487 -f 1579/630 1594/645 1595/541 -f 1594/645 1593/646 1610/573 -f 1533/650 1531/647 1611/649 -f 1733/718 1734/719 1718/797 -f 1823/898 1824/901 1903/900 -f 1539/656 1537/653 1614/655 -f 1831/914 1832/917 1911/916 -f 1543/660 1541/657 1616/659 -f 1545/662 1543/660 1617/661 -f 1547/664 1545/662 1618/663 -f 1549/666 1547/664 1619/665 -f 1551/668 1549/666 1620/667 -f 1553/670 1551/668 1621/669 -f 1555/672 1553/670 1622/671 -f 1622/671 1623/674 1557/673 -f 1623/674 1624/1013 1559/675 -f 1625/677 1626/648 1531/647 -f 1624/679 1625/677 1561/676 -f 1514/539 1499/524 1483/493 -f 1614/655 1613/654 1630/683 -f 1615/658 1614/655 1631/684 -f 1616/659 1615/658 1632/685 -f 1617/661 1616/659 1633/686 -f 1618/663 1617/661 1634/687 -f 1619/665 1618/663 1635/688 -f 1620/667 1619/665 1636/689 -f 1621/669 1620/667 1637/690 -f 1622/671 1621/669 1638/691 -f 1623/674 1622/671 1639/692 -f 1624/1013 1623/674 1640/693 -f 1626/648 1625/677 1642/695 -f 1625/677 1624/679 1641/694 -f 1627/680 1642/695 1643/583 -f 1629/682 1628/681 1645/587 -f 1630/683 1629/682 1646/589 -f 1468/388 1469/390 1453/476 -f 1632/685 1631/684 1648/592 -f 1633/686 1632/685 1649/594 -f 1880/989 1881/987 1817/986 -f 1635/688 1634/687 1651/598 -f 1636/689 1635/688 1652/601 -f 1642/695 1627/680 1611/649 -f 1638/691 1637/690 1654/605 -f 1639/692 1638/691 1655/606 -f 1642/695 1641/694 1658/580 -f 1641/694 1640/696 1657/609 -f 1507/532 1508/533 1492/511 -f 1724/700 1723/697 1662/699 -f 1725/702 1724/700 1664/701 -f 1726/704 1725/702 1666/703 -f 1727/706 1726/704 1668/705 -f 1728/708 1727/706 1670/707 -f 1730/712 1729/709 1674/711 -f 1731/714 1730/712 1676/713 -f 1406/1014 1404/1015 2096/1016 -f 1733/718 1732/715 1680/717 -f 1528/455 1529/453 1513/538 -f 1735/722 1734/719 1684/721 -f 1736/724 1735/722 1686/723 -f 1737/1017 1736/724 1688/725 -f 1719/781 1720/782 1704/762 -f 1738/729 1737/731 1690/730 -f 1771/739 1786/736 1692/738 -f 1772/741 1771/739 1693/740 -f 1534/543 1536/546 1597/545 -f 1774/745 1773/742 1695/744 -f 1775/747 1774/745 1696/746 -f 1696/746 1697/749 1776/748 -f 1842/930 1843/931 1827/906 -f 1778/753 1777/750 1699/752 -f 1779/755 1778/753 1700/754 -f 1780/757 1779/755 1701/756 -f 1781/759 1780/757 1702/758 -f 1782/761 1781/759 1703/760 -f 1783/763 1782/761 1704/762 -f 1466/472 1451/457 1435/425 -f 1704/762 1705/783 1784/764 -f 1580/614 1581/615 1565/584 -f 1611/649 1612/652 1535/651 -f 1412/393 1414/396 1472/395 -f 1694/743 1693/740 1710/772 -f 1695/744 1694/743 1711/773 -f 1696/746 1695/744 1712/774 -f 1697/749 1696/746 1713/775 -f 1698/751 1697/749 1714/776 -f 1862/877 1863/879 1847/952 -f 1700/754 1699/752 1716/778 -f 1701/756 1700/754 1717/779 -f 1702/758 1701/756 1718/780 -f 1703/760 1702/758 1719/781 -f 1697/749 1698/751 1777/750 -f 1706/766 1691/737 1786/736 -f 1691/737 1706/766 1707/769 -f 1447/448 1448/451 1527/450 -f 1709/788 1708/787 1725/702 -f 1710/789 1709/788 1726/704 -f 1711/790 1710/789 1727/706 -f 1712/791 1711/790 1728/708 -f 1713/792 1712/791 1729/709 -f 1714/793 1713/792 1730/712 -f 1715/794 1714/793 1731/714 -f 1716/795 1715/794 1732/715 -f 1717/796 1716/795 1733/718 -f 1432/420 1434/418 1482/417 -f 1719/798 1718/797 1735/722 -f 1720/799 1719/798 1736/724 -f 1578/610 1563/581 1658/580 -f 1707/786 1722/801 1723/697 -f 1722/801 1721/802 1738/729 -f 1661/806 1659/803 1739/805 -f 1663/808 1661/806 1740/807 -f 1667/812 1665/809 1742/811 -f 1581/615 1582/616 1566/586 -f 1671/816 1669/813 1744/815 -f 1673/818 1671/816 1745/817 -f 1675/820 1673/818 1746/819 -f 1677/822 1675/820 1747/821 -f 1679/824 1677/822 1748/823 -f 1681/826 1679/824 1749/825 -f 1683/828 1681/826 1750/827 -f 1750/827 1751/830 1685/829 -f 1751/830 1752/849 1687/831 -f 1753/833 1754/804 1659/803 -f 1752/835 1753/833 1689/832 -f 1740/807 1741/810 1665/809 -f 1742/811 1741/810 1758/839 -f 1743/814 1742/811 1759/840 -f 1745/817 1744/815 1761/842 -f 1746/819 1745/817 1762/843 -f 1747/821 1746/819 1763/844 -f 1649/594 1650/597 1634/687 -f 1627/680 1628/681 1612/652 -f 1750/827 1749/825 1766/847 -f 1751/830 1750/827 1767/848 -f 1754/804 1753/833 1770/851 -f 1753/833 1752/835 1769/850 -f 1755/836 1770/851 1771/739 -f 1756/837 1755/836 1772/741 -f 1757/838 1756/837 1773/742 -f 1758/839 1757/838 1774/745 -f 1759/840 1758/839 1775/747 -f 1760/841 1759/840 1776/748 -f 1761/842 1760/841 1777/750 -f 1762/843 1761/842 1778/753 -f 1763/844 1762/843 1779/755 -f 1764/845 1763/844 1780/757 -f 1765/846 1764/845 1781/759 -f 1766/847 1765/846 1782/761 -f 1767/848 1766/847 1783/763 -f 1579/613 1580/614 1564/582 -f 1770/851 1769/850 1786/736 -f 1769/850 1768/852 1785/765 -f 1670/707 1672/710 1729/709 -f 1824/901 1825/903 1904/902 -f 1804/870 1806/873 1860/872 -f 1854/861 1853/858 1794/860 -f 1855/863 1854/861 1796/862 -f 1690/730 1660/698 1723/697 -f 1591/625 1592/626 1576/607 -f 1859/871 1858/868 1804/870 -f 1451/457 1452/458 1436/427 -f 1428/409 1430/412 1480/411 -f 1862/877 1861/874 1810/876 -f 1863/879 1862/877 1812/878 -f 1864/881 1863/879 1814/880 -f 1865/954 1864/881 1816/882 -f 1518/433 1519/434 1503/528 -f 1866/886 1865/888 1818/887 -f 1899/893 1914/890 1820/892 -f 1900/895 1899/893 1821/894 -f 1901/897 1900/895 1822/896 -f 1902/899 1901/897 1823/898 -f 1800/867 1802/869 1858/868 -f 1612/652 1613/654 1537/653 -f 1905/905 1904/902 1826/904 -f 1906/907 1905/905 1827/906 -f 1522/441 1523/442 1507/532 -f 1908/911 1907/908 1829/910 -f 1909/913 1908/911 1830/912 -f 1910/915 1909/913 1831/914 -f 1856/864 1857/866 1841/946 -f 1912/1018 1911/916 1833/918 -f 1914/890 1913/919 1819/891 -f 1913/919 1912/921 1834/920 -f 1529/453 1530/424 1514/539 -f 1705/768 1706/766 1785/765 -f 1467/385 1468/388 1452/475 -f 1823/898 1822/896 1839/927 -f 1824/901 1823/898 1840/928 -f 1825/903 1824/901 1841/929 -f 1912/921 1913/919 1897/1004 -f 1444/443 1445/445 1524/444 -f 1828/909 1827/906 1844/932 -f 1829/910 1828/909 1845/933 -f 1830/912 1829/910 1846/934 -f 1831/914 1830/912 1847/935 -f 1832/917 1831/914 1848/936 -f 1833/918 1832/917 1849/937 -f 1819/891 1834/920 1835/923 -f 1834/920 1833/922 1850/938 -f 1836/941 1835/940 1852/856 -f 1837/942 1836/941 1853/858 -f 1643/583 1644/585 1628/681 -f 1836/924 1837/925 1821/894 -f 1840/945 1839/944 1856/864 -f 1835/923 1836/924 1820/892 -f 1842/947 1841/946 1858/868 -f 1843/948 1842/947 1859/871 -f 1844/949 1843/948 1860/872 -f 1845/950 1844/949 1861/874 -f 1846/951 1845/950 1862/877 -f 1707/769 1708/770 1692/738 -f 1848/953 1847/952 1864/881 -f 1849/1019 1848/953 1865/954 -f 1835/940 1850/955 1851/854 -f 1850/955 1849/956 1866/886 -f 1789/960 1787/957 1867/959 -f 1791/962 1789/960 1868/961 -f 1525/447 1526/449 1510/535 -f 1795/966 1793/963 1870/965 -f 1797/968 1795/966 1871/967 -f 1799/970 1797/968 1872/969 -f 1801/972 1799/970 1873/971 -f 1803/974 1801/972 1874/973 -f 1805/976 1803/974 1875/975 -f 1807/978 1805/976 1876/977 -f 1809/980 1807/978 1877/979 -f 1811/982 1809/980 1878/981 -f 1878/981 1879/984 1813/983 -f 1879/984 1880/1020 1815/985 -f 1881/987 1882/958 1787/957 -f 1886/993 1887/994 1871/967 -f 1868/961 1867/959 1884/991 -f 1763/844 1764/845 1748/823 -f 1870/965 1869/964 1886/993 -f 1524/444 1525/447 1509/534 -f 1872/969 1871/967 1888/995 -f 1873/971 1872/969 1889/996 -f 1874/973 1873/971 1890/997 -f 1875/975 1874/973 1891/998 -f 1509/534 1510/535 1494/515 -f 1877/979 1876/977 1893/1000 -f 1907/908 1908/911 1892/999 -f 1652/601 1653/603 1637/690 -f 1880/1020 1879/984 1896/1003 -f 1767/848 1768/853 1752/849 -f 1884/991 1885/992 1869/964 -f 1883/990 1898/1006 1899/893 -f 1884/991 1883/990 1900/895 -f 1680/717 1682/720 1734/719 -f 1887/994 1886/993 1903/900 -f 1888/995 1887/994 1904/902 -f 1889/996 1888/995 1905/905 -f 1890/997 1889/996 1906/907 -f 1891/998 1890/997 1907/908 -f 1900/895 1901/897 1885/992 -f 1893/1000 1892/999 1909/913 -f 1894/1001 1893/1000 1910/915 -f 1895/1002 1894/1001 1911/916 -f 1896/1005 1897/1004 1881/987 -f 1770/851 1755/836 1739/805 -f 1911/916 1912/1018 1896/1003 -f 1841/929 1842/930 1826/904 -f 1893/1000 1894/1001 1878/981 -f 1891/998 1892/999 1876/977 -f 1898/1006 1883/990 1867/959 -f 1764/845 1765/846 1749/825 -f 1723/697 1724/700 1708/787 -f 1554/563 1556/566 1607/565 -f 1414/396 1416/398 1473/397 -f 1897/1004 1898/1006 1882/958 -f 1742/811 1743/814 1669/813 -f 1894/1001 1895/1002 1879/984 -f 1571/596 1572/599 1651/598 -f 1721/785 1722/784 1706/766 -f 1798/865 1800/867 1857/866 -f 1736/724 1737/1017 1721/800 -f 1827/906 1828/909 1907/908 -f 1708/770 1709/771 1693/740 -f 1756/837 1757/838 1741/810 -f 1783/763 1784/764 1768/853 -f 1759/840 1760/841 1744/815 -f 1481/419 1482/417 1466/489 -f 1443/440 1444/443 1523/442 -f 1575/604 1576/607 1655/606 -f 1404/1015 1434/1021 2096/1016 -f 1434/1021 1432/1022 2096/1016 -f 1432/1022 1430/1023 2096/1016 -f 1430/1023 1428/1024 2096/1016 -f 1428/1024 1426/1025 2096/1016 -f 1426/1025 1424/1026 2096/1016 -f 1424/1026 1422/1027 2096/1016 -f 1422/1027 1420/1028 2096/1016 -f 1420/1028 1418/1029 2096/1016 -f 1418/1029 1416/1030 2096/1016 -f 1416/1030 1414/1031 2096/1016 -f 1414/1031 1412/1032 2096/1016 -f 1412/1032 1410/1033 2096/1016 -f 1410/1033 1408/1034 2096/1016 -f 1408/1034 1406/1014 2096/1016 -f 1405/415 1407/1035 2097/416 -f 1407/1035 1409/1036 2097/416 -f 1409/1036 1411/1037 2097/416 -f 1411/1037 1413/1038 2097/416 -f 1413/1038 1415/1039 2097/416 -f 1415/1039 1417/1040 2097/416 -f 1417/1040 1419/1041 2097/416 -f 1419/1041 1421/1042 2097/416 -f 1421/1042 1423/1043 2097/416 -f 1423/1043 1425/1044 2097/416 -f 1425/1044 1427/1045 2097/416 -f 1427/1045 1429/1046 2097/416 -f 1429/1046 1431/1047 2097/416 -f 1431/1047 1433/1048 2097/416 -f 1433/1048 1403/414 2097/416 -f 1532/422 1562/1049 2098/423 -f 1562/1049 1560/1050 2098/423 -f 1560/1050 1558/1051 2098/423 -f 1558/1051 1556/1052 2098/423 -f 1556/1052 1554/1053 2098/423 -f 1554/1053 1552/1054 2098/423 -f 1552/1054 1550/1055 2098/423 -f 1550/1055 1548/1056 2098/423 -f 1548/1056 1546/1057 2098/423 -f 1546/1057 1544/1058 2098/423 -f 1544/1058 1542/1059 2098/423 -f 1542/1059 1540/1060 2098/423 -f 1540/1060 1538/1061 2098/423 -f 1538/1061 1536/1062 2098/423 -f 1536/1062 1534/421 2098/423 -f 1533/571 1535/1063 2099/572 -f 1535/1063 1537/1064 2099/572 -f 1537/1064 1539/1065 2099/572 -f 1539/1065 1541/1066 2099/572 -f 1541/1066 1543/1067 2099/572 -f 1543/1067 1545/1068 2099/572 -f 1545/1068 1547/1069 2099/572 -f 1547/1069 1549/1070 2099/572 -f 1549/1070 1551/1071 2099/572 -f 1551/1071 1553/1072 2099/572 -f 1553/1072 1555/1073 2099/572 -f 1555/1073 1557/1074 2099/572 -f 1557/1074 1559/1075 2099/572 -f 1559/1075 1561/1076 2099/572 -f 1561/1076 1531/570 2099/572 -f 1660/578 1690/1077 2100/579 -f 1690/1077 1688/1078 2100/579 -f 1688/1078 1686/1079 2100/579 -f 1686/1079 1684/1080 2100/579 -f 1684/1080 1682/1081 2100/579 -f 1682/1081 1680/1082 2100/579 -f 1680/1082 1678/1083 2100/579 -f 1678/1083 1676/1084 2100/579 -f 1676/1084 1674/1085 2100/579 -f 1674/1085 1672/1086 2100/579 -f 1672/1086 1670/1087 2100/579 -f 1670/1087 1668/1088 2100/579 -f 1668/1088 1666/1089 2100/579 -f 1666/1089 1664/1090 2100/579 -f 1664/1090 1662/577 2100/579 -f 1661/727 1663/1091 2101/728 -f 1663/1091 1665/1092 2101/728 -f 1665/1092 1667/1093 2101/728 -f 1667/1093 1669/1094 2101/728 -f 1669/1094 1671/1095 2101/728 -f 1671/1095 1673/1096 2101/728 -f 1673/1096 1675/1097 2101/728 -f 1675/1097 1677/1098 2101/728 -f 1677/1098 1679/1099 2101/728 -f 1679/1099 1681/1100 2101/728 -f 1681/1100 1683/1101 2101/728 -f 1683/1101 1685/1102 2101/728 -f 1685/1102 1687/1103 2101/728 -f 1687/1103 1689/1104 2101/728 -f 1689/1104 1659/726 2101/728 -f 1788/734 1818/1105 2102/735 -f 1818/1105 1816/1106 2102/735 -f 1816/1106 1814/1107 2102/735 -f 1814/1107 1812/1108 2102/735 -f 1812/1108 1810/1109 2102/735 -f 1810/1109 1808/1110 2102/735 -f 1808/1110 1806/1111 2102/735 -f 1806/1111 1804/1112 2102/735 -f 1804/1112 1802/1113 2102/735 -f 1802/1113 1800/1114 2102/735 -f 1800/1114 1798/1115 2102/735 -f 1798/1115 1796/1116 2102/735 -f 1796/1116 1794/1117 2102/735 -f 1794/1117 1792/1118 2102/735 -f 1792/1118 1790/733 2102/735 -f 1789/884 1791/1119 2103/885 -f 1791/1119 1793/1120 2103/885 -f 1793/1120 1795/1121 2103/885 -f 1795/1121 1797/1122 2103/885 -f 1797/1122 1799/1123 2103/885 -f 1799/1123 1801/1124 2103/885 -f 1801/1124 1803/1125 2103/885 -f 1803/1125 1805/1126 2103/885 -f 1805/1126 1807/1127 2103/885 -f 1807/1127 1809/1128 2103/885 -f 1809/1128 1811/1129 2103/885 -f 1811/1129 1813/1130 2103/885 -f 1813/1130 1815/1131 2103/885 -f 1815/1131 1817/1132 2103/885 -f 1817/1132 1787/883 2103/885 -f 2168/385 2105/386 2107/387 -f 2169/388 2107/387 2109/389 -f 2170/390 2109/389 2111/391 -f 2171/392 2111/391 2113/393 -f 2172/394 2113/393 2173/395 -f 2173/395 2115/396 2174/397 -f 2174/397 2117/398 2119/399 -f 2175/400 2119/399 2121/401 -f 2176/402 2121/401 2123/403 -f 2177/404 2123/403 2125/405 -f 2178/406 2125/405 2127/407 -f 2179/408 2127/407 2129/409 -f 2180/410 2129/409 2181/411 -f 2181/411 2131/412 2133/413 -f 2104/414 2106/415 2798/416 -f 2183/417 2135/418 2105/386 -f 2182/419 2133/420 2183/417 -f 2235/421 2233/422 2799/423 -f 2231/424 2136/425 2216/426 -f 2216/426 2137/427 2217/428 -f 2217/428 2138/429 2139/430 -f 2218/431 2139/430 2140/432 -f 2219/433 2140/432 2220/434 -f 2220/434 2141/435 2221/436 -f 2221/436 2142/437 2143/438 -f 2222/439 2143/438 2144/440 -f 2223/441 2144/440 2224/442 -f 2224/442 2145/443 2225/444 -f 2225/444 2146/445 2147/446 -f 2226/447 2147/446 2148/448 -f 2227/449 2148/448 2228/450 -f 2228/450 2149/451 2150/452 -f 2230/453 2151/454 2136/425 -f 2229/455 2150/456 2151/454 -f 2136/425 2152/457 2137/427 -f 2137/427 2153/458 2138/429 -f 2138/429 2154/459 2155/460 -f 2139/430 2155/460 2156/461 -f 2140/432 2156/461 2157/462 -f 2141/435 2157/462 2158/463 -f 2142/437 2158/463 2159/464 -f 2143/438 2159/464 2160/465 -f 2144/440 2160/465 2161/466 -f 2145/443 2161/466 2162/467 -f 2146/445 2162/467 2163/468 -f 2147/446 2163/468 2164/469 -f 2148/448 2164/469 2165/470 -f 2149/451 2165/470 2166/471 -f 2151/454 2167/472 2136/425 -f 2150/456 2166/473 2167/472 -f 2152/474 2168/385 2153/475 -f 2153/475 2169/388 2154/476 -f 2154/476 2170/390 2171/392 -f 2155/477 2171/392 2172/394 -f 2156/478 2172/394 2173/395 -f 2157/479 2173/395 2174/397 -f 2158/480 2174/397 2175/400 -f 2159/481 2175/400 2176/402 -f 2160/482 2176/402 2177/404 -f 2161/483 2177/404 2178/406 -f 2162/484 2178/406 2179/408 -f 2163/485 2179/408 2180/410 -f 2164/486 2180/410 2165/487 -f 2165/487 2181/411 2182/488 -f 2167/489 2183/417 2168/385 -f 2166/490 2182/419 2167/489 -f 2104/491 2199/492 2184/493 -f 2106/494 2184/493 2185/495 -f 2108/496 2185/495 2110/497 -f 2110/497 2186/498 2187/499 -f 2112/500 2187/499 2188/501 -f 2114/502 2188/501 2189/503 -f 2116/504 2189/503 2190/505 -f 2118/506 2190/505 2191/507 -f 2120/508 2191/507 2192/509 -f 2122/510 2192/509 2193/511 -f 2124/512 2193/511 2194/513 -f 2126/514 2194/513 2195/515 -f 2128/516 2195/515 2130/517 -f 2130/517 2196/518 2132/519 -f 2134/520 2198/521 2104/491 -f 2132/522 2197/523 2134/520 -f 2184/493 2200/524 2185/495 -f 2185/495 2201/525 2202/526 -f 2186/498 2202/526 2203/527 -f 2187/499 2203/527 2204/528 -f 2188/501 2204/528 2205/529 -f 2189/503 2205/529 2206/530 -f 2190/505 2206/530 2207/531 -f 2191/507 2207/531 2208/532 -f 2192/509 2208/532 2193/511 -f 2193/511 2209/533 2210/534 -f 2194/513 2210/534 2195/515 -f 2195/515 2211/535 2212/536 -f 2196/518 2212/536 2213/537 -f 2198/521 2214/538 2215/539 -f 2197/523 2213/540 2214/538 -f 2215/539 2231/424 2216/426 -f 2200/524 2216/426 2217/428 -f 2201/525 2217/428 2218/431 -f 2202/526 2218/431 2219/433 -f 2203/527 2219/433 2204/528 -f 2204/528 2220/434 2221/436 -f 2205/529 2221/436 2222/439 -f 2206/530 2222/439 2223/441 -f 2207/531 2223/441 2208/532 -f 2208/532 2224/442 2225/444 -f 2209/533 2225/444 2210/534 -f 2210/534 2226/447 2211/535 -f 2211/535 2227/449 2228/450 -f 2212/536 2228/450 2213/537 -f 2214/538 2230/453 2215/539 -f 2213/540 2229/455 2214/538 -f 2199/492 2215/539 2184/493 -f 2296/541 2233/542 2235/543 -f 2297/544 2235/543 2298/545 -f 2298/545 2237/546 2239/547 -f 2299/548 2239/547 2241/549 -f 2300/550 2241/549 2243/551 -f 2301/552 2243/551 2302/553 -f 2302/553 2245/554 2247/555 -f 2303/556 2247/555 2249/557 -f 2304/558 2249/557 2251/559 -f 2305/560 2251/559 2253/561 -f 2306/562 2253/561 2255/563 -f 2307/564 2255/563 2308/565 -f 2308/565 2257/566 2259/567 -f 2309/568 2259/567 2261/569 -f 2232/570 2234/571 2800/572 -f 2311/573 2263/574 2233/542 -f 2310/575 2261/576 2263/574 -f 2363/577 2361/578 2801/579 -f 2359/580 2264/581 2265/582 -f 2344/583 2265/582 2266/584 -f 2345/585 2266/584 2267/586 -f 2346/587 2267/586 2268/588 -f 2347/589 2268/588 2269/590 -f 2348/591 2269/590 2349/592 -f 2349/592 2270/593 2350/594 -f 2350/594 2271/595 2272/596 -f 2351/597 2272/596 2352/598 -f 2352/598 2273/599 2274/600 -f 2353/601 2274/600 2275/602 -f 2354/603 2275/602 2276/604 -f 2355/605 2276/604 2356/606 -f 2356/606 2277/607 2278/608 -f 2358/609 2279/610 2359/580 -f 2357/611 2278/612 2279/610 -f 2264/581 2280/613 2265/582 -f 2265/582 2281/614 2266/584 -f 2266/584 2282/615 2267/586 -f 2267/586 2283/616 2284/617 -f 2268/588 2284/617 2285/618 -f 2269/590 2285/618 2270/593 -f 2270/593 2286/619 2287/620 -f 2271/595 2287/620 2288/621 -f 2272/596 2288/621 2289/622 -f 2273/599 2289/622 2290/623 -f 2274/600 2290/623 2275/602 -f 2275/602 2291/624 2276/604 -f 2276/604 2292/625 2277/607 -f 2277/607 2293/626 2294/627 -f 2279/610 2295/628 2280/613 -f 2278/612 2294/629 2295/628 -f 2280/630 2296/541 2297/544 -f 2281/631 2297/544 2298/545 -f 2282/632 2298/545 2299/548 -f 2283/633 2299/548 2300/550 -f 2284/634 2300/550 2301/552 -f 2285/635 2301/552 2302/553 -f 2286/636 2302/553 2303/556 -f 2287/637 2303/556 2304/558 -f 2288/638 2304/558 2305/560 -f 2289/639 2305/560 2306/562 -f 2290/640 2306/562 2307/564 -f 2291/641 2307/564 2308/565 -f 2292/642 2308/565 2309/568 -f 2293/643 2309/568 2294/644 -f 2295/645 2311/573 2296/541 -f 2294/646 2310/575 2311/573 -f 2232/647 2327/648 2312/649 -f 2234/650 2312/649 2236/651 -f 2236/651 2313/652 2238/653 -f 2238/653 2314/654 2315/655 -f 2240/656 2315/655 2242/657 -f 2242/657 2316/658 2317/659 -f 2244/660 2317/659 2318/661 -f 2246/662 2318/661 2319/663 -f 2248/664 2319/663 2320/665 -f 2250/666 2320/665 2321/667 -f 2252/668 2321/667 2322/669 -f 2254/670 2322/669 2323/671 -f 2256/672 2323/671 2258/673 -f 2258/673 2324/674 2260/675 -f 2262/676 2326/677 2232/647 -f 2260/678 2325/679 2262/676 -f 2312/649 2328/680 2313/652 -f 2313/652 2329/681 2314/654 -f 2314/654 2330/682 2331/683 -f 2315/655 2331/683 2332/684 -f 2316/658 2332/684 2333/685 -f 2317/659 2333/685 2334/686 -f 2318/661 2334/686 2335/687 -f 2319/663 2335/687 2336/688 -f 2320/665 2336/688 2337/689 -f 2321/667 2337/689 2338/690 -f 2322/669 2338/690 2339/691 -f 2323/671 2339/691 2340/692 -f 2324/674 2340/692 2341/693 -f 2326/677 2342/694 2343/695 -f 2325/679 2341/696 2342/694 -f 2343/695 2359/580 2344/583 -f 2328/680 2344/583 2329/681 -f 2329/681 2345/585 2346/587 -f 2330/682 2346/587 2347/589 -f 2331/683 2347/589 2332/684 -f 2332/684 2348/591 2349/592 -f 2333/685 2349/592 2350/594 -f 2334/686 2350/594 2335/687 -f 2335/687 2351/597 2352/598 -f 2336/688 2352/598 2353/601 -f 2337/689 2353/601 2338/690 -f 2338/690 2354/603 2355/605 -f 2339/691 2355/605 2356/606 -f 2340/692 2356/606 2341/693 -f 2342/694 2358/609 2359/580 -f 2341/696 2357/611 2358/609 -f 2327/648 2343/695 2312/649 -f 2424/697 2361/698 2363/699 -f 2425/700 2363/699 2365/701 -f 2426/702 2365/701 2367/703 -f 2427/704 2367/703 2369/705 -f 2428/706 2369/705 2371/707 -f 2429/708 2371/707 2430/709 -f 2430/709 2373/710 2375/711 -f 2431/712 2375/711 2377/713 -f 2432/714 2377/713 2433/715 -f 2433/715 2379/716 2381/717 -f 2434/718 2381/717 2435/719 -f 2435/719 2383/720 2385/721 -f 2436/722 2385/721 2387/723 -f 2437/724 2387/723 2389/725 -f 2360/726 2362/727 2802/728 -f 2439/729 2391/730 2424/697 -f 2438/731 2389/732 2391/730 -f 2491/733 2489/734 2803/735 -f 2487/736 2392/737 2393/738 -f 2472/739 2393/738 2394/740 -f 2473/741 2394/740 2474/742 -f 2474/742 2395/743 2396/744 -f 2475/745 2396/744 2397/746 -f 2476/747 2397/746 2477/748 -f 2477/748 2398/749 2478/750 -f 2478/750 2399/751 2400/752 -f 2479/753 2400/752 2401/754 -f 2480/755 2401/754 2402/756 -f 2481/757 2402/756 2403/758 -f 2482/759 2403/758 2404/760 -f 2483/761 2404/760 2405/762 -f 2484/763 2405/762 2485/764 -f 2486/765 2407/766 2487/736 -f 2485/767 2406/768 2486/765 -f 2392/737 2408/769 2393/738 -f 2393/738 2409/770 2394/740 -f 2394/740 2410/771 2411/772 -f 2395/743 2411/772 2412/773 -f 2396/744 2412/773 2413/774 -f 2397/746 2413/774 2414/775 -f 2398/749 2414/775 2415/776 -f 2399/751 2415/776 2400/752 -f 2400/752 2416/777 2417/778 -f 2401/754 2417/778 2418/779 -f 2402/756 2418/779 2419/780 -f 2403/758 2419/780 2420/781 -f 2404/760 2420/781 2405/762 -f 2405/762 2421/782 2406/783 -f 2407/766 2423/784 2408/769 -f 2406/768 2422/785 2407/766 -f 2408/786 2424/697 2409/787 -f 2409/787 2425/700 2426/702 -f 2410/788 2426/702 2427/704 -f 2411/789 2427/704 2428/706 -f 2412/790 2428/706 2429/708 -f 2413/791 2429/708 2430/709 -f 2414/792 2430/709 2431/712 -f 2415/793 2431/712 2432/714 -f 2416/794 2432/714 2433/715 -f 2417/795 2433/715 2434/718 -f 2418/796 2434/718 2419/797 -f 2419/797 2435/719 2436/722 -f 2420/798 2436/722 2437/724 -f 2421/799 2437/724 2422/800 -f 2423/801 2439/729 2424/697 -f 2422/802 2438/731 2439/729 -f 2360/803 2455/804 2440/805 -f 2362/806 2440/805 2441/807 -f 2364/808 2441/807 2366/809 -f 2366/809 2442/810 2443/811 -f 2368/812 2443/811 2370/813 -f 2370/813 2444/814 2445/815 -f 2372/816 2445/815 2446/817 -f 2374/818 2446/817 2447/819 -f 2376/820 2447/819 2448/821 -f 2378/822 2448/821 2449/823 -f 2380/824 2449/823 2450/825 -f 2382/826 2450/825 2451/827 -f 2384/828 2451/827 2386/829 -f 2386/829 2452/830 2388/831 -f 2390/832 2454/833 2360/803 -f 2388/834 2453/835 2390/832 -f 2440/805 2456/836 2441/807 -f 2441/807 2457/837 2442/810 -f 2442/810 2458/838 2459/839 -f 2443/811 2459/839 2460/840 -f 2444/814 2460/840 2445/815 -f 2445/815 2461/841 2462/842 -f 2446/817 2462/842 2463/843 -f 2447/819 2463/843 2464/844 -f 2448/821 2464/844 2449/823 -f 2449/823 2465/845 2450/825 -f 2450/825 2466/846 2467/847 -f 2451/827 2467/847 2468/848 -f 2452/830 2468/848 2453/849 -f 2454/833 2470/850 2471/851 -f 2453/835 2469/852 2470/850 -f 2471/851 2487/736 2472/739 -f 2456/836 2472/739 2473/741 -f 2457/837 2473/741 2474/742 -f 2458/838 2474/742 2475/745 -f 2459/839 2475/745 2476/747 -f 2460/840 2476/747 2477/748 -f 2461/841 2477/748 2478/750 -f 2462/842 2478/750 2479/753 -f 2463/843 2479/753 2480/755 -f 2464/844 2480/755 2481/757 -f 2465/845 2481/757 2482/759 -f 2466/846 2482/759 2483/761 -f 2467/847 2483/761 2484/763 -f 2468/848 2484/763 2469/853 -f 2470/850 2486/765 2487/736 -f 2469/852 2485/767 2486/765 -f 2455/804 2471/851 2440/805 -f 2552/854 2489/855 2553/856 -f 2553/856 2491/857 2554/858 -f 2554/858 2493/859 2495/860 -f 2555/861 2495/860 2497/862 -f 2556/863 2497/862 2557/864 -f 2557/864 2499/865 2558/866 -f 2558/866 2501/867 2559/868 -f 2559/868 2503/869 2505/870 -f 2560/871 2505/870 2561/872 -f 2561/872 2507/873 2562/874 -f 2562/874 2509/875 2511/876 -f 2563/877 2511/876 2513/878 -f 2564/879 2513/878 2515/880 -f 2565/881 2515/880 2517/882 -f 2488/883 2490/884 2804/885 -f 2567/886 2519/887 2552/854 -f 2566/888 2517/889 2519/887 -f 2615/890 2520/891 2521/892 -f 2600/893 2521/892 2522/894 -f 2601/895 2522/894 2523/896 -f 2602/897 2523/896 2524/898 -f 2603/899 2524/898 2604/900 -f 2604/900 2525/901 2605/902 -f 2605/902 2526/903 2527/904 -f 2606/905 2527/904 2528/906 -f 2607/907 2528/906 2608/908 -f 2608/908 2529/909 2530/910 -f 2609/911 2530/910 2531/912 -f 2610/913 2531/912 2532/914 -f 2611/915 2532/914 2612/916 -f 2612/916 2533/917 2534/918 -f 2614/919 2535/920 2520/891 -f 2613/921 2534/922 2535/920 -f 2520/891 2536/923 2521/892 -f 2521/892 2537/924 2522/894 -f 2522/894 2538/925 2523/896 -f 2523/896 2539/926 2540/927 -f 2524/898 2540/927 2541/928 -f 2525/901 2541/928 2542/929 -f 2526/903 2542/929 2527/904 -f 2527/904 2543/930 2528/906 -f 2528/906 2544/931 2545/932 -f 2529/909 2545/932 2546/933 -f 2530/910 2546/933 2547/934 -f 2531/912 2547/934 2548/935 -f 2532/914 2548/935 2549/936 -f 2533/917 2549/936 2550/937 -f 2535/920 2551/938 2536/923 -f 2534/922 2550/939 2551/938 -f 2536/940 2552/854 2553/856 -f 2537/941 2553/856 2554/858 -f 2538/942 2554/858 2539/943 -f 2539/943 2555/861 2540/944 -f 2540/944 2556/863 2557/864 -f 2541/945 2557/864 2542/946 -f 2542/946 2558/866 2559/868 -f 2543/947 2559/868 2560/871 -f 2544/948 2560/871 2561/872 -f 2545/949 2561/872 2562/874 -f 2546/950 2562/874 2563/877 -f 2547/951 2563/877 2548/952 -f 2548/952 2564/879 2565/881 -f 2549/953 2565/881 2566/954 -f 2551/955 2567/886 2552/854 -f 2550/956 2566/888 2567/886 -f 2488/957 2583/958 2568/959 -f 2490/960 2568/959 2569/961 -f 2492/962 2569/961 2494/963 -f 2494/963 2570/964 2571/965 -f 2496/966 2571/965 2572/967 -f 2498/968 2572/967 2573/969 -f 2500/970 2573/969 2574/971 -f 2502/972 2574/971 2575/973 -f 2504/974 2575/973 2576/975 -f 2506/976 2576/975 2577/977 -f 2508/978 2577/977 2578/979 -f 2510/980 2578/979 2579/981 -f 2512/982 2579/981 2514/983 -f 2514/983 2580/984 2516/985 -f 2518/986 2582/987 2488/957 -f 2516/988 2581/989 2518/986 -f 2568/959 2584/990 2585/991 -f 2569/961 2585/991 2570/964 -f 2570/964 2586/992 2587/993 -f 2571/965 2587/993 2572/967 -f 2572/967 2588/994 2589/995 -f 2573/969 2589/995 2590/996 -f 2574/971 2590/996 2591/997 -f 2575/973 2591/997 2592/998 -f 2576/975 2592/998 2577/977 -f 2577/977 2593/999 2594/1000 -f 2578/979 2594/1000 2579/981 -f 2579/981 2595/1001 2580/984 -f 2580/984 2596/1002 2597/1003 -f 2582/987 2598/1004 2583/958 -f 2581/989 2597/1005 2582/987 -f 2599/1006 2615/890 2600/893 -f 2584/990 2600/893 2601/895 -f 2585/991 2601/895 2586/992 -f 2586/992 2602/897 2587/993 -f 2587/993 2603/899 2604/900 -f 2588/994 2604/900 2605/902 -f 2589/995 2605/902 2606/905 -f 2590/996 2606/905 2607/907 -f 2591/997 2607/907 2608/908 -f 2592/998 2608/908 2593/999 -f 2593/999 2609/911 2610/913 -f 2594/1000 2610/913 2611/915 -f 2595/1001 2611/915 2612/916 -f 2596/1002 2612/916 2597/1003 -f 2598/1004 2614/919 2599/1006 -f 2597/1005 2613/921 2598/1004 -f 2583/958 2599/1006 2568/959 -f 2169/388 2168/385 2107/387 -f 2170/390 2169/388 2109/389 -f 2171/392 2170/390 2111/391 -f 2172/394 2171/392 2113/393 -f 2136/425 2137/427 2216/426 -f 2175/400 2174/397 2119/399 -f 2176/402 2175/400 2121/401 -f 2177/404 2176/402 2123/403 -f 2178/406 2177/404 2125/405 -f 2179/408 2178/406 2127/407 -f 2180/410 2179/408 2129/409 -f 2153/458 2154/459 2138/429 -f 2182/488 2181/411 2133/413 -f 2168/385 2183/417 2105/386 -f 2291/624 2292/625 2276/604 -f 2614/919 2615/890 2599/1006 -f 2243/551 2245/554 2302/553 -f 2218/431 2217/428 2139/430 -f 2219/433 2218/431 2140/432 -f 2497/862 2499/865 2557/864 -f 2141/435 2142/437 2221/436 -f 2222/439 2221/436 2143/438 -f 2223/441 2222/439 2144/440 -f 2519/887 2489/855 2552/854 -f 2394/740 2395/743 2474/742 -f 2226/447 2225/444 2147/446 -f 2227/449 2226/447 2148/448 -f 2356/606 2357/1007 2341/693 -f 2229/1008 2228/450 2150/452 -f 2231/424 2230/453 2136/425 -f 2230/453 2229/455 2151/454 -f 2377/713 2379/716 2433/715 -f 2140/432 2141/435 2220/434 -f 2139/430 2138/429 2155/460 -f 2140/432 2139/430 2156/461 -f 2141/435 2140/432 2157/462 -f 2142/437 2141/435 2158/463 -f 2143/438 2142/437 2159/464 -f 2144/440 2143/438 2160/465 -f 2145/443 2144/440 2161/466 -f 2146/445 2145/443 2162/467 -f 2147/446 2146/445 2163/468 -f 2148/448 2147/446 2164/469 -f 2149/451 2148/448 2165/470 -f 2150/452 2149/451 2166/471 -f 2555/861 2556/863 2540/944 -f 2151/454 2150/456 2167/472 -f 2285/618 2286/619 2270/593 -f 2554/858 2555/861 2539/943 -f 2155/477 2154/476 2171/392 -f 2156/478 2155/477 2172/394 -f 2157/479 2156/478 2173/395 -f 2158/480 2157/479 2174/397 -f 2159/481 2158/480 2175/400 -f 2160/482 2159/481 2176/402 -f 2161/483 2160/482 2177/404 -f 2162/484 2161/483 2178/406 -f 2163/485 2162/484 2179/408 -f 2164/486 2163/485 2180/410 -f 2137/427 2138/429 2217/428 -f 2166/1009 2165/487 2182/488 -f 2152/474 2167/489 2168/385 -f 2106/494 2104/491 2184/493 -f 2108/496 2106/494 2185/495 -f 2270/593 2271/595 2350/594 -f 2112/500 2110/497 2187/499 -f 2114/502 2112/500 2188/501 -f 2116/504 2114/502 2189/503 -f 2118/506 2116/504 2190/505 -f 2120/508 2118/506 2191/507 -f 2122/510 2120/508 2192/509 -f 2124/512 2122/510 2193/511 -f 2126/514 2124/512 2194/513 -f 2128/516 2126/514 2195/515 -f 2195/515 2196/518 2130/517 -f 2196/518 2197/1010 2132/519 -f 2198/521 2199/492 2104/491 -f 2197/523 2198/521 2134/520 -f 2186/498 2185/495 2202/526 -f 2187/499 2186/498 2203/527 -f 2188/501 2187/499 2204/528 -f 2189/503 2188/501 2205/529 -f 2190/505 2189/503 2206/530 -f 2191/507 2190/505 2207/531 -f 2192/509 2191/507 2208/532 -f 2569/961 2570/964 2494/963 -f 2194/513 2193/511 2210/534 -f 2196/518 2195/515 2212/536 -f 2197/1010 2196/518 2213/537 -f 2199/492 2198/521 2215/539 -f 2198/521 2197/523 2214/538 -f 2200/524 2215/539 2216/426 -f 2201/525 2200/524 2217/428 -f 2202/526 2201/525 2218/431 -f 2203/527 2202/526 2219/433 -f 2315/655 2316/658 2242/657 -f 2205/529 2204/528 2221/436 -f 2206/530 2205/529 2222/439 -f 2207/531 2206/530 2223/441 -f 2456/836 2457/837 2441/807 -f 2209/533 2208/532 2225/444 -f 2602/897 2603/899 2587/993 -f 2212/536 2211/535 2228/450 -f 2347/589 2348/591 2332/684 -f 2228/450 2229/1008 2213/537 -f 2297/544 2296/541 2235/543 -f 2421/782 2422/1011 2406/783 -f 2299/548 2298/545 2239/547 -f 2300/550 2299/548 2241/549 -f 2301/552 2300/550 2243/551 -f 2538/925 2539/926 2523/896 -f 2303/556 2302/553 2247/555 -f 2304/558 2303/556 2249/557 -f 2305/560 2304/558 2251/559 -f 2306/562 2305/560 2253/561 -f 2307/564 2306/562 2255/563 -f 2185/495 2186/498 2110/497 -f 2309/568 2308/565 2259/567 -f 2310/1012 2309/568 2261/569 -f 2296/541 2311/573 2233/542 -f 2311/573 2310/575 2263/574 -f 2344/583 2359/580 2265/582 -f 2345/585 2344/583 2266/584 -f 2346/587 2345/585 2267/586 -f 2347/589 2346/587 2268/588 -f 2348/591 2347/589 2269/590 -f 2269/590 2270/593 2349/592 -f 2290/623 2291/624 2275/602 -f 2351/597 2350/594 2272/596 -f 2329/681 2330/682 2314/654 -f 2353/601 2352/598 2274/600 -f 2354/603 2353/601 2275/602 -f 2355/605 2354/603 2276/604 -f 2507/873 2509/875 2562/874 -f 2357/1007 2356/606 2278/608 -f 2358/609 2357/611 2279/610 -f 2309/568 2310/1012 2294/644 -f 2268/588 2267/586 2284/617 -f 2269/590 2268/588 2285/618 -f 2415/776 2416/777 2400/752 -f 2271/595 2270/593 2287/620 -f 2272/596 2271/595 2288/621 -f 2273/599 2272/596 2289/622 -f 2274/600 2273/599 2290/623 -f 2489/855 2491/857 2553/856 -f 2491/857 2493/859 2554/858 -f 2200/524 2201/525 2185/495 -f 2278/608 2277/607 2294/627 -f 2264/581 2279/610 2280/613 -f 2279/610 2278/612 2295/628 -f 2281/631 2280/630 2297/544 -f 2282/632 2281/631 2298/545 -f 2283/633 2282/632 2299/548 -f 2284/634 2283/633 2300/550 -f 2285/635 2284/634 2301/552 -f 2286/636 2285/635 2302/553 -f 2287/637 2286/636 2303/556 -f 2288/638 2287/637 2304/558 -f 2289/639 2288/638 2305/560 -f 2290/640 2289/639 2306/562 -f 2291/641 2290/640 2307/564 -f 2292/642 2291/641 2308/565 -f 2293/643 2292/642 2309/568 -f 2180/410 2181/411 2165/487 -f 2280/630 2295/645 2296/541 -f 2295/645 2294/646 2311/573 -f 2234/650 2232/647 2312/649 -f 2434/718 2435/719 2419/797 -f 2524/898 2525/901 2604/900 -f 2240/656 2238/653 2315/655 -f 2532/914 2533/917 2612/916 -f 2244/660 2242/657 2317/659 -f 2246/662 2244/660 2318/661 -f 2248/664 2246/662 2319/663 -f 2250/666 2248/664 2320/665 -f 2252/668 2250/666 2321/667 -f 2254/670 2252/668 2322/669 -f 2256/672 2254/670 2323/671 -f 2323/671 2324/674 2258/673 -f 2324/674 2325/1013 2260/675 -f 2326/677 2327/648 2232/647 -f 2325/679 2326/677 2262/676 -f 2215/539 2200/524 2184/493 -f 2315/655 2314/654 2331/683 -f 2316/658 2315/655 2332/684 -f 2317/659 2316/658 2333/685 -f 2318/661 2317/659 2334/686 -f 2319/663 2318/661 2335/687 -f 2320/665 2319/663 2336/688 -f 2321/667 2320/665 2337/689 -f 2322/669 2321/667 2338/690 -f 2323/671 2322/669 2339/691 -f 2324/674 2323/671 2340/692 -f 2325/1013 2324/674 2341/693 -f 2327/648 2326/677 2343/695 -f 2326/677 2325/679 2342/694 -f 2328/680 2343/695 2344/583 -f 2330/682 2329/681 2346/587 -f 2331/683 2330/682 2347/589 -f 2169/388 2170/390 2154/476 -f 2333/685 2332/684 2349/592 -f 2334/686 2333/685 2350/594 -f 2581/989 2582/987 2518/986 -f 2336/688 2335/687 2352/598 -f 2337/689 2336/688 2353/601 -f 2343/695 2328/680 2312/649 -f 2339/691 2338/690 2355/605 -f 2340/692 2339/691 2356/606 -f 2343/695 2342/694 2359/580 -f 2342/694 2341/696 2358/609 -f 2208/532 2209/533 2193/511 -f 2425/700 2424/697 2363/699 -f 2426/702 2425/700 2365/701 -f 2427/704 2426/702 2367/703 -f 2428/706 2427/704 2369/705 -f 2429/708 2428/706 2371/707 -f 2431/712 2430/709 2375/711 -f 2432/714 2431/712 2377/713 -f 2107/1014 2105/1015 2797/1016 -f 2434/718 2433/715 2381/717 -f 2229/455 2230/453 2214/538 -f 2436/722 2435/719 2385/721 -f 2437/724 2436/722 2387/723 -f 2438/1017 2437/724 2389/725 -f 2420/781 2421/782 2405/762 -f 2439/729 2438/731 2391/730 -f 2472/739 2487/736 2393/738 -f 2473/741 2472/739 2394/740 -f 2235/543 2237/546 2298/545 -f 2475/745 2474/742 2396/744 -f 2476/747 2475/745 2397/746 -f 2397/746 2398/749 2477/748 -f 2543/930 2544/931 2528/906 -f 2479/753 2478/750 2400/752 -f 2480/755 2479/753 2401/754 -f 2481/757 2480/755 2402/756 -f 2482/759 2481/757 2403/758 -f 2483/761 2482/759 2404/760 -f 2484/763 2483/761 2405/762 -f 2167/472 2152/457 2136/425 -f 2405/762 2406/783 2485/764 -f 2281/614 2282/615 2266/584 -f 2312/649 2313/652 2236/651 -f 2113/393 2115/396 2173/395 -f 2395/743 2394/740 2411/772 -f 2396/744 2395/743 2412/773 -f 2397/746 2396/744 2413/774 -f 2398/749 2397/746 2414/775 -f 2399/751 2398/749 2415/776 -f 2563/877 2564/879 2548/952 -f 2401/754 2400/752 2417/778 -f 2402/756 2401/754 2418/779 -f 2403/758 2402/756 2419/780 -f 2404/760 2403/758 2420/781 -f 2398/749 2399/751 2478/750 -f 2407/766 2392/737 2487/736 -f 2392/737 2407/766 2408/769 -f 2148/448 2149/451 2228/450 -f 2410/788 2409/787 2426/702 -f 2411/789 2410/788 2427/704 -f 2412/790 2411/789 2428/706 -f 2413/791 2412/790 2429/708 -f 2414/792 2413/791 2430/709 -f 2415/793 2414/792 2431/712 -f 2416/794 2415/793 2432/714 -f 2417/795 2416/794 2433/715 -f 2418/796 2417/795 2434/718 -f 2133/420 2135/418 2183/417 -f 2420/798 2419/797 2436/722 -f 2421/799 2420/798 2437/724 -f 2279/610 2264/581 2359/580 -f 2408/786 2423/801 2424/697 -f 2423/801 2422/802 2439/729 -f 2362/806 2360/803 2440/805 -f 2364/808 2362/806 2441/807 -f 2368/812 2366/809 2443/811 -f 2282/615 2283/616 2267/586 -f 2372/816 2370/813 2445/815 -f 2374/818 2372/816 2446/817 -f 2376/820 2374/818 2447/819 -f 2378/822 2376/820 2448/821 -f 2380/824 2378/822 2449/823 -f 2382/826 2380/824 2450/825 -f 2384/828 2382/826 2451/827 -f 2451/827 2452/830 2386/829 -f 2452/830 2453/849 2388/831 -f 2454/833 2455/804 2360/803 -f 2453/835 2454/833 2390/832 -f 2441/807 2442/810 2366/809 -f 2443/811 2442/810 2459/839 -f 2444/814 2443/811 2460/840 -f 2446/817 2445/815 2462/842 -f 2447/819 2446/817 2463/843 -f 2448/821 2447/819 2464/844 -f 2350/594 2351/597 2335/687 -f 2328/680 2329/681 2313/652 -f 2451/827 2450/825 2467/847 -f 2452/830 2451/827 2468/848 -f 2455/804 2454/833 2471/851 -f 2454/833 2453/835 2470/850 -f 2456/836 2471/851 2472/739 -f 2457/837 2456/836 2473/741 -f 2458/838 2457/837 2474/742 -f 2459/839 2458/838 2475/745 -f 2460/840 2459/839 2476/747 -f 2461/841 2460/840 2477/748 -f 2462/842 2461/841 2478/750 -f 2463/843 2462/842 2479/753 -f 2464/844 2463/843 2480/755 -f 2465/845 2464/844 2481/757 -f 2466/846 2465/845 2482/759 -f 2467/847 2466/846 2483/761 -f 2468/848 2467/847 2484/763 -f 2280/613 2281/614 2265/582 -f 2471/851 2470/850 2487/736 -f 2470/850 2469/852 2486/765 -f 2371/707 2373/710 2430/709 -f 2525/901 2526/903 2605/902 -f 2505/870 2507/873 2561/872 -f 2555/861 2554/858 2495/860 -f 2556/863 2555/861 2497/862 -f 2391/730 2361/698 2424/697 -f 2292/625 2293/626 2277/607 -f 2560/871 2559/868 2505/870 -f 2152/457 2153/458 2137/427 -f 2129/409 2131/412 2181/411 -f 2563/877 2562/874 2511/876 -f 2564/879 2563/877 2513/878 -f 2565/881 2564/879 2515/880 -f 2566/954 2565/881 2517/882 -f 2219/433 2220/434 2204/528 -f 2567/886 2566/888 2519/887 -f 2600/893 2615/890 2521/892 -f 2601/895 2600/893 2522/894 -f 2602/897 2601/895 2523/896 -f 2603/899 2602/897 2524/898 -f 2501/867 2503/869 2559/868 -f 2313/652 2314/654 2238/653 -f 2606/905 2605/902 2527/904 -f 2607/907 2606/905 2528/906 -f 2223/441 2224/442 2208/532 -f 2609/911 2608/908 2530/910 -f 2610/913 2609/911 2531/912 -f 2611/915 2610/913 2532/914 -f 2557/864 2558/866 2542/946 -f 2613/1018 2612/916 2534/918 -f 2615/890 2614/919 2520/891 -f 2614/919 2613/921 2535/920 -f 2230/453 2231/424 2215/539 -f 2406/768 2407/766 2486/765 -f 2168/385 2169/388 2153/475 -f 2524/898 2523/896 2540/927 -f 2525/901 2524/898 2541/928 -f 2526/903 2525/901 2542/929 -f 2613/921 2614/919 2598/1004 -f 2145/443 2146/445 2225/444 -f 2529/909 2528/906 2545/932 -f 2530/910 2529/909 2546/933 -f 2531/912 2530/910 2547/934 -f 2532/914 2531/912 2548/935 -f 2533/917 2532/914 2549/936 -f 2534/918 2533/917 2550/937 -f 2520/891 2535/920 2536/923 -f 2535/920 2534/922 2551/938 -f 2537/941 2536/940 2553/856 -f 2538/942 2537/941 2554/858 -f 2344/583 2345/585 2329/681 -f 2537/924 2538/925 2522/894 -f 2541/945 2540/944 2557/864 -f 2536/923 2537/924 2521/892 -f 2543/947 2542/946 2559/868 -f 2544/948 2543/947 2560/871 -f 2545/949 2544/948 2561/872 -f 2546/950 2545/949 2562/874 -f 2547/951 2546/950 2563/877 -f 2408/769 2409/770 2393/738 -f 2549/953 2548/952 2565/881 -f 2550/1019 2549/953 2566/954 -f 2536/940 2551/955 2552/854 -f 2551/955 2550/956 2567/886 -f 2490/960 2488/957 2568/959 -f 2492/962 2490/960 2569/961 -f 2226/447 2227/449 2211/535 -f 2496/966 2494/963 2571/965 -f 2498/968 2496/966 2572/967 -f 2500/970 2498/968 2573/969 -f 2502/972 2500/970 2574/971 -f 2504/974 2502/972 2575/973 -f 2506/976 2504/974 2576/975 -f 2508/978 2506/976 2577/977 -f 2510/980 2508/978 2578/979 -f 2512/982 2510/980 2579/981 -f 2579/981 2580/984 2514/983 -f 2580/984 2581/1020 2516/985 -f 2582/987 2583/958 2488/957 -f 2587/993 2588/994 2572/967 -f 2569/961 2568/959 2585/991 -f 2464/844 2465/845 2449/823 -f 2571/965 2570/964 2587/993 -f 2225/444 2226/447 2210/534 -f 2573/969 2572/967 2589/995 -f 2574/971 2573/969 2590/996 -f 2575/973 2574/971 2591/997 -f 2576/975 2575/973 2592/998 -f 2210/534 2211/535 2195/515 -f 2578/979 2577/977 2594/1000 -f 2608/908 2609/911 2593/999 -f 2353/601 2354/603 2338/690 -f 2581/1020 2580/984 2597/1003 -f 2468/848 2469/853 2453/849 -f 2585/991 2586/992 2570/964 -f 2584/990 2599/1006 2600/893 -f 2585/991 2584/990 2601/895 -f 2381/717 2383/720 2435/719 -f 2588/994 2587/993 2604/900 -f 2589/995 2588/994 2605/902 -f 2590/996 2589/995 2606/905 -f 2591/997 2590/996 2607/907 -f 2592/998 2591/997 2608/908 -f 2601/895 2602/897 2586/992 -f 2594/1000 2593/999 2610/913 -f 2595/1001 2594/1000 2611/915 -f 2596/1002 2595/1001 2612/916 -f 2597/1005 2598/1004 2582/987 -f 2471/851 2456/836 2440/805 -f 2612/916 2613/1018 2597/1003 -f 2542/929 2543/930 2527/904 -f 2594/1000 2595/1001 2579/981 -f 2592/998 2593/999 2577/977 -f 2599/1006 2584/990 2568/959 -f 2465/845 2466/846 2450/825 -f 2424/697 2425/700 2409/787 -f 2255/563 2257/566 2308/565 -f 2115/396 2117/398 2174/397 -f 2598/1004 2599/1006 2583/958 -f 2443/811 2444/814 2370/813 -f 2595/1001 2596/1002 2580/984 -f 2272/596 2273/599 2352/598 -f 2422/785 2423/784 2407/766 -f 2499/865 2501/867 2558/866 -f 2437/724 2438/1017 2422/800 -f 2528/906 2529/909 2608/908 -f 2409/770 2410/771 2394/740 -f 2457/837 2458/838 2442/810 -f 2484/763 2485/764 2469/853 -f 2460/840 2461/841 2445/815 -f 2182/419 2183/417 2167/489 -f 2144/440 2145/443 2224/442 -f 2276/604 2277/607 2356/606 -f 2105/1015 2135/1021 2797/1016 -f 2135/1021 2133/1022 2797/1016 -f 2133/1022 2131/1023 2797/1016 -f 2131/1023 2129/1024 2797/1016 -f 2129/1024 2127/1025 2797/1016 -f 2127/1025 2125/1026 2797/1016 -f 2125/1026 2123/1027 2797/1016 -f 2123/1027 2121/1028 2797/1016 -f 2121/1028 2119/1029 2797/1016 -f 2119/1029 2117/1030 2797/1016 -f 2117/1030 2115/1031 2797/1016 -f 2115/1031 2113/1032 2797/1016 -f 2113/1032 2111/1033 2797/1016 -f 2111/1033 2109/1034 2797/1016 -f 2109/1034 2107/1014 2797/1016 -f 2106/415 2108/1035 2798/416 -f 2108/1035 2110/1036 2798/416 -f 2110/1036 2112/1037 2798/416 -f 2112/1037 2114/1038 2798/416 -f 2114/1038 2116/1039 2798/416 -f 2116/1039 2118/1040 2798/416 -f 2118/1040 2120/1041 2798/416 -f 2120/1041 2122/1042 2798/416 -f 2122/1042 2124/1043 2798/416 -f 2124/1043 2126/1044 2798/416 -f 2126/1044 2128/1045 2798/416 -f 2128/1045 2130/1046 2798/416 -f 2130/1046 2132/1047 2798/416 -f 2132/1047 2134/1048 2798/416 -f 2134/1048 2104/414 2798/416 -f 2233/422 2263/1049 2799/423 -f 2263/1049 2261/1050 2799/423 -f 2261/1050 2259/1051 2799/423 -f 2259/1051 2257/1052 2799/423 -f 2257/1052 2255/1053 2799/423 -f 2255/1053 2253/1054 2799/423 -f 2253/1054 2251/1055 2799/423 -f 2251/1055 2249/1056 2799/423 -f 2249/1056 2247/1057 2799/423 -f 2247/1057 2245/1058 2799/423 -f 2245/1058 2243/1059 2799/423 -f 2243/1059 2241/1060 2799/423 -f 2241/1060 2239/1061 2799/423 -f 2239/1061 2237/1062 2799/423 -f 2237/1062 2235/421 2799/423 -f 2234/571 2236/1063 2800/572 -f 2236/1063 2238/1064 2800/572 -f 2238/1064 2240/1065 2800/572 -f 2240/1065 2242/1066 2800/572 -f 2242/1066 2244/1067 2800/572 -f 2244/1067 2246/1068 2800/572 -f 2246/1068 2248/1069 2800/572 -f 2248/1069 2250/1070 2800/572 -f 2250/1070 2252/1071 2800/572 -f 2252/1071 2254/1072 2800/572 -f 2254/1072 2256/1073 2800/572 -f 2256/1073 2258/1074 2800/572 -f 2258/1074 2260/1075 2800/572 -f 2260/1075 2262/1076 2800/572 -f 2262/1076 2232/570 2800/572 -f 2361/578 2391/1077 2801/579 -f 2391/1077 2389/1078 2801/579 -f 2389/1078 2387/1079 2801/579 -f 2387/1079 2385/1080 2801/579 -f 2385/1080 2383/1081 2801/579 -f 2383/1081 2381/1082 2801/579 -f 2381/1082 2379/1083 2801/579 -f 2379/1083 2377/1084 2801/579 -f 2377/1084 2375/1085 2801/579 -f 2375/1085 2373/1086 2801/579 -f 2373/1086 2371/1087 2801/579 -f 2371/1087 2369/1088 2801/579 -f 2369/1088 2367/1089 2801/579 -f 2367/1089 2365/1090 2801/579 -f 2365/1090 2363/577 2801/579 -f 2362/727 2364/1091 2802/728 -f 2364/1091 2366/1092 2802/728 -f 2366/1092 2368/1093 2802/728 -f 2368/1093 2370/1094 2802/728 -f 2370/1094 2372/1095 2802/728 -f 2372/1095 2374/1096 2802/728 -f 2374/1096 2376/1097 2802/728 -f 2376/1097 2378/1098 2802/728 -f 2378/1098 2380/1099 2802/728 -f 2380/1099 2382/1100 2802/728 -f 2382/1100 2384/1101 2802/728 -f 2384/1101 2386/1102 2802/728 -f 2386/1102 2388/1103 2802/728 -f 2388/1103 2390/1104 2802/728 -f 2390/1104 2360/726 2802/728 -f 2489/734 2519/1105 2803/735 -f 2519/1105 2517/1106 2803/735 -f 2517/1106 2515/1107 2803/735 -f 2515/1107 2513/1108 2803/735 -f 2513/1108 2511/1109 2803/735 -f 2511/1109 2509/1110 2803/735 -f 2509/1110 2507/1111 2803/735 -f 2507/1111 2505/1112 2803/735 -f 2505/1112 2503/1113 2803/735 -f 2503/1113 2501/1114 2803/735 -f 2501/1114 2499/1115 2803/735 -f 2499/1115 2497/1116 2803/735 -f 2497/1116 2495/1117 2803/735 -f 2495/1117 2493/1118 2803/735 -f 2493/1118 2491/733 2803/735 -f 2490/884 2492/1119 2804/885 -f 2492/1119 2494/1120 2804/885 -f 2494/1120 2496/1121 2804/885 -f 2496/1121 2498/1122 2804/885 -f 2498/1122 2500/1123 2804/885 -f 2500/1123 2502/1124 2804/885 -f 2502/1124 2504/1125 2804/885 -f 2504/1125 2506/1126 2804/885 -f 2506/1126 2508/1127 2804/885 -f 2508/1127 2510/1128 2804/885 -f 2510/1128 2512/1129 2804/885 -f 2512/1129 2514/1130 2804/885 -f 2514/1130 2516/1131 2804/885 -f 2516/1131 2518/1132 2804/885 -f 2518/1132 2488/883 2804/885 -f 2869/385 2806/386 2808/387 -f 2870/388 2808/387 2810/389 -f 2871/390 2810/389 2812/391 -f 2872/392 2812/391 2814/393 -f 2873/394 2814/393 2874/395 -f 2874/395 2816/396 2875/397 -f 2875/397 2818/398 2820/399 -f 2876/400 2820/399 2822/401 -f 2877/402 2822/401 2824/403 -f 2878/404 2824/403 2826/405 -f 2879/406 2826/405 2828/407 -f 2880/408 2828/407 2830/409 -f 2881/410 2830/409 2882/411 -f 2882/411 2832/412 2834/413 -f 2805/414 2807/415 3318/416 -f 2884/417 2836/418 2806/386 -f 2883/419 2834/420 2884/417 -f 2936/421 2934/422 3319/423 -f 2932/424 2837/425 2917/426 -f 2917/426 2838/427 2918/428 -f 2918/428 2839/429 2840/430 -f 2919/431 2840/430 2841/432 -f 2920/433 2841/432 2921/434 -f 2921/434 2842/435 2922/436 -f 2922/436 2843/437 2844/438 -f 2923/439 2844/438 2845/440 -f 2924/441 2845/440 2925/442 -f 2925/442 2846/443 2926/444 -f 2926/444 2847/445 2848/446 -f 2927/447 2848/446 2849/448 -f 2928/449 2849/448 2929/450 -f 2929/450 2850/451 2851/452 -f 2931/453 2852/454 2837/425 -f 2930/455 2851/456 2852/454 -f 2837/425 2853/457 2838/427 -f 2838/427 2854/458 2839/429 -f 2839/429 2855/459 2856/460 -f 2840/430 2856/460 2857/461 -f 2841/432 2857/461 2858/462 -f 2842/435 2858/462 2859/463 -f 2843/437 2859/463 2860/464 -f 2844/438 2860/464 2861/465 -f 2845/440 2861/465 2862/466 -f 2846/443 2862/466 2863/467 -f 2847/445 2863/467 2864/468 -f 2848/446 2864/468 2865/469 -f 2849/448 2865/469 2866/470 -f 2850/451 2866/470 2867/471 -f 2852/454 2868/472 2837/425 -f 2851/456 2867/473 2868/472 -f 2853/474 2869/385 2854/475 -f 2854/475 2870/388 2855/476 -f 2855/476 2871/390 2872/392 -f 2856/477 2872/392 2873/394 -f 2857/478 2873/394 2874/395 -f 2858/479 2874/395 2875/397 -f 2859/480 2875/397 2876/400 -f 2860/481 2876/400 2877/402 -f 2861/482 2877/402 2878/404 -f 2862/483 2878/404 2879/406 -f 2863/484 2879/406 2880/408 -f 2864/485 2880/408 2881/410 -f 2865/486 2881/410 2866/487 -f 2866/487 2882/411 2883/488 -f 2868/489 2884/417 2869/385 -f 2867/490 2883/419 2868/489 -f 2805/491 2900/492 2885/493 -f 2807/494 2885/493 2886/495 -f 2809/496 2886/495 2811/497 -f 2811/497 2887/498 2888/499 -f 2813/500 2888/499 2889/501 -f 2815/502 2889/501 2890/503 -f 2817/504 2890/503 2891/505 -f 2819/506 2891/505 2892/507 -f 2821/508 2892/507 2893/509 -f 2823/510 2893/509 2894/511 -f 2825/512 2894/511 2895/513 -f 2827/514 2895/513 2896/515 -f 2829/516 2896/515 2831/517 -f 2831/517 2897/518 2833/519 -f 2835/520 2899/521 2805/491 -f 2833/522 2898/523 2835/520 -f 2885/493 2901/524 2886/495 -f 2886/495 2902/525 2903/526 -f 2887/498 2903/526 2904/527 -f 2888/499 2904/527 2905/528 -f 2889/501 2905/528 2906/529 -f 2890/503 2906/529 2907/530 -f 2891/505 2907/530 2908/531 -f 2892/507 2908/531 2909/532 -f 2893/509 2909/532 2894/511 -f 2894/511 2910/533 2911/534 -f 2895/513 2911/534 2896/515 -f 2896/515 2912/535 2913/536 -f 2897/518 2913/536 2914/537 -f 2899/521 2915/538 2916/539 -f 2898/523 2914/540 2915/538 -f 2916/539 2932/424 2917/426 -f 2901/524 2917/426 2918/428 -f 2902/525 2918/428 2919/431 -f 2903/526 2919/431 2920/433 -f 2904/527 2920/433 2905/528 -f 2905/528 2921/434 2922/436 -f 2906/529 2922/436 2923/439 -f 2907/530 2923/439 2924/441 -f 2908/531 2924/441 2909/532 -f 2909/532 2925/442 2926/444 -f 2910/533 2926/444 2911/534 -f 2911/534 2927/447 2912/535 -f 2912/535 2928/449 2929/450 -f 2913/536 2929/450 2914/537 -f 2915/538 2931/453 2916/539 -f 2914/540 2930/455 2915/538 -f 2900/492 2916/539 2885/493 -f 2997/541 2934/542 2936/543 -f 2998/544 2936/543 2999/545 -f 2999/545 2938/546 2940/547 -f 3000/548 2940/547 2942/549 -f 3001/550 2942/549 2944/551 -f 3002/552 2944/551 3003/553 -f 3003/553 2946/554 2948/555 -f 3004/556 2948/555 2950/557 -f 3005/558 2950/557 2952/559 -f 3006/560 2952/559 2954/561 -f 3007/562 2954/561 2956/563 -f 3008/564 2956/563 3009/565 -f 3009/565 2958/566 2960/567 -f 3010/568 2960/567 2962/569 -f 2933/570 2935/571 3320/572 -f 3012/573 2964/574 2934/542 -f 3011/575 2962/576 2964/574 -f 3064/577 3062/578 3321/579 -f 3060/580 2965/581 2966/582 -f 3045/583 2966/582 2967/584 -f 3046/585 2967/584 2968/586 -f 3047/587 2968/586 2969/588 -f 3048/589 2969/588 2970/590 -f 3049/591 2970/590 3050/592 -f 3050/592 2971/593 3051/594 -f 3051/594 2972/595 2973/596 -f 3052/597 2973/596 3053/598 -f 3053/598 2974/599 2975/600 -f 3054/601 2975/600 2976/602 -f 3055/603 2976/602 2977/604 -f 3056/605 2977/604 3057/606 -f 3057/606 2978/607 2979/608 -f 3059/609 2980/610 3060/580 -f 3058/611 2979/612 2980/610 -f 2965/581 2981/613 2966/582 -f 2966/582 2982/614 2967/584 -f 2967/584 2983/615 2968/586 -f 2968/586 2984/616 2985/617 -f 2969/588 2985/617 2986/618 -f 2970/590 2986/618 2971/593 -f 2971/593 2987/619 2988/620 -f 2972/595 2988/620 2989/621 -f 2973/596 2989/621 2990/622 -f 2974/599 2990/622 2991/623 -f 2975/600 2991/623 2976/602 -f 2976/602 2992/624 2977/604 -f 2977/604 2993/625 2978/607 -f 2978/607 2994/626 2995/627 -f 2980/610 2996/628 2981/613 -f 2979/612 2995/629 2996/628 -f 2981/630 2997/541 2998/544 -f 2982/631 2998/544 2999/545 -f 2983/632 2999/545 3000/548 -f 2984/633 3000/548 3001/550 -f 2985/634 3001/550 3002/552 -f 2986/635 3002/552 3003/553 -f 2987/636 3003/553 3004/556 -f 2988/637 3004/556 3005/558 -f 2989/638 3005/558 3006/560 -f 2990/639 3006/560 3007/562 -f 2991/640 3007/562 3008/564 -f 2992/641 3008/564 3009/565 -f 2993/642 3009/565 3010/568 -f 2994/643 3010/568 2995/644 -f 2996/645 3012/573 2997/541 -f 2995/646 3011/575 3012/573 -f 2933/647 3028/648 3013/649 -f 2935/650 3013/649 2937/651 -f 2937/651 3014/652 2939/653 -f 2939/653 3015/654 3016/655 -f 2941/656 3016/655 2943/657 -f 2943/657 3017/658 3018/659 -f 2945/660 3018/659 3019/661 -f 2947/662 3019/661 3020/663 -f 2949/664 3020/663 3021/665 -f 2951/666 3021/665 3022/667 -f 2953/668 3022/667 3023/669 -f 2955/670 3023/669 3024/671 -f 2957/672 3024/671 2959/673 -f 2959/673 3025/674 2961/675 -f 2963/676 3027/677 2933/647 -f 2961/678 3026/679 2963/676 -f 3013/649 3029/680 3014/652 -f 3014/652 3030/681 3015/654 -f 3015/654 3031/682 3032/683 -f 3016/655 3032/683 3033/684 -f 3017/658 3033/684 3034/685 -f 3018/659 3034/685 3035/686 -f 3019/661 3035/686 3036/687 -f 3020/663 3036/687 3037/688 -f 3021/665 3037/688 3038/689 -f 3022/667 3038/689 3039/690 -f 3023/669 3039/690 3040/691 -f 3024/671 3040/691 3041/692 -f 3025/674 3041/692 3042/693 -f 3027/677 3043/694 3044/695 -f 3026/679 3042/696 3043/694 -f 3044/695 3060/580 3045/583 -f 3029/680 3045/583 3030/681 -f 3030/681 3046/585 3047/587 -f 3031/682 3047/587 3048/589 -f 3032/683 3048/589 3033/684 -f 3033/684 3049/591 3050/592 -f 3034/685 3050/592 3051/594 -f 3035/686 3051/594 3036/687 -f 3036/687 3052/597 3053/598 -f 3037/688 3053/598 3054/601 -f 3038/689 3054/601 3039/690 -f 3039/690 3055/603 3056/605 -f 3040/691 3056/605 3057/606 -f 3041/692 3057/606 3042/693 -f 3043/694 3059/609 3060/580 -f 3042/696 3058/611 3059/609 -f 3028/648 3044/695 3013/649 -f 3125/697 3062/698 3064/699 -f 3126/700 3064/699 3066/701 -f 3127/702 3066/701 3068/703 -f 3128/704 3068/703 3070/705 -f 3129/706 3070/705 3072/707 -f 3130/708 3072/707 3131/709 -f 3131/709 3074/710 3076/711 -f 3132/712 3076/711 3078/713 -f 3133/714 3078/713 3134/715 -f 3134/715 3080/716 3082/717 -f 3135/718 3082/717 3136/719 -f 3136/719 3084/720 3086/721 -f 3137/722 3086/721 3088/723 -f 3138/724 3088/723 3090/725 -f 3061/726 3063/727 3322/728 -f 3140/729 3092/730 3125/697 -f 3139/731 3090/732 3092/730 -f 3192/733 3190/734 3323/735 -f 3188/736 3093/737 3094/738 -f 3173/739 3094/738 3095/740 -f 3174/741 3095/740 3175/742 -f 3175/742 3096/743 3097/744 -f 3176/745 3097/744 3098/746 -f 3177/747 3098/746 3178/748 -f 3178/748 3099/749 3179/750 -f 3179/750 3100/751 3101/752 -f 3180/753 3101/752 3102/754 -f 3181/755 3102/754 3103/756 -f 3182/757 3103/756 3104/758 -f 3183/759 3104/758 3105/760 -f 3184/761 3105/760 3106/762 -f 3185/763 3106/762 3186/764 -f 3187/765 3108/766 3188/736 -f 3186/767 3107/768 3187/765 -f 3093/737 3109/769 3094/738 -f 3094/738 3110/770 3095/740 -f 3095/740 3111/771 3112/772 -f 3096/743 3112/772 3113/773 -f 3097/744 3113/773 3114/774 -f 3098/746 3114/774 3115/775 -f 3099/749 3115/775 3116/776 -f 3100/751 3116/776 3101/752 -f 3101/752 3117/777 3118/778 -f 3102/754 3118/778 3119/779 -f 3103/756 3119/779 3120/780 -f 3104/758 3120/780 3121/781 -f 3105/760 3121/781 3106/762 -f 3106/762 3122/782 3107/783 -f 3108/766 3124/784 3109/769 -f 3107/768 3123/785 3108/766 -f 3109/786 3125/697 3110/787 -f 3110/787 3126/700 3127/702 -f 3111/788 3127/702 3128/704 -f 3112/789 3128/704 3129/706 -f 3113/790 3129/706 3130/708 -f 3114/791 3130/708 3131/709 -f 3115/792 3131/709 3132/712 -f 3116/793 3132/712 3133/714 -f 3117/794 3133/714 3134/715 -f 3118/795 3134/715 3135/718 -f 3119/796 3135/718 3120/797 -f 3120/797 3136/719 3137/722 -f 3121/798 3137/722 3138/724 -f 3122/799 3138/724 3123/800 -f 3124/801 3140/729 3125/697 -f 3123/802 3139/731 3140/729 -f 3061/803 3156/804 3141/805 -f 3063/806 3141/805 3142/807 -f 3065/808 3142/807 3067/809 -f 3067/809 3143/810 3144/811 -f 3069/812 3144/811 3071/813 -f 3071/813 3145/814 3146/815 -f 3073/816 3146/815 3147/817 -f 3075/818 3147/817 3148/819 -f 3077/820 3148/819 3149/821 -f 3079/822 3149/821 3150/823 -f 3081/824 3150/823 3151/825 -f 3083/826 3151/825 3152/827 -f 3085/828 3152/827 3087/829 -f 3087/829 3153/830 3089/831 -f 3091/832 3155/833 3061/803 -f 3089/834 3154/835 3091/832 -f 3141/805 3157/836 3142/807 -f 3142/807 3158/837 3143/810 -f 3143/810 3159/838 3160/839 -f 3144/811 3160/839 3161/840 -f 3145/814 3161/840 3146/815 -f 3146/815 3162/841 3163/842 -f 3147/817 3163/842 3164/843 -f 3148/819 3164/843 3165/844 -f 3149/821 3165/844 3150/823 -f 3150/823 3166/845 3151/825 -f 3151/825 3167/846 3168/847 -f 3152/827 3168/847 3169/848 -f 3153/830 3169/848 3154/849 -f 3155/833 3171/850 3172/851 -f 3154/835 3170/852 3171/850 -f 3172/851 3188/736 3173/739 -f 3157/836 3173/739 3174/741 -f 3158/837 3174/741 3175/742 -f 3159/838 3175/742 3176/745 -f 3160/839 3176/745 3177/747 -f 3161/840 3177/747 3178/748 -f 3162/841 3178/748 3179/750 -f 3163/842 3179/750 3180/753 -f 3164/843 3180/753 3181/755 -f 3165/844 3181/755 3182/757 -f 3166/845 3182/757 3183/759 -f 3167/846 3183/759 3184/761 -f 3168/847 3184/761 3185/763 -f 3169/848 3185/763 3170/853 -f 3171/850 3187/765 3188/736 -f 3170/852 3186/767 3187/765 -f 3156/804 3172/851 3141/805 -f 3253/854 3190/855 3254/856 -f 3254/856 3192/857 3255/858 -f 3255/858 3194/859 3196/860 -f 3256/861 3196/860 3198/862 -f 3257/863 3198/862 3258/864 -f 3258/864 3200/865 3259/866 -f 3259/866 3202/867 3260/868 -f 3260/868 3204/869 3206/870 -f 3261/871 3206/870 3262/872 -f 3262/872 3208/873 3263/874 -f 3263/874 3210/875 3212/876 -f 3264/877 3212/876 3214/878 -f 3265/879 3214/878 3216/880 -f 3266/881 3216/880 3218/882 -f 3189/883 3191/884 3324/885 -f 3268/886 3220/887 3253/854 -f 3316/890 3221/891 3222/892 -f 3301/893 3222/892 3223/894 -f 3302/895 3223/894 3224/896 -f 3303/897 3224/896 3225/898 -f 3304/899 3225/898 3305/900 -f 3305/900 3226/901 3306/902 -f 3306/902 3227/903 3228/904 -f 3307/905 3228/904 3229/906 -f 3308/907 3229/906 3309/908 -f 3309/908 3230/909 3231/910 -f 3310/911 3231/910 3232/912 -f 3311/913 3232/912 3233/914 -f 3312/915 3233/914 3313/916 -f 3313/916 3234/917 3235/918 -f 3315/919 3236/920 3221/891 -f 3314/921 3235/922 3236/920 -f 3221/891 3237/923 3222/892 -f 3222/892 3238/924 3223/894 -f 3223/894 3239/925 3224/896 -f 3224/896 3240/926 3241/927 -f 3225/898 3241/927 3242/928 -f 3226/901 3242/928 3243/929 -f 3227/903 3243/929 3228/904 -f 3228/904 3244/930 3229/906 -f 3229/906 3245/931 3246/932 -f 3230/909 3246/932 3247/933 -f 3231/910 3247/933 3248/934 -f 3232/912 3248/934 3249/935 -f 3233/914 3249/935 3250/936 -f 3234/917 3250/936 3251/937 -f 3236/920 3252/938 3237/923 -f 3235/922 3251/939 3252/938 -f 3237/940 3253/854 3254/856 -f 3238/941 3254/856 3255/858 -f 3239/942 3255/858 3240/943 -f 3240/943 3256/861 3241/944 -f 3241/944 3257/863 3258/864 -f 3242/945 3258/864 3243/946 -f 3243/946 3259/866 3260/868 -f 3244/947 3260/868 3261/871 -f 3245/948 3261/871 3262/872 -f 3246/949 3262/872 3263/874 -f 3247/950 3263/874 3264/877 -f 3248/951 3264/877 3249/952 -f 3249/952 3265/879 3266/881 -f 3250/953 3266/881 3267/954 -f 3252/955 3268/886 3253/854 -f 3251/956 3267/888 3268/886 -f 3189/957 3284/958 3269/959 -f 3191/960 3269/959 3270/961 -f 3193/962 3270/961 3195/963 -f 3195/963 3271/964 3272/965 -f 3197/966 3272/965 3273/967 -f 3199/968 3273/967 3274/969 -f 3201/970 3274/969 3275/971 -f 3203/972 3275/971 3276/973 -f 3205/974 3276/973 3277/975 -f 3207/976 3277/975 3278/977 -f 3209/978 3278/977 3279/979 -f 3211/980 3279/979 3280/981 -f 3213/982 3280/981 3215/983 -f 3215/983 3281/984 3217/985 -f 3219/986 3283/987 3189/957 -f 3217/988 3282/989 3219/986 -f 3269/959 3285/990 3286/991 -f 3270/961 3286/991 3271/964 -f 3271/964 3287/992 3288/993 -f 3272/965 3288/993 3273/967 -f 3273/967 3289/994 3290/995 -f 3274/969 3290/995 3291/996 -f 3275/971 3291/996 3292/997 -f 3276/973 3292/997 3293/998 -f 3277/975 3293/998 3278/977 -f 3278/977 3294/999 3295/1000 -f 3279/979 3295/1000 3280/981 -f 3280/981 3296/1001 3281/984 -f 3281/984 3297/1002 3298/1003 -f 3283/987 3299/1004 3284/958 -f 3282/989 3298/1005 3283/987 -f 3300/1006 3316/890 3301/893 -f 3285/990 3301/893 3302/895 -f 3286/991 3302/895 3287/992 -f 3287/992 3303/897 3288/993 -f 3288/993 3304/899 3305/900 -f 3289/994 3305/900 3306/902 -f 3290/995 3306/902 3307/905 -f 3291/996 3307/905 3308/907 -f 3292/997 3308/907 3309/908 -f 3293/998 3309/908 3294/999 -f 3294/999 3310/911 3311/913 -f 3295/1000 3311/913 3312/915 -f 3296/1001 3312/915 3313/916 -f 3297/1002 3313/916 3298/1003 -f 3299/1004 3315/919 3300/1006 -f 3298/1005 3314/921 3299/1004 -f 3284/958 3300/1006 3269/959 -f 2870/388 2869/385 2808/387 -f 2871/390 2870/388 2810/389 -f 2872/392 2871/390 2812/391 -f 2873/394 2872/392 2814/393 -f 2837/425 2838/427 2917/426 -f 2876/400 2875/397 2820/399 -f 2877/402 2876/400 2822/401 -f 2878/404 2877/402 2824/403 -f 2879/406 2878/404 2826/405 -f 2880/408 2879/406 2828/407 -f 2881/410 2880/408 2830/409 -f 2854/458 2855/459 2839/429 -f 2883/488 2882/411 2834/413 -f 2869/385 2884/417 2806/386 -f 2992/624 2993/625 2977/604 -f 3315/919 3316/890 3300/1006 -f 2944/551 2946/554 3003/553 -f 2919/431 2918/428 2840/430 -f 2920/433 2919/431 2841/432 -f 3198/862 3200/865 3258/864 -f 2842/435 2843/437 2922/436 -f 2923/439 2922/436 2844/438 -f 2924/441 2923/439 2845/440 -f 3220/887 3190/855 3253/854 -f 3095/740 3096/743 3175/742 -f 2927/447 2926/444 2848/446 -f 2928/449 2927/447 2849/448 -f 3057/606 3058/1007 3042/693 -f 2930/1008 2929/450 2851/452 -f 2932/424 2931/453 2837/425 -f 2931/453 2930/455 2852/454 -f 3078/713 3080/716 3134/715 -f 2841/432 2842/435 2921/434 -f 2840/430 2839/429 2856/460 -f 2841/432 2840/430 2857/461 -f 2842/435 2841/432 2858/462 -f 2843/437 2842/435 2859/463 -f 2844/438 2843/437 2860/464 -f 2845/440 2844/438 2861/465 -f 2846/443 2845/440 2862/466 -f 2847/445 2846/443 2863/467 -f 2848/446 2847/445 2864/468 -f 2849/448 2848/446 2865/469 -f 2850/451 2849/448 2866/470 -f 2851/452 2850/451 2867/471 -f 3256/861 3257/863 3241/944 -f 2852/454 2851/456 2868/472 -f 2986/618 2987/619 2971/593 -f 3255/858 3256/861 3240/943 -f 2856/477 2855/476 2872/392 -f 2857/478 2856/477 2873/394 -f 2858/479 2857/478 2874/395 -f 2859/480 2858/479 2875/397 -f 2860/481 2859/480 2876/400 -f 2861/482 2860/481 2877/402 -f 2862/483 2861/482 2878/404 -f 2863/484 2862/483 2879/406 -f 2864/485 2863/484 2880/408 -f 2865/486 2864/485 2881/410 -f 2838/427 2839/429 2918/428 -f 2867/1009 2866/487 2883/488 -f 2853/474 2868/489 2869/385 -f 2807/494 2805/491 2885/493 -f 2809/496 2807/494 2886/495 -f 2971/593 2972/595 3051/594 -f 2813/500 2811/497 2888/499 -f 2815/502 2813/500 2889/501 -f 2817/504 2815/502 2890/503 -f 2819/506 2817/504 2891/505 -f 2821/508 2819/506 2892/507 -f 2823/510 2821/508 2893/509 -f 2825/512 2823/510 2894/511 -f 2827/514 2825/512 2895/513 -f 2829/516 2827/514 2896/515 -f 2896/515 2897/518 2831/517 -f 2897/518 2898/1010 2833/519 -f 2899/521 2900/492 2805/491 -f 2898/523 2899/521 2835/520 -f 2887/498 2886/495 2903/526 -f 2888/499 2887/498 2904/527 -f 2889/501 2888/499 2905/528 -f 2890/503 2889/501 2906/529 -f 2891/505 2890/503 2907/530 -f 2892/507 2891/505 2908/531 -f 2893/509 2892/507 2909/532 -f 3270/961 3271/964 3195/963 -f 2895/513 2894/511 2911/534 -f 2897/518 2896/515 2913/536 -f 2898/1010 2897/518 2914/537 -f 2900/492 2899/521 2916/539 -f 2899/521 2898/523 2915/538 -f 2901/524 2916/539 2917/426 -f 2902/525 2901/524 2918/428 -f 2903/526 2902/525 2919/431 -f 2904/527 2903/526 2920/433 -f 3016/655 3017/658 2943/657 -f 2906/529 2905/528 2922/436 -f 2907/530 2906/529 2923/439 -f 2908/531 2907/530 2924/441 -f 3157/836 3158/837 3142/807 -f 2910/533 2909/532 2926/444 -f 3303/897 3304/899 3288/993 -f 2913/536 2912/535 2929/450 -f 3048/589 3049/591 3033/684 -f 2929/450 2930/1008 2914/537 -f 2998/544 2997/541 2936/543 -f 3122/782 3123/1011 3107/783 -f 3000/548 2999/545 2940/547 -f 3001/550 3000/548 2942/549 -f 3002/552 3001/550 2944/551 -f 3239/925 3240/926 3224/896 -f 3004/556 3003/553 2948/555 -f 3005/558 3004/556 2950/557 -f 3006/560 3005/558 2952/559 -f 3007/562 3006/560 2954/561 -f 3008/564 3007/562 2956/563 -f 2886/495 2887/498 2811/497 -f 3010/568 3009/565 2960/567 -f 3011/1012 3010/568 2962/569 -f 2997/541 3012/573 2934/542 -f 3012/573 3011/575 2964/574 -f 3045/583 3060/580 2966/582 -f 3046/585 3045/583 2967/584 -f 3047/587 3046/585 2968/586 -f 3048/589 3047/587 2969/588 -f 3049/591 3048/589 2970/590 -f 2970/590 2971/593 3050/592 -f 2991/623 2992/624 2976/602 -f 3052/597 3051/594 2973/596 -f 3030/681 3031/682 3015/654 -f 3054/601 3053/598 2975/600 -f 3055/603 3054/601 2976/602 -f 3056/605 3055/603 2977/604 -f 3208/873 3210/875 3263/874 -f 3058/1007 3057/606 2979/608 -f 3059/609 3058/611 2980/610 -f 3010/568 3011/1012 2995/644 -f 2969/588 2968/586 2985/617 -f 2970/590 2969/588 2986/618 -f 3116/776 3117/777 3101/752 -f 2972/595 2971/593 2988/620 -f 2973/596 2972/595 2989/621 -f 2974/599 2973/596 2990/622 -f 2975/600 2974/599 2991/623 -f 3190/855 3192/857 3254/856 -f 3192/857 3194/859 3255/858 -f 2901/524 2902/525 2886/495 -f 2979/608 2978/607 2995/627 -f 2965/581 2980/610 2981/613 -f 2980/610 2979/612 2996/628 -f 2982/631 2981/630 2998/544 -f 2983/632 2982/631 2999/545 -f 2984/633 2983/632 3000/548 -f 2985/634 2984/633 3001/550 -f 2986/635 2985/634 3002/552 -f 2987/636 2986/635 3003/553 -f 2988/637 2987/636 3004/556 -f 2989/638 2988/637 3005/558 -f 2990/639 2989/638 3006/560 -f 2991/640 2990/639 3007/562 -f 2992/641 2991/640 3008/564 -f 2993/642 2992/641 3009/565 -f 2994/643 2993/642 3010/568 -f 2881/410 2882/411 2866/487 -f 2981/630 2996/645 2997/541 -f 2996/645 2995/646 3012/573 -f 2935/650 2933/647 3013/649 -f 3135/718 3136/719 3120/797 -f 3225/898 3226/901 3305/900 -f 2941/656 2939/653 3016/655 -f 3233/914 3234/917 3313/916 -f 2945/660 2943/657 3018/659 -f 2947/662 2945/660 3019/661 -f 2949/664 2947/662 3020/663 -f 2951/666 2949/664 3021/665 -f 2953/668 2951/666 3022/667 -f 2955/670 2953/668 3023/669 -f 2957/672 2955/670 3024/671 -f 3024/671 3025/674 2959/673 -f 3025/674 3026/1013 2961/675 -f 3027/677 3028/648 2933/647 -f 3026/679 3027/677 2963/676 -f 2916/539 2901/524 2885/493 -f 3016/655 3015/654 3032/683 -f 3017/658 3016/655 3033/684 -f 3018/659 3017/658 3034/685 -f 3019/661 3018/659 3035/686 -f 3020/663 3019/661 3036/687 -f 3021/665 3020/663 3037/688 -f 3022/667 3021/665 3038/689 -f 3023/669 3022/667 3039/690 -f 3024/671 3023/669 3040/691 -f 3025/674 3024/671 3041/692 -f 3026/1013 3025/674 3042/693 -f 3028/648 3027/677 3044/695 -f 3027/677 3026/679 3043/694 -f 3029/680 3044/695 3045/583 -f 3031/682 3030/681 3047/587 -f 3032/683 3031/682 3048/589 -f 2870/388 2871/390 2855/476 -f 3034/685 3033/684 3050/592 -f 3035/686 3034/685 3051/594 -f 3282/989 3283/987 3219/986 -f 3037/688 3036/687 3053/598 -f 3038/689 3037/688 3054/601 -f 3044/695 3029/680 3013/649 -f 3040/691 3039/690 3056/605 -f 3041/692 3040/691 3057/606 -f 3044/695 3043/694 3060/580 -f 3043/694 3042/696 3059/609 -f 2909/532 2910/533 2894/511 -f 3126/700 3125/697 3064/699 -f 3127/702 3126/700 3066/701 -f 3128/704 3127/702 3068/703 -f 3129/706 3128/704 3070/705 -f 3130/708 3129/706 3072/707 -f 3132/712 3131/709 3076/711 -f 3133/714 3132/712 3078/713 -f 2808/1014 2806/1015 3317/1016 -f 3135/718 3134/715 3082/717 -f 2930/455 2931/453 2915/538 -f 3137/722 3136/719 3086/721 -f 3138/724 3137/722 3088/723 -f 3139/1017 3138/724 3090/725 -f 3121/781 3122/782 3106/762 -f 3140/729 3139/731 3092/730 -f 3173/739 3188/736 3094/738 -f 3174/741 3173/739 3095/740 -f 2936/543 2938/546 2999/545 -f 3176/745 3175/742 3097/744 -f 3177/747 3176/745 3098/746 -f 3098/746 3099/749 3178/748 -f 3244/930 3245/931 3229/906 -f 3180/753 3179/750 3101/752 -f 3181/755 3180/753 3102/754 -f 3182/757 3181/755 3103/756 -f 3183/759 3182/757 3104/758 -f 3184/761 3183/759 3105/760 -f 3185/763 3184/761 3106/762 -f 2868/472 2853/457 2837/425 -f 3106/762 3107/783 3186/764 -f 2982/614 2983/615 2967/584 -f 3013/649 3014/652 2937/651 -f 2814/393 2816/396 2874/395 -f 3096/743 3095/740 3112/772 -f 3097/744 3096/743 3113/773 -f 3098/746 3097/744 3114/774 -f 3099/749 3098/746 3115/775 -f 3100/751 3099/749 3116/776 -f 3264/877 3265/879 3249/952 -f 3102/754 3101/752 3118/778 -f 3103/756 3102/754 3119/779 -f 3104/758 3103/756 3120/780 -f 3105/760 3104/758 3121/781 -f 3099/749 3100/751 3179/750 -f 3108/766 3093/737 3188/736 -f 3093/737 3108/766 3109/769 -f 2849/448 2850/451 2929/450 -f 3111/788 3110/787 3127/702 -f 3112/789 3111/788 3128/704 -f 3113/790 3112/789 3129/706 -f 3114/791 3113/790 3130/708 -f 3115/792 3114/791 3131/709 -f 3116/793 3115/792 3132/712 -f 3117/794 3116/793 3133/714 -f 3118/795 3117/794 3134/715 -f 3119/796 3118/795 3135/718 -f 2834/420 2836/418 2884/417 -f 3121/798 3120/797 3137/722 -f 3122/799 3121/798 3138/724 -f 2980/610 2965/581 3060/580 -f 3109/786 3124/801 3125/697 -f 3124/801 3123/802 3140/729 -f 3063/806 3061/803 3141/805 -f 3065/808 3063/806 3142/807 -f 3069/812 3067/809 3144/811 -f 2983/615 2984/616 2968/586 -f 3073/816 3071/813 3146/815 -f 3075/818 3073/816 3147/817 -f 3077/820 3075/818 3148/819 -f 3079/822 3077/820 3149/821 -f 3081/824 3079/822 3150/823 -f 3083/826 3081/824 3151/825 -f 3085/828 3083/826 3152/827 -f 3152/827 3153/830 3087/829 -f 3153/830 3154/849 3089/831 -f 3155/833 3156/804 3061/803 -f 3154/835 3155/833 3091/832 -f 3142/807 3143/810 3067/809 -f 3144/811 3143/810 3160/839 -f 3145/814 3144/811 3161/840 -f 3147/817 3146/815 3163/842 -f 3148/819 3147/817 3164/843 -f 3149/821 3148/819 3165/844 -f 3051/594 3052/597 3036/687 -f 3029/680 3030/681 3014/652 -f 3152/827 3151/825 3168/847 -f 3153/830 3152/827 3169/848 -f 3156/804 3155/833 3172/851 -f 3155/833 3154/835 3171/850 -f 3157/836 3172/851 3173/739 -f 3158/837 3157/836 3174/741 -f 3159/838 3158/837 3175/742 -f 3160/839 3159/838 3176/745 -f 3161/840 3160/839 3177/747 -f 3162/841 3161/840 3178/748 -f 3163/842 3162/841 3179/750 -f 3164/843 3163/842 3180/753 -f 3165/844 3164/843 3181/755 -f 3166/845 3165/844 3182/757 -f 3167/846 3166/845 3183/759 -f 3168/847 3167/846 3184/761 -f 3169/848 3168/847 3185/763 -f 2981/613 2982/614 2966/582 -f 3172/851 3171/850 3188/736 -f 3171/850 3170/852 3187/765 -f 3072/707 3074/710 3131/709 -f 3226/901 3227/903 3306/902 -f 3206/870 3208/873 3262/872 -f 3256/861 3255/858 3196/860 -f 3257/863 3256/861 3198/862 -f 3092/730 3062/698 3125/697 -f 2993/625 2994/626 2978/607 -f 3261/871 3260/868 3206/870 -f 2853/457 2854/458 2838/427 -f 2830/409 2832/412 2882/411 -f 3264/877 3263/874 3212/876 -f 3265/879 3264/877 3214/878 -f 3266/881 3265/879 3216/880 -f 3267/954 3266/881 3218/882 -f 2920/433 2921/434 2905/528 -f 3301/893 3316/890 3222/892 -f 3302/895 3301/893 3223/894 -f 3303/897 3302/895 3224/896 -f 3304/899 3303/897 3225/898 -f 3202/867 3204/869 3260/868 -f 3014/652 3015/654 2939/653 -f 3307/905 3306/902 3228/904 -f 3308/907 3307/905 3229/906 -f 2924/441 2925/442 2909/532 -f 3310/911 3309/908 3231/910 -f 3311/913 3310/911 3232/912 -f 3312/915 3311/913 3233/914 -f 3258/864 3259/866 3243/946 -f 3314/1018 3313/916 3235/918 -f 3316/890 3315/919 3221/891 -f 3315/919 3314/921 3236/920 -f 2931/453 2932/424 2916/539 -f 3107/768 3108/766 3187/765 -f 2869/385 2870/388 2854/475 -f 3225/898 3224/896 3241/927 -f 3226/901 3225/898 3242/928 -f 3227/903 3226/901 3243/929 -f 3314/921 3315/919 3299/1004 -f 2846/443 2847/445 2926/444 -f 3230/909 3229/906 3246/932 -f 3231/910 3230/909 3247/933 -f 3232/912 3231/910 3248/934 -f 3233/914 3232/912 3249/935 -f 3234/917 3233/914 3250/936 -f 3235/918 3234/917 3251/937 -f 3221/891 3236/920 3237/923 -f 3236/920 3235/922 3252/938 -f 3238/941 3237/940 3254/856 -f 3239/942 3238/941 3255/858 -f 3045/583 3046/585 3030/681 -f 3238/924 3239/925 3223/894 -f 3242/945 3241/944 3258/864 -f 3237/923 3238/924 3222/892 -f 3244/947 3243/946 3260/868 -f 3245/948 3244/947 3261/871 -f 3246/949 3245/948 3262/872 -f 3247/950 3246/949 3263/874 -f 3248/951 3247/950 3264/877 -f 3109/769 3110/770 3094/738 -f 3250/953 3249/952 3266/881 -f 3251/1019 3250/953 3267/954 -f 3237/940 3252/955 3253/854 -f 3252/955 3251/956 3268/886 -f 3191/960 3189/957 3269/959 -f 3193/962 3191/960 3270/961 -f 2927/447 2928/449 2912/535 -f 3197/966 3195/963 3272/965 -f 3199/968 3197/966 3273/967 -f 3201/970 3199/968 3274/969 -f 3203/972 3201/970 3275/971 -f 3205/974 3203/972 3276/973 -f 3207/976 3205/974 3277/975 -f 3209/978 3207/976 3278/977 -f 3211/980 3209/978 3279/979 -f 3213/982 3211/980 3280/981 -f 3280/981 3281/984 3215/983 -f 3281/984 3282/1020 3217/985 -f 3283/987 3284/958 3189/957 -f 3288/993 3289/994 3273/967 -f 3270/961 3269/959 3286/991 -f 3165/844 3166/845 3150/823 -f 3272/965 3271/964 3288/993 -f 2926/444 2927/447 2911/534 -f 3275/971 3274/969 3291/996 -f 3276/973 3275/971 3292/997 -f 3277/975 3276/973 3293/998 -f 2911/534 2912/535 2896/515 -f 3279/979 3278/977 3295/1000 -f 3309/908 3310/911 3294/999 -f 3054/601 3055/603 3039/690 -f 3282/1020 3281/984 3298/1003 -f 3169/848 3170/853 3154/849 -f 3286/991 3287/992 3271/964 -f 3285/990 3300/1006 3301/893 -f 3286/991 3285/990 3302/895 -f 3082/717 3084/720 3136/719 -f 3289/994 3288/993 3305/900 -f 3290/995 3289/994 3306/902 -f 3291/996 3290/995 3307/905 -f 3292/997 3291/996 3308/907 -f 3293/998 3292/997 3309/908 -f 3302/895 3303/897 3287/992 -f 3295/1000 3294/999 3311/913 -f 3296/1001 3295/1000 3312/915 -f 3297/1002 3296/1001 3313/916 -f 3298/1005 3299/1004 3283/987 -f 3172/851 3157/836 3141/805 -f 3313/916 3314/1018 3298/1003 -f 3243/929 3244/930 3228/904 -f 3295/1000 3296/1001 3280/981 -f 3293/998 3294/999 3278/977 -f 3300/1006 3285/990 3269/959 -f 3166/845 3167/846 3151/825 -f 3125/697 3126/700 3110/787 -f 2956/563 2958/566 3009/565 -f 2816/396 2818/398 2875/397 -f 3299/1004 3300/1006 3284/958 -f 3144/811 3145/814 3071/813 -f 3296/1001 3297/1002 3281/984 -f 2973/596 2974/599 3053/598 -f 3123/785 3124/784 3108/766 -f 3200/865 3202/867 3259/866 -f 3138/724 3139/1017 3123/800 -f 3229/906 3230/909 3309/908 -f 3110/770 3111/771 3095/740 -f 3158/837 3159/838 3143/810 -f 3185/763 3186/764 3170/853 -f 3161/840 3162/841 3146/815 -f 2883/419 2884/417 2868/489 -f 2845/440 2846/443 2925/442 -f 2977/604 2978/607 3057/606 -f 2806/1015 2836/1021 3317/1016 -f 2836/1021 2834/1022 3317/1016 -f 2834/1022 2832/1023 3317/1016 -f 2832/1023 2830/1024 3317/1016 -f 2830/1024 2828/1025 3317/1016 -f 2828/1025 2826/1026 3317/1016 -f 2826/1026 2824/1027 3317/1016 -f 2824/1027 2822/1028 3317/1016 -f 2822/1028 2820/1029 3317/1016 -f 2820/1029 2818/1030 3317/1016 -f 2818/1030 2816/1031 3317/1016 -f 2816/1031 2814/1032 3317/1016 -f 2814/1032 2812/1033 3317/1016 -f 2812/1033 2810/1034 3317/1016 -f 2810/1034 2808/1014 3317/1016 -f 2807/415 2809/1035 3318/416 -f 2809/1035 2811/1036 3318/416 -f 2811/1036 2813/1037 3318/416 -f 2813/1037 2815/1038 3318/416 -f 2815/1038 2817/1039 3318/416 -f 2817/1039 2819/1040 3318/416 -f 2819/1040 2821/1041 3318/416 -f 2821/1041 2823/1042 3318/416 -f 2823/1042 2825/1043 3318/416 -f 2825/1043 2827/1044 3318/416 -f 2827/1044 2829/1045 3318/416 -f 2829/1045 2831/1046 3318/416 -f 2831/1046 2833/1047 3318/416 -f 2833/1047 2835/1048 3318/416 -f 2835/1048 2805/414 3318/416 -f 2934/422 2964/1049 3319/423 -f 2964/1049 2962/1050 3319/423 -f 2962/1050 2960/1051 3319/423 -f 2960/1051 2958/1052 3319/423 -f 2958/1052 2956/1053 3319/423 -f 2956/1053 2954/1054 3319/423 -f 2954/1054 2952/1055 3319/423 -f 2952/1055 2950/1056 3319/423 -f 2950/1056 2948/1057 3319/423 -f 2948/1057 2946/1058 3319/423 -f 2946/1058 2944/1059 3319/423 -f 2944/1059 2942/1060 3319/423 -f 2942/1060 2940/1061 3319/423 -f 2940/1061 2938/1062 3319/423 -f 2938/1062 2936/421 3319/423 -f 2935/571 2937/1063 3320/572 -f 2937/1063 2939/1064 3320/572 -f 2939/1064 2941/1065 3320/572 -f 2941/1065 2943/1066 3320/572 -f 2943/1066 2945/1067 3320/572 -f 2945/1067 2947/1068 3320/572 -f 2947/1068 2949/1069 3320/572 -f 2949/1069 2951/1070 3320/572 -f 2951/1070 2953/1071 3320/572 -f 2953/1071 2955/1072 3320/572 -f 2955/1072 2957/1073 3320/572 -f 2957/1073 2959/1074 3320/572 -f 2959/1074 2961/1075 3320/572 -f 2961/1075 2963/1076 3320/572 -f 2963/1076 2933/570 3320/572 -f 3062/578 3092/1077 3321/579 -f 3092/1077 3090/1078 3321/579 -f 3090/1078 3088/1079 3321/579 -f 3088/1079 3086/1080 3321/579 -f 3086/1080 3084/1081 3321/579 -f 3084/1081 3082/1082 3321/579 -f 3082/1082 3080/1083 3321/579 -f 3080/1083 3078/1084 3321/579 -f 3078/1084 3076/1085 3321/579 -f 3076/1085 3074/1086 3321/579 -f 3074/1086 3072/1087 3321/579 -f 3072/1087 3070/1088 3321/579 -f 3070/1088 3068/1089 3321/579 -f 3068/1089 3066/1090 3321/579 -f 3066/1090 3064/577 3321/579 -f 3063/727 3065/1091 3322/728 -f 3065/1091 3067/1092 3322/728 -f 3067/1092 3069/1093 3322/728 -f 3069/1093 3071/1094 3322/728 -f 3071/1094 3073/1095 3322/728 -f 3073/1095 3075/1096 3322/728 -f 3075/1096 3077/1097 3322/728 -f 3077/1097 3079/1098 3322/728 -f 3079/1098 3081/1099 3322/728 -f 3081/1099 3083/1100 3322/728 -f 3083/1100 3085/1101 3322/728 -f 3085/1101 3087/1102 3322/728 -f 3087/1102 3089/1103 3322/728 -f 3089/1103 3091/1104 3322/728 -f 3091/1104 3061/726 3322/728 -f 3190/734 3220/1105 3323/735 -f 3220/1105 3218/1106 3323/735 -f 3218/1106 3216/1107 3323/735 -f 3216/1107 3214/1108 3323/735 -f 3214/1108 3212/1109 3323/735 -f 3212/1109 3210/1110 3323/735 -f 3210/1110 3208/1111 3323/735 -f 3208/1111 3206/1112 3323/735 -f 3206/1112 3204/1113 3323/735 -f 3204/1113 3202/1114 3323/735 -f 3202/1114 3200/1115 3323/735 -f 3200/1115 3198/1116 3323/735 -f 3198/1116 3196/1117 3323/735 -f 3196/1117 3194/1118 3323/735 -f 3194/1118 3192/733 3323/735 -f 3191/884 3193/1119 3324/885 -f 3193/1119 3195/1120 3324/885 -f 3195/1120 3197/1121 3324/885 -f 3197/1121 3199/1122 3324/885 -f 3199/1122 3201/1123 3324/885 -f 3201/1123 3203/1124 3324/885 -f 3203/1124 3205/1125 3324/885 -f 3205/1125 3207/1126 3324/885 -f 3207/1126 3209/1127 3324/885 -f 3209/1127 3211/1128 3324/885 -f 3211/1128 3213/1129 3324/885 -f 3213/1129 3215/1130 3324/885 -f 3215/1130 3217/1131 3324/885 -f 3217/1131 3219/1132 3324/885 -f 3219/1132 3189/883 3324/885 -f 3389/385 3326/386 3328/387 -f 3390/388 3328/387 3330/389 -f 3391/390 3330/389 3332/391 -f 3392/392 3332/391 3334/393 -f 3393/394 3334/393 3394/395 -f 3394/395 3336/396 3395/397 -f 3395/397 3338/398 3340/399 -f 3396/400 3340/399 3342/401 -f 3397/402 3342/401 3344/403 -f 3398/404 3344/403 3346/405 -f 3399/406 3346/405 3348/407 -f 3400/408 3348/407 3350/409 -f 3401/410 3350/409 3402/411 -f 3402/411 3352/412 3354/413 -f 3325/414 3327/415 3838/416 -f 3404/417 3356/418 3326/386 -f 3403/419 3354/420 3404/417 -f 3456/421 3454/422 3839/423 -f 3452/424 3357/425 3437/426 -f 3437/426 3358/427 3438/428 -f 3438/428 3359/429 3360/430 -f 3439/431 3360/430 3361/432 -f 3440/433 3361/432 3441/434 -f 3441/434 3362/435 3442/436 -f 3442/436 3363/437 3364/438 -f 3443/439 3364/438 3365/440 -f 3444/441 3365/440 3445/442 -f 3445/442 3366/443 3446/444 -f 3446/444 3367/445 3368/446 -f 3447/447 3368/446 3369/448 -f 3448/449 3369/448 3449/450 -f 3449/450 3370/451 3371/452 -f 3451/453 3372/454 3357/425 -f 3450/455 3371/456 3372/454 -f 3357/425 3373/457 3358/427 -f 3358/427 3374/458 3359/429 -f 3359/429 3375/459 3376/460 -f 3360/430 3376/460 3377/461 -f 3361/432 3377/461 3378/462 -f 3362/435 3378/462 3379/463 -f 3363/437 3379/463 3380/464 -f 3364/438 3380/464 3381/465 -f 3365/440 3381/465 3382/466 -f 3366/443 3382/466 3383/467 -f 3367/445 3383/467 3384/468 -f 3368/446 3384/468 3385/469 -f 3369/448 3385/469 3386/470 -f 3370/451 3386/470 3387/471 -f 3372/454 3388/472 3357/425 -f 3371/456 3387/473 3388/472 -f 3373/474 3389/385 3374/475 -f 3374/475 3390/388 3375/476 -f 3375/476 3391/390 3392/392 -f 3376/477 3392/392 3393/394 -f 3377/478 3393/394 3394/395 -f 3378/479 3394/395 3395/397 -f 3379/480 3395/397 3396/400 -f 3380/481 3396/400 3397/402 -f 3381/482 3397/402 3398/404 -f 3382/483 3398/404 3399/406 -f 3383/484 3399/406 3400/408 -f 3384/485 3400/408 3401/410 -f 3385/486 3401/410 3386/487 -f 3386/487 3402/411 3403/488 -f 3388/489 3404/417 3389/385 -f 3387/490 3403/419 3388/489 -f 3325/491 3420/492 3405/493 -f 3327/494 3405/493 3406/495 -f 3329/496 3406/495 3331/497 -f 3331/497 3407/498 3408/499 -f 3333/500 3408/499 3409/501 -f 3335/502 3409/501 3410/503 -f 3337/504 3410/503 3411/505 -f 3339/506 3411/505 3412/507 -f 3341/508 3412/507 3413/509 -f 3343/510 3413/509 3414/511 -f 3345/512 3414/511 3415/513 -f 3347/514 3415/513 3416/515 -f 3349/516 3416/515 3351/517 -f 3351/517 3417/518 3353/519 -f 3355/520 3419/521 3325/491 -f 3353/522 3418/523 3355/520 -f 3405/493 3421/524 3406/495 -f 3406/495 3422/525 3423/526 -f 3407/498 3423/526 3424/527 -f 3408/499 3424/527 3425/528 -f 3409/501 3425/528 3426/529 -f 3410/503 3426/529 3427/530 -f 3411/505 3427/530 3428/531 -f 3412/507 3428/531 3429/532 -f 3413/509 3429/532 3414/511 -f 3414/511 3430/533 3431/534 -f 3415/513 3431/534 3416/515 -f 3416/515 3432/535 3433/536 -f 3417/518 3433/536 3434/537 -f 3419/521 3435/538 3436/539 -f 3418/523 3434/540 3435/538 -f 3436/539 3452/424 3437/426 -f 3421/524 3437/426 3438/428 -f 3422/525 3438/428 3439/431 -f 3423/526 3439/431 3440/433 -f 3424/527 3440/433 3425/528 -f 3425/528 3441/434 3442/436 -f 3426/529 3442/436 3443/439 -f 3427/530 3443/439 3444/441 -f 3428/531 3444/441 3429/532 -f 3429/532 3445/442 3446/444 -f 3430/533 3446/444 3431/534 -f 3431/534 3447/447 3432/535 -f 3432/535 3448/449 3449/450 -f 3433/536 3449/450 3434/537 -f 3435/538 3451/453 3436/539 -f 3434/540 3450/455 3435/538 -f 3420/492 3436/539 3405/493 -f 3517/541 3454/542 3456/543 -f 3518/544 3456/543 3519/545 -f 3519/545 3458/546 3460/547 -f 3520/548 3460/547 3462/549 -f 3521/550 3462/549 3464/551 -f 3522/552 3464/551 3523/553 -f 3523/553 3466/554 3468/555 -f 3524/556 3468/555 3470/557 -f 3525/558 3470/557 3472/559 -f 3526/560 3472/559 3474/561 -f 3527/562 3474/561 3476/563 -f 3528/564 3476/563 3529/565 -f 3529/565 3478/566 3480/567 -f 3530/568 3480/567 3482/569 -f 3453/570 3455/571 3840/572 -f 3532/573 3484/574 3454/542 -f 3531/575 3482/576 3484/574 -f 3584/577 3582/578 3841/579 -f 3580/580 3485/581 3486/582 -f 3565/583 3486/582 3487/584 -f 3566/585 3487/584 3488/586 -f 3567/587 3488/586 3489/588 -f 3568/589 3489/588 3490/590 -f 3569/591 3490/590 3570/592 -f 3570/592 3491/593 3571/594 -f 3571/594 3492/595 3493/596 -f 3572/597 3493/596 3573/598 -f 3573/598 3494/599 3495/600 -f 3574/601 3495/600 3496/602 -f 3575/603 3496/602 3497/604 -f 3576/605 3497/604 3577/606 -f 3577/606 3498/607 3499/608 -f 3579/609 3500/610 3580/580 -f 3578/611 3499/612 3500/610 -f 3485/581 3501/613 3486/582 -f 3486/582 3502/614 3487/584 -f 3487/584 3503/615 3488/586 -f 3488/586 3504/616 3505/617 -f 3489/588 3505/617 3506/618 -f 3490/590 3506/618 3491/593 -f 3491/593 3507/619 3508/620 -f 3492/595 3508/620 3509/621 -f 3493/596 3509/621 3510/622 -f 3494/599 3510/622 3511/623 -f 3495/600 3511/623 3496/602 -f 3496/602 3512/624 3497/604 -f 3497/604 3513/625 3498/607 -f 3498/607 3514/626 3515/627 -f 3500/610 3516/628 3501/613 -f 3499/612 3515/629 3516/628 -f 3501/630 3517/541 3518/544 -f 3502/631 3518/544 3519/545 -f 3503/632 3519/545 3520/548 -f 3504/633 3520/548 3521/550 -f 3505/634 3521/550 3522/552 -f 3506/635 3522/552 3523/553 -f 3507/636 3523/553 3524/556 -f 3508/637 3524/556 3525/558 -f 3509/638 3525/558 3526/560 -f 3510/639 3526/560 3527/562 -f 3511/640 3527/562 3528/564 -f 3512/641 3528/564 3529/565 -f 3513/642 3529/565 3530/568 -f 3514/643 3530/568 3515/644 -f 3516/645 3532/573 3517/541 -f 3515/646 3531/575 3532/573 -f 3453/647 3548/648 3533/649 -f 3455/650 3533/649 3457/651 -f 3457/651 3534/652 3459/653 -f 3459/653 3535/654 3536/655 -f 3461/656 3536/655 3463/657 -f 3463/657 3537/658 3538/659 -f 3465/660 3538/659 3539/661 -f 3467/662 3539/661 3540/663 -f 3469/664 3540/663 3541/665 -f 3471/666 3541/665 3542/667 -f 3473/668 3542/667 3543/669 -f 3475/670 3543/669 3544/671 -f 3477/672 3544/671 3479/673 -f 3479/673 3545/674 3481/675 -f 3483/676 3547/677 3453/647 -f 3481/678 3546/679 3483/676 -f 3533/649 3549/680 3534/652 -f 3534/652 3550/681 3535/654 -f 3535/654 3551/682 3552/683 -f 3536/655 3552/683 3553/684 -f 3537/658 3553/684 3554/685 -f 3538/659 3554/685 3555/686 -f 3539/661 3555/686 3556/687 -f 3540/663 3556/687 3557/688 -f 3541/665 3557/688 3558/689 -f 3542/667 3558/689 3559/690 -f 3543/669 3559/690 3560/691 -f 3544/671 3560/691 3561/692 -f 3545/674 3561/692 3562/693 -f 3547/677 3563/694 3564/695 -f 3546/679 3562/696 3563/694 -f 3564/695 3580/580 3565/583 -f 3549/680 3565/583 3550/681 -f 3550/681 3566/585 3567/587 -f 3551/682 3567/587 3568/589 -f 3552/683 3568/589 3553/684 -f 3553/684 3569/591 3570/592 -f 3554/685 3570/592 3571/594 -f 3555/686 3571/594 3556/687 -f 3556/687 3572/597 3573/598 -f 3557/688 3573/598 3574/601 -f 3558/689 3574/601 3559/690 -f 3559/690 3575/603 3576/605 -f 3560/691 3576/605 3577/606 -f 3561/692 3577/606 3562/693 -f 3563/694 3579/609 3580/580 -f 3562/696 3578/611 3579/609 -f 3548/648 3564/695 3533/649 -f 3645/697 3582/698 3584/699 -f 3646/700 3584/699 3586/701 -f 3647/702 3586/701 3588/703 -f 3648/704 3588/703 3590/705 -f 3649/706 3590/705 3592/707 -f 3650/708 3592/707 3651/709 -f 3651/709 3594/710 3596/711 -f 3652/712 3596/711 3598/713 -f 3653/714 3598/713 3654/715 -f 3654/715 3600/716 3602/717 -f 3655/718 3602/717 3656/719 -f 3656/719 3604/720 3606/721 -f 3657/722 3606/721 3608/723 -f 3658/724 3608/723 3610/725 -f 3581/726 3583/727 3842/728 -f 3660/729 3612/730 3645/697 -f 3659/731 3610/732 3612/730 -f 3712/733 3710/734 3843/735 -f 3708/736 3613/737 3614/738 -f 3693/739 3614/738 3615/740 -f 3694/741 3615/740 3695/742 -f 3695/742 3616/743 3617/744 -f 3696/745 3617/744 3618/746 -f 3697/747 3618/746 3698/748 -f 3698/748 3619/749 3699/750 -f 3699/750 3620/751 3621/752 -f 3700/753 3621/752 3622/754 -f 3701/755 3622/754 3623/756 -f 3702/757 3623/756 3624/758 -f 3703/759 3624/758 3625/760 -f 3704/761 3625/760 3626/762 -f 3705/763 3626/762 3706/764 -f 3707/765 3628/766 3708/736 -f 3706/767 3627/768 3707/765 -f 3613/737 3629/769 3614/738 -f 3614/738 3630/770 3615/740 -f 3615/740 3631/771 3632/772 -f 3616/743 3632/772 3633/773 -f 3617/744 3633/773 3634/774 -f 3618/746 3634/774 3635/775 -f 3619/749 3635/775 3636/776 -f 3620/751 3636/776 3621/752 -f 3621/752 3637/777 3638/778 -f 3622/754 3638/778 3639/779 -f 3623/756 3639/779 3640/780 -f 3624/758 3640/780 3641/781 -f 3625/760 3641/781 3626/762 -f 3626/762 3642/782 3627/783 -f 3628/766 3644/784 3629/769 -f 3627/768 3643/785 3628/766 -f 3629/786 3645/697 3630/787 -f 3630/787 3646/700 3647/702 -f 3631/788 3647/702 3648/704 -f 3632/789 3648/704 3649/706 -f 3633/790 3649/706 3650/708 -f 3634/791 3650/708 3651/709 -f 3635/792 3651/709 3652/712 -f 3636/793 3652/712 3653/714 -f 3637/794 3653/714 3654/715 -f 3638/795 3654/715 3655/718 -f 3639/796 3655/718 3640/797 -f 3640/797 3656/719 3657/722 -f 3641/798 3657/722 3658/724 -f 3642/799 3658/724 3643/800 -f 3644/801 3660/729 3645/697 -f 3643/802 3659/731 3660/729 -f 3581/803 3676/804 3661/805 -f 3583/806 3661/805 3662/807 -f 3585/808 3662/807 3587/809 -f 3587/809 3663/810 3664/811 -f 3589/812 3664/811 3591/813 -f 3591/813 3665/814 3666/815 -f 3593/816 3666/815 3667/817 -f 3595/818 3667/817 3668/819 -f 3597/820 3668/819 3669/821 -f 3599/822 3669/821 3670/823 -f 3601/824 3670/823 3671/825 -f 3603/826 3671/825 3672/827 -f 3605/828 3672/827 3607/829 -f 3607/829 3673/830 3609/831 -f 3611/832 3675/833 3581/803 -f 3609/834 3674/835 3611/832 -f 3661/805 3677/836 3662/807 -f 3662/807 3678/837 3663/810 -f 3663/810 3679/838 3680/839 -f 3664/811 3680/839 3681/840 -f 3665/814 3681/840 3666/815 -f 3666/815 3682/841 3683/842 -f 3667/817 3683/842 3684/843 -f 3668/819 3684/843 3685/844 -f 3669/821 3685/844 3670/823 -f 3670/823 3686/845 3671/825 -f 3671/825 3687/846 3688/847 -f 3672/827 3688/847 3689/848 -f 3673/830 3689/848 3674/849 -f 3675/833 3691/850 3692/851 -f 3674/835 3690/852 3691/850 -f 3692/851 3708/736 3693/739 -f 3677/836 3693/739 3694/741 -f 3678/837 3694/741 3695/742 -f 3679/838 3695/742 3696/745 -f 3680/839 3696/745 3697/747 -f 3681/840 3697/747 3698/748 -f 3682/841 3698/748 3699/750 -f 3683/842 3699/750 3700/753 -f 3684/843 3700/753 3701/755 -f 3685/844 3701/755 3702/757 -f 3686/845 3702/757 3703/759 -f 3687/846 3703/759 3704/761 -f 3688/847 3704/761 3705/763 -f 3689/848 3705/763 3690/853 -f 3691/850 3707/765 3708/736 -f 3690/852 3706/767 3707/765 -f 3676/804 3692/851 3661/805 -f 3773/854 3710/855 3774/856 -f 3774/856 3712/857 3775/858 -f 3775/858 3714/859 3716/860 -f 3776/861 3716/860 3718/862 -f 3777/863 3718/862 3778/864 -f 3778/864 3720/865 3779/866 -f 3779/866 3722/867 3780/868 -f 3780/868 3724/869 3726/870 -f 3781/871 3726/870 3782/872 -f 3782/872 3728/873 3783/874 -f 3783/874 3730/875 3732/876 -f 3784/877 3732/876 3734/878 -f 3785/879 3734/878 3736/880 -f 3786/881 3736/880 3738/882 -f 3709/883 3711/884 3844/885 -f 3788/886 3740/887 3773/854 -f 3836/890 3741/891 3742/892 -f 3821/893 3742/892 3743/894 -f 3822/895 3743/894 3744/896 -f 3823/897 3744/896 3745/898 -f 3824/899 3745/898 3825/900 -f 3825/900 3746/901 3826/902 -f 3826/902 3747/903 3748/904 -f 3827/905 3748/904 3749/906 -f 3828/907 3749/906 3829/908 -f 3829/908 3750/909 3751/910 -f 3830/911 3751/910 3752/912 -f 3831/913 3752/912 3753/914 -f 3832/915 3753/914 3833/916 -f 3833/916 3754/917 3755/918 -f 3835/919 3756/920 3741/891 -f 3834/921 3755/922 3756/920 -f 3741/891 3757/923 3742/892 -f 3742/892 3758/924 3743/894 -f 3743/894 3759/925 3744/896 -f 3744/896 3760/926 3761/927 -f 3745/898 3761/927 3762/928 -f 3746/901 3762/928 3763/929 -f 3747/903 3763/929 3748/904 -f 3748/904 3764/930 3749/906 -f 3749/906 3765/931 3766/932 -f 3750/909 3766/932 3767/933 -f 3751/910 3767/933 3768/934 -f 3752/912 3768/934 3769/935 -f 3753/914 3769/935 3770/936 -f 3754/917 3770/936 3771/937 -f 3756/920 3772/938 3757/923 -f 3755/922 3771/939 3772/938 -f 3757/940 3773/854 3774/856 -f 3758/941 3774/856 3775/858 -f 3759/942 3775/858 3760/943 -f 3760/943 3776/861 3761/944 -f 3761/944 3777/863 3778/864 -f 3762/945 3778/864 3763/946 -f 3763/946 3779/866 3780/868 -f 3764/947 3780/868 3781/871 -f 3765/948 3781/871 3782/872 -f 3766/949 3782/872 3783/874 -f 3767/950 3783/874 3784/877 -f 3768/951 3784/877 3769/952 -f 3769/952 3785/879 3786/881 -f 3770/953 3786/881 3787/954 -f 3772/955 3788/886 3773/854 -f 3771/956 3787/888 3788/886 -f 3709/957 3804/958 3789/959 -f 3711/960 3789/959 3790/961 -f 3713/962 3790/961 3715/963 -f 3715/963 3791/964 3792/965 -f 3717/966 3792/965 3793/967 -f 3719/968 3793/967 3794/969 -f 3721/970 3794/969 3795/971 -f 3723/972 3795/971 3796/973 -f 3725/974 3796/973 3797/975 -f 3727/976 3797/975 3798/977 -f 3729/978 3798/977 3799/979 -f 3731/980 3799/979 3800/981 -f 3733/982 3800/981 3735/983 -f 3735/983 3801/984 3737/985 -f 3739/986 3803/987 3709/957 -f 3737/988 3802/989 3739/986 -f 3789/959 3805/990 3806/991 -f 3790/961 3806/991 3791/964 -f 3791/964 3807/992 3808/993 -f 3792/965 3808/993 3793/967 -f 3793/967 3809/994 3810/995 -f 3794/969 3810/995 3811/996 -f 3795/971 3811/996 3812/997 -f 3796/973 3812/997 3813/998 -f 3797/975 3813/998 3798/977 -f 3798/977 3814/999 3815/1000 -f 3799/979 3815/1000 3800/981 -f 3800/981 3816/1001 3801/984 -f 3801/984 3817/1002 3818/1003 -f 3803/987 3819/1004 3804/958 -f 3802/989 3818/1005 3803/987 -f 3820/1006 3836/890 3821/893 -f 3805/990 3821/893 3822/895 -f 3806/991 3822/895 3807/992 -f 3807/992 3823/897 3808/993 -f 3808/993 3824/899 3825/900 -f 3809/994 3825/900 3826/902 -f 3810/995 3826/902 3827/905 -f 3811/996 3827/905 3828/907 -f 3812/997 3828/907 3829/908 -f 3813/998 3829/908 3814/999 -f 3814/999 3830/911 3831/913 -f 3815/1000 3831/913 3832/915 -f 3816/1001 3832/915 3833/916 -f 3817/1002 3833/916 3818/1003 -f 3819/1004 3835/919 3820/1006 -f 3818/1005 3834/921 3819/1004 -f 3804/958 3820/1006 3789/959 -f 3390/388 3389/385 3328/387 -f 3391/390 3390/388 3330/389 -f 3392/392 3391/390 3332/391 -f 3393/394 3392/392 3334/393 -f 3357/425 3358/427 3437/426 -f 3396/400 3395/397 3340/399 -f 3397/402 3396/400 3342/401 -f 3398/404 3397/402 3344/403 -f 3399/406 3398/404 3346/405 -f 3400/408 3399/406 3348/407 -f 3401/410 3400/408 3350/409 -f 3374/458 3375/459 3359/429 -f 3403/488 3402/411 3354/413 -f 3389/385 3404/417 3326/386 -f 3512/624 3513/625 3497/604 -f 3835/919 3836/890 3820/1006 -f 3464/551 3466/554 3523/553 -f 3439/431 3438/428 3360/430 -f 3440/433 3439/431 3361/432 -f 3718/862 3720/865 3778/864 -f 3362/435 3363/437 3442/436 -f 3443/439 3442/436 3364/438 -f 3444/441 3443/439 3365/440 -f 3740/887 3710/855 3773/854 -f 3615/740 3616/743 3695/742 -f 3447/447 3446/444 3368/446 -f 3448/449 3447/447 3369/448 -f 3577/606 3578/1007 3562/693 -f 3450/1008 3449/450 3371/452 -f 3452/424 3451/453 3357/425 -f 3451/453 3450/455 3372/454 -f 3598/713 3600/716 3654/715 -f 3361/432 3362/435 3441/434 -f 3360/430 3359/429 3376/460 -f 3361/432 3360/430 3377/461 -f 3362/435 3361/432 3378/462 -f 3363/437 3362/435 3379/463 -f 3364/438 3363/437 3380/464 -f 3365/440 3364/438 3381/465 -f 3366/443 3365/440 3382/466 -f 3367/445 3366/443 3383/467 -f 3368/446 3367/445 3384/468 -f 3369/448 3368/446 3385/469 -f 3370/451 3369/448 3386/470 -f 3371/452 3370/451 3387/471 -f 3776/861 3777/863 3761/944 -f 3372/454 3371/456 3388/472 -f 3506/618 3507/619 3491/593 -f 3775/858 3776/861 3760/943 -f 3376/477 3375/476 3392/392 -f 3377/478 3376/477 3393/394 -f 3378/479 3377/478 3394/395 -f 3379/480 3378/479 3395/397 -f 3380/481 3379/480 3396/400 -f 3381/482 3380/481 3397/402 -f 3382/483 3381/482 3398/404 -f 3383/484 3382/483 3399/406 -f 3384/485 3383/484 3400/408 -f 3385/486 3384/485 3401/410 -f 3358/427 3359/429 3438/428 -f 3387/1009 3386/487 3403/488 -f 3373/474 3388/489 3389/385 -f 3327/494 3325/491 3405/493 -f 3329/496 3327/494 3406/495 -f 3491/593 3492/595 3571/594 -f 3333/500 3331/497 3408/499 -f 3335/502 3333/500 3409/501 -f 3337/504 3335/502 3410/503 -f 3339/506 3337/504 3411/505 -f 3341/508 3339/506 3412/507 -f 3343/510 3341/508 3413/509 -f 3345/512 3343/510 3414/511 -f 3347/514 3345/512 3415/513 -f 3349/516 3347/514 3416/515 -f 3416/515 3417/518 3351/517 -f 3417/518 3418/1010 3353/519 -f 3419/521 3420/492 3325/491 -f 3418/523 3419/521 3355/520 -f 3407/498 3406/495 3423/526 -f 3408/499 3407/498 3424/527 -f 3409/501 3408/499 3425/528 -f 3410/503 3409/501 3426/529 -f 3411/505 3410/503 3427/530 -f 3412/507 3411/505 3428/531 -f 3413/509 3412/507 3429/532 -f 3790/961 3791/964 3715/963 -f 3415/513 3414/511 3431/534 -f 3417/518 3416/515 3433/536 -f 3418/1010 3417/518 3434/537 -f 3420/492 3419/521 3436/539 -f 3419/521 3418/523 3435/538 -f 3421/524 3436/539 3437/426 -f 3422/525 3421/524 3438/428 -f 3423/526 3422/525 3439/431 -f 3424/527 3423/526 3440/433 -f 3536/655 3537/658 3463/657 -f 3426/529 3425/528 3442/436 -f 3427/530 3426/529 3443/439 -f 3428/531 3427/530 3444/441 -f 3677/836 3678/837 3662/807 -f 3430/533 3429/532 3446/444 -f 3823/897 3824/899 3808/993 -f 3433/536 3432/535 3449/450 -f 3568/589 3569/591 3553/684 -f 3449/450 3450/1008 3434/537 -f 3518/544 3517/541 3456/543 -f 3642/782 3643/1011 3627/783 -f 3520/548 3519/545 3460/547 -f 3521/550 3520/548 3462/549 -f 3522/552 3521/550 3464/551 -f 3759/925 3760/926 3744/896 -f 3524/556 3523/553 3468/555 -f 3525/558 3524/556 3470/557 -f 3526/560 3525/558 3472/559 -f 3527/562 3526/560 3474/561 -f 3528/564 3527/562 3476/563 -f 3406/495 3407/498 3331/497 -f 3530/568 3529/565 3480/567 -f 3531/1012 3530/568 3482/569 -f 3517/541 3532/573 3454/542 -f 3532/573 3531/575 3484/574 -f 3565/583 3580/580 3486/582 -f 3566/585 3565/583 3487/584 -f 3567/587 3566/585 3488/586 -f 3568/589 3567/587 3489/588 -f 3569/591 3568/589 3490/590 -f 3490/590 3491/593 3570/592 -f 3511/623 3512/624 3496/602 -f 3572/597 3571/594 3493/596 -f 3550/681 3551/682 3535/654 -f 3574/601 3573/598 3495/600 -f 3575/603 3574/601 3496/602 -f 3576/605 3575/603 3497/604 -f 3728/873 3730/875 3783/874 -f 3578/1007 3577/606 3499/608 -f 3579/609 3578/611 3500/610 -f 3530/568 3531/1012 3515/644 -f 3489/588 3488/586 3505/617 -f 3490/590 3489/588 3506/618 -f 3636/776 3637/777 3621/752 -f 3492/595 3491/593 3508/620 -f 3493/596 3492/595 3509/621 -f 3494/599 3493/596 3510/622 -f 3495/600 3494/599 3511/623 -f 3710/855 3712/857 3774/856 -f 3712/857 3714/859 3775/858 -f 3421/524 3422/525 3406/495 -f 3499/608 3498/607 3515/627 -f 3485/581 3500/610 3501/613 -f 3500/610 3499/612 3516/628 -f 3502/631 3501/630 3518/544 -f 3503/632 3502/631 3519/545 -f 3504/633 3503/632 3520/548 -f 3505/634 3504/633 3521/550 -f 3506/635 3505/634 3522/552 -f 3507/636 3506/635 3523/553 -f 3508/637 3507/636 3524/556 -f 3509/638 3508/637 3525/558 -f 3510/639 3509/638 3526/560 -f 3511/640 3510/639 3527/562 -f 3512/641 3511/640 3528/564 -f 3513/642 3512/641 3529/565 -f 3514/643 3513/642 3530/568 -f 3401/410 3402/411 3386/487 -f 3501/630 3516/645 3517/541 -f 3516/645 3515/646 3532/573 -f 3455/650 3453/647 3533/649 -f 3655/718 3656/719 3640/797 -f 3745/898 3746/901 3825/900 -f 3461/656 3459/653 3536/655 -f 3753/914 3754/917 3833/916 -f 3465/660 3463/657 3538/659 -f 3467/662 3465/660 3539/661 -f 3469/664 3467/662 3540/663 -f 3471/666 3469/664 3541/665 -f 3473/668 3471/666 3542/667 -f 3475/670 3473/668 3543/669 -f 3477/672 3475/670 3544/671 -f 3544/671 3545/674 3479/673 -f 3545/674 3546/1013 3481/675 -f 3547/677 3548/648 3453/647 -f 3546/679 3547/677 3483/676 -f 3436/539 3421/524 3405/493 -f 3536/655 3535/654 3552/683 -f 3537/658 3536/655 3553/684 -f 3538/659 3537/658 3554/685 -f 3539/661 3538/659 3555/686 -f 3540/663 3539/661 3556/687 -f 3541/665 3540/663 3557/688 -f 3542/667 3541/665 3558/689 -f 3543/669 3542/667 3559/690 -f 3544/671 3543/669 3560/691 -f 3545/674 3544/671 3561/692 -f 3546/1013 3545/674 3562/693 -f 3548/648 3547/677 3564/695 -f 3547/677 3546/679 3563/694 -f 3549/680 3564/695 3565/583 -f 3551/682 3550/681 3567/587 -f 3552/683 3551/682 3568/589 -f 3390/388 3391/390 3375/476 -f 3554/685 3553/684 3570/592 -f 3555/686 3554/685 3571/594 -f 3802/989 3803/987 3739/986 -f 3557/688 3556/687 3573/598 -f 3558/689 3557/688 3574/601 -f 3564/695 3549/680 3533/649 -f 3560/691 3559/690 3576/605 -f 3561/692 3560/691 3577/606 -f 3564/695 3563/694 3580/580 -f 3563/694 3562/696 3579/609 -f 3429/532 3430/533 3414/511 -f 3646/700 3645/697 3584/699 -f 3647/702 3646/700 3586/701 -f 3648/704 3647/702 3588/703 -f 3649/706 3648/704 3590/705 -f 3650/708 3649/706 3592/707 -f 3652/712 3651/709 3596/711 -f 3653/714 3652/712 3598/713 -f 3328/1014 3326/1015 3837/1016 -f 3655/718 3654/715 3602/717 -f 3450/455 3451/453 3435/538 -f 3657/722 3656/719 3606/721 -f 3658/724 3657/722 3608/723 -f 3659/1017 3658/724 3610/725 -f 3641/781 3642/782 3626/762 -f 3660/729 3659/731 3612/730 -f 3693/739 3708/736 3614/738 -f 3694/741 3693/739 3615/740 -f 3456/543 3458/546 3519/545 -f 3696/745 3695/742 3617/744 -f 3697/747 3696/745 3618/746 -f 3618/746 3619/749 3698/748 -f 3764/930 3765/931 3749/906 -f 3700/753 3699/750 3621/752 -f 3701/755 3700/753 3622/754 -f 3702/757 3701/755 3623/756 -f 3703/759 3702/757 3624/758 -f 3704/761 3703/759 3625/760 -f 3705/763 3704/761 3626/762 -f 3388/472 3373/457 3357/425 -f 3626/762 3627/783 3706/764 -f 3502/614 3503/615 3487/584 -f 3533/649 3534/652 3457/651 -f 3334/393 3336/396 3394/395 -f 3616/743 3615/740 3632/772 -f 3617/744 3616/743 3633/773 -f 3618/746 3617/744 3634/774 -f 3619/749 3618/746 3635/775 -f 3620/751 3619/749 3636/776 -f 3784/877 3785/879 3769/952 -f 3622/754 3621/752 3638/778 -f 3623/756 3622/754 3639/779 -f 3624/758 3623/756 3640/780 -f 3625/760 3624/758 3641/781 -f 3619/749 3620/751 3699/750 -f 3628/766 3613/737 3708/736 -f 3613/737 3628/766 3629/769 -f 3369/448 3370/451 3449/450 -f 3631/788 3630/787 3647/702 -f 3632/789 3631/788 3648/704 -f 3633/790 3632/789 3649/706 -f 3634/791 3633/790 3650/708 -f 3635/792 3634/791 3651/709 -f 3636/793 3635/792 3652/712 -f 3637/794 3636/793 3653/714 -f 3638/795 3637/794 3654/715 -f 3639/796 3638/795 3655/718 -f 3354/420 3356/418 3404/417 -f 3641/798 3640/797 3657/722 -f 3642/799 3641/798 3658/724 -f 3500/610 3485/581 3580/580 -f 3629/786 3644/801 3645/697 -f 3644/801 3643/802 3660/729 -f 3583/806 3581/803 3661/805 -f 3585/808 3583/806 3662/807 -f 3589/812 3587/809 3664/811 -f 3503/615 3504/616 3488/586 -f 3593/816 3591/813 3666/815 -f 3595/818 3593/816 3667/817 -f 3597/820 3595/818 3668/819 -f 3599/822 3597/820 3669/821 -f 3601/824 3599/822 3670/823 -f 3603/826 3601/824 3671/825 -f 3605/828 3603/826 3672/827 -f 3672/827 3673/830 3607/829 -f 3673/830 3674/849 3609/831 -f 3675/833 3676/804 3581/803 -f 3674/835 3675/833 3611/832 -f 3662/807 3663/810 3587/809 -f 3664/811 3663/810 3680/839 -f 3665/814 3664/811 3681/840 -f 3667/817 3666/815 3683/842 -f 3668/819 3667/817 3684/843 -f 3669/821 3668/819 3685/844 -f 3571/594 3572/597 3556/687 -f 3549/680 3550/681 3534/652 -f 3672/827 3671/825 3688/847 -f 3673/830 3672/827 3689/848 -f 3676/804 3675/833 3692/851 -f 3675/833 3674/835 3691/850 -f 3677/836 3692/851 3693/739 -f 3678/837 3677/836 3694/741 -f 3679/838 3678/837 3695/742 -f 3680/839 3679/838 3696/745 -f 3681/840 3680/839 3697/747 -f 3682/841 3681/840 3698/748 -f 3683/842 3682/841 3699/750 -f 3684/843 3683/842 3700/753 -f 3685/844 3684/843 3701/755 -f 3686/845 3685/844 3702/757 -f 3687/846 3686/845 3703/759 -f 3688/847 3687/846 3704/761 -f 3689/848 3688/847 3705/763 -f 3501/613 3502/614 3486/582 -f 3692/851 3691/850 3708/736 -f 3691/850 3690/852 3707/765 -f 3592/707 3594/710 3651/709 -f 3746/901 3747/903 3826/902 -f 3726/870 3728/873 3782/872 -f 3776/861 3775/858 3716/860 -f 3777/863 3776/861 3718/862 -f 3612/730 3582/698 3645/697 -f 3513/625 3514/626 3498/607 -f 3781/871 3780/868 3726/870 -f 3373/457 3374/458 3358/427 -f 3350/409 3352/412 3402/411 -f 3784/877 3783/874 3732/876 -f 3785/879 3784/877 3734/878 -f 3786/881 3785/879 3736/880 -f 3787/954 3786/881 3738/882 -f 3440/433 3441/434 3425/528 -f 3821/893 3836/890 3742/892 -f 3822/895 3821/893 3743/894 -f 3823/897 3822/895 3744/896 -f 3824/899 3823/897 3745/898 -f 3722/867 3724/869 3780/868 -f 3534/652 3535/654 3459/653 -f 3827/905 3826/902 3748/904 -f 3828/907 3827/905 3749/906 -f 3444/441 3445/442 3429/532 -f 3830/911 3829/908 3751/910 -f 3831/913 3830/911 3752/912 -f 3832/915 3831/913 3753/914 -f 3778/864 3779/866 3763/946 -f 3834/1018 3833/916 3755/918 -f 3836/890 3835/919 3741/891 -f 3835/919 3834/921 3756/920 -f 3451/453 3452/424 3436/539 -f 3627/768 3628/766 3707/765 -f 3389/385 3390/388 3374/475 -f 3745/898 3744/896 3761/927 -f 3746/901 3745/898 3762/928 -f 3747/903 3746/901 3763/929 -f 3834/921 3835/919 3819/1004 -f 3366/443 3367/445 3446/444 -f 3750/909 3749/906 3766/932 -f 3751/910 3750/909 3767/933 -f 3752/912 3751/910 3768/934 -f 3753/914 3752/912 3769/935 -f 3754/917 3753/914 3770/936 -f 3755/918 3754/917 3771/937 -f 3741/891 3756/920 3757/923 -f 3756/920 3755/922 3772/938 -f 3758/941 3757/940 3774/856 -f 3759/942 3758/941 3775/858 -f 3565/583 3566/585 3550/681 -f 3758/924 3759/925 3743/894 -f 3762/945 3761/944 3778/864 -f 3757/923 3758/924 3742/892 -f 3764/947 3763/946 3780/868 -f 3765/948 3764/947 3781/871 -f 3766/949 3765/948 3782/872 -f 3767/950 3766/949 3783/874 -f 3768/951 3767/950 3784/877 -f 3629/769 3630/770 3614/738 -f 3770/953 3769/952 3786/881 -f 3771/1019 3770/953 3787/954 -f 3757/940 3772/955 3773/854 -f 3772/955 3771/956 3788/886 -f 3711/960 3709/957 3789/959 -f 3713/962 3711/960 3790/961 -f 3447/447 3448/449 3432/535 -f 3717/966 3715/963 3792/965 -f 3719/968 3717/966 3793/967 -f 3721/970 3719/968 3794/969 -f 3723/972 3721/970 3795/971 -f 3725/974 3723/972 3796/973 -f 3727/976 3725/974 3797/975 -f 3729/978 3727/976 3798/977 -f 3731/980 3729/978 3799/979 -f 3733/982 3731/980 3800/981 -f 3800/981 3801/984 3735/983 -f 3801/984 3802/1020 3737/985 -f 3803/987 3804/958 3709/957 -f 3808/993 3809/994 3793/967 -f 3790/961 3789/959 3806/991 -f 3685/844 3686/845 3670/823 -f 3792/965 3791/964 3808/993 -f 3446/444 3447/447 3431/534 -f 3795/971 3794/969 3811/996 -f 3796/973 3795/971 3812/997 -f 3797/975 3796/973 3813/998 -f 3431/534 3432/535 3416/515 -f 3799/979 3798/977 3815/1000 -f 3829/908 3830/911 3814/999 -f 3574/601 3575/603 3559/690 -f 3802/1020 3801/984 3818/1003 -f 3689/848 3690/853 3674/849 -f 3806/991 3807/992 3791/964 -f 3805/990 3820/1006 3821/893 -f 3806/991 3805/990 3822/895 -f 3602/717 3604/720 3656/719 -f 3809/994 3808/993 3825/900 -f 3810/995 3809/994 3826/902 -f 3811/996 3810/995 3827/905 -f 3812/997 3811/996 3828/907 -f 3813/998 3812/997 3829/908 -f 3822/895 3823/897 3807/992 -f 3815/1000 3814/999 3831/913 -f 3816/1001 3815/1000 3832/915 -f 3817/1002 3816/1001 3833/916 -f 3818/1005 3819/1004 3803/987 -f 3692/851 3677/836 3661/805 -f 3833/916 3834/1018 3818/1003 -f 3763/929 3764/930 3748/904 -f 3815/1000 3816/1001 3800/981 -f 3813/998 3814/999 3798/977 -f 3820/1006 3805/990 3789/959 -f 3686/845 3687/846 3671/825 -f 3645/697 3646/700 3630/787 -f 3476/563 3478/566 3529/565 -f 3336/396 3338/398 3395/397 -f 3819/1004 3820/1006 3804/958 -f 3664/811 3665/814 3591/813 -f 3816/1001 3817/1002 3801/984 -f 3493/596 3494/599 3573/598 -f 3643/785 3644/784 3628/766 -f 3720/865 3722/867 3779/866 -f 3658/724 3659/1017 3643/800 -f 3749/906 3750/909 3829/908 -f 3630/770 3631/771 3615/740 -f 3678/837 3679/838 3663/810 -f 3705/763 3706/764 3690/853 -f 3681/840 3682/841 3666/815 -f 3403/419 3404/417 3388/489 -f 3365/440 3366/443 3445/442 -f 3497/604 3498/607 3577/606 -f 3326/1015 3356/1021 3837/1016 -f 3356/1021 3354/1022 3837/1016 -f 3354/1022 3352/1023 3837/1016 -f 3352/1023 3350/1024 3837/1016 -f 3350/1024 3348/1025 3837/1016 -f 3348/1025 3346/1026 3837/1016 -f 3346/1026 3344/1027 3837/1016 -f 3344/1027 3342/1028 3837/1016 -f 3342/1028 3340/1029 3837/1016 -f 3340/1029 3338/1030 3837/1016 -f 3338/1030 3336/1031 3837/1016 -f 3336/1031 3334/1032 3837/1016 -f 3334/1032 3332/1033 3837/1016 -f 3332/1033 3330/1034 3837/1016 -f 3330/1034 3328/1014 3837/1016 -f 3327/415 3329/1035 3838/416 -f 3329/1035 3331/1036 3838/416 -f 3331/1036 3333/1037 3838/416 -f 3333/1037 3335/1038 3838/416 -f 3335/1038 3337/1039 3838/416 -f 3337/1039 3339/1040 3838/416 -f 3339/1040 3341/1041 3838/416 -f 3341/1041 3343/1042 3838/416 -f 3343/1042 3345/1043 3838/416 -f 3345/1043 3347/1044 3838/416 -f 3347/1044 3349/1045 3838/416 -f 3349/1045 3351/1046 3838/416 -f 3351/1046 3353/1047 3838/416 -f 3353/1047 3355/1048 3838/416 -f 3355/1048 3325/414 3838/416 -f 3454/422 3484/1049 3839/423 -f 3484/1049 3482/1050 3839/423 -f 3482/1050 3480/1051 3839/423 -f 3480/1051 3478/1052 3839/423 -f 3478/1052 3476/1053 3839/423 -f 3476/1053 3474/1054 3839/423 -f 3474/1054 3472/1055 3839/423 -f 3472/1055 3470/1056 3839/423 -f 3470/1056 3468/1057 3839/423 -f 3468/1057 3466/1058 3839/423 -f 3466/1058 3464/1059 3839/423 -f 3464/1059 3462/1060 3839/423 -f 3462/1060 3460/1061 3839/423 -f 3460/1061 3458/1062 3839/423 -f 3458/1062 3456/421 3839/423 -f 3455/571 3457/1063 3840/572 -f 3457/1063 3459/1064 3840/572 -f 3459/1064 3461/1065 3840/572 -f 3461/1065 3463/1066 3840/572 -f 3463/1066 3465/1067 3840/572 -f 3465/1067 3467/1068 3840/572 -f 3467/1068 3469/1069 3840/572 -f 3469/1069 3471/1070 3840/572 -f 3471/1070 3473/1071 3840/572 -f 3473/1071 3475/1072 3840/572 -f 3475/1072 3477/1073 3840/572 -f 3477/1073 3479/1074 3840/572 -f 3479/1074 3481/1075 3840/572 -f 3481/1075 3483/1076 3840/572 -f 3483/1076 3453/570 3840/572 -f 3582/578 3612/1077 3841/579 -f 3612/1077 3610/1078 3841/579 -f 3610/1078 3608/1079 3841/579 -f 3608/1079 3606/1080 3841/579 -f 3606/1080 3604/1081 3841/579 -f 3604/1081 3602/1082 3841/579 -f 3602/1082 3600/1083 3841/579 -f 3600/1083 3598/1084 3841/579 -f 3598/1084 3596/1085 3841/579 -f 3596/1085 3594/1086 3841/579 -f 3594/1086 3592/1087 3841/579 -f 3592/1087 3590/1088 3841/579 -f 3590/1088 3588/1089 3841/579 -f 3588/1089 3586/1090 3841/579 -f 3586/1090 3584/577 3841/579 -f 3583/727 3585/1091 3842/728 -f 3585/1091 3587/1092 3842/728 -f 3587/1092 3589/1093 3842/728 -f 3589/1093 3591/1094 3842/728 -f 3591/1094 3593/1095 3842/728 -f 3593/1095 3595/1096 3842/728 -f 3595/1096 3597/1097 3842/728 -f 3597/1097 3599/1098 3842/728 -f 3599/1098 3601/1099 3842/728 -f 3601/1099 3603/1100 3842/728 -f 3603/1100 3605/1101 3842/728 -f 3605/1101 3607/1102 3842/728 -f 3607/1102 3609/1103 3842/728 -f 3609/1103 3611/1104 3842/728 -f 3611/1104 3581/726 3842/728 -f 3710/734 3740/1105 3843/735 -f 3740/1105 3738/1106 3843/735 -f 3738/1106 3736/1107 3843/735 -f 3736/1107 3734/1108 3843/735 -f 3734/1108 3732/1109 3843/735 -f 3732/1109 3730/1110 3843/735 -f 3730/1110 3728/1111 3843/735 -f 3728/1111 3726/1112 3843/735 -f 3726/1112 3724/1113 3843/735 -f 3724/1113 3722/1114 3843/735 -f 3722/1114 3720/1115 3843/735 -f 3720/1115 3718/1116 3843/735 -f 3718/1116 3716/1117 3843/735 -f 3716/1117 3714/1118 3843/735 -f 3714/1118 3712/733 3843/735 -f 3711/884 3713/1119 3844/885 -f 3713/1119 3715/1120 3844/885 -f 3715/1120 3717/1121 3844/885 -f 3717/1121 3719/1122 3844/885 -f 3719/1122 3721/1123 3844/885 -f 3721/1123 3723/1124 3844/885 -f 3723/1124 3725/1125 3844/885 -f 3725/1125 3727/1126 3844/885 -f 3727/1126 3729/1127 3844/885 -f 3729/1127 3731/1128 3844/885 -f 3731/1128 3733/1129 3844/885 -f 3733/1129 3735/1130 3844/885 -f 3735/1130 3737/1131 3844/885 -f 3737/1131 3739/1132 3844/885 -f 3739/1132 3709/883 3844/885 +f 67/374 66/375 4/376 6/377 +f 68/378 67/374 6/377 8/379 +f 69/380 68/378 8/379 10/381 +f 292/382 291/383 307/384 308/385 +f 73/386 72/387 16/388 18/389 +f 74/390 73/386 18/389 20/391 +f 75/392 74/390 20/391 22/393 +f 76/394 75/392 22/393 24/395 +f 77/396 76/394 24/395 26/397 +f 50/398 51/399 35/400 34/401 +f 460/402 459/403 406/404 408/405 +f 65/406 80/407 32/408 2/409 +f 7/410 9/411 690/412 5/413 +f 188/414 189/415 173/416 172/417 +f 317/418 316/419 332/420 333/421 +f 160/422 158/423 691/424 130/425 +f 72/387 71/426 14/427 16/388 +f 63/428 62/429 78/430 79/431 +f 116/432 115/433 36/434 37/435 +f 394/436 396/437 454/438 453/439 +f 36/434 35/400 51/399 52/440 +f 119/441 118/442 39/443 40/444 +f 120/445 119/441 40/444 41/446 +f 416/447 386/448 449/449 464/450 +f 426/451 425/452 441/453 442/454 +f 124/455 123/456 44/457 45/458 +f 253/459 254/460 238/461 237/462 +f 307/463 306/464 322/465 323/466 +f 128/467 127/468 48/469 33/470 +f 127/468 126/471 47/472 48/469 +f 274/473 276/474 330/475 329/476 +f 26/397 28/477 78/430 77/396 +f 79/431 78/430 28/477 30/478 +f 37/435 36/434 52/440 53/479 +f 38/480 37/435 53/479 54/481 +f 39/443 38/480 54/481 55/482 +f 40/444 39/443 55/482 56/483 +f 41/446 40/444 56/483 57/484 +f 42/485 41/446 57/484 58/486 +f 43/487 42/485 58/486 59/488 +f 44/457 43/487 59/488 60/489 +f 45/458 44/457 60/489 61/490 +f 46/491 45/458 61/490 62/492 +f 47/493 46/491 62/492 63/494 +f 452/495 453/439 437/496 436/497 +f 302/498 303/499 382/500 381/501 +f 182/502 183/503 167/504 166/505 +f 421/506 420/507 436/508 437/509 +f 230/510 229/511 245/512 246/513 +f 53/514 52/515 68/378 69/380 +f 54/516 53/514 69/380 70/517 +f 55/518 54/516 70/517 71/426 +f 56/519 55/518 71/426 72/387 +f 57/520 56/519 72/387 73/386 +f 58/521 57/520 73/386 74/390 +f 59/522 58/521 74/390 75/392 +f 60/523 59/522 75/392 76/394 +f 61/524 60/523 76/394 77/396 +f 34/401 35/400 114/525 113/526 +f 177/527 192/528 208/529 193/530 +f 49/531 64/532 80/407 65/406 +f 5/533 3/534 81/535 82/536 +f 167/504 168/537 247/538 246/513 +f 206/539 205/540 154/541 156/542 +f 11/543 9/544 84/545 85/546 +f 13/547 11/543 85/546 86/548 +f 15/549 13/547 86/548 87/550 +f 17/551 15/549 87/550 88/552 +f 19/553 17/551 88/552 89/554 +f 21/555 19/553 89/554 90/556 +f 23/557 21/555 90/556 91/558 +f 25/559 23/557 91/558 92/560 +f 92/560 93/561 27/562 25/559 +f 93/561 94/563 29/564 27/562 +f 95/565 96/566 1/567 31/568 +f 94/569 95/565 31/568 29/570 +f 175/571 174/572 190/573 191/574 +f 84/545 83/575 99/576 100/577 +f 85/546 84/545 100/577 101/578 +f 86/548 85/546 101/578 102/579 +f 87/550 86/548 102/579 103/580 +f 88/552 87/550 103/580 104/581 +f 89/554 88/552 104/581 105/582 +f 466/583 467/584 391/585 389/586 +f 322/465 321/587 258/588 260/589 +f 475/590 474/591 490/592 491/593 +f 94/563 93/561 109/594 110/595 +f 96/566 95/565 111/596 112/597 +f 95/565 94/569 110/598 111/596 +f 97/599 112/597 128/467 113/526 +f 98/600 97/599 113/526 114/525 +f 99/576 98/600 114/525 115/433 +f 100/577 99/576 115/433 116/432 +f 212/601 213/602 139/603 137/604 +f 464/450 463/605 414/606 416/447 +f 103/580 102/579 118/442 119/441 +f 104/581 103/580 119/441 120/445 +f 353/607 354/608 338/609 337/610 +f 506/611 505/612 426/451 427/613 +f 499/614 500/615 484/616 483/617 +f 470/618 469/619 485/620 486/621 +f 393/622 391/585 467/584 468/623 +f 194/624 193/530 130/625 132/626 +f 303/627 304/628 383/629 382/630 +f 333/421 332/420 280/631 282/632 +f 318/633 319/634 303/499 302/498 +f 372/635 371/636 292/382 293/637 +f 197/638 196/639 136/640 138/641 +f 198/642 197/638 138/641 140/643 +f 435/644 436/508 420/507 419/645 +f 115/433 114/525 35/400 36/434 +f 201/646 200/647 144/648 146/649 +f 202/650 201/646 146/649 148/651 +f 203/652 202/650 148/651 150/653 +f 204/654 203/652 150/653 152/655 +f 82/536 83/575 7/656 5/533 +f 207/657 206/539 156/542 158/658 +f 193/530 208/529 160/659 130/625 +f 133/660 135/661 692/662 131/663 +f 208/529 207/664 158/665 160/659 +f 241/666 256/667 161/668 162/669 +f 288/670 286/671 693/672 258/673 +f 242/674 241/666 162/669 163/675 +f 243/676 242/674 163/675 164/677 +f 244/678 243/676 164/677 165/679 +f 245/512 244/678 165/679 166/505 +f 166/505 167/504 246/513 245/512 +f 187/680 188/414 172/417 171/681 +f 9/544 7/656 83/575 84/545 +f 226/682 227/683 211/684 210/685 +f 319/686 320/687 304/628 303/627 +f 251/688 250/689 171/681 172/417 +f 252/690 251/688 172/417 173/416 +f 404/691 406/404 459/403 458/692 +f 305/693 320/694 336/695 321/587 +f 368/696 367/697 383/629 384/698 +f 209/699 210/685 133/700 131/701 +f 269/702 267/703 341/704 342/705 +f 166/505 165/679 181/706 182/502 +f 312/707 313/708 297/709 296/710 +f 451/711 452/495 436/497 435/712 +f 169/713 168/537 184/714 185/715 +f 170/716 169/713 185/715 186/717 +f 171/681 170/716 186/717 187/680 +f 386/448 388/718 450/719 449/449 +f 248/720 247/538 168/537 169/713 +f 511/721 512/722 496/723 495/724 +f 457/725 456/726 400/727 402/728 +f 161/668 176/729 192/730 177/731 +f 176/729 175/732 191/733 192/730 +f 178/734 177/527 193/530 194/624 +f 179/735 178/734 194/624 195/736 +f 180/737 179/735 195/736 196/639 +f 181/738 180/737 196/639 197/638 +f 182/739 181/738 197/638 198/642 +f 183/740 182/739 198/642 199/741 +f 184/742 183/740 199/741 200/647 +f 185/743 184/742 200/647 201/646 +f 186/744 185/743 201/646 202/650 +f 187/745 186/744 202/650 203/652 +f 188/746 187/745 203/652 204/654 +f 189/747 188/746 204/654 205/540 +f 190/748 189/747 205/540 206/539 +f 77/396 78/430 62/429 61/524 +f 192/528 191/749 207/664 208/529 +f 131/701 129/750 224/751 209/699 +f 331/752 332/420 316/419 315/753 +f 10/381 12/754 70/517 69/380 +f 503/755 502/756 423/757 424/758 +f 429/759 430/760 509/761 508/762 +f 102/579 101/578 117/763 118/442 +f 143/764 141/765 214/766 215/767 +f 145/768 143/764 215/767 216/769 +f 147/770 145/768 216/769 217/771 +f 149/772 147/770 217/771 218/773 +f 151/774 149/772 218/773 219/775 +f 153/776 151/774 219/775 220/777 +f 220/777 221/778 155/779 153/776 +f 221/778 222/780 157/781 155/779 +f 223/782 224/751 129/750 159/783 +f 222/784 223/782 159/783 157/785 +f 112/597 97/599 81/535 96/566 +f 348/786 347/787 363/788 364/789 +f 250/689 249/790 170/716 171/681 +f 213/602 212/601 228/791 229/511 +f 214/766 213/602 229/511 230/510 +f 215/767 214/766 230/510 231/792 +f 216/769 215/767 231/792 232/793 +f 217/771 216/769 232/793 233/794 +f 218/773 217/771 233/794 234/795 +f 219/775 218/773 234/795 235/796 +f 220/777 219/775 235/796 236/797 +f 221/778 220/777 236/797 237/462 +f 222/780 221/778 237/462 238/461 +f 224/751 223/782 239/798 240/799 +f 223/782 222/784 238/800 239/798 +f 225/801 240/799 256/667 241/666 +f 434/802 435/644 419/645 418/803 +f 228/791 227/683 243/676 244/678 +f 66/375 67/374 51/804 50/805 +f 125/806 126/807 110/595 109/594 +f 231/792 230/510 246/513 247/538 +f 478/808 479/809 415/810 413/811 +f 225/801 226/682 210/685 209/699 +f 234/795 233/794 249/790 250/689 +f 240/799 225/801 209/699 224/751 +f 478/812 477/813 493/814 494/815 +f 237/462 236/797 252/690 253/459 +f 126/807 125/806 46/491 47/493 +f 239/798 238/800 254/816 255/817 +f 105/582 106/818 90/556 89/554 +f 236/797 235/796 251/688 252/690 +f 323/466 322/465 260/589 262/819 +f 324/820 323/466 262/819 264/821 +f 325/822 324/820 264/821 266/823 +f 326/824 325/822 266/823 268/825 +f 422/826 423/757 502/756 501/827 +f 329/476 328/828 272/829 274/473 +f 331/752 330/475 276/474 278/830 +f 37/435 38/480 117/763 116/432 +f 126/471 127/468 111/596 110/598 +f 485/620 484/616 500/615 501/827 +f 334/831 333/421 282/632 284/832 +f 335/833 334/831 284/832 286/834 +f 317/835 318/633 302/498 301/836 +f 261/837 263/838 694/839 259/840 +f 369/841 384/698 289/842 290/843 +f 416/844 414/845 695/846 386/847 +f 370/848 369/841 290/843 291/383 +f 132/626 134/849 195/736 194/624 +f 123/456 122/850 43/487 44/457 +f 373/851 372/635 293/637 294/852 +f 294/852 295/853 374/854 373/851 +f 440/855 441/453 425/452 424/758 +f 304/628 289/842 384/698 383/629 +f 377/856 376/857 297/709 298/858 +f 378/859 377/856 298/858 299/860 +f 379/861 378/859 299/860 300/862 +f 380/863 379/861 300/862 301/836 +f 381/501 380/863 301/836 302/498 +f 64/864 49/865 33/470 48/469 +f 178/866 179/867 163/675 162/669 +f 289/842 304/628 320/687 305/868 +f 65/406 66/375 50/805 49/531 +f 446/869 445/870 461/871 462/872 +f 293/637 292/382 308/385 309/873 +f 294/852 293/637 309/873 310/874 +f 295/853 294/852 310/874 311/875 +f 296/710 295/853 311/875 312/707 +f 460/402 461/871 445/870 444/876 +f 168/537 167/504 183/503 184/714 +f 299/860 298/858 314/877 315/878 +f 300/862 299/860 315/878 316/879 +f 301/836 300/862 316/879 317/835 +f 295/853 296/710 375/880 374/854 +f 336/695 335/881 286/882 288/883 +f 196/639 195/736 134/849 136/640 +f 152/655 154/541 205/540 204/654 +f 308/884 307/463 323/466 324/820 +f 309/885 308/884 324/820 325/822 +f 310/886 309/885 325/822 326/824 +f 311/887 310/886 326/824 327/888 +f 312/889 311/887 327/888 328/828 +f 313/890 312/889 328/828 329/476 +f 314/891 313/890 329/476 330/475 +f 315/753 314/891 330/475 331/752 +f 30/892 32/408 80/407 79/893 +f 421/506 422/826 501/827 500/615 +f 318/894 317/418 333/421 334/831 +f 176/729 161/668 256/667 255/817 +f 320/694 319/895 335/881 336/695 +f 259/896 257/897 352/898 337/610 +f 261/899 259/896 337/610 338/609 +f 340/900 339/901 355/902 356/903 +f 179/867 180/904 164/677 163/675 +f 492/905 493/814 477/813 476/906 +f 271/907 269/702 342/705 343/908 +f 273/909 271/907 343/908 344/910 +f 275/911 273/909 344/910 345/912 +f 277/913 275/911 345/912 346/914 +f 279/915 277/913 346/914 347/787 +f 281/916 279/915 347/787 348/786 +f 348/786 349/917 283/918 281/916 +f 349/917 350/919 285/920 283/918 +f 351/921 352/898 257/897 287/922 +f 350/923 351/921 287/922 285/924 +f 106/818 105/582 121/925 122/850 +f 341/704 340/900 356/903 357/926 +f 344/910 343/908 359/927 360/928 +f 345/912 344/910 360/928 361/929 +f 247/538 248/720 232/793 231/792 +f 468/623 467/584 483/617 484/616 +f 349/917 348/786 364/789 365/930 +f 482/931 483/617 467/584 466/583 +f 351/921 350/923 366/932 367/697 +f 353/607 368/696 384/698 369/841 +f 354/608 353/607 369/841 370/848 +f 355/902 354/608 370/848 371/636 +f 356/903 355/902 371/636 372/635 +f 357/926 356/903 372/635 373/851 +f 358/933 357/926 373/851 374/854 +f 359/927 358/933 374/854 375/880 +f 360/928 359/927 375/880 376/857 +f 361/929 360/928 376/857 377/856 +f 362/934 361/929 377/856 378/859 +f 363/788 362/934 378/859 379/861 +f 364/789 363/788 379/861 380/863 +f 365/930 364/789 380/863 381/501 +f 177/731 178/866 162/669 161/668 +f 367/697 366/932 382/630 383/629 +f 268/825 270/935 327/888 326/824 +f 509/761 510/936 494/815 493/814 +f 388/718 390/937 451/711 450/719 +f 97/599 98/600 82/536 81/535 +f 453/439 452/495 392/938 394/436 +f 288/883 258/588 321/587 336/695 +f 38/480 39/443 118/442 117/763 +f 334/831 335/833 319/939 318/894 +f 210/685 211/684 135/940 133/700 +f 49/865 50/398 34/401 33/470 +f 452/495 451/711 390/937 392/938 +f 254/460 253/459 174/572 175/571 +f 461/871 460/402 408/405 410/941 +f 462/872 461/871 410/941 412/942 +f 463/943 462/872 412/942 414/944 +f 116/432 117/763 101/578 100/577 +f 391/945 393/946 696/947 389/948 +f 291/383 292/382 371/636 370/848 +f 497/949 512/722 417/950 418/803 +f 498/951 497/949 418/803 419/645 +f 499/614 498/951 419/645 420/507 +f 500/615 499/614 420/507 421/506 +f 398/952 400/727 456/726 455/953 +f 137/604 135/940 211/684 212/601 +f 402/728 404/691 458/692 457/725 +f 504/954 503/755 424/758 425/452 +f 120/445 121/925 105/582 104/581 +f 507/955 506/611 427/613 428/956 +f 508/762 507/955 428/956 429/759 +f 454/438 455/953 439/957 438/958 +f 141/765 139/603 213/602 214/766 +f 512/722 511/721 432/959 417/950 +f 511/721 510/960 431/961 432/959 +f 127/468 128/467 112/597 111/596 +f 440/962 439/957 455/953 456/726 +f 438/958 437/496 453/439 454/438 +f 200/647 199/741 142/963 144/648 +f 422/826 421/506 437/509 438/964 +f 423/757 422/826 438/964 439/965 +f 510/960 511/721 495/724 494/966 +f 376/857 375/880 296/710 297/709 +f 427/613 426/451 442/454 443/967 +f 428/956 427/613 443/967 444/968 +f 429/759 428/956 444/968 445/969 +f 430/760 429/759 445/969 446/970 +f 431/971 430/760 446/970 447/972 +f 417/950 432/959 448/973 433/974 +f 432/959 431/961 447/975 448/973 +f 434/976 433/977 449/449 450/719 +f 435/712 434/976 450/719 451/711 +f 241/666 242/674 226/682 225/801 +f 52/515 51/804 67/374 68/378 +f 48/469 47/472 63/978 64/864 +f 433/974 434/802 418/803 417/950 +f 510/936 509/761 430/760 431/971 +f 441/979 440/962 456/726 457/725 +f 442/980 441/979 457/725 458/692 +f 443/981 442/980 458/692 459/403 +f 444/876 443/981 459/403 460/402 +f 305/868 306/982 290/843 289/842 +f 298/858 297/709 313/708 314/877 +f 447/983 446/869 462/872 463/943 +f 433/977 448/984 464/450 449/449 +f 448/984 447/985 463/605 464/450 +f 387/986 385/987 480/988 465/989 +f 389/586 387/986 465/989 466/583 +f 123/456 124/455 108/990 107/991 +f 91/558 90/556 106/818 107/991 +f 395/992 393/622 468/623 469/619 +f 397/993 395/992 469/619 470/618 +f 399/994 397/993 470/618 471/995 +f 401/996 399/994 471/995 472/997 +f 403/998 401/996 472/997 473/999 +f 405/1000 403/998 473/999 474/591 +f 407/1001 405/1000 474/591 475/590 +f 409/1002 407/1001 475/590 476/906 +f 476/906 477/813 411/1003 409/1002 +f 477/813 478/812 413/1004 411/1003 +f 479/809 480/988 385/987 415/810 +f 484/616 485/620 469/619 468/623 +f 233/794 232/793 248/720 249/790 +f 361/929 362/934 346/914 345/912 +f 481/1005 496/723 512/722 497/949 +f 122/850 123/456 107/991 106/818 +f 466/583 465/989 481/1005 482/931 +f 471/995 470/618 486/621 487/1006 +f 472/997 471/995 487/1006 488/1007 +f 473/999 472/997 488/1007 489/1008 +f 107/991 108/990 92/560 91/558 +f 496/723 481/1005 465/989 480/988 +f 505/612 506/611 490/592 489/1008 +f 365/930 366/1009 350/919 349/917 +f 368/696 353/607 337/610 352/898 +f 482/931 481/1005 497/949 498/951 +f 491/593 490/592 506/611 507/955 +f 486/621 485/620 501/827 502/756 +f 487/1006 486/621 502/756 503/755 +f 488/1007 487/1006 503/755 504/954 +f 489/1008 488/1007 504/954 505/612 +f 498/951 499/614 483/617 482/931 +f 250/689 251/688 235/796 234/795 +f 492/905 491/593 507/955 508/762 +f 493/814 492/905 508/762 509/761 +f 494/966 495/724 479/809 478/808 +f 439/965 440/855 424/758 423/757 +f 140/643 142/963 199/741 198/642 +f 42/485 43/487 122/850 121/925 +f 491/593 492/905 476/906 475/590 +f 489/1008 490/592 474/591 473/999 +f 244/678 245/512 229/511 228/791 +f 227/683 226/682 242/674 243/676 +f 362/934 363/788 347/787 346/914 +f 321/587 322/465 306/464 305/693 +f 278/830 280/631 332/420 331/752 +f 83/575 82/536 98/600 99/576 +f 328/828 327/888 270/935 272/829 +f 352/898 351/921 367/697 368/696 +f 340/900 341/704 267/703 265/1010 +f 169/713 170/716 249/790 248/720 +f 109/594 108/990 124/455 125/806 +f 396/437 398/952 455/953 454/438 +f 255/817 254/816 175/732 176/729 +f 212/601 211/684 227/683 228/791 +f 189/415 190/573 174/572 173/416 +f 425/452 426/451 505/612 504/954 +f 495/724 496/723 480/988 479/809 +f 343/908 342/705 358/933 359/927 +f 306/982 307/384 291/383 290/843 +f 354/608 355/902 339/901 338/609 +f 265/1010 263/1011 339/901 340/900 +f 381/501 382/500 366/1009 365/930 +f 33/470 34/401 113/526 128/467 +f 338/609 339/901 263/1011 261/899 +f 41/446 42/485 121/925 120/445 +f 79/893 80/407 64/532 63/1012 +f 2/1013 32/1014 689/1015 4/1016 +f 3/534 1/567 96/566 81/535 +f 93/561 92/560 108/990 109/594 +f 206/539 207/657 191/1017 190/748 +f 165/679 164/677 180/904 181/706 +f 240/799 239/798 255/817 256/667 +f 30/1018 28/1019 689/1015 32/1014 +f 45/458 46/491 125/806 124/455 +f 12/754 14/427 71/426 70/517 +f 173/416 174/572 253/459 252/690 +f 357/926 358/933 342/705 341/704 +f 26/1020 24/1021 689/1015 28/1019 +f 22/1022 20/1023 689/1015 24/1021 +f 18/1024 16/1025 689/1015 20/1023 +f 14/1026 12/1027 689/1015 16/1025 +f 10/1028 8/1029 689/1015 12/1027 +f 6/1030 4/1016 689/1015 8/1029 +f 31/1031 1/1032 3/1033 690/412 +f 3/1033 5/413 690/412 +f 11/1034 13/1035 690/412 9/411 +f 15/1036 17/1037 690/412 13/1035 +f 21/1038 23/1039 690/412 19/1040 +f 17/1037 19/1040 690/412 +f 27/1041 29/1042 690/412 25/1043 +f 23/1039 25/1043 690/412 +f 134/1044 132/1045 130/425 691/424 +f 29/1042 31/1031 690/412 +f 154/1046 152/1047 691/424 156/1048 +f 158/423 156/1048 691/424 +f 150/1049 148/1050 691/424 152/1047 +f 146/1051 144/1052 691/424 148/1050 +f 142/1053 140/1054 691/424 144/1052 +f 136/1055 134/1044 691/424 138/1056 +f 140/1054 138/1056 691/424 +f 159/1057 129/1058 131/663 692/662 +f 139/1059 141/1060 692/662 137/1061 +f 135/661 137/1061 692/662 +f 143/1062 145/1063 692/662 141/1060 +f 147/1064 149/1065 692/662 145/1063 +f 153/1066 155/1067 692/662 151/1068 +f 149/1065 151/1068 692/662 +f 157/1069 159/1057 692/662 155/1067 +f 262/1070 260/1071 258/673 693/672 +f 284/1072 282/1073 693/672 286/671 +f 280/1074 278/1075 693/672 282/1073 +f 276/1076 274/1077 693/672 278/1075 +f 270/1078 268/1079 693/672 272/1080 +f 274/1077 272/1080 693/672 +f 266/1081 264/1082 693/672 268/1079 +f 287/1083 257/1084 259/840 694/839 +f 264/1082 262/1070 693/672 +f 265/1085 267/1086 694/839 263/838 +f 269/1087 271/1088 694/839 267/1086 +f 275/1089 277/1090 694/839 273/1091 +f 271/1088 273/1091 694/839 +f 281/1092 283/1093 694/839 279/1094 +f 277/1090 279/1094 694/839 +f 285/1095 287/1083 694/839 283/1093 +f 390/1096 388/1097 386/847 695/846 +f 410/1098 408/1099 695/846 412/1100 +f 414/845 412/1100 695/846 +f 406/1101 404/1102 695/846 408/1099 +f 402/1103 400/1104 695/846 404/1102 +f 396/1105 394/1106 695/846 398/1107 +f 400/1104 398/1107 695/846 +f 392/1108 390/1096 695/846 394/1106 +f 415/1109 385/1110 387/1111 696/947 +f 387/1111 389/948 696/947 +f 395/1112 397/1113 696/947 393/946 +f 399/1114 401/1115 696/947 397/1113 +f 405/1116 407/1117 696/947 403/1118 +f 401/1115 403/1118 696/947 +f 411/1119 413/1120 696/947 409/1121 +f 407/1117 409/1121 696/947 +f 762/375 761/406 698/409 700/376 +f 413/1120 415/1109 696/947 +f 763/374 762/375 700/376 702/377 +f 764/378 763/374 702/377 704/379 +f 765/380 764/378 704/379 706/381 +f 987/382 986/383 1002/384 1003/385 +f 769/386 768/387 712/388 714/389 +f 770/390 769/386 714/389 716/391 +f 771/392 770/390 716/391 718/393 +f 772/394 771/392 718/393 720/395 +f 773/396 772/394 720/395 722/397 +f 746/398 747/399 731/400 730/401 +f 1155/402 1154/403 1101/404 1103/405 +f 761/406 776/407 728/408 698/409 +f 703/410 705/411 1386/412 701/413 +f 884/414 885/415 869/416 868/417 +f 1012/418 1011/419 1027/420 1028/421 +f 856/422 854/423 1387/424 826/425 +f 768/387 767/426 710/427 712/388 +f 759/428 758/429 774/430 775/431 +f 812/432 811/433 732/434 733/435 +f 1089/436 1091/437 1149/438 1148/439 +f 732/434 731/400 747/399 748/440 +f 815/441 814/442 735/443 736/444 +f 816/445 815/441 736/444 737/446 +f 1111/447 1081/448 1144/449 1159/450 +f 1121/451 1120/452 1136/453 1137/454 +f 820/455 819/456 740/457 741/458 +f 948/459 949/460 934/461 933/462 +f 1002/463 1001/464 1017/465 1018/466 +f 824/467 823/468 744/469 729/470 +f 823/468 822/471 743/472 744/469 +f 969/473 971/474 1025/475 1024/476 +f 722/397 724/477 774/430 773/396 +f 775/431 774/430 724/477 726/478 +f 733/435 732/434 748/440 749/479 +f 734/480 733/435 749/479 750/481 +f 735/443 734/480 750/481 751/482 +f 736/444 735/443 751/482 752/483 +f 737/446 736/444 752/483 753/484 +f 738/485 737/446 753/484 754/486 +f 739/487 738/485 754/486 755/488 +f 740/457 739/487 755/488 756/489 +f 741/458 740/457 756/489 757/490 +f 742/491 741/458 757/490 758/492 +f 743/493 742/491 758/492 759/494 +f 1147/495 1148/439 1132/496 1131/497 +f 997/498 998/499 1077/500 1076/501 +f 878/502 879/503 863/504 862/505 +f 1116/506 1115/507 1131/508 1132/509 +f 926/510 925/511 941/512 942/513 +f 749/514 748/515 764/378 765/380 +f 750/516 749/514 765/380 766/517 +f 751/518 750/516 766/517 767/426 +f 752/519 751/518 767/426 768/387 +f 753/520 752/519 768/387 769/386 +f 754/521 753/520 769/386 770/390 +f 755/522 754/521 770/390 771/392 +f 756/523 755/522 771/392 772/394 +f 757/524 756/523 772/394 773/396 +f 730/401 731/400 810/525 809/526 +f 873/527 888/528 904/529 889/530 +f 745/531 760/532 776/407 761/406 +f 701/533 699/534 777/535 778/536 +f 863/504 864/537 943/538 942/513 +f 902/539 901/540 850/541 852/542 +f 707/543 705/544 780/545 781/546 +f 709/547 707/543 781/546 782/548 +f 711/549 709/547 782/548 783/550 +f 713/551 711/549 783/550 784/552 +f 715/553 713/551 784/552 785/554 +f 717/555 715/553 785/554 786/556 +f 719/557 717/555 786/556 787/558 +f 721/559 719/557 787/558 788/560 +f 788/560 789/561 723/562 721/559 +f 789/561 790/563 725/564 723/562 +f 791/565 792/566 697/567 727/568 +f 790/569 791/565 727/568 725/570 +f 871/571 870/572 886/573 887/574 +f 780/545 779/575 795/576 796/577 +f 781/546 780/545 796/577 797/578 +f 782/548 781/546 797/578 798/579 +f 783/550 782/548 798/579 799/580 +f 784/552 783/550 799/580 800/581 +f 785/554 784/552 800/581 801/582 +f 1161/583 1162/584 1086/585 1084/586 +f 1017/465 1016/587 953/588 955/589 +f 1170/590 1169/591 1185/592 1186/593 +f 790/563 789/561 805/594 806/595 +f 792/566 791/565 807/596 808/597 +f 791/565 790/569 806/598 807/596 +f 793/599 808/597 824/467 809/526 +f 794/600 793/599 809/526 810/525 +f 795/576 794/600 810/525 811/433 +f 796/577 795/576 811/433 812/432 +f 908/601 909/602 835/603 833/604 +f 1159/450 1158/605 1109/606 1111/447 +f 799/580 798/579 814/442 815/441 +f 800/581 799/580 815/441 816/445 +f 1048/607 1049/608 1033/609 1032/610 +f 1201/611 1200/612 1121/451 1122/613 +f 1194/614 1195/615 1179/616 1178/617 +f 1165/618 1164/619 1180/620 1181/621 +f 1088/622 1086/585 1162/584 1163/623 +f 890/624 889/530 826/625 828/626 +f 998/627 999/628 1078/629 1077/630 +f 1028/421 1027/420 975/631 977/632 +f 1013/633 1014/634 998/499 997/498 +f 1067/635 1066/636 987/382 988/637 +f 893/638 892/639 832/640 834/641 +f 894/642 893/638 834/641 836/643 +f 1130/644 1131/508 1115/507 1114/645 +f 811/433 810/525 731/400 732/434 +f 897/646 896/647 840/648 842/649 +f 898/650 897/646 842/649 844/651 +f 899/652 898/650 844/651 846/653 +f 900/654 899/652 846/653 848/655 +f 778/536 779/575 703/656 701/533 +f 903/657 902/539 852/542 854/658 +f 889/530 904/529 856/659 826/625 +f 829/660 831/661 1388/662 827/663 +f 904/529 903/664 854/665 856/659 +f 937/666 951/667 857/668 858/669 +f 983/670 981/671 1389/672 953/673 +f 938/674 937/666 858/669 859/675 +f 939/676 938/674 859/675 860/677 +f 940/678 939/676 860/677 861/679 +f 941/512 940/678 861/679 862/505 +f 862/505 863/504 942/513 941/512 +f 883/680 884/414 868/417 867/681 +f 705/544 703/656 779/575 780/545 +f 922/682 923/683 907/684 906/685 +f 1014/686 1015/687 999/628 998/627 +f 947/688 946/689 867/681 868/417 +f 1208/690 947/688 868/417 869/416 +f 1099/691 1101/404 1154/403 1153/692 +f 1000/693 1015/694 1031/695 1016/587 +f 1063/696 1062/697 1078/629 1079/698 +f 905/699 906/685 829/700 827/701 +f 964/702 962/703 1036/704 1037/705 +f 862/505 861/679 877/706 878/502 +f 1007/707 1008/708 992/709 991/710 +f 1146/711 1147/495 1131/497 1130/712 +f 865/713 864/537 880/714 881/715 +f 866/716 865/713 881/715 882/717 +f 867/681 866/716 882/717 883/680 +f 1081/448 1083/718 1145/719 1144/449 +f 944/720 943/538 864/537 865/713 +f 1206/721 1207/722 1191/723 1190/724 +f 1152/725 1151/726 1095/727 1097/728 +f 857/668 872/729 888/730 873/731 +f 872/729 871/732 887/733 888/730 +f 874/734 873/527 889/530 890/624 +f 875/735 874/734 890/624 891/736 +f 876/737 875/735 891/736 892/639 +f 877/738 876/737 892/639 893/638 +f 878/739 877/738 893/638 894/642 +f 879/740 878/739 894/642 895/741 +f 880/742 879/740 895/741 896/647 +f 881/743 880/742 896/647 897/646 +f 882/744 881/743 897/646 898/650 +f 883/745 882/744 898/650 899/652 +f 884/746 883/745 899/652 900/654 +f 885/747 884/746 900/654 901/540 +f 886/748 885/747 901/540 902/539 +f 773/396 774/430 758/429 757/524 +f 888/528 887/749 903/664 904/529 +f 827/701 825/750 920/751 905/699 +f 1026/752 1027/420 1011/419 1010/753 +f 706/381 708/754 766/517 765/380 +f 1198/755 1197/756 1118/757 1119/758 +f 1124/759 1125/760 1204/761 1203/762 +f 798/579 797/578 813/763 814/442 +f 839/764 837/765 910/766 911/767 +f 841/768 839/764 911/767 912/769 +f 843/770 841/768 912/769 913/771 +f 845/772 843/770 913/771 914/773 +f 847/774 845/772 914/773 915/775 +f 849/776 847/774 915/775 916/777 +f 916/777 917/778 851/779 849/776 +f 917/778 918/780 853/781 851/779 +f 919/782 920/751 825/750 855/783 +f 918/784 919/782 855/783 853/785 +f 808/597 793/599 777/535 792/566 +f 1043/786 1042/787 1058/788 1059/789 +f 946/689 945/790 866/716 867/681 +f 909/602 908/601 924/791 925/511 +f 910/766 909/602 925/511 926/510 +f 911/767 910/766 926/510 927/792 +f 912/769 911/767 927/792 928/793 +f 913/771 912/769 928/793 929/794 +f 914/773 913/771 929/794 930/795 +f 915/775 914/773 930/795 931/796 +f 916/777 915/775 931/796 932/797 +f 917/778 916/777 932/797 933/462 +f 918/780 917/778 933/462 934/461 +f 920/751 919/782 935/798 936/799 +f 919/782 918/784 934/800 935/798 +f 921/801 936/799 951/667 937/666 +f 1129/802 1130/644 1114/645 1113/803 +f 924/791 923/683 939/676 940/678 +f 762/375 763/374 747/804 746/805 +f 821/806 822/807 806/595 805/594 +f 927/792 926/510 942/513 943/538 +f 1173/808 1174/809 1110/810 1108/811 +f 921/801 922/682 906/685 905/699 +f 930/795 929/794 945/790 946/689 +f 936/799 921/801 905/699 920/751 +f 1173/812 1172/813 1188/814 1189/815 +f 822/807 821/806 742/491 743/493 +f 935/798 934/800 949/816 950/817 +f 801/582 802/818 786/556 785/554 +f 932/797 1208/690 948/459 933/462 +f 1018/466 1017/465 955/589 957/819 +f 1019/820 1018/466 957/819 959/821 +f 1020/822 1019/820 959/821 961/823 +f 1021/824 1020/822 961/823 963/825 +f 1117/826 1118/757 1197/756 1196/827 +f 1024/476 1023/828 967/829 969/473 +f 1026/752 1025/475 971/474 973/830 +f 733/435 734/480 813/763 812/432 +f 822/471 823/468 807/596 806/598 +f 1180/620 1179/616 1195/615 1196/827 +f 1029/831 1028/421 977/632 979/832 +f 1030/833 1029/831 979/832 981/834 +f 1012/835 1013/633 997/498 996/836 +f 956/837 958/838 1390/839 954/840 +f 1064/841 1079/698 984/842 985/843 +f 1111/844 1109/845 1391/846 1081/847 +f 1065/848 1064/841 985/843 986/383 +f 828/626 830/849 891/736 890/624 +f 819/456 818/850 739/487 740/457 +f 1068/851 1067/635 988/637 989/852 +f 989/852 990/853 1069/854 1068/851 +f 1135/855 1136/453 1120/452 1119/758 +f 999/628 984/842 1079/698 1078/629 +f 1072/856 1071/857 992/709 993/858 +f 1073/859 1072/856 993/858 994/860 +f 1074/861 1073/859 994/860 995/862 +f 1075/863 1074/861 995/862 996/836 +f 1076/501 1075/863 996/836 997/498 +f 760/864 745/865 729/470 744/469 +f 874/866 875/867 859/675 858/669 +f 984/842 999/628 1015/687 1000/868 +f 761/406 762/375 746/805 745/531 +f 1141/869 1140/870 1156/871 1157/872 +f 988/637 987/382 1003/385 1004/873 +f 989/852 988/637 1004/873 1005/874 +f 990/853 989/852 1005/874 1006/875 +f 991/710 990/853 1006/875 1007/707 +f 1155/402 1156/871 1140/870 1139/876 +f 864/537 863/504 879/503 880/714 +f 994/860 993/858 1009/877 1010/878 +f 995/862 994/860 1010/878 1011/879 +f 996/836 995/862 1011/879 1012/835 +f 990/853 991/710 1070/880 1069/854 +f 1031/695 1030/881 981/882 983/883 +f 892/639 891/736 830/849 832/640 +f 848/655 850/541 901/540 900/654 +f 1003/884 1002/463 1018/466 1019/820 +f 1004/885 1003/884 1019/820 1020/822 +f 1005/886 1004/885 1020/822 1021/824 +f 1006/887 1005/886 1021/824 1022/888 +f 1007/889 1006/887 1022/888 1023/828 +f 1008/890 1007/889 1023/828 1024/476 +f 1009/891 1008/890 1024/476 1025/475 +f 1010/753 1009/891 1025/475 1026/752 +f 726/892 728/408 776/407 775/893 +f 1116/506 1117/826 1196/827 1195/615 +f 1013/894 1012/418 1028/421 1029/831 +f 872/729 857/668 951/667 950/817 +f 1015/694 1014/895 1030/881 1031/695 +f 954/896 952/897 1047/898 1032/610 +f 956/899 954/896 1032/610 1033/609 +f 1035/900 1034/901 1050/902 1051/903 +f 875/867 876/904 860/677 859/675 +f 1187/905 1188/814 1172/813 1171/906 +f 966/907 964/702 1037/705 1038/908 +f 968/909 966/907 1038/908 1039/910 +f 970/911 968/909 1039/910 1040/912 +f 972/913 970/911 1040/912 1041/914 +f 974/915 972/913 1041/914 1042/787 +f 976/916 974/915 1042/787 1043/786 +f 1043/786 1044/917 978/918 976/916 +f 1044/917 1045/919 980/920 978/918 +f 1046/921 1047/898 952/897 982/922 +f 1045/923 1046/921 982/922 980/924 +f 802/818 801/582 817/925 818/850 +f 1036/704 1035/900 1051/903 1052/926 +f 1039/910 1038/908 1054/927 1055/928 +f 1040/912 1039/910 1055/928 1056/929 +f 943/538 944/720 928/793 927/792 +f 1163/623 1162/584 1178/617 1179/616 +f 1044/917 1043/786 1059/789 1060/930 +f 1177/931 1178/617 1162/584 1161/583 +f 1046/921 1045/923 1061/932 1062/697 +f 1048/607 1063/696 1079/698 1064/841 +f 1049/608 1048/607 1064/841 1065/848 +f 1050/902 1049/608 1065/848 1066/636 +f 1051/903 1050/902 1066/636 1067/635 +f 1052/926 1051/903 1067/635 1068/851 +f 1053/933 1052/926 1068/851 1069/854 +f 1054/927 1053/933 1069/854 1070/880 +f 1055/928 1054/927 1070/880 1071/857 +f 1056/929 1055/928 1071/857 1072/856 +f 1057/934 1056/929 1072/856 1073/859 +f 1058/788 1057/934 1073/859 1074/861 +f 1059/789 1058/788 1074/861 1075/863 +f 1060/930 1059/789 1075/863 1076/501 +f 873/731 874/866 858/669 857/668 +f 1062/697 1061/932 1077/630 1078/629 +f 963/825 965/935 1022/888 1021/824 +f 1204/761 1205/936 1189/815 1188/814 +f 1083/718 1085/937 1146/711 1145/719 +f 793/599 794/600 778/536 777/535 +f 1148/439 1147/495 1087/938 1089/436 +f 983/883 953/588 1016/587 1031/695 +f 734/480 735/443 814/442 813/763 +f 1029/831 1030/833 1014/939 1013/894 +f 906/685 907/684 831/940 829/700 +f 745/865 746/398 730/401 729/470 +f 1147/495 1146/711 1085/937 1087/938 +f 949/460 948/459 870/572 871/571 +f 1156/871 1155/402 1103/405 1105/941 +f 1157/872 1156/871 1105/941 1107/942 +f 1158/943 1157/872 1107/942 1109/944 +f 812/432 813/763 797/578 796/577 +f 1084/948 1086/945 1392/947 1082/1111 +f 986/383 987/382 1066/636 1065/848 +f 1192/949 1207/722 1112/950 1113/803 +f 1193/951 1192/949 1113/803 1114/645 +f 1194/614 1193/951 1114/645 1115/507 +f 1195/615 1194/614 1115/507 1116/506 +f 1093/952 1095/727 1151/726 1150/953 +f 833/604 831/940 907/684 908/601 +f 1097/728 1099/691 1153/692 1152/725 +f 1199/954 1198/755 1119/758 1120/452 +f 816/445 817/925 801/582 800/581 +f 1202/955 1201/611 1122/613 1123/956 +f 1203/762 1202/955 1123/956 1124/759 +f 1149/438 1150/953 1134/957 1133/958 +f 837/765 835/603 909/602 910/766 +f 1207/722 1206/721 1127/959 1112/950 +f 1206/721 1205/960 1126/961 1127/959 +f 823/468 824/467 808/597 807/596 +f 1135/962 1134/957 1150/953 1151/726 +f 1133/958 1132/496 1148/439 1149/438 +f 896/647 895/741 838/963 840/648 +f 1117/826 1116/506 1132/509 1133/964 +f 1118/757 1117/826 1133/964 1134/965 +f 1205/960 1206/721 1190/724 1189/966 +f 1071/857 1070/880 991/710 992/709 +f 1122/613 1121/451 1137/454 1138/967 +f 1123/956 1122/613 1138/967 1139/968 +f 1124/759 1123/956 1139/968 1140/969 +f 1125/760 1124/759 1140/969 1141/970 +f 1126/971 1125/760 1141/970 1142/972 +f 1112/950 1127/959 1143/973 1128/974 +f 1127/959 1126/961 1142/975 1143/973 +f 1129/976 1128/977 1144/449 1145/719 +f 1130/712 1129/976 1145/719 1146/711 +f 937/666 938/674 922/682 921/801 +f 748/515 747/804 763/374 764/378 +f 744/469 743/472 759/978 760/864 +f 1128/974 1129/802 1113/803 1112/950 +f 1205/936 1204/761 1125/760 1126/971 +f 1136/979 1135/962 1151/726 1152/725 +f 1137/980 1136/979 1152/725 1153/692 +f 1138/981 1137/980 1153/692 1154/403 +f 1139/876 1138/981 1154/403 1155/402 +f 1000/868 1001/982 985/843 984/842 +f 993/858 992/709 1008/708 1009/877 +f 1142/983 1141/869 1157/872 1158/943 +f 1128/977 1143/984 1159/450 1144/449 +f 1143/984 1142/985 1158/605 1159/450 +f 1082/986 1080/987 1175/988 1160/989 +f 1084/586 1082/986 1160/989 1161/583 +f 819/456 820/455 804/990 803/991 +f 787/558 786/556 802/818 803/991 +f 1090/992 1088/622 1163/623 1164/619 +f 1092/993 1090/992 1164/619 1165/618 +f 1094/994 1092/993 1165/618 1166/995 +f 1096/996 1094/994 1166/995 1167/997 +f 1098/998 1096/996 1167/997 1168/999 +f 1100/1000 1098/998 1168/999 1169/591 +f 1102/1001 1100/1000 1169/591 1170/590 +f 1104/1002 1102/1001 1170/590 1171/906 +f 1171/906 1172/813 1106/1003 1104/1002 +f 1172/813 1173/812 1108/1004 1106/1003 +f 1174/809 1175/988 1080/987 1110/810 +f 1179/616 1180/620 1164/619 1163/623 +f 929/794 928/793 944/720 945/790 +f 1056/929 1057/934 1041/914 1040/912 +f 1176/1005 1191/723 1207/722 1192/949 +f 818/850 819/456 803/991 802/818 +f 1161/583 1160/989 1176/1005 1177/931 +f 1166/995 1165/618 1181/621 1182/1006 +f 1167/997 1166/995 1182/1006 1183/1007 +f 1168/999 1167/997 1183/1007 1184/1008 +f 803/991 804/990 788/560 787/558 +f 1191/723 1176/1005 1160/989 1175/988 +f 1200/612 1201/611 1185/592 1184/1008 +f 1060/930 1061/1009 1045/919 1044/917 +f 1063/696 1048/607 1032/610 1047/898 +f 1177/931 1176/1005 1192/949 1193/951 +f 973/830 975/631 1027/420 1026/752 +f 1186/593 1185/592 1201/611 1202/955 +f 1181/621 1180/620 1196/827 1197/756 +f 1182/1006 1181/621 1197/756 1198/755 +f 1183/1007 1182/1006 1198/755 1199/954 +f 1184/1008 1183/1007 1199/954 1200/612 +f 1193/951 1194/614 1178/617 1177/931 +f 946/689 947/688 931/796 930/795 +f 1187/905 1186/593 1202/955 1203/762 +f 1188/814 1187/905 1203/762 1204/761 +f 1189/966 1190/724 1174/809 1173/808 +f 1134/965 1135/855 1119/758 1118/757 +f 836/643 838/963 895/741 894/642 +f 738/485 739/487 818/850 817/925 +f 1186/593 1187/905 1171/906 1170/590 +f 1184/1008 1185/592 1169/591 1168/999 +f 940/678 941/512 925/511 924/791 +f 923/683 922/682 938/674 939/676 +f 1057/934 1058/788 1042/787 1041/914 +f 1016/587 1017/465 1001/464 1000/693 +f 779/575 778/536 794/600 795/576 +f 1023/828 1022/888 965/935 967/829 +f 1047/898 1046/921 1062/697 1063/696 +f 1035/900 1036/704 962/703 960/1010 +f 865/713 866/716 945/790 944/720 +f 805/594 804/990 820/455 821/806 +f 698/1013 728/1014 1385/1015 700/1016 +f 1091/437 1093/952 1150/953 1149/438 +f 950/817 949/816 871/732 872/729 +f 908/601 907/684 923/683 924/791 +f 885/415 886/573 870/572 869/416 +f 1120/452 1121/451 1200/612 1199/954 +f 1190/724 1191/723 1175/988 1174/809 +f 1038/908 1037/705 1053/933 1054/927 +f 1001/982 1002/384 986/383 985/843 +f 1049/608 1050/902 1034/901 1033/609 +f 960/1010 958/1011 1034/901 1035/900 +f 1076/501 1077/500 1061/1009 1060/930 +f 729/470 730/401 809/526 824/467 +f 1033/609 1034/901 958/1011 956/899 +f 737/446 738/485 817/925 816/445 +f 775/893 776/407 760/532 759/1012 +f 699/534 697/567 792/566 777/535 +f 789/561 788/560 804/990 805/594 +f 902/539 903/657 887/1017 886/748 +f 861/679 860/677 876/904 877/706 +f 936/799 935/798 950/817 951/667 +f 726/1018 724/1019 1385/1015 728/1014 +f 741/458 742/491 821/806 820/455 +f 708/754 710/427 767/426 766/517 +f 1208/690 869/416 870/572 948/459 +f 1052/926 1053/933 1037/705 1036/704 +f 722/1020 720/1021 1385/1015 724/1019 +f 718/1022 716/1023 1385/1015 720/1021 +f 714/1024 712/1025 1385/1015 716/1023 +f 710/1026 708/1027 1385/1015 712/1025 +f 706/1028 704/1029 1385/1015 708/1027 +f 702/1030 700/1016 1385/1015 704/1029 +f 727/1031 697/1032 699/1033 1386/412 +f 699/1033 701/413 1386/412 +f 707/1034 709/1035 1386/412 705/411 +f 711/1036 713/1037 1386/412 709/1035 +f 715/1040 717/1038 1386/412 713/1037 +f 719/1039 721/1043 1386/412 717/1038 +f 725/1042 727/1031 1386/412 723/1041 +f 721/1043 723/1041 1386/412 +f 830/1044 828/1045 826/425 1387/424 +f 852/1048 850/1046 1387/424 854/423 +f 848/1047 846/1049 1387/424 850/1046 +f 842/1051 840/1052 1387/424 844/1050 +f 846/1049 844/1050 1387/424 +f 836/1054 834/1056 1387/424 838/1053 +f 840/1052 838/1053 1387/424 +f 832/1055 830/1044 1387/424 834/1056 +f 855/1057 825/1058 827/663 1388/662 +f 835/1059 837/1060 1388/662 833/1061 +f 831/661 833/1061 1388/662 +f 839/1062 841/1063 1388/662 837/1060 +f 843/1064 845/1065 1388/662 841/1063 +f 847/1068 849/1066 1388/662 845/1065 +f 851/1067 853/1069 1388/662 849/1066 +f 957/1070 955/1071 953/673 1389/672 +f 853/1069 855/1057 1388/662 +f 979/1072 977/1073 1389/672 981/671 +f 975/1074 973/1075 1389/672 977/1073 +f 969/1077 967/1080 1389/672 971/1076 +f 973/1075 971/1076 1389/672 +f 965/1078 963/1079 1389/672 967/1080 +f 961/1081 959/1082 1389/672 963/1079 +f 982/1083 952/1084 954/840 1390/839 +f 959/1082 957/1070 1389/672 +f 962/1086 964/1087 1390/839 960/1085 +f 958/838 960/1085 1390/839 +f 966/1088 968/1091 1390/839 964/1087 +f 970/1089 972/1090 1390/839 968/1091 +f 974/1094 976/1092 1390/839 972/1090 +f 978/1093 980/1095 1390/839 976/1092 +f 1085/1096 1083/1097 1081/847 1391/846 +f 980/1095 982/1083 1390/839 +f 1107/1100 1105/1098 1391/846 1109/845 +f 1101/1101 1099/1102 1391/846 1103/1099 +f 1105/1098 1103/1099 1391/846 +f 1097/1103 1095/1104 1391/846 1099/1102 +f 1091/1105 1089/1106 1391/846 1093/1107 +f 1095/1104 1093/1107 1391/846 +f 1087/1108 1085/1096 1391/846 1089/1106 +f 1110/1109 1080/1110 1082/1111 1392/947 +f 1088/946 1090/1112 1392/947 1086/945 +f 1094/1114 1096/1115 1392/947 1092/1113 +f 1090/1112 1092/1113 1392/947 +f 1098/1118 1100/1116 1392/947 1096/1115 +f 1104/1121 1106/1119 1392/947 1102/1117 +f 1100/1116 1102/1117 1392/947 +f 1108/1120 1110/1109 1392/947 1106/1119 +f 1458/375 1457/406 1394/409 1396/376 +f 1459/374 1458/375 1396/376 1398/377 +f 1460/378 1459/374 1398/377 1400/379 +f 1461/380 1460/378 1400/379 1402/381 +f 1684/382 1683/383 1699/384 1700/385 +f 1465/386 1464/387 1408/388 1410/389 +f 1466/390 1465/386 1410/389 1412/391 +f 1467/392 1466/390 1412/391 1414/393 +f 1468/394 1467/392 1414/393 1416/395 +f 1469/396 1468/394 1416/395 1418/397 +f 1442/398 1443/399 1427/400 1426/401 +f 1852/402 1851/403 1798/404 1800/405 +f 1457/406 1472/407 1424/408 1394/409 +f 1397/413 1399/410 2082/412 1395/1033 +f 1580/414 1581/415 1565/416 1564/417 +f 1709/418 1708/419 1724/420 1725/421 +f 1550/423 1548/1048 2083/424 1552/422 +f 1464/387 1463/426 1406/427 1408/388 +f 1455/428 1454/429 1470/430 1471/431 +f 1508/432 1507/433 1428/434 1429/435 +f 1786/436 1788/437 1846/438 1845/439 +f 1428/434 1427/400 1443/399 1444/440 +f 1511/441 1510/442 1431/443 1432/444 +f 1512/445 1511/441 1432/444 1433/446 +f 1808/447 1778/448 1841/449 1856/450 +f 1818/451 1817/452 1833/453 1834/454 +f 1516/455 1515/456 1436/457 1437/458 +f 1645/459 1646/460 1630/461 1629/462 +f 1699/463 1698/464 1714/465 1715/466 +f 1520/467 1519/468 1440/469 1425/470 +f 1519/468 1518/471 1439/472 1440/469 +f 1666/473 1668/474 1722/475 1721/476 +f 1418/397 1420/477 1470/430 1469/396 +f 1471/431 1470/430 1420/477 1422/478 +f 1429/435 1428/434 1444/440 1445/479 +f 1430/480 1429/435 1445/479 1446/481 +f 1431/443 1430/480 1446/481 1447/482 +f 1432/444 1431/443 1447/482 1448/483 +f 1433/446 1432/444 1448/483 1449/484 +f 1434/485 1433/446 1449/484 1450/486 +f 1435/487 1434/485 1450/486 1451/488 +f 1436/457 1435/487 1451/488 1452/489 +f 1437/458 1436/457 1452/489 1453/490 +f 1438/491 1437/458 1453/490 1454/492 +f 1439/493 1438/491 1454/492 1455/494 +f 1844/495 1845/439 1829/496 1828/497 +f 1694/498 1695/499 1774/500 1773/501 +f 1574/502 1575/503 1559/504 1558/505 +f 1813/506 1812/507 1828/508 1829/509 +f 1622/510 1621/511 1637/512 1638/513 +f 1445/514 1444/515 1460/378 1461/380 +f 1446/516 1445/514 1461/380 1462/517 +f 1447/518 1446/516 1462/517 1463/426 +f 1448/519 1447/518 1463/426 1464/387 +f 1449/520 1448/519 1464/387 1465/386 +f 1450/521 1449/520 1465/386 1466/390 +f 1451/522 1450/521 1466/390 1467/392 +f 1452/523 1451/522 1467/392 1468/394 +f 1453/524 1452/523 1468/394 1469/396 +f 1426/401 1427/400 1506/525 1505/526 +f 1569/527 1584/528 1600/529 1585/530 +f 1441/531 1456/532 1472/407 1457/406 +f 1397/533 1395/534 1473/535 1474/536 +f 1559/504 1560/537 1639/538 1638/513 +f 1598/539 1597/540 1546/541 1548/542 +f 1403/543 1401/544 1476/545 1477/546 +f 1405/547 1403/543 1477/546 1478/548 +f 1407/549 1405/547 1478/548 1479/550 +f 1409/551 1407/549 1479/550 1480/552 +f 1411/553 1409/551 1480/552 1481/554 +f 1413/555 1411/553 1481/554 1482/556 +f 1415/557 1413/555 1482/556 1483/558 +f 1417/559 1415/557 1483/558 1484/560 +f 1484/560 1485/561 1419/562 1417/559 +f 1485/561 1486/563 1421/564 1419/562 +f 1487/565 1488/566 1393/567 1423/568 +f 1486/569 1487/565 1423/568 1421/570 +f 1567/571 1566/572 1582/573 1583/574 +f 1476/545 1475/575 1491/576 1492/577 +f 1477/546 1476/545 1492/577 1493/578 +f 1478/548 1477/546 1493/578 1494/579 +f 1479/550 1478/548 1494/579 1495/580 +f 1480/552 1479/550 1495/580 1496/581 +f 1481/554 1480/552 1496/581 1497/582 +f 1858/583 1859/584 1783/585 1781/586 +f 1714/465 1713/587 1650/588 1652/589 +f 1867/590 1866/591 1882/592 1883/593 +f 1486/563 1485/561 1501/594 1502/595 +f 1488/566 1487/565 1503/596 1504/597 +f 1487/565 1486/569 1502/598 1503/596 +f 1489/599 1504/597 1520/467 1505/526 +f 1490/600 1489/599 1505/526 1506/525 +f 1491/576 1490/600 1506/525 1507/433 +f 1492/577 1491/576 1507/433 1508/432 +f 1604/601 1605/602 1531/603 1529/604 +f 1856/450 1855/605 1806/606 1808/447 +f 1495/580 1494/579 1510/442 1511/441 +f 1496/581 1495/580 1511/441 1512/445 +f 1745/607 1746/608 1730/609 1729/610 +f 1898/611 1897/612 1818/451 1819/613 +f 1891/614 1892/615 1876/616 1875/617 +f 1862/618 1861/619 1877/620 1878/621 +f 1785/622 1783/585 1859/584 1860/623 +f 1586/624 1585/530 1522/625 1524/626 +f 1695/627 1696/628 1775/629 1774/630 +f 1725/421 1724/420 1672/631 1674/632 +f 1710/633 1711/634 1695/499 1694/498 +f 1764/635 1763/636 1684/382 1685/637 +f 1589/638 1588/639 1528/640 1530/641 +f 1590/642 1589/638 1530/641 1532/643 +f 1827/644 1828/508 1812/507 1811/645 +f 1507/433 1506/525 1427/400 1428/434 +f 1593/646 1592/647 1536/648 1538/649 +f 1594/650 1593/646 1538/649 1540/651 +f 1595/652 1594/650 1540/651 1542/653 +f 1596/654 1595/652 1542/653 1544/655 +f 1474/536 1475/575 1399/656 1397/533 +f 1599/657 1598/539 1548/542 1550/658 +f 1585/530 1600/529 1552/659 1522/625 +f 1527/661 1529/1061 2084/662 1525/660 +f 1600/529 1599/664 1550/665 1552/659 +f 1633/666 1648/667 1553/668 1554/669 +f 1678/671 1676/1072 2085/672 1680/670 +f 1634/674 1633/666 1554/669 1555/675 +f 1635/676 1634/674 1555/675 1556/677 +f 1636/678 1635/676 1556/677 1557/679 +f 1637/512 1636/678 1557/679 1558/505 +f 1558/505 1559/504 1638/513 1637/512 +f 1579/680 1580/414 1564/417 1563/681 +f 1401/544 1399/656 1475/575 1476/545 +f 1618/682 1619/683 1603/684 1602/685 +f 1711/686 1712/687 1696/628 1695/627 +f 1643/688 1642/689 1563/681 1564/417 +f 1644/690 1643/688 1564/417 1565/416 +f 1796/691 1798/404 1851/403 1850/692 +f 1697/693 1712/694 1728/695 1713/587 +f 1760/696 1759/697 1775/629 1776/698 +f 1601/699 1602/685 1525/700 1523/701 +f 1661/702 1659/703 1733/704 1734/705 +f 1558/505 1557/679 1573/706 1574/502 +f 1704/707 1705/708 1689/709 1688/710 +f 1843/711 1844/495 1828/497 1827/712 +f 1561/713 1560/537 1576/714 1577/715 +f 1562/716 1561/713 1577/715 1578/717 +f 1563/681 1562/716 1578/717 1579/680 +f 1778/448 1780/718 1842/719 1841/449 +f 1640/720 1639/538 1560/537 1561/713 +f 1903/721 1904/722 1888/723 1887/724 +f 1849/725 1848/726 1792/727 1794/728 +f 1553/668 1568/729 1584/730 1569/731 +f 1568/729 1567/732 1583/733 1584/730 +f 1570/734 1569/527 1585/530 1586/624 +f 1571/735 1570/734 1586/624 1587/736 +f 1572/737 1571/735 1587/736 1588/639 +f 1573/738 1572/737 1588/639 1589/638 +f 1574/739 1573/738 1589/638 1590/642 +f 1575/740 1574/739 1590/642 1591/741 +f 1576/742 1575/740 1591/741 1592/647 +f 1577/743 1576/742 1592/647 1593/646 +f 1578/744 1577/743 1593/646 1594/650 +f 1579/745 1578/744 1594/650 1595/652 +f 1580/746 1579/745 1595/652 1596/654 +f 1581/747 1580/746 1596/654 1597/540 +f 1582/748 1581/747 1597/540 1598/539 +f 1469/396 1470/430 1454/429 1453/524 +f 1584/528 1583/749 1599/664 1600/529 +f 1523/701 1521/750 1616/751 1601/699 +f 1723/752 1724/420 1708/419 1707/753 +f 1402/381 1404/754 1462/517 1461/380 +f 1895/755 1894/756 1815/757 1816/758 +f 1821/759 1822/760 1901/761 1900/762 +f 1494/579 1493/578 1509/763 1510/442 +f 1535/764 1533/765 1606/766 1607/767 +f 1537/768 1535/764 1607/767 1608/769 +f 1539/770 1537/768 1608/769 1609/771 +f 1541/772 1539/770 1609/771 1610/773 +f 1543/774 1541/772 1610/773 1611/775 +f 1545/776 1543/774 1611/775 1612/777 +f 1612/777 1613/778 1547/779 1545/776 +f 1613/778 1614/780 1549/781 1547/779 +f 1615/782 1616/751 1521/750 1551/783 +f 1614/784 1615/782 1551/783 1549/785 +f 1504/597 1489/599 1473/535 1488/566 +f 1740/786 1739/787 1755/788 1756/789 +f 1642/689 1641/790 1562/716 1563/681 +f 1605/602 1604/601 1620/791 1621/511 +f 1606/766 1605/602 1621/511 1622/510 +f 1607/767 1606/766 1622/510 1623/792 +f 1608/769 1607/767 1623/792 1624/793 +f 1609/771 1608/769 1624/793 1625/794 +f 1610/773 1609/771 1625/794 1626/795 +f 1611/775 1610/773 1626/795 1627/796 +f 1612/777 1611/775 1627/796 1628/797 +f 1613/778 1612/777 1628/797 1629/462 +f 1614/780 1613/778 1629/462 1630/461 +f 1616/751 1615/782 1631/798 1632/799 +f 1615/782 1614/784 1630/800 1631/798 +f 1617/801 1632/799 1648/667 1633/666 +f 1826/802 1827/644 1811/645 1810/803 +f 1620/791 1619/683 1635/676 1636/678 +f 1458/375 1459/374 1443/804 1442/805 +f 1517/806 1518/807 1502/595 1501/594 +f 1623/792 1622/510 1638/513 1639/538 +f 1870/808 1871/809 1807/810 1805/811 +f 1617/801 1618/682 1602/685 1601/699 +f 1626/795 1625/794 1641/790 1642/689 +f 1632/799 1617/801 1601/699 1616/751 +f 1870/812 1869/813 1885/814 1886/815 +f 1629/462 1628/797 1644/690 1645/459 +f 1518/807 1517/806 1438/491 1439/493 +f 1631/798 1630/800 1646/816 1647/817 +f 1497/582 1498/818 1482/556 1481/554 +f 1628/797 1627/796 1643/688 1644/690 +f 1715/466 1714/465 1652/589 1654/819 +f 1716/820 1715/466 1654/819 1656/821 +f 1717/822 1716/820 1656/821 1658/823 +f 1718/824 1717/822 1658/823 1660/825 +f 1814/826 1815/757 1894/756 1893/827 +f 1721/476 1720/828 1664/829 1666/473 +f 1398/1030 1396/1016 1394/1013 2081/1015 +f 1429/435 1430/480 1509/763 1508/432 +f 1518/471 1519/468 1503/596 1502/598 +f 1877/620 1876/616 1892/615 1893/827 +f 1726/831 1725/421 1674/632 1676/832 +f 1727/833 1726/831 1676/832 1678/834 +f 1709/835 1710/633 1694/498 1693/836 +f 1655/838 1657/1085 2086/839 1653/837 +f 1761/841 1776/698 1681/842 1682/843 +f 1808/844 1806/845 2087/846 1778/847 +f 1762/848 1761/841 1682/843 1683/383 +f 1524/626 1526/849 1587/736 1586/624 +f 1515/456 1514/850 1435/487 1436/457 +f 1765/851 1764/635 1685/637 1686/852 +f 1686/852 1687/853 1766/854 1765/851 +f 1832/855 1833/453 1817/452 1816/758 +f 1696/628 1681/842 1776/698 1775/629 +f 1769/856 1768/857 1689/709 1690/858 +f 1770/859 1769/856 1690/858 1691/860 +f 1771/861 1770/859 1691/860 1692/862 +f 1772/863 1771/861 1692/862 1693/836 +f 1773/501 1772/863 1693/836 1694/498 +f 1456/864 1441/865 1425/470 1440/469 +f 1570/866 1571/867 1555/675 1554/669 +f 1681/842 1696/628 1712/687 1697/868 +f 1457/406 1458/375 1442/805 1441/531 +f 1838/869 1837/870 1853/871 1854/872 +f 1685/637 1684/382 1700/385 1701/873 +f 1686/852 1685/637 1701/873 1702/874 +f 1687/853 1686/852 1702/874 1703/875 +f 1688/710 1687/853 1703/875 1704/707 +f 1852/402 1853/871 1837/870 1836/876 +f 1560/537 1559/504 1575/503 1576/714 +f 1691/860 1690/858 1706/877 1707/878 +f 1692/862 1691/860 1707/878 1708/879 +f 1693/836 1692/862 1708/879 1709/835 +f 1687/853 1688/710 1767/880 1766/854 +f 1728/695 1727/881 1678/882 1680/883 +f 1588/639 1587/736 1526/849 1528/640 +f 1544/655 1546/541 1597/540 1596/654 +f 1700/884 1699/463 1715/466 1716/820 +f 1701/885 1700/884 1716/820 1717/822 +f 1702/886 1701/885 1717/822 1718/824 +f 1703/887 1702/886 1718/824 1719/888 +f 1704/889 1703/887 1719/888 1720/828 +f 1705/890 1704/889 1720/828 1721/476 +f 1706/891 1705/890 1721/476 1722/475 +f 1707/753 1706/891 1722/475 1723/752 +f 1422/892 1424/408 1472/407 1471/893 +f 1813/506 1814/826 1893/827 1892/615 +f 1710/894 1709/418 1725/421 1726/831 +f 1568/729 1553/668 1648/667 1647/817 +f 1712/694 1711/895 1727/881 1728/695 +f 1651/896 1649/897 1744/898 1729/610 +f 1653/899 1651/896 1729/610 1730/609 +f 1732/900 1731/901 1747/902 1748/903 +f 1571/867 1572/904 1556/677 1555/675 +f 1884/905 1885/814 1869/813 1868/906 +f 1663/907 1661/702 1734/705 1735/908 +f 1665/909 1663/907 1735/908 1736/910 +f 1667/911 1665/909 1736/910 1737/912 +f 1669/913 1667/911 1737/912 1738/914 +f 1671/915 1669/913 1738/914 1739/787 +f 1673/916 1671/915 1739/787 1740/786 +f 1740/786 1741/917 1675/918 1673/916 +f 1741/917 1742/919 1677/920 1675/918 +f 1743/921 1744/898 1649/897 1679/922 +f 1742/923 1743/921 1679/922 1677/924 +f 1498/818 1497/582 1513/925 1514/850 +f 1733/704 1732/900 1748/903 1749/926 +f 1736/910 1735/908 1751/927 1752/928 +f 1737/912 1736/910 1752/928 1753/929 +f 1639/538 1640/720 1624/793 1623/792 +f 1860/623 1859/584 1875/617 1876/616 +f 1741/917 1740/786 1756/789 1757/930 +f 1874/931 1875/617 1859/584 1858/583 +f 1743/921 1742/923 1758/932 1759/697 +f 1745/607 1760/696 1776/698 1761/841 +f 1746/608 1745/607 1761/841 1762/848 +f 1747/902 1746/608 1762/848 1763/636 +f 1748/903 1747/902 1763/636 1764/635 +f 1749/926 1748/903 1764/635 1765/851 +f 1750/933 1749/926 1765/851 1766/854 +f 1751/927 1750/933 1766/854 1767/880 +f 1752/928 1751/927 1767/880 1768/857 +f 1753/929 1752/928 1768/857 1769/856 +f 1754/934 1753/929 1769/856 1770/859 +f 1755/788 1754/934 1770/859 1771/861 +f 1756/789 1755/788 1771/861 1772/863 +f 1757/930 1756/789 1772/863 1773/501 +f 1569/731 1570/866 1554/669 1553/668 +f 1759/697 1758/932 1774/630 1775/629 +f 1660/825 1662/935 1719/888 1718/824 +f 1901/761 1902/936 1886/815 1885/814 +f 1780/718 1782/937 1843/711 1842/719 +f 1489/599 1490/600 1474/536 1473/535 +f 1845/439 1844/495 1784/938 1786/436 +f 1680/883 1650/588 1713/587 1728/695 +f 1430/480 1431/443 1510/442 1509/763 +f 1726/831 1727/833 1711/939 1710/894 +f 1602/685 1603/684 1527/940 1525/700 +f 1441/865 1442/398 1426/401 1425/470 +f 1844/495 1843/711 1782/937 1784/938 +f 1646/460 1645/459 1566/572 1567/571 +f 1853/871 1852/402 1800/405 1802/941 +f 1854/872 1853/871 1802/941 1804/942 +f 1855/943 1854/872 1804/942 1806/944 +f 1508/432 1509/763 1493/578 1492/577 +f 1781/948 1783/945 2088/947 1779/1111 +f 1683/383 1684/382 1763/636 1762/848 +f 1889/949 1904/722 1809/950 1810/803 +f 1890/951 1889/949 1810/803 1811/645 +f 1891/614 1890/951 1811/645 1812/507 +f 1892/615 1891/614 1812/507 1813/506 +f 1790/952 1792/727 1848/726 1847/953 +f 1529/604 1527/940 1603/684 1604/601 +f 1794/728 1796/691 1850/692 1849/725 +f 1896/954 1895/755 1816/758 1817/452 +f 1512/445 1513/925 1497/582 1496/581 +f 1899/955 1898/611 1819/613 1820/956 +f 1900/762 1899/955 1820/956 1821/759 +f 1846/438 1847/953 1831/957 1830/958 +f 1533/765 1531/603 1605/602 1606/766 +f 1904/722 1903/721 1824/959 1809/950 +f 1903/721 1902/960 1823/961 1824/959 +f 1519/468 1520/467 1504/597 1503/596 +f 1832/962 1831/957 1847/953 1848/726 +f 1830/958 1829/496 1845/439 1846/438 +f 1592/647 1591/741 1534/963 1536/648 +f 1814/826 1813/506 1829/509 1830/964 +f 1815/757 1814/826 1830/964 1831/965 +f 1902/960 1903/721 1887/724 1886/966 +f 1768/857 1767/880 1688/710 1689/709 +f 1819/613 1818/451 1834/454 1835/967 +f 1820/956 1819/613 1835/967 1836/968 +f 1821/759 1820/956 1836/968 1837/969 +f 1822/760 1821/759 1837/969 1838/970 +f 1823/971 1822/760 1838/970 1839/972 +f 1809/950 1824/959 1840/973 1825/974 +f 1824/959 1823/961 1839/975 1840/973 +f 1826/976 1825/977 1841/449 1842/719 +f 1827/712 1826/976 1842/719 1843/711 +f 1633/666 1634/674 1618/682 1617/801 +f 1444/515 1443/804 1459/374 1460/378 +f 1440/469 1439/472 1455/978 1456/864 +f 1825/974 1826/802 1810/803 1809/950 +f 1902/936 1901/761 1822/760 1823/971 +f 1833/979 1832/962 1848/726 1849/725 +f 1834/980 1833/979 1849/725 1850/692 +f 1835/981 1834/980 1850/692 1851/403 +f 1836/876 1835/981 1851/403 1852/402 +f 1697/868 1698/982 1682/843 1681/842 +f 1690/858 1689/709 1705/708 1706/877 +f 1839/983 1838/869 1854/872 1855/943 +f 1825/977 1840/984 1856/450 1841/449 +f 1840/984 1839/985 1855/605 1856/450 +f 1779/986 1777/987 1872/988 1857/989 +f 1781/586 1779/986 1857/989 1858/583 +f 1515/456 1516/455 1500/990 1499/991 +f 1483/558 1482/556 1498/818 1499/991 +f 1787/992 1785/622 1860/623 1861/619 +f 1789/993 1787/992 1861/619 1862/618 +f 1791/994 1789/993 1862/618 1863/995 +f 1793/996 1791/994 1863/995 1864/997 +f 1795/998 1793/996 1864/997 1865/999 +f 1797/1000 1795/998 1865/999 1866/591 +f 1799/1001 1797/1000 1866/591 1867/590 +f 1801/1002 1799/1001 1867/590 1868/906 +f 1868/906 1869/813 1803/1003 1801/1002 +f 1869/813 1870/812 1805/1004 1803/1003 +f 1871/809 1872/988 1777/987 1807/810 +f 1876/616 1877/620 1861/619 1860/623 +f 1625/794 1624/793 1640/720 1641/790 +f 1753/929 1754/934 1738/914 1737/912 +f 1873/1005 1888/723 1904/722 1889/949 +f 1514/850 1515/456 1499/991 1498/818 +f 1858/583 1857/989 1873/1005 1874/931 +f 1863/995 1862/618 1878/621 1879/1006 +f 1864/997 1863/995 1879/1006 1880/1007 +f 1865/999 1864/997 1880/1007 1881/1008 +f 1499/991 1500/990 1484/560 1483/558 +f 1888/723 1873/1005 1857/989 1872/988 +f 1897/612 1898/611 1882/592 1881/1008 +f 1757/930 1758/1009 1742/919 1741/917 +f 1760/696 1745/607 1729/610 1744/898 +f 1874/931 1873/1005 1889/949 1890/951 +f 1670/830 1672/631 1724/420 1723/752 +f 1883/593 1882/592 1898/611 1899/955 +f 1878/621 1877/620 1893/827 1894/756 +f 1879/1006 1878/621 1894/756 1895/755 +f 1880/1007 1879/1006 1895/755 1896/954 +f 1881/1008 1880/1007 1896/954 1897/612 +f 1890/951 1891/614 1875/617 1874/931 +f 1642/689 1643/688 1627/796 1626/795 +f 1884/905 1883/593 1899/955 1900/762 +f 1885/814 1884/905 1900/762 1901/761 +f 1886/966 1887/724 1871/809 1870/808 +f 1831/965 1832/855 1816/758 1815/757 +f 1532/643 1534/963 1591/741 1590/642 +f 1434/485 1435/487 1514/850 1513/925 +f 1883/593 1884/905 1868/906 1867/590 +f 1881/1008 1882/592 1866/591 1865/999 +f 1636/678 1637/512 1621/511 1620/791 +f 1619/683 1618/682 1634/674 1635/676 +f 1754/934 1755/788 1739/787 1738/914 +f 1713/587 1714/465 1698/464 1697/693 +f 1475/575 1474/536 1490/600 1491/576 +f 1720/828 1719/888 1662/935 1664/829 +f 1744/898 1743/921 1759/697 1760/696 +f 1732/900 1733/704 1659/703 1657/1010 +f 1561/713 1562/716 1641/790 1640/720 +f 1501/594 1500/990 1516/455 1517/806 +f 1424/1014 1422/1018 2081/1015 1394/1013 +f 1817/452 1818/451 1897/612 1896/954 +f 1788/437 1790/952 1847/953 1846/438 +f 1647/817 1646/816 1567/732 1568/729 +f 1604/601 1603/684 1619/683 1620/791 +f 1581/415 1582/573 1566/572 1565/416 +f 1887/724 1888/723 1872/988 1871/809 +f 1735/908 1734/705 1750/933 1751/927 +f 1698/982 1699/384 1683/383 1682/843 +f 1746/608 1747/902 1731/901 1730/609 +f 1657/1010 1655/1011 1731/901 1732/900 +f 1773/501 1774/500 1758/1009 1757/930 +f 1425/470 1426/401 1505/526 1520/467 +f 1730/609 1731/901 1655/1011 1653/899 +f 1433/446 1434/485 1513/925 1512/445 +f 1471/893 1472/407 1456/532 1455/1012 +f 1395/534 1393/567 1488/566 1473/535 +f 1485/561 1484/560 1500/990 1501/594 +f 1598/539 1599/657 1583/1017 1582/748 +f 1557/679 1556/677 1572/904 1573/706 +f 1632/799 1631/798 1647/817 1648/667 +f 1723/752 1722/475 1668/474 1670/830 +f 1437/458 1438/491 1517/806 1516/455 +f 1404/754 1406/427 1463/426 1462/517 +f 1565/416 1566/572 1645/459 1644/690 +f 1749/926 1750/933 1734/705 1733/704 +f 1420/1019 1418/1020 2081/1015 1422/1018 +f 1414/1022 1412/1023 2081/1015 1416/1021 +f 1418/1020 1416/1021 2081/1015 +f 1410/1024 1408/1025 2081/1015 1412/1023 +f 1406/1026 1404/1027 2081/1015 1408/1025 +f 1402/1028 1400/1029 2081/1015 1404/1027 +f 1423/1031 1393/1032 1395/1033 2082/412 +f 1400/1029 1398/1030 2081/1015 +f 1401/411 1403/1034 2082/412 1399/410 +f 1405/1035 1407/1036 2082/412 1403/1034 +f 1409/1037 1411/1040 2082/412 1407/1036 +f 1413/1038 1415/1039 2082/412 1411/1040 +f 1417/1043 1419/1041 2082/412 1415/1039 +f 1421/1042 1423/1031 2082/412 1419/1041 +f 1522/425 1552/422 2083/424 1524/1045 +f 1544/1047 1542/1049 2083/424 1546/1046 +f 1548/1048 1546/1046 2083/424 +f 1540/1050 1538/1051 2083/424 1542/1049 +f 1536/1052 1534/1053 2083/424 1538/1051 +f 1532/1054 1530/1056 2083/424 1534/1053 +f 1528/1055 1526/1044 2083/424 1530/1056 +f 1523/663 1525/660 2084/662 1521/1058 +f 1526/1044 1524/1045 2083/424 +f 1533/1060 1535/1062 2084/662 1531/1059 +f 1529/1061 1531/1059 2084/662 +f 1539/1064 1541/1065 2084/662 1537/1063 +f 1535/1062 1537/1063 2084/662 +f 1545/1066 1547/1067 2084/662 1543/1068 +f 1541/1065 1543/1068 2084/662 +f 1551/1057 1521/1058 2084/662 1549/1069 +f 1547/1067 1549/1069 2084/662 +f 1650/673 1680/670 2085/672 1652/1071 +f 1672/1074 1670/1075 2085/672 1674/1073 +f 1676/1072 1674/1073 2085/672 +f 1668/1076 1666/1077 2085/672 1670/1075 +f 1664/1080 1662/1078 2085/672 1666/1077 +f 1660/1079 1658/1081 2085/672 1662/1078 +f 1654/1070 1652/1071 2085/672 1656/1082 +f 1658/1081 1656/1082 2085/672 +f 1651/840 1653/837 2086/839 1649/1084 +f 1661/1087 1663/1088 2086/839 1659/1086 +f 1657/1085 1659/1086 2086/839 +f 1667/1089 1669/1090 2086/839 1665/1091 +f 1663/1088 1665/1091 2086/839 +f 1673/1092 1675/1093 2086/839 1671/1094 +f 1669/1090 1671/1094 2086/839 +f 1679/1083 1649/1084 2086/839 1677/1095 +f 1675/1093 1677/1095 2086/839 +f 1782/1096 1780/1097 1778/847 2087/846 +f 1804/1100 1802/1098 2087/846 1806/845 +f 1800/1099 1798/1101 2087/846 1802/1098 +f 1796/1102 1794/1103 2087/846 1798/1101 +f 1792/1104 1790/1107 2087/846 1794/1103 +f 1786/1106 1784/1108 2087/846 1788/1105 +f 1790/1107 1788/1105 2087/846 +f 1807/1109 1777/1110 1779/1111 2088/947 +f 1784/1108 1782/1096 2087/846 +f 1787/1112 1789/1113 2088/947 1785/946 +f 1783/945 1785/946 2088/947 +f 1793/1115 1795/1118 2088/947 1791/1114 +f 1789/1113 1791/1114 2088/947 +f 1797/1116 1799/1117 2088/947 1795/1118 +f 1801/1121 1803/1119 2088/947 1799/1117 +f 1805/1120 1807/1109 2088/947 1803/1119 +f 2154/375 2153/406 2090/409 2092/376 +f 2155/374 2154/375 2092/376 2094/377 +f 2156/378 2155/374 2094/377 2096/379 +f 2157/380 2156/378 2096/379 2098/381 +f 2380/382 2379/383 2395/384 2396/385 +f 2161/386 2160/387 2104/388 2106/389 +f 2162/390 2161/386 2106/389 2108/391 +f 2163/392 2162/390 2108/391 2110/393 +f 2164/394 2163/392 2110/393 2112/395 +f 2165/396 2164/394 2112/395 2114/397 +f 2138/398 2139/399 2123/400 2122/401 +f 2548/402 2547/403 2494/404 2496/405 +f 2153/406 2168/407 2120/408 2090/409 +f 2093/413 2095/410 2778/412 2091/1033 +f 2276/414 2277/415 2261/416 2260/417 +f 2405/418 2404/419 2420/420 2421/421 +f 2246/423 2244/1048 2779/424 2248/422 +f 2160/387 2159/426 2102/427 2104/388 +f 2151/428 2150/429 2166/430 2167/431 +f 2204/432 2203/433 2124/434 2125/435 +f 2482/436 2484/437 2542/438 2541/439 +f 2124/434 2123/400 2139/399 2140/440 +f 2207/441 2206/442 2127/443 2128/444 +f 2208/445 2207/441 2128/444 2129/446 +f 2504/447 2474/448 2537/449 2552/450 +f 2514/451 2513/452 2529/453 2530/454 +f 2212/455 2211/456 2132/457 2133/458 +f 2341/459 2342/460 2326/461 2325/462 +f 2395/463 2394/464 2410/465 2411/466 +f 2216/467 2215/468 2136/469 2121/470 +f 2215/468 2214/471 2135/472 2136/469 +f 2362/473 2364/474 2418/475 2417/476 +f 2114/397 2116/477 2166/430 2165/396 +f 2167/431 2166/430 2116/477 2118/478 +f 2125/435 2124/434 2140/440 2141/479 +f 2126/480 2125/435 2141/479 2142/481 +f 2127/443 2126/480 2142/481 2143/482 +f 2128/444 2127/443 2143/482 2144/483 +f 2129/446 2128/444 2144/483 2145/484 +f 2130/485 2129/446 2145/484 2146/486 +f 2131/487 2130/485 2146/486 2147/488 +f 2132/457 2131/487 2147/488 2148/489 +f 2133/458 2132/457 2148/489 2149/490 +f 2134/491 2133/458 2149/490 2150/492 +f 2135/493 2134/491 2150/492 2151/494 +f 2540/495 2541/439 2525/496 2524/497 +f 2390/498 2391/499 2470/500 2469/501 +f 2270/502 2271/503 2255/504 2254/505 +f 2509/506 2508/507 2524/508 2525/509 +f 2318/510 2317/511 2333/512 2334/513 +f 2141/514 2140/515 2156/378 2157/380 +f 2142/516 2141/514 2157/380 2158/517 +f 2143/518 2142/516 2158/517 2159/426 +f 2144/519 2143/518 2159/426 2160/387 +f 2145/520 2144/519 2160/387 2161/386 +f 2146/521 2145/520 2161/386 2162/390 +f 2147/522 2146/521 2162/390 2163/392 +f 2148/523 2147/522 2163/392 2164/394 +f 2149/524 2148/523 2164/394 2165/396 +f 2122/401 2123/400 2202/525 2201/526 +f 2265/527 2280/528 2296/529 2281/530 +f 2137/531 2152/532 2168/407 2153/406 +f 2093/533 2091/534 2169/535 2170/536 +f 2255/504 2256/537 2335/538 2334/513 +f 2294/539 2293/540 2242/541 2244/542 +f 2099/543 2097/544 2172/545 2173/546 +f 2101/547 2099/543 2173/546 2174/548 +f 2103/549 2101/547 2174/548 2175/550 +f 2105/551 2103/549 2175/550 2176/552 +f 2107/553 2105/551 2176/552 2177/554 +f 2109/555 2107/553 2177/554 2178/556 +f 2111/557 2109/555 2178/556 2179/558 +f 2113/559 2111/557 2179/558 2180/560 +f 2180/560 2181/561 2115/562 2113/559 +f 2181/561 2182/563 2117/564 2115/562 +f 2183/565 2184/566 2089/567 2119/568 +f 2182/569 2183/565 2119/568 2117/570 +f 2263/571 2262/572 2278/573 2279/574 +f 2172/545 2171/575 2187/576 2188/577 +f 2173/546 2172/545 2188/577 2189/578 +f 2174/548 2173/546 2189/578 2190/579 +f 2175/550 2174/548 2190/579 2191/580 +f 2176/552 2175/550 2191/580 2192/581 +f 2177/554 2176/552 2192/581 2193/582 +f 2554/583 2555/584 2479/585 2477/586 +f 2410/465 2409/587 2346/588 2348/589 +f 2563/590 2562/591 2578/592 2579/593 +f 2182/563 2181/561 2197/594 2198/595 +f 2184/566 2183/565 2199/596 2200/597 +f 2183/565 2182/569 2198/598 2199/596 +f 2185/599 2200/597 2216/467 2201/526 +f 2186/600 2185/599 2201/526 2202/525 +f 2187/576 2186/600 2202/525 2203/433 +f 2188/577 2187/576 2203/433 2204/432 +f 2300/601 2301/602 2227/603 2225/604 +f 2552/450 2551/605 2502/606 2504/447 +f 2191/580 2190/579 2206/442 2207/441 +f 2192/581 2191/580 2207/441 2208/445 +f 2441/607 2442/608 2426/609 2425/610 +f 2594/611 2593/612 2514/451 2515/613 +f 2587/614 2588/615 2572/616 2571/617 +f 2558/618 2557/619 2573/620 2574/621 +f 2481/622 2479/585 2555/584 2556/623 +f 2282/624 2281/530 2218/625 2220/626 +f 2391/627 2392/628 2471/629 2470/630 +f 2421/421 2420/420 2368/631 2370/632 +f 2406/633 2407/634 2391/499 2390/498 +f 2460/635 2459/636 2380/382 2381/637 +f 2285/638 2284/639 2224/640 2226/641 +f 2286/642 2285/638 2226/641 2228/643 +f 2523/644 2524/508 2508/507 2507/645 +f 2203/433 2202/525 2123/400 2124/434 +f 2289/646 2288/647 2232/648 2234/649 +f 2290/650 2289/646 2234/649 2236/651 +f 2291/652 2290/650 2236/651 2238/653 +f 2292/654 2291/652 2238/653 2240/655 +f 2170/536 2171/575 2095/656 2093/533 +f 2295/657 2294/539 2244/542 2246/658 +f 2281/530 2296/529 2248/659 2218/625 +f 2223/661 2225/1061 2780/662 2221/660 +f 2296/529 2295/664 2246/665 2248/659 +f 2329/666 2344/667 2249/668 2250/669 +f 2372/1072 2370/1073 2781/672 2374/671 +f 2330/674 2329/666 2250/669 2251/675 +f 2331/676 2330/674 2251/675 2252/677 +f 2332/678 2331/676 2252/677 2253/679 +f 2333/512 2332/678 2253/679 2254/505 +f 2254/505 2255/504 2334/513 2333/512 +f 2275/680 2276/414 2260/417 2259/681 +f 2097/544 2095/656 2171/575 2172/545 +f 2314/682 2315/683 2299/684 2298/685 +f 2407/686 2408/687 2392/628 2391/627 +f 2339/688 2338/689 2259/681 2260/417 +f 2340/690 2339/688 2260/417 2261/416 +f 2492/691 2494/404 2547/403 2546/692 +f 2393/693 2408/694 2424/695 2409/587 +f 2456/696 2455/697 2471/629 2472/698 +f 2297/699 2298/685 2221/700 2219/701 +f 2357/702 2355/703 2429/704 2430/705 +f 2254/505 2253/679 2269/706 2270/502 +f 2400/707 2401/708 2385/709 2384/710 +f 2539/711 2540/495 2524/497 2523/712 +f 2257/713 2256/537 2272/714 2273/715 +f 2258/716 2257/713 2273/715 2274/717 +f 2259/681 2258/716 2274/717 2275/680 +f 2474/448 2476/718 2538/719 2537/449 +f 2336/720 2335/538 2256/537 2257/713 +f 2599/721 2600/722 2584/723 2583/724 +f 2545/725 2544/726 2488/727 2490/728 +f 2249/668 2264/729 2280/730 2265/731 +f 2264/729 2263/732 2279/733 2280/730 +f 2266/734 2265/527 2281/530 2282/624 +f 2267/735 2266/734 2282/624 2283/736 +f 2268/737 2267/735 2283/736 2284/639 +f 2269/738 2268/737 2284/639 2285/638 +f 2270/739 2269/738 2285/638 2286/642 +f 2271/740 2270/739 2286/642 2287/741 +f 2272/742 2271/740 2287/741 2288/647 +f 2273/743 2272/742 2288/647 2289/646 +f 2274/744 2273/743 2289/646 2290/650 +f 2275/745 2274/744 2290/650 2291/652 +f 2276/746 2275/745 2291/652 2292/654 +f 2277/747 2276/746 2292/654 2293/540 +f 2278/748 2277/747 2293/540 2294/539 +f 2165/396 2166/430 2150/429 2149/524 +f 2280/528 2279/749 2295/664 2296/529 +f 2219/701 2217/750 2312/751 2297/699 +f 2419/752 2420/420 2404/419 2403/753 +f 2098/381 2100/754 2158/517 2157/380 +f 2591/755 2590/756 2511/757 2512/758 +f 2517/759 2518/760 2597/761 2596/762 +f 2190/579 2189/578 2205/763 2206/442 +f 2231/764 2229/765 2302/766 2303/767 +f 2233/768 2231/764 2303/767 2304/769 +f 2235/770 2233/768 2304/769 2305/771 +f 2237/772 2235/770 2305/771 2306/773 +f 2239/774 2237/772 2306/773 2307/775 +f 2241/776 2239/774 2307/775 2308/777 +f 2308/777 2309/778 2243/779 2241/776 +f 2309/778 2310/780 2245/781 2243/779 +f 2311/782 2312/751 2217/750 2247/783 +f 2310/784 2311/782 2247/783 2245/785 +f 2200/597 2185/599 2169/535 2184/566 +f 2436/786 2435/787 2451/788 2452/789 +f 2338/689 2337/790 2258/716 2259/681 +f 2301/602 2300/601 2316/791 2317/511 +f 2302/766 2301/602 2317/511 2318/510 +f 2303/767 2302/766 2318/510 2319/792 +f 2304/769 2303/767 2319/792 2320/793 +f 2305/771 2304/769 2320/793 2321/794 +f 2306/773 2305/771 2321/794 2322/795 +f 2307/775 2306/773 2322/795 2323/796 +f 2308/777 2307/775 2323/796 2324/797 +f 2309/778 2308/777 2324/797 2325/462 +f 2310/780 2309/778 2325/462 2326/461 +f 2312/751 2311/782 2327/798 2328/799 +f 2311/782 2310/784 2326/800 2327/798 +f 2313/801 2328/799 2344/667 2329/666 +f 2522/802 2523/644 2507/645 2506/803 +f 2316/791 2315/683 2331/676 2332/678 +f 2154/375 2155/374 2139/804 2138/805 +f 2319/792 2318/510 2334/513 2335/538 +f 2566/808 2567/809 2503/810 2501/811 +f 2313/801 2314/682 2298/685 2297/699 +f 2322/795 2321/794 2337/790 2338/689 +f 2328/799 2313/801 2297/699 2312/751 +f 2566/812 2565/813 2581/814 2582/815 +f 2325/462 2324/797 2340/690 2341/459 +f 2214/807 2213/806 2134/491 2135/493 +f 2327/798 2326/800 2342/816 2343/817 +f 2193/582 2194/818 2178/556 2177/554 +f 2324/797 2323/796 2339/688 2340/690 +f 2411/466 2410/465 2348/589 2350/819 +f 2412/820 2411/466 2350/819 2352/821 +f 2413/822 2412/820 2352/821 2354/823 +f 2414/824 2413/822 2354/823 2356/825 +f 2510/826 2511/757 2590/756 2589/827 +f 2417/476 2416/828 2360/829 2362/473 +f 2094/1030 2092/1016 2090/1013 2777/1015 +f 2125/435 2126/480 2205/763 2204/432 +f 2214/471 2215/468 2199/596 2198/598 +f 2573/620 2572/616 2588/615 2589/827 +f 2422/831 2421/421 2370/632 2372/832 +f 2423/833 2422/831 2372/832 2374/834 +f 2405/835 2406/633 2390/498 2389/836 +f 2353/1085 2355/1086 2782/839 2351/838 +f 2457/841 2472/698 2377/842 2378/843 +f 2504/844 2502/845 2783/846 2474/847 +f 2458/848 2457/841 2378/843 2379/383 +f 2220/626 2222/849 2283/736 2282/624 +f 2211/456 2210/850 2131/487 2132/457 +f 2461/851 2460/635 2381/637 2382/852 +f 2382/852 2383/853 2462/854 2461/851 +f 2528/855 2529/453 2513/452 2512/758 +f 2392/628 2377/842 2472/698 2471/629 +f 2465/856 2464/857 2385/709 2386/858 +f 2466/859 2465/856 2386/858 2387/860 +f 2467/861 2466/859 2387/860 2388/862 +f 2468/863 2467/861 2388/862 2389/836 +f 2469/501 2468/863 2389/836 2390/498 +f 2152/864 2137/865 2121/470 2136/469 +f 2266/866 2267/867 2251/675 2250/669 +f 2377/842 2392/628 2408/687 2393/868 +f 2153/406 2154/375 2138/805 2137/531 +f 2534/869 2533/870 2549/871 2550/872 +f 2381/637 2380/382 2396/385 2397/873 +f 2382/852 2381/637 2397/873 2398/874 +f 2383/853 2382/852 2398/874 2399/875 +f 2384/710 2383/853 2399/875 2400/707 +f 2548/402 2549/871 2533/870 2532/876 +f 2256/537 2255/504 2271/503 2272/714 +f 2387/860 2386/858 2402/877 2403/878 +f 2388/862 2387/860 2403/878 2404/879 +f 2389/836 2388/862 2404/879 2405/835 +f 2383/853 2384/710 2463/880 2462/854 +f 2424/695 2423/881 2374/882 2376/883 +f 2284/639 2283/736 2222/849 2224/640 +f 2240/655 2242/541 2293/540 2292/654 +f 2396/884 2395/463 2411/466 2412/820 +f 2397/885 2396/884 2412/820 2413/822 +f 2398/886 2397/885 2413/822 2414/824 +f 2399/887 2398/886 2414/824 2415/888 +f 2400/889 2399/887 2415/888 2416/828 +f 2401/890 2400/889 2416/828 2417/476 +f 2402/891 2401/890 2417/476 2418/475 +f 2403/753 2402/891 2418/475 2419/752 +f 2118/892 2120/408 2168/407 2167/893 +f 2509/506 2510/826 2589/827 2588/615 +f 2406/894 2405/418 2421/421 2422/831 +f 2264/729 2249/668 2344/667 2343/817 +f 2408/694 2407/895 2423/881 2424/695 +f 2347/896 2345/897 2440/898 2425/610 +f 2349/899 2347/896 2425/610 2426/609 +f 2428/900 2427/901 2443/902 2444/903 +f 2267/867 2268/904 2252/677 2251/675 +f 2580/905 2581/814 2565/813 2564/906 +f 2359/907 2357/702 2430/705 2431/908 +f 2361/909 2359/907 2431/908 2432/910 +f 2363/911 2361/909 2432/910 2433/912 +f 2365/913 2363/911 2433/912 2434/914 +f 2367/915 2365/913 2434/914 2435/787 +f 2369/916 2367/915 2435/787 2436/786 +f 2436/786 2437/917 2371/918 2369/916 +f 2437/917 2438/919 2373/920 2371/918 +f 2439/921 2440/898 2345/897 2375/922 +f 2438/923 2439/921 2375/922 2373/924 +f 2194/818 2193/582 2209/925 2210/850 +f 2429/704 2428/900 2444/903 2445/926 +f 2432/910 2431/908 2447/927 2448/928 +f 2433/912 2432/910 2448/928 2449/929 +f 2335/538 2336/720 2320/793 2319/792 +f 2556/623 2555/584 2571/617 2572/616 +f 2437/917 2436/786 2452/789 2453/930 +f 2570/931 2571/617 2555/584 2554/583 +f 2439/921 2438/923 2454/932 2455/697 +f 2441/607 2456/696 2472/698 2457/841 +f 2442/608 2441/607 2457/841 2458/848 +f 2443/902 2442/608 2458/848 2459/636 +f 2444/903 2443/902 2459/636 2460/635 +f 2445/926 2444/903 2460/635 2461/851 +f 2446/933 2445/926 2461/851 2462/854 +f 2447/927 2446/933 2462/854 2463/880 +f 2448/928 2447/927 2463/880 2464/857 +f 2449/929 2448/928 2464/857 2465/856 +f 2450/934 2449/929 2465/856 2466/859 +f 2451/788 2450/934 2466/859 2467/861 +f 2452/789 2451/788 2467/861 2468/863 +f 2453/930 2452/789 2468/863 2469/501 +f 2265/731 2266/866 2250/669 2249/668 +f 2455/697 2454/932 2470/630 2471/629 +f 2356/825 2358/935 2415/888 2414/824 +f 2597/761 2598/936 2582/815 2581/814 +f 2476/718 2478/937 2539/711 2538/719 +f 2185/599 2186/600 2170/536 2169/535 +f 2541/439 2540/495 2480/938 2482/436 +f 2376/883 2346/588 2409/587 2424/695 +f 2126/480 2127/443 2206/442 2205/763 +f 2422/831 2423/833 2407/939 2406/894 +f 2298/685 2299/684 2223/940 2221/700 +f 2137/865 2138/398 2122/401 2121/470 +f 2540/495 2539/711 2478/937 2480/938 +f 2342/460 2341/459 2262/572 2263/571 +f 2549/871 2548/402 2496/405 2498/941 +f 2550/872 2549/871 2498/941 2500/942 +f 2551/943 2550/872 2500/942 2502/944 +f 2204/432 2205/763 2189/578 2188/577 +f 2477/948 2479/945 2784/947 2475/1111 +f 2379/383 2380/382 2459/636 2458/848 +f 2585/949 2600/722 2505/950 2506/803 +f 2586/951 2585/949 2506/803 2507/645 +f 2587/614 2586/951 2507/645 2508/507 +f 2588/615 2587/614 2508/507 2509/506 +f 2486/952 2488/727 2544/726 2543/953 +f 2225/604 2223/940 2299/684 2300/601 +f 2490/728 2492/691 2546/692 2545/725 +f 2592/954 2591/755 2512/758 2513/452 +f 2208/445 2209/925 2193/582 2192/581 +f 2595/955 2594/611 2515/613 2516/956 +f 2596/762 2595/955 2516/956 2517/759 +f 2542/438 2543/953 2527/957 2526/958 +f 2229/765 2227/603 2301/602 2302/766 +f 2600/722 2599/721 2520/959 2505/950 +f 2599/721 2598/960 2519/961 2520/959 +f 2215/468 2216/467 2200/597 2199/596 +f 2528/962 2527/957 2543/953 2544/726 +f 2526/958 2525/496 2541/439 2542/438 +f 2288/647 2287/741 2230/963 2232/648 +f 2510/826 2509/506 2525/509 2526/964 +f 2511/757 2510/826 2526/964 2527/965 +f 2598/960 2599/721 2583/724 2582/966 +f 2464/857 2463/880 2384/710 2385/709 +f 2515/613 2514/451 2530/454 2531/967 +f 2516/956 2515/613 2531/967 2532/968 +f 2517/759 2516/956 2532/968 2533/969 +f 2518/760 2517/759 2533/969 2534/970 +f 2519/971 2518/760 2534/970 2535/972 +f 2505/950 2520/959 2536/973 2521/974 +f 2520/959 2519/961 2535/975 2536/973 +f 2522/976 2521/977 2537/449 2538/719 +f 2523/712 2522/976 2538/719 2539/711 +f 2329/666 2330/674 2314/682 2313/801 +f 2140/515 2139/804 2155/374 2156/378 +f 2136/469 2135/472 2151/978 2152/864 +f 2521/974 2522/802 2506/803 2505/950 +f 2598/936 2597/761 2518/760 2519/971 +f 2529/979 2528/962 2544/726 2545/725 +f 2530/980 2529/979 2545/725 2546/692 +f 2531/981 2530/980 2546/692 2547/403 +f 2532/876 2531/981 2547/403 2548/402 +f 2393/868 2394/982 2378/843 2377/842 +f 2386/858 2385/709 2401/708 2402/877 +f 2535/983 2534/869 2550/872 2551/943 +f 2521/977 2536/984 2552/450 2537/449 +f 2536/984 2535/985 2551/605 2552/450 +f 2475/986 2473/987 2568/988 2553/989 +f 2477/586 2475/986 2553/989 2554/583 +f 2211/456 2212/455 2196/990 2195/991 +f 2179/558 2178/556 2194/818 2195/991 +f 2483/992 2481/622 2556/623 2557/619 +f 2485/993 2483/992 2557/619 2558/618 +f 2487/994 2485/993 2558/618 2559/995 +f 2489/996 2487/994 2559/995 2560/997 +f 2491/998 2489/996 2560/997 2561/999 +f 2493/1000 2491/998 2561/999 2562/591 +f 2495/1001 2493/1000 2562/591 2563/590 +f 2497/1002 2495/1001 2563/590 2564/906 +f 2564/906 2565/813 2499/1003 2497/1002 +f 2565/813 2566/812 2501/1004 2499/1003 +f 2567/809 2568/988 2473/987 2503/810 +f 2572/616 2573/620 2557/619 2556/623 +f 2321/794 2320/793 2336/720 2337/790 +f 2449/929 2450/934 2434/914 2433/912 +f 2569/1005 2584/723 2600/722 2585/949 +f 2210/850 2211/456 2195/991 2194/818 +f 2554/583 2553/989 2569/1005 2570/931 +f 2559/995 2558/618 2574/621 2575/1006 +f 2560/997 2559/995 2575/1006 2576/1007 +f 2561/999 2560/997 2576/1007 2577/1008 +f 2195/991 2196/990 2180/560 2179/558 +f 2584/723 2569/1005 2553/989 2568/988 +f 2593/612 2594/611 2578/592 2577/1008 +f 2453/930 2454/1009 2438/919 2437/917 +f 2456/696 2441/607 2425/610 2440/898 +f 2570/931 2569/1005 2585/949 2586/951 +f 2366/830 2368/631 2420/420 2419/752 +f 2579/593 2578/592 2594/611 2595/955 +f 2574/621 2573/620 2589/827 2590/756 +f 2575/1006 2574/621 2590/756 2591/755 +f 2576/1007 2575/1006 2591/755 2592/954 +f 2577/1008 2576/1007 2592/954 2593/612 +f 2586/951 2587/614 2571/617 2570/931 +f 2338/689 2339/688 2323/796 2322/795 +f 2580/905 2579/593 2595/955 2596/762 +f 2581/814 2580/905 2596/762 2597/761 +f 2582/966 2583/724 2567/809 2566/808 +f 2527/965 2528/855 2512/758 2511/757 +f 2228/643 2230/963 2287/741 2286/642 +f 2130/485 2131/487 2210/850 2209/925 +f 2579/593 2580/905 2564/906 2563/590 +f 2577/1008 2578/592 2562/591 2561/999 +f 2332/678 2333/512 2317/511 2316/791 +f 2315/683 2314/682 2330/674 2331/676 +f 2450/934 2451/788 2435/787 2434/914 +f 2409/587 2410/465 2394/464 2393/693 +f 2171/575 2170/536 2186/600 2187/576 +f 2416/828 2415/888 2358/935 2360/829 +f 2440/898 2439/921 2455/697 2456/696 +f 2428/900 2429/704 2355/703 2353/1010 +f 2257/713 2258/716 2337/790 2336/720 +f 2197/594 2196/990 2212/455 2213/806 +f 2213/806 2214/807 2198/595 2197/594 +f 2513/452 2514/451 2593/612 2592/954 +f 2484/437 2486/952 2543/953 2542/438 +f 2343/817 2342/816 2263/732 2264/729 +f 2300/601 2299/684 2315/683 2316/791 +f 2277/415 2278/573 2262/572 2261/416 +f 2583/724 2584/723 2568/988 2567/809 +f 2431/908 2430/705 2446/933 2447/927 +f 2394/982 2395/384 2379/383 2378/843 +f 2442/608 2443/902 2427/901 2426/609 +f 2353/1010 2351/1011 2427/901 2428/900 +f 2469/501 2470/500 2454/1009 2453/930 +f 2121/470 2122/401 2201/526 2216/467 +f 2426/609 2427/901 2351/1011 2349/899 +f 2129/446 2130/485 2209/925 2208/445 +f 2167/893 2168/407 2152/532 2151/1012 +f 2120/1014 2118/1018 2777/1015 2090/1013 +f 2091/534 2089/567 2184/566 2169/535 +f 2181/561 2180/560 2196/990 2197/594 +f 2294/539 2295/657 2279/1017 2278/748 +f 2253/679 2252/677 2268/904 2269/706 +f 2328/799 2327/798 2343/817 2344/667 +f 2419/752 2418/475 2364/474 2366/830 +f 2133/458 2134/491 2213/806 2212/455 +f 2100/754 2102/427 2159/426 2158/517 +f 2261/416 2262/572 2341/459 2340/690 +f 2445/926 2446/933 2430/705 2429/704 +f 2116/1019 2114/1020 2777/1015 2118/1018 +f 2110/1022 2108/1023 2777/1015 2112/1021 +f 2114/1020 2112/1021 2777/1015 +f 2106/1024 2104/1025 2777/1015 2108/1023 +f 2102/1026 2100/1027 2777/1015 2104/1025 +f 2098/1028 2096/1029 2777/1015 2100/1027 +f 2119/1031 2089/1032 2091/1033 2778/412 +f 2096/1029 2094/1030 2777/1015 +f 2099/1034 2101/1035 2778/412 2097/411 +f 2095/410 2097/411 2778/412 +f 2105/1037 2107/1040 2778/412 2103/1036 +f 2101/1035 2103/1036 2778/412 +f 2109/1038 2111/1039 2778/412 2107/1040 +f 2115/1041 2117/1042 2778/412 2113/1043 +f 2111/1039 2113/1043 2778/412 +f 2218/425 2248/422 2779/424 2220/1045 +f 2117/1042 2119/1031 2778/412 +f 2242/1046 2240/1047 2779/424 2244/1048 +f 2236/1050 2234/1051 2779/424 2238/1049 +f 2240/1047 2238/1049 2779/424 +f 2230/1053 2228/1054 2779/424 2232/1052 +f 2234/1051 2232/1052 2779/424 +f 2224/1055 2222/1044 2779/424 2226/1056 +f 2228/1054 2226/1056 2779/424 +f 2219/663 2221/660 2780/662 2217/1058 +f 2222/1044 2220/1045 2779/424 +f 2229/1060 2231/1062 2780/662 2227/1059 +f 2225/1061 2227/1059 2780/662 +f 2235/1064 2237/1065 2780/662 2233/1063 +f 2231/1062 2233/1063 2780/662 +f 2241/1066 2243/1067 2780/662 2239/1068 +f 2237/1065 2239/1068 2780/662 +f 2247/1057 2217/1058 2780/662 2245/1069 +f 2243/1067 2245/1069 2780/662 +f 2346/673 2376/670 2781/672 2348/1071 +f 2376/670 2374/671 2781/672 +f 2368/1074 2366/1075 2781/672 2370/1073 +f 2364/1076 2362/1077 2781/672 2366/1075 +f 2358/1078 2356/1079 2781/672 2360/1080 +f 2362/1077 2360/1080 2781/672 +f 2354/1081 2352/1082 2781/672 2356/1079 +f 2350/1070 2348/1071 2781/672 2352/1082 +f 2347/840 2349/837 2782/839 2345/1084 +f 2349/837 2351/838 2782/839 +f 2357/1087 2359/1088 2782/839 2355/1086 +f 2363/1089 2365/1090 2782/839 2361/1091 +f 2359/1088 2361/1091 2782/839 +f 2369/1092 2371/1093 2782/839 2367/1094 +f 2365/1090 2367/1094 2782/839 +f 2373/1095 2375/1083 2782/839 2371/1093 +f 2478/1096 2476/1097 2474/847 2783/846 +f 2375/1083 2345/1084 2782/839 +f 2498/1098 2496/1099 2783/846 2500/1100 +f 2502/845 2500/1100 2783/846 +f 2494/1101 2492/1102 2783/846 2496/1099 +f 2488/1104 2486/1107 2783/846 2490/1103 +f 2492/1102 2490/1103 2783/846 +f 2482/1106 2480/1108 2783/846 2484/1105 +f 2486/1107 2484/1105 2783/846 +f 2503/1109 2473/1110 2475/1111 2784/947 +f 2480/1108 2478/1096 2783/846 +f 2483/1112 2485/1113 2784/947 2481/946 +f 2479/945 2481/946 2784/947 +f 2489/1115 2491/1118 2784/947 2487/1114 +f 2485/1113 2487/1114 2784/947 +f 2493/1116 2495/1117 2784/947 2491/1118 +f 2499/1119 2501/1120 2784/947 2497/1121 +f 2495/1117 2497/1121 2784/947 +f 2850/375 2849/406 2786/409 2788/376 +f 2501/1120 2503/1109 2784/947 +f 2851/374 2850/375 2788/376 2790/377 +f 2852/378 2851/374 2790/377 2792/379 +f 2853/380 2852/378 2792/379 2794/381 +f 2817/470 2818/401 2897/526 2912/467 +f 3076/382 3075/383 3091/384 3092/385 +f 2957/416 2958/572 3037/459 3036/690 +f 2857/386 2856/387 2800/388 2802/389 +f 2858/390 2857/386 2802/389 2804/391 +f 2859/392 2858/390 2804/391 2806/393 +f 2860/394 2859/392 2806/393 2808/395 +f 2861/396 2860/394 2808/395 2810/397 +f 2834/398 2835/399 2819/400 2818/401 +f 3244/402 3243/403 3190/404 3192/405 +f 2849/406 2864/407 2816/408 2786/409 +f 2791/410 2793/411 3298/412 2789/413 +f 2972/414 2973/415 2957/416 2956/417 +f 3101/418 3100/419 3116/420 3117/421 +f 2944/422 2942/423 3299/424 2914/425 +f 2856/387 2855/426 2798/427 2800/388 +f 2847/428 2846/429 2862/430 2863/431 +f 2900/432 2899/433 2820/434 2821/435 +f 3178/436 3180/437 3238/438 3237/439 +f 2820/434 2819/400 2835/399 2836/440 +f 2903/441 2902/442 2823/443 2824/444 +f 2904/445 2903/441 2824/444 2825/446 +f 3200/447 3170/448 3233/449 3248/450 +f 2816/1014 2814/1018 3297/1015 2786/1013 +f 3210/451 3209/452 3225/453 3226/454 +f 2908/455 2907/456 2828/457 2829/458 +f 3037/459 3038/460 3022/461 3021/462 +f 3091/463 3090/464 3106/465 3107/466 +f 2912/467 2911/468 2832/469 2817/470 +f 2911/468 2910/471 2831/472 2832/469 +f 3058/473 3060/474 3114/475 3113/476 +f 2810/397 2812/477 2862/430 2861/396 +f 2863/431 2862/430 2812/477 2814/478 +f 2821/435 2820/434 2836/440 2837/479 +f 2822/480 2821/435 2837/479 2838/481 +f 2823/443 2822/480 2838/481 2839/482 +f 2824/444 2823/443 2839/482 2840/483 +f 2825/446 2824/444 2840/483 2841/484 +f 2826/485 2825/446 2841/484 2842/486 +f 2827/487 2826/485 2842/486 2843/488 +f 2828/457 2827/487 2843/488 2844/489 +f 2829/458 2828/457 2844/489 2845/490 +f 2830/491 2829/458 2845/490 2846/492 +f 2831/493 2830/491 2846/492 2847/494 +f 3236/495 3237/439 3221/496 3220/497 +f 3086/498 3087/499 3166/500 3165/501 +f 2966/502 2967/503 2951/504 2950/505 +f 3205/506 3204/507 3220/508 3221/509 +f 3014/510 3013/511 3029/512 3030/513 +f 2837/514 2836/515 2852/378 2853/380 +f 2838/516 2837/514 2853/380 2854/517 +f 2839/518 2838/516 2854/517 2855/426 +f 2840/519 2839/518 2855/426 2856/387 +f 2841/520 2840/519 2856/387 2857/386 +f 2842/521 2841/520 2857/386 2858/390 +f 2843/522 2842/521 2858/390 2859/392 +f 2844/523 2843/522 2859/392 2860/394 +f 2845/524 2844/523 2860/394 2861/396 +f 2818/401 2819/400 2898/525 2897/526 +f 2961/527 2976/528 2992/529 2977/530 +f 2833/531 2848/532 2864/407 2849/406 +f 2787/534 2785/567 2880/566 2865/535 +f 2825/446 2826/485 2905/925 2904/445 +f 2789/533 2787/534 2865/535 2866/536 +f 2951/504 2952/537 3031/538 3030/513 +f 2990/539 2989/540 2938/541 2940/542 +f 2795/543 2793/544 2868/545 2869/546 +f 2797/547 2795/543 2869/546 2870/548 +f 2799/549 2797/547 2870/548 2871/550 +f 2801/551 2799/549 2871/550 2872/552 +f 2803/553 2801/551 2872/552 2873/554 +f 2805/555 2803/553 2873/554 2874/556 +f 2807/557 2805/555 2874/556 2875/558 +f 2809/559 2807/557 2875/558 2876/560 +f 2876/560 2877/561 2811/562 2809/559 +f 2877/561 2878/563 2813/564 2811/562 +f 2879/565 2880/566 2785/567 2815/568 +f 2878/569 2879/565 2815/568 2813/570 +f 2867/575 2866/536 2882/600 2883/576 +f 2959/571 2958/572 2974/573 2975/574 +f 2868/545 2867/575 2883/576 2884/577 +f 2869/546 2868/545 2884/577 2885/578 +f 2870/548 2869/546 2885/578 2886/579 +f 2871/550 2870/548 2886/579 2887/580 +f 2872/552 2871/550 2887/580 2888/581 +f 2873/554 2872/552 2888/581 2889/582 +f 3250/583 3251/584 3175/585 3173/586 +f 3106/465 3105/587 3042/588 3044/589 +f 2877/561 2876/560 2892/990 2893/594 +f 3259/590 3258/591 3274/592 3275/593 +f 2878/563 2877/561 2893/594 2894/595 +f 2880/566 2879/565 2895/596 2896/597 +f 2879/565 2878/569 2894/598 2895/596 +f 2881/599 2896/597 2912/467 2897/526 +f 2882/600 2881/599 2897/526 2898/525 +f 2883/576 2882/600 2898/525 2899/433 +f 2884/577 2883/576 2899/433 2900/432 +f 2996/601 2997/602 2923/603 2921/604 +f 3281/949 3296/722 3201/950 3202/803 +f 2887/580 2886/579 2902/442 2903/441 +f 2888/581 2887/580 2903/441 2904/445 +f 3137/607 3138/608 3122/609 3121/610 +f 3290/611 3289/612 3210/451 3211/613 +f 3283/614 3284/615 3268/616 3267/617 +f 3255/995 3254/618 3270/621 3271/1006 +f 3177/622 3175/585 3251/584 3252/623 +f 3028/678 3029/512 3013/511 3012/791 +f 2978/624 2977/530 2914/625 2916/626 +f 3087/627 3088/628 3167/629 3166/630 +f 3117/421 3116/420 3064/631 3066/632 +f 2996/601 2995/684 3011/683 3012/791 +f 3102/633 3103/634 3087/499 3086/498 +f 3156/635 3155/636 3076/382 3077/637 +f 2981/638 2980/639 2920/640 2922/641 +f 2982/642 2981/638 2922/641 2924/643 +f 3219/644 3220/508 3204/507 3203/645 +f 2899/433 2898/525 2819/400 2820/434 +f 2985/646 2984/647 2928/648 2930/649 +f 2986/650 2985/646 2930/649 2932/651 +f 2987/652 2986/650 2932/651 2934/653 +f 2988/654 2987/652 2934/653 2936/655 +f 2866/536 2867/575 2791/656 2789/533 +f 2796/754 2798/427 2855/426 2854/517 +f 2991/657 2990/539 2940/542 2942/658 +f 2977/530 2992/529 2944/659 2914/625 +f 2919/661 2921/1061 3300/662 2917/660 +f 2992/529 2991/664 2942/665 2944/659 +f 3025/666 3040/667 2945/668 2946/669 +f 3068/1072 3066/1073 3301/672 3070/671 +f 3026/674 3025/666 2946/669 2947/675 +f 3027/676 3026/674 2947/675 2948/677 +f 3028/678 3027/676 2948/677 2949/679 +f 3029/512 3028/678 2949/679 2950/505 +f 2950/505 2951/504 3030/513 3029/512 +f 2971/680 2972/414 2956/417 2955/681 +f 2793/544 2791/656 2867/575 2868/545 +f 3010/682 3011/683 2995/684 2994/685 +f 3103/686 3104/687 3088/628 3087/627 +f 3035/688 3034/689 2955/681 2956/417 +f 3036/690 3035/688 2956/417 2957/416 +f 3188/691 3190/404 3243/403 3242/692 +f 3279/724 3280/723 3264/988 3263/809 +f 3039/817 3038/816 2959/732 2960/729 +f 3089/693 3104/694 3120/695 3105/587 +f 2990/539 2991/657 2975/1017 2974/748 +f 3152/696 3151/697 3167/629 3168/698 +f 2993/699 2994/685 2917/700 2915/701 +f 3053/702 3051/703 3125/704 3126/705 +f 2950/505 2949/679 2965/706 2966/502 +f 3096/707 3097/708 3081/709 3080/710 +f 3235/711 3236/495 3220/497 3219/712 +f 2953/713 2952/537 2968/714 2969/715 +f 2954/716 2953/713 2969/715 2970/717 +f 2955/681 2954/716 2970/717 2971/680 +f 3170/448 3172/718 3234/719 3233/449 +f 3032/720 3031/538 2952/537 2953/713 +f 3295/721 3296/722 3280/723 3279/724 +f 3241/725 3240/726 3184/727 3186/728 +f 2945/668 2960/729 2976/730 2961/731 +f 2960/729 2959/732 2975/733 2976/730 +f 2962/734 2961/527 2977/530 2978/624 +f 2963/735 2962/734 2978/624 2979/736 +f 2964/737 2963/735 2979/736 2980/639 +f 2965/738 2964/737 2980/639 2981/638 +f 2966/739 2965/738 2981/638 2982/642 +f 2967/740 2966/739 2982/642 2983/741 +f 2968/742 2967/740 2983/741 2984/647 +f 2969/743 2968/742 2984/647 2985/646 +f 2970/744 2969/743 2985/646 2986/650 +f 2971/745 2970/744 2986/650 2987/652 +f 2972/746 2971/745 2987/652 2988/654 +f 2973/747 2972/746 2988/654 2989/540 +f 2974/748 2973/747 2989/540 2990/539 +f 2861/396 2862/430 2846/429 2845/524 +f 2949/679 2948/677 2964/904 2965/706 +f 2976/528 2975/749 2991/664 2992/529 +f 2915/701 2913/750 3008/751 2993/699 +f 3115/752 3116/420 3100/419 3099/753 +f 2794/381 2796/754 2854/517 2853/380 +f 3287/755 3286/756 3207/757 3208/758 +f 3213/759 3214/760 3293/761 3292/762 +f 2886/579 2885/578 2901/763 2902/442 +f 2927/764 2925/765 2998/766 2999/767 +f 2929/768 2927/764 2999/767 3000/769 +f 2931/770 2929/768 3000/769 3001/771 +f 2933/772 2931/770 3001/771 3002/773 +f 2935/774 2933/772 3002/773 3003/775 +f 2937/776 2935/774 3003/775 3004/777 +f 3004/777 3005/778 2939/779 2937/776 +f 3005/778 3006/780 2941/781 2939/779 +f 3007/782 3008/751 2913/750 2943/783 +f 3006/784 3007/782 2943/783 2941/785 +f 2896/597 2881/599 2865/535 2880/566 +f 3132/786 3131/787 3147/788 3148/789 +f 3034/689 3033/790 2954/716 2955/681 +f 2997/602 2996/601 3012/791 3013/511 +f 2998/766 2997/602 3013/511 3014/510 +f 2999/767 2998/766 3014/510 3015/792 +f 3000/769 2999/767 3015/792 3016/793 +f 3001/771 3000/769 3016/793 3017/794 +f 3002/773 3001/771 3017/794 3018/795 +f 3003/775 3002/773 3018/795 3019/796 +f 3004/777 3003/775 3019/796 3020/797 +f 3005/778 3004/777 3020/797 3021/462 +f 3006/780 3005/778 3021/462 3022/461 +f 3008/751 3007/782 3023/798 3024/799 +f 3007/782 3006/784 3022/800 3023/798 +f 3009/801 3024/799 3040/667 3025/666 +f 3011/683 3010/682 3026/674 3027/676 +f 3218/802 3219/644 3203/645 3202/803 +f 3012/791 3011/683 3027/676 3028/678 +f 2850/375 2851/374 2835/804 2834/805 +f 2909/806 2910/807 2894/595 2893/594 +f 3015/792 3014/510 3030/513 3031/538 +f 3262/808 3263/809 3199/810 3197/811 +f 3009/801 3010/682 2994/685 2993/699 +f 3018/795 3017/794 3033/790 3034/689 +f 3024/799 3009/801 2993/699 3008/751 +f 3262/812 3261/813 3277/814 3278/815 +f 3021/462 3020/797 3036/690 3037/459 +f 3024/799 3023/798 3039/817 3040/667 +f 2910/807 2909/806 2830/491 2831/493 +f 3023/798 3022/800 3038/816 3039/817 +f 2889/582 2890/818 2874/556 2873/554 +f 3020/797 3019/796 3035/688 3036/690 +f 3107/466 3106/465 3044/589 3046/819 +f 3108/820 3107/466 3046/819 3048/821 +f 3109/822 3108/820 3048/821 3050/823 +f 3110/824 3109/822 3050/823 3052/825 +f 3112/828 3111/888 3054/935 3056/829 +f 3206/826 3207/757 3286/756 3285/827 +f 3113/476 3112/828 3056/829 3058/473 +f 2790/1030 2788/1016 2786/1013 3297/1015 +f 2821/435 2822/480 2901/763 2900/432 +f 2910/471 2911/468 2895/596 2894/598 +f 3269/620 3268/616 3284/615 3285/827 +f 3118/831 3117/421 3066/632 3068/832 +f 3119/833 3118/831 3068/832 3070/834 +f 3101/835 3102/633 3086/498 3085/836 +f 3049/1085 3051/1086 3302/839 3047/838 +f 2973/415 2974/573 2958/572 2957/416 +f 3153/841 3168/698 3073/842 3074/843 +f 3200/844 3198/845 3303/846 3170/847 +f 3154/848 3153/841 3074/843 3075/383 +f 2916/626 2918/849 2979/736 2978/624 +f 2907/456 2906/850 2827/487 2828/457 +f 3157/851 3156/635 3077/637 3078/852 +f 3078/852 3079/853 3158/854 3157/851 +f 3224/855 3225/453 3209/452 3208/758 +f 3088/628 3073/842 3168/698 3167/629 +f 3161/856 3160/857 3081/709 3082/858 +f 3162/859 3161/856 3082/858 3083/860 +f 3163/861 3162/859 3083/860 3084/862 +f 3164/863 3163/861 3084/862 3085/836 +f 3165/501 3164/863 3085/836 3086/498 +f 2848/864 2833/865 2817/470 2832/469 +f 2962/866 2963/867 2947/675 2946/669 +f 3073/842 3088/628 3104/687 3089/868 +f 2849/406 2850/375 2834/805 2833/531 +f 3230/869 3229/870 3245/871 3246/872 +f 3138/608 3139/902 3123/901 3122/609 +f 3077/637 3076/382 3092/385 3093/873 +f 3078/852 3077/637 3093/873 3094/874 +f 3079/853 3078/852 3094/874 3095/875 +f 3080/710 3079/853 3095/875 3096/707 +f 3244/402 3245/871 3229/870 3228/876 +f 2952/537 2951/504 2967/503 2968/714 +f 3083/860 3082/858 3098/877 3099/878 +f 3084/862 3083/860 3099/878 3100/879 +f 3085/836 3084/862 3100/879 3101/835 +f 3079/853 3080/710 3159/880 3158/854 +f 3120/695 3119/881 3070/882 3072/883 +f 2980/639 2979/736 2918/849 2920/640 +f 2829/458 2830/491 2909/806 2908/455 +f 3180/437 3182/952 3239/953 3238/438 +f 2936/655 2938/541 2989/540 2988/654 +f 3092/884 3091/463 3107/466 3108/820 +f 3093/885 3092/884 3108/820 3109/822 +f 3094/886 3093/885 3109/822 3110/824 +f 3095/887 3094/886 3110/824 3111/888 +f 3096/889 3095/887 3111/888 3112/828 +f 3097/890 3096/889 3112/828 3113/476 +f 3098/891 3097/890 3113/476 3114/475 +f 3099/753 3098/891 3114/475 3115/752 +f 2814/892 2816/408 2864/407 2863/893 +f 3205/506 3206/826 3285/827 3284/615 +f 3102/894 3101/418 3117/421 3118/831 +f 2960/729 2945/668 3040/667 3039/817 +f 3209/452 3210/451 3289/612 3288/954 +f 3104/694 3103/895 3119/881 3120/695 +f 3043/896 3041/897 3136/898 3121/610 +f 3045/899 3043/896 3121/610 3122/609 +f 3049/1010 3047/1011 3123/901 3124/900 +f 3124/900 3123/901 3139/902 3140/903 +f 2963/867 2964/904 2948/677 2947/675 +f 3276/905 3277/814 3261/813 3260/906 +f 3055/907 3053/702 3126/705 3127/908 +f 3057/909 3055/907 3127/908 3128/910 +f 3059/911 3057/909 3128/910 3129/912 +f 3061/913 3059/911 3129/912 3130/914 +f 3063/915 3061/913 3130/914 3131/787 +f 3065/916 3063/915 3131/787 3132/786 +f 3132/786 3133/917 3067/918 3065/916 +f 3133/917 3134/919 3069/920 3067/918 +f 3135/921 3136/898 3041/897 3071/922 +f 3134/923 3135/921 3071/922 3069/924 +f 3122/609 3123/901 3047/1011 3045/899 +f 2890/818 2889/582 2905/925 2906/850 +f 3165/501 3166/500 3150/1009 3149/930 +f 3125/704 3124/900 3140/903 3141/926 +f 3127/908 3126/705 3142/933 3143/927 +f 2863/893 2864/407 2848/532 2847/1012 +f 3128/910 3127/908 3143/927 3144/928 +f 3129/912 3128/910 3144/928 3145/929 +f 3031/538 3032/720 3016/793 3015/792 +f 3252/623 3251/584 3267/617 3268/616 +f 3105/587 3106/465 3090/464 3089/693 +f 3133/917 3132/786 3148/789 3149/930 +f 3136/898 3135/921 3151/697 3152/696 +f 3266/931 3267/617 3251/584 3250/583 +f 3135/921 3134/923 3150/932 3151/697 +f 3137/607 3152/696 3168/698 3153/841 +f 3138/608 3137/607 3153/841 3154/848 +f 3139/902 3138/608 3154/848 3155/636 +f 3140/903 3139/902 3155/636 3156/635 +f 3141/926 3140/903 3156/635 3157/851 +f 3142/933 3141/926 3157/851 3158/854 +f 3143/927 3142/933 3158/854 3159/880 +f 3144/928 3143/927 3159/880 3160/857 +f 3145/929 3144/928 3160/857 3161/856 +f 3146/934 3145/929 3161/856 3162/859 +f 3147/788 3146/934 3162/859 3163/861 +f 3148/789 3147/788 3163/861 3164/863 +f 3149/930 3148/789 3164/863 3165/501 +f 2961/731 2962/866 2946/669 2945/668 +f 3141/926 3142/933 3126/705 3125/704 +f 3151/697 3150/932 3166/630 3167/629 +f 3052/825 3054/935 3111/888 3110/824 +f 3293/761 3294/936 3278/815 3277/814 +f 3172/718 3174/937 3235/711 3234/719 +f 2881/599 2882/600 2866/536 2865/535 +f 3237/439 3236/495 3176/938 3178/436 +f 3072/883 3042/588 3105/587 3120/695 +f 2822/480 2823/443 2902/442 2901/763 +f 3118/831 3119/833 3103/939 3102/894 +f 2994/685 2995/684 2919/940 2917/700 +f 2833/865 2834/398 2818/401 2817/470 +f 3236/495 3235/711 3174/937 3176/938 +f 3038/460 3037/459 2958/572 2959/571 +f 3245/871 3244/402 3192/405 3194/941 +f 3246/872 3245/871 3194/941 3196/942 +f 3247/943 3246/872 3196/942 3198/944 +f 2900/432 2901/763 2885/578 2884/577 +f 3173/948 3175/945 3304/947 3171/1111 +f 3075/383 3076/382 3155/636 3154/848 +f 3282/951 3281/949 3202/803 3203/645 +f 3283/614 3282/951 3203/645 3204/507 +f 3284/615 3283/614 3204/507 3205/506 +f 3182/952 3184/727 3240/726 3239/953 +f 2921/604 2919/940 2995/684 2996/601 +f 3186/728 3188/691 3242/692 3241/725 +f 3288/954 3287/755 3208/758 3209/452 +f 2904/445 2905/925 2889/582 2888/581 +f 3090/982 3091/384 3075/383 3074/843 +f 3291/955 3290/611 3211/613 3212/956 +f 3292/762 3291/955 3212/956 3213/759 +f 3238/438 3239/953 3223/957 3222/958 +f 2925/765 2923/603 2997/602 2998/766 +f 3296/722 3295/721 3216/959 3201/950 +f 3295/721 3294/960 3215/961 3216/959 +f 2911/468 2912/467 2896/597 2895/596 +f 3224/962 3223/957 3239/953 3240/726 +f 3222/958 3221/496 3237/439 3238/438 +f 2984/647 2983/741 2926/963 2928/648 +f 3206/826 3205/506 3221/509 3222/964 +f 3207/757 3206/826 3222/964 3223/965 +f 3294/960 3295/721 3279/724 3278/966 +f 3275/593 3276/905 3260/906 3259/590 +f 3160/857 3159/880 3080/710 3081/709 +f 3211/613 3210/451 3226/454 3227/967 +f 3212/956 3211/613 3227/967 3228/968 +f 3213/759 3212/956 3228/968 3229/969 +f 3214/760 3213/759 3229/969 3230/970 +f 3215/971 3214/760 3230/970 3231/972 +f 3201/950 3216/959 3232/973 3217/974 +f 3216/959 3215/961 3231/975 3232/973 +f 3218/976 3217/977 3233/449 3234/719 +f 3219/712 3218/976 3234/719 3235/711 +f 3025/666 3026/674 3010/682 3009/801 +f 2836/515 2835/804 2851/374 2852/378 +f 2832/469 2831/472 2847/978 2848/864 +f 3217/974 3218/802 3202/803 3201/950 +f 3294/936 3293/761 3214/760 3215/971 +f 3225/979 3224/962 3240/726 3241/725 +f 3226/980 3225/979 3241/725 3242/692 +f 3227/981 3226/980 3242/692 3243/403 +f 3228/876 3227/981 3243/403 3244/402 +f 3089/868 3090/982 3074/843 3073/842 +f 3082/858 3081/709 3097/708 3098/877 +f 3231/983 3230/869 3246/872 3247/943 +f 3217/977 3232/984 3248/450 3233/449 +f 3232/984 3231/985 3247/605 3248/450 +f 3171/986 3169/987 3264/988 3249/989 +f 3173/586 3171/986 3249/989 3250/583 +f 2907/456 2908/455 2892/990 2891/991 +f 2875/558 2874/556 2890/818 2891/991 +f 3179/992 3177/622 3252/623 3253/619 +f 3181/993 3179/992 3253/619 3254/618 +f 3183/994 3181/993 3254/618 3255/995 +f 3185/996 3183/994 3255/995 3256/997 +f 3187/998 3185/996 3256/997 3257/999 +f 3189/1000 3187/998 3257/999 3258/591 +f 3191/1001 3189/1000 3258/591 3259/590 +f 3193/1002 3191/1001 3259/590 3260/906 +f 3260/906 3261/813 3195/1003 3193/1002 +f 3261/813 3262/812 3197/1004 3195/1003 +f 3263/809 3264/988 3169/987 3199/810 +f 3268/616 3269/620 3253/619 3252/623 +f 3017/794 3016/793 3032/720 3033/790 +f 3145/929 3146/934 3130/914 3129/912 +f 3265/1005 3280/723 3296/722 3281/949 +f 2906/850 2907/456 2891/991 2890/818 +f 3250/583 3249/989 3265/1005 3266/931 +f 3253/619 3269/620 3270/621 +f 3256/997 3255/995 3271/1006 3272/1007 +f 3257/999 3256/997 3272/1007 3273/1008 +f 2891/991 2892/990 2876/560 2875/558 +f 3280/723 3265/1005 3249/989 3264/988 +f 3289/612 3290/611 3274/592 3273/1008 +f 3273/1008 3274/592 3258/591 3257/999 +f 2953/713 2954/716 3033/790 3032/720 +f 3149/930 3150/1009 3134/919 3133/917 +f 3124/900 3125/704 3051/703 3049/1010 +f 3152/696 3137/607 3121/610 3136/898 +f 3266/931 3265/1005 3281/949 3282/951 +f 3062/830 3064/631 3116/420 3115/752 +f 3275/593 3274/592 3290/611 3291/955 +f 2893/594 2892/990 2908/455 2909/806 +f 3270/621 3269/620 3285/827 3286/756 +f 3271/1006 3270/621 3286/756 3287/755 +f 3272/1007 3271/1006 3287/755 3288/954 +f 3273/1008 3272/1007 3288/954 3289/612 +f 3282/951 3283/614 3267/617 3266/931 +f 3034/689 3035/688 3019/796 3018/795 +f 3276/905 3275/593 3291/955 3292/762 +f 3277/814 3276/905 3292/762 3293/761 +f 3278/966 3279/724 3263/809 3262/808 +f 3223/965 3224/855 3208/758 3207/757 +f 2924/643 2926/963 2983/741 2982/642 +f 2826/485 2827/487 2906/850 2905/925 +f 3146/934 3147/788 3131/787 3130/914 +f 3115/752 3114/475 3060/474 3062/830 +f 2810/1020 2808/1021 3297/1015 2812/1019 +f 2814/1018 2812/1019 3297/1015 +f 2806/1022 2804/1023 3297/1015 2808/1021 +f 2800/1025 2798/1026 3297/1015 2802/1024 +f 2804/1023 2802/1024 3297/1015 +f 2796/1027 2794/1028 3297/1015 2798/1026 +f 2792/1029 2790/1030 3297/1015 2794/1028 +f 2787/1033 2789/413 3298/412 2785/1032 +f 2795/1034 2797/1035 3298/412 2793/411 +f 2801/1037 2803/1040 3298/412 2799/1036 +f 2797/1035 2799/1036 3298/412 +f 2807/1039 2809/1043 3298/412 2805/1038 +f 2803/1040 2805/1038 3298/412 +f 2811/1041 2813/1042 3298/412 2809/1043 +f 2815/1031 2785/1032 3298/412 2813/1042 +f 2918/1044 2916/1045 2914/425 3299/424 +f 2940/1048 2938/1046 3299/424 2942/423 +f 2936/1047 2934/1049 3299/424 2938/1046 +f 2932/1050 2930/1051 3299/424 2934/1049 +f 2928/1052 2926/1053 3299/424 2930/1051 +f 2924/1054 2922/1056 3299/424 2926/1053 +f 2920/1055 2918/1044 3299/424 2922/1056 +f 2915/663 2917/660 3300/662 2913/1058 +f 2923/1059 2925/1060 3300/662 2921/1061 +f 2927/1062 2929/1063 3300/662 2925/1060 +f 2931/1064 2933/1065 3300/662 2929/1063 +f 2937/1066 2939/1067 3300/662 2935/1068 +f 2933/1065 2935/1068 3300/662 +f 2941/1069 2943/1057 3300/662 2939/1067 +f 3042/673 3072/670 3301/672 3044/1071 +f 2943/1057 2913/1058 3300/662 +f 3072/670 3070/671 3301/672 +f 3062/1075 3060/1076 3301/672 3064/1074 +f 3066/1073 3064/1074 3301/672 +f 3058/1077 3056/1080 3301/672 3060/1076 +f 3054/1078 3052/1079 3301/672 3056/1080 +f 3050/1081 3048/1082 3301/672 3052/1079 +f 3046/1070 3044/1071 3301/672 3048/1082 +f 3043/840 3045/837 3302/839 3041/1084 +f 3045/837 3047/838 3302/839 +f 3053/1087 3055/1088 3302/839 3051/1086 +f 3059/1089 3061/1090 3302/839 3057/1091 +f 3055/1088 3057/1091 3302/839 +f 3065/1092 3067/1093 3302/839 3063/1094 +f 3061/1090 3063/1094 3302/839 +f 3069/1095 3071/1083 3302/839 3067/1093 +f 3174/1096 3172/1097 3170/847 3303/846 +f 3071/1083 3041/1084 3302/839 +f 3196/1100 3194/1098 3303/846 3198/845 +f 3190/1101 3188/1102 3303/846 3192/1099 +f 3194/1098 3192/1099 3303/846 +f 3186/1103 3184/1104 3303/846 3188/1102 +f 3180/1105 3178/1106 3303/846 3182/1107 +f 3184/1104 3182/1107 3303/846 +f 3176/1108 3174/1096 3303/846 3178/1106 +f 3199/1109 3169/1110 3171/1111 3304/947 +f 3177/946 3179/1112 3304/947 3175/945 +f 3183/1114 3185/1115 3304/947 3181/1113 +f 3179/1112 3181/1113 3304/947 +f 3187/1118 3189/1116 3304/947 3185/1115 +f 3193/1121 3195/1119 3304/947 3191/1117 +f 3189/1116 3191/1117 3304/947 +f 3197/1120 3199/1109 3304/947 3195/1119 +f 3370/375 3369/406 3306/409 3308/376 +f 3371/374 3370/375 3308/376 3310/377 +f 3372/378 3371/374 3310/377 3312/379 +f 3373/380 3372/378 3312/379 3314/381 +f 3337/470 3338/401 3417/526 3432/467 +f 3596/382 3595/383 3611/384 3612/385 +f 3477/416 3478/572 3557/459 3556/690 +f 3377/386 3376/387 3320/388 3322/389 +f 3378/390 3377/386 3322/389 3324/391 +f 3379/392 3378/390 3324/391 3326/393 +f 3380/394 3379/392 3326/393 3328/395 +f 3381/396 3380/394 3328/395 3330/397 +f 3354/398 3355/399 3339/400 3338/401 +f 3764/402 3763/403 3710/404 3712/405 +f 3369/406 3384/407 3336/408 3306/409 +f 3311/410 3313/411 3818/412 3309/413 +f 3492/414 3493/415 3477/416 3476/417 +f 3621/418 3620/419 3636/420 3637/421 +f 3462/423 3460/1048 3819/424 3464/422 +f 3376/387 3375/426 3318/427 3320/388 +f 3367/428 3366/429 3382/430 3383/431 +f 3420/432 3419/433 3340/434 3341/435 +f 3698/436 3700/437 3758/438 3757/439 +f 3340/434 3339/400 3355/399 3356/440 +f 3423/441 3422/442 3343/443 3344/444 +f 3424/445 3423/441 3344/444 3345/446 +f 3720/447 3690/448 3753/449 3768/450 +f 3334/1018 3332/1019 3817/1015 3336/1014 +f 3730/451 3729/452 3745/453 3746/454 +f 3428/455 3427/456 3348/457 3349/458 +f 3557/459 3558/460 3542/461 3541/462 +f 3611/463 3610/464 3626/465 3627/466 +f 3432/467 3431/468 3352/469 3337/470 +f 3431/468 3430/471 3351/472 3352/469 +f 3578/473 3580/474 3634/475 3633/476 +f 3330/397 3332/477 3382/430 3381/396 +f 3383/431 3382/430 3332/477 3334/478 +f 3341/435 3340/434 3356/440 3357/479 +f 3342/480 3341/435 3357/479 3358/481 +f 3343/443 3342/480 3358/481 3359/482 +f 3344/444 3343/443 3359/482 3360/483 +f 3345/446 3344/444 3360/483 3361/484 +f 3346/485 3345/446 3361/484 3362/486 +f 3347/487 3346/485 3362/486 3363/488 +f 3348/457 3347/487 3363/488 3364/489 +f 3349/458 3348/457 3364/489 3365/490 +f 3350/491 3349/458 3365/490 3366/492 +f 3351/493 3350/491 3366/492 3367/494 +f 3756/495 3757/439 3741/496 3740/497 +f 3606/498 3607/499 3686/500 3685/501 +f 3486/502 3487/503 3471/504 3470/505 +f 3725/506 3724/507 3740/508 3741/509 +f 3534/510 3533/511 3549/512 3550/513 +f 3357/514 3356/515 3372/378 3373/380 +f 3358/516 3357/514 3373/380 3374/517 +f 3359/518 3358/516 3374/517 3375/426 +f 3360/519 3359/518 3375/426 3376/387 +f 3361/520 3360/519 3376/387 3377/386 +f 3362/521 3361/520 3377/386 3378/390 +f 3363/522 3362/521 3378/390 3379/392 +f 3364/523 3363/522 3379/392 3380/394 +f 3365/524 3364/523 3380/394 3381/396 +f 3338/401 3339/400 3418/525 3417/526 +f 3481/527 3496/528 3512/529 3497/530 +f 3353/531 3368/532 3384/407 3369/406 +f 3307/534 3305/567 3400/566 3385/535 +f 3345/446 3346/485 3425/925 3424/445 +f 3309/533 3307/534 3385/535 3386/536 +f 3471/504 3472/537 3551/538 3550/513 +f 3510/539 3509/540 3458/541 3460/542 +f 3315/543 3313/544 3388/545 3389/546 +f 3317/547 3315/543 3389/546 3390/548 +f 3319/549 3317/547 3390/548 3391/550 +f 3321/551 3319/549 3391/550 3392/552 +f 3323/553 3321/551 3392/552 3393/554 +f 3325/555 3323/553 3393/554 3394/556 +f 3327/557 3325/555 3394/556 3395/558 +f 3329/559 3327/557 3395/558 3396/560 +f 3396/560 3397/561 3331/562 3329/559 +f 3397/561 3398/563 3333/564 3331/562 +f 3399/565 3400/566 3305/567 3335/568 +f 3398/569 3399/565 3335/568 3333/570 +f 3387/575 3386/536 3402/600 3403/576 +f 3479/571 3478/572 3494/573 3495/574 +f 3388/545 3387/575 3403/576 3404/577 +f 3389/546 3388/545 3404/577 3405/578 +f 3390/548 3389/546 3405/578 3406/579 +f 3391/550 3390/548 3406/579 3407/580 +f 3392/552 3391/550 3407/580 3408/581 +f 3393/554 3392/552 3408/581 3409/582 +f 3770/583 3771/584 3695/585 3693/586 +f 3626/465 3625/587 3562/588 3564/589 +f 3397/561 3396/560 3412/990 3413/594 +f 3779/590 3778/591 3794/592 3795/593 +f 3398/563 3397/561 3413/594 3414/595 +f 3400/566 3399/565 3415/596 3416/597 +f 3399/565 3398/569 3414/598 3415/596 +f 3401/599 3416/597 3432/467 3417/526 +f 3402/600 3401/599 3417/526 3418/525 +f 3403/576 3402/600 3418/525 3419/433 +f 3404/577 3403/576 3419/433 3420/432 +f 3516/601 3517/602 3443/603 3441/604 +f 3801/949 3816/722 3721/950 3722/803 +f 3407/580 3406/579 3422/442 3423/441 +f 3408/581 3407/580 3423/441 3424/445 +f 3657/607 3658/608 3642/609 3641/610 +f 3810/611 3809/612 3730/451 3731/613 +f 3803/614 3804/615 3788/616 3787/617 +f 3775/995 3774/618 3790/621 3791/1006 +f 3697/622 3695/585 3771/584 3772/623 +f 3548/678 3549/512 3533/511 3532/791 +f 3498/624 3497/530 3434/625 3436/626 +f 3607/627 3608/628 3687/629 3686/630 +f 3637/421 3636/420 3584/631 3586/632 +f 3516/601 3515/684 3531/683 3532/791 +f 3622/633 3623/634 3607/499 3606/498 +f 3676/635 3675/636 3596/382 3597/637 +f 3501/638 3500/639 3440/640 3442/641 +f 3502/642 3501/638 3442/641 3444/643 +f 3739/644 3740/508 3724/507 3723/645 +f 3419/433 3418/525 3339/400 3340/434 +f 3505/646 3504/647 3448/648 3450/649 +f 3506/650 3505/646 3450/649 3452/651 +f 3507/652 3506/650 3452/651 3454/653 +f 3508/654 3507/652 3454/653 3456/655 +f 3386/536 3387/575 3311/656 3309/533 +f 3316/754 3318/427 3375/426 3374/517 +f 3511/657 3510/539 3460/542 3462/658 +f 3497/530 3512/529 3464/659 3434/625 +f 3439/661 3441/1061 3820/662 3437/660 +f 3512/529 3511/664 3462/665 3464/659 +f 3545/666 3560/667 3465/668 3466/669 +f 3590/671 3588/1072 3821/672 3592/670 +f 3546/674 3545/666 3466/669 3467/675 +f 3547/676 3546/674 3467/675 3468/677 +f 3548/678 3547/676 3468/677 3469/679 +f 3549/512 3548/678 3469/679 3470/505 +f 3470/505 3471/504 3550/513 3549/512 +f 3491/680 3492/414 3476/417 3475/681 +f 3313/544 3311/656 3387/575 3388/545 +f 3530/682 3531/683 3515/684 3514/685 +f 3623/686 3624/687 3608/628 3607/627 +f 3555/688 3554/689 3475/681 3476/417 +f 3556/690 3555/688 3476/417 3477/416 +f 3708/691 3710/404 3763/403 3762/692 +f 3799/724 3800/723 3784/988 3783/809 +f 3559/817 3558/816 3479/732 3480/729 +f 3609/693 3624/694 3640/695 3625/587 +f 3510/539 3511/657 3495/1017 3494/748 +f 3672/696 3671/697 3687/629 3688/698 +f 3513/699 3514/685 3437/700 3435/701 +f 3573/702 3571/703 3645/704 3646/705 +f 3470/505 3469/679 3485/706 3486/502 +f 3616/707 3617/708 3601/709 3600/710 +f 3755/711 3756/495 3740/497 3739/712 +f 3473/713 3472/537 3488/714 3489/715 +f 3474/716 3473/713 3489/715 3490/717 +f 3475/681 3474/716 3490/717 3491/680 +f 3690/448 3692/718 3754/719 3753/449 +f 3552/720 3551/538 3472/537 3473/713 +f 3815/721 3816/722 3800/723 3799/724 +f 3761/725 3760/726 3704/727 3706/728 +f 3465/668 3480/729 3496/730 3481/731 +f 3480/729 3479/732 3495/733 3496/730 +f 3482/734 3481/527 3497/530 3498/624 +f 3483/735 3482/734 3498/624 3499/736 +f 3484/737 3483/735 3499/736 3500/639 +f 3485/738 3484/737 3500/639 3501/638 +f 3486/739 3485/738 3501/638 3502/642 +f 3487/740 3486/739 3502/642 3503/741 +f 3488/742 3487/740 3503/741 3504/647 +f 3489/743 3488/742 3504/647 3505/646 +f 3490/744 3489/743 3505/646 3506/650 +f 3491/745 3490/744 3506/650 3507/652 +f 3492/746 3491/745 3507/652 3508/654 +f 3493/747 3492/746 3508/654 3509/540 +f 3494/748 3493/747 3509/540 3510/539 +f 3381/396 3382/430 3366/429 3365/524 +f 3469/679 3468/677 3484/904 3485/706 +f 3496/528 3495/749 3511/664 3512/529 +f 3435/701 3433/750 3528/751 3513/699 +f 3635/752 3636/420 3620/419 3619/753 +f 3314/381 3316/754 3374/517 3373/380 +f 3807/755 3806/756 3727/757 3728/758 +f 3733/759 3734/760 3813/761 3812/762 +f 3406/579 3405/578 3421/763 3422/442 +f 3447/764 3445/765 3518/766 3519/767 +f 3449/768 3447/764 3519/767 3520/769 +f 3451/770 3449/768 3520/769 3521/771 +f 3453/772 3451/770 3521/771 3522/773 +f 3455/774 3453/772 3522/773 3523/775 +f 3457/776 3455/774 3523/775 3524/777 +f 3524/777 3525/778 3459/779 3457/776 +f 3525/778 3526/780 3461/781 3459/779 +f 3527/782 3528/751 3433/750 3463/783 +f 3526/784 3527/782 3463/783 3461/785 +f 3416/597 3401/599 3385/535 3400/566 +f 3652/786 3651/787 3667/788 3668/789 +f 3554/689 3553/790 3474/716 3475/681 +f 3517/602 3516/601 3532/791 3533/511 +f 3518/766 3517/602 3533/511 3534/510 +f 3519/767 3518/766 3534/510 3535/792 +f 3520/769 3519/767 3535/792 3536/793 +f 3521/771 3520/769 3536/793 3537/794 +f 3522/773 3521/771 3537/794 3538/795 +f 3523/775 3522/773 3538/795 3539/796 +f 3524/777 3523/775 3539/796 3540/797 +f 3525/778 3524/777 3540/797 3541/462 +f 3526/780 3525/778 3541/462 3542/461 +f 3528/751 3527/782 3543/798 3544/799 +f 3527/782 3526/784 3542/800 3543/798 +f 3529/801 3544/799 3560/667 3545/666 +f 3531/683 3530/682 3546/674 3547/676 +f 3738/802 3739/644 3723/645 3722/803 +f 3532/791 3531/683 3547/676 3548/678 +f 3370/375 3371/374 3355/804 3354/805 +f 3429/806 3430/807 3414/595 3413/594 +f 3535/792 3534/510 3550/513 3551/538 +f 3782/808 3783/809 3719/810 3717/811 +f 3529/801 3530/682 3514/685 3513/699 +f 3538/795 3537/794 3553/790 3554/689 +f 3544/799 3529/801 3513/699 3528/751 +f 3782/812 3781/813 3797/814 3798/815 +f 3541/462 3540/797 3556/690 3557/459 +f 3544/799 3543/798 3559/817 3560/667 +f 3430/807 3429/806 3350/491 3351/493 +f 3543/798 3542/800 3558/816 3559/817 +f 3409/582 3410/818 3394/556 3393/554 +f 3540/797 3539/796 3555/688 3556/690 +f 3627/466 3626/465 3564/589 3566/819 +f 3628/820 3627/466 3566/819 3568/821 +f 3629/822 3628/820 3568/821 3570/823 +f 3630/824 3629/822 3570/823 3572/825 +f 3632/828 3631/888 3574/935 3576/829 +f 3726/826 3727/757 3806/756 3805/827 +f 3633/476 3632/828 3576/829 3578/473 +f 3310/1030 3308/1016 3306/1013 3817/1015 +f 3341/435 3342/480 3421/763 3420/432 +f 3430/471 3431/468 3415/596 3414/598 +f 3789/620 3788/616 3804/615 3805/827 +f 3638/831 3637/421 3586/632 3588/832 +f 3639/833 3638/831 3588/832 3590/834 +f 3621/835 3622/633 3606/498 3605/836 +f 3567/838 3569/1085 3822/839 3565/837 +f 3493/415 3494/573 3478/572 3477/416 +f 3673/841 3688/698 3593/842 3594/843 +f 3718/845 3716/1100 3823/846 3720/844 +f 3674/848 3673/841 3594/843 3595/383 +f 3436/626 3438/849 3499/736 3498/624 +f 3427/456 3426/850 3347/487 3348/457 +f 3677/851 3676/635 3597/637 3598/852 +f 3598/852 3599/853 3678/854 3677/851 +f 3744/855 3745/453 3729/452 3728/758 +f 3608/628 3593/842 3688/698 3687/629 +f 3681/856 3680/857 3601/709 3602/858 +f 3682/859 3681/856 3602/858 3603/860 +f 3683/861 3682/859 3603/860 3604/862 +f 3684/863 3683/861 3604/862 3605/836 +f 3685/501 3684/863 3605/836 3606/498 +f 3368/864 3353/865 3337/470 3352/469 +f 3482/866 3483/867 3467/675 3466/669 +f 3593/842 3608/628 3624/687 3609/868 +f 3369/406 3370/375 3354/805 3353/531 +f 3750/869 3749/870 3765/871 3766/872 +f 3658/608 3659/902 3643/901 3642/609 +f 3597/637 3596/382 3612/385 3613/873 +f 3598/852 3597/637 3613/873 3614/874 +f 3599/853 3598/852 3614/874 3615/875 +f 3600/710 3599/853 3615/875 3616/707 +f 3764/402 3765/871 3749/870 3748/876 +f 3472/537 3471/504 3487/503 3488/714 +f 3603/860 3602/858 3618/877 3619/878 +f 3604/862 3603/860 3619/878 3620/879 +f 3605/836 3604/862 3620/879 3621/835 +f 3599/853 3600/710 3679/880 3678/854 +f 3640/695 3639/881 3590/882 3592/883 +f 3500/639 3499/736 3438/849 3440/640 +f 3349/458 3350/491 3429/806 3428/455 +f 3700/437 3702/952 3759/953 3758/438 +f 3456/655 3458/541 3509/540 3508/654 +f 3612/884 3611/463 3627/466 3628/820 +f 3613/885 3612/884 3628/820 3629/822 +f 3614/886 3613/885 3629/822 3630/824 +f 3615/887 3614/886 3630/824 3631/888 +f 3616/889 3615/887 3631/888 3632/828 +f 3617/890 3616/889 3632/828 3633/476 +f 3618/891 3617/890 3633/476 3634/475 +f 3619/753 3618/891 3634/475 3635/752 +f 3334/892 3336/408 3384/407 3383/893 +f 3725/506 3726/826 3805/827 3804/615 +f 3622/894 3621/418 3637/421 3638/831 +f 3480/729 3465/668 3560/667 3559/817 +f 3729/452 3730/451 3809/612 3808/954 +f 3624/694 3623/895 3639/881 3640/695 +f 3563/896 3561/897 3656/898 3641/610 +f 3565/899 3563/896 3641/610 3642/609 +f 3569/1010 3567/1011 3643/901 3644/900 +f 3644/900 3643/901 3659/902 3660/903 +f 3483/867 3484/904 3468/677 3467/675 +f 3796/905 3797/814 3781/813 3780/906 +f 3575/907 3573/702 3646/705 3647/908 +f 3577/909 3575/907 3647/908 3648/910 +f 3579/911 3577/909 3648/910 3649/912 +f 3581/913 3579/911 3649/912 3650/914 +f 3583/915 3581/913 3650/914 3651/787 +f 3585/916 3583/915 3651/787 3652/786 +f 3652/786 3653/917 3587/918 3585/916 +f 3653/917 3654/919 3589/920 3587/918 +f 3655/921 3656/898 3561/897 3591/922 +f 3654/923 3655/921 3591/922 3589/924 +f 3642/609 3643/901 3567/1011 3565/899 +f 3410/818 3409/582 3425/925 3426/850 +f 3685/501 3686/500 3670/1009 3669/930 +f 3645/704 3644/900 3660/903 3661/926 +f 3647/908 3646/705 3662/933 3663/927 +f 3383/893 3384/407 3368/532 3367/1012 +f 3648/910 3647/908 3663/927 3664/928 +f 3649/912 3648/910 3664/928 3665/929 +f 3551/538 3552/720 3536/793 3535/792 +f 3772/623 3771/584 3787/617 3788/616 +f 3625/587 3626/465 3610/464 3609/693 +f 3653/917 3652/786 3668/789 3669/930 +f 3656/898 3655/921 3671/697 3672/696 +f 3786/931 3787/617 3771/584 3770/583 +f 3655/921 3654/923 3670/932 3671/697 +f 3657/607 3672/696 3688/698 3673/841 +f 3658/608 3657/607 3673/841 3674/848 +f 3659/902 3658/608 3674/848 3675/636 +f 3660/903 3659/902 3675/636 3676/635 +f 3661/926 3660/903 3676/635 3677/851 +f 3662/933 3661/926 3677/851 3678/854 +f 3663/927 3662/933 3678/854 3679/880 +f 3664/928 3663/927 3679/880 3680/857 +f 3665/929 3664/928 3680/857 3681/856 +f 3666/934 3665/929 3681/856 3682/859 +f 3667/788 3666/934 3682/859 3683/861 +f 3668/789 3667/788 3683/861 3684/863 +f 3669/930 3668/789 3684/863 3685/501 +f 3481/731 3482/866 3466/669 3465/668 +f 3661/926 3662/933 3646/705 3645/704 +f 3671/697 3670/932 3686/630 3687/629 +f 3572/825 3574/935 3631/888 3630/824 +f 3813/761 3814/936 3798/815 3797/814 +f 3692/718 3694/937 3755/711 3754/719 +f 3401/599 3402/600 3386/536 3385/535 +f 3757/439 3756/495 3696/938 3698/436 +f 3592/883 3562/588 3625/587 3640/695 +f 3342/480 3343/443 3422/442 3421/763 +f 3638/831 3639/833 3623/939 3622/894 +f 3514/685 3515/684 3439/940 3437/700 +f 3353/865 3354/398 3338/401 3337/470 +f 3756/495 3755/711 3694/937 3696/938 +f 3558/460 3557/459 3478/572 3479/571 +f 3765/871 3764/402 3712/405 3714/941 +f 3766/872 3765/871 3714/941 3716/942 +f 3767/943 3766/872 3716/942 3718/944 +f 3420/432 3421/763 3405/578 3404/577 +f 3695/945 3697/946 3824/947 3693/948 +f 3595/383 3596/382 3675/636 3674/848 +f 3802/951 3801/949 3722/803 3723/645 +f 3803/614 3802/951 3723/645 3724/507 +f 3804/615 3803/614 3724/507 3725/506 +f 3702/952 3704/727 3760/726 3759/953 +f 3441/604 3439/940 3515/684 3516/601 +f 3706/728 3708/691 3762/692 3761/725 +f 3808/954 3807/755 3728/758 3729/452 +f 3424/445 3425/925 3409/582 3408/581 +f 3610/982 3611/384 3595/383 3594/843 +f 3811/955 3810/611 3731/613 3732/956 +f 3812/762 3811/955 3732/956 3733/759 +f 3758/438 3759/953 3743/957 3742/958 +f 3445/765 3443/603 3517/602 3518/766 +f 3816/722 3815/721 3736/959 3721/950 +f 3815/721 3814/960 3735/961 3736/959 +f 3431/468 3432/467 3416/597 3415/596 +f 3744/962 3743/957 3759/953 3760/726 +f 3742/958 3741/496 3757/439 3758/438 +f 3504/647 3503/741 3446/963 3448/648 +f 3726/826 3725/506 3741/509 3742/964 +f 3727/757 3726/826 3742/964 3743/965 +f 3814/960 3815/721 3799/724 3798/966 +f 3795/593 3796/905 3780/906 3779/590 +f 3680/857 3679/880 3600/710 3601/709 +f 3731/613 3730/451 3746/454 3747/967 +f 3732/956 3731/613 3747/967 3748/968 +f 3733/759 3732/956 3748/968 3749/969 +f 3734/760 3733/759 3749/969 3750/970 +f 3735/971 3734/760 3750/970 3751/972 +f 3721/950 3736/959 3752/973 3737/974 +f 3736/959 3735/961 3751/975 3752/973 +f 3738/976 3737/977 3753/449 3754/719 +f 3739/712 3738/976 3754/719 3755/711 +f 3545/666 3546/674 3530/682 3529/801 +f 3356/515 3355/804 3371/374 3372/378 +f 3352/469 3351/472 3367/978 3368/864 +f 3737/974 3738/802 3722/803 3721/950 +f 3814/936 3813/761 3734/760 3735/971 +f 3745/979 3744/962 3760/726 3761/725 +f 3746/980 3745/979 3761/725 3762/692 +f 3747/981 3746/980 3762/692 3763/403 +f 3748/876 3747/981 3763/403 3764/402 +f 3609/868 3610/982 3594/843 3593/842 +f 3602/858 3601/709 3617/708 3618/877 +f 3751/983 3750/869 3766/872 3767/943 +f 3737/977 3752/984 3768/450 3753/449 +f 3752/984 3751/985 3767/605 3768/450 +f 3691/986 3689/987 3784/988 3769/989 +f 3693/586 3691/986 3769/989 3770/583 +f 3427/456 3428/455 3412/990 3411/991 +f 3395/558 3394/556 3410/818 3411/991 +f 3699/992 3697/622 3772/623 3773/619 +f 3701/993 3699/992 3773/619 3774/618 +f 3703/994 3701/993 3774/618 3775/995 +f 3705/996 3703/994 3775/995 3776/997 +f 3707/998 3705/996 3776/997 3777/999 +f 3709/1000 3707/998 3777/999 3778/591 +f 3711/1001 3709/1000 3778/591 3779/590 +f 3713/1002 3711/1001 3779/590 3780/906 +f 3780/906 3781/813 3715/1003 3713/1002 +f 3781/813 3782/812 3717/1004 3715/1003 +f 3783/809 3784/988 3689/987 3719/810 +f 3788/616 3789/620 3773/619 3772/623 +f 3537/794 3536/793 3552/720 3553/790 +f 3665/929 3666/934 3650/914 3649/912 +f 3785/1005 3800/723 3816/722 3801/949 +f 3426/850 3427/456 3411/991 3410/818 +f 3770/583 3769/989 3785/1005 3786/931 +f 3773/619 3789/620 3790/621 +f 3776/997 3775/995 3791/1006 3792/1007 +f 3777/999 3776/997 3792/1007 3793/1008 +f 3411/991 3412/990 3396/560 3395/558 +f 3800/723 3785/1005 3769/989 3784/988 +f 3809/612 3810/611 3794/592 3793/1008 +f 3793/1008 3794/592 3778/591 3777/999 +f 3473/713 3474/716 3553/790 3552/720 +f 3669/930 3670/1009 3654/919 3653/917 +f 3644/900 3645/704 3571/703 3569/1010 +f 3672/696 3657/607 3641/610 3656/898 +f 3786/931 3785/1005 3801/949 3802/951 +f 3582/830 3584/631 3636/420 3635/752 +f 3795/593 3794/592 3810/611 3811/955 +f 3413/594 3412/990 3428/455 3429/806 +f 3790/621 3789/620 3805/827 3806/756 +f 3791/1006 3790/621 3806/756 3807/755 +f 3792/1007 3791/1006 3807/755 3808/954 +f 3793/1008 3792/1007 3808/954 3809/612 +f 3802/951 3803/614 3787/617 3786/931 +f 3554/689 3555/688 3539/796 3538/795 +f 3796/905 3795/593 3811/955 3812/762 +f 3797/814 3796/905 3812/762 3813/761 +f 3798/966 3799/724 3783/809 3782/808 +f 3743/965 3744/855 3728/758 3727/757 +f 3444/643 3446/963 3503/741 3502/642 +f 3346/485 3347/487 3426/850 3425/925 +f 3666/934 3667/788 3651/787 3650/914 +f 3635/752 3634/475 3580/474 3582/830 +f 3306/1013 3336/1014 3817/1015 +f 3328/1021 3326/1022 3817/1015 3330/1020 +f 3332/1019 3330/1020 3817/1015 +f 3324/1023 3322/1024 3817/1015 3326/1022 +f 3320/1025 3318/1026 3817/1015 3322/1024 +f 3316/1027 3314/1028 3817/1015 3318/1026 +f 3312/1029 3310/1030 3817/1015 3314/1028 +f 3307/1033 3309/413 3818/412 3305/1032 +f 3315/1034 3317/1035 3818/412 3313/411 +f 3319/1036 3321/1037 3818/412 3317/1035 +f 3323/1040 3325/1038 3818/412 3321/1037 +f 3327/1039 3329/1043 3818/412 3325/1038 +f 3331/1041 3333/1042 3818/412 3329/1043 +f 3335/1031 3305/1032 3818/412 3333/1042 +f 3438/1044 3436/1045 3434/425 3819/424 +f 3434/425 3464/422 3819/424 +f 3456/1047 3454/1049 3819/424 3458/1046 +f 3460/1048 3458/1046 3819/424 +f 3452/1050 3450/1051 3819/424 3454/1049 +f 3448/1052 3446/1053 3819/424 3450/1051 +f 3442/1056 3440/1055 3819/424 3444/1054 +f 3446/1053 3444/1054 3819/424 +f 3435/663 3437/660 3820/662 3433/1058 +f 3440/1055 3438/1044 3819/424 +f 3443/1059 3445/1060 3820/662 3441/1061 +f 3447/1062 3449/1063 3820/662 3445/1060 +f 3451/1064 3453/1065 3820/662 3449/1063 +f 3455/1068 3457/1066 3820/662 3453/1065 +f 3461/1069 3463/1057 3820/662 3459/1067 +f 3457/1066 3459/1067 3820/662 +f 3562/673 3592/670 3821/672 3564/1071 +f 3463/1057 3433/1058 3820/662 +f 3586/1073 3584/1074 3821/672 3588/1072 +f 3582/1075 3580/1076 3821/672 3584/1074 +f 3576/1080 3574/1078 3821/672 3578/1077 +f 3580/1076 3578/1077 3821/672 +f 3570/1081 3568/1082 3821/672 3572/1079 +f 3574/1078 3572/1079 3821/672 +f 3566/1070 3564/1071 3821/672 3568/1082 +f 3563/840 3565/837 3822/839 3561/1084 +f 3571/1086 3573/1087 3822/839 3569/1085 +f 3575/1088 3577/1091 3822/839 3573/1087 +f 3579/1089 3581/1090 3822/839 3577/1091 +f 3585/1092 3587/1093 3822/839 3583/1094 +f 3581/1090 3583/1094 3822/839 +f 3589/1095 3591/1083 3822/839 3587/1093 +f 3694/1096 3692/1097 3690/847 3823/846 +f 3591/1083 3561/1084 3822/839 +f 3690/847 3720/844 3823/846 +f 3712/1099 3710/1101 3823/846 3714/1098 +f 3716/1100 3714/1098 3823/846 +f 3708/1102 3706/1103 3823/846 3710/1101 +f 3704/1104 3702/1107 3823/846 3706/1103 +f 3700/1105 3698/1106 3823/846 3702/1107 +f 3696/1108 3694/1096 3823/846 3698/1106 +f 3719/1109 3689/1110 3691/1111 3824/947 +f 3691/1111 3693/948 3824/947 +f 3699/1112 3701/1113 3824/947 3697/946 +f 3705/1115 3707/1118 3824/947 3703/1114 +f 3701/1113 3703/1114 3824/947 +f 3709/1116 3711/1117 3824/947 3707/1118 +f 3715/1119 3717/1120 3824/947 3713/1121 +f 3711/1117 3713/1121 3824/947 +f 932/797 931/796 947/688 1208/690 +f 3717/1120 3719/1109 3824/947 +f 3720/447 3768/450 3767/605 3718/606 +f 3200/447 3248/450 3247/605 3198/606 +f 66/375 65/406 2/409 4/376 From fd7b885b0740eeac72ee9f9321b3a714f958aa4d Mon Sep 17 00:00:00 2001 From: LeMagnesium Date: Tue, 20 Jan 2015 17:45:25 +0100 Subject: [PATCH 38/39] Massive update of maptools to remove within last global vars - Updated mod using meld to merge properly - Came back the superapples' textures to replace the new buggy ones --- mods/maptools/{LICENSE.txt => LICENSE.md} | 7 +- mods/maptools/NODES.md | 45 ++ mods/maptools/README.md | 11 + mods/maptools/README.txt | 22 - mods/maptools/_README.txt | 53 -- mods/maptools/aliases.lua | 7 +- mods/maptools/config.lua | 29 + mods/maptools/craftitems.lua | 47 ++ mods/maptools/default_nodes.lua | 85 +-- mods/maptools/init.lua | 512 +----------------- mods/maptools/nodes.lua | 444 +++++++++++++++ .../textures/maptools_super_apple_bottom.png | Bin 295 -> 350 bytes .../textures/maptools_super_apple_side.png | Bin 295 -> 360 bytes .../textures/maptools_super_apple_top.png | Bin 498 -> 444 bytes mods/maptools/tools.lua | 61 +++ 15 files changed, 720 insertions(+), 603 deletions(-) rename mods/maptools/{LICENSE.txt => LICENSE.md} (71%) create mode 100644 mods/maptools/NODES.md create mode 100644 mods/maptools/README.md delete mode 100644 mods/maptools/README.txt delete mode 100644 mods/maptools/_README.txt create mode 100644 mods/maptools/config.lua create mode 100644 mods/maptools/craftitems.lua create mode 100644 mods/maptools/nodes.lua create mode 100644 mods/maptools/tools.lua diff --git a/mods/maptools/LICENSE.txt b/mods/maptools/LICENSE.md similarity index 71% rename from mods/maptools/LICENSE.txt rename to mods/maptools/LICENSE.md index f42bd647..ca48e3a1 100644 --- a/mods/maptools/LICENSE.txt +++ b/mods/maptools/LICENSE.md @@ -1,8 +1,9 @@ -+---- zlib/libpng license ----+ +zlib license +============ -Copyright (c) 2013 Calinou +Copyright (c) 2012-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. +**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: diff --git a/mods/maptools/NODES.md b/mods/maptools/NODES.md new file mode 100644 index 00000000..f5ce3cc3 --- /dev/null +++ b/mods/maptools/NODES.md @@ -0,0 +1,45 @@ +Item names for spawning the items using /give or /giveme +======================================================== + +Items +----- + +* `admin_pick:` magenta pickaxe, infinite durability, mines everything including unbreakable blocks instantly. No drops. Don't put this pickaxe in the hands of a griefer, of course. + +* `admin_pick_with_drops:` same as admin pickaxe, but drops stuff. + +* `infinite_fuel:` fuel lasting for a (near)-infinite time. Don't worry about the "near" * it lasts for about 50 in-real-life years. + +* `super_apple:` a yellow apple which heals 20 HP. + +* `copper_coin,` +* `silver_coin,` +* `gold_coin:` these have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. + +Blocks +------ + +**[!]** denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit or similar). + + +* `(block)_u` : unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). Examples: `stone_u`, `wood_u`, `glass_u`, … + +* `full_grass:` unbreakable block with the grass texture on all sides. + +* `player_clip:` **[!]** invisible block, not pointable. + +* `full_clip:` invisible block, pointable. Also available as a thin face: full_clip_face. + +* `smoke_block:` some smoke (does not harm players or entities). + +* `no_build:` **[!]** very basic building prevention. + +* `no_interact:` prevents interacting through the block (opening chests, furnaces, attacking entities, …). + +* `damage_(1…5):` **[!]** damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). + +* `kill:` **[!]** instant kill (deals 10 heart damage) blocks. + +* `light_block:` **[!]** invisible non-solid block, prevents light from passing through. + +* `light_bulb:` **[!]** invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/README.md b/mods/maptools/README.md new file mode 100644 index 00000000..3a428b7e --- /dev/null +++ b/mods/maptools/README.md @@ -0,0 +1,11 @@ +Map Tools +========= + +Map Tools for Minetest , a free/libre infinite +world block sandbox game. + +To install, just clone this repository into your "mods" directory. + +Map Tools 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/maptools/README.txt b/mods/maptools/README.txt deleted file mode 100644 index 4c155813..00000000 --- a/mods/maptools/README.txt +++ /dev/null @@ -1,22 +0,0 @@ -Calinou's Minetest Mods -===================== - -Calinou's Mods for Minetest [http://minetest.net], a free and opensource Minecraft-like game. - -This Git repository is mostly made for servers; it allows easy updating. - -To install, just clone this repository somewhere, then copy the "calinou_mods" folder in the "mods/minetest" folder of Minetest's installation folder. - - - -Misc stuff -===================== - -All these mods' source codes, except More Ores are under the zlib/libpng license. More Ores is under the GNU GPLv3; the mods' textures are under the CC BY-SA 3.0 Unported. - -Mods' forum threads: -More Blocks: http://minetest.net/forum/viewtopic.php?id=509 -More Ores: http://minetest.net/forum/viewtopic.php?id=549 -Map Tools: http://minetest.net/forum/viewtopic.php?id=1882 -Doors+: http://minetest.net/forum/viewtopic.php?id=2059 -Stairs+: http://minetest.net/forum/viewtopic.php?id=2092 diff --git a/mods/maptools/_README.txt b/mods/maptools/_README.txt deleted file mode 100644 index cfbe0b2e..00000000 --- a/mods/maptools/_README.txt +++ /dev/null @@ -1,53 +0,0 @@ -*** Item names for spawning the items using /give or /giveme *** - -Items: - -- admin_pick -Purple pickaxe, infinite durability, mines everything including unbreakable blocks instantly. Don't put this pickaxe in the hands of a griefer, of course. :) - -- infinitefuel -Fuel lasting for a (near)-infinite time. Don't worry about the "near" - it lasts for about 50 in-real-life years. - -- superapple -An apple which heals all 10 hearts. - -- copper_coin -- silver_coin -- gold_coin -These have nothing to do with the More Ores mod; they can be used as a currency for trading, or as an universal currency for mods that add shops. - -Blocks: -A /!\ denotes an unpointable, unbreakable block; be very careful with them, they cannot be removed by hand (they can only be removed with WorldEdit). - -- (insert block name here)_u -- example: stone_u -Unbreakable, non-flammable, non-falling, non-decaying blocks, most common blocks have their unbreakable form (examples: maptools:stone or maptools:wood for unbreakable stone/wood). - -- fullgrass -Unbrakable block with the "grass" texture on all sides. - -- playerclip -/!\ Invisible block, not pointable. - -- fullclip -Invisible block, pointable. - -- smoke_block -Some smoke (does not harm players or entities). - -- nobuild -/!\ Very basic building prevention. - -- nointeract -Prevents interacting through the block (interacting as in opening chests, furnaces, attacking entities...). - -- damage_(insert damage in half hearts here) -/!\ Damaging blocks. The damage is in half hearts and ranges from 1 to 5 (0.5 to 2.5 hearts damage every second). - -- killblock -/!\ Instant kill (deals 10 heart damage) blocks. - -- lightblock -/!\ Invisible non-solid block, prevents light from passing through. - -- lightbulb -/!\ Invisible non-solid block, emitting a good amount of light. diff --git a/mods/maptools/aliases.lua b/mods/maptools/aliases.lua index 8742f44e..719acfd1 100644 --- a/mods/maptools/aliases.lua +++ b/mods/maptools/aliases.lua @@ -1,4 +1,9 @@ --- Aliases +--[[ +Map Tools: alias definitions + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] minetest.register_alias("adminpick", "maptools:pick_admin") minetest.register_alias("adminpickaxe", "maptools:pick_admin") diff --git a/mods/maptools/config.lua b/mods/maptools/config.lua new file mode 100644 index 00000000..63f1a260 --- /dev/null +++ b/mods/maptools/config.lua @@ -0,0 +1,29 @@ +--[[ +Map Tools: configuration handling + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +maptools.config = {} + +local function getbool_default(setting, default) + local value = minetest.setting_getbool(setting) + if value == nil then + value = default + end + return value +end + +local function setting(settingtype, name, default) + if settingtype == "bool" then + maptools.config[name] = + getbool_default("maptools." .. name, default) + else + maptools.config[name] = + minetest.setting_get("maptools." .. name) or default + end +end + +-- Show Map Tools stuff in creative inventory (1 or 0): +setting("integer", "hide_from_creative_inventory", 1) diff --git a/mods/maptools/craftitems.lua b/mods/maptools/craftitems.lua new file mode 100644 index 00000000..c311aa95 --- /dev/null +++ b/mods/maptools/craftitems.lua @@ -0,0 +1,47 @@ +--[[ +Map Tools: item definitions + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = maptools.intllib + +maptools.creative = maptools.config["hide_from_creative_inventory"] + +minetest.register_craftitem("maptools:copper_coin", { + description = S("Copper Coin"), + inventory_image = "maptools_copper_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craftitem("maptools:silver_coin", { + description = S("Silver Coin"), + inventory_image = "maptools_silver_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craftitem("maptools:gold_coin", { + description = S("Gold Coin"), + inventory_image = "maptools_gold_coin.png", + wield_scale = {x = 0.5, y = 0.5, z = 0.25}, + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craftitem("maptools:infinitefuel", { + description = S("Infinite Fuel"), + inventory_image = "maptools_infinitefuel.png", + stack_max = 10000, + groups = {not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_craft({ + type = "fuel", + recipe = "maptools:infinitefuel", + burntime = 1000000000, +}) diff --git a/mods/maptools/default_nodes.lua b/mods/maptools/default_nodes.lua index 83d0df02..7c1e135e 100644 --- a/mods/maptools/default_nodes.lua +++ b/mods/maptools/default_nodes.lua @@ -1,10 +1,13 @@ -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 +--[[ +Map Tools: unbreakable default nodes + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = maptools.intllib + +maptools.creative = maptools.config["hide_from_creative_inventory"] minetest.register_node("maptools:stone", { description = S("Unbreakable Stone"), @@ -12,7 +15,7 @@ minetest.register_node("maptools:stone", { stack_max = 10000, tiles = {"default_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -22,7 +25,7 @@ minetest.register_node("maptools:stonebrick", { stack_max = 10000, tiles = {"default_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -32,7 +35,7 @@ minetest.register_node("maptools:tree", { stack_max = 10000, tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -43,7 +46,7 @@ minetest.register_node("maptools:jungletree", { stack_max = 10000, tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -54,7 +57,7 @@ minetest.register_node("maptools:cactus", { stack_max = 10000, tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), on_place = minetest.rotate_node }) @@ -75,7 +78,7 @@ minetest.register_node("maptools:papyrus", { type = "fixed", fixed = {-0.375, -0.5, -0.375, 0.375, 0.5, 0.375} }, - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -85,7 +88,7 @@ minetest.register_node("maptools:dirt", { stack_max = 10000, tiles = {"default_dirt.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -95,7 +98,7 @@ minetest.register_node("maptools:wood", { stack_max = 10000, tiles = {"default_wood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), }) @@ -105,7 +108,7 @@ minetest.register_node("maptools:junglewood", { stack_max = 10000, tiles = {"default_junglewood.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_wood_defaults(), }) @@ -118,7 +121,7 @@ minetest.register_node("maptools:glass", { paramtype = "light", sunlight_propagates = true, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_glass_defaults(), }) @@ -130,7 +133,7 @@ minetest.register_node("maptools:leaves", { tiles = {"default_leaves.png"}, paramtype = "light", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_leaves_defaults(), }) @@ -140,7 +143,7 @@ minetest.register_node("maptools:sand", { stack_max = 10000, tiles = {"default_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_sand_defaults(), }) @@ -150,7 +153,7 @@ minetest.register_node("maptools:gravel", { stack_max = 10000, tiles = {"default_gravel.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.35}, dug = {name="default_gravel_footstep", gain=0.6}, @@ -163,7 +166,7 @@ minetest.register_node("maptools:clay", { stack_max = 10000, tiles = {"default_clay.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults(), }) @@ -173,7 +176,7 @@ minetest.register_node("maptools:desert_sand", { stack_max = 10000, tiles = {"default_desert_sand.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_sand_defaults(), }) @@ -183,7 +186,7 @@ minetest.register_node("maptools:sandstone", { stack_max = 10000, tiles = {"default_sandstone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -193,7 +196,7 @@ minetest.register_node("maptools:sandstone_brick", { stack_max = 10000, tiles = {"default_sandstone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -203,7 +206,7 @@ minetest.register_node("maptools:desert_stone", { stack_max = 10000, tiles = {"default_desert_stone.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -213,7 +216,7 @@ minetest.register_node("maptools:desert_cobble", { stack_max = 10000, tiles = {"default_desert_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -223,7 +226,7 @@ minetest.register_node("maptools:desert_stonebrick", { stack_max = 10000, tiles = {"default_desert_stone_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -234,7 +237,7 @@ minetest.register_node("maptools:grass", { tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"}, paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain = 0.4}, }), @@ -246,7 +249,7 @@ minetest.register_node("maptools:fullgrass", { stack_max = 10000, tiles = {"default_grass.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_grass_footstep", gain=0.4}, }), @@ -267,7 +270,7 @@ for slab_num = 1,3,1 do paramtype = "light", paramtype2 = "facedir", drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_dirt_defaults({footstep = {name="default_grass_footstep", gain = 0.4}}), }) end @@ -278,7 +281,7 @@ minetest.register_node("maptools:cobble", { stack_max = 10000, tiles = {"default_cobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -288,7 +291,7 @@ minetest.register_node("maptools:mossycobble", { stack_max = 10000, tiles = {"default_mossycobble.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -298,7 +301,7 @@ minetest.register_node("maptools:brick", { stack_max = 10000, tiles = {"default_brick.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -308,7 +311,7 @@ minetest.register_node("maptools:coalblock", { stack_max = 10000, tiles = {"default_coal_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -319,7 +322,7 @@ minetest.register_node("maptools:steelblock", { stack_max = 10000, tiles = {"default_steel_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -329,7 +332,7 @@ minetest.register_node("maptools:goldblock", { stack_max = 10000, tiles = {"default_gold_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -339,7 +342,7 @@ minetest.register_node("maptools:copperblock", { stack_max = 10000, tiles = {"default_copper_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -349,7 +352,7 @@ minetest.register_node("maptools:bronzeblock", { stack_max = 10000, tiles = {"default_bronze_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -359,7 +362,7 @@ minetest.register_node("maptools:diamondblock", { stack_max = 10000, tiles = {"default_diamond_block.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_stone_defaults(), }) @@ -371,7 +374,7 @@ minetest.register_node("maptools:soil_wet", { stack_max = 10000, tiles = {"farming_soil_wet.png", "farming_soil_wet_side.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, grassland = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, grassland = 1}, sounds = default.node_sound_dirt_defaults(), }) @@ -381,6 +384,6 @@ minetest.register_node("maptools:desert_sand_soil_wet", { stack_max = 10000, drop = "", tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, - groups = {unbreakable = 1, not_in_creative_inventory = maptools_creative, soil = 3, wet = 1, desert = 1}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, soil = 3, wet = 1, desert = 1}, sounds = default.node_sound_sand_defaults(), }) diff --git a/mods/maptools/init.lua b/mods/maptools/init.lua index c5178fae..adf90453 100644 --- a/mods/maptools/init.lua +++ b/mods/maptools/init.lua @@ -1,17 +1,31 @@ -MAPTOOLS_CREATIVE = 1 -- Set this to 0 if you want Map Tools nodes and items to appear in the creative inventory. +--[[ +===================================================================== +** Map Tools ** +By Calinou. --- Load translation library if intllib is installed +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +===================================================================== +--]] + +maptools = {} 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 +if minetest.get_modpath("intllib") then + S = intllib.Getter() +else + S = function(s) return s end end +maptools.intllib = S -dofile(minetest.get_modpath("maptools").."/aliases.lua") -dofile(minetest.get_modpath("maptools").."/default_nodes.lua") +local modpath = minetest.get_modpath("maptools") + +dofile(modpath .. "/config.lua") +dofile(modpath .. "/aliases.lua") +dofile(modpath .. "/craftitems.lua") +dofile(modpath .. "/default_nodes.lua") +dofile(modpath .. "/nodes.lua") +dofile(modpath .. "/tools.lua") --[[ Map Tools by Calinou @@ -24,7 +38,7 @@ minetest.register_node(":default:cloud", { description = S("Cloud"), tiles = {"default_cloud.png"}, drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, sounds = default.node_sound_defaults(), }) @@ -36,430 +50,6 @@ minetest.register_craft({ burntime = 1000000000, }) --- Nodes - -minetest.register_node("maptools:black", { - description = S("Black"), - range = 12, - stack_max = 10000, - tiles = {"black.png"}, - drop = "", - post_effect_color = {a=255, r=0, g=0, b=0}, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:white", { - description = S("White"), - range = 12, - stack_max = 10000, - tiles = {"white.png"}, - drop = "", - post_effect_color = {a=255, r=128, g=128, b=128}, - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("maptools:playerclip", { - description = S("Player Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fake_walkable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - pointable = false, - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fullclip", { - description = S("Full Clip"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_blue.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fake_walkable_pointable", { - description = S("Player Clip"), - drawtype = "nodebox", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_green.png", - drawtype = "airlike", - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = { - {0, 0, 0, 0, 0, 0}, - }, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:ignore_like", { - description = S("Ignore-like"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:ignore_like_no_clip", { - description = S("Ignore-like (no clip)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - - -minetest.register_node("maptools:ignore_like_no_point", { - description = S("Ignore-like (no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_purple.png", - tiles = {"invisible.png"}, - paramtype = "light", - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:ignore_like_no_clip_no_point", { - description = S("Ignore-like (no clip, no point)"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_pink.png", - tiles = {"invisible.png"}, - paramtype = "light", - walkable = false, - pointable = false, - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:fullclip_face", { - description = S("Full Clip Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_white.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_bottom", { - description = S("Player Clip Bottom Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_orange.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, -}) - -minetest.register_node("maptools:playerclip_top", { - description = S("Player Clip Top Face"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_yellow.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100}, -}) - -for pusher_num=1,10,1 do -minetest.register_node("maptools:pusher_" .. pusher_num, { - description = S("Pusher (%s)"):format(pusher_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_apple.png", - drawtype = "nodebox", - tiles = {"invisible.png"}, - paramtype = "light", - paramtype2 = "facedir", - sunlight_propagates = true, - node_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE, fall_damage_add_percent=-100, bouncy=pusher_num*100}, -}) -end - -minetest.register_node("maptools:lightbulb", { - description = S("Light Bulb"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", - drawtype = "airlike", - walkable = false, - pointable = false, - light_source = 15, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:nobuild", { - description = S("Build Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^bones_bones.png", - drawtype = "airlike", - walkable = false, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:nointeract", { - description = S("Interact Prevention"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_scorched_stuff.png", - drawtype = "airlike", - walkable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:climb", { - description = S("Climb Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^default_ladder.png", - drawtype = "airlike", - walkable = false, - climbable = true, - pointable = false, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -for damage_num=1,5,1 do -minetest.register_node("maptools:damage_" .. damage_num, { - description = S("Damaging Block (%s)"):format(damage_num), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = damage_num, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) -end - -minetest.register_node("maptools:kill", { - description = S("Kill Block"), - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^dye_black.png", - drawtype = "airlike", - walkable = false, - pointable = false, - damage_per_second = 20, - paramtype = "light", - sunlight_propagates = true, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - -minetest.register_node("maptools:smoke", { - description = S("Smoke Block"), - range = 12, - stack_max = 10000, - tiles = {"maptools_smoke.png"}, - drawtype = "allfaces_optional", - walkable = false, - paramtype = "light", - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - post_effect_color = {a=192, r=96, g=96, b=96}, -}) - -minetest.register_node("maptools:ladder", { - description = S("Fake Ladder"), - range = 12, - stack_max = 10000, - drawtype = "signlike", - tiles = {"default_ladder.png"}, - inventory_image = "default_ladder.png", - wield_image = "default_ladder.png", - paramtype = "light", - paramtype2 = "wallmounted", - walkable = false, - sunlight_propagates = true, - selection_box = { - type = "wallmounted", - }, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sounds = default.node_sound_wood_defaults(), -}) - -minetest.register_node("maptools:permanent_fire", { - description = S("Permanent Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sunlight_propagates = true, - walkable = false, - damage_per_second = 4, -}) - -minetest.register_node("maptools:fake_fire", { - description = S("Fake Fire"), - range = 12, - stack_max = 10000, - drawtype = "plantlike", - paramtype = "light", - tiles = {{ - name="fire_basic_flame_animated.png", - animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, - }}, - inventory_image = "fire_basic_flame.png", - light_source = 14, - drop = "", - groups = {unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sunlight_propagates = true, - walkable = false, -}) - -minetest.register_node("maptools:igniter", { - drawtype = "airlike", - range = 12, - stack_max = 10000, - inventory_image = "default_steel_block.png^crosshair.png", - description = S("Igniter"), - paramtype = "light", - inventory_image = "fire_basic_flame.png", - drop = "", - groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = MAPTOOLS_CREATIVE}, - sunlight_propagates = true, - pointable = false, - walkable = false, -}) - -minetest.register_node("maptools:superapple", { - description = S("Super Apple"), - range = 12, - stack_max = 99, - drawtype = "nodebox", - visual_scale = 1.0, - tiles = {"maptools_super_apple_top.png","maptools_super_apple_bottom.png","maptools_super_apple_side.png"}, - inventory_image = "maptools_superapple.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - node_box = { - type = "fixed", - fixed = { - {-3/16, -7/16, -3/16, 3/16, 1/16, 3/16}, - {-4/16, -6/16, -3/16, 4/16, 0, 3/16}, - {-3/16, -6/16, -4/16, 3/16, 0, 4/16}, - {-1/32, 1/16, -1/32, 1/32, 4/16, 1/32}, - {-1/16, 1.6/16, 0, 1/16, 1.8/16, 1/16}, - {-2/16, 1.4/16, 1/16, 1/16, 1.6/16, 2/16}, - {-2/16, 1.2/16, 2/16, 0, 1.4/16, 3/16}, - {-1.5/16, 1/16, .5/16, 0.5/16, 1.2/16, 2.5/16}, - } - }, - is_ground_content = true, - groups = {fleshy = 3, dig_immediate = 3, not_in_creative_inventory = 0, flammable = 2, leafdecay = 3, leafdecay_drop = 1}, - on_use = minetest.item_eat(20), - sounds = default.node_sound_leaves_defaults(), - after_place_node = function(pos, placer, itemstack) - if placer:is_player() then - minetest.set_node(pos, {name = "maptools:superapple", param2= 1}) - end - end, -}) - -- Items minetest.register_craftitem("maptools:copper_coin", { @@ -467,7 +57,7 @@ minetest.register_craftitem("maptools:copper_coin", { inventory_image = "maptools_copper_coin.png", wield_scale = {x = 0.5, y = 0.5, z = 0.25}, stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {not_in_creative_inventory = maptools.creative}, }) minetest.register_craftitem("maptools:silver_coin", { @@ -475,7 +65,7 @@ minetest.register_craftitem("maptools:silver_coin", { inventory_image = "maptools_silver_coin.png", wield_scale = {x = 0.5, y = 0.5, z = 0.25}, stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {not_in_creative_inventory = maptools.creative}, }) minetest.register_craftitem("maptools:gold_coin", { @@ -483,58 +73,14 @@ minetest.register_craftitem("maptools:gold_coin", { inventory_image = "maptools_gold_coin.png", wield_scale = {x = 0.5, y = 0.5, z = 0.25}, stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, + groups = {not_in_creative_inventory = maptools.creative}, }) minetest.register_craftitem("maptools:infinitefuel", { description = S("Infinite Fuel"), inventory_image = "maptools_infinitefuel.png", stack_max = 10000, - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, -}) - --- Tools - -minetest.register_tool("maptools:pick_admin", { - description = S("Admin Pickaxe"), - range = 12, - inventory_image = "maptools_adminpick.png", - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, - tool_capabilities = { - full_punch_interval = 0.1, - max_drop_level = 3, - groupcaps= { - unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - }, - damage_groups = {fleshy = 1000}, - }, -}) - -minetest.register_tool("maptools:pick_admin_with_drops", { - description = S("Admin Pickaxe with Drops"), - range = 12, - inventory_image = "maptools_adminpick_with_drops.png", - groups = {not_in_creative_inventory = MAPTOOLS_CREATIVE}, - tool_capabilities = { - full_punch_interval = 0.35, - max_drop_level = 3, - groupcaps = { - unbreakable = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - fleshy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - choppy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - bendy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - cracky = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - crumbly = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - snappy = {times={[1] = 0, [2] = 0, [3] = 0}, uses = 0, maxlevel = 3}, - }, - damage_groups = {fleshy = 1000}, - }, + groups = {not_in_creative_inventory = maptools.creative}, }) minetest.register_on_punchnode(function(pos, node, puncher) @@ -547,5 +93,5 @@ minetest.register_on_punchnode(function(pos, node, puncher) end) if minetest.setting_getbool("log_mods") then - minetest.log("action", "Carbone: [maptools] loaded.") + minetest.log("action", S("[maptools] loaded.")) end diff --git a/mods/maptools/nodes.lua b/mods/maptools/nodes.lua new file mode 100644 index 00000000..ad5ff1f1 --- /dev/null +++ b/mods/maptools/nodes.lua @@ -0,0 +1,444 @@ +--[[ +Map Tools: node definitions + +Copyright (c) 2012-2015 Calinou and contributors. +Licensed under the zlib license. See LICENSE.md for more information. +--]] + +local S = maptools.intllib + +maptools.creative = maptools.config["hide_from_creative_inventory"] + +-- Redefine cloud so that the admin pickaxe can mine it: +minetest.register_node(":default:cloud", { + description = S("Cloud"), + tiles = {"default_cloud.png"}, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_defaults(), +}) + +-- Nodes +-- ===== + +minetest.register_node("maptools:black", { + description = S("Black"), + range = 12, + stack_max = 10000, + tiles = {"black.png"}, + drop = "", + post_effect_color = {a=255, r=0, g=0, b=0}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:white", { + description = S("White"), + range = 12, + stack_max = 10000, + tiles = {"white.png"}, + drop = "", + post_effect_color = {a=255, r=128, g=128, b=128}, + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("maptools:playerclip", { + description = S("Player Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fake_walkable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + pointable = false, + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fullclip", { + description = S("Full Clip"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_blue.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fake_walkable_pointable", { + description = S("Player Clip"), + drawtype = "nodebox", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_green.png", + drawtype = "airlike", + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = { + {0, 0, 0, 0, 0, 0}, + }, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:ignore_like", { + description = S("Ignore-like"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:ignore_like_no_clip", { + description = S("Ignore-like (no clip)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + + +minetest.register_node("maptools:ignore_like_no_point", { + description = S("Ignore-like (no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_purple.png", + tiles = {"invisible.png"}, + paramtype = "light", + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:ignore_like_no_clip_no_point", { + description = S("Ignore-like (no clip, no point)"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_pink.png", + tiles = {"invisible.png"}, + paramtype = "light", + walkable = false, + pointable = false, + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:fullclip_face", { + description = S("Full Clip Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_white.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_bottom", { + description = S("Player Clip Bottom Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_orange.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, +}) + +minetest.register_node("maptools:playerclip_top", { + description = S("Player Clip Top Face"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_yellow.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, 0.4999, -0.5, 0.5, 0.5, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100}, +}) + +for pusher_num=1,10,1 do +minetest.register_node("maptools:pusher_" .. pusher_num, { + description = S("Pusher (%s)"):format(pusher_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_apple.png", + drawtype = "nodebox", + tiles = {"invisible.png"}, + paramtype = "light", + paramtype2 = "facedir", + sunlight_propagates = true, + node_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4999, 0.5}, + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative, fall_damage_add_percent=-100, bouncy=pusher_num*100}, +}) +end + +minetest.register_node("maptools:lightbulb", { + description = S("Light Bulb"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_mese_crystal_fragment.png", + drawtype = "airlike", + walkable = false, + pointable = false, + light_source = 15, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:nobuild", { + description = S("Build Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^bones_bones.png", + drawtype = "airlike", + walkable = false, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:nointeract", { + description = S("Interact Prevention"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_scorched_stuff.png", + drawtype = "airlike", + walkable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:climb", { + description = S("Climb Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^default_ladder.png", + drawtype = "airlike", + walkable = false, + climbable = true, + pointable = false, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +for damage_num=1,5,1 do +minetest.register_node("maptools:damage_" .. damage_num, { + description = S("Damaging Block (%s)"):format(damage_num), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^farming_cotton_" .. damage_num .. ".png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = damage_num, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) +end + +minetest.register_node("maptools:kill", { + description = S("Kill Block"), + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^dye_black.png", + drawtype = "airlike", + walkable = false, + pointable = false, + damage_per_second = 20, + paramtype = "light", + sunlight_propagates = true, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, +}) + +minetest.register_node("maptools:smoke", { + description = S("Smoke Block"), + range = 12, + stack_max = 10000, + tiles = {"maptools_smoke.png"}, + drawtype = "allfaces_optional", + walkable = false, + paramtype = "light", + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + post_effect_color = {a=192, r=96, g=96, b=96}, +}) + +minetest.register_node("maptools:ladder", { + description = S("Fake Ladder"), + range = 12, + stack_max = 10000, + drawtype = "signlike", + tiles = {"default_ladder.png"}, + inventory_image = "default_ladder.png", + wield_image = "default_ladder.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + sunlight_propagates = true, + selection_box = { + type = "wallmounted", + }, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sounds = default.node_sound_wood_defaults(), +}) + +minetest.register_node("maptools:permanent_fire", { + description = S("Permanent Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sunlight_propagates = true, + walkable = false, + damage_per_second = 4, +}) + +minetest.register_node("maptools:fake_fire", { + description = S("Fake Fire"), + range = 12, + stack_max = 10000, + drawtype = "plantlike", + paramtype = "light", + tiles = {{ + name="fire_basic_flame_animated.png", + animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=1}, + }}, + inventory_image = "fire_basic_flame.png", + light_source = 14, + drop = "", + groups = {unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sunlight_propagates = true, + walkable = false, +}) + +minetest.register_node("maptools:igniter", { + drawtype = "airlike", + range = 12, + stack_max = 10000, + inventory_image = "default_steel_block.png^crosshair.png", + description = S("Igniter"), + paramtype = "light", + inventory_image = "fire_basic_flame.png", + drop = "", + groups = {igniter=2, unbreakable = 1, not_in_creative_inventory = maptools.creative}, + sunlight_propagates = true, + pointable = false, + walkable = false, +}) + +minetest.register_node("maptools:superapple", { + description = S("Super Apple"), + range = 12, + stack_max = 99, + drawtype = "nodebox", + visual_scale = 1.0, + tiles = {"maptools_super_apple_top.png","maptools_super_apple_bottom.png","maptools_super_apple_side.png"}, + inventory_image = "maptools_superapple.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + node_box = { + type = "fixed", + fixed = { + {-3/16, -7/16, -3/16, 3/16, 1/16, 3/16}, + {-4/16, -6/16, -3/16, 4/16, 0, 3/16}, + {-3/16, -6/16, -4/16, 3/16, 0, 4/16}, + {-1/32, 1/16, -1/32, 1/32, 4/16, 1/32}, + {-1/16, 1.6/16, 0, 1/16, 1.8/16, 1/16}, + {-2/16, 1.4/16, 1/16, 1/16, 1.6/16, 2/16}, + {-2/16, 1.2/16, 2/16, 0, 1.4/16, 3/16}, + {-1.5/16, 1/16, .5/16, 0.5/16, 1.2/16, 2.5/16}, + } + }, + is_ground_content = true, + groups = {fleshy=3, dig_immediate=3, not_in_creative_inventory = 0, flammable = 2, leafdecay = 3, leafdecay_drop = 1}, + on_use = minetest.item_eat(20), + sounds = default.node_sound_defaults(), + after_place_node = function(pos, placer, itemstack) + if placer:is_player() then + minetest.set_node(pos, {name = "maptools:superapple", param2= 1}) + end + end, +}) diff --git a/mods/maptools/textures/maptools_super_apple_bottom.png b/mods/maptools/textures/maptools_super_apple_bottom.png index 97f61e171c0291015d80fb19c8cbae5a11436b2b..46495124e13385547cfe33a68780d581b2602a9c 100644 GIT binary patch delta 276 zcmV+v0qg#!0^S0UQ-25&0yUq5!>#}T0P9IaK~y-)<&nEe13?&tzxij}9oYpj?#4n8 zTtu|D_YG|AeL)|<*3v2|QVBLnSWUbX(d?2Li%FxiXd1Ebl!tRZ{tNu3w$EVa{4XKp zX#jjD)n#5^;zeM54@SfOLGY{NIB&Yjc?P{rND{Cq?CmNR3x7{N!uO9pLn44kD3@Dn z7Dh+c00000F#X^LTB6muW zCRP?XmX&9-u(l8pSvDy?B8i(|6H;Wl9sax-Soo%nS2*2%2|1h<@JUI`Y#QzW!vMxW zQK(;*+xsLI76IoJAOd*~A;3Jt!MxXSl9ZE#;o&2psM2c|E>pm Ws5Oa7^tD$20000|YQ>_~q11i7CV5`|RPJb01?!ZJaIr8_D)39Hf z;B*M-5SCAnBye~TVXbBL4Ex7*Cdfe5!`WzuY}5nU1?dsVlE?d(VA~*rB!+A+0={7| z;MR>91O}T|K+-yl0!mSIFnE8%Px}em9Op`kvf~Dec?s1DZ2kr3w=n2;e8!t8uBv>X kx*aj-!^s))=NF&p0~B#UZcflJn*aa+07*qoM6N<$f?MH&aR2}S delta 220 zcmV<203-kC0;d9yQ-2v16C>4RbC3W40JKR&K~y-)<&iN8gFqBSpUY>F#X^LTB6muW zCRP?XmX&9-u(l8pSvDy?B8i(|6H;Wl9sax-Soo%nS2*2%2|1h<@JUI`Y#QzW!vMxW zQK(;*+xsLI76IoJAOd*~A;3Jt!MxXSl9ZE#;o&2psM2c|E>pm Ws5Oa7^tD$20000+eHh=!c#0ngrPIg2wFR@;eXp|+Pz*+>L78W>f!QJ(;Nb2?g=)U!t z2@m|LK6AuJ6Ph4wv*vCy)FPFNA7_joEHU#Nok)R zrKsDxPU3bq!%H)Nwv+DBXGDSA)9}6{Ga;RJ-}_wCvY8(o&B!!VP*70#1W2D%ciGCF Qs{jB107*qoM6N<$f}1?4jsO4v delta 425 zcmV;a0apIJ1M&lqQ-2v15;M`rQndg80e?wEK~z}7?Ulby!cY{(e=W7;pM*dZWpuy< zHzyMx!NoA~01S@$2FAt3fyISY7UK)}A|%F9BS9okBtia^UWdyy=^`~il-O_ia?;y# z&-wbD9taR1z<-D4_h7Y(0MK1-%KA&WbNmt zuBY?S$jgPo_jk;#z(sk!6voVNG|g|Cl4F)^XtWUpAnAm-zJtrNE&%nqJlAUZE8y2X z;9G%gR`UJr8pkIQ(t|hv>9~|8mm5u|pu7D8WOaz Date: Tue, 20 Jan 2015 20:47:52 +0100 Subject: [PATCH 39/39] Modified homedecor's itemframes mod and removed a global var - Removed x21's global var error - Changed homedecor's itemframes : now using Shakajiub's fork --- mods/fences/init.lua | 1 + mods/homedecor_modpack/itemframes/README.txt | 28 +++ mods/homedecor_modpack/itemframes/init.lua | 236 ++++++++++++------ .../itemframes/textures/itemframes_frame.png | Bin 104 -> 299 bytes 4 files changed, 183 insertions(+), 82 deletions(-) create mode 100644 mods/homedecor_modpack/itemframes/README.txt diff --git a/mods/fences/init.lua b/mods/fences/init.lua index 8ab786c5..d4fc3b9d 100755 --- a/mods/fences/init.lua +++ b/mods/fences/init.lua @@ -78,6 +78,7 @@ local p5 = {2/16, 1/2, 2/16, 2/16, 1/2+8/16, 2/16} local x1 = {-2/16, 1/2-4/16, 1/16, -1/2, 1/2-1/16, -1/16} --oben(quer) -x local x12 = {-2/16, -1/2+6/16, 1/16, -1/2, -1/2+9/16, -1/16} --unten(quer) -x local x2 = {2/16, 1/2-4/16, -1/16, 1/2, 1/2-1/16, 1/16} --oben(quer) x +local x21 = {0, 0, 0, 0, 0, 0} -- just to fix global var use local x22 = {2/16, -1/2+6/16, -1/16, 1/2, -1/2+9/16, 1/16} --unten(quer) x local z1 = {1/16, 1/2-4/16, -2/16, -1/16, 1/2-1/16, -1/2} --oben(quer) -z local z12 = {1/16, -1/2+6/16, -2/16, -1/16, -1/2+9/16, -1/2} --unten(quer) -z diff --git a/mods/homedecor_modpack/itemframes/README.txt b/mods/homedecor_modpack/itemframes/README.txt new file mode 100644 index 00000000..7f591930 --- /dev/null +++ b/mods/homedecor_modpack/itemframes/README.txt @@ -0,0 +1,28 @@ +Minetest 0.4 mod: itemframes +============================ + +Original mod found here: +https://forum.minetest.net/viewtopic.php?f=11&t=5600 + +This version adds support for multiple pedestals. By default, +there are pedestals of the exact same materials as in the stairs +mod. You can add/remove new pedestals easily as much as you like. + +License of source code +---------------------- +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) +--------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Authors of media files +---------------------- +Jere Oikarinen (CC BY-SA 3.0): + ./textures/itemframes_frame.png + diff --git a/mods/homedecor_modpack/itemframes/init.lua b/mods/homedecor_modpack/itemframes/init.lua index a75d2ddb..2b6ee2ad 100644 --- a/mods/homedecor_modpack/itemframes/init.lua +++ b/mods/homedecor_modpack/itemframes/init.lua @@ -1,4 +1,7 @@ +-- See README.txt for licensing and other information. + local tmp = {} +itemframes = {} minetest.register_entity("itemframes:item",{ hp_max = 1, @@ -25,7 +28,7 @@ minetest.register_entity("itemframes:item",{ if self.texture ~= nil then self.object:set_properties({textures={self.texture}}) end - if self.nodename == "itemframes:pedestal" then + if self.nodename ~= "itemframes:frame" then self.object:set_properties({automatic_rotate=1}) end end, @@ -37,7 +40,6 @@ minetest.register_entity("itemframes:item",{ end, }) - local facedir = {} facedir[0] = {x=0,y=0,z=1} facedir[1] = {x=1,y=0,z=0} @@ -47,9 +49,9 @@ facedir[3] = {x=-1,y=0,z=0} local remove_item = function(pos, node) local objs = nil if node.name == "itemframes:frame" then - objs = minetest.get_objects_inside_radius(pos, .5) - elseif node.name == "itemframes:pedestal" then - objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y+1,z=pos.z}, .5) + objs = minetest.env:get_objects_inside_radius(pos, .5) + elseif minetest.get_item_group(node.name, "group:pedestal") then + objs = minetest.env:get_objects_inside_radius({x=pos.x,y=pos.y+1,z=pos.z}, .5) end if objs then for _, obj in ipairs(objs) do @@ -62,7 +64,7 @@ end local update_item = function(pos, node) remove_item(pos, node) - local meta = minetest.get_meta(pos) + local meta = minetest.env:get_meta(pos) if meta:get_string("item") ~= "" then if node.name == "itemframes:frame" then local posad = facedir[node.param2] @@ -70,12 +72,12 @@ local update_item = function(pos, node) pos.x = pos.x + posad.x*6.5/16 pos.y = pos.y + posad.y*6.5/16 pos.z = pos.z + posad.z*6.5/16 - elseif node.name == "itemframes:pedestal" then + elseif minetest.get_item_group(node.name, "group:pedestal") then pos.y = pos.y + 12/16+.33 end tmp.nodename = node.name tmp.texture = ItemStack(meta:get_string("item")):get_name() - local e = minetest.add_entity(pos,"itemframes:item") + local e = minetest.env:add_entity(pos,"itemframes:item") if node.name == "itemframes:frame" then local yaw = math.pi*2 - node.param2 * math.pi/2 e:setyaw(yaw) @@ -84,12 +86,12 @@ local update_item = function(pos, node) end local drop_item = function(pos, node) - local meta = minetest.get_meta(pos) + local meta = minetest.env:get_meta(pos) if meta:get_string("item") ~= "" then if node.name == "itemframes:frame" then - minetest.add_item(pos, meta:get_string("item")) - elseif node.name == "itemframes:pedestal" then - minetest.add_item({x=pos.x,y=pos.y+1,z=pos.z}, meta:get_string("item")) + minetest.env:add_item(pos, meta:get_string("item")) + elseif minetest.get_item_group(node.name, "group:pedestal") then + minetest.env:add_item({x=pos.x,y=pos.y+1,z=pos.z}, meta:get_string("item")) end meta:set_string("item","") end @@ -111,13 +113,13 @@ minetest.register_node("itemframes:frame",{ legacy_wallmounted = true, sounds = default.node_sound_defaults(), after_place_node = function(pos, placer, itemstack) - local meta = minetest.get_meta(pos) + local meta = minetest.env:get_meta(pos) meta:set_string("owner",placer:get_player_name()) meta:set_string("infotext","Item frame (owned by "..placer:get_player_name()..")") end, on_rightclick = function(pos, node, clicker, itemstack) if not itemstack then return end - local meta = minetest.get_meta(pos) + local meta = minetest.env:get_meta(pos) if clicker:get_player_name() == meta:get_string("owner") then drop_item(pos,node) local s = itemstack:take_item() @@ -127,69 +129,153 @@ minetest.register_node("itemframes:frame",{ return itemstack end, on_punch = function(pos,node,puncher) - local meta = minetest.get_meta(pos) + local meta = minetest.env:get_meta(pos) if puncher:get_player_name() == meta:get_string("owner") then drop_item(pos, node) end end, can_dig = function(pos,player) - - local meta = minetest.get_meta(pos) + local meta = minetest.env:get_meta(pos) return player:get_player_name() == meta:get_string("owner") end, - after_destruct = remove_item, }) - -minetest.register_node("itemframes:pedestal",{ - description = "Pedestal", - drawtype = "nodebox", - node_box = { type = "fixed", fixed = { - {-7/16, -8/16, -7/16, 7/16, -7/16, 7/16}, -- bottom plate - {-6/16, -7/16, -6/16, 6/16, -6/16, 6/16}, -- bottom plate (upper) - {-0.25, -6/16, -0.25, 0.25, 11/16, 0.25}, -- pillar - {-7/16, 11/16, -7/16, 7/16, 12/16, 7/16}, -- top plate - } }, - --selection_box = { type = "fixed", fixed = {-7/16, -0.5, -7/16, 7/16, 12/16, 7/16} }, - tiles = {"itemframes_pedestal.png"}, - paramtype = "light", - groups = { cracky=3 }, - sounds = default.node_sound_defaults(), - after_place_node = function(pos, placer, itemstack) - local meta = minetest.get_meta(pos) - meta:set_string("owner",placer:get_player_name()) - meta:set_string("infotext","Pedestal (owned by "..placer:get_player_name()..")") - end, - on_rightclick = function(pos, node, clicker, itemstack) - if not itemstack then return end - local meta = minetest.get_meta(pos) - if clicker:get_player_name() == meta:get_string("owner") then - drop_item(pos,node) - local s = itemstack:take_item() - meta:set_string("item",s:to_string()) - update_item(pos,node) - end - return itemstack - end, - on_punch = function(pos,node,puncher) - local meta = minetest.get_meta(pos) - if puncher:get_player_name() == meta:get_string("owner") then - drop_item(pos,node) - end - end, - can_dig = function(pos,player) - - local meta = minetest.get_meta(pos) - return player:get_player_name() == meta:get_string("owner") - end, - after_destruct = remove_item, +minetest.register_craft({ + output = 'itemframes:frame', + recipe = { + {'group:stick', 'group:stick', 'group:stick'}, + {'group:stick', 'default:paper', 'group:stick'}, + {'group:stick', 'group:stick', 'group:stick'}, + } }) --- automatically restore entities lost from frames/pedestals --- due to /clearobjects or similar +function itemframes.register_pedestal(subname, recipeitem, groups, images, description, sounds) + minetest.register_node("itemframes:pedestal_" .. subname, { + description = description, + drawtype = "nodebox", + tiles = images, + node_box = { type = "fixed", fixed = { + {-7/16, -8/16, -7/16, 7/16, -7/16, 7/16}, -- bottom plate + {-6/16, -7/16, -6/16, 6/16, -6/16, 6/16}, -- bottom plate (upper) + {-0.25, -6/16, -0.25, 0.25, 11/16, 0.25}, -- pillar + {-7/16, 11/16, -7/16, 7/16, 12/16, 7/16}, -- top plate + }}, + groups = groups, + sounds = sounds, + paramtype = "light", + after_place_node = function(pos, placer, itemstack) + local meta = minetest.env:get_meta(pos) + meta:set_string("owner",placer:get_player_name()) + meta:set_string("infotext","Pedestal (owned by "..placer:get_player_name()..")") + end, + on_rightclick = function(pos, node, clicker, itemstack) + if not itemstack then return end + local meta = minetest.env:get_meta(pos) + if clicker:get_player_name() == meta:get_string("owner") then + drop_item(pos,node) + local s = itemstack:take_item() + meta:set_string("item",s:to_string()) + update_item(pos,node) + end + return itemstack + end, + on_punch = function(pos,node,puncher) + local meta = minetest.env:get_meta(pos) + if puncher:get_player_name() == meta:get_string("owner") then + drop_item(pos,node) + end + end, + can_dig = function(pos,player) + local meta = minetest.env:get_meta(pos) + return player:get_player_name() == meta:get_string("owner") + end, + }) + + minetest.register_craft({ + output = 'itemframes:pedestal_' .. subname, + recipe = { + {recipeitem, recipeitem, recipeitem}, + {'', recipeitem, ''}, + {recipeitem, recipeitem, recipeitem}, + } + }) +end + +itemframes.register_pedestal("wood", "default:wood", + {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=3,pedestal=1}, + {"default_wood.png"}, + "Wooden Pedestal", + default.node_sound_wood_defaults() +) + +itemframes.register_pedestal("stone", "default:stone", + {cracky=3,pedestal=1}, + {"default_stone.png"}, + "Stone Pedestal", + default.node_sound_stone_defaults() +) + +itemframes.register_pedestal("cobble", "default:cobble", + {cracky=3,pedestal=1}, + {"default_cobble.png"}, + "Cobblestone Pedestal", + default.node_sound_stone_defaults() +) + +itemframes.register_pedestal("desert_stone", "default:desert_stone", + {cracky=3,pedestal=1}, + {"default_desert_stone.png"}, + "Desert Stone Pedestal", + default.node_sound_stone_defaults() +) + +itemframes.register_pedestal("desert_cobble", "default:desert_cobble", + {cracky=3,pedestal=1}, + {"default_desert_cobble.png"}, + "Desert Cobblestone Pedestal", + default.node_sound_stone_defaults() +) + +itemframes.register_pedestal("desert_stonebrick", "default:desert_stonebrick", + {cracky=3,pedestal=1}, + {"default_desert_stone_brick.png"}, + "Desert Stone Brick Pedestal", + default.node_sound_stone_defaults() +) + +itemframes.register_pedestal("brick", "default:brick", + {cracky=3,pedestal=1}, + {"default_brick.png"}, + "Brick Pedestal", + default.node_sound_stone_defaults() +) + +itemframes.register_pedestal("sandstone", "default:sandstone", + {crumbly=2,cracky=2,pedestal=1}, + {"default_sandstone.png"}, + "Sandstone Pedestal", + default.node_sound_stone_defaults() +) + +itemframes.register_pedestal("sandstonebrick", "default:sandstonebrick", + {crumbly=2,cracky=2,pedestal=1}, + {"default_sandstone_brick.png"}, + "Sandstone Brick Pedestal", + default.node_sound_stone_defaults() +) + +itemframes.register_pedestal("stonebrick", "default:stonebrick", + {cracky=3,pedestal=1}, + {"default_stone_brick.png"}, + "Stone Brick Pedestal", + default.node_sound_stone_defaults() +) + +-- automatically restore entities lost from +-- frames/pedestals due to /clearobjects or similar minetest.register_abm({ - nodenames = { "itemframes:frame", "itemframes:pedestal" }, + nodenames = {"itemframes:frame", "group:pedestal"}, interval = 15, chance = 1, action = function(pos, node, active_object_count, active_object_count_wider) @@ -198,21 +284,7 @@ minetest.register_abm({ end }) --- crafts - -minetest.register_craft({ - output = 'itemframes:frame', - recipe = { - {'default:stick', 'default:stick', 'default:stick'}, - {'default:stick', 'default:paper', 'default:stick'}, - {'default:stick', 'default:stick', 'default:stick'}, - } -}) -minetest.register_craft({ - output = 'itemframes:pedestal', - recipe = { - {'default:stone', 'default:stone', 'default:stone'}, - {'', 'default:stone', ''}, - {'default:stone', 'default:stone', 'default:stone'}, - } -}) +-- homedecor/itemframes -> itemframes::stone +-- minetest.register_alias("itemframes:pedestal","itemframes:pedestal_stone") +-- itemframes::stone -> homedecor/itemframes +minetest.register_alias("itemframes:pedestal_stone","itemframes:pedestal") diff --git a/mods/homedecor_modpack/itemframes/textures/itemframes_frame.png b/mods/homedecor_modpack/itemframes/textures/itemframes_frame.png index 5373c454d61e8abeecf06a65cba44bbc01416426..0c3df9df3313b06b4ed2774968bd9000b131bdb2 100644 GIT binary patch delta 271 zcmV+q0r384s{)WDe+h6%S#tmY3ljhU3ljkVnw%H_0013nR9JLFZ*6U5Zgc_CX>@2HM@dakWG-a~0002ANkl+ka7zd_c zhE4(dMMWq%CPExOGO-gXuySzR_v6I<-SMy|9X&f!N%<)`e-qJsz0q%RIiFZI)3jSb zygIj3yI4S~?uHZ_j^3?;yg zxqm+l35s7kh^9%aDa9Bts2XaIwbay{n2KR6?-%^b8Y-=!I!I|fy4v2Q$eUlR6G VO_u-L!vFvP2>?k&PDHLkV1i+ZY>)r| delta 74 zcmZ3@lrcfYMc>oKF+}5ha>v$CMNUJ8kJIK#cerRs>BZakvoFj(uwH6iddT4k*By#3 eDd>Kj*ut>8@vqG5-%;xrfWXt$&t;ucLK6Th%^isV