From 14f1efd240bb6b26c807a97e3ebc84ef066d49d9 Mon Sep 17 00:00:00 2001 From: Der1248 Date: Sun, 1 Mar 2020 14:48:20 +0100 Subject: [PATCH] Castrum 1.11.0 upload --- README.txt | 3 +- menu/Thumbs.db | Bin 28160 -> 28160 bytes mods/beds/README.txt | 6 +- mods/beds/beds.lua | 9 +- mods/beds/depends.txt | 2 - mods/beds/functions.lua | 39 +- mods/beds/init.lua | 9 +- mods/beds/locale/beds.de.tr | 8 + mods/beds/locale/beds.es.tr | 8 + mods/beds/locale/beds.fr.tr | 8 + mods/beds/locale/beds.it.tr | 4 + mods/beds/locale/template.txt | 8 + mods/beds/mod.conf | 3 + mods/binoculars/depends.txt | 2 - mods/binoculars/init.lua | 7 +- mods/binoculars/locale/binoculars.de.tr | 3 + mods/binoculars/locale/binoculars.es.tr | 3 + mods/binoculars/locale/binoculars.fr.tr | 3 + mods/binoculars/locale/binoculars.it.tr | 3 + mods/binoculars/locale/template.txt | 3 + mods/binoculars/mod.conf | 4 + mods/boats/depends.txt | 2 - mods/boats/init.lua | 11 +- mods/boats/locale/boats.de.tr | 4 + mods/boats/locale/boats.es.tr | 4 + mods/boats/locale/boats.fr.tr | 4 + mods/boats/locale/boats.it.tr | 4 + mods/boats/locale/template.txt | 4 + mods/boats/mod.conf | 3 + mods/bones/init.lua | 23 +- mods/bones/locale/bones.de.tr | 8 + mods/bones/locale/bones.es.tr | 8 + mods/bones/locale/bones.fr.tr | 8 + mods/bones/locale/bones.it.tr | 8 + mods/bones/locale/template.txt | 8 + mods/bones/mod.conf | 3 + mods/bucket/depends.txt | 2 - mods/bucket/init.lua | 25 +- mods/bucket/locale/bucket.de.tr | 5 + mods/bucket/locale/bucket.es.tr | 5 + mods/bucket/locale/bucket.fr.tr | 5 + mods/bucket/locale/bucket.it.tr | 5 + mods/bucket/locale/template.txt | 5 + mods/bucket/mod.conf | 3 + mods/butterflies/depends.txt | 2 - mods/butterflies/init.lua | 18 +- mods/butterflies/locale/butterflies.de.tr | 4 + mods/butterflies/locale/butterflies.es.tr | 4 + mods/butterflies/locale/butterflies.fr.tr | 4 + mods/butterflies/locale/butterflies.it.tr | 4 + mods/butterflies/locale/template.txt | 4 + mods/butterflies/mod.conf | 3 + mods/carts/cart_entity.lua | 7 +- mods/carts/depends.txt | 2 - mods/carts/init.lua | 5 + mods/carts/locale/carts.de.tr | 6 + mods/carts/locale/carts.es.tr | 6 + mods/carts/locale/carts.fr.tr | 6 + mods/carts/locale/carts.it.tr | 6 + mods/carts/locale/template.txt | 6 + mods/carts/mod.conf | 3 + mods/carts/rails.lua | 11 +- mods/castrum/bridge_status.lua | 121 +--- mods/castrum/buildings/Barracks.lua | 76 -- mods/castrum/buildings/Battleground.lua | 135 ---- mods/castrum/buildings/Bridge.lua | 93 --- mods/castrum/buildings/Bridge2.lua | 29 - mods/castrum/buildings/Cactusfarm.lua | 55 -- mods/castrum/buildings/Camp1.lua | 13 - mods/castrum/buildings/Camp2.lua | 13 - mods/castrum/buildings/Camp3.lua | 13 - mods/castrum/buildings/Cannon1.lua | 11 - mods/castrum/buildings/Cannon2.lua | 15 - mods/castrum/buildings/Cannon3.lua | 10 - mods/castrum/buildings/Farm.lua | 106 --- mods/castrum/buildings/Fountain.lua | 199 ------ mods/castrum/buildings/Home1.lua | 103 --- mods/castrum/buildings/Home2.lua | 93 --- mods/castrum/buildings/Home3.lua | 77 -- mods/castrum/buildings/Island_Barracks.lua | 86 --- .../castrum/buildings/Island_Battleground.lua | 42 -- mods/castrum/buildings/Island_Fountain.lua | 66 -- mods/castrum/buildings/Island_Home1.lua | 72 -- mods/castrum/buildings/Island_Home2.lua | 72 -- mods/castrum/buildings/Island_Pier.lua | 94 --- mods/castrum/buildings/Island_Pier2.lua | 53 -- mods/castrum/buildings/Island_Smithy.lua | 83 --- mods/castrum/buildings/Island_Walle.lua | 104 --- mods/castrum/buildings/Island_Walln.lua | 92 --- mods/castrum/buildings/Island_Walls.lua | 58 -- mods/castrum/buildings/Island_Wallw.lua | 104 --- mods/castrum/buildings/Lake.lua | 40 -- mods/castrum/buildings/Lake2.lua | 40 -- mods/castrum/buildings/Meadow.lua | 130 ---- mods/castrum/buildings/Mine.lua | 132 ---- mods/castrum/buildings/Moat_east.lua | 381 ---------- mods/castrum/buildings/Moat_north.lua | 239 ------- mods/castrum/buildings/Moat_south.lua | 251 ------- mods/castrum/buildings/Moat_west.lua | 240 ------- mods/castrum/buildings/Mountain_Fountain.lua | 51 -- mods/castrum/buildings/Mountain_Quarry.lua | 60 -- mods/castrum/buildings/Mountain_Smithy.lua | 92 --- mods/castrum/buildings/Pier.lua | 128 ---- mods/castrum/buildings/Quarry.lua | 141 ---- mods/castrum/buildings/Sail1.lua | 27 - mods/castrum/buildings/Sail2.lua | 24 - mods/castrum/buildings/Sandmine.lua | 115 --- mods/castrum/buildings/Ship1.lua | 159 ----- mods/castrum/buildings/Ship2.lua | 244 ------- mods/castrum/buildings/Smithy.lua | 128 ---- mods/castrum/buildings/Stable.lua | 102 --- mods/castrum/buildings/Tower1.lua | 497 ------------- mods/castrum/buildings/Tower2.lua | 498 ------------- mods/castrum/buildings/Tower3.lua | 497 ------------- mods/castrum/buildings/Tower4.lua | 502 ------------- mods/castrum/buildings/Tree.lua | 166 ----- mods/castrum/buildings/Wall_east.lua | 313 --------- mods/castrum/buildings/Wall_north.lua | 181 ----- mods/castrum/buildings/Wall_south.lua | 395 ----------- mods/castrum/buildings/Wall_west.lua | 302 -------- mods/castrum/config.txt | 10 +- mods/castrum/extra_items.lua | 349 ++++++++- mods/castrum/globalstep.lua | 661 +++++++----------- mods/castrum/init.lua | 73 +- mods/castrum/island_fight.lua | 161 ++++- mods/castrum/knight.lua | 30 +- mods/castrum/models/castrum_pirate_lv2.png | Bin 0 -> 2114 bytes mods/castrum/models/castrum_skeleton_lv2.png | Bin 0 -> 3890 bytes mods/castrum/nodes/Barracks.lua | 22 +- mods/castrum/nodes/Battleground.lua | 6 +- mods/castrum/nodes/Bridge.lua | 43 +- mods/castrum/nodes/Cactusfarm.lua | 6 +- mods/castrum/nodes/Camp1.lua | 6 +- mods/castrum/nodes/Camp2.lua | 6 +- mods/castrum/nodes/Camp3.lua | 6 +- mods/castrum/nodes/Cannon1.lua | 6 +- mods/castrum/nodes/Cannon2.lua | 6 +- mods/castrum/nodes/Cannon3.lua | 15 +- mods/castrum/nodes/Farm.lua | 20 +- mods/castrum/nodes/Fountain.lua | 40 +- mods/castrum/nodes/Home1.lua | 6 +- mods/castrum/nodes/Home2.lua | 6 +- mods/castrum/nodes/Home3.lua | 22 +- mods/castrum/nodes/Home4.lua | 95 +++ mods/castrum/nodes/Island_Barracks.lua | 6 +- mods/castrum/nodes/Island_Battleground.lua | 11 +- mods/castrum/nodes/Island_Fountain.lua | 6 +- mods/castrum/nodes/Island_Home1.lua | 6 +- mods/castrum/nodes/Island_Home2.lua | 6 +- mods/castrum/nodes/Island_Pier.lua | 6 +- mods/castrum/nodes/Island_Pier2.lua | 6 +- mods/castrum/nodes/Island_Ship1.lua | 6 +- mods/castrum/nodes/Island_Smithy.lua | 40 +- mods/castrum/nodes/Island_Walle.lua | 6 +- mods/castrum/nodes/Island_Walln.lua | 6 +- mods/castrum/nodes/Island_Walls.lua | 6 +- mods/castrum/nodes/Island_Wallw.lua | 6 +- mods/castrum/nodes/Lake.lua | 6 +- mods/castrum/nodes/Lake2.lua | 6 +- mods/castrum/nodes/Market.lua | 91 +++ mods/castrum/nodes/Meadow.lua | 21 +- mods/castrum/nodes/Mine.lua | 6 +- mods/castrum/nodes/Moat_east.lua | 6 +- mods/castrum/nodes/Moat_north.lua | 6 +- mods/castrum/nodes/Moat_south.lua | 8 +- mods/castrum/nodes/Moat_west.lua | 6 +- mods/castrum/nodes/Mountain_Fountain.lua | 6 +- mods/castrum/nodes/Mountain_Quarry.lua | 6 +- mods/castrum/nodes/Mountain_Smithy.lua | 17 +- mods/castrum/nodes/Pier.lua | 21 +- mods/castrum/nodes/Quarry.lua | 6 +- mods/castrum/nodes/Sail1.lua | 20 +- mods/castrum/nodes/Sail2.lua | 20 +- mods/castrum/nodes/Sandmine.lua | 6 +- mods/castrum/nodes/Ship1.lua | 6 +- mods/castrum/nodes/Ship2.lua | 6 +- mods/castrum/nodes/Smithy.lua | 50 +- mods/castrum/nodes/Stable.lua | 6 +- mods/castrum/nodes/Tower1.lua | 38 +- mods/castrum/nodes/Tower2.lua | 38 +- mods/castrum/nodes/Tower3.lua | 38 +- mods/castrum/nodes/Tower4.lua | 38 +- mods/castrum/nodes/Tree.lua | 6 +- mods/castrum/nodes/Wall_east.lua | 38 +- mods/castrum/nodes/Wall_north.lua | 38 +- mods/castrum/nodes/Wall_south.lua | 38 +- mods/castrum/nodes/Wall_west.lua | 38 +- mods/castrum/on_join.lua | 336 +++------ mods/castrum/on_new.lua | 2 +- mods/castrum/pier_ship.lua | 56 ++ mods/castrum/pirate.lua | 7 +- .../schematics/Barracks/Barracks_0.mts | Bin 0 -> 46 bytes .../schematics/Barracks/Barracks_1.mts | Bin 0 -> 66 bytes .../schematics/Barracks/Barracks_2.mts | Bin 0 -> 75 bytes .../schematics/Barracks/Barracks_3.mts | Bin 0 -> 82 bytes .../schematics/Barracks/Barracks_4.mts | Bin 0 -> 85 bytes .../schematics/Barracks/Barracks_5.mts | Bin 0 -> 86 bytes .../schematics/Barracks/Barracks_6.mts | Bin 0 -> 143 bytes .../schematics/Barracks/Barracks_7.mts | Bin 0 -> 148 bytes .../schematics/Barracks/Barracks_8.mts | Bin 0 -> 150 bytes .../Battleground/Battleground_0.mts | Bin 0 -> 41 bytes .../Battleground/Battleground_1.mts | Bin 0 -> 62 bytes .../Battleground/Battleground_2.mts | Bin 0 -> 67 bytes .../Battleground/Battleground_3.mts | Bin 0 -> 77 bytes .../Battleground/Battleground_4.mts | Bin 0 -> 125 bytes .../Battleground/Battleground_5.mts | Bin 0 -> 152 bytes .../Battleground/Battleground_6.mts | Bin 0 -> 130 bytes .../Battleground/Battleground_7.mts | Bin 0 -> 159 bytes .../Battleground/Battleground_8.mts | Bin 0 -> 132 bytes .../Battleground/Battleground_9.mts | Bin 0 -> 166 bytes mods/castrum/schematics/Bridge1/Bridge1_0.mts | Bin 0 -> 78 bytes .../castrum/schematics/Bridge1/Bridge1_00.mts | Bin 0 -> 38 bytes mods/castrum/schematics/Bridge1/Bridge1_1.mts | Bin 0 -> 95 bytes .../castrum/schematics/Bridge1/Bridge1_10.mts | Bin 0 -> 73 bytes .../castrum/schematics/Bridge1/Bridge1_11.mts | Bin 0 -> 72 bytes .../castrum/schematics/Bridge1/Bridge1_12.mts | Bin 0 -> 74 bytes mods/castrum/schematics/Bridge1/Bridge1_2.mts | Bin 0 -> 95 bytes mods/castrum/schematics/Bridge1/Bridge1_3.mts | Bin 0 -> 94 bytes mods/castrum/schematics/Bridge1/Bridge1_4.mts | Bin 0 -> 94 bytes mods/castrum/schematics/Bridge1/Bridge1_5.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Bridge1/Bridge1_6.mts | Bin 0 -> 97 bytes mods/castrum/schematics/Bridge1/Bridge1_7.mts | Bin 0 -> 97 bytes mods/castrum/schematics/Bridge1/Bridge1_8.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Bridge1/Bridge1_9.mts | Bin 0 -> 67 bytes mods/castrum/schematics/Bridge2/Bridge2_0.mts | Bin 0 -> 46 bytes .../castrum/schematics/Bridge2/Bridge2_10.mts | Bin 0 -> 82 bytes .../castrum/schematics/Bridge2/Bridge2_11.mts | Bin 0 -> 81 bytes .../castrum/schematics/Bridge2/Bridge2_12.mts | Bin 0 -> 83 bytes mods/castrum/schematics/Bridge2/Bridge2_9.mts | Bin 0 -> 76 bytes .../schematics/Cactusfarm/Cactusfarm_0.mts | Bin 0 -> 116 bytes .../schematics/Cactusfarm/Cactusfarm_1.mts | Bin 0 -> 182 bytes .../schematics/Cactusfarm/Cactusfarm_2.mts | Bin 0 -> 183 bytes .../schematics/Cactusfarm/Cactusfarm_3.mts | Bin 0 -> 190 bytes .../schematics/Cactusfarm/Cactusfarm_4.mts | Bin 0 -> 192 bytes .../schematics/Cactusfarm/Cactusfarm_5.mts | Bin 0 -> 202 bytes mods/castrum/schematics/Camp1/Camp1_0.mts | Bin 0 -> 38 bytes mods/castrum/schematics/Camp1/Camp1_1.mts | Bin 0 -> 56 bytes mods/castrum/schematics/Camp2/Camp2_0.mts | Bin 0 -> 38 bytes mods/castrum/schematics/Camp2/Camp2_1.mts | Bin 0 -> 56 bytes mods/castrum/schematics/Camp3/Camp3_0.mts | Bin 0 -> 38 bytes mods/castrum/schematics/Camp3/Camp3_1.mts | Bin 0 -> 56 bytes mods/castrum/schematics/Cannon1/Cannon1_0.mts | Bin 0 -> 32 bytes mods/castrum/schematics/Cannon1/Cannon1_1.mts | Bin 0 -> 47 bytes mods/castrum/schematics/Cannon1/Cannon1_2.mts | Bin 0 -> 47 bytes mods/castrum/schematics/Cannon2/Cannon2_0.mts | Bin 0 -> 32 bytes mods/castrum/schematics/Cannon2/Cannon2_1.mts | Bin 0 -> 47 bytes mods/castrum/schematics/Cannon2/Cannon2_2.mts | Bin 0 -> 47 bytes mods/castrum/schematics/Cannon3/Cannon3_0.mts | Bin 0 -> 32 bytes mods/castrum/schematics/Cannon3/Cannon3_1.mts | Bin 0 -> 47 bytes mods/castrum/schematics/Cannon3/Cannon3_2.mts | Bin 0 -> 47 bytes mods/castrum/schematics/Farm/Farm_0.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Farm/Farm_1.mts | Bin 0 -> 197 bytes mods/castrum/schematics/Farm/Farm_2.mts | Bin 0 -> 211 bytes mods/castrum/schematics/Farm/Farm_3.mts | Bin 0 -> 178 bytes .../schematics/Fountain/Fountain_0.mts | Bin 0 -> 59 bytes .../schematics/Fountain/Fountain_1.mts | Bin 0 -> 92 bytes .../schematics/Fountain/Fountain_10.mts | Bin 0 -> 284 bytes .../schematics/Fountain/Fountain_2.mts | Bin 0 -> 106 bytes .../schematics/Fountain/Fountain_3.mts | Bin 0 -> 126 bytes .../schematics/Fountain/Fountain_4.mts | Bin 0 -> 272 bytes .../schematics/Fountain/Fountain_5.mts | Bin 0 -> 310 bytes .../schematics/Fountain/Fountain_6.mts | Bin 0 -> 277 bytes .../schematics/Fountain/Fountain_7.mts | Bin 0 -> 317 bytes .../schematics/Fountain/Fountain_8.mts | Bin 0 -> 279 bytes .../schematics/Fountain/Fountain_9.mts | Bin 0 -> 324 bytes mods/castrum/schematics/Home1/Home1_0.mts | Bin 0 -> 50 bytes mods/castrum/schematics/Home1/Home1_1.mts | Bin 0 -> 98 bytes mods/castrum/schematics/Home1/Home1_2.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Home1/Home1_3.mts | Bin 0 -> 152 bytes mods/castrum/schematics/Home1/Home1_4.mts | Bin 0 -> 153 bytes mods/castrum/schematics/Home1/Home1_5.mts | Bin 0 -> 161 bytes mods/castrum/schematics/Home1/Home1_6.mts | Bin 0 -> 188 bytes mods/castrum/schematics/Home1/Home1_7.mts | Bin 0 -> 194 bytes mods/castrum/schematics/Home1/Home1_8.mts | Bin 0 -> 193 bytes mods/castrum/schematics/Home1/Home1_9.mts | Bin 0 -> 195 bytes mods/castrum/schematics/Home2/Home2_0.mts | Bin 0 -> 50 bytes mods/castrum/schematics/Home2/Home2_1.mts | Bin 0 -> 98 bytes mods/castrum/schematics/Home2/Home2_2.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Home2/Home2_3.mts | Bin 0 -> 152 bytes mods/castrum/schematics/Home2/Home2_4.mts | Bin 0 -> 153 bytes mods/castrum/schematics/Home2/Home2_5.mts | Bin 0 -> 161 bytes mods/castrum/schematics/Home2/Home2_6.mts | Bin 0 -> 187 bytes mods/castrum/schematics/Home2/Home2_7.mts | Bin 0 -> 193 bytes mods/castrum/schematics/Home2/Home2_8.mts | Bin 0 -> 192 bytes mods/castrum/schematics/Home3/Home3_0.mts | Bin 0 -> 50 bytes mods/castrum/schematics/Home3/Home3_1.mts | Bin 0 -> 95 bytes mods/castrum/schematics/Home3/Home3_2.mts | Bin 0 -> 121 bytes mods/castrum/schematics/Home3/Home3_3.mts | Bin 0 -> 147 bytes mods/castrum/schematics/Home3/Home3_4.mts | Bin 0 -> 150 bytes mods/castrum/schematics/Home3/Home3_5.mts | Bin 0 -> 158 bytes mods/castrum/schematics/Home3/Home3_6.mts | Bin 0 -> 184 bytes mods/castrum/schematics/Home3/Home3_7.mts | Bin 0 -> 190 bytes mods/castrum/schematics/Home3/Home3_8.mts | Bin 0 -> 189 bytes mods/castrum/schematics/Home4/Home4_0.mts | Bin 0 -> 50 bytes mods/castrum/schematics/Home4/Home4_1.mts | Bin 0 -> 95 bytes mods/castrum/schematics/Home4/Home4_2.mts | Bin 0 -> 121 bytes mods/castrum/schematics/Home4/Home4_3.mts | Bin 0 -> 147 bytes mods/castrum/schematics/Home4/Home4_4.mts | Bin 0 -> 150 bytes mods/castrum/schematics/Home4/Home4_5.mts | Bin 0 -> 158 bytes mods/castrum/schematics/Home4/Home4_6.mts | Bin 0 -> 184 bytes .../Island_Barracks/Island_Barracks_0.mts | Bin 0 -> 53 bytes .../Island_Barracks/Island_Barracks_1.mts | Bin 0 -> 79 bytes .../Island_Barracks/Island_Barracks_2.mts | Bin 0 -> 93 bytes .../Island_Barracks/Island_Barracks_3.mts | Bin 0 -> 100 bytes .../Island_Barracks/Island_Barracks_4.mts | Bin 0 -> 107 bytes .../Island_Barracks/Island_Barracks_5.mts | Bin 0 -> 114 bytes .../Island_Barracks/Island_Barracks_6.mts | Bin 0 -> 137 bytes .../Island_Battleground_0.mts | Bin 0 -> 41 bytes .../Island_Battleground_1.mts | Bin 0 -> 65 bytes .../Island_Battleground_2.mts | Bin 0 -> 72 bytes .../Island_Battleground_3.mts | Bin 0 -> 78 bytes .../Island_Battleground_4.mts | Bin 0 -> 129 bytes .../Island_Fountain/Island_Fountain_0.mts | Bin 0 -> 46 bytes .../Island_Fountain/Island_Fountain_1.mts | Bin 0 -> 81 bytes .../Island_Fountain/Island_Fountain_2.mts | Bin 0 -> 93 bytes .../Island_Fountain/Island_Fountain_3.mts | Bin 0 -> 101 bytes .../Island_Fountain/Island_Fountain_4.mts | Bin 0 -> 200 bytes .../Island_Fountain/Island_Fountain_5.mts | Bin 0 -> 224 bytes .../Island_Home1/Island_Home1_0.mts | Bin 0 -> 52 bytes .../Island_Home1/Island_Home1_1.mts | Bin 0 -> 86 bytes .../Island_Home1/Island_Home1_2.mts | Bin 0 -> 119 bytes .../Island_Home1/Island_Home1_3.mts | Bin 0 -> 121 bytes .../Island_Home1/Island_Home1_4.mts | Bin 0 -> 127 bytes .../Island_Home1/Island_Home1_5.mts | Bin 0 -> 153 bytes .../Island_Home2/Island_Home2_0.mts | Bin 0 -> 52 bytes .../Island_Home2/Island_Home2_1.mts | Bin 0 -> 86 bytes .../Island_Home2/Island_Home2_2.mts | Bin 0 -> 119 bytes .../Island_Home2/Island_Home2_3.mts | Bin 0 -> 121 bytes .../Island_Home2/Island_Home2_4.mts | Bin 0 -> 127 bytes .../Island_Home2/Island_Home2_5.mts | Bin 0 -> 153 bytes .../schematics/Island_Pier/Island_Pier_0.mts | Bin 0 -> 75 bytes .../schematics/Island_Pier/Island_Pier_1.mts | Bin 0 -> 99 bytes .../schematics/Island_Pier/Island_Pier_2.mts | Bin 0 -> 100 bytes .../schematics/Island_Pier/Island_Pier_3.mts | Bin 0 -> 100 bytes .../schematics/Island_Pier/Island_Pier_4.mts | Bin 0 -> 99 bytes .../schematics/Island_Pier/Island_Pier_5.mts | Bin 0 -> 100 bytes .../schematics/Island_Pier/Island_Pier_6.mts | Bin 0 -> 101 bytes .../schematics/Island_Pier/Island_Pier_7.mts | Bin 0 -> 134 bytes .../schematics/Island_Pier/Island_Pier_8.mts | Bin 0 -> 141 bytes .../Island_Pier2/Island_Pier2_0.mts | Bin 0 -> 69 bytes .../Island_Pier2/Island_Pier2_1.mts | Bin 0 -> 95 bytes .../Island_Pier2/Island_Pier2_2.mts | Bin 0 -> 97 bytes .../Island_Pier2/Island_Pier2_3.mts | Bin 0 -> 117 bytes .../Island_Pier2/Island_Pier2_4.mts | Bin 0 -> 123 bytes .../Island_Smithy/Island_Smithy_0.mts | Bin 0 -> 53 bytes .../Island_Smithy/Island_Smithy_1.mts | Bin 0 -> 115 bytes .../Island_Smithy/Island_Smithy_2.mts | Bin 0 -> 132 bytes .../Island_Smithy/Island_Smithy_3.mts | Bin 0 -> 182 bytes .../Island_Smithy/Island_Smithy_4.mts | Bin 0 -> 185 bytes .../Island_Smithy/Island_Smithy_5.mts | Bin 0 -> 192 bytes .../Island_Smithy/Island_Smithy_6.mts | Bin 0 -> 217 bytes .../Island_Walle/Island_Walle_0.mts | Bin 0 -> 54 bytes .../Island_Walle/Island_Walle_1.mts | Bin 0 -> 76 bytes .../Island_Walle/Island_Walle_2.mts | Bin 0 -> 76 bytes .../Island_Walle/Island_Walle_3.mts | Bin 0 -> 76 bytes .../Island_Walle/Island_Walle_4.mts | Bin 0 -> 76 bytes .../Island_Walle/Island_Walle_5.mts | Bin 0 -> 76 bytes .../Island_Walle/Island_Walle_6.mts | Bin 0 -> 76 bytes .../Island_Walle/Island_Walle_7.mts | Bin 0 -> 79 bytes .../Island_Walle/Island_Walle_8.mts | Bin 0 -> 111 bytes .../Island_Walln/Island_Walln_0.mts | Bin 0 -> 54 bytes .../Island_Walln/Island_Walln_1.mts | Bin 0 -> 78 bytes .../Island_Walln/Island_Walln_2.mts | Bin 0 -> 81 bytes .../Island_Walln/Island_Walln_3.mts | Bin 0 -> 80 bytes .../Island_Walln/Island_Walln_4.mts | Bin 0 -> 81 bytes .../Island_Walln/Island_Walln_5.mts | Bin 0 -> 82 bytes .../Island_Walln/Island_Walln_6.mts | Bin 0 -> 83 bytes .../Island_Walln/Island_Walln_7.mts | Bin 0 -> 83 bytes .../Island_Walln/Island_Walln_8.mts | Bin 0 -> 133 bytes .../Island_Walls/Island_Walls_0.mts | Bin 0 -> 54 bytes .../Island_Walls/Island_Walls_1.mts | Bin 0 -> 75 bytes .../Island_Walls/Island_Walls_2.mts | Bin 0 -> 75 bytes .../Island_Walls/Island_Walls_3.mts | Bin 0 -> 75 bytes .../Island_Walls/Island_Walls_4.mts | Bin 0 -> 75 bytes .../Island_Walls/Island_Walls_5.mts | Bin 0 -> 75 bytes .../Island_Walls/Island_Walls_6.mts | Bin 0 -> 75 bytes .../Island_Walls/Island_Walls_7.mts | Bin 0 -> 75 bytes .../Island_Walls/Island_Walls_8.mts | Bin 0 -> 108 bytes .../Island_Wallw/Island_Wallw_0.mts | Bin 0 -> 54 bytes .../Island_Wallw/Island_Wallw_1.mts | Bin 0 -> 76 bytes .../Island_Wallw/Island_Wallw_2.mts | Bin 0 -> 76 bytes .../Island_Wallw/Island_Wallw_3.mts | Bin 0 -> 76 bytes .../Island_Wallw/Island_Wallw_4.mts | Bin 0 -> 76 bytes .../Island_Wallw/Island_Wallw_5.mts | Bin 0 -> 76 bytes .../Island_Wallw/Island_Wallw_6.mts | Bin 0 -> 76 bytes .../Island_Wallw/Island_Wallw_7.mts | Bin 0 -> 79 bytes .../Island_Wallw/Island_Wallw_8.mts | Bin 0 -> 111 bytes mods/castrum/schematics/Lake/Lake_0.mts | Bin 0 -> 101 bytes mods/castrum/schematics/Lake/Lake_1.mts | Bin 0 -> 151 bytes mods/castrum/schematics/Lake/Lake_2.mts | Bin 0 -> 156 bytes mods/castrum/schematics/Lake/Lake_3.mts | Bin 0 -> 160 bytes mods/castrum/schematics/Lake/Lake_4.mts | Bin 0 -> 156 bytes mods/castrum/schematics/Lake2/Lake2_0.mts | Bin 0 -> 101 bytes mods/castrum/schematics/Lake2/Lake2_1.mts | Bin 0 -> 158 bytes mods/castrum/schematics/Lake2/Lake2_2.mts | Bin 0 -> 163 bytes mods/castrum/schematics/Lake2/Lake2_3.mts | Bin 0 -> 167 bytes mods/castrum/schematics/Lake2/Lake2_4.mts | Bin 0 -> 163 bytes mods/castrum/schematics/Market/Market_0.mts | Bin 0 -> 72 bytes mods/castrum/schematics/Market/Market_1.mts | Bin 0 -> 42 bytes mods/castrum/schematics/Meadow/Meadow_0.mts | Bin 0 -> 110 bytes mods/castrum/schematics/Meadow/Meadow_1.mts | Bin 0 -> 114 bytes mods/castrum/schematics/Meadow/Meadow_10.mts | Bin 0 -> 362 bytes mods/castrum/schematics/Meadow/Meadow_2.mts | Bin 0 -> 118 bytes mods/castrum/schematics/Meadow/Meadow_3.mts | Bin 0 -> 125 bytes mods/castrum/schematics/Meadow/Meadow_4.mts | Bin 0 -> 219 bytes mods/castrum/schematics/Meadow/Meadow_5.mts | Bin 0 -> 250 bytes mods/castrum/schematics/Meadow/Meadow_6.mts | Bin 0 -> 252 bytes mods/castrum/schematics/Meadow/Meadow_7.mts | Bin 0 -> 253 bytes mods/castrum/schematics/Meadow/Meadow_8.mts | Bin 0 -> 229 bytes mods/castrum/schematics/Meadow/Meadow_9.mts | Bin 0 -> 323 bytes mods/castrum/schematics/Mine/Mine_0.mts | Bin 0 -> 47 bytes mods/castrum/schematics/Mine/Mine_1.mts | Bin 0 -> 106 bytes mods/castrum/schematics/Mine/Mine_2.mts | Bin 0 -> 137 bytes mods/castrum/schematics/Mine/Mine_3.mts | Bin 0 -> 175 bytes mods/castrum/schematics/Mine/Mine_4.mts | Bin 0 -> 200 bytes mods/castrum/schematics/Mine/Mine_5.mts | Bin 0 -> 265 bytes mods/castrum/schematics/Mine/Mine_6.mts | Bin 0 -> 278 bytes mods/castrum/schematics/Moate/Moate_0.mts | Bin 0 -> 125 bytes mods/castrum/schematics/Moate/Moate_1.mts | Bin 0 -> 135 bytes mods/castrum/schematics/Moate/Moate_10.mts | Bin 0 -> 107 bytes mods/castrum/schematics/Moate/Moate_11.mts | Bin 0 -> 106 bytes mods/castrum/schematics/Moate/Moate_12.mts | Bin 0 -> 106 bytes mods/castrum/schematics/Moate/Moate_2.mts | Bin 0 -> 138 bytes mods/castrum/schematics/Moate/Moate_3.mts | Bin 0 -> 140 bytes mods/castrum/schematics/Moate/Moate_4.mts | Bin 0 -> 145 bytes mods/castrum/schematics/Moate/Moate_5.mts | Bin 0 -> 114 bytes mods/castrum/schematics/Moate/Moate_6.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Moate/Moate_7.mts | Bin 0 -> 110 bytes mods/castrum/schematics/Moate/Moate_8.mts | Bin 0 -> 106 bytes mods/castrum/schematics/Moate/Moate_9.mts | Bin 0 -> 67 bytes mods/castrum/schematics/Moatn/Moatn_0.mts | Bin 0 -> 144 bytes mods/castrum/schematics/Moatn/Moatn_1.mts | Bin 0 -> 150 bytes mods/castrum/schematics/Moatn/Moatn_10.mts | Bin 0 -> 125 bytes mods/castrum/schematics/Moatn/Moatn_11.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Moatn/Moatn_12.mts | Bin 0 -> 123 bytes mods/castrum/schematics/Moatn/Moatn_2.mts | Bin 0 -> 152 bytes mods/castrum/schematics/Moatn/Moatn_3.mts | Bin 0 -> 155 bytes mods/castrum/schematics/Moatn/Moatn_4.mts | Bin 0 -> 157 bytes mods/castrum/schematics/Moatn/Moatn_5.mts | Bin 0 -> 128 bytes mods/castrum/schematics/Moatn/Moatn_6.mts | Bin 0 -> 120 bytes mods/castrum/schematics/Moatn/Moatn_7.mts | Bin 0 -> 110 bytes mods/castrum/schematics/Moatn/Moatn_8.mts | Bin 0 -> 100 bytes mods/castrum/schematics/Moatn/Moatn_9.mts | Bin 0 -> 71 bytes mods/castrum/schematics/Moats/Moats_0.mts | Bin 0 -> 144 bytes mods/castrum/schematics/Moats/Moats_1.mts | Bin 0 -> 150 bytes mods/castrum/schematics/Moats/Moats_10.mts | Bin 0 -> 125 bytes mods/castrum/schematics/Moats/Moats_11.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Moats/Moats_12.mts | Bin 0 -> 192 bytes mods/castrum/schematics/Moats/Moats_2.mts | Bin 0 -> 152 bytes mods/castrum/schematics/Moats/Moats_3.mts | Bin 0 -> 155 bytes mods/castrum/schematics/Moats/Moats_4.mts | Bin 0 -> 157 bytes mods/castrum/schematics/Moats/Moats_5.mts | Bin 0 -> 128 bytes mods/castrum/schematics/Moats/Moats_6.mts | Bin 0 -> 120 bytes mods/castrum/schematics/Moats/Moats_7.mts | Bin 0 -> 110 bytes mods/castrum/schematics/Moats/Moats_8.mts | Bin 0 -> 100 bytes mods/castrum/schematics/Moats/Moats_9.mts | Bin 0 -> 71 bytes mods/castrum/schematics/Moatw/Moatw_0.mts | Bin 0 -> 125 bytes mods/castrum/schematics/Moatw/Moatw_1.mts | Bin 0 -> 135 bytes mods/castrum/schematics/Moatw/Moatw_10.mts | Bin 0 -> 107 bytes mods/castrum/schematics/Moatw/Moatw_11.mts | Bin 0 -> 106 bytes mods/castrum/schematics/Moatw/Moatw_12.mts | Bin 0 -> 106 bytes mods/castrum/schematics/Moatw/Moatw_2.mts | Bin 0 -> 138 bytes mods/castrum/schematics/Moatw/Moatw_3.mts | Bin 0 -> 140 bytes mods/castrum/schematics/Moatw/Moatw_4.mts | Bin 0 -> 145 bytes mods/castrum/schematics/Moatw/Moatw_5.mts | Bin 0 -> 114 bytes mods/castrum/schematics/Moatw/Moatw_6.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Moatw/Moatw_7.mts | Bin 0 -> 110 bytes mods/castrum/schematics/Moatw/Moatw_8.mts | Bin 0 -> 106 bytes mods/castrum/schematics/Moatw/Moatw_9.mts | Bin 0 -> 67 bytes .../Mountain_Fountain/Mountain_Fountain_0.mts | Bin 0 -> 41 bytes .../Mountain_Fountain/Mountain_Fountain_1.mts | Bin 0 -> 74 bytes .../Mountain_Fountain/Mountain_Fountain_2.mts | Bin 0 -> 79 bytes .../Mountain_Fountain/Mountain_Fountain_3.mts | Bin 0 -> 163 bytes .../Mountain_Fountain/Mountain_Fountain_4.mts | Bin 0 -> 192 bytes .../Mountain_Quarry/Mountain_Quarry_0.mts | Bin 0 -> 184 bytes .../Mountain_Quarry/Mountain_Quarry_1.mts | Bin 0 -> 211 bytes .../Mountain_Quarry/Mountain_Quarry_2.mts | Bin 0 -> 214 bytes .../Mountain_Smithy/Mountain_Smithy_0.mts | Bin 0 -> 53 bytes .../Mountain_Smithy/Mountain_Smithy_1.mts | Bin 0 -> 117 bytes .../Mountain_Smithy/Mountain_Smithy_2.mts | Bin 0 -> 136 bytes .../Mountain_Smithy/Mountain_Smithy_3.mts | Bin 0 -> 188 bytes .../Mountain_Smithy/Mountain_Smithy_4.mts | Bin 0 -> 194 bytes .../Mountain_Smithy/Mountain_Smithy_5.mts | Bin 0 -> 199 bytes .../Mountain_Smithy/Mountain_Smithy_6.mts | Bin 0 -> 225 bytes mods/castrum/schematics/Pier/Pier_0.mts | Bin 0 -> 71 bytes mods/castrum/schematics/Pier/Pier_1.mts | Bin 0 -> 95 bytes mods/castrum/schematics/Pier/Pier_2.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Pier/Pier_3.mts | Bin 0 -> 97 bytes mods/castrum/schematics/Pier/Pier_4.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Pier/Pier_5.mts | Bin 0 -> 106 bytes mods/castrum/schematics/Pier/Pier_6.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Pier/Pier_7.mts | Bin 0 -> 111 bytes mods/castrum/schematics/Pier/Pier_8.mts | Bin 0 -> 113 bytes mods/castrum/schematics/Pier/Pier_c0.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Pier/Pier_c8.mts | Bin 0 -> 128 bytes mods/castrum/schematics/Pier/Pier_i0.mts | Bin 0 -> 121 bytes mods/castrum/schematics/Pier/Pier_i6.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Pier/Pier_i7.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Pier/Pier_i8.mts | Bin 0 -> 128 bytes mods/castrum/schematics/Pier/Pier_m0.mts | Bin 0 -> 128 bytes mods/castrum/schematics/Pier/Pier_m7.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Pier/Pier_m8.mts | Bin 0 -> 151 bytes mods/castrum/schematics/Quarry/Quarry_0.mts | Bin 0 -> 98 bytes mods/castrum/schematics/Quarry/Quarry_1.mts | Bin 0 -> 129 bytes mods/castrum/schematics/Quarry/Quarry_2.mts | Bin 0 -> 164 bytes mods/castrum/schematics/Quarry/Quarry_3.mts | Bin 0 -> 189 bytes mods/castrum/schematics/Quarry/Quarry_4.mts | Bin 0 -> 219 bytes mods/castrum/schematics/Quarry/Quarry_5.mts | Bin 0 -> 227 bytes mods/castrum/schematics/Quarry/Quarry_6.mts | Bin 0 -> 224 bytes mods/castrum/schematics/Sail1/Sail1_0.mts | Bin 0 -> 42 bytes mods/castrum/schematics/Sail1/Sail1_1.mts | Bin 0 -> 64 bytes mods/castrum/schematics/Sail1/Sail1_2.mts | Bin 0 -> 63 bytes mods/castrum/schematics/Sail1/Sail1_3.mts | Bin 0 -> 65 bytes mods/castrum/schematics/Sail2/Sail2_0.mts | Bin 0 -> 40 bytes mods/castrum/schematics/Sail2/Sail2_1.mts | Bin 0 -> 62 bytes mods/castrum/schematics/Sail2/Sail2_2.mts | Bin 0 -> 61 bytes mods/castrum/schematics/Sail2/Sail2_3.mts | Bin 0 -> 63 bytes .../schematics/Sandmine/Sandmine_0.mts | Bin 0 -> 176 bytes .../schematics/Sandmine/Sandmine_1.mts | Bin 0 -> 207 bytes .../schematics/Sandmine/Sandmine_2.mts | Bin 0 -> 248 bytes .../schematics/Sandmine/Sandmine_3.mts | Bin 0 -> 273 bytes .../schematics/Sandmine/Sandmine_4.mts | Bin 0 -> 304 bytes mods/castrum/schematics/Sector/sector1.mts | Bin 0 -> 3590 bytes mods/castrum/schematics/Sector/sector2.mts | Bin 0 -> 36552 bytes mods/castrum/schematics/Sector/sector3.mts | Bin 0 -> 15919 bytes mods/castrum/schematics/Sector/sector4.mts | Bin 0 -> 22148 bytes mods/castrum/schematics/Sector/sector5.mts | Bin 0 -> 3863 bytes mods/castrum/schematics/Sector/sector6.mts | Bin 0 -> 1201 bytes mods/castrum/schematics/Ship1/Ship1_0.mts | Bin 0 -> 92 bytes mods/castrum/schematics/Ship1/Ship1_1.mts | Bin 0 -> 120 bytes mods/castrum/schematics/Ship1/Ship1_2.mts | Bin 0 -> 142 bytes mods/castrum/schematics/Ship1/Ship1_3.mts | Bin 0 -> 183 bytes mods/castrum/schematics/Ship1/Ship1_4.mts | Bin 0 -> 191 bytes mods/castrum/schematics/Ship1/Ship1_5.mts | Bin 0 -> 213 bytes mods/castrum/schematics/Ship1/Ship1_6.mts | Bin 0 -> 225 bytes mods/castrum/schematics/Ship1/Ship1_7.mts | Bin 0 -> 223 bytes mods/castrum/schematics/Ship1/Ship1_c0.mts | Bin 0 -> 235 bytes mods/castrum/schematics/Ship1/Ship1_i0.mts | Bin 0 -> 236 bytes mods/castrum/schematics/Ship1/Ship1_i6.mts | Bin 0 -> 248 bytes mods/castrum/schematics/Ship1/Ship1_i7.mts | Bin 0 -> 246 bytes mods/castrum/schematics/Ship1/Ship1_m0.mts | Bin 0 -> 225 bytes mods/castrum/schematics/Ship1/Ship1_m7.mts | Bin 0 -> 223 bytes mods/castrum/schematics/Ship2/Ship2_0.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Ship2/Ship2_1.mts | Bin 0 -> 132 bytes mods/castrum/schematics/Ship2/Ship2_10.mts | Bin 0 -> 340 bytes mods/castrum/schematics/Ship2/Ship2_11.mts | Bin 0 -> 349 bytes mods/castrum/schematics/Ship2/Ship2_12.mts | Bin 0 -> 370 bytes mods/castrum/schematics/Ship2/Ship2_13.mts | Bin 0 -> 368 bytes mods/castrum/schematics/Ship2/Ship2_14.mts | Bin 0 -> 529 bytes mods/castrum/schematics/Ship2/Ship2_2.mts | Bin 0 -> 146 bytes mods/castrum/schematics/Ship2/Ship2_3.mts | Bin 0 -> 161 bytes mods/castrum/schematics/Ship2/Ship2_4.mts | Bin 0 -> 179 bytes mods/castrum/schematics/Ship2/Ship2_5.mts | Bin 0 -> 207 bytes mods/castrum/schematics/Ship2/Ship2_6.mts | Bin 0 -> 218 bytes mods/castrum/schematics/Ship2/Ship2_7.mts | Bin 0 -> 222 bytes mods/castrum/schematics/Ship2/Ship2_8.mts | Bin 0 -> 271 bytes mods/castrum/schematics/Ship2/Ship2_9.mts | Bin 0 -> 301 bytes mods/castrum/schematics/Smithy/Smithy_0.mts | Bin 0 -> 53 bytes mods/castrum/schematics/Smithy/Smithy_1.mts | Bin 0 -> 107 bytes mods/castrum/schematics/Smithy/Smithy_2.mts | Bin 0 -> 125 bytes mods/castrum/schematics/Smithy/Smithy_3.mts | Bin 0 -> 179 bytes mods/castrum/schematics/Smithy/Smithy_4.mts | Bin 0 -> 185 bytes mods/castrum/schematics/Smithy/Smithy_5.mts | Bin 0 -> 191 bytes mods/castrum/schematics/Smithy/Smithy_6.mts | Bin 0 -> 215 bytes mods/castrum/schematics/Smithy/Smithy_7.mts | Bin 0 -> 225 bytes mods/castrum/schematics/Smithy/Smithy_8.mts | Bin 0 -> 229 bytes mods/castrum/schematics/Stable/Stable_0.mts | Bin 0 -> 52 bytes mods/castrum/schematics/Stable/Stable_1.mts | Bin 0 -> 74 bytes mods/castrum/schematics/Stable/Stable_2.mts | Bin 0 -> 80 bytes mods/castrum/schematics/Stable/Stable_3.mts | Bin 0 -> 80 bytes mods/castrum/schematics/Stable/Stable_4.mts | Bin 0 -> 89 bytes mods/castrum/schematics/Stable/Stable_5.mts | Bin 0 -> 89 bytes mods/castrum/schematics/Stable/Stable_6.mts | Bin 0 -> 148 bytes mods/castrum/schematics/Stable/Stable_7.mts | Bin 0 -> 224 bytes mods/castrum/schematics/Stable/Stable_8.mts | Bin 0 -> 242 bytes mods/castrum/schematics/Tower1/Tower1_0.mts | Bin 0 -> 74 bytes mods/castrum/schematics/Tower1/Tower1_1.mts | Bin 0 -> 121 bytes mods/castrum/schematics/Tower1/Tower1_10.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Tower1/Tower1_11.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Tower1/Tower1_12.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Tower1/Tower1_13.mts | Bin 0 -> 149 bytes mods/castrum/schematics/Tower1/Tower1_14.mts | Bin 0 -> 163 bytes mods/castrum/schematics/Tower1/Tower1_15.mts | Bin 0 -> 170 bytes mods/castrum/schematics/Tower1/Tower1_16.mts | Bin 0 -> 181 bytes mods/castrum/schematics/Tower1/Tower1_17.mts | Bin 0 -> 189 bytes mods/castrum/schematics/Tower1/Tower1_18.mts | Bin 0 -> 222 bytes mods/castrum/schematics/Tower1/Tower1_19.mts | Bin 0 -> 291 bytes mods/castrum/schematics/Tower1/Tower1_2.mts | Bin 0 -> 128 bytes mods/castrum/schematics/Tower1/Tower1_20.mts | Bin 0 -> 227 bytes mods/castrum/schematics/Tower1/Tower1_21.mts | Bin 0 -> 298 bytes mods/castrum/schematics/Tower1/Tower1_22.mts | Bin 0 -> 229 bytes mods/castrum/schematics/Tower1/Tower1_23.mts | Bin 0 -> 305 bytes mods/castrum/schematics/Tower1/Tower1_24.mts | Bin 0 -> 234 bytes mods/castrum/schematics/Tower1/Tower1_3.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Tower1/Tower1_4.mts | Bin 0 -> 128 bytes mods/castrum/schematics/Tower1/Tower1_5.mts | Bin 0 -> 131 bytes mods/castrum/schematics/Tower1/Tower1_6.mts | Bin 0 -> 125 bytes mods/castrum/schematics/Tower1/Tower1_7.mts | Bin 0 -> 125 bytes mods/castrum/schematics/Tower1/Tower1_8.mts | Bin 0 -> 122 bytes mods/castrum/schematics/Tower1/Tower1_9.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Tower2/Tower2_0.mts | Bin 0 -> 74 bytes mods/castrum/schematics/Tower2/Tower2_1.mts | Bin 0 -> 121 bytes mods/castrum/schematics/Tower2/Tower2_10.mts | Bin 0 -> 123 bytes mods/castrum/schematics/Tower2/Tower2_11.mts | Bin 0 -> 119 bytes mods/castrum/schematics/Tower2/Tower2_12.mts | Bin 0 -> 121 bytes mods/castrum/schematics/Tower2/Tower2_13.mts | Bin 0 -> 150 bytes mods/castrum/schematics/Tower2/Tower2_14.mts | Bin 0 -> 169 bytes mods/castrum/schematics/Tower2/Tower2_15.mts | Bin 0 -> 172 bytes mods/castrum/schematics/Tower2/Tower2_16.mts | Bin 0 -> 177 bytes mods/castrum/schematics/Tower2/Tower2_17.mts | Bin 0 -> 185 bytes mods/castrum/schematics/Tower2/Tower2_18.mts | Bin 0 -> 218 bytes mods/castrum/schematics/Tower2/Tower2_19.mts | Bin 0 -> 290 bytes mods/castrum/schematics/Tower2/Tower2_2.mts | Bin 0 -> 130 bytes mods/castrum/schematics/Tower2/Tower2_20.mts | Bin 0 -> 223 bytes mods/castrum/schematics/Tower2/Tower2_21.mts | Bin 0 -> 297 bytes mods/castrum/schematics/Tower2/Tower2_22.mts | Bin 0 -> 225 bytes mods/castrum/schematics/Tower2/Tower2_23.mts | Bin 0 -> 304 bytes mods/castrum/schematics/Tower2/Tower2_24.mts | Bin 0 -> 230 bytes mods/castrum/schematics/Tower2/Tower2_3.mts | Bin 0 -> 129 bytes mods/castrum/schematics/Tower2/Tower2_4.mts | Bin 0 -> 130 bytes mods/castrum/schematics/Tower2/Tower2_5.mts | Bin 0 -> 131 bytes mods/castrum/schematics/Tower2/Tower2_6.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Tower2/Tower2_7.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Tower2/Tower2_8.mts | Bin 0 -> 122 bytes mods/castrum/schematics/Tower2/Tower2_9.mts | Bin 0 -> 122 bytes mods/castrum/schematics/Tower3/Tower3_0.mts | Bin 0 -> 74 bytes mods/castrum/schematics/Tower3/Tower3_1.mts | Bin 0 -> 124 bytes mods/castrum/schematics/Tower3/Tower3_10.mts | Bin 0 -> 134 bytes mods/castrum/schematics/Tower3/Tower3_11.mts | Bin 0 -> 131 bytes mods/castrum/schematics/Tower3/Tower3_12.mts | Bin 0 -> 137 bytes mods/castrum/schematics/Tower3/Tower3_13.mts | Bin 0 -> 162 bytes mods/castrum/schematics/Tower3/Tower3_14.mts | Bin 0 -> 172 bytes mods/castrum/schematics/Tower3/Tower3_15.mts | Bin 0 -> 172 bytes mods/castrum/schematics/Tower3/Tower3_16.mts | Bin 0 -> 182 bytes mods/castrum/schematics/Tower3/Tower3_17.mts | Bin 0 -> 192 bytes mods/castrum/schematics/Tower3/Tower3_18.mts | Bin 0 -> 235 bytes mods/castrum/schematics/Tower3/Tower3_19.mts | Bin 0 -> 306 bytes mods/castrum/schematics/Tower3/Tower3_2.mts | Bin 0 -> 131 bytes mods/castrum/schematics/Tower3/Tower3_20.mts | Bin 0 -> 240 bytes mods/castrum/schematics/Tower3/Tower3_21.mts | Bin 0 -> 313 bytes mods/castrum/schematics/Tower3/Tower3_22.mts | Bin 0 -> 242 bytes mods/castrum/schematics/Tower3/Tower3_23.mts | Bin 0 -> 320 bytes mods/castrum/schematics/Tower3/Tower3_24.mts | Bin 0 -> 247 bytes mods/castrum/schematics/Tower3/Tower3_3.mts | Bin 0 -> 133 bytes mods/castrum/schematics/Tower3/Tower3_4.mts | Bin 0 -> 132 bytes mods/castrum/schematics/Tower3/Tower3_5.mts | Bin 0 -> 132 bytes mods/castrum/schematics/Tower3/Tower3_6.mts | Bin 0 -> 135 bytes mods/castrum/schematics/Tower3/Tower3_7.mts | Bin 0 -> 135 bytes mods/castrum/schematics/Tower3/Tower3_8.mts | Bin 0 -> 134 bytes mods/castrum/schematics/Tower3/Tower3_9.mts | Bin 0 -> 135 bytes mods/castrum/schematics/Tower4/Tower4_0.mts | Bin 0 -> 74 bytes mods/castrum/schematics/Tower4/Tower4_1.mts | Bin 0 -> 122 bytes mods/castrum/schematics/Tower4/Tower4_10.mts | Bin 0 -> 131 bytes mods/castrum/schematics/Tower4/Tower4_11.mts | Bin 0 -> 130 bytes mods/castrum/schematics/Tower4/Tower4_12.mts | Bin 0 -> 139 bytes mods/castrum/schematics/Tower4/Tower4_13.mts | Bin 0 -> 157 bytes mods/castrum/schematics/Tower4/Tower4_14.mts | Bin 0 -> 172 bytes mods/castrum/schematics/Tower4/Tower4_15.mts | Bin 0 -> 172 bytes mods/castrum/schematics/Tower4/Tower4_16.mts | Bin 0 -> 183 bytes mods/castrum/schematics/Tower4/Tower4_17.mts | Bin 0 -> 194 bytes mods/castrum/schematics/Tower4/Tower4_18.mts | Bin 0 -> 233 bytes mods/castrum/schematics/Tower4/Tower4_19.mts | Bin 0 -> 299 bytes mods/castrum/schematics/Tower4/Tower4_2.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Tower4/Tower4_20.mts | Bin 0 -> 238 bytes mods/castrum/schematics/Tower4/Tower4_21.mts | Bin 0 -> 306 bytes mods/castrum/schematics/Tower4/Tower4_22.mts | Bin 0 -> 240 bytes mods/castrum/schematics/Tower4/Tower4_23.mts | Bin 0 -> 313 bytes mods/castrum/schematics/Tower4/Tower4_24.mts | Bin 0 -> 245 bytes mods/castrum/schematics/Tower4/Tower4_3.mts | Bin 0 -> 126 bytes mods/castrum/schematics/Tower4/Tower4_4.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Tower4/Tower4_5.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Tower4/Tower4_6.mts | Bin 0 -> 128 bytes mods/castrum/schematics/Tower4/Tower4_7.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Tower4/Tower4_8.mts | Bin 0 -> 127 bytes mods/castrum/schematics/Tower4/Tower4_9.mts | Bin 0 -> 130 bytes mods/castrum/schematics/Tree/Tree_0.mts | Bin 0 -> 52 bytes mods/castrum/schematics/Tree/Tree_1.mts | Bin 0 -> 115 bytes mods/castrum/schematics/Tree/Tree_2.mts | Bin 0 -> 121 bytes mods/castrum/schematics/Tree/Tree_3.mts | Bin 0 -> 186 bytes mods/castrum/schematics/Tree/Tree_4.mts | Bin 0 -> 187 bytes mods/castrum/schematics/Tree/Tree_5.mts | Bin 0 -> 245 bytes mods/castrum/schematics/Tree/Tree_6.mts | Bin 0 -> 254 bytes mods/castrum/schematics/Tree/Tree_7.mts | Bin 0 -> 311 bytes mods/castrum/schematics/Walle/Walle_0.mts | Bin 0 -> 75 bytes mods/castrum/schematics/Walle/Walle_1.mts | Bin 0 -> 113 bytes mods/castrum/schematics/Walle/Walle_10.mts | Bin 0 -> 115 bytes mods/castrum/schematics/Walle/Walle_11.mts | Bin 0 -> 116 bytes mods/castrum/schematics/Walle/Walle_12.mts | Bin 0 -> 114 bytes mods/castrum/schematics/Walle/Walle_13.mts | Bin 0 -> 124 bytes mods/castrum/schematics/Walle/Walle_14.mts | Bin 0 -> 181 bytes mods/castrum/schematics/Walle/Walle_15.mts | Bin 0 -> 235 bytes mods/castrum/schematics/Walle/Walle_16.mts | Bin 0 -> 186 bytes mods/castrum/schematics/Walle/Walle_17.mts | Bin 0 -> 242 bytes mods/castrum/schematics/Walle/Walle_18.mts | Bin 0 -> 188 bytes mods/castrum/schematics/Walle/Walle_19.mts | Bin 0 -> 249 bytes mods/castrum/schematics/Walle/Walle_2.mts | Bin 0 -> 114 bytes mods/castrum/schematics/Walle/Walle_20.mts | Bin 0 -> 193 bytes mods/castrum/schematics/Walle/Walle_3.mts | Bin 0 -> 115 bytes mods/castrum/schematics/Walle/Walle_4.mts | Bin 0 -> 116 bytes mods/castrum/schematics/Walle/Walle_5.mts | Bin 0 -> 116 bytes mods/castrum/schematics/Walle/Walle_6.mts | Bin 0 -> 115 bytes mods/castrum/schematics/Walle/Walle_7.mts | Bin 0 -> 115 bytes mods/castrum/schematics/Walle/Walle_8.mts | Bin 0 -> 116 bytes mods/castrum/schematics/Walle/Walle_9.mts | Bin 0 -> 116 bytes mods/castrum/schematics/Walln/Walln_0.mts | Bin 0 -> 75 bytes mods/castrum/schematics/Walln/Walln_1.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Walln/Walln_10.mts | Bin 0 -> 97 bytes mods/castrum/schematics/Walln/Walln_11.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Walln/Walln_12.mts | Bin 0 -> 107 bytes mods/castrum/schematics/Walln/Walln_13.mts | Bin 0 -> 109 bytes mods/castrum/schematics/Walln/Walln_14.mts | Bin 0 -> 155 bytes mods/castrum/schematics/Walln/Walln_15.mts | Bin 0 -> 188 bytes mods/castrum/schematics/Walln/Walln_16.mts | Bin 0 -> 160 bytes mods/castrum/schematics/Walln/Walln_17.mts | Bin 0 -> 195 bytes mods/castrum/schematics/Walln/Walln_18.mts | Bin 0 -> 162 bytes mods/castrum/schematics/Walln/Walln_19.mts | Bin 0 -> 202 bytes mods/castrum/schematics/Walln/Walln_2.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Walln/Walln_20.mts | Bin 0 -> 167 bytes mods/castrum/schematics/Walln/Walln_3.mts | Bin 0 -> 97 bytes mods/castrum/schematics/Walln/Walln_4.mts | Bin 0 -> 95 bytes mods/castrum/schematics/Walln/Walln_5.mts | Bin 0 -> 97 bytes mods/castrum/schematics/Walln/Walln_6.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Walln/Walln_7.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Walln/Walln_8.mts | Bin 0 -> 97 bytes mods/castrum/schematics/Walln/Walln_9.mts | Bin 0 -> 96 bytes mods/castrum/schematics/Walls/Walls_0.mts | Bin 0 -> 75 bytes mods/castrum/schematics/Walls/Walls_1.mts | Bin 0 -> 113 bytes mods/castrum/schematics/Walls/Walls_10.mts | Bin 0 -> 141 bytes mods/castrum/schematics/Walls/Walls_11.mts | Bin 0 -> 148 bytes mods/castrum/schematics/Walls/Walls_12.mts | Bin 0 -> 164 bytes mods/castrum/schematics/Walls/Walls_13.mts | Bin 0 -> 168 bytes mods/castrum/schematics/Walls/Walls_14.mts | Bin 0 -> 230 bytes mods/castrum/schematics/Walls/Walls_15.mts | Bin 0 -> 304 bytes mods/castrum/schematics/Walls/Walls_16.mts | Bin 0 -> 235 bytes mods/castrum/schematics/Walls/Walls_17.mts | Bin 0 -> 311 bytes mods/castrum/schematics/Walls/Walls_18.mts | Bin 0 -> 237 bytes mods/castrum/schematics/Walls/Walls_19.mts | Bin 0 -> 318 bytes mods/castrum/schematics/Walls/Walls_2.mts | Bin 0 -> 115 bytes mods/castrum/schematics/Walls/Walls_20.mts | Bin 0 -> 242 bytes mods/castrum/schematics/Walls/Walls_3.mts | Bin 0 -> 117 bytes mods/castrum/schematics/Walls/Walls_4.mts | Bin 0 -> 118 bytes mods/castrum/schematics/Walls/Walls_5.mts | Bin 0 -> 119 bytes mods/castrum/schematics/Walls/Walls_6.mts | Bin 0 -> 121 bytes mods/castrum/schematics/Walls/Walls_7.mts | Bin 0 -> 121 bytes mods/castrum/schematics/Walls/Walls_8.mts | Bin 0 -> 122 bytes mods/castrum/schematics/Walls/Walls_9.mts | Bin 0 -> 131 bytes mods/castrum/schematics/Wallw/Wallw_0.mts | Bin 0 -> 75 bytes mods/castrum/schematics/Wallw/Wallw_1.mts | Bin 0 -> 106 bytes mods/castrum/schematics/Wallw/Wallw_10.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Wallw/Wallw_11.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Wallw/Wallw_12.mts | Bin 0 -> 115 bytes mods/castrum/schematics/Wallw/Wallw_13.mts | Bin 0 -> 124 bytes mods/castrum/schematics/Wallw/Wallw_14.mts | Bin 0 -> 180 bytes mods/castrum/schematics/Wallw/Wallw_15.mts | Bin 0 -> 208 bytes mods/castrum/schematics/Wallw/Wallw_16.mts | Bin 0 -> 185 bytes mods/castrum/schematics/Wallw/Wallw_17.mts | Bin 0 -> 215 bytes mods/castrum/schematics/Wallw/Wallw_18.mts | Bin 0 -> 187 bytes mods/castrum/schematics/Wallw/Wallw_19.mts | Bin 0 -> 222 bytes mods/castrum/schematics/Wallw/Wallw_2.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Wallw/Wallw_20.mts | Bin 0 -> 192 bytes mods/castrum/schematics/Wallw/Wallw_3.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Wallw/Wallw_4.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Wallw/Wallw_5.mts | Bin 0 -> 113 bytes mods/castrum/schematics/Wallw/Wallw_6.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Wallw/Wallw_7.mts | Bin 0 -> 111 bytes mods/castrum/schematics/Wallw/Wallw_8.mts | Bin 0 -> 112 bytes mods/castrum/schematics/Wallw/Wallw_9.mts | Bin 0 -> 113 bytes mods/castrum/update.lua | 455 +++--------- mods/creative/depends.txt | 2 - mods/creative/init.lua | 17 +- mods/creative/inventory.lua | 32 +- mods/creative/locale/creative.de.tr | 10 + mods/creative/locale/creative.es.tr | 10 + mods/creative/locale/creative.fr.tr | 10 + mods/creative/locale/creative.it.tr | 10 + mods/creative/locale/template.txt | 10 + mods/creative/mod.conf | 3 + mods/default/README.txt | 5 +- mods/default/chests.lua | 20 +- mods/default/crafting.lua | 494 ++++++------- mods/default/craftitems.lua | 89 +-- mods/default/depends.txt | 1 - mods/default/functions.lua | 106 +-- mods/default/furnace.lua | 67 +- mods/default/init.lua | 5 + mods/default/legacy.lua | 2 +- mods/default/locale/default.de.tr | 211 ++++++ mods/default/locale/default.es.tr | 211 ++++++ mods/default/locale/default.fr.tr | 211 ++++++ mods/default/locale/default.it.tr | 205 ++++++ mods/default/locale/template.txt | 211 ++++++ mods/default/mapgen.lua | 368 ++++++++-- mods/default/mod.conf | 3 + mods/default/nodes.lua | 524 +++++++------- mods/default/schematics/large_cactus.mts | Bin 98 -> 99 bytes mods/default/textures/default_dry_dirt.png | Bin 0 -> 256 bytes mods/default/textures/default_grass.png | Bin 377 -> 461 bytes mods/default/textures/default_grass_side.png | Bin 779 -> 590 bytes mods/default/textures/default_permafrost.png | Bin 266 -> 269 bytes mods/default/tools.lua | 81 ++- mods/default/torch.lua | 7 +- mods/default/trees.lua | 12 +- mods/doors/README.txt | 4 +- mods/doors/depends.txt | 2 - mods/doors/init.lua | 94 +-- mods/doors/locale/doors.de.tr | 18 + mods/doors/locale/doors.es.tr | 18 + mods/doors/locale/doors.fr.tr | 18 + mods/doors/locale/doors.it.tr | 19 + mods/doors/locale/template.txt | 18 + mods/doors/mod.conf | 4 + mods/doors/textures/doors_trapdoor_side.png | Bin 169 -> 118 bytes .../textures/doors_trapdoor_steel_side.png | Bin 101 -> 98 bytes mods/dungeon_loot/depends.txt | 1 - mods/dungeon_loot/loot.lua | 31 +- mods/dungeon_loot/mapgen.lua | 29 +- mods/dungeon_loot/mod.conf | 3 + mods/dye/depends.txt | 0 mods/dye/init.lua | 37 +- mods/dye/locale/dye.de.tr | 16 + mods/dye/locale/dye.es.tr | 16 + mods/dye/locale/dye.fr.tr | 16 + mods/dye/locale/dye.it.tr | 16 + mods/dye/locale/template.txt | 16 + mods/dye/mod.conf | 2 + mods/env_sounds/README.txt | 13 + mods/env_sounds/init.lua | 64 ++ mods/env_sounds/license.txt | 57 ++ mods/env_sounds/mod.conf | 3 + mods/env_sounds/sounds/env_sounds_water.1.ogg | Bin 0 -> 80221 bytes mods/env_sounds/sounds/env_sounds_water.2.ogg | Bin 0 -> 84658 bytes mods/env_sounds/sounds/env_sounds_water.3.ogg | Bin 0 -> 83915 bytes mods/env_sounds/sounds/env_sounds_water.4.ogg | Bin 0 -> 82187 bytes mods/farming/api.lua | 13 +- mods/farming/depends.txt | 3 - mods/farming/hoes.lua | 31 +- mods/farming/init.lua | 19 +- mods/farming/locale/farming.de.tr | 25 + mods/farming/locale/farming.es.tr | 25 + mods/farming/locale/farming.fr.tr | 25 + mods/farming/locale/farming.it.tr | 25 + mods/farming/locale/template.txt | 25 + mods/farming/mod.conf | 3 + mods/farming/nodes.lua | 90 ++- mods/fire/depends.txt | 1 - mods/fire/init.lua | 33 +- mods/fire/locale/fire.de.tr | 3 + mods/fire/locale/fire.es.tr | 3 + mods/fire/locale/fire.fr.tr | 3 + mods/fire/locale/fire.it.tr | 3 + mods/fire/locale/template.txt | 3 + mods/fire/mod.conf | 3 + mods/fireflies/depends.txt | 2 - mods/fireflies/init.lua | 19 +- mods/fireflies/locale/fireflies.de.tr | 5 + mods/fireflies/locale/fireflies.es.tr | 5 + mods/fireflies/locale/fireflies.fr.tr | 5 + mods/fireflies/locale/fireflies.it.tr | 5 + mods/fireflies/locale/template.txt | 5 + mods/fireflies/mod.conf | 3 + mods/{bones => flatgen}/depends.txt | 0 mods/flatgen/init.lua | 60 ++ mods/flatgen/init_legacy.lua | 143 ++++ mods/flatgen/mod.conf | 3 + mods/flowers/depends.txt | 1 - mods/flowers/init.lua | 59 +- mods/flowers/locale/flowers.de.tr | 12 + mods/flowers/locale/flowers.es.tr | 12 + mods/flowers/locale/flowers.fr.tr | 12 + mods/flowers/locale/flowers.it.tr | 12 + mods/flowers/locale/template.txt | 12 + mods/flowers/mapgen.lua | 4 +- mods/flowers/mod.conf | 3 + mods/game_commands/init.lua | 12 +- mods/game_commands/locale/game_commands.de.tr | 4 + mods/game_commands/locale/game_commands.es.tr | 4 + mods/game_commands/locale/game_commands.fr.tr | 4 + mods/game_commands/locale/game_commands.it.tr | 4 + mods/game_commands/locale/template.txt | 4 + mods/game_commands/mod.conf | 2 + mods/give_initial_stuff/depends.txt | 2 - mods/give_initial_stuff/init.lua | 2 + mods/give_initial_stuff/mod.conf | 3 + mods/map/README.txt | 2 +- mods/map/depends.txt | 3 - mods/map/init.lua | 10 +- mods/map/locale/map.de.tr | 3 + mods/map/locale/map.es.tr | 3 + mods/map/locale/map.fr.tr | 3 + mods/map/locale/map.it.tr | 3 + mods/map/locale/template.txt | 3 + mods/map/mod.conf | 4 + mods/mapfix/LICENSE | 4 - mods/mapfix/README.md | 13 - mods/mapfix/description.txt | 1 - mods/mapfix/init.lua | 48 -- mods/mapfix/mod.conf | 1 - mods/player_api/api.lua | 1 + mods/player_api/init.lua | 2 + mods/player_api/mod.conf | 2 + mods/screwdriver/init.lua | 9 +- mods/screwdriver/locale/screwdriver.de.tr | 3 + mods/screwdriver/locale/screwdriver.es.tr | 3 + mods/screwdriver/locale/screwdriver.fr.tr | 3 + mods/screwdriver/locale/screwdriver.it.tr | 3 + mods/screwdriver/locale/template.txt | 3 + mods/screwdriver/mod.conf | 2 + mods/sethome/init.lua | 19 +- mods/sethome/locale/sethome.de.tr | 8 + mods/sethome/locale/sethome.es.tr | 8 + mods/sethome/locale/sethome.fr.tr | 8 + mods/sethome/locale/sethome.it.tr | 8 + mods/sethome/locale/template.txt | 8 + mods/sethome/mod.conf | 2 + mods/sfinv/README.txt | 5 + mods/sfinv/api.lua | 12 +- mods/sfinv/init.lua | 17 +- mods/sfinv/license.txt | 35 + mods/sfinv/locale/sfinv.de.tr | 2 + mods/sfinv/locale/sfinv.es.tr | 2 + mods/sfinv/locale/sfinv.fr.tr | 2 + mods/sfinv/locale/sfinv.it.tr | 2 + mods/sfinv/locale/template.txt | 2 + mods/sfinv/mod.conf | 2 + mods/sfinv/textures/sfinv_crafting_arrow.png | Bin 0 -> 469 bytes mods/spawn/depends.txt | 2 - mods/spawn/init.lua | 15 + mods/spawn/mod.conf | 4 + mods/stairs/depends.txt | 1 - mods/stairs/init.lua | 312 +++++++-- mods/stairs/locale/stairs.de.tr | 145 ++++ mods/stairs/locale/stairs.es.tr | 145 ++++ mods/stairs/locale/stairs.fr.tr | 145 ++++ mods/stairs/locale/stairs.it.tr | 145 ++++ mods/stairs/locale/template.txt | 145 ++++ mods/stairs/mod.conf | 3 + mods/tnt/README.txt | 21 +- mods/tnt/depends.txt | 3 - mods/tnt/init.lua | 14 +- mods/tnt/license.txt | 38 +- mods/tnt/locale/template.txt | 4 + mods/tnt/locale/tnt.de.tr | 4 + mods/tnt/locale/tnt.es.tr | 4 + mods/tnt/locale/tnt.fr.tr | 4 + mods/tnt/locale/tnt.it.tr | 4 + mods/tnt/mod.conf | 3 + mods/tnt/sounds/tnt_explode.ogg | Bin 12808 -> 13580 bytes mods/tnt/sounds/tnt_gunpowder_burning.ogg | Bin 34335 -> 7443 bytes mods/tnt/sounds/tnt_ignite.ogg | Bin 29271 -> 26196 bytes mods/vessels/depends.txt | 1 - mods/vessels/init.lua | 47 +- mods/vessels/locale/template.txt | 8 + mods/vessels/locale/vessels.de.tr | 8 + mods/vessels/locale/vessels.es.tr | 8 + mods/vessels/locale/vessels.fr.tr | 8 + mods/vessels/locale/vessels.it.tr | 8 + mods/vessels/mod.conf | 3 + mods/walls/depends.txt | 1 - mods/walls/init.lua | 35 +- mods/walls/locale/template.txt | 4 + mods/walls/locale/walls.de.tr | 4 + mods/walls/locale/walls.es.tr | 4 + mods/walls/locale/walls.fr.tr | 4 + mods/walls/locale/walls.it.tr | 4 + mods/walls/mod.conf | 3 + mods/wool/depends.txt | 1 - mods/wool/init.lua | 47 +- mods/wool/locale/template.txt | 16 + mods/wool/locale/wool.de.tr | 16 + mods/wool/locale/wool.es.tr | 16 + mods/wool/locale/wool.fr.tr | 16 + mods/wool/locale/wool.it.tr | 16 + mods/wool/mod.conf | 3 + mods/worldedit/ChatCommands.md | 11 - mods/worldedit/WorldEdit API.md | 2 +- mods/worldedit/worldedit/manipulations.lua | 2 +- mods/worldedit/worldedit/primitives.lua | 7 +- mods/worldedit/worldedit_brush/depends.txt | 2 - mods/worldedit/worldedit_brush/init.lua | 161 ----- .../textures/worldedit_brush.png | Bin 337 -> 0 bytes mods/worldedit/worldedit_commands/init.lua | 11 +- mods/worldedit/worldedit_commands/safe.lua | 11 +- mods/worldedit/worldedit_gui/depends.txt | 1 - mods/worldedit/worldedit_gui/init.lua | 49 -- mods/xpanes/README.txt | 8 + mods/xpanes/depends.txt | 1 - mods/xpanes/init.lua | 64 +- mods/xpanes/license.txt | 1 + mods/xpanes/locale/template.txt | 6 + mods/xpanes/locale/xpanes.de.tr | 6 + mods/xpanes/locale/xpanes.es.tr | 6 + mods/xpanes/locale/xpanes.fr.tr | 6 + mods/xpanes/locale/xpanes.it.tr | 6 + mods/xpanes/mod.conf | 4 + .../sounds/xpanes_steel_bar_door_close.ogg | Bin 0 -> 17553 bytes .../sounds/xpanes_steel_bar_door_open.ogg | Bin 0 -> 21837 bytes .../xpanes/textures/xpanes_door_steel_bar.png | Bin 0 -> 605 bytes .../xpanes/textures/xpanes_item_steel_bar.png | Bin 0 -> 354 bytes .../textures/xpanes_trapdoor_steel_bar.png | Bin 0 -> 261 bytes .../xpanes_trapdoor_steel_bar_side.png | Bin 0 -> 98 bytes 1000 files changed, 7042 insertions(+), 11010 deletions(-) delete mode 100644 mods/beds/depends.txt create mode 100644 mods/beds/locale/beds.de.tr create mode 100644 mods/beds/locale/beds.es.tr create mode 100644 mods/beds/locale/beds.fr.tr create mode 100644 mods/beds/locale/beds.it.tr create mode 100644 mods/beds/locale/template.txt create mode 100644 mods/beds/mod.conf delete mode 100644 mods/binoculars/depends.txt create mode 100644 mods/binoculars/locale/binoculars.de.tr create mode 100644 mods/binoculars/locale/binoculars.es.tr create mode 100644 mods/binoculars/locale/binoculars.fr.tr create mode 100644 mods/binoculars/locale/binoculars.it.tr create mode 100644 mods/binoculars/locale/template.txt create mode 100644 mods/binoculars/mod.conf delete mode 100644 mods/boats/depends.txt create mode 100644 mods/boats/locale/boats.de.tr create mode 100644 mods/boats/locale/boats.es.tr create mode 100644 mods/boats/locale/boats.fr.tr create mode 100644 mods/boats/locale/boats.it.tr create mode 100644 mods/boats/locale/template.txt create mode 100644 mods/boats/mod.conf create mode 100644 mods/bones/locale/bones.de.tr create mode 100644 mods/bones/locale/bones.es.tr create mode 100644 mods/bones/locale/bones.fr.tr create mode 100644 mods/bones/locale/bones.it.tr create mode 100644 mods/bones/locale/template.txt create mode 100644 mods/bones/mod.conf delete mode 100644 mods/bucket/depends.txt create mode 100644 mods/bucket/locale/bucket.de.tr create mode 100644 mods/bucket/locale/bucket.es.tr create mode 100644 mods/bucket/locale/bucket.fr.tr create mode 100644 mods/bucket/locale/bucket.it.tr create mode 100644 mods/bucket/locale/template.txt create mode 100644 mods/bucket/mod.conf delete mode 100644 mods/butterflies/depends.txt create mode 100644 mods/butterflies/locale/butterflies.de.tr create mode 100644 mods/butterflies/locale/butterflies.es.tr create mode 100644 mods/butterflies/locale/butterflies.fr.tr create mode 100644 mods/butterflies/locale/butterflies.it.tr create mode 100644 mods/butterflies/locale/template.txt create mode 100644 mods/butterflies/mod.conf delete mode 100644 mods/carts/depends.txt create mode 100644 mods/carts/locale/carts.de.tr create mode 100644 mods/carts/locale/carts.es.tr create mode 100644 mods/carts/locale/carts.fr.tr create mode 100644 mods/carts/locale/carts.it.tr create mode 100644 mods/carts/locale/template.txt create mode 100644 mods/carts/mod.conf delete mode 100644 mods/castrum/buildings/Barracks.lua delete mode 100644 mods/castrum/buildings/Battleground.lua delete mode 100644 mods/castrum/buildings/Bridge.lua delete mode 100644 mods/castrum/buildings/Bridge2.lua delete mode 100644 mods/castrum/buildings/Cactusfarm.lua delete mode 100644 mods/castrum/buildings/Camp1.lua delete mode 100644 mods/castrum/buildings/Camp2.lua delete mode 100644 mods/castrum/buildings/Camp3.lua delete mode 100644 mods/castrum/buildings/Cannon1.lua delete mode 100644 mods/castrum/buildings/Cannon2.lua delete mode 100644 mods/castrum/buildings/Cannon3.lua delete mode 100644 mods/castrum/buildings/Farm.lua delete mode 100644 mods/castrum/buildings/Fountain.lua delete mode 100644 mods/castrum/buildings/Home1.lua delete mode 100644 mods/castrum/buildings/Home2.lua delete mode 100644 mods/castrum/buildings/Home3.lua delete mode 100644 mods/castrum/buildings/Island_Barracks.lua delete mode 100644 mods/castrum/buildings/Island_Battleground.lua delete mode 100644 mods/castrum/buildings/Island_Fountain.lua delete mode 100644 mods/castrum/buildings/Island_Home1.lua delete mode 100644 mods/castrum/buildings/Island_Home2.lua delete mode 100644 mods/castrum/buildings/Island_Pier.lua delete mode 100644 mods/castrum/buildings/Island_Pier2.lua delete mode 100644 mods/castrum/buildings/Island_Smithy.lua delete mode 100644 mods/castrum/buildings/Island_Walle.lua delete mode 100644 mods/castrum/buildings/Island_Walln.lua delete mode 100644 mods/castrum/buildings/Island_Walls.lua delete mode 100644 mods/castrum/buildings/Island_Wallw.lua delete mode 100644 mods/castrum/buildings/Lake.lua delete mode 100644 mods/castrum/buildings/Lake2.lua delete mode 100644 mods/castrum/buildings/Meadow.lua delete mode 100644 mods/castrum/buildings/Mine.lua delete mode 100644 mods/castrum/buildings/Moat_east.lua delete mode 100644 mods/castrum/buildings/Moat_north.lua delete mode 100644 mods/castrum/buildings/Moat_south.lua delete mode 100644 mods/castrum/buildings/Moat_west.lua delete mode 100644 mods/castrum/buildings/Mountain_Fountain.lua delete mode 100644 mods/castrum/buildings/Mountain_Quarry.lua delete mode 100644 mods/castrum/buildings/Mountain_Smithy.lua delete mode 100644 mods/castrum/buildings/Pier.lua delete mode 100644 mods/castrum/buildings/Quarry.lua delete mode 100644 mods/castrum/buildings/Sail1.lua delete mode 100644 mods/castrum/buildings/Sail2.lua delete mode 100644 mods/castrum/buildings/Sandmine.lua delete mode 100644 mods/castrum/buildings/Ship1.lua delete mode 100644 mods/castrum/buildings/Ship2.lua delete mode 100644 mods/castrum/buildings/Smithy.lua delete mode 100644 mods/castrum/buildings/Stable.lua delete mode 100644 mods/castrum/buildings/Tower1.lua delete mode 100644 mods/castrum/buildings/Tower2.lua delete mode 100644 mods/castrum/buildings/Tower3.lua delete mode 100644 mods/castrum/buildings/Tower4.lua delete mode 100644 mods/castrum/buildings/Tree.lua delete mode 100644 mods/castrum/buildings/Wall_east.lua delete mode 100644 mods/castrum/buildings/Wall_north.lua delete mode 100644 mods/castrum/buildings/Wall_south.lua delete mode 100644 mods/castrum/buildings/Wall_west.lua create mode 100644 mods/castrum/models/castrum_pirate_lv2.png create mode 100644 mods/castrum/models/castrum_skeleton_lv2.png create mode 100644 mods/castrum/nodes/Home4.lua create mode 100644 mods/castrum/nodes/Market.lua create mode 100644 mods/castrum/pier_ship.lua create mode 100644 mods/castrum/schematics/Barracks/Barracks_0.mts create mode 100644 mods/castrum/schematics/Barracks/Barracks_1.mts create mode 100644 mods/castrum/schematics/Barracks/Barracks_2.mts create mode 100644 mods/castrum/schematics/Barracks/Barracks_3.mts create mode 100644 mods/castrum/schematics/Barracks/Barracks_4.mts create mode 100644 mods/castrum/schematics/Barracks/Barracks_5.mts create mode 100644 mods/castrum/schematics/Barracks/Barracks_6.mts create mode 100644 mods/castrum/schematics/Barracks/Barracks_7.mts create mode 100644 mods/castrum/schematics/Barracks/Barracks_8.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_0.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_1.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_2.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_3.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_4.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_5.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_6.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_7.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_8.mts create mode 100644 mods/castrum/schematics/Battleground/Battleground_9.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_0.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_00.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_1.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_10.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_11.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_12.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_2.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_3.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_4.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_5.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_6.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_7.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_8.mts create mode 100644 mods/castrum/schematics/Bridge1/Bridge1_9.mts create mode 100644 mods/castrum/schematics/Bridge2/Bridge2_0.mts create mode 100644 mods/castrum/schematics/Bridge2/Bridge2_10.mts create mode 100644 mods/castrum/schematics/Bridge2/Bridge2_11.mts create mode 100644 mods/castrum/schematics/Bridge2/Bridge2_12.mts create mode 100644 mods/castrum/schematics/Bridge2/Bridge2_9.mts create mode 100644 mods/castrum/schematics/Cactusfarm/Cactusfarm_0.mts create mode 100644 mods/castrum/schematics/Cactusfarm/Cactusfarm_1.mts create mode 100644 mods/castrum/schematics/Cactusfarm/Cactusfarm_2.mts create mode 100644 mods/castrum/schematics/Cactusfarm/Cactusfarm_3.mts create mode 100644 mods/castrum/schematics/Cactusfarm/Cactusfarm_4.mts create mode 100644 mods/castrum/schematics/Cactusfarm/Cactusfarm_5.mts create mode 100644 mods/castrum/schematics/Camp1/Camp1_0.mts create mode 100644 mods/castrum/schematics/Camp1/Camp1_1.mts create mode 100644 mods/castrum/schematics/Camp2/Camp2_0.mts create mode 100644 mods/castrum/schematics/Camp2/Camp2_1.mts create mode 100644 mods/castrum/schematics/Camp3/Camp3_0.mts create mode 100644 mods/castrum/schematics/Camp3/Camp3_1.mts create mode 100644 mods/castrum/schematics/Cannon1/Cannon1_0.mts create mode 100644 mods/castrum/schematics/Cannon1/Cannon1_1.mts create mode 100644 mods/castrum/schematics/Cannon1/Cannon1_2.mts create mode 100644 mods/castrum/schematics/Cannon2/Cannon2_0.mts create mode 100644 mods/castrum/schematics/Cannon2/Cannon2_1.mts create mode 100644 mods/castrum/schematics/Cannon2/Cannon2_2.mts create mode 100644 mods/castrum/schematics/Cannon3/Cannon3_0.mts create mode 100644 mods/castrum/schematics/Cannon3/Cannon3_1.mts create mode 100644 mods/castrum/schematics/Cannon3/Cannon3_2.mts create mode 100644 mods/castrum/schematics/Farm/Farm_0.mts create mode 100644 mods/castrum/schematics/Farm/Farm_1.mts create mode 100644 mods/castrum/schematics/Farm/Farm_2.mts create mode 100644 mods/castrum/schematics/Farm/Farm_3.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_0.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_1.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_10.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_2.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_3.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_4.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_5.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_6.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_7.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_8.mts create mode 100644 mods/castrum/schematics/Fountain/Fountain_9.mts create mode 100644 mods/castrum/schematics/Home1/Home1_0.mts create mode 100644 mods/castrum/schematics/Home1/Home1_1.mts create mode 100644 mods/castrum/schematics/Home1/Home1_2.mts create mode 100644 mods/castrum/schematics/Home1/Home1_3.mts create mode 100644 mods/castrum/schematics/Home1/Home1_4.mts create mode 100644 mods/castrum/schematics/Home1/Home1_5.mts create mode 100644 mods/castrum/schematics/Home1/Home1_6.mts create mode 100644 mods/castrum/schematics/Home1/Home1_7.mts create mode 100644 mods/castrum/schematics/Home1/Home1_8.mts create mode 100644 mods/castrum/schematics/Home1/Home1_9.mts create mode 100644 mods/castrum/schematics/Home2/Home2_0.mts create mode 100644 mods/castrum/schematics/Home2/Home2_1.mts create mode 100644 mods/castrum/schematics/Home2/Home2_2.mts create mode 100644 mods/castrum/schematics/Home2/Home2_3.mts create mode 100644 mods/castrum/schematics/Home2/Home2_4.mts create mode 100644 mods/castrum/schematics/Home2/Home2_5.mts create mode 100644 mods/castrum/schematics/Home2/Home2_6.mts create mode 100644 mods/castrum/schematics/Home2/Home2_7.mts create mode 100644 mods/castrum/schematics/Home2/Home2_8.mts create mode 100644 mods/castrum/schematics/Home3/Home3_0.mts create mode 100644 mods/castrum/schematics/Home3/Home3_1.mts create mode 100644 mods/castrum/schematics/Home3/Home3_2.mts create mode 100644 mods/castrum/schematics/Home3/Home3_3.mts create mode 100644 mods/castrum/schematics/Home3/Home3_4.mts create mode 100644 mods/castrum/schematics/Home3/Home3_5.mts create mode 100644 mods/castrum/schematics/Home3/Home3_6.mts create mode 100644 mods/castrum/schematics/Home3/Home3_7.mts create mode 100644 mods/castrum/schematics/Home3/Home3_8.mts create mode 100644 mods/castrum/schematics/Home4/Home4_0.mts create mode 100644 mods/castrum/schematics/Home4/Home4_1.mts create mode 100644 mods/castrum/schematics/Home4/Home4_2.mts create mode 100644 mods/castrum/schematics/Home4/Home4_3.mts create mode 100644 mods/castrum/schematics/Home4/Home4_4.mts create mode 100644 mods/castrum/schematics/Home4/Home4_5.mts create mode 100644 mods/castrum/schematics/Home4/Home4_6.mts create mode 100644 mods/castrum/schematics/Island_Barracks/Island_Barracks_0.mts create mode 100644 mods/castrum/schematics/Island_Barracks/Island_Barracks_1.mts create mode 100644 mods/castrum/schematics/Island_Barracks/Island_Barracks_2.mts create mode 100644 mods/castrum/schematics/Island_Barracks/Island_Barracks_3.mts create mode 100644 mods/castrum/schematics/Island_Barracks/Island_Barracks_4.mts create mode 100644 mods/castrum/schematics/Island_Barracks/Island_Barracks_5.mts create mode 100644 mods/castrum/schematics/Island_Barracks/Island_Barracks_6.mts create mode 100644 mods/castrum/schematics/Island_Battleground/Island_Battleground_0.mts create mode 100644 mods/castrum/schematics/Island_Battleground/Island_Battleground_1.mts create mode 100644 mods/castrum/schematics/Island_Battleground/Island_Battleground_2.mts create mode 100644 mods/castrum/schematics/Island_Battleground/Island_Battleground_3.mts create mode 100644 mods/castrum/schematics/Island_Battleground/Island_Battleground_4.mts create mode 100644 mods/castrum/schematics/Island_Fountain/Island_Fountain_0.mts create mode 100644 mods/castrum/schematics/Island_Fountain/Island_Fountain_1.mts create mode 100644 mods/castrum/schematics/Island_Fountain/Island_Fountain_2.mts create mode 100644 mods/castrum/schematics/Island_Fountain/Island_Fountain_3.mts create mode 100644 mods/castrum/schematics/Island_Fountain/Island_Fountain_4.mts create mode 100644 mods/castrum/schematics/Island_Fountain/Island_Fountain_5.mts create mode 100644 mods/castrum/schematics/Island_Home1/Island_Home1_0.mts create mode 100644 mods/castrum/schematics/Island_Home1/Island_Home1_1.mts create mode 100644 mods/castrum/schematics/Island_Home1/Island_Home1_2.mts create mode 100644 mods/castrum/schematics/Island_Home1/Island_Home1_3.mts create mode 100644 mods/castrum/schematics/Island_Home1/Island_Home1_4.mts create mode 100644 mods/castrum/schematics/Island_Home1/Island_Home1_5.mts create mode 100644 mods/castrum/schematics/Island_Home2/Island_Home2_0.mts create mode 100644 mods/castrum/schematics/Island_Home2/Island_Home2_1.mts create mode 100644 mods/castrum/schematics/Island_Home2/Island_Home2_2.mts create mode 100644 mods/castrum/schematics/Island_Home2/Island_Home2_3.mts create mode 100644 mods/castrum/schematics/Island_Home2/Island_Home2_4.mts create mode 100644 mods/castrum/schematics/Island_Home2/Island_Home2_5.mts create mode 100644 mods/castrum/schematics/Island_Pier/Island_Pier_0.mts create mode 100644 mods/castrum/schematics/Island_Pier/Island_Pier_1.mts create mode 100644 mods/castrum/schematics/Island_Pier/Island_Pier_2.mts create mode 100644 mods/castrum/schematics/Island_Pier/Island_Pier_3.mts create mode 100644 mods/castrum/schematics/Island_Pier/Island_Pier_4.mts create mode 100644 mods/castrum/schematics/Island_Pier/Island_Pier_5.mts create mode 100644 mods/castrum/schematics/Island_Pier/Island_Pier_6.mts create mode 100644 mods/castrum/schematics/Island_Pier/Island_Pier_7.mts create mode 100644 mods/castrum/schematics/Island_Pier/Island_Pier_8.mts create mode 100644 mods/castrum/schematics/Island_Pier2/Island_Pier2_0.mts create mode 100644 mods/castrum/schematics/Island_Pier2/Island_Pier2_1.mts create mode 100644 mods/castrum/schematics/Island_Pier2/Island_Pier2_2.mts create mode 100644 mods/castrum/schematics/Island_Pier2/Island_Pier2_3.mts create mode 100644 mods/castrum/schematics/Island_Pier2/Island_Pier2_4.mts create mode 100644 mods/castrum/schematics/Island_Smithy/Island_Smithy_0.mts create mode 100644 mods/castrum/schematics/Island_Smithy/Island_Smithy_1.mts create mode 100644 mods/castrum/schematics/Island_Smithy/Island_Smithy_2.mts create mode 100644 mods/castrum/schematics/Island_Smithy/Island_Smithy_3.mts create mode 100644 mods/castrum/schematics/Island_Smithy/Island_Smithy_4.mts create mode 100644 mods/castrum/schematics/Island_Smithy/Island_Smithy_5.mts create mode 100644 mods/castrum/schematics/Island_Smithy/Island_Smithy_6.mts create mode 100644 mods/castrum/schematics/Island_Walle/Island_Walle_0.mts create mode 100644 mods/castrum/schematics/Island_Walle/Island_Walle_1.mts create mode 100644 mods/castrum/schematics/Island_Walle/Island_Walle_2.mts create mode 100644 mods/castrum/schematics/Island_Walle/Island_Walle_3.mts create mode 100644 mods/castrum/schematics/Island_Walle/Island_Walle_4.mts create mode 100644 mods/castrum/schematics/Island_Walle/Island_Walle_5.mts create mode 100644 mods/castrum/schematics/Island_Walle/Island_Walle_6.mts create mode 100644 mods/castrum/schematics/Island_Walle/Island_Walle_7.mts create mode 100644 mods/castrum/schematics/Island_Walle/Island_Walle_8.mts create mode 100644 mods/castrum/schematics/Island_Walln/Island_Walln_0.mts create mode 100644 mods/castrum/schematics/Island_Walln/Island_Walln_1.mts create mode 100644 mods/castrum/schematics/Island_Walln/Island_Walln_2.mts create mode 100644 mods/castrum/schematics/Island_Walln/Island_Walln_3.mts create mode 100644 mods/castrum/schematics/Island_Walln/Island_Walln_4.mts create mode 100644 mods/castrum/schematics/Island_Walln/Island_Walln_5.mts create mode 100644 mods/castrum/schematics/Island_Walln/Island_Walln_6.mts create mode 100644 mods/castrum/schematics/Island_Walln/Island_Walln_7.mts create mode 100644 mods/castrum/schematics/Island_Walln/Island_Walln_8.mts create mode 100644 mods/castrum/schematics/Island_Walls/Island_Walls_0.mts create mode 100644 mods/castrum/schematics/Island_Walls/Island_Walls_1.mts create mode 100644 mods/castrum/schematics/Island_Walls/Island_Walls_2.mts create mode 100644 mods/castrum/schematics/Island_Walls/Island_Walls_3.mts create mode 100644 mods/castrum/schematics/Island_Walls/Island_Walls_4.mts create mode 100644 mods/castrum/schematics/Island_Walls/Island_Walls_5.mts create mode 100644 mods/castrum/schematics/Island_Walls/Island_Walls_6.mts create mode 100644 mods/castrum/schematics/Island_Walls/Island_Walls_7.mts create mode 100644 mods/castrum/schematics/Island_Walls/Island_Walls_8.mts create mode 100644 mods/castrum/schematics/Island_Wallw/Island_Wallw_0.mts create mode 100644 mods/castrum/schematics/Island_Wallw/Island_Wallw_1.mts create mode 100644 mods/castrum/schematics/Island_Wallw/Island_Wallw_2.mts create mode 100644 mods/castrum/schematics/Island_Wallw/Island_Wallw_3.mts create mode 100644 mods/castrum/schematics/Island_Wallw/Island_Wallw_4.mts create mode 100644 mods/castrum/schematics/Island_Wallw/Island_Wallw_5.mts create mode 100644 mods/castrum/schematics/Island_Wallw/Island_Wallw_6.mts create mode 100644 mods/castrum/schematics/Island_Wallw/Island_Wallw_7.mts create mode 100644 mods/castrum/schematics/Island_Wallw/Island_Wallw_8.mts create mode 100644 mods/castrum/schematics/Lake/Lake_0.mts create mode 100644 mods/castrum/schematics/Lake/Lake_1.mts create mode 100644 mods/castrum/schematics/Lake/Lake_2.mts create mode 100644 mods/castrum/schematics/Lake/Lake_3.mts create mode 100644 mods/castrum/schematics/Lake/Lake_4.mts create mode 100644 mods/castrum/schematics/Lake2/Lake2_0.mts create mode 100644 mods/castrum/schematics/Lake2/Lake2_1.mts create mode 100644 mods/castrum/schematics/Lake2/Lake2_2.mts create mode 100644 mods/castrum/schematics/Lake2/Lake2_3.mts create mode 100644 mods/castrum/schematics/Lake2/Lake2_4.mts create mode 100644 mods/castrum/schematics/Market/Market_0.mts create mode 100644 mods/castrum/schematics/Market/Market_1.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_0.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_1.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_10.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_2.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_3.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_4.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_5.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_6.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_7.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_8.mts create mode 100644 mods/castrum/schematics/Meadow/Meadow_9.mts create mode 100644 mods/castrum/schematics/Mine/Mine_0.mts create mode 100644 mods/castrum/schematics/Mine/Mine_1.mts create mode 100644 mods/castrum/schematics/Mine/Mine_2.mts create mode 100644 mods/castrum/schematics/Mine/Mine_3.mts create mode 100644 mods/castrum/schematics/Mine/Mine_4.mts create mode 100644 mods/castrum/schematics/Mine/Mine_5.mts create mode 100644 mods/castrum/schematics/Mine/Mine_6.mts create mode 100644 mods/castrum/schematics/Moate/Moate_0.mts create mode 100644 mods/castrum/schematics/Moate/Moate_1.mts create mode 100644 mods/castrum/schematics/Moate/Moate_10.mts create mode 100644 mods/castrum/schematics/Moate/Moate_11.mts create mode 100644 mods/castrum/schematics/Moate/Moate_12.mts create mode 100644 mods/castrum/schematics/Moate/Moate_2.mts create mode 100644 mods/castrum/schematics/Moate/Moate_3.mts create mode 100644 mods/castrum/schematics/Moate/Moate_4.mts create mode 100644 mods/castrum/schematics/Moate/Moate_5.mts create mode 100644 mods/castrum/schematics/Moate/Moate_6.mts create mode 100644 mods/castrum/schematics/Moate/Moate_7.mts create mode 100644 mods/castrum/schematics/Moate/Moate_8.mts create mode 100644 mods/castrum/schematics/Moate/Moate_9.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_0.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_1.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_10.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_11.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_12.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_2.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_3.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_4.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_5.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_6.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_7.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_8.mts create mode 100644 mods/castrum/schematics/Moatn/Moatn_9.mts create mode 100644 mods/castrum/schematics/Moats/Moats_0.mts create mode 100644 mods/castrum/schematics/Moats/Moats_1.mts create mode 100644 mods/castrum/schematics/Moats/Moats_10.mts create mode 100644 mods/castrum/schematics/Moats/Moats_11.mts create mode 100644 mods/castrum/schematics/Moats/Moats_12.mts create mode 100644 mods/castrum/schematics/Moats/Moats_2.mts create mode 100644 mods/castrum/schematics/Moats/Moats_3.mts create mode 100644 mods/castrum/schematics/Moats/Moats_4.mts create mode 100644 mods/castrum/schematics/Moats/Moats_5.mts create mode 100644 mods/castrum/schematics/Moats/Moats_6.mts create mode 100644 mods/castrum/schematics/Moats/Moats_7.mts create mode 100644 mods/castrum/schematics/Moats/Moats_8.mts create mode 100644 mods/castrum/schematics/Moats/Moats_9.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_0.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_1.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_10.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_11.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_12.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_2.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_3.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_4.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_5.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_6.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_7.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_8.mts create mode 100644 mods/castrum/schematics/Moatw/Moatw_9.mts create mode 100644 mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_0.mts create mode 100644 mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_1.mts create mode 100644 mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_2.mts create mode 100644 mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_3.mts create mode 100644 mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_4.mts create mode 100644 mods/castrum/schematics/Mountain_Quarry/Mountain_Quarry_0.mts create mode 100644 mods/castrum/schematics/Mountain_Quarry/Mountain_Quarry_1.mts create mode 100644 mods/castrum/schematics/Mountain_Quarry/Mountain_Quarry_2.mts create mode 100644 mods/castrum/schematics/Mountain_Smithy/Mountain_Smithy_0.mts create mode 100644 mods/castrum/schematics/Mountain_Smithy/Mountain_Smithy_1.mts create mode 100644 mods/castrum/schematics/Mountain_Smithy/Mountain_Smithy_2.mts create mode 100644 mods/castrum/schematics/Mountain_Smithy/Mountain_Smithy_3.mts create mode 100644 mods/castrum/schematics/Mountain_Smithy/Mountain_Smithy_4.mts create mode 100644 mods/castrum/schematics/Mountain_Smithy/Mountain_Smithy_5.mts create mode 100644 mods/castrum/schematics/Mountain_Smithy/Mountain_Smithy_6.mts create mode 100644 mods/castrum/schematics/Pier/Pier_0.mts create mode 100644 mods/castrum/schematics/Pier/Pier_1.mts create mode 100644 mods/castrum/schematics/Pier/Pier_2.mts create mode 100644 mods/castrum/schematics/Pier/Pier_3.mts create mode 100644 mods/castrum/schematics/Pier/Pier_4.mts create mode 100644 mods/castrum/schematics/Pier/Pier_5.mts create mode 100644 mods/castrum/schematics/Pier/Pier_6.mts create mode 100644 mods/castrum/schematics/Pier/Pier_7.mts create mode 100644 mods/castrum/schematics/Pier/Pier_8.mts create mode 100644 mods/castrum/schematics/Pier/Pier_c0.mts create mode 100644 mods/castrum/schematics/Pier/Pier_c8.mts create mode 100644 mods/castrum/schematics/Pier/Pier_i0.mts create mode 100644 mods/castrum/schematics/Pier/Pier_i6.mts create mode 100644 mods/castrum/schematics/Pier/Pier_i7.mts create mode 100644 mods/castrum/schematics/Pier/Pier_i8.mts create mode 100644 mods/castrum/schematics/Pier/Pier_m0.mts create mode 100644 mods/castrum/schematics/Pier/Pier_m7.mts create mode 100644 mods/castrum/schematics/Pier/Pier_m8.mts create mode 100644 mods/castrum/schematics/Quarry/Quarry_0.mts create mode 100644 mods/castrum/schematics/Quarry/Quarry_1.mts create mode 100644 mods/castrum/schematics/Quarry/Quarry_2.mts create mode 100644 mods/castrum/schematics/Quarry/Quarry_3.mts create mode 100644 mods/castrum/schematics/Quarry/Quarry_4.mts create mode 100644 mods/castrum/schematics/Quarry/Quarry_5.mts create mode 100644 mods/castrum/schematics/Quarry/Quarry_6.mts create mode 100644 mods/castrum/schematics/Sail1/Sail1_0.mts create mode 100644 mods/castrum/schematics/Sail1/Sail1_1.mts create mode 100644 mods/castrum/schematics/Sail1/Sail1_2.mts create mode 100644 mods/castrum/schematics/Sail1/Sail1_3.mts create mode 100644 mods/castrum/schematics/Sail2/Sail2_0.mts create mode 100644 mods/castrum/schematics/Sail2/Sail2_1.mts create mode 100644 mods/castrum/schematics/Sail2/Sail2_2.mts create mode 100644 mods/castrum/schematics/Sail2/Sail2_3.mts create mode 100644 mods/castrum/schematics/Sandmine/Sandmine_0.mts create mode 100644 mods/castrum/schematics/Sandmine/Sandmine_1.mts create mode 100644 mods/castrum/schematics/Sandmine/Sandmine_2.mts create mode 100644 mods/castrum/schematics/Sandmine/Sandmine_3.mts create mode 100644 mods/castrum/schematics/Sandmine/Sandmine_4.mts create mode 100644 mods/castrum/schematics/Sector/sector1.mts create mode 100644 mods/castrum/schematics/Sector/sector2.mts create mode 100644 mods/castrum/schematics/Sector/sector3.mts create mode 100644 mods/castrum/schematics/Sector/sector4.mts create mode 100644 mods/castrum/schematics/Sector/sector5.mts create mode 100644 mods/castrum/schematics/Sector/sector6.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_0.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_1.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_2.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_3.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_4.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_5.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_6.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_7.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_c0.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_i0.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_i6.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_i7.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_m0.mts create mode 100644 mods/castrum/schematics/Ship1/Ship1_m7.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_0.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_1.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_10.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_11.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_12.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_13.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_14.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_2.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_3.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_4.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_5.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_6.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_7.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_8.mts create mode 100644 mods/castrum/schematics/Ship2/Ship2_9.mts create mode 100644 mods/castrum/schematics/Smithy/Smithy_0.mts create mode 100644 mods/castrum/schematics/Smithy/Smithy_1.mts create mode 100644 mods/castrum/schematics/Smithy/Smithy_2.mts create mode 100644 mods/castrum/schematics/Smithy/Smithy_3.mts create mode 100644 mods/castrum/schematics/Smithy/Smithy_4.mts create mode 100644 mods/castrum/schematics/Smithy/Smithy_5.mts create mode 100644 mods/castrum/schematics/Smithy/Smithy_6.mts create mode 100644 mods/castrum/schematics/Smithy/Smithy_7.mts create mode 100644 mods/castrum/schematics/Smithy/Smithy_8.mts create mode 100644 mods/castrum/schematics/Stable/Stable_0.mts create mode 100644 mods/castrum/schematics/Stable/Stable_1.mts create mode 100644 mods/castrum/schematics/Stable/Stable_2.mts create mode 100644 mods/castrum/schematics/Stable/Stable_3.mts create mode 100644 mods/castrum/schematics/Stable/Stable_4.mts create mode 100644 mods/castrum/schematics/Stable/Stable_5.mts create mode 100644 mods/castrum/schematics/Stable/Stable_6.mts create mode 100644 mods/castrum/schematics/Stable/Stable_7.mts create mode 100644 mods/castrum/schematics/Stable/Stable_8.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_0.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_1.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_10.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_11.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_12.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_13.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_14.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_15.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_16.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_17.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_18.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_19.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_2.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_20.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_21.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_22.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_23.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_24.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_3.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_4.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_5.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_6.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_7.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_8.mts create mode 100644 mods/castrum/schematics/Tower1/Tower1_9.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_0.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_1.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_10.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_11.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_12.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_13.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_14.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_15.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_16.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_17.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_18.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_19.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_2.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_20.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_21.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_22.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_23.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_24.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_3.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_4.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_5.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_6.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_7.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_8.mts create mode 100644 mods/castrum/schematics/Tower2/Tower2_9.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_0.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_1.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_10.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_11.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_12.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_13.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_14.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_15.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_16.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_17.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_18.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_19.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_2.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_20.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_21.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_22.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_23.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_24.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_3.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_4.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_5.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_6.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_7.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_8.mts create mode 100644 mods/castrum/schematics/Tower3/Tower3_9.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_0.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_1.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_10.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_11.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_12.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_13.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_14.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_15.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_16.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_17.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_18.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_19.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_2.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_20.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_21.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_22.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_23.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_24.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_3.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_4.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_5.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_6.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_7.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_8.mts create mode 100644 mods/castrum/schematics/Tower4/Tower4_9.mts create mode 100644 mods/castrum/schematics/Tree/Tree_0.mts create mode 100644 mods/castrum/schematics/Tree/Tree_1.mts create mode 100644 mods/castrum/schematics/Tree/Tree_2.mts create mode 100644 mods/castrum/schematics/Tree/Tree_3.mts create mode 100644 mods/castrum/schematics/Tree/Tree_4.mts create mode 100644 mods/castrum/schematics/Tree/Tree_5.mts create mode 100644 mods/castrum/schematics/Tree/Tree_6.mts create mode 100644 mods/castrum/schematics/Tree/Tree_7.mts create mode 100644 mods/castrum/schematics/Walle/Walle_0.mts create mode 100644 mods/castrum/schematics/Walle/Walle_1.mts create mode 100644 mods/castrum/schematics/Walle/Walle_10.mts create mode 100644 mods/castrum/schematics/Walle/Walle_11.mts create mode 100644 mods/castrum/schematics/Walle/Walle_12.mts create mode 100644 mods/castrum/schematics/Walle/Walle_13.mts create mode 100644 mods/castrum/schematics/Walle/Walle_14.mts create mode 100644 mods/castrum/schematics/Walle/Walle_15.mts create mode 100644 mods/castrum/schematics/Walle/Walle_16.mts create mode 100644 mods/castrum/schematics/Walle/Walle_17.mts create mode 100644 mods/castrum/schematics/Walle/Walle_18.mts create mode 100644 mods/castrum/schematics/Walle/Walle_19.mts create mode 100644 mods/castrum/schematics/Walle/Walle_2.mts create mode 100644 mods/castrum/schematics/Walle/Walle_20.mts create mode 100644 mods/castrum/schematics/Walle/Walle_3.mts create mode 100644 mods/castrum/schematics/Walle/Walle_4.mts create mode 100644 mods/castrum/schematics/Walle/Walle_5.mts create mode 100644 mods/castrum/schematics/Walle/Walle_6.mts create mode 100644 mods/castrum/schematics/Walle/Walle_7.mts create mode 100644 mods/castrum/schematics/Walle/Walle_8.mts create mode 100644 mods/castrum/schematics/Walle/Walle_9.mts create mode 100644 mods/castrum/schematics/Walln/Walln_0.mts create mode 100644 mods/castrum/schematics/Walln/Walln_1.mts create mode 100644 mods/castrum/schematics/Walln/Walln_10.mts create mode 100644 mods/castrum/schematics/Walln/Walln_11.mts create mode 100644 mods/castrum/schematics/Walln/Walln_12.mts create mode 100644 mods/castrum/schematics/Walln/Walln_13.mts create mode 100644 mods/castrum/schematics/Walln/Walln_14.mts create mode 100644 mods/castrum/schematics/Walln/Walln_15.mts create mode 100644 mods/castrum/schematics/Walln/Walln_16.mts create mode 100644 mods/castrum/schematics/Walln/Walln_17.mts create mode 100644 mods/castrum/schematics/Walln/Walln_18.mts create mode 100644 mods/castrum/schematics/Walln/Walln_19.mts create mode 100644 mods/castrum/schematics/Walln/Walln_2.mts create mode 100644 mods/castrum/schematics/Walln/Walln_20.mts create mode 100644 mods/castrum/schematics/Walln/Walln_3.mts create mode 100644 mods/castrum/schematics/Walln/Walln_4.mts create mode 100644 mods/castrum/schematics/Walln/Walln_5.mts create mode 100644 mods/castrum/schematics/Walln/Walln_6.mts create mode 100644 mods/castrum/schematics/Walln/Walln_7.mts create mode 100644 mods/castrum/schematics/Walln/Walln_8.mts create mode 100644 mods/castrum/schematics/Walln/Walln_9.mts create mode 100644 mods/castrum/schematics/Walls/Walls_0.mts create mode 100644 mods/castrum/schematics/Walls/Walls_1.mts create mode 100644 mods/castrum/schematics/Walls/Walls_10.mts create mode 100644 mods/castrum/schematics/Walls/Walls_11.mts create mode 100644 mods/castrum/schematics/Walls/Walls_12.mts create mode 100644 mods/castrum/schematics/Walls/Walls_13.mts create mode 100644 mods/castrum/schematics/Walls/Walls_14.mts create mode 100644 mods/castrum/schematics/Walls/Walls_15.mts create mode 100644 mods/castrum/schematics/Walls/Walls_16.mts create mode 100644 mods/castrum/schematics/Walls/Walls_17.mts create mode 100644 mods/castrum/schematics/Walls/Walls_18.mts create mode 100644 mods/castrum/schematics/Walls/Walls_19.mts create mode 100644 mods/castrum/schematics/Walls/Walls_2.mts create mode 100644 mods/castrum/schematics/Walls/Walls_20.mts create mode 100644 mods/castrum/schematics/Walls/Walls_3.mts create mode 100644 mods/castrum/schematics/Walls/Walls_4.mts create mode 100644 mods/castrum/schematics/Walls/Walls_5.mts create mode 100644 mods/castrum/schematics/Walls/Walls_6.mts create mode 100644 mods/castrum/schematics/Walls/Walls_7.mts create mode 100644 mods/castrum/schematics/Walls/Walls_8.mts create mode 100644 mods/castrum/schematics/Walls/Walls_9.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_0.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_1.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_10.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_11.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_12.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_13.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_14.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_15.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_16.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_17.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_18.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_19.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_2.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_20.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_3.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_4.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_5.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_6.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_7.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_8.mts create mode 100644 mods/castrum/schematics/Wallw/Wallw_9.mts delete mode 100644 mods/creative/depends.txt create mode 100644 mods/creative/locale/creative.de.tr create mode 100644 mods/creative/locale/creative.es.tr create mode 100644 mods/creative/locale/creative.fr.tr create mode 100644 mods/creative/locale/creative.it.tr create mode 100644 mods/creative/locale/template.txt create mode 100644 mods/creative/mod.conf delete mode 100644 mods/default/depends.txt create mode 100644 mods/default/locale/default.de.tr create mode 100644 mods/default/locale/default.es.tr create mode 100644 mods/default/locale/default.fr.tr create mode 100644 mods/default/locale/default.it.tr create mode 100644 mods/default/locale/template.txt create mode 100644 mods/default/mod.conf create mode 100644 mods/default/textures/default_dry_dirt.png delete mode 100644 mods/doors/depends.txt create mode 100644 mods/doors/locale/doors.de.tr create mode 100644 mods/doors/locale/doors.es.tr create mode 100644 mods/doors/locale/doors.fr.tr create mode 100644 mods/doors/locale/doors.it.tr create mode 100644 mods/doors/locale/template.txt create mode 100644 mods/doors/mod.conf delete mode 100644 mods/dungeon_loot/depends.txt create mode 100644 mods/dungeon_loot/mod.conf delete mode 100644 mods/dye/depends.txt create mode 100644 mods/dye/locale/dye.de.tr create mode 100644 mods/dye/locale/dye.es.tr create mode 100644 mods/dye/locale/dye.fr.tr create mode 100644 mods/dye/locale/dye.it.tr create mode 100644 mods/dye/locale/template.txt create mode 100644 mods/dye/mod.conf create mode 100644 mods/env_sounds/README.txt create mode 100644 mods/env_sounds/init.lua create mode 100644 mods/env_sounds/license.txt create mode 100644 mods/env_sounds/mod.conf create mode 100644 mods/env_sounds/sounds/env_sounds_water.1.ogg create mode 100644 mods/env_sounds/sounds/env_sounds_water.2.ogg create mode 100644 mods/env_sounds/sounds/env_sounds_water.3.ogg create mode 100644 mods/env_sounds/sounds/env_sounds_water.4.ogg delete mode 100644 mods/farming/depends.txt create mode 100644 mods/farming/locale/farming.de.tr create mode 100644 mods/farming/locale/farming.es.tr create mode 100644 mods/farming/locale/farming.fr.tr create mode 100644 mods/farming/locale/farming.it.tr create mode 100644 mods/farming/locale/template.txt create mode 100644 mods/farming/mod.conf delete mode 100644 mods/fire/depends.txt create mode 100644 mods/fire/locale/fire.de.tr create mode 100644 mods/fire/locale/fire.es.tr create mode 100644 mods/fire/locale/fire.fr.tr create mode 100644 mods/fire/locale/fire.it.tr create mode 100644 mods/fire/locale/template.txt create mode 100644 mods/fire/mod.conf delete mode 100644 mods/fireflies/depends.txt create mode 100644 mods/fireflies/locale/fireflies.de.tr create mode 100644 mods/fireflies/locale/fireflies.es.tr create mode 100644 mods/fireflies/locale/fireflies.fr.tr create mode 100644 mods/fireflies/locale/fireflies.it.tr create mode 100644 mods/fireflies/locale/template.txt create mode 100644 mods/fireflies/mod.conf rename mods/{bones => flatgen}/depends.txt (100%) create mode 100644 mods/flatgen/init.lua create mode 100644 mods/flatgen/init_legacy.lua create mode 100644 mods/flatgen/mod.conf delete mode 100644 mods/flowers/depends.txt create mode 100644 mods/flowers/locale/flowers.de.tr create mode 100644 mods/flowers/locale/flowers.es.tr create mode 100644 mods/flowers/locale/flowers.fr.tr create mode 100644 mods/flowers/locale/flowers.it.tr create mode 100644 mods/flowers/locale/template.txt create mode 100644 mods/flowers/mod.conf create mode 100644 mods/game_commands/locale/game_commands.de.tr create mode 100644 mods/game_commands/locale/game_commands.es.tr create mode 100644 mods/game_commands/locale/game_commands.fr.tr create mode 100644 mods/game_commands/locale/game_commands.it.tr create mode 100644 mods/game_commands/locale/template.txt create mode 100644 mods/game_commands/mod.conf delete mode 100644 mods/give_initial_stuff/depends.txt create mode 100644 mods/give_initial_stuff/mod.conf delete mode 100644 mods/map/depends.txt create mode 100644 mods/map/locale/map.de.tr create mode 100644 mods/map/locale/map.es.tr create mode 100644 mods/map/locale/map.fr.tr create mode 100644 mods/map/locale/map.it.tr create mode 100644 mods/map/locale/template.txt create mode 100644 mods/map/mod.conf delete mode 100644 mods/mapfix/LICENSE delete mode 100644 mods/mapfix/README.md delete mode 100644 mods/mapfix/description.txt delete mode 100644 mods/mapfix/init.lua delete mode 100644 mods/mapfix/mod.conf create mode 100644 mods/player_api/mod.conf create mode 100644 mods/screwdriver/locale/screwdriver.de.tr create mode 100644 mods/screwdriver/locale/screwdriver.es.tr create mode 100644 mods/screwdriver/locale/screwdriver.fr.tr create mode 100644 mods/screwdriver/locale/screwdriver.it.tr create mode 100644 mods/screwdriver/locale/template.txt create mode 100644 mods/screwdriver/mod.conf create mode 100644 mods/sethome/locale/sethome.de.tr create mode 100644 mods/sethome/locale/sethome.es.tr create mode 100644 mods/sethome/locale/sethome.fr.tr create mode 100644 mods/sethome/locale/sethome.it.tr create mode 100644 mods/sethome/locale/template.txt create mode 100644 mods/sethome/mod.conf create mode 100644 mods/sfinv/locale/sfinv.de.tr create mode 100644 mods/sfinv/locale/sfinv.es.tr create mode 100644 mods/sfinv/locale/sfinv.fr.tr create mode 100644 mods/sfinv/locale/sfinv.it.tr create mode 100644 mods/sfinv/locale/template.txt create mode 100644 mods/sfinv/mod.conf create mode 100644 mods/sfinv/textures/sfinv_crafting_arrow.png delete mode 100644 mods/spawn/depends.txt create mode 100644 mods/spawn/mod.conf delete mode 100644 mods/stairs/depends.txt create mode 100644 mods/stairs/locale/stairs.de.tr create mode 100644 mods/stairs/locale/stairs.es.tr create mode 100644 mods/stairs/locale/stairs.fr.tr create mode 100644 mods/stairs/locale/stairs.it.tr create mode 100644 mods/stairs/locale/template.txt create mode 100644 mods/stairs/mod.conf delete mode 100644 mods/tnt/depends.txt create mode 100644 mods/tnt/locale/template.txt create mode 100644 mods/tnt/locale/tnt.de.tr create mode 100644 mods/tnt/locale/tnt.es.tr create mode 100644 mods/tnt/locale/tnt.fr.tr create mode 100644 mods/tnt/locale/tnt.it.tr create mode 100644 mods/tnt/mod.conf delete mode 100644 mods/vessels/depends.txt create mode 100644 mods/vessels/locale/template.txt create mode 100644 mods/vessels/locale/vessels.de.tr create mode 100644 mods/vessels/locale/vessels.es.tr create mode 100644 mods/vessels/locale/vessels.fr.tr create mode 100644 mods/vessels/locale/vessels.it.tr create mode 100644 mods/vessels/mod.conf delete mode 100644 mods/walls/depends.txt create mode 100644 mods/walls/locale/template.txt create mode 100644 mods/walls/locale/walls.de.tr create mode 100644 mods/walls/locale/walls.es.tr create mode 100644 mods/walls/locale/walls.fr.tr create mode 100644 mods/walls/locale/walls.it.tr create mode 100644 mods/walls/mod.conf delete mode 100644 mods/wool/depends.txt create mode 100644 mods/wool/locale/template.txt create mode 100644 mods/wool/locale/wool.de.tr create mode 100644 mods/wool/locale/wool.es.tr create mode 100644 mods/wool/locale/wool.fr.tr create mode 100644 mods/wool/locale/wool.it.tr create mode 100644 mods/wool/mod.conf delete mode 100644 mods/worldedit/worldedit_brush/depends.txt delete mode 100644 mods/worldedit/worldedit_brush/init.lua delete mode 100644 mods/worldedit/worldedit_brush/textures/worldedit_brush.png delete mode 100644 mods/xpanes/depends.txt create mode 100644 mods/xpanes/locale/template.txt create mode 100644 mods/xpanes/locale/xpanes.de.tr create mode 100644 mods/xpanes/locale/xpanes.es.tr create mode 100644 mods/xpanes/locale/xpanes.fr.tr create mode 100644 mods/xpanes/locale/xpanes.it.tr create mode 100644 mods/xpanes/mod.conf create mode 100644 mods/xpanes/sounds/xpanes_steel_bar_door_close.ogg create mode 100644 mods/xpanes/sounds/xpanes_steel_bar_door_open.ogg create mode 100644 mods/xpanes/textures/xpanes_door_steel_bar.png create mode 100644 mods/xpanes/textures/xpanes_item_steel_bar.png create mode 100644 mods/xpanes/textures/xpanes_trapdoor_steel_bar.png create mode 100644 mods/xpanes/textures/xpanes_trapdoor_steel_bar_side.png diff --git a/README.txt b/README.txt index df5416c..3401f60 100644 --- a/README.txt +++ b/README.txt @@ -15,5 +15,4 @@ See README.txt in each mod for more information Every code written by me is LGPLv2.1 notes: -wood door in doors mod changed -chest in default mod changed \ No newline at end of file +wood door in doors mod changed \ No newline at end of file diff --git a/menu/Thumbs.db b/menu/Thumbs.db index 37fa9ea29b014400a39250d4cee07acbf99d79a4..ef593c86a3c5d139e52c9d3023c973c0fced6a1a 100644 GIT binary patch delta 65 zcmZp;!`N_#aYGIZn**=Zr}OVO7qQG^=9unuSV3}+Z0ckQjvXA^<9w1XxUg*BoS37* OIEhODAt1r^A{hWiCK&Mm delta 65 zcmZp;!`N_#aYGIZ+l7ykx#H%Vi&*9{bG*H?@7S(1lf9EAICgNH{ctDtuThxQ=ENKg O#z|ZP2muMM7s&v= share_bones_time then - meta:set_string("infotext", meta:get_string("owner") .. "'s old bones") + meta:set_string("infotext", S("@1's old bones", meta:get_string("owner"))) meta:set_string("owner", "") else meta:set_int("time", time) @@ -194,7 +199,7 @@ minetest.register_on_dieplayer(function(player) minetest.log("action", player_name .. " dies at " .. pos_string .. ". No bones placed") if bones_position_message then - minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. ".") + minetest.chat_send_player(player_name, S("@1 died at @2.", player_name, pos_string)) end return end @@ -204,7 +209,7 @@ minetest.register_on_dieplayer(function(player) minetest.log("action", player_name .. " dies at " .. pos_string .. ". No bones placed") if bones_position_message then - minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. ".") + minetest.chat_send_player(player_name, S("@1 died at @2.", player_name, pos_string)) end return end @@ -230,8 +235,7 @@ minetest.register_on_dieplayer(function(player) minetest.log("action", player_name .. " dies at " .. pos_string .. ". Inventory dropped") if bones_position_message then - minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. - ", and dropped their inventory.") + minetest.chat_send_player(player_name, S("@1 died at @2, and dropped their inventory.", player_name, pos_string)) end return end @@ -242,8 +246,7 @@ minetest.register_on_dieplayer(function(player) minetest.log("action", player_name .. " dies at " .. pos_string .. ". Bones placed") if bones_position_message then - minetest.chat_send_player(player_name, player_name .. " died at " .. pos_string .. - ", and bones were placed.") + minetest.chat_send_player(player_name, S("@1 died at @2, and bones were placed.", player_name, pos_string)) end local meta = minetest.get_meta(pos) @@ -266,7 +269,7 @@ minetest.register_on_dieplayer(function(player) meta:set_string("owner", player_name) if share_bones_time ~= 0 then - meta:set_string("infotext", player_name .. "'s fresh bones") + meta:set_string("infotext", S("@1's fresh bones", player_name)) if share_bones_time_early == 0 or not minetest.is_protected(pos, player_name) then meta:set_int("time", 0) @@ -276,6 +279,6 @@ minetest.register_on_dieplayer(function(player) minetest.get_node_timer(pos):start(10) else - meta:set_string("infotext", player_name.."'s bones") + meta:set_string("infotext", S("@1's bones", player_name)) end end) diff --git a/mods/bones/locale/bones.de.tr b/mods/bones/locale/bones.de.tr new file mode 100644 index 0000000..83f5c28 --- /dev/null +++ b/mods/bones/locale/bones.de.tr @@ -0,0 +1,8 @@ +# textdomain: bones +Bones=Knochen +@1's old bones=Alte Knochen von @1 +@1 died at @2.=@1 starb bei @2. +@1 died at @2, and dropped their inventory.=@1 starb bei @2 und ließ das Inventar fallen. +@1 died at @2, and bones were placed.=@1 starb bei @2 und Knochen wurden platziert. +@1's fresh bones=Frische Knochen von @1 +@1's bones=Knochen von @1 diff --git a/mods/bones/locale/bones.es.tr b/mods/bones/locale/bones.es.tr new file mode 100644 index 0000000..9c45513 --- /dev/null +++ b/mods/bones/locale/bones.es.tr @@ -0,0 +1,8 @@ +# textdomain: bones +Bones=Huesos +@1's old bones=Huesos antiguos de @1 +@1 died at @2.=@1 murió en @2. +@1 died at @2, and dropped their inventory.=@1 murió en @2, y su inventario se desprendió. +@1 died at @2, and bones were placed.=@1 murió en @2, y sus huesos fueron depositados. +@1's fresh bones=Huesos recientes de @1 +@1's bones=Huesos de @1 diff --git a/mods/bones/locale/bones.fr.tr b/mods/bones/locale/bones.fr.tr new file mode 100644 index 0000000..cfe01ee --- /dev/null +++ b/mods/bones/locale/bones.fr.tr @@ -0,0 +1,8 @@ +# textdomain: bones +Bones=Os +@1's old bones=Vieux os de @1 +@1 died at @2.=@1 est mort à @2. +@1 died at @2, and dropped their inventory.=@1 est mort à @2 et a laissé tomber son inventaire. +@1 died at @2, and bones were placed.=@1 est mort à @2 et ses os ont été placés. +@1's fresh bones=Os frais de @1 +@1's bones=Os de @1 diff --git a/mods/bones/locale/bones.it.tr b/mods/bones/locale/bones.it.tr new file mode 100644 index 0000000..9eed2cc --- /dev/null +++ b/mods/bones/locale/bones.it.tr @@ -0,0 +1,8 @@ +# textdomain: bones +Bones=Ossa +@1's old bones=Ossa vecchie di @1 +@1 died at @2.=@1 è morto alla posizione @2. +@1 died at @2, and dropped their inventory.=@1 è morto alla posizione @2, e ha lasciato a terra il contenuto del suo inventario. +@1 died at @2, and bones were placed.=@1 è morto alla posizione @2, e vi sono state posizionate delle ossa. +@1's fresh bones=Ossa fresche di @1 +@1's bones=Ossa di @1 \ No newline at end of file diff --git a/mods/bones/locale/template.txt b/mods/bones/locale/template.txt new file mode 100644 index 0000000..4ac8d45 --- /dev/null +++ b/mods/bones/locale/template.txt @@ -0,0 +1,8 @@ +# textdomain: bones +Bones= +@1's old bones= +@1 died at @2.= +@1 died at @2, and dropped their inventory.= +@1 died at @2, and bones were placed.= +@1's fresh bones= +@1's bones= diff --git a/mods/bones/mod.conf b/mods/bones/mod.conf new file mode 100644 index 0000000..371997b --- /dev/null +++ b/mods/bones/mod.conf @@ -0,0 +1,3 @@ +name = bones +description = Minetest Game mod: bones +depends = default diff --git a/mods/bucket/depends.txt b/mods/bucket/depends.txt deleted file mode 100644 index 3a7daa1..0000000 --- a/mods/bucket/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default - diff --git a/mods/bucket/init.lua b/mods/bucket/init.lua index 1d37cb4..2cf431c 100644 --- a/mods/bucket/init.lua +++ b/mods/bucket/init.lua @@ -1,15 +1,19 @@ -- Minetest 0.4 mod: bucket -- See README.txt for licensing and other information. +-- Load support for MT game translation. +local S = minetest.get_translator("bucket") + + minetest.register_alias("bucket", "bucket:bucket_empty") minetest.register_alias("bucket_water", "bucket:bucket_water") minetest.register_alias("bucket_lava", "bucket:bucket_lava") minetest.register_craft({ - output = 'bucket:bucket_empty 1', + output = "bucket:bucket_empty 1", recipe = { - {'default:steel_ingot', '', 'default:steel_ingot'}, - {'', 'default:steel_ingot', ''}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"", "default:steel_ingot", ""}, } }) @@ -111,9 +115,9 @@ function bucket.register_liquid(source, flowing, itemname, inventory_image, name end minetest.register_craftitem("bucket:bucket_empty", { - description = "Empty Bucket", + description = S("Empty Bucket"), inventory_image = "bucket.png", - stack_max = 99, + groups = {tool = 1}, liquids_pointable = true, on_use = function(itemstack, user, pointed_thing) if pointed_thing.type == "object" then @@ -185,8 +189,8 @@ bucket.register_liquid( "default:water_flowing", "bucket:bucket_water", "bucket_water.png", - "Water Bucket", - {water_bucket = 1} + S("Water Bucket"), + {tool = 1, water_bucket = 1} ) -- River water source is 'liquid_renewable = false' to avoid horizontal spread @@ -200,8 +204,8 @@ bucket.register_liquid( "default:river_water_flowing", "bucket:bucket_river_water", "bucket_river_water.png", - "River Water Bucket", - {water_bucket = 1}, + S("River Water Bucket"), + {tool = 1, water_bucket = 1}, true ) @@ -210,7 +214,8 @@ bucket.register_liquid( "default:lava_flowing", "bucket:bucket_lava", "bucket_lava.png", - "Lava Bucket" + S("Lava Bucket"), + {tool = 1} ) minetest.register_craft({ diff --git a/mods/bucket/locale/bucket.de.tr b/mods/bucket/locale/bucket.de.tr new file mode 100644 index 0000000..570dff1 --- /dev/null +++ b/mods/bucket/locale/bucket.de.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Leerer Eimer +Water Bucket=Wassereimer +River Water Bucket=Flusswassereimer +Lava Bucket=Lavaeimer diff --git a/mods/bucket/locale/bucket.es.tr b/mods/bucket/locale/bucket.es.tr new file mode 100644 index 0000000..91a0623 --- /dev/null +++ b/mods/bucket/locale/bucket.es.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Cubo vacío +Water Bucket=Cubo con agua +River Water Bucket=Cubo con agua de río +Lava Bucket=Cubo con lava diff --git a/mods/bucket/locale/bucket.fr.tr b/mods/bucket/locale/bucket.fr.tr new file mode 100644 index 0000000..5065150 --- /dev/null +++ b/mods/bucket/locale/bucket.fr.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Seau vide +Water Bucket=Seau d'eau +River Water Bucket=Seau d'eau de rivière +Lava Bucket=Seau de lave diff --git a/mods/bucket/locale/bucket.it.tr b/mods/bucket/locale/bucket.it.tr new file mode 100644 index 0000000..1c8de2e --- /dev/null +++ b/mods/bucket/locale/bucket.it.tr @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket=Secchio vuoto +Water Bucket=Secchio d'acqua +River Water Bucket=Secchio d'acqua di fiume +Lava Bucket=Secchio di lava \ No newline at end of file diff --git a/mods/bucket/locale/template.txt b/mods/bucket/locale/template.txt new file mode 100644 index 0000000..a37c103 --- /dev/null +++ b/mods/bucket/locale/template.txt @@ -0,0 +1,5 @@ +# textdomain: bucket +Empty Bucket= +Water Bucket= +River Water Bucket= +Lava Bucket= diff --git a/mods/bucket/mod.conf b/mods/bucket/mod.conf new file mode 100644 index 0000000..1c60a09 --- /dev/null +++ b/mods/bucket/mod.conf @@ -0,0 +1,3 @@ +name = bucket +description = Minetest Game mod: bucket +depends = default diff --git a/mods/butterflies/depends.txt b/mods/butterflies/depends.txt deleted file mode 100644 index df07aca..0000000 --- a/mods/butterflies/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -flowers \ No newline at end of file diff --git a/mods/butterflies/init.lua b/mods/butterflies/init.lua index 008211e..6fd839f 100644 --- a/mods/butterflies/init.lua +++ b/mods/butterflies/init.lua @@ -1,8 +1,13 @@ +-- butterflies/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("butterflies") + -- register butterflies local butter_list = { - {"white", "White"}, - {"red", "Red"}, - {"violet", "Violet"} + {"white", S("White Butterfly")}, + {"red", S("Red Butterfly")}, + {"violet", S("Violet Butterfly")} } for i in ipairs (butter_list) do @@ -10,7 +15,7 @@ for i in ipairs (butter_list) do local desc = butter_list[i][2] minetest.register_node("butterflies:butterfly_"..name, { - description = desc.." Butterfly", + description = desc, drawtype = "plantlike", tiles = {{ name = "butterflies_butterfly_"..name.."_animated.png", @@ -56,10 +61,9 @@ for i in ipairs (butter_list) do }) minetest.register_node("butterflies:hidden_butterfly_"..name, { - description = "Hidden "..desc.." Butterfly", drawtype = "airlike", - inventory_image = "insects_butterfly_"..name..".png", - wield_image = "insects_butterfly_"..name..".png", + inventory_image = "butterflies_butterfly_"..name..".png", + wield_image = "butterflies_butterfly_"..name..".png", paramtype = "light", sunlight_propagates = true, walkable = false, diff --git a/mods/butterflies/locale/butterflies.de.tr b/mods/butterflies/locale/butterflies.de.tr new file mode 100644 index 0000000..2f1b982 --- /dev/null +++ b/mods/butterflies/locale/butterflies.de.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Weißer Schmetterling +Red Butterfly=Roter Schmetterling +Violet Butterfly=Violetter Schmetterling diff --git a/mods/butterflies/locale/butterflies.es.tr b/mods/butterflies/locale/butterflies.es.tr new file mode 100644 index 0000000..59a28eb --- /dev/null +++ b/mods/butterflies/locale/butterflies.es.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Mariposa blanca +Red Butterfly=Mariposa roja +Violet Butterfly=Mariposa violeta diff --git a/mods/butterflies/locale/butterflies.fr.tr b/mods/butterflies/locale/butterflies.fr.tr new file mode 100644 index 0000000..8f5c094 --- /dev/null +++ b/mods/butterflies/locale/butterflies.fr.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Papillon blanc +Red Butterfly=Papillon rouge +Violet Butterfly=Papillon violet diff --git a/mods/butterflies/locale/butterflies.it.tr b/mods/butterflies/locale/butterflies.it.tr new file mode 100644 index 0000000..83c9ccf --- /dev/null +++ b/mods/butterflies/locale/butterflies.it.tr @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly=Farfalla bianca +Red Butterfly=Farfalla rossa +Violet Butterfly=Farfalla viola \ No newline at end of file diff --git a/mods/butterflies/locale/template.txt b/mods/butterflies/locale/template.txt new file mode 100644 index 0000000..d89503a --- /dev/null +++ b/mods/butterflies/locale/template.txt @@ -0,0 +1,4 @@ +# textdomain: butterflies +White Butterfly= +Red Butterfly= +Violet Butterfly= diff --git a/mods/butterflies/mod.conf b/mods/butterflies/mod.conf new file mode 100644 index 0000000..1c66497 --- /dev/null +++ b/mods/butterflies/mod.conf @@ -0,0 +1,3 @@ +name = butterflies +description = Minetest Game mod: Butterflies +depends = default, flowers diff --git a/mods/carts/cart_entity.lua b/mods/carts/cart_entity.lua index 855450d..3c131a6 100644 --- a/mods/carts/cart_entity.lua +++ b/mods/carts/cart_entity.lua @@ -1,3 +1,8 @@ +-- carts/cart_entity.lua + +-- support for MT game translation. +local S = carts.get_translator + local cart_entity = { initial_properties = { physical = false, -- otherwise going uphill breaks @@ -383,7 +388,7 @@ end minetest.register_entity("carts:cart", cart_entity) minetest.register_craftitem("carts:cart", { - description = "Cart (Sneak+Click to pick up)", + description = S("Cart") .. "\n" .. S("(Sneak+Click to pick up)"), inventory_image = minetest.inventorycube("carts_cart_top.png", "carts_cart_side.png", "carts_cart_side.png"), wield_image = "carts_cart_side.png", on_place = function(itemstack, placer, pointed_thing) diff --git a/mods/carts/depends.txt b/mods/carts/depends.txt deleted file mode 100644 index 8e482ce..0000000 --- a/mods/carts/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -player_api diff --git a/mods/carts/init.lua b/mods/carts/init.lua index fe45303..a5aa9cb 100644 --- a/mods/carts/init.lua +++ b/mods/carts/init.lua @@ -1,7 +1,12 @@ +-- carts/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("carts") carts = {} carts.modpath = minetest.get_modpath("carts") carts.railparams = {} +carts.get_translator = S -- Maximal speed of the cart in m/s (min = -1) carts.speed_max = 7 diff --git a/mods/carts/locale/carts.de.tr b/mods/carts/locale/carts.de.tr new file mode 100644 index 0000000..89a33ac --- /dev/null +++ b/mods/carts/locale/carts.de.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Lore +(Sneak+Click to pick up)=(Schleichen u. Klicken zum Aufheben) +Rail=Schiene +Powered Rail=Antriebsschiene +Brake Rail=Bremsschiene diff --git a/mods/carts/locale/carts.es.tr b/mods/carts/locale/carts.es.tr new file mode 100644 index 0000000..c0857a1 --- /dev/null +++ b/mods/carts/locale/carts.es.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Vagoneta +(Sneak+Click to pick up)=(Agacharse+Clic para recoger) +Rail=Raíl +Powered Rail=Raíl energizado +Brake Rail=Raíl de frenado diff --git a/mods/carts/locale/carts.fr.tr b/mods/carts/locale/carts.fr.tr new file mode 100644 index 0000000..b092f14 --- /dev/null +++ b/mods/carts/locale/carts.fr.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Chariot +(Sneak+Click to pick up)=(Se baisser + clic pour ramasser) +Rail=Rail +Powered Rail=Rail de traction +Brake Rail=Rail de freinage diff --git a/mods/carts/locale/carts.it.tr b/mods/carts/locale/carts.it.tr new file mode 100644 index 0000000..7392d26 --- /dev/null +++ b/mods/carts/locale/carts.it.tr @@ -0,0 +1,6 @@ +# textdomain: carts +Cart=Vagone +(Sneak+Click to pick up)=(Strisciare+Click per raccoglierlo) +Rail=Binario +Powered Rail=Binario alimentato +Brake Rail=Binario freno \ No newline at end of file diff --git a/mods/carts/locale/template.txt b/mods/carts/locale/template.txt new file mode 100644 index 0000000..a67d95f --- /dev/null +++ b/mods/carts/locale/template.txt @@ -0,0 +1,6 @@ +# textdomain: carts +Cart= +(Sneak+Click to pick up)= +Rail= +Powered Rail= +Brake Rail= diff --git a/mods/carts/mod.conf b/mods/carts/mod.conf new file mode 100644 index 0000000..20357e3 --- /dev/null +++ b/mods/carts/mod.conf @@ -0,0 +1,3 @@ +name = carts +description = Carts (formerly boost_cart) +depends = default, player_api diff --git a/mods/carts/rails.lua b/mods/carts/rails.lua index a5fff8a..8bd2ba1 100644 --- a/mods/carts/rails.lua +++ b/mods/carts/rails.lua @@ -1,5 +1,10 @@ +-- carts/rails.lua + +-- support for MT game translation. +local S = carts.get_translator + carts:register_rail("carts:rail", { - description = "Rail", + description = S("Rail"), tiles = { "carts_rail_straight.png", "carts_rail_curved.png", "carts_rail_t_junction.png", "carts_rail_crossing.png" @@ -22,7 +27,7 @@ minetest.register_alias("default:rail", "carts:rail") carts:register_rail("carts:powerrail", { - description = "Powered Rail", + description = S("Powered Rail"), tiles = { "carts_rail_straight_pwr.png", "carts_rail_curved_pwr.png", "carts_rail_t_junction_pwr.png", "carts_rail_crossing_pwr.png" @@ -41,7 +46,7 @@ minetest.register_craft({ carts:register_rail("carts:brakerail", { - description = "Brake Rail", + description = S("Brake Rail"), tiles = { "carts_rail_straight_brk.png", "carts_rail_curved_brk.png", "carts_rail_t_junction_brk.png", "carts_rail_crossing_brk.png" diff --git a/mods/castrum/bridge_status.lua b/mods/castrum/bridge_status.lua index b917a20..af2f084 100644 --- a/mods/castrum/bridge_status.lua +++ b/mods/castrum/bridge_status.lua @@ -1,4 +1,4 @@ -function Bridge_Status(player) +function Bridge_Status(player,change,update) file = io.open(minetest.get_worldpath().."/SAVE/Bridge.txt", "r") local level = file:read("*l") file:close() @@ -6,102 +6,33 @@ function Bridge_Status(player) local status = file:read("*l") file:close() if tonumber(level) < 9 then - minetest.chat_send_player(player:get_player_name(), "build bridge first") - elseif tonumber(level) == 9 then + if update == false then + minetest.chat_send_player(player:get_player_name(), "build bridge first") + end + minetest.place_schematic({x=-44, y=8, z=-40}, minetest.get_modpath("castrum").."/schematics/Bridge1/Bridge1_"..(tonumber(level))..".mts","0") + else if tonumber(status) == 0 then - file = io.open(minetest.get_worldpath().."/SAVE/Bridge_status.txt", "w") - file:write("1") - file:close() - for j=36,44 do - for i=32,40 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - end - for j=36,44 do - for k=8,16 do - minetest.set_node({x=j*(-1), y=k, z=-32}, {name="default:wood"}) - end - end - minetest.set_node({x=-40, y=12, z=-32}, {name="castrum:bridge2"}) + if change then + file = io.open(minetest.get_worldpath().."/SAVE/Bridge_status.txt", "w") + file:write("1") + file:close() + minetest.place_schematic({x=-44, y=8, z=-40}, minetest.get_modpath("castrum").."/schematics/Bridge1/Bridge1_00.mts","0") + minetest.place_schematic({x=-44, y=8, z=-32}, minetest.get_modpath("castrum").."/schematics/Bridge2/Bridge2_"..(tonumber(level))..".mts","0") + else + minetest.place_schematic({x=-44, y=8, z=-32}, minetest.get_modpath("castrum").."/schematics/Bridge2/Bridge2_0.mts","0") + minetest.place_schematic({x=-44, y=8, z=-40}, minetest.get_modpath("castrum").."/schematics/Bridge1/Bridge1_"..(tonumber(level))..".mts","0") + end elseif tonumber(status) == 1 then - file = io.open(minetest.get_worldpath().."/SAVE/Bridge_status.txt", "w") - file:write("0") - file:close() - for j=36,44 do - for i=32,40 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="default:wood"}) - end - end - minetest.set_node({x=-40, y=8, z=-36}, {name="castrum:bridge"}) - for j=36,44 do - for k=9,16 do - minetest.set_node({x=j*(-1), y=k, z=-32}, {name="air"}) - end - end - end - elseif tonumber(level) == 10 then - if tonumber(status) == 0 then - file = io.open(minetest.get_worldpath().."/SAVE/Bridge_status.txt", "w") - file:write("1") - file:close() - for j=36,44 do - for i=32,40 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - end - for j=36,44 do - for k=8,16 do - minetest.set_node({x=j*(-1), y=k, z=-32}, {name="default:junglewood"}) - end - end - minetest.set_node({x=-40, y=12, z=-32}, {name="castrum:bridge2"}) - elseif tonumber(status) == 1 then - file = io.open(minetest.get_worldpath().."/SAVE/Bridge_status.txt", "w") - file:write("0") - file:close() - for j=36,44 do - for i=32,40 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="default:junglewood"}) - end - end - minetest.set_node({x=-40, y=8, z=-36}, {name="castrum:bridge"}) - for j=36,44 do - for k=9,16 do - minetest.set_node({x=j*(-1), y=k, z=-32}, {name="air"}) - end - end - end - elseif tonumber(level) == 11 then - if tonumber(status) == 0 then - file = io.open(minetest.get_worldpath().."/SAVE/Bridge_status.txt", "w") - file:write("1") - file:close() - for j=36,44 do - for i=32,40 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - end - for j=36,44 do - for k=8,16 do - minetest.set_node({x=j*(-1), y=k, z=-32}, {name="default:pine_wood"}) - end - end - minetest.set_node({x=-40, y=12, z=-32}, {name="castrum:bridge2"}) - elseif tonumber(status) == 1 then - file = io.open(minetest.get_worldpath().."/SAVE/Bridge_status.txt", "w") - file:write("0") - file:close() - for j=36,44 do - for i=32,40 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="default:pine_wood"}) - end - end - minetest.set_node({x=-40, y=8, z=-36}, {name="castrum:bridge"}) - for j=36,44 do - for k=9,16 do - minetest.set_node({x=j*(-1), y=k, z=-32}, {name="air"}) - end - end + if change then + file = io.open(minetest.get_worldpath().."/SAVE/Bridge_status.txt", "w") + file:write("0") + file:close() + minetest.place_schematic({x=-44, y=8, z=-32}, minetest.get_modpath("castrum").."/schematics/Bridge2/Bridge2_0.mts","0") + minetest.place_schematic({x=-44, y=8, z=-40}, minetest.get_modpath("castrum").."/schematics/Bridge1/Bridge1_"..(tonumber(level))..".mts","0") + else + minetest.place_schematic({x=-44, y=8, z=-40}, minetest.get_modpath("castrum").."/schematics/Bridge1/Bridge1_00.mts","0") + minetest.place_schematic({x=-44, y=8, z=-32}, minetest.get_modpath("castrum").."/schematics/Bridge2/Bridge2_"..(tonumber(level))..".mts","0") + end end end end \ No newline at end of file diff --git a/mods/castrum/buildings/Barracks.lua b/mods/castrum/buildings/Barracks.lua deleted file mode 100644 index 77d0342..0000000 --- a/mods/castrum/buildings/Barracks.lua +++ /dev/null @@ -1,76 +0,0 @@ -function Barracks(v,player) - if v+0 == 1 then - for j=37,43 do - for i=25,31 do - minetest.set_node({x=j*(-1), y=9, z=i}, {name="default:cobble"}) - end - end - elseif v+0 == 2 then - for i=25,30 do - minetest.set_node({x=-43, y=10, z=i}, {name="default:cobble"}) - minetest.set_node({x=-37, y=10, z=i}, {name="default:cobble"}) - end - for j=38,42 do - minetest.set_node({x=j*(-1), y=10, z=31}, {name="default:cobble"}) - end - elseif v+0 == 3 then - for i=26,30 do - minetest.set_node({x=-43, y=11, z=i}, {name="default:cobble"}) - minetest.set_node({x=-37, y=11, z=i}, {name="default:cobble"}) - end - for j=38,42 do - minetest.set_node({x=j*(-1), y=11, z=31}, {name="default:cobble"}) - end - elseif v+0 == 4 then - for i=27,30 do - minetest.set_node({x=-43, y=12, z=i}, {name="default:cobble"}) - minetest.set_node({x=-37, y=12, z=i}, {name="default:cobble"}) - end - for j=38,42 do - minetest.set_node({x=j*(-1), y=12, z=31}, {name="default:cobble"}) - end - elseif v+0 == 5 then - for j=38,42 do - for i=27,30 do - minetest.set_node({x=j*(-1), y=13, z=i}, {name="default:cobble"}) - end - end - elseif v+0 == 6 then - minetest.set_node({x=-42, y=10, z=28}, {name="castrum:knight1_sit"}) - minetest.set_node({x=-40, y=10, z=30}, {name="castrum:knight1_sit"}) - minetest.set_node({x=-38, y=10, z=28}, {name="castrum:knight1_sit"}) - minetest.set_node({x=-40, y=10, z=28}, {name="castrum:fire"}) - screwdriver_handler(player, {type="node", under={x=-38, y=10, z=28}, above={x=-38, y=10, z=28}}, 1) - screwdriver_handler(player, {type="node", under={x=-42, y=10, z=28}, above={x=-42, y=10, z=28}}, 1) - screwdriver_handler(player, {type="node", under={x=-42, y=10, z=28}, above={x=-42, y=10, z=28}}, 1) - screwdriver_handler(player, {type="node", under={x=-42, y=10, z=28}, above={x=-42, y=10, z=28}}, 1) - elseif v+0 == 7 then - for j=37,43 do - for i=25,31 do - for k=9,13 do - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:cobble" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 8 then - for j=37,43 do - for i=25,31 do - for k=9,13 do - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:stone_block" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 0 then - for j=37,43 do - for i=25,31 do - for k=9,13 do - minetest.set_node({x=j*(-1), y=k, z=i}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Battleground.lua b/mods/castrum/buildings/Battleground.lua deleted file mode 100644 index 0c08cf1..0000000 --- a/mods/castrum/buildings/Battleground.lua +++ /dev/null @@ -1,135 +0,0 @@ -function Battleground(v,player) - if v+0 == 1 then - for j=72,76 do - for i=80,84 do - minetest.set_node({x=j*(-1), y=9, z=i*(-1)}, {name="default:cobble"}) - end - end - elseif v+0 == 2 then - for j=72,76 do - for i=80,84 do - minetest.set_node({x=j*(-1), y=10, z=i*(-1)}, {name="default:cobble"}) - end - end - minetest.set_node({x=-74, y=10, z=-80}, {name="air"}) - elseif v+0 == 3 then - minetest.set_node({x=-72, y=11, z=-80}, {name="default:cobble"}) - minetest.set_node({x=-72, y=11, z=-82}, {name="default:cobble"}) - minetest.set_node({x=-72, y=11, z=-84}, {name="default:cobble"}) - minetest.set_node({x=-74, y=11, z=-84}, {name="default:cobble"}) - minetest.set_node({x=-76, y=11, z=-84}, {name="default:cobble"}) - minetest.set_node({x=-76, y=11, z=-82}, {name="default:cobble"}) - minetest.set_node({x=-76, y=11, z=-80}, {name="default:cobble"}) - elseif v+0 == 4 then - minetest.set_node({x=-72, y=12, z=-80}, {name="castrum:fire"}) - minetest.set_node({x=-72, y=12, z=-82}, {name="castrum:fire"}) - minetest.set_node({x=-72, y=12, z=-84}, {name="castrum:fire"}) - minetest.set_node({x=-74, y=12, z=-84}, {name="castrum:fire"}) - minetest.set_node({x=-76, y=12, z=-84}, {name="castrum:fire"}) - minetest.set_node({x=-76, y=12, z=-82}, {name="castrum:fire"}) - minetest.set_node({x=-76, y=12, z=-80}, {name="castrum:fire"}) - minetest.set_node({x=-74, y=11, z=-81}, {name="castrum:knight_dark"}) - screwdriver_handler(player, {type="node", under={x=-74, y=11, z=-81}, above={x=-74, y=11, z=-81}}, 1) - screwdriver_handler(player, {type="node", under={x=-74, y=11, z=-81}, above={x=-74, y=11, z=-81}}, 1) - elseif v+0 == 5 then - minetest.set_node({x=-72, y=11, z=-80}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=11, z=-82}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=11, z=-84}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=11, z=-84}, {name="default:stone_block"}) - minetest.set_node({x=-76, y=11, z=-84}, {name="default:stone_block"}) - minetest.set_node({x=-76, y=11, z=-82}, {name="default:stone_block"}) - minetest.set_node({x=-76, y=11, z=-80}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=9, z=-80}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=9, z=-82}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=9, z=-84}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=9, z=-84}, {name="default:stone_block"}) - minetest.set_node({x=-76, y=9, z=-84}, {name="default:stone_block"}) - minetest.set_node({x=-76, y=9, z=-82}, {name="default:stone_block"}) - minetest.set_node({x=-76, y=9, z=-80}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=9, z=-80}, {name="default:stone_block"}) - minetest.set_node({x=-73, y=10, z=-80}, {name="default:stone_block"}) - minetest.set_node({x=-75, y=10, z=-80}, {name="default:stone_block"}) - minetest.set_node({x=-76, y=10, z=-81}, {name="default:stone_block"}) - minetest.set_node({x=-76, y=10, z=-83}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=10, z=-81}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=10, z=-83}, {name="default:stone_block"}) - minetest.set_node({x=-73, y=10, z=-84}, {name="default:stone_block"}) - minetest.set_node({x=-75, y=10, z=-84}, {name="default:stone_block"}) - elseif v+0 == 6 then - for j=72,76 do - for i=80,84 do - for k=9,12 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:cobble" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 7 then - minetest.set_node({x=-72, y=11, z=-80}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=11, z=-82}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=11, z=-84}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=11, z=-84}, {name="default:desert_cobble"}) - minetest.set_node({x=-76, y=11, z=-84}, {name="default:desert_cobble"}) - minetest.set_node({x=-76, y=11, z=-82}, {name="default:desert_cobble"}) - minetest.set_node({x=-76, y=11, z=-80}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=9, z=-80}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=9, z=-82}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=9, z=-84}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=9, z=-84}, {name="default:desert_cobble"}) - minetest.set_node({x=-76, y=9, z=-84}, {name="default:desert_cobble"}) - minetest.set_node({x=-76, y=9, z=-82}, {name="default:desert_cobble"}) - minetest.set_node({x=-76, y=9, z=-80}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=9, z=-80}, {name="default:desert_cobble"}) - minetest.set_node({x=-73, y=10, z=-80}, {name="default:desert_cobble"}) - minetest.set_node({x=-75, y=10, z=-80}, {name="default:desert_cobble"}) - minetest.set_node({x=-76, y=10, z=-81}, {name="default:desert_cobble"}) - minetest.set_node({x=-76, y=10, z=-83}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=10, z=-81}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=10, z=-83}, {name="default:desert_cobble"}) - minetest.set_node({x=-73, y=10, z=-84}, {name="default:desert_cobble"}) - minetest.set_node({x=-75, y=10, z=-84}, {name="default:desert_cobble"}) - elseif v+0 == 8 then - for j=72,76 do - for i=80,84 do - for k=9,12 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:stone_block" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 9 then - minetest.set_node({x=-72, y=11, z=-80}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=11, z=-82}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=11, z=-84}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=11, z=-84}, {name="default:desert_stone_block"}) - minetest.set_node({x=-76, y=11, z=-84}, {name="default:desert_stone_block"}) - minetest.set_node({x=-76, y=11, z=-82}, {name="default:desert_stone_block"}) - minetest.set_node({x=-76, y=11, z=-80}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=9, z=-80}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=9, z=-82}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=9, z=-84}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=9, z=-84}, {name="default:desert_stone_block"}) - minetest.set_node({x=-76, y=9, z=-84}, {name="default:desert_stone_block"}) - minetest.set_node({x=-76, y=9, z=-82}, {name="default:desert_stone_block"}) - minetest.set_node({x=-76, y=9, z=-80}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=9, z=-80}, {name="default:desert_stone_block"}) - minetest.set_node({x=-73, y=10, z=-80}, {name="default:desert_stone_block"}) - minetest.set_node({x=-75, y=10, z=-80}, {name="default:desert_stone_block"}) - minetest.set_node({x=-76, y=10, z=-81}, {name="default:desert_stone_block"}) - minetest.set_node({x=-76, y=10, z=-83}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=10, z=-81}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=10, z=-83}, {name="default:desert_stone_block"}) - minetest.set_node({x=-73, y=10, z=-84}, {name="default:desert_stone_block"}) - minetest.set_node({x=-75, y=10, z=-84}, {name="default:desert_stone_block"}) - elseif v+0 == 0 then - for j=72,76 do - for i=80,84 do - for k=9,12 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Bridge.lua b/mods/castrum/buildings/Bridge.lua deleted file mode 100644 index 7a0f485..0000000 --- a/mods/castrum/buildings/Bridge.lua +++ /dev/null @@ -1,93 +0,0 @@ -function Bridge(v,player) - if v+0 == 1 then - for i=36,44 do - minetest.set_node({x=i*(-1), y=8, z=-32}, {name="default:wood"}) - end - elseif v+0 == 2 then - for i=36,44 do - minetest.set_node({x=i*(-1), y=8, z=-33}, {name="default:wood"}) - end - elseif v+0 == 3 then - for i=36,44 do - minetest.set_node({x=i*(-1), y=8, z=-34}, {name="default:wood"}) - end - elseif v+0 == 4 then - for i=36,44 do - minetest.set_node({x=i*(-1), y=8, z=-35}, {name="default:wood"}) - end - elseif v+0 == 5 then - for i=36,39 do - minetest.set_node({x=i*(-1), y=8, z=-36}, {name="default:wood"}) - end - for i=41,44 do - minetest.set_node({x=i*(-1), y=8, z=-36}, {name="default:wood"}) - end - elseif v+0 == 6 then - for i=36,44 do - minetest.set_node({x=i*(-1), y=8, z=-37}, {name="default:wood"}) - end - elseif v+0 == 7 then - for i=36,44 do - minetest.set_node({x=i*(-1), y=8, z=-38}, {name="default:wood"}) - end - elseif v+0 == 8 then - for i=36,44 do - minetest.set_node({x=i*(-1), y=8, z=-39}, {name="default:wood"}) - end - elseif v+0 == 9 then - for i=36,44 do - minetest.set_node({x=i*(-1), y=8, z=-40}, {name="default:wood"}) - end - elseif v+0 == 10 then - for i=36,44 do - for j=32,35 do - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="default:junglewood"}) - end - end - for i=36,44 do - for j=37,40 do - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="default:junglewood"}) - end - end - for i=36,39 do - minetest.set_node({x=i*(-1), y=8, z=-36}, {name="default:junglewood"}) - end - for i=41,44 do - minetest.set_node({x=i*(-1), y=8, z=-36}, {name="default:junglewood"}) - end - elseif v+0 == 11 then - for i=36,44 do - for j=32,35 do - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="default:pine_wood"}) - end - end - for i=36,44 do - for j=37,40 do - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="default:pine_wood"}) - end - end - for i=36,39 do - minetest.set_node({x=i*(-1), y=8, z=-36}, {name="default:pine_wood"}) - end - for i=41,44 do - minetest.set_node({x=i*(-1), y=8, z=-36}, {name="default:pine_wood"}) - end - elseif v+0 == 0 then - for i=36,44 do - for j=32,35 do - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="default:dirt_with_grass"}) - end - end - for i=36,44 do - for j=37,40 do - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="default:dirt_with_grass"}) - end - end - for i=36,39 do - minetest.set_node({x=i*(-1), y=8, z=-36}, {name="default:dirt_with_grass"}) - end - for i=41,44 do - minetest.set_node({x=i*(-1), y=8, z=-36}, {name="default:dirt_with_grass"}) - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Bridge2.lua b/mods/castrum/buildings/Bridge2.lua deleted file mode 100644 index 3cd9f61..0000000 --- a/mods/castrum/buildings/Bridge2.lua +++ /dev/null @@ -1,29 +0,0 @@ -function Bridge2(v,player) - if v+0 == 10 then - for j=36,44 do - for k=8,16 do - minetest.set_node({x=j*(-1), y=k, z=-32}, {name="default:junglewood"}) - end - end - minetest.set_node({x=-40, y=12, z=-32}, {name="castrum:bridge2"}) - elseif v+0 == 11 then - for j=36,44 do - for k=8,16 do - minetest.set_node({x=j*(-1), y=k, z=-32}, {name="default:pine_wood"}) - end - end - minetest.set_node({x=-40, y=12, z=-32}, {name="castrum:bridge2"}) - elseif v+0 == 0 then - for i=36,44 do - for k=8,16 do - minetest.set_node({x=i*(-1), y=k, z=-32}, {name="air"}) - end - end - for i=36,44 do - for j=32,40 do - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="default:dirt_with_grass"}) - end - end - minetest.set_node({x=-40, y=8, z=-36}, {name="castrum:bridge"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Cactusfarm.lua b/mods/castrum/buildings/Cactusfarm.lua deleted file mode 100644 index 80f5041..0000000 --- a/mods/castrum/buildings/Cactusfarm.lua +++ /dev/null @@ -1,55 +0,0 @@ -function Cactusfarm(v,player) - if v+0 == 1 then - minetest.set_node({x=130, y=9, z=-7}, {name="castrum:cactus"}) - minetest.set_node({x=130, y=9, z=-1}, {name="castrum:cactus"}) - minetest.set_node({x=124, y=9, z=-1}, {name="castrum:cactus"}) - minetest.set_node({x=124, y=9, z=-7}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=9, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=10, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=132, y=9, z=1}, {name="default:chest"}) - screwdriver_handler(player, {type="node", under={x=132, y=9, z=1}, above={x=132, y=9, z=1}}, 1) - screwdriver_handler(player, {type="node", under={x=132, y=9, z=1}, above={x=132, y=9, z=1}}, 1) - screwdriver_handler(player, {type="node", under={x=132, y=9, z=1}, above={x=132, y=9, z=1}}, 1) - elseif v+0 == 2 then - minetest.set_node({x=130, y=10, z=-7}, {name="castrum:cactus"}) - minetest.set_node({x=130, y=10, z=-1}, {name="castrum:cactus"}) - minetest.set_node({x=124, y=10, z=-1}, {name="castrum:cactus"}) - minetest.set_node({x=124, y=10, z=-7}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=11, z=-4}, {name="castrum:cactus"}) - elseif v+0 == 3 then - minetest.set_node({x=130, y=11, z=-7}, {name="castrum:cactus"}) - minetest.set_node({x=130, y=11, z=-1}, {name="castrum:cactus"}) - minetest.set_node({x=124, y=11, z=-1}, {name="castrum:cactus"}) - minetest.set_node({x=124, y=11, z=-7}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=12, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=126, y=12, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=128, y=12, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=12, z=-3}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=12, z=-5}, {name="castrum:cactus"}) - elseif v+0 == 4 then - minetest.set_node({x=129, y=12, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=12, z=-2}, {name="castrum:cactus"}) - minetest.set_node({x=125, y=12, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=12, z=-6}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=13, z=-4}, {name="castrum:cactus"}) - elseif v+0 == 5 then - minetest.set_node({x=129, y=13, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=13, z=-2}, {name="castrum:cactus"}) - minetest.set_node({x=125, y=13, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=13, z=-6}, {name="castrum:cactus"}) - minetest.set_node({x=127, y=14, z=-4}, {name="castrum:cactus"}) - minetest.set_node({x=130, y=12, z=-7}, {name="castrum:cactus"}) - minetest.set_node({x=130, y=12, z=-1}, {name="castrum:cactus"}) - minetest.set_node({x=124, y=12, z=-1}, {name="castrum:cactus"}) - minetest.set_node({x=124, y=12, z=-7}, {name="castrum:cactus"}) - elseif v+0 == 0 then - for j=123,131 do - for i=0,8 do - for k=9,14 do - minetest.set_node({x=j, y=k, z=i*(-1)}, {name="air"}) - end - end - end - minetest.set_node({x=132, y=9, z=1}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Camp1.lua b/mods/castrum/buildings/Camp1.lua deleted file mode 100644 index c50894b..0000000 --- a/mods/castrum/buildings/Camp1.lua +++ /dev/null @@ -1,13 +0,0 @@ -function Camp1(v,player) - if v+0 == 1 then - minetest.set_node({x=-63, y=9, z=-57}, {name="castrum:fire"}) - elseif v+0 == 0 then - for j=59,67 do - for i=53,61 do - for k=9,9 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Camp2.lua b/mods/castrum/buildings/Camp2.lua deleted file mode 100644 index cd44b64..0000000 --- a/mods/castrum/buildings/Camp2.lua +++ /dev/null @@ -1,13 +0,0 @@ -function Camp2(v,player) - if v+0 == 1 then - minetest.set_node({x=-63, y=9, z=-70}, {name="castrum:fire"}) - elseif v+0 == 0 then - for j=59,67 do - for i=66,74 do - for k=9,9 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Camp3.lua b/mods/castrum/buildings/Camp3.lua deleted file mode 100644 index 7ebdbd2..0000000 --- a/mods/castrum/buildings/Camp3.lua +++ /dev/null @@ -1,13 +0,0 @@ -function Camp3(v,player) - if v+0 == 1 then - minetest.set_node({x=-85, y=9, z=-57}, {name="castrum:fire"}) - elseif v+0 == 0 then - for j=81,89 do - for i=53,61 do - for k=9,9 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Cannon1.lua b/mods/castrum/buildings/Cannon1.lua deleted file mode 100644 index 43cb1ed..0000000 --- a/mods/castrum/buildings/Cannon1.lua +++ /dev/null @@ -1,11 +0,0 @@ -function Cannon1(v,player) - if v+0 == 1 then - minetest.set_node({x=169, y=9, z=42}, {name="castrum:cannon_1_1"}) - screwdriver_handler(player, {type="node", under={x=169, y=9, z=42}, above={x=169, y=9, z=42}}, 1) - elseif v+0 == 2 then - minetest.set_node({x=169, y=9, z=42}, {name="castrum:cannon_1_2"}) - screwdriver_handler(player, {type="node", under={x=169, y=9, z=42}, above={x=169, y=9, z=42}}, 1) - elseif v+0 == 0 then - minetest.set_node({x=169, y=9, z=42}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Cannon2.lua b/mods/castrum/buildings/Cannon2.lua deleted file mode 100644 index 73927b3..0000000 --- a/mods/castrum/buildings/Cannon2.lua +++ /dev/null @@ -1,15 +0,0 @@ -function Cannon2(v,player) - if v+0 == 1 then - minetest.set_node({x=161, y=9, z=42}, {name="castrum:cannon_1_1"}) - screwdriver_handler(player, {type="node", under={x=161, y=9, z=42}, above={x=161, y=9, z=42}}, 1) - screwdriver_handler(player, {type="node", under={x=161, y=9, z=42}, above={x=161, y=9, z=42}}, 1) - screwdriver_handler(player, {type="node", under={x=161, y=9, z=42}, above={x=161, y=9, z=42}}, 1) - elseif v+0 == 2 then - minetest.set_node({x=161, y=9, z=42}, {name="castrum:cannon_1_2"}) - screwdriver_handler(player, {type="node", under={x=161, y=9, z=42}, above={x=161, y=9, z=42}}, 1) - screwdriver_handler(player, {type="node", under={x=161, y=9, z=42}, above={x=161, y=9, z=42}}, 1) - screwdriver_handler(player, {type="node", under={x=161, y=9, z=42}, above={x=161, y=9, z=42}}, 1) - elseif v+0 == 0 then - minetest.set_node({x=161, y=9, z=42}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Cannon3.lua b/mods/castrum/buildings/Cannon3.lua deleted file mode 100644 index 2b7c3bb..0000000 --- a/mods/castrum/buildings/Cannon3.lua +++ /dev/null @@ -1,10 +0,0 @@ -function Cannon3(v,player) - if v+0 == 1 then - minetest.set_node({x=161, y=9, z=44}, {name="castrum:cannon_1_1"}) - screwdriver_handler(player, {type="node", under={x=161, y=9, z=44}, above={x=161, y=9, z=44}}, 1) - screwdriver_handler(player, {type="node", under={x=161, y=9, z=44}, above={x=161, y=9, z=44}}, 1) - screwdriver_handler(player, {type="node", under={x=161, y=9, z=44}, above={x=161, y=9, z=44}}, 1) - elseif v+0 == 0 then - minetest.set_node({x=161, y=9, z=44}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Farm.lua b/mods/castrum/buildings/Farm.lua deleted file mode 100644 index 10ab32c..0000000 --- a/mods/castrum/buildings/Farm.lua +++ /dev/null @@ -1,106 +0,0 @@ -function Farm(v,player) - if v+0 == 1 then - minetest.set_node({x=350, y=39, z=3}, {name="default:water_source"}) - minetest.set_node({x=351, y=39, z=3}, {name="farming:soil_wet"}) - minetest.set_node({x=349, y=39, z=3}, {name="farming:soil_wet"}) - minetest.set_node({x=349, y=39, z=4}, {name="farming:soil_wet"}) - minetest.set_node({x=350, y=39, z=4}, {name="farming:soil_wet"}) - minetest.set_node({x=351, y=39, z=4}, {name="farming:soil_wet"}) - minetest.set_node({x=349, y=39, z=2}, {name="farming:soil_wet"}) - minetest.set_node({x=350, y=39, z=2}, {name="farming:soil_wet"}) - minetest.set_node({x=351, y=39, z=2}, {name="farming:soil_wet"}) - minetest.set_node({x=351, y=40, z=3}, {name="farming:cotton_8"}) - minetest.set_node({x=349, y=40, z=3}, {name="farming:cotton_8"}) - minetest.set_node({x=349, y=40, z=4}, {name="farming:cotton_8"}) - minetest.set_node({x=350, y=40, z=4}, {name="farming:cotton_8"}) - minetest.set_node({x=351, y=40, z=4}, {name="farming:cotton_8"}) - minetest.set_node({x=349, y=40, z=2}, {name="farming:cotton_8"}) - minetest.set_node({x=350, y=40, z=2}, {name="farming:cotton_8"}) - minetest.set_node({x=351, y=40, z=2}, {name="farming:cotton_8"}) - minetest.set_node({x=345, y=40, z=-2}, {name="default:chest"}) - screwdriver_handler(player, {type="node", under={x=345, y=40, z=-2}, above={x=345, y=40, z=-2}}, 1) - elseif v+0 == 2 then - minetest.set_node({x=347, y=39, z=3}, {name="default:water_source"}) - minetest.set_node({x=348, y=39, z=3}, {name="farming:soil_wet"}) - minetest.set_node({x=346, y=39, z=3}, {name="farming:soil_wet"}) - minetest.set_node({x=346, y=39, z=4}, {name="farming:soil_wet"}) - minetest.set_node({x=347, y=39, z=4}, {name="farming:soil_wet"}) - minetest.set_node({x=348, y=39, z=4}, {name="farming:soil_wet"}) - minetest.set_node({x=346, y=39, z=2}, {name="farming:soil_wet"}) - minetest.set_node({x=347, y=39, z=2}, {name="farming:soil_wet"}) - minetest.set_node({x=348, y=39, z=2}, {name="farming:soil_wet"}) - minetest.set_node({x=348, y=40, z=3}, {name="farming:cotton_8"}) - minetest.set_node({x=346, y=40, z=3}, {name="farming:cotton_8"}) - minetest.set_node({x=346, y=40, z=4}, {name="farming:cotton_8"}) - minetest.set_node({x=347, y=40, z=4}, {name="farming:cotton_8"}) - minetest.set_node({x=348, y=40, z=4}, {name="farming:cotton_8"}) - minetest.set_node({x=346, y=40, z=2}, {name="farming:cotton_8"}) - minetest.set_node({x=347, y=40, z=2}, {name="farming:cotton_8"}) - minetest.set_node({x=348, y=40, z=2}, {name="farming:cotton_8"}) - minetest.set_node({x=353, y=39, z=3}, {name="default:water_source"}) - minetest.set_node({x=354, y=39, z=3}, {name="farming:soil_wet"}) - minetest.set_node({x=352, y=39, z=3}, {name="farming:soil_wet"}) - minetest.set_node({x=352, y=39, z=4}, {name="farming:soil_wet"}) - minetest.set_node({x=353, y=39, z=4}, {name="farming:soil_wet"}) - minetest.set_node({x=354, y=39, z=4}, {name="farming:soil_wet"}) - minetest.set_node({x=352, y=39, z=2}, {name="farming:soil_wet"}) - minetest.set_node({x=353, y=39, z=2}, {name="farming:soil_wet"}) - minetest.set_node({x=354, y=39, z=2}, {name="farming:soil_wet"}) - minetest.set_node({x=354, y=40, z=3}, {name="farming:cotton_8"}) - minetest.set_node({x=352, y=40, z=3}, {name="farming:cotton_8"}) - minetest.set_node({x=352, y=40, z=4}, {name="farming:cotton_8"}) - minetest.set_node({x=353, y=40, z=4}, {name="farming:cotton_8"}) - minetest.set_node({x=354, y=40, z=4}, {name="farming:cotton_8"}) - minetest.set_node({x=352, y=40, z=2}, {name="farming:cotton_8"}) - minetest.set_node({x=353, y=40, z=2}, {name="farming:cotton_8"}) - minetest.set_node({x=354, y=40, z=2}, {name="farming:cotton_8"}) - minetest.set_node({x=350, y=39, z=0}, {name="default:water_source"}) - minetest.set_node({x=351, y=39, z=0}, {name="farming:soil_wet"}) - minetest.set_node({x=349, y=39, z=0}, {name="farming:soil_wet"}) - minetest.set_node({x=349, y=39, z=1}, {name="farming:soil_wet"}) - minetest.set_node({x=350, y=39, z=1}, {name="farming:soil_wet"}) - minetest.set_node({x=351, y=39, z=1}, {name="farming:soil_wet"}) - minetest.set_node({x=349, y=39, z=-1}, {name="farming:soil_wet"}) - minetest.set_node({x=350, y=39, z=-1}, {name="farming:soil_wet"}) - minetest.set_node({x=351, y=39, z=-1}, {name="farming:soil_wet"}) - minetest.set_node({x=351, y=40, z=0}, {name="farming:cotton_8"}) - minetest.set_node({x=349, y=40, z=0}, {name="farming:cotton_8"}) - minetest.set_node({x=349, y=40, z=1}, {name="farming:cotton_8"}) - minetest.set_node({x=350, y=40, z=1}, {name="farming:cotton_8"}) - minetest.set_node({x=351, y=40, z=1}, {name="farming:cotton_8"}) - minetest.set_node({x=349, y=40, z=-1}, {name="farming:cotton_8"}) - minetest.set_node({x=350, y=40, z=-1}, {name="farming:cotton_8"}) - minetest.set_node({x=351, y=40, z=-1}, {name="farming:cotton_8"}) - minetest.set_node({x=350, y=39, z=6}, {name="default:water_source"}) - minetest.set_node({x=351, y=39, z=6}, {name="farming:soil_wet"}) - minetest.set_node({x=349, y=39, z=6}, {name="farming:soil_wet"}) - minetest.set_node({x=349, y=39, z=7}, {name="farming:soil_wet"}) - minetest.set_node({x=350, y=39, z=7}, {name="farming:soil_wet"}) - minetest.set_node({x=351, y=39, z=7}, {name="farming:soil_wet"}) - minetest.set_node({x=349, y=39, z=5}, {name="farming:soil_wet"}) - minetest.set_node({x=350, y=39, z=5}, {name="farming:soil_wet"}) - minetest.set_node({x=351, y=39, z=5}, {name="farming:soil_wet"}) - minetest.set_node({x=351, y=40, z=6}, {name="farming:cotton_8"}) - minetest.set_node({x=349, y=40, z=6}, {name="farming:cotton_8"}) - minetest.set_node({x=349, y=40, z=7}, {name="farming:cotton_8"}) - minetest.set_node({x=350, y=40, z=7}, {name="farming:cotton_8"}) - minetest.set_node({x=351, y=40, z=7}, {name="farming:cotton_8"}) - minetest.set_node({x=349, y=40, z=5}, {name="farming:cotton_8"}) - minetest.set_node({x=350, y=40, z=5}, {name="farming:cotton_8"}) - minetest.set_node({x=351, y=40, z=5}, {name="farming:cotton_8"}) - elseif v+0 == 0 then - for j=346,354 do - for i=0,7 do - minetest.set_node({x=j, y=39, z=i}, {name="default:stone"}) - end - minetest.set_node({x=j, y=39, z=-1}, {name="default:stone"}) - end - for j=346,354 do - for i=0,7 do - minetest.set_node({x=j, y=40, z=i}, {name="air"}) - end - minetest.set_node({x=j, y=40, z=-1}, {name="air"}) - end - minetest.set_node({x=345, y=40, z=-2}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Fountain.lua b/mods/castrum/buildings/Fountain.lua deleted file mode 100644 index 19022db..0000000 --- a/mods/castrum/buildings/Fountain.lua +++ /dev/null @@ -1,199 +0,0 @@ -function Fountain(v,player) - if v+0 == 1 then - for i=39,41 do - for j=0,8 do - minetest.set_node({x=i*(-1), y=9, z=j}, {name="castrum:cobble"}) - end - for j=1,2 do - minetest.set_node({x=i*(-1), y=9, z=j*(-1)}, {name="castrum:cobble"}) - end - end - for i=35,45 do - for j=2,4 do - minetest.set_node({x=i*(-1), y=9, z=j}, {name="castrum:cobble"}) - end - end - elseif v+0 == 2 then - for j=0,7 do - minetest.set_node({x=38*(-1), y=9, z=j}, {name="castrum:cobble"}) - minetest.set_node({x=42*(-1), y=9, z=j}, {name="castrum:cobble"}) - minetest.set_node({x=37*(-1), y=9, z=j}, {name="castrum:cobble"}) - minetest.set_node({x=43*(-1), y=9, z=j}, {name="castrum:cobble"}) - end - for j=0,6 do - minetest.set_node({x=36*(-1), y=9, z=j}, {name="castrum:cobble"}) - minetest.set_node({x=44*(-1), y=9, z=j}, {name="castrum:cobble"}) - end - minetest.set_node({x=38*(-1), y=9, z=1*(-1)}, {name="castrum:cobble"}) - minetest.set_node({x=42*(-1), y=9, z=1*(-1)}, {name="castrum:cobble"}) - minetest.set_node({x=37*(-1), y=9, z=1*(-1)}, {name="castrum:cobble"}) - minetest.set_node({x=43*(-1), y=9, z=1*(-1)}, {name="castrum:cobble"}) - elseif v+0 == 3 then - minetest.set_node({x=-41, y=10, z=-2}, {name="castrum:cobble"}) - minetest.set_node({x=-40, y=10, z=-2}, {name="castrum:cobble"}) - minetest.set_node({x=-39, y=10, z=-2}, {name="castrum:cobble"}) - minetest.set_node({x=-38, y=10, z=-1}, {name="castrum:cobble"}) - minetest.set_node({x=-37, y=10, z=-1}, {name="castrum:cobble"}) - minetest.set_node({x=-42, y=10, z=-1}, {name="castrum:cobble"}) - minetest.set_node({x=-43, y=10, z=-1}, {name="castrum:cobble"}) - minetest.set_node({x=-44, y=10, z=0}, {name="castrum:cobble"}) - minetest.set_node({x=-44, y=10, z=1}, {name="castrum:cobble"}) - minetest.set_node({x=-36, y=10, z=0}, {name="castrum:cobble"}) - minetest.set_node({x=-36, y=10, z=1}, {name="castrum:cobble"}) - minetest.set_node({x=-35, y=10, z=2}, {name="castrum:cobble"}) - minetest.set_node({x=-35, y=10, z=3}, {name="castrum:cobble"}) - minetest.set_node({x=-35, y=10, z=4}, {name="castrum:cobble"}) - minetest.set_node({x=-45, y=10, z=2}, {name="castrum:cobble"}) - minetest.set_node({x=-45, y=10, z=3}, {name="castrum:cobble"}) - minetest.set_node({x=-45, y=10, z=4}, {name="castrum:cobble"}) - minetest.set_node({x=-36, y=10, z=5}, {name="castrum:cobble"}) - minetest.set_node({x=-36, y=10, z=6}, {name="castrum:cobble"}) - minetest.set_node({x=-44, y=10, z=5}, {name="castrum:cobble"}) - minetest.set_node({x=-44, y=10, z=6}, {name="castrum:cobble"}) - minetest.set_node({x=-38, y=10, z=7}, {name="castrum:cobble"}) - minetest.set_node({x=-37, y=10, z=7}, {name="castrum:cobble"}) - minetest.set_node({x=-42, y=10, z=7}, {name="castrum:cobble"}) - minetest.set_node({x=-43, y=10, z=7}, {name="castrum:cobble"}) - minetest.set_node({x=-41, y=10, z=8}, {name="castrum:cobble"}) - minetest.set_node({x=-40, y=10, z=8}, {name="castrum:cobble"}) - minetest.set_node({x=-39, y=10, z=8}, {name="castrum:cobble"}) - elseif v+0 == 4 then - minetest.set_node({x=-40, y=10, z=3}, {name="castrum:cobble"}) - minetest.set_node({x=-40, y=11, z=3}, {name="castrum:cobble"}) - minetest.set_node({x=-40, y=12, z=3}, {name="castrum:cobble"}) - minetest.set_node({x=-40, y=13, z=3}, {name="castrum:cobble"}) - minetest.set_node({x=-40, y=14, z=3}, {name="default:water_source"}) - minetest.set_node({x=-40, y=13, z=4}, {name="default:water_source"}) - minetest.set_node({x=-40, y=13, z=2}, {name="default:water_source"}) - minetest.set_node({x=-41, y=13, z=3}, {name="default:water_source"}) - minetest.set_node({x=-39, y=13, z=3}, {name="default:water_source"}) - elseif v+0 == 5 then - minetest.set_node({x=-41, y=9, z=-2}, {name="default:stone_block"}) - minetest.set_node({x=-40, y=10, z=-2}, {name="default:stone_block"}) - minetest.set_node({x=-39, y=9, z=-2}, {name="default:stone_block"}) - minetest.set_node({x=-38, y=10, z=-1}, {name="default:stone_block"}) - minetest.set_node({x=-37, y=9, z=-1}, {name="default:stone_block"}) - minetest.set_node({x=-36, y=10, z=0}, {name="default:stone_block"}) - minetest.set_node({x=-36, y=9, z=1}, {name="default:stone_block"}) - minetest.set_node({x=-35, y=10, z=2}, {name="default:stone_block"}) - minetest.set_node({x=-35, y=9, z=3}, {name="default:stone_block"}) - minetest.set_node({x=-35, y=10, z=4}, {name="default:stone_block"}) - minetest.set_node({x=-36, y=9, z=5}, {name="default:stone_block"}) - minetest.set_node({x=-36, y=10, z=6}, {name="default:stone_block"}) - minetest.set_node({x=-37, y=9, z=7}, {name="default:stone_block"}) - minetest.set_node({x=-38, y=10, z=7}, {name="default:stone_block"}) - minetest.set_node({x=-39, y=9, z=8}, {name="default:stone_block"}) - minetest.set_node({x=-40, y=10, z=8}, {name="default:stone_block"}) - minetest.set_node({x=-41, y=9, z=8}, {name="default:stone_block"}) - minetest.set_node({x=-42, y=10, z=7}, {name="default:stone_block"}) - minetest.set_node({x=-43, y=9, z=7}, {name="default:stone_block"}) - minetest.set_node({x=-44, y=10, z=6}, {name="default:stone_block"}) - minetest.set_node({x=-44, y=9, z=5}, {name="default:stone_block"}) - minetest.set_node({x=-45, y=10, z=4}, {name="default:stone_block"}) - minetest.set_node({x=-45, y=9, z=3}, {name="default:stone_block"}) - minetest.set_node({x=-45, y=10, z=2}, {name="default:stone_block"}) - minetest.set_node({x=-44, y=9, z=1}, {name="default:stone_block"}) - minetest.set_node({x=-44, y=10, z=0}, {name="default:stone_block"}) - minetest.set_node({x=-43, y=9, z=-1}, {name="default:stone_block"}) - minetest.set_node({x=-42, y=10, z=-1}, {name="default:stone_block"}) - elseif v+0 == 6 then - for k=9,14 do - for i=35,45 do - for j=0,2 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "castrum:cobble" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:stone_block"}) - end - end - for j=0,8 do - if minetest.get_node({x=i*(-1), y=k, z=j}).name == "castrum:cobble" then - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 7 then - minetest.set_node({x=-41, y=9, z=-2}, {name="default:desert_cobble"}) - minetest.set_node({x=-40, y=10, z=-2}, {name="default:desert_cobble"}) - minetest.set_node({x=-39, y=9, z=-2}, {name="default:desert_cobble"}) - minetest.set_node({x=-38, y=10, z=-1}, {name="default:desert_cobble"}) - minetest.set_node({x=-37, y=9, z=-1}, {name="default:desert_cobble"}) - minetest.set_node({x=-36, y=10, z=0}, {name="default:desert_cobble"}) - minetest.set_node({x=-36, y=9, z=1}, {name="default:desert_cobble"}) - minetest.set_node({x=-35, y=10, z=2}, {name="default:desert_cobble"}) - minetest.set_node({x=-35, y=9, z=3}, {name="default:desert_cobble"}) - minetest.set_node({x=-35, y=10, z=4}, {name="default:desert_cobble"}) - minetest.set_node({x=-36, y=9, z=5}, {name="default:desert_cobble"}) - minetest.set_node({x=-36, y=10, z=6}, {name="default:desert_cobble"}) - minetest.set_node({x=-37, y=9, z=7}, {name="default:desert_cobble"}) - minetest.set_node({x=-38, y=10, z=7}, {name="default:desert_cobble"}) - minetest.set_node({x=-39, y=9, z=8}, {name="default:desert_cobble"}) - minetest.set_node({x=-40, y=10, z=8}, {name="default:desert_cobble"}) - minetest.set_node({x=-41, y=9, z=8}, {name="default:desert_cobble"}) - minetest.set_node({x=-42, y=10, z=7}, {name="default:desert_cobble"}) - minetest.set_node({x=-43, y=9, z=7}, {name="default:desert_cobble"}) - minetest.set_node({x=-44, y=10, z=6}, {name="default:desert_cobble"}) - minetest.set_node({x=-44, y=9, z=5}, {name="default:desert_cobble"}) - minetest.set_node({x=-45, y=10, z=4}, {name="default:desert_cobble"}) - minetest.set_node({x=-45, y=9, z=3}, {name="default:desert_cobble"}) - minetest.set_node({x=-45, y=10, z=2}, {name="default:desert_cobble"}) - minetest.set_node({x=-44, y=9, z=1}, {name="default:desert_cobble"}) - minetest.set_node({x=-44, y=10, z=0}, {name="default:desert_cobble"}) - minetest.set_node({x=-43, y=9, z=-1}, {name="default:desert_cobble"}) - minetest.set_node({x=-42, y=10, z=-1}, {name="default:desert_cobble"}) - elseif v+0 == 8 then - for k=9,14 do - for i=35,45 do - for j=0,2 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:stone_block" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:desert_cobble"}) - end - end - for j=0,8 do - if minetest.get_node({x=i*(-1), y=k, z=j}).name == "default:stone_block" then - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 9 then - minetest.set_node({x=-41, y=9, z=-2}, {name="default:desert_stone_block"}) - minetest.set_node({x=-40, y=10, z=-2}, {name="default:desert_stone_block"}) - minetest.set_node({x=-39, y=9, z=-2}, {name="default:desert_stone_block"}) - minetest.set_node({x=-38, y=10, z=-1}, {name="default:desert_stone_block"}) - minetest.set_node({x=-37, y=9, z=-1}, {name="default:desert_stone_block"}) - minetest.set_node({x=-36, y=10, z=0}, {name="default:desert_stone_block"}) - minetest.set_node({x=-36, y=9, z=1}, {name="default:desert_stone_block"}) - minetest.set_node({x=-35, y=10, z=2}, {name="default:desert_stone_block"}) - minetest.set_node({x=-35, y=9, z=3}, {name="default:desert_stone_block"}) - minetest.set_node({x=-35, y=10, z=4}, {name="default:desert_stone_block"}) - minetest.set_node({x=-36, y=9, z=5}, {name="default:desert_stone_block"}) - minetest.set_node({x=-36, y=10, z=6}, {name="default:desert_stone_block"}) - minetest.set_node({x=-37, y=9, z=7}, {name="default:desert_stone_block"}) - minetest.set_node({x=-38, y=10, z=7}, {name="default:desert_stone_block"}) - minetest.set_node({x=-39, y=9, z=8}, {name="default:desert_stone_block"}) - minetest.set_node({x=-40, y=10, z=8}, {name="default:desert_stone_block"}) - minetest.set_node({x=-41, y=9, z=8}, {name="default:desert_stone_block"}) - minetest.set_node({x=-42, y=10, z=7}, {name="default:desert_stone_block"}) - minetest.set_node({x=-43, y=9, z=7}, {name="default:desert_stone_block"}) - minetest.set_node({x=-44, y=10, z=6}, {name="default:desert_stone_block"}) - minetest.set_node({x=-44, y=9, z=5}, {name="default:desert_stone_block"}) - minetest.set_node({x=-45, y=10, z=4}, {name="default:desert_stone_block"}) - minetest.set_node({x=-45, y=9, z=3}, {name="default:desert_stone_block"}) - minetest.set_node({x=-45, y=10, z=2}, {name="default:desert_stone_block"}) - minetest.set_node({x=-44, y=9, z=1}, {name="default:desert_stone_block"}) - minetest.set_node({x=-44, y=10, z=0}, {name="default:desert_stone_block"}) - minetest.set_node({x=-43, y=9, z=-1}, {name="default:desert_stone_block"}) - minetest.set_node({x=-42, y=10, z=-1}, {name="default:desert_stone_block"}) - elseif v+0 == 0 then - for k=9,14 do - for i=35,45 do - for j=0,2 do - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="air"}) - end - for j=0,8 do - minetest.set_node({x=i*(-1), y=k, z=j}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Home1.lua b/mods/castrum/buildings/Home1.lua deleted file mode 100644 index da36b1e..0000000 --- a/mods/castrum/buildings/Home1.lua +++ /dev/null @@ -1,103 +0,0 @@ -function Home1(v,player) - if v+0 == 1 then - for i=26,32 do - for j=20,25 do - minetest.set_node({x=i*(-1), y=9, z=j*(-1)}, {name="default:cobble"}) - end - end - minetest.set_node({x=-29, y=9, z=-19}, {name="stairs:stair_cobble"}) - screwdriver_handler(player, {type="node", under={x=-29, y=9, z=-19}, above={x=-29, y=9, z=-19}}, 1) - screwdriver_handler(player, {type="node", under={x=-29, y=9, z=-19}, above={x=-29, y=9, z=-19}}, 1) - elseif v+0 == 2 then - for j=20,25 do - minetest.set_node({x=-26, y=10, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-32, y=10, z=j*(-1)}, {name="default:wood"}) - end - for i=26,32 do - minetest.set_node({x=i*(-1), y=10, z=-25}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=10, z=-20}, {name="default:wood"}) - end - minetest.set_node({x=-29, y=10, z=-20}, {name="air"}) - elseif v+0 == 3 then - for j=20,25 do - minetest.set_node({x=-26, y=11, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-32, y=11, z=j*(-1)}, {name="default:wood"}) - end - for i=26,32 do - minetest.set_node({x=i*(-1), y=11, z=-25}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=11, z=-20}, {name="default:wood"}) - end - minetest.set_node({x=-29, y=11, z=-20}, {name="air"}) - minetest.set_node({x=-29, y=10, z=-20}, {name="doors:door_wood_a"}) - screwdriver_handler(player, {type="node", under={x=-29, y=10, z=-20}, above={x=-29, y=10, z=-20}}, 1) - screwdriver_handler(player, {type="node", under={x=-29, y=10, z=-20}, above={x=-29, y=10, z=-20}}, 1) - elseif v+0 == 4 then - for j=20,25 do - minetest.set_node({x=-26, y=12, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-32, y=12, z=j*(-1)}, {name="default:wood"}) - end - for i=26,32 do - minetest.set_node({x=i*(-1), y=12, z=-25}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=12, z=-20}, {name="default:wood"}) - end - elseif v+0 == 5 then - for j=21,24 do - minetest.set_node({x=-27, y=13, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-31, y=13, z=j*(-1)}, {name="default:wood"}) - end - for i=27,31 do - minetest.set_node({x=i*(-1), y=13, z=-24}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=13, z=-21}, {name="default:wood"}) - end - elseif v+0 == 6 then - for j=22,23 do - minetest.set_node({x=-28, y=14, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-30, y=14, z=j*(-1)}, {name="default:wood"}) - end - for i=28,30 do - minetest.set_node({x=i*(-1), y=14, z=-23}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=14, z=-22}, {name="default:wood"}) - end - minetest.set_node({x=-26, y=9, z=-19}, {name="castrum:character1"}) - screwdriver_handler(player, {type="node", under={x=-26, y=9, z=-19}, above={x=-26, y=9, z=-19}}, 1) - screwdriver_handler(player, {type="node", under={x=-26, y=9, z=-19}, above={x=-26, y=9, z=-19}}, 1) - elseif v+0 == 7 then - for i=26,32 do - for j=19,25 do - for k=9,14 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:wood" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:junglewood"}) - end - end - end - end - elseif v+0 == 8 then - for i=26,32 do - for j=19,25 do - for k=9,14 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:junglewood" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:pine_wood"}) - end - end - end - end - elseif v+0 == 9 then - for i=26,32 do - for j=19,25 do - for k=9,14 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:pine_wood" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:acacia_wood"}) - end - end - end - end - elseif v+0 == 0 then - for i=26,32 do - for j=19,25 do - for k=9,14 do - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Home2.lua b/mods/castrum/buildings/Home2.lua deleted file mode 100644 index d1d7615..0000000 --- a/mods/castrum/buildings/Home2.lua +++ /dev/null @@ -1,93 +0,0 @@ -function Home2(v,player) - if v+0 == 1 then - for i=48,54 do - for j=20,25 do - minetest.set_node({x=i*(-1), y=9, z=j*(-1)}, {name="default:cobble"}) - end - end - minetest.set_node({x=-51, y=9, z=-19}, {name="stairs:stair_cobble"}) - screwdriver_handler(player, {type="node", under={x=-51, y=9, z=-19}, above={x=-51, y=9, z=-19}}, 1) - screwdriver_handler(player, {type="node", under={x=-51, y=9, z=-19}, above={x=-51, y=9, z=-19}}, 1) - elseif v+0 == 2 then - for j=20,25 do - minetest.set_node({x=-48, y=10, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-54, y=10, z=j*(-1)}, {name="default:wood"}) - end - for i=48,54 do - minetest.set_node({x=i*(-1), y=10, z=-25}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=10, z=-20}, {name="default:wood"}) - end - minetest.set_node({x=-51, y=10, z=-20}, {name="air"}) - elseif v+0 == 3 then - for j=20,25 do - minetest.set_node({x=-48, y=11, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-54, y=11, z=j*(-1)}, {name="default:wood"}) - end - for i=48,54 do - minetest.set_node({x=i*(-1), y=11, z=-25}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=11, z=-20}, {name="default:wood"}) - end - minetest.set_node({x=-51, y=11, z=-20}, {name="air"}) - minetest.set_node({x=-51, y=10, z=-20}, {name="doors:door_wood_a"}) - screwdriver_handler(player, {type="node", under={x=-51, y=10, z=-20}, above={x=-51, y=10, z=-20}}, 1) - screwdriver_handler(player, {type="node", under={x=-51, y=10, z=-20}, above={x=-51, y=10, z=-20}}, 1) - elseif v+0 == 4 then - for j=20,25 do - minetest.set_node({x=-48, y=12, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-54, y=12, z=j*(-1)}, {name="default:wood"}) - end - for i=48,54 do - minetest.set_node({x=i*(-1), y=12, z=-25}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=12, z=-20}, {name="default:wood"}) - end - elseif v+0 == 5 then - for j=21,24 do - minetest.set_node({x=-49, y=13, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-53, y=13, z=j*(-1)}, {name="default:wood"}) - end - for i=49,53 do - minetest.set_node({x=i*(-1), y=13, z=-24}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=13, z=-21}, {name="default:wood"}) - end - elseif v+0 == 6 then - for j=22,23 do - minetest.set_node({x=-50, y=14, z=j*(-1)}, {name="default:wood"}) - minetest.set_node({x=-52, y=14, z=j*(-1)}, {name="default:wood"}) - end - for i=50,52 do - minetest.set_node({x=i*(-1), y=14, z=-23}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=14, z=-22}, {name="default:wood"}) - end - minetest.set_node({x=-54, y=9, z=-19}, {name="castrum:character1"}) - screwdriver_handler(player, {type="node", under={x=-54, y=9, z=-19}, above={x=-54, y=9, z=-19}}, 1) - screwdriver_handler(player, {type="node", under={x=-54, y=9, z=-19}, above={x=-54, y=9, z=-19}}, 1) - elseif v+0 == 7 then - for i=48,54 do - for j=19,25 do - for k=9,14 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:wood" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:junglewood"}) - end - end - end - end - elseif v+0 == 8 then - for i=48,54 do - for j=19,25 do - for k=9,14 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:junglewood" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:pine_wood"}) - end - end - end - end - elseif v+0 == 0 then - for i=48,54 do - for j=19,25 do - for k=9,14 do - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Home3.lua b/mods/castrum/buildings/Home3.lua deleted file mode 100644 index 45520da..0000000 --- a/mods/castrum/buildings/Home3.lua +++ /dev/null @@ -1,77 +0,0 @@ -function Home3(v,player) - if v+0 == 1 then - for i=26,32 do - for j=26,31 do - minetest.set_node({x=i*(-1), y=9, z=j}, {name="default:cobble"}) - end - end - minetest.set_node({x=-29, y=9, z=25}, {name="stairs:stair_cobble"}) - elseif v+0 == 2 then - for j=26,31 do - minetest.set_node({x=-26, y=10, z=j}, {name="default:wood"}) - minetest.set_node({x=-32, y=10, z=j}, {name="default:wood"}) - end - for i=26,32 do - minetest.set_node({x=i*(-1), y=10, z=31}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=10, z=26}, {name="default:wood"}) - end - minetest.set_node({x=-29, y=10, z=26}, {name="air"}) - elseif v+0 == 3 then - for j=26,31 do - minetest.set_node({x=-26, y=11, z=j}, {name="default:wood"}) - minetest.set_node({x=-32, y=11, z=j}, {name="default:wood"}) - end - for i=26,32 do - minetest.set_node({x=i*(-1), y=11, z=31}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=11, z=26}, {name="default:wood"}) - end - minetest.set_node({x=-29, y=11, z=26}, {name="air"}) - minetest.set_node({x=-29, y=10, z=26}, {name="doors:door_wood_a"}) - elseif v+0 == 4 then - for j=26,31 do - minetest.set_node({x=-26, y=12, z=j}, {name="default:wood"}) - minetest.set_node({x=-32, y=12, z=j}, {name="default:wood"}) - end - for i=26,32 do - minetest.set_node({x=i*(-1), y=12, z=31}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=12, z=26}, {name="default:wood"}) - end - elseif v+0 == 5 then - for j=27,30 do - minetest.set_node({x=-27, y=13, z=j}, {name="default:wood"}) - minetest.set_node({x=-31, y=13, z=j}, {name="default:wood"}) - end - for i=27,31 do - minetest.set_node({x=i*(-1), y=13, z=27}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=13, z=30}, {name="default:wood"}) - end - elseif v+0 == 6 then - for j=28,29 do - minetest.set_node({x=-28, y=14, z=j}, {name="default:wood"}) - minetest.set_node({x=-30, y=14, z=j}, {name="default:wood"}) - end - for i=28,30 do - minetest.set_node({x=i*(-1), y=14, z=28}, {name="default:wood"}) - minetest.set_node({x=i*(-1), y=14, z=29}, {name="default:wood"}) - end - minetest.set_node({x=-26, y=9, z=25}, {name="castrum:character1"}) - elseif v+0 == 7 then - for i=26,32 do - for j=25,31 do - for k=9,14 do - if minetest.get_node({x=i*(-1), y=k, z=j}).name == "default:wood" then - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:junglewood"}) - end - end - end - end - elseif v+0 == 0 then - for i=26,32 do - for j=25,31 do - for k=9,14 do - minetest.set_node({x=i*(-1), y=k, z=j}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Barracks.lua b/mods/castrum/buildings/Island_Barracks.lua deleted file mode 100644 index fd841b4..0000000 --- a/mods/castrum/buildings/Island_Barracks.lua +++ /dev/null @@ -1,86 +0,0 @@ -function Island_Barracks(v,player) - if v+0 == 1 then - for j=165,173 do - for i=6,14 do - minetest.set_node({x=j, y=9, z=i}, {name="default:sandstone"}) - end - end - elseif v+0 == 2 then - for j=165,171 do - minetest.set_node({x=j, y=10, z=6}, {name="default:sandstone"}) - minetest.set_node({x=j, y=10, z=14}, {name="default:sandstone"}) - end - minetest.set_node({x=172, y=10, z=7}, {name="default:sandstone"}) - minetest.set_node({x=172, y=10, z=13}, {name="default:sandstone"}) - for i=8,12 do - minetest.set_node({x=173, y=10, z=i}, {name="default:sandstone"}) - end - elseif v+0 == 3 then - for j=166,171 do - minetest.set_node({x=j, y=11, z=6}, {name="default:sandstone"}) - minetest.set_node({x=j, y=11, z=14}, {name="default:sandstone"}) - end - minetest.set_node({x=172, y=11, z=7}, {name="default:sandstone"}) - minetest.set_node({x=172, y=11, z=13}, {name="default:sandstone"}) - for i=8,12 do - minetest.set_node({x=173, y=11, z=i}, {name="default:sandstone"}) - end - elseif v+0 == 4 then - for j=167,171 do - minetest.set_node({x=j, y=12, z=6}, {name="default:sandstone"}) - minetest.set_node({x=j, y=12, z=14}, {name="default:sandstone"}) - end - minetest.set_node({x=172, y=12, z=7}, {name="default:sandstone"}) - minetest.set_node({x=172, y=12, z=13}, {name="default:sandstone"}) - for i=8,12 do - minetest.set_node({x=173, y=12, z=i}, {name="default:sandstone"}) - end - elseif v+0 == 5 then - for j=168,171 do - minetest.set_node({x=j, y=13, z=6}, {name="default:sandstone"}) - minetest.set_node({x=j, y=13, z=14}, {name="default:sandstone"}) - end - minetest.set_node({x=172, y=13, z=7}, {name="default:sandstone"}) - minetest.set_node({x=172, y=13, z=13}, {name="default:sandstone"}) - for i=8,12 do - minetest.set_node({x=173, y=13, z=i}, {name="default:sandstone"}) - end - elseif v+0 == 6 then - for j=168,172 do - for i=7,13 do - minetest.set_node({x=j, y=14, z=i}, {name="default:sandstone"}) - end - end - minetest.set_node({x=172, y=14, z=7}, {name="air"}) - minetest.set_node({x=172, y=14, z=13}, {name="air"}) - minetest.set_node({x=169, y=10, z=10}, {name="castrum:fire"}) - elseif v+0 == 7 then - for j=37,43 do - for i=25,31 do - for k=9,13 do - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:cobble" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 8 then - for j=37,43 do - for i=25,31 do - for k=9,13 do - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:stone_block" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 0 then - for j=165,173 do - for i=6,14 do - for k=9,14 do - minetest.set_node({x=j, y=k, z=i}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Battleground.lua b/mods/castrum/buildings/Island_Battleground.lua deleted file mode 100644 index 56fc0c7..0000000 --- a/mods/castrum/buildings/Island_Battleground.lua +++ /dev/null @@ -1,42 +0,0 @@ -function Island_Battleground(v,player) - if v+0 == 1 then - for j=180,184 do - for i=42,46 do - minetest.set_node({x=j, y=9, z=i}, {name="default:sandstone"}) - end - end - elseif v+0 == 2 then - for j=180,184 do - for i=42,46 do - minetest.set_node({x=j, y=10, z=i}, {name="default:sandstone"}) - end - end - minetest.set_node({x=180, y=10, z=44}, {name="air"}) - elseif v+0 == 3 then - minetest.set_node({x=180, y=11, z=46}, {name="default:sandstone"}) - minetest.set_node({x=182, y=11, z=46}, {name="default:sandstone"}) - minetest.set_node({x=184, y=11, z=46}, {name="default:sandstone"}) - minetest.set_node({x=184, y=11, z=44}, {name="default:sandstone"}) - minetest.set_node({x=184, y=11, z=42}, {name="default:sandstone"}) - minetest.set_node({x=182, y=11, z=42}, {name="default:sandstone"}) - minetest.set_node({x=180, y=11, z=42}, {name="default:sandstone"}) - elseif v+0 == 4 then - minetest.set_node({x=180, y=12, z=46}, {name="castrum:fire"}) - minetest.set_node({x=182, y=12, z=46}, {name="castrum:fire"}) - minetest.set_node({x=184, y=12, z=46}, {name="castrum:fire"}) - minetest.set_node({x=184, y=12, z=44}, {name="castrum:fire"}) - minetest.set_node({x=184, y=12, z=42}, {name="castrum:fire"}) - minetest.set_node({x=182, y=12, z=42}, {name="castrum:fire"}) - minetest.set_node({x=180, y=12, z=42}, {name="castrum:fire"}) - minetest.set_node({x=182, y=11, z=44}, {name="castrum:skeleton_captain"}) - screwdriver_handler(player, {type="node", under={x=182, y=11, z=44}, above={x=182, y=11, z=44}}, 1) - elseif v+0 == 0 then - for j=180,184 do - for i=42,46 do - for k=9,12 do - minetest.set_node({x=j, y=k, z=i}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Fountain.lua b/mods/castrum/buildings/Island_Fountain.lua deleted file mode 100644 index 65ff45e..0000000 --- a/mods/castrum/buildings/Island_Fountain.lua +++ /dev/null @@ -1,66 +0,0 @@ -function Island_Fountain(v,player) - if v+0 == 1 then - for i=147,149 do - for j=0,6 do - minetest.set_node({x=i, y=9, z=j}, {name="default:sandstone"}) - end - end - for i=145,151 do - for j=2,4 do - minetest.set_node({x=i, y=9, z=j}, {name="default:sandstone"}) - end - end - elseif v+0 == 2 then - minetest.set_node({x=150, y=9, z=5}, {name="default:sandstone"}) - minetest.set_node({x=146, y=9, z=5}, {name="default:sandstone"}) - minetest.set_node({x=150, y=9, z=1}, {name="default:sandstone"}) - minetest.set_node({x=146, y=9, z=1}, {name="default:sandstone"}) - minetest.set_node({x=150, y=10, z=5}, {name="default:sandstone"}) - minetest.set_node({x=146, y=10, z=5}, {name="default:sandstone"}) - minetest.set_node({x=150, y=10, z=1}, {name="default:sandstone"}) - minetest.set_node({x=146, y=10, z=1}, {name="default:sandstone"}) - minetest.set_node({x=148, y=10, z=3}, {name="default:sandstone"}) - elseif v+0 == 3 then - minetest.set_node({x=149, y=10, z=6}, {name="default:sandstone"}) - minetest.set_node({x=148, y=10, z=6}, {name="default:sandstone"}) - minetest.set_node({x=147, y=10, z=6}, {name="default:sandstone"}) - minetest.set_node({x=149, y=10, z=0}, {name="default:sandstone"}) - minetest.set_node({x=148, y=10, z=0}, {name="default:sandstone"}) - minetest.set_node({x=147, y=10, z=0}, {name="default:sandstone"}) - minetest.set_node({x=145, y=10, z=2}, {name="default:sandstone"}) - minetest.set_node({x=145, y=10, z=3}, {name="default:sandstone"}) - minetest.set_node({x=145, y=10, z=4}, {name="default:sandstone"}) - minetest.set_node({x=151, y=10, z=2}, {name="default:sandstone"}) - minetest.set_node({x=151, y=10, z=3}, {name="default:sandstone"}) - minetest.set_node({x=151, y=10, z=4}, {name="default:sandstone"}) - elseif v+0 == 4 then - minetest.set_node({x=148, y=11, z=3}, {name="default:sandstone"}) - minetest.set_node({x=148, y=12, z=3}, {name="default:sandstone"}) - minetest.set_node({x=148, y=13, z=3}, {name="default:water_source"}) - elseif v+0 == 5 then - minetest.set_node({x=148, y=10, z=6}, {name="default:desert_sandstone"}) - minetest.set_node({x=147, y=9, z=6}, {name="default:desert_sandstone"}) - minetest.set_node({x=149, y=9, z=6}, {name="default:desert_sandstone"}) - minetest.set_node({x=146, y=10, z=5}, {name="default:desert_sandstone"}) - minetest.set_node({x=150, y=10, z=5}, {name="default:desert_sandstone"}) - minetest.set_node({x=145, y=9, z=4}, {name="default:desert_sandstone"}) - minetest.set_node({x=151, y=9, z=4}, {name="default:desert_sandstone"}) - minetest.set_node({x=145, y=10, z=3}, {name="default:desert_sandstone"}) - minetest.set_node({x=151, y=10, z=3}, {name="default:desert_sandstone"}) - minetest.set_node({x=145, y=9, z=2}, {name="default:desert_sandstone"}) - minetest.set_node({x=151, y=9, z=2}, {name="default:desert_sandstone"}) - minetest.set_node({x=146, y=10, z=1}, {name="default:desert_sandstone"}) - minetest.set_node({x=150, y=10, z=1}, {name="default:desert_sandstone"}) - minetest.set_node({x=147, y=9, z=0}, {name="default:desert_sandstone"}) - minetest.set_node({x=149, y=9, z=0}, {name="default:desert_sandstone"}) - minetest.set_node({x=148, y=10, z=0}, {name="default:desert_sandstone"}) - elseif v+0 == 0 then - for i=145,151 do - for k=9,13 do - for j=0,6 do - minetest.set_node({x=i, y=k, z=j}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Home1.lua b/mods/castrum/buildings/Island_Home1.lua deleted file mode 100644 index df447bc..0000000 --- a/mods/castrum/buildings/Island_Home1.lua +++ /dev/null @@ -1,72 +0,0 @@ -function Island_Home1(v,player) - if v+0 == 1 then - minetest.set_node({x=144, y=9, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=138, y=9, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=138, y=9, z=-21}, {name="default:sandstone"}) - minetest.set_node({x=144, y=9, z=-21}, {name="default:sandstone"}) - for j=15,20 do - minetest.set_node({x=145, y=9, z=j*(-1)}, {name="default:sandstone"}) - minetest.set_node({x=137, y=9, z=j*(-1)}, {name="default:sandstone"}) - end - for i=139,143 do - minetest.set_node({x=i, y=9, z=-22}, {name="default:sandstone"}) - end - elseif v+0 == 2 then - minetest.set_node({x=144, y=10, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=138, y=10, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=138, y=10, z=-21}, {name="default:sandstone"}) - minetest.set_node({x=144, y=10, z=-21}, {name="default:sandstone"}) - for j=15,20 do - minetest.set_node({x=145, y=10, z=j*(-1)}, {name="default:sandstone"}) - minetest.set_node({x=137, y=10, z=j*(-1)}, {name="default:sandstone"}) - end - for i=139,143 do - minetest.set_node({x=i, y=10, z=-22}, {name="default:sandstone"}) - end - minetest.set_node({x=145, y=10, z=-17}, {name="default:glass"}) - minetest.set_node({x=145, y=10, z=-18}, {name="default:glass"}) - minetest.set_node({x=141, y=10, z=-22}, {name="default:glass"}) - minetest.set_node({x=137, y=10, z=-17}, {name="default:glass"}) - minetest.set_node({x=137, y=10, z=-18}, {name="default:glass"}) - elseif v+0 == 3 then - minetest.set_node({x=144, y=11, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=138, y=11, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=138, y=11, z=-21}, {name="default:sandstone"}) - minetest.set_node({x=144, y=11, z=-21}, {name="default:sandstone"}) - for j=15,20 do - minetest.set_node({x=145, y=11, z=j*(-1)}, {name="default:sandstone"}) - minetest.set_node({x=137, y=11, z=j*(-1)}, {name="default:sandstone"}) - end - for i=139,143 do - minetest.set_node({x=i, y=11, z=-22}, {name="default:sandstone"}) - end - elseif v+0 == 4 then - minetest.set_node({x=143, y=12, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=139, y=12, z=-14}, {name="default:sandstone"}) - for j=15,20 do - minetest.set_node({x=144, y=12, z=j*(-1)}, {name="default:sandstone"}) - minetest.set_node({x=138, y=12, z=j*(-1)}, {name="default:sandstone"}) - end - for i=139,143 do - minetest.set_node({x=i, y=12, z=-21}, {name="default:sandstone"}) - end - elseif v+0 == 5 then - for j=14,20 do - for i=139,143 do - minetest.set_node({x=i, y=13, z=j*(-1)}, {name="default:sandstone"}) - end - end - minetest.set_node({x=143, y=13, z=-14}, {name="air"}) - minetest.set_node({x=139, y=13, z=-14}, {name="air"}) - minetest.set_node({x=141, y=13, z=-18}, {name="air"}) - minetest.set_node({x=141, y=9, z=-18}, {name="castrum:fire"}) - elseif v+0 == 0 then - for i=137,145 do - for k=9,13 do - for j=14,22 do - minetest.set_node({x=i, y=k, z=j*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Home2.lua b/mods/castrum/buildings/Island_Home2.lua deleted file mode 100644 index 87bb314..0000000 --- a/mods/castrum/buildings/Island_Home2.lua +++ /dev/null @@ -1,72 +0,0 @@ -function Island_Home2(v,player) - if v+0 == 1 then - minetest.set_node({x=158, y=9, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=152, y=9, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=152, y=9, z=-21}, {name="default:sandstone"}) - minetest.set_node({x=158, y=9, z=-21}, {name="default:sandstone"}) - for j=15,20 do - minetest.set_node({x=159, y=9, z=j*(-1)}, {name="default:sandstone"}) - minetest.set_node({x=151, y=9, z=j*(-1)}, {name="default:sandstone"}) - end - for i=153,157 do - minetest.set_node({x=i, y=9, z=-22}, {name="default:sandstone"}) - end - elseif v+0 == 2 then - minetest.set_node({x=158, y=10, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=152, y=10, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=152, y=10, z=-21}, {name="default:sandstone"}) - minetest.set_node({x=158, y=10, z=-21}, {name="default:sandstone"}) - for j=15,20 do - minetest.set_node({x=159, y=10, z=j*(-1)}, {name="default:sandstone"}) - minetest.set_node({x=151, y=10, z=j*(-1)}, {name="default:sandstone"}) - end - for i=153,157 do - minetest.set_node({x=i, y=10, z=-22}, {name="default:sandstone"}) - end - minetest.set_node({x=159, y=10, z=-17}, {name="default:glass"}) - minetest.set_node({x=159, y=10, z=-18}, {name="default:glass"}) - minetest.set_node({x=155, y=10, z=-22}, {name="default:glass"}) - minetest.set_node({x=151, y=10, z=-17}, {name="default:glass"}) - minetest.set_node({x=151, y=10, z=-18}, {name="default:glass"}) - elseif v+0 == 3 then - minetest.set_node({x=158, y=11, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=152, y=11, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=152, y=11, z=-21}, {name="default:sandstone"}) - minetest.set_node({x=158, y=11, z=-21}, {name="default:sandstone"}) - for j=15,20 do - minetest.set_node({x=159, y=11, z=j*(-1)}, {name="default:sandstone"}) - minetest.set_node({x=151, y=11, z=j*(-1)}, {name="default:sandstone"}) - end - for i=153,157 do - minetest.set_node({x=i, y=11, z=-22}, {name="default:sandstone"}) - end - elseif v+0 == 4 then - minetest.set_node({x=157, y=12, z=-14}, {name="default:sandstone"}) - minetest.set_node({x=153, y=12, z=-14}, {name="default:sandstone"}) - for j=15,20 do - minetest.set_node({x=158, y=12, z=j*(-1)}, {name="default:sandstone"}) - minetest.set_node({x=152, y=12, z=j*(-1)}, {name="default:sandstone"}) - end - for i=153,157 do - minetest.set_node({x=i, y=12, z=-21}, {name="default:sandstone"}) - end - elseif v+0 == 5 then - for j=14,20 do - for i=153,157 do - minetest.set_node({x=i, y=13, z=j*(-1)}, {name="default:sandstone"}) - end - end - minetest.set_node({x=157, y=13, z=-14}, {name="air"}) - minetest.set_node({x=153, y=13, z=-14}, {name="air"}) - minetest.set_node({x=155, y=13, z=-18}, {name="air"}) - minetest.set_node({x=155, y=9, z=-18}, {name="castrum:fire"}) - elseif v+0 == 0 then - for i=151,159 do - for k=9,13 do - for j=14,22 do - minetest.set_node({x=i, y=k, z=j*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Pier.lua b/mods/castrum/buildings/Island_Pier.lua deleted file mode 100644 index 60685dc..0000000 --- a/mods/castrum/buildings/Island_Pier.lua +++ /dev/null @@ -1,94 +0,0 @@ -function Island_Pier(v,player) - if v+0 == 1 then - for j=171,175 do - for i=38,40 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=171, y=7, z=40}, {name="default:wood"}) - minetest.set_node({x=171, y=6, z=40}, {name="default:wood"}) - minetest.set_node({x=175, y=7, z=40}, {name="default:wood"}) - minetest.set_node({x=175, y=6, z=40}, {name="default:wood"}) - elseif v+0 == 2 then - for j=171,175 do - for i=41,43 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=171, y=7, z=43}, {name="default:wood"}) - minetest.set_node({x=171, y=6, z=43}, {name="default:wood"}) - minetest.set_node({x=175, y=7, z=43}, {name="default:wood"}) - minetest.set_node({x=175, y=6, z=43}, {name="default:wood"}) - elseif v+0 == 3 then - for j=171,175 do - for i=44,46 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=171, y=7, z=46}, {name="default:wood"}) - minetest.set_node({x=171, y=6, z=46}, {name="default:wood"}) - minetest.set_node({x=175, y=7, z=46}, {name="default:wood"}) - minetest.set_node({x=175, y=6, z=46}, {name="default:wood"}) - elseif v+0 == 4 then - for j=171,175 do - for i=47,49 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=171, y=7, z=49}, {name="default:wood"}) - minetest.set_node({x=171, y=6, z=49}, {name="default:wood"}) - minetest.set_node({x=175, y=7, z=49}, {name="default:wood"}) - minetest.set_node({x=175, y=6, z=49}, {name="default:wood"}) - elseif v+0 == 5 then - for j=171,175 do - for i=50,52 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=171, y=7, z=52}, {name="default:wood"}) - minetest.set_node({x=171, y=6, z=52}, {name="default:wood"}) - minetest.set_node({x=175, y=7, z=52}, {name="default:wood"}) - minetest.set_node({x=175, y=6, z=52}, {name="default:wood"}) - elseif v+0 == 6 then - for j=171,175 do - for i=53,55 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=171, y=7, z=55}, {name="default:wood"}) - minetest.set_node({x=171, y=6, z=55}, {name="default:wood"}) - minetest.set_node({x=175, y=7, z=55}, {name="default:wood"}) - minetest.set_node({x=175, y=6, z=55}, {name="default:wood"}) - elseif v+0 == 7 then - for j=171,175 do - for i=56,58 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=171, y=7, z=58}, {name="default:wood"}) - minetest.set_node({x=171, y=6, z=58}, {name="default:wood"}) - minetest.set_node({x=175, y=7, z=58}, {name="default:wood"}) - minetest.set_node({x=175, y=6, z=58}, {name="default:wood"}) - minetest.set_node({x=171, y=8, z=44}, {name="castrum:ship2"}) - minetest.set_node({x=175, y=8, z=44}, {name="castrum:island_pier2"}) - elseif v+0 == 8 then - for j=171,175 do - for i=38,58 do - for k=6,8 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - end - end - end - elseif v+0 == 0 then - for j=171,175 do - for i=38,58 do - for k=6,7 do - minetest.set_node({x=j, y=k, z=i}, {name="default:water_source"}) - end - minetest.set_node({x=j, y=8, z=i}, {name="air"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Pier2.lua b/mods/castrum/buildings/Island_Pier2.lua deleted file mode 100644 index 5d11307..0000000 --- a/mods/castrum/buildings/Island_Pier2.lua +++ /dev/null @@ -1,53 +0,0 @@ -function Island_Pier2(v,player) - if v+0 == 1 then - for j=176,178 do - for i=42,46 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=178, y=7, z=42}, {name="default:wood"}) - minetest.set_node({x=178, y=6, z=42}, {name="default:wood"}) - minetest.set_node({x=178, y=7, z=46}, {name="default:wood"}) - minetest.set_node({x=178, y=6, z=46}, {name="default:wood"}) - elseif v+0 == 2 then - for j=179,181 do - for i=42,46 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=181, y=7, z=42}, {name="default:wood"}) - minetest.set_node({x=181, y=6, z=42}, {name="default:wood"}) - minetest.set_node({x=181, y=7, z=46}, {name="default:wood"}) - minetest.set_node({x=181, y=6, z=46}, {name="default:wood"}) - elseif v+0 == 3 then - for j=182,184 do - for i=42,46 do - minetest.set_node({x=j, y=8, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=184, y=7, z=42}, {name="default:wood"}) - minetest.set_node({x=184, y=6, z=42}, {name="default:wood"}) - minetest.set_node({x=184, y=7, z=46}, {name="default:wood"}) - minetest.set_node({x=184, y=6, z=46}, {name="default:wood"}) - minetest.set_node({x=179, y=8, z=44}, {name="castrum:island_battleground"}) - elseif v+0 == 4 then - for j=176,184 do - for i=42,46 do - for k=6,8 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - end - end - end - elseif v+0 == 0 then - for j=176,184 do - for i=42,46 do - for k=6,7 do - minetest.set_node({x=j, y=k, z=i}, {name="default:water_source"}) - end - minetest.set_node({x=j, y=8, z=i}, {name="air"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Smithy.lua b/mods/castrum/buildings/Island_Smithy.lua deleted file mode 100644 index 6ced7fa..0000000 --- a/mods/castrum/buildings/Island_Smithy.lua +++ /dev/null @@ -1,83 +0,0 @@ -function Island_Smithy(v,player) - if v+0 == 1 then - for j=166,173 do - for i=20,28 do - minetest.set_node({x=j, y=9, z=i}, {name="default:sandstone"}) - end - end - minetest.set_node({x=165, y=9, z=23}, {name="stairs:stair_sandstone"}) - minetest.set_node({x=165, y=9, z=22}, {name="stairs:stair_sandstone"}) - screwdriver_handler(player, {type="node", under={x=165, y=9, z=23}, above={x=165, y=9, z=23}}, 1) - screwdriver_handler(player, {type="node", under={x=165, y=9, z=22}, above={x=165, y=9, z=22}}, 1) - elseif v+0 == 2 then - for j=166,173 do - minetest.set_node({x=j, y=10, z=20}, {name="default:sandstone"}) - minetest.set_node({x=j, y=10, z=25}, {name="default:sandstone"}) - end - for i=20,28 do - minetest.set_node({x=173, y=10, z=i}, {name="default:sandstone"}) - end - for j=167,173 do - minetest.set_node({x=j, y=10, z=28}, {name="default:sandstone"}) - end - minetest.set_node({x=166, y=10, z=21}, {name="default:sandstone"}) - minetest.set_node({x=166, y=10, z=24}, {name="default:sandstone"}) - minetest.set_node({x=171, y=10, z=27}, {name="default:sandstone"}) - minetest.set_node({x=171, y=10, z=26}, {name="default:sandstone"}) - elseif v+0 == 3 then - for j=166,173 do - minetest.set_node({x=j, y=11, z=20}, {name="default:sandstone"}) - minetest.set_node({x=j, y=11, z=25}, {name="default:sandstone"}) - end - for i=20,28 do - minetest.set_node({x=173, y=11, z=i}, {name="default:sandstone"}) - end - for j=168,173 do - minetest.set_node({x=j, y=11, z=28}, {name="default:sandstone"}) - end - minetest.set_node({x=166, y=11, z=21}, {name="default:sandstone"}) - minetest.set_node({x=166, y=11, z=24}, {name="default:sandstone"}) - minetest.set_node({x=166, y=10, z=22}, {name="doors:door_wood_b"}) - minetest.set_node({x=166, y=10, z=23}, {name="doors:door_wood_a"}) - screwdriver_handler(player, {type="node", under={x=166, y=10, z=22}, above={x=166, y=10, z=22}}, 1) - screwdriver_handler(player, {type="node", under={x=166, y=10, z=23}, above={x=166, y=10, z=23}}, 1) - elseif v+0 == 4 then - for j=166,173 do - minetest.set_node({x=j, y=12, z=20}, {name="default:sandstone"}) - minetest.set_node({x=j, y=12, z=25}, {name="default:sandstone"}) - end - for i=20,28 do - minetest.set_node({x=173, y=12, z=i}, {name="default:sandstone"}) - end - for i=20,25 do - minetest.set_node({x=166, y=12, z=i}, {name="default:sandstone"}) - end - for j=169,173 do - minetest.set_node({x=j, y=12, z=28}, {name="default:sandstone"}) - end - elseif v+0 == 5 then - for j=167,172 do - minetest.set_node({x=j, y=13, z=21}, {name="default:sandstone"}) - minetest.set_node({x=j, y=13, z=24}, {name="default:sandstone"}) - end - for i=21,24 do - minetest.set_node({x=167, y=13, z=i}, {name="default:sandstone"}) - minetest.set_node({x=172, y=13, z=i}, {name="default:sandstone"}) - end - elseif v+0 == 6 then - for j=168,171 do - minetest.set_node({x=j, y=14, z=22}, {name="default:sandstone"}) - minetest.set_node({x=j, y=14, z=23}, {name="default:sandstone"}) - end - minetest.set_node({x=172, y=10, z=27}, {name="default:lava_source"}) - minetest.set_node({x=172, y=10, z=26}, {name="default:lava_source"}) - elseif v+0 == 0 then - for j=165,173 do - for i=20,28 do - for k=9,14 do - minetest.set_node({x=j, y=k, z=i}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Walle.lua b/mods/castrum/buildings/Island_Walle.lua deleted file mode 100644 index cad7598..0000000 --- a/mods/castrum/buildings/Island_Walle.lua +++ /dev/null @@ -1,104 +0,0 @@ -function Island_Walle(v,player) - if v+0 == 1 then - for i=0,33 do - minetest.set_node({x=178, y=9, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=178, y=9, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 2 then - for i=0,33 do - minetest.set_node({x=178, y=10, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=178, y=10, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 3 then - for i=0,33 do - minetest.set_node({x=178, y=11, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=178, y=11, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 4 then - for i=0,33 do - minetest.set_node({x=178, y=12, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=178, y=12, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 5 then - for i=0,33 do - minetest.set_node({x=178, y=13, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=178, y=13, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 6 then - for i=0,33 do - minetest.set_node({x=178, y=14, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=178, y=14, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 7 then - for i=0,33 do - if i%2 == 1 then - minetest.set_node({x=178, y=15, z=i}, {name="default:sandstone"}) - end - end - for i=0,27 do - if i%2 == 1 then - minetest.set_node({x=178, y=15, z=i*(-1)}, {name="default:sandstone"}) - end - end - elseif v+0 == 8 then - for i=0,33 do - if i%4 == 1 then - minetest.set_node({x=178, y=12, z=i}, {name="default:desert_sandstone"}) - end - end - for i=0,27 do - if i%4 == 3 then - minetest.set_node({x=178, y=12, z=i*(-1)}, {name="default:desert_sandstone"}) - end - end - for i=0,33 do - if i%2 == 0 then - minetest.set_node({x=178, y=13, z=i}, {name="default:desert_sandstone"}) - minetest.set_node({x=178, y=11, z=i}, {name="default:desert_sandstone"}) - minetest.set_node({x=178, y=9, z=i}, {name="default:desert_sandstone"}) - end - end - for i=0,27 do - if i%2 == 0 then - minetest.set_node({x=178, y=13, z=i*(-1)}, {name="default:desert_sandstone"}) - minetest.set_node({x=178, y=11, z=i*(-1)}, {name="default:desert_sandstone"}) - minetest.set_node({x=178, y=9, z=i*(-1)}, {name="default:desert_sandstone"}) - end - end - for i=0,33 do - if i%4 == 3 then - minetest.set_node({x=178, y=14, z=i}, {name="default:desert_sandstone"}) - minetest.set_node({x=178, y=10, z=i}, {name="default:desert_sandstone"}) - end - end - for i=0,27 do - if i%4 == 1 then - minetest.set_node({x=178, y=14, z=i*(-1)}, {name="default:desert_sandstone"}) - minetest.set_node({x=178, y=10, z=i*(-1)}, {name="default:desert_sandstone"}) - end - end - elseif v+0 == 0 then - for i=0,33 do - for k=9,15 do - minetest.set_node({x=178, y=k, z=i}, {name="air"}) - end - end - for i=0,27 do - for k=9,15 do - minetest.set_node({x=178, y=k, z=i*(-1)}, {name="air"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Walln.lua b/mods/castrum/buildings/Island_Walln.lua deleted file mode 100644 index 4afe481..0000000 --- a/mods/castrum/buildings/Island_Walln.lua +++ /dev/null @@ -1,92 +0,0 @@ -function Island_Walln(v,player) - if v+0 == 1 then - for i=151,177 do - minetest.set_node({x=i, y=9, z=33}, {name="default:sandstone"}) - end - for i=119,145 do - minetest.set_node({x=i, y=9, z=33}, {name="default:sandstone"}) - end - elseif v+0 == 2 then - for i=151,177 do - minetest.set_node({x=i, y=10, z=33}, {name="default:sandstone"}) - end - for i=119,145 do - minetest.set_node({x=i, y=10, z=33}, {name="default:sandstone"}) - end - elseif v+0 == 3 then - for i=151,177 do - minetest.set_node({x=i, y=11, z=33}, {name="default:sandstone"}) - end - for i=119,145 do - minetest.set_node({x=i, y=11, z=33}, {name="default:sandstone"}) - end - elseif v+0 == 4 then - for i=151,177 do - minetest.set_node({x=i, y=12, z=33}, {name="default:sandstone"}) - end - for i=119,145 do - minetest.set_node({x=i, y=12, z=33}, {name="default:sandstone"}) - end - elseif v+0 == 5 then - for i=150,177 do - minetest.set_node({x=i, y=13, z=33}, {name="default:sandstone"}) - end - for i=119,146 do - minetest.set_node({x=i, y=13, z=33}, {name="default:sandstone"}) - end - elseif v+0 == 6 then - for i=119,177 do - minetest.set_node({x=i, y=14, z=33}, {name="default:sandstone"}) - end - elseif v+0 == 7 then - for i=119,177 do - if i%2 == 0 then - minetest.set_node({x=i, y=15, z=33}, {name="default:sandstone"}) - end - end - elseif v+0 == 8 then - for i=119,145 do - if i%4 == 2 then - minetest.set_node({x=i, y=12, z=33}, {name="default:desert_sandstone"}) - end - end - for i=151,177 do - if i%4 == 2 then - minetest.set_node({x=i, y=12, z=33}, {name="default:desert_sandstone"}) - end - end - for i=119,145 do - if i%2 == 1 then - minetest.set_node({x=i, y=13, z=33}, {name="default:desert_sandstone"}) - minetest.set_node({x=i, y=11, z=33}, {name="default:desert_sandstone"}) - minetest.set_node({x=i, y=9, z=33}, {name="default:desert_sandstone"}) - end - end - for i=151,177 do - if i%2 == 1 then - minetest.set_node({x=i, y=13, z=33}, {name="default:desert_sandstone"}) - minetest.set_node({x=i, y=11, z=33}, {name="default:desert_sandstone"}) - minetest.set_node({x=i, y=9, z=33}, {name="default:desert_sandstone"}) - end - end - for i=119,145 do - if i%4 == 0 then - minetest.set_node({x=i, y=14, z=33}, {name="default:desert_sandstone"}) - minetest.set_node({x=i, y=10, z=33}, {name="default:desert_sandstone"}) - end - end - for i=151,177 do - if i%4 == 0 then - minetest.set_node({x=i, y=14, z=33}, {name="default:desert_sandstone"}) - minetest.set_node({x=i, y=10, z=33}, {name="default:desert_sandstone"}) - end - end - minetest.set_node({x=148, y=14, z=33}, {name="default:desert_sandstone"}) - elseif v+0 == 0 then - for i=119,177 do - for k=9,15 do - minetest.set_node({x=i, y=k, z=33}, {name="air"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Walls.lua b/mods/castrum/buildings/Island_Walls.lua deleted file mode 100644 index 8a3941b..0000000 --- a/mods/castrum/buildings/Island_Walls.lua +++ /dev/null @@ -1,58 +0,0 @@ -function Island_Walls(v,player) - if v+0 == 1 then - for i=119,177 do - minetest.set_node({x=i, y=9, z=-27}, {name="default:sandstone"}) - end - elseif v+0 == 2 then - for i=119,177 do - minetest.set_node({x=i, y=10, z=-27}, {name="default:sandstone"}) - end - elseif v+0 == 3 then - for i=119,177 do - minetest.set_node({x=i, y=11, z=-27}, {name="default:sandstone"}) - end - elseif v+0 == 4 then - for i=119,177 do - minetest.set_node({x=i, y=12, z=-27}, {name="default:sandstone"}) - end - elseif v+0 == 5 then - for i=119,177 do - minetest.set_node({x=i, y=13, z=-27}, {name="default:sandstone"}) - end - elseif v+0 == 6 then - for i=119,177 do - minetest.set_node({x=i, y=14, z=-27}, {name="default:sandstone"}) - end - elseif v+0 == 7 then - for i=119,177 do - if i%2 == 0 then - minetest.set_node({x=i, y=15, z=-27}, {name="default:sandstone"}) - end - end - elseif v+0 == 8 then - for i=119,177 do - if i%4 == 2 then - minetest.set_node({x=i, y=12, z=-27}, {name="default:desert_sandstone"}) - end - end - for i=119,177 do - if i%2 == 1 then - minetest.set_node({x=i, y=13, z=-27}, {name="default:desert_sandstone"}) - minetest.set_node({x=i, y=11, z=-27}, {name="default:desert_sandstone"}) - minetest.set_node({x=i, y=9, z=-27}, {name="default:desert_sandstone"}) - end - end - for i=119,177 do - if i%4 == 0 then - minetest.set_node({x=i, y=14, z=-27}, {name="default:desert_sandstone"}) - minetest.set_node({x=i, y=10, z=-27}, {name="default:desert_sandstone"}) - end - end - elseif v+0 == 0 then - for i=119,177 do - for k=9,15 do - minetest.set_node({x=i, y=k, z=-27}, {name="air"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Island_Wallw.lua b/mods/castrum/buildings/Island_Wallw.lua deleted file mode 100644 index 0babd72..0000000 --- a/mods/castrum/buildings/Island_Wallw.lua +++ /dev/null @@ -1,104 +0,0 @@ -function Island_Wallw(v,player) - if v+0 == 1 then - for i=0,33 do - minetest.set_node({x=118, y=9, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=118, y=9, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 2 then - for i=0,33 do - minetest.set_node({x=118, y=10, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=118, y=10, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 3 then - for i=0,33 do - minetest.set_node({x=118, y=11, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=118, y=11, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 4 then - for i=0,33 do - minetest.set_node({x=118, y=12, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=118, y=12, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 5 then - for i=0,33 do - minetest.set_node({x=118, y=13, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=118, y=13, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 6 then - for i=0,33 do - minetest.set_node({x=118, y=14, z=i}, {name="default:sandstone"}) - end - for i=0,27 do - minetest.set_node({x=118, y=14, z=i*(-1)}, {name="default:sandstone"}) - end - elseif v+0 == 7 then - for i=0,33 do - if i%2 == 1 then - minetest.set_node({x=118, y=15, z=i}, {name="default:sandstone"}) - end - end - for i=0,27 do - if i%2 == 1 then - minetest.set_node({x=118, y=15, z=i*(-1)}, {name="default:sandstone"}) - end - end - elseif v+0 == 8 then - for i=0,33 do - if i%4 == 1 then - minetest.set_node({x=118, y=12, z=i}, {name="default:desert_sandstone"}) - end - end - for i=0,27 do - if i%4 == 3 then - minetest.set_node({x=118, y=12, z=i*(-1)}, {name="default:desert_sandstone"}) - end - end - for i=0,33 do - if i%2 == 0 then - minetest.set_node({x=118, y=13, z=i}, {name="default:desert_sandstone"}) - minetest.set_node({x=118, y=11, z=i}, {name="default:desert_sandstone"}) - minetest.set_node({x=118, y=9, z=i}, {name="default:desert_sandstone"}) - end - end - for i=0,27 do - if i%2 == 0 then - minetest.set_node({x=118, y=13, z=i*(-1)}, {name="default:desert_sandstone"}) - minetest.set_node({x=118, y=11, z=i*(-1)}, {name="default:desert_sandstone"}) - minetest.set_node({x=118, y=9, z=i*(-1)}, {name="default:desert_sandstone"}) - end - end - for i=0,33 do - if i%4 == 3 then - minetest.set_node({x=118, y=14, z=i}, {name="default:desert_sandstone"}) - minetest.set_node({x=118, y=10, z=i}, {name="default:desert_sandstone"}) - end - end - for i=0,27 do - if i%4 == 1 then - minetest.set_node({x=118, y=14, z=i*(-1)}, {name="default:desert_sandstone"}) - minetest.set_node({x=118, y=10, z=i*(-1)}, {name="default:desert_sandstone"}) - end - end - elseif v+0 == 0 then - for i=0,33 do - for k=9,15 do - minetest.set_node({x=118, y=k, z=i}, {name="air"}) - end - end - for i=0,27 do - for k=9,15 do - minetest.set_node({x=118, y=k, z=i*(-1)}, {name="air"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Lake.lua b/mods/castrum/buildings/Lake.lua deleted file mode 100644 index 3ef3bbd..0000000 --- a/mods/castrum/buildings/Lake.lua +++ /dev/null @@ -1,40 +0,0 @@ -function Lake(v,player) - if v+0 == 1 then - minetest.set_node({x=-31, y=8, z=-55}, {name="default:water_source"}) - minetest.set_node({x=-34, y=9, z=-58}, {name="default:chest"}) - screwdriver_handler(player, {type="node", under={x=-34, y=9, z=-58}, above={x=-34, y=9, z=-58}}, 1) - elseif v+0 == 2 then - minetest.set_node({x=-30, y=8, z=-55}, {name="default:water_source"}) - minetest.set_node({x=-32, y=8, z=-55}, {name="default:water_source"}) - minetest.set_node({x=-31, y=8, z=-56}, {name="default:water_source"}) - minetest.set_node({x=-31, y=8, z=-54}, {name="default:water_source"}) - elseif v+0 == 3 then - minetest.set_node({x=-32, y=8, z=-54}, {name="default:water_source"}) - minetest.set_node({x=-33, y=8, z=-55}, {name="default:water_source"}) - minetest.set_node({x=-32, y=8, z=-56}, {name="default:water_source"}) - minetest.set_node({x=-31, y=8, z=-57}, {name="default:water_source"}) - minetest.set_node({x=-30, y=8, z=-56}, {name="default:water_source"}) - minetest.set_node({x=-29, y=8, z=-55}, {name="default:water_source"}) - minetest.set_node({x=-30, y=8, z=-54}, {name="default:water_source"}) - minetest.set_node({x=-31, y=8, z=-53}, {name="default:water_source"}) - elseif v+0 == 4 then - minetest.set_node({x=-30, y=8, z=-53}, {name="default:water_source"}) - minetest.set_node({x=-29, y=8, z=-54}, {name="default:water_source"}) - minetest.set_node({x=-29, y=8, z=-56}, {name="default:water_source"}) - minetest.set_node({x=-30, y=8, z=-57}, {name="default:water_source"}) - - minetest.set_node({x=-32, y=8, z=-57}, {name="default:water_source"}) - minetest.set_node({x=-33, y=8, z=-56}, {name="default:water_source"}) - minetest.set_node({x=-33, y=8, z=-54}, {name="default:water_source"}) - minetest.set_node({x=-32, y=8, z=-53}, {name="default:water_source"}) - elseif v+0 == 0 then - for j=29,33 do - for i=53,57 do - for k=8,8 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="castrum:dirt_with_grass"}) - end - end - end - minetest.set_node({x=-34, y=9, z=-58}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Lake2.lua b/mods/castrum/buildings/Lake2.lua deleted file mode 100644 index 85edf08..0000000 --- a/mods/castrum/buildings/Lake2.lua +++ /dev/null @@ -1,40 +0,0 @@ -function Lake2(v,player) - if v+0 == 1 then - minetest.set_node({x=-31, y=8, z=-64}, {name="default:river_water_source"}) - minetest.set_node({x=-34, y=9, z=-67}, {name="default:chest"}) - screwdriver_handler(player, {type="node", under={x=-34, y=9, z=-67}, above={x=-34, y=9, z=-67}}, 1) - elseif v+0 == 2 then - minetest.set_node({x=-30, y=8, z=-64}, {name="default:river_water_source"}) - minetest.set_node({x=-32, y=8, z=-64}, {name="default:river_water_source"}) - minetest.set_node({x=-31, y=8, z=-65}, {name="default:river_water_source"}) - minetest.set_node({x=-31, y=8, z=-63}, {name="default:river_water_source"}) - elseif v+0 == 3 then - minetest.set_node({x=-29, y=8, z=-64}, {name="default:river_water_source"}) - minetest.set_node({x=-30, y=8, z=-65}, {name="default:river_water_source"}) - minetest.set_node({x=-31, y=8, z=-66}, {name="default:river_water_source"}) - minetest.set_node({x=-32, y=8, z=-65}, {name="default:river_water_source"}) - minetest.set_node({x=-33, y=8, z=-64}, {name="default:river_water_source"}) - minetest.set_node({x=-32, y=8, z=-63}, {name="default:river_water_source"}) - minetest.set_node({x=-31, y=8, z=-62}, {name="default:river_water_source"}) - minetest.set_node({x=-30, y=8, z=-63}, {name="default:river_water_source"}) - elseif v+0 == 4 then - minetest.set_node({x=-29, y=8, z=-63}, {name="default:river_water_source"}) - minetest.set_node({x=-30, y=8, z=-62}, {name="default:river_water_source"}) - minetest.set_node({x=-32, y=8, z=-62}, {name="default:river_water_source"}) - minetest.set_node({x=-33, y=8, z=-63}, {name="default:river_water_source"}) - minetest.set_node({x=-29, y=8, z=-63}, {name="default:river_water_source"}) - minetest.set_node({x=-33, y=8, z=-65}, {name="default:river_water_source"}) - minetest.set_node({x=-32, y=8, z=-66}, {name="default:river_water_source"}) - minetest.set_node({x=-30, y=8, z=-66}, {name="default:river_water_source"}) - minetest.set_node({x=-29, y=8, z=-65}, {name="default:river_water_source"}) - elseif v+0 == 0 then - for j=29,33 do - for i=62,66 do - for k=8,8 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="castrum:dirt_with_grass"}) - end - end - end - minetest.set_node({x=-34, y=9, z=-67}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Meadow.lua b/mods/castrum/buildings/Meadow.lua deleted file mode 100644 index 2fb7626..0000000 --- a/mods/castrum/buildings/Meadow.lua +++ /dev/null @@ -1,130 +0,0 @@ -function Meadow(v,player) - if v+0 == 1 then - minetest.set_node({x=322, y=39, z=3}, {name="air"}) - elseif v+0 == 2 then - minetest.set_node({x=321, y=39, z=3}, {name="air"}) - minetest.set_node({x=323, y=39, z=3}, {name="air"}) - minetest.set_node({x=322, y=39, z=4}, {name="air"}) - minetest.set_node({x=322, y=39, z=2}, {name="air"}) - elseif v+0 == 3 then - minetest.set_node({x=320, y=39, z=3}, {name="air"}) - minetest.set_node({x=324, y=39, z=3}, {name="air"}) - minetest.set_node({x=322, y=39, z=5}, {name="air"}) - minetest.set_node({x=322, y=39, z=1}, {name="air"}) - minetest.set_node({x=323, y=39, z=2}, {name="air"}) - minetest.set_node({x=323, y=39, z=4}, {name="air"}) - minetest.set_node({x=321, y=39, z=2}, {name="air"}) - minetest.set_node({x=321, y=39, z=4}, {name="air"}) - elseif v+0 == 4 then - minetest.set_node({x=322, y=39, z=3}, {name="default:desert_stone_block"}) - minetest.set_node({x=322, y=40, z=3}, {name="default:desert_stone_block"}) - minetest.set_node({x=322, y=41, z=3}, {name="default:water_source"}) - elseif v+0 == 5 then - minetest.set_node({x=322, y=39, z=0}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=323, y=39, z=1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=324, y=39, z=2}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=325, y=39, z=3}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=324, y=39, z=4}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=323, y=39, z=5}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=322, y=39, z=6}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=321, y=39, z=5}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=320, y=39, z=4}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=319, y=39, z=3}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=320, y=39, z=2}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=321, y=39, z=1}, {name="castrum:dirt_with_grass"}) - elseif v+0 == 6 then - minetest.set_node({x=322, y=39, z=-1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=323, y=39, z=0}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=324, y=39, z=1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=325, y=39, z=2}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=326, y=39, z=3}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=325, y=39, z=4}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=324, y=39, z=5}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=323, y=39, z=6}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=322, y=39, z=7}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=321, y=39, z=6}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=320, y=39, z=5}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=319, y=39, z=4}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=318, y=39, z=3}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=319, y=39, z=2}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=320, y=39, z=1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=321, y=39, z=0}, {name="castrum:dirt_with_grass"}) - elseif v+0 == 7 then - minetest.set_node({x=326, y=39, z=4}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=325, y=39, z=5}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=324, y=39, z=6}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=323, y=39, z=7}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=321, y=39, z=7}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=320, y=39, z=6}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=319, y=39, z=5}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=318, y=39, z=4}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=318, y=39, z=2}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=319, y=39, z=1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=320, y=39, z=0}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=321, y=39, z=-1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=323, y=39, z=-1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=324, y=39, z=0}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=325, y=39, z=1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=326, y=39, z=2}, {name="castrum:dirt_with_grass"}) - elseif v+0 == 8 then - minetest.set_node({x=318, y=39, z=-1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=318, y=39, z=0}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=318, y=39, z=1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=319, y=39, z=-1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=319, y=39, z=0}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=320, y=39, z=-1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=318, y=39, z=5}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=318, y=39, z=6}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=318, y=39, z=7}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=319, y=39, z=6}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=319, y=39, z=7}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=320, y=39, z=7}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=326, y=39, z=-1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=326, y=39, z=0}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=326, y=39, z=1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=325, y=39, z=-1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=325, y=39, z=0}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=324, y=39, z=-1}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=326, y=39, z=5}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=326, y=39, z=6}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=326, y=39, z=7}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=325, y=39, z=6}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=325, y=39, z=7}, {name="castrum:dirt_with_grass"}) - minetest.set_node({x=324, y=39, z=7}, {name="castrum:dirt_with_grass"}) - elseif v+0 == 9 then - minetest.set_node({x=326, y=40, z=2}, {name="flowers:dandelion_white"}) - minetest.set_node({x=324, y=40, z=0}, {name="flowers:dandelion_white"}) - minetest.set_node({x=322, y=40, z=-1}, {name="flowers:dandelion_white"}) - minetest.set_node({x=319, y=40, z=-1}, {name="flowers:dandelion_white"}) - minetest.set_node({x=318, y=40, z=3}, {name="flowers:dandelion_white"}) - minetest.set_node({x=320, y=40, z=5}, {name="flowers:dandelion_white"}) - minetest.set_node({x=321, y=40, z=7}, {name="flowers:dandelion_white"}) - minetest.set_node({x=324, y=40, z=6}, {name="flowers:dandelion_white"}) - minetest.set_node({x=326, y=40, z=5}, {name="flowers:dandelion_white"}) - minetest.set_node({x=326, y=40, z=3}, {name="flowers:rose"}) - minetest.set_node({x=325, y=40, z=0}, {name="flowers:rose"}) - minetest.set_node({x=322, y=40, z=0}, {name="flowers:rose"}) - minetest.set_node({x=319, y=40, z=1}, {name="flowers:rose"}) - minetest.set_node({x=319, y=40, z=4}, {name="flowers:rose"}) - minetest.set_node({x=318, y=40, z=6}, {name="flowers:rose"}) - minetest.set_node({x=322, y=40, z=6}, {name="flowers:rose"}) - minetest.set_node({x=324, y=40, z=5}, {name="flowers:rose"}) - minetest.set_node({x=326, y=40, z=7}, {name="flowers:rose"}) - minetest.set_node({x=327, y=40, z=8}, {name="default:chest"}) - screwdriver_handler(player, {type="node", under={x=327, y=40, z=8}, above={x=327, y=40, z=8}}, 1) - screwdriver_handler(player, {type="node", under={x=327, y=40, z=8}, above={x=327, y=40, z=8}}, 1) - screwdriver_handler(player, {type="node", under={x=327, y=40, z=8}, above={x=327, y=40, z=8}}, 1) - elseif v+0 == 0 then - for j=318,326 do - for i=0,7 do - minetest.set_node({x=j, y=39, z=i}, {name="default:stone"}) - minetest.set_node({x=j, y=40, z=i}, {name="air"}) - minetest.set_node({x=j, y=41, z=i}, {name="air"}) - end - minetest.set_node({x=j, y=39, z=-1}, {name="default:stone"}) - minetest.set_node({x=j, y=40, z=-1}, {name="air"}) - minetest.set_node({x=j, y=41, z=-1}, {name="air"}) - end - minetest.set_node({x=327, y=40, z=8}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Mine.lua b/mods/castrum/buildings/Mine.lua deleted file mode 100644 index 5a1eb4e..0000000 --- a/mods/castrum/buildings/Mine.lua +++ /dev/null @@ -1,132 +0,0 @@ -function Mine(v,player) - if v+0 == 1 then - minetest.set_node({x=-16, y=9, z=-7}, {name="default:stone_with_coal"}) - minetest.set_node({x=-18, y=9, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-17, y=9, z=-13}, {name="default:stone_with_coal"}) - minetest.set_node({x=-14, y=9, z=-11}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=9, z=-8}, {name="default:stone_with_coal"}) - minetest.set_node({x=-11, y=9, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=9, z=-14}, {name="default:stone_with_coal"}) - minetest.set_node({x=-20, y=9, z=-15}, {name="default:chest"}) - screwdriver_handler(player, {type="node", under={x=-20, y=9, z=-15}, above={x=-20, y=9, z=-15}}, 1) - elseif v+0 == 2 then - minetest.set_node({x=-17, y=9, z=-7}, {name="default:stone_with_coal"}) - minetest.set_node({x=-16, y=9, z=-6}, {name="default:stone_with_coal"}) - minetest.set_node({x=-15, y=9, z=-7}, {name="default:stone_with_coal"}) - minetest.set_node({x=-16, y=9, z=-8}, {name="default:stone_with_coal"}) - minetest.set_node({x=-16, y=10, z=-7}, {name="default:stone_with_coal"}) - minetest.set_node({x=-19, y=9, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-18, y=9, z=-9}, {name="default:stone_with_coal"}) - minetest.set_node({x=-17, y=9, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-18, y=9, z=-11}, {name="default:stone_with_coal"}) - minetest.set_node({x=-18, y=10, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-18, y=9, z=-13}, {name="default:stone_with_coal"}) - minetest.set_node({x=-17, y=9, z=-12}, {name="default:stone_with_coal"}) - minetest.set_node({x=-16, y=9, z=-13}, {name="default:stone_with_coal"}) - minetest.set_node({x=-17, y=9, z=-14}, {name="default:stone_with_coal"}) - minetest.set_node({x=-17, y=10, z=-13}, {name="default:stone_with_coal"}) - minetest.set_node({x=-15, y=9, z=-11}, {name="default:stone_with_coal"}) - minetest.set_node({x=-14, y=9, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=9, z=-11}, {name="default:stone_with_coal"}) - minetest.set_node({x=-14, y=9, z=-12}, {name="default:stone_with_coal"}) - minetest.set_node({x=-14, y=10, z=-11}, {name="default:stone_with_coal"}) - minetest.set_node({x=-14, y=9, z=-8}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=9, z=-7}, {name="default:stone_with_coal"}) - minetest.set_node({x=-12, y=9, z=-8}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=9, z=-9}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=10, z=-8}, {name="default:stone_with_coal"}) - minetest.set_node({x=-12, y=9, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-11, y=9, z=-9}, {name="default:stone_with_coal"}) - minetest.set_node({x=-11, y=9, z=-11}, {name="default:stone_with_coal"}) - minetest.set_node({x=-11, y=10, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-14, y=9, z=-14}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=9, z=-13}, {name="default:stone_with_coal"}) - minetest.set_node({x=-12, y=9, z=-14}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=10, z=-14}, {name="default:stone_with_coal"}) - elseif v+0 == 3 then - minetest.set_node({x=-16, y=11, z=-7}, {name="default:stone_with_coal"}) - minetest.set_node({x=-18, y=11, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-17, y=11, z=-13}, {name="default:stone_with_coal"}) - minetest.set_node({x=-14, y=11, z=-11}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=11, z=-8}, {name="default:stone_with_coal"}) - minetest.set_node({x=-11, y=11, z=-10}, {name="default:stone_with_coal"}) - minetest.set_node({x=-13, y=11, z=-14}, {name="default:stone_with_coal"}) - minetest.set_node({x=-19, y=9, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-18, y=9, z=-8}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=9, z=-9}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=9, z=-13}, {name="default:stone_with_iron"}) - minetest.set_node({x=-14, y=9, z=-6}, {name="default:stone_with_iron"}) - minetest.set_node({x=-12, y=9, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-11, y=9, z=-7}, {name="default:stone_with_iron"}) - elseif v+0 == 4 then - minetest.set_node({x=-19, y=10, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-18, y=10, z=-8}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=10, z=-9}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=10, z=-13}, {name="default:stone_with_iron"}) - minetest.set_node({x=-14, y=10, z=-6}, {name="default:stone_with_iron"}) - minetest.set_node({x=-12, y=10, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-11, y=10, z=-7}, {name="default:stone_with_iron"}) - minetest.set_node({x=-12, y=9, z=-7}, {name="default:stone_with_iron"}) - minetest.set_node({x=-11, y=9, z=-6}, {name="default:stone_with_iron"}) - minetest.set_node({x=-11, y=9, z=-8}, {name="default:stone_with_iron"}) - minetest.set_node({x=-13, y=9, z=-6}, {name="default:stone_with_iron"}) - minetest.set_node({x=-14, y=9, z=-7}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=9, z=-6}, {name="default:stone_with_iron"}) - minetest.set_node({x=-14, y=9, z=-9}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=9, z=-10}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=9, z=-8}, {name="default:stone_with_iron"}) - minetest.set_node({x=-16, y=9, z=-9}, {name="default:stone_with_iron"}) - minetest.set_node({x=-11, y=9, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-12, y=9, z=-13}, {name="default:stone_with_iron"}) - minetest.set_node({x=-12, y=9, z=-11}, {name="default:stone_with_iron"}) - minetest.set_node({x=-13, y=9, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-14, y=9, z=-13}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=9, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=9, z=-14}, {name="default:stone_with_iron"}) - minetest.set_node({x=-18, y=9, z=-7}, {name="default:stone_with_iron"}) - minetest.set_node({x=-17, y=9, z=-8}, {name="default:stone_with_iron"}) - minetest.set_node({x=-19, y=9, z=-8}, {name="default:stone_with_iron"}) - minetest.set_node({x=-19, y=9, z=-11}, {name="default:stone_with_iron"}) - minetest.set_node({x=-18, y=9, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-19, y=9, z=-13}, {name="default:stone_with_iron"}) - elseif v+0 == 5 then - minetest.set_node({x=-19, y=11, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-18, y=11, z=-8}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=11, z=-9}, {name="default:stone_with_iron"}) - minetest.set_node({x=-15, y=11, z=-13}, {name="default:stone_with_iron"}) - minetest.set_node({x=-14, y=11, z=-6}, {name="default:stone_with_iron"}) - minetest.set_node({x=-12, y=11, z=-12}, {name="default:stone_with_iron"}) - minetest.set_node({x=-11, y=11, z=-7}, {name="default:stone_with_iron"}) - minetest.set_node({x=-12, y=9, z=-9}, {name="default:stone_with_tin"}) - minetest.set_node({x=-16, y=9, z=-11}, {name="default:stone_with_tin"}) - minetest.set_node({x=-12, y=9, z=-6}, {name="default:stone_with_copper"}) - minetest.set_node({x=-13, y=9, z=-10}, {name="default:stone_with_copper"}) - minetest.set_node({x=-11, y=9, z=-13}, {name="default:stone_with_copper"}) - minetest.set_node({x=-18, y=9, z=-6}, {name="default:stone_with_copper"}) - minetest.set_node({x=-18, y=9, z=-14}, {name="default:stone_with_copper"}) - elseif v+0 == 6 then - minetest.set_node({x=-12, y=10, z=-9}, {name="default:stone_with_tin"}) - minetest.set_node({x=-16, y=10, z=-11}, {name="default:stone_with_tin"}) - minetest.set_node({x=-12, y=10, z=-6}, {name="default:stone_with_copper"}) - minetest.set_node({x=-13, y=10, z=-10}, {name="default:stone_with_copper"}) - minetest.set_node({x=-11, y=10, z=-13}, {name="default:stone_with_copper"}) - minetest.set_node({x=-18, y=10, z=-6}, {name="default:stone_with_copper"}) - minetest.set_node({x=-18, y=10, z=-14}, {name="default:stone_with_copper"}) - minetest.set_node({x=-11, y=9, z=-14}, {name="default:stone_with_copper"}) - minetest.set_node({x=-17, y=9, z=-6}, {name="default:stone_with_copper"}) - minetest.set_node({x=-19, y=9, z=-6}, {name="default:stone_with_copper"}) - minetest.set_node({x=-19, y=9, z=-14}, {name="default:stone_with_copper"}) - minetest.set_node({x=-16, y=9, z=-10}, {name="default:stone_with_tin"}) - minetest.set_node({x=-16, y=9, z=-12}, {name="default:stone_with_tin"}) - minetest.set_node({x=-17, y=9, z=-11}, {name="default:stone_with_tin"}) - elseif v+0 == 0 then - for j=11,19 do - for i=6,14 do - for k=9,14 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - end - end - minetest.set_node({x=-20, y=9, z=-15}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Moat_east.lua b/mods/castrum/buildings/Moat_east.lua deleted file mode 100644 index dda9f6d..0000000 --- a/mods/castrum/buildings/Moat_east.lua +++ /dev/null @@ -1,381 +0,0 @@ -function Moat_east(v,player) - if v+0 == 1 then - for i=0,31 do - minetest.set_node({x=-1, y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-1, y=8, z=i}, {name="air"}) - end - elseif v+0 == 2 then - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=-1, y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-1, y=7, z=i}, {name="air"}) - end - elseif v+0 == 3 then - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=1, y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=1, y=8, z=i}, {name="air"}) - end - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=7, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=-1, y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-1, y=6, z=i}, {name="air"}) - end - elseif v+0 == 4 then - for j=0,4 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="air"}) - end - end - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j, y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=8, z=i}, {name="air"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=7, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=1, y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=1, y=7, z=i}, {name="air"}) - end - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=6, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=-1, y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-1, y=5, z=i}, {name="air"}) - end - elseif v+0 == 5 then - for j=0,5 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="air"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j, y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=8, z=i}, {name="air"}) - end - end - for j=0,4 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=7, z=i}, {name="air"}) - end - end - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j, y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=7, z=i}, {name="air"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=6, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=1, y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=1, y=6, z=i}, {name="air"}) - end - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=-1, y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-1, y=4, z=i}, {name="air"}) - end - elseif v+0 == 6 then - for j=0,5 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=7, z=i}, {name="air"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j, y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=7, z=i}, {name="air"}) - end - end - for j=0,4 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=6, z=i}, {name="air"}) - end - end - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j, y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=6, z=i}, {name="air"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=1, y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=1, y=5, z=i}, {name="air"}) - end - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="air"}) - end - end - elseif v+0 == 7 then - for j=0,5 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=6, z=i}, {name="air"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j, y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=6, z=i}, {name="air"}) - end - end - for j=0,4 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="air"}) - end - end - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j, y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=5, z=i}, {name="air"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=1, y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=1, y=4, z=i}, {name="air"}) - end - elseif v+0 == 8 then - for j=0,5 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="air"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j, y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=5, z=i}, {name="air"}) - end - end - for j=0,4 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="air"}) - end - end - for j=0,2 do - for i=0,31 do - minetest.set_node({x=j, y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=4, z=i}, {name="air"}) - end - end - elseif v+0 == 9 then - for j=0,5 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="air"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j, y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j, y=4, z=i}, {name="air"}) - end - end - elseif v+0 == 10 then - for j=0,5 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="castrum:water"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="castrum:water"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j, y=4, z=i*(-1)}, {name="castrum:water"}) - end - for i=0,37 do - minetest.set_node({x=j, y=4, z=i}, {name="castrum:water"}) - end - end - elseif v+0 == 11 then - for j=0,5 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="castrum:water"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="castrum:water"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j, y=5, z=i*(-1)}, {name="castrum:water"}) - end - for i=0,37 do - minetest.set_node({x=j, y=5, z=i}, {name="castrum:water"}) - end - end - elseif v+0 == 0 then - for k=4,7 do - for j=0,5 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:stone"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:stone"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j, y=k, z=i*(-1)}, {name="default:stone"}) - end - for i=0,37 do - minetest.set_node({x=j, y=k, z=i}, {name="default:stone"}) - end - end - end - for j=0,5 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="castrum:dirt_with_grass"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="castrum:dirt_with_grass"}) - end - end - for j=0,3 do - for i=0,31 do - minetest.set_node({x=j, y=8, z=i*(-1)}, {name="castrum:dirt_with_grass"}) - end - for i=0,37 do - minetest.set_node({x=j, y=8, z=i}, {name="castrum:dirt_with_grass"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Moat_north.lua b/mods/castrum/buildings/Moat_north.lua deleted file mode 100644 index 49d5058..0000000 --- a/mods/castrum/buildings/Moat_north.lua +++ /dev/null @@ -1,239 +0,0 @@ -function Moat_north(v,player) - if v+0 == 1 then - for i=0,83 do - minetest.set_node({x=i*(-1), y=8, z=42}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=42}, {name="air"}) - end - elseif v+0 == 2 then - for j=41,43 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=8, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j}, {name="air"}) - end - end - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=42}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=42}, {name="air"}) - end - elseif v+0 == 3 then - for j=40,44 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=8, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j}, {name="air"}) - end - end - for j=41,43 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=j}, {name="air"}) - end - end - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=42}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=42}, {name="air"}) - end - elseif v+0 == 4 then - for j=39,45 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=8, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j}, {name="air"}) - end - end - for j=40,44 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=j}, {name="air"}) - end - end - for j=41,43 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=j}, {name="air"}) - end - end - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=42}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=42}, {name="air"}) - end - elseif v+0 == 5 then - for j=38,46 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=8, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j}, {name="air"}) - end - end - for j=39,45 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=j}, {name="air"}) - end - end - for j=40,44 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=j}, {name="air"}) - end - end - for j=41,43 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j}, {name="air"}) - end - end - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=42}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=42}, {name="air"}) - end - elseif v+0 == 6 then - for j=38,46 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=j}, {name="air"}) - end - end - for j=39,45 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=j}, {name="air"}) - end - end - for j=40,44 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j}, {name="air"}) - end - end - for j=41,43 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j}, {name="air"}) - end - end - elseif v+0 == 7 then - for j=38,46 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=j}, {name="air"}) - end - end - for j=39,45 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j}, {name="air"}) - end - end - for j=40,44 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j}, {name="air"}) - end - end - elseif v+0 == 8 then - for j=38,46 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j}, {name="air"}) - end - end - for j=39,45 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j}, {name="air"}) - end - end - elseif v+0 == 9 then - for j=38,46 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j}, {name="air"}) - end - end - elseif v+0 == 10 then - for j=38,46 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j}, {name="castrum:water"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j}, {name="castrum:water"}) - end - end - elseif v+0 == 11 then - for j=38,46 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j}, {name="castrum:water"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j}, {name="castrum:water"}) - end - end - elseif v+0 == 0 then - for j=38,46 do - for k=4,7 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:stone"}) - end - for i=1,3 do - minetest.set_node({x=i, y=k, z=j}, {name="default:stone"}) - end - end - end - for j=38,46 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=8, z=j}, {name="castrum:dirt_with_grass"}) - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j}, {name="castrum:dirt_with_grass"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Moat_south.lua b/mods/castrum/buildings/Moat_south.lua deleted file mode 100644 index 896bc86..0000000 --- a/mods/castrum/buildings/Moat_south.lua +++ /dev/null @@ -1,251 +0,0 @@ -function Moat_south(v,player) - if v+0 == 1 then - for i=0,83 do - if minetest.get_node({x=i*(-1), y=8, z=-36}).name ~= "default:wood" and minetest.get_node({x=i*(-1), y=8, z=-36}).name ~= "castrum:bridge" and minetest.get_node({x=i*(-1), y=8, z=-36}).name ~= "default:junglewood" and minetest.get_node({x=i*(-1), y=8, z=-36}).name ~= "default:pine_wood" then - minetest.set_node({x=i*(-1), y=8, z=-36}, {name="air"}) - end - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=-36}, {name="air"}) - end - elseif v+0 == 2 then - for j=35,37 do - for i=0,83 do - if minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:wood" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "castrum:bridge" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:junglewood" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:pine_wood" then - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="air"}) - end - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j*(-1)}, {name="air"}) - end - end - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=-36}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=-36}, {name="air"}) - end - elseif v+0 == 3 then - for j=34,38 do - for i=0,83 do - if minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:wood" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "castrum:bridge" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:junglewood" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:pine_wood" then - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="air"}) - end - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j*(-1)}, {name="air"}) - end - end - for j=35,37 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=j*(-1)}, {name="air"}) - end - end - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=-36}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=-36}, {name="air"}) - end - elseif v+0 == 4 then - for j=33,39 do - for i=0,83 do - if minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:wood" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "castrum:bridge" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:junglewood" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:pine_wood" then - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="air"}) - end - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j*(-1)}, {name="air"}) - end - end - for j=34,38 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=j*(-1)}, {name="air"}) - end - end - for j=35,37 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=j*(-1)}, {name="air"}) - end - end - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=-36}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=-36}, {name="air"}) - end - elseif v+0 == 5 then - for j=32,40 do - for i=0,83 do - if minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:wood" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "castrum:bridge" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:junglewood" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:pine_wood" then - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="air"}) - end - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j*(-1)}, {name="air"}) - end - end - for j=33,39 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=j*(-1)}, {name="air"}) - end - end - for j=34,38 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=j*(-1)}, {name="air"}) - end - end - for j=35,37 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j*(-1)}, {name="air"}) - end - end - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=-36}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=-36}, {name="air"}) - end - elseif v+0 == 6 then - for j=32,40 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=7, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=7, z=j*(-1)}, {name="air"}) - end - end - for j=33,39 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=j*(-1)}, {name="air"}) - end - end - for j=34,38 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j*(-1)}, {name="air"}) - end - end - for j=35,37 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j*(-1)}, {name="air"}) - end - end - elseif v+0 == 7 then - for j=32,40 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=6, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=6, z=j*(-1)}, {name="air"}) - end - end - for j=33,39 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j*(-1)}, {name="air"}) - end - end - for j=34,38 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j*(-1)}, {name="air"}) - end - end - elseif v+0 == 8 then - for j=32,40 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j*(-1)}, {name="air"}) - end - end - for j=33,39 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j*(-1)}, {name="air"}) - end - end - elseif v+0 == 9 then - for j=32,40 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j*(-1)}, {name="air"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j*(-1)}, {name="air"}) - end - end - elseif v+0 == 10 then - for j=32,40 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=4, z=j*(-1)}, {name="castrum:water"}) - end - for i=1,3 do - minetest.set_node({x=i, y=4, z=j*(-1)}, {name="castrum:water"}) - end - end - elseif v+0 == 11 then - for j=32,40 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=5, z=j*(-1)}, {name="castrum:water"}) - end - for i=1,3 do - minetest.set_node({x=i, y=5, z=j*(-1)}, {name="castrum:water"}) - end - end - elseif v+0 == 0 then - for j=32,40 do - for k=4,7 do - for i=0,83 do - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:stone"}) - end - for i=1,3 do - minetest.set_node({x=i, y=k, z=j*(-1)}, {name="default:stone"}) - end - end - end - for j=32,40 do - for i=0,83 do - if minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "default:wood" and minetest.get_node({x=i*(-1), y=8, z=j*(-1)}).name ~= "castrum:bridge" then - minetest.set_node({x=i*(-1), y=8, z=j*(-1)}, {name="castrum:dirt_with_grass"}) - end - end - for i=1,3 do - minetest.set_node({x=i, y=8, z=j*(-1)}, {name="castrum:dirt_with_grass"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Moat_west.lua b/mods/castrum/buildings/Moat_west.lua deleted file mode 100644 index e39f99e..0000000 --- a/mods/castrum/buildings/Moat_west.lua +++ /dev/null @@ -1,240 +0,0 @@ -function Moat_west(v,player) - if v+0 == 1 then - for i=0,31 do - minetest.set_node({x=-79, y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-79, y=8, z=i}, {name="air"}) - end - elseif v+0 == 2 then - for j=78,80 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=-79, y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-79, y=7, z=i}, {name="air"}) - end - elseif v+0 == 3 then - for j=77,81 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="air"}) - end - end - for j=78,80 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=7, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=-79, y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-79, y=6, z=i}, {name="air"}) - end - elseif v+0 == 4 then - for j=76,82 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="air"}) - end - end - for j=77,81 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=7, z=i}, {name="air"}) - end - end - for j=78,80 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=6, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=-79, y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-79, y=5, z=i}, {name="air"}) - end - elseif v+0 == 5 then - for j=75,83 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="air"}) - end - end - for j=76,82 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=7, z=i}, {name="air"}) - end - end - for j=77,81 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=6, z=i}, {name="air"}) - end - end - for j=78,80 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="air"}) - end - end - for i=0,31 do - minetest.set_node({x=-79, y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=-79, y=4, z=i}, {name="air"}) - end - elseif v+0 == 6 then - for j=75,83 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=7, z=i}, {name="air"}) - end - end - for j=76,82 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=6, z=i}, {name="air"}) - end - end - for j=77,81 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="air"}) - end - end - for j=78,80 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="air"}) - end - end - elseif v+0 == 7 then - for j=75,83 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=6, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=6, z=i}, {name="air"}) - end - end - for j=76,82 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="air"}) - end - end - for j=77,81 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="air"}) - end - end - elseif v+0 == 8 then - for j=75,83 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="air"}) - end - end - for j=76,82 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="air"}) - end - end - elseif v+0 == 9 then - for j=75,83 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="air"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="air"}) - end - end - elseif v+0 == 10 then - for j=75,83 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=4, z=i*(-1)}, {name="castrum:water"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=4, z=i}, {name="castrum:water"}) - end - end - elseif v+0 == 11 then - for j=75,83 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=5, z=i*(-1)}, {name="castrum:water"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=5, z=i}, {name="castrum:water"}) - end - end - elseif v+0 == 0 then - for k=4,7 do - for j=75,83 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:stone"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:stone"}) - end - end - - end - for j=75,83 do - for i=0,31 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="castrum:dirt_with_grass"}) - end - for i=0,37 do - minetest.set_node({x=j*(-1), y=8, z=i}, {name="castrum:dirt_with_grass"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Mountain_Fountain.lua b/mods/castrum/buildings/Mountain_Fountain.lua deleted file mode 100644 index 7528120..0000000 --- a/mods/castrum/buildings/Mountain_Fountain.lua +++ /dev/null @@ -1,51 +0,0 @@ -function Mountain_Fountain(v,player) - if v+0 == 1 then - for i=334,338 do - for j=3,5 do - minetest.set_node({x=i, y=40, z=j*(-1)}, {name="default:mossycobble"}) - end - end - for i=335,337 do - minetest.set_node({x=i, y=40, z=-2}, {name="default:mossycobble"}) - minetest.set_node({x=i, y=40, z=-6}, {name="default:mossycobble"}) - end - elseif v+0 == 2 then - minetest.set_node({x=334, y=41, z=-3}, {name="default:mossycobble"}) - minetest.set_node({x=334, y=41, z=-4}, {name="default:mossycobble"}) - minetest.set_node({x=334, y=41, z=-5}, {name="default:mossycobble"}) - minetest.set_node({x=338, y=41, z=-3}, {name="default:mossycobble"}) - minetest.set_node({x=338, y=41, z=-4}, {name="default:mossycobble"}) - minetest.set_node({x=338, y=41, z=-5}, {name="default:mossycobble"}) - minetest.set_node({x=335, y=41, z=-2}, {name="default:mossycobble"}) - minetest.set_node({x=336, y=41, z=-2}, {name="default:mossycobble"}) - minetest.set_node({x=337, y=41, z=-2}, {name="default:mossycobble"}) - minetest.set_node({x=335, y=41, z=-6}, {name="default:mossycobble"}) - minetest.set_node({x=336, y=41, z=-6}, {name="default:mossycobble"}) - minetest.set_node({x=337, y=41, z=-6}, {name="default:mossycobble"}) - elseif v+0 == 3 then - minetest.set_node({x=336, y=41, z=-4}, {name="default:mossycobble"}) - minetest.set_node({x=336, y=42, z=-4}, {name="default:mossycobble"}) - minetest.set_node({x=336, y=43, z=-4}, {name="default:water_source"}) - elseif v+0 == 4 then - minetest.set_node({x=335, y=40, z=-6}, {name="castrum:mossy_stone"}) - minetest.set_node({x=336, y=41, z=-6}, {name="castrum:mossy_stone"}) - minetest.set_node({x=337, y=40, z=-6}, {name="castrum:mossy_stone"}) - minetest.set_node({x=338, y=41, z=-5}, {name="castrum:mossy_stone"}) - minetest.set_node({x=338, y=40, z=-4}, {name="castrum:mossy_stone"}) - minetest.set_node({x=338, y=41, z=-3}, {name="castrum:mossy_stone"}) - minetest.set_node({x=337, y=40, z=-2}, {name="castrum:mossy_stone"}) - minetest.set_node({x=336, y=41, z=-2}, {name="castrum:mossy_stone"}) - minetest.set_node({x=335, y=40, z=-2}, {name="castrum:mossy_stone"}) - minetest.set_node({x=334, y=41, z=-3}, {name="castrum:mossy_stone"}) - minetest.set_node({x=334, y=40, z=-4}, {name="castrum:mossy_stone"}) - minetest.set_node({x=334, y=41, z=-5}, {name="castrum:mossy_stone"}) - elseif v+0 == 0 then - for i=334,338 do - for k=40,43 do - for j=2,6 do - minetest.set_node({x=i, y=k, z=j*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Mountain_Quarry.lua b/mods/castrum/buildings/Mountain_Quarry.lua deleted file mode 100644 index 64c3845..0000000 --- a/mods/castrum/buildings/Mountain_Quarry.lua +++ /dev/null @@ -1,60 +0,0 @@ -function Mountain_Quarry(v,player) - if v+0 == 1 then - minetest.set_node({x=349, y=40, z=-9}, {name="default:mossycobble"}) - minetest.set_node({x=349, y=40, z=-7}, {name="default:mossycobble"}) - minetest.set_node({x=350, y=40, z=-8}, {name="default:mossycobble"}) - minetest.set_node({x=348, y=40, z=-8}, {name="default:mossycobble"}) - minetest.set_node({x=349, y=41, z=-8}, {name="default:mossycobble"}) - minetest.set_node({x=347, y=40, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=347, y=40, z=-10}, {name="default:mossycobble"}) - minetest.set_node({x=348, y=40, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=346, y=40, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=347, y=41, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=348, y=40, z=-15}, {name="default:mossycobble"}) - minetest.set_node({x=348, y=40, z=-13}, {name="default:mossycobble"}) - minetest.set_node({x=349, y=40, z=-14}, {name="default:mossycobble"}) - minetest.set_node({x=347, y=40, z=-14}, {name="default:mossycobble"}) - minetest.set_node({x=348, y=41, z=-14}, {name="default:mossycobble"}) - minetest.set_node({x=351, y=40, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=351, y=40, z=-13}, {name="default:mossycobble"}) - minetest.set_node({x=350, y=40, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=40, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=351, y=41, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=40, z=-10}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=40, z=-8}, {name="default:mossycobble"}) - minetest.set_node({x=351, y=40, z=-9}, {name="default:mossycobble"}) - minetest.set_node({x=353, y=40, z=-9}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=41, z=-9}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=40, z=-14}, {name="default:mossycobble"}) - minetest.set_node({x=351, y=40, z=-15}, {name="default:mossycobble"}) - minetest.set_node({x=353, y=40, z=-15}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=41, z=-15}, {name="default:mossycobble"}) - minetest.set_node({x=354, y=40, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=354, y=40, z=-10}, {name="default:mossycobble"}) - minetest.set_node({x=353, y=40, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=354, y=41, z=-11}, {name="default:mossycobble"}) - elseif v+0 == 2 then - minetest.set_node({x=349, y=42, z=-8}, {name="default:mossycobble"}) - minetest.set_node({x=347, y=42, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=348, y=42, z=-14}, {name="default:mossycobble"}) - minetest.set_node({x=351, y=42, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=42, z=-9}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=42, z=-15}, {name="default:mossycobble"}) - minetest.set_node({x=354, y=42, z=-11}, {name="default:mossycobble"}) - elseif v+0 == 0 then - for i=346,354 do - for k=40,43 do - for j=7,15 do - minetest.set_node({x=i, y=k, z=j*(-1)}, {name="air"}) - end - end - end - minetest.set_node({x=349, y=40, z=-8}, {name="default:mossycobble"}) - minetest.set_node({x=347, y=40, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=348, y=40, z=-14}, {name="default:mossycobble"}) - minetest.set_node({x=351, y=40, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=40, z=-9}, {name="default:mossycobble"}) - minetest.set_node({x=352, y=40, z=-15}, {name="default:mossycobble"}) - minetest.set_node({x=354, y=40, z=-11}, {name="default:mossycobble"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Mountain_Smithy.lua b/mods/castrum/buildings/Mountain_Smithy.lua deleted file mode 100644 index 0e50bc2..0000000 --- a/mods/castrum/buildings/Mountain_Smithy.lua +++ /dev/null @@ -1,92 +0,0 @@ -function Mountain_Smithy(v,player) - if v+0 == 1 then - for j=318,325 do - for i=7,15 do - minetest.set_node({x=j, y=40, z=i*(-1)}, {name="default:mossycobble"}) - end - end - minetest.set_node({x=326, y=40, z=-10}, {name="stairs:stair_mossycobble"}) - minetest.set_node({x=326, y=40, z=-9}, {name="stairs:stair_mossycobble"}) - screwdriver_handler(player, {type="node", under={x=326, y=40, z=-10}, above={x=326, y=40, z=-10}}, 1) - screwdriver_handler(player, {type="node", under={x=326, y=40, z=-10}, above={x=326, y=40, z=-10}}, 1) - screwdriver_handler(player, {type="node", under={x=326, y=40, z=-10}, above={x=326, y=40, z=-10}}, 1) - - screwdriver_handler(player, {type="node", under={x=326, y=40, z=-9}, above={x=326, y=40, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=326, y=40, z=-9}, above={x=326, y=40, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=326, y=40, z=-9}, above={x=326, y=40, z=-9}}, 1) - elseif v+0 == 2 then - for j=318,325 do - minetest.set_node({x=j, y=41, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=j, y=41, z=-7}, {name="default:mossycobble"}) - end - for i=7,15 do - minetest.set_node({x=318, y=41, z=i*(-1)}, {name="default:mossycobble"}) - end - for j=318,324 do - minetest.set_node({x=j, y=41, z=-15}, {name="default:mossycobble"}) - end - minetest.set_node({x=325, y=41, z=-8}, {name="default:mossycobble"}) - minetest.set_node({x=325, y=41, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=320, y=41, z=-14}, {name="default:mossycobble"}) - minetest.set_node({x=320, y=41, z=-13}, {name="default:mossycobble"}) - elseif v+0 == 3 then - for j=318,325 do - minetest.set_node({x=j, y=42, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=j, y=42, z=-7}, {name="default:mossycobble"}) - end - for i=7,15 do - minetest.set_node({x=318, y=42, z=i*(-1)}, {name="default:mossycobble"}) - end - for j=318,323 do - minetest.set_node({x=j, y=42, z=-15}, {name="default:mossycobble"}) - end - minetest.set_node({x=325, y=42, z=-8}, {name="default:mossycobble"}) - minetest.set_node({x=325, y=42, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=325, y=41, z=-10}, {name="doors:door_wood_a"}) - minetest.set_node({x=325, y=41, z=-9}, {name="doors:door_wood_b"}) - screwdriver_handler(player, {type="node", under={x=325, y=41, z=-10}, above={x=325, y=41, z=-10}}, 1) - screwdriver_handler(player, {type="node", under={x=325, y=41, z=-10}, above={x=325, y=41, z=-10}}, 1) - screwdriver_handler(player, {type="node", under={x=325, y=41, z=-10}, above={x=325, y=41, z=-10}}, 1) - screwdriver_handler(player, {type="node", under={x=325, y=41, z=-9}, above={x=325, y=41, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=325, y=41, z=-9}, above={x=325, y=41, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=325, y=41, z=-9}, above={x=325, y=41, z=-9}}, 1) - elseif v+0 == 4 then - for j=318,325 do - minetest.set_node({x=j, y=43, z=-12}, {name="default:mossycobble"}) - minetest.set_node({x=j, y=43, z=-7}, {name="default:mossycobble"}) - end - for i=7,15 do - minetest.set_node({x=318, y=43, z=i*(-1)}, {name="default:mossycobble"}) - end - for j=318,322 do - minetest.set_node({x=j, y=43, z=-15}, {name="default:mossycobble"}) - end - for i=7,12 do - minetest.set_node({x=325, y=43, z=i*(-1)}, {name="default:mossycobble"}) - end - elseif v+0 == 5 then - for j=319,324 do - minetest.set_node({x=j, y=44, z=-11}, {name="default:mossycobble"}) - minetest.set_node({x=j, y=44, z=-8}, {name="default:mossycobble"}) - end - minetest.set_node({x=324, y=44, z=-10}, {name="default:mossycobble"}) - minetest.set_node({x=324, y=44, z=-9}, {name="default:mossycobble"}) - minetest.set_node({x=319, y=44, z=-10}, {name="default:mossycobble"}) - minetest.set_node({x=319, y=44, z=-9}, {name="default:mossycobble"}) - elseif v+0 == 6 then - for j=320,323 do - minetest.set_node({x=j, y=45, z=-10}, {name="default:mossycobble"}) - minetest.set_node({x=j, y=45, z=-9}, {name="default:mossycobble"}) - end - minetest.set_node({x=319, y=41, z=-14}, {name="default:lava_source"}) - minetest.set_node({x=319, y=41, z=-13}, {name="default:lava_source"}) - elseif v+0 == 0 then - for j=318,326 do - for i=7,15 do - for k=40,45 do - minetest.set_node({x=j, y=k, z=i*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Pier.lua b/mods/castrum/buildings/Pier.lua deleted file mode 100644 index 5e39533..0000000 --- a/mods/castrum/buildings/Pier.lua +++ /dev/null @@ -1,128 +0,0 @@ -function Pier(v,player) - if v+0 == 1 then - for j=4,8 do - for i=52,53 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="default:wood"}) - end - end - minetest.set_node({x=-8, y=7, z=-53}, {name="default:wood"}) - minetest.set_node({x=-8, y=6, z=-53}, {name="default:wood"}) - minetest.set_node({x=-4, y=7, z=-53}, {name="default:wood"}) - minetest.set_node({x=-4, y=6, z=-53}, {name="default:wood"}) - elseif v+0 == 2 then - for j=4,8 do - for i=54,56 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="default:wood"}) - end - end - minetest.set_node({x=-8, y=7, z=-56}, {name="default:wood"}) - minetest.set_node({x=-8, y=6, z=-56}, {name="default:wood"}) - minetest.set_node({x=-4, y=7, z=-56}, {name="default:wood"}) - minetest.set_node({x=-4, y=6, z=-56}, {name="default:wood"}) - elseif v+0 == 3 then - for j=4,8 do - for i=57,59 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="default:wood"}) - end - end - minetest.set_node({x=-8, y=7, z=-59}, {name="default:wood"}) - minetest.set_node({x=-8, y=6, z=-59}, {name="default:wood"}) - minetest.set_node({x=-4, y=7, z=-59}, {name="default:wood"}) - minetest.set_node({x=-4, y=6, z=-59}, {name="default:wood"}) - elseif v+0 == 4 then - for j=4,8 do - for i=60,62 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="default:wood"}) - end - end - minetest.set_node({x=-8, y=7, z=-62}, {name="default:wood"}) - minetest.set_node({x=-8, y=6, z=-62}, {name="default:wood"}) - minetest.set_node({x=-4, y=7, z=-62}, {name="default:wood"}) - minetest.set_node({x=-4, y=6, z=-62}, {name="default:wood"}) - elseif v+0 == 5 then - for j=4,8 do - for i=63,65 do - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="default:wood"}) - end - end - minetest.set_node({x=-8, y=7, z=-65}, {name="default:wood"}) - minetest.set_node({x=-8, y=6, z=-65}, {name="default:wood"}) - minetest.set_node({x=-4, y=7, z=-65}, {name="default:wood"}) - minetest.set_node({x=-4, y=6, z=-65}, {name="default:wood"}) - minetest.set_node({x=-8, y=8, z=-58}, {name="castrum:ship1"}) - elseif v+0 == 6 then - for j=4,8 do - for i=52,65 do - for k=6,8 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:wood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:junglewood"}) - end - end - end - end - for j=121,125 do - for i=38,51 do - for k=6,8 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - end - end - end - elseif v+0 == 7 then - for j=4,8 do - for i=52,65 do - for k=6,8 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:junglewood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:pine_wood"}) - end - end - end - end - for j=121,125 do - for i=38,51 do - for k=6,8 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:pine_wood"}) - end - end - end - end - for j=309,313 do - for i=38,51 do - for k=6,8 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:pine_wood"}) - end - end - end - end - elseif v+0 == 0 then - for j=4,8 do - for i=52,65 do - for k=6,7 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:water_source"}) - end - minetest.set_node({x=j*(-1), y=8, z=i*(-1)}, {name="air"}) - end - end - for j=121,125 do - for i=38,51 do - for k=6,8 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" or minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:wood"}) - end - end - end - end - for j=309,313 do - for i=38,51 do - for k=6,8 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Quarry.lua b/mods/castrum/buildings/Quarry.lua deleted file mode 100644 index 0e1f541..0000000 --- a/mods/castrum/buildings/Quarry.lua +++ /dev/null @@ -1,141 +0,0 @@ -function Quarry(v,player) - if v+0 == 1 then - minetest.set_node({x=-17, y=9, z=6}, {name="default:stone"}) - minetest.set_node({x=-16, y=9, z=7}, {name="default:stone"}) - minetest.set_node({x=-15, y=9, z=6}, {name="default:stone"}) - minetest.set_node({x=-16, y=9, z=5}, {name="default:stone"}) - minetest.set_node({x=-16, y=10, z=6}, {name="default:stone"}) - minetest.set_node({x=-19, y=9, z=3}, {name="default:stone"}) - minetest.set_node({x=-18, y=9, z=4}, {name="default:stone"}) - minetest.set_node({x=-17, y=9, z=3}, {name="default:stone"}) - minetest.set_node({x=-18, y=9, z=2}, {name="default:stone"}) - minetest.set_node({x=-18, y=10, z=3}, {name="default:stone"}) - minetest.set_node({x=-18, y=9, z=0}, {name="default:stone"}) - minetest.set_node({x=-17, y=9, z=1}, {name="default:stone"}) - minetest.set_node({x=-16, y=9, z=0}, {name="default:stone"}) - minetest.set_node({x=-17, y=9, z=-1}, {name="default:stone"}) - minetest.set_node({x=-17, y=10, z=0}, {name="default:stone"}) - minetest.set_node({x=-15, y=9, z=2}, {name="default:stone"}) - minetest.set_node({x=-14, y=9, z=3}, {name="default:stone"}) - minetest.set_node({x=-13, y=9, z=2}, {name="default:stone"}) - minetest.set_node({x=-14, y=9, z=1}, {name="default:stone"}) - minetest.set_node({x=-14, y=10, z=2}, {name="default:stone"}) - minetest.set_node({x=-14, y=9, z=5}, {name="default:stone"}) - minetest.set_node({x=-13, y=9, z=6}, {name="default:stone"}) - minetest.set_node({x=-12, y=9, z=5}, {name="default:stone"}) - minetest.set_node({x=-13, y=9, z=4}, {name="default:stone"}) - minetest.set_node({x=-13, y=10, z=5}, {name="default:stone"}) - minetest.set_node({x=-12, y=9, z=3}, {name="default:stone"}) - minetest.set_node({x=-11, y=9, z=4}, {name="default:stone"}) - minetest.set_node({x=-11, y=9, z=2}, {name="default:stone"}) - minetest.set_node({x=-11, y=10, z=3}, {name="default:stone"}) - minetest.set_node({x=-14, y=9, z=-1}, {name="default:stone"}) - minetest.set_node({x=-13, y=9, z=0}, {name="default:stone"}) - minetest.set_node({x=-12, y=9, z=-1}, {name="default:stone"}) - minetest.set_node({x=-13, y=10, z=-1}, {name="default:stone"}) - elseif v+0 == 2 then - minetest.set_node({x=-16, y=11, z=6}, {name="default:stone"}) - minetest.set_node({x=-18, y=11, z=3}, {name="default:stone"}) - minetest.set_node({x=-17, y=11, z=0}, {name="default:stone"}) - minetest.set_node({x=-14, y=11, z=2}, {name="default:stone"}) - minetest.set_node({x=-13, y=11, z=5}, {name="default:stone"}) - minetest.set_node({x=-11, y=11, z=3}, {name="default:stone"}) - minetest.set_node({x=-13, y=11, z=-1}, {name="default:stone"}) - minetest.set_node({x=-19, y=9, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-18, y=9, z=5}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=9, z=4}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=9, z=0}, {name="default:desert_stone"}) - minetest.set_node({x=-14, y=9, z=7}, {name="default:desert_stone"}) - minetest.set_node({x=-12, y=9, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-11, y=9, z=6}, {name="default:desert_stone"}) - elseif v+0 == 3 then - minetest.set_node({x=-19, y=10, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-18, y=10, z=5}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=10, z=4}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=10, z=0}, {name="default:desert_stone"}) - minetest.set_node({x=-14, y=10, z=7}, {name="default:desert_stone"}) - minetest.set_node({x=-12, y=10, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-11, y=10, z=6}, {name="default:desert_stone"}) - minetest.set_node({x=-11, y=9, z=7}, {name="default:desert_stone"}) - minetest.set_node({x=-11, y=9, z=5}, {name="default:desert_stone"}) - minetest.set_node({x=-12, y=9, z=6}, {name="default:desert_stone"}) - minetest.set_node({x=-13, y=9, z=7}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=9, z=7}, {name="default:desert_stone"}) - minetest.set_node({x=-14, y=9, z=6}, {name="default:desert_stone"}) - minetest.set_node({x=-13, y=9, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-11, y=9, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-12, y=9, z=2}, {name="default:desert_stone"}) - minetest.set_node({x=-12, y=9, z=0}, {name="default:desert_stone"}) - minetest.set_node({x=-14, y=9, z=4}, {name="default:desert_stone"}) - minetest.set_node({x=-16, y=9, z=4}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=9, z=3}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=9, z=5}, {name="default:desert_stone"}) - minetest.set_node({x=-14, y=9, z=0}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=9, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=9, z=-1}, {name="default:desert_stone"}) - minetest.set_node({x=-17, y=9, z=5}, {name="default:desert_stone"}) - minetest.set_node({x=-19, y=9, z=5}, {name="default:desert_stone"}) - minetest.set_node({x=-18, y=9, z=6}, {name="default:desert_stone"}) - minetest.set_node({x=-18, y=9, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-19, y=9, z=2}, {name="default:desert_stone"}) - minetest.set_node({x=-19, y=9, z=0}, {name="default:desert_stone"}) - elseif v+0 == 4 then - minetest.set_node({x=-19, y=11, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-18, y=11, z=5}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=11, z=4}, {name="default:desert_stone"}) - minetest.set_node({x=-15, y=11, z=0}, {name="default:desert_stone"}) - minetest.set_node({x=-14, y=11, z=7}, {name="default:desert_stone"}) - minetest.set_node({x=-12, y=11, z=1}, {name="default:desert_stone"}) - minetest.set_node({x=-11, y=11, z=6}, {name="default:desert_stone"}) - minetest.set_node({x=-12, y=9, z=7}, {name="default:obsidian"}) - minetest.set_node({x=-12, y=9, z=4}, {name="default:obsidian"}) - minetest.set_node({x=-11, y=9, z=0}, {name="default:obsidian"}) - minetest.set_node({x=-13, y=9, z=3}, {name="default:obsidian"}) - minetest.set_node({x=-16, y=9, z=2}, {name="default:obsidian"}) - minetest.set_node({x=-18, y=9, z=7}, {name="default:obsidian"}) - minetest.set_node({x=-18, y=9, z=-1}, {name="default:obsidian"}) - elseif v+0 == 5 then - minetest.set_node({x=-12, y=10, z=7}, {name="default:obsidian"}) - minetest.set_node({x=-12, y=10, z=4}, {name="default:obsidian"}) - minetest.set_node({x=-11, y=10, z=0}, {name="default:obsidian"}) - minetest.set_node({x=-13, y=10, z=3}, {name="default:obsidian"}) - minetest.set_node({x=-16, y=10, z=2}, {name="default:obsidian"}) - minetest.set_node({x=-18, y=10, z=7}, {name="default:obsidian"}) - minetest.set_node({x=-18, y=10, z=-1}, {name="default:obsidian"}) - minetest.set_node({x=-11, y=9, z=-1}, {name="default:obsidian"}) - minetest.set_node({x=-16, y=9, z=3}, {name="default:obsidian"}) - minetest.set_node({x=-16, y=9, z=1}, {name="default:obsidian"}) - minetest.set_node({x=-17, y=9, z=2}, {name="default:obsidian"}) - minetest.set_node({x=-17, y=9, z=7}, {name="default:obsidian"}) - minetest.set_node({x=-19, y=9, z=7}, {name="default:obsidian"}) - minetest.set_node({x=-19, y=9, z=-1}, {name="default:obsidian"}) - elseif v+0 == 6 then - minetest.set_node({x=-12, y=11, z=7}, {name="default:obsidian"}) - minetest.set_node({x=-12, y=11, z=4}, {name="default:obsidian"}) - minetest.set_node({x=-11, y=11, z=0}, {name="default:obsidian"}) - minetest.set_node({x=-13, y=11, z=3}, {name="default:obsidian"}) - minetest.set_node({x=-16, y=11, z=2}, {name="default:obsidian"}) - minetest.set_node({x=-18, y=11, z=7}, {name="default:obsidian"}) - minetest.set_node({x=-18, y=11, z=-1}, {name="default:obsidian"}) - elseif v+0 == 0 then - for j=11,19 do - for i=0,7 do - for k=9,14 do - minetest.set_node({x=j*(-1), y=k, z=i}, {name="air"}) - end - end - end - for j=11,19 do - for k=9,14 do - minetest.set_node({x=j*(-1), y=k, z=-1}, {name="air"}) - end - end - minetest.set_node({x=-16, y=9, z=6}, {name="default:stone"}) - minetest.set_node({x=-18, y=9, z=3}, {name="default:stone"}) - minetest.set_node({x=-17, y=9, z=0}, {name="default:stone"}) - minetest.set_node({x=-14, y=9, z=2}, {name="default:stone"}) - minetest.set_node({x=-13, y=9, z=5}, {name="default:stone"}) - minetest.set_node({x=-11, y=9, z=3}, {name="default:stone"}) - minetest.set_node({x=-13, y=9, z=-1}, {name="default:stone"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Sail1.lua b/mods/castrum/buildings/Sail1.lua deleted file mode 100644 index 8f9e422..0000000 --- a/mods/castrum/buildings/Sail1.lua +++ /dev/null @@ -1,27 +0,0 @@ -function Sail1(v,player) - if v+0 == 1 then - for j=161,169 do - minetest.set_node({x=j, y=16, z=44}, {name="wool:white"}) - minetest.set_node({x=j, y=15, z=45}, {name="wool:white"}) - minetest.set_node({x=j, y=14, z=45}, {name="wool:white"}) - minetest.set_node({x=j, y=13, z=45}, {name="wool:white"}) - minetest.set_node({x=j, y=12, z=44}, {name="wool:white"}) - end - elseif v+0 == 2 then - for j=161,169 do - minetest.set_node({x=j, y=16, z=44}, {name="wool:pink"}) - minetest.set_node({x=j, y=15, z=45}, {name="wool:pink"}) - minetest.set_node({x=j, y=14, z=45}, {name="wool:pink"}) - minetest.set_node({x=j, y=13, z=45}, {name="wool:pink"}) - minetest.set_node({x=j, y=12, z=44}, {name="wool:pink"}) - end - elseif v+0 == 0 then - for j=161,169 do - minetest.set_node({x=j, y=16, z=44}, {name="air"}) - minetest.set_node({x=j, y=15, z=45}, {name="air"}) - minetest.set_node({x=j, y=14, z=45}, {name="air"}) - minetest.set_node({x=j, y=13, z=45}, {name="air"}) - minetest.set_node({x=j, y=12, z=44}, {name="air"}) - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Sail2.lua b/mods/castrum/buildings/Sail2.lua deleted file mode 100644 index 16a0011..0000000 --- a/mods/castrum/buildings/Sail2.lua +++ /dev/null @@ -1,24 +0,0 @@ -function Sail2(v,player) - if v+0 == 1 then - for j=163,167 do - minetest.set_node({x=j, y=14, z=50}, {name="wool:white"}) - minetest.set_node({x=j, y=13, z=51}, {name="wool:white"}) - minetest.set_node({x=j, y=12, z=51}, {name="wool:white"}) - minetest.set_node({x=j, y=11, z=50}, {name="wool:white"}) - end - elseif v+0 == 2 then - for j=163,167 do - minetest.set_node({x=j, y=14, z=50}, {name="wool:pink"}) - minetest.set_node({x=j, y=13, z=51}, {name="wool:pink"}) - minetest.set_node({x=j, y=12, z=51}, {name="wool:pink"}) - minetest.set_node({x=j, y=11, z=50}, {name="wool:pink"}) - end - elseif v+0 == 0 then - for j=163,167 do - minetest.set_node({x=j, y=14, z=50}, {name="air"}) - minetest.set_node({x=j, y=13, z=51}, {name="air"}) - minetest.set_node({x=j, y=12, z=51}, {name="air"}) - minetest.set_node({x=j, y=11, z=50}, {name="air"}) - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Sandmine.lua b/mods/castrum/buildings/Sandmine.lua deleted file mode 100644 index 7c9222a..0000000 --- a/mods/castrum/buildings/Sandmine.lua +++ /dev/null @@ -1,115 +0,0 @@ -function Sandmine(v,player) - if v+0 == 1 then - minetest.set_node({x=129, y=9, z=10}, {name="default:sandstone"}) - minetest.set_node({x=131, y=9, z=10}, {name="default:sandstone"}) - minetest.set_node({x=130, y=9, z=9}, {name="default:sandstone"}) - minetest.set_node({x=130, y=9, z=11}, {name="default:sandstone"}) - minetest.set_node({x=130, y=10, z=10}, {name="default:sandstone"}) - minetest.set_node({x=127, y=9, z=7}, {name="default:sandstone"}) - minetest.set_node({x=129, y=9, z=7}, {name="default:sandstone"}) - minetest.set_node({x=128, y=9, z=6}, {name="default:sandstone"}) - minetest.set_node({x=128, y=9, z=8}, {name="default:sandstone"}) - minetest.set_node({x=128, y=10, z=7}, {name="default:sandstone"}) - minetest.set_node({x=128, y=9, z=13}, {name="default:sandstone"}) - minetest.set_node({x=130, y=9, z=13}, {name="default:sandstone"}) - minetest.set_node({x=129, y=9, z=12}, {name="default:sandstone"}) - minetest.set_node({x=129, y=9, z=14}, {name="default:sandstone"}) - minetest.set_node({x=129, y=10, z=13}, {name="default:sandstone"}) - minetest.set_node({x=125, y=9, z=11}, {name="default:sandstone"}) - minetest.set_node({x=127, y=9, z=11}, {name="default:sandstone"}) - minetest.set_node({x=126, y=9, z=10}, {name="default:sandstone"}) - minetest.set_node({x=126, y=9, z=12}, {name="default:sandstone"}) - minetest.set_node({x=126, y=10, z=11}, {name="default:sandstone"}) - minetest.set_node({x=124, y=9, z=8}, {name="default:sandstone"}) - minetest.set_node({x=126, y=9, z=8}, {name="default:sandstone"}) - minetest.set_node({x=125, y=9, z=7}, {name="default:sandstone"}) - minetest.set_node({x=125, y=9, z=9}, {name="default:sandstone"}) - minetest.set_node({x=125, y=10, z=8}, {name="default:sandstone"}) - minetest.set_node({x=124, y=9, z=14}, {name="default:sandstone"}) - minetest.set_node({x=125, y=9, z=13}, {name="default:sandstone"}) - minetest.set_node({x=126, y=9, z=14}, {name="default:sandstone"}) - minetest.set_node({x=125, y=10, z=14}, {name="default:sandstone"}) - minetest.set_node({x=123, y=9, z=9}, {name="default:sandstone"}) - minetest.set_node({x=123, y=9, z=11}, {name="default:sandstone"}) - minetest.set_node({x=124, y=9, z=10}, {name="default:sandstone"}) - minetest.set_node({x=123, y=10, z=10}, {name="default:sandstone"}) - elseif v+0 == 2 then - minetest.set_node({x=130, y=11, z=10}, {name="default:sandstone"}) - minetest.set_node({x=128, y=11, z=7}, {name="default:sandstone"}) - minetest.set_node({x=129, y=11, z=13}, {name="default:sandstone"}) - minetest.set_node({x=126, y=11, z=11}, {name="default:sandstone"}) - minetest.set_node({x=125, y=11, z=8}, {name="default:sandstone"}) - minetest.set_node({x=125, y=11, z=14}, {name="default:sandstone"}) - minetest.set_node({x=123, y=11, z=10}, {name="default:sandstone"}) - minetest.set_node({x=131, y=9, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=130, y=9, z=8}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=9, z=9}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=9, z=13}, {name="default:desert_sandstone"}) - minetest.set_node({x=126, y=9, z=6}, {name="default:desert_sandstone"}) - minetest.set_node({x=124, y=9, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=123, y=9, z=7}, {name="default:desert_sandstone"}) - elseif v+0 == 3 then - minetest.set_node({x=131, y=10, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=130, y=10, z=8}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=10, z=9}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=10, z=13}, {name="default:desert_sandstone"}) - minetest.set_node({x=126, y=10, z=6}, {name="default:desert_sandstone"}) - minetest.set_node({x=124, y=10, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=123, y=10, z=7}, {name="default:desert_sandstone"}) - minetest.set_node({x=123, y=9, z=6}, {name="default:desert_sandstone"}) - minetest.set_node({x=123, y=9, z=8}, {name="default:desert_sandstone"}) - minetest.set_node({x=124, y=9, z=7}, {name="default:desert_sandstone"}) - minetest.set_node({x=124, y=9, z=11}, {name="default:desert_sandstone"}) - minetest.set_node({x=124, y=9, z=13}, {name="default:desert_sandstone"}) - minetest.set_node({x=123, y=9, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=125, y=9, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=126, y=9, z=7}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=9, z=6}, {name="default:desert_sandstone"}) - minetest.set_node({x=125, y=9, z=6}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=9, z=8}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=9, z=10}, {name="default:desert_sandstone"}) - minetest.set_node({x=126, y=9, z=9}, {name="default:desert_sandstone"}) - minetest.set_node({x=128, y=9, z=9}, {name="default:desert_sandstone"}) - minetest.set_node({x=126, y=9, z=13}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=9, z=14}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=9, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=130, y=9, z=7}, {name="default:desert_sandstone"}) - minetest.set_node({x=131, y=9, z=8}, {name="default:desert_sandstone"}) - minetest.set_node({x=129, y=9, z=8}, {name="default:desert_sandstone"}) - minetest.set_node({x=130, y=9, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=131, y=9, z=13}, {name="default:desert_sandstone"}) - minetest.set_node({x=131, y=9, z=11}, {name="default:desert_sandstone"}) - elseif v+0 == 4 then - minetest.set_node({x=131, y=11, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=130, y=11, z=8}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=11, z=9}, {name="default:desert_sandstone"}) - minetest.set_node({x=127, y=11, z=13}, {name="default:desert_sandstone"}) - minetest.set_node({x=126, y=11, z=6}, {name="default:desert_sandstone"}) - minetest.set_node({x=124, y=11, z=12}, {name="default:desert_sandstone"}) - minetest.set_node({x=123, y=11, z=7}, {name="default:desert_sandstone"}) - - minetest.set_node({x=123, y=9, z=13}, {name="default:silver_sandstone"}) - minetest.set_node({x=123, y=9, z=13}, {name="default:silver_sandstone"}) - minetest.set_node({x=124, y=9, z=6}, {name="default:silver_sandstone"}) - minetest.set_node({x=124, y=9, z=9}, {name="default:silver_sandstone"}) - minetest.set_node({x=125, y=9, z=10}, {name="default:silver_sandstone"}) - minetest.set_node({x=128, y=9, z=11}, {name="default:silver_sandstone"}) - minetest.set_node({x=130, y=9, z=6}, {name="default:silver_sandstone"}) - minetest.set_node({x=130, y=9, z=14}, {name="default:silver_sandstone"}) - elseif v+0 == 0 then - for j=123,131 do - for i=6,14 do - for k=9,14 do - minetest.set_node({x=j, y=k, z=i}, {name="air"}) - end - end - end - minetest.set_node({x=130, y=9, z=10}, {name="default:sandstone"}) - minetest.set_node({x=128, y=9, z=7}, {name="default:sandstone"}) - minetest.set_node({x=129, y=9, z=13}, {name="default:sandstone"}) - minetest.set_node({x=126, y=9, z=11}, {name="default:sandstone"}) - minetest.set_node({x=125, y=9, z=8}, {name="default:sandstone"}) - minetest.set_node({x=125, y=9, z=14}, {name="default:sandstone"}) - minetest.set_node({x=123, y=9, z=10}, {name="default:sandstone"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Ship1.lua b/mods/castrum/buildings/Ship1.lua deleted file mode 100644 index 9c8b359..0000000 --- a/mods/castrum/buildings/Ship1.lua +++ /dev/null @@ -1,159 +0,0 @@ -function Ship1(v,player) - if v+0 == 1 then - for j=11,15 do - for i=54,62 do - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="default:wood"}) - end - end - minetest.set_node({x=-12, y=7, z=-63}, {name="default:wood"}) - minetest.set_node({x=-13, y=7, z=-63}, {name="default:wood"}) - minetest.set_node({x=-14, y=7, z=-63}, {name="default:wood"}) - minetest.set_node({x=-13, y=7, z=-64}, {name="default:wood"}) - elseif v+0 == 2 then - for j=10,16 do - minetest.set_node({x=j*(-1), y=8, z=-54}, {name="default:wood"}) - end - for j=11,15 do - minetest.set_node({x=j*(-1), y=9, z=-53}, {name="default:wood"}) - end - for i=55,62 do - minetest.set_node({x=-10, y=8, z=i*(-1)}, {name="default:wood"}) - minetest.set_node({x=-16, y=8, z=i*(-1)}, {name="default:wood"}) - end - minetest.set_node({x=-16, y=9, z=-54}, {name="default:wood"}) - minetest.set_node({x=-10, y=9, z=-54}, {name="default:wood"}) - minetest.set_node({x=-11, y=8, z=-63}, {name="default:wood"}) - minetest.set_node({x=-12, y=8, z=-64}, {name="default:wood"}) - minetest.set_node({x=-13, y=8, z=-65}, {name="default:wood"}) - minetest.set_node({x=-14, y=8, z=-64}, {name="default:wood"}) - minetest.set_node({x=-15, y=8, z=-63}, {name="default:wood"}) - elseif v+0 == 3 then - for i=55,62 do - minetest.set_node({x=-10, y=9, z=i*(-1)}, {name="default:fence_wood"}) - minetest.set_node({x=-16, y=9, z=i*(-1)}, {name="default:fence_wood"}) - end - for j=11,15 do - minetest.set_node({x=j*(-1), y=10, z=-53}, {name="default:fence_wood"}) - end - minetest.set_node({x=-16, y=10, z=-54}, {name="default:fence_wood"}) - minetest.set_node({x=-10, y=10, z=-54}, {name="default:fence_wood"}) - minetest.set_node({x=-11, y=9, z=-63}, {name="default:fence_wood"}) - minetest.set_node({x=-12, y=9, z=-64}, {name="default:fence_wood"}) - minetest.set_node({x=-13, y=9, z=-65}, {name="default:fence_wood"}) - minetest.set_node({x=-14, y=9, z=-64}, {name="default:fence_wood"}) - minetest.set_node({x=-15, y=9, z=-63}, {name="default:fence_wood"}) - minetest.set_node({x=-10, y=9, z=-58}, {name="air"}) - elseif v+0 == 4 then - for k=8,15 do - minetest.set_node({x=-13, y=k, z=-58}, {name="default:wood"}) - end - minetest.set_node({x=-10, y=15, z=-58}, {name="default:fence_wood"}) - minetest.set_node({x=-11, y=15, z=-58}, {name="default:fence_wood"}) - minetest.set_node({x=-12, y=15, z=-58}, {name="default:fence_wood"}) - minetest.set_node({x=-14, y=15, z=-58}, {name="default:fence_wood"}) - minetest.set_node({x=-15, y=15, z=-58}, {name="default:fence_wood"}) - minetest.set_node({x=-16, y=15, z=-58}, {name="default:fence_wood"}) - elseif v+0 == 5 then - for j=10,16 do - minetest.set_node({x=j*(-1), y=15, z=-59}, {name="wool:white"}) - minetest.set_node({x=j*(-1), y=14, z=-60}, {name="wool:white"}) - minetest.set_node({x=j*(-1), y=13, z=-60}, {name="wool:white"}) - minetest.set_node({x=j*(-1), y=12, z=-59}, {name="wool:white"}) - end - elseif v+0 == 6 then - for j=10,16 do - for i=53,65 do - for k=7,15 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:wood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:junglewood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_wood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:fence_junglewood"}) - end - end - end - end - for j=127,133 do - for i=39,51 do - for k=7,15 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_junglewood"}) - end - end - end - end - elseif v+0 == 7 then - for j=10,16 do - for i=53,65 do - for k=7,15 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:junglewood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:pine_wood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_junglewood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:fence_pine_wood"}) - end - end - end - end - for j=127,133 do - for i=39,51 do - for k=7,15 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:pine_wood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_pine_wood"}) - end - end - end - end - for j=315,321 do - for i=39,51 do - for k=7,15 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:pine_wood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_pine_wood"}) - end - end - end - end - elseif v+0 == 0 then - for j=10,16 do - for i=53,65 do - for k=8,15 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - minetest.set_node({x=j*(-1), y=7, z=i*(-1)}, {name="default:water_source"}) - end - end - for j=127,133 do - for i=29,51 do - for k=7,15 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" or minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:wood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_junglewood" or minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_wood"}) - end - end - end - end - for j=315,321 do - for i=39,51 do - for k=7,15 do - if minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_junglewood"}) - end - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Ship2.lua b/mods/castrum/buildings/Ship2.lua deleted file mode 100644 index c32d0f4..0000000 --- a/mods/castrum/buildings/Ship2.lua +++ /dev/null @@ -1,244 +0,0 @@ -function Ship2(v,player) - if v+0 == 1 then - for j=162,168 do - for i=40,48 do - minetest.set_node({x=j, y=7, z=i}, {name="default:wood"}) - end - end - elseif v+0 == 2 then - for j=162,168 do - for i=49,51 do - minetest.set_node({x=j, y=7, z=i}, {name="default:wood"}) - end - end - for j=163,167 do - for i=52,53 do - minetest.set_node({x=j, y=7, z=i}, {name="default:wood"}) - end - end - for j=164,166 do - for i=54,55 do - minetest.set_node({x=j, y=7, z=i}, {name="default:wood"}) - end - end - minetest.set_node({x=165, y=7, z=56}, {name="default:wood"}) - minetest.set_node({x=165, y=7, z=57}, {name="default:wood"}) - elseif v+0 == 3 then - for i=41,48 do - minetest.set_node({x=169, y=8, z=i}, {name="default:wood"}) - minetest.set_node({x=161, y=8, z=i}, {name="default:wood"}) - end - minetest.set_node({x=162, y=8, z=40}, {name="default:wood"}) - minetest.set_node({x=168, y=8, z=40}, {name="default:wood"}) - for j=163,167 do - minetest.set_node({x=j, y=8, z=39}, {name="default:wood"}) - end - minetest.set_node({x=165, y=8, z=40}, {name="default:wood"}) - elseif v+0 == 4 then - for i=49,51 do - minetest.set_node({x=169, y=8, z=i}, {name="default:wood"}) - minetest.set_node({x=161, y=8, z=i}, {name="default:wood"}) - end - minetest.set_node({x=168, y=8, z=52}, {name="default:wood"}) - minetest.set_node({x=162, y=8, z=52}, {name="default:wood"}) - minetest.set_node({x=167, y=8, z=54}, {name="default:wood"}) - minetest.set_node({x=163, y=8, z=54}, {name="default:wood"}) - minetest.set_node({x=166, y=8, z=56}, {name="default:wood"}) - minetest.set_node({x=164, y=8, z=56}, {name="default:wood"}) - minetest.set_node({x=165, y=8, z=57}, {name="default:wood"}) - minetest.set_node({x=165, y=8, z=58}, {name="default:wood"}) - elseif v+0 == 5 then - minetest.set_node({x=162, y=9, z=40}, {name="default:wood"}) - minetest.set_node({x=168, y=9, z=40}, {name="default:wood"}) - minetest.set_node({x=161, y=9, z=41}, {name="default:wood"}) - minetest.set_node({x=169, y=9, z=41}, {name="default:wood"}) - minetest.set_node({x=161, y=9, z=43}, {name="default:wood"}) - minetest.set_node({x=169, y=9, z=43}, {name="default:wood"}) - minetest.set_node({x=161, y=9, z=45}, {name="default:wood"}) - minetest.set_node({x=169, y=9, z=45}, {name="default:wood"}) - minetest.set_node({x=161, y=9, z=47}, {name="default:wood"}) - minetest.set_node({x=169, y=9, z=47}, {name="default:wood"}) - for j=163,167 do - minetest.set_node({x=j, y=9, z=39}, {name="default:wood"}) - end - elseif v+0 == 6 then - minetest.set_node({x=161, y=9, z=49}, {name="default:wood"}) - minetest.set_node({x=169, y=9, z=49}, {name="default:wood"}) - minetest.set_node({x=161, y=9, z=51}, {name="default:wood"}) - minetest.set_node({x=169, y=9, z=51}, {name="default:wood"}) - minetest.set_node({x=162, y=9, z=52}, {name="default:wood"}) - minetest.set_node({x=168, y=9, z=52}, {name="default:wood"}) - minetest.set_node({x=162, y=9, z=53}, {name="default:wood"}) - minetest.set_node({x=168, y=9, z=53}, {name="default:wood"}) - minetest.set_node({x=163, y=9, z=54}, {name="default:wood"}) - minetest.set_node({x=167, y=9, z=54}, {name="default:wood"}) - minetest.set_node({x=163, y=9, z=55}, {name="default:wood"}) - minetest.set_node({x=167, y=9, z=55}, {name="default:wood"}) - minetest.set_node({x=164, y=9, z=56}, {name="default:wood"}) - minetest.set_node({x=166, y=9, z=56}, {name="default:wood"}) - minetest.set_node({x=164, y=9, z=57}, {name="default:wood"}) - minetest.set_node({x=166, y=9, z=57}, {name="default:wood"}) - minetest.set_node({x=165, y=9, z=58}, {name="default:wood"}) - minetest.set_node({x=165, y=9, z=59}, {name="default:wood"}) - elseif v+0 == 7 then - minetest.set_node({x=162, y=10, z=40}, {name="default:wood"}) - minetest.set_node({x=168, y=10, z=40}, {name="default:wood"}) - for j=163,167 do - minetest.set_node({x=j, y=10, z=39}, {name="default:wood"}) - end - elseif v+0 == 8 then - minetest.set_node({x=167, y=8, z=40}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=167, y=8, z=40}, above={x=167, y=8, z=40}}, 1) - screwdriver_handler(player, {type="node", under={x=167, y=8, z=40}, above={x=167, y=8, z=40}}, 1) - minetest.set_node({x=166, y=8, z=40}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=166, y=8, z=40}, above={x=166, y=8, z=40}}, 1) - screwdriver_handler(player, {type="node", under={x=166, y=8, z=40}, above={x=166, y=8, z=40}}, 1) - minetest.set_node({x=164, y=8, z=40}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=164, y=8, z=40}, above={x=164, y=8, z=40}}, 1) - screwdriver_handler(player, {type="node", under={x=164, y=8, z=40}, above={x=164, y=8, z=40}}, 1) - minetest.set_node({x=163, y=8, z=40}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=163, y=8, z=40}, above={x=163, y=8, z=40}}, 1) - screwdriver_handler(player, {type="node", under={x=163, y=8, z=40}, above={x=163, y=8, z=40}}, 1) - minetest.set_node({x=168, y=8, z=41}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=168, y=8, z=41}, above={x=168, y=8, z=41}}, 1) - minetest.set_node({x=168, y=8, z=43}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=168, y=8, z=43}, above={x=168, y=8, z=43}}, 1) - minetest.set_node({x=168, y=8, z=44}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=168, y=8, z=44}, above={x=168, y=8, z=44}}, 1) - minetest.set_node({x=168, y=8, z=45}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=168, y=8, z=45}, above={x=168, y=8, z=45}}, 1) - minetest.set_node({x=168, y=8, z=47}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=168, y=8, z=47}, above={x=168, y=8, z=47}}, 1) - minetest.set_node({x=162, y=8, z=41}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=41}, above={x=162, y=8, z=41}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=41}, above={x=162, y=8, z=41}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=41}, above={x=162, y=8, z=41}}, 1) - minetest.set_node({x=162, y=8, z=43}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=43}, above={x=162, y=8, z=43}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=43}, above={x=162, y=8, z=43}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=43}, above={x=162, y=8, z=43}}, 1) - minetest.set_node({x=162, y=8, z=45}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=45}, above={x=162, y=8, z=45}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=45}, above={x=162, y=8, z=45}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=45}, above={x=162, y=8, z=45}}, 1) - minetest.set_node({x=162, y=8, z=47}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=47}, above={x=162, y=8, z=47}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=47}, above={x=162, y=8, z=47}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=47}, above={x=162, y=8, z=47}}, 1) - elseif v+0 == 9 then - minetest.set_node({x=168, y=8, z=49}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=168, y=8, z=49}, above={x=168, y=8, z=49}}, 1) - minetest.set_node({x=168, y=8, z=51}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=168, y=8, z=51}, above={x=168, y=8, z=51}}, 1) - minetest.set_node({x=167, y=8, z=52}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=167, y=8, z=52}, above={x=167, y=8, z=52}}, 1) - minetest.set_node({x=167, y=8, z=53}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=167, y=8, z=53}, above={x=167, y=8, z=53}}, 1) - minetest.set_node({x=166, y=8, z=54}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=166, y=8, z=54}, above={x=166, y=8, z=54}}, 1) - minetest.set_node({x=166, y=8, z=55}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=166, y=8, z=55}, above={x=166, y=8, z=55}}, 1) - minetest.set_node({x=162, y=8, z=49}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=49}, above={x=162, y=8, z=49}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=49}, above={x=162, y=8, z=49}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=49}, above={x=162, y=8, z=49}}, 1) - minetest.set_node({x=162, y=8, z=51}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=51}, above={x=162, y=8, z=51}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=51}, above={x=162, y=8, z=51}}, 1) - screwdriver_handler(player, {type="node", under={x=162, y=8, z=51}, above={x=162, y=8, z=51}}, 1) - minetest.set_node({x=163, y=8, z=52}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=163, y=8, z=52}, above={x=163, y=8, z=52}}, 1) - screwdriver_handler(player, {type="node", under={x=163, y=8, z=52}, above={x=163, y=8, z=52}}, 1) - screwdriver_handler(player, {type="node", under={x=163, y=8, z=52}, above={x=163, y=8, z=52}}, 1) - minetest.set_node({x=163, y=8, z=53}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=163, y=8, z=53}, above={x=163, y=8, z=53}}, 1) - screwdriver_handler(player, {type="node", under={x=163, y=8, z=53}, above={x=163, y=8, z=53}}, 1) - screwdriver_handler(player, {type="node", under={x=163, y=8, z=53}, above={x=163, y=8, z=53}}, 1) - minetest.set_node({x=164, y=8, z=54}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=164, y=8, z=54}, above={x=163, y=8, z=54}}, 1) - screwdriver_handler(player, {type="node", under={x=164, y=8, z=54}, above={x=163, y=8, z=54}}, 1) - screwdriver_handler(player, {type="node", under={x=164, y=8, z=54}, above={x=163, y=8, z=54}}, 1) - minetest.set_node({x=164, y=8, z=55}, {name="stairs:stair_castrum_wood"}) - screwdriver_handler(player, {type="node", under={x=164, y=8, z=55}, above={x=163, y=8, z=55}}, 1) - screwdriver_handler(player, {type="node", under={x=164, y=8, z=55}, above={x=163, y=8, z=55}}, 1) - screwdriver_handler(player, {type="node", under={x=164, y=8, z=55}, above={x=163, y=8, z=55}}, 1) - minetest.set_node({x=165, y=8, z=56}, {name="stairs:stair_castrum_wood"}) - elseif v+0 == 10 then - minetest.set_node({x=162, y=11, z=40}, {name="default:fence_wood"}) - minetest.set_node({x=168, y=11, z=40}, {name="default:fence_wood"}) - for j=163,167 do - minetest.set_node({x=j, y=11, z=39}, {name="default:fence_wood"}) - end - for i=41,48 do - minetest.set_node({x=161, y=10, z=i}, {name="default:fence_wood"}) - minetest.set_node({x=169, y=10, z=i}, {name="default:fence_wood"}) - end - minetest.set_node({x=169, y=10, z=44}, {name="air"}) - elseif v+0 == 11 then - for i=49,51 do - minetest.set_node({x=161, y=10, z=i}, {name="default:fence_wood"}) - minetest.set_node({x=169, y=10, z=i}, {name="default:fence_wood"}) - end - minetest.set_node({x=162, y=10, z=52}, {name="default:fence_wood"}) - minetest.set_node({x=168, y=10, z=52}, {name="default:fence_wood"}) - minetest.set_node({x=162, y=10, z=53}, {name="default:fence_wood"}) - minetest.set_node({x=168, y=10, z=53}, {name="default:fence_wood"}) - minetest.set_node({x=163, y=10, z=54}, {name="default:fence_wood"}) - minetest.set_node({x=167, y=10, z=54}, {name="default:fence_wood"}) - minetest.set_node({x=163, y=10, z=55}, {name="default:fence_wood"}) - minetest.set_node({x=167, y=10, z=55}, {name="default:fence_wood"}) - minetest.set_node({x=164, y=10, z=56}, {name="default:fence_wood"}) - minetest.set_node({x=166, y=10, z=56}, {name="default:fence_wood"}) - minetest.set_node({x=164, y=10, z=57}, {name="default:fence_wood"}) - minetest.set_node({x=166, y=10, z=57}, {name="default:fence_wood"}) - minetest.set_node({x=165, y=10, z=58}, {name="default:fence_wood"}) - minetest.set_node({x=165, y=10, z=59}, {name="default:fence_wood"}) - elseif v+0 == 12 then - for k=8,14 do - minetest.set_node({x=165, y=k, z=49}, {name="default:wood"}) - end - minetest.set_node({x=166, y=14, z=49}, {name="default:fence_wood"}) - minetest.set_node({x=167, y=14, z=49}, {name="default:fence_wood"}) - minetest.set_node({x=164, y=14, z=49}, {name="default:fence_wood"}) - minetest.set_node({x=163, y=14, z=49}, {name="default:fence_wood"}) - elseif v+0 == 13 then - for k=8,16 do - minetest.set_node({x=165, y=k, z=43}, {name="default:wood"}) - end - elseif v+0 == 14 then - minetest.set_node({x=166, y=16, z=43}, {name="default:fence_wood"}) - minetest.set_node({x=167, y=16, z=43}, {name="default:fence_wood"}) - minetest.set_node({x=168, y=16, z=43}, {name="default:fence_wood"}) - minetest.set_node({x=169, y=16, z=43}, {name="default:fence_wood"}) - minetest.set_node({x=161, y=16, z=43}, {name="default:fence_wood"}) - minetest.set_node({x=162, y=16, z=43}, {name="default:fence_wood"}) - minetest.set_node({x=163, y=16, z=43}, {name="default:fence_wood"}) - minetest.set_node({x=164, y=16, z=43}, {name="default:fence_wood"}) - - minetest.set_node({x=165, y=7, z=44}, {name="castrum:sail1"}) - minetest.set_node({x=165, y=7, z=50}, {name="castrum:sail2"}) - - minetest.set_node({x=168, y=7, z=42}, {name="castrum:cannon1"}) - minetest.set_node({x=168, y=7, z=46}, {name="castrum:comming_soon"}) - minetest.set_node({x=168, y=7, z=48}, {name="castrum:comming_soon"}) - minetest.set_node({x=168, y=7, z=50}, {name="castrum:comming_soon"}) - - minetest.set_node({x=162, y=7, z=42}, {name="castrum:cannon2"}) - minetest.set_node({x=162, y=7, z=44}, {name="castrum:cannon3"}) - minetest.set_node({x=162, y=7, z=46}, {name="castrum:comming_soon"}) - minetest.set_node({x=162, y=7, z=48}, {name="castrum:comming_soon"}) - minetest.set_node({x=162, y=7, z=50}, {name="castrum:comming_soon"}) - minetest.set_node({x=165, y=9, z=40}, {name="castrum:pirate_captain"}) - screwdriver_handler(player, {type="node", under={x=165, y=9, z=40}, above={x=165, y=9, z=40}}, 1) - screwdriver_handler(player, {type="node", under={x=165, y=9, z=40}, above={x=165, y=9, z=40}}, 1) - elseif v+0 == 0 then - for j=161,169 do - for i=39,59 do - for k=8,16 do - minetest.set_node({x=j, y=k, z=i}, {name="air"}) - end - minetest.set_node({x=j, y=7, z=i}, {name="default:water_source"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Smithy.lua b/mods/castrum/buildings/Smithy.lua deleted file mode 100644 index f8685b5..0000000 --- a/mods/castrum/buildings/Smithy.lua +++ /dev/null @@ -1,128 +0,0 @@ -function Smithy(v,player) - if v+0 == 1 then - for j=62,69 do - for i=6,14 do - minetest.set_node({x=j*(-1), y=9, z=i*(-1)}, {name="default:cobble"}) - end - end - minetest.set_node({x=-61, y=9, z=-8}, {name="stairs:stair_cobble"}) - minetest.set_node({x=-61, y=9, z=-9}, {name="stairs:stair_cobble"}) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-8}, above={x=-61, y=9, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-8}, above={x=-61, y=9, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-8}, above={x=-61, y=9, z=-8}}, 1) - - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-9}, above={x=-61, y=9, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-9}, above={x=-61, y=9, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-9}, above={x=-61, y=9, z=-9}}, 1) - elseif v+0 == 2 then - for j=62,69 do - minetest.set_node({x=j*(-1), y=10, z=-11}, {name="default:cobble"}) - minetest.set_node({x=j*(-1), y=10, z=-6}, {name="default:cobble"}) - end - for i=6,14 do - minetest.set_node({x=-69, y=10, z=i*(-1)}, {name="default:cobble"}) - end - for j=64,69 do - minetest.set_node({x=j*(-1), y=10, z=-14}, {name="default:cobble"}) - end - minetest.set_node({x=-62, y=10, z=-10}, {name="default:cobble"}) - minetest.set_node({x=-62, y=10, z=-7}, {name="default:cobble"}) - minetest.set_node({x=-67, y=10, z=-13}, {name="default:cobble"}) - minetest.set_node({x=-67, y=10, z=-12}, {name="default:cobble"}) - elseif v+0 == 3 then - for j=62,69 do - minetest.set_node({x=j*(-1), y=11, z=-11}, {name="default:cobble"}) - minetest.set_node({x=j*(-1), y=11, z=-6}, {name="default:cobble"}) - end - for i=6,14 do - minetest.set_node({x=-69, y=11, z=i*(-1)}, {name="default:cobble"}) - end - for j=65,69 do - minetest.set_node({x=j*(-1), y=11, z=-14}, {name="default:cobble"}) - end - minetest.set_node({x=-62, y=11, z=-10}, {name="default:cobble"}) - minetest.set_node({x=-62, y=11, z=-7}, {name="default:cobble"}) - minetest.set_node({x=-62, y=10, z=-9}, {name="doors:door_wood_a"}) - minetest.set_node({x=-62, y=10, z=-8}, {name="doors:door_wood_b"}) - screwdriver_handler(player, {type="node", under={x=-62, y=10, z=-9}, above={x=-62, y=10, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=-62, y=10, z=-9}, above={x=-62, y=10, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=-62, y=10, z=-9}, above={x=-62, y=10, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=-62, y=10, z=-8}, above={x=-62, y=10, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-62, y=10, z=-8}, above={x=-62, y=10, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-62, y=10, z=-8}, above={x=-62, y=10, z=-8}}, 1) - elseif v+0 == 4 then - for j=62,69 do - minetest.set_node({x=j*(-1), y=12, z=-11}, {name="default:cobble"}) - minetest.set_node({x=j*(-1), y=12, z=-6}, {name="default:cobble"}) - end - for i=6,14 do - minetest.set_node({x=-69, y=12, z=i*(-1)}, {name="default:cobble"}) - end - for i=6,11 do - minetest.set_node({x=-62, y=12, z=i*(-1)}, {name="default:cobble"}) - end - for j=66,69 do - minetest.set_node({x=j*(-1), y=12, z=-14}, {name="default:cobble"}) - end - elseif v+0 == 5 then - for j=63,68 do - minetest.set_node({x=j*(-1), y=13, z=-10}, {name="default:cobble"}) - minetest.set_node({x=j*(-1), y=13, z=-7}, {name="default:cobble"}) - end - minetest.set_node({x=-63, y=13, z=-9}, {name="default:cobble"}) - minetest.set_node({x=-63, y=13, z=-8}, {name="default:cobble"}) - minetest.set_node({x=-68, y=13, z=-9}, {name="default:cobble"}) - minetest.set_node({x=-68, y=13, z=-8}, {name="default:cobble"}) - elseif v+0 == 6 then - for j=64,67 do - minetest.set_node({x=j*(-1), y=14, z=-9}, {name="default:cobble"}) - minetest.set_node({x=j*(-1), y=14, z=-8}, {name="default:cobble"}) - end - minetest.set_node({x=-68, y=10, z=-13}, {name="default:lava_source"}) - minetest.set_node({x=-68, y=10, z=-12}, {name="default:lava_source"}) - elseif v+0 == 7 then - for j=61,69 do - for i=6,14 do - for k=9,14 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:cobble" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:stone_block"}) - end - end - end - end - minetest.set_node({x=-61, y=9, z=-8}, {name="stairs:stair_stone_block"}) - minetest.set_node({x=-61, y=9, z=-9}, {name="stairs:stair_stone_block"}) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-8}, above={x=-61, y=9, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-8}, above={x=-61, y=9, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-8}, above={x=-61, y=9, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-9}, above={x=-61, y=9, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-9}, above={x=-61, y=9, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-9}, above={x=-61, y=9, z=-9}}, 1) - elseif v+0 == 8 then - for j=61,69 do - for i=6,14 do - for k=9,14 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:stone_block" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - end - end - minetest.set_node({x=-61, y=9, z=-8}, {name="stairs:stair_desert_cobble"}) - minetest.set_node({x=-61, y=9, z=-9}, {name="stairs:stair_desert_cobble"}) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-8}, above={x=-61, y=9, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-8}, above={x=-61, y=9, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-8}, above={x=-61, y=9, z=-8}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-9}, above={x=-61, y=9, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-9}, above={x=-61, y=9, z=-9}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=-9}, above={x=-61, y=9, z=-9}}, 1) - elseif v+0 == 0 then - for j=61,69 do - for i=6,14 do - for k=9,14 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Stable.lua b/mods/castrum/buildings/Stable.lua deleted file mode 100644 index 907ea43..0000000 --- a/mods/castrum/buildings/Stable.lua +++ /dev/null @@ -1,102 +0,0 @@ -function Stable(v,player) - if v+0 == 1 then - for j=66,69 do - minetest.set_node({x=j*(-1), y=9, z=-1}, {name="default:wood"}) - minetest.set_node({x=j*(-1), y=9, z=7}, {name="default:wood"}) - end - for i=0,6 do - minetest.set_node({x=-69, y=9, z=i}, {name="default:wood"}) - end - elseif v+0 == 2 then - for j=66,69 do - minetest.set_node({x=j*(-1), y=10, z=-1}, {name="default:wood"}) - minetest.set_node({x=j*(-1), y=10, z=7}, {name="default:wood"}) - end - for i=0,6 do - minetest.set_node({x=-69, y=10, z=i}, {name="default:wood"}) - end - elseif v+0 == 3 then - for j=66,69 do - minetest.set_node({x=j*(-1), y=11, z=-1}, {name="default:wood"}) - minetest.set_node({x=j*(-1), y=11, z=7}, {name="default:wood"}) - end - for i=0,6 do - minetest.set_node({x=-69, y=11, z=i}, {name="default:wood"}) - end - elseif v+0 == 4 then - for j=66,68 do - minetest.set_node({x=j*(-1), y=12, z=0}, {name="default:wood"}) - minetest.set_node({x=j*(-1), y=12, z=6}, {name="default:wood"}) - end - for i=1,5 do - minetest.set_node({x=-68, y=12, z=i}, {name="default:wood"}) - end - elseif v+0 == 5 then - for i=1,5 do - minetest.set_node({x=-67, y=13, z=i}, {name="default:wood"}) - minetest.set_node({x=-66, y=13, z=i}, {name="default:wood"}) - end - elseif v+0 == 6 then - for j=61,65 do - minetest.set_node({x=j*(-1), y=9, z=-1}, {name="default:fence_wood"}) - minetest.set_node({x=j*(-1), y=9, z=7}, {name="default:fence_wood"}) - end - for i=0,6 do - minetest.set_node({x=-61, y=9, z=i}, {name="default:fence_wood"}) - end - minetest.set_node({x=-61, y=9, z=3}, {name="doors:gate_wood_closed"}) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=3}, above={x=-61, y=9, z=3}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=3}, above={x=-61, y=9, z=3}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=3}, above={x=-61, y=9, z=3}}, 1) - elseif v+0 == 7 then - minetest.set_node({x=-67, y=9, z=0}, {name="castrum:cobble"}) - minetest.set_node({x=-68, y=9, z=1}, {name="castrum:cobble"}) - minetest.set_node({x=-68, y=9, z=0}, {name="default:river_water_source"}) - minetest.set_node({x=-68, y=9, z=6}, {name="farming:straw"}) - minetest.set_node({x=-68, y=10, z=6}, {name="farming:straw"}) - minetest.set_node({x=-67, y=9, z=6}, {name="farming:straw"}) - minetest.set_node({x=-68, y=9, z=5}, {name="farming:straw"}) - elseif v+0 == 8 then - for j=61,69 do - for i=0,7 do - for k=9,14 do - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:wood" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:junglewood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:fence_wood" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:fence_junglewood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "doors:gate_wood_closed" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="doors:gate_junglewood_closed"}) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=3}, above={x=-61, y=9, z=3}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=3}, above={x=-61, y=9, z=3}}, 1) - screwdriver_handler(player, {type="node", under={x=-61, y=9, z=3}, above={x=-61, y=9, z=3}}, 1) - end - end - end - end - for j=61,69 do - for k=9,14 do - if minetest.get_node({x=j*(-1), y=k, z=-1}).name == "default:wood" then - minetest.set_node({x=j*(-1), y=k, z=-1}, {name="default:junglewood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=-1}).name == "default:fence_wood" then - minetest.set_node({x=j*(-1), y=k, z=-1}, {name="default:fence_junglewood"}) - end - end - end - elseif v+0 == 0 then - for j=61,69 do - for i=0,7 do - for k=9,14 do - minetest.set_node({x=j*(-1), y=k, z=i}, {name="air"}) - end - end - end - for j=61,69 do - for k=9,14 do - minetest.set_node({x=j*(-1), y=k, z=-1}, {name="air"}) - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Tower1.lua b/mods/castrum/buildings/Tower1.lua deleted file mode 100644 index ce05972..0000000 --- a/mods/castrum/buildings/Tower1.lua +++ /dev/null @@ -1,497 +0,0 @@ -function Tower1(v,player) - if v+0 == 1 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=9, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=9, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=9, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=9, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=9, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=9, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=9, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=9, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=9, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=9, z=-24}, {name="default:cobble"}) - elseif v+0 == 2 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=10, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=10, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=10, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=10, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=10, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=10, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=10, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=10, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=10, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=10, z=-24}, {name="default:cobble"}) - elseif v+0 == 3 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=11, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=11, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=11, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=11, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=11, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=11, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=11, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=11, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=11, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=11, z=-24}, {name="default:cobble"}) - elseif v+0 == 4 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=12, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=12, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=12, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=12, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=12, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=12, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=12, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=12, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=12, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=12, z=-24}, {name="default:cobble"}) - elseif v+0 == 5 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=13, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=13, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=13, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=13, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=13, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=13, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=13, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=13, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=13, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=13, z=-24}, {name="default:cobble"}) - elseif v+0 == 6 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=14, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=14, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=14, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=14, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=14, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=14, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=14, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=14, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=14, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=14, z=-24}, {name="default:cobble"}) - elseif v+0 == 7 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=15, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=15, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=15, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=15, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=15, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=15, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=15, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=15, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=15, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=15, z=-24}, {name="default:cobble"}) - elseif v+0 == 8 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=16, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=16, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=16, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=16, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=16, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=16, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=16, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=16, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=16, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=16, z=-24}, {name="default:cobble"}) - elseif v+0 == 9 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=17, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=17, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=17, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=17, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=17, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=17, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=17, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=17, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=17, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=17, z=-24}, {name="default:cobble"}) - elseif v+0 == 10 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=18, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=18, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=18, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=18, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=18, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=18, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=18, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=18, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=18, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=18, z=-24}, {name="default:cobble"}) - elseif v+0 == 11 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-6, y=19, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-13, y=19, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-13, y=19, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-12, y=19, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-12, y=19, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=19, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=19, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-9, y=19, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-8, y=19, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-7, y=19, z=-24}, {name="default:cobble"}) - elseif v+0 == 12 then - for j=6,13 do - for i=24,31 do - minetest.set_node({x=j*(-1), y=20, z=i*(-1)}, {name="default:cobble"}) - end - end - minetest.set_node({x=-13, y=20, z=-24}, {name="air"}) - minetest.set_node({x=-13, y=20, z=-25}, {name="air"}) - minetest.set_node({x=-13, y=20, z=-26}, {name="air"}) - minetest.set_node({x=-12, y=20, z=-24}, {name="air"}) - minetest.set_node({x=-12, y=20, z=-25}, {name="air"}) - minetest.set_node({x=-11, y=20, z=-24}, {name="air"}) - elseif v+0 == 13 then - for i=6,13 do - if i%2 == 0 then - minetest.set_node({x=i*(-1), y=21, z=-31}, {name="default:cobble"}) - end - end - for i=24,31 do - if i%2 == 1 then - minetest.set_node({x=-6, y=21, z=i*(-1)}, {name="default:cobble"}) - end - end - minetest.set_node({x=-12, y=21, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=21, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=21, z=-25}, {name="default:cobble"}) - elseif v+0 == 14 then - minetest.set_node({x=-12, y=22, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=22, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=22, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-6, y=22, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-12, y=22, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-6, y=22, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-12, y=23, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-11, y=23, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-10, y=23, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-6, y=23, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-12, y=23, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-6, y=23, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-11, y=23, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-7, y=23, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-6, y=23, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-6, y=23, z=-26}, {name="default:cobble"}) - elseif v+0 == 15 then - minetest.set_node({x=-11, y=24, z=-26}, {name="default:cobble"}) - for i=27,31 do - minetest.set_node({x=-12, y=24, z=i*(-1)}, {name="default:cobble"}) - end - for i=25,31 do - minetest.set_node({x=-6, y=24, z=i*(-1)}, {name="default:cobble"}) - end - for i=6,12 do - minetest.set_node({x=i*(-1), y=24, z=-31}, {name="default:cobble"}) - end - for i=6,10 do - minetest.set_node({x=i*(-1), y=24, z=-25}, {name="default:cobble"}) - end - elseif v+0 == 16 then - for i=27,30 do - minetest.set_node({x=-11, y=25, z=i*(-1)}, {name="default:cobble"}) - end - for i=26,30 do - minetest.set_node({x=-7, y=25, z=i*(-1)}, {name="default:cobble"}) - end - for i=7,11 do - minetest.set_node({x=i*(-1), y=25, z=-30}, {name="default:cobble"}) - end - for i=7,10 do - minetest.set_node({x=i*(-1), y=25, z=-26}, {name="default:cobble"}) - end - elseif v+0 == 17 then - for i=27,29 do - minetest.set_node({x=-10, y=26, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-8, y=26, z=i*(-1)}, {name="default:cobble"}) - end - for i=8,10 do - minetest.set_node({x=i*(-1), y=26, z=-29}, {name="default:cobble"}) - minetest.set_node({x=i*(-1), y=26, z=-27}, {name="default:cobble"}) - end - minetest.set_node({x=-9, y=27, z=-28}, {name="default:cobble"}) - elseif v+0 == 18 then - minetest.set_node({x=-9, y=21, z=-30}, {name="castrum:castrum_knight1"}) - minetest.set_node({x=-7, y=21, z=-28}, {name="castrum:castrum_knight1"}) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-28}, above={x=-7, y=21, z=-28}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-28}, above={x=-7, y=21, z=-28}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-28}, above={x=-7, y=21, z=-28}}, 1) - elseif v+0 == 19 then - for i=6,13 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:stone_block"}) - end - end - for i=6,13 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:stone_block"}) - end - end - for i=6,13 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:stone_block"}) - end - end - for i=24,31 do - if i%4 == 3 then - minetest.set_node({x=-6, y=20, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=16, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=12, z=i*(-1)}, {name="default:stone_block"}) - end - end - for i=24,31 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=17, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=15, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=13, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=11, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=9, z=i*(-1)}, {name="default:stone_block"}) - end - end - for i=24,31 do - if i%4 == 1 then - minetest.set_node({x=-6, y=18, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=14, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=10, z=i*(-1)}, {name="default:stone_block"}) - end - end - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-7, y=k, z=-24}, {name="default:stone_block"}) - minetest.set_node({x=-9, y=k, z=-25}, {name="default:stone_block"}) - minetest.set_node({x=-11, y=k, z=-26}, {name="default:stone_block"}) - minetest.set_node({x=-12, y=k, z=-28}, {name="default:stone_block"}) - minetest.set_node({x=-13, y=k, z=-30}, {name="default:stone_block"}) - end - end - minetest.set_node({x=-8, y=10, z=-24}, {name="default:stone_block"}) - minetest.set_node({x=-8, y=14, z=-24}, {name="default:stone_block"}) - minetest.set_node({x=-8, y=18, z=-24}, {name="default:stone_block"}) - minetest.set_node({x=-10, y=12, z=-25}, {name="default:stone_block"}) - minetest.set_node({x=-10, y=16, z=-25}, {name="default:stone_block"}) - minetest.set_node({x=-13, y=10, z=-29}, {name="default:stone_block"}) - minetest.set_node({x=-13, y=14, z=-29}, {name="default:stone_block"}) - minetest.set_node({x=-13, y=18, z=-29}, {name="default:stone_block"}) - minetest.set_node({x=-12, y=12, z=-27}, {name="default:stone_block"}) - minetest.set_node({x=-12, y=16, z=-27}, {name="default:stone_block"}) - elseif v+0 == 20 then - for j=6,13 do - for i=24,31 do - for k=9,27 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:cobble" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 21 then - for i=6,13 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:desert_cobble"}) - end - end - for i=6,13 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:desert_cobble"}) - end - end - for i=6,13 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:desert_cobble"}) - end - end - for i=24,31 do - if i%4 == 3 then - minetest.set_node({x=-6, y=20, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=16, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=12, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for i=24,31 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=17, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=15, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=13, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=11, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=9, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for i=24,31 do - if i%4 == 1 then - minetest.set_node({x=-6, y=18, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=14, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=10, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-7, y=k, z=-24}, {name="default:desert_cobble"}) - minetest.set_node({x=-9, y=k, z=-25}, {name="default:desert_cobble"}) - minetest.set_node({x=-11, y=k, z=-26}, {name="default:desert_cobble"}) - minetest.set_node({x=-12, y=k, z=-28}, {name="default:desert_cobble"}) - minetest.set_node({x=-13, y=k, z=-30}, {name="default:desert_cobble"}) - end - end - minetest.set_node({x=-8, y=10, z=-24}, {name="default:desert_cobble"}) - minetest.set_node({x=-8, y=14, z=-24}, {name="default:desert_cobble"}) - minetest.set_node({x=-8, y=18, z=-24}, {name="default:desert_cobble"}) - minetest.set_node({x=-10, y=12, z=-25}, {name="default:desert_cobble"}) - minetest.set_node({x=-10, y=16, z=-25}, {name="default:desert_cobble"}) - minetest.set_node({x=-13, y=10, z=-29}, {name="default:desert_cobble"}) - minetest.set_node({x=-13, y=14, z=-29}, {name="default:desert_cobble"}) - minetest.set_node({x=-13, y=18, z=-29}, {name="default:desert_cobble"}) - minetest.set_node({x=-12, y=12, z=-27}, {name="default:desert_cobble"}) - minetest.set_node({x=-12, y=16, z=-27}, {name="default:desert_cobble"}) - elseif v+0 == 22 then - for j=6,13 do - for i=24,31 do - for k=9,27 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:stone_block" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 23 then - for i=6,13 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=6,13 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=6,13 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=24,31 do - if i%4 == 3 then - minetest.set_node({x=-6, y=20, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=16, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=12, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for i=24,31 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=17, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=15, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=13, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=11, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=9, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for i=24,31 do - if i%4 == 1 then - minetest.set_node({x=-6, y=18, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=14, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=10, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-7, y=k, z=-24}, {name="default:desert_stone_block"}) - minetest.set_node({x=-9, y=k, z=-25}, {name="default:desert_stone_block"}) - minetest.set_node({x=-11, y=k, z=-26}, {name="default:desert_stone_block"}) - minetest.set_node({x=-12, y=k, z=-28}, {name="default:desert_stone_block"}) - minetest.set_node({x=-13, y=k, z=-30}, {name="default:desert_stone_block"}) - end - end - minetest.set_node({x=-8, y=10, z=-24}, {name="default:desert_stone_block"}) - minetest.set_node({x=-8, y=14, z=-24}, {name="default:desert_stone_block"}) - minetest.set_node({x=-8, y=18, z=-24}, {name="default:desert_stone_block"}) - minetest.set_node({x=-10, y=12, z=-25}, {name="default:desert_stone_block"}) - minetest.set_node({x=-10, y=16, z=-25}, {name="default:desert_stone_block"}) - minetest.set_node({x=-13, y=10, z=-29}, {name="default:desert_stone_block"}) - minetest.set_node({x=-13, y=14, z=-29}, {name="default:desert_stone_block"}) - minetest.set_node({x=-13, y=18, z=-29}, {name="default:desert_stone_block"}) - minetest.set_node({x=-12, y=12, z=-27}, {name="default:desert_stone_block"}) - minetest.set_node({x=-12, y=16, z=-27}, {name="default:desert_stone_block"}) - elseif v+0 == 0 then - for j=6,13 do - for i=24,31 do - for k=9,27 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Tower2.lua b/mods/castrum/buildings/Tower2.lua deleted file mode 100644 index b7d88ec..0000000 --- a/mods/castrum/buildings/Tower2.lua +++ /dev/null @@ -1,498 +0,0 @@ -function Tower2(v,player) - if v+0 == 1 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=9, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=9, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=9, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=9, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=9, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=9, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=9, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=9, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=9, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=9, z=-30}, {name="default:cobble"}) - elseif v+0 == 2 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=10, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=10, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=10, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=10, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=10, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=10, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=10, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=10, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=10, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=10, z=-30}, {name="default:cobble"}) - elseif v+0 == 3 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=11, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=11, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=11, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=11, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=11, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=11, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=11, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=11, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=11, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=11, z=-30}, {name="default:cobble"}) - elseif v+0 == 4 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=12, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=12, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=12, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=12, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=12, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=12, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=12, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=12, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=12, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=12, z=-30}, {name="default:cobble"}) - elseif v+0 == 5 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=13, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=13, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=13, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=13, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=13, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=13, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=13, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=13, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=13, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=13, z=-30}, {name="default:cobble"}) - elseif v+0 == 6 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=14, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=14, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=14, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=14, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=14, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=14, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=14, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=14, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=14, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=14, z=-30}, {name="default:cobble"}) - elseif v+0 == 7 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=15, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=15, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=15, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=15, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=15, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=15, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=15, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=15, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=15, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=15, z=-30}, {name="default:cobble"}) - elseif v+0 == 8 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=16, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=16, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=16, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=16, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=16, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=16, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=16, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=16, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=16, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=16, z=-30}, {name="default:cobble"}) - elseif v+0 == 9 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=17, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=17, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=17, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=17, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=17, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=17, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=17, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=17, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=17, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=17, z=-30}, {name="default:cobble"}) - elseif v+0 == 10 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=18, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=18, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=18, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=18, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=18, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=18, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=18, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=18, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=18, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=18, z=-30}, {name="default:cobble"}) - elseif v+0 == 11 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:cobble"}) - end - for i=24,31 do - minetest.set_node({x=-74, y=19, z=i*(-1)}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=19, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-72, y=19, z=-24}, {name="default:cobble"}) - minetest.set_node({x=-71, y=19, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-70, y=19, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=19, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-68, y=19, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-68, y=19, z=-28}, {name="default:cobble"}) - minetest.set_node({x=-67, y=19, z=-29}, {name="default:cobble"}) - minetest.set_node({x=-67, y=19, z=-30}, {name="default:cobble"}) - elseif v+0 == 12 then - for j=67,74 do - for i=24,31 do - minetest.set_node({x=j*(-1), y=20, z=i*(-1)}, {name="default:cobble"}) - end - end - minetest.set_node({x=-67, y=20, z=-24}, {name="air"}) - minetest.set_node({x=-67, y=20, z=-25}, {name="air"}) - minetest.set_node({x=-67, y=20, z=-26}, {name="air"}) - minetest.set_node({x=-68, y=20, z=-24}, {name="air"}) - minetest.set_node({x=-68, y=20, z=-25}, {name="air"}) - minetest.set_node({x=-69, y=20, z=-24}, {name="air"}) - elseif v+0 == 13 then - for i=67,74 do - if i%2 == 0 then - minetest.set_node({x=i*(-1), y=21, z=-31}, {name="default:cobble"}) - end - end - for i=24,31 do - if i%2 == 1 then - minetest.set_node({x=-74, y=21, z=i*(-1)}, {name="default:cobble"}) - end - end - minetest.set_node({x=-68, y=21, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-69, y=21, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-70, y=21, z=-25}, {name="default:cobble"}) - elseif v+0 == 14 then - minetest.set_node({x=-68, y=22, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-69, y=22, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-70, y=22, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-74, y=22, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-68, y=22, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-74, y=22, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-68, y=23, z=-27}, {name="default:cobble"}) - minetest.set_node({x=-69, y=23, z=-26}, {name="default:cobble"}) - minetest.set_node({x=-70, y=23, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-74, y=23, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-68, y=23, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-74, y=23, z=-25}, {name="default:cobble"}) - minetest.set_node({x=-69, y=23, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-73, y=23, z=-31}, {name="default:cobble"}) - minetest.set_node({x=-74, y=23, z=-30}, {name="default:cobble"}) - minetest.set_node({x=-74, y=23, z=-26}, {name="default:cobble"}) - elseif v+0 == 15 then - minetest.set_node({x=-69, y=24, z=-26}, {name="default:cobble"}) - for i=27,31 do - minetest.set_node({x=-68, y=24, z=i*(-1)}, {name="default:cobble"}) - end - for i=25,31 do - minetest.set_node({x=-74, y=24, z=i*(-1)}, {name="default:cobble"}) - end - for i=68,74 do - minetest.set_node({x=i*(-1), y=24, z=-31}, {name="default:cobble"}) - end - for i=70,74 do - minetest.set_node({x=i*(-1), y=24, z=-25}, {name="default:cobble"}) - end - elseif v+0 == 16 then - for i=27,30 do - minetest.set_node({x=-69, y=25, z=i*(-1)}, {name="default:cobble"}) - end - for i=26,30 do - minetest.set_node({x=-73, y=25, z=i*(-1)}, {name="default:cobble"}) - end - for i=69,73 do - minetest.set_node({x=i*(-1), y=25, z=-30}, {name="default:cobble"}) - end - for i=70,73 do - minetest.set_node({x=i*(-1), y=25, z=-26}, {name="default:cobble"}) - end - elseif v+0 == 17 then - for i=27,29 do - minetest.set_node({x=-72, y=26, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-70, y=26, z=i*(-1)}, {name="default:cobble"}) - end - for i=70,72 do - minetest.set_node({x=i*(-1), y=26, z=-29}, {name="default:cobble"}) - minetest.set_node({x=i*(-1), y=26, z=-27}, {name="default:cobble"}) - end - minetest.set_node({x=-71, y=27, z=-28}, {name="default:cobble"}) - elseif v+0 == 18 then - minetest.set_node({x=-71, y=21, z=-30}, {name="castrum:castrum_knight1"}) - minetest.set_node({x=-73, y=21, z=-28}, {name="castrum:castrum_knight1"}) - screwdriver_handler(player, {type="node", under={x=-73, y=21, z=-28}, above={x=-73, y=21, z=-28}}, 1) - elseif v+0 == 19 then - for i=67,74 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:stone_block"}) - end - end - for i=67,74 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:stone_block"}) - end - end - for i=67,74 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:stone_block"}) - end - end - for i=24,31 do - if i%4 == 3 then - minetest.set_node({x=-74, y=20, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=16, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=12, z=i*(-1)}, {name="default:stone_block"}) - end - end - for i=24,31 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=17, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=15, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=13, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=11, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=9, z=i*(-1)}, {name="default:stone_block"}) - end - end - for i=24,31 do - if i%4 == 1 then - minetest.set_node({x=-74, y=18, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=14, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=10, z=i*(-1)}, {name="default:stone_block"}) - end - end - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-73, y=k, z=-24}, {name="default:stone_block"}) - minetest.set_node({x=-71, y=k, z=-25}, {name="default:stone_block"}) - minetest.set_node({x=-69, y=k, z=-26}, {name="default:stone_block"}) - minetest.set_node({x=-68, y=k, z=-28}, {name="default:stone_block"}) - minetest.set_node({x=-67, y=k, z=-30}, {name="default:stone_block"}) - end - end - - minetest.set_node({x=-72, y=10, z=-24}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=14, z=-24}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=18, z=-24}, {name="default:stone_block"}) - minetest.set_node({x=-70, y=12, z=-25}, {name="default:stone_block"}) - minetest.set_node({x=-70, y=16, z=-25}, {name="default:stone_block"}) - minetest.set_node({x=-67, y=10, z=-29}, {name="default:stone_block"}) - minetest.set_node({x=-67, y=14, z=-29}, {name="default:stone_block"}) - minetest.set_node({x=-67, y=18, z=-29}, {name="default:stone_block"}) - minetest.set_node({x=-68, y=12, z=-27}, {name="default:stone_block"}) - minetest.set_node({x=-68, y=16, z=-27}, {name="default:stone_block"}) - elseif v+0 == 20 then - for j=67,74 do - for i=24,31 do - for k=9,27 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:cobble" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 21 then - for i=67,74 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:desert_cobble"}) - end - end - for i=67,74 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:desert_cobble"}) - end - end - for i=67,74 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:desert_cobble"}) - end - end - for i=24,31 do - if i%4 == 3 then - minetest.set_node({x=-74, y=20, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=16, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=12, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for i=24,31 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=17, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=15, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=13, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=11, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=9, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for i=24,31 do - if i%4 == 1 then - minetest.set_node({x=-74, y=18, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=14, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=10, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-73, y=k, z=-24}, {name="default:desert_cobble"}) - minetest.set_node({x=-71, y=k, z=-25}, {name="default:desert_cobble"}) - minetest.set_node({x=-69, y=k, z=-26}, {name="default:desert_cobble"}) - minetest.set_node({x=-68, y=k, z=-28}, {name="default:desert_cobble"}) - minetest.set_node({x=-67, y=k, z=-30}, {name="default:desert_cobble"}) - end - end - - minetest.set_node({x=-72, y=10, z=-24}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=14, z=-24}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=18, z=-24}, {name="default:desert_cobble"}) - minetest.set_node({x=-70, y=12, z=-25}, {name="default:desert_cobble"}) - minetest.set_node({x=-70, y=16, z=-25}, {name="default:desert_cobble"}) - minetest.set_node({x=-67, y=10, z=-29}, {name="default:desert_cobble"}) - minetest.set_node({x=-67, y=14, z=-29}, {name="default:desert_cobble"}) - minetest.set_node({x=-67, y=18, z=-29}, {name="default:desert_cobble"}) - minetest.set_node({x=-68, y=12, z=-27}, {name="default:desert_cobble"}) - minetest.set_node({x=-68, y=16, z=-27}, {name="default:desert_cobble"}) - elseif v+0 == 22 then - for j=67,74 do - for i=24,31 do - for k=9,27 do - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:stone_block" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 23 then - for i=67,74 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=67,74 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=67,74 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=24,31 do - if i%4 == 3 then - minetest.set_node({x=-74, y=20, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=16, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=12, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for i=24,31 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=17, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=15, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=13, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=11, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=9, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for i=24,31 do - if i%4 == 1 then - minetest.set_node({x=-74, y=18, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=14, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=10, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-73, y=k, z=-24}, {name="default:desert_stone_block"}) - minetest.set_node({x=-71, y=k, z=-25}, {name="default:desert_stone_block"}) - minetest.set_node({x=-69, y=k, z=-26}, {name="default:desert_stone_block"}) - minetest.set_node({x=-68, y=k, z=-28}, {name="default:desert_stone_block"}) - minetest.set_node({x=-67, y=k, z=-30}, {name="default:desert_stone_block"}) - end - end - - minetest.set_node({x=-72, y=10, z=-24}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=14, z=-24}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=18, z=-24}, {name="default:desert_stone_block"}) - minetest.set_node({x=-70, y=12, z=-25}, {name="default:desert_stone_block"}) - minetest.set_node({x=-70, y=16, z=-25}, {name="default:desert_stone_block"}) - minetest.set_node({x=-67, y=10, z=-29}, {name="default:desert_stone_block"}) - minetest.set_node({x=-67, y=14, z=-29}, {name="default:desert_stone_block"}) - minetest.set_node({x=-67, y=18, z=-29}, {name="default:desert_stone_block"}) - minetest.set_node({x=-68, y=12, z=-27}, {name="default:desert_stone_block"}) - minetest.set_node({x=-68, y=16, z=-27}, {name="default:desert_stone_block"}) - elseif v+0 == 0 then - for j=67,74 do - for i=24,31 do - for k=9,27 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Tower3.lua b/mods/castrum/buildings/Tower3.lua deleted file mode 100644 index 7b53cbc..0000000 --- a/mods/castrum/buildings/Tower3.lua +++ /dev/null @@ -1,497 +0,0 @@ -function Tower3(v,player) - if v+0 == 1 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=9, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=9, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=9, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=9, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=9, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=9, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=9, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=9, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=9, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=9, z=36}, {name="default:cobble"}) - elseif v+0 == 2 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=10, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=10, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=10, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=10, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=10, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=10, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=10, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=10, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=10, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=10, z=36}, {name="default:cobble"}) - elseif v+0 == 3 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=11, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=11, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=11, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=11, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=11, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=11, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=11, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=11, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=11, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=11, z=36}, {name="default:cobble"}) - elseif v+0 == 4 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=12, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=12, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=12, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=12, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=12, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=12, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=12, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=12, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=12, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=12, z=36}, {name="default:cobble"}) - elseif v+0 == 5 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=13, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=13, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=13, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=13, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=13, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=13, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=13, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=13, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=13, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=13, z=36}, {name="default:cobble"}) - elseif v+0 == 6 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=14, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=14, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=14, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=14, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=14, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=14, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=14, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=14, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=14, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=14, z=36}, {name="default:cobble"}) - elseif v+0 == 7 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=15, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=15, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=15, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=15, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=15, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=15, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=15, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=15, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=15, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=15, z=36}, {name="default:cobble"}) - elseif v+0 == 8 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=16, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=16, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=16, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=16, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=16, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=16, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=16, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=16, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=16, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=16, z=36}, {name="default:cobble"}) - elseif v+0 == 9 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=17, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=17, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=17, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=17, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=17, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=17, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=17, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=17, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=17, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=17, z=36}, {name="default:cobble"}) - elseif v+0 == 10 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=18, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=18, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=18, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=18, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=18, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=18, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=18, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=18, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=18, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=18, z=36}, {name="default:cobble"}) - elseif v+0 == 11 then - for i=67,74 do - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-74, y=19, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-73, y=19, z=30}, {name="default:cobble"}) - minetest.set_node({x=-72, y=19, z=30}, {name="default:cobble"}) - minetest.set_node({x=-71, y=19, z=31}, {name="default:cobble"}) - minetest.set_node({x=-70, y=19, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=19, z=32}, {name="default:cobble"}) - minetest.set_node({x=-68, y=19, z=33}, {name="default:cobble"}) - minetest.set_node({x=-68, y=19, z=34}, {name="default:cobble"}) - minetest.set_node({x=-67, y=19, z=35}, {name="default:cobble"}) - minetest.set_node({x=-67, y=19, z=36}, {name="default:cobble"}) - elseif v+0 == 12 then - for j=67,74 do - for i=30,37 do - minetest.set_node({x=j*(-1), y=20, z=i}, {name="default:cobble"}) - end - end - minetest.set_node({x=-67, y=20, z=30}, {name="air"}) - minetest.set_node({x=-67, y=20, z=31}, {name="air"}) - minetest.set_node({x=-67, y=20, z=32}, {name="air"}) - minetest.set_node({x=-68, y=20, z=30}, {name="air"}) - minetest.set_node({x=-68, y=20, z=31}, {name="air"}) - minetest.set_node({x=-69, y=20, z=30}, {name="air"}) - elseif v+0 == 13 then - for i=67,74 do - if i%2 == 0 then - minetest.set_node({x=i*(-1), y=21, z=37}, {name="default:cobble"}) - end - end - for i=30,37 do - if i%2 == 1 then - minetest.set_node({x=-74, y=21, z=i}, {name="default:cobble"}) - end - end - minetest.set_node({x=-68, y=21, z=33}, {name="default:cobble"}) - minetest.set_node({x=-69, y=21, z=32}, {name="default:cobble"}) - minetest.set_node({x=-70, y=21, z=31}, {name="default:cobble"}) - elseif v+0 == 14 then - minetest.set_node({x=-68, y=22, z=33}, {name="default:cobble"}) - minetest.set_node({x=-69, y=22, z=32}, {name="default:cobble"}) - minetest.set_node({x=-70, y=22, z=31}, {name="default:cobble"}) - minetest.set_node({x=-74, y=22, z=37}, {name="default:cobble"}) - minetest.set_node({x=-68, y=22, z=37}, {name="default:cobble"}) - minetest.set_node({x=-74, y=22, z=31}, {name="default:cobble"}) - minetest.set_node({x=-68, y=23, z=33}, {name="default:cobble"}) - minetest.set_node({x=-69, y=23, z=32}, {name="default:cobble"}) - minetest.set_node({x=-70, y=23, z=31}, {name="default:cobble"}) - minetest.set_node({x=-74, y=23, z=37}, {name="default:cobble"}) - minetest.set_node({x=-68, y=23, z=37}, {name="default:cobble"}) - minetest.set_node({x=-74, y=23, z=31}, {name="default:cobble"}) - minetest.set_node({x=-69, y=23, z=37}, {name="default:cobble"}) - minetest.set_node({x=-73, y=23, z=37}, {name="default:cobble"}) - minetest.set_node({x=-74, y=23, z=36}, {name="default:cobble"}) - minetest.set_node({x=-74, y=23, z=32}, {name="default:cobble"}) - elseif v+0 == 15 then - minetest.set_node({x=-69, y=24, z=32}, {name="default:cobble"}) - for i=33,37 do - minetest.set_node({x=-68, y=24, z=i}, {name="default:cobble"}) - end - for i=31,37 do - minetest.set_node({x=-74, y=24, z=i}, {name="default:cobble"}) - end - for i=68,74 do - minetest.set_node({x=i*(-1), y=24, z=37}, {name="default:cobble"}) - end - for i=70,74 do - minetest.set_node({x=i*(-1), y=24, z=31}, {name="default:cobble"}) - end - elseif v+0 == 16 then - for i=33,36 do - minetest.set_node({x=-69, y=25, z=i}, {name="default:cobble"}) - end - for i=32,36 do - minetest.set_node({x=-73, y=25, z=i}, {name="default:cobble"}) - end - for i=69,73 do - minetest.set_node({x=i*(-1), y=25, z=36}, {name="default:cobble"}) - end - for i=70,73 do - minetest.set_node({x=i*(-1), y=25, z=32}, {name="default:cobble"}) - end - elseif v+0 == 17 then - for i=33,35 do - minetest.set_node({x=-72, y=26, z=i}, {name="default:cobble"}) - minetest.set_node({x=-70, y=26, z=i}, {name="default:cobble"}) - end - for i=70,72 do - minetest.set_node({x=i*(-1), y=26, z=35}, {name="default:cobble"}) - minetest.set_node({x=i*(-1), y=26, z=33}, {name="default:cobble"}) - end - minetest.set_node({x=-71, y=27, z=34}, {name="default:cobble"}) - elseif v+0 == 18 then - minetest.set_node({x=-73, y=21, z=34}, {name="castrum:castrum_knight1"}) - minetest.set_node({x=-71, y=21, z=36}, {name="castrum:castrum_knight1"}) - screwdriver_handler(player, {type="node", under={x=-73, y=21, z=34}, above={x=-73, y=21, z=34}}, 1) - screwdriver_handler(player, {type="node", under={x=-71, y=21, z=36}, above={x=-71, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-71, y=21, z=36}, above={x=-71, y=21, z=36}}, 1) - elseif v+0 == 19 then - for i=30,37 do - if i%4 == 1 then - minetest.set_node({x=-74, y=20, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=16, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=12, z=i}, {name="default:stone_block"}) - end - end - for i=30,37 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=17, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=15, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=13, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=11, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=9, z=i}, {name="default:stone_block"}) - end - end - for i=30,37 do - if i%4 == 3 then - minetest.set_node({x=-74, y=18, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=14, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=10, z=i}, {name="default:stone_block"}) - end - end - for i=67,74 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:stone_block"}) - end - end - for i=67,74 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:stone_block"}) - end - end - for i=67,74 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:stone_block"}) - end - end - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-73, y=k, z=30}, {name="default:stone_block"}) - minetest.set_node({x=-71, y=k, z=31}, {name="default:stone_block"}) - minetest.set_node({x=-69, y=k, z=32}, {name="default:stone_block"}) - minetest.set_node({x=-68, y=k, z=34}, {name="default:stone_block"}) - minetest.set_node({x=-67, y=k, z=36}, {name="default:stone_block"}) - end - end - minetest.set_node({x=-72, y=10, z=30}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=14, z=30}, {name="default:stone_block"}) - minetest.set_node({x=-72, y=18, z=30}, {name="default:stone_block"}) - minetest.set_node({x=-70, y=12, z=31}, {name="default:stone_block"}) - minetest.set_node({x=-70, y=16, z=31}, {name="default:stone_block"}) - minetest.set_node({x=-67, y=10, z=35}, {name="default:stone_block"}) - minetest.set_node({x=-67, y=14, z=35}, {name="default:stone_block"}) - minetest.set_node({x=-67, y=18, z=35}, {name="default:stone_block"}) - minetest.set_node({x=-68, y=12, z=33}, {name="default:stone_block"}) - minetest.set_node({x=-68, y=16, z=33}, {name="default:stone_block"}) - elseif v+0 == 20 then - for j=67,74 do - for i=30,37 do - for k=9,27 do - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:cobble" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 21 then - for i=30,37 do - if i%4 == 1 then - minetest.set_node({x=-74, y=20, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=16, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=12, z=i}, {name="default:desert_cobble"}) - end - end - for i=30,37 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=17, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=15, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=13, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=11, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=9, z=i}, {name="default:desert_cobble"}) - end - end - for i=30,37 do - if i%4 == 3 then - minetest.set_node({x=-74, y=18, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=14, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=10, z=i}, {name="default:desert_cobble"}) - end - end - for i=67,74 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:desert_cobble"}) - end - end - for i=67,74 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:desert_cobble"}) - end - end - for i=67,74 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:desert_cobble"}) - end - end - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-73, y=k, z=30}, {name="default:desert_cobble"}) - minetest.set_node({x=-71, y=k, z=31}, {name="default:desert_cobble"}) - minetest.set_node({x=-69, y=k, z=32}, {name="default:desert_cobble"}) - minetest.set_node({x=-68, y=k, z=34}, {name="default:desert_cobble"}) - minetest.set_node({x=-67, y=k, z=36}, {name="default:desert_cobble"}) - end - end - minetest.set_node({x=-72, y=10, z=30}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=14, z=30}, {name="default:desert_cobble"}) - minetest.set_node({x=-72, y=18, z=30}, {name="default:desert_cobble"}) - minetest.set_node({x=-70, y=12, z=31}, {name="default:desert_cobble"}) - minetest.set_node({x=-70, y=16, z=31}, {name="default:desert_cobble"}) - minetest.set_node({x=-67, y=10, z=35}, {name="default:desert_cobble"}) - minetest.set_node({x=-67, y=14, z=35}, {name="default:desert_cobble"}) - minetest.set_node({x=-67, y=18, z=35}, {name="default:desert_cobble"}) - minetest.set_node({x=-68, y=12, z=33}, {name="default:desert_cobble"}) - minetest.set_node({x=-68, y=16, z=33}, {name="default:desert_cobble"}) - elseif v+0 == 22 then - for j=67,74 do - for i=30,37 do - for k=9,27 do - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:stone_block" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 23 then - for i=30,37 do - if i%4 == 1 then - minetest.set_node({x=-74, y=20, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=16, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=12, z=i}, {name="default:desert_stone_block"}) - end - end - for i=30,37 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=17, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=15, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=13, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=11, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=9, z=i}, {name="default:desert_stone_block"}) - end - end - for i=30,37 do - if i%4 == 3 then - minetest.set_node({x=-74, y=18, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=14, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=10, z=i}, {name="default:desert_stone_block"}) - end - end - for i=67,74 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:desert_stone_block"}) - end - end - for i=67,74 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:desert_stone_block"}) - end - end - for i=67,74 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:desert_stone_block"}) - end - end - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-73, y=k, z=30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-71, y=k, z=31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-69, y=k, z=32}, {name="default:desert_stone_block"}) - minetest.set_node({x=-68, y=k, z=34}, {name="default:desert_stone_block"}) - minetest.set_node({x=-67, y=k, z=36}, {name="default:desert_stone_block"}) - end - end - minetest.set_node({x=-72, y=10, z=30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=14, z=30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-72, y=18, z=30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-70, y=12, z=31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-70, y=16, z=31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-67, y=10, z=35}, {name="default:desert_stone_block"}) - minetest.set_node({x=-67, y=14, z=35}, {name="default:desert_stone_block"}) - minetest.set_node({x=-67, y=18, z=35}, {name="default:desert_stone_block"}) - minetest.set_node({x=-68, y=12, z=33}, {name="default:desert_stone_block"}) - minetest.set_node({x=-68, y=16, z=33}, {name="default:desert_stone_block"}) - elseif v+0 == 0 then - for j=67,74 do - for i=30,37 do - for k=9,27 do - minetest.set_node({x=j*(-1), y=k, z=i}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Tower4.lua b/mods/castrum/buildings/Tower4.lua deleted file mode 100644 index c6dc6f8..0000000 --- a/mods/castrum/buildings/Tower4.lua +++ /dev/null @@ -1,502 +0,0 @@ -function Tower4(v,player) - if v+0 == 1 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=9, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=9, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=9, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=9, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=9, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=9, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=9, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=9, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=9, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=9, z=36}, {name="default:cobble"}) - elseif v+0 == 2 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=10, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=10, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=10, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=10, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=10, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=10, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=10, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=10, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=10, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=10, z=36}, {name="default:cobble"}) - elseif v+0 == 3 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=11, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=11, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=11, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=11, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=11, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=11, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=11, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=11, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=11, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=11, z=36}, {name="default:cobble"}) - elseif v+0 == 4 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=12, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=12, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=12, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=12, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=12, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=12, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=12, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=12, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=12, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=12, z=36}, {name="default:cobble"}) - elseif v+0 == 5 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=13, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=13, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=13, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=13, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=13, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=13, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=13, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=13, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=13, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=13, z=36}, {name="default:cobble"}) - elseif v+0 == 6 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=14, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=14, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=14, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=14, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=14, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=14, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=14, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=14, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=14, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=14, z=36}, {name="default:cobble"}) - elseif v+0 == 7 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=15, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=15, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=15, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=15, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=15, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=15, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=15, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=15, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=15, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=15, z=36}, {name="default:cobble"}) - elseif v+0 == 8 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=16, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=16, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=16, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=16, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=16, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=16, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=16, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=16, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=16, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=16, z=36}, {name="default:cobble"}) - elseif v+0 == 9 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=17, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=17, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=17, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=17, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=17, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=17, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=17, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=17, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=17, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=17, z=36}, {name="default:cobble"}) - elseif v+0 == 10 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=18, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=18, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=18, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=18, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=18, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=18, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=18, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=18, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=18, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=18, z=36}, {name="default:cobble"}) - elseif v+0 == 11 then - for i=6,13 do - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:cobble"}) - end - for i=30,37 do - minetest.set_node({x=-6, y=19, z=i}, {name="default:cobble"}) - end - minetest.set_node({x=-7, y=19, z=30}, {name="default:cobble"}) - minetest.set_node({x=-8, y=19, z=30}, {name="default:cobble"}) - minetest.set_node({x=-9, y=19, z=31}, {name="default:cobble"}) - minetest.set_node({x=-10, y=19, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=19, z=32}, {name="default:cobble"}) - minetest.set_node({x=-12, y=19, z=33}, {name="default:cobble"}) - minetest.set_node({x=-12, y=19, z=34}, {name="default:cobble"}) - minetest.set_node({x=-13, y=19, z=35}, {name="default:cobble"}) - minetest.set_node({x=-13, y=19, z=36}, {name="default:cobble"}) - elseif v+0 == 12 then - for j=6,13 do - for i=30,37 do - minetest.set_node({x=j*(-1), y=20, z=i}, {name="default:cobble"}) - end - end - minetest.set_node({x=-13, y=20, z=30}, {name="air"}) - minetest.set_node({x=-13, y=20, z=31}, {name="air"}) - minetest.set_node({x=-13, y=20, z=32}, {name="air"}) - minetest.set_node({x=-12, y=20, z=30}, {name="air"}) - minetest.set_node({x=-12, y=20, z=31}, {name="air"}) - minetest.set_node({x=-11, y=20, z=30}, {name="air"}) - elseif v+0 == 13 then - for i=6,13 do - if i%2 == 0 then - minetest.set_node({x=i*(-1), y=21, z=37}, {name="default:cobble"}) - end - end - for i=30,37 do - if i%2 == 1 then - minetest.set_node({x=-6, y=21, z=i}, {name="default:cobble"}) - end - end - minetest.set_node({x=-12, y=21, z=33}, {name="default:cobble"}) - minetest.set_node({x=-11, y=21, z=32}, {name="default:cobble"}) - minetest.set_node({x=-10, y=21, z=31}, {name="default:cobble"}) - elseif v+0 == 14 then - minetest.set_node({x=-12, y=22, z=33}, {name="default:cobble"}) - minetest.set_node({x=-11, y=22, z=32}, {name="default:cobble"}) - minetest.set_node({x=-10, y=22, z=31}, {name="default:cobble"}) - minetest.set_node({x=-6, y=22, z=37}, {name="default:cobble"}) - minetest.set_node({x=-12, y=22, z=37}, {name="default:cobble"}) - minetest.set_node({x=-6, y=22, z=31}, {name="default:cobble"}) - minetest.set_node({x=-12, y=23, z=33}, {name="default:cobble"}) - minetest.set_node({x=-11, y=23, z=32}, {name="default:cobble"}) - minetest.set_node({x=-10, y=23, z=31}, {name="default:cobble"}) - minetest.set_node({x=-6, y=23, z=37}, {name="default:cobble"}) - minetest.set_node({x=-12, y=23, z=37}, {name="default:cobble"}) - minetest.set_node({x=-6, y=23, z=31}, {name="default:cobble"}) - minetest.set_node({x=-11, y=23, z=37}, {name="default:cobble"}) - minetest.set_node({x=-7, y=23, z=37}, {name="default:cobble"}) - minetest.set_node({x=-6, y=23, z=36}, {name="default:cobble"}) - minetest.set_node({x=-6, y=23, z=32}, {name="default:cobble"}) - elseif v+0 == 15 then - minetest.set_node({x=-11, y=24, z=32}, {name="default:cobble"}) - for i=33,37 do - minetest.set_node({x=-12, y=24, z=i}, {name="default:cobble"}) - end - for i=31,37 do - minetest.set_node({x=-6, y=24, z=i}, {name="default:cobble"}) - end - for i=6,12 do - minetest.set_node({x=i*(-1), y=24, z=37}, {name="default:cobble"}) - end - for i=6,10 do - minetest.set_node({x=i*(-1), y=24, z=31}, {name="default:cobble"}) - end - elseif v+0 == 16 then - for i=33,36 do - minetest.set_node({x=-11, y=25, z=i}, {name="default:cobble"}) - end - for i=32,36 do - minetest.set_node({x=-7, y=25, z=i}, {name="default:cobble"}) - end - for i=7,11 do - minetest.set_node({x=i*(-1), y=25, z=36}, {name="default:cobble"}) - end - for i=7,10 do - minetest.set_node({x=i*(-1), y=25, z=32}, {name="default:cobble"}) - end - elseif v+0 == 17 then - for i=33,35 do - minetest.set_node({x=-8, y=26, z=i}, {name="default:cobble"}) - minetest.set_node({x=-10, y=26, z=i}, {name="default:cobble"}) - end - for i=8,10 do - minetest.set_node({x=i*(-1), y=26, z=35}, {name="default:cobble"}) - minetest.set_node({x=i*(-1), y=26, z=33}, {name="default:cobble"}) - end - minetest.set_node({x=-9, y=27, z=34}, {name="default:cobble"}) - elseif v+0 == 18 then - minetest.set_node({x=-7, y=21, z=34}, {name="castrum:castrum_knight1"}) - minetest.set_node({x=-9, y=21, z=36}, {name="castrum:castrum_knight1"}) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=34}, above={x=-7, y=21, z=34}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=34}, above={x=-7, y=21, z=34}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=34}, above={x=-7, y=21, z=34}}, 1) - screwdriver_handler(player, {type="node", under={x=-9, y=21, z=36}, above={x=-9, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-9, y=21, z=36}, above={x=-9, y=21, z=36}}, 1) - elseif v+0 == 19 then - for i=30,37 do - if i%4 == 1 then - minetest.set_node({x=-6, y=20, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=16, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=12, z=i}, {name="default:stone_block"}) - end - end - for i=30,37 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=17, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=15, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=13, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=11, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=9, z=i}, {name="default:stone_block"}) - end - end - for i=30,37 do - if i%4 == 3 then - minetest.set_node({x=-6, y=18, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=14, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=10, z=i}, {name="default:stone_block"}) - end - end - for i=6,13 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:stone_block"}) - end - end - for i=6,13 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:stone_block"}) - end - end - for i=6,13 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:stone_block"}) - end - end - - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-7, y=k, z=30}, {name="default:stone_block"}) - minetest.set_node({x=-9, y=k, z=31}, {name="default:stone_block"}) - minetest.set_node({x=-11, y=k, z=32}, {name="default:stone_block"}) - minetest.set_node({x=-12, y=k, z=34}, {name="default:stone_block"}) - minetest.set_node({x=-13, y=k, z=36}, {name="default:stone_block"}) - end - end - minetest.set_node({x=-8, y=10, z=30}, {name="default:stone_block"}) - minetest.set_node({x=-8, y=14, z=30}, {name="default:stone_block"}) - minetest.set_node({x=-8, y=18, z=30}, {name="default:stone_block"}) - minetest.set_node({x=-10, y=12, z=31}, {name="default:stone_block"}) - minetest.set_node({x=-10, y=16, z=31}, {name="default:stone_block"}) - minetest.set_node({x=-13, y=10, z=35}, {name="default:stone_block"}) - minetest.set_node({x=-13, y=14, z=35}, {name="default:stone_block"}) - minetest.set_node({x=-13, y=18, z=35}, {name="default:stone_block"}) - minetest.set_node({x=-12, y=12, z=33}, {name="default:stone_block"}) - minetest.set_node({x=-12, y=16, z=33}, {name="default:stone_block"}) - elseif v+0 == 20 then - for j=6,13 do - for i=30,37 do - for k=9,27 do - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:cobble" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 21 then - for i=30,37 do - if i%4 == 1 then - minetest.set_node({x=-6, y=20, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=16, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=12, z=i}, {name="default:desert_cobble"}) - end - end - for i=30,37 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=17, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=15, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=13, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=11, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=9, z=i}, {name="default:desert_cobble"}) - end - end - for i=30,37 do - if i%4 == 3 then - minetest.set_node({x=-6, y=18, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=14, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=10, z=i}, {name="default:desert_cobble"}) - end - end - for i=6,13 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:desert_cobble"}) - end - end - for i=6,13 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:desert_cobble"}) - end - end - for i=6,13 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:desert_cobble"}) - end - end - - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-7, y=k, z=30}, {name="default:desert_cobble"}) - minetest.set_node({x=-9, y=k, z=31}, {name="default:desert_cobble"}) - minetest.set_node({x=-11, y=k, z=32}, {name="default:desert_cobble"}) - minetest.set_node({x=-12, y=k, z=34}, {name="default:desert_cobble"}) - minetest.set_node({x=-13, y=k, z=36}, {name="default:desert_cobble"}) - end - end - minetest.set_node({x=-8, y=10, z=30}, {name="default:desert_cobble"}) - minetest.set_node({x=-8, y=14, z=30}, {name="default:desert_cobble"}) - minetest.set_node({x=-8, y=18, z=30}, {name="default:desert_cobble"}) - minetest.set_node({x=-10, y=12, z=31}, {name="default:desert_cobble"}) - minetest.set_node({x=-10, y=16, z=31}, {name="default:desert_cobble"}) - minetest.set_node({x=-13, y=10, z=35}, {name="default:desert_cobble"}) - minetest.set_node({x=-13, y=14, z=35}, {name="default:desert_cobble"}) - minetest.set_node({x=-13, y=18, z=35}, {name="default:desert_cobble"}) - minetest.set_node({x=-12, y=12, z=33}, {name="default:desert_cobble"}) - minetest.set_node({x=-12, y=16, z=33}, {name="default:desert_cobble"}) - elseif v+0 == 22 then - for j=6,13 do - for i=30,37 do - for k=9,27 do - if minetest.get_node({x=j*(-1), y=k, z=i}).name == "default:stone_block" then - minetest.set_node({x=j*(-1), y=k, z=i}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 23 then - for i=30,37 do - if i%4 == 1 then - minetest.set_node({x=-6, y=20, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=16, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=12, z=i}, {name="default:desert_stone_block"}) - end - end - for i=30,37 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=17, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=15, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=13, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=11, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=9, z=i}, {name="default:desert_stone_block"}) - end - end - for i=30,37 do - if i%4 == 3 then - minetest.set_node({x=-6, y=18, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=14, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=10, z=i}, {name="default:desert_stone_block"}) - end - end - for i=6,13 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:desert_stone_block"}) - end - end - for i=6,13 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:desert_stone_block"}) - end - end - for i=6,13 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:desert_stone_block"}) - end - end - - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-7, y=k, z=30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-9, y=k, z=31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-11, y=k, z=32}, {name="default:desert_stone_block"}) - minetest.set_node({x=-12, y=k, z=34}, {name="default:desert_stone_block"}) - minetest.set_node({x=-13, y=k, z=36}, {name="default:desert_stone_block"}) - end - end - minetest.set_node({x=-8, y=10, z=30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-8, y=14, z=30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-8, y=18, z=30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-10, y=12, z=31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-10, y=16, z=31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-13, y=10, z=35}, {name="default:desert_stone_block"}) - minetest.set_node({x=-13, y=14, z=35}, {name="default:desert_stone_block"}) - minetest.set_node({x=-13, y=18, z=35}, {name="default:desert_stone_block"}) - minetest.set_node({x=-12, y=12, z=33}, {name="default:desert_stone_block"}) - minetest.set_node({x=-12, y=16, z=33}, {name="default:desert_stone_block"}) - elseif v+0 == 0 then - for j=6,13 do - for i=30,37 do - for k=9,27 do - minetest.set_node({x=j*(-1), y=k, z=i}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Tree.lua b/mods/castrum/buildings/Tree.lua deleted file mode 100644 index f41795f..0000000 --- a/mods/castrum/buildings/Tree.lua +++ /dev/null @@ -1,166 +0,0 @@ -function Tree(v,player) - if v+0 == 1 then - minetest.set_node({x=-15, y=9, z=16}, {name="default:tree"}) - minetest.set_node({x=-15, y=10, z=16}, {name="default:leaves"}) - minetest.set_node({x=-14, y=9, z=16}, {name="default:leaves"}) - minetest.set_node({x=-16, y=9, z=16}, {name="default:leaves"}) - minetest.set_node({x=-15, y=9, z=15}, {name="default:leaves"}) - minetest.set_node({x=-15, y=9, z=17}, {name="default:leaves"}) - minetest.set_node({x=-20, y=9, z=11}, {name="default:chest"}) - screwdriver_handler(player, {type="node", under={x=-20, y=9, z=11}, above={x=-20, y=9, z=11}}, 1) - elseif v+0 == 2 then - minetest.set_node({x=-15, y=10, z=16}, {name="default:tree"}) - minetest.set_node({x=-15, y=11, z=16}, {name="default:tree"}) - minetest.set_node({x=-15, y=12, z=16}, {name="default:leaves"}) - minetest.set_node({x=-14, y=11, z=16}, {name="default:leaves"}) - minetest.set_node({x=-16, y=11, z=16}, {name="default:leaves"}) - minetest.set_node({x=-15, y=11, z=17}, {name="default:leaves"}) - minetest.set_node({x=-15, y=11, z=15}, {name="default:leaves"}) - minetest.set_node({x=-14, y=11, z=15}, {name="default:leaves"}) - minetest.set_node({x=-14, y=11, z=17}, {name="default:leaves"}) - minetest.set_node({x=-16, y=11, z=15}, {name="default:leaves"}) - minetest.set_node({x=-16, y=11, z=17}, {name="default:leaves"}) - minetest.set_node({x=-14, y=9, z=16}, {name="air"}) - minetest.set_node({x=-16, y=9, z=16}, {name="air"}) - minetest.set_node({x=-15, y=9, z=15}, {name="air"}) - minetest.set_node({x=-15, y=9, z=17}, {name="air"}) - elseif v+0 == 3 then - minetest.set_node({x=-15, y=12, z=16}, {name="default:tree"}) - minetest.set_node({x=-14, y=11, z=16}, {name="air"}) - minetest.set_node({x=-16, y=11, z=16}, {name="air"}) - minetest.set_node({x=-15, y=11, z=17}, {name="air"}) - minetest.set_node({x=-15, y=11, z=15}, {name="air"}) - minetest.set_node({x=-14, y=11, z=15}, {name="air"}) - minetest.set_node({x=-14, y=11, z=17}, {name="air"}) - minetest.set_node({x=-16, y=11, z=15}, {name="air"}) - minetest.set_node({x=-16, y=11, z=17}, {name="air"}) - minetest.set_node({x=-14, y=12, z=16}, {name="default:leaves"}) - minetest.set_node({x=-16, y=12, z=16}, {name="default:leaves"}) - minetest.set_node({x=-15, y=12, z=17}, {name="default:leaves"}) - minetest.set_node({x=-15, y=12, z=15}, {name="default:leaves"}) - minetest.set_node({x=-14, y=12, z=15}, {name="default:leaves"}) - minetest.set_node({x=-14, y=12, z=17}, {name="default:leaves"}) - minetest.set_node({x=-16, y=12, z=15}, {name="default:leaves"}) - minetest.set_node({x=-16, y=12, z=17}, {name="default:leaves"}) - minetest.set_node({x=-17, y=12, z=16}, {name="default:leaves"}) - minetest.set_node({x=-13, y=12, z=16}, {name="default:leaves"}) - minetest.set_node({x=-15, y=12, z=14}, {name="default:leaves"}) - minetest.set_node({x=-15, y=12, z=18}, {name="default:leaves"}) - minetest.set_node({x=-15, y=13, z=16}, {name="default:leaves"}) - minetest.set_node({x=-14, y=13, z=16}, {name="default:leaves"}) - minetest.set_node({x=-16, y=13, z=16}, {name="default:leaves"}) - minetest.set_node({x=-15, y=13, z=17}, {name="default:leaves"}) - minetest.set_node({x=-15, y=13, z=15}, {name="default:leaves"}) - minetest.set_node({x=-12, y=9, z=19}, {name="default:jungletree"}) - minetest.set_node({x=-12, y=10, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-11, y=9, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-13, y=9, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=9, z=18}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=9, z=20}, {name="default:jungleleaves"}) - elseif v+0 == 4 then - minetest.set_node({x=-12, y=10, z=19}, {name="default:jungletree"}) - minetest.set_node({x=-12, y=11, z=19}, {name="default:jungletree"}) - minetest.set_node({x=-11, y=11, z=18}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=11, z=18}, {name="default:jungleleaves"}) - minetest.set_node({x=-13, y=11, z=18}, {name="default:jungleleaves"}) - minetest.set_node({x=-11, y=11, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=11, z=19}, {name="default:jungletree"}) - minetest.set_node({x=-13, y=11, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-11, y=11, z=20}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=11, z=20}, {name="default:jungleleaves"}) - minetest.set_node({x=-13, y=11, z=20}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=12, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-11, y=9, z=19}, {name="air"}) - minetest.set_node({x=-13, y=9, z=19}, {name="air"}) - minetest.set_node({x=-12, y=9, z=18}, {name="air"}) - minetest.set_node({x=-12, y=9, z=20}, {name="air"}) - elseif v+0 == 5 then - minetest.set_node({x=-12, y=12, z=19}, {name="default:jungletree"}) - minetest.set_node({x=-11, y=11, z=18}, {name="air"}) - minetest.set_node({x=-12, y=11, z=18}, {name="air"}) - minetest.set_node({x=-13, y=11, z=18}, {name="air"}) - minetest.set_node({x=-11, y=11, z=19}, {name="air"}) - minetest.set_node({x=-13, y=11, z=19}, {name="air"}) - minetest.set_node({x=-11, y=11, z=20}, {name="air"}) - minetest.set_node({x=-12, y=11, z=20}, {name="air"}) - minetest.set_node({x=-13, y=11, z=20}, {name="air"}) - minetest.set_node({x=-11, y=12, z=18}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=12, z=18}, {name="default:jungleleaves"}) - minetest.set_node({x=-13, y=12, z=18}, {name="default:jungleleaves"}) - minetest.set_node({x=-11, y=12, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-13, y=12, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-11, y=12, z=20}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=12, z=20}, {name="default:jungleleaves"}) - minetest.set_node({x=-13, y=12, z=20}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=13, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-14, y=12, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=12, z=17}, {name="default:jungleleaves"}) - minetest.set_node({x=-13, y=13, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=13, z=18}, {name="default:jungleleaves"}) - minetest.set_node({x=-11, y=13, z=19}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=13, z=20}, {name="default:jungleleaves"}) - minetest.set_node({x=-12, y=9, z=13}, {name="default:pine_tree"}) - minetest.set_node({x=-12, y=9, z=14}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=9, z=12}, {name="default:pine_needles"}) - minetest.set_node({x=-11, y=9, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-13, y=9, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=10, z=13}, {name="default:pine_needles"}) - elseif v+0 == 6 then - minetest.set_node({x=-12, y=10, z=13}, {name="default:pine_tree"}) - minetest.set_node({x=-12, y=11, z=13}, {name="default:pine_tree"}) - - minetest.set_node({x=-13, y=11, z=14}, {name="default:pine_needles"}) - minetest.set_node({x=-11, y=11, z=14}, {name="default:pine_needles"}) - minetest.set_node({x=-11, y=11, z=12}, {name="default:pine_needles"}) - minetest.set_node({x=-13, y=11, z=12}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=11, z=14}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=11, z=12}, {name="default:pine_needles"}) - minetest.set_node({x=-11, y=11, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-13, y=11, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=12, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=9, z=14}, {name="air"}) - minetest.set_node({x=-12, y=9, z=12}, {name="air"}) - minetest.set_node({x=-11, y=9, z=13}, {name="air"}) - minetest.set_node({x=-13, y=9, z=13}, {name="air"}) - elseif v+0 == 7 then - minetest.set_node({x=-12, y=12, z=13}, {name="default:pine_tree"}) - minetest.set_node({x=-12, y=11, z=14}, {name="air"}) - minetest.set_node({x=-12, y=11, z=12}, {name="air"}) - minetest.set_node({x=-11, y=11, z=14}, {name="air"}) - minetest.set_node({x=-11, y=11, z=13}, {name="air"}) - minetest.set_node({x=-11, y=11, z=12}, {name="air"}) - minetest.set_node({x=-13, y=11, z=14}, {name="air"}) - minetest.set_node({x=-13, y=11, z=13}, {name="air"}) - minetest.set_node({x=-13, y=11, z=12}, {name="air"}) - minetest.set_node({x=-13, y=12, z=14}, {name="default:pine_needles"}) - minetest.set_node({x=-11, y=12, z=14}, {name="default:pine_needles"}) - minetest.set_node({x=-11, y=12, z=12}, {name="default:pine_needles"}) - minetest.set_node({x=-13, y=12, z=12}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=12, z=14}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=12, z=12}, {name="default:pine_needles"}) - minetest.set_node({x=-11, y=12, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-13, y=12, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=13, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-11, y=13, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-13, y=13, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=13, z=12}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=13, z=14}, {name="default:pine_needles"}) - minetest.set_node({x=-12, y=12, z=15}, {name="default:pine_needles"}) - minetest.set_node({x=-14, y=12, z=13}, {name="default:pine_needles"}) - minetest.set_node({x=-18, y=9, z=19}, {name="default:acacia_tree"}) - minetest.set_node({x=-18, y=9, z=20}, {name="default:acacia_leaves"}) - minetest.set_node({x=-18, y=9, z=18}, {name="default:acacia_leaves"}) - minetest.set_node({x=-17, y=9, z=19}, {name="default:acacia_leaves"}) - minetest.set_node({x=-19, y=9, z=19}, {name="default:acacia_leaves"}) - minetest.set_node({x=-18, y=10, z=19}, {name="default:acacia_leaves"}) - elseif v+0 == 0 then - for j=11,19 do - for i=12,20 do - for k=9,14 do - minetest.set_node({x=j*(-1), y=k, z=i}, {name="air"}) - end - end - end - minetest.set_node({x=-20, y=9, z=11}, {name="air"}) - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Wall_east.lua b/mods/castrum/buildings/Wall_east.lua deleted file mode 100644 index d9a1f43..0000000 --- a/mods/castrum/buildings/Wall_east.lua +++ /dev/null @@ -1,313 +0,0 @@ -function Wall_east(v,player) - if v+0 == 1 then - for i=0,29 do - minetest.set_node({x=-6, y=9, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=9, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 2 then - for i=0,29 do - minetest.set_node({x=-6, y=10, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=10, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 3 then - for i=0,29 do - minetest.set_node({x=-6, y=11, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=11, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 4 then - for i=0,29 do - minetest.set_node({x=-6, y=12, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=12, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 5 then - for i=0,29 do - minetest.set_node({x=-6, y=13, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=13, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 6 then - for i=0,29 do - minetest.set_node({x=-6, y=14, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=14, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 7 then - for i=0,29 do - minetest.set_node({x=-6, y=15, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=15, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 8 then - for i=0,29 do - minetest.set_node({x=-6, y=16, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=16, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 9 then - for i=0,29 do - minetest.set_node({x=-6, y=17, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=17, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 10 then - for i=0,29 do - minetest.set_node({x=-6, y=18, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=18, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 11 then - for i=0,29 do - minetest.set_node({x=-6, y=19, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-6, y=19, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 12 then - for j=6,9 do - for i=0,29 do - minetest.set_node({x=j*(-1), y=20, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=j*(-1), y=20, z=i*(-1)}, {name="default:cobble"}) - end - end - elseif v+0 == 13 then - for i=0,29 do - if i%2 == 1 then - minetest.set_node({x=-6, y=21, z=i}, {name="default:cobble"}) - end - end - for i=0,23 do - if i%2 == 1 then - minetest.set_node({x=-6, y=21, z=i*(-1)}, {name="default:cobble"}) - end - end - elseif v+0 == 14 then - minetest.set_node({x=-7, y=21, z=-21}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-7, y=21, z=-17}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-7, y=21, z=-13}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-7, y=21, z=19}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-7, y=21, z=23}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-7, y=21, z=27}, {name="castrum:castrum_knight2"}) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-21}, above={x=-7, y=21, z=-21}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-17}, above={x=-7, y=21, z=-17}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-13}, above={x=-7, y=21, z=-13}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=19}, above={x=-7, y=21, z=19}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=23}, above={x=-7, y=21, z=23}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=27}, above={x=-7, y=21, z=27}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-21}, above={x=-7, y=21, z=-21}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-17}, above={x=-7, y=21, z=-17}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-13}, above={x=-7, y=21, z=-13}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=19}, above={x=-7, y=21, z=19}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=23}, above={x=-7, y=21, z=23}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=27}, above={x=-7, y=21, z=27}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-21}, above={x=-7, y=21, z=-21}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-17}, above={x=-7, y=21, z=-17}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=-13}, above={x=-7, y=21, z=-13}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=19}, above={x=-7, y=21, z=19}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=23}, above={x=-7, y=21, z=23}}, 1) - screwdriver_handler(player, {type="node", under={x=-7, y=21, z=27}, above={x=-7, y=21, z=27}}, 1) - elseif v+0 == 15 then - for i=0,29 do - if i%4 == 1 then - minetest.set_node({x=-6, y=20, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=16, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=12, z=i}, {name="default:stone_block"}) - end - end - for i=0,23 do - if i%4 == 3 then - minetest.set_node({x=-6, y=20, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=16, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=12, z=i*(-1)}, {name="default:stone_block"}) - end - end - for i=0,29 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=17, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=15, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=13, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=11, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=9, z=i}, {name="default:stone_block"}) - end - end - for i=0,23 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=17, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=15, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=13, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=11, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=9, z=i*(-1)}, {name="default:stone_block"}) - end - end - for i=0,29 do - if i%4 == 3 then - minetest.set_node({x=-6, y=18, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=14, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=10, z=i}, {name="default:stone_block"}) - end - end - for i=0,23 do - if i%4 == 1 then - minetest.set_node({x=-6, y=18, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=14, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-6, y=10, z=i*(-1)}, {name="default:stone_block"}) - end - end - elseif v+0 == 16 then - for i=6,9 do - for k=9,21 do - for j=0,29 do - if minetest.get_node({x=i*(-1), y=k, z=j}).name == "default:cobble" then - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:stone_block"}) - end - end - for j=0,23 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:cobble" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 17 then - for i=0,29 do - if i%4 == 1 then - minetest.set_node({x=-6, y=20, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=16, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=12, z=i}, {name="default:desert_cobble"}) - end - end - for i=0,23 do - if i%4 == 3 then - minetest.set_node({x=-6, y=20, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=16, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=12, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for i=0,29 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=17, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=15, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=13, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=11, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=9, z=i}, {name="default:desert_cobble"}) - end - end - for i=0,23 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=17, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=15, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=13, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=11, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=9, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for i=0,29 do - if i%4 == 3 then - minetest.set_node({x=-6, y=18, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=14, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=10, z=i}, {name="default:desert_cobble"}) - end - end - for i=0,23 do - if i%4 == 1 then - minetest.set_node({x=-6, y=18, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=14, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-6, y=10, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - elseif v+0 == 18 then - for i=6,9 do - for k=9,21 do - for j=0,29 do - if minetest.get_node({x=i*(-1), y=k, z=j}).name == "default:stone_block" then - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:desert_cobble"}) - end - end - for j=0,23 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:stone_block" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 19 then - for i=0,29 do - if i%4 == 1 then - minetest.set_node({x=-6, y=20, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=16, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=12, z=i}, {name="default:desert_stone_block"}) - end - end - for i=0,23 do - if i%4 == 3 then - minetest.set_node({x=-6, y=20, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=16, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=12, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for i=0,29 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=17, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=15, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=13, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=11, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=9, z=i}, {name="default:desert_stone_block"}) - end - end - for i=0,23 do - if i%2 == 0 then - minetest.set_node({x=-6, y=19, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=17, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=15, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=13, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=11, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=9, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for i=0,29 do - if i%4 == 3 then - minetest.set_node({x=-6, y=18, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=14, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=10, z=i}, {name="default:desert_stone_block"}) - end - end - for i=0,23 do - if i%4 == 1 then - minetest.set_node({x=-6, y=18, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=14, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-6, y=10, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - elseif v+0 == 0 then - for i=6,9 do - for k=9,21 do - for j=0,29 do - minetest.set_node({x=i*(-1), y=k, z=j}, {name="air"}) - end - for j=0,23 do - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Wall_north.lua b/mods/castrum/buildings/Wall_north.lua deleted file mode 100644 index 424cf9d..0000000 --- a/mods/castrum/buildings/Wall_north.lua +++ /dev/null @@ -1,181 +0,0 @@ -function Wall_north(v,player) - if v+0 == 1 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:cobble"}) - end - elseif v+0 == 2 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:cobble"}) - end - elseif v+0 == 3 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:cobble"}) - end - elseif v+0 == 4 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:cobble"}) - end - elseif v+0 == 5 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:cobble"}) - end - elseif v+0 == 6 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:cobble"}) - end - elseif v+0 == 7 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:cobble"}) - end - elseif v+0 == 8 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:cobble"}) - end - elseif v+0 == 9 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:cobble"}) - end - elseif v+0 == 10 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:cobble"}) - end - elseif v+0 == 11 then - for i=14,66 do - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:cobble"}) - end - elseif v+0 == 12 then - for i=14,66 do - for j=34,37 do - minetest.set_node({x=i*(-1), y=20, z=j}, {name="default:cobble"}) - end - end - elseif v+0 == 13 then - for i=14,66 do - if i%2 == 0 then - minetest.set_node({x=i*(-1), y=21, z=37}, {name="default:cobble"}) - end - end - elseif v+0 == 14 then - minetest.set_node({x=-64, y=21, z=36}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-60, y=21, z=36}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-56, y=21, z=36}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-24, y=21, z=36}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-20, y=21, z=36}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-16, y=21, z=36}, {name="castrum:castrum_knight2"}) - screwdriver_handler(player, {type="node", under={x=-64, y=21, z=36}, above={x=-64, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-60, y=21, z=36}, above={x=-60, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-56, y=21, z=36}, above={x=-56, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-24, y=21, z=36}, above={x=-24, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-20, y=21, z=36}, above={x=-20, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-16, y=21, z=36}, above={x=-16, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-64, y=21, z=36}, above={x=-64, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-60, y=21, z=36}, above={x=-60, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-56, y=21, z=36}, above={x=-56, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-24, y=21, z=36}, above={x=-24, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-20, y=21, z=36}, above={x=-20, y=21, z=36}}, 1) - screwdriver_handler(player, {type="node", under={x=-16, y=21, z=36}, above={x=-16, y=21, z=36}}, 1) - elseif v+0 == 15 then - for i=14,66 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:stone_block"}) - end - end - for i=14,66 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:stone_block"}) - end - end - for i=14,66 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:stone_block"}) - end - end - elseif v+0 == 16 then - for i=14,66 do - for j=34,37 do - for k=9,21 do - if minetest.get_node({x=i*(-1), y=k, z=j}).name == "default:cobble" then - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 17 then - for i=14,66 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:desert_cobble"}) - end - end - for i=14,66 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:desert_cobble"}) - end - end - for i=14,66 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:desert_cobble"}) - end - end - elseif v+0 == 18 then - for i=14,66 do - for j=34,37 do - for k=9,21 do - if minetest.get_node({x=i*(-1), y=k, z=j}).name == "default:stone_block" then - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 19 then - for i=14,66 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=37}, {name="default:desert_stone_block"}) - end - end - for i=14,66 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=37}, {name="default:desert_stone_block"}) - end - end - for i=14,66 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=37}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=37}, {name="default:desert_stone_block"}) - end - end - elseif v+0 == 0 then - for i=14,66 do - for j=34,37 do - for k=9,21 do - minetest.set_node({x=i*(-1), y=k, z=j}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Wall_south.lua b/mods/castrum/buildings/Wall_south.lua deleted file mode 100644 index 5a8c2da..0000000 --- a/mods/castrum/buildings/Wall_south.lua +++ /dev/null @@ -1,395 +0,0 @@ -function Wall_south(v,player) - if v+0 == 1 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=9, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=9, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 2 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=10, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=10, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 3 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=11, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=11, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 4 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=12, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=12, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 5 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=13, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=13, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 6 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=14, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=14, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 7 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=15, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=15, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 8 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=16, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=16, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 9 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=17, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=17, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-36, y=17, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-44, y=17, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 10 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=18, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=18, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-36, y=18, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-44, y=18, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-37, y=18, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-43, y=18, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 11 then - for i=14,35 do - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:cobble"}) - end - for i=45,66 do - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:cobble"}) - end - for i=29,31 do - minetest.set_node({x=-35, y=19, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-45, y=19, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-36, y=19, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-44, y=19, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-37, y=19, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-43, y=19, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-38, y=19, z=i*(-1)}, {name="default:cobble"}) - minetest.set_node({x=-42, y=19, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 12 then - for i=14,66 do - for j=28,31 do - minetest.set_node({x=i*(-1), y=20, z=j*(-1)}, {name="default:cobble"}) - end - end - elseif v+0 == 13 then - for i=14,66 do - if i%2 == 0 then - minetest.set_node({x=i*(-1), y=21, z=-31}, {name="default:cobble"}) - end - end - elseif v+0 == 14 then - minetest.set_node({x=-36, y=9, z=-30}, {name="castrum:castrum_knight1"}) - minetest.set_node({x=-44, y=9, z=-30}, {name="castrum:castrum_knight1"}) - minetest.set_node({x=-64, y=21, z=-30}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-60, y=21, z=-30}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-56, y=21, z=-30}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-24, y=21, z=-30}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-20, y=21, z=-30}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-16, y=21, z=-30}, {name="castrum:castrum_knight2"}) - elseif v+0 == 15 then - for i=45,66 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:stone_block"}) - end - end - for i=14,35 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:stone_block"}) - - end - end - for i=45,66 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:stone_block"}) - end - end - for i=14,35 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:stone_block"}) - end - end - for i=45,66 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:stone_block"}) - end - end - for i=14,35 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:stone_block"}) - end - end - minetest.set_node({x=-42, y=20, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=-43, y=19, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=-44, y=18, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=-38, y=20, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=-37, y=19, z=-31}, {name="default:stone_block"}) - minetest.set_node({x=-36, y=18, z=-31}, {name="default:stone_block"}) - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-45, y=k, z=-29}, {name="default:stone_block"}) - minetest.set_node({x=-35, y=k, z=-29}, {name="default:stone_block"}) - end - end - minetest.set_node({x=-35, y=10, z=-30}, {name="default:stone_block"}) - minetest.set_node({x=-35, y=14, z=-30}, {name="default:stone_block"}) - minetest.set_node({x=-35, y=18, z=-30}, {name="default:stone_block"}) - minetest.set_node({x=-45, y=10, z=-30}, {name="default:stone_block"}) - minetest.set_node({x=-45, y=14, z=-30}, {name="default:stone_block"}) - minetest.set_node({x=-45, y=18, z=-30}, {name="default:stone_block"}) - minetest.set_node({x=-37, y=19, z=-29}, {name="default:stone_block"}) - minetest.set_node({x=-43, y=19, z=-29}, {name="default:stone_block"}) - elseif v+0 == 16 then - for i=14,66 do - for j=28,31 do - for k=9,21 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:cobble" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 17 then - for i=45,66 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:desert_cobble"}) - end - end - for i=14,35 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:desert_cobble"}) - - end - end - for i=45,66 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:desert_cobble"}) - end - end - for i=14,35 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:desert_cobble"}) - end - end - for i=45,66 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:desert_cobble"}) - end - end - for i=14,35 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:desert_cobble"}) - end - end - minetest.set_node({x=-42, y=20, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=-43, y=19, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=-44, y=18, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=-38, y=20, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=-37, y=19, z=-31}, {name="default:desert_cobble"}) - minetest.set_node({x=-36, y=18, z=-31}, {name="default:desert_cobble"}) - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-45, y=k, z=-29}, {name="default:desert_cobble"}) - minetest.set_node({x=-35, y=k, z=-29}, {name="default:desert_cobble"}) - end - end - minetest.set_node({x=-35, y=10, z=-30}, {name="default:desert_cobble"}) - minetest.set_node({x=-35, y=14, z=-30}, {name="default:desert_cobble"}) - minetest.set_node({x=-35, y=18, z=-30}, {name="default:desert_cobble"}) - minetest.set_node({x=-45, y=10, z=-30}, {name="default:desert_cobble"}) - minetest.set_node({x=-45, y=14, z=-30}, {name="default:desert_cobble"}) - minetest.set_node({x=-45, y=18, z=-30}, {name="default:desert_cobble"}) - minetest.set_node({x=-37, y=19, z=-29}, {name="default:desert_cobble"}) - minetest.set_node({x=-43, y=19, z=-29}, {name="default:desert_cobble"}) - elseif v+0 == 18 then - for i=14,66 do - for j=28,31 do - for k=9,21 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:stone_block" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 19 then - for i=45,66 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=14,35 do - if i%4 == 2 then - minetest.set_node({x=i*(-1), y=20, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=16, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=12, z=-31}, {name="default:desert_stone_block"}) - - end - end - for i=45,66 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=14,35 do - if i%2 == 1 then - minetest.set_node({x=i*(-1), y=19, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=17, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=15, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=13, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=11, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=9, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=45,66 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:desert_stone_block"}) - end - end - for i=14,35 do - if i%4 == 0 then - minetest.set_node({x=i*(-1), y=18, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=14, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=i*(-1), y=10, z=-31}, {name="default:desert_stone_block"}) - end - end - minetest.set_node({x=-42, y=20, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-43, y=19, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-44, y=18, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-38, y=20, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-37, y=19, z=-31}, {name="default:desert_stone_block"}) - minetest.set_node({x=-36, y=18, z=-31}, {name="default:desert_stone_block"}) - for k=9,20 do - if k%2 == 1 then - minetest.set_node({x=-45, y=k, z=-29}, {name="default:desert_stone_block"}) - minetest.set_node({x=-35, y=k, z=-29}, {name="default:desert_stone_block"}) - end - end - minetest.set_node({x=-35, y=10, z=-30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-35, y=14, z=-30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-35, y=18, z=-30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-45, y=10, z=-30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-45, y=14, z=-30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-45, y=18, z=-30}, {name="default:desert_stone_block"}) - minetest.set_node({x=-37, y=19, z=-29}, {name="default:desert_stone_block"}) - minetest.set_node({x=-43, y=19, z=-29}, {name="default:desert_stone_block"}) - elseif v+0 == 0 then - for i=14,66 do - for j=28,31 do - for k=9,21 do - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="air"}) - end - end - end - end -end \ No newline at end of file diff --git a/mods/castrum/buildings/Wall_west.lua b/mods/castrum/buildings/Wall_west.lua deleted file mode 100644 index 0fef053..0000000 --- a/mods/castrum/buildings/Wall_west.lua +++ /dev/null @@ -1,302 +0,0 @@ -function Wall_west(v,player) - if v+0 == 1 then - for i=0,29 do - minetest.set_node({x=-74, y=9, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=9, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 2 then - for i=0,29 do - minetest.set_node({x=-74, y=10, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=10, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 3 then - for i=0,29 do - minetest.set_node({x=-74, y=11, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=11, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 4 then - for i=0,29 do - minetest.set_node({x=-74, y=12, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=12, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 5 then - for i=0,29 do - minetest.set_node({x=-74, y=13, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=13, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 6 then - for i=0,29 do - minetest.set_node({x=-74, y=14, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=14, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 7 then - for i=0,29 do - minetest.set_node({x=-74, y=15, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=15, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 8 then - for i=0,29 do - minetest.set_node({x=-74, y=16, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=16, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 9 then - for i=0,29 do - minetest.set_node({x=-74, y=17, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=17, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 10 then - for i=0,29 do - minetest.set_node({x=-74, y=18, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=18, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 11 then - for i=0,29 do - minetest.set_node({x=-74, y=19, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=-74, y=19, z=i*(-1)}, {name="default:cobble"}) - end - elseif v+0 == 12 then - for j=71,74 do - for i=0,29 do - minetest.set_node({x=j*(-1), y=20, z=i}, {name="default:cobble"}) - end - for i=0,23 do - minetest.set_node({x=j*(-1), y=20, z=i*(-1)}, {name="default:cobble"}) - end - end - elseif v+0 == 13 then - for i=0,29 do - if i%2 == 1 then - minetest.set_node({x=-74, y=21, z=i}, {name="default:cobble"}) - end - end - for i=0,23 do - if i%2 == 1 then - minetest.set_node({x=-74, y=21, z=i*(-1)}, {name="default:cobble"}) - end - end - elseif v+0 == 14 then - minetest.set_node({x=-73, y=21, z=-21}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-73, y=21, z=-17}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-73, y=21, z=-13}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-73, y=21, z=19}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-73, y=21, z=23}, {name="castrum:castrum_knight2"}) - minetest.set_node({x=-73, y=21, z=27}, {name="castrum:castrum_knight2"}) - screwdriver_handler(player, {type="node", under={x=-73, y=21, z=-21}, above={x=-73, y=21, z=-21}}, 1) - screwdriver_handler(player, {type="node", under={x=-73, y=21, z=-17}, above={x=-73, y=21, z=-17}}, 1) - screwdriver_handler(player, {type="node", under={x=-73, y=21, z=-13}, above={x=-73, y=21, z=-13}}, 1) - screwdriver_handler(player, {type="node", under={x=-73, y=21, z=19}, above={x=-73, y=21, z=19}}, 1) - screwdriver_handler(player, {type="node", under={x=-73, y=21, z=23}, above={x=-73, y=21, z=23}}, 1) - screwdriver_handler(player, {type="node", under={x=-73, y=21, z=27}, above={x=-73, y=21, z=27}}, 1) - elseif v+0 == 15 then - for i=0,29 do - if i%4 == 1 then - minetest.set_node({x=-74, y=20, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=16, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=12, z=i}, {name="default:stone_block"}) - end - end - for i=0,23 do - if i%4 == 3 then - minetest.set_node({x=-74, y=20, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=16, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=12, z=i*(-1)}, {name="default:stone_block"}) - end - end - for i=0,29 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=17, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=15, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=13, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=11, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=9, z=i}, {name="default:stone_block"}) - end - end - for i=0,23 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=17, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=15, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=13, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=11, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=9, z=i*(-1)}, {name="default:stone_block"}) - end - end - for i=0,29 do - if i%4 == 3 then - minetest.set_node({x=-74, y=18, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=14, z=i}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=10, z=i}, {name="default:stone_block"}) - end - end - for i=0,23 do - if i%4 == 1 then - minetest.set_node({x=-74, y=18, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=14, z=i*(-1)}, {name="default:stone_block"}) - minetest.set_node({x=-74, y=10, z=i*(-1)}, {name="default:stone_block"}) - end - end - elseif v+0 == 16 then - for i=71,74 do - for k=9,21 do - for j=0,29 do - if minetest.get_node({x=i*(-1), y=k, z=j}).name == "default:cobble" then - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:stone_block"}) - end - end - for j=0,23 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:cobble" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:stone_block"}) - end - end - end - end - elseif v+0 == 17 then - for i=0,29 do - if i%4 == 1 then - minetest.set_node({x=-74, y=20, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=16, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=12, z=i}, {name="default:desert_cobble"}) - end - end - for i=0,23 do - if i%4 == 3 then - minetest.set_node({x=-74, y=20, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=16, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=12, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for i=0,29 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=17, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=15, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=13, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=11, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=9, z=i}, {name="default:desert_cobble"}) - end - end - for i=0,23 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=17, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=15, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=13, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=11, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=9, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - for i=0,29 do - if i%4 == 3 then - minetest.set_node({x=-74, y=18, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=14, z=i}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=10, z=i}, {name="default:desert_cobble"}) - end - end - for i=0,23 do - if i%4 == 1 then - minetest.set_node({x=-74, y=18, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=14, z=i*(-1)}, {name="default:desert_cobble"}) - minetest.set_node({x=-74, y=10, z=i*(-1)}, {name="default:desert_cobble"}) - end - end - elseif v+0 == 18 then - for i=71,74 do - for k=9,21 do - for j=0,29 do - if minetest.get_node({x=i*(-1), y=k, z=j}).name == "default:stone_block" then - minetest.set_node({x=i*(-1), y=k, z=j}, {name="default:desert_cobble"}) - end - end - for j=0,23 do - if minetest.get_node({x=i*(-1), y=k, z=j*(-1)}).name == "default:stone_block" then - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="default:desert_cobble"}) - end - end - end - end - elseif v+0 == 19 then - for i=0,29 do - if i%4 == 1 then - minetest.set_node({x=-74, y=20, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=16, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=12, z=i}, {name="default:desert_stone_block"}) - end - end - for i=0,23 do - if i%4 == 3 then - minetest.set_node({x=-74, y=20, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=16, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=12, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for i=0,29 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=17, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=15, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=13, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=11, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=9, z=i}, {name="default:desert_stone_block"}) - end - end - for i=0,23 do - if i%2 == 0 then - minetest.set_node({x=-74, y=19, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=17, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=15, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=13, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=11, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=9, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - for i=0,29 do - if i%4 == 3 then - minetest.set_node({x=-74, y=18, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=14, z=i}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=10, z=i}, {name="default:desert_stone_block"}) - end - end - for i=0,23 do - if i%4 == 1 then - minetest.set_node({x=-74, y=18, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=14, z=i*(-1)}, {name="default:desert_stone_block"}) - minetest.set_node({x=-74, y=10, z=i*(-1)}, {name="default:desert_stone_block"}) - end - end - elseif v+0 == 0 then - for i=71,74 do - for k=9,21 do - for j=0,29 do - minetest.set_node({x=i*(-1), y=k, z=j}, {name="air"}) - end - for j=0,23 do - minetest.set_node({x=i*(-1), y=k, z=j*(-1)}, {name="air"}) - end - end - end - - end -end \ No newline at end of file diff --git a/mods/castrum/config.txt b/mods/castrum/config.txt index 9274d64..8382ab9 100644 --- a/mods/castrum/config.txt +++ b/mods/castrum/config.txt @@ -1,4 +1,6 @@ -dig_code = true -place_code = true -fill_chest = true -del_button = false \ No newline at end of file +dig_code = true --true +place_code = true --true +fill_chest = true --true +del_button = false --false +fall_code = true --true +buildings_costs = true --true \ No newline at end of file diff --git a/mods/castrum/extra_items.lua b/mods/castrum/extra_items.lua index 3c09317..5c0ed4a 100644 --- a/mods/castrum/extra_items.lua +++ b/mods/castrum/extra_items.lua @@ -18,7 +18,7 @@ minetest.register_node("castrum:bridge_status",{ description = "Change Bridge Status", --groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, on_punch = function(pos, node, player, pointed_thing) - Bridge_Status(player) + Bridge_Status(player,true,false) end, }) minetest.register_craftitem("castrum:soul", { @@ -190,6 +190,343 @@ stairs.register_stair_and_slab( "Wooden Slab", default.node_sound_wood_defaults() ) + +local quarry_chest = {} +quarry_chest.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("quarry", 64) + local formspec = + "size[8,9]" .. + "list[current_player;quarry;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;quarry]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end +local mine_chest = {} +mine_chest.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("mine", 64) + local formspec = + "size[8,9]" .. + "list[current_player;mine;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;mine]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end +local tree_chest = {} +tree_chest.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("tree", 64) + local formspec = + "size[8,9]" .. + "list[current_player;tree;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;tree]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +local lake_chest = {} +lake_chest.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("lake", 64) + local formspec = + "size[8,9]" .. + "list[current_player;lake;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;lake]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +local lake2_chest = {} +lake2_chest.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("lake2", 64) + local formspec = + "size[8,9]" .. + "list[current_player;lake2;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;lake2]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +local sandmine = {} +sandmine.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("sandmine", 64) + local formspec = + "size[8,9]" .. + "list[current_player;sandmine;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;sandmine]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +local cactusfarm = {} +cactusfarm.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("cactusfarm", 64) + local formspec = + "size[8,9]" .. + "list[current_player;cactusfarm;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;cactusfarm]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +local farm = {} +farm.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("farm", 64) + local formspec = + "size[8,9]" .. + "list[current_player;farm;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;farm]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +local mountain_quarry = {} +mountain_quarry.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("mountain_quarry", 64) + local formspec = + "size[8,9]" .. + "list[current_player;mountain_quarry;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;mountain_quarry]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +local meadow = {} +meadow.get_formspec = function(player, pos) + if player == nil then + return + end + local player_inv = player:get_inventory() + player_inv:set_size("meadow", 64) + local formspec = + "size[8,9]" .. + "list[current_player;meadow;0,0.3;8,4;]" .. + "list[current_player;main;0,4.85;8,1;]" .. + "list[current_player;main;0,6.08;8,3;8]" .. + "listring[current_player;meadow]" .. + "listring[current_player;main]" .. + default.get_hotbar_bg(0,4.85) + return formspec +end + +minetest.register_node("castrum:quarry_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Quarry Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "quarry_chest" , quarry_chest.get_formspec(player)) + end, +}) +minetest.register_node("castrum:tree_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Tree Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "tree_chest" , tree_chest.get_formspec(player)) + end, +}) +minetest.register_node("castrum:mine_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Mine Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "mine_chest" , mine_chest.get_formspec(player)) + end, +}) + +minetest.register_node("castrum:lake_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Lake Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "lake_chest" , lake_chest.get_formspec(player)) + end, +}) + +minetest.register_node("castrum:lake2_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Lake2 Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "lake2_chest" , lake2_chest.get_formspec(player)) + end, +}) + +minetest.register_node("castrum:sandmine_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Sandmine Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "sandmine" , sandmine.get_formspec(player)) + end, +}) + +minetest.register_node("castrum:cactusfarm_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Cactusfarm Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "cactusfarm" , cactusfarm.get_formspec(player)) + end, +}) + +minetest.register_node("castrum:farm_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Farm Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "farm" , farm.get_formspec(player)) + end, +}) + +minetest.register_node("castrum:mountain_quarry_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Mountain Quarry Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "mountain_quarry" , mountain_quarry.get_formspec(player)) + end, +}) + +minetest.register_node("castrum:meadow_chest",{ + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_front.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_side.png" + }, + description = "Meadow Chest", + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_rightclick = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "meadow" , meadow.get_formspec(player)) + end, +}) + minetest.register_node("castrum:cobble",{ tiles = {"default_cobble.png"}, description = "Cobble", @@ -390,6 +727,16 @@ minetest.register_node("castrum:skeleton_lv1", { groups = {cracky=3, oddly_breakable_by_hand=2}, }) +minetest.register_node("castrum:skeleton_lv2", { + description = "character", + drawtype = "mesh", + mesh = "character.obj", + tiles = {"castrum_skeleton_lv2.png"}, + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=3, oddly_breakable_by_hand=2}, +}) + minetest.register_node("castrum:pirate_captain", { description = "character", drawtype = "mesh", diff --git a/mods/castrum/globalstep.lua b/mods/castrum/globalstep.lua index 8e9e7ef..a3b9d4a 100644 --- a/mods/castrum/globalstep.lua +++ b/mods/castrum/globalstep.lua @@ -39,420 +39,252 @@ minetest.register_globalstep(function(dtime) timer11 = timer11 + dtime; timer12 = timer12 + dtime; local players = minetest.get_connected_players() - for _,player in ipairs(players) do - local pos = player:getpos() - file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "r") - local ship1 = file:read("*l") - file:close() - if btimer == 0 then - if pos.x < -9.5 and pos.x > -15.5 and pos.z > -62.5 and pos.z < -54 and tonumber(ship1) > 1 then - last = pos - elseif pos.x < -10.5 and pos.x > -14.5 and pos.z > -63.5 and pos.z < -62.5 and tonumber(ship1) > 1 then - last = pos - elseif pos.x < -11.5 and pos.x > -13.5 and pos.z > -64.5 and pos.z < -63.5 and tonumber(ship1) > 1 then - last = pos - elseif pos.x < 132.5 and pos.x > 127.5 and pos.z > 39.5 and pos.z < 48.5 then - last = pos - elseif pos.x < 131.5 and pos.x > 128.5 and pos.z > 48.5 and pos.z < 49.5 then - last = pos - elseif pos.x < 130.5 and pos.x > 129.5 and pos.z > 49.5 and pos.z < 50.5 then - last = pos - elseif pos.x < 320.5 and pos.x > 315.5 and pos.z > 39.5 and pos.z < 48.5 then - last = pos - elseif pos.x < 319.5 and pos.x > 316.5 and pos.z > 48.5 and pos.z < 49.5 then - last = pos - elseif pos.x < 318.5 and pos.x > 317.5 and pos.z > 49.5 and pos.z < 50.5 then - last = pos - elseif pos.x < 168.5 and pos.x > 161.5 and pos.z > 40.5 and pos.z < 51.5 then - last = pos - elseif pos.x < 166.5 and pos.x > 163.5 and pos.z > 51.5 and pos.z < 53.5 then - last = pos - elseif pos.x < 165.5 and pos.x > 164.5 and pos.z > 53.5 and pos.z < 55.5 then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "default:wood" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "default:junglewood" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "default:pine_wood" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:sea_fight1" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:island_start_fight" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:turn_ship" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_ready" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_5" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_4" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_3" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_2" then - last = pos - elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_1" then - last = pos - elseif pos.y < 8 then - player:setpos(last) - elseif minetest.get_node({x=pos.x, y=(pos.y-0.5),z=pos.z}).name ~= "air" then - last = pos + for _,player in ipairs(players) do + local pos = player:getpos() + file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "r") + local ship1 = file:read("*l") + file:close() + if fall_code == true then + if btimer == 0 then + if pos.x < -9.5 and pos.x > -15.5 and pos.z > -62.5 and pos.z < -54 and tonumber(ship1) > 1 then + last = pos + elseif pos.x < -10.5 and pos.x > -14.5 and pos.z > -63.5 and pos.z < -62.5 and tonumber(ship1) > 1 then + last = pos + elseif pos.x < -11.5 and pos.x > -13.5 and pos.z > -64.5 and pos.z < -63.5 and tonumber(ship1) > 1 then + last = pos + elseif pos.x < 132.5 and pos.x > 127.5 and pos.z > 39.5 and pos.z < 48.5 then + last = pos + elseif pos.x < 131.5 and pos.x > 128.5 and pos.z > 48.5 and pos.z < 49.5 then + last = pos + elseif pos.x < 130.5 and pos.x > 129.5 and pos.z > 49.5 and pos.z < 50.5 then + last = pos + elseif pos.x < 320.5 and pos.x > 315.5 and pos.z > 39.5 and pos.z < 48.5 then + last = pos + elseif pos.x < 319.5 and pos.x > 316.5 and pos.z > 48.5 and pos.z < 49.5 then + last = pos + elseif pos.x < 318.5 and pos.x > 317.5 and pos.z > 49.5 and pos.z < 50.5 then + last = pos + elseif pos.x < 168.5 and pos.x > 161.5 and pos.z > 40.5 and pos.z < 51.5 then + last = pos + elseif pos.x < 166.5 and pos.x > 163.5 and pos.z > 51.5 and pos.z < 53.5 then + last = pos + elseif pos.x < 165.5 and pos.x > 164.5 and pos.z > 53.5 and pos.z < 55.5 then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "default:wood" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "default:junglewood" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "default:pine_wood" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:sea_fight1" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:island_start_fight" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:turn_ship" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_ready" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_5" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_4" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_3" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_2" then + last = pos + elseif minetest.get_node({x=pos.x,y=pos.y-1, z = pos.z}).name == "castrum:fire_cannon_1" then + last = pos + elseif pos.y < 8 then + player:setpos(last) + elseif minetest.get_node({x=pos.x, y=(pos.y-0.5),z=pos.z}).name ~= "air" then + last = pos + end + end + if btimer > 5 then + btimer = 0 end - end - if btimer > 5 then - btimer = 0 end file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "r") - local level = file:read("*l") + local ship1 = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Quarry.txt", "r") + local quarry = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Tree.txt", "r") + local tree = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Mine.txt", "r") + local mine = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Lake.txt", "r") + local lake = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Sandmine.txt", "r") + local sandmine = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Lake2.txt", "r") + local lake2 = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Cactusfarm.txt", "r") + local cactusfarm = file:read("*l") file:close() - if timer12 > 1 then - timer12 = 0 - for j=10,16 do - for i=53,65 do - for k=7,15 do - if tonumber(level) < 6 then - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:junglewood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:pine_wood"then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:wood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_junglewood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_pine_wood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:fence_wood"}) - end - elseif tonumber(level) == 6 then - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:wood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:pine_wood"then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:junglewood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_wood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_pine_wood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:fence_junglewood"}) - end - elseif tonumber(level) == 7 then - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:wood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:junglewood"then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:pine_wood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_wood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_junglewood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:fence_pine_wood"}) - end - end - end - end - end - for j=127,133 do - for i=39,51 do - for k=7,15 do - if tonumber(level) < 6 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" or minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:wood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_junglewood" or minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_wood"}) - end - elseif tonumber(level) == 6 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:wood" or minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_wood" or minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_junglewood"}) - end - elseif tonumber(level) == 7 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:wood" or minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:pine_wood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_wood" or minetest.get_node({x=j, y=k, z=i}).name == "default:fence_junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_pine_wood"}) - end - end - end - end - end - for j=315,321 do - for i=39,51 do - for k=7,15 do - if tonumber(level) < 6 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_junglewood"}) - end - elseif tonumber(level) == 6 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_junglewood"}) - end - elseif tonumber(level) == 7 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:pine_wood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_pine_wood"}) - end - end - end - end - end - file = io.open(minetest.get_worldpath().."/SAVE/Pier.txt", "r") - local level = file:read("*l") - file:close() - for j=4,8 do - for i=52,65 do - for k=6,8 do - if tonumber(level) < 6 then - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:junglewood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:pine_wood"then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:wood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_junglewood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_pine_wood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:fence_wood"}) - end - elseif tonumber(level) == 6 then - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:wood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:pine_wood"then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:junglewood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_wood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_pine_wood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:fence_junglewood"}) - end - elseif tonumber(level) == 7 then - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:wood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:junglewood"then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:pine_wood"}) - end - if minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_wood" or minetest.get_node({x=j*(-1), y=k, z=i*(-1)}).name == "default:fence_junglewood" then - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="default:fence_pine_wood"}) - end - end - end - end - end - for j=121,125 do - for i=38,51 do - for k=6,8 do - if tonumber(level) < 6 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" or minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:wood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_junglewood" or minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_wood"}) - end - elseif tonumber(level) == 6 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:wood" or minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_wood" or minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_junglewood"}) - end - elseif tonumber(level) == 7 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:wood" or minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:pine_wood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_wood" or minetest.get_node({x=j, y=k, z=i}).name == "default:fence_junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_pine_wood"}) - end - end - end - end - end - for j=309,313 do - for i=38,51 do - for k=6,8 do - if tonumber(level) < 6 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_junglewood"}) - end - elseif tonumber(level) == 6 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:junglewood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_pine_wood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_junglewood"}) - end - elseif tonumber(level) == 7 then - if minetest.get_node({x=j, y=k, z=i}).name == "default:junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:pine_wood"}) - end - if minetest.get_node({x=j, y=k, z=i}).name == "default:fence_junglewood" then - minetest.set_node({x=j, y=k, z=i}, {name="default:fence_pine_wood"}) - end - end - end - end - end - end - file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "r") - local ship1 = file:read("*l") - file:close() - file = io.open(minetest.get_worldpath().."/SAVE/Quarry.txt", "r") - local quarry = file:read("*l") - file:close() - file = io.open(minetest.get_worldpath().."/SAVE/Tree.txt", "r") - local tree = file:read("*l") - file:close() - file = io.open(minetest.get_worldpath().."/SAVE/Mine.txt", "r") - local mine = file:read("*l") - file:close() - file = io.open(minetest.get_worldpath().."/SAVE/Lake.txt", "r") - local lake = file:read("*l") - file:close() - file = io.open(minetest.get_worldpath().."/SAVE/Sandmine.txt", "r") - local sandmine = file:read("*l") - file:close() - file = io.open(minetest.get_worldpath().."/SAVE/Lake2.txt", "r") - local lake2 = file:read("*l") - file:close() - file = io.open(minetest.get_worldpath().."/SAVE/Cactusfarm.txt", "r") - local cactusfarm = file:read("*l") - file:close() file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Quarry.txt", "r") - local mountain_quarry = file:read("*l") - file:close() + local mountain_quarry = file:read("*l") + file:close() file = io.open(minetest.get_worldpath().."/SAVE/Farm.txt", "r") - local farm = file:read("*l") - file:close() + local farm = file:read("*l") + file:close() file = io.open(minetest.get_worldpath().."/SAVE/Meadow.txt", "r") - local meadow = file:read("*l") - file:close() - local quarrytime = 0 - local quarrynum = 1 - if tonumber(quarry) == 0 then - quarrytime = 5 - quarrynum = 1 - elseif tonumber(quarry) == 1 then - quarrytime = 3.5 - quarrynum = 1 - elseif tonumber(quarry) == 2 then - quarrytime = 2.5 - quarrynum = 2 + local meadow = file:read("*l") + file:close() + local quarrytime = 0 + local quarrynum = 1 + if tonumber(quarry) == 0 then + quarrytime = 5 + quarrynum = 1 + elseif tonumber(quarry) == 1 then + quarrytime = 3.5 + quarrynum = 1 + elseif tonumber(quarry) == 2 then + quarrytime = 2.5 + quarrynum = 2 elseif tonumber(quarry) == 3 then - quarrytime = 2 - quarrynum = 2 + quarrytime = 2 + quarrynum = 2 elseif tonumber(quarry) == 4 then quarrytime = 1.8 - quarrynum = 3 + quarrynum = 3 elseif tonumber(quarry) == 5 then quarrytime = 1.6 - quarrynum = 3 + quarrynum = 3 elseif tonumber(quarry) == 6 then quarrytime = 1.5 - quarrynum = 3 - end - local treetime = 0 - local treenum = 1 - if tonumber(tree) == 1 then - treetime = 8 - treenum = 1 - elseif tonumber(tree) == 2 then - treetime = 6 - treenum = 1 - elseif tonumber(tree) == 3 then - treetime = 4.5 - treenum = 2 + quarrynum = 3 + end + local treetime = 0 + local treenum = 1 + if tonumber(tree) == 1 then + treetime = 8 + treenum = 1 + elseif tonumber(tree) == 2 then + treetime = 6 + treenum = 1 + elseif tonumber(tree) == 3 then + treetime = 4.5 + treenum = 2 elseif tonumber(tree) == 4 then - treetime = 3.5 - treenum = 2 + treetime = 3.5 + treenum = 2 elseif tonumber(tree) == 5 then - treetime = 3 - treenum = 3 + treetime = 3 + treenum = 3 elseif tonumber(tree) == 6 then - treetime = 2.7 - treenum = 3 + treetime = 2.7 + treenum = 3 elseif tonumber(tree) == 7 then - treetime = 2.4 - treenum = 4 - end - local minetime = 0 - local minenum = 1 - if tonumber(mine) == 1 then - minetime = 15 - minenum = 1 - elseif tonumber(mine) == 2 then - minetime = 11.5 - minenum = 1 - elseif tonumber(mine) == 3 then - minetime = 9 - minenum = 2 + treetime = 2.4 + treenum = 4 + end + local minetime = 0 + local minenum = 1 + if tonumber(mine) == 1 then + minetime = 15 + minenum = 1 + elseif tonumber(mine) == 2 then + minetime = 11.5 + minenum = 1 + elseif tonumber(mine) == 3 then + minetime = 9 + minenum = 2 elseif tonumber(mine) == 4 then - minetime = 7 - minenum = 2 + minetime = 7 + minenum = 2 elseif tonumber(mine) == 5 then - minetime = 5.5 - minenum = 3 + minetime = 5.5 + minenum = 3 elseif tonumber(mine) == 6 then - minetime = 4.5 - minenum = 3 - end - local laketime = 0 - if tonumber(lake) == 1 then - laketime = 12 - elseif tonumber(lake) == 2 then - laketime = 9 - elseif tonumber(lake) == 3 then - laketime = 6.5 + minetime = 4.5 + minenum = 3 + end + local laketime = 0 + if tonumber(lake) == 1 then + laketime = 12 + elseif tonumber(lake) == 2 then + laketime = 9 + elseif tonumber(lake) == 3 then + laketime = 6.5 elseif tonumber(lake) == 4 then - laketime = 5 - end - local sandminetime = 0 - local sandminenum = 1 - if tonumber(sandmine) == 0 then - sandminetime = 5 - sandminenum = 1 - elseif tonumber(sandmine) == 1 then - sandminetime = 3.5 - sandminenum = 1 - elseif tonumber(sandmine) == 2 then - sandminetime = 2.5 - sandminenum = 2 + laketime = 5 + end + local sandminetime = 0 + local sandminenum = 1 + if tonumber(sandmine) == 0 then + sandminetime = 5 + sandminenum = 1 + elseif tonumber(sandmine) == 1 then + sandminetime = 3.5 + sandminenum = 1 + elseif tonumber(sandmine) == 2 then + sandminetime = 2.5 + sandminenum = 2 elseif tonumber(sandmine) == 3 then - sandminetime = 2 - sandminenum = 2 + sandminetime = 2 + sandminenum = 2 elseif tonumber(sandmine) == 4 then - sandminetime = 1.8 - sandminenum = 3 - end - local lake2time = 0 - if tonumber(lake2) == 1 then - lake2time = 18 - elseif tonumber(lake2) == 2 then - lake2time = 13.5 + sandminetime = 1.8 + sandminenum = 3 + end + local lake2time = 0 + if tonumber(lake2) == 1 then + lake2time = 18 + elseif tonumber(lake2) == 2 then + lake2time = 13.5 elseif tonumber(lake2) == 3 then - lake2time = 10 + lake2time = 10 elseif tonumber(lake2) == 4 then - lake2time = 7.5 - end - local cactusfarmtime = 0 - if tonumber(cactusfarm) == 1 then - cactusfarmtime = 15 - elseif tonumber(cactusfarm) == 2 then - cactusfarmtime = 11.5 + lake2time = 7.5 + end + local cactusfarmtime = 0 + if tonumber(cactusfarm) == 1 then + cactusfarmtime = 15 + elseif tonumber(cactusfarm) == 2 then + cactusfarmtime = 11.5 elseif tonumber(cactusfarm) == 3 then - cactusfarmtime = 9 + cactusfarmtime = 9 elseif tonumber(cactusfarm) == 4 then - cactusfarmtime = 7 + cactusfarmtime = 7 elseif tonumber(cactusfarm) == 5 then - cactusfarmtime = 5.5 - end + cactusfarmtime = 5.5 + end local mountain_quarrytime = 0 - if tonumber(mountain_quarry) == 0 then - mountain_quarrytime = 8 + if tonumber(mountain_quarry) == 0 then + mountain_quarrytime = 8 elseif tonumber(mountain_quarry) == 1 then - mountain_quarrytime = 6 + mountain_quarrytime = 6 elseif tonumber(mountain_quarry) == 2 then - mountain_quarrytime = 4.5 - end + mountain_quarrytime = 4.5 + end local farmtime = 0 - if tonumber(farm) == 1 then - farmtime = 10 + if tonumber(farm) == 1 then + farmtime = 10 elseif tonumber(farm) == 2 then - farmtime = 8 - end + farmtime = 8 + elseif tonumber(farm) == 3 then + farmtime = 6.5 + end local meadowtime = 0 - if tonumber(meadow) == 9 then - meadowtime = 20 - end + local meadownum = 1 + if tonumber(meadow) == 9 then + meadowtime = 20 + meadownum = 1 + elseif tonumber(meadow) == 10 then + meadowtime = 16 + meadownum = 2 + end if fill_chest == true then if timer >= quarrytime then if tonumber(quarry) > -1 then - local inv = minetest.get_inventory({type="node", pos={x=-20, y=9, z=-2}}) + local inv = player:get_inventory() if inv then quarry2 = quarry2+1 quarry3 = quarry3+1 @@ -462,12 +294,13 @@ minetest.register_globalstep(function(dtime) if quarry3 == 3 then quarry3 = 0 end - inv:add_item("main", "default:cobble ") + inv:set_size("quarry", 64) + inv:add_item("quarry", "default:cobble ") if quarrynum > 1 and quarry2 == 1 then - inv:add_item("main", "default:desert_cobble") + inv:add_item("quarry", "default:desert_cobble") end if quarrynum > 2 and quarry3 == 1 then - inv:add_item("main", "default:obsidian") + inv:add_item("quarry", "default:obsidian") end end end @@ -475,7 +308,7 @@ minetest.register_globalstep(function(dtime) end if timer2 >= treetime then if tonumber(tree) > 0 then - local inv = minetest.get_inventory({type="node", pos={x=-20, y=9, z=11}}) + local inv = player:get_inventory() if inv then tree2 = tree2+1 tree3 = tree3+1 @@ -489,15 +322,16 @@ minetest.register_globalstep(function(dtime) if tree4 == 4 then tree4 = 0 end - inv:add_item("main", "default:wood") + inv:set_size("tree", 64) + inv:add_item("tree", "default:wood") if treenum > 1 and tree2 == 1 then - inv:add_item("main", "default:junglewood") + inv:add_item("tree", "default:junglewood") end if treenum > 2 and tree3 == 1 then - inv:add_item("main", "default:pine_wood") + inv:add_item("tree", "default:pine_wood") end if treenum > 3 and tree4 == 1 then - inv:add_item("main", "default:acacia_wood") + inv:add_item("tree", "default:acacia_wood") end end end @@ -505,7 +339,7 @@ minetest.register_globalstep(function(dtime) end if timer4 >= minetime then if tonumber(mine) > 0 then - local inv = minetest.get_inventory({type="node", pos={x=-20, y=9, z=-15}}) + local inv = player:get_inventory() if inv then mine2 = mine2+1 mine3 = mine3+1 @@ -515,13 +349,14 @@ minetest.register_globalstep(function(dtime) if mine3 == 3 then mine3 = 0 end - inv:add_item("main", "default:coal_lump") + inv:set_size("mine", 64) + inv:add_item("mine", "default:coal_lump") if minenum > 1 and mine2 == 1 then - inv:add_item("main", "default:iron_lump") + inv:add_item("mine", "default:iron_lump") end if minenum > 2 and mine3 == 1 then - inv:add_item("main", "default:tin_lump") - inv:add_item("main", "default:copper_lump") + inv:add_item("mine", "default:tin_lump") + inv:add_item("mine", "default:copper_lump") end end end @@ -529,16 +364,17 @@ minetest.register_globalstep(function(dtime) end if timer5 >= laketime then if tonumber(lake) > 0 then - local inv = minetest.get_inventory({type="node", pos={x=-34, y=9, z=-58}}) + local inv = player:get_inventory() if inv then - inv:add_item("main", "castrum:bucket_water") + inv:set_size("lake", 64) + inv:add_item("lake", "castrum:bucket_water") end end timer5 = 0 end if timer6 >= sandminetime then if tonumber(sandmine) > -1 and tonumber(ship1) > 4 then - local inv = minetest.get_inventory({type="node", pos={x=132, y=9, z=15}}) + local inv = player:get_inventory() if inv then sandmine2 = sandmine2+1 sandmine3 = sandmine3+1 @@ -548,12 +384,13 @@ minetest.register_globalstep(function(dtime) if sandmine3 == 3 then sandmine3 = 0 end - inv:add_item("main", "default:sand") + inv:set_size("sandmine", 64) + inv:add_item("sandmine", "default:sand") if sandminenum > 1 and sandmine2 == 1 then - inv:add_item("main", "default:desert_sand") + inv:add_item("sandmine", "default:desert_sand") end if sandminenum > 1 and sandmine3 == 1 then - inv:add_item("main", "default:silver_sand") + inv:add_item("sandmine", "default:silver_sand") end end end @@ -561,46 +398,54 @@ minetest.register_globalstep(function(dtime) end if timer7 >= lake2time then if tonumber(lake2) > 0 then - local inv = minetest.get_inventory({type="node", pos={x=-34, y=9, z=-67}}) + local inv = player:get_inventory() if inv then - inv:add_item("main", "castrum:bucket_river_water") + inv:set_size("lake2", 64) + inv:add_item("lake2", "castrum:bucket_river_water") end end timer7 = 0 end if timer8 >= cactusfarmtime then if tonumber(cactusfarm) > 0 and tonumber(ship1) > 4 then - local inv = minetest.get_inventory({type="node", pos={x=132, y=9, z=1}}) + local inv = player:get_inventory() if inv then - inv:add_item("main", "default:cactus") + inv:set_size("cactusfarm", 64) + inv:add_item("cactusfarm", "default:cactus") end end timer8 = 0 end if timer9 >= mountain_quarrytime then if tonumber(mountain_quarry) > -1 and tonumber(ship1) > 5 then - local inv = minetest.get_inventory({type="node", pos={x=345, y=40, z=-16}}) + local inv = player:get_inventory() if inv then - inv:add_item("main", "default:mossycobble") + inv:set_size("mountain_quarry", 64) + inv:add_item("mountain_quarry", "default:mossycobble") end end timer9 = 0 end if timer10 >= farmtime then - if tonumber(farm) > -1 and tonumber(ship1) > 5 then - local inv = minetest.get_inventory({type="node", pos={x=345, y=40, z=-2}}) + if tonumber(farm) > 0 and tonumber(ship1) > 5 then + local inv = player:get_inventory() if inv then - inv:add_item("main", "farming:cotton") + inv:set_size("farm", 64) + inv:add_item("farm", "farming:cotton") end end timer10 = 0 end if timer11 >= meadowtime then - if tonumber(meadow) > -1 and tonumber(ship1) > 5 then - local inv = minetest.get_inventory({type="node", pos={x=327, y=40, z=8}}) + if tonumber(meadow) > 8 and tonumber(ship1) > 5 then + local inv = player:get_inventory() if inv then - inv:add_item("main", "flowers:rose") - inv:add_item("main", "flowers:dandelion_white") + inv:set_size("meadow", 64) + inv:add_item("meadow", "flowers:rose") + inv:add_item("meadow", "flowers:dandelion_white") + if meadownum > 1 then + inv:add_item("meadow", "flowers:dandelion_yellow") + end end end timer11 = 0 diff --git a/mods/castrum/init.lua b/mods/castrum/init.lua index 299bf71..15562e1 100644 --- a/mods/castrum/init.lua +++ b/mods/castrum/init.lua @@ -6,7 +6,7 @@ minetest.register_on_joinplayer(function(player) offset = {x=0, y=10}, alignment = {x=1, y=0}, number = 0xFFFFFF , - text = "For Minetest : 5.0.x", + text = "For Minetest : 5.1.x", }) player:hud_add({ hud_elem_type = "text", @@ -14,75 +14,10 @@ minetest.register_on_joinplayer(function(player) offset = {x=0, y=30}, alignment = {x=1, y=0}, number = 0xFFFFFF , - text = "Game Version : 1.10.0", - }) - player:hud_add({ - hud_elem_type = "text", - position = {x=0, y=0.85}, - offset = {x=0, y=50}, - alignment = {x=1, y=0}, - number = 0xFFFFFF , - text = "Map Version : 13", + text = "Game Version : 1.11.0", }) end) - -dofile(minetest.get_modpath("castrum").."/buildings/Barracks.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Battleground.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Bridge.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Bridge2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Cactusfarm.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Camp1.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Camp2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Camp3.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Cannon1.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Cannon2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Cannon3.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Farm.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Fountain.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Home1.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Home2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Home3.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Barracks.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Battleground.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Fountain.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Home1.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Home2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Pier.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Pier2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Smithy.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Walle.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Walln.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Walls.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Island_Wallw.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Lake.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Lake2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Meadow.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Mine.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Moat_east.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Moat_north.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Moat_south.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Moat_west.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Mountain_Fountain.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Mountain_Quarry.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Mountain_Smithy.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Pier.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Quarry.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Sail1.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Sail2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Sandmine.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Ship1.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Ship2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Smithy.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Stable.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Tower1.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Tower2.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Tower3.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Tower4.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Tree.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Wall_east.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Wall_north.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Wall_south.lua") -dofile(minetest.get_modpath("castrum").."/buildings/Wall_west.lua") +dofile(minetest.get_modpath("castrum").."/nodes/Market.lua") dofile(minetest.get_modpath("castrum").."/nodes/Barracks.lua") dofile(minetest.get_modpath("castrum").."/nodes/Battleground.lua") dofile(minetest.get_modpath("castrum").."/nodes/Bridge.lua") @@ -98,6 +33,7 @@ dofile(minetest.get_modpath("castrum").."/nodes/Fountain.lua") dofile(minetest.get_modpath("castrum").."/nodes/Home1.lua") dofile(minetest.get_modpath("castrum").."/nodes/Home2.lua") dofile(minetest.get_modpath("castrum").."/nodes/Home3.lua") +dofile(minetest.get_modpath("castrum").."/nodes/Home4.lua") dofile(minetest.get_modpath("castrum").."/nodes/Island_Barracks.lua") dofile(minetest.get_modpath("castrum").."/nodes/Island_Battleground.lua") dofile(minetest.get_modpath("castrum").."/nodes/Island_Fountain.lua") @@ -159,6 +95,7 @@ dofile(minetest.get_modpath("castrum").."/knight.lua") dofile(minetest.get_modpath("castrum").."/horse.lua") dofile(minetest.get_modpath("castrum").."/pirate.lua") dofile(minetest.get_modpath("castrum").."/extra_items.lua") +dofile(minetest.get_modpath("castrum").."/pier_ship.lua") function file_check(file_name) local file_found=io.open(file_name, "r") diff --git a/mods/castrum/island_fight.lua b/mods/castrum/island_fight.lua index 55ac8c0..495df4d 100644 --- a/mods/castrum/island_fight.lua +++ b/mods/castrum/island_fight.lua @@ -47,6 +47,7 @@ local levels = { -- l,c1,c2,c3,c4,c5,c6,c7,c8,c9,p1,p2,p3,p4,p5,p6,p7,p8,p9,s1,s2,hp {1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1,10}, {2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2,10}, + {3, 2, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 2, 0, 0, 0, 0, 0, 0, 3, 3,10}, } function set_sea_fight(level,player) file = io.open(minetest.get_worldpath().."/SAVE/Pirate_1.txt", "r") @@ -129,7 +130,7 @@ function EnemyStep(player) local stepdone = 0 if player:get_attribute("sea_fight_pos2") == "1" then if tonumber(player:get_attribute("sea_fight_c1")) > 0 then - if player:get_attribute("sea_fight_step_2c1") == "0" and player:get_attribute("sea_fight_p1") == "1" and player:get_attribute("sea_fight_c1") == "1"then + if player:get_attribute("sea_fight_step_2c1") == "0" and player:get_attribute("sea_fight_p1") == "1" and player:get_attribute("sea_fight_c1") == "1" then stepdone = 1 if math.random(100) < 31 then player:set_attribute("sea_fight_p_hp", ""..tonumber(player:get_attribute("sea_fight_p_hp")-2)) @@ -138,7 +139,7 @@ function EnemyStep(player) minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") end player:set_attribute("sea_fight_step_2c1", "5") - elseif player:get_attribute("sea_fight_step_2c1") == "0" and player:get_attribute("sea_fight_p1") == "1" and player:get_attribute("sea_fight_c1") == "2"then + elseif player:get_attribute("sea_fight_step_2c1") == "0" and player:get_attribute("sea_fight_p1") == "1" and player:get_attribute("sea_fight_c1") == "2" then stepdone = 1 if math.random(100) < 31 then player:set_attribute("sea_fight_p_hp", ""..tonumber(player:get_attribute("sea_fight_p_hp")-3)) @@ -147,6 +148,24 @@ function EnemyStep(player) minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") end player:set_attribute("sea_fight_step_2c1", "5") + elseif player:get_attribute("sea_fight_step_2c1") == "0" and player:get_attribute("sea_fight_p1") == "2" and player:get_attribute("sea_fight_c1") == "1" then + stepdone = 1 + if math.random(100) < 46 then + player:set_attribute("sea_fight_p_hp", ""..tonumber(player:get_attribute("sea_fight_p_hp")-2)) + minetest.chat_send_player(player:get_player_name(), "Hit! The enemy has done 2Hp damage. You have "..player:get_attribute("sea_fight_p_hp").." hp left.") + else + minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") + end + player:set_attribute("sea_fight_step_2c1", "5") + elseif player:get_attribute("sea_fight_step_2c1") == "0" and player:get_attribute("sea_fight_p1") == "2" and player:get_attribute("sea_fight_c1") == "2" then + stepdone = 1 + if math.random(100) < 46 then + player:set_attribute("sea_fight_p_hp", ""..tonumber(player:get_attribute("sea_fight_p_hp")-3)) + minetest.chat_send_player(player:get_player_name(), "Hit! The enemy has done 3Hp damage. You have "..player:get_attribute("sea_fight_p_hp").." hp left.") + else + minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") + end + player:set_attribute("sea_fight_step_2c1", "5") else if tonumber(player:get_attribute("sea_fight_step_2c1")) > 0 then player:set_attribute("sea_fight_step_2c1", ""..tonumber(player:get_attribute("sea_fight_step_2c1"))-1) @@ -176,6 +195,24 @@ function EnemyStep(player) minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") end player:set_attribute("sea_fight_step_2c2", "5") + elseif player:get_attribute("sea_fight_step_2c2") == "0" and player:get_attribute("sea_fight_p2") == "2" and player:get_attribute("sea_fight_c2") == "1" then + stepdone = 1 + if math.random(100) < 46 then + player:set_attribute("sea_fight_p_hp", ""..tonumber(player:get_attribute("sea_fight_p_hp")-2)) + minetest.chat_send_player(player:get_player_name(), "Hit! The enemy has done 2Hp damage. You have "..player:get_attribute("sea_fight_p_hp").." hp left.") + else + minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") + end + player:set_attribute("sea_fight_step_2c2", "5") + elseif player:get_attribute("sea_fight_step_2c2") == "0" and player:get_attribute("sea_fight_p2") == "2" and player:get_attribute("sea_fight_c2") == "2" then + stepdone = 1 + if math.random(100) < 46 then + player:set_attribute("sea_fight_p_hp", ""..tonumber(player:get_attribute("sea_fight_p_hp")-3)) + minetest.chat_send_player(player:get_player_name(), "Hit! The enemy has done 3Hp damage. You have "..player:get_attribute("sea_fight_p_hp").." hp left.") + else + minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") + end + player:set_attribute("sea_fight_step_2c2", "5") else if tonumber(player:get_attribute("sea_fight_step_2c2")) > 0 then player:set_attribute("sea_fight_step_2c2", ""..tonumber(player:get_attribute("sea_fight_step_2c2"))-1) @@ -190,6 +227,33 @@ function EnemyStep(player) minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") end player:set_attribute("sea_fight_step_2c3", "5") + elseif stepdone == 0 and player:get_attribute("sea_fight_step_2c3") == "0" and player:get_attribute("sea_fight_p3") == "1" and player:get_attribute("sea_fight_c3") == "2" then + stepdone = 1 + if math.random(100) < 31 then + player:set_attribute("sea_fight_p_hp", ""..tonumber(player:get_attribute("sea_fight_p_hp")-3)) + minetest.chat_send_player(player:get_player_name(), "Hit! The enemy has done 3Hp damage. You have "..player:get_attribute("sea_fight_p_hp").." hp left.") + else + minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") + end + player:set_attribute("sea_fight_step_2c3", "5") + elseif stepdone == 0 and player:get_attribute("sea_fight_step_2c3") == "0" and player:get_attribute("sea_fight_p3") == "2" and player:get_attribute("sea_fight_c3") == "1" then + stepdone = 1 + if math.random(100) < 46 then + player:set_attribute("sea_fight_p_hp", ""..tonumber(player:get_attribute("sea_fight_p_hp")-2)) + minetest.chat_send_player(player:get_player_name(), "Hit! The enemy has done 2Hp damage. You have "..player:get_attribute("sea_fight_p_hp").." hp left.") + else + minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") + end + player:set_attribute("sea_fight_step_2c3", "5") + elseif stepdone == 0 and player:get_attribute("sea_fight_step_2c3") == "0" and player:get_attribute("sea_fight_p3") == "2" and player:get_attribute("sea_fight_c3") == "2" then + stepdone = 1 + if math.random(100) < 46 then + player:set_attribute("sea_fight_p_hp", ""..tonumber(player:get_attribute("sea_fight_p_hp")-3)) + minetest.chat_send_player(player:get_player_name(), "Hit! The enemy has done 3Hp damage. You have "..player:get_attribute("sea_fight_p_hp").." hp left.") + else + minetest.chat_send_player(player:get_player_name(), "The enemy did not hit you!") + end + player:set_attribute("sea_fight_step_2c3", "5") else if tonumber(player:get_attribute("sea_fight_step_2c3")) > 0 then player:set_attribute("sea_fight_step_2c3", ""..tonumber(player:get_attribute("sea_fight_step_2c3"))-1) @@ -494,6 +558,14 @@ function Chapter_Ship1_1(player) minetest.set_node({x=-155, y=13, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-154, y=12, z=i*(-1)}, {name="wool:pink"}) end + elseif tonumber(sail1) == 3 then + for i=23,31 do + minetest.set_node({x=-154, y=16, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-155, y=15, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-155, y=14, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-155, y=13, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-154, y=12, z=i*(-1)}, {name="wool:yellow"}) + end end if tonumber(sail2) == 1 then for i=25,29 do @@ -509,6 +581,13 @@ function Chapter_Ship1_1(player) minetest.set_node({x=-161, y=12, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-160, y=11, z=i*(-1)}, {name="wool:pink"}) end + elseif tonumber(sail2) == 3 then + for i=25,29 do + minetest.set_node({x=-160, y=14, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-161, y=13, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-161, y=12, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-160, y=11, z=i*(-1)}, {name="wool:yellow"}) + end end local started = player:get_attribute("sea_started") minetest.set_node({x=-156, y=7, z=-27}, {name="castrum:island_start_fight"}) @@ -554,6 +633,13 @@ function Chapter_Ship1_1(player) minetest.set_node({x=-154, y=9, z=-31}, {name="castrum:cannon_1_1"}) screwdriver_handler(player, {type="node", under={x=-154, y=9, z=-31}, above={x=-154, y=9, z=-31}}, 1) screwdriver_handler(player, {type="node", under={x=-154, y=9, z=-31}, above={x=-154, y=9, z=-31}}, 1) + elseif tonumber(cannon3) == 2 then + if started == "false" then + minetest.set_node({x=-154, y=7, z=-30}, {name="castrum:sea_fight1"}) + end + minetest.set_node({x=-154, y=9, z=-31}, {name="castrum:cannon_1_2"}) + screwdriver_handler(player, {type="node", under={x=-154, y=9, z=-31}, above={x=-154, y=9, z=-31}}, 1) + screwdriver_handler(player, {type="node", under={x=-154, y=9, z=-31}, above={x=-154, y=9, z=-31}}, 1) end if pirate1 == 1 and started == "true" then minetest.set_node({x=-152, y=8, z=-24}, {name="castrum:pirate_lv1"}) @@ -812,6 +898,14 @@ function Chapter_Ship1_2(player) minetest.set_node({x=-163, y=13, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-164, y=12, z=i*(-1)}, {name="wool:pink"}) end + elseif tonumber(sail1) == 3 then + for i=23,31 do + minetest.set_node({x=-164, y=16, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-163, y=15, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-163, y=14, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-163, y=13, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-164, y=12, z=i*(-1)}, {name="wool:yellow"}) + end end if tonumber(sail2) == 1 then for i=25,29 do @@ -827,6 +921,13 @@ function Chapter_Ship1_2(player) minetest.set_node({x=-157, y=12, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-158, y=11, z=i*(-1)}, {name="wool:pink"}) end + elseif tonumber(sail2) == 3 then + for i=25,29 do + minetest.set_node({x=-158, y=14, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-157, y=13, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-157, y=12, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-158, y=11, z=i*(-1)}, {name="wool:yellow"}) + end end minetest.set_node({x=-156, y=7, z=-27}, {name="castrum:turn_ship"}) minetest.set_node({x=-162, y=7, z=-27}, {name="castrum:island_start_fight"}) @@ -855,6 +956,8 @@ function Chapter_Ship1_2(player) file:close() if tonumber(cannon3) == 1 then minetest.set_node({x=-164, y=9, z=-23}, {name="castrum:cannon_1_1"}) + elseif tonumber(cannon3) == 2 then + minetest.set_node({x=-164, y=9, z=-23}, {name="castrum:cannon_1_2"}) end if pirate1 == 1 then minetest.set_node({x=-166, y=8, z=-30}, {name="castrum:pirate_lv1"}) @@ -1095,7 +1198,12 @@ function Chapter_Ship2_1(player) minetest.set_node({x=-155, y=14, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-155, y=13, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-154, y=12, z=i*(-1)}, {name="wool:pink"}) - + elseif s1 == "3" then + minetest.set_node({x=-154, y=16, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-155, y=15, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-155, y=14, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-155, y=13, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-154, y=12, z=i*(-1)}, {name="wool:yellow"}) end end for i=4,8 do @@ -1109,6 +1217,11 @@ function Chapter_Ship2_1(player) minetest.set_node({x=-161, y=13, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-161, y=12, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-160, y=11, z=i*(-1)}, {name="wool:pink"}) + elseif s2 == "3" then + minetest.set_node({x=-160, y=14, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-161, y=13, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-161, y=12, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-160, y=11, z=i*(-1)}, {name="wool:yellow"}) end end local c1 = player:get_attribute("sea_fight_c1") @@ -1130,22 +1243,34 @@ function Chapter_Ship2_1(player) local c3 = player:get_attribute("sea_fight_c3") if c3 == "1" then minetest.set_node({x=-154, y=9, z=-2}, {name="castrum:cannon_1_1"}) + elseif c3 == "2" then + minetest.set_node({x=-154, y=9, z=-2}, {name="castrum:cannon_1_2"}) end local p1 = player:get_attribute("sea_fight_p1") if p1 == "1" then minetest.set_node({x=-152, y=8, z=-9}, {name="castrum:skeleton_lv1"}) + elseif p1 == "2" then + minetest.set_node({x=-152, y=8, z=-9}, {name="castrum:skeleton_lv2"}) end local p2 = player:get_attribute("sea_fight_p2") if p2 == "1" then minetest.set_node({x=-152, y=8, z=-3}, {name="castrum:skeleton_lv1"}) screwdriver_handler(player, {type="node", under={x=-152, y=8, z=-3}, above={x=-152, y=8, z=-3}}, 1) screwdriver_handler(player, {type="node", under={x=-152, y=8, z=-3}, above={x=-152, y=8, z=-3}}, 1) + elseif p2 == "2" then + minetest.set_node({x=-152, y=8, z=-3}, {name="castrum:skeleton_lv2"}) + screwdriver_handler(player, {type="node", under={x=-152, y=8, z=-3}, above={x=-152, y=8, z=-3}}, 1) + screwdriver_handler(player, {type="node", under={x=-152, y=8, z=-3}, above={x=-152, y=8, z=-3}}, 1) end local p3 = player:get_attribute("sea_fight_p3") if p3 == "1" then minetest.set_node({x=-154, y=8, z=-3}, {name="castrum:skeleton_lv1"}) screwdriver_handler(player, {type="node", under={x=-154, y=8, z=-3}, above={x=-154, y=8, z=-3}}, 1) screwdriver_handler(player, {type="node", under={x=-154, y=8, z=-3}, above={x=-154, y=8, z=-3}}, 1) + elseif p3 == "2" then + minetest.set_node({x=-154, y=8, z=-3}, {name="castrum:skeleton_lv2"}) + screwdriver_handler(player, {type="node", under={x=-154, y=8, z=-3}, above={x=-154, y=8, z=-3}}, 1) + screwdriver_handler(player, {type="node", under={x=-154, y=8, z=-3}, above={x=-154, y=8, z=-3}}, 1) end end function Chapter_Ship2_2(player) @@ -1362,6 +1487,12 @@ function Chapter_Ship2_2(player) minetest.set_node({x=-163, y=14, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-163, y=13, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-164, y=12, z=i*(-1)}, {name="wool:pink"}) + elseif s1 == "3" then + minetest.set_node({x=-164, y=16, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-163, y=15, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-163, y=14, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-163, y=13, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-164, y=12, z=i*(-1)}, {name="wool:yellow"}) end end for i=4,8 do @@ -1375,6 +1506,11 @@ function Chapter_Ship2_2(player) minetest.set_node({x=-157, y=13, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-157, y=12, z=i*(-1)}, {name="wool:pink"}) minetest.set_node({x=-158, y=11, z=i*(-1)}, {name="wool:pink"}) + elseif s2 == "3" then + minetest.set_node({x=-158, y=14, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-157, y=13, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-157, y=12, z=i*(-1)}, {name="wool:yellow"}) + minetest.set_node({x=-158, y=11, z=i*(-1)}, {name="wool:yellow"}) end end local c1 = player:get_attribute("sea_fight_c1") @@ -1398,20 +1534,32 @@ function Chapter_Ship2_2(player) minetest.set_node({x=-164, y=9, z=-10}, {name="castrum:cannon_1_1"}) screwdriver_handler(player, {type="node", under={x=-164, y=9, z=-10}, above={x=-164, y=9, z=-10}}, 1) screwdriver_handler(player, {type="node", under={x=-164, y=9, z=-10}, above={x=-164, y=9, z=-10}}, 1) + elseif c3 == "2" then + minetest.set_node({x=-164, y=9, z=-10}, {name="castrum:cannon_1_2"}) + screwdriver_handler(player, {type="node", under={x=-164, y=9, z=-10}, above={x=-164, y=9, z=-10}}, 1) + screwdriver_handler(player, {type="node", under={x=-164, y=9, z=-10}, above={x=-164, y=9, z=-10}}, 1) end local p1 = player:get_attribute("sea_fight_p1") if p1 == "1" then minetest.set_node({x=-166, y=8, z=-3}, {name="castrum:skeleton_lv1"}) screwdriver_handler(player, {type="node", under={x=-166, y=8, z=-3}, above={x=-166, y=8, z=-3}}, 1) screwdriver_handler(player, {type="node", under={x=-166, y=8, z=-3}, above={x=-166, y=8, z=-3}}, 1) + elseif p1 == "2" then + minetest.set_node({x=-166, y=8, z=-3}, {name="castrum:skeleton_lv2"}) + screwdriver_handler(player, {type="node", under={x=-166, y=8, z=-3}, above={x=-166, y=8, z=-3}}, 1) + screwdriver_handler(player, {type="node", under={x=-166, y=8, z=-3}, above={x=-166, y=8, z=-3}}, 1) end local p2 = player:get_attribute("sea_fight_p2") if p2 == "1" then minetest.set_node({x=-166, y=8, z=-9}, {name="castrum:skeleton_lv1"}) + elseif p2 == "2" then + minetest.set_node({x=-166, y=8, z=-9}, {name="castrum:skeleton_lv2"}) end local p3 = player:get_attribute("sea_fight_p3") if p3 == "1" then minetest.set_node({x=-164, y=8, z=-9}, {name="castrum:skeleton_lv1"}) + elseif p3 == "2" then + minetest.set_node({x=-164, y=8, z=-9}, {name="castrum:skeleton_lv2"}) end end @@ -1523,6 +1671,13 @@ minetest.register_node("castrum:fire_cannon_ready",{ else minetest.chat_send_player(player:get_player_name(), "You did not hit the enemy!") end + elseif minetest.get_node({x=-164, y=9, z=-23}).name == "castrum:cannon_1_2" then + if math.random(100) < 31 then + player:set_attribute("sea_fight_e_hp", ""..tonumber(player:get_attribute("sea_fight_e_hp")-3)) + minetest.chat_send_player(player:get_player_name(), "Hit! You have done 3 hp damage. The enemy has "..player:get_attribute("sea_fight_e_hp").." hp left.") + else + minetest.chat_send_player(player:get_player_name(), "You did not hit the enemy!") + end end end minetest.set_node(pos, {name="castrum:fire_cannon_5"}) diff --git a/mods/castrum/knight.lua b/mods/castrum/knight.lua index 7b64f6c..17f983d 100644 --- a/mods/castrum/knight.lua +++ b/mods/castrum/knight.lua @@ -52,6 +52,17 @@ local knight_pos = { {40, -66, -68, 3}, {41, -83, -54, 0}, {42, -84, -54, 0}, + {43, -85, -54, 0}, + {44, -86, -54, 0}, + {45, -87, -54, 0}, + {46, -88, -55, 3}, + {47, -88, -56, 3}, + {48, -88, -57, 3}, + {49, -88, -58, 3}, + {50, -88, -59, 3}, + {51, -87, -60, 2}, + {52, -86, -60, 2}, + {53, -85, -60, 2}, } function Update_knight(player) @@ -64,14 +75,19 @@ function Update_knight(player) file = io.open(minetest.get_worldpath().."/SAVE/Knight_3.txt", "r") local knight3 = file:read("*l") file:close() - for j=59,67 do - for i=53,61 do - for k=9,9 do - minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) - end - end + file = io.open(minetest.get_worldpath().."/SAVE/Camp1.txt", "r") + local camp1 = file:read("*l") + file:close() + if tonumber(camp1) > 0 then + for j=59,67 do + for i=53,61 do + for k=9,9 do + minetest.set_node({x=j*(-1), y=k, z=i*(-1)}, {name="air"}) + end + end + end + minetest.set_node({x=-63, y=9, z=-57}, {name="castrum:fire"}) end - minetest.set_node({x=-63, y=9, z=-57}, {name="castrum:fire"}) file = io.open(minetest.get_worldpath().."/SAVE/Camp2.txt", "r") local camp2 = file:read("*l") file:close() diff --git a/mods/castrum/models/castrum_pirate_lv2.png b/mods/castrum/models/castrum_pirate_lv2.png new file mode 100644 index 0000000000000000000000000000000000000000..30a985712ad29968b36aa06b846ecd28c46f4e8e GIT binary patch literal 2114 zcmV-I2)*}-P)X^HoKe9)B~5f=iKu=bDrnT&u zk7Fs>R@MN0_k3S)9XGkyguaZ$hEJs_R|C#ZRB>!Yq1VQp31^Kom^N~eF@#!ky*F#I z30@EZA$M-*Bh-e;DW6coP(FpF;^0atkU~)Pd@LnN*cRxBATrmz0~SSqV@pD9_+ZlG z-HR?sI~MuR`6(u*d~8cm^8;!@h>{Wz1fj+cHI`DJd>#z`nFDJYg| z^kpp80Ebk-~A56~RBoxI`4KIkO`4I!TBp1g$w2654 z;xxD1l%-S+sQJ-K*1nV)+tJCgp3^-EGAWCpdH|J1F@YXLzII{OS4)1=J zVyQ;fv6!s*{PTPTO9{$uNG3I(P5GV#&TRe<<(+s1(y)Fo!{^ua@Q>4F3OxzZwmoOa z!l#?jjdR2mKBm(nHf_wAP{)fqSDfL}bPa&x2X-O_NYS1r?|b~mSWZ7%>2Mw*wmy}%oX|IWc(&(!A} zKd_U3jZSfJ*E3XWAz8;F<0w9=)NpLc^h}I2V+0eWfHPw*Vf&q;0L1AJ-Np!B6XOBI zSH4g%0239TzrOl>oyFgNje>aJ@_<2 z82<9>9Sz3#Y<^^<1&Ny<8KLaPMg?KS-}c2ao3=hhGNCBVcqnAOA^>EZcn{$u1-E^s zms-$V1y*YOa&(B+$-7U3_P>(i^sosIBdlnEP zg%GJ_FS7EdpAkg{W8m^1e|k-cth(wYbfs8F!HN-3ntqDm;os#aWocF(j*(@T>8d?w<2qIixSM z9Vv3N*K8#sQ$ooB=6Il3^69wGtmr^dvtLM(1<A_Eru^NPDjNC;}rsX zwnp1m??z~PdV0z5_rsG-{UgVYbtJEOh>z7_J(u5&DCiiVXbd6Jv&0briZHrR=dw=! zx1=kvmA1{BHmyj$(GfZtBh;f!L~X0jHqLHv=-3tM?|LPcOeWhve}5BEE{1|5$BrR{ zXhFt2{D&GAUTn(;3yqoU`{4=v@I+g^3G4QiJD^-Hw;k_h{6YqwLxAh;Z%cwgSV&Q* zr$8gi>!{e#K!C|Nw{`rM|N3iJ=79T$FHrRjZ@j;@%Uj^Mret*tBW3QrN~jK?&83K0~87cY};mHVuCGOwk*04YOCM*UEA?@_dUif553ef se(KO}z_9UwCpdLzH@){f+7*8P1Ddgl1h2@rN&o-=07*qoM6N<$g8RZ1nE(I) literal 0 HcmV?d00001 diff --git a/mods/castrum/models/castrum_skeleton_lv2.png b/mods/castrum/models/castrum_skeleton_lv2.png new file mode 100644 index 0000000000000000000000000000000000000000..ae46cfc3a4f76aeb218b48e6d4dbf9bf3c6c5c46 GIT binary patch literal 3890 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 A?f?J) literal 0 HcmV?d00001 diff --git a/mods/castrum/nodes/Barracks.lua b/mods/castrum/nodes/Barracks.lua index b46d7b4..36b8619 100644 --- a/mods/castrum/nodes/Barracks.lua +++ b/mods/castrum/nodes/Barracks.lua @@ -77,6 +77,9 @@ knight.get_formspec = function(player, pos) file:close() file = io.open(minetest.get_worldpath().."/SAVE/Home3.txt", "r") local home3 = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Home4.txt", "r") + local home4 = file:read("*l") file:close() file = io.open(minetest.get_worldpath().."/SAVE/Barracks.txt", "r") local barracks = file:read("*l") @@ -101,6 +104,11 @@ knight.get_formspec = function(player, pos) max1 = max1+8 elseif tonumber(home3) == 7 then max1 = max1+11 + elseif tonumber(home3) == 8 then + max1 = max1+14 + end + if tonumber(home4) == 6 then + max1 = max1+8 end file = io.open(minetest.get_worldpath().."/SAVE/Camp1.txt", "r") local camp1 = file:read("*l") @@ -181,7 +189,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "barracks" then for k, v in pairs(fields) do if v == "del" then - Barracks(0,player) + minetest.place_schematic({x=-43, y=9, z=25}, minetest.get_modpath("castrum").."/schematics/Barracks/Barracks_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Barracks.txt", "w") file:write("0") file:close() @@ -220,8 +228,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 8 and upgrade then - Barracks(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-43, y=9, z=25}, minetest.get_modpath("castrum").."/schematics/Barracks/Barracks_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Barracks.txt", "w") file:write(tonumber(level)+1) file:close() @@ -248,6 +256,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) file:close() file = io.open(minetest.get_worldpath().."/SAVE/Home3.txt", "r") local home3 = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Home4.txt", "r") + local home4 = file:read("*l") file:close() if tonumber(home1) == 6 then max1 = max1+8 @@ -269,7 +280,12 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) max1 = max1+8 elseif tonumber(home3) == 7 then max1 = max1+11 + elseif tonumber(home3) == 8 then + max1 = max1+14 end + if tonumber(home4) == 6 then + max1 = max1+8 + end file = io.open(minetest.get_worldpath().."/SAVE/Camp1.txt", "r") local camp1 = file:read("*l") file:close() diff --git a/mods/castrum/nodes/Battleground.lua b/mods/castrum/nodes/Battleground.lua index ba735db..52fd14d 100644 --- a/mods/castrum/nodes/Battleground.lua +++ b/mods/castrum/nodes/Battleground.lua @@ -110,7 +110,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "battleground" then for k, v in pairs(fields) do if v == "del" then - Battleground(0,player) + minetest.place_schematic({x=-76, y=9, z=-84}, minetest.get_modpath("castrum").."/schematics/Battleground/Battleground.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Battleground.txt", "w") file:write("0") file:close() @@ -172,8 +172,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 9 and upgrade then - Battleground(tonumber(level)+1,player) + if (tonumber(level)) < 9 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-76, y=9, z=-84}, minetest.get_modpath("castrum").."/schematics/Battleground/Battleground_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Battleground.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Bridge.lua b/mods/castrum/nodes/Bridge.lua index 347b478..ccf5b33 100644 --- a/mods/castrum/nodes/Bridge.lua +++ b/mods/castrum/nodes/Bridge.lua @@ -19,17 +19,22 @@ bridge.get_formspec = function(player, pos) need1 = "3 Wooden Planks" need2 = "Fountain lv.1" elseif tonumber(level) == 9 then - label = (level-8).."/3" + label = (level-8).."/4" label2 = "Upgrade" need1 = "27 Jungle Wood Planks" need2 = "Fountain lv.3" elseif tonumber(level) == 10 then - label = (level-8).."/3" + label = (level-8).."/4" label2 = "Upgrade" need1 = "108 Pine Wood Planks" need2 = "Fountain lv.5" + elseif tonumber(level) == 11 then + label = (level-8).."/4" + label2 = "Upgrade" + need1 = "324 Acacia Wood Planks" + need2 = "Fountain lv.7" else - label = (level-8).."/3" + label = (level-8).."/4" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -73,7 +78,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "bridge" then for k, v in pairs(fields) do if v == "del" then - Bridge(0,player) + minetest.place_schematic({x=-44, y=8, z=-40}, minetest.get_modpath("castrum").."/schematics/Bridge1/Bridge1_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Bridge.txt", "w") file:write("0") file:close() @@ -104,12 +109,17 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 10 and inv:contains_item("main", "default:pine_wood 108") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 11 and inv:contains_item("main", "default:acacia_wood 324") and tonumber(fountain) > 9 then + Item_Remove2(player, "main", "default:acacia_wood 324") + upgrade = true + elseif tonumber(level) == 11 and inv:contains_item("main", "default:acacia_wood 324") then + txt = "upgrade fountain to lv.7 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 11 and upgrade then - Bridge(tonumber(level)+1,player) + if (tonumber(level)) < 12 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-44, y=8, z=-40}, minetest.get_modpath("castrum").."/schematics/Bridge1/Bridge1_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Bridge.txt", "w") file:write(tonumber(level)+1) file:close() @@ -123,7 +133,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "bridge2" then for k, v in pairs(fields) do if v == "del" then - Bridge2(0,player) + minetest.place_schematic({x=-44, y=8, z=-40}, minetest.get_modpath("castrum").."/schematics/Bridge1/Bridge1_0.mts","0") + minetest.place_schematic({x=-44, y=8, z=-32}, minetest.get_modpath("castrum").."/schematics/Bridge2/Bridge2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Bridge.txt", "w") file:write("0") file:close() @@ -138,22 +149,32 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) local inv = player:get_inventory() local upgrade = false local txt = "not enough items" - if tonumber(level) == 9 and inv:contains_item("main", "default:junglewood 27") and tonumber(fountain) > 5 then + if tonumber(level) < 9 and inv:contains_item("main", "default:wood 3") and tonumber(fountain) > 3 then + Item_Remove2(player, "main", "default:wood 3") + upgrade = true + elseif tonumber(level) < 9 and inv:contains_item("main", "default:wood 3") then + txt = "build fountain first" + elseif tonumber(level) == 9 and inv:contains_item("main", "default:junglewood 27") and tonumber(fountain) > 5 then Item_Remove2(player, "main", "default:junglewood 27") upgrade = true elseif tonumber(level) == 9 and inv:contains_item("main", "default:junglewood 27") then txt = "upgrade fountain to lv.3 first" elseif tonumber(level) == 10 and inv:contains_item("main", "default:pine_wood 108") and tonumber(fountain) > 7 then - Item_Remove2(player, "main", "default:pine_wood 108") + Item_Remove2(player, "main", "default:pine_wood 108") upgrade = true elseif tonumber(level) == 10 and inv:contains_item("main", "default:pine_wood 108") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 11 and inv:contains_item("main", "default:acacia_wood 324") and tonumber(fountain) > 9 then + Item_Remove2(player, "main", "default:acacia_wood 324") + upgrade = true + elseif tonumber(level) == 11 and inv:contains_item("main", "default:acacia_wood 324") then + txt = "upgrade fountain to lv.7 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 11 and upgrade then - Bridge2(tonumber(level)+1,player) + if (tonumber(level)) < 12 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-44, y=8, z=-32}, minetest.get_modpath("castrum").."/schematics/Bridge2/Bridge2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Bridge.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Cactusfarm.lua b/mods/castrum/nodes/Cactusfarm.lua index 00cd4f7..4894995 100644 --- a/mods/castrum/nodes/Cactusfarm.lua +++ b/mods/castrum/nodes/Cactusfarm.lua @@ -69,7 +69,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "cactusfarm" then for k, v in pairs(fields) do if v == "del" then - Cactusfarm(0,player) + minetest.place_schematic({x=123, y=8, z=-8}, minetest.get_modpath("castrum").."/schematics/Cactusfarm/Cactusfarm_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Cactusfarm.txt", "w") file:write("0") file:close() @@ -111,8 +111,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 5 and upgrade then - Cactusfarm(tonumber(level)+1,player) + if (tonumber(level)) < 5 and upgrade or buildings_costs == false then + minetest.place_schematic({x=123, y=8, z=-8}, minetest.get_modpath("castrum").."/schematics/Cactusfarm/Cactusfarm_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Cactusfarm.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Camp1.lua b/mods/castrum/nodes/Camp1.lua index 3faf7a7..5f0225c 100644 --- a/mods/castrum/nodes/Camp1.lua +++ b/mods/castrum/nodes/Camp1.lua @@ -53,7 +53,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "camp1" then for k, v in pairs(fields) do if v == "del" then - Camp1(0,player) + minetest.place_schematic({x=-67, y=9, z=-61}, minetest.get_modpath("castrum").."/schematics/Camp1/Camp1_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Camp1.txt", "w") file:write("0") file:close() @@ -76,8 +76,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 1 and upgrade then - Camp1(tonumber(level)+1,player) + if (tonumber(level)) < 1 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-67, y=9, z=-61}, minetest.get_modpath("castrum").."/schematics/Camp1/Camp1_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Camp1.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Camp2.lua b/mods/castrum/nodes/Camp2.lua index 1a70edd..f6763a5 100644 --- a/mods/castrum/nodes/Camp2.lua +++ b/mods/castrum/nodes/Camp2.lua @@ -54,7 +54,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "camp2" then for k, v in pairs(fields) do if v == "del" then - Camp2(0,player) + minetest.place_schematic({x=-67, y=9, z=-74}, minetest.get_modpath("castrum").."/schematics/Camp2/Camp2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Camp2.txt", "w") file:write("0") file:close() @@ -82,8 +82,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 1 and upgrade then - Camp2(tonumber(level)+1,player) + if (tonumber(level)) < 1 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-67, y=9, z=-74}, minetest.get_modpath("castrum").."/schematics/Camp2/Camp2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Camp2.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Camp3.lua b/mods/castrum/nodes/Camp3.lua index 28d8313..be826a1 100644 --- a/mods/castrum/nodes/Camp3.lua +++ b/mods/castrum/nodes/Camp3.lua @@ -54,7 +54,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "camp3" then for k, v in pairs(fields) do if v == "del" then - Camp3(0,player) + minetest.place_schematic({x=-89, y=9, z=-61}, minetest.get_modpath("castrum").."/schematics/Camp3/Camp3_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Camp3.txt", "w") file:write("0") file:close() @@ -82,8 +82,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 1 and upgrade then - Camp3(tonumber(level)+1,player) + if (tonumber(level)) < 1 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-89, y=9, z=-61}, minetest.get_modpath("castrum").."/schematics/Camp3/Camp3_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Camp3.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Cannon1.lua b/mods/castrum/nodes/Cannon1.lua index 635938c..ed8a455 100644 --- a/mods/castrum/nodes/Cannon1.lua +++ b/mods/castrum/nodes/Cannon1.lua @@ -57,7 +57,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "cannon1" then for k, v in pairs(fields) do if v == "del" then - Cannon1(0,player) + minetest.place_schematic({x=169, y=9, z=42}, minetest.get_modpath("castrum").."/schematics/Cannon1/Cannon1_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Cannon1.txt", "w") file:write("0") file:close() @@ -79,8 +79,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 2 and upgrade then - Cannon1(tonumber(level)+1,player) + if (tonumber(level)) < 2 and upgrade or buildings_costs == false then + minetest.place_schematic({x=169, y=9, z=42}, minetest.get_modpath("castrum").."/schematics/Cannon1/Cannon1_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Cannon1.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Cannon2.lua b/mods/castrum/nodes/Cannon2.lua index 692b386..a09d6ba 100644 --- a/mods/castrum/nodes/Cannon2.lua +++ b/mods/castrum/nodes/Cannon2.lua @@ -57,7 +57,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "cannon2" then for k, v in pairs(fields) do if v == "del" then - Cannon2(0,player) + minetest.place_schematic({x=161, y=9, z=42}, minetest.get_modpath("castrum").."/schematics/Cannon2/Cannon2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Cannon2.txt", "w") file:write("0") file:close() @@ -79,8 +79,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 2 and upgrade then - Cannon2(tonumber(level)+1,player) + if (tonumber(level)) < 2 and upgrade or buildings_costs == false then + minetest.place_schematic({x=161, y=9, z=42}, minetest.get_modpath("castrum").."/schematics/Cannon2/Cannon2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Cannon2.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Cannon3.lua b/mods/castrum/nodes/Cannon3.lua index d626c82..65e3af1 100644 --- a/mods/castrum/nodes/Cannon3.lua +++ b/mods/castrum/nodes/Cannon3.lua @@ -17,8 +17,12 @@ cannon3.get_formspec = function(player, pos) label = "not build yet ("..math.floor((level/1)*100).."%)" label2 = "Build" need1 = "25 Steel Ingot" + elseif tonumber(level) == 1 then + label = (level).."/2" + label2 = "Upgrade" + need1 = "50 Bronze Ingot" else - label = (level).."/1" + label = (level).."/2" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -53,7 +57,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "cannon3" then for k, v in pairs(fields) do if v == "del" then - Cannon3(0,player) + minetest.place_schematic({x=161, y=9, z=44}, minetest.get_modpath("castrum").."/schematics/Cannon3/Cannon3_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Cannon3.txt", "w") file:write("0") file:close() @@ -68,12 +72,15 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if tonumber(level) < 1 and inv:contains_item("main", "default:steel_ingot 25") then Item_Remove2(player, "main", "default:steel_ingot 25") upgrade = true + elseif tonumber(level) == 1 and inv:contains_item("main", "default:bronze_ingot 50") then + Item_Remove2(player, "main", "default:bronze_ingot 50") + upgrade = true end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 1 and upgrade then - Cannon3(tonumber(level)+1,player) + if (tonumber(level)) < 2 and upgrade or buildings_costs == false then + minetest.place_schematic({x=161, y=9, z=44}, minetest.get_modpath("castrum").."/schematics/Cannon3/Cannon3_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Cannon3.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Farm.lua b/mods/castrum/nodes/Farm.lua index 7dd4905..fdccca1 100644 --- a/mods/castrum/nodes/Farm.lua +++ b/mods/castrum/nodes/Farm.lua @@ -18,11 +18,15 @@ farm.get_formspec = function(player, pos) label2 = "Build" need1 = "Mountain Fountain lv.1" elseif tonumber(level) == 1 then - label = (level).."/2" + label = (level).."/3" label2 = "Upgrade" need1 = "Completed chapter 5" + elseif tonumber(level) == 2 then + label = (level).."/3" + label2 = "Upgrade" + need1 = "Completed chapter 6" else - label = (level).."/2" + label = (level).."/3" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -57,7 +61,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "farm" then for k, v in pairs(fields) do if v == "del" then - Farm(0,player) + minetest.place_schematic({x=345, y=39, z=-2}, minetest.get_modpath("castrum").."/schematics/Farm/Farm_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Farm.txt", "w") file:write("0") file:close() @@ -79,16 +83,20 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) < 1 then txt = "build mountain fountain first" - elseif tonumber(level) == 1 and tonumber(chapter) > 6 then + elseif tonumber(level) == 1 and tonumber(chapter) > 5 then upgrade = true elseif tonumber(level) == 1 then + txt = "complete chapter 5 first" + elseif tonumber(level) == 2 and tonumber(chapter) > 6 then + upgrade = true + elseif tonumber(level) == 2 then txt = "complete chapter 6 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 2 and upgrade then - Farm(tonumber(level)+1,player) + if (tonumber(level)) < 3 and upgrade or buildings_costs == false then + minetest.place_schematic({x=345, y=39, z=-2}, minetest.get_modpath("castrum").."/schematics/Farm/Farm_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Farm.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Fountain.lua b/mods/castrum/nodes/Fountain.lua index 08f58e0..1d5571d 100644 --- a/mods/castrum/nodes/Fountain.lua +++ b/mods/castrum/nodes/Fountain.lua @@ -19,40 +19,46 @@ fountain.get_formspec = function(player, pos) need1 = "10 Cobblestone" need2 = "Walls and Towers lv.1" elseif tonumber(level) == 4 then - label = (level-3).."/6" + label = (level-3).."/7" label2 = "Upgrade" need1 = "25 Cobblestone" need2 = "8 Stone Pickaxe" need3 = "Walls and Towers lv.2" need4 = "Moats lv.1" elseif tonumber(level) == 5 then - label = (level-3).."/6" + label = (level-3).."/7" label2 = "Upgrade" need1 = "100 Cobblestone" need2 = "32 Stone Pickaxe" need3 = "Walls and Towers lv.3" elseif tonumber(level) == 6 then - label = (level-3).."/6" + label = (level-3).."/7" label2 = "Upgrade" need1 = "100 Desert Cobblestone" need2 = "32 Steel Pickaxe" need3 = "Walls and Towers lv.4" need4 = "Moats lv.2" elseif tonumber(level) == 7 then - label = (level-3).."/6" + label = (level-3).."/7" label2 = "Upgrade" need1 = "400 Desert Cobblestone" need2 = "64 Steel Pickaxe" need3 = "Walls and Towers lv.5" elseif tonumber(level) == 8 then - label = (level-3).."/6" + label = (level-3).."/7" label2 = "Upgrade" - need1 = "600 Desert Cobblestone" + need1 = "400 Desert Cobblestone" need2 = "64 Bronze Pickaxe" need3 = "Walls and Towers lv.6" need4 = "Moats lv.3" + elseif tonumber(level) == 9 then + label = (level-3).."/7" + label2 = "Upgrade" + need1 = "600 Desert Cobblestone" + need2 = "128 Bronze Pickaxe" + need3 = "Walls and Towers lv.7" else - label = (level-3).."/6" + label = (level-3).."/7" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -87,7 +93,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "fountain" then for k, v in pairs(fields) do if v == "del" then - Fountain(0,player) + minetest.place_schematic({x=-45, y=9, z=-2}, minetest.get_modpath("castrum").."/schematics/Fountain/Fountain_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Fountain.txt", "w") file:write("0") file:close() @@ -170,20 +176,26 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 7 and inv:contains_item("main", "default:desert_cobble 400") and inv:contains_item("main", "castrum:pick_steel 64") then txt = "upgrade walls and towers to lv.5 first" - elseif tonumber(level) == 8 and inv:contains_item("main", "default:desert_cobble 600") and inv:contains_item("main", "castrum:pick_bronze 64") and tonumber(tower1) > 22 and tonumber(tower2) > 22 and tonumber(tower3) > 22 and tonumber(tower4) > 22 and tonumber(walle) > 18 and tonumber(wallw) > 18 and tonumber(walln) > 18 and tonumber(walls) > 18 and tonumber(moate) > 10 and tonumber(moatw) > 10 and tonumber(moats) > 10 and tonumber(moatn) > 10 then - Item_Remove2(player, "main", "default:desert_cobble 600") + elseif tonumber(level) == 8 and inv:contains_item("main", "default:desert_cobble 400") and inv:contains_item("main", "castrum:pick_bronze 64") and tonumber(tower1) > 22 and tonumber(tower2) > 22 and tonumber(tower3) > 22 and tonumber(tower4) > 22 and tonumber(walle) > 18 and tonumber(wallw) > 18 and tonumber(walln) > 18 and tonumber(walls) > 18 and tonumber(moate) > 10 and tonumber(moatw) > 10 and tonumber(moats) > 10 and tonumber(moatn) > 10 then + Item_Remove2(player, "main", "default:desert_cobble 400") Item_Remove2(player, "main", "castrum:pick_bronze 64") upgrade = true - elseif tonumber(level) == 8 and inv:contains_item("main", "default:desert_cobble 600") and inv:contains_item("main", "castrum:pick_bronze 64") and tonumber(tower1) > 22 and tonumber(tower2) > 22 and tonumber(tower3) > 22 and tonumber(tower4) > 22 and tonumber(walle) > 18 and tonumber(wallw) > 18 and tonumber(walln) > 18 and tonumber(walls) > 18 then + elseif tonumber(level) == 8 and inv:contains_item("main", "default:desert_cobble 400") and inv:contains_item("main", "castrum:pick_bronze 64") and tonumber(tower1) > 22 and tonumber(tower2) > 22 and tonumber(tower3) > 22 and tonumber(tower4) > 22 and tonumber(walle) > 18 and tonumber(wallw) > 18 and tonumber(walln) > 18 and tonumber(walls) > 18 then txt = "upgrade moats to lv.3 first" - elseif tonumber(level) == 8 and inv:contains_item("main", "default:desert_cobble 600") and inv:contains_item("main", "castrum:pick_bronze 64") then + elseif tonumber(level) == 8 and inv:contains_item("main", "default:desert_cobble 400") and inv:contains_item("main", "castrum:pick_bronze 64") then txt = "upgrade walls and towers to lv.6 first" + elseif tonumber(level) == 9 and inv:contains_item("main", "default:desert_cobble 600") and inv:contains_item("main", "castrum:pick_bronze 128") and tonumber(tower1) > 23 and tonumber(tower2) > 23 and tonumber(tower3) > 23 and tonumber(tower4) > 23 and tonumber(walle) > 19 and tonumber(wallw) > 19 and tonumber(walln) > 19 and tonumber(walls) > 19 then + Item_Remove2(player, "main", "default:desert_cobble 600") + Item_Remove2(player, "main", "castrum:pick_bronze 128") + upgrade = true + elseif tonumber(level) == 9 and inv:contains_item("main", "default:desert_cobble 600") and inv:contains_item("main", "castrum:pick_bronze 128") then + txt = "upgrade walls and towers to lv.7 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 9 and upgrade then - Fountain(tonumber(level)+1,player) + if (tonumber(level)) < 10 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-45, y=9, z=-2}, minetest.get_modpath("castrum").."/schematics/Fountain/Fountain_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Fountain.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Home1.lua b/mods/castrum/nodes/Home1.lua index 5e514d3..266143c 100644 --- a/mods/castrum/nodes/Home1.lua +++ b/mods/castrum/nodes/Home1.lua @@ -73,7 +73,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "home1" then for k, v in pairs(fields) do if v == "del" then - Home1(0,player) + minetest.place_schematic({x=-32, y=9, z=-25}, minetest.get_modpath("castrum").."/schematics/Home1/Home1_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Home1.txt", "w") file:write("0") file:close() @@ -116,8 +116,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 9 and upgrade then - Home1(tonumber(level)+1,player) + if (tonumber(level)) < 9 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-32, y=9, z=-25}, minetest.get_modpath("castrum").."/schematics/Home1/Home1_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Home1.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Home2.lua b/mods/castrum/nodes/Home2.lua index 225f861..91959e7 100644 --- a/mods/castrum/nodes/Home2.lua +++ b/mods/castrum/nodes/Home2.lua @@ -67,7 +67,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "home2" then for k, v in pairs(fields) do if v == "del" then - Home2(0,player) + minetest.place_schematic({x=-54, y=9, z=-25}, minetest.get_modpath("castrum").."/schematics/Home2/Home2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Home2.txt", "w") file:write("0") file:close() @@ -104,8 +104,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 8 and upgrade then - Home2(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-54, y=9, z=-25}, minetest.get_modpath("castrum").."/schematics/Home2/Home2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Home2.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Home3.lua b/mods/castrum/nodes/Home3.lua index 7bc0ef5..d8af739 100644 --- a/mods/castrum/nodes/Home3.lua +++ b/mods/castrum/nodes/Home3.lua @@ -20,13 +20,19 @@ home3.get_formspec = function(player, pos) need2 = "10 Wooden Planks" need3 = "Fountain lv.5" elseif tonumber(level) == 6 then - label = (level-5).."/2" + label = (level-5).."/3" label2 = "Upgrade" need1 = "64 Cobblestone" need2 = "80 Jungle Wood Planks" need3 = "Fountain lv.6" + elseif tonumber(level) == 7 then + label = (level-5).."/3" + label2 = "Upgrade" + need1 = "128 Cobblestone" + need2 = "160 Pine Wood Planks" + need3 = "Fountain lv.7" else - label = (level-5).."/2" + label = (level-5).."/3" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -61,7 +67,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "home3" then for k, v in pairs(fields) do if v == "del" then - Home3(0,player) + minetest.place_schematic({x=-32, y=9, z=25}, minetest.get_modpath("castrum").."/schematics/Home3/Home3_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Home3.txt", "w") file:write("0") file:close() @@ -88,12 +94,18 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 6 and inv:contains_item("main", "default:cobble 64") and inv:contains_item("main", "default:junglewood 80") then txt = "upgrade fountain to lv.6 first" + elseif tonumber(level) == 7 and inv:contains_item("main", "default:cobble 128") and inv:contains_item("main", "default:pine_wood 160") and tonumber(fountain) > 9 then + Item_Remove2(player, "main", "default:pine_wood 160") + Item_Remove2(player, "main", "default:cobble 128") + upgrade = true + elseif tonumber(level) == 7 and inv:contains_item("main", "default:cobble 128") and inv:contains_item("main", "default:pine_wood 160") then + txt = "upgrade fountain to lv.7 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 7 and upgrade then - Home3(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-32, y=9, z=25}, minetest.get_modpath("castrum").."/schematics/Home3/Home3_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Home3.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Home4.lua b/mods/castrum/nodes/Home4.lua new file mode 100644 index 0000000..090aa7f --- /dev/null +++ b/mods/castrum/nodes/Home4.lua @@ -0,0 +1,95 @@ +dofile(minetest.get_modpath("castrum").."/config.txt") +local home4 = {} +home4.get_formspec = function(player, pos) + if player == nil then + return + end + file = io.open(minetest.get_worldpath().."/SAVE/Home4.txt", "r") + local level = file:read("*l") + file:close() + local label = "" + local label2 = "" + local need1 = "" + local need2 = "" + local need3 = "" + local need4 = "" + if tonumber(level) < 6 then + label = "not build yet ("..math.floor((level/6)*100).."%)" + label2 = "Build" + need1 = "8 Cobblestone" + need2 = "10 Wooden Planks" + need3 = "Fountain lv.7" + else + label = (level-5).."/1" + label2 = "Upgrade (comming soon)" + end + formspec = "size[5,6.5]" + .."background[5,6.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,0;Level: "..label.."]" + .."label[0,0.5;You need:]" + .."label[0,0.8;"..need1.."]" + .."label[0,1.1;"..need2.."]" + .."label[0,1.4;"..need3.."]" + .."label[0,1.7;"..need4.."]" + .."button[0,2;5,1;;"..label2.."]" + .."image_button[4.5,-0.3;0.8,0.8;;esc;X]" + if del_button == true then + formspec = formspec.."button[0,3;5,1;;del]" + end + return formspec +end + +minetest.register_node("castrum:home_4",{ + tiles = {"default_diamond_block.png"}, + description = "Configurate Home 4", + --groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_punch = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "home4" , home4.get_formspec(player)) + end, +}) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local player_inv = player:get_inventory() + if formname == "home4" then + for k, v in pairs(fields) do + if v == "del" then + minetest.place_schematic({x=-54, y=9, z=25}, minetest.get_modpath("castrum").."/schematics/Home4/Home4_0.mts","0") + file = io.open(minetest.get_worldpath().."/SAVE/Home4.txt", "w") + file:write("0") + file:close() + minetest.show_formspec(player:get_player_name(), "home4" , home4.get_formspec(player)) + elseif v == "Upgrade" or v == "Build" then + file = io.open(minetest.get_worldpath().."/SAVE/Home4.txt", "r") + local level = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Fountain.txt", "r") + local fountain = file:read("*l") + file:close() + local inv = player:get_inventory() + local upgrade = false + local txt = "not enough items" + if tonumber(level) < 6 and inv:contains_item("main", "default:cobble 8") and inv:contains_item("main", "default:wood 10") and tonumber(fountain) > 9 then + Item_Remove2(player, "main", "default:cobble 8") + Item_Remove2(player, "main", "default:wood 10") + upgrade = true + elseif tonumber(level) < 6 and inv:contains_item("main", "default:cobble 8") and inv:contains_item("main", "default:wood 10") then + txt = "upgrade fountain to lv.7 first" + end + if upgrade == false then + minetest.chat_send_player(player:get_player_name(), txt) + end + if (tonumber(level)) < 6 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-54, y=9, z=25}, minetest.get_modpath("castrum").."/schematics/Home4/Home4_"..(tonumber(level)+1)..".mts","0") + file = io.open(minetest.get_worldpath().."/SAVE/Home4.txt", "w") + file:write(tonumber(level)+1) + file:close() + end + minetest.show_formspec(player:get_player_name(), "home4" , home4.get_formspec(player)) + elseif v == "X" then + minetest.show_formspec(player:get_player_name(), "", "") + end + end + end +end) \ No newline at end of file diff --git a/mods/castrum/nodes/Island_Barracks.lua b/mods/castrum/nodes/Island_Barracks.lua index bf4ef5a..429c50e 100644 --- a/mods/castrum/nodes/Island_Barracks.lua +++ b/mods/castrum/nodes/Island_Barracks.lua @@ -117,7 +117,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_barracks" then for k, v in pairs(fields) do if v == "del" then - Island_Barracks(0,player) + minetest.place_schematic({x=165, y=9, z=6}, minetest.get_modpath("castrum").."/schematics/Island_Barracks/Island_Barracks_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Barracks.txt", "w") file:write("0") file:close() @@ -142,8 +142,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 6 and upgrade then - Island_Barracks(tonumber(level)+1,player) + if (tonumber(level)) < 6 and upgrade or buildings_costs == false then + minetest.place_schematic({x=165, y=9, z=6}, minetest.get_modpath("castrum").."/schematics/Island_Barracks/Island_Barracks_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Barracks.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Battleground.lua b/mods/castrum/nodes/Island_Battleground.lua index 1ebf16e..513bf89 100644 --- a/mods/castrum/nodes/Island_Battleground.lua +++ b/mods/castrum/nodes/Island_Battleground.lua @@ -40,6 +40,8 @@ island_battleground.get_formspec = function(player, pos) formspec = formspec.."button[0,3;5,1;;Start Island Chapter 1]" elseif tonumber(chapter) == 2 and tonumber(level) > 3 then formspec = formspec.."button[0,3;5,1;;Start Island Chapter 2]" + elseif tonumber(chapter) == 3 and tonumber(level) > 3 then + formspec = formspec.."button[0,3;5,1;;Start Island Chapter 3]" end formspec = formspec.."image_button[4.5,-0.3;0.8,0.8;;esc;X]" if del_button == true then @@ -62,7 +64,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_battleground" then for k, v in pairs(fields) do if v == "del" then - Island_Battleground(0,player) + minetest.place_schematic({x=180, y=9, z=42}, minetest.get_modpath("castrum").."/schematics/Island_Battleground/Island_Battleground_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Battleground.txt", "w") file:write("0") file:close() @@ -89,8 +91,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 4 and upgrade then - Island_Battleground(tonumber(level)+1,player) + if (tonumber(level)) < 4 and upgrade or buildings_costs == false then + minetest.place_schematic({x=180, y=9, z=42}, minetest.get_modpath("castrum").."/schematics/Island_Battleground/Island_Battleground_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Battleground.txt", "w") file:write(tonumber(level)+1) file:close() @@ -101,6 +103,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) minetest.show_formspec(player:get_player_name(), "", "") elseif v == "Start Island Chapter 2" then set_sea_fight(2,player) + minetest.show_formspec(player:get_player_name(), "", "") + elseif v == "Start Island Chapter 3" then + set_sea_fight(3,player) minetest.show_formspec(player:get_player_name(), "", "") elseif v == "X" then minetest.show_formspec(player:get_player_name(), "", "") diff --git a/mods/castrum/nodes/Island_Fountain.lua b/mods/castrum/nodes/Island_Fountain.lua index 84f2451..5342bce 100644 --- a/mods/castrum/nodes/Island_Fountain.lua +++ b/mods/castrum/nodes/Island_Fountain.lua @@ -59,7 +59,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_fountain" then for k, v in pairs(fields) do if v == "del" then - Island_Fountain(0,player) + minetest.place_schematic({x=145, y=9, z=0}, minetest.get_modpath("castrum").."/schematics/Island_Fountain/Island_Fountain_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Fountain.txt", "w") file:write("0") file:close() @@ -97,8 +97,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 5 and upgrade then - Island_Fountain(tonumber(level)+1,player) + if (tonumber(level)) < 5 and upgrade or buildings_costs == false then + minetest.place_schematic({x=145, y=9, z=0}, minetest.get_modpath("castrum").."/schematics/Island_Fountain/Island_Fountain_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Fountain.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Home1.lua b/mods/castrum/nodes/Island_Home1.lua index ede2732..90337ec 100644 --- a/mods/castrum/nodes/Island_Home1.lua +++ b/mods/castrum/nodes/Island_Home1.lua @@ -55,7 +55,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_home1" then for k, v in pairs(fields) do if v == "del" then - Island_Home1(0,player) + minetest.place_schematic({x=137, y=9, z=-22}, minetest.get_modpath("castrum").."/schematics/Island_Home1/Island_Home1_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Home1.txt", "w") file:write("0") file:close() @@ -80,8 +80,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 5 and upgrade then - Island_Home1(tonumber(level)+1,player) + if (tonumber(level)) < 5 and upgrade or buildings_costs == false then + minetest.place_schematic({x=137, y=9, z=-22}, minetest.get_modpath("castrum").."/schematics/Island_Home1/Island_Home1_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Home1.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Home2.lua b/mods/castrum/nodes/Island_Home2.lua index 7929f3c..93153d9 100644 --- a/mods/castrum/nodes/Island_Home2.lua +++ b/mods/castrum/nodes/Island_Home2.lua @@ -55,7 +55,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_home2" then for k, v in pairs(fields) do if v == "del" then - Island_Home2(0,player) + minetest.place_schematic({x=151, y=9, z=-22}, minetest.get_modpath("castrum").."/schematics/Island_Home2/Island_Home2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Home2.txt", "w") file:write("0") file:close() @@ -80,8 +80,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 5 and upgrade then - Island_Home2(tonumber(level)+1,player) + if (tonumber(level)) < 5 and upgrade or buildings_costs == false then + minetest.place_schematic({x=151, y=9, z=-22}, minetest.get_modpath("castrum").."/schematics/Island_Home2/Island_Home2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Home2.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Pier.lua b/mods/castrum/nodes/Island_Pier.lua index c5d1d04..db8ebf9 100644 --- a/mods/castrum/nodes/Island_Pier.lua +++ b/mods/castrum/nodes/Island_Pier.lua @@ -60,7 +60,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_pier" then for k, v in pairs(fields) do if v == "del" then - Island_Pier(0,player) + minetest.place_schematic({x=171, y=6, z=38}, minetest.get_modpath("castrum").."/schematics/Island_Pier/Island_Pier_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Pier.txt", "w") file:write("0") file:close() @@ -94,8 +94,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 8 and upgrade then - Island_Pier(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=171, y=6, z=38}, minetest.get_modpath("castrum").."/schematics/Island_Pier/Island_Pier_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Pier.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Pier2.lua b/mods/castrum/nodes/Island_Pier2.lua index 59916b8..e692b47 100644 --- a/mods/castrum/nodes/Island_Pier2.lua +++ b/mods/castrum/nodes/Island_Pier2.lua @@ -60,7 +60,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_pier2" then for k, v in pairs(fields) do if v == "del" then - Island_Pier2(0,player) + minetest.place_schematic({x=176, y=6, z=42}, minetest.get_modpath("castrum").."/schematics/Island_Pier2/Island_Pier2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Pier2.txt", "w") file:write("0") file:close() @@ -94,8 +94,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 4 and upgrade then - Island_Pier2(tonumber(level)+1,player) + if (tonumber(level)) < 4 and upgrade or buildings_costs == false then + minetest.place_schematic({x=176, y=6, z=42}, minetest.get_modpath("castrum").."/schematics/Island_Pier2/Island_Pier2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Pier2.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Ship1.lua b/mods/castrum/nodes/Island_Ship1.lua index ef7102b..083f1db 100644 --- a/mods/castrum/nodes/Island_Ship1.lua +++ b/mods/castrum/nodes/Island_Ship1.lua @@ -60,7 +60,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_ship1" then for k, v in pairs(fields) do if v == "del" then - Ship1(0,player) + Update_Ship1(0,false) file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "w") file:write("0") file:close() @@ -94,8 +94,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 7 and upgrade then - Ship1(tonumber(level)+1,player) + if (tonumber(level)) < 7 and upgrade or buildings_costs == false then + Update_Ship1(tonumber(level)+1,false) file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Smithy.lua b/mods/castrum/nodes/Island_Smithy.lua index c5fdd8d..cb73157 100644 --- a/mods/castrum/nodes/Island_Smithy.lua +++ b/mods/castrum/nodes/Island_Smithy.lua @@ -96,7 +96,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_smithy" then for k, v in pairs(fields) do if v == "del" then - Island_Smithy(0,player) + minetest.place_schematic({x=165, y=9, z=20}, minetest.get_modpath("castrum").."/schematics/Island_Smithy/Island_Smithy_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Smithy.txt", "w") file:write("0") file:close() @@ -121,8 +121,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 6 and upgrade then - Island_Smithy(tonumber(level)+1,player) + if (tonumber(level)) < 6 and upgrade or buildings_costs == false then + minetest.place_schematic({x=165, y=9, z=20}, minetest.get_modpath("castrum").."/schematics/Island_Smithy/Island_Smithy_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Smithy.txt", "w") file:write(tonumber(level)+1) file:close() @@ -138,18 +138,26 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "craft2" then for k, v in pairs(fields) do if v == "Craft" then - if player:get_attribute("3need1string") then - if player:get_inventory():contains_item("main", player:get_attribute("3need1string")) and player:get_inventory():contains_item("main", player:get_attribute("3need2string")) and player:get_inventory():contains_item("main", player:get_attribute("3need3string")) then - player:get_inventory():remove_item("main", player:get_attribute("3need1string")) - player:get_inventory():remove_item("main", player:get_attribute("3need2string")) - player:get_inventory():remove_item("main", player:get_attribute("3need3string")) - player:get_inventory():add_item("main", player:get_attribute("3itemstring")) - else - minetest.chat_send_player(player:get_player_name(), "not enough items") - end - else - minetest.chat_send_player(player:get_player_name(), "select item first") - end + if player:get_attribute("3need1string") and player:get_attribute("3need2string") and player:get_attribute("3need3string") and player:get_attribute("3need3string") ~= "" then + if player:get_inventory():contains_item("main", player:get_attribute("3need1string")) or player:get_attribute("3need1string") == "air" then + if player:get_inventory():contains_item("main", player:get_attribute("3need2string")) or player:get_attribute("3need2string") == "air" then + if player:get_inventory():contains_item("main", player:get_attribute("3need3string")) or player:get_attribute("3need3string") == "air" then + player:get_inventory():remove_item("main", player:get_attribute("3need1string")) + player:get_inventory():remove_item("main", player:get_attribute("3need2string")) + player:get_inventory():remove_item("main", player:get_attribute("3need3string")) + player:get_inventory():add_item("main", player:get_attribute("3itemstring")) + else + minetest.chat_send_player(player:get_player_name(), "not enough items") + end + else + minetest.chat_send_player(player:get_player_name(), "not enough items") + end + else + minetest.chat_send_player(player:get_player_name(), "not enough items") + end + else + minetest.chat_send_player(player:get_player_name(), "select item first") + end elseif v == "Glass" then player:set_attribute("3item", "Glass") player:set_attribute("3need1", "25 Sand") @@ -167,7 +175,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("3need3", "") player:set_attribute("3need1string", "default:sand 25") player:set_attribute("3need2string", "default:cactus 15") - player:set_attribute("3need3string", "") + player:set_attribute("3need3string", "air") player:set_attribute("3itemstring", "castrum:pirate_soul") minetest.show_formspec(player:get_player_name(), "craft2" , craft2.get_formspec(player)) elseif v == "X" then diff --git a/mods/castrum/nodes/Island_Walle.lua b/mods/castrum/nodes/Island_Walle.lua index cae99ce..3988d0c 100644 --- a/mods/castrum/nodes/Island_Walle.lua +++ b/mods/castrum/nodes/Island_Walle.lua @@ -58,7 +58,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_walle" then for k, v in pairs(fields) do if v == "del" then - Island_Walle(0,player) + minetest.place_schematic({x=178, y=9, z=-27}, minetest.get_modpath("castrum").."/schematics/Island_Walle/Island_Walle_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Walle.txt", "w") file:write("0") file:close() @@ -85,8 +85,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 8 and upgrade then - Island_Walle(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=178, y=9, z=-27}, minetest.get_modpath("castrum").."/schematics/Island_Walle/Island_Walle_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Walle.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Walln.lua b/mods/castrum/nodes/Island_Walln.lua index 2ca8819..7748692 100644 --- a/mods/castrum/nodes/Island_Walln.lua +++ b/mods/castrum/nodes/Island_Walln.lua @@ -58,7 +58,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_walln" then for k, v in pairs(fields) do if v == "del" then - Island_Walln(0,player) + minetest.place_schematic({x=119, y=9, z=33}, minetest.get_modpath("castrum").."/schematics/Island_Walln/Island_Walln_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Walln.txt", "w") file:write("0") file:close() @@ -85,8 +85,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 8 and upgrade then - Island_Walln(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=119, y=9, z=33}, minetest.get_modpath("castrum").."/schematics/Island_Walln/Island_Walln_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Walln.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Walls.lua b/mods/castrum/nodes/Island_Walls.lua index 079d1ae..07f74b4 100644 --- a/mods/castrum/nodes/Island_Walls.lua +++ b/mods/castrum/nodes/Island_Walls.lua @@ -58,7 +58,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_walls" then for k, v in pairs(fields) do if v == "del" then - Island_Walls(0,player) + minetest.place_schematic({x=119, y=9, z=-27}, minetest.get_modpath("castrum").."/schematics/Island_Walls/Island_Walls_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Walls.txt", "w") file:write("0") file:close() @@ -85,8 +85,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 8 and upgrade then - Island_Walls(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=119, y=9, z=-27}, minetest.get_modpath("castrum").."/schematics/Island_Walls/Island_Walls_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Walls.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Island_Wallw.lua b/mods/castrum/nodes/Island_Wallw.lua index 55b1a75..7792db5 100644 --- a/mods/castrum/nodes/Island_Wallw.lua +++ b/mods/castrum/nodes/Island_Wallw.lua @@ -58,7 +58,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "island_wallw" then for k, v in pairs(fields) do if v == "del" then - Island_Wallw(0,player) + minetest.place_schematic({x=118, y=9, z=-27}, minetest.get_modpath("castrum").."/schematics/Island_Wallw/Island_Wallw_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Wallw.txt", "w") file:write("0") file:close() @@ -85,8 +85,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 8 and upgrade then - Island_Wallw(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=118, y=9, z=-27}, minetest.get_modpath("castrum").."/schematics/Island_Wallw/Island_Wallw_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Island_Wallw.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Lake.lua b/mods/castrum/nodes/Lake.lua index 635bd57..d7a22af 100644 --- a/mods/castrum/nodes/Lake.lua +++ b/mods/castrum/nodes/Lake.lua @@ -65,7 +65,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "lake" then for k, v in pairs(fields) do if v == "del" then - Lake(0,player) + minetest.place_schematic({x=-34, y=8, z=-58}, minetest.get_modpath("castrum").."/schematics/Lake/Lake_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Lake.txt", "w") file:write("0") file:close() @@ -103,8 +103,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 4 and upgrade then - Lake(tonumber(level)+1,player) + if (tonumber(level)) < 4 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-34, y=8, z=-58}, minetest.get_modpath("castrum").."/schematics/Lake/Lake_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Lake.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Lake2.lua b/mods/castrum/nodes/Lake2.lua index f728d8d..17dec4f 100644 --- a/mods/castrum/nodes/Lake2.lua +++ b/mods/castrum/nodes/Lake2.lua @@ -65,7 +65,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "lake2" then for k, v in pairs(fields) do if v == "del" then - Lake2(0,player) + minetest.place_schematic({x=-34, y=8, z=-67}, minetest.get_modpath("castrum").."/schematics/Lake2/Lake2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Lake2.txt", "w") file:write("0") file:close() @@ -103,8 +103,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 4 and upgrade then - Lake2(tonumber(level)+1,player) + if (tonumber(level)) < 4 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-34, y=8, z=-67}, minetest.get_modpath("castrum").."/schematics/Lake2/Lake2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Lake2.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Market.lua b/mods/castrum/nodes/Market.lua new file mode 100644 index 0000000..f5dc344 --- /dev/null +++ b/mods/castrum/nodes/Market.lua @@ -0,0 +1,91 @@ +dofile(minetest.get_modpath("castrum").."/config.txt") +local market = {} +market.get_formspec = function(player, pos) + if player == nil then + return + end + file = io.open(minetest.get_worldpath().."/SAVE/Market.txt", "r") + local level = file:read("*l") + file:close() + local label = "" + local label2 = "" + local need1 = "" + local need2 = "" + local need3 = "" + local need4 = "" + if tonumber(level) < 1 then + label = "not build yet ("..math.floor((level/1)*100).."%)" + label2 = "Build" + need1 = "Completed island chapter 1" + else + label = (level).."/1" + label2 = "Upgrade (comming soon)" + end + formspec = "size[5,6.5]" + .."background[5,6.5;1,1;gui_formbg.png;true]" + .."listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF]" + .."bgcolor[#080808BB;true]" + .."label[0,0;Level: "..label.."]" + .."label[0,0.5;You need:]" + .."label[0,0.8;"..need1.."]" + .."label[0,1.1;"..need2.."]" + .."label[0,1.4;"..need3.."]" + .."label[0,1.7;"..need4.."]" + .."button[0,2;5,1;;"..label2.."]" + .."image_button[4.5,-0.3;0.8,0.8;;esc;X]" + if del_button == true then + formspec = formspec.."button[0,3;5,1;;del]" + end + return formspec +end + +minetest.register_node("castrum:market",{ + tiles = {"default_diamond_block.png"}, + description = "Configurate Market", + --groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + on_punch = function(pos, node, player, pointed_thing) + minetest.show_formspec(player:get_player_name(), "market" , market.get_formspec(player)) + end, +}) + +minetest.register_on_player_receive_fields(function(player, formname, fields) + local player_inv = player:get_inventory() + if formname == "market" then + for k, v in pairs(fields) do + if v == "del" then + minetest.place_schematic({x=-44, y=9, z=-92}, minetest.get_modpath("castrum").."/schematics/Market/Market_0.mts","0") + file = io.open(minetest.get_worldpath().."/SAVE/Market.txt", "w") + file:write("0") + file:close() + minetest.show_formspec(player:get_player_name(), "market" , market.get_formspec(player)) + elseif v == "Upgrade" or v == "Build" then + file = io.open(minetest.get_worldpath().."/SAVE/Market.txt", "r") + local level = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Island_Chapter.txt", "r") + local chapter = file:read("*l") + file:close() + local inv = player:get_inventory() + local upgrade = false + local txt = "not enough items" + if tonumber(level) < 1 and tonumber(chapter) > 1 then + upgrade = true + else + txt = "complete island chapter 1 first" + end + if upgrade == false then + minetest.chat_send_player(player:get_player_name(), txt) + end + if (tonumber(level)) < 1 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-44, y=9, z=-92}, minetest.get_modpath("castrum").."/schematics/Market/Market_"..(tonumber(level)+1)..".mts","0") + file = io.open(minetest.get_worldpath().."/SAVE/Market.txt", "w") + file:write(tonumber(level)+1) + file:close() + end + minetest.show_formspec(player:get_player_name(), "market" , market.get_formspec(player)) + elseif v == "X" then + minetest.show_formspec(player:get_player_name(), "", "") + end + end + end +end) \ No newline at end of file diff --git a/mods/castrum/nodes/Meadow.lua b/mods/castrum/nodes/Meadow.lua index 1ef9fe6..da38888 100644 --- a/mods/castrum/nodes/Meadow.lua +++ b/mods/castrum/nodes/Meadow.lua @@ -18,8 +18,13 @@ meadow.get_formspec = function(player, pos) label2 = "Build" need1 = "80 Water Buckets" need2 = "Mountain Fountain lv.2" + elseif tonumber(level) == 9 then + label = (level-8).."/2" + label2 = "Upgrade" + need1 = "160 Water Buckets" + need2 = "Completed island chapter 2" else - label = (level-8).."/1" + label = (level-8).."/2" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -54,7 +59,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "meadow" then for k, v in pairs(fields) do if v == "del" then - Meadow(0,player) + minetest.place_schematic({x=318, y=39, z=-1}, minetest.get_modpath("castrum").."/schematics/Meadow/Meadow_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Meadow.txt", "w") file:write("0") file:close() @@ -65,6 +70,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) file:close() file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Fountain.txt", "r") local fountain = file:read("*l") + file:close() + file = io.open(minetest.get_worldpath().."/SAVE/Island_Chapter.txt", "r") + local chapter = file:read("*l") file:close() local inv = player:get_inventory() local upgrade = false @@ -74,12 +82,17 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) < 9 and inv:contains_item("main", "castrum:bucket_water 80") then txt = "upgrade mountain fountain to lv.2 first" + elseif tonumber(level) == 9 and inv:contains_item("main", "castrum:bucket_water 160") and tonumber(chapter) > 2 then + Item_Remove2(player, "main", "castrum:bucket_water 160") + upgrade = true + elseif tonumber(level) == 9 and inv:contains_item("main", "castrum:bucket_water 160") then + txt = "complete island chapter 2 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 9 and upgrade then - Meadow(tonumber(level)+1,player) + if (tonumber(level)) < 10 and upgrade or buildings_costs == false then + minetest.place_schematic({x=318, y=39, z=-1}, minetest.get_modpath("castrum").."/schematics/Meadow/Meadow_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Meadow.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Mine.lua b/mods/castrum/nodes/Mine.lua index 802e39f..1566923 100644 --- a/mods/castrum/nodes/Mine.lua +++ b/mods/castrum/nodes/Mine.lua @@ -73,7 +73,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "mine" then for k, v in pairs(fields) do if v == "del" then - Mine(0,player) + minetest.place_schematic({x=-20, y=9, z=-15}, minetest.get_modpath("castrum").."/schematics/Mine/Mine_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Mine.txt", "w") file:write("0") file:close() @@ -119,8 +119,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 6 and upgrade then - Mine(tonumber(level)+1,player) + if (tonumber(level)) < 6 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-20, y=9, z=-15}, minetest.get_modpath("castrum").."/schematics/Mine/Mine_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Mine.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Moat_east.lua b/mods/castrum/nodes/Moat_east.lua index 5711d47..212c6b2 100644 --- a/mods/castrum/nodes/Moat_east.lua +++ b/mods/castrum/nodes/Moat_east.lua @@ -66,7 +66,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "moate" then for k, v in pairs(fields) do if v == "del" then - Moat_east(0,player) + minetest.place_schematic({x=-5, y=4, z=-31}, minetest.get_modpath("castrum").."/schematics/Moate/Moate_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Moate.txt", "w") file:write("0") file:close() @@ -102,8 +102,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 11 and upgrade then - Moat_east(tonumber(level)+1,player) + if (tonumber(level)) < 11 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-5, y=4, z=-31}, minetest.get_modpath("castrum").."/schematics/Moate/Moate_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Moate.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Moat_north.lua b/mods/castrum/nodes/Moat_north.lua index 90e7086..f092731 100644 --- a/mods/castrum/nodes/Moat_north.lua +++ b/mods/castrum/nodes/Moat_north.lua @@ -66,7 +66,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "moatn" then for k, v in pairs(fields) do if v == "del" then - Moat_north(0,player) + minetest.place_schematic({x=-83, y=4, z=38}, minetest.get_modpath("castrum").."/schematics/Moatn/Moatn_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Moatn.txt", "w") file:write("0") file:close() @@ -102,8 +102,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 11 and upgrade then - Moat_north(tonumber(level)+1,player) + if (tonumber(level)) < 11 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-83, y=4, z=38}, minetest.get_modpath("castrum").."/schematics/Moatn/Moatn_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Moatn.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Moat_south.lua b/mods/castrum/nodes/Moat_south.lua index 01aea15..ff7c7a8 100644 --- a/mods/castrum/nodes/Moat_south.lua +++ b/mods/castrum/nodes/Moat_south.lua @@ -66,7 +66,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "moats" then for k, v in pairs(fields) do if v == "del" then - Moat_south(0,player) + minetest.place_schematic({x=-83, y=4, z=-40}, minetest.get_modpath("castrum").."/schematics/Moats/Moats_0.mts","0") + Bridge_Status(player,false,true) file = io.open(minetest.get_worldpath().."/SAVE/Moats.txt", "w") file:write("0") file:close() @@ -102,8 +103,9 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 11 and upgrade then - Moat_south(tonumber(level)+1,player) + if (tonumber(level)) < 11 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-83, y=4, z=-40}, minetest.get_modpath("castrum").."/schematics/Moats/Moats_"..(tonumber(level)+1)..".mts","0") + Bridge_Status(player,false,true) file = io.open(minetest.get_worldpath().."/SAVE/Moats.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Moat_west.lua b/mods/castrum/nodes/Moat_west.lua index fc86d84..ac6dad5 100644 --- a/mods/castrum/nodes/Moat_west.lua +++ b/mods/castrum/nodes/Moat_west.lua @@ -66,7 +66,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "moatw" then for k, v in pairs(fields) do if v == "del" then - Moat_west(0,player) + minetest.place_schematic({x=-83, y=4, z=-31}, minetest.get_modpath("castrum").."/schematics/Moatw/Moatw_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Moatw.txt", "w") file:write("0") file:close() @@ -102,8 +102,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 11 and upgrade then - Moat_west(tonumber(level)+1,player) + if (tonumber(level)) < 11 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-83, y=4, z=-31}, minetest.get_modpath("castrum").."/schematics/Moatw/Moatw_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Moatw.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Mountain_Fountain.lua b/mods/castrum/nodes/Mountain_Fountain.lua index a398a4a..feeef70 100644 --- a/mods/castrum/nodes/Mountain_Fountain.lua +++ b/mods/castrum/nodes/Mountain_Fountain.lua @@ -57,7 +57,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "mountain_fountain" then for k, v in pairs(fields) do if v == "del" then - Mountain_Fountain(0,player) + minetest.place_schematic({x=334, y=40, z=-6}, minetest.get_modpath("castrum").."/schematics/Mountain_Fountain/Mountain_Fountain_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Fountain.txt", "w") file:write("0") file:close() @@ -79,8 +79,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 4 and upgrade then - Mountain_Fountain(tonumber(level)+1,player) + if (tonumber(level)) < 4 and upgrade or buildings_costs == false then + minetest.place_schematic({x=334, y=40, z=-6}, minetest.get_modpath("castrum").."/schematics/Mountain_Fountain/Mountain_Fountain_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Fountain.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Mountain_Quarry.lua b/mods/castrum/nodes/Mountain_Quarry.lua index 1ccf440..6bd900b 100644 --- a/mods/castrum/nodes/Mountain_Quarry.lua +++ b/mods/castrum/nodes/Mountain_Quarry.lua @@ -57,7 +57,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "mountain_quarry" then for k, v in pairs(fields) do if v == "del" then - Mountain_Quarry(0,player) + minetest.place_schematic({x=345, y=39, z=-16}, minetest.get_modpath("castrum").."/schematics/Mountain_Quarry/Mountain_Quarry_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Quarry.txt", "w") file:write("0") file:close() @@ -84,8 +84,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 2 and upgrade then - Mountain_Quarry(tonumber(level)+1,player) + if (tonumber(level)) < 2 and upgrade or buildings_costs == false then + minetest.place_schematic({x=345, y=39, z=-16}, minetest.get_modpath("castrum").."/schematics/Mountain_Quarry/Mountain_Quarry_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Quarry.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Mountain_Smithy.lua b/mods/castrum/nodes/Mountain_Smithy.lua index cdbcb16..8b49622 100644 --- a/mods/castrum/nodes/Mountain_Smithy.lua +++ b/mods/castrum/nodes/Mountain_Smithy.lua @@ -77,6 +77,7 @@ craft3.get_formspec = function(player, pos) .."button[0,2;5,1;;Craft]" .."button[0,3;1,1;;White\nWool]" .."button[1,3;1,1;;Pink\nWool]" + .."button[2,3;1,1;;Yellow\nWool]" .."image_button[4.5,-0.3;0.8,0.8;;esc;X]" .."image_button[3.9,-0.3;0.8,0.8;;back;<]" return formspec @@ -96,7 +97,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "mountain_smithy" then for k, v in pairs(fields) do if v == "del" then - Mountain_Smithy(0,player) + minetest.place_schematic({x=318, y=40, z=-15}, minetest.get_modpath("castrum").."/schematics/Mountain_Smithy/Mountain_Smithy_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Smithy.txt", "w") file:write("0") file:close() @@ -121,8 +122,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 6 and upgrade then - Mountain_Smithy(tonumber(level)+1,player) + if (tonumber(level)) < 6 and upgrade or buildings_costs == false then + minetest.place_schematic({x=318, y=40, z=-15}, minetest.get_modpath("castrum").."/schematics/Mountain_Smithy/Mountain_Smithy_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Smithy.txt", "w") file:write(tonumber(level)+1) file:close() @@ -179,6 +180,16 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("6need2string", "flowers:rose 4") player:set_attribute("6need3string", "flowers:dandelion_white 4") player:set_attribute("6itemstring", "wool:pink") + minetest.show_formspec(player:get_player_name(), "craft3" , craft3.get_formspec(player)) + elseif v == "Yellow\nWool" then + player:set_attribute("6item", "Yellow Wool") + player:set_attribute("6need1", "1 Pink Wool") + player:set_attribute("6need2", "8 Yellow Dandelion") + player:set_attribute("6need3", "") + player:set_attribute("6need1string", "wool:pink") + player:set_attribute("6need2string", "flowers:dandelion_yellow 8") + player:set_attribute("6need3string", "") + player:set_attribute("6itemstring", "wool:yellow") minetest.show_formspec(player:get_player_name(), "craft3" , craft3.get_formspec(player)) elseif v == "X" then minetest.show_formspec(player:get_player_name(), "", "") diff --git a/mods/castrum/nodes/Pier.lua b/mods/castrum/nodes/Pier.lua index 1df9c96..5fe0822 100644 --- a/mods/castrum/nodes/Pier.lua +++ b/mods/castrum/nodes/Pier.lua @@ -18,15 +18,19 @@ pier.get_formspec = function(player, pos) label2 = "Build" need1 = "5 Wooden Planks" elseif tonumber(level) == 5 then - label = (level-4).."/3" + label = (level-4).."/4" label2 = "Upgrade" need1 = "25 Jungle Wood Planks" elseif tonumber(level) == 6 then - label = (level-4).."/3" + label = (level-4).."/4" label2 = "Upgrade" need1 = "100 Pine Wood Planks" + elseif tonumber(level) == 7 then + label = (level-4).."/4" + label2 = "Upgrade" + need1 = "300 Acacia Wood Planks" else - label = (level-4).."/3" + label = (level-4).."/4" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -61,7 +65,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "pier" then for k, v in pairs(fields) do if v == "del" then - Pier(0,player) + Update_Pier(0,false) file = io.open(minetest.get_worldpath().."/SAVE/Pier.txt", "w") file:write("0") file:close() @@ -82,12 +86,15 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) elseif tonumber(level) == 6 and inv:contains_item("main", "default:pine_wood 100") then Item_Remove2(player, "main", "default:pine_wood 100") upgrade = true - end + elseif tonumber(level) == 7 and inv:contains_item("main", "default:acacia_wood 300") then + Item_Remove2(player, "main", "default:acacia_wood 300") + upgrade = true + end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 7 and upgrade then - Pier(tonumber(level)+1,player) + if (tonumber(level)) < 7 and upgrade or buildings_costs == false then + Update_Pier(tonumber(level)+1,false) file = io.open(minetest.get_worldpath().."/SAVE/Pier.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Quarry.lua b/mods/castrum/nodes/Quarry.lua index 1002455..93acba0 100644 --- a/mods/castrum/nodes/Quarry.lua +++ b/mods/castrum/nodes/Quarry.lua @@ -72,7 +72,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "quarry" then for k, v in pairs(fields) do if v == "del" then - Quarry(0,player) + minetest.place_schematic({x=-20, y=9, z=-2}, minetest.get_modpath("castrum").."/schematics/Quarry/Quarry_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Quarry.txt", "w") file:write("0") file:close() @@ -118,8 +118,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 6 and upgrade then - Quarry(tonumber(level)+1,player) + if (tonumber(level)) < 6 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-20, y=9, z=-2}, minetest.get_modpath("castrum").."/schematics/Quarry/Quarry_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Quarry.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Sail1.lua b/mods/castrum/nodes/Sail1.lua index f170ff2..4b46c01 100644 --- a/mods/castrum/nodes/Sail1.lua +++ b/mods/castrum/nodes/Sail1.lua @@ -18,12 +18,17 @@ sail1.get_formspec = function(player, pos) label2 = "Build" need1 = "9 White Wool" elseif tonumber(level) == 1 then - label = (level).."/2" + label = (level).."/3" label2 = "Upgrade" need1 = "9 Pink Wool" need2 = "Completed island chapter 1" + elseif tonumber(level) == 2 then + label = (level).."/3" + label2 = "Upgrade" + need1 = "9 Yellow Wool" + need2 = "Completed island chapter 2" else - label = (level).."/2" + label = (level).."/3" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -58,7 +63,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "sail1" then for k, v in pairs(fields) do if v == "del" then - Sail1(0,player) + minetest.place_schematic({x=161, y=12, z=44}, minetest.get_modpath("castrum").."/schematics/Sail1/Sail1_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Sail1.txt", "w") file:write("0") file:close() @@ -81,12 +86,17 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 1 and inv:contains_item("main", "wool:pink 9") then txt = "complete island chapter 1 first" + elseif tonumber(level) == 2 and inv:contains_item("main", "wool:yellow 9") and tonumber(chapter) > 2 then + Item_Remove2(player, "main", "wool:yellow 9") + upgrade = true + elseif tonumber(level) == 2 and inv:contains_item("main", "wool:yellow 9") then + txt = "complete island chapter 2 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 2 and upgrade then - Sail1(tonumber(level)+1,player) + if (tonumber(level)) < 3 and upgrade or buildings_costs == false then + minetest.place_schematic({x=161, y=12, z=44}, minetest.get_modpath("castrum").."/schematics/Sail1/Sail1_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Sail1.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Sail2.lua b/mods/castrum/nodes/Sail2.lua index bae6990..df84293 100644 --- a/mods/castrum/nodes/Sail2.lua +++ b/mods/castrum/nodes/Sail2.lua @@ -18,12 +18,17 @@ sail2.get_formspec = function(player, pos) label2 = "Build" need1 = "4 White Wool" elseif tonumber(level) == 1 then - label = (level).."/2" + label = (level).."/3" label2 = "Upgrade" need1 = "4 Pink Wool" need2 = "Completed island chapter 1" + elseif tonumber(level) == 2 then + label = (level).."/3" + label2 = "Upgrade" + need1 = "4 Yellow Wool" + need2 = "Completed island chapter 2" else - label = (level).."/2" + label = (level).."/3" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -58,7 +63,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "sail2" then for k, v in pairs(fields) do if v == "del" then - Sail2(0,player) + minetest.place_schematic({x=163, y=11, z=50}, minetest.get_modpath("castrum").."/schematics/Sail2/Sail2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Sail2.txt", "w") file:write("0") file:close() @@ -81,12 +86,17 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 1 and inv:contains_item("main", "wool:pink 4") then txt = "complete island chapter 1 first" + elseif tonumber(level) == 2 and inv:contains_item("main", "wool:yellow 4") and tonumber(chapter) > 2 then + Item_Remove2(player, "main", "wool:yellow 4") + upgrade = true + elseif tonumber(level) == 2 and inv:contains_item("main", "wool:yellow 4") then + txt = "complete island chapter 2 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 2 and upgrade then - Sail2(tonumber(level)+1,player) + if (tonumber(level)) < 3 and upgrade or buildings_costs == false then + minetest.place_schematic({x=163, y=11, z=50}, minetest.get_modpath("castrum").."/schematics/Sail2/Sail2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Sail2.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Sandmine.lua b/mods/castrum/nodes/Sandmine.lua index 5721d4e..9d8295b 100644 --- a/mods/castrum/nodes/Sandmine.lua +++ b/mods/castrum/nodes/Sandmine.lua @@ -64,7 +64,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "sandmine" then for k, v in pairs(fields) do if v == "del" then - Sandmine(0,player) + minetest.place_schematic({x=123, y=8, z=6}, minetest.get_modpath("castrum").."/schematics/Sandmine/Sandmine_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Sandmine.txt", "w") file:write("0") file:close() @@ -102,8 +102,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 4 and upgrade then - Sandmine(tonumber(level)+1,player) + if (tonumber(level)) < 4 and upgrade or buildings_costs == false then + minetest.place_schematic({x=123, y=8, z=6}, minetest.get_modpath("castrum").."/schematics/Sandmine/Sandmine_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Sandmine.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Ship1.lua b/mods/castrum/nodes/Ship1.lua index 8e57f73..2cb3f58 100644 --- a/mods/castrum/nodes/Ship1.lua +++ b/mods/castrum/nodes/Ship1.lua @@ -75,7 +75,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "ship1" then for k, v in pairs(fields) do if v == "del" then - Ship1(0,player) + Update_Ship1(0,false) file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "w") file:write("0") file:close() @@ -109,8 +109,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 7 and upgrade then - Ship1(tonumber(level)+1,player) + if (tonumber(level)) < 7 and upgrade or buildings_costs == false then + Update_Ship1(tonumber(level)+1,false) file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Ship2.lua b/mods/castrum/nodes/Ship2.lua index 6387a14..74f87ea 100644 --- a/mods/castrum/nodes/Ship2.lua +++ b/mods/castrum/nodes/Ship2.lua @@ -54,7 +54,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "ship2" then for k, v in pairs(fields) do if v == "del" then - Ship2(0,player) + minetest.place_schematic({x=161, y=7, z=39}, minetest.get_modpath("castrum").."/schematics/Ship2/Ship2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Ship2.txt", "w") file:write("0") file:close() @@ -78,8 +78,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 14 and upgrade then - Ship2(tonumber(level)+1,player) + if (tonumber(level)) < 14 and upgrade or buildings_costs == false then + minetest.place_schematic({x=161, y=7, z=39}, minetest.get_modpath("castrum").."/schematics/Ship2/Ship2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Ship2.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Smithy.lua b/mods/castrum/nodes/Smithy.lua index e861eaf..f106fea 100644 --- a/mods/castrum/nodes/Smithy.lua +++ b/mods/castrum/nodes/Smithy.lua @@ -120,7 +120,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "smithy" then for k, v in pairs(fields) do if v == "del" then - Smithy(0,player) + minetest.place_schematic({x=-69, y=9, z=-14}, minetest.get_modpath("castrum").."/schematics/Smithy/Smithy_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Smithy.txt", "w") file:write("0") file:close() @@ -143,7 +143,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) Item_Remove2(player, "main", "default:cobble 80") Item_Remove2(player, "main", "default:wood 60") upgrade = true - elseif tonumber(level) == 7 and inv:contains_item("main", "default:desert_cobble 80") and inv:contains_item("main", "default:junglewood 60") and tonumber(fountain) > 5 then + elseif tonumber(level) == 7 and inv:contains_item("main", "default:desert_cobble 80") and inv:contains_item("main", "default:junglewood 60") and tonumber(fountain) > 7 then Item_Remove2(player, "main", "default:desert_cobble 80") Item_Remove2(player, "main", "default:junglewood 60") upgrade = true @@ -157,8 +157,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 8 and upgrade then - Smithy(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-69, y=9, z=-14}, minetest.get_modpath("castrum").."/schematics/Smithy/Smithy_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Smithy.txt", "w") file:write(tonumber(level)+1) file:close() @@ -174,12 +174,20 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "craft" then for k, v in pairs(fields) do if v == "Craft" then - if player:get_attribute("need1string") then - if player:get_inventory():contains_item("main", player:get_attribute("need1string")) and player:get_inventory():contains_item("main", player:get_attribute("need2string")) and player:get_inventory():contains_item("main", player:get_attribute("need3string")) then - player:get_inventory():remove_item("main", player:get_attribute("need1string")) - player:get_inventory():remove_item("main", player:get_attribute("need2string")) - player:get_inventory():remove_item("main", player:get_attribute("need3string")) - player:get_inventory():add_item("main", player:get_attribute("itemstring")) + if player:get_attribute("need1string") and player:get_attribute("need2string") and player:get_attribute("need3string") and player:get_attribute("need3string") ~= "" then + if player:get_inventory():contains_item("main", player:get_attribute("need1string")) or player:get_attribute("need1string") == "air" then + if player:get_inventory():contains_item("main", player:get_attribute("need2string")) or player:get_attribute("need2string") == "air" then + if player:get_inventory():contains_item("main", player:get_attribute("need3string")) or player:get_attribute("need3string") == "air" then + player:get_inventory():remove_item("main", player:get_attribute("need1string")) + player:get_inventory():remove_item("main", player:get_attribute("need2string")) + player:get_inventory():remove_item("main", player:get_attribute("need3string")) + player:get_inventory():add_item("main", player:get_attribute("itemstring")) + else + minetest.chat_send_player(player:get_player_name(), "not enough items") + end + else + minetest.chat_send_player(player:get_player_name(), "not enough items") + end else minetest.chat_send_player(player:get_player_name(), "not enough items") end @@ -193,7 +201,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:cobble 25") player:set_attribute("need2string", "default:wood 15") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:soul") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Steel\nIngot" then @@ -203,7 +211,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:coal_lump 2") player:set_attribute("need2string", "default:iron_lump") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "default:steel_ingot") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Bronze\nIngot" then @@ -223,7 +231,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:cobble") player:set_attribute("need2string", "default:wood 2") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:shovel_stone") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Stone\nPickaxe" then @@ -233,7 +241,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:cobble 3") player:set_attribute("need2string", "default:wood 2") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:pick_stone") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Stone\nSword" then @@ -243,7 +251,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:cobble 2") player:set_attribute("need2string", "default:wood") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:sword_stone") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Steel\nShovel" then @@ -253,7 +261,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:steel_ingot") player:set_attribute("need2string", "default:junglewood 2") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:shovel_steel") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Steel\nPickaxe" then @@ -263,7 +271,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:steel_ingot 3") player:set_attribute("need2string", "default:junglewood 2") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:pick_steel") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Steel\nSword" then @@ -273,7 +281,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:steel_ingot 2") player:set_attribute("need2string", "default:junglewood") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:sword_steel") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Bronze\nShovel" then @@ -283,7 +291,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:bronze_ingot") player:set_attribute("need2string", "default:pine_wood 2") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:shovel_bronze") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Bronze\nPickaxe" then @@ -293,7 +301,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:bronze_ingot 3") player:set_attribute("need2string", "default:pine_wood 2") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:pick_bronze") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "Bronze\nSword" then @@ -303,7 +311,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) player:set_attribute("need1string", "default:bronze_ingot 2") player:set_attribute("need2string", "default:pine_wood") player:set_attribute("need3", "") - player:set_attribute("need3string", "") + player:set_attribute("need3string", "air") player:set_attribute("itemstring", "castrum:sword_bronze") minetest.show_formspec(player:get_player_name(), "craft" , craft.get_formspec(player)) elseif v == "X" then diff --git a/mods/castrum/nodes/Stable.lua b/mods/castrum/nodes/Stable.lua index 857fd40..094473f 100644 --- a/mods/castrum/nodes/Stable.lua +++ b/mods/castrum/nodes/Stable.lua @@ -106,7 +106,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "stable" then for k, v in pairs(fields) do if v == "del" then - Stable(0,player) + minetest.place_schematic({x=-69, y=9, z=-1}, minetest.get_modpath("castrum").."/schematics/Stable/Stable_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Stable.txt", "w") file:write("0") file:close() @@ -137,8 +137,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 8 and upgrade then - Stable(tonumber(level)+1,player) + if (tonumber(level)) < 8 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-69, y=9, z=-1}, minetest.get_modpath("castrum").."/schematics/Stable/Stable_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Stable.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Tower1.lua b/mods/castrum/nodes/Tower1.lua index 8afc447..c5cda89 100644 --- a/mods/castrum/nodes/Tower1.lua +++ b/mods/castrum/nodes/Tower1.lua @@ -18,37 +18,43 @@ tower1.get_formspec = function(player, pos) label2 = "Build" need1 = "3 Cobblestone" elseif tonumber(level) == 18 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "10 Cobblestone" need2 = "3 Stone Sword" need3 = "Fountain lv.1" elseif tonumber(level) == 19 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "40 Cobblestone" need2 = "12 Stone Sword" need3 = "Fountain lv.2" elseif tonumber(level) == 20 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "40 Desert Cobblestone" need2 = "12 Steel Sword" need3 = "Fountain lv.3" elseif tonumber(level) == 21 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "160 Desert Cobblestone" need2 = "48 Steel Sword" need3 = "Fountain lv.4" elseif tonumber(level) == 22 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" - need1 = "320 Desert Cobblestone" + need1 = "160 Desert Cobblestone" need2 = "48 Bronze Sword" need3 = "Fountain lv.5" + elseif tonumber(level) == 23 then + label = (level-17).."/7" + label2 = "Upgrade" + need1 = "320 Desert Cobblestone" + need2 = "96 Bronze Sword" + need3 = "Fountain lv.6" else - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -83,7 +89,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "tower1" then for k, v in pairs(fields) do if v == "del" then - Tower1(0,player) + minetest.place_schematic({x=-13, y=9, z=-31}, minetest.get_modpath("castrum").."/schematics/Tower1/Tower1_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tower1.txt", "w") file:write("0") file:close() @@ -125,18 +131,24 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 21 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_steel 48") then txt = "upgrade fountain to lv.4 first" - elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then - Item_Remove(player,"default:desert_cobble",320) + elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then + Item_Remove(player,"default:desert_cobble",160) Item_Remove2(player, "main", "castrum:sword_bronze 48") upgrade = true - elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") then + elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 23 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") and tonumber(fountain) > 8 then + Item_Remove(player,"default:desert_cobble",320) + Item_Remove2(player, "main", "castrum:sword_bronze 96") + upgrade = true + elseif tonumber(level) == 23 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") then + txt = "upgrade fountain to lv.6 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 23 and upgrade then - Tower1(tonumber(level)+1,player) + if (tonumber(level)) < 24 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-13, y=9, z=-31}, minetest.get_modpath("castrum").."/schematics/Tower1/Tower1_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tower1.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Tower2.lua b/mods/castrum/nodes/Tower2.lua index e254c60..dab4f33 100644 --- a/mods/castrum/nodes/Tower2.lua +++ b/mods/castrum/nodes/Tower2.lua @@ -18,37 +18,43 @@ tower2.get_formspec = function(player, pos) label2 = "Build" need1 = "3 Cobblestone" elseif tonumber(level) == 18 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "10 Cobblestone" need2 = "3 Stone Sword" need3 = "Fountain lv.1" elseif tonumber(level) == 19 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "40 Cobblestone" need2 = "12 Stone Sword" need3 = "Fountain lv.2" elseif tonumber(level) == 20 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "40 Desert Cobblestone" need2 = "12 Steel Sword" need3 = "Fountain lv.3" elseif tonumber(level) == 21 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "160 Desert Cobblestone" need2 = "48 Steel Sword" need3 = "Fountain lv.4" elseif tonumber(level) == 22 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" - need1 = "320 Desert Cobblestone" + need1 = "160 Desert Cobblestone" need2 = "48 Bronze Sword" need3 = "Fountain lv.5" + elseif tonumber(level) == 23 then + label = (level-17).."/7" + label2 = "Upgrade" + need1 = "320 Desert Cobblestone" + need2 = "96 Bronze Sword" + need3 = "Fountain lv.6" else - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -83,7 +89,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "tower2" then for k, v in pairs(fields) do if v == "del" then - Tower2(0,player) + minetest.place_schematic({x=-74, y=9, z=-31}, minetest.get_modpath("castrum").."/schematics/Tower2/Tower2_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tower2.txt", "w") file:write("0") file:close() @@ -125,18 +131,24 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 21 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_steel 48") then txt = "upgrade fountain to lv.4 first" - elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then - Item_Remove(player,"default:desert_cobble",320) + elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then + Item_Remove(player,"default:desert_cobble",160) Item_Remove2(player, "main", "castrum:sword_bronze 48") upgrade = true - elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") then + elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 23 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") and tonumber(fountain) > 8 then + Item_Remove(player,"default:desert_cobble",320) + Item_Remove2(player, "main", "castrum:sword_bronze 96") + upgrade = true + elseif tonumber(level) == 23 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") then + txt = "upgrade fountain to lv.6 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 23 and upgrade then - Tower2(tonumber(level)+1,player) + if (tonumber(level)) < 24 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-74, y=9, z=-31}, minetest.get_modpath("castrum").."/schematics/Tower2/Tower2_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tower2.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Tower3.lua b/mods/castrum/nodes/Tower3.lua index 45b135d..32a5bfb 100644 --- a/mods/castrum/nodes/Tower3.lua +++ b/mods/castrum/nodes/Tower3.lua @@ -18,37 +18,43 @@ tower3.get_formspec = function(player, pos) label2 = "Build" need1 = "3 Cobblestone" elseif tonumber(level) == 18 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "10 Cobblestone" need2 = "3 Stone Sword" need3 = "Fountain lv.1" elseif tonumber(level) == 19 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "40 Cobblestone" need2 = "12 Stone Sword" need3 = "Fountain lv.2" elseif tonumber(level) == 20 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "40 Desert Cobblestone" need2 = "12 Steel Sword" need3 = "Fountain lv.3" elseif tonumber(level) == 21 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "160 Desert Cobblestone" need2 = "48 Steel Sword" need3 = "Fountain lv.4" elseif tonumber(level) == 22 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" - need1 = "320 Desert Cobblestone" + need1 = "160 Desert Cobblestone" need2 = "48 Bronze Sword" need3 = "Fountain lv.5" + elseif tonumber(level) == 23 then + label = (level-17).."/7" + label2 = "Upgrade" + need1 = "320 Desert Cobblestone" + need2 = "96 Bronze Sword" + need3 = "Fountain lv.6" else - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -83,7 +89,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "tower3" then for k, v in pairs(fields) do if v == "del" then - Tower3(0,player) + minetest.place_schematic({x=-74, y=9, z=30}, minetest.get_modpath("castrum").."/schematics/Tower3/Tower3_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tower3.txt", "w") file:write("0") file:close() @@ -125,18 +131,24 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 21 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_steel 48") then txt = "upgrade fountain to lv.4 first" - elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then - Item_Remove(player,"default:desert_cobble",320) + elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then + Item_Remove(player,"default:desert_cobble",160) Item_Remove2(player, "main", "castrum:sword_bronze 48") upgrade = true - elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") then + elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 23 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") and tonumber(fountain) > 8 then + Item_Remove(player,"default:desert_cobble",320) + Item_Remove2(player, "main", "castrum:sword_bronze 96") + upgrade = true + elseif tonumber(level) == 23 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") then + txt = "upgrade fountain to lv.6 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 23 and upgrade then - Tower3(tonumber(level)+1,player) + if (tonumber(level)) < 24 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-74, y=9, z=30}, minetest.get_modpath("castrum").."/schematics/Tower3/Tower3_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tower3.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Tower4.lua b/mods/castrum/nodes/Tower4.lua index d369cd9..2770ca9 100644 --- a/mods/castrum/nodes/Tower4.lua +++ b/mods/castrum/nodes/Tower4.lua @@ -18,37 +18,43 @@ tower4.get_formspec = function(player, pos) label2 = "Build" need1 = "3 Cobblestone" elseif tonumber(level) == 18 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "10 Cobblestone" need2 = "3 Stone Sword" need3 = "Fountain lv.1" elseif tonumber(level) == 19 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "40 Cobblestone" need2 = "12 Stone Sword" need3 = "Fountain lv.2" elseif tonumber(level) == 20 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "40 Desert Cobblestone" need2 = "12 Steel Sword" need3 = "Fountain lv.3" elseif tonumber(level) == 21 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" need1 = "160 Desert Cobblestone" need2 = "48 Steel Sword" need3 = "Fountain lv.4" elseif tonumber(level) == 22 then - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade" - need1 = "320 Desert Cobblestone" + need1 = "160 Desert Cobblestone" need2 = "48 Bronze Sword" need3 = "Fountain lv.5" + elseif tonumber(level) == 23 then + label = (level-17).."/7" + label2 = "Upgrade" + need1 = "320 Desert Cobblestone" + need2 = "96 Bronze Sword" + need3 = "Fountain lv.6" else - label = (level-17).."/6" + label = (level-17).."/7" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -83,7 +89,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "tower4" then for k, v in pairs(fields) do if v == "del" then - Tower4(0,player) + minetest.place_schematic({x=-13, y=9, z=30}, minetest.get_modpath("castrum").."/schematics/Tower4/Tower4_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tower4.txt", "w") file:write("0") file:close() @@ -125,18 +131,24 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 21 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_steel 48") then txt = "upgrade fountain to lv.4 first" - elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then - Item_Remove(player,"default:desert_cobble",320) + elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then + Item_Remove(player,"default:desert_cobble",160) Item_Remove2(player, "main", "castrum:sword_bronze 48") upgrade = true - elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") then + elseif tonumber(level) == 22 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 23 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") and tonumber(fountain) > 8 then + Item_Remove(player,"default:desert_cobble",320) + Item_Remove2(player, "main", "castrum:sword_bronze 96") + upgrade = true + elseif tonumber(level) == 23 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") then + txt = "upgrade fountain to lv.6 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 23 and upgrade then - Tower4(tonumber(level)+1,player) + if (tonumber(level)) < 24 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-13, y=9, z=30}, minetest.get_modpath("castrum").."/schematics/Tower4/Tower4_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tower4.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Tree.lua b/mods/castrum/nodes/Tree.lua index db104c7..73f7d8b 100644 --- a/mods/castrum/nodes/Tree.lua +++ b/mods/castrum/nodes/Tree.lua @@ -77,7 +77,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "tree" then for k, v in pairs(fields) do if v == "del" then - Tree(0,player) + minetest.place_schematic({x=-20, y=9, z=11}, minetest.get_modpath("castrum").."/schematics/Tree/Tree_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tree.txt", "w") file:write("0") file:close() @@ -127,8 +127,8 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 7 and upgrade then - Tree(tonumber(level)+1,player) + if (tonumber(level)) < 7 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-20, y=9, z=11}, minetest.get_modpath("castrum").."/schematics/Tree/Tree_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Tree.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Wall_east.lua b/mods/castrum/nodes/Wall_east.lua index 8ae5a19..3065407 100644 --- a/mods/castrum/nodes/Wall_east.lua +++ b/mods/castrum/nodes/Wall_east.lua @@ -18,37 +18,43 @@ walle.get_formspec = function(player, pos) label2 = "Build" need1 = "3 Cobblestone" elseif tonumber(level) == 14 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "10 Cobblestone" need2 = "3 Stone Sword" need3 = "Fountain lv.1" elseif tonumber(level) == 15 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "40 Cobblestone" need2 = "12 Stone Sword" need3 = "Fountain lv.3" elseif tonumber(level) == 16 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "40 Desert Cobblestone" need2 = "12 Steel Sword" need3 = "Fountain lv.3" elseif tonumber(level) == 17 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "160 Desert Cobblestone" need2 = "48 Steel Sword" need3 = "Fountain lv.4" elseif tonumber(level) == 18 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" - need1 = "320 Desert Cobblestone" + need1 = "160 Desert Cobblestone" need2 = "48 Bronze Sword" need3 = "Fountain lv.5" + elseif tonumber(level) == 19 then + label = (level-13).."/7" + label2 = "Upgrade" + need1 = "320 Desert Cobblestone" + need2 = "96 Bronze Sword" + need3 = "Fountain lv.6" else - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -83,7 +89,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "walle" then for k, v in pairs(fields) do if v == "del" then - Wall_east(0,player) + minetest.place_schematic({x=-9, y=9, z=-23}, minetest.get_modpath("castrum").."/schematics/Walle/Walle_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Walle.txt", "w") file:write("0") file:close() @@ -125,18 +131,24 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 17 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_steel 48") then txt = "upgrade fountain to lv.4 first" - elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then - Item_Remove(player,"default:desert_cobble",320) + elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then + Item_Remove(player,"default:desert_cobble",160) Item_Remove2(player, "main", "castrum:sword_bronze 48") upgrade = true - elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") then + elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 19 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") and tonumber(fountain) > 8 then + Item_Remove(player,"default:desert_cobble",320) + Item_Remove2(player, "main", "castrum:sword_bronze 96") + upgrade = true + elseif tonumber(level) == 19 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") then + txt = "upgrade fountain to lv.6 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 19 and upgrade then - Wall_east(tonumber(level)+1,player) + if (tonumber(level)) < 20 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-9, y=9, z=-23}, minetest.get_modpath("castrum").."/schematics/Walle/Walle_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Walle.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Wall_north.lua b/mods/castrum/nodes/Wall_north.lua index 86b2ed1..beb6dde 100644 --- a/mods/castrum/nodes/Wall_north.lua +++ b/mods/castrum/nodes/Wall_north.lua @@ -18,37 +18,43 @@ walln.get_formspec = function(player, pos) label2 = "Build" need1 = "3 Cobblestone" elseif tonumber(level) == 14 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "10 Cobblestone" need2 = "3 Stone Sword" need3 = "Fountain lv.1" elseif tonumber(level) == 15 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "40 Cobblestone" need2 = "12 Stone Sword" need3 = "Fountain lv.2" elseif tonumber(level) == 16 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "40 Desert Cobblestone" need2 = "12 Steel Sword" need3 = "Fountain lv.3" elseif tonumber(level) == 17 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "160 Desert Cobblestone" need2 = "48 Steel Sword" need3 = "Fountain lv.4" elseif tonumber(level) == 18 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" - need1 = "320 Desert Cobblestone" + need1 = "160 Desert Cobblestone" need2 = "48 Bronze Sword" need3 = "Fountain lv.5" + elseif tonumber(level) == 19 then + label = (level-13).."/7" + label2 = "Upgrade" + need1 = "320 Desert Cobblestone" + need2 = "96 Bronze Sword" + need3 = "Fountain lv.6" else - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -83,7 +89,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "walln" then for k, v in pairs(fields) do if v == "del" then - Wall_north(0,player) + minetest.place_schematic({x=-66, y=9, z=34}, minetest.get_modpath("castrum").."/schematics/Walln/Walln_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Walln.txt", "w") file:write("0") file:close() @@ -125,18 +131,24 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 17 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_steel 48") then txt = "upgrade fountain to lv.4 first" - elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then - Item_Remove(player,"default:desert_cobble",320) + elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then + Item_Remove(player,"default:desert_cobble",160) Item_Remove2(player, "main", "castrum:sword_bronze 48") upgrade = true - elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") then + elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 19 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") and tonumber(fountain) > 8 then + Item_Remove(player,"default:desert_cobble",320) + Item_Remove2(player, "main", "castrum:sword_bronze 96") + upgrade = true + elseif tonumber(level) == 19 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") then + txt = "upgrade fountain to lv.6 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 19 and upgrade then - Wall_north(tonumber(level)+1,player) + if (tonumber(level)) < 20 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-66, y=9, z=34}, minetest.get_modpath("castrum").."/schematics/Walln/Walln_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Walln.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Wall_south.lua b/mods/castrum/nodes/Wall_south.lua index f8617cb..8121695 100644 --- a/mods/castrum/nodes/Wall_south.lua +++ b/mods/castrum/nodes/Wall_south.lua @@ -18,37 +18,43 @@ walls.get_formspec = function(player, pos) label2 = "Build" need1 = "3 Cobblestone" elseif tonumber(level) == 14 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "10 Cobblestone" need2 = "3 Stone Sword" need3 = "Fountain lv.1" elseif tonumber(level) == 15 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "40 Cobblestone" need2 = "12 Stone Sword" need3 = "Fountain lv.2" elseif tonumber(level) == 16 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "40 Desert Cobblestone" need2 = "12 Steel Sword" need3 = "Fountain lv.3" elseif tonumber(level) == 17 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "160 Desert Cobblestone" need2 = "48 Steel Sword" need3 = "Fountain lv.4" elseif tonumber(level) == 18 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" - need1 = "320 Desert Cobblestone" + need1 = "160 Desert Cobblestone" need2 = "48 Bronze Sword" need3 = "Fountain lv.5" + elseif tonumber(level) == 19 then + label = (level-13).."/7" + label2 = "Upgrade" + need1 = "320 Desert Cobblestone" + need2 = "96 Bronze Sword" + need3 = "Fountain lv.6" else - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -83,7 +89,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "walls" then for k, v in pairs(fields) do if v == "del" then - Wall_south(0,player) + minetest.place_schematic({x=-66, y=9, z=-31}, minetest.get_modpath("castrum").."/schematics/Walls/Walls_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Walls.txt", "w") file:write("0") file:close() @@ -125,18 +131,24 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 17 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_steel 48") then txt = "upgrade fountain to lv.4 first" - elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then - Item_Remove(player,"default:desert_cobble",320) + elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then + Item_Remove(player,"default:desert_cobble",160) Item_Remove2(player, "main", "castrum:sword_bronze 48") upgrade = true - elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") then + elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 19 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") and tonumber(fountain) > 8 then + Item_Remove(player,"default:desert_cobble",320) + Item_Remove2(player, "main", "castrum:sword_bronze 96") + upgrade = true + elseif tonumber(level) == 19 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") then + txt = "upgrade fountain to lv.6 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 19 and upgrade then - Wall_south(tonumber(level)+1,player) + if (tonumber(level)) < 20 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-66, y=9, z=-31}, minetest.get_modpath("castrum").."/schematics/Walls/Walls_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Walls.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/nodes/Wall_west.lua b/mods/castrum/nodes/Wall_west.lua index 88cc57f..81060f7 100644 --- a/mods/castrum/nodes/Wall_west.lua +++ b/mods/castrum/nodes/Wall_west.lua @@ -18,37 +18,43 @@ wallw.get_formspec = function(player, pos) label2 = "Build" need1 = "3 Cobblestone" elseif tonumber(level) == 14 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "10 Cobblestone" need2 = "3 Stone Sword" need3 = "Fountain lv.1" elseif tonumber(level) == 15 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "40 Cobblestone" need2 = "12 Stone Sword" need3 = "Fountain lv.2" elseif tonumber(level) == 16 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "40 Desert Cobblestone" need2 = "12 Steel Sword" need3 = "Fountain lv.3" elseif tonumber(level) == 17 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" need1 = "160 Desert Cobblestone" need2 = "48 Steel Sword" need3 = "Fountain lv.4" elseif tonumber(level) == 18 then - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade" - need1 = "320 Desert Cobblestone" + need1 = "160 Desert Cobblestone" need2 = "48 Bronze Sword" need3 = "Fountain lv.5" + elseif tonumber(level) == 19 then + label = (level-13).."/7" + label2 = "Upgrade" + need1 = "320 Desert Cobblestone" + need2 = "96 Bronze Sword" + need3 = "Fountain lv.6" else - label = (level-13).."/6" + label = (level-13).."/7" label2 = "Upgrade (comming soon)" end formspec = "size[5,6.5]" @@ -83,7 +89,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if formname == "wallw" then for k, v in pairs(fields) do if v == "del" then - Wall_west(0,player) + minetest.place_schematic({x=-74, y=9, z=-23}, minetest.get_modpath("castrum").."/schematics/Wallw/Wallw_0.mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Wallw.txt", "w") file:write("0") file:close() @@ -125,18 +131,24 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) upgrade = true elseif tonumber(level) == 17 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_steel 48") then txt = "upgrade fountain to lv.4 first" - elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then - Item_Remove(player,"default:desert_cobble",320) + elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") and tonumber(fountain) > 7 then + Item_Remove(player,"default:desert_cobble",160) Item_Remove2(player, "main", "castrum:sword_bronze 48") upgrade = true - elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 48") then + elseif tonumber(level) == 18 and inv:contains_item("main", "default:desert_cobble 160") and inv:contains_item("main", "castrum:sword_bronze 48") then txt = "upgrade fountain to lv.5 first" + elseif tonumber(level) == 19 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") and tonumber(fountain) > 8 then + Item_Remove(player,"default:desert_cobble",320) + Item_Remove2(player, "main", "castrum:sword_bronze 96") + upgrade = true + elseif tonumber(level) == 19 and inv:contains_item("main", "default:desert_cobble 320") and inv:contains_item("main", "castrum:sword_bronze 96") then + txt = "upgrade fountain to lv.6 first" end if upgrade == false then minetest.chat_send_player(player:get_player_name(), txt) end - if (tonumber(level)) < 19 and upgrade then - Wall_west(tonumber(level)+1,player) + if (tonumber(level)) < 20 and upgrade or buildings_costs == false then + minetest.place_schematic({x=-74, y=9, z=-23}, minetest.get_modpath("castrum").."/schematics/Wallw/Wallw_"..(tonumber(level)+1)..".mts","0") file = io.open(minetest.get_worldpath().."/SAVE/Wallw.txt", "w") file:write(tonumber(level)+1) file:close() diff --git a/mods/castrum/on_join.lua b/mods/castrum/on_join.lua index 7eb276a..68289ac 100644 --- a/mods/castrum/on_join.lua +++ b/mods/castrum/on_join.lua @@ -1,243 +1,93 @@ +local map_version = 14 minetest.register_on_joinplayer(function(player) - if file_check(minetest.get_worldpath().."/SAVE/Lake.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Lake.txt", "w") - file:write("0") - file:close() + minetest.mkdir(minetest.get_worldpath().."/SAVE") + local files = { + {"Lake","0"}, + {"Barracks","0"}, + {"Battleground","0"}, + {"Chapter","1"}, + {"Camp1","0"}, + {"Knight_1","0"}, + {"Island_Fountain","0"}, + {"Island_Walle","0"}, + {"Island_Walln","0"}, + {"Island_Walls","0"}, + {"Island_Wallw","0"}, + {"Sandmine","0"}, + {"Cactusfarm","0"}, + {"Camp2","0"}, + {"Island_Smithy","0"}, + {"Knight_2","0"}, + {"Lake2","0"}, + {"Horse_1","0"}, + {"Mountain_Quarry","0"}, + {"Mountain_Fountain","0"}, + {"Island_Home1","0"}, + {"Island_Home2","0"}, + {"Island_Barracks","0"}, + {"Island_Pier","0"}, + {"Knight_3","0"}, + {"Sail1","0"}, + {"Sail2","0"}, + {"Ship2","0"}, + {"Pirate_1","0"}, + {"Mountain_Smithy","0"}, + {"Farm","0"}, + {"Meadow","0"}, + {"Camp3","0"}, + {"Cannon1","0"}, + {"Cannon2","0"}, + {"Cannon3","0"}, + {"Island_Battleground","0"}, + {"Island_Pier2","0"}, + {"Island_Chapter","1"}, + {"Bridge","0"}, + {"Bridge_status","0"}, + {"Fountain","0"}, + {"Home1","0"}, + {"Home2","0"}, + {"Home3","0"}, + {"Home4","0"}, + {"Mine","0"}, + {"Moate","0"}, + {"Moatn","0"}, + {"Moats","0"}, + {"Moatw","0"}, + {"Pier","0"}, + {"Quarry","0"}, + {"Ship1","0"}, + {"Smithy","0"}, + {"Stable","0"}, + {"Tower1","0"}, + {"Tower2","0"}, + {"Tower3","0"}, + {"Tower4","0"}, + {"Tree","0"}, + {"Walle","0"}, + {"Walln","0"}, + {"Walls","0"}, + {"Wallw","0"}, + {"Market","0"}, + {"Map_Version",""..map_version}, + } + for _, m in pairs(files) do + if file_check(minetest.get_worldpath().."/SAVE/"..m[1]..".txt") == true then + else + if m[1] == "Map_Version" then + update(player) + end + file = io.open(minetest.get_worldpath().."/SAVE/"..m[1]..".txt", "w") + file:write(m[2]) + file:close() + end end - if file_check(minetest.get_worldpath().."/SAVE/Barracks.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Barracks.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Battleground.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Battleground.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Chapter.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Chapter.txt", "w") - file:write("1") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Camp1.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Camp1.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Knight_1.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Knight_1.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Fountain.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Fountain.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Walle.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Walle.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Walln.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Walln.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Walls.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Walls.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Wallw.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Wallw.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Sandmine.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Sandmine.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Cactusfarm.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Cactusfarm.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Camp2.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Camp2.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Smithy.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Smithy.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Knight_2.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Knight_2.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Lake2.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Lake2.txt", "w") - file:write("0") - file:close() - end - - if file_check(minetest.get_worldpath().."/SAVE/Horse_1.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Horse_1.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Mountain_Quarry.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Quarry.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Mountain_Fountain.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Fountain.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Home1.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Home1.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Home2.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Home2.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Home3.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Home3.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Barracks.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Barracks.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Pier.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Pier.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Knight_3.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Knight_3.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Sail1.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Sail1.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Sail2.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Sail2.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Ship2.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Ship2.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Pirate_1.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Pirate_1.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Mountain_Smithy.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Smithy.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Farm.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Farm.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Meadow.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Meadow.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Camp3.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Camp3.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Cannon1.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Cannon1.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Cannon2.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Cannon2.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Cannon3.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Cannon3.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Battleground.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Battleground.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Pier2.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Pier2.txt", "w") - file:write("0") - file:close() - end - if file_check(minetest.get_worldpath().."/SAVE/Island_Chapter.txt") == true then - else - file = io.open(minetest.get_worldpath().."/SAVE/Island_Chapter.txt", "w") - file:write("1") + file = io.open(minetest.get_worldpath().."/SAVE/Map_Version.txt", "r") + local map_ver = file:read("*l") + file:close() + if tonumber(map_ver) < map_version then + update(player) + file = io.open(minetest.get_worldpath().."/SAVE/Map_Version.txt", "w") + file:write(map_version) file:close() end minetest.setting_set("time_speed", "0") @@ -246,14 +96,4 @@ minetest.register_on_joinplayer(function(player) else minetest.kick_player(player:get_player_name(), "you can play castrum only as 'singleplayer'") end - for i=0,90 do - for j=9,30 do - minetest.set_node({x=-134, y=j, z=i*(-1)}, {name="default:stone"}) - end - end - for i=0,96 do - for j=9,30 do - minetest.set_node({x=-134, y=j, z=i}, {name="default:stone"}) - end - end end) \ No newline at end of file diff --git a/mods/castrum/on_new.lua b/mods/castrum/on_new.lua index 5d9230a..8c4972a 100644 --- a/mods/castrum/on_new.lua +++ b/mods/castrum/on_new.lua @@ -17,7 +17,7 @@ new.get_formspec = function(player, pos) end minetest.register_on_newplayer(function(player) - player:setpos({x=-40, y=8.5, z=3.0}) + player:setpos({x=-40, y=8.5, z=-5.0}) minetest.show_formspec(player:get_player_name(), "new" , new.get_formspec(player)) local privs = minetest.get_player_privs(player:get_player_name()) privs["fast"] = true diff --git a/mods/castrum/pier_ship.lua b/mods/castrum/pier_ship.lua new file mode 100644 index 0000000..011ece6 --- /dev/null +++ b/mods/castrum/pier_ship.lua @@ -0,0 +1,56 @@ +function Update_Pier(v,update) + local level = "" + if update then + file = io.open(minetest.get_worldpath().."/SAVE/Pier.txt", "r") + level = file:read("*l") + file:close() + else + level = v + end + if tonumber(level) == 0 then + minetest.place_schematic({x=-8, y=6, z=-65}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_0.mts","0") + minetest.place_schematic({x=121, y=6, z=38}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_i0.mts","0") + minetest.place_schematic({x=309, y=6, z=38}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_m0.mts","0") + minetest.place_schematic({x=-76, y=6, z=104}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_c0.mts","0") + elseif tonumber(level) < 6 then + minetest.place_schematic({x=-8, y=6, z=-65}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_"..(tonumber(level))..".mts","0") + elseif tonumber(level) == 6 then + minetest.place_schematic({x=-8, y=6, z=-65}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_6.mts","0") + minetest.place_schematic({x=121, y=6, z=38}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_i6.mts","0") + elseif tonumber(level) == 7 then + minetest.place_schematic({x=-8, y=6, z=-65}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_7.mts","0") + minetest.place_schematic({x=121, y=6, z=38}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_i7.mts","0") + minetest.place_schematic({x=309, y=6, z=38}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_m7.mts","0") + elseif tonumber(level) == 8 then + minetest.place_schematic({x=-8, y=6, z=-65}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_8.mts","0") + minetest.place_schematic({x=121, y=6, z=38}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_i8.mts","0") + minetest.place_schematic({x=309, y=6, z=38}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_m8.mts","0") + minetest.place_schematic({x=-76, y=6, z=104}, minetest.get_modpath("castrum").."/schematics/Pier/Pier_c8.mts","0") + end +end + +function Update_Ship1(v,update) + local level = "" + if update then + file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "r") + level = file:read("*l") + file:close() + else + level = v + end + if tonumber(level) == 0 then + minetest.place_schematic({x=-16, y=7, z=-65}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_0.mts","0") + minetest.place_schematic({x=127, y=7, z=39}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_i0.mts","0") + minetest.place_schematic({x=315, y=7, z=39}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_m0.mts","0") + minetest.place_schematic({x=-84, y=7, z=104}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_c0.mts","0") + elseif tonumber(level) < 6 then + minetest.place_schematic({x=-16, y=7, z=-65}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_"..(tonumber(level))..".mts","0") + elseif tonumber(level) == 6 then + minetest.place_schematic({x=-16, y=7, z=-65}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_6.mts","0") + minetest.place_schematic({x=127, y=7, z=39}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_i6.mts","0") + elseif tonumber(level) == 7 then + minetest.place_schematic({x=-16, y=7, z=-65}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_7.mts","0") + minetest.place_schematic({x=127, y=7, z=39}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_i7.mts","0") + minetest.place_schematic({x=315, y=7, z=39}, minetest.get_modpath("castrum").."/schematics/Ship1/Ship1_m7.mts","0") + end +end \ No newline at end of file diff --git a/mods/castrum/pirate.lua b/mods/castrum/pirate.lua index 6b0cb66..90c9751 100644 --- a/mods/castrum/pirate.lua +++ b/mods/castrum/pirate.lua @@ -29,5 +29,10 @@ function Update_pirate(player) screwdriver_handler(player, {type="node", under={x=pirate_pos[i][2], y=10, z=pirate_pos[i][3]}, above={x=pirate_pos[i][2], y=10, z=pirate_pos[i][3]}}, 1) end end - minetest.set_node({x=169, y=10, z=10}, {name="castrum:fire"}) + file = io.open(minetest.get_worldpath().."/SAVE/Island_Barracks.txt", "r") + local island_barracks = file:read("*l") + file:close() + if tonumber(island_barracks) > 5 then + minetest.set_node({x=169, y=10, z=10}, {name="castrum:fire"}) + end end \ No newline at end of file diff --git a/mods/castrum/schematics/Barracks/Barracks_0.mts b/mods/castrum/schematics/Barracks/Barracks_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..21506ab7a1f01bd28f7a0389a257548d001f9e4e GIT binary patch literal 46 zcmeYb3HD`RVPI!qWnixd0R~0}=ETgRiaE&%60FM1SNdHHE;QOHFfbgwR@nmp0muzh literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Barracks/Barracks_1.mts b/mods/castrum/schematics/Barracks/Barracks_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..68a7c527a4706a20bac9a3b79b8724ee1998e1c1 GIT binary patch literal 66 zcmeYb3HD`RVPI!qWnixd0R|=pzLeCo#L}D+tK|Hoq?}X+=ETgRiaE&%4val1hXRAy T_G*4r7BuK_VPN7 c+7 kKF)O7Gjs7Wfn+Y_S(P_@jx)V>S31zqFp+^_u2_`;00yTVQ2+n{ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Barracks/Barracks_4.mts b/mods/castrum/schematics/Barracks/Barracks_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..91c4dab0724555f1368f9a517e694a2fc376e2f8 GIT binary patch literal 85 zcmeYb3HD`RVPI!qWnixd0R|=pzLeCo#L}D+tK|Hoq?}X+=ETgRiaE&%4$M6T9cR>7 nKF)O7GxNyort@bW=5Z;{s{B#mv7t_dsfR;?lYyajb(Jyzerp}? literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Barracks/Barracks_5.mts b/mods/castrum/schematics/Barracks/Barracks_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..a1e58bed3a070260985184a91d8ebce9db2630a4 GIT binary patch literal 86 zcmeYb3HD`RVPI!qWnixd0R|=pzLeCo#L}D+tK|Hoq?}X+=ETgRiaE&%4$M6T9cR>7 oKF)O7GxNyoraZMx^B(4Lt&*ve6IvtR$)L>S#>Bwjsa?en0C?&ft^fc4 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Barracks/Barracks_6.mts b/mods/castrum/schematics/Barracks/Barracks_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..d176c0d2a2bbb2d199a93196cb497e8aac82813c GIT binary patch literal 143 zcmeYb3HD`RVPI!qWnixd0U(DjB{eOvG^fNWIX@{WCzXLYF|&w4I61Mnq^LC4DmyPT zJ)^`hzBsdlfd?j-mRXcqF()~}fw`xk`74jxpl^ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Barracks/Barracks_7.mts b/mods/castrum/schematics/Barracks/Barracks_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..96a380d6f4e9c992c2b7e02ac2ffb2d87c14979b GIT binary patch literal 148 zcmeYb3HD`RVPI!qWnixd0U$>>B{eOvG^fO>xFkO>H9jdPKRKI$IWe<{K{z?FxTL5w z*D5-B{eOvG^fNWCAB!Us3bl)KPf3Em4P`ivxq@BIkC8; zs5I9qJ1;Xmqr@=2IJ1O-2PT-7S(I8aCpp1^xu>Axj2g?wnNE9V9+};gr?yG1;wC+&=~e-Aco`0K-%Y`2YX_ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Battleground/Battleground_1.mts b/mods/castrum/schematics/Battleground/Battleground_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..6a75fa9520bf45c164f3bec0d6f0552b66c28eed GIT binary patch literal 62 zcmeYb3HD`RVPFN}dLUq6V&F?jO-n4zDX~heb7c O6BaNtFf>0id;tIr7Ze5n literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Battleground/Battleground_2.mts b/mods/castrum/schematics/Battleground/Battleground_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..93f37d8810deaf6c6ba5428e2ac286b39ad5f52d GIT binary patch literal 67 zcmeYb3HD`RVPFN}dLUq6V&F?jO-n4zDX~h3;P78 T@2aw5Sd+KRh=C#PpWy`ng1Hu? literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Battleground/Battleground_3.mts b/mods/castrum/schematics/Battleground/Battleground_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..8047e39136734de317e53bde12c9c2f92f3b389f GIT binary patch literal 77 zcmeYb3HD`RVPFN}dLUq6V&F?jO-n4zDX~h}EENja$u%!!#r3_Qt+#U(|hxmIbJMX3zJ zFkW_EW_m_Rd`e3ukb8I2n|M&JdVh*;DXY;^VC2J=bmARHkY?yLy@N T!3XJ+47;BzGB9MkGrR%-# literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Battleground/Battleground_5.mts b/mods/castrum/schematics/Battleground/Battleground_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..02e6a73dd17017c23b755d2187ff9a1447936963 GIT binary patch literal 152 zcmeYb3HD`RVPFN}dLRI@gi}(}5=(PRtcpwW^HSrJa`Kb28Tep=$@xi1IjIcHiJ3(V zJjsd0B}JvVR%w|M|=X#@Te%x5ag45U?MDb nqG1_Vr0NkHwLQ-^CK&Qxjg2_FdO35#0-=OM%Ipk>VvQ65o24}R literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Battleground/Battleground_6.mts b/mods/castrum/schematics/Battleground/Battleground_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..60eba18ac516d350cf17b354fd4ee8e0ae7df315 GIT binary patch literal 130 zcmeYb3HD`RVPFN}dLRJO!YQd~iKRIuR>dXxd8zS9Ir+)i49tm{MGQR2iNz&FrMXsV znMJ7#!Z2QTUS@hmNqkCTQFg_g)Bh0YL|UfEOdS>ofY<2~1H+*GD& YJiB_C@xce_lMK6`D>5)-yfeH40K%Ct%>V!Z literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Battleground/Battleground_7.mts b/mods/castrum/schematics/Battleground/Battleground_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..2d971b60eac7fec26a437601b804681106115ebb GIT binary patch literal 159 zcmeYb3HD`RVPFN}dLRI@L{n1J5=(PRtWr{oQ;SOClk=03a#9(DVZy~F`FW}FNjdq+ z*$m8ynMDjd$%(}!MWwk`X_-YpbueCbUS@hmNqkCTQFg_g(lU!u8H8cH?7YnMjFR}2#G>qqImrnL2`LAT_ynBcQBj;B v$S3*0L|E)Z!!oW&)gv})d!B7fFyy})8*z5^a^{2uLJ5bI*%=PS8Yuz*@(McC literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Bridge1/Bridge1_0.mts b/mods/castrum/schematics/Bridge1/Bridge1_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..bec020c3849f09bf8c79d245d99d4bcff34faa1b GIT binary patch literal 78 zcmeYb3HD`RVc=w7WZ$q@1^`UgA6ozb literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Bridge1/Bridge1_10.mts b/mods/castrum/schematics/Bridge1/Bridge1_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..35b981549b9e090b5577e78670e1df7d886b14c2 GIT binary patch literal 73 zcmeYb3HD`RVc=w7WZ0Of!e-T(jq literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Bridge1/Bridge1_12.mts b/mods/castrum/schematics/Bridge1/Bridge1_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..9fc6e7f22984c7bc3ee557da2cbbd080d8826c4d GIT binary patch literal 74 zcmeYb3HD`RVc=w7WZGnM)%S05s+t@&Et; literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Bridge1/Bridge1_3.mts b/mods/castrum/schematics/Bridge1/Bridge1_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..75214a001a1edb6eccb330296d08013657ab1011 GIT binary patch literal 94 zcmeYb3HD`RVc=w7WZz8B*oS~5p05_!{{r~^~ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Bridge1/Bridge1_4.mts b/mods/castrum/schematics/Bridge1/Bridge1_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..6ec030259ae64cbd26f03dbad84f92200ce479ec GIT binary patch literal 94 zcmeYb3HD`RVc=w7WZ-VG9{B(O literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Bridge1/Bridge1_9.mts b/mods/castrum/schematics/Bridge1/Bridge1_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..5cd305b4220412f7eefb7f334e0c56fc51b68aa5 GIT binary patch literal 67 zcmeYb3HD`RVc=w7WZpb literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Bridge2/Bridge2_12.mts b/mods/castrum/schematics/Bridge2/Bridge2_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..72cbb4ff870929d7c88d09a63792371506291444 GIT binary patch literal 83 zcmeYb3HD`RVc-Np#(EfFU}6wXNli;E%_*@;OioPBOpGtj&rf0CPfjc@DJspiN-D}s fNl!JZn3J5az$jtKw#Khl*shc*Ff(ZG(l7)7I%^!U literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Bridge2/Bridge2_9.mts b/mods/castrum/schematics/Bridge2/Bridge2_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..f4a1d182260045b95110fd98b601c99ea1672c2e GIT binary patch literal 76 zcmeYb3HD`RVc-Np#(EfFU}E4&Nli;E%_*@e&(BX`;7?90E-5O_wMr_=Oi52Qs+g0U Yu)ru`$+pI?SJ0DDsz`2YX_ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cactusfarm/Cactusfarm_0.mts b/mods/castrum/schematics/Cactusfarm/Cactusfarm_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..6bfdbbe8897d05ddc901c6e3724a57210452930a GIT binary patch literal 116 zcmeYb3HD`RVc=q5XW*)b00w3To|M$I#L}D+tK!7G6b306FD11&wWuV%xFkO>H9jdP zKRKI$IWe=SVoq|x0frtPA7&Q!yGF031#a)z)fzTIkXuG!`<4EtKm!-XX*RZ8ZU-kY KFc|($5C;HyMJK%g literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cactusfarm/Cactusfarm_1.mts b/mods/castrum/schematics/Cactusfarm/Cactusfarm_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..368784d2aa21d16805daf8b8cd038c8166532ea4 GIT binary patch literal 182 zcmeYb3HD`RVc=q5XW*)b00veDo|M$I#L}D+tK!7G6b306FD11&wWuV%xFkO>H9jdP zKRKI$IWe<{fiF3+xTL5w*D5(Nxumq1K?0SZmROVo#k~u+5L&aFkCsIcG)7=?4X;GwhO%Fd2q!yl`0e>*53vp1=lG|Nf>x M0~H2_!r}yZ01fUz$p8QV literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cactusfarm/Cactusfarm_2.mts b/mods/castrum/schematics/Cactusfarm/Cactusfarm_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..432702744f1ceaa516cfd85de521cb9e13ef4566 GIT binary patch literal 183 zcmeYb3HD`RVc=q5XW*)b00veDo|M$I#L}D+tK!7G6b306FD11&wWuV%xFkO>H9jdP zKRKI$IWe<{fiF3+xTL5w*D5(Nxumq1K?0SZmROV1bQ=4j#VkJkxa6kv_`^hHC0 N)tQNbVUAXU3IO;eKCS=& literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cactusfarm/Cactusfarm_3.mts b/mods/castrum/schematics/Cactusfarm/Cactusfarm_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..752debda21c6dd134fc81459c057ca619415d6db GIT binary patch literal 190 zcmeYb3HD`RVc=q5XW*)b00veDo|M$I#L}D+tK!7G6b306FD11&wWuV%xFkO>H9jdP zKRKI$IWe<{fiF3+xTL5w*D5(Nxumq1K?0SZmROV{7XU0GMi2l1 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cactusfarm/Cactusfarm_4.mts b/mods/castrum/schematics/Cactusfarm/Cactusfarm_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..b8c304ec11139afa3d13c566a7dff5b131ae6dba GIT binary patch literal 192 zcmeYb3HD`RVc=q5XW*)b00veDo|M$I#L}D+tK!7G6b306FD11&wWuV%xFkO>H9jdP zKRKI$IWe<{fiF3+xTL5w*D5(Nxumq1K?0SZmROVgc!CiC_E<%d literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cactusfarm/Cactusfarm_5.mts b/mods/castrum/schematics/Cactusfarm/Cactusfarm_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..27f2e7ef5cf9ab818942828b8525d789bbdb3f85 GIT binary patch literal 202 zcmeYb3HD`RVc=q5XW*)b00veDo|M$I#L}D+tK!7G6b306FD11&wWuV%xFkO>H9jdP zKRKI$IWe<{fiF3+xTL5w*D5(Nxumq1K?0SZmROVs(A}#l8RXsr(e9RJEettW1X{ja+`CA>6wVDe0vKPZi_zQt$$csej>Bv hMhBlzoi7F6e>EgnokbE(US6Ca!o$hH5NnrU4FCk5M$Z5M literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Camp1/Camp1_0.mts b/mods/castrum/schematics/Camp1/Camp1_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..01a3733a48c2a2adfd49ee6b26b5ce16f4b2db8e GIT binary patch literal 38 scmeYb3HD`RVc=w7WZ0F(d`U;qFB literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Camp2/Camp2_0.mts b/mods/castrum/schematics/Camp2/Camp2_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..01a3733a48c2a2adfd49ee6b26b5ce16f4b2db8e GIT binary patch literal 38 scmeYb3HD`RVc=w7WZ0F(d`U;qFB literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Camp3/Camp3_0.mts b/mods/castrum/schematics/Camp3/Camp3_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..01a3733a48c2a2adfd49ee6b26b5ce16f4b2db8e GIT binary patch literal 38 scmeYb3HD`RVc=w7WZ0F(d`U;qFB literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cannon1/Cannon1_0.mts b/mods/castrum/schematics/Cannon1/Cannon1_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..bf474c6a962f0de46807f8a9386bd32a02cf2d0b GIT binary patch literal 32 jcmeYb3HD`RVPFKodLY4^m|0XYCplq7Is*eE6GH<4UZMtZ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cannon1/Cannon1_1.mts b/mods/castrum/schematics/Cannon1/Cannon1_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..d2b70f705995c746e180a078fe276faca860bee3 GIT binary patch literal 47 xcmeYb3HD`RVPFKodLSW`oLF2^RGMp*oS2uFpBHZ!Z&)!WIblUQPz^IfBLD#e3?Kji literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cannon1/Cannon1_2.mts b/mods/castrum/schematics/Cannon1/Cannon1_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..c772d5c8f778787199aace810b32e6b0852e10fa GIT binary patch literal 47 xcmeYb3HD`RVPFKodLSW`oLF2^RGMp*oS2uFpBHZ!Z&WcSIblUQPz^IfBLD#r3?Tpj literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cannon2/Cannon2_0.mts b/mods/castrum/schematics/Cannon2/Cannon2_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..bf474c6a962f0de46807f8a9386bd32a02cf2d0b GIT binary patch literal 32 jcmeYb3HD`RVPFKodLY4^m|0XYCplq7Is*eE6GH<4UZMtZ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cannon2/Cannon2_1.mts b/mods/castrum/schematics/Cannon2/Cannon2_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..374f2e5b5dd3353497702516686fa00ad6f9f8b0 GIT binary patch literal 47 ycmeYb3HD`RVPFKodLSW`oLF2^RGMp*oS2uFpBHZ!Z&)!WIblUQ8v`RNLo)yY7z`!= literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cannon2/Cannon2_2.mts b/mods/castrum/schematics/Cannon2/Cannon2_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..5d00fda7ea5017c65a7110f8e78888d3af59b6ff GIT binary patch literal 47 ycmeYb3HD`RVPFKodLSW`oLF2^RGMp*oS2uFpBHZ!Z&WcSIblUQ8v`RNLo)yYB@8D3 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cannon3/Cannon3_0.mts b/mods/castrum/schematics/Cannon3/Cannon3_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..bf474c6a962f0de46807f8a9386bd32a02cf2d0b GIT binary patch literal 32 jcmeYb3HD`RVPFKodLY4^m|0XYCplq7Is*eE6GH<4UZMtZ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cannon3/Cannon3_1.mts b/mods/castrum/schematics/Cannon3/Cannon3_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..374f2e5b5dd3353497702516686fa00ad6f9f8b0 GIT binary patch literal 47 ycmeYb3HD`RVPFKodLSW`oLF2^RGMp*oS2uFpBHZ!Z&)!WIblUQ8v`RNLo)yY7z`!= literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Cannon3/Cannon3_2.mts b/mods/castrum/schematics/Cannon3/Cannon3_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..5d00fda7ea5017c65a7110f8e78888d3af59b6ff GIT binary patch literal 47 ycmeYb3HD`RVPFKodLSW`oLF2^RGMp*oS2uFpBHZ!Z&WcSIblUQ8v`RNLo)yYB@8D3 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Farm/Farm_0.mts b/mods/castrum/schematics/Farm/Farm_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..4d4c80acc9d31debda755d577a7fb76f1eb827b3 GIT binary patch literal 96 zcmeYb3HD`RVc=q5V&JN;XJBTKN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtImwPRuM~ x;7v{}E-5O_wF1jj%t=l-z$CHJfsIX#$6{6At5>huIS))*)2770aHk^09sqZ2Ap8IT literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Farm/Farm_1.mts b/mods/castrum/schematics/Farm/Farm_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..c0291c661153b08fddd952fba5cb28c01250f673 GIT binary patch literal 197 zcmeYb3HD`RVc=q5V&JN;XJBWLN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#N=_^; zDJspiN=q!tjZe-Bl1sNDlvZsmx05V!dn*aa+ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Farm/Farm_2.mts b/mods/castrum/schematics/Farm/Farm_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..ccc83b36c80bc8f47d51bbe8d9bf37d81ebb2e4f GIT binary patch literal 211 zcmeYb3HD`RVc=q5V&JN;XJBWLN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#N=_^; zDJspiN=q!tjZe-r(wvAZhKYghCv3!c mID#8_Bo~+|O*W98==tcZw7~ys{K5^ok-V-949o{p7XbjJ0!H}& literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Farm/Farm_3.mts b/mods/castrum/schematics/Farm/Farm_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..ff37121ba9f1a891bc6b840f7890037beb089734 GIT binary patch literal 178 zcmeYb3HD`RVc=q5V&JN;XJBKHN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#N=_^; zDJspiN=q!tjZe-M3VDMfF{ISFo?hmE>A2; zEs8JBFD*(=t(cRXaDYida)yBdGqW*UN>akX28Gf!36U(ELF|Fu3Z91fEH|U=eHgZ- Nn2InmJbsxv6#x&0J9q#9 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Fountain/Fountain_0.mts b/mods/castrum/schematics/Fountain/Fountain_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..7555c222ee1d8dafbaf9da8c6ac863651524578e GIT binary patch literal 59 zcmeYb3HD`RVc=$9W8kg_0|rJ0=ETgRiaBpDGjcL8a4>H$-@Z$g#dRB>H^Yu~59YoN MHCWGR{3^o=0O73@9smFU literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Fountain/Fountain_1.mts b/mods/castrum/schematics/Fountain/Fountain_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..4811f4c49f826e8b67d386925ba37a75047780b2 GIT binary patch literal 92 zcmeYb3HD`RVc=$9W8kg_0|q7r=ETe*2EOFP;*z4$T&v{#q@H9jdPKRKI0 z6ed@mSdv;4pO%wfo|%``r^_wZ{TFV9Q1&Aa={+H}8KN5t3v zJuWT9yo{PlH3A~C%jf5By_j=AF7a))MXvb9maxf-Y?6Eh3>}ZO+-N(0a!2IlIScD# RrQW#yt=zFhy*jSw8UUPAdinqW literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Fountain/Fountain_2.mts b/mods/castrum/schematics/Fountain/Fountain_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..05a8bbb6c0be7b71f6844b85a8a7d1047441f1ac GIT binary patch literal 106 zcmeYb3HD`RVc=$9W8kg_0|q7r=ETe*2EOFP;*z4$T&v{#q@JGC%HWEN5QE{o;LBp!tI`*1rc63Jxb|$WORysIZ_;q^Bv7olQ-@w<*xUn}NY5 HBV#fE{Qe|G literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Fountain/Fountain_3.mts b/mods/castrum/schematics/Fountain/Fountain_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..4c40ae9101d44f9dd545a1dc86c4ad5b0daa1c27 GIT binary patch literal 126 zcmeYb3HD`RVc=$9W8kg_0|q7r=ETe*2EOFP;*z4$T&v{#q@iZ$ciXbGd)+-5UeBkIRlMB!>r#vJ8!UIO+pWr|vim@w%W@yx*q5*W zzENjOkZeeO5c4vo&v9PDkE2#S1#-uBh%4{m*F0XHmu#DN_m{QlezlH>um5{oT8eoY zHJ54xL}ZuG&)<46=YU+|+iZ(m@r^BElNZ?}`3e|19%;GJcK+m!$jfsU*2zk}as6Al LV~KioT+uZEY}Ix4 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Fountain/Fountain_5.mts b/mods/castrum/schematics/Fountain/Fountain_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..649790be31df12e5e5d99222b53e3399cf5c29ae GIT binary patch literal 310 zcmeYb3HD`RVc=$9W8kg_0|r(G=ETe*2H}*{w8YY!6072p{Jhloq@4WZYzDsM#Nv{o z(p;nLJ%-NjvzZy(`Yjl;br*CCI6eHm_VYUJ02QYS t-s^Am%5r2Q9te3lPH0kK&HC8+q41jjcY}F{TeeEv=b!$8CDf|;008h-Dv z6rYxpU!Iwl&LDy+T%2E8l$=^I=k1i&e9a0xtt)SQ;;wkIcT>NCiwwtEGgh%p6;hL* zEtyyIP|Zc)$El;cZCTpA?w$;<=hMh4Uhe#Lsm1vXmOIz&R%KM#eIU?fxsPt_%h!M3 zsIw(VHl#j?c^T8^I4|MHQLCN;xnn!TmG| xu;Jw#~cy%i46mT1Uj!|2-}(#k`D~ zOEm%_vdib^Z@rjvKrZoZwneV^#+IaJwA^Sre{x6UB9SX+Nj_%~nOQRn*GjaHj%`FG8V zRcsgic3A3pQtR)=nm;e*)!fAEJ3z&$ ug7^Acy|NtHhzCNRjuV;`ShGHMeki==|J`8T;g+ou_xY!PU-Dv z6rYxpU!Iwl&L9F)4G}KRFD*(=t(fz6%4@!61)kQGH$HJ!JlVUc-@rwNvpR$s_Z@x=(5~LH}>W0 zzi-sp5+oZ^AH=+j>2sWy@Z+dePl4RA9pcJ+_%)B0=Ox?b-Th^4x?im$;_Lq&mzH8) zM$M%f0TJ2d^Ygb}%sC*J_%_=jSA1hj*yKevNxlMxjz?NBl7Z`g>|x0Z(RRY M?pUH;9anS>08?Ff$p8QV literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Fountain/Fountain_9.mts b/mods/castrum/schematics/Fountain/Fountain_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..634ac647e20c33c0cc2b9340e9bcc23a287c80d7 GIT binary patch literal 324 zcmeYb3HD`RVc=$9W8kg_0|r(G=ETe*2C0B9SX+Nj_%~nOQRn*GjaHj%`FG8V zRcsgic3A3pQtR)=nm;e*)!fAEJ3z&$ ug7^Acy|NtHhzCNRjuV;`ShGHMeki==|J`8T;g+ou_xY!PUfb0|rJ0=ETgRiaE&%60D0GtQORX2r#l)O>1LgV3>1c;%xvq CUk+9P literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home1/Home1_1.mts b/mods/castrum/schematics/Home1/Home1_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..60faab9155717e64f81972c332839591815a8bbd GIT binary patch literal 98 zcmeYb3HD`RVPI!qV_>fb0|sUWzLeCo#L}D+tK|Hoq?}X+=ETe*2I1loAXRJyrs5$o q6?2jk92k2-8W*SW)fp>J=$y6eYCn?_!{HNbK1Vc}8NTODx&;8cJ0aHq literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home1/Home1_2.mts b/mods/castrum/schematics/Home1/Home1_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..019251cbda75d669aaa8671c039b0894aba72619 GIT binary patch literal 126 zcmeYb3HD`RVPI!qV_>fb10attB{eOvG^fNWIX@{WCzXK*#xKv$PhntA%q(IME-nF5 z#a3V{9-^*dPI7_+V~@s!PM?lEHK(*IK3Ow3JEc!O;$WJod8MD}wL7C=Lt+Z^mn%KY L3=9k}Cm#d=&X+5k literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home1/Home1_3.mts b/mods/castrum/schematics/Home1/Home1_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..7366a87c21d87a5849ea37563d8c65364de1d976 GIT binary patch literal 152 zcmeYb3HD`RVPI!qV_>fb0|r(GzLeCo#L}D+tK|Hoq?}X+9vHtoKR<M8<Klklfg_(3_G_@-T(lAMKpf^ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home1/Home1_4.mts b/mods/castrum/schematics/Home1/Home1_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..88e4713284538765c06062e938903ee0cfaa4598 GIT binary patch literal 153 zcmeYb3HD`RVPI!qV_>fb0|r(GzLeCo#L}D+tK|Hoq?}X+9vHtoKR<M8<lonvK9+pB5hFxO*#R9+}D6bS7h? jW0s7g0=HmRN88uM4IBpydKjyMRQ)+Q7#OmiPo4z;!v8eI literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home1/Home1_5.mts b/mods/castrum/schematics/Home1/Home1_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..b555448f9ee016c289997606b8f5490a5593751e GIT binary patch literal 161 zcmeYb3HD`RVPI!qV_>fb0|r(GzLeCo#L}D+tK|Hoq?}X+9vHtoKR<M8<lonvK9+pB5hFI5}at&zgq92j%Xh q3B4{CNO9}t4SLMM6xk8rY_dk4)rFxgk>|o>tx7Kk1_sO4$vprC&@`d| literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home1/Home1_6.mts b/mods/castrum/schematics/Home1/Home1_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..9e1c467ee09d1f0bd8485ac5dcf4676bb9da8e9e GIT binary patch literal 188 zcmeYb3HD`RVPI!qV_>fb10ahpB{eOvG^fNWIX@{WCzXK*#xKv$PhntA%q(IMOv%qL zDz*ZV@gULoLLY86UOEG{W3&9zF-NGwWBE=esiteBIW;K119;;d#P zaM!1WM>$STSnji?q42@9rrU-RXH~AfS2)olCcWgCAj_r(&oHGBA;#D4jDih`63kzg Qbj5NCu99HT*)X{q0DY@KAOHXW literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home1/Home1_7.mts b/mods/castrum/schematics/Home1/Home1_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..97ba77057b1945531aeee6dbca00496cf81af0e7 GIT binary patch literal 194 zcmeYb3HD`RVPI!qV_>fb10ahpB{eOvG^fNWIX@{WCzU}6#?LCvOV3Fy&(BX`U{1^| zVh~Kp&o3&r0+I0`(fC9L;o=gYOtBT1iia7HoLF2^RGMp*oRL_Rm|T)tWLPmLIl+Ok z$HiIAM&Pbb3y*S~oUq(yO+(>>X-&5cCC;i`d#`Y!M@)LjF+rA14W402AwrC=-5CWN V5+#_wEa{5n6kH|2ptE6eHvm4uLaP7( literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home1/Home1_8.mts b/mods/castrum/schematics/Home1/Home1_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..e82759a3f4d909d33b0a779448aa431cbd27667c GIT binary patch literal 193 zcmeYb3HD`RVPI!qV_>fb10ahpB{eOvG^fNWIX@{WCzU}E#xKasON}qj&re}sPRuL< zis$DS63neEOmlT!eS|w*B79}Q^q!t-g%t=mgVC->m zR(j!c9499%_gT|W_+VPoZ9|E(D%ajCoahmgUUE#3WmAJ^m{N!k<7;ZC$2 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home1/Home1_9.mts b/mods/castrum/schematics/Home1/Home1_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..e34228e7e53fe2313da20c65827a1b65de0219df GIT binary patch literal 195 zcmeYb3HD`RVPI!qV_>fb10ahpB{eOvG^fNWIX@{WCzU}M#!pO6OwLSfb0|rJ0=ETgRiaE&%60D0GtQORX2r#l)O>1LgV3>1c;%xvq CUk+9P literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home2/Home2_1.mts b/mods/castrum/schematics/Home2/Home2_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..60faab9155717e64f81972c332839591815a8bbd GIT binary patch literal 98 zcmeYb3HD`RVPI!qV_>fb0|sUWzLeCo#L}D+tK|Hoq?}X+=ETe*2I1loAXRJyrs5$o q6?2jk92k2-8W*SW)fp>J=$y6eYCn?_!{HNbK1Vc}8NTODx&;8cJ0aHq literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home2/Home2_2.mts b/mods/castrum/schematics/Home2/Home2_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..019251cbda75d669aaa8671c039b0894aba72619 GIT binary patch literal 126 zcmeYb3HD`RVPI!qV_>fb10attB{eOvG^fNWIX@{WCzXK*#xKv$PhntA%q(IME-nF5 z#a3V{9-^*dPI7_+V~@s!PM?lEHK(*IK3Ow3JEc!O;$WJod8MD}wL7C=Lt+Z^mn%KY L3=9k}Cm#d=&X+5k literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home2/Home2_3.mts b/mods/castrum/schematics/Home2/Home2_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..7366a87c21d87a5849ea37563d8c65364de1d976 GIT binary patch literal 152 zcmeYb3HD`RVPI!qV_>fb0|r(GzLeCo#L}D+tK|Hoq?}X+9vHtoKR<M8<Klklfg_(3_G_@-T(lAMKpf^ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home2/Home2_4.mts b/mods/castrum/schematics/Home2/Home2_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..88e4713284538765c06062e938903ee0cfaa4598 GIT binary patch literal 153 zcmeYb3HD`RVPI!qV_>fb0|r(GzLeCo#L}D+tK|Hoq?}X+9vHtoKR<M8<lonvK9+pB5hFxO*#R9+}D6bS7h? jW0s7g0=HmRN88uM4IBpydKjyMRQ)+Q7#OmiPo4z;!v8eI literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home2/Home2_5.mts b/mods/castrum/schematics/Home2/Home2_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..b555448f9ee016c289997606b8f5490a5593751e GIT binary patch literal 161 zcmeYb3HD`RVPI!qV_>fb0|r(GzLeCo#L}D+tK|Hoq?}X+9vHtoKR<M8<lonvK9+pB5hFI5}at&zgq92j%Xh q3B4{CNO9}t4SLMM6xk8rY_dk4)rFxgk>|o>tx7Kk1_sO4$vprC&@`d| literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home2/Home2_6.mts b/mods/castrum/schematics/Home2/Home2_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..7c4112dcaa6aeda1aa9fbf3af448a2a2351788fa GIT binary patch literal 187 zcmeYb3HD`RVPI!qV_>fb10ahpB{eOvG^fNWIX@{WCzXK*#xKv$PhntA%q(IMOv%qL zDz*ZV@gULoL79Qm|Ibpfanufv$)0%D@N}N@>_FmyckC^n5V}jf>QjV@}bBVC$>R{kGEU`d6 QROeI66bD8Iom-Q;0aIx~H2?qr literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home2/Home2_7.mts b/mods/castrum/schematics/Home2/Home2_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..2bc4d0330be2b37cd0f95d24c60e74153f97a6d7 GIT binary patch literal 193 zcmeYb3HD`RVPI!qV_>fb10ahpB{eOvG^fNWIX@{WCzU}6#?LCvOV3Fy&(BX`U{1^| zVh~Kp&o3&r0+I0`(fC9Lq2$EklA_XFtK^KtqQvBq)FML$;o=gY>S8M}6%R4AVoq{` z17nYivzm>-U7r>nfb10ahpB{eOvG^fNWIX@{WCzU}E#xKasON}qj&re}sPRuL< zis$DS6I z#aYcp;I2;#k8+%xu-s=&L*avIO}7mt&Z=B{uW+JAOnS*NLGBqTM_0GGMA&n6Fz_6f TSfC!N^QmQu10#dZt;yX0zEVR) literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home3/Home3_0.mts b/mods/castrum/schematics/Home3/Home3_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..394346a559776e764697902a02627c2095053c11 GIT binary patch literal 50 zcmeYb3HD`RVPI!qV_>fb0|rJ0=ETgRiaE&%60D0GtQORX2r#l)O>1LgV3>1c;%xvq CUk+9P literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home3/Home3_1.mts b/mods/castrum/schematics/Home3/Home3_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..0a4f8dcee3d3d0bde794296cc114c7f0d80ff6f2 GIT binary patch literal 95 zcmeYb3HD`RVPI!qV_>fb0|sUW=ETe*2I1loAXRJyrs9+Hlag{$8Te9C(-KQ_N~|FK miaE&%49sq9Sxjmo7Fo|Y3^&(_2r#Y?zIIraf#E>IBm)2(;~h)@ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home3/Home3_2.mts b/mods/castrum/schematics/Home3/Home3_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..256e3a8cb85f36f5aa855ad7fe1e1ff97071159a GIT binary patch literal 121 zcmeYb3HD`RVPI!qV_>fb10at%F|&w4xVQvJ6fb0|r(G=ETe*2I1loAXRJyrs9+Hlag{$8Te9C(-KQ_O01xK z9vHtoKR<;*FeN`9r~^dCg9PFeE9N98FfhBZWihFVoZxBG36Nrvd|oorthH*h#O$@C^LFcch`vfb0|r(G=ETe*2I1loAXRJyrs9+Hlag{$8Te9C(-KQ_O01xK z9vHtoKR<;*FeN`9r~^dCg9PFeE9N98FfhBZWihFVoZxBG36Nrv45;7;e00`@A#Kl| dK;us1$q^mwSNfTh816+#vIa0PxKEz+1pu%_Fz5gP literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home3/Home3_5.mts b/mods/castrum/schematics/Home3/Home3_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..f048aa571bed060a111a5ea78908815d177a17b9 GIT binary patch literal 158 zcmeYb3HD`RVPI!qV_>fb0|r(G=ETe*2I1loAXRJyrs9+Hlag{$8Te9C(-KQ_O01xK z9vHtoKR<;*FeN`9r~^dCg9PFeE9N98FfhBZWihFVoZxBG36Nrv45;7;e00`@A#INh mo6WP}B()~n9cNXpy+7h)v!G5yfbm1?1C0hohO-|h%K-pqYBogx literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home3/Home3_6.mts b/mods/castrum/schematics/Home3/Home3_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..df8b38889aff4e6f54020fbd63b9ff7ecee96523 GIT binary patch literal 184 zcmeYb3HD`RVPI!qV_>fb10ahzF|&w4xVQvJ6%t=mQV0JS&dBj2X zKo3*ofeE5s&I-(2{EA+CW^x>8ntr_Dc#YQ?mko(p5o}9m9{DvlqJ#ZPKa&!}J^>k4 M0|thzMw2%J0LIxsf&c&j literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home3/Home3_7.mts b/mods/castrum/schematics/Home3/Home3_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..a58423e4d8dcb00396d74123b44a6f4e86c9aee1 GIT binary patch literal 190 zcmeYb3HD`RVPI!qV_>fb10ahzF|&w4xVQvJ6KdUq^Jtwt1KR<;*FeN`9XcmZ!2MNR{R?JCGU|@DL zIC;cD_COC)Oe&duDPRXqtY!;dqVL8J7)-S`lnZXCC=AH==|6Nfb10ahzF|&w4xVQvJ68ntr_Dc#YQ?mko(p5o}9m9{DvlqJ#ZPKa&!} QJ^>k40|thzMw2%J03F3bk^lez literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home4/Home4_0.mts b/mods/castrum/schematics/Home4/Home4_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..394346a559776e764697902a02627c2095053c11 GIT binary patch literal 50 zcmeYb3HD`RVPI!qV_>fb0|rJ0=ETgRiaE&%60D0GtQORX2r#l)O>1LgV3>1c;%xvq CUk+9P literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home4/Home4_1.mts b/mods/castrum/schematics/Home4/Home4_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..0a4f8dcee3d3d0bde794296cc114c7f0d80ff6f2 GIT binary patch literal 95 zcmeYb3HD`RVPI!qV_>fb0|sUW=ETe*2I1loAXRJyrs9+Hlag{$8Te9C(-KQ_N~|FK miaE&%49sq9Sxjmo7Fo|Y3^&(_2r#Y?zIIraf#E>IBm)2(;~h)@ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home4/Home4_2.mts b/mods/castrum/schematics/Home4/Home4_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..256e3a8cb85f36f5aa855ad7fe1e1ff97071159a GIT binary patch literal 121 zcmeYb3HD`RVPI!qV_>fb10at%F|&w4xVQvJ6fb0|r(G=ETe*2I1loAXRJyrs9+Hlag{$8Te9C(-KQ_O01xK z9vHtoKR<;*FeN`9r~^dCg9PFeE9N98FfhBZWihFVoZxBG36Nrvd|oorthH*h#O$@C^LFcch`vfb0|r(G=ETe*2I1loAXRJyrs9+Hlag{$8Te9C(-KQ_O01xK z9vHtoKR<;*FeN`9r~^dCg9PFeE9N98FfhBZWihFVoZxBG36Nrv45;7;e00`@A#Kl| dK;us1$q^mwSNfTh816+#vIa0PxKEz+1pu%_Fz5gP literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home4/Home4_5.mts b/mods/castrum/schematics/Home4/Home4_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..f048aa571bed060a111a5ea78908815d177a17b9 GIT binary patch literal 158 zcmeYb3HD`RVPI!qV_>fb0|r(G=ETe*2I1loAXRJyrs9+Hlag{$8Te9C(-KQ_O01xK z9vHtoKR<;*FeN`9r~^dCg9PFeE9N98FfhBZWihFVoZxBG36Nrv45;7;e00`@A#INh mo6WP}B()~n9cNXpy+7h)v!G5yfbm1?1C0hohO-|h%K-pqYBogx literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Home4/Home4_6.mts b/mods/castrum/schematics/Home4/Home4_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..0dc62e095a31f777dedfb96b3936cf2387318c13 GIT binary patch literal 184 zcmeYb3HD`RVPI!qV_>fb10YK%IkC8;s5I9qIU}(sF}WnQ$dG|KF|&w4xVQvJ6)Oc3>QR#4{RSM=I5lS5K$kBytnv*0APrn4N|lMQBhuDRdYTJdN_ornOVgd3wE K1H*TjDWL#tTs{f_ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Barracks/Island_Barracks_0.mts b/mods/castrum/schematics/Island_Barracks/Island_Barracks_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..c8b92a65cd1c49434b8335572b52243f156e7de5 GIT binary patch literal 53 zcmeYb3HD`RVc=w7W8ka@0|rJ0=ETgRiaE&%60D08M0nT(?77?+BwmD=alK$7yi^9}#LS|KImrnJ7a g7nk+kGR+b{`(~9qt1?4^XW-(58;lGFA)ht?0Ke)RP5=M^ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Barracks/Island_Barracks_2.mts b/mods/castrum/schematics/Island_Barracks/Island_Barracks_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..2a4dc65a4b450c18a44eee178ac3167c3f065d89 GIT binary patch literal 93 zcmeYb3HD`RVc=w7W8ka@0|q7r!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnM3=%6j uIA{9#-sbq-Qnju3mg$~1i*l`wy!Ylx_^Tno*pSdA#d?^5fni(Er`Z5w`yq7z literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Barracks/Island_Barracks_3.mts b/mods/castrum/schematics/Island_Barracks/Island_Barracks_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..9f58ff3b25ad717dcddaf9791a6574d107546e56 GIT binary patch literal 100 zcmeYb3HD`RVc=w7W8ka@0|q7r!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnM3=#(g zf?H%dPM5UUEaQv1>FRsi?X6T?*+nziq|K7^_jk5^U7Wze(4?6q!o$qK;CcB|2LL%z BBJcnJ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Barracks/Island_Barracks_4.mts b/mods/castrum/schematics/Island_Barracks/Island_Barracks_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..c77c2384ba4be798a002cbd62a455c94f40e1d2e GIT binary patch literal 107 zcmeYb3HD`RVc=w7W8ka@0|q7r!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnM3=#(g zf?EW;ITSlim$cX{<2$7E7yi^9}#LS|KImrnM3=#(g zf?EW;Ih4f&-E=nHC~Tb&?AHaYyb{;?n*7yi^9}#LOZFp5(;hlA_XF ztF+9b)QUOD2?`7n2L*y#1iLwu#RT1SHr*(3dSX~QL8&Q6OL4cxR^FR;4kn6UHux(3 n_wAxwt0QT~X4?~rW!G(BJp3!rfQjLth$&YaBLl;wC+&=~e-Aco`0K-%Y`2YX_ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Battleground/Island_Battleground_1.mts b/mods/castrum/schematics/Island_Battleground/Island_Battleground_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..52e3ecf6ed98edc60fac05384cdb19cfc7a29f0d GIT binary patch literal 65 zcmeYb3HD`RVPFN}dLUq6Vh~J8O-n4zDX}U}%u6XQ$$In literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Battleground/Island_Battleground_2.mts b/mods/castrum/schematics/Island_Battleground/Island_Battleground_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..a8f136e2c88e40f6af312a73ff031d0e9287df7f GIT binary patch literal 72 zcmeYb3HD`RVPFN}dLUq6Vh~J8O-n4zDX}U}%u6XQ$9e-cdM5(A9yIXiisiK)$k+$xqKY$ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Battleground/Island_Battleground_4.mts b/mods/castrum/schematics/Island_Battleground/Island_Battleground_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..db2522177c4f71b7573ec785c567def1ac7820b0 GIT binary patch literal 129 zcmeYb3HD`RVPFN}dLRJOf+?wKiKRIuR>g^VDa9rEd8rJ{iJ3(VJjsd0B}JvVR%w|< zsSFY@UU7D6PAX7Ud~#wzNn&PR#hm1X16&ddXK;Er8I*<25V*?IVwJXHrhrFZWyRfa VfA)sMx)qFi{12EIGP?{f0{~4OEI(FI+!^g2y^zR*~xdo0hn&-NUtdQ?)c# zmXlwenU~HWf+}2`Us{x$S~2J81V_FD3LGqrZnmGE)ZJ9y(zs};sixY!UDY>w9<^~4 za2-|i4@}%F)cL&XLt@r8xuVa>Qd=LabzQmt)0WsRY12*rU#dPPa_OJ@*_wb;FN+tw j;L-jq@RUjQwB%v!8tl|c|D zgAfvh36&?7q!z`e<>Z%V=A|=;pb8h~mlh?bR?K-C7|nM;frEL@r8H+*yty+n1P#tAt3$4 F8vtFF51s%3 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Home1/Island_Home1_1.mts b/mods/castrum/schematics/Island_Home1/Island_Home1_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..7b01226c91080f552e51257399ec1cfd039ab43d GIT binary patch literal 86 zcmeYb3HD`RVc=w7W#Fs_0R|=p=ETe*2Emlnw8YY!6073Gyp-aS{JhkPImrnOOl}rS o^b(F7T()fI71Qb~PZs7Goehfpt07U-P<7FoYXuv_Zo89=0FuxjUH||9 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Home1/Island_Home1_2.mts b/mods/castrum/schematics/Island_Home1/Island_Home1_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..2db7ef4cf811f6b0e975edf64bc0c93e784ebf89 GIT binary patch literal 119 zcmeYb3HD`RVc=w7W#Fs_0S0CU=ETe*2Emlnw8YY!6073Gyp-aS{Jc~KUYJmNPGWI! z#hl~>1|~O)7Dj>DoUSc02RaTO6IpmAhC@C$<-_bVEox2Y1|~O)7Dj>DoX#wvyom=o4yw7em;f~>>loeeNpliTlwwlj|5vaqa@A^i)@FWz QnJR9Kwu}r*!%i9i0CU78H~;_u literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Home1/Island_Home1_4.mts b/mods/castrum/schematics/Island_Home1/Island_Home1_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..076868feaed3796ee1c8939fd36e446497557907 GIT binary patch literal 127 zcmeYb3HD`RVc=w7W#Fs_0S0CU=ETe*2Emlnw8YY!6073Gyp-aS{Jc~KUYJmNPGWI! z#hl~>1|~O)7Dj>DoX#wvyom=o4yw7eY>0jFXol9t&V=pR4}8*`gcGHh)cF4uEK|Aq X&~$s92#;NZGG|XyBMZa7_LI&4?msMM literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Home1/Island_Home1_5.mts b/mods/castrum/schematics/Island_Home1/Island_Home1_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..8e2f08cec8838cbf5c0f5355a611c8e5c61b9e3e GIT binary patch literal 153 zcmeYb3HD`RVc=w7W#Fs_0U(DtF|&w4FeNoDu{5W|syHz(rMM(NFO`88CX}9&SX|7& zlbl#wQdF92m6lnQS}`X%fq}`*qJ>dlHm5U7C~x9{j)Q7$EgNEAJer}ku~Q&f{H}RU$7klrFFd@jX8U-qI=oCiFYm90L`_4Y2#*~D!*s=yX#gC}I2-@~ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Home2/Island_Home2_0.mts b/mods/castrum/schematics/Island_Home2/Island_Home2_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..c67e41ba6fab937ccdf7850cf8ec77c9977be864 GIT binary patch literal 52 zcmeYb3HD`RVc=w7W#Fs_0R~0}=ETgRiaE&%60D08L8H+*yty+n1P#tAt3$4 F8vtFF51s%3 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Home2/Island_Home2_1.mts b/mods/castrum/schematics/Island_Home2/Island_Home2_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..7b01226c91080f552e51257399ec1cfd039ab43d GIT binary patch literal 86 zcmeYb3HD`RVc=w7W#Fs_0R|=p=ETe*2Emlnw8YY!6073Gyp-aS{JhkPImrnOOl}rS o^b(F7T()fI71Qb~PZs7Goehfpt07U-P<7FoYXuv_Zo89=0FuxjUH||9 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Home2/Island_Home2_2.mts b/mods/castrum/schematics/Island_Home2/Island_Home2_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..2db7ef4cf811f6b0e975edf64bc0c93e784ebf89 GIT binary patch literal 119 zcmeYb3HD`RVc=w7W#Fs_0S0CU=ETe*2Emlnw8YY!6073Gyp-aS{Jc~KUYJmNPGWI! z#hl~>1|~O)7Dj>DoUSc02RaTO6IpmAhC@C$<-_bVEox2Y1|~O)7Dj>DoX#wvyom=o4yw7em;f~>>loeeNpliTlwwlj|5vaqa@A^i)@FWz QnJR9Kwu}r*!%i9i0CU78H~;_u literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Home2/Island_Home2_4.mts b/mods/castrum/schematics/Island_Home2/Island_Home2_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..076868feaed3796ee1c8939fd36e446497557907 GIT binary patch literal 127 zcmeYb3HD`RVc=w7W#Fs_0S0CU=ETe*2Emlnw8YY!6073Gyp-aS{Jc~KUYJmNPGWI! z#hl~>1|~O)7Dj>DoX#wvyom=o4yw7eY>0jFXol9t&V=pR4}8*`gcGHh)cF4uEK|Aq X&~$s92#;NZGG|XyBMZa7_LI&4?msMM literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Home2/Island_Home2_5.mts b/mods/castrum/schematics/Island_Home2/Island_Home2_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..8e2f08cec8838cbf5c0f5355a611c8e5c61b9e3e GIT binary patch literal 153 zcmeYb3HD`RVc=w7W#Fs_0U(DtF|&w4FeNoDu{5W|syHz(rMM(NFO`88CX}9&SX|7& zlbl#wQdF92m6lnQS}`X%fq}`*qJ>dlHm5U7C~x9{j)Q7$EgNEAJer}ku~Q&f{H}RU$7klrFFd@jX8U-qI=oCiFYm90L`_4Y2#*~D!*s=yX#gC}I2-@~ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier/Island_Pier_0.mts b/mods/castrum/schematics/Island_Pier/Island_Pier_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..55b80dd29d9af3792ee040129a58866fe9bfd0c3 GIT binary patch literal 75 zcmeYb3HD`RVPIuoW)Q8fuV-Ll5J^c*ODxSPu_{k2NiB*m&Mz%WPGw+D%q*&ylbmpX fN#bEaNLk1-<9 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier/Island_Pier_1.mts b/mods/castrum/schematics/Island_Pier/Island_Pier_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..a52036e890342bdbcd1bd6f518fc276eb8358773 GIT binary patch literal 99 zcmeYb3HD`RVPIuoW)Q8fuLn{hDXD3Rr8y;5<%uP!Me)V?rA5i93_Nhr{QMLK=ETgR viaE&%2bd%t3hdWWp2VSN8FGN7eeovch;4Nu6Sz09z0pu$V_=w5IF}ay%bg$g literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier/Island_Pier_2.mts b/mods/castrum/schematics/Island_Pier/Island_Pier_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..bc9ca167693a299df529daa5dfcd22de898d808e GIT binary patch literal 100 zcmeYb3HD`RVPIuoW)Q8fuLn{hDXD3Rr8y;5<%uP!Me)V?rA5i93_Nhr{QMLK=ETgR wiaE&%2bd%t3hdWWp2VSNSvB(vOZ(zY&2ii6L?&==V0)vXz{bFk<1?2D0R1f>#{d8T literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier/Island_Pier_3.mts b/mods/castrum/schematics/Island_Pier/Island_Pier_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..867a56de0223fafaffb7255c696d21b2e8423483 GIT binary patch literal 100 zcmeYb3HD`RVPIuoW)Q8fuLn{hDXD3Rr8y;5<%uP!Me)V?rA5i93_Nhr{QMLK=ETgR wiaE&%2bd%t3hdWWp2VTIb78)buuR{nAkS@eA``ebu)WbxU}Io#V4d?F0PeUTi~s-t literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier/Island_Pier_4.mts b/mods/castrum/schematics/Island_Pier/Island_Pier_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..6e830d6cfb3949e1f3df303c70e5573e8c162886 GIT binary patch literal 99 zcmeYb3HD`RVPIuoW)Q8fuLn{hDXD3Rr8y;5<%uP!Me)V?rA5i93_Nhr{QMLK=ETgR viaE&%2bd%t3hdWWp2VTIGjMX@>(r*hf@;zBTqjr~n9D>2m>I<9%y|O<(fc4m literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier/Island_Pier_5.mts b/mods/castrum/schematics/Island_Pier/Island_Pier_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..35082f7596603cb8139ef2ca89f3431df1868d6a GIT binary patch literal 100 zcmeYb3HD`RVPIuoW)Q8fuLn{hDXD3Rr8y;5<%uP!Me)V?rA5i93_Nhr{QMLK=ETgR wiaE&%2bd%t3hdWWp2VTIGjKBdp%gU>nJJsTE^dfvFimi0G-P1-%rxgA0QzAe!T)DV*oLyBiH}{ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier/Island_Pier_7.mts b/mods/castrum/schematics/Island_Pier/Island_Pier_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..43c9283c01f23a2e1c5c8e3f43ea065530ca0783 GIT binary patch literal 134 zcmeYb3HD`RVPIuoW)Q8fuLm+kQc}|rOLI!B$`eaci{gv(ON)|I8F=8L`S~dfyvd2h zB}JvVR>c{a1x5@aFm7gXPGVk4d_iVvkx|8*nKm+(6g+Xd4^?bvYb<% Y+(xzQ{Y*uS*AnDek1#MCyg%n0050Dyl>h($ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier/Island_Pier_8.mts b/mods/castrum/schematics/Island_Pier/Island_Pier_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..b183b9a281f5772c71139d04cda9155cf56acfa5 GIT binary patch literal 141 zcmeYb3HD`RVPIuoW)Q8fuLm+kQc}|rOLI!B$`eaci{gv(ON)|I8H8Y>S*3aDIjQCO z`6&#%$%(}!MWwk`#Tl6eMhqe_Zf0>#VqQvoL1t=^QN^6(gab?x4+Zw?C{NR@1aX*YKt0G;kJo&W#< literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier2/Island_Pier2_0.mts b/mods/castrum/schematics/Island_Pier2/Island_Pier2_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..869ebdd13e0d6db5b701919b106d1485fdc141a4 GIT binary patch literal 69 zcmeYb3HD`RVc=w7W?-$auV-Ll5J^c*ODxSPu_{k2NiB*m&Mz%WPGw+D%q*&ylboQy YWRP?qana literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier2/Island_Pier2_2.mts b/mods/castrum/schematics/Island_Pier2/Island_Pier2_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..de2fc2958131ea8fbaea127d8cff5d30a3a22867 GIT binary patch literal 97 zcmeYb3HD`RVc=w7W?-$auLn{hDXD3Rr8y;5<%uP!Me)V?rA5i93_Nhr{QMLK=ETgR tiaE&%3`}lpEGG{%XddcdnR#G>gu#bh9^bEy)X zlA_XFtIXn@#JrUFq{NbvoYeH9{L;LXiaE&%3`}lpe^k^|*a8-HcWRYQe6#-7LB@_x MMsFDzD%+e*0D`$GZ2$lO literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Pier2/Island_Pier2_4.mts b/mods/castrum/schematics/Island_Pier2/Island_Pier2_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..c18220d5d87dd24e610c11dcfb88e6ed9755db6e GIT binary patch literal 123 zcmeYb3HD`RVc=w7W?-$auLn{hDXD3Rr8y;5<%uP!Me)V?rA5i93_>u`tkS&noYeCC z{1gW1s7TqbXd-tVj1{J-W;Sd2&*4Zs&~j8Sjpv;B)`u F1pp^bMBD%X literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Smithy/Island_Smithy_5.mts b/mods/castrum/schematics/Island_Smithy/Island_Smithy_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..ecd4bdb23d8c079906d0e144fb8147350880a6f1 GIT binary patch literal 192 zcmeYb3HD`RVc=w7W8ka@0|r(G=ETe*2Emlnw8YY!6073Gyp-aS{Jc~KvEmY-OtBT1 zibseGrsU@Xg+XL|d47IMd=gMMnowfJoaBUr1efL~T>{J-W;Sd2&*5Np+&y!{jiWtB zWgfjbw3dB(td7a1?sFN$U2J0) NGe|NpY>5B(002LYNK^m- literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Smithy/Island_Smithy_6.mts b/mods/castrum/schematics/Island_Smithy/Island_Smithy_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..12979498ea3a0d45a31f7b355dfd53069c0a1be6 GIT binary patch literal 217 zcmeYb3HD`RVc=w7W8ka@10ahzF|&w4FeNoDu{5W|syHz(rMM(NFO@;8xCAIuYz3y` z5#oX=`T0O$5E);dpPv$+1k{Ztl*k|qGcYHyEHS<~zqBYhwPH?kLPCN|^OG(C<_$BO zwfyIBFgxy^x#7mqo})64-W*55F0P!pRO$(XWtXB3gEn;No7yi^9}#LS|KImrnL2`){G b_XOV4=ue9Kt0AG)kSM|<%D}Lt;;IV(dpsFv literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walle/Island_Walle_2.mts b/mods/castrum/schematics/Island_Walle/Island_Walle_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..f67aee4d1b53d87609690619610d1931cac2835f GIT binary patch literal 76 zcmeYb3HD`RVPIrnXRxh@00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnOOl}r3 bPkTSPRf>Fm<$f@Lk!Nwj3I>KIi>vGaZ7yi^9}#LS|KImrnO%x)So bPkTSPRf>Fm<$f@Lk!Nwj3I>LNqARBWZq^zs literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walle/Island_Walle_4.mts b/mods/castrum/schematics/Island_Walle/Island_Walle_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..d06f1ead7fe5a7e9b2bfa32ca6321515b0031d0b GIT binary patch literal 76 zcmeYb3HD`RVPIrnXRxh@00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnPOl}4; bPkTSPRf>Fm<$f@Lk!Nwj3I+ywwJW^7yi^9}#LS|KImrnP%x(%Y bPkTSPRf>Fm<$f@Lk!Nwj3I>LEu2%v8eGM9$ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walle/Island_Walle_6.mts b/mods/castrum/schematics/Island_Walle/Island_Walle_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..4f80c21ddf80996aeb8cd62c3e443c13b6c7b6f5 GIT binary patch literal 76 zcmeYb3HD`RVPIrnXRxh@00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnQOg%h{ b_XOV4=ue9Kt0AG)kSM|<%D}Mq?G<4FYnT}b literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walle/Island_Walle_7.mts b/mods/castrum/schematics/Island_Walle/Island_Walle_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..d77fc5d5a5fb86b7cdc62f28ecf6d2bdb371b330 GIT binary patch literal 79 zcmeYb3HD`RVPIrnXRxh@00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnJI3)_b cdryJj!)dGKS)ExQbY2NG*ulV{+;RB}0OzV5GXMYp literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walle/Island_Walle_8.mts b/mods/castrum/schematics/Island_Walle/Island_Walle_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..ea5f8d1240e9cf1128d42f89fa1c7c4df8e24bd1 GIT binary patch literal 111 zcmeYb3HD`RVPIrnXRxh@00w3T!Iadr#L}D+tK!7Gl;V>7yi^7Wm{3Y;acWUXJVJ&! xF|(**PI3YRvl|-=?_nQ{BZ)1WpL!`%< FCjgJR5KsUB literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walln/Island_Walln_1.mts b/mods/castrum/schematics/Island_Walln/Island_Walln_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..8d576ef8a01af4d35a7436dbdb3e6d81d2a4f3e9 GIT binary patch literal 78 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnM+y;jf em;Q2ps39|HL!AguoI~116RsDG3^&Tpc>@5X4jP64 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walln/Island_Walln_2.mts b/mods/castrum/schematics/Island_Walln/Island_Walln_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..7bb191b7af1c15e577f7db8ea643a1366d5dda71 GIT binary patch literal 81 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnM+y;jf gZ5fwtGwM4O=%E{7&&8&{AZw#B*9vZig>L6W0n)1(g8%>k literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walln/Island_Walln_3.mts b/mods/castrum/schematics/Island_Walln/Island_Walln_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..509308ba9ad026520da15b8c9bfacf4164cf47b2 GIT binary patch literal 80 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnM+y;jf gZ4X}9GPO{I&ppDPi%ow)7NY^z3T}p`pJ(p_0KoVfJpcdz literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walln/Island_Walln_4.mts b/mods/castrum/schematics/Island_Walln/Island_Walln_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..397fd9d225d909a883bffb68e9a114851962f562 GIT binary patch literal 81 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnM+y;jf hZ4a(k`{adut4ZV6#R(snR;3*cbckhOsGV?jB>)>C9sd9T literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walln/Island_Walln_5.mts b/mods/castrum/schematics/Island_Walln/Island_Walln_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..b11f6bc5597d7d0fbba41ff8a07d1e04f024b2c8 GIT binary patch literal 82 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnM+y;jf iZ4a(k`(@K~qr1vX*ZP|da<7=7=*GB}k)gx$Y#{(H-yJ&u literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walln/Island_Walln_6.mts b/mods/castrum/schematics/Island_Walln/Island_Walln_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..0cc3e6796d8be9a4c27554812f35632b386d9b8e GIT binary patch literal 83 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnM+y;jf jZ4a(k`(;yk2IH~DhOdhgJ~TD@O7yi^9}#LS|KImrnM+y;jf jZ4a(k`(;yk2IH~D178;>d|=w8vOCa0j)B4E!dXcGTk0NL literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walln/Island_Walln_8.mts b/mods/castrum/schematics/Island_Walln/Island_Walln_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..9dcc855949928f106a6a699b6b7a8785bad72cbc GIT binary patch literal 133 zcmeYb3HD`RVX$UkXJD*{00w3TiImi|#L}D+tCZB@)S{C3;>5g^;*$KlR0ctq3_^%G zF|(**PI5v*LW+W{@j=DPUy3s(x=1BzSN>u@wSLL2$%1FsKY5{keeH>d-v0lCoQ!!{ U*2%LriyQPb9pq-{)IVnl00qi2S^xk5 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walls/Island_Walls_0.mts b/mods/castrum/schematics/Island_Walls/Island_Walls_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..ca725d35a1a7d53b76476d5850b9fa7b29c8a046 GIT binary patch literal 54 zcmeYb3HD`RVX$UkXJD*{00u?|=ETgRiaE&%60D08L?-aPazFThm3gj(8>1WpL!`%< FCjgJR5KsUB literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walls/Island_Walls_1.mts b/mods/castrum/schematics/Island_Walls/Island_Walls_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..056d95531d6e600e9a1fbb124c9ac20719a530d8 GIT binary patch literal 75 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnU0tYO( a+#g7yi^9}#LS|KImrnUjtzw( aeNI^ie+3#;9CVm&vY3INfgv^O95(<~2pD?+ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walls/Island_Walls_3.mts b/mods/castrum/schematics/Island_Walls/Island_Walls_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..de4a7d228154508373362464794b5def1382f159 GIT binary patch literal 75 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnUtR`$d aiwi6c{R%XwIOy>FXJ7+61A|V_*$V(y=^6?E literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walls/Island_Walls_4.mts b/mods/castrum/schematics/Island_Walls/Island_Walls_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..872b6a69eea3fbffbd468c4b7c28c4b62f2a52de GIT binary patch literal 75 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnUtcQgR b`kZbZ`W0wUanRxUzQ6`{1_r(lXQu)HV_h0} literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walls/Island_Walls_5.mts b/mods/castrum/schematics/Island_Walls/Island_Walls_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..0438f992d9dace9170d4af855dc5e836fdb037da GIT binary patch literal 75 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnUtcx46 a8Va8r_!VeSanRv;b6^8I0|QUn*(d;Rj2cG( literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walls/Island_Walls_6.mts b/mods/castrum/schematics/Island_Walls/Island_Walls_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..4ab9b14717b0f61e5d11be688243d40e4868b1bb GIT binary patch literal 75 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnUtcw#m an2$9!d|jOIp{dbt;$jAV1_o8Xv+@9CVi{%t literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walls/Island_Walls_7.mts b/mods/castrum/schematics/Island_Walls/Island_Walls_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..4edd33b93c8cac736f5def81d7d19ed49789601a GIT binary patch literal 75 zcmeYb3HD`RVX$UkXJD*{00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnUtcw#m bn2$9c__{dZ1Jf>*-GL5r3=9YUon-<5Y04Uk literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Walls/Island_Walls_8.mts b/mods/castrum/schematics/Island_Walls/Island_Walls_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..47f7a7c701cc2da550d2ac573a339cb037077046 GIT binary patch literal 108 zcmeYb3HD`RVX$UkXJD*{00w3TiImi|#L}D+tCZB@)S{C3;>5g^;*$KlR0ctq3_^%G tF|(**PI5v*LW+dO8ISa;B|nOn{G6VtQ1DknVoyV&2u~aX!#%lkk^qliCe{D| literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Wallw/Island_Wallw_0.mts b/mods/castrum/schematics/Island_Wallw/Island_Wallw_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..156dcf5e66c9b583bd8a175f91e44d85bc635cc0 GIT binary patch literal 54 zcmeYb3HD`RVPIrnXRxh@03e4sF|(**PI7_->*55F0P!pRO$(XWtXB3gEn;No7yi^9}#LS|KImrnL2`){G b_XOV4=ue9Kt0AG)kSM|<%D}Lt;;IV(dpsFv literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Wallw/Island_Wallw_2.mts b/mods/castrum/schematics/Island_Wallw/Island_Wallw_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..f67aee4d1b53d87609690619610d1931cac2835f GIT binary patch literal 76 zcmeYb3HD`RVPIrnXRxh@00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnOOl}r3 bPkTSPRf>Fm<$f@Lk!Nwj3I>KIi>vGaZ7yi^9}#LS|KImrnO%x)So bPkTSPRf>Fm<$f@Lk!Nwj3I>LNqARBWZq^zs literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Wallw/Island_Wallw_4.mts b/mods/castrum/schematics/Island_Wallw/Island_Wallw_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..d06f1ead7fe5a7e9b2bfa32ca6321515b0031d0b GIT binary patch literal 76 zcmeYb3HD`RVPIrnXRxh@00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnPOl}4; bPkTSPRf>Fm<$f@Lk!Nwj3I+ywwJW^7yi^9}#LS|KImrnP%x(%Y bPkTSPRf>Fm<$f@Lk!Nwj3I>LEu2%v8eGM9$ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Wallw/Island_Wallw_6.mts b/mods/castrum/schematics/Island_Wallw/Island_Wallw_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..4f80c21ddf80996aeb8cd62c3e443c13b6c7b6f5 GIT binary patch literal 76 zcmeYb3HD`RVPIrnXRxh@00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnQOg%h{ b_XOV4=ue9Kt0AG)kSM|<%D}Mq?G<4FYnT}b literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Wallw/Island_Wallw_7.mts b/mods/castrum/schematics/Island_Wallw/Island_Wallw_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..d77fc5d5a5fb86b7cdc62f28ecf6d2bdb371b330 GIT binary patch literal 79 zcmeYb3HD`RVPIrnXRxh@00t%o!Iadr#L}D+tK!7Gl;V>7yi^9}#LS|KImrnJI3)_b cdryJj!)dGKS)ExQbY2NG*ulV{+;RB}0OzV5GXMYp literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Island_Wallw/Island_Wallw_8.mts b/mods/castrum/schematics/Island_Wallw/Island_Wallw_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..ea5f8d1240e9cf1128d42f89fa1c7c4df8e24bd1 GIT binary patch literal 111 zcmeYb3HD`RVPIrnXRxh@00w3T!Iadr#L}D+tK!7Gl;V>7yi^7Wm{3Y;acWUXJVJ&! xF|(**PI3YRvl|-=?_nQ{BZ)pGF3HbJjZezSPtImwPRuM~ z5Km4lE-5O_wMxkZN|$GrWW=WzB^DP~%t=mgVCwOh(Adby_fjLyU-f{4Dg#6IbrpU9 D6VD*_ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Lake/Lake_1.mts b/mods/castrum/schematics/Lake/Lake_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..bfeaf8ed625625a524b4bea42bc8fa6612e76314 GIT binary patch literal 151 zcmeYb3HD`RVPIomVqmMUXJBQJN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#N=_^; zDJspi%1O*ljZe-!Oe;?;NiB*m&Mz%W qPOX@eoZ!IJ!{bwM;=lo(b|07S%@bD0Iq#Y0)zIk0z%aK>#RmYRgf+SV literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Lake/Lake_2.mts b/mods/castrum/schematics/Lake/Lake_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..2ed19ec30e97a64da04546e4ca2c84eb363d7119 GIT binary patch literal 156 zcmeYb3HD`RVPIomVqmMUXJBQJN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#N=_^; zDJspi%1O*ljZe-!Oe;?;NiB*m&Mz%W wPOX@eoZ!IJ!{bwM;=lo(b{~mHIuS=B4@{`|8gXX*a-oC;LJSNGPN@U{0LSw<@&Et; literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Lake/Lake_3.mts b/mods/castrum/schematics/Lake/Lake_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..ca2a381a006aa6197a2dd0c3e03a70df5d292c14 GIT binary patch literal 160 zcmeYb3HD`RVPIomVqmMUXJBQJN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#N=_^; zDJspi%1O*ljZe-!Oe;?;NiB*m&Mz%W zPOX@eoZ!IJ!{bwM;=lo(7M+AioW65dc`hD}d@#Y{YsA_0%Y_ma2r)1$4^oK$0Go_C Aj{pDw literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Lake/Lake_4.mts b/mods/castrum/schematics/Lake/Lake_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..17d11015f9e4218c57135ce2e612871c363fc21e GIT binary patch literal 156 zcmeYb3HD`RVPIomVqmMUXJBQJN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#N=_^; zDJspi%1O*ljZe-!Oe;?;NiB*m&Mz%W vPOX@eoZ!IJ!{bwM;=qA32bkKpGF3HbJjZezSPtImwPRuM~ z5Km4lE-5O_wMxkZN|$GrWW=WzB^DP~%t=mgVCwOh(Adby_fjLyU-f{4Dg#6IbrpU9 D6VD*_ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Lake2/Lake2_1.mts b/mods/castrum/schematics/Lake2/Lake2_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..6df3237ed0abe96971a69887d1749f137abd1af3 GIT binary patch literal 158 zcmeYb3HD`RVPIomVqmMUXJBQJN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#PEIT? zDJspi%1O*lHHuHpNG&d5U{1^|Vi1SPq+|m1lxLP?#HSY}78fIoE6OZOEs8HsECG_m u`K3k4sTFgQ6C9X&czg;@95}$!?&H$EdBO@g=RNbh8XCPA80NOA_y7PIkT`k( literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Lake2/Lake2_2.mts b/mods/castrum/schematics/Lake2/Lake2_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..453455c3a9401f55d085354f6dc0fb8ad0c431f6 GIT binary patch literal 163 zcmeYb3HD`RVPIomVqmMUXJBQJN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#PEIT? zDJspi%1O*lHHuHpNG&d5U{1^|Vi1SPq+|m1lxLP?#HSY}78fIoE6OZOEs8HsECG_m z`K3k4sTFgQ6C9X&czg;@95}$!?j!L?C*o-2fe95~BhIW}E|jo9h=F0jDU|>KOTRm^ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Lake2/Lake2_3.mts b/mods/castrum/schematics/Lake2/Lake2_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..0e0ee799b6bd19ebd35ea09651847244d29f0950 GIT binary patch literal 167 zcmeYb3HD`RVPIomVqmMUXJBQJN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#PEIT? zDJspi%1O*lHHuHpNG&d5U{1^|Vi1SPq+|m1lxLP?#HSY}78fIoE6OZOEs8HsECG_m z`K3k4sTFgQ6C9X&czg;@95}$!qLVO*({~Ol&&8vW4<=ZAjX1l0xlqCaAqIx!K`Idd DDp)*E literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Lake2/Lake2_4.mts b/mods/castrum/schematics/Lake2/Lake2_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..38a9cfcfb4710a3e7311957058a06bff73c2332b GIT binary patch literal 163 zcmeYb3HD`RVPIomVqmMUXJBQJN=Z#iEX^sgN=YqFEh>pGF3HbJjZezSPtIl#PEIT? zDJspi%1O*lHHuHpNG&d5U{1^|Vi1SPq+|m1lxLP?#HSY}78fIoE6OZOEs8HsECG_m z`K3k4sTFgQ6C9X&czg;@95`_108`r;k3|ZFVirq$WLE$D8p6aA!o;xlmP!HuN+CNB literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Market/Market_0.mts b/mods/castrum/schematics/Market/Market_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..8bdc7af5874fbb243e1e3c089ca2f7341eb0d3b3 GIT binary patch literal 72 zcmeYb3HD`RVc=w7WniiY0S0CU_L963D*T4r8Si0u`w)}r?VUY-8BrI literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Meadow/Meadow_0.mts b/mods/castrum/schematics/Meadow/Meadow_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..a4b911743799fb695a987b678565e5b8131820e8 GIT binary patch literal 110 zcmeYb3HD`RVc=q5X5gx?uLn}R$%(}!MWwk`#U=T9sSHvnscDI&IVDypsl};9CGlX< z_@tct(75Km4lE-5O_wMxk>Dv2-8EXjyZFG?&fW{^rrO-n4z zDX~gPElveW6_@1arN$@a%w6rxi02MRvz+{T@i&GgyVK$T}mZTQNgXA*v(iuchg^Tk`i;`0rL}2dBO-)S6FON^o zNG&d@nDcgGv`~Wrhijnl@8XlWH&s)Tek|JZU(eXC!B~NbCuqUJ1JlCh=A5q1H}XzX zPJN^`x%FsU?K$~KpRkBmLZ45D{JgPIeEEzp%jq?{UNRjF-4b&>%=DJ$*V5zPr`hFR z|D1Eq?E0>q@9RTWEMKX8@YtHzr2hERLjPXGF5LSlT12+p*4>uZ#OJT@53 Z$lxvWkX^oQt`48AK!XkoL*K{6n*jMfEO!6^ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Meadow/Meadow_4.mts b/mods/castrum/schematics/Meadow/Meadow_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..4a445d1e53d9f0969a09fef8c1a56913ff5549a3 GIT binary patch literal 219 zcmeYb3HD`RVc=q5X5gx?uV-Lo;7v{}E-5O_wJI*j&r4;HN=Z#iEX^sgN=YqFEh>oz zi^eDA>7A2=v%t=l-z|h0v(pb5=1KbMd&n!tm@CJKD!1jOv5Bb|dc9qGX8)IdWjCD(9(%toZpdg* z?fcNozaqx0W>e0ag3P)dI`%P>7}d`5i~V6p7rf$qAdV?djjN`CAw`iP{Kk?l0Ck^G A$p8QV literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Meadow/Meadow_5.mts b/mods/castrum/schematics/Meadow/Meadow_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..24a7be10f2fd81aa7e6256b94078232147b71d66 GIT binary patch literal 250 zcmeYb3HD`RVc=q5X5gx?uV-Lm;7v{}E-5O_wJI*j&r4;HN=Z#iEX^sgN=YqFEh>oz zi^eDAZ*S!QOt literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Meadow/Meadow_6.mts b/mods/castrum/schematics/Meadow/Meadow_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..3b51e6fc9232ff59def41e962cddbe150a6adca5 GIT binary patch literal 252 zcmeYb3HD`RVc=q5X5gx?uV-Lm;7v{}E-5O_wJI*j&r4+xhjCLfi%R0lGfOh!(~A;| ziy5R+QqvMkb4sjIQj1f8QefrrNjdq+*$m8ynMDkuFa_m_C8T5}>zah$J8@^@@4mgCum6AQW_k1L^yn+AYvPY>H__`5 dzSJ_o#IJqk#hGgiuUl;P-nn9%*(2GdeE=!|YbgK# literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Meadow/Meadow_7.mts b/mods/castrum/schematics/Meadow/Meadow_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..16d0fc6b96f0527fc35649bd48b7e67a28c18c04 GIT binary patch literal 253 zcmeYb3HD`RVc=q5X5gx?uV-Lm;7v{}E-5O_wJI*j&r4+xhjCLfi%R0lGfOh!(~A;| ziy5R+QqvMkb4sjIQj1f8QefrrNjdq+*$m8ynMDkuFa_m_C8{MU}&1w;69QPMe$*7Hh>IJ7?)U09Z+5Z2$lO literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Meadow/Meadow_8.mts b/mods/castrum/schematics/Meadow/Meadow_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..9a0046e1e2fd8dca12b00ef03c6bc1141210c364 GIT binary patch literal 229 zcmeYb3HD`RVc=q5X5gx?uV-Lo5Km4lE-5O_wMxk>Dv2-8EXjyZFG?&fW{^rrO-n4z zDX~gPElveW6_@1arN$@a>7A2=v z%t=l-z|h0v(pb5=1KbMd&n!tm@CJKD!1jOv5Bb|dc9qGX8)Id zWjCD(9(%toZpdg*?fcNozaqx0W>e0ag3P)dI`%P>7}d`5i~V6p7rf$qAdV?djjN`C MAw`iP{Kk?l0PSQ{_W%F@ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Meadow/Meadow_9.mts b/mods/castrum/schematics/Meadow/Meadow_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..fcac488fcdca50b58acc802530b9bdf5cb06968d GIT binary patch literal 323 zcmeYb3HD`RVc=q5X5gx?uV>(35Km4lE-5O_wMxk>Dv2-8EXjyZFG?&fW{^rrO-n4z zDX~gPElveW6_@1arN$@a%w6EiS2;^LApi zP=f-8>&5{4*rMn%&Z+!Y7)lvqmx)g|7GN@vw0KanuIjpTT5-ao!jrceufDd-4zBrq z>(iU`?egEA@?2bY$%(}!MWwk`xtV#X@yQvf#U%{PiJ3(V;whdXxK$-H)l8pG|{KTA!ImrnL2}^`h7EP9W<#;OAM&O$%(}!MWwk`xtV#X@yQvf#U%{PiJ3(V;whdXxK$-H)l8pG|{KTA!ImrnL2}=Zw96i-ExP$q&`>E~7OZu8{%X?+_%nc_5pC{$4 pJD$!Y%+*~o{qP$V(>W(UYrlLoA>prvf|NlI(;`NOMXRT2002g~Gob(g literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Mine/Mine_3.mts b/mods/castrum/schematics/Mine/Mine_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..dcbba9973457784370909a32e8740effeca2c6e8 GIT binary patch literal 175 zcmeYb3HD`RVc=q5X5gx?uLm-Pk`s$dib`{>ax?Q%fCnO{+5ioM}RMX%N=9@0z!f!mw>Q9w|z`}OU zQ_A;``b0eWuvax?Q%qBiV+eAy5bE)CkCM>t3RFwYh zT#_>-c#G8gO>vhUv|0A=^uM}6b72jO+cfcK*W&h9pBLKf9~t_{PucqQ!Oh=$Y~Gsc k>#Y5eulOT<<;AmI?pJ4DzHa|4IazYc#vb9#XQx#H0FLTZL;wH) literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Mine/Mine_5.mts b/mods/castrum/schematics/Mine/Mine_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..960a89d7bad28a8f30a7406209ace87dffd7525e GIT binary patch literal 265 zcmeYb3HD`RVc=q5X5gx?uV-Lm5K2xgE-5O_waU%RON~#?NG&d5U{1^|VvtNpO-n4z zDX}Up$p^}mXO?8dC+8Owq!uxVW0gwG!77nil%K~ShDAq7W?sddw-dej4k&QA1Rg8? z{_1P@q8T?zwAGIE*riP9xU>FgXR_OwIptMry{=0&?{Qvp<$R*S;xLJD&nL!b6HaWN zc0ytO=TDdJxfajV(C=HzWzD#nw4z|;DP> zeR&hdu@t@Cd_qT^7G`;A))%ZgSLz-+d-5XX^U~)Iu(8`VZCn!1H`hk(&N0nXF6R|} z8l%J47&-k$)DF%9GvuD dwL1Bd6_@D8wOcNKy}fbi{l2$sYqF;E007_ta{>SW literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_0.mts b/mods/castrum/schematics/Moate/Moate_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..014f203bd64282729bc95ea7316dd76537fbbe44 GIT binary patch literal 125 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtKyRUyi^8p7&j%es3g8Tvm_%vy(qD` zxMI%R>xz5~3>?gc6_)Yt3pYqiD*N|Gsqe|GO<2LF+eM5F3_Y7)1Ia(vMOU+{0{|^6 BG|d12 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_1.mts b/mods/castrum/schematics/Moate/Moate_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..329eb7ed33e2350b7743015a09c0248cebc209c5 GIT binary patch literal 135 zcmeYb3HD`RVc=w7WpJ$r0S0CU-sHsMlA_XFtKyRUyi^8p7&j%es3g8Tvm_%vy(qD` zn1MMlv#4Uu+v^Jj84NgB948&il${*F*f#U7`HIgjJeK*}^;5Ber(2)0FfjZ$7RS%P Mkg%WWwk~@P02Ajh&j0`b literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_10.mts b/mods/castrum/schematics/Moate/Moate_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..1ce49d230d1a9c59d16ebe11699179a50f616cbf GIT binary patch literal 107 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtMbH>)FKAv#LS|KId88k3NaXPFgyM# p+SlhK+WE4?{9lcdUV7#!?BM(~VFrc;yw{l-7=DB@ew@LV2LN8CE`tC7 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_11.mts b/mods/castrum/schematics/Moate/Moate_11.mts new file mode 100644 index 0000000000000000000000000000000000000000..2148af887177f478e95c911d2c18470797070a19 GIT binary patch literal 106 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtMbH>)FKAv#LS|KId88o6l5^qVcuBs qX`P(NJMGhk}&jgT%$J3=9naF4WBDVFUnJ^e(ml literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_12.mts b/mods/castrum/schematics/Moate/Moate_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..e9676a100422fb1482c6b7871af58f4e91c3a77c GIT binary patch literal 106 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtMbH>)FKAv#LS|KId88o6l5^qVKyxP pv`$Xs9=Er@QT@A=CpJEjSV3j(PbLP2Ef2pkFfi1G7zc1p0RRnjBlZ9Q literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_2.mts b/mods/castrum/schematics/Moate/Moate_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..c74293f5b9e5b36cd7fcfc3dbb87bcdc8f3c8488 GIT binary patch literal 138 zcmeYb3HD`RVc=w7WpJ$r0S0CU-sHsMlA_XFtKyRUyi^9}#LOZFahO<2W>HCed1gsQ ze0ou0adE|*x7RoFGAMAkIu;a$n;(3^6f$e~{eZpmI;QQpz9KdE{weI>{4{k2h65LC PY#A6D=Ib=ZadH6wEyO)G literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_3.mts b/mods/castrum/schematics/Moate/Moate_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..f423909d8e18a60b07888ae7fee4278f34654edb GIT binary patch literal 140 zcmeYb3HD`RVc=w7WpJ$r0S0CU-sHsMlA_XFtKyRUyi^9}#LOZFahO<2W>HCed1gsQ ze0ou0adE|*x7QVg7!)`d96vs;i{%aSahV${)be^un80G`LygY(na85j-( QR@pKzH0<|{3g`3(0Ps~hv;Y7A literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_4.mts b/mods/castrum/schematics/Moate/Moate_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..93f005282d9348faf3d7e39b154af8c4a8a8af91 GIT binary patch literal 145 zcmeYb3HD`RVc=w7WpJ$r0S0CU-sHsMlA_XFtKyRUyi^9}#LOZFahO<2W>HCed1gsQ ze0ou0adE|*x7RoFF$nNDIDUOx7t7PavH3{s^0JERV5_d&{-( literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_5.mts b/mods/castrum/schematics/Moate/Moate_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..72001f6cee9378e08547f985637fc1c6efea32ce GIT binary patch literal 114 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId9Kg_bP`%hs9_ouQmFdPtMU|=}T!XU+64ge8XGa~>1 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_6.mts b/mods/castrum/schematics/Moate/Moate_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..bc2a10afc48ee6dcf1738e49ea88b89aaed8fb1c GIT binary patch literal 112 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId9Jxaxp0IupE5y wv@W*8<>0BX89TK!%@(D+J+b$9-2R#wo3MgU+n+KrFkE0_U|8VW+rv8_0CmhU>i_@% literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_7.mts b/mods/castrum/schematics/Moate/Moate_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..5300bef3dcb911e24929c1f48149709f07723848 GIT binary patch literal 110 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId9Jxaxp0IupE5y uv@X_B=)$S689QIi>W$d6{prTv`~4!Zf}giPF)%P_FfuR%sI{5%+X4V(Hz;`k literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_8.mts b/mods/castrum/schematics/Moate/Moate_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..194eeb2773a7b8140add8c6206f828f0148d54a7 GIT binary patch literal 106 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId9J_6l5^qVKyxP ov@T9$!l4a!Jl)jhKiTrP-Yyj@c)Il|Hv>Ze6A;Tih!6+_0EMz9Q2+n{ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moate/Moate_9.mts b/mods/castrum/schematics/Moate/Moate_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..8c45e3ba95f89c93b5b1987b66adf74e42045fe9 GIT binary patch literal 67 zcmeYb3HD`RVc=w7WpJ$r0R~0}=ETgRiaBquD>5=La4>H$Uv9$-gZ}gV(f4%Zy+%dNz-ouCHF}KcJ<+!-STq`+#m-N()`geOz m-S{5HE46g})FKAv#LS|KId5+q)FKAv#LS|KId5+qrL~|0012EHADaa literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatn/Moatn_12.mts b/mods/castrum/schematics/Moatn/Moatn_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..6b74923983838218555501af70ffd24c5d215639 GIT binary patch literal 123 zcmeYb3HD`RVF+hnW#Fs_0R|=p-sHsMlA_XFtMbH>)FKAv#LS|KId5+q{MaNd1^8{lH<)UH~R7 BETsSd literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatn/Moatn_2.mts b/mods/castrum/schematics/Moatn/Moatn_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..b8f436ff2197a3a5cbde385700d2824aed8ce59e GIT binary patch literal 152 zcmeYb3HD`RVF+hnW#Fs_0S0CU-sHsMlA_XFtKyRUyi^8p7&j%es3g8Tvm_%vy(qD` zn1MMlv#4Uu+Z!7N8w>=P9i1O<@pE8xk;*K)+N57GpSgA2D#yho=32?|yQHUXe7{br x=8}G4KpI!#YW$j?*6%zoq>Vjhw|U|K#CzXZs(KPi2!cKJ}m$M literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatn/Moatn_3.mts b/mods/castrum/schematics/Moatn/Moatn_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..427afa902f32f8b52bdc876b4b271236f5754c80 GIT binary patch literal 155 zcmeYb3HD`RVF+hnW#Fs_0S0CU-sHsMlA_XFtKyRUyi^8p7&j%es3g8Tvm_%vy(qD` zn1MMlv#4Uu+Z!7N8w>=P9i1O<@q54}W8h@JJG^P_lj}`R;h`5a_DX9f@7t|)EUVMd_fq`L;$9-8Kwcrf*;)C-f0b$8L A*Z=?k literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatn/Moatn_4.mts b/mods/castrum/schematics/Moatn/Moatn_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..d5d974c0511efc8204ed7cde588ff576d9655da7 GIT binary patch literal 157 zcmeYb3HD`RVF+hnW#Fs_0S0CU-sHsMlA_XFtKyRUyi^8p7&j%es3g8Tvm_%vy(qD` zn1MMlv#4Uu+nWb@8x#aw0=E`Me|KP=F(L6p^?v5Eod-%C7w*=|_!7eETqW$^S9)pl zRlQQr`P06rU-LX4wwnbc$|tq-eQ)%!pO@?tg7-2oFdXRlvYQ!5Px;A^n!iXF0LBSE AcmMzZ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatn/Moatn_5.mts b/mods/castrum/schematics/Moatn/Moatn_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..4c756c136d51cc00d41f7811c5f6c9900ce3070e GIT binary patch literal 128 zcmeYb3HD`RVF+hnW#Fs_0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId5+q%3J7Uh$94ZuGC(ZnaeJWv1sOzct=fQJ3c5P~RIpSIFn3 f_a4iPDRt)Fdl?uQ4s?Cl&kUre{A5`1VZIyyx_2`p literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatn/Moatn_6.mts b/mods/castrum/schematics/Moatn/Moatn_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..88f9b89baf07318ef94c53b2edec4baaed19a8d0 GIT binary patch literal 120 zcmeYb3HD`RVF+hnW#Fs_0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId5-V27clX%rW0gFNm&EE{&Gww60zy`=msaV%RQ(ikKWx4UBLhQ&^i_LV1_p+V LG)CW@iyr_0yKW{k literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatn/Moatn_8.mts b/mods/castrum/schematics/Moatn/Moatn_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..ef67cf1ff1523e382e8a2f5d4755e57cd8c85800 GIT binary patch literal 100 zcmeYb3HD`RVF+hnW#Fs_0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId5+q zjQI4T#Ny(LId5-l6l5^qVcMATY0W&zn8If&X+PSE6Bh2y+7P%)dg?{}yS=AgOn>K= w`o+6^vC*%ky8|WvUb?%Yr|xB5h}-@W^ToCd3=9cMf31Pk0VDaDx--`S0Evn`C;$Ke literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moats/Moats_1.mts b/mods/castrum/schematics/Moats/Moats_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..08017fd052ac8dd89ed24d5691068990f4a0bccc GIT binary patch literal 150 zcmeYb3HD`RVF+hnW#Fs_0S0CU-jvj|#L}D+tKyRUyi^A9 zjQI4T#NuKG=ETgRiaBp@9OOLUAi%uQTgw0S%7<~s+=_S)ADYM9I&YQZ;u3SM)FKAv#LS|KId5+q)FKAv#LS|KId5+qrL~|0012EHADaa literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moats/Moats_12.mts b/mods/castrum/schematics/Moats/Moats_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..f935982c837aaf1428ab156ec314f82cf0322c54 GIT binary patch literal 192 zcmeYb3HD`RVF+hnW#Fs_0U(DrIkC8;s5IBAJh3FTh=DmVvxq@FB{eOvG^fNWC9|j` zzC5!eBR;(-vACFl52iS&C^IEJwPMcO8wa_X9Ryq)h3#$j>$%ue3O%xE3az~#Y|gw} z=fl^kf_uyVe5<{2)mJ|`^~{RdamP;02sGc@Gu3c$Ue(Ox=+#pTSMPe6ddDd33aW}T XXSIJb073Yb{VG7}L%Nyr?z#K`EFVw6 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moats/Moats_2.mts b/mods/castrum/schematics/Moats/Moats_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..9f67c5e4a4e0061d65135792c6dd49f72430f724 GIT binary patch literal 152 zcmeYb3HD`RVF+hnW#Fs_0S0CU-jvj|#L}D+tKyRUyi^A9 zjQI4T#NuKG=ETgRiaBp@Y!qxT5MXw6e!Rucfz?GSv+Qb$G28JKXf8PTshSa#7Pi7|q E0Aap96951J literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moats/Moats_3.mts b/mods/castrum/schematics/Moats/Moats_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..922a5d295fb6d722dea03c8747d828662adb9c2b GIT binary patch literal 155 zcmeYb3HD`RVF+hnW#Fs_0S0CU-jvj|#L}D+tKyRUyi^A9 zjQI4T#NuKG=ETgRiaBp@Y!qxT5MXw6e!Ru+0hf${ll|`SrnOJ5H#voeUeMSpt)0AY zx7LkI_Ju_?>VLQW^4_qt{?U^KfmP;V$7)`#UMQ{nd1-m^6=ntohB+ShWr5U!Gu(?0 H&XWWHRC7MQ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moats/Moats_4.mts b/mods/castrum/schematics/Moats/Moats_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..7bc64a72594a9ff914f5eb79ecf3e698809e55bd GIT binary patch literal 157 zcmeYb3HD`RVF+hnW#Fs_0S0CU-jvj|#L}D+tKyRUyi^A9 zjQI4T#NuKG=ETgRiaBp@9^`FM5O4|HS{VJ^fpx}qx~nag$_D0N)8TPx#B2&;3I zuzz3arOj9MN%3J7Uh$94ZuGC(ZnaeJWv1sOzct=fQJ3c5P~RIpSIFn3 f_a4iPDRt)Fdl?uQ4s?Cl&kUre{A5`1VZIyyuirBX literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moats/Moats_6.mts b/mods/castrum/schematics/Moats/Moats_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..faec069838fcc92c08def6ea22374bd850a12c6e GIT binary patch literal 120 zcmeYb3HD`RVF+hnW#Fs_0R|=p-jvj|#L}D+tKyRUyi^9}#LS|KId5-V27clX%rW0gFNm&EE{&Gww60zy`=msaV%RQ(ikKWx4UBLhQ&^i_LV1_p+V LG)CW@iyr_0vZ^K- literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moats/Moats_8.mts b/mods/castrum/schematics/Moats/Moats_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..837548d189891d61a95967d5d8e8072abb959e95 GIT binary patch literal 100 zcmeYb3HD`RVF+hnW#Fs_0R|=p-jvj|#L}D+tKyRUyi^9}#LS|KId5+qxz5~3>?gc6_)Yt3pYqiD*N|Gsqe|GO<2LF+eM5F3_Y7)1Ia(vMOU+{0{|^6 BG|d12 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_1.mts b/mods/castrum/schematics/Moatw/Moatw_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..329eb7ed33e2350b7743015a09c0248cebc209c5 GIT binary patch literal 135 zcmeYb3HD`RVc=w7WpJ$r0S0CU-sHsMlA_XFtKyRUyi^8p7&j%es3g8Tvm_%vy(qD` zn1MMlv#4Uu+v^Jj84NgB948&il${*F*f#U7`HIgjJeK*}^;5Ber(2)0FfjZ$7RS%P Mkg%WWwk~@P02Ajh&j0`b literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_10.mts b/mods/castrum/schematics/Moatw/Moatw_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..1ce49d230d1a9c59d16ebe11699179a50f616cbf GIT binary patch literal 107 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtMbH>)FKAv#LS|KId88k3NaXPFgyM# p+SlhK+WE4?{9lcdUV7#!?BM(~VFrc;yw{l-7=DB@ew@LV2LN8CE`tC7 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_11.mts b/mods/castrum/schematics/Moatw/Moatw_11.mts new file mode 100644 index 0000000000000000000000000000000000000000..2148af887177f478e95c911d2c18470797070a19 GIT binary patch literal 106 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtMbH>)FKAv#LS|KId88o6l5^qVcuBs qX`P(NJMGhk}&jgT%$J3=9naF4WBDVFUnJ^e(ml literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_12.mts b/mods/castrum/schematics/Moatw/Moatw_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..e9676a100422fb1482c6b7871af58f4e91c3a77c GIT binary patch literal 106 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtMbH>)FKAv#LS|KId88o6l5^qVKyxP pv`$Xs9=Er@QT@A=CpJEjSV3j(PbLP2Ef2pkFfi1G7zc1p0RRnjBlZ9Q literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_2.mts b/mods/castrum/schematics/Moatw/Moatw_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..c74293f5b9e5b36cd7fcfc3dbb87bcdc8f3c8488 GIT binary patch literal 138 zcmeYb3HD`RVc=w7WpJ$r0S0CU-sHsMlA_XFtKyRUyi^9}#LOZFahO<2W>HCed1gsQ ze0ou0adE|*x7RoFGAMAkIu;a$n;(3^6f$e~{eZpmI;QQpz9KdE{weI>{4{k2h65LC PY#A6D=Ib=ZadH6wEyO)G literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_3.mts b/mods/castrum/schematics/Moatw/Moatw_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..f423909d8e18a60b07888ae7fee4278f34654edb GIT binary patch literal 140 zcmeYb3HD`RVc=w7WpJ$r0S0CU-sHsMlA_XFtKyRUyi^9}#LOZFahO<2W>HCed1gsQ ze0ou0adE|*x7QVg7!)`d96vs;i{%aSahV${)be^un80G`LygY(na85j-( QR@pKzH0<|{3g`3(0Ps~hv;Y7A literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_4.mts b/mods/castrum/schematics/Moatw/Moatw_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..93f005282d9348faf3d7e39b154af8c4a8a8af91 GIT binary patch literal 145 zcmeYb3HD`RVc=w7WpJ$r0S0CU-sHsMlA_XFtKyRUyi^9}#LOZFahO<2W>HCed1gsQ ze0ou0adE|*x7RoFF$nNDIDUOx7t7PavH3{s^0JERV5_d&{-( literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_5.mts b/mods/castrum/schematics/Moatw/Moatw_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..72001f6cee9378e08547f985637fc1c6efea32ce GIT binary patch literal 114 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId9Kg_bP`%hs9_ouQmFdPtMU|=}T!XU+64ge8XGa~>1 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_6.mts b/mods/castrum/schematics/Moatw/Moatw_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..bc2a10afc48ee6dcf1738e49ea88b89aaed8fb1c GIT binary patch literal 112 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId9Jxaxp0IupE5y wv@W*8<>0BX89TK!%@(D+J+b$9-2R#wo3MgU+n+KrFkE0_U|8VW+rv8_0CmhU>i_@% literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_7.mts b/mods/castrum/schematics/Moatw/Moatw_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..5300bef3dcb911e24929c1f48149709f07723848 GIT binary patch literal 110 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId9Jxaxp0IupE5y uv@X_B=)$S689QIi>W$d6{prTv`~4!Zf}giPF)%P_FfuR%sI{5%+X4V(Hz;`k literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_8.mts b/mods/castrum/schematics/Moatw/Moatw_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..194eeb2773a7b8140add8c6206f828f0148d54a7 GIT binary patch literal 106 zcmeYb3HD`RVc=w7WpJ$r0R|=p-sHsMlA_XFtKyRUyi^9}#LS|KId9J_6l5^qVKyxP ov@T9$!l4a!Jl)jhKiTrP-Yyj@c)Il|Hv>Ze6A;Tih!6+_0EMz9Q2+n{ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Moatw/Moatw_9.mts b/mods/castrum/schematics/Moatw/Moatw_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..8c45e3ba95f89c93b5b1987b66adf74e42045fe9 GIT binary patch literal 67 zcmeYb3HD`RVc=w7WpJ$r0R~0}=ETgRiaBquD>5=La4>H$Uv9;wC+&=~e-Aco`0K-%Y`2YX_ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_1.mts b/mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..67e65246e9402e2ec9e980f4336f4cd2c7c1b948 GIT binary patch literal 74 zcmeYb3HD`RVPFN}dLUq6Vqi|pEMgE&Nli;E%_*_U%`YylOwLbA%1N!5lbn!{z~b!G aAjtP}b)U!gtCtxCN;E|o7~BI4Hvs?%br)&? literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_2.mts b/mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..a2292efacbc4dfd8c261e1787b0de872f5ee76fc GIT binary patch literal 79 zcmeYb3HD`RVPFN}dLUq6Vqi|pEMgE&Nli;E%_*_U%`YylOwLbA%1N!5lbn!{z~U_6 fu)%;)S*WG+g0t+zcdM5(A9!fDiisg~j^RE4dcPVa literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_3.mts b/mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..c2e4763c20632e9bb68a48c19529889281ecb2b9 GIT binary patch literal 163 zcmeYb3HD`RVPFN}dLRJO%!!#r48kd?X^EvdC04ol#l@A$`AJDRsSKhp!SckC)S~#b zoc!|4ymST;RN>AaFy_)0;iLo3ao sJK}RkNxZErL*E2OCbKd#g_GwQlpPvmIT~&1G#Z0twHO!{Og8EV0ECb=GXMYp literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_4.mts b/mods/castrum/schematics/Mountain_Fountain/Mountain_Fountain_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..571a28918db5362ab33271c0865d910e10df3546 GIT binary patch literal 192 zcmeYb3HD`RVPFN}dLRI@m=iOL7=)7(i%W`1bFFgoi;FAci%atJQW=C(QqvMkb4nnB z$@xi1IjIbyFv0S~lGLL3w4D6%%)E345me#g{L-T2)QUNKCj@dGP~dUCZ1rWc`@O5; z(YhR5b#GhSGy+{1n4Xqg`7Gzl*`ei7zh6&r6L@%E?d8W{^!zEG{W3 z&9%zSFU>1S%*=}~EKMvbs*F$0NG&d5U{1^|V&H|T0c&Ish8dTeUtC<7oS&4GlUgw+ zIpF}4gyf79Z9F_@Bm_cPxu>2{J}dL+u6yifk5W~=&k-j~rr!IvH15wN@xvkC^8ac` TgfK)GnsTx6F)*m+o;(Qv_JBlj literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Mountain_Quarry/Mountain_Quarry_1.mts b/mods/castrum/schematics/Mountain_Quarry/Mountain_Quarry_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..aabbf54a90ddcd7ad94b110b3edffde9c484c6f6 GIT binary patch literal 211 zcmeYb3HD`RVc-JcdLUq6WspiqO-n4zDX~gPElw>ei7zh6&r6L@%E?d8W{^!zEG{W3 z&9%zSFU>1S%*=}~EKMvbs*F$0NG&d5U{1^|V&H|T0c&Ish8dTeUtC<7oS&4GlUgw+ zIpF}4gyf79Z9F_@Bm|TWGpR-{&`IggbUI%5`Ls+vvzUB4`!TnEKWDVab3tsDQa%9~g8ooH;0Ruz$vs2sv3hGjk literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Mountain_Quarry/Mountain_Quarry_2.mts b/mods/castrum/schematics/Mountain_Quarry/Mountain_Quarry_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..d3bcd38ead3a72a69e3e2dce8502b86fe995b044 GIT binary patch literal 214 zcmeYb3HD`RVc-JcdLUq6WspiqO-n4zDX~gPElw>ei7zh6&r6L@%E?d8W{^!zEG{W3 z&9%zSFU>1S%*=}~EKMvbs*F$0NG&d5U{1^|V&H|T0c&Ish8dTeUtC<7oS&4GlUgw+ zIpF}4gyf79Z9F_@Bm|TWGpR-{&`IggWD-7{DtAamY|$CTd$m_S>aWTV^ga6A>&>%; yzr<#r-?)2zYr}5=wII3u9NPnx>rQf7C*5&ZS|iWe%$1zUwq@zUwq@zUwq@*h91IdGQ$-jUjir3OW4|yksOzUwq@zUwq@2fDQZeQk{6Dg*xKFNR(8>tCv%3`EBAvO3=)~iA`Fbi QQoi1?UlJGC4mfDJPYIIWe;cA(N9>mKa~0 zUs{x$${wu qiaE&%2bd%t7KBWT+T;@;s3s!Dlf+zb^H(DKhF|3#%nTMEGTH%3jvv_o literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_2.mts b/mods/castrum/schematics/Pier/Pier_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..b4e4ba4a49d65a53d0e0ea52873df0f677386950 GIT binary patch literal 96 zcmeYb3HD`RVPIuoX5g!@uLn{hDXD3Rr8y;5<%uP!Me)V?rA5i949tm{MGQP}sr>wu siaE&%2bd%t7A!ew;M1& literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_3.mts b/mods/castrum/schematics/Pier/Pier_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..73dbb6ef5efe0af5fba3d91b8bee05e1572dd61c GIT binary patch literal 97 zcmeYb3HD`RVPIuoX5g!@uLn{hDXD3Rr8y;5<%uP!Me)V?rA5i949tm{MGQP}sr>wu siaE&%2bd%t78IN^a&(;$5Mj{4E1+$y;k!=0jA3wu siaE&%2bd%tP7sPzTfrgB#m%;nF)7u3#>uaT`4YaqpTNfOz%t_u0AX|>nSx BB4_{r literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_6.mts b/mods/castrum/schematics/Pier/Pier_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..65c18fd8f7bc6b0d829c4c6378c29edb8231b074 GIT binary patch literal 112 zcmeYb3HD`RVPIuoX5g!@uLn{>DXD3Rr8y;5S*3aDIjQCO`6&z{FtPH)lGLL3;{4L0 z>)W}Y!&xy!@;^)R0Sk2M3s IoMRa)0g}Ze^8f$< literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_7.mts b/mods/castrum/schematics/Pier/Pier_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..bb34338984230901f9984647cc354898da4c2ea4 GIT binary patch literal 111 zcmeYb3HD`RVPIuoX5g!@uLn|sDXD3Rr8y;51(|uN@#XpXDGVYoq4LC%)S~#}{L-T2 zR0iJU#Nv{o(p;g?q$q5MwEY1QB8xk4>xmCi-3}&7&VY$o0{`D}Q0gp8U J!<=IoD*>pSB_IF* literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_c0.mts b/mods/castrum/schematics/Pier/Pier_c0.mts new file mode 100644 index 0000000000000000000000000000000000000000..b602255128b646649e7d635f64bbd0db1152f050 GIT binary patch literal 126 zcmeYb3HD`RVPIuoX5g!@uLn|sDXD3Rr8y;51(|uN@#XpXDGVYoq4LC%)S~#}{L-T2 zR0fgc#Nv{o(p;;|;+(|1l=$L|%mTxTImrnL2`tV64jU301i4kh$_!?nF=4sO!~XR! WpMe02Jcste2zFCm7KTTv*_8mbp(r*0 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_c8.mts b/mods/castrum/schematics/Pier/Pier_c8.mts new file mode 100644 index 0000000000000000000000000000000000000000..6153ebf18691faaabb8248a01ca24a972b077ce3 GIT binary patch literal 128 zcmeYb3HD`RVPIuoX5g!@uLn}XDXD3Rr8y;5iOGq{nThe``S~dfA~3=7#FEsa_~QK1 zqU2Ntk>teUlA_XFtIXn@#JrUF;*87!!-_e{2?+@-&H@e_5*h@#Rl>>)W}Y!&xy!@; Y^)R1-0E;|__QD8uQ(hK^N2=MC00b8(-T(jq literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_i0.mts b/mods/castrum/schematics/Pier/Pier_i0.mts new file mode 100644 index 0000000000000000000000000000000000000000..a21c1ebf4a1b98181968a44c9be26c1340829043 GIT binary patch literal 121 zcmeYb3HD`RVPIuoX5g!@uLn{hDXD3Rr8y;5<%uP!Me)V?rA5i93_Nhr{QMLKk>teU zlA_XFtIXn@#JrUF;*87!!-_e{2?v-YCMr0wOqbEy%baXPB2hX>Unl5Uc3&0ssoSDX9Pe literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_i6.mts b/mods/castrum/schematics/Pier/Pier_i6.mts new file mode 100644 index 0000000000000000000000000000000000000000..85e0ffd08cd8c78ccc9e011e88448eb115435f03 GIT binary patch literal 127 zcmeYb3HD`RVPIuoX5g!@uLn{hDXD3Rr8y;5<%uP!Me)V?rA5i93_>u`tkS&noYeCC z{1gU}vq{6 X3|}6w8#L-hTu5neNn#MI=<)&p?MN%R literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_i8.mts b/mods/castrum/schematics/Pier/Pier_i8.mts new file mode 100644 index 0000000000000000000000000000000000000000..6c48bbe9a29e2cb01e802d1ce30e9e8203437e5c GIT binary patch literal 128 zcmeYb3HD`RVPIuoX5g!@uLn{hDXD3Rr8y;5<%uP!Me)V?rA5i948kzc#N@=}%*6Qe z{QMLKk>teUlA_XFtIXn@#JrUF;*87!!-_e{2?v-YCMr0wOqbEy%baXPB2hX>Unl5Uc3&0suYQEMWiu literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_m0.mts b/mods/castrum/schematics/Pier/Pier_m0.mts new file mode 100644 index 0000000000000000000000000000000000000000..8c57bc2af40ef9ea14acd7483e04b2528278f0a5 GIT binary patch literal 128 zcmeYb3HD`RVPIuoX5g!@uLn}R$%(}!MWwk`<%uP!MGQhIscDI&IVDzErFrQ&spa|k zDGVYoC7H!JiFqmU#Tl6eh81&?6Amy*OjK}UnJ%NZ_sGmM4TqH6`1YUlahcU~|Ll#o aOWRJ~Nd4GW{C5L$gmbb7GlRQ&Mh5`Cq%jBp literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_m7.mts b/mods/castrum/schematics/Pier/Pier_m7.mts new file mode 100644 index 0000000000000000000000000000000000000000..01c46a0f70827d9a7768aaef488b11f8b4d1b135 GIT binary patch literal 127 zcmeYb3HD`RVPIuoX5g!@uLn}R$%(}!MWwk`<%uP!MGS%|scDI&IVDyFnR%)4<@xz3 z3?eWUnZ-GYc`5P58JPu!6?2jk4lqefRB&RME~B^i$jmbhhm_p-_Mh}|nbmXu?2Wfe Z+fLp{{n%FgcLQ^TbFv3BgS&c02LOr)FpU5J literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Pier/Pier_m8.mts b/mods/castrum/schematics/Pier/Pier_m8.mts new file mode 100644 index 0000000000000000000000000000000000000000..980469271e0d24f7f5ca30a99f999bbbbac5bc31 GIT binary patch literal 151 zcmeYb3HD`RVPIuoX5g!@uLm+kQc}|rOLI!B$`eaci{gv(ON)|I8F-Tui%W`1b0MM( z!Z1aN$%)CCiSgz6`6&z{Fg2OQIf;2G@x>XL1%?%Kk`odVjx_jq2q-pr^G%QYv&qLJ mX~);3$%pfej3=r+E;lZ#UYTel`7p-*4a4CL%nTlO=&1CEOSh($ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Quarry/Quarry_2.mts b/mods/castrum/schematics/Quarry/Quarry_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..54e82c8d05263f158c31b92c536edd367a3ced40 GIT binary patch literal 164 zcmeYb3HD`RVc=q5X5gx?uLm+kk`s$dib`{>3QH4+Y2SzIe~vq`E1ckF%&wyqfSJCSHg|)A_K$A HL(^;lRm3_w literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Quarry/Quarry_3.mts b/mods/castrum/schematics/Quarry/Quarry_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..946ca8f7a1f6c1cc41bfb659cb79c5e6bed75323 GIT binary patch literal 189 zcmeYb3HD`RVc=q5X5gx?uLm+kk`s$dib`{>3QH43Cry$6{UYW zm*h+d-XisWQ`}_-ZI=Bz{jYA&Tv)^6HckB5wYdG&=Y=-=M}|J~Q?`D6aP#*bo42O= jI%|LAEB;7ddGTzQ`_OJxv&DM(2zPAw{l2a8tBc^eqbcR+!|`NiJyuRp~^ zgs1=I;#54!xswrIhl9?!eGeWs^g zigOK~8F5FnTDDB$)w`UyGgaw4f4y?Ee>=%cJJuFflQ8u^@84r@?p?n7YiC(b$=e%o JhOX0I0sy;sTMhsK literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Quarry/Quarry_5.mts b/mods/castrum/schematics/Quarry/Quarry_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..912de9e734a9b03778b2b333df88894c8c6a9ffd GIT binary patch literal 227 zcmeYb3HD`RVc=q5X5gx?uV-Lo5J^rfE-5O_wJI!4EGnvuPtHg!E@5C!%q(IMNJ&jg zEX^sg%1OJxv&DM(2zPAw{l2a8tBc^eqbcR+!|`NiJyua=C< zds6g%iwemfy|&0Dq)z4f6syI3;hPr5O>cQTqxeGD3!SUllP`5>ioZ3JkYD(2w~X-T zwcGE@{XAOuGImv4glg~v7soR@H!n7xXR$GUMs%s|{0S|lN#*N*9JuuV>Azz#HIE+d S)RwiL)?B7@oHOy}wC?~3m12JY literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Quarry/Quarry_6.mts b/mods/castrum/schematics/Quarry/Quarry_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..3b57c3a776d0e4b92942448fe6b2ab38827d4b98 GIT binary patch literal 224 zcmeYb3HD`RVc=q5X5gx?uV-Lo5J^rfE-5O_wJI!4EGnvuPtHg!E@5C!%q(IMNJ&jg zEX^sg%1OJxv&DM(2zPAw{l2a8tBc^i0nse9-ay1oJ)j&m^6(w3_k4)FZS_NOJSS z+wt>FZyia{S@uQFOsiaWp23oDzl1W}dla{eta|>kC!!~I^CQ;N|HF%qdszh*9r|{E Pnr~h7Hs*>`)BXVfWHVto literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sail1/Sail1_0.mts b/mods/castrum/schematics/Sail1/Sail1_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..02ecc8a42c9769fa5d4c5b18a3e0a52b8ece1ab5 GIT binary patch literal 42 vcmeYb3HD`RVc=w7WniiY0R~0}=ETgRiaE&%5>*T4r8Si0u`w)}r?VUY-8BrI literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sail1/Sail1_1.mts b/mods/castrum/schematics/Sail1/Sail1_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..f1fe7234b63abf78250128d393bf625a5c5e2906 GIT binary patch literal 64 zcmeYb3HD`RVc=w7WniiY0R|=puJZi+9INt-%#u_F=ETgRiaE&%2N-%%9Fxu{@+Zs) R_BVD|#@)%laCN256#z8}6e9ot literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sail1/Sail1_2.mts b/mods/castrum/schematics/Sail1/Sail1_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..e5bdf12e734614b44c383c34d81af2d1a5894d0a GIT binary patch literal 63 zcmeYb3HD`RVc=w7WniiY0R|=p&hq^H9IJxNyle*M#LS|KImrnJ7b%7 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sail2/Sail2_1.mts b/mods/castrum/schematics/Sail2/Sail2_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..0f8a84bf4f0bdfcd3c59ba1f8eaaa33840a3914e GIT binary patch literal 62 zcmeYb3HD`RVPFMfrg|V?U}E4Z&(F`XD$mF)No8P8%q*&ylbq1N?4~0yTgQxH`dW3N P1XEUS28LZHgx>-H=8zFF literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sail2/Sail2_2.mts b/mods/castrum/schematics/Sail2/Sail2_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..e26f663b6095bb7ae95bb8afcf31d3be3df3ed9b GIT binary patch literal 61 zcmeYb3HD`RVPFMfrg|V?U}E4b&(F`XD#*;sW?)XtEUK83oY27RrXw(0$Bbe6T6LiW OQ&w&UhFvFw-vR*8`4GVX literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sail2/Sail2_3.mts b/mods/castrum/schematics/Sail2/Sail2_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..301c5de7b8bfd7deecc166797dddd72f88b5482e GIT binary patch literal 63 zcmeYb3HD`RVPFMfrg|V?U}E4d&(F`Xs!Ywv$uDPMPRuN-n3J5)!0e_YFk8orVftEi Qp#)P_ZU%;3CxqVu0R9aTtpET3 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sandmine/Sandmine_0.mts b/mods/castrum/schematics/Sandmine/Sandmine_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..68f257b47443051ff7b1228853b077f347e0b935 GIT binary patch literal 176 zcmeYb3HD`RVc-JcdLUq6W#CCkO-n4zDX}U}%u8XAg7H#Pi&KkA;)_f2^HSrJa`Kb2 z8JH6@ix>o93P8%ivJ7I$iNz&FrMX}eax;PIlQU9_ODg6hCmdkt;qei1`18y#_^iz( zU!`NUR}A^D<}TSOvio93P8%ivJ7I$iNz&FrMX}eax;PIlQU9_ODg6hCmdkt;qfUr(Q`zN?~zfz zWY5fvGdk|`y?J)fCrRy~%AIEmXSvLpzj1cE!Nid1kILkY@3;ij^jOy!`Ytx9JK34| l=cD(k{Fx2A3>BAYi6#Aww&!9KJuoTG?H~ga!;}jr*#J*oQWyXL literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sandmine/Sandmine_2.mts b/mods/castrum/schematics/Sandmine/Sandmine_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..95636f9f0339f6183791305df9e0ecd11f55c0bf GIT binary patch literal 248 zcmeYb3HD`RVc-JcdLUq6W8g_iO-n4zDX}U}%u8XAg7H#Pi&KkA;)_f2^HSrJa`Kb2 z8JH6@ix?!(6##XC6)_0HWIzT%gv62)i%W`1bHQfkW&%x0&PXjTshIP2(nG!m1&)@J z>z=>6T70hPNalt4zaAQzmp-1%?Ajydsd{Zs!1sR%dnUICedqbc*0#sZY3*g_SD#HZ zpUwPSP`JQvmsZ*J_53QYZyLUjpS||o1MB_0!t*~=>Xd$CtU#Ml5N5O literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sandmine/Sandmine_3.mts b/mods/castrum/schematics/Sandmine/Sandmine_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..30aba6a7537f1206df43c5cf8ffba3ea610dc7e4 GIT binary patch literal 273 zcmeYb3HD`RVc-JcdLUq6W8g_iO-n4zDX}U}%u8XAg7H#Pi&KkA;)_f2^HSrJa`Kb2 z86?oak1pY;*z4$T(H@>nLv}0Gg6C7D(1YMbX%xFfy0IO z#qQr_;-yJ7vYy|hA6uVUt)f{Q zb$w1>#iZ|{mtNfP?Wvr4Vrj6q=!Mxj6-#8U3E!E2SBwABzZ0sPW=VgHnEXOGZ%*j+ k8P_eCY(8gN?%KQO^}Qvls{H=0I`F^f)!{0}e8p2D0J)rY)&Kwi literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sandmine/Sandmine_4.mts b/mods/castrum/schematics/Sandmine/Sandmine_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..ee909613eec8a473722cf9e90db93288f49bb59a GIT binary patch literal 304 zcmeYb3HD`RVc-JcdLUq6XW&UmO-n4zDX}U}%u8XAg7H#Pi&KkA;)_f2^HSrJa`Kb2 z86?o9myG~#U&MU z-cGv6*Py`R%DM3VyX%*iITg*`d$oDG<u`Oe~rYaaO?pK-k-YHnYM%o4V+7-fOL8li009&z! ALjV8( literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sector/sector1.mts b/mods/castrum/schematics/Sector/sector1.mts new file mode 100644 index 0000000000000000000000000000000000000000..cb7d8cb84304a240174693d84f6810b75656ecd5 GIT binary patch literal 3590 zcmc&$dr(tn7Qb4yZl@JmSQV(swhmgsz@jo$mWNxXBA~Lof-%6I02help*I1FyqvAo z!m4yENk9~KssRHc65+-uNoGM!O%N(=fe=VaAyA%?K!6Y+o2LnO-I<-8&YnMRlJ9)y zch2woe&^gAjgC4B*a3S0R{$z_t?9k%lW-I&oI&)XP{||+cqbW3!DSGre#v;43T(3c zGCIL5JT(nWBI5{vy~U9V<1!%v@CFVK15TDj3Z9S&!5{@kO145608I$`7zzd0WJ#P( z!l$NDK|FAket)E&Y?=cM4BR2VC^!;bDsY-1HxyrGnLHr|_^o znVy;t;A$xePa){f1+*pip2bJafJq=F4Sx#QXjw8tB;ii!^N;`+%X$hPhV)sD)xr=i zIs4ym@B#i{*-lA^2$24UjkP%cYSj$?*|o|3HK6p#79mb@4(cD?PVIld>*c8*zq`pL ztm`^;e&lw}*1WWXR~N#*Y8i?B{Mnz5_$~R9wt&UU-|Fsd{=^vYp)1i*tbTh z2jf;Emz|@{Rurq6NX6dat$U6{N0_Xvem3pQr-3^r!=#a)nhfGQQo@IPZZ{^6cL(*- zJJQr4R=9m*jhi#6)Wr3hm>LdLiZ#%%!K4ruXNI%y zkdw~*6XBv95T?mlB)TqYnjR~c(V;#$eY}TWmyl#W#^q>I{2auCFhUte(S5-tf8U82 zjB+D7%|Xf@;&0yW>3he=e9HMAZgrXyLf^`O4&|>M zJS|Emdt}Y0;4eUBoD`uTQzuo;1s9*b#4<@@HY!9;;wEO|gFte2p#QNrlN6bgq1Y~e zidNCB%)_3^H!F)a=UF+vi21_4zV>9Df!TmoWtLWBd`QgLo<5;OyPXqAN>fTZ=bd6r zb>Rh_m+QuxE)X@PHVolTWtRWt6->MSHU@1jDX>QO%hZXEGCUSJV=a=qak}|0!qD+f zgkZyW_uM}D=cz?R$=FM#VeVr&eur|a`Vqp+%Y$LD-Bt@IqoQE5TH#9&qwB3#o$jym z9}^K*Yi6o^#qa62#IgiUGZC|R*U}POn_#dHX+{OKFVn5sQz8EO3-b@ZtVi0QRpo~? zOuC%AoR#4DbXEP4a-lD`(MvuT6DVc>n0~~3_LZR()5EnCham`5tnP;)t}NHL8(O_v zbVa3|p3@#l5b#NuUizf%VS+66$yJp|iVq&%R<#y*@#R>+w(pt>qJw_+$XN_}+cH;+ZdOKogOasa~RU%ipVheFtBzw*>B1GuK9y+li&w|6IIU`VcDrg>UOoID)qGVWN zmPEu(?61OS8&Tn32anz>aLv!-{aEY`dCC)t#R9>y=8Qx%w~eO?xXEUIpQOO{WE*wG z0t=tFAlGEM)h$xh-sX1%%b)Fc0}pxcf9TEJJwG#gT}``|$Bla`tx5M}v?7FtMB^Ns zU^(7U5X|--g6b!a=8Kn(waY{2vBS}QWW!WqSBK_x9Q?CXB@Y5~dCYoF zn{sHWt`SA?FiKQZ;h}D7L=A4;u~IH9+=13N`(xu(OQM*3Gy<_iojJZL4NB+yVTD{Z z81aC;e7L@cjzSyXI<$b8v2h|cu=79N;r}Rs-!}YExLzmOC4t)Nfo?bNf@Ya&fk{wE zhfG9s9ax0X+2fjxnF+=h(^za`<6Tts$8y#S#DBeaYe7Cg*M&DU!7mZ@byR0{#lmw6 z*qvN^r!LN3%6?pAd@ty4;3Ay^we#crysNw2_h&RGPly$wW!=>-2|A>o5k?!uK8<%B zEdcrQ?7BF`B7Hno#gX&|g`w8&F}<1hHCx zHS`se>i%RKL9Ab=CU})kQPq?|aQez!E!|TWf9s;0uBJ(`eBNWGK90LIH6B{W+{;%` z8rsL+m&4IaS&CmHZxekp>cUQy8 zfU$8D#S?)Fi-_EntXhL6OYS^M%hrcX3BtXLoeHM+O+P9U7S{F{|H9bXs?OcpSB+bK&?~ciY%@hX<0} zUz5{zd3Iz$LIw`pA3Wv1^#bROvo7H`+}!e-?MkPq>Z`>J0B`9L1Yv|gb*@_0Uo#}Mm`G4R0y{VUaUFXR;&v~Bv zx%c~bpYY?6;cH%B!&|ds4Uh6a{8@8g&H99RTqYKub^w=&Nk^@DEj}5$X6q?bVmv-I z^B-f#?BvYT$OKG$>Y5F|{E&o=&qAfHS@+BJsbp;CuaCXF`o~kieK_2j&A;4+OHR!~ zVUf7_^iylz|79>cKJ(=m29HfZt=aI)a?;|lXjJCEJ^FHa$djp<1oWD%iK&=u6c%^j z6fhAgH5rqR%s!o*iCVMqmpNa(7wPq%1D^jmuP@Xz~vx`PU(x#3r9gLaq7Wm!B~wamlBWvajnJsN+&b?v!k%P-6O$Gd^!iO*V$&F_DiG!Zza%=qN=Ur#CnACJZ6AQMibaG7g1{c_(c+GPK?p;vo+HT17{ z18X~(`foh_kGX!G<<%o7K>mImdNuK@p?{r9CKmN?D?AA-Cq4oFpF8&cRr+2^*Z-ZO z-oKLK6-D>`df=~?la9dx2mY^0dGGB%UiOG$e!BM4zy1D^gnEMB3LoHJy%WIR zE&%mYBWC*Zad&(m8HTV#X3m2%>16li@&L2+AWO?Ui(I`dW|+0lvdhkPsik6HJ>)e- z@CtouHj?b>i4uBHCUVGE+iscM`oo?=G&ctVy!q<(SN}T;Gj{yeZv95>+EU@K1HP7gPO`ud0|mg zY^oqjN~T_A@7E-$5^THY3AsCqlOg7W$sj$0v0iU#vmV)zL#Z}fJaexGQpFSygHheD zcG&^JKZ}0e*K_Z5`4@)wi>sdmo>%YQ7x81x+P=vDY3NbD1Z5?KC6X>i4nnIy)>vm` zdSQKOo4Pn9XB1ue=ft?J7XIPwfw#=&0}3>BLdb$0G7@ljIW~Su-eCU8=9L@`;BhjKTZM8`{51e2!Zw|DRU$e^~dU z{Aj-Sf~R+S_4s?w@C!Frhn69P-WG=J`sNbBa$K)j{~!*-KL(37@Dg<+Ff{FWhq8oe z4y~5BDVD$ihAi5I(wA~dBuYng=hODs&)W6IpB0muPFsTs92>bnC-&xrs0}NdIG?y| z7M5LHG=D!!{a=yq*TwEBnIxGnyg>UP(7Tk-^m=y#^YMr$vXxlJVHmX+;_zY9Isb%7s#n!}pXgYwHdeKsKXh&h*{1IiJaM(pr z(+oxiyVN6bUOJa*rf9NJ{e1aD2qj`HBaDCLvCUCxHe53Evs!evi6zhGE8OBpY+U6AMSVJI*=E3k<%Vz?^`RN1_!_{)P@w`U8fH zYjP+21(}vo2XiXS>||k6Xp$ODy(iM_SHWm9oux_qtDm9E|4G&KOVsA#m?AG&RJk&6 z0BY;ml|`ex4vGvQX5U`cyL@m1kw7OD;2$N7ZKG+}y9vkif55)}znA(~w7plAldLzn zolaA4Ym6~iqm1uzI_`RDOI?l{r#RAWZoWFdu=U@WFNwF*8^keU%P6THA1d}_x86C?!mr`8W( zRQcuWMmRSgmAh3>sJh<^&4<*Suk^OqAC`_(vR9@Pa0pb&8$E`SR^~HXOR|k8kY2WmZm0(Dxqr&3x@XRA zi<%;x5fhg0JvA51-#l@B;b`VC{X+rev8SWLSey)QY^ZIZcLY4HI>2Qy13QP)5hYpNdiyjYg*@|oN-cQs-TB44r|UTzSB{@ghMC@@GqRDvI4e2_ znhZ;Z`7gDGkAB+k49cc?wudg5qW{um+@lBEZ<=gAxuU!k>%lySECfJyNiX{i=+veg z9=(#5Bs4o+KVEOT)W<=>Ztlf=uHlF(cP?-|ips<5FTo%rI$j`Ijg2oXX3L>fF;BZl zykl+jX63c!4W-ooKZ7lAV#86IpxIzbk%=rw#-5q?w;|#~?eBin@F`V&1_7ReIGhYWEGLGov zC%5*^kPMn;)(dzeHFqXPS|ZjH5V<>-VDHXVnGkfhnAQSX*e-mt5A$GpTm|fDPqn#2 z+S;M4JtB)@PUPxM z%ju&~7QxauOq!g9H5Ec>VSUI-W~pG+bjwH4XnkHI=R144vOCm>6vk49c3Xv+*WQ8I zpTR3GUbg=pg27*rr}IQLyVJnHp{!*4O&FP(w7H~s@u++uWD!r^s-K*jcIN0Sn)j;M zLhAcUUucxV+Zeoym*fAz|LkG>yV$;Byw4aheJ7Cpm7ok=PUsBB9Wh1Es&Em|jljjv2)&&7SnhS%BQ*VKUzsMZeJq?G|uZfAW%_i#5%Jqy~ewvbTXi~ht2NA(RW zZ7iXxLu6v5N6TB6*NG39%f_O6TdDk{l8*FIRzqgx6ZU@UW_$4R!B_54APRk6mqcDQ z&4IPYY3Lpidl0(8_&WypJyj4#e_uH5v&(Gd4n0zX29Er!GKbegoq~0yE26?>-od;O zM?5%yzUrRBMWZN+U7DWMrF7eE%)4VAr^A1DeRQckHRRb8;h2Xf#7B5@S5>Ot%oO{Q zJ34cNhM7h4IIkP~(abY-U`$PR>Zs7Nh!IU3`FYa3WiCr$30`^z*>%Y8dV7K(7dB?u zF8$twcdM3ODP?Ypgrah#FNOyqspNXZPgX+tK}Q!nUbt8gbtKHKF~5UNWa#SUDr1c~ z&aK!Z`YlZEYN6&i{eYn;+X#30C}^oe#Ej@in2+GI4g&TDX>|Sk*MfThZzR^LO&Th;lOY-{5#7hl;fU(-$lNM2 zd`L~rQNA>X6Smgyp^p?0DPh*!ok)3M7Ve#-8Y$Jrx9x_;Zek)erX>y)OH>FIhkC-kIImpjz4aaVQ_`w>Zn{&SR?I$hNtlV5{V zQM?S-ocxEu<%><~PN{mHU67-HMct_$(Zr&*_ghjUcU?#`tV1+C<529y?B zh}2AEbm}!()8&+c>3+j3g!aOC-XF#hB_xf7{`e0b@Ea{r^52{ry!TJyn#UODjc3=5 zKZe-np|JtWT43Vf>C06PE~(FQI>Pe4wFuy1> z&^(gV%_;+)op4lZ^)(q|Iphi1Y;pb+;ctR#F7^E#De{VfImo{n7;8Znyw0CEK3qzTsc+fI0Hp*~lL^_=9#SJ+TStSy+)DpRNSO?rc%&z!I zc*{ZGzjHU7wg)dZO}k`Ie6gXrNmoLsnkEe!(cDsJ19e(n1Ge$!~h~8Cyt*2Ki zua~n1Sy-*oSFXu0tPquvW-+|A7`0-(TgRmoT$kIFozPD>=5*y-#LK{`tXTR(Psinb z=_u#-t`dABV~lB(y3C-a+lS!rjV*J71xv%^enKYgAQjMeBrTuOih@)RKSR!GIiiK= zD5JZ#-CBi%C|~zgAfwup!LOuX34t>0VS=}Z#uk>J1I%cLh~jdlp4FhrK56Z4i@Zu* zNmzJJ{;K!*ZaVr8MNQY|H~gGM%Xd^+OL`}QRI4@9p%3V8>cY$;Ju@6vw?Fe03v+)- z{vExwd8j_}G{ND)vxrA$IF~*v5oQ9eVT;44G9s zOCIcz)YW;u+C%*`*i5&Do183#;UymSYmLl6ILx1`$9IU%1c_D}?_QXFw=3jn%LNDq z6>u*5a6N3y8Pd9OW$CvhJBsNX&E1mZD<#L#hHXB+i2L`Hsmd`$}W_PU`>PWCEiSXA77OE6+8e<#+QU@;fzz>DS9x%TGblC>ZjSMcl{VNdVk(ugVHI%X8koB~Sq%ah<(bvG?pWXL-*PbNp*q=dze#U*c>LY3 z>8(1?E@LSBjL92Jd#Xhw@p=a>--#tls2q?Cxv6va*gy`EG4Ir+mI}UD;y!&&%<(LM|7sSVp zy-0;Lp20qnH{|r_oP*#A?g4+dfl^*m>%|)7 ze`_Mo#OM?I$@W+j6qQX%@`^apk2y=It=+RbMi~s+O-vh^KVl>p@X84=ySYO&4YR&z z?RdyVR3fIfJ&?krfh}%--q7<92*E>Mn9h_vzDu`|!XV1QC9sfms-t(7N;;*>_U+QY zgI(vK(z;%5a&9shuTf)Spc3SvbZuRlS<=p6WNf5Ubg`-e&aEHKD>>BiRm7A;I>X{{_AWXtsM#_dSqetoEHALbE8vUNm?AQI@b965WRR?b0)pqOMwzI0+^zC~~ zrqq%SkNW3vyF{YNxr2tZu>wUzJ7b>i0yi#AO>{_q;i=7tx6f`gIK z3FABKfc%qSZCW~z_2BDd0%mE9v(eoE?H+}eC-6jWS+tC=Oz)AbrPJ?Ube_VUgo<3X z&D!>(ZX$ttTm4_U^{aVGjUUs;GTn5@^S zrOoPPZxH+a;w%tfE!*uLBm0rZpj=Q?Gw+YPPMsOQtb?q+WuLJMaGP2$b?zp4JdQBm zF=hX~9+2Q^)&hhN1PA*rsrGs*Q~{^BiO*ElLS3+F30&lNy))lS3f)WS^?tIBv_ZMq zLBc<;ii7zJVy22a*z^}fYI)ANC4GD9)1d2SS&5yMVq0oK`ROZqHR+(%hd$d{wEaDk zZW!G?--O(M5V(;!L74?3*jSU&w?@Xv%7}$+C=n^`Kif=YRn2!$-omH%|Ct7&Rlag&*!PUJIL$?w2jbHtXORcKi6M8uN~R zh`q{Nj^iszQP#d@yk@xe?kkA|f<={Ly(GJNGUy`gkDM|;4D66K&71Z6i`wuD%JBNF zV`RG%5t_sk2_YZqc9(m&&4DZ5caW4Hie-lzrGD<1Mxk0q>57&?H#p}pMX|D?Y(@z? zg`85z%evSY0c+Q%4 z19sJnLN~N%Ni1)QoFR>S<(g52E7doK4om;w8*tX{pX-A)Or)C3qOYZr%x4wj z3b6rqHLY?z%M+=LDf91%4(F+hb~(la$Q4v!V`H+ip7KPXKP8*I zPP^&#&`N~sB?lel{RZ!*=7-O?<_y|FSkj{5;%1pUaQfZ8!_XV} z>|qz_CCx{vAF0s%jgs0~bkB;7dOsm3y|dZQJ&j%=+&3gNvMJBLZy>Z+y0I81^;&UKYG$rs2&;$qtSg7G~*_Lyfu z$jvP{cY_&E15%6~b)|ql>BiGYAuDE;Aa6eADttc%>d%+Vr~gd)gf6%ovQWM|y-~2G zVWXq$;V0F)ne!?nR}t>UiAZXt2Ilf5UADaO>sg`1j^Yk&73Z7&M_>po19m(?=dXseRbx-T*ltD z%EUhX{I-(fhHN3=e}xVHRJbK(4&2RZh(GbVEjp)CRM_%WU;^CK)~7$K@X4PyQM1=j z+55RuruomN1kT5{I;g^LGOUD(`t`E2u8#-NZq5&^o62D0mciNuH#)`qyj>l4UADb( zSXERvDD7|1irDAc7oC>9lz6muhHoXqx~SYmD4%E@AaRSN=clLNZU00;FWjeT=7<*2 zzRmBhEQ)I(0#(U_MjGwAza_eW9{sH1naoxyl~6=Ya(gM5=g*&-xnm)5*e>Vbsx2O7 znVRf<%ELhpf4a^aw)k)}4BGBer5GWF8zCPQgSMtk-)dHuj#ye)3&IC5%h^ICG{w1h zI&1D5{d7uNAgRWOlxFVBXNv4stK}Y^(YdqZHZXFS2 z#s*_vEX;|opgsrNr?ESRpk0v8Gb5rrhyoJ)EvYVY;w}87e$4JxR#XX{3jDD-(JG!+ zeloVvVUG9t>Udw?Okm@LDp!kEyN?;IN!67(w1=(khW#T4uIZbVr}^}|pA)w4XjO9l zgbA)QpJ*LYv=&E%llvaVD_fiEX3OVt)kCR%NQnsqU;x6PUE)6*=WAGAx3%x6`n_gf zXPm15fk1kFD+7ZUr4<-yDw_XAq?lgBb2LzHPmZBWW#y>h=EU|#m0ePC1|BJUZ*Jhr zsU)s`skEo{j?RtY%E`?ZXMSfQXWt*5)M0cNof&Ldn$poJ||@f|R6Vzp|)WQwkL?iAlY8}VXdX^L(3T!~8xFa~@| za1<00>0Ot)$Bh&H^vnq(E&Hf8YXlK#oN~K6pFIv=t~JN)0w6%$@9F(PgkA*#WxR1G z!RBLXEGuq%;pXS%Ndce5HJ`KuJmQQ9GWL>QM z8F1&)&XWInA%2GZli0{=aDTn?Jp)z z|MhM_I)qG4Twk>Zk3v!Orj&-v2*o_^QDp0D+oKZk=9+d^108utpR+wf?$^|@>=VRC z)_%Ol7`^sh97^MEy)0%+{1DK+@QqEJ2whHxW`^8?ug6gO*lhEKaBWNUAheKc{7x~1 zm|7@nAF3nqjB}c8hIV_zUJxg=mbn8+m(5OE0}Rq9clXYQij;aGRCsXCfO66%!}Og7=t9T(RE~AR4xQ zHg7~P(@Ho=*QB_dO((>m7!td-;h}~7jL_8)-7%D#&1i5Ulwf00C_JM(;6FE|m!S}- zG0Y(%bu{{PP7gZUWbW6dp<&Tt3myosEl&}s(J!)mP|}!XCFd>kUyT8OH7Y^mB60%KnX)Lj%d zsi)35Xk|}oiEdfQ(68{poP=DyxAj zs6*Rw*`~!&C>AkgNYLw+^<`~u_72RwZaX}YE4K1yN6JKxG ze%~xiGd_PT6iPcO?4D1|(K8|)T^32*_8aVXwIr4q$Wd?=nTLC|w-6dCy|GMOeuFRZ zc{A@hSYX>@PFtC`T?ZwGUJR^NysMP{dT>2Zog> z-1zJc>GJx#A#;GpQN%tBVL?R2WaUM)BFI>LLe4Lp-~Hb$;q=Pq4^DztZ8<669)D|B<@1BGCEp$ zX$r zUNQ$3LZ=2B7WN>fRy@kv$}B-EGfpJ=X7;nT+pO7{PP4lr#B7^?Z2UX+FeLjMTXbPr zBoS5PwkKz}?aASiBCDfmh};`GhDgt`DJBbA4q)^|S~UFTQs3b+@4vs>S&?LgGDa*; zJ)+@M&P;_et=}_A2Np=o8G&ZM?*P+w9BRUReVZw|Fn`Y#<*I~M8SUw9Z-G>LpYuP1 zDg-wll-&&r>&m#%PU`D9o7TMm;4n8D=I2ypf{RLL6pnrmA^$fG$TW^deA=x%f)g~2T}HD=NJtc5v(@gERVN~PWE z(P*^z4e+WsqLtB!3LA_eCSG7+znO@*pmbtK`SbkFM)&NW2;(5y8{(qd)nw}P#zhsr zbt1&LgYb^N$lJqVze%2Hma)=cv*4l#!>kPcqq}-gt>Wc{RW;!P&KdJr4HGl?%TeUe zI9O%e@@Fwcd|&ocUKxO+PC6Sgio3&F(7$1(=z+X-ljbKp4Po8N3ZsKJamp8*h(U2s zEa_b*y)p=aE(}gIK9-3w-0dqb)>VT=^LwB6r3!+h^Bl~C>>C<662COuj7Lp9X$jo} zGuD^n8-gNW{yu%Q-hg^JG<`m9@aDWi(Y8nQB!EUc_Ot%6>4Bh|J&`)Vh=OMAR4@XfSDiq@h$(W(2qRiQeD<>Uz8NHUq+ z+gU>QxOp#bd14Eqtj^KW`5+YKhkJAwl9qiht-0qDO&}iGPf6nU_H_8{99l0c7RGor z8RwnWv0Dx0gz)s{8w871hl|AktRUSe2{&=Zq&qmFDa)9*0V&+)9Sif6dnqbv7wFuG z6-=AQa$x7ur>%OsJVz45GLg^p%0hZ?KCY}ml` zkh}ir>>e3!+4+%z@v^#wne*yjr7@EX2NH!54H#p>9<#fosCW zz_7#5qL`%zdbZKV25?>Z;5l;2`Vn__M(wTuhG~(RoeO&59_|)T?mKXmz&l4~v#|2Z z4|(PWZ?}LH`-LYg>|t+tXkOM&7pIQ}-Yc~%KagAd$w?xV>4S65|ShYeps$BL0& zJ%s6nH(zivX&A>*mJ~C*ERzkCMf(V$?=E4Fyei+&{OGuZU-pQ*{wXG%Q1!G_- zS4$o((7+eJ(?&@?YSw2@tAqrKkh&d2*?9GK|0m?S#2G|QfuoULQh6+*sV-(mk&lEF z>D?R?*KW!jd032W^*-ZA@S#?U`NJ03b6?#S!6S?IAuOq69?xQ$3y;_|+k(yQz@9E( zqZ8TzYuj<`^fY12wtjLo>mGWiz2p)eoM4lQ#mhmhY5Rt(Wj7SA90Ys8Y3{Y)*|#_! zH}IBh12O#f*>KZ0x;OY+sei)wXV0!&Rj=(M{AHIs!54JUfc@0L^kar3y7g%SksS+f zOp^I!OF}ZEEYCW2cGPkk%r)c9jNOLbJ>HODosYpZwv$x$%q{)w*BTud9Xq|~EcXv**$xcB0``VP zs;Ay|&=G%%76TB=jxOyC9+@th2~IC8J-XWF?MJf43W+m2gduUAx!y^BlrC0-j#i%h zg&`GY5+9n`M{}Om{0yY#4$ux37dNC*^g_+i$?-zisWwQi?hYB>{{))N4tep-oRB3* zy}*BX#JFUSMoiG6A=s{G1-l5#Y+{@-|i8f>T}ZsNW4^?|~wm78-XxgLGi= z{kSPorZ^;1Y5s}3!_fuq$0toJKO)>fCRurDxXkI}<2Px&g)MsFp;f+j-zLPAaUXKI z7Na2|rm~%02H&MKE}bcNnY%B(5x=VFR4?QPe!Ij%l&7qQAC>I~ z>edVq{?ZzVv9ct)`Cr3KACi_njLvPZlp1$HqLj#G^^~J%&s(SRX8M-rz^!;h&#tsI zLVOgZ>fOfrB(BXyct24y3m)>u^IZjQ_+AWx1LRiby-!k@n3la-Xz(o`Cn3}A0;8JH9TI;n$NAXOsSf`#3|JWQ8-n|fcaYCN zBBCQJbZ{>jBDR`Yn)0ZM**5rK_OaWM?7wR2%n|?uj?U0-F)qQAqv;AIKhLzF6b{C* zdx;hp^=Y2r-_1O5#ROtrkyxd=60NeZ*Hru*#L(fCQ#1TedKnz% z>@E~pKo4j|*(vX`J74BL_4>u2pY_H!Uzq0c%GZ`Do0b@m5U5&Z5C~CBkuG$B@YiaV zsXS19{bjLst;5CIquDJ5G#|pPMzP}jll((c68pYU@HK2KTtT#raD*u|$bT8EhQ)y7 z#;>&31=m8@`DWD+Nw=e_S8pvLTzwf&MK;S3khk ze#DKan;fN(r>d}Lw~*q;kkW}Q>Rcc>!pT`(ExF$$&S`0$lk~=( z!+i;hUR@z6jaz!f;$sE^lme`I66cI?QmaQrrpL_w`qx*>dXe{-r6qIv8bXd zX?SfO;XZ(Yt9jtnm++-kF!@yIky9A5s9zz}H1ggG`Oe;4u44!f(~BI=v@QKkKqP{PV)wpKj1K3SPY0Z0*ERl zNbeA0YR`{JFMGdA(a2gK}7mOK60JXmZ5FJ;llh^25+ctA4!v$h-#nY%WDeFVZT`3UAE$aLMTIVOips9j$lG(HY z(>Fm5GVsa3Ft-9C6xT1h%Xvs_yHhR@@8Uadz^WUI(+v;MVmzIz$C5?+5;f2fELxNS^y2?Ma*OD(t-mz-u%4T znB8fx3W(?ZEyk;yzZKcG$Qh=DCNIsI>=z-&qb?xNe?5)|RCN}D?J&ZBxftj;aFrkB zGh&fOTHMII_I6n{vyS8PJerk~@|cA^K_5X}!gGx6-j~Eai$@n`hnW=+vCX7q<+Y6v zbg6tStUJPDZq5GF3IsL&$eweHX+eUsXm;(xT$&xOp0F9uaYQWFtH$OH9FazIT~+o| zXS0(S8rc@h?w`v@9xo3UM(!DZ{XsU6x_Ipy-9GH{D z4j{^lFqe=Od@8YznpBH+aq+fV2&JlJ{70$|b~>zmZlu7xJ~dm&2RhusPuuovE>Uv+ z5Gc*1X~y5OVCVwkQ+|WSMAa`5D3ElIa|-MUkQy{K(JTEi12&FC*ZMiT3>6ot9F4lI z>YFVX?iKCXnW7_+(vh;Ga@Jj9iiG5vWr(Es&7i(Q_l-5`!undqF+EFEM*Fkk1x*RY zyb7=GUp{Rh=zk(j+*baLTzZ>n0T)K%<^YIK)Db8x17HcLWKbxt$R+#2mOr-dZeIZS77xE<=1JGM^OkY}_@*v0swzpj1QzdCwlXa_9ZTSg z&%z!jy|~wOlURP5C#t0UNyt3X)mpV|B7drLR#cb+QE_>HbWn|zPET)R`ZzxsfKIiH zxKatdgGs?BXDr|4H634#)%Ks3)Ak6&gDfw5Z*w2utxft5@4r%WYe|cz;Y;V@Z7GPU zwz^UlSj^pcwp0107V67{sXMywdhGb%9Q9}1D!XOwq4aZpRjg+&g9{78#5vsa#tI0L zM6mBCh2UXCIX*Avnk`7@WaJ7Lq8D~(h;!@Ak2B__wnX{@wyynBUX*z&ab`LdTD z!U*=|;m+FPep7jKvJ`VsQcN1qPP%+r4OEn-&ybzX3@f~R#HCJtjNo9ZMaODN~HyyAPwXo&~|)nh<(^}HH()gO-v28 zd3H=q6^?tGGu-5ez}er6hfa0@m z`3HE8yK$vQbD+R;J}m<==0`&Xq(i<{O$&?<+`fnOY`>ZQ1p{PXA|?KYra|?^8n8IJ zpbr)}4fGKtp?g_~1%zorU@Wb^3ip#~`Acm1aZ}tfAvVs{WdN#Hx@yF!J;VDj04K8= zw6+-CK)S+|hke`z-oyOVEN=vzcUEVtgXwp~5sXWps1kaujdj1ppCKy0aC^XH2 zm!E^BrhsL;Py6nda8Ce*^22x^XEJ!jLhUuWT-vg$CyKczDF5#k?yB}}y@8lCTEA)x zbhPX2YEobEd13R>zVFJ^5ecY{FIi(AwjpWSN5eG=B3et z4GMHI(zdM*#UHk|cZeFf%G-T{H|?OHB$$cq7DclQyMYMvR!qZ>%-8gwkcUbTdvJg1 z+A!mqYWoBD7q(&@y|zgU6c<9qpbd_ClDUPx!LkE%SFvIkOcGx|(BOa3LYoWHW={nX z2F4F#g7GeboybW1PAN4_3l>96Fbn$}S2K|g?B-~9c!X{X#JD#Gy^URyeZj=St~#Sk zoaOe8&;_5!g<429%p{iph4?7Sd*m*8Y|`8i3uM`g&FxF7}KhMQX} zCrJbWkm26pU`p?3lB8fSyyIpKbTb7i=$L_9-KIaG6BjQ3mn7UBDOrWu_ypn$N z-GTs#8GdVslV|E6=goivS|ims9f1F($chhSgu_h7+Ut7d9NXHi_FK(>TmtAyhWdDZ1yv9PDNRc|2799dv|=$Ys;!gAHs6cQE5AZ zXNE_nuJkUnfAN)X5S+Z4OgX4G7bIqM@3ZWVRaGC8^^cle2*n#YqDk@OHYh61Ab0tB zQfpnSZsl=Uz*jUxqO_#Dnssw|0jKAcAW{}+M_KyYn(YrWTF?4+ zxkah_anJ9XXG|umStFEicR2d-sYOFBJnGFfkN1Z(_tMBHHoL3>Xh{v~3(Ff%m?^RQ zt9bplYa4t5{s6*oOI8&Z*(=h%so0dkAf(7Lfs0hMHa}Ed;)se6T)#+Lu?Kxl)5c=< z7SXIZv@-a$vWHB`FKouGmG zb}fhETlgEu{~TR7*iaczl@1##?^$+Yf4ns!TOtd%W9m<2&8f8fT!j(I#-1j!n58ZX zVwr!J`Iy0HW@F5n?Q^6wB8 z)|4>`y8A+1T+Js~C2#F~`Ljw6Edn`jT{c^lKj!#vaFAs_Jd&IiRb5sbT!i18mDpa> zSf#YAqQc5mqy6lbC6iSutHIOijmdWQX7&?yL&{S?<0*W^K8d6>d{uNhNi<4EObzex zv~QcJ&;cLmDQdkrC62>V^XWFq7d58k>#Kw&u{evC0~A%vrEnh0D=ywk{^k+CBIA8Q zSX4QYs7Ro$HO%Mu_DCM}BGSk{qDkumpFP6x#H6^quN`!tM{{J8f#a7^woPan4OUjP zMJ~%sUPc#5kB?(784b;(sm&$*B_6vkNy7nHLjzX%#NtDac-q3^)|E0`-!prUX`+>2v4hALK#c_;Q+i+D!bbmh=GkgDKiO<_};K5ElBLlwwj47pmtbg@%WLT zW}2T9(BH7vM^i(pGD{&9?fKZpxCM@LPj8r`X@XmlI{5Ff46h7+MKrl(+Q9wVy(PWS z9w;N9R#@}Lj$N2TLUoNd2s%$(Yc^_%y@g6=EUDQ*Ms6o2XpfsFv3vZgtj~DuXBX6z z4QRm8cm%birf^?I<+hSdef9RNFKwgN{4>jd|#S-wUP>I zy)LKqLXM1i2c4rBY!Ae6l1StJ%y zu}od*fJI?$71u}aFXh+OwWgdj&uaUq1j#nY^+`f6(9uq5VYg2E#29D6=w6`Pa9C>h z&8=fGcPMfJ4?Xz#rz*t#gAee#K@}<)yl9Emxo}TlZ1~oTw0QPW_h3l4-X#ueH}_tq z&3%%oo;vMdzUEfu^4?;We`M5yThkmG+1$T~&aiGH^&nLQpZcC^@<0dIQzo-`wiLy7 zj&Io-)_-zrz|>eyzKuU(oCd3yH)ZE}!3SpvQJ=N94f zxJvDxE@W;==mzK4Bw&qKOCGy2p;;jc2&4+s4sY~AL>tYgf(+$>6P)GN&Q4-3eu zr|ZCTd(cN#*2<%d^^|%k%f^~tTZ1Ai`(?;rvdh73_uz(M!3F9uNjzM8yyU`mVhnYjlmb0nn{)bbp(mSHB?N zN+adug6cRxLd_N=cCsMA8Mse*5mL|D`mNm^ZEgoYSw~JJh>k|^L_K1 z=*7C44*hH+PzIM=?Gg`Bs?%X6+$6L#c@}I8cv=636_7T5$mV?rEBpunH|>~vE~k_x z#zq~fN3@i&88O;Fbyvc{d1EpAH`LWK`r30JMU6B3=buRm4zo*cE|`4{ z*2W{NK9pI^7cT*EQRM@q*f;vi##(6MMMt{5Y5c05KK5?cBImNWdsy=GY8z(x&{dJok2u(=OwNo2{WhK9`cDD>nm(UjH+Qsi2wN3lZgKNx=U7MHlrTxgzQUTDFBTP$+ z_7Ap)EPhya?uC|LahQQH@|tqSKn~j1)9TgpW6_Dx7~HiE{nW?0i}FbCdYLwhrtKa2 z>gil#?ZnA){sksit)gS$hNZYh=8k@7pXTBmSk~Z45mUTx&4CjZgjMe_%4WfxYwyne zo>Afa6HsY~c!f`ZSn<>8azn_vcY9FO4~z0qVgTp!8_>ZlPiy-i4=VSk$fWHWG_L~( zc(#b>9QAG{czOif%J)`hT?sZ9lpDr6M7AxsU@Z~mkBHLUf6+d+1je~VbUm8Nj5K{8 zl^DC69hI_m{tV@X@bA}V1!O1U@_WuD5Lv#r2%)jiZXdqTn(eq2{@4$P4<%n54cZwf zGvK|^iF45Zue~o1Yx2tfZD%@lv{t8DTNfZ>tx{P;MMOYIr?ygAM=?eO5*0&~2q+k0 zb~}z*H&T~?tQm`d5J&`M3nXbpiH0o7k_aKBEJ=irypWiLkcInVJNN#cdG3AY;`99e zxc8a&4><36PjZ%g*Y|wS=Nt8D6jAhAH`*#n3~3Y`=M|5LGmrsOn6^kYn$I%ot|zI3 zEbjtBzSbAEVDNnKW|&VpbEWk0sRq$mG;j(zHMD{T?^_H}PfcZ*w!Fo5>R7{2IrATN z9vXqjnioxM)W-iIT@hcML}TCkW@hRyH7AhkRb->4l`%>i*YJl+o_3;L0sKq0nyegL zWz8)sMZ+>ivCpS~J0l(m2Rfu8EZwSLG^tAY1VhtngS;L4DWnP9;aR~EP7?AAZeiJ5 zvo$KyeBGEE1xL6$(%*?B+;J|dFTGMGzdUn#oJf=etf|+Dn^n<;OOb!*6w4_qiuvk< ztcxvj$0w!$PjWPJ1h-l5G-v0swyIqufC@Kw&8lG5;8=LyY}u{;AUmZ~|0*OCo%ncHXN9$3`taP*MH zK+C@S-J+LvMMz6s*PajMuqC#N_U{=Wc-d@QgB~egVsZb)M21dU>cfxHblYfuf#cJR zHKXh7FhhxcFJHO9ZN8SI2Ay;%McX4LEZ=ACm2#Tu<5*JvMzJ8#U>dB0E(H0OE*6hPC5hxY>EV#M`H$4gjlPSSb>ESvb9 zU}q^C$nX6ki@6QaP}znKV{pbD{Uy%yaVIX=l(}u5p7zj0h>SdN+||5?PM5gi24S*I zoB2d|yrG+Q6MW5@xtX=_5@vtca_{ZgA(ylVP$GaqPB%cbp@`G|y!B);?S*x?*Y_

eh{*k_2mse&}r@nH`~paXFhHMYXbzOLkaFBG^je>d;c_;uJSsB7{47mnT(MXU&f zdz_d%EvtGGBL6b%ZvYMVB!_kl+UjAY9X$iS1f0Bow_czP?b!W@WlV=JoUh#>$rm)N z%8PYJ9zupS$e3r8ov2-XbxfZ%a|GL_D!D~O1m43nrx$h#v=O=ONww@21d8fR_8c+q z0M2_uR_5AQ^aRxlu|!npk7>8j1M@l@$fY2Y_#W+N(0#V$`S5KzL6q z?`svgg}e9wt1Sh&3Rk`haymXgxZGZ?oFz6dn7(R1cYdB+`AvFtAqdu9G;oh23?P|< zeq;_@om~n&Z{BumrV!m$kHrzG80y!AGy$lKn=iCpj)mu;LcWLYrUf8^OgEYZ&F_8) zoM!lbWl{lBPimB;ZQ}YoMbc;r5oUA0lAk4!SJGK>OKv`Y5KAt5K_TQ4z!fj_#?j&B z`BR8qUt7Zlg<(>i>j&v}q71d=9!DJCE0bfaH;4Em-ubB;;^fNGOM@62Lo|FiK zXTyBGo60^JgiKG-5WI1eJj56&F4dLFzV96+oKY+oDv~?B9f*2I3qJyGBY;N35%{y` zBH)*dVv6Ua8%;VgY#+F#g0Pg$_iEZ`VH%+27=Nnr(6+=%W7v*ht|i5Onv^~DqJ}{P zW6;acJ^}L`o%;H>@e8xcQ_GJTVPbr6_0~N3R)*g*$q4sMrX~&xp^{&lbR;*`L$Lnn_zTVf)0X?&;&fk^ zXK!DAX7_b-X>tc*7CnaGOf5@bE)K`pd(^ZX)yiw{?r^?2+#C zbjgpNSX=iHNZ1+~%r5v)lh}v5=sJls4MfelNe@#lgP>N+1^y}veP@KNsQsj^y44b# zgi11jL8Nf=!=FL8-E|^1k)3F?gEIGdlqpcsoVFOZfGVl(xud8dR-N+EEo-NHb+@K1 zwF?u|R^bXeXBQReHkxSpu9&xYBb6)WF|QSu9oacjgkB+J$KQ#LennO`$nUrFvXt^Q zi5Aypp!!&Yke$jKbsl3yDG$L6u!pi&hAc|1iz;N@yqm8&&#mutZCFGUSd!b89jgi> zeT@n0&>bu{+(>vgYo;#~{R1UuVAE*(I*;=vDZH>owPz&z ztYm)BRU2ELCzi@sbsZ!vhaHp8$z~-};`L3(o;(HL7>pee%L)7j@Q2^vNI)mPTmA}O z;luPq?q*<-Y8mC4oF9d~H3p1k6sHDu(-_DPvJ6`;l|Pa)AdqC!ywBa%l2gNE@PdL6 zdPTUY#a5tUKevFu^D-8fJG=WM%}66)KBv-S>nEynKd!->>@d2r-kMcy?#e0(@t)(R ze)z#1Ya&wTQF=UW(SCkr_= zOGApv5@E9C`}5UWW1Q($y$a)k->_v_a>7Mj%F4ox-iIn?*|licDyf;mfo5dWKNb%x zARYkmprOmz`mq8dVjxC>`{6{nb*U7Z+PqrZTrCQnaa7TLsbmkQTd3>hL4Oq78#`ZV z!=Z5;|E-WiTe&Y^7B~Z_u_2_ovaa>lDNgq+9lF_C7r0 zB`U=FYNWxxg4lU;b=KLaXDf1~A=O}J3>O_=RNG{~1f)dxM5N7^e>)#1sS!0I?CSE; zs=Lz_)0ieS=Zd{XW0D6YE_g5+_{vL?DkcDt2R^B>51N(ee#ay+OH<^#j`7FCm+pM3ChO{B2Pytd-N?Q0BnNEqqf>rKDVUO17;(D#Y{5>I(y?M^ zI7i|J#<|QFRlsao?G#yx8(-U|BzW!p^yAGJ2Pjfm;Dv$=^vh*{y#8XAAttNPX2z2=Q`2?xu0y9*zS~&F) zElLl9l59CU*kcu}K+W8rjw+9oT;zu(mR;$dK3TGE{=Bj`cua^ID-}r-j4j9oSQXyR z8<8dJL~=rT6K-ESh=e4p^3`NXO*6JF4e3W~%C~B{49J(s2VB?eH6O30TFYjbVF6C2 zLnO13%fVm_O;aF!C`2Sb;Z;~WC+H0TBmKh;-pV4jH_&vtcqLF$%vw_+uW*ARsEM}_WYO%}Bx&+3rpf$S0wM$=M8slEDf+r)SCv^dVxvkL4%grc-tY(VF+FFN#n zLlS#mV|UbS6_;=Q!PI&#wq|3SLxpPY->m9DS)ZoQP+ zW<{ZT_iEZhUpC3fV_Gy)n{c(U&h8fo0e(gZ$UC6F)EV!WoEjrW4;=RO_3jS8w5w2+ z%z@?VLBbkC*0(49lrS7I6*OISjn%%`s`W4|32XDENX~`>EwD`$mT5^-k*&1Crjudm zQrs}H49z9{EV(BvXnr0!vjhDzoj18r4C zM^2Nt@y7yY>1~zLy_(A_J!R&`iTG70o{}(5e2xls!YsSZl4O#u{du zSQbVOeBBUS6bv$Jk{Z?qG^8GN#PnJpV>UPk;FGP`#zJXLVe_%BB=rjPv*5f)t~?OJ zhbQ%s(i7P?%ko_->~18FK$_k<>o%}e>6QaoOIA!y?Zd<_kyE4C{VR}OHY2DH-+)r&r@39Pw8~}rw*UeWpzODv?ntR9!LaTo@d=Hy#xp@i-RfGsK z0b&4{1wjtIG{t%f_j?@S?&~aO>cci2$|8Qp;FlUwARwR<&oS$c$|_^kiAaMjN$Yp{ zrXzT$=qgU6l6tMaw@lzXndJF_E|$k zfS+K#{#$})x=5IiU!#}aSA!tVr6>C^E*~&g zi4O=Ll>eIBDP~x)y!1veqsp=4ZIY$t}Yd zLCLD#kI%<^o`n>69}N4kAd|#Dy=F$P74Xw-<(U)hX0Q3mlcVClW3Jbb+jO$P4DamE zRLMMsE&WyTQ~4b~_HG)3%n`1WEi5J&>iZFa0`8dWF_=rl>mWel;!`o^b_=}(8o zCal%S2#Z%)Z^yZ#ICqOw{-p8mDSlIlaY5FXmEl+UYf8R(3(s4&|Fa>43IoZQtxI8` z&k`$Ef$nMP@fzR+!0=6Ym@5YpL=BJcT+xrvbh0)h?qU`Gl2C1nWtj>*h_`4CU2O`h z5U*E3Gbg;*5&mLkK;osk1nd^MpG6>e96cO4`K?vD!n>PhymR*U5mbIK`}9>?v)bO# zQ?JS3(qzmDYcvFS*Y(BAg$_SC^S$|6NCEV3dCZ;C2^ffpFBGnuOMsQ%&$9R&YH#?e zveGt}3dWFd?*>E7a_y9eybZ|N20@ADt&8BU3F})3cHZc!MsL)N2OCh(lRid$^r*W#n zLzP>%%ikhW7+d@;(yH7ZCNq~GfVCL*KH5D-#IpkxR7&{SSwp}f=Zi1=)y~P+H{ecN zAE+1n!5x{6-dQ2p6}Wd|mjetXHNgBuck#%&y#eJRf}W9k+3zzH-fi}nbim}Q=MT<0 zF|UgaCDcDyBi{n4LG53i0KzF}!aaVJ$ID?B^dU^I2-u-$OOiWatq)hn@hJMRTwarX zwT9hl03i@}`H%3=7Qnoyv99PImS}p~(dOhNT-uu0G-Z99nwva~s3Sjq-Jd(sn3;NA z=;{+lAqPt1LI}{CT4F3*0jqy?R0@DhQ^iV{Os z9k^ae_uMtSZ)=-;y4huNgc|ZkGVO&{?_-1K1y^vtgB-}KOnL#73d{h0-a#eVN5kc0 zWW&9UU=l<5W#6XeJR4v!{aI9jrkb=feXQEE(SW|bNX*L`cw-CPrlfspvws4=ob(qw z#G!y+^eZj3_j)ThMyocNCdW?@AM^H*uJIUz@~ORJ_9v=^v+gPiBozM4V`vQc5Z>$t zdGQvs`QX$cgl`fqcGN%WmD3HY!lH|>26!~F;I`fai;~dE#ZP)dDLj)qTCaN`3lT^& zCMY|)`TRLXdZ-*>0FXjgMsrm%a=)c_=_GFjXo3Z6*~NKI)Z7{YEaJOVJpNHKic+hWBhYe->iYO)*yc%x&lRgXHFd6xAc1a9jmSk!+Mw6g)SH|-LE@zk&l<%}Oo9dMHU zJG1Cz&qOKXHeoWROd!$arg+;0UMk9oyZDSIe7tu-?7tuWzfQCc)g-zT%^1!%K831U z#DiKdg@4NBF`k_$jlKi(z)Tpc`Yy}Vg?y@7jNVS0ekmQ77OgMQelOo}NbnF)Nj{(I zQ6ARATQ2R-xxVMAS4NHPnW^NK_;S0o9dCU$Qy-kSM<@sE3j1G|Bzco2c&;!oLcPOy zdIU-GD^~hcxS^(3s)=4rH4&Q2zmdkgW^uBwCW~&04vo%d4gl||0}}2q2Q*;5#MnM( z8p=9{=}S>8uh|vu24E&|kAUlx6soop+R~pWDHCm=kAP@;OL#+8l8O&C*R4ZY-+UD!u$nQK`H+YGyE$x zz2T)r(MqnpAS>4C{SnlDOikzjbG&uObQ6#%yQ_%TTGpr7`<2l2F^zQAs0rH*X7!4R z+zx%6kTG$mn{lD%IMA)= ztFG{3{M;3?KmAE5Qtg07n*#Yg*lLWrQaBXUA7J@XoZsItCzH&`U~>-L+%saAhnh=W zX*)IC)5t8oaO5r-JDIsjN=g&2ZDhYYs2r>1uR~c2hV|k5vuJAf^~hjACtout&D=2} z|5G5mrTA?YTxhg#>PH&z{}_Nj?1;G*-xPhcM&6MaPRIdN6yB8?m60Ob$;VQXooUA+ zv*<0r8#$`v<09lHR(H{#NNc8>oy}c7qqom60@{`yqh^R*%mB1Ea&?9vC!V0JL`G5@ z^htq{;?C7?v#4~n9t(zWm<$0;4hc5FI1T4y!!a=(n{fBc39U#w$EZ74XHy`F*Hw?G z3-&ee2c;z2juzErjhBCAB5Q(7K05W%)?5N5VMMU)6$|b1MUaxjlhni#x*LH6F6kBf z{w4Z-wtb`v`@#;fck*J@&-HAEcqwF8?$x)EDT$`1h~&IIt3kn1u=Vb-s?2;XG@Sj+ zJr=M>PdbPX2Zu{G<<9!<+y?6tt?pn&l^kYmy%k|+7aPIz)$Fk(q|~n0)#iozsn~5_ zg%;x-lZWaYf>qUcqPq_1_Pv-O7(HO#S?x}5@bhe>C>}1u;T;;opC(`{250RVBw<~lRiZO{eoVViDcmTx8=!U2 zp@aSPnbWor1~wxNsdMx<{0u!LJs#+%n=h}u(Y?7%W%!@((nn>@W!W9RTV8M&Y!@P* zoiV37>QbTcYghvy#)mtWMP zv)S*v`Z+iuW(fpy5@9kEbEimBfqd|`-=$6-eOGs3Q*_jJ25hjmZg#2#9}j&ijp--d zxxgZ#7_7d5aJ-GpE|^`-!--GGH->zXo+S_ybCRT%Bt}&mHRIXF`t!3?Mybtt z*k9w-L>H=oA~_o`^y)o%%(i;442&*o;*vv+*uyz>t+z%dm*km!&?eh1MgWq}WukC| z`ZHyQyY3qlO=g_bCzMlA;P_&|G-bAwnnfw5x|I3Ymj9erS(tmY&H;8vZ>TtsHie#Q5#rZyCf>8PX6dH=bEk1#Ma(u7$1*H^q?86IaAbsmXZP4E zg~fDJ22h-ge2un{>9CtEtBli$>Qj+p3)>m_5#~S%YLE?GZewmq!{_Jwh`+Y5|3rDF zusWUi$1d+)JFJoYJgFeF8tRQil8z%gleI1S%bhbOT1T2da)Yz{HbfhPi^oMw!by{3MuvP3X(i2142<8hUwUzIue!i}?3BvdE5_B<)jxTu5;~<5T4)F2uo^K-? zy0&kFZriT9#ocWxFvXZi#Z6HI%CO#Sa{3wGo|duh6qsPL@+x?*BCP!ye zk>uW~?egLY=EM%07ah(s9%#h^)-Zw!16CS=J|W0H+V zE|%!DI5EL>#90iws*a*e9?>7{m)p~0qhnfF)=9ECJzq$Q?+9U&GNOR*Rt zHm)$QrF4ES&#z=j?!d$-I*##;P9=!hQ9@+I2YF2v|d0OZ=0<}hC9jw z-G!W>o$+{l8L^OoRy`ux6*K$QCJ8LZ8N$b0`|%xbZDS`FERXDFbtow*U*Ru3 z8uMt4If<7)Cf-IrDL3;FR(kwgw|=`pb2 z_=R(AtE)*>UC$!siicslD!huT-EZ- zSDsWHBnercE(M?YoB$O(MdO7dkGBuU`Gle5R~LZQxuc1wJO8!WvlijztFg7yx0C!l zz~={VX3>v)!ZmMQBIe@y z>5s3*_L+ylxt&`d+TJ3(%B`_>v!sfHV8h>ot)#D3NnnPVo=fxT`M&24IR0f{rsBVJ z4}RDGzt^;MBlpeh&b1Gn$*fy8SAH7eUi9m4-xY%%L%n$nRjBu?wa+5ZK5vNWTAa9p zKKJ0u2<@y>|0`+y@LXBh^;`AVLy2X#-n95>W|8)vv?PP?fRFt~N4!TZLUKvG;-8O%3))xX+v#%2F0 z2s-!Z&m(81!~W7Y{inH`!`KQ5ajtOgJ+0T9nFV}UeDw_L&C1Tz|L6K|S%GskHmH8^ H*3tg~XLbz6 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sector/sector3.mts b/mods/castrum/schematics/Sector/sector3.mts new file mode 100644 index 0000000000000000000000000000000000000000..6ac1b398bfe84f81864765523176e40ffacde296 GIT binary patch literal 15919 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 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sector/sector4.mts b/mods/castrum/schematics/Sector/sector4.mts new file mode 100644 index 0000000000000000000000000000000000000000..f607b0174fdefb329cfd608209f88d40c96afcc9 GIT binary patch literal 22148 zcmeHPeOy!5`A>hYb)6M9T+7rNeq$f3ibAIost8#t+O^bLwGu5ax0JUEBvArHASCvc zp{UC_ znv|GK+DuKNkfU)+YEBsffh%?Z7hK#7bWr_DU2osNWvs3<@OjY5gSxloe;$y7ip zc!MkiyVxd4q9jJX4$&eK5^&3G*P^1S(SSnB{FZ4J+rEo@J(`*{P6~-arKUzwUVAMe z8s}=`35k+S26K@iDhVty^$uSgN{&cOOvNp|?THxcqvOn?yhc3`bs&OlU9XeAtx$VW({fAOSyYkc$akIeyycA72m=KSH!R zG8pV`5}9xZ4IAW0=RkbdcLUA;0>WJjD>X7O+VoPLFa~;5jg5kWx1)`#-b+27vRI~Ih<$}h-QoF)jouzvT%gFX4+7+g1 zmj0!76i+)133-_$IxztAyR&Ca?=O%w<#t<&pRMmzAn9GadB5oZ2CPB${`gHP2lZEn z{+Bqb`RFzovstmwd~}-(gXiJUok8fl!c38|%qz^i!u+fW*O^yD5|FrM5CafI;-7tH zR!MP4MvmWJT2`oV?DKRX(ylMybW!RqXTSwaxPMlw^Uc}A3rxw{a-KfS(yOEp?JE!D zFZYz1+S1#Crn8~$b%90u1gMA?IHFsy{AV1-xK4QV#CIMSf_k%Hz#}-QH(6R6C?IjP zKX6ht?`WMgsuFq?8%cP2W@Ux(63fA?L6_9m&>NmQxd)Q+PMABh{<6;i+c4IemRan( zTX6MnXbLBm#Gps;8`9HPL#mQ3AumnglWf(9@ruX0K~e0cCC$DNkL#7gO?kM8c$W#SPOwa`dA0Wy zubeRVoof|zI2>{(lz$o2TkM-N@9~kB1Xs7BiR`8A&KxkMY#SQq3O8pI2}iq2v`!oypy*jN&JAuZEUFvr z9;X5h7l#;b{xdC8Hv+gni3%%crL{~>e!N}Lsaf^eLbqF25N*7(cRB5;!B6Q`nTTv9 zwboN1;L5vevJlv3$ro<&S2PC&?<4I#BBFGaLbc)3Iz$zuToJATQfQ+BDO`|umlfu5 zQozK|p^2QnGREPFVz(BMlt!6bIqcHufqad$5Y^m4r_^p2wC0=0cJJWuRJhrHWinBa zafsg#;S4v2#k@?Yua5e>2O8)m@=tz~;=}g@!1!==6z>E;(idHTV%yu;KR4j*a zIF{caUcMS4eMaZDRnmw8dNlv55WgL(gwKlDFJnbbJRo8uQfBfm9G8ZEUH#VZn!s}7 z6D{~~e&&iiB4c-|?=_JpXY7=3{%*rfd0J-AN)fRDsQ*biw>b|i->M7aC31r6?cRaEmJ6JKC&6z zCU%p-M3&_#8cKB)Zy}0} z%WRuUTx{<$-@|-y9+G~F{+t#o>iX4M%YUcRu_`Yve!uRRsLH{Cs+m%fNYmY(e&y*@ z_z4z`b+#T65mK_B0}F;iH3zS3MdO^|2|}t1JB>+<#Bb>L5)mg0NgDeM4Q^(4EU%Zx zK9BNu39y+(S`SkjVYRS`B$9AOe}jdPRH58EHe6I}iWD(hlMBN|9GxOt8?>6a4t}76 zs?s!^YqtAUO8*MvwNZ~mqJT*gzF}tAL!lVMZj5M;v4}vmV_CEXa`o-@)xJ_Rfp41X z{L5h|Ql@>VPkL#!&|5@H;&gpKL@?zd%9@g%Y=Q|Ti!JU@tbNx1QhT0dqdxa`BUDy&*ryfu-flHkC-HQTx6Wjy?y6MX%x1 zBjPRr<2-`t+Bu|rz0^OC1N@LQ>P290<9?9LUX5`*M02qA7$Wo8Q0oZ^s^r(`1)E^q zHner!qq2tb{*mJ%&Q`QF1y-_Eg%e3U)s@U{q8LsflKq^^3ZGjV^io$taNfdwZ7D(m zHOoQ$w3ON~)F?ANB=RJjtuK86W)Y3~Qj2x6iucO*#?;-efWR^os`Vwn9^;iOUZh$5 zMKiZ!`3cH~Gh>3T;GvQ9eXxQSw2c`s_z79_`Pk+>O#)HC=#d^ z8O;M7U&=J%(Caow+Uk*LC?Gp1pT$}om5he}72^{34S%QAB-e&c3CZceiB-SjJ%4PRC3V!aO8079P&&$xr@ zsSwsF{_0@DRQ>2TK;P<-N>QCCL1&J736^O^}unf2!)JLMf3e?P4&8xaDSqD)L3R+Ge`jhm&>f_umAa3lq2L_@gEa6>SQwfS& zsYf=FboveK8XFj;W`&wgOIaF)jPj3qBp2}NW#CSVc^QV+fKh~_`+)&hr>}xkpVGPC zod6+013&}$B)uvNk$LT@WvUQ$gro}|c~``#Y5|(%S|qHJcVi~2T-?gd-@|~&rH8Xe z-_e(t<+(y;PLJwePRt73$GJST^Vtr=GIfNfXu-Jyb&6u%*EXMbBB*!NS5{6psTm7k zR`JX7y{CcuFkMn9T`{4G#2{u=%5Hbg<_OArC;iGs8ekS+kRTlMC(WwGEGWK!1S0Sj zW<16|sz?Itwz6vUo%9m=vpR=hk$N^s=7BJ2S@mCRTxL+UGt2I`OuKFf(y#dQ0R&27 zOBXR(93!m*iPA5i!=oK(Zw-@f+U1r+8k+=eP^MCUMM^6Cz$!Fb8Tj*3Iw zCBps`SWnX}U&R^w3`7S^?PAH0a36?pL`HBbF<*rTkQ)Gv^=I@FFAYA0zeBzH^RZ=^ zKfaKGjtr z&CisHk11CiFX(F1#HUOIn4RGUQJVz7Ts5%cJ4D(^yebUpCGln}JY9tf&rNi$>%ens zb>gXr!k=RF5AiX`>wxj@gjF!xJa#CYUoTOEr43geH87 zHw82_SZKT4$oT?t*RzjSdFr z)Vbociov|$!fx`)dEz6AAkiyFsYt3r40Za&=DdNJk72nDTn==u9?>0i4q=(b#2sb| zhib5VFWsJM0)~DLrP1vP4#x)|r|9Pa^0TTSx8*&xh)pT;eM%AYBAQ_nuw$q=$l4Eb ziF?3FLzthaUc)pMJJ+#&C4M09(H#y&K@QAUu5iNQ+0awgtdzX|41jd$n5|5a`FJZ{ zv4_`5k)qe--U6#mF85E^YaAwo2zm0S(Ue7Soj)ERL{)?)Ewcfiy+=55^E&q5#N6j@ z(DOF$i$N1Y0DvaN0GfPr4|X9Lz2rX_5FVzvCeAd(!30yKwm`WekHQ6Tz30$?1Rs9q zr0C9>>y&QJn>Ci-^dK=GLsEAQ{r-azPfVJ^Z+D8lG(HuwXVADsaOpaHDPt&n#^`Q( z1Mpzq6FH`Qf?J9kN8aG1Ecjx3YaasetuvE;O(~Z z$23X=($b9}<=bW4T)rLymUm9|bZjbcP*7hV$nun5LOo}|yC=(Z!oR*&{uSvT=Crhu zO`CBJGdY2F2ueY!06}1|aauR3@#eOQ*&siz$tL7;*9cq1;&mGQh|)|^nzP?3Ldgu# zH>j0Z3Rrcd7*LX+$Me6!fUV{jVsW0<5)7Qk*K0mtnLeHdR;Ued2Z|#1IVGOtmjVW8 zX{lpEa?RFYW90M_3+d}?o*5*Zt$Cp}*EE#f#^LEA-ngj5*#zcjCh|0z%wUj#c{_wZ zP(vuKFTIrF443-nX?*hAK=}?}nZ_NUZhTLnjvjimtTd9{6hB?K;|ses6ClBylig{} zyz#*>cgl2OLuX7>j?vNCBxf_XZ#UPZtolc%3ljR~vf*JEfD-j^kGRqjk!>L*aNrE@4Y&6`*k3O}1i7*22abQey`{viyYxBZu)TM4X9-cDS2Q=%+~CrTJa1Z>dLWb7;a7iK zCl>VkB+Ki$l1jG16YvLYgD*-pY2FNNwAL^wUHu-&DN2rMzy(dn4#^mKLhp)Y#Wn2! zOQ0Uozb6NXr~1<#DRbJwLP3*hre(mYt$GY-yyQ4$)~$2UpmH zcE~G7H>6vj>DP4@4~{ptn!_B*Qy4>d;$hHq{Ziho4GM~F= z3N|z_x4Qp7%yry4y)gV|qL9xYa=^YII=dLd~;+pE$iPXdgcy zQAwaeBlT0U=Qe&}7pz-c)t{uhcHFQ!8(%fzf%Mb_7Hyx|mW>H~2+MeMQ?8A|r`SzK z#;aR@zF|T#mTY3#96C?IK!l20jrdRXB43lJ?VirsdN$lxs{zH|%!f^;3Nd23#ZJpr z4OWi*3gorsscJ{gQz*eSmx*{6w*_gopE(IgI5OOaz_Gn{5I)l(X>WIz{r&+#r zINKfeos>C#?crWI#VDdBDQNq_t{`#E@-|tq!`Iy!(iCsge9rYpi~B!Ai_7B6dSZY zA)S%v(mc-K`FhUckm(POO=8C|5Lznm!aXjj&Y|v=9+>Hl>;uj2ZK>6FJ3KZ)xd36q z4-WFI{0Mc|yb%<2*AX1#ZaoAS4E16Mo4krJnd{BGox@m`LsDN#5HTaOUL4fhV;CBi z|52mWG#Go@ne^@YwS+fpN@rK(`mOXie$-Kx6YxrVlan& z=t7L>EVRmU!t59!+|bx}#&QnuF^+dmvB4=-%yb*U1`aiL&U)baqiZ(V+C9wt(KU1P z-LCvrw`2GOoEQ5^Rgiw=TN?bQxg6kBAO&6dq3%S1r`uePP5#18*!}`fl?Y(RYMkoCp z?8F0j9TA^3`IF86zHKc2^S6J9d~g2GJP+peV5VkZWTw+T$b0g)Z%6$8e2r;u->-(qIQ#m&bXdw%>KUdQ+~9^aw$Nwcu%i0d(Rg_T=Nj;bq0BFw*{{8D|%X8xEmw@Lgs;qZid5(2GZpl(`Y2ML?9G_u#f_c2_z6g_6CwFZk^pf_m90Z$>iR1 z&iDJyIo~-q$dF(p*b01sJqTkx_X0127h|HSGzvYzgGwWluwZvA78gw?(mdiQ(Meb$ z*k!$s#ZzeD73*DcG!09^P|0*k3>IvO##6vcR?}5H35!W4lVgFc^$`wBios%@7+!$Q zM33ZnJPiw8v7V2o5~E467-~HJ>f2zCHFS*?<_eJ<1A$#u*QU1nkzIFm`HrSnOn82ipe7(5w8l4}@yQ6+(Hqw|?v+f+$NDe+Y}dXm*BNt3 zA0yuP+LGwe_=hj) zUqeG0*C7`U_vz^Z+F4oA(OwNAhO@^8qmbi_va}TnGvU)}6!jVJz**tx$mAG>WQg4w z<@(4@?Xpyx3VCr>npPYgg6ikin6j7Glb#9Ws0-_sq4-hVa07d_FEcZjD<_FXA91;i zy*fUM@eFvMp4Ut}J8)j0EQP(dhieusIN6qFq*U1|X(L(Jyc?DMwTOYA-7$xK#hfQj zx}aR_N|_dMcU~lGGp2RhGiHjV`ctKr7TATuW?6(sG2yWne`&SDwCe%8eBQ89-^3ED zef_f7*(i-Z)gj$@IkJB7*G$9;w&TD~YRlZ&Hf|elX_d;A5C3}+k<)OR*}N2krLMkf z!jN)Lj|-IjcA?`Mc7RA0vQAZ6;qOL}{>+2*;!>_6eQW4>$hOI4qFNDw`SYc5i6;Br zFpI8=4~%5Dios4_XZ z8d(=czP3(KF)l)E{O)ox3ei|*kJw*|Gjwz^Ui%ffIh$>`RXbNlAR^&sCEA<$(z;>E z_}fRUIi?_V2VzFB0}t5ny!cPsIagwv%iq7)+cu?$FqPA#W*+QY&vV-DH?#{LMlak` z90(Uvy8{TQxyoGWvH4AUw>zVv;`gJT>yUBK4j#B}bCZ$h`mXsq^?K5C&`MA6*}>oB zwH@Td*0k2xhX=#Ge$#XOjRr@Z)SpnG13o!7>G`2CP*qUzq0+dvlDtWdhrg4?0r=%S zTY=!il~~0V;D1aOc`1um38(luN1cPtW6T_E_y+^L?%&690WCsvu5ZQ9w8~72Ude?%KqWU|5*iP=i9CmHH9fM}v=4{tlE8 z#kOWW6V46{_q)C`%fJj-TlT~{{Thh9 ztVsF;RNsg*_NTd*L-h?t{uxGF{{>j2?+5PpcQT|dpCb&)wgALYa_f&!eG9G^b_`tO z{6gxoA7M}~3A@>UXm3gD_~rbPyaZ2hVXXgp^)NdWF(pt6 zas?hyg+?!afwsjhp;P}LB1Z!U7&ZpnPKTGnN>enn8jrrx>8SZ_*flSGn=%Ezvsk2_igBqK_nG=`S2T05t zPF%4e;fiF^Use@`^KsKW^pMHpt_a!*55t7^>6ZDlk5;QigH9>4eT|JKdVIEgFMMLp z^z?yBEG7^G3nCR{r1oJ}J>3JiooT1a$wLoU<+nYf!r@o3RsQQD12dk1i<1jHcVh}< zz+^67OSlbhzM_qk*2IYmfg32ah{nfrZPykPh~h<07zu#=>pL?D(TFoRfQ%5!s6Jo= zz|EXLQw^gAAyUHkfbZ1Y8DQVq=G14>Aw~ls6#oXiQ?~$@Pk8Eo$icYQMY>5l(YY?eVaFPW=VIMj?B*nDB)s$0lmaPK-l!C^8k zH#4REcw`~?+w$^*iRkp>DW7BV%b-0O=UGhhW0$PC=C00$9rvaZCC++>-FJ}SN(1}j zEC=OJ54XN9(~=%CgAj~A%3<0RH@d1AF|#>iR6)uwod0s0jV3+pL=%D+3OwLHHM(+No!7fJZjOua)UM&lE|7-HX7I&};q{%){1XPG3rclV1^a&{ zga6JN+dq8So4=H#Zg~~xOMeV&J+8kVhB>p-rv(EqyPu+0(vjeDuWsAs*V*%Dc7kdw t^X<}rJsCE)2gpkDFN1#hhd`}R*kVjf7d9;=4i`MX$TXd|-zMX`{{nX=Qy2gM literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Sector/sector6.mts b/mods/castrum/schematics/Sector/sector6.mts new file mode 100644 index 0000000000000000000000000000000000000000..04ef813a3a26588361648819b7bdac9cc016ce83 GIT binary patch literal 1201 zcmeYb3HD`RVK8NoVlb}92^csTc#{*0ONvT!t%^(X^HLGq^2CzVA_no4)U?FXoD!>) z%%YO`^30Nq`1GR0;$jA2m;_i`d{Rz+ayA2VVrCJ86ig;1wKx^130Z*%%(CSC+}zB( z^!VcZ{5%Fem=2)PWvMv~>?L_6RzO@a=k48tSs{)ht{3}`<^8`EKix-Z()CL*uWhpq zN3~8)*}!?{prXsKGG+z_z0YMo*6G$p|Jrx|9{>IJ$M4tFc|k#M&~)DD{kEzQurzb! z>9)1^=S_luOIxm_9=?|E?+F2!QLi>7zTUok2?Utvmfqa(^>%O&1k9SYE9b_qx0+Dk z>m6&B^Y_~nC|I^sPkLKjHO$(}LE)K)|5??oqyxi^kK-<&uV>c4->uY}&-(7%5k?`l}^ z=$F3TnK=LN)7OtrBh)Qhx-QoI&ByCG5wIXHMGqPLjtjlDp2G=PFxAy5oocq`KAgW+2i)S~#}{L-T2R0ih6%%X}pZ_jQN pWH8`3vLU@F%zy5rwx-E84U_$KpT7fwx?lGWxHNRKyLZnt1pu%~C0PIf literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship1/Ship1_1.mts b/mods/castrum/schematics/Ship1/Ship1_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..967b5199a68812af7fddf757d5623671ccd59e76 GIT binary patch literal 120 zcmeYb3HD`RVPI$AWZ)S~#}{L-T2R0ih6%pwLJxKw_A zO2wSFR}8rr6a<(L&glPL>iF=$CobR3li72`UmDrHFWB&Iug_i6S65aB*GKaI`@?cU MkwKRGoz~3h0K`@=O#lD@ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship1/Ship1_2.mts b/mods/castrum/schematics/Ship1/Ship1_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..fe453e0467af31b210e09f26e827ced4bc251b1c GIT binary patch literal 142 zcmeYb3HD`RVPI$AWZ)S~#}{L-T2R0ih6%pwLJxKw_A zO2wSFS2pr72=KUGeAWNEv{Oh_jC1Rq-)xUxx}<1b&8)tEK4^LNg8Xe}^*apfwx9i; k*3#eC_b+(<_g~ZQ+P^>hwXgfMOUWdGi=M1%tuuE40LsliPXGV_ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship1/Ship1_3.mts b/mods/castrum/schematics/Ship1/Ship1_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..90929c7f0f39102f5ac010177a82da4a162a6725 GIT binary patch literal 183 zcmeYb3HD`RVPI$AWZbE`*IsfVF adH3`=&i8X}{Z(r@qtG%zQtsT&Su6lFQdFJ* literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship1/Ship1_5.mts b/mods/castrum/schematics/Ship1/Ship1_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..51e132b9172256da572511011dfaedbda1b28bd7 GIT binary patch literal 213 zcmeYb3HD`RVPI$AWZ)S~#}{L-T2R0ih6%pwLJxKw_A z3WE@gmzJ8BoEl#a65|4rIacKvnI)+ebKXw5$aO%0!}WIQ|Gn|@OLSWW7S%*l=!rNL zY*`S*6V99Re8S3aZH=1_|Ioa0KCfecb>g$WPv+*ozs@~uk^JZR&3tvivhxq-%G|u| wwd$4a+RzZ@o9C;)@4uD1s9N&x=UXd(FVLTzRzFE)=0X)uqr=?)yk)S~#}{L-T2R0ih6%pwLMm{eA2 zUV2Vyd47Hhg9J=0Ej2GWH6BTZ3n-ssRi2Sql3Fq6?UajL2NXD5ZCI5cDwet4@{n=^tlT>CdRPi)A%>B=6Rs;Yt CUSn_o literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship1/Ship1_7.mts b/mods/castrum/schematics/Ship1/Ship1_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..acd8b12217f327a16591d0cbe75558ff87cf903d GIT binary patch literal 223 zcmeYb3HD`RVPI$AWZ)S~#}{L-T2R0ih6%pwLsm{dV# zUTS=KetrsrI7}!lH7_|e9wEU6l+Lj#&&VuEt(fz6%0;dN3LLJtOaJeUmtUgWDzK;~ zqC!u^sbI^3Af9mEl;;yxers#obohtnmGgNW`>PY5^?foo|NV9DVT?6mqxDl-?Vcp4q%{^vC-0swLi BVtN1o literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship1/Ship1_c0.mts b/mods/castrum/schematics/Ship1/Ship1_c0.mts new file mode 100644 index 0000000000000000000000000000000000000000..ff09e0f819aaff68b0c153a4d2cf8c1840ee4d37 GIT binary patch literal 235 zcmeYb3HD`RVPI$AWZ)S~#}{L-T2R0ih6%pwLsm{dV# zUTS=KetrsrI7}!lH7_|e9wEU6l+Lj#&&VuEt(fz6N;KC21s;~S%f7#xYTJ~sMNPr! zYE6g{_tb`xN6gLvF_s$2?IByud0J#o`7f(0Tl{0Tc-Gypf3MQ^-znBu-uvI?w{1sj zZHmO%H#c8Tcez>>wOWHc)#m-3|5?{JzFYeJocHoK&G&Mmem}N2C!Q3M_EcQ@OP{gh NoPAZCTMXxO000!yWmNzG literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship1/Ship1_i0.mts b/mods/castrum/schematics/Ship1/Ship1_i0.mts new file mode 100644 index 0000000000000000000000000000000000000000..9d52eb23f263829e8ab806c9d9005bdfb22f0316 GIT binary patch literal 236 zcmeYb3HD`RVPI$AWZ)S~#}{L-T2R0ih6%pwLJxKw_A z3WE@gmzJ8BoEl#a65|4rIacKvnI)+ebKXw5%XdJ4r`7-Cz3SBd4LXOTPM*2&cG>eI z{=%OWLmfJ_c0W@7boA@4z-GZ8f0CXR7d+Fd^S%B|aceqQ_ie{}ZVufH64<3Q}Xmm4%gBaUmWWj-Ii{=~VG$mdVvFD743Gn#o%<50@4 U7{jd}{}y*zZ?0x%x)S~#}{L-T2R0ih6%pwLMm{eA2 zUV2Vyd47Hhg9J=0Ej2GWH6BTZ3n-ssRi2Sql3Fq6?UcKG2LyOp{XgETPVL{Ib2#ec znG0{1JwM_v{7Es?p+jr;Bjry=zwQcb7X0xi=~;2XGp#z`>(3YIdgk^M3#U-o)S~#}{L-T2R0ih6%pwLsm{dV# zUTS=KetrsrI7}!lH7_|e9wEU6l+Lj#&&VuEt(fz6%3Zz#0z9q$AMaJC_HWQR9Ch-{ zg}2L|AMqFdq!{YZp|$&w@~5L;cLg>J{`iyhthnHrR-NzlXOeqepV!Lm?Z~jO+I($k z;n};*1^>Nzr}OjL@BgE-_kR85z#9i**S*}J85(h1Yc2En@bxFol|(*&8h)FKAv#LOZFp_J6L#L}D+tE|$z z^qkc4{QMLK37A+~YF=_`Jdz9-P(H`1JR`FtwPMcODHpjK6nI?MU;h8@y7H>6yhf(s z`qtu88Vf>>F}NBjo(oIuvo)9Eoq3|#)FKAv#LOZF!Iadr#L}D+tAfnD z)cErJ{1gUpm{3}3UUF(YLV^n@onuv=ky(;jG3V`+i(Cx~Jg)06|9^K~dDT{4Bhzqw zYw;fr*bweU}tf>aF~n7 Hf0iErzqemM literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_0.mts b/mods/castrum/schematics/Ship2/Ship2_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..19b19f670adc7013c111eb7ddb2894a7af75fde1 GIT binary patch literal 112 zcmeYb3HD`RVc=xoVi2u|0|q7rk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%%X}pZ?7HX zWl-Q@-dI)?mfrBm*+X#C<^#6DrX_z&vahX)EPe*3{;jBFWZ;*HV`M1EWnT4XLm>c} CS1S_$ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_1.mts b/mods/castrum/schematics/Ship2/Ship2_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..229a7102d99e9bb791c9ae622df061ccd1367612 GIT binary patch literal 132 zcmeYb3HD`RVc=xoVi2u|0|sUWk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A zO2wSF*EVu8DDb!*eDP>qp6;#ANeAx6KPdG)vTSL*OZ>9P&1q+66|YGvK5D%J%r^G> VJe`-}LF3_Y28Ni~rJft!0|1kvHzfc7 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_10.mts b/mods/castrum/schematics/Ship2/Ship2_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..44c3527bd8315fa3f02cfe975f5143def3e22af9 GIT binary patch literal 340 zcmeYb3HD`RVc=xoVi2u|0|r(Gk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A z3WE@gmzJ8BoEl#a5|b=00V*uE0#otHiNz&FrMY0KiaBp@yyk0G;9-3bRQZ1Iua?f3 zu0#D(Wv9=Rn!aL#{@F>ULY+JI{?IAEa%SpVo#jy>HRT#zQv1WL>T4>GUY#1WYW1{d z31`38UOkzT<9lna?Cj`;F|Fx!RrCLb%)frk{@cyE^HtBnG{PUwJYE~8ImbAe^ZA({ zwadKbJnPlTo4Q}@``L8{-s){Lxe8~w+Ft$Nc&Fyk%)5!_&Oe;_QbgUj+q2p6$n~_B zhm9{^=uz5de45E{zm8b<(WH$UON>Qp?9V(5I3ad^??pEATWP&>*PhQ#O53>A&-hDO SpT7D0ZJS;7^Lux0G6Mhs1fN0x literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_11.mts b/mods/castrum/schematics/Ship2/Ship2_11.mts new file mode 100644 index 0000000000000000000000000000000000000000..0f2b9edf38420e51353e8228caef9046e5f448c0 GIT binary patch literal 349 zcmeYb3HD`RVc=xoVi2u|0|r(Gk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A z3WE@gmzJ8BoEl#a5|b=00V*uE0#otHiNz&FrMY0KiaBquU*v06;9!00( z-+O62J9TyU*Ap@wGp%%IHg>#@G;#dTRz1hoIA)f+^7%RMpQS~*ossW9{`g~s4VUB`t~&W6e}X)8u3x-(EN{zMDeda{ c*N>b{%AA|_Vr|SnjlH?4{c-y`#5TnN09R|Ki2wiq literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_12.mts b/mods/castrum/schematics/Ship2/Ship2_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..a2854302596fdacc6b60ace12e84426c9058645c GIT binary patch literal 370 zcmeYb3HD`RVc=xoVi2u|0|r(Gk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A z3WE@gmzJ8BoEl#a5|b=00V*uE0#otHiNz&FrMY0KiaBqmH}W+r@VIb)y8ruYCx@=C z+w?UNzVCayS8dqd?ZmDi5_bIAhTmSPnS86*KHa^!;o_33Ut@k090_cl^eV{v*_p2E z!P8SxpZMH5InTJ*$?}xk=gY-@(~IW4Hh=c!{AM|0^(l+r7^)xgDn53;HFQGczeAh7 z?wLRK-~D`dk>0kSHqP!bzj;;krc9X;d@gRS`)S~#}{L-T2R0ih6%pwLJxKw_A z3WE@gmzJ8BoEl#a5|b=00V*uE0#otHiNz&FrMY0KiaBqm_wqF>@U)yhU;X~7y2iEu zj#&|JrrneDeRbq~cQe<4CuYAdzxy!N%i^sI?~{8cCuBZ)w(0)Q4_$$+lTHN{KReR( zJb7wLV$RGZljj<5Z~3EDduHN>OLIO-%;GZotX{Lv=(J_rsmir)YwP-N7R4RjQ+Che z^|Jk2tNw+b+g-Zve1PEeI_A!DFRwd6>*lSkKGSCq?B{#Np~G8WYGEAn?f;6C*2N3| zKJzZ&*!`EuZIgExRA0-ic(D13_1xnfGtU?Pnvrq?kO13}% literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_14.mts b/mods/castrum/schematics/Ship2/Ship2_14.mts new file mode 100644 index 0000000000000000000000000000000000000000..6eddea5158edd6c87888e5cbd114f7d80316ee50 GIT binary patch literal 529 zcmeYb3HD`RVc=xoVi2u|0|p)jk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A z3WE@gmzJ8BoEl#a5|b=00V*uE0#otHiNz&FrMVC(F(}WfAhQT)GElMrs5Xy*A10oh zn3tEIXM`?bh%R8vzzfq-oS2zo$RGmaCg-JG9?s>rBf&fDqTe9a0xuHL2k z-!K0D%E=MZHS@I2gG<%oDi*IJo3}D27;QGZrE_nyk&AR7^Um$27PAV=By8u)>ZkOn zu<0Gibe%TKIQm*iT}-Nx!84yrGtbUk-}2+xjAEy{(ClYxZK}g&Jui{jH1)`t`iJYa zA4(pyVBTT9ial}J^}gMoVy-{Gb6!|+p5MOtdri-~8*X1Gy;7}a_VefQPj2o$|CdMm z(S>}KB!AD&;#0S-?mCjgVf^$>rzA(=3s?7u{mh@A8%(@buRd+&*+X;oU6(g@d32y> z&1HuNp{snKZ#;S?JEs23hlxA4Tw1pOcG|OdEkBnAtqjqc>gCY7?m>m(t^WCPQWXWs mE4RK3zjQ`uqUrh4C1-TD_!vD=+HLQZ-o0khWoftUO}7EZz3OQI literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_2.mts b/mods/castrum/schematics/Ship2/Ship2_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..fb37b8af5dfcc48e3eb9b2af2085605f2d2d0694 GIT binary patch literal 146 zcmeYb3HD`RVc=xoVi2u|0|sUWk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A zO2wSF*AMa@P~c%XsN8$mYQILuA0=;rvvJIyw@hBT?eC;)DPth`ESH@2Z@T5=89UF- lX`iw4(wyisG1+#nw_BaNqv{#ts2|>_;`!?i!|tUUZ2@p1JoW$p literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_3.mts b/mods/castrum/schematics/Ship2/Ship2_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..b54959a276469d6ad722082887f7b3c966ef878c GIT binary patch literal 161 zcmeYb3HD`RVc=xoVi2u|0|sUWk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A zO2wSF*9`d%DDbcxEVes$eR6;TQ^^Yv?>F)S~#}{L-T2R0ih6%pwLJxKw_A zO2wSF*DU!O3 zUDlZyhRMfze%?jeqw9Lwcg>Zbb*1jU-n#W>^{TAWXG+)i*W`Z_HQ#KPxb3c+ Wi;Ii?mK|Ij9UU(Ut%Kq>CIbNVBT!fX literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_5.mts b/mods/castrum/schematics/Ship2/Ship2_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..adce8eaa1898faecc372319c3ba18000b9018d6d GIT binary patch literal 207 zcmeYb3HD`RVc=xoVi2u|0|sUWk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A zO2wSF*KTsP7znsr%&NZ=U+%c+hOURpE{;;}IR}>~&tuw=b3Z8U`k&c*7G9J&{BrY$ z%y;(PKl47N&t6-Xd``4)=FNRh&(AZZQ#J8xKFPMW+_X|?#)chj>s t&aBqRDtX4bX8E6-XQJW8%M32(g?ec&y~5ABooVTmAg|gy=C{@xivSATU2y;a literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_6.mts b/mods/castrum/schematics/Ship2/Ship2_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..1356875d26df2233c84207919638b591299c9fd0 GIT binary patch literal 218 zcmeYb3HD`RVc=xoVi2u|0|sUWk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A zO2wSF*KTt)C=* zU)CqR^Zm2!;w$rK5fA4?z7?xWmn~jXaBfW*_x{a&mSGm@VY^xNvP^!vy$-%@e&fvI zbT?(a-5Kv63!57E&yx&|IWx1SW>H$&{CSf7X`&zJ&U8Pr$Kv^%;&<(A(T&CDET7wL KXL6Xmu>}Cw*I>f{ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_7.mts b/mods/castrum/schematics/Ship2/Ship2_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..b112219f9c3d4356387016be9c3489e0eb05f37e GIT binary patch literal 222 zcmeYb3HD`RVc=xoVi2u|0|sUWk(AW5#L}D+tMbH>)S~#}{L-T2R0ih6%pwLJxKw_A zO2wSF*F5H7bLiw% z_e*wmnoMWfck-Y4?|U-ZImWB!9{Ro}xleT4%&UG6tFIXz=em6+Yxx1s-Zy(E{#J?? zKYzxiDlO&FU)`u*6^qlJT{M0y@cvn2&7MHx&Hm?mqBnQ_ICVxjNp5cOIm_?PQ^Om9 N^m99NMjpqF-2f+OW_tht literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_8.mts b/mods/castrum/schematics/Ship2/Ship2_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..452ecce32c45ce15a3b9d52bde0f9ec31a7cb563 GIT binary patch literal 271 zcmeYb3HD`RVc=xoVi2u|1E7dVN@`kSX--Se&c|e)4Y}fW>C$%TZ+brK{d%9So^#Hu=3GSY=3;}o zvO~{u{{EO#`0`9r&9fZmM>brFEdq;}TGu|Pbn*yieN;3pOgb*h`g+CYDlw;y-#*bc H8}|VK;81>9 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Ship2/Ship2_9.mts b/mods/castrum/schematics/Ship2/Ship2_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..0ae6db700cc0d2f7c155853ce798274d709c7c7a GIT binary patch literal 301 zcmeYb3HD`RVc=xoVi2u|1E7dVN@`kSX-x^K_3jxNB6ZBU;^Rf3ao_sq7$jy!R0-nWa=B`z7{Ug>WVWH1Oit--*QW-@Eqt{039#&bUP0|4=$ BK-&NS literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Smithy/Smithy_4.mts b/mods/castrum/schematics/Smithy/Smithy_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..91699a0e58421b060547bbc1fd40ea80537b01fb GIT binary patch literal 185 zcmeYb3HD`RVc=w7W8ka@0|r(GzLeCo#L}D+tK|Hoq?}X+=ETe*2I1loAXRJyrsAP8 zf+_j=Krs**U!I?z5}(L`A(T`xCpp1^xhKQMO+?VmM9^)Lg4u3~i#`WUCWl0`wZ}f` znDAadL|#DIsV~+i!)j(HhjZ4=qfXAdUr4r@_(*?UoWR1+v&E3Bp+T~D*;2hK28RCY Gp9%pKZbAb9 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Smithy/Smithy_5.mts b/mods/castrum/schematics/Smithy/Smithy_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..702525157dd9c41c2b79c21b90ed177091b88d38 GIT binary patch literal 191 zcmeYb3HD`RVc=w7W8ka@0|r(GzLeCo#L}D+tK|Hoq?}X+=ETe*2I1loAXRJyrsAP8 zf+_j=Krs**U!I?z5}(L`A(T`xCpp1^xhKQMO+?VmM9^)Lg4u3~i#`WUCWl0`wZ}f` znDAadL|#C-Np~LS&7&>LCe7?HNO2HWzOE-Gb<6dZLjnK* literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Smithy/Smithy_6.mts b/mods/castrum/schematics/Smithy/Smithy_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..e45321dead5ca7dd57bf86a7469890c28382f0b5 GIT binary patch literal 215 zcmeYb3HD`RVc=w7W8ka@10ahpB{eOvG^fNWIX@{WCzXLYF|&w47$%sLSe6)HoL^d$ zoXQ|vTmqCUwgOY}Q00Ot`T0OG5E);dpPv$+$bcb~R52$x!GXCa!^TZS(9J~9ZIXi7 z?im++4w_63iDqk$ebO-@TYMLPhu}f6^DS?Z+=5R!xkwl-=zQqq4CF3d82g3CS!!AD duRsGP2De)htUMDQG0j}IRIiGG!TRi{cmTmEPXhn| literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Smithy/Smithy_7.mts b/mods/castrum/schematics/Smithy/Smithy_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..e8525bf0a3e40b5551b6114afdda773579b5a9de GIT binary patch literal 225 zcmeYb3HD`RVc=w7W8ka@10YK{B{eOvG^fO>xFkO>H9jdPKRKI$IWe;cA(N9>mKa~0 zUs{x$${W=$a(}*^7DZbATqu@KR+ctkpV*}sbWrYf&+6;hK-wupqq)H z+av|E-7_xu95k6663x~g`=nz+w)igo4#9(B=Ud(+xdoqea*;4v(D~5I8OU9_F!l?N hv(&QQUx5Zp3~sk1Sa~KqVw$;Zsa_QWgZ0@@@c=zPQ)K`E literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Smithy/Smithy_8.mts b/mods/castrum/schematics/Smithy/Smithy_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..0f4dd4a3d243243a02c7ab01ca01de7ad7a8f88a GIT binary patch literal 229 zcmeYb3HD`RVc=w7W8ka@10YK@B{eOvG^fNWCAB!Us3bl)KPf3Em4P`ivxq?$CYO^~ zmKa~0Us{x$${$1_%8kq!GmJwTiztO1)p?skuX}&`OwQ5$X&WH k_6v`*)Uw`Rfd)(rZnq>@c_ut!nz?MLUKIm__1RDH0DfLn-2eap literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Stable/Stable_0.mts b/mods/castrum/schematics/Stable/Stable_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..c67e41ba6fab937ccdf7850cf8ec77c9977be864 GIT binary patch literal 52 zcmeYb3HD`RVc=w7W#Fs_0R~0}=ETgRiaE&%60D08L8H+*yty+n1P#tAt3$4 F8vtFF51s%3 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Stable/Stable_1.mts b/mods/castrum/schematics/Stable/Stable_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..b401c5b930352a18eaa5555c870115ab874134b8 GIT binary patch literal 74 zcmeYb3HD`RVc=w7W#Fs_0R|=po|M$I#L}D+tMdH(6b9zR%%X}p$q5ZiZmXQ5W>{u@ bT5+<)XIWs?I(gP+euJK-gX|2Qey556Fc%p= literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Stable/Stable_2.mts b/mods/castrum/schematics/Stable/Stable_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..e68b8334d010605894f6218000626dcf0b72d699 GIT binary patch literal 80 zcmeYb3HD`RVc=w7W#Fs_0R|=po|M$I#L}D+tMdH(6b9zR%%X}p$q5ZiZWc#G6#0{8 iIqaOdSgn7S&xsVNrO$r_8vI~5tRYduz~Hd{R5Ad)vKxp1 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Stable/Stable_3.mts b/mods/castrum/schematics/Stable/Stable_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..ea1bc882d1ec4399ba8eac3dbdd81a81629b11c5 GIT binary patch literal 80 zcmeYb3HD`RVc=w7W#Fs_0R|=po|M$I#L}D+tMdH(6b9zR%%X}p$q5ZiZWbzTEfO6o i=SfTqob2wq>`aQ((&xVd4Sp~j){v-SVED;@Dg*$y#v5J$ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Stable/Stable_4.mts b/mods/castrum/schematics/Stable/Stable_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..08431e70d4c94d6c32c50db73c59a4d6fc44678a GIT binary patch literal 89 zcmeYb3HD`RVc=w7W#Fs_0R|=po|M$I#L}D+tMdH(6b9zR%%X}p$q5ZiZWbzTEfO6o r=Sc{JU>5$K?uf6OU+A8jR%V{CuSBgh^6G` z7ZqEjCze1&=(Eg82;Lvo(lkc CXi{we literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Stable/Stable_8.mts b/mods/castrum/schematics/Stable/Stable_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..5dd2403734bd6960a87c2d39716f5ccc24e13646 GIT binary patch literal 242 zcmeYb3HD`RVc=w7W#Fs_0S0ykp_J6L#L}D+tE|$z^qkc4{QMLK37A+~YF=_`JdzA^ zVrCJ86im7(vn;hJzC5u6NEYXp7A2=L@Fgb}mlT!eS|#TvCFP_t$fV@w7ZqEj1Jxjz z6Q7)uU!0o4z?+s>l$)8CZUxknSY9zFIiZ2c&7y@-&EklNBAbzcf$;`~kCGc_G@SK0 zRA#tfhIiM=8@Y$qHkGMu=HoQqeDOj`%4SK!H%j)o7c^|I_ctA6muNFckjr4dz{SAu I*XHzG0PcEP4gdfE literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_0.mts b/mods/castrum/schematics/Tower1/Tower1_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..5cbfa05312f9f986f482bc97ae25ce5503a74348 GIT binary patch literal 74 zcmeYb3HD`RVc=j8X5gsD1PqJ}%!!#r6?5KRapYxS;9yyhomXo8}EENja$u%!!#r6?5KRHxyzJ6mUKG z{z-M|#3M$oD^|s;E6-&)8M1iFqa*Wc@19CaJG(D0)i6-fd~xmE&+{xkcwSn3_P)Dk L)l$C24hif4$`CTR literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_10.mts b/mods/castrum/schematics/Tower1/Tower1_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..8e0a06fbbb079385ab25684c6ba88dcc5adbb8f1 GIT binary patch literal 126 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBG2}WBz|;EX zWcAnm)6TT!JIuXvNSdigZf4J>uWxH_y*__bVB6W-)j79cSBswdc5=s+Yi^SFuU+H1 R-_fyDKyc#}=Hu4!`T(P;IwSx9 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_11.mts b/mods/castrum/schematics/Tower1/Tower1_11.mts new file mode 100644 index 0000000000000000000000000000000000000000..aa0dcc0dfa56b454ae2060e8f68ce7f734dd6fdd GIT binary patch literal 126 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KB*(k_h$aCn+ z!-h$`$yLVT&UccSQ^e>?8KSV)CkPulHTXNmizyWNXi QT)Z4zmQ3MJ_!Tb>0L(BmuK)l5 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_12.mts b/mods/castrum/schematics/Tower1/Tower1_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..16413fc2b6f032c02f7196349f39cd03a7743bce GIT binary patch literal 127 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KR+0DzKz;on6 za#7gwC&mn&s`jg1D~YQVJpO!o^RN8siB)%xUaGs@eeLxgjfU9!+5d$d-~5XE&2>!g RwW%tn)+Cm#43hP6cL7J8Hq8J4 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_13.mts b/mods/castrum/schematics/Tower1/Tower1_13.mts new file mode 100644 index 0000000000000000000000000000000000000000..2bb67db45ba4272a4136a3ec917f07fb50817f33 GIT binary patch literal 149 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBxyZ$!z`^`{ z`uEqi=JKmoZkW8nQ9w?}V2;P@{KlaFXZCFgz5m}ko~wRA@%tFt_^W^K|9}EENja$u%!!#r6?5KBddtiu!^Z>jfU@t^H}^=y4^88mOU ze$C$d-~WY42RFr>zdl{DKEHM2^Ya@w|JJ(uTPywRo8xERz21I{fnkyoL&K6cvl`}EENja$u%!!#r6?5KB^5#0Az~gd! z^7mJ<9Y@axR z`u28u&EEa#etY))(o;F{y6&y?qyN!8z4k}XZC;b%y{g(G;MpkP Mr1F$4R3&aL07C#%u>b%7 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_16.mts b/mods/castrum/schematics/Tower1/Tower1_16.mts new file mode 100644 index 0000000000000000000000000000000000000000..3f75c0e2c17aaad09aca7a75a77d669eeb3c300e GIT binary patch literal 181 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBy2#aFz~Q<+ z{@(iU0^PY@nbJ!N`g?XHbIP%FDL>0BO}(@7>A(LGiC#ZHpV~9cpR@FL{lB^U76~Ws z_;~aB@7b2?--_4T?%%Gn=GUwH3mvZgerlfbefq-L=Wpa#70;`E$y@o~jrZocFYlh8 Xv3~Y9gk7;kgtbK=Xo_&vhPZhE+X7ct literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_17.mts b/mods/castrum/schematics/Tower1/Tower1_17.mts new file mode 100644 index 0000000000000000000000000000000000000000..243381751eb5162b50d8683124fdbe1085935001 GIT binary patch literal 189 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBddStFz|(SG z{r%P7f^K<-%|vGv-siA9dGZ{y+433jYrP+bh1#D#&gJy}EENja$u%!!#r4C2X&#U(|hxmHj* zK07ZnJ)^|1V$R!1x!es30?p}vKm4nbKlCE*l5x|y8^tX;LANCgERWW{l95`z>esIN zoCP6uZ-2)g$}63B)bj2B%F4W7eTw%OKFz!F@6N8N;d_$*?#Y?_Z&LW{>bLsyuGj9* zDciaAZMco%|36B8-97s(w_mHg+4kl7#g;#3a=sV8GXG;Yt5?8DjkTpEa{oU@Cl+f( H!MIrf-e78r literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_19.mts b/mods/castrum/schematics/Tower1/Tower1_19.mts new file mode 100644 index 0000000000000000000000000000000000000000..6e4393ed1ec60b798f9e21e4bb395f096397233b GIT binary patch literal 291 zcmeYb3HD`RVc=j8X5gsD1VAa_l+?7u(wq{j;*$Kl)cB;F{N!u~KA2!~eo|6SDg$$3 zW)XvUa$<2wQE9Ffl#b8N%S_KGF|3&LHk6U?umXq8o5SC~>PFsqvW4mFtz9k3TZ3F4 zc5yjeu-lqzntMI@-8cR9+v->CDgBud`rnI_%j2@~iKcIb`(|t37M!noB+jJH+x~ui znEb^a*IL0BrN{m)usgqfTJ5pv`;X=9`{i}(^Y#+${l$N`M*N#IfByQL?^wRhIKA~v zZS7CVM<3t%3RwPaRTAx*@|NNMOzpqF|4P)$@0B-A{~Nh6|M}N-U;ex9YkxA)Lq({b UOGPLzr<{F)hlUMfm}Jsh08y5Rr2qf` literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_2.mts b/mods/castrum/schematics/Tower1/Tower1_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..abdf913a58ffad12287490c474206d6f604ae791 GIT binary patch literal 128 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBH{@ba;5l+` z`tQ>8#Q}3dJT`sVRunv2#AGgy(C4>*<1X*><4sGOyLEkVb7y4c1(D6`KGl7gcjJbu Si`~*Hc~_UXR0jR}`1b%k$u;Q! literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_20.mts b/mods/castrum/schematics/Tower1/Tower1_20.mts new file mode 100644 index 0000000000000000000000000000000000000000..8554d29574a0c0826d2a37967fd0c83f155bff6e GIT binary patch literal 227 zcmeYb3HD`RVc=j8X5gsD1Psg!!YQd~iKRIuR>dXxd8zS9Ir+)i49tm{MGWG}iNz&F zrMXs6IzBruGd-ikuwu^JNx9q&3IfgPe?R=Il0Wn!?vioSxf{hTIzhK33@ne*}}q z^RCzK&nerv^=-I~;{QKNe%(F$EVo~)yxI2U`o)$%XL7z5zcT-0H>+2`NsYCoC362i MMkf|)MZvgP0JEBGyZ`_I literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_21.mts b/mods/castrum/schematics/Tower1/Tower1_21.mts new file mode 100644 index 0000000000000000000000000000000000000000..171f958a7ca5927225a5d6eb979d0ac90814ac61 GIT binary patch literal 298 zcmeYb3HD`RVc=j8X5gsD1VAa#l+?7u(wq{jl+@zXqLTRJ{G_CuR0d&~aB)d~UTS<& zPJVJW19M_#5rcSgVsS}PX|5HNj?d1^OwTAWteEpQl#%bS0*B3;!{5K^M&5a{h3V|A zT`kI6gIpeVaXDPD+nQ^ddp-HxH~sb7>R0V4{h1N^-;0yW{`#Bm zSia6Uz4c9P?N7-^AK&^4SpIEQ678Dumf`n4{ zB}JvVR!}-VJ1;Xmqr|Xc&f7`3+zko>&FOzX{Hu~b^djz(anrdQ#VtBPw8%^_j>ZXZ~E)E)vwx9`ZFW+zZWN$$7SOaP2URl&DOpxIA8Th zoJpOx{r&nd`HMZSwSq57kNsO9MqB-%CQEyMqr+JArlm8h5BD{q?qH*#bC^RMf^{CC~g b{$!$uicme5icnroIr{_;4I9QV$)vXc=LU{{ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_24.mts b/mods/castrum/schematics/Tower1/Tower1_24.mts new file mode 100644 index 0000000000000000000000000000000000000000..3ba64f62cfc5f1cdf847c0120a311f1a664cb8f3 GIT binary patch literal 234 zcmeYb3HD`RVc=j8X5gsD1Psg!QYooviKRIuRw=2)sYNC6#U=T9sqslU`N`P~%!!#r z4C2X&#U(|hxmHj*K07ZnJ)^|1V$R!1x!es30?p}vKm4nbKlCE*l5x|y8^tX;LANCg zERWW{l95`z>esINoCP6uZ-2)g$}63B)bj2B%F4W7eTw%OKFz!F@6N8N;d_$*?#Y?_ zZ&LW{>bLsyuGj9*DciaAZMco%|36B8-97s(w_mHg+4kl7#g;#3a=sV8GXG;Yt5?8D TjkTpEa{oU@Cl+f(!MIrfJZ5jH literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_3.mts b/mods/castrum/schematics/Tower1/Tower1_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..23011963e3c6455a14206953d74797252378d4ea GIT binary patch literal 127 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBH{@eb;5c$_ z`tQ}EENja$u%!!#r6?5KBx8!3`;5mHg z^iQkmZ5*A>8~0w3e&w>%*KOt|uixK(`=8zylv;c%chmZin^Vf>Z}MGocg27HOX~`l T7;3z#^q3g-9Afgxi{B3bf3Y_5 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_5.mts b/mods/castrum/schematics/Tower1/Tower1_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..2f7ae52889179f899780fa67d1f728cefe98b4b7 GIT binary patch literal 131 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBH{@$D5IB73 z^v|mAJRZwM7!Q6cl6$`_?ADpUb!#rwRn6c1G%h%`_}1H^^(!}NzO750z5FlxU)u>~ WOVt?;xbOVI$;7Z{7VBNP_~ig%_c_i0 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_6.mts b/mods/castrum/schematics/Tower1/Tower1_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..afcdc6f9d3c6cac52c0ba0a9735d87d8914777eb GIT binary patch literal 125 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KB-N?(Jz;pP} z(>>?r@oI9IZrXb#d3Q+F8Li;3m;d(0N4+auo#R(N`_AjIn^WG|rOsZqJMjPim+K0c P8F*Y77@RHhW8?b)-7z&R literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_7.mts b/mods/castrum/schematics/Tower1/Tower1_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..8357abdea8833263ea46cb8f326248e9c1858b8b GIT binary patch literal 125 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KB-N?(Jz;pP} z(>>?z@dk7?<>*)Bh%HHT+oARJ-SzMHPQ~qBwdd|!z3RF8%ch+Re`-|zKjH8DyRt8V PcDXVzEYx9^i7y8L^y@Vg literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_8.mts b/mods/castrum/schematics/Tower1/Tower1_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..7f46ed60c1943cddf61702718ce21d4c53f6646b GIT binary patch literal 122 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBS;)&^z;k%d z>F>WP9y%=c*fuednJdw6X3wp6U;e(^x>KSt@ABS%;>wq5jr4B5bCbMZv0HnOlG0KI MrJz&HGkoIX0bTes5C8xG literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower1/Tower1_9.mts b/mods/castrum/schematics/Tower1/Tower1_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..5e783524bd509769fd7e01abcc2184cd788c7117 GIT binary patch literal 126 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBQRHJV|I^^0lV(P%nYdDGo*HT0eQA5=_0uGglHD(Bx4r$ke^S@G>4lZM%uoE-_j28r Qjt(7G!HG*_^tt2R0oI;2Q~&?~ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_0.mts b/mods/castrum/schematics/Tower2/Tower2_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..5cbfa05312f9f986f482bc97ae25ce5503a74348 GIT binary patch literal 74 zcmeYb3HD`RVc=j8X5gsD1PqJ}%!!#r6?5KRapYxS;9yyhomXo8}EENja$u%!!#r6?5KRH{?5@z{7Iz z^y$x~vqFw2#3-HZYw>x_HECu0+MK*UH^cqKj7@*P@-*By?fsUu#&LqW>s4ZJ{i&U@ LBwA`QO9DFp;1Mz= literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_10.mts b/mods/castrum/schematics/Tower2/Tower2_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..8ccfaa87374cbacea514fbef5038b3e7e5c0563f GIT binary patch literal 123 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBFyvw|6lghf z`u*#bmzLOdaA&2O^PGq@+Ii~Q`u{K2|NrN7!z}*4;dlKhxu4g#+%ns_?Pk<7aX~{7 OC8f4aj7J{F>jMCTL^VDD literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_11.mts b/mods/castrum/schematics/Tower2/Tower2_11.mts new file mode 100644 index 0000000000000000000000000000000000000000..f9fe1d28d033b9d01b339aeb081aebcaba0c049a GIT binary patch literal 119 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KB*vQLZz|(x^ z^zW+WdX)zpnbfu&;p_=ETfA+1b>Vle1-G~TfBsI?W&7W7)=Rm@c{lH+uJ7QO($V2i J8J89>4gi2YG9dr} literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_12.mts b/mods/castrum/schematics/Tower2/Tower2_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..8a2820a6ad26ac44ee18937320a61bac8aa73699 GIT binary patch literal 121 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KR*vQMEz;ool z`6p}qx)=Cwc(VAH)(OrS)BQ28|L5vwtykE#cg9|(o0GSmix2pgvbIXk_*=-@s7WlM Mo=vyJmdD)%04kj{ivR!s literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_13.mts b/mods/castrum/schematics/Tower2/Tower2_13.mts new file mode 100644 index 0000000000000000000000000000000000000000..7411a668df1bbe6d95945b695a47bf267a5b1a85 GIT binary patch literal 150 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBa^zxAtqvE;x qGoHlmHi?a1UvTnj*xuzIj?OJRaYy&&8388)R>hWtQ|t{HahCyL?n0sf literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_14.mts b/mods/castrum/schematics/Tower2/Tower2_14.mts new file mode 100644 index 0000000000000000000000000000000000000000..c05057b81b64aa43ff8a5014428bed6cdd4eac47 GIT binary patch literal 169 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBisouC;9imy*Y~Y|egEs`t*Pht?*F{+kDqbM@3)7eS_PU!I22hl KrKe}c9R>i50ZWnq literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_15.mts b/mods/castrum/schematics/Tower2/Tower2_15.mts new file mode 100644 index 0000000000000000000000000000000000000000..1f943f1a12ea178c661157d17b27c3551f85fd9c GIT binary patch literal 172 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KB^5$z$;Bh%V zxw=%GZEDm}rf$DE*9D9?=YLtsV0$`u>Mi5GkWXLpwj>1olX-n(-Uhq>&$MrS_KE*z zlYUxx+mqL8>-EonW}WoMBzE80Yt^;;&h7vF{8m`)yVLJ>_Wjsoe0IX`-?D2$ITSq_ O1)L^qVhlVHw-x{#Fi~Fs literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_16.mts b/mods/castrum/schematics/Tower2/Tower2_16.mts new file mode 100644 index 0000000000000000000000000000000000000000..48ad5388c20a2d8aa6bed62bb44897a3be783dfb GIT binary patch literal 177 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBy2#aFz~Q<+ z{@(iU0^PoAQ(rqimg_83WaVdiD)@P;mC?B?Mfat3S4^=#Zg#CcW4_Rguk7&`r9amE zOq>7p`FZVaFHXO!pTGZetJ2R`yK160S3Wv7>!;K8xwie=zLcK1KSTa?_M5d6@4w$2 TA+6XV!rCGbG)1;tFK!+H^*U2= literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_17.mts b/mods/castrum/schematics/Tower2/Tower2_17.mts new file mode 100644 index 0000000000000000000000000000000000000000..b032b0ca1102d1e7e12cd19806cd825f28eddbb3 GIT binary patch literal 185 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBy3Kb$fy4Rr z^!L}lZ`k2`fV-GKsj9=U*K3KUz`P}4>%1R_Mee^}#qG3qeXa0m=}YIIyx7_tf3GK^ z?&RdK___D5e(i}~T=!Du?W5`Q_OJbaTD<8+)UKTERevYlTpf2_f6}EENja$u%!!#r4C2X&#U(|hxmHj* zK07ZnJ)^|1V$R!X-dqg^JTAfd@2imhFqk^qj?PeYm84%O{$ys zRyQ#7Uykn{({t^1%wM8zhrjQO*!N|6Q2d?yH#cvadVg(U{0{fkKMwso{d4zUA@!SO zQ#Xgc7C#gBb65UD)#cm1lwG-BTX!M6>YBUU{O_r6TLd17C@x`reSZ3c`IZb4S#dJ} DBA#T% literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_19.mts b/mods/castrum/schematics/Tower2/Tower2_19.mts new file mode 100644 index 0000000000000000000000000000000000000000..d1386dd85a354d10e27b1f9695f457009d694f15 GIT binary patch literal 290 zcmeYb3HD`RVc=j8X5gsD1VAail+?7u(wq{jtDJMTUn}Ino zvxq@FIkC8;s5I9KO2=pCWu|A87*@=A8+MVe*?`05PW$iI)e$qkHC(&4qm0vi)gmX-We;OidH?VdHr!s*q!LdRX6Rr9!1x!-uL|RDEj0*L@Ay_1|LZ`Pb2@Q8g>Y%H4n8Th2fGg1IQe*`B9{wsm{%&EBRi)Oln+ UQ|A%U8~^XQBw5|l{FG!308SK)i2wiq literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_2.mts b/mods/castrum/schematics/Tower2/Tower2_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..bcb031eecbe8ca85dace3db378dfc815fac786e8 GIT binary patch literal 130 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBH{@eb;9!1z z`tPpE%)V0$I#1r!Em5B9;3Xk3MfLpp@2}NruTD8T&(JI0G<9-%&%0?QCnUbEZq$DC ViiP3FlsC033@=VG>9fbb2LM;mHM#%* literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_20.mts b/mods/castrum/schematics/Tower2/Tower2_20.mts new file mode 100644 index 0000000000000000000000000000000000000000..e7d6dd0bcf4d74ed8925f162dd7bb9b3ba423ec3 GIT binary patch literal 223 zcmeYb3HD`RVc=j8X5gsD1Psg!!YQd~iKRIuR>dXxd8zS9Ir+)i49tm{MGWG}iNz&F zrMXs6IzBruGd-ikuwu^JY2I8720Sjo`tPpBdR$Grw7$uArnn1RW`>^*Y0f)_<_TR6oBW8SSxOQzv z8K?WIN!k&52`ma4)8o$H+vs)f)BgVZXM%qJ_)+!hvB>Rgr?{ES+@Io(uHRsHt>x<- zpLM&w&fEXgUjDsy*;SjpGgdwot$J4T`s13gJJFA;ZrXJ{imqF|@A>1$|5lxio07k0 z|B=ulTf14V@w(^It(WGn`x>(Azs1z^ucK3=YF3JsyZ^qooPYKOb5Vw~Jx>j7>-OB6 by-i)H^T>Rr&Lg5X{@-&+vbv}FDajfDk2Q~W literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_22.mts b/mods/castrum/schematics/Tower2/Tower2_22.mts new file mode 100644 index 0000000000000000000000000000000000000000..eed51883c1e2c520b8d684181e65df837fd51c9b GIT binary patch literal 225 zcmeYb3HD`RVc=j8X5gsD1Psg!qA96qiKRIuRw=2)sYNC6$@xi1IjIcHiJ3(V;>n4{ zB}JvVR!}-VJ1;Xmqr|Xc&f96;Tnz?1F2VZmuEu&?O}n(d$#3tMJ}T%^XMc?|w* zj89KZs+;##H!$;Gj_)4RbM1D_U!rb@zwe9K_houe{GIzZH*cGIe{Es>4)@hR4*fj+ zbN62%^_yi=H;29!KNI(JSN=oQ<=eiLUAbRdcOks$n!DWm@2PKF1RjYfE@6Fre)@#@ KmJAYEaWepr<7cw~ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_23.mts b/mods/castrum/schematics/Tower2/Tower2_23.mts new file mode 100644 index 0000000000000000000000000000000000000000..240c8e8d8cb4033b454dd2771a8ea87706fef2da GIT binary patch literal 304 zcmeYb3HD`RVc=j8X5gsD1VAa#l+?7u(wq{jl+@zXqLTRJ{G_CuR0b(D;o_3~ywv!l zoc!c$2Ij=fA_no~#Nv{o(p)Pj9iN?-nVwN%STW~q*hRi(0}h)z?Z01FN6h%vaP8WT zGEVnZle8oB5?B;8rpKMXx6$j|r~Uo+&jkJc@uTY1W0Bk0PH{7txj)4nUBAKZTFciv zKI?XUowxs~z5ILava2?GXRLfGTJ@~v^~W_~ccLFx-L&g^6kWG^-}A?h|E)S3Hzj}1 z{v)A9wsx~z<8{xaTQALD_cdhKe~YQ-Uq`1#)vOdNcmI8FIsfbn=AsN|d!8EF*6q1B bdz-pY=aKnLokv7({J-atWOYyTQ<60R-1L%T literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_24.mts b/mods/castrum/schematics/Tower2/Tower2_24.mts new file mode 100644 index 0000000000000000000000000000000000000000..d17194c239677a5053a0c32a043d2dcf595cfc03 GIT binary patch literal 230 zcmeYb3HD`RVc=j8X5gsD1Psg!QYooviKRIuRw=2)sYNC6#U=T9sqslU`N`P~%!!#r z4C2X&#U(|hxmHj*K07ZnJ)^|1V$R!X-dqg^JTAfd@2imhFqk^ zqj?PeYm84%O{$ysRyQ#7Uykn{({t^1%wM8zhrjQO*!N|6Q2d?yH#cvadVg(U{0{fk zKMwso{d4zUA@!SOQ#Xgc7C#gBb65UD)#cm1lwG-BTX!M6>YBUU{O_r6TLd17C@x`r PeSZ3c`IZb4S#dJ}Y#nLj literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_3.mts b/mods/castrum/schematics/Tower2/Tower2_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..3c736d7dfb2db259a28064b82a3fe19d78c151c4 GIT binary patch literal 129 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBR}^AU;5mHi z^iL};W8+l~*+QEw^13|Llw+p8`t_|k|MWha&}Zu|r^e6I3cmjG-P#u$F0b9+vhMI) U28Q{M=Jhi$tlz+}r#k*R0Adk13;+NC literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_4.mts b/mods/castrum/schematics/Tower2/Tower2_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..4fde2fd186948d4b1ef620dd373ff7ae7def0fd6 GIT binary patch literal 130 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBx8!3`;5mHg z^iL~c@9hmo7T$<^#ap`QlA5m1)S}}EENja$u%!!#r6?5KBH{@eb;5c$_ z`tMS8aW>&5x4m0pUvNzJnw|MfD`ac_`{Jl~Q-c%NZQFfEd-}EENja$u%!!#r6?5KBRpet(5IB77 z^iM0UV!ln>iJ93e_DC*CbDN>{^xgIEJ5$#ihu(YVH+gT~_aN`(JJ*K}EENja$u%!!#r6?5KBRpet(5IB77 z^iM0UV!ji-I+@uk_DHH2E5}TI_3r-neW&8mSMAwt9s6z9UGHgr}EENja$u%!!#r6?5KBP~>A!;5l;Y z^iM0UW|ucbp3$M(Wm_UsKV2zV{=aJX*u!n02l}~U;qFB literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower2/Tower2_9.mts b/mods/castrum/schematics/Tower2/Tower2_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..506fae38be6b8eaeb1f3ba5c555e2db682725ecf GIT binary patch literal 122 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBFyv!U5NLjN z`tPpE-MclXGYCgtW;xb0d-<)q{|@i}_gB>6a_)cQ@9Pz2y^EFgxO{f=*1HAUJ5B^B NDH%;+)_EWA4ggr`HH82G literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_0.mts b/mods/castrum/schematics/Tower3/Tower3_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..5cbfa05312f9f986f482bc97ae25ce5503a74348 GIT binary patch literal 74 zcmeYb3HD`RVc=j8X5gsD1PqJ}%!!#r6?5KRapYxS;9yyhomXo8}EENja$u%!!#r6?5KRapYo9;9$LY z|K#o}fwe)-;i6}3IBvIgFNt)XbnWE1q9;Bbnlm0I$D3N+N!Yl4*52FiD`V7^ewlo} OFDzJliQ(9i1a<&DnKQZo literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_10.mts b/mods/castrum/schematics/Tower3/Tower3_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..77383e7ddf9f13e3c0035e2a9defc714af16d57d GIT binary patch literal 134 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBQRF*dAaHoo z^!KkPvvIA}EENja$u%!!#r6?5KRQRHJ#;BmfK zRJ6{oX@&&fWz(PQ(@G5tUq(%Rc~|!8YNK7&S(m@O>$_#MclYCe^`G|Lvo>76dHt5! WRKxe#%nlmgf3h{ivp)-s7Y6_UggG1l literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_12.mts b/mods/castrum/schematics/Tower3/Tower3_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..9124e68f285c6c9a48b6ffafe69f757f2a44590e GIT binary patch literal 137 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBG2~-V;9!1z z`tPpJ=FVM~5wq@W3{cy_n0YBI^-1lw&0Ds4oQzAh+V$&ZwvT(feRc28_vgP}UB|1H cR+IYk)U(a&`4|Mce#bI1>@i|E_ATx%0DccVlmGw# literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_13.mts b/mods/castrum/schematics/Tower3/Tower3_13.mts new file mode 100644 index 0000000000000000000000000000000000000000..df9a011ac2b2532c6763b4ab6be88ee06d571281 GIT binary patch literal 162 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBInCvu$l>z! z^zX0Stc7nkYD$Sd^SI!`ZR@Bc`gW@FZQ~Tr_e$Q|j=iy+vc5k3;^&N}EENja$u%!!#r6?5KBxyW@ufy4Fd z>F=+bc~vIsnx$&(R$r7S@}jciMMLVB6TjY^b_{ZzzNYtO^=s2(*CQgo+DLDnduMO| z=hAntpU<4S@%10~_&VnIwHsG1NIGXa?f(Ar*Ej!Dswr(hD-%0$jsWY9+YAf~G(GE0 O7#MckWXwGtcNhR9Hc?gp literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_15.mts b/mods/castrum/schematics/Tower3/Tower3_15.mts new file mode 100644 index 0000000000000000000000000000000000000000..a2f4bbaa85131522555446079295ad54b23bc695 GIT binary patch literal 172 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBxyW@ufy4Fd z>F=+bc~wNWSt?I?H!;FI>`7(Ei>9SjDSNkV^2ocWnw|V>zyAF>`9_<6-IV$~*X7*r z_pj$&KR?Yp`TX;@&$Msnr`hk84mo3)y!&_8SM$T+5&1nt`EV*_!HU Nj0_2S>H%$WYXR%)PsjiO literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_16.mts b/mods/castrum/schematics/Tower3/Tower3_16.mts new file mode 100644 index 0000000000000000000000000000000000000000..14457230cc5ef8dffa50e1221cdcd9b4d1fadb50 GIT binary patch literal 182 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBZRBcD;Bm>1 zzqg*9b&+4r;R$Qs^`79Cd?&~n}EENja$u%!!#r6?5KB?dCe5z~TD# z^!L}zyiu9_OF3k}pNQyFtel`!jyj+NqppKe9`o&Rj_v)MOJ)t~D<>8JBG zX!EpV*LQ!LUz~RA*w-g4r;H!?@4FTI)%kh%?rFh4XMUZxUh=kOyj{(Wn#ez2Y9h}Z jSMOZ@#nHue`QqPBqT&n;EKl!j}EENja$u%!!#r4C2X&#U(|hxmHj* zK07ZnJ)^|1V$R!XjC>6W91I8hzkl6!$H$R(x}?Rqtw&7N%r`OU8SqLM?%Y=7aI1Cd z4wEoD^_}}a^QJ7bUv{iQRr%+JS>BJd&wV{UMLqd%%^v2Tk{c%Lw_I4^6PABhy!7nu zPiCua^S)oViQn|^(!=C4;W7E&Bi_p{RbO;wd+CJOo%{?ZwBFY0yF4zCIc|7rSMtq5 VyM%W8XW{QOl_fA@KKe0}7vXODHazp^bWb6XrAKIizlg)$ziil(tYH~C*z8?gAx;y;(0 kQrf>+9C`G*z(S_GNv3aV<3*-v&Jwy0{QfZTZclm(02bGelmGw# literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_2.mts b/mods/castrum/schematics/Tower3/Tower3_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..263d80331bcb66a1eacf783da5b01b3f7d94ec52 GIT binary patch literal 131 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBG2~)U;5l+` z`tMRlmlus9>e?!dncFToW?tHMPvUA-X-3Z}wfvq_Y56@x>#b9t{;k@d1!NedXxd8zS9Ir+)i49tm{MGWG}iNz&F zrMXs6IzBruGd-ikuwu^JX^eag3LFdv`@etPcE`t&ceJF1IJN2FWKl7$6vtM?sLRI$hB3;S-jB zSG@G>?oVc`ZS%fgw~62M@6yBMGvP7$-y`13E>&N2W_#&`*q!_gC$!$y>bpEHkU4I6 aYFF~jLc4@^`)ONS_M00_7B=#Vn*{)j6KV1Q literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_21.mts b/mods/castrum/schematics/Tower3/Tower3_21.mts new file mode 100644 index 0000000000000000000000000000000000000000..0f74e324d5007691676a35120d5cfe16ea890128 GIT binary patch literal 313 zcmeYb3HD`RVc=j8X5gsD1VAa#l+?7u(wq{jl+@zXqLTRJ{G_CuR0d&~aB)d~UTS<& zPJVJW19M_#5rcSgVsS}PX|5HNj?d1^OwTAWteEpQw41L*fhT$=|NeOUk8A(@{8d$d_j!1HedMoak9D`dvMnofTO1!g=lHsXG9Ignrm;Ua`CnHX ru=va3KbMn4{ zB}JvVR!}-VJ1;Xmqr|Xc&f95>d<_a534eyw{0t|w-qz~7JT8zq cZg^@}^36iKgm(LBTU+*<8%!29@`{@U06J}It^fc4 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_23.mts b/mods/castrum/schematics/Tower3/Tower3_23.mts new file mode 100644 index 0000000000000000000000000000000000000000..354677ef9deb8291805947924c08fcf567c7f8de GIT binary patch literal 320 zcmeYb3HD`RVc=j8X5gsD1VAaNl+?7u(wq{jl+@zXqLTRHlKi~X_@tctLoktfRw2wdky~4O)Mc4V|OHMs2jLD3!E$>6W91I8hzkl6!$H$R(x}?Rqtw&7N%r`OU z8SqLM?%Y=7aI1Cd4wEoD^_}}a^QJ7bUv{iQRr%+JS>BJd&wV{UMLqd%%^v2Tk{c%L zw_I4^6PABhy!7nuPiCua^S)oViQn|^(!=C4;W7E&Bi_p{RbO;wd+CJOo%{?ZwBFY0 hyF4zCIc|7rSMtq5yM%W8X}EENja$u%!!#r6?5KBG2~)UEC-s2DwB=^{n{o09JZA*Z=?k literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_4.mts b/mods/castrum/schematics/Tower3/Tower3_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..73406a6971abb93d31962d9baa74f293fc651071 GIT binary patch literal 132 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBG2~-V;5c$_ z`tMR}EENja$u%!!#r6?5KBG2~-V;5c$_ z`tMR+an}#anit-g|D!>WuLB#nJCd)6A~^ WjwxeesPX!>pPixN2veV8{Bi(nKQ!q8 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_6.mts b/mods/castrum/schematics/Tower3/Tower3_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..cf3beb32684fd48a09382adad53ffc662a1aa223 GIT binary patch literal 135 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBQRHJ#;9)*} z`ll5q6C>9Pr-*mw)@%};Y?b=r+|4T)l9M;Dd|C87Cu`ST%h_*A_g(*0{_gYZy1bj& a=QHBI8%HxT*s1=x&&}EENja$u%!!#r6?5KBvE*Y=;5mHg z^iL}xW@aB5-L91C%ws7lu4o>9@n)Ud>N#)LEz`Ezz4~R}xp$kc|BQP*zjA*4_q|j1 bemnE5{Jys~Lxbka|8fiu1bKhmh%W~K1F1b^ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_8.mts b/mods/castrum/schematics/Tower3/Tower3_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..1e4912080b1d95603c5a582f00fc3804fa58f9b6 GIT binary patch literal 134 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBG2~)U;9-7z z`tPm>4;D;r;%(d=JNQ88%nP#{&Qis5~eD literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower3/Tower3_9.mts b/mods/castrum/schematics/Tower3/Tower3_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..7ba71d9ba6662d5ba791d1f4849e0341c88c0626 GIT binary patch literal 135 zcmeYb3HD`RVc=j8X5gsD1Pn|Jd?~4EiKRIuR>}EENja$u%!!#r6?5KBG2~)U5IFqm z^xs_%9xP~9NYYk`TsJ!<;MJ6c)yr3ZeAP2|-LlhrFJCR$UB2s`o&EQy{}aF8zS|tP by*l;byNw%}7;3tHSF+m>V0fOX@nVU^=io?!Q07 Lj;jpYOry&ID@`tl literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_10.mts b/mods/castrum/schematics/Tower4/Tower4_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..cff3376c679bd66f7e5d1bed67299fdbf49a2288 GIT binary patch literal 131 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KRG2}Ynz~K`3 z{K?K=P70bj+dp#uziBboC-JKO`vT*W<&g_!s^%_EowjA}w9I9{Z(I$JT9i8LrQNr$ WN9AU?PntIC-~34>uNeZnWBdU(T{_JG literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_11.mts b/mods/castrum/schematics/Tower4/Tower4_11.mts new file mode 100644 index 0000000000000000000000000000000000000000..4f1079c56144f997fe6cadf7a48b42be37050dde GIT binary patch literal 130 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KRQRHJV;BXGC z`V?Dxa+0q?x}EPYgDZ?ptK65@7`^mUntUec^|JJ7QTDc%U;N$sZt1jT=~8?5-`~53 VYnzgi&&B`7N{_CyP0@)-2LNXtHvj+t literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_12.mts b/mods/castrum/schematics/Tower4/Tower4_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..85b717676587c27e07d133ca0f2a23e721f8d2f7 GIT binary patch literal 139 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KRG2}X6z~dbF z`pMp^1p)l`n2t_+Xs>%s??nE y^8M(s4Dt#mX|n98;=O?J+zhZn!{UO%nzFmX3Z`t_mfY*BjdFHYOgQd^Iv*xK=iY9hVy@ie0k>D;LM@eB{YxU NiDP05o2FCDMF2utPBj1k literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_16.mts b/mods/castrum/schematics/Tower4/Tower4_16.mts new file mode 100644 index 0000000000000000000000000000000000000000..bc3efb7a6f5d479676dfdf94f0047e4b7fdb6177 GIT binary patch literal 183 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KB4diMt;BlTj zxw_Obz~tQ74gAq>v>!1UZ9o2^fjMug^5+%#H~yaynHdoOulksIs))7lEAR5Zb8dfT z?z25*QFiTBeZS+i;6H5)!n=D*sa+uN?LK`s;t+MW1My%wIjfI6VKZ XIGcB%h-=WDx^NL!!B)|?;xP{Z<3Lc$ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_17.mts b/mods/castrum/schematics/Tower4/Tower4_17.mts new file mode 100644 index 0000000000000000000000000000000000000000..3e981872b759df3d74ea2cb82308d38f033b4015 GIT binary patch literal 194 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KBeaO|Iz|*o_ z{r%Nuhm*xK+wJER-0!fNaHT&nO|<@1&zr5^0>Zv2Z<7A?=)U$oS+|{=rGFg?u7CdH zcUq5ad*Qnt(|P&!lDl`rs;f=szbAfrj{cWB=QV$yoaeqT?a$h;*Z+OqT)A}rqJK~G l{@1amPi^&o{k(Ry`+x2xZw^Ji*1hjr1eCbVlS^Y>0sx{bUDyBs literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_18.mts b/mods/castrum/schematics/Tower4/Tower4_18.mts new file mode 100644 index 0000000000000000000000000000000000000000..85984704031aa8f4fa506cbe62d87a232cec4194 GIT binary patch literal 233 zcmeYb3HD`RVc=j8X5gsD1Psg!%!!#r416i6X^EvdC05D#Nl7`W4C2X&#U(|hxmHj* zK07ZnJ)^|1V$R!X7r7b?I9%6%efYOZV9Tp>UN;Ym*a*FK+VWOGdx4_+(-W7n_@1Ac zq{Mw=`hUAe(HSDv+&9GE|FV7kp55kK%dw5d*S~-Maq`a5^OYq@KR^856_If8S-0)? z^K)Kz&bwdxb?*|xYw@4IzdyT6zdAp2-<#**`Xpa0{`>SQ`uzRt+V`Su_dfb9UZ0&MymeWc=l-6VbMKp2_^s^!^XlI#|LNtE cR8Bfu?!K>jvg$}(-z28riv16nd-!4#0rS$39smFU literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_2.mts b/mods/castrum/schematics/Tower4/Tower4_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..b474d081f40ce8a663a33553546264691ced65d6 GIT binary patch literal 126 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KRvF2h>;9&{; z{v<9|;7^L9i?ragr6;#&P6}FX_4?Qay~VD{YPa_oPJVl@W5;#Q$V%l$ap_wmStJ?k QzW%CbIziNz&F zrMXs6IzBruGd-ikuwu^JX&1Q~3^-iZe|`A3N?^;Yb6z(Oi`WRgb=vY)L3@Fs`_mJb zviP2#nWV&hWBPx)N6{G~*4#J5-~Y0G{hr z@L9L*_w#dJch0+C`*rUU!)x)MzrR1bOTRilbKjfi;rp9nSie^N+ByH#t?!2phKaaN a6nS46F7h!VU0*?TTl`6xH*@%7J^=vUU3L@z literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_21.mts b/mods/castrum/schematics/Tower4/Tower4_21.mts new file mode 100644 index 0000000000000000000000000000000000000000..aa42c94ded5e65aa0c47480c866dcb44983f40e8 GIT binary patch literal 306 zcmeYb3HD`RVc=j8X5gsD1VAa~#LOZF;gr<0#L}D+tKyRUywv!loc!c$22q$`N@{Ux zQAvDqeo|6SDuZ}(VsS}PX|5HNj?d1^OwTAWteEq58Y5q`0f+0)HxG9II+GRESeDR} z?OWlSEEw?TpjII3k=q#`%GgZ49sYQKX1~?5hP^@|yVq1acwXD8`O~0ku6^9a*;iM^ zvU2}Q{Bp_Pc3bJ5Yx+!AZf$;Q{rP>3<(`_NoV!my+12j(b^TNJ(Y`$zPCoi;H}`6a zanJ6(zxn-n`PZq{E01se_vuyi`TN(k??v10ee_$rK08Zz>#{V@{XH}1-Z!!ETiO5T k)xTH%)5|BRoOHI_eP8ut)secsNld>L`yVp*@Wmzq07-9?3jhEB literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_22.mts b/mods/castrum/schematics/Tower4/Tower4_22.mts new file mode 100644 index 0000000000000000000000000000000000000000..acaee641c0a73854de4c93f6d9d1c3048c193245 GIT binary patch literal 240 zcmeYb3HD`RVc=j8X5gsD1Psg!%!!#r45BHiX^EvdB~~e^#i>Ol@yYo~Nja$u;>n4{ zB}JvVR!}-VJ1;Xmqr|Xc&f94hxf%>OT-Sen__s=6%d2xW56fuj4< z6PL31o}Zbd#C>D>f4fJ~86wu)H^krnvVHxY-R4`%v5m&pzkmL5^3Kuol_g0(Km6Vm zk#O)?x9#`yb6$7OyI=ct?-Ijn@t?oHKf6o6IzMyYo9E&Cn_^hMR{h#J|JAMUhYp5` cxK0##Ul}g)F(O@GL3CUENtriu_+vf+0E!WI&;S4c literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_23.mts b/mods/castrum/schematics/Tower4/Tower4_23.mts new file mode 100644 index 0000000000000000000000000000000000000000..7a4ff89387d75774752371259fcb73154229de20 GIT binary patch literal 313 zcmeYb3HD`RVc=j8X5gsD1VAa~#LOZF(UjD*#L}D+tCZB@)S{C3;@VvHF^QS@8T>H3-v#+j- zW##^r_~nwn?Y7cA*YugL+}ixq`t$o5%RMzkId`9ava8+m>-wkcqkVfcoP6}xZtm3- zDXSx3d4w ktADTjrOl@x>+id8zS9Ir+)i z4C2X&#U(|hxmHj*K07ZnJ)^|1V$R!X7r7b?I9%6%efYOZV9Tp>UN;Ym*a*FK+VWOG zdx4_+(-W7n_@1Acq{Mw=`hUAe(HSDv+&9GE|FV7kp55kK%dw5d*S~-Maq`a5^OYq@ zKR^856_If8S-0)?^K)Kz&bwdxb?*|xYw@4IzdyT6zdAp2-<#**`w?b literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_3.mts b/mods/castrum/schematics/Tower4/Tower4_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..015a3f15cb0a2f17052976c13f326d0003d9365b GIT binary patch literal 126 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KRG2~-V;9zll z|FrJz5f^T$BgbakUYHoo6?NO>`JTCJy literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_5.mts b/mods/castrum/schematics/Tower4/Tower4_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..1c171f639fe4c3343cfe304d6ed19c35538ba735 GIT binary patch literal 127 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KRG2~)U;9+rm z|FkYvV2j6c&W_`LvvM-IqHmilUpIH{^i?bNYUbShwroTCZQ1Wu3j=PJ9p8IyMa7v? Sh96g6{}*P+<9&M~`Z@sQU^m17 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_6.mts b/mods/castrum/schematics/Tower4/Tower4_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..eda727aeefed80e1f7a746cc09d152a859aeedc0 GIT binary patch literal 128 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KRG2~)U;9+rm z|FkYvV2j6cm5$?nvvM-IqHmilUpIHn^pz|2YUJE}>za5z&-~8o7N^wh((g*$jwUZ- SKCnFQ|9pmmYzFfm(eDBDTQ%MQ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tower4/Tower4_7.mts b/mods/castrum/schematics/Tower4/Tower4_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..9672b703c6e99e2e625aadafbf032d3df745a4ed GIT binary patch literal 127 zcmeYb3HD`RVc=j8X5gsD1Pn|J%!!#r416i6X^EvdC05D#Nl7`W6?5KRG2~)U;9+rm z|FkYvV2g*i;>6~;CO0pM^c80M$6H(L2L@LM-&l2f_My1D?{xIkC8;s5IBAq$o8tJ~<<`xP*Z@F|&w)FC{fCu{5W| zDkn9uEVY<{2gU~}teBIWkdPqL+AL&r@gQ58&bENtakqXaiwL!RU7T=)u`STx5d*`Q H1Hae-Gv6t@ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tree/Tree_2.mts b/mods/castrum/schematics/Tree/Tree_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..eeeb443bb8e5e067ade8a5caee36379f4fd0e440 GIT binary patch literal 121 zcmeYb3HD`RVc=q5W#Fm@0U$>xIkC8;s5IBAq$o8tJ~<<`xP*Z@F|&w)FC{fCu{5W| zDkn9uEVY<{2gU~}teBIWkdPqL>MUW@sJL_2%ubnOh2gdP!477g O#R*3k85GNZ@dE%JyDG~7 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tree/Tree_3.mts b/mods/castrum/schematics/Tree/Tree_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..ad4f27df4f44551b894e3b10f865a98cd7a79a5b GIT binary patch literal 186 zcmeYb3HD`RVc=q5W#Fm@0R}b(q2$EklA_XFtCFJB)cE9#)Z!8b=ETe*2ELTkw8YY! z604ll#In?41|Aq6q>w=b#>*Ql0zk+WO(#+y{N zV4f5^<2KzJZ$o@GAtE70H(!(k1HLI#HQ*M8{$ E00+TG1ONa4 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tree/Tree_4.mts b/mods/castrum/schematics/Tree/Tree_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..17b6d79f5cf6065931b941862e93675c929ac783 GIT binary patch literal 187 zcmeYb3HD`RVc=q5W#Fm@0R}b(q2$EklA_XFtCFJB)cE9#)Z!8b=ETe*2ELTkw8YY! z604ll#In?41|Aq6q>w=b#>*Ql0zk+WO(#+y{N zV4f5^<2KzJZpI2qpy7g-<0FEDChyVZp literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Tree/Tree_6.mts b/mods/castrum/schematics/Tree/Tree_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..7782139e3b56da07c29d907385cc9a4013826894 GIT binary patch literal 254 zcmeYb3HD`RVc=q5W#Fm@0R|2Rq2$EklA_XFtCFJB)cE9#)Z!8b=ETe*29cE1w8YY! z603sDywv!-)YO!m)M5rf6j6{K20oZjPHJKqPzeu=50-@+lU16Ro|6hyBLq_e5e2EN znDe&(AYX$5k25>d@0|MBc5`bcO*x+hdrhO`wUiz%@4NcuyWy0h*3NAHvNtE%<$j;D z%JArEpR{Z98y^)vFQ4+R&$3JKRJTyW?}(FUeu+xe>b-x~SDbBm@>Jk^# ey5G@%sIYSX|BIh)$iF^Q&^YtqCdO2WU#|d2semy6 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_0.mts b/mods/castrum/schematics/Walle/Walle_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..6c08dac118b576327b8d3612c243aefef7109150 GIT binary patch literal 75 zcmeYb3HD`R0YY8|(|TmUz{tRym|0XY=j}B|P6h@JmJQi?rN%!51hOz?d7IVOgN#5j8+28KJ^7z5S9_W}T6PbW|S literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_10.mts b/mods/castrum/schematics/Walle/Walle_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..002c35c80d4d2051d989e9b32550b2df3c3c53fd GIT binary patch literal 115 zcmeYb3HD`R0YY8|(|TmUz{J3um|4WYmy(*6SejE}m7JfHl#^O9=j}B`J_ZE==7XP# r_SJFDOAv^eVK_B=wvKXnxjPo{eD^sPhK4jgc_{{ldBNS&BWD2sdbB3B literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_11.mts b/mods/castrum/schematics/Walle/Walle_11.mts new file mode 100644 index 0000000000000000000000000000000000000000..4e2fe52475168f27c193a3e43d95c7d4aac6747f GIT binary patch literal 116 zcmeYb3HD`R0YY8|(|TmUz{J3um|4WYmy(*6SejE}m7JfHl#^O9=j}B^E(Qew=7T?q t_SYq7MsUfUGtu1cyQ$~S&AEM;;9U7!P6mdvGW(1f7;IKEnAAp|2LNvQEm!~m literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_12.mts b/mods/castrum/schematics/Walle/Walle_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..2c6a931669a116d14773f6dd98611da68c6104c6 GIT binary patch literal 114 zcmeYb3HD`R0YY8|(|TmUz{J3um|4WYmy(*6SejE}m7JfHl#^O9=k3{zybKCF%#P_r pVeVZnj{d@h&ksFSU;F9T`8+Eu;C`tX0|SpR1A{~w^X1D?ivec$CFlSE literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_13.mts b/mods/castrum/schematics/Walle/Walle_13.mts new file mode 100644 index 0000000000000000000000000000000000000000..aad3e0259b277a678ba392b9cf199ce4e8909683 GIT binary patch literal 124 zcmeYb3HD`R0YY8|(|TmUz{J3um|4WYmy(*6SejE}m7JfHl#^O9=k0kzE(Qf2mV=+4 z*2N0EVUZSPGS9^g_uKxXNZ~5-^#l`OZa<)}pULZ5hKcC0Pz;Kj>fuT#% IY*W-e04)JCdH?_b literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_14.mts b/mods/castrum/schematics/Walle/Walle_14.mts new file mode 100644 index 0000000000000000000000000000000000000000..aec2d0b113458888b3b4735497301171e48d980a GIT binary patch literal 181 zcmeYb3HD`R0YY8|(|TmUz|6p$m|4WYmy(*6SejE}m7JfHl#|LJo}5@*QdF921*PM& z^D@&jN{lMzyuEJ7)!@LxaBv0x{`K5Va~0+YCePTo!LrAj%ka?#mv4Xf+^hQcb#i;Iih`{it_z5p5O`F;QA-?IG{ynFe>IyMG|KR#2o*8XKW U`Gw&?@!fs)RcUXYw&zg_0_<%itoZ@ItoyoG%2rFH(T zaG}@14;TC2`nvMNMfJD;>a}XVc<#0nwM(s?$H2gFVE)CrX_a5NV|e5l7=G=%{k{Es Kq}U-6I2qw?ixWTf=o6GRg2A6Mt_uQ-c z_jS$=+xdp+x!02Iw^qMdUgp33?~99z-TUQitG)mk>iK>D=ijpZ7QB1;!#XwwhCe=2 Zw$}b-I{Ag+K=Ivu_El+b#XX|#0072RQ~&?~ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_17.mts b/mods/castrum/schematics/Walle/Walle_17.mts new file mode 100644 index 0000000000000000000000000000000000000000..53cfcb7e25cd8eea5d4cbcec2071346503d07ec5 GIT binary patch literal 242 zcmeYb3HD`R0YY8|(|Tk86k<-yEMgE&Nli;E%_*@eF3HbJjZezSPtIl#g$bsl7N-`K z#3$z`CFP_th$kl&mlT!eT0!af?7YnMj1r@YId88!ay2`Muw3kvvk4cU;-Hkta{Ro? zr&FyN`de1C-neyYajm`o!+#(5$^QQP>-F`?b}#Gy|NZxGPUVb#yUgp$54q3Za)0M} z3;Ehh>-<~cLa&1#F806mb>)YP>TmzmYt?-5+-)anms&fIfq~(`{EKzdD!*{Y@W?YT R{Mvc@d;9rFu|u5E=K)B$a0LJW literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_18.mts b/mods/castrum/schematics/Walle/Walle_18.mts new file mode 100644 index 0000000000000000000000000000000000000000..2a6709b11f1ce4070c3ad4d47a8913c72c184275 GIT binary patch literal 188 zcmeYb3HD`R0YY8|(|TmUz|6p$m|4Uinv$B9SejE}m6BSVT2vCBoS&4Glgc2ToLF2^ zRGMoArQ@^nGSf3kj4I~5y>7_W;K0Lha0UPV_1sN!73K&g&)B%Zvd5dt@X-dBZ-4jP ztNQnK&JNr8hUvN2lI^!vzgb@9zy0rvi;La+Y|nqV50yN|IE( literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_19.mts b/mods/castrum/schematics/Walle/Walle_19.mts new file mode 100644 index 0000000000000000000000000000000000000000..977e310ee7708db6ebe3ea21f5c1e6315d83d529 GIT binary patch literal 249 zcmeYb3HD`R0YY8|(|Tk86k<-yEMgE%Nli;E%_*@;Ni9w-Dv3|dPfE&3WspJ>E-uN> zON~#;$xqH^5Km4lE-5O_wSv;|*?F1i86`#)bKYKe?y#X%{P<@kA( zPp4Wl^tY^Ny>aW*;#zzEhyOnAll}eo*X!$(?OxXZ|NHOXoXQ#fcA3|gA9A0+<^Im| z7V@>1*7>)>g&g!o)!+WB*Q)vAx!X?EF12`4{V^Res@);gM%x S__g!)_xAIVVuv`R&jSGMLvr!} literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_2.mts b/mods/castrum/schematics/Walle/Walle_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..e7053ef067b9a48deaee53ccc09c0f879707326f GIT binary patch literal 114 zcmeYb3HD`R0YY8|(|TmUz{J3um|4WYmy(*6SejE}m7JfHl#^O9=k2wHybKB=&IgSw rS5JN*vEWg=b@0!e$=OfuipgSvx$mu{85r6!Ym*rmGAud1gnt46YkDQY literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_20.mts b/mods/castrum/schematics/Walle/Walle_20.mts new file mode 100644 index 0000000000000000000000000000000000000000..b52ce2721aff3b600921fd5f8d85a7a8f3764ac5 GIT binary patch literal 193 zcmeYb3HD`R0YY8|(|TmUz|6p$m|4Uim6Dp4SejE}m6BSVT2vBWT#}!c8lRMtpPbDg zo}5@*QdF921*PM&^D@&jN{lMzyuEJ7)!@LxaBv0x{`K5Va~0+YCePTo!LrAj%ka?# zmv4Xf+^hQcb#i;Iih`{it_z5p5O`F;QA-?IG{ynFe> gIyMG|KR#2o*8XKW`Gw&?@!fs)RcUX literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_6.mts b/mods/castrum/schematics/Walle/Walle_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..4a36592466aee106b235b26bc6c60c542ded0b21 GIT binary patch literal 115 zcmeYb3HD`R0YY8|(|TmUz{J3um|4WYmy(*6SejE}m7JfHl#^O9=k2wPybKCF%#OyE stKE~BFDXpfeeCIWzrLxv-(I?i2_&!IWMKF(^WAq=hK6vi>va*w00N{nJpcdz literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_7.mts b/mods/castrum/schematics/Walle/Walle_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..8757d8adb8303d09a4d802c7bd95261136cd8c42 GIT binary patch literal 115 zcmeYb3HD`R0YY8|(|TmUz{J3um|4WYmy(*6SejE}m7JfHl#^O9=k2wPybKCF%#OyE stKE~BFDXpfeeCIWzrLyW?p?Zw2_&!IWMKF(^WIiAhK6#kc9w|W007@KivR!s literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walle/Walle_8.mts b/mods/castrum/schematics/Walle/Walle_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..021da6b0de7d76e972dbc95ff94366a1206db08d GIT binary patch literal 116 zcmeYb3HD`R0YY8|(|TmUz{J3um|4WYmy(*6SejE}m7JfHl#^O9=k2wPybKCF%#OyE rtKE~B1X#OvWXIIKPLbSsJJt#dxL>Nqz+h7RVNqz+h7RV<{uU14-70oRO&jWI`ot literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_0.mts b/mods/castrum/schematics/Walln/Walln_0.mts new file mode 100644 index 0000000000000000000000000000000000000000..7cfdb94183a6463bef4cd3e7e5451430b6fdb9fc GIT binary patch literal 75 zcmeYb3HD`RVK8OjWnigC1`Lc0%!!#r6?5KRbL3=T;9%L1omXo7LqKqwh&KZW+z4S{ T_;BXyLPmy!RgBX&gm(Y{UOyOn literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_1.mts b/mods/castrum/schematics/Walln/Walln_1.mts new file mode 100644 index 0000000000000000000000000000000000000000..cfea645b6bed4d076c092e37d462d6e43cfbe2f9 GIT binary patch literal 96 zcmeYb3HD`RVK8OjWnigC1`JFL%!!#r416i6X^EvdC05D#Nl7`W6?5KRJIKjkz` qy>m5p-i7|4S$BlQ85tNDE}V;CnD5EJP;us)Gc&`1wM_EO;d=qoz#z&1 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_10.mts b/mods/castrum/schematics/Walln/Walln_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..e85f57efd4fec07a08464ef7127af151605a519c GIT binary patch literal 97 zcmeYb3HD`RVK8OjWnigC1`JFL%!!#r416i6X^EvdC05D#Nl7`W6?5KRJIKjkz` ry>m4;Ux0x8(g}Bj#2FbF7%udw#3m^+GCVL|FE7Qwu#AiIP2?;9wssyy literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_11.mts b/mods/castrum/schematics/Walln/Walln_11.mts new file mode 100644 index 0000000000000000000000000000000000000000..2188c293b5296d3cd1529989cb2a52f645f5bf56 GIT binary patch literal 96 zcmeYb3HD`RVK8OjWnigC1`JFL%!!#r416i6X^EvdC05D#Nl7`W6?5KRJIKqRz`wR|Ar1fl literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_12.mts b/mods/castrum/schematics/Walln/Walln_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..dda97cf4837950ac1b20ae63594a0f7a7a776d60 GIT binary patch literal 107 zcmeYb3HD`RVK8OjWnigC1`JFL%!!#r416i6X^EvdC05D#Nl7`W6?5KRJIKqRz{9-J z$a3{&78lkxvlq-?5z3(36Tz^5;|7N1dv&wpNdkD>cn7n28Nn5&z>J?Ty`h4GKK07n0}S@c7B%gH?Q)yG$nR zE>U1g;L?4|@TZrT`@^(5ytluH_y1k>`FE6#=haEoTVt+%3OO69>wh(7Vz4#?L(Q49 V^Vt~^oN8C7KT9x^KC>rg0|446O}_vD literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_16.mts b/mods/castrum/schematics/Walln/Walln_16.mts new file mode 100644 index 0000000000000000000000000000000000000000..88828e2f940625018d073b513bcbd49826b6e576 GIT binary patch literal 160 zcmeYb3HD`RVK8OjWnigC1`Ny$%!!#r48kd?X^EvdC04~H`FW}FNjdq+*$m>ziNz&F zrMXs6IzBruGd-iksAA6B8-`p56nI!Kyf|82I-SqeDpNY>*FE(eEJszHl^DD-G8unJ z3yVF_-6_0n{`zyzSN;C|>7R;Hkm|%>b_Rx;GtZteGH9%bf7NNXB8{Q&cGNWh8R$QP literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_17.mts b/mods/castrum/schematics/Walln/Walln_17.mts new file mode 100644 index 0000000000000000000000000000000000000000..c79f8f5fd4022ac0cfb1560169634e3464de49ff GIT binary patch literal 195 zcmeYb3HD`RVK8OjWnigC20%gP#LOZF;gr<0#L}D+tKyRUywv!loc!c$2Jz&?;*z4$ zTq`IYpPiSPo>5}NAPQ5Rl3JWvR1%+@pOlo7S~2JCjoo|=3OuYAn&jWD-)$lA_{rjf zReYJdOeX9uQD92o(tXSDrG-e cur>oj&6%_F*%=a?YFDT~OE8l@vnOT)0OOl@yYo~Nja$u;>n4{ zB}JvVR!}-VJ1;Xmqr|9U&f6P?Tn7|*STDRdT3tGw&($hZI_TFu^&KonRh^X>yfQKw ze@F|9J<#1LylwvabI(`({{88nic*m3#9(#?hMF_ao-s0LtcZWrX}2Pcq40LpH2{kL BKt2Ef literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_19.mts b/mods/castrum/schematics/Walln/Walln_19.mts new file mode 100644 index 0000000000000000000000000000000000000000..8f3758c53a892ed2dc0052afebf6d53a68f16e73 GIT binary patch literal 202 zcmeYb3HD`RVK8OjWnigC20%gP#LOZF(UjD*#L}D+tCZB@)S{C3@`jmzkbXV#FYYroOl&KQA>tDJMTUyJF7U8@u@$6nI!KG|9hPzuQ9K@sq^| ztN1c^nM~MSqQI2ErTdoQPcJX`hiP|sZ+{Q(|GVn*?3rp0Q@#nnE(I) literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_2.mts b/mods/castrum/schematics/Walln/Walln_2.mts new file mode 100644 index 0000000000000000000000000000000000000000..105596c892137b9127ecfb4c016a5d81256e9e89 GIT binary patch literal 96 zcmeYb3HD`RVK8OjWnigC1`JFL%!!#r416i6X^EvdC05D#Nl7`W6?5KRJIKqRz`U?^D4Fflaz69Dj4A&LM1 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_20.mts b/mods/castrum/schematics/Walln/Walln_20.mts new file mode 100644 index 0000000000000000000000000000000000000000..00a3f9075d71c01f1dcaa2a63dd9606afddbaf7d GIT binary patch literal 167 zcmeYb3HD`RVK8OjWnigC1`Ny$%!!#r3{oknX^EvdB~~e^#i>Ol@x>+id8zS9Ir+)i z4C2X&#U(|hxmHj*K07ZnJ)^{^V$RzehFk{}cvvsII9gpgozK-OQ#$C^J@p+dM^&Ab z7`!qv8GlF%i#^cYDZFj|`g6}${r>&wpNdkD>cn7n28Nn5&z> ry>m4;Ux0x8(g}Bj#2FbF7%udQF~+DcFw{Kz>dee=AcXO)X@oiexwjse literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_4.mts b/mods/castrum/schematics/Walln/Walln_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..fd33ac6948055be9dc8709d2a59d19b2b59797ee GIT binary patch literal 95 zcmeYb3HD`RVK8OjWnigC1`JFL%!!#r416i6X^EvdC05D#Nl7`W6?5KRJIKl4z` qy>m79zh5FPK^}RX-3&mG;l7LMnhFC$&9kr0%nS!Y7?brPCISHZ{~*Nx literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_6.mts b/mods/castrum/schematics/Walln/Walln_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..3ec5e19a6b5fade82b74307bbf6d0a996327f4c8 GIT binary patch literal 96 zcmeYb3HD`RVK8OjWnigC1`JFL%!!#r416i6X^EvdC05D#Nl7`W6?5KRbL3?(;5o8E q`cvTg5Vq>jxo;+TFflMNT<9|qsd>-DaKPv?KQ9BrdahcFh+_chCLqHA literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_7.mts b/mods/castrum/schematics/Walln/Walln_7.mts new file mode 100644 index 0000000000000000000000000000000000000000..7721909921d7ba5819ae5619e67fbc8cfd7b6b69 GIT binary patch literal 96 zcmeYb3HD`RVK8OjWnigC1`JFL%!!#r416i6X^EvdC05D#Nl7`W6?5KRbL3?(;5o8E q`cvTg5Vq>jxo;+TFflMNT py>m79zh5FPK^}RX-3&mG;eIKqz>|UD$C=mdYzz%6nexjb4FCq^A)NpK literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walln/Walln_9.mts b/mods/castrum/schematics/Walln/Walln_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..9bf0478b89612fcd4b5cf378c802dd5981fe8892 GIT binary patch literal 96 zcmeYb3HD`RVK8OjWnigC1`JFL%!!#r416i6X^EvdC05D#Nl7`W6?5KRJIKl4z`}EENja$u%!!#r6?5L+TFA$sz~SKd zr>OpJ!j(fji*{Gf>~&F6TBtkM*LzahZ|>@9ZO>nd;$f3iJXK#YFnpMC#hihGLBxQe Ilp{$70LEk}EC2ui literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_10.mts b/mods/castrum/schematics/Walls/Walls_10.mts new file mode 100644 index 0000000000000000000000000000000000000000..c4975201b60fe32b01dd83b240639012e17440d6 GIT binary patch literal 141 zcmeYb3HD`RVK8OjWnigC1`JFLd?~4EiKRIuR>}EENja$u%!!#r6?5L+bmVF<5MVj@ zqiFxTyJuCkoee_HGE1qvIcg{tld9?E^?drhwQK5@*9m&({QEX#%9N_5H(PzDzH0TI m^5*opnx|e~yS?<*%$ylnZO*{(=gg;iR|bX~Zy4hm5~2Vk+dRqu literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_11.mts b/mods/castrum/schematics/Walls/Walls_11.mts new file mode 100644 index 0000000000000000000000000000000000000000..0797a095a75651036f447d92205ef36b2f4faf1b GIT binary patch literal 148 zcmeYb3HD`RVK8OjWnigC1`JFLd?~4EiKRIuR>}EENja$u%!!#r6?5L+G~{bA;9)uV zp=h69=aeN3-fT%}>)dX;X vkB6R3{lz^yaMg}k>tj4$uARi4ot7qckB@<&d*`=qeg=kpj~O1nNss^lR*XVg literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_12.mts b/mods/castrum/schematics/Walls/Walls_12.mts new file mode 100644 index 0000000000000000000000000000000000000000..4b34ae8cf7480b5d9f65660d75ac2e75de90da79 GIT binary patch literal 164 zcmeYb3HD`RVK8OjWnigC1`JFLd?~4EiKRIuR>}EENja$u%!!#r6?5KRJI&RgAm9-A z`%~TC)CFu&y))++?{?6$mGD}5ILt>xb?H~{O6_Ya&fT09`E%O-`MyKX^;Nmor%ag=dy+n^86k{}EENja$u%!!#r6?5KRyU5j|Am9-A z_fy^8<4(L&qzo<7U!)$?(>uLEllR0`m%yM~`$M)RoqZLvcI(qj|My$!tN%WqI%Uec z{M_6dD}weWKK6RrCTlOR|LEKM{d@PFpE6}im6zF@%Regwx0@fEF*W@#Z#4tMf%86p Q;`taD=36k{c8J#m0ANr}00000 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_14.mts b/mods/castrum/schematics/Walls/Walls_14.mts new file mode 100644 index 0000000000000000000000000000000000000000..a7aba98dd85d15f7464ccc0e17917a916f8a5502 GIT binary patch literal 230 zcmeYb3HD`RVK8OjWnigC20%f+l+?7u(wq{jI{y6#u&?dEQO xKl^jIU+1NGRkJsDYi*BiPnT$WS*dnsgEj*LgTaip|EC!l7#jR@*2Kh{0|33dUz-2` literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_15.mts b/mods/castrum/schematics/Walls/Walls_15.mts new file mode 100644 index 0000000000000000000000000000000000000000..be4e2e205b13969c49127cf38aeca87ecc69849e GIT binary patch literal 304 zcmeYb3HD`RVK8OjWnigC1`MnWd?~4EiKRIuR>}EENja$u!Z3buNq$~xd{Rz+ayA2V zVrCJ8cyeNKNl|I86_k$8&dW^CC^5t(VN@~a?X-tnEeZlH-(TI^9p0~DQSx_V^4i#s zwap#}t@s`-npvx3rMA4{tzXGEzo@?}d`{Ix&0Kf>u%+$uIa%xH*w}@~@15tp{`Jl9 z_cpxJfiuruogcZXe|7DAqdB*}b1t7@vAo!C-{G{m!8ENuc2P6BJALKXwzDTgzFBU4pE>i7blBaO97dOvTQ1nYZj~)#WB`H+3FiAx PK@5iJ8<_T#rtbg%hX#r& literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_16.mts b/mods/castrum/schematics/Walls/Walls_16.mts new file mode 100644 index 0000000000000000000000000000000000000000..bc5244bd12c34b889d3174d82cc56ee59e58fdf3 GIT binary patch literal 235 zcmeYb3HD`RVK8OjWnigC20%gKl+?7u(wq{j;*$Kl)cB;F{N!u~=ETe*2Jz&?;*z4$ zTq`IYpPiSPo>5|mOTwsP&f9B^TrCO$t`{%b?TPPK;5f##ylPp|c>(UGSg~n|XPJTw zwWesCjsK*(Hf-+ZtJ|-+R-le?R+kxL@a`cvZ7EcWZ5rZcmqJds(S=XM;8a1B1bgw*RLY85kP;bJoPfn*#u& Cbz#f^ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_17.mts b/mods/castrum/schematics/Walls/Walls_17.mts new file mode 100644 index 0000000000000000000000000000000000000000..877463a8067a51d855c612e7d3e08af16d369b5e GIT binary patch literal 311 zcmeYb3HD`RVK8OjWnigC1`MnW!YQd~iKRIuR>dXxd8zS9Ir+)i45Bc>l+@zXqLTRJ z{G_CuR0ih6%pwNy@`jmzkbXVu(w^sAA6BX%D$t6a-qnzq+?OykEnj z`L%@jY5JvsTASZF$98zmji$QGZwXoT`hOx$gX7OWWsjvewVBu?vsi zJI{Ol>zm>4ZFr>vXP&(}KXO(7>e~56b8da-Tt35Md9mNV!)bGacYeB;yvgYAo>Tfu z?dG3-TfO62@%nS?z90MTqGoh=`pU0uXHSNFv)uYVbLJoEu)8lgj4mm+T(E!LDqF_L W00b2h%=e#y7!1=lFzqQ#-vI#b(Tx`X literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_18.mts b/mods/castrum/schematics/Walls/Walls_18.mts new file mode 100644 index 0000000000000000000000000000000000000000..b281d53dca78cb726280e621b2e53a2ece324a23 GIT binary patch literal 237 zcmeYb3HD`RVK8OjWnigC20%g4l+?7u(wq{jl+@zXqLTRJ{G_CuR0ih6%pwNy@`jmzkbXVu(w^sAA6BYmHnj3IeVdFWT*i?^obB#}EENja$u%!!#r6?5L++Q`eGz`@`+ z_s&&W2I<8r6YkXdzE~mg_z+KON$@4j9=S>@`9)~PCI{y6#u&?dEQOKl^jIU+1NGRkJsDYi*BiPnT$WS*dnsgEj*LgTaip|EC!l7#jR@ J*2Kh{0{}r?WVrwU literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_3.mts b/mods/castrum/schematics/Walls/Walls_3.mts new file mode 100644 index 0000000000000000000000000000000000000000..768890552470e804bdffa8d8f7df0de53fbba856 GIT binary patch literal 117 zcmeYb3HD`RVK8OjWnigC1`JFLd?~4EiKRIuR>}EENja$u%!!#r6?5L++{w$Jz{BFW zV$L=?vFs<4RNj7n{4O%WbJCI)Qw9c)XAjof OFfiC$WV~mPxCa0wtTAc; literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_4.mts b/mods/castrum/schematics/Walls/Walls_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..1658286fe3fc1b3c19d1c287d2864d5c59a84d4c GIT binary patch literal 118 zcmeYb3HD`RVK8OjWnigC1`JFLd?~4EiKRIuR>}EENja$u%!!#r6?5L+bmU?X5NHeZ zd-saZ!Bf$A@AtJ|-={5}!dv=6%=`8ANk*po1*g?TPZHVKb6w-{Bo)t~Us4PVEX6P8 O%P=s^dugyZu?GOwJ1#Q- literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_5.mts b/mods/castrum/schematics/Walls/Walls_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..bce2655b7233414e0cd9c2c94cbc6b71966b3cd3 GIT binary patch literal 119 zcmeYb3HD`RVK8OjWnigC1`JFLd?~4EiKRIuR>}EENja$u%!!#r6?5L+wB}}EENja$u%!!#r6?5L+G~{Ct5O6(M zS`;46-OIsg{W}EENja$u%!!#r6?5L+G~{Ct5O6(M zS`=Q+Amtb_vvTX7Hm@TsmrA=-y{)JJx_l|SH-D$9x4o|C_Fo@uBR8pdP7(@ZWKfvd QdOwzdVaFoI`Em(=051wIjQ{`u literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_8.mts b/mods/castrum/schematics/Walls/Walls_8.mts new file mode 100644 index 0000000000000000000000000000000000000000..9457d12d79b751be641346f86f5e1e2102233cb2 GIT binary patch literal 122 zcmeYb3HD`RVK8OjWnigC1`JFLd?~4EiKRIuR>}EENja$u%!!#r6?5L++{w$Jz{BFW zV$LthsO6GpYOYRK2Gy`CPZB$a`9xuIHpB%~A{u SDw}`a=VD+uU*ag3a0UQZtuEF8 literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Walls/Walls_9.mts b/mods/castrum/schematics/Walls/Walls_9.mts new file mode 100644 index 0000000000000000000000000000000000000000..5afeae912fac48bbb2eaa6d5e521ba04a29cf2a0 GIT binary patch literal 131 zcmeYb3HD`RVK8OjWnigC1`JFLd?~4EiKRIuR>}EENja$u%!!#r6?5L+G~{Ct5O8($ zd-tl!#M>n-Elzj8U~dr9t1G(GbpGx)$(uVT^xw7e^OID)tG!o?e>*m*=*x56?I|y> cP7)8BwB)T61A~h2pZzQh4bQDK?8H z|J|h!5y7R!VXS#cHD{7kah?D6ckAn4U6i-2`tsu9V)uSI6voXrnG6gcW->4wNVnSX HEnW-&{vtCy literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Wallw/Wallw_14.mts b/mods/castrum/schematics/Wallw/Wallw_14.mts new file mode 100644 index 0000000000000000000000000000000000000000..53b7779e4ce50dd88f12104ae636b44c04856bd9 GIT binary patch literal 180 zcmeYb3HD`R0YY8|(|TmUz|6pxlA4xSnp0wxoS&4GlghxHm|4Uio}5@*QdF921*PM& z^D@&jN{lMzyuEJ7)!@M6dhkehb*bZq8(tSeHzgiB+=cUFc<>V)4 zGl(ZA7MB#2=2}7N`0TvQ^o$atiaBqu2XZ?Yh%{WZuG_JH-IXraBPQ1@3sITzn`xD zK3@E3d9l*AG}~`0?A_sIRX-&*}9c=z(BcGe6GI%=y< Y{dS+Wh@Iiy>u-NAe!jstu{2%@03QKWNdN!< literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Wallw/Wallw_17.mts b/mods/castrum/schematics/Wallw/Wallw_17.mts new file mode 100644 index 0000000000000000000000000000000000000000..e7b8ddfcc4a0fc4034aec2b34853bb9a9e436ed5 GIT binary patch literal 215 zcmeYb3HD`R0YY8|(|Tk86cSEJO-n4zDX}Up$qLA7R-bYFE{u9 mmj?=@Z@$dJz+f*NKlPmaPtnf|2a5OB)}JZ9&12Y;$OHhg#$J~I literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Wallw/Wallw_18.mts b/mods/castrum/schematics/Wallw/Wallw_18.mts new file mode 100644 index 0000000000000000000000000000000000000000..268aae0a9725cfdae4519ecb89c6c0b0320423f7 GIT binary patch literal 187 zcmeYb3HD`R0YY8|(|TmUz|0_;lA4xSnp0wxl3JWvR1%+@pOlo7%D|kMS;QcooLF2^ zRGMoArQ@^nGSf3kj4I~5y>7_W;K1X0@JM%cspEzlUKc_)B_2EE79+P`Kw0U0_P@WM zuKqq={Aqcy(zZ0)Z!7O6&%b4R_uIwA?)`GMRbO5J8Rz%N{kPv*{U&(#@~3vz3=BGI at4{rPpSFmd;oj?Se=mN%!8oxrUI_rBqE-a} literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Wallw/Wallw_19.mts b/mods/castrum/schematics/Wallw/Wallw_19.mts new file mode 100644 index 0000000000000000000000000000000000000000..723f1a51a1bf68191c8460a4ee532df332986fb5 GIT binary patch literal 222 zcmeYb3HD`R0YY8|(|Tk86cSBIO-n4zDX~gPElw>eiBHZ?O3F!PU{1^|Vvs_UD=x{; zON~#;$xqH^5Km4lE-5O_wSv;|*?F1i86`#)bKYJLFi_FtXi-`So_P6Wz-TPWKeb)QfEdW0nFHHad literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Wallw/Wallw_4.mts b/mods/castrum/schematics/Wallw/Wallw_4.mts new file mode 100644 index 0000000000000000000000000000000000000000..82efa109cc7811226e539b9b6b88cd57182055bc GIT binary patch literal 112 zcmeYb3HD`R0YY8|(|TmUz{J3plA4xSnp0wxoS&4GlghxHm|0XY=k3{rybK0B%#P`w p*2!t^S)=l5ZsSAsl{eqU`?_O-=ad004K0C{h3b literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Wallw/Wallw_5.mts b/mods/castrum/schematics/Wallw/Wallw_5.mts new file mode 100644 index 0000000000000000000000000000000000000000..17cad2440bdea99d2e6bc6c9f7f26baf5234e34c GIT binary patch literal 113 zcmeYb3HD`R0YY8|(|TmUz{J3plA4xSnp0wxoS&4GlghxHm|0XY=k3{rybK0B%#P`w o*2!sdi-@@HH8%L8V!He9>k=%$?yU?1LxdUw!v-Jblkthp0DMO%P5=M^ literal 0 HcmV?d00001 diff --git a/mods/castrum/schematics/Wallw/Wallw_6.mts b/mods/castrum/schematics/Wallw/Wallw_6.mts new file mode 100644 index 0000000000000000000000000000000000000000..f9655511da2a41a4f1d46a904a908c38eaa896a7 GIT binary patch literal 112 zcmeYb3HD`R0YY8|(|TmUz{J3plA4xSnp0wxoS&4GlghxHm|0XY=k3{zoD2p$%#M|x p*5rL)QJi~nF4xrgOVYOgx01yKbN#K^85pK_g031AwrFTVS^7d=iY>T0B(CH#{d8T literal 0 HcmV?d00001 diff --git a/mods/castrum/update.lua b/mods/castrum/update.lua index ac4ff84..bcd7755 100644 --- a/mods/castrum/update.lua +++ b/mods/castrum/update.lua @@ -1,367 +1,88 @@ -minetest.register_chatcommand("update", { - params = "", - description = "Run this command after update", - func = function(name, param) - local player = minetest.get_player_by_name(name) - file = io.open(minetest.get_worldpath().."/SAVE/Home1.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Home1(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Home2.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Home2(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Barracks.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Barracks(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Battleground.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Battleground(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Camp1.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Camp1(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Fountain.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Fountain(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Lake.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Lake(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Mine.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Mine(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Moate.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Moat_east(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Moatw.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Moat_west(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Moats.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Moat_south(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Moatn.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Moat_north(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Pier.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Pier(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Quarry.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Quarry(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Ship1.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Ship1(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Smithy.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Smithy(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Tower1.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Tower1(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Tower2.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Tower2(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Tower3.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Tower3(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Tower4.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Tower4(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Tree.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Tree(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Walle.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Wall_east(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Wallw.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Wall_west(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Walls.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Wall_south(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Walln.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Wall_north(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Fountain.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Fountain(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Walln.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Walln(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Walls.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Walls(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Wallw.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Wallw(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Walle.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Walle(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Sandmine.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Sandmine(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Camp1.txt", "r") - local level = file:read("*l") - file:close() - if tonumber(level) > 0 then - Update_knight(player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Camp2.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Camp2(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Camp3.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Camp3(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Cactusfarm.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Cactusfarm(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Smithy.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Smithy(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Lake2.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Lake2(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Bridge.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Bridge(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Stable.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Stable(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Quarry.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Mountain_Quarry(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Fountain.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Mountain_Fountain(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Home1.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Home1(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Home2.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Home2(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Home3.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Home3(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Barracks.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Barracks(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Pier.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Pier(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Sail1.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Sail1(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Sail2.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Sail2(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Ship2.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Ship2(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Mountain_Smithy.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Mountain_Smithy(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Farm.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Farm(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Stable.txt", "r") - local level = file:read("*l") - file:close() - if tonumber(level) > 0 then - Update_horse(player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Barracks.txt", "r") - local level = file:read("*l") - file:close() - if tonumber(level) > 0 then - Update_pirate(player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Camp3.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Camp3(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Cannon1.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Cannon1(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Cannon2.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Cannon2(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Cannon3.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Cannon3(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Pier2.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Pier2(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Island_Battleground.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Island_Battleground(i,player) - end - file = io.open(minetest.get_worldpath().."/SAVE/Meadow.txt", "r") - local level = file:read("*l") - file:close() - for i=1,tonumber(level) do - Meadow(i,player) - end - end, -}) \ No newline at end of file +function update(player) + minetest.place_schematic({ x = -184, y = 5, z = -91 }, minetest.get_modpath("castrum").."/schematics/Sector/sector1.mts","0") + minetest.place_schematic({ x = -134, y = 3, z = -91 }, minetest.get_modpath("castrum").."/schematics/Sector/sector2.mts","0") + minetest.place_schematic({ x = 54, y = 5, z = -91 }, minetest.get_modpath("castrum").."/schematics/Sector/sector3.mts","0") + minetest.place_schematic({ x = 242, y = 5, z = -91 }, minetest.get_modpath("castrum").."/schematics/Sector/sector4.mts","0") + minetest.place_schematic({ x = -134, y = 5, z = 97 }, minetest.get_modpath("castrum").."/schematics/Sector/sector5.mts","0") + minetest.place_schematic({ x = -66, y = 5, z = -142 }, minetest.get_modpath("castrum").."/schematics/Sector/sector6.mts","0") + + player:setpos({x=-40, y=8.5, z=-5.0}) + local files = { + {"Tower1",{x=-13, y=9, z=-31}}, + {"Tower2",{x=-74, y=9, z=-31}}, + {"Tower3",{x=-74, y=9, z=30}}, + {"Tower4",{x=-13, y=9, z=30}}, + {"Walls",{x=-66, y=9, z=-31}}, + {"Wallw",{x=-74, y=9, z=-23}}, + {"Walln",{x=-66, y=9, z=34}}, + {"Walle",{x=-9, y=9, z=-23}}, + {"Fountain",{x=-45, y=9, z=-2}}, + {"Home1",{x=-32, y=9, z=-25}}, + {"Home2",{x=-54, y=9, z=-25}}, + {"Home3",{x=-32, y=9, z=25}}, + {"Home4",{x=-54, y=9, z=25}}, + {"Moats",{x=-83, y=4, z=-40}}, + {"Moatw",{x=-83, y=4, z=-31}}, + {"Moatn",{x=-83, y=4, z=38}}, + {"Moate",{x=-5, y=4, z=-31}}, + {"Camp1",{x=-67, y=9, z=-61}}, + {"Camp2",{x=-67, y=9, z=-74}}, + {"Camp3",{x=-89, y=9, z=-61}}, + {"Battleground",{x=-76, y=9, z=-84}}, + {"Barracks",{x=-43, y=9, z=25}}, + {"Stable",{x=-69, y=9, z=-1}}, + {"Smithy",{x=-69, y=9, z=-14}}, + {"Island_Walle",{x=178, y=9, z=-27}}, + {"Island_Walln",{x=119, y=9, z=33}}, + {"Island_Walls",{x=119, y=9, z=-27}}, + {"Island_Wallw",{x=118, y=9, z=-27}}, + {"Island_Barracks",{x=165, y=9, z=6}}, + {"Island_Fountain",{x=145, y=9, z=0}}, + {"Island_Home1",{x=137, y=9, z=-22}}, + {"Island_Home2",{x=151, y=9, z=-22}}, + {"Island_Smithy",{x=165, y=9, z=20}}, + {"Island_Pier",{x=171, y=6, z=38}}, + {"Island_Pier2",{x=176, y=6, z=42}}, + {"Island_Battleground",{x=180, y=9, z=42}}, + {"Ship2",{x=161, y=7, z=39}}, + {"Sail1",{x=161, y=12, z=44}}, + {"Sail2",{x=163, y=11, z=50}}, + {"Cannon1",{x=169, y=9, z=42}}, + {"Cannon2",{x=161, y=9, z=42}}, + {"Cannon3",{x=161, y=9, z=44}}, + {"Mountain_Smithy",{x=318, y=40, z=-15}}, + {"Mountain_Fountain",{x=334, y=40, z=-6}}, + {"Quarry",{x=-20, y=9, z=-2}}, + {"Tree",{x=-20, y=9, z=11}}, + {"Mine",{x=-20, y=9, z=-15}}, + {"Lake",{x=-34, y=8, z=-58}}, + {"Lake2",{x=-34, y=8, z=-67}}, + {"Sandmine",{x=123, y=8, z=6}}, + {"Cactusfarm",{x=123, y=8, z=-8}}, + {"Farm",{x=345, y=39, z=-2}}, + {"Mountain_Quarry",{x=345, y=39, z=-16}}, + {"Meadow",{x=318, y=39, z=-1}}, + {"Market",{x=-44, y=9, z=-92}}, + } + for _, m in pairs(files) do + file = io.open(minetest.get_worldpath().."/SAVE/"..m[1]..".txt", "r") + local level = file:read("*l") + file:close() + minetest.place_schematic(m[2], minetest.get_modpath("castrum").."/schematics/"..m[1].."/"..m[1].."_"..tonumber(level)..".mts","0") + end + Bridge_Status(player,false,true) + Update_knight(player) + Update_horse(player) + Update_pirate(player) + Update_Pier(nil,true) + Update_Ship1(nil,true) + local inv = player:get_inventory() + inv:remove_item("main", "castrum:knight_lv1 80") + inv:remove_item("main", "castrum:knight_lv2 80") + inv:remove_item("main", "castrum:knight_lv3 80") + inv:remove_item("main", "castrum:horse1_item 5") + inv:remove_item("main", "castrum:horse1_item_1 5") + inv:remove_item("main", "castrum:horse1_item_2 5") + inv:remove_item("main", "castrum:horse1_item_3 5") + inv:remove_item("main", "castrum:pirate_lv1 9") +end \ No newline at end of file diff --git a/mods/creative/depends.txt b/mods/creative/depends.txt deleted file mode 100644 index 975e652..0000000 --- a/mods/creative/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -sfinv diff --git a/mods/creative/init.lua b/mods/creative/init.lua index 0f8d4db..a1d57c8 100644 --- a/mods/creative/init.lua +++ b/mods/creative/init.lua @@ -1,4 +1,10 @@ +-- creative/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("creative") + creative = {} +creative.get_translator = S local function update_sfinv(name) minetest.after(0, function() @@ -14,7 +20,7 @@ local function update_sfinv(name) end minetest.register_privilege("creative", { - description = "Allow player to use creative inventory", + description = S("Allow player to use creative inventory"), give_to_singleplayer = false, give_to_admin = false, on_grant = update_sfinv, @@ -40,10 +46,8 @@ if creative_mode_cache then local digtime = 42 local caps = {times = {digtime, digtime, digtime}, uses = 0, maxlevel = 256} - minetest.register_item(":", { - type = "none", - wield_image = "wieldhand.png", - wield_scale = {x = 1, y = 1, z = 2.5}, + -- Override the hand tool + minetest.override_item("", { range = 10, tool_capabilities = { full_punch_interval = 0.5, @@ -54,6 +58,9 @@ if creative_mode_cache then snappy = caps, choppy = caps, oddly_breakable_by_hand = caps, + -- dig_immediate group doesn't use value 1. Value 3 is instant dig + dig_immediate = + {times = {[2] = digtime, [3] = 0}, uses = 0, maxlevel = 256}, }, damage_groups = {fleshy = 10}, } diff --git a/mods/creative/inventory.lua b/mods/creative/inventory.lua index 6f485d5..27dee78 100644 --- a/mods/creative/inventory.lua +++ b/mods/creative/inventory.lua @@ -1,3 +1,8 @@ +-- creative/inventory.lua + +-- support for MT game translation. +local S = creative.get_translator + local player_inventory = {} local inventory_cache = {} @@ -103,30 +108,29 @@ function creative.register_tab(name, title, items) local start_i = inv.start_i or 0 local pagenum = math.floor(start_i / (3*8) + 1) local pagemax = math.ceil(inv.size / (3*8)) + local esc = minetest.formspec_escape return sfinv.make_formspec(player, context, "label[6.2,3.35;" .. minetest.colorize("#FFFF00", tostring(pagenum)) .. " / " .. tostring(pagemax) .. "]" .. [[ image[4.06,3.4;0.8,0.8;creative_trash_icon.png] listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] - list[current_player;main;0,4.7;8,1;] - list[current_player;main;0,5.85;8,3;8] list[detached:creative_trash;main;4,3.3;1,1;] listring[] image_button[5.4,3.25;0.8,0.8;creative_prev_icon.png;creative_prev;] image_button[7.2,3.25;0.8,0.8;creative_next_icon.png;creative_next;] image_button[2.1,3.25;0.8,0.8;creative_search_icon.png;creative_search;] image_button[2.75,3.25;0.8,0.8;creative_clear_icon.png;creative_clear;] - tooltip[creative_search;Search] - tooltip[creative_clear;Reset] - tooltip[creative_prev;Previous page] - tooltip[creative_next;Next page] - listring[current_player;main] - field_close_on_enter[creative_filter;false] ]] .. - "field[0.3,3.5;2.2,1;creative_filter;;" .. minetest.formspec_escape(inv.filter) .. "]" .. + "tooltip[creative_search;" .. esc(S("Search")) .. "]" .. + "tooltip[creative_clear;" .. esc(S("Reset")) .. "]" .. + "tooltip[creative_prev;" .. esc(S("Previous page")) .. "]" .. + "tooltip[creative_next;" .. esc(S("Next page")) .. "]" .. + "listring[current_player;main]" .. + "field_close_on_enter[creative_filter;false]" .. + "field[0.3,3.5;2.2,1;creative_filter;;" .. esc(inv.filter) .. "]" .. "listring[detached:creative_" .. player_name .. ";main]" .. "list[detached:creative_" .. player_name .. ";main;0,0;8,3;" .. tostring(start_i) .. "]" .. - default.get_hotbar_bg(0,4.7) .. creative.formspec_add, false) + creative.formspec_add, true) end, on_enter = function(self, player, context) local player_name = player:get_player_name() @@ -176,10 +180,10 @@ function creative.register_tab(name, title, items) }) end -creative.register_tab("all", "All", minetest.registered_items) -creative.register_tab("nodes", "Nodes", minetest.registered_nodes) -creative.register_tab("tools", "Tools", minetest.registered_tools) -creative.register_tab("craftitems", "Items", minetest.registered_craftitems) +creative.register_tab("all", S("All"), minetest.registered_items) +creative.register_tab("nodes", S("Nodes"), minetest.registered_nodes) +creative.register_tab("tools", S("Tools"), minetest.registered_tools) +creative.register_tab("craftitems", S("Items"), minetest.registered_craftitems) local old_homepage_name = sfinv.get_homepage_name function sfinv.get_homepage_name(player) diff --git a/mods/creative/locale/creative.de.tr b/mods/creative/locale/creative.de.tr new file mode 100644 index 0000000..02b0277 --- /dev/null +++ b/mods/creative/locale/creative.de.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Spieler erlauben, das Kreativinventar zu benutzen +Search=Suchen +Reset=Zurücksetzen +Previous page=Vorherige Seite +Next page=Nächste Seite +All=Alles +Nodes=Blöcke +Tools=Werkzeuge +Items=Gegenstände diff --git a/mods/creative/locale/creative.es.tr b/mods/creative/locale/creative.es.tr new file mode 100644 index 0000000..f4e39a7 --- /dev/null +++ b/mods/creative/locale/creative.es.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Permitir al jugador usar el inventario creativo +Search=Buscar +Reset=Resetear +Previous page=Pág. siguiente +Next page=Pág. anterior +All=Todos +Nodes=Nodos +Tools=Herramientas +Items=Objetos diff --git a/mods/creative/locale/creative.fr.tr b/mods/creative/locale/creative.fr.tr new file mode 100644 index 0000000..695c0a1 --- /dev/null +++ b/mods/creative/locale/creative.fr.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Permettre aux joueurs d'utiliser l'inventaire du mode créatif +Search=Rechercher +Reset=Réinitialiser +Previous page=Page précédente +Next page=Page suivante +All=Tout +Nodes=Nœuds +Tools=Outils +Items=Article diff --git a/mods/creative/locale/creative.it.tr b/mods/creative/locale/creative.it.tr new file mode 100644 index 0000000..f972a2b --- /dev/null +++ b/mods/creative/locale/creative.it.tr @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory=Permette al giocatore di usare l'inventario creativo +Search=Cerca +Reset=Azzera +Previous page=Pagina precedente +Next page=Pagina successiva +All=Tutto +Nodes=Nodi +Tools=Strumenti +Items=Oggetti \ No newline at end of file diff --git a/mods/creative/locale/template.txt b/mods/creative/locale/template.txt new file mode 100644 index 0000000..3e79730 --- /dev/null +++ b/mods/creative/locale/template.txt @@ -0,0 +1,10 @@ +# textdomain: creative +Allow player to use creative inventory= +Search= +Reset= +Previous page= +Next page= +All= +Nodes= +Tools= +Items= diff --git a/mods/creative/mod.conf b/mods/creative/mod.conf new file mode 100644 index 0000000..0b3f745 --- /dev/null +++ b/mods/creative/mod.conf @@ -0,0 +1,3 @@ +name = creative +description = Minetest Game mod: creative +depends = default, sfinv diff --git a/mods/default/README.txt b/mods/default/README.txt index 8642b39..1bc899b 100644 --- a/mods/default/README.txt +++ b/mods/default/README.txt @@ -101,8 +101,7 @@ paramat (CC BY-SA 3.0): default_dry_grass.png default_dry_grass_side.png default_dry_grass_*.png - default_grass.png - default_grass_side.png + default_grass_side.png -- Derived from a texture by TumeniNodes (CC-BY-SA 3.0) default_mese_block.png default_silver_sand.png default_mese_post_light_side.png @@ -129,6 +128,8 @@ TumeniNodes (CC BY-SA 3.0): default_desert_cobble.png -- Derived from a texture by brunob.santos (CC BY-SA 3.0) default_coniferous_litter.png default_coniferous_litter_side.png + default_grass.png + default_dry_dirt.png BlockMen (CC BY-SA 3.0): default_aspen_leaves.png -- Derived from Sofar's texture diff --git a/mods/default/chests.lua b/mods/default/chests.lua index 45c6a6c..8dbf9d8 100644 --- a/mods/default/chests.lua +++ b/mods/default/chests.lua @@ -1,5 +1,8 @@ default.chest = {} +-- support for MT game translation. +local S = default.get_translator + function default.chest.get_chest_formspec(pos) local spos = pos.x .. "," .. pos.y .. "," .. pos.z local formspec = @@ -84,7 +87,7 @@ function default.chest.register_chest(name, d) if def.protected then def.on_construct = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("infotext", "Locked Chest") + meta:set_string("infotext", S("Locked Chest")) meta:set_string("owner", "") local inv = meta:get_inventory() inv:set_size("main", 8*4) @@ -92,8 +95,7 @@ function default.chest.register_chest(name, d) def.after_place_node = function(pos, placer) local meta = minetest.get_meta(pos) meta:set_string("owner", placer:get_player_name() or "") - meta:set_string("infotext", "Locked Chest (owned by " .. - meta:get_string("owner") .. ")") + meta:set_string("infotext", S("Locked Chest (owned by @1)", meta:get_string("owner"))) end def.can_dig = function(pos,player) local meta = minetest.get_meta(pos); @@ -171,7 +173,7 @@ function default.chest.register_chest(name, d) -- verify placer is owner of lockable chest if owner ~= pn then minetest.record_protection_violation(pos, pn) - minetest.chat_send_player(pn, "You do not own this chest.") + minetest.chat_send_player(pn, S("You do not own this chest.")) return nil end @@ -181,12 +183,12 @@ function default.chest.register_chest(name, d) meta:set_string("key_lock_secret", secret) end - return secret, "a locked chest", owner + return secret, S("a locked chest"), owner end else def.on_construct = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("infotext", "Chest") + meta:set_string("infotext", S("Chest")) local inv = meta:get_inventory() inv:set_size("main", 8*4) end @@ -285,7 +287,7 @@ function default.chest.register_chest(name, d) end default.chest.register_chest("chest", { - description = "Chest", + description = S("Chest"), tiles = { "default_chest_top.png", "default_chest_top.png", @@ -297,11 +299,11 @@ default.chest.register_chest("chest", { sounds = default.node_sound_wood_defaults(), sound_open = "default_chest_open", sound_close = "default_chest_close", - groups = {}, + groups = {choppy = 2, oddly_breakable_by_hand = 2}, }) default.chest.register_chest("chest_locked", { - description = "Locked Chest", + description = S("Locked Chest"), tiles = { "default_chest_top.png", "default_chest_top.png", diff --git a/mods/default/crafting.lua b/mods/default/crafting.lua index b49dc48..9481133 100644 --- a/mods/default/crafting.lua +++ b/mods/default/crafting.lua @@ -1,51 +1,51 @@ -- mods/default/crafting.lua minetest.register_craft({ - output = 'default:wood 4', + output = "default:wood 4", recipe = { - {'default:tree'}, + {"default:tree"}, } }) minetest.register_craft({ - output = 'default:junglewood 4', + output = "default:junglewood 4", recipe = { - {'default:jungletree'}, + {"default:jungletree"}, } }) minetest.register_craft({ - output = 'default:pine_wood 4', + output = "default:pine_wood 4", recipe = { - {'default:pine_tree'}, + {"default:pine_tree"}, } }) minetest.register_craft({ - output = 'default:acacia_wood 4', + output = "default:acacia_wood 4", recipe = { - {'default:acacia_tree'}, + {"default:acacia_tree"}, } }) minetest.register_craft({ - output = 'default:aspen_wood 4', + output = "default:aspen_wood 4", recipe = { - {'default:aspen_tree'}, + {"default:aspen_tree"}, } }) minetest.register_craft({ - output = 'default:wood', + output = "default:wood", recipe = { - {'default:bush_stem'}, + {"default:bush_stem"}, } }) minetest.register_craft({ - output = 'default:acacia_wood', + output = "default:acacia_wood", recipe = { - {'default:acacia_bush_stem'}, + {"default:acacia_bush_stem"}, } }) @@ -57,143 +57,143 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:stick 4', + output = "default:stick 4", recipe = { - {'group:wood'}, + {"group:wood"}, } }) minetest.register_craft({ - output = 'default:sign_wall_steel 3', + output = "default:sign_wall_steel 3", recipe = { - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'', 'group:stick', ''}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"", "group:stick", ""}, } }) minetest.register_craft({ - output = 'default:sign_wall_wood 3', + output = "default:sign_wall_wood 3", recipe = { - {'group:wood', 'group:wood', 'group:wood'}, - {'group:wood', 'group:wood', 'group:wood'}, - {'', 'group:stick', ''}, + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + {"", "group:stick", ""}, } }) minetest.register_craft({ - output = 'default:torch 4', + output = "default:torch 4", recipe = { - {'default:coal_lump'}, - {'group:stick'}, + {"default:coal_lump"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:pick_wood', + output = "default:pick_wood", recipe = { - {'group:wood', 'group:wood', 'group:wood'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {"group:wood", "group:wood", "group:wood"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, } }) minetest.register_craft({ - output = 'default:pick_stone', + output = "default:pick_stone", recipe = { - {'group:stone', 'group:stone', 'group:stone'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {"group:stone", "group:stone", "group:stone"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, } }) minetest.register_craft({ - output = 'default:pick_steel', + output = "default:pick_steel", recipe = { - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, } }) minetest.register_craft({ - output = 'default:pick_bronze', + output = "default:pick_bronze", recipe = { - {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, } }) minetest.register_craft({ - output = 'default:pick_mese', + output = "default:pick_mese", recipe = { - {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, } }) minetest.register_craft({ - output = 'default:pick_diamond', + output = "default:pick_diamond", recipe = { - {'default:diamond', 'default:diamond', 'default:diamond'}, - {'', 'group:stick', ''}, - {'', 'group:stick', ''}, + {"default:diamond", "default:diamond", "default:diamond"}, + {"", "group:stick", ""}, + {"", "group:stick", ""}, } }) minetest.register_craft({ - output = 'default:shovel_wood', + output = "default:shovel_wood", recipe = { - {'group:wood'}, - {'group:stick'}, - {'group:stick'}, + {"group:wood"}, + {"group:stick"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:shovel_stone', + output = "default:shovel_stone", recipe = { - {'group:stone'}, - {'group:stick'}, - {'group:stick'}, + {"group:stone"}, + {"group:stick"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:shovel_steel', + output = "default:shovel_steel", recipe = { - {'default:steel_ingot'}, - {'group:stick'}, - {'group:stick'}, + {"default:steel_ingot"}, + {"group:stick"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:shovel_bronze', + output = "default:shovel_bronze", recipe = { - {'default:bronze_ingot'}, - {'group:stick'}, - {'group:stick'}, + {"default:bronze_ingot"}, + {"group:stick"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:shovel_mese', + output = "default:shovel_mese", recipe = { - {'default:mese_crystal'}, - {'group:stick'}, - {'group:stick'}, + {"default:mese_crystal"}, + {"group:stick"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:shovel_diamond', + output = "default:shovel_diamond", recipe = { - {'default:diamond'}, - {'group:stick'}, - {'group:stick'}, + {"default:diamond"}, + {"group:stick"}, + {"group:stick"}, } }) @@ -201,135 +201,135 @@ minetest.register_craft({ -- Recipes face left to match appearence in textures and inventory minetest.register_craft({ - output = 'default:axe_wood', + output = "default:axe_wood", recipe = { - {'group:wood', 'group:wood'}, - {'group:wood', 'group:stick'}, - {'', 'group:stick'}, + {"group:wood", "group:wood"}, + {"group:wood", "group:stick"}, + {"", "group:stick"}, } }) minetest.register_craft({ - output = 'default:axe_stone', + output = "default:axe_stone", recipe = { - {'group:stone', 'group:stone'}, - {'group:stone', 'group:stick'}, - {'', 'group:stick'}, + {"group:stone", "group:stone"}, + {"group:stone", "group:stick"}, + {"", "group:stick"}, } }) minetest.register_craft({ - output = 'default:axe_steel', + output = "default:axe_steel", recipe = { - {'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'group:stick'}, - {'', 'group:stick'}, + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "group:stick"}, + {"", "group:stick"}, } }) minetest.register_craft({ - output = 'default:axe_bronze', + output = "default:axe_bronze", recipe = { - {'default:bronze_ingot', 'default:bronze_ingot'}, - {'default:bronze_ingot', 'group:stick'}, - {'', 'group:stick'}, + {"default:bronze_ingot", "default:bronze_ingot"}, + {"default:bronze_ingot", "group:stick"}, + {"", "group:stick"}, } }) minetest.register_craft({ - output = 'default:axe_mese', + output = "default:axe_mese", recipe = { - {'default:mese_crystal', 'default:mese_crystal'}, - {'default:mese_crystal', 'group:stick'}, - {'', 'group:stick'}, + {"default:mese_crystal", "default:mese_crystal"}, + {"default:mese_crystal", "group:stick"}, + {"", "group:stick"}, } }) minetest.register_craft({ - output = 'default:axe_diamond', + output = "default:axe_diamond", recipe = { - {'default:diamond', 'default:diamond'}, - {'default:diamond', 'group:stick'}, - {'', 'group:stick'}, + {"default:diamond", "default:diamond"}, + {"default:diamond", "group:stick"}, + {"", "group:stick"}, } }) minetest.register_craft({ - output = 'default:sword_wood', + output = "default:sword_wood", recipe = { - {'group:wood'}, - {'group:wood'}, - {'group:stick'}, + {"group:wood"}, + {"group:wood"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:sword_stone', + output = "default:sword_stone", recipe = { - {'group:stone'}, - {'group:stone'}, - {'group:stick'}, + {"group:stone"}, + {"group:stone"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:sword_steel', + output = "default:sword_steel", recipe = { - {'default:steel_ingot'}, - {'default:steel_ingot'}, - {'group:stick'}, + {"default:steel_ingot"}, + {"default:steel_ingot"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:sword_bronze', + output = "default:sword_bronze", recipe = { - {'default:bronze_ingot'}, - {'default:bronze_ingot'}, - {'group:stick'}, + {"default:bronze_ingot"}, + {"default:bronze_ingot"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:sword_mese', + output = "default:sword_mese", recipe = { - {'default:mese_crystal'}, - {'default:mese_crystal'}, - {'group:stick'}, + {"default:mese_crystal"}, + {"default:mese_crystal"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:sword_diamond', + output = "default:sword_diamond", recipe = { - {'default:diamond'}, - {'default:diamond'}, - {'group:stick'}, + {"default:diamond"}, + {"default:diamond"}, + {"group:stick"}, } }) minetest.register_craft({ - output = 'default:skeleton_key', + output = "default:skeleton_key", recipe = { - {'default:gold_ingot'}, + {"default:gold_ingot"}, } }) minetest.register_craft({ - output = 'default:chest', + output = "default:chest", recipe = { - {'group:wood', 'group:wood', 'group:wood'}, - {'group:wood', '', 'group:wood'}, - {'group:wood', 'group:wood', 'group:wood'}, + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, } }) minetest.register_craft({ - output = 'default:chest_locked', + output = "default:chest_locked", recipe = { - {'group:wood', 'group:wood', 'group:wood'}, - {'group:wood', 'default:steel_ingot', 'group:wood'}, - {'group:wood', 'group:wood', 'group:wood'}, + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "default:steel_ingot", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, } }) @@ -340,59 +340,59 @@ minetest.register_craft( { }) minetest.register_craft({ - output = 'default:furnace', + output = "default:furnace", recipe = { - {'group:stone', 'group:stone', 'group:stone'}, - {'group:stone', '', 'group:stone'}, - {'group:stone', 'group:stone', 'group:stone'}, + {"group:stone", "group:stone", "group:stone"}, + {"group:stone", "", "group:stone"}, + {"group:stone", "group:stone", "group:stone"}, } }) minetest.register_craft({ - output = 'default:coalblock', + output = "default:coalblock", recipe = { - {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, - {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, - {'default:coal_lump', 'default:coal_lump', 'default:coal_lump'}, + {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, + {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, + {"default:coal_lump", "default:coal_lump", "default:coal_lump"}, } }) minetest.register_craft({ - output = 'default:coal_lump 9', + output = "default:coal_lump 9", recipe = { - {'default:coalblock'}, + {"default:coalblock"}, } }) minetest.register_craft({ - output = 'default:steelblock', + output = "default:steelblock", recipe = { - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, } }) minetest.register_craft({ - output = 'default:steel_ingot 9', + output = "default:steel_ingot 9", recipe = { - {'default:steelblock'}, + {"default:steelblock"}, } }) minetest.register_craft({ - output = 'default:copperblock', + output = "default:copperblock", recipe = { - {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, - {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, - {'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, + {"default:copper_ingot", "default:copper_ingot", "default:copper_ingot"}, } }) minetest.register_craft({ - output = 'default:copper_ingot 9', + output = "default:copper_ingot 9", recipe = { - {'default:copperblock'}, + {"default:copperblock"}, } }) @@ -422,50 +422,50 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:bronzeblock', + output = "default:bronzeblock", recipe = { - {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, - {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, - {'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, + {"default:bronze_ingot", "default:bronze_ingot", "default:bronze_ingot"}, } }) minetest.register_craft({ - output = 'default:bronze_ingot 9', + output = "default:bronze_ingot 9", recipe = { - {'default:bronzeblock'}, + {"default:bronzeblock"}, } }) minetest.register_craft({ - output = 'default:goldblock', + output = "default:goldblock", recipe = { - {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, - {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, - {'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'}, + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, + {"default:gold_ingot", "default:gold_ingot", "default:gold_ingot"}, } }) minetest.register_craft({ - output = 'default:gold_ingot 9', + output = "default:gold_ingot 9", recipe = { - {'default:goldblock'}, + {"default:goldblock"}, } }) minetest.register_craft({ - output = 'default:diamondblock', + output = "default:diamondblock", recipe = { - {'default:diamond', 'default:diamond', 'default:diamond'}, - {'default:diamond', 'default:diamond', 'default:diamond'}, - {'default:diamond', 'default:diamond', 'default:diamond'}, + {"default:diamond", "default:diamond", "default:diamond"}, + {"default:diamond", "default:diamond", "default:diamond"}, + {"default:diamond", "default:diamond", "default:diamond"}, } }) minetest.register_craft({ - output = 'default:diamond 9', + output = "default:diamond 9", recipe = { - {'default:diamondblock'}, + {"default:diamondblock"}, } }) @@ -566,57 +566,57 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:clay', + output = "default:clay", recipe = { - {'default:clay_lump', 'default:clay_lump'}, - {'default:clay_lump', 'default:clay_lump'}, + {"default:clay_lump", "default:clay_lump"}, + {"default:clay_lump", "default:clay_lump"}, } }) minetest.register_craft({ - output = 'default:clay_lump 4', + output = "default:clay_lump 4", recipe = { - {'default:clay'}, + {"default:clay"}, } }) minetest.register_craft({ - output = 'default:brick', + output = "default:brick", recipe = { - {'default:clay_brick', 'default:clay_brick'}, - {'default:clay_brick', 'default:clay_brick'}, + {"default:clay_brick", "default:clay_brick"}, + {"default:clay_brick", "default:clay_brick"}, } }) minetest.register_craft({ - output = 'default:clay_brick 4', + output = "default:clay_brick 4", recipe = { - {'default:brick'}, + {"default:brick"}, } }) minetest.register_craft({ - output = 'default:paper', + output = "default:paper", recipe = { - {'default:papyrus', 'default:papyrus', 'default:papyrus'}, + {"default:papyrus", "default:papyrus", "default:papyrus"}, } }) minetest.register_craft({ - output = 'default:book', + output = "default:book", recipe = { - {'default:paper'}, - {'default:paper'}, - {'default:paper'}, + {"default:paper"}, + {"default:paper"}, + {"default:paper"}, } }) minetest.register_craft({ - output = 'default:bookshelf', + output = "default:bookshelf", recipe = { - {'group:wood', 'group:wood', 'group:wood'}, - {'default:book', 'default:book', 'default:book'}, - {'group:wood', 'group:wood', 'group:wood'}, + {"group:wood", "group:wood", "group:wood"}, + {"default:book", "default:book", "default:book"}, + {"group:wood", "group:wood", "group:wood"}, } }) @@ -630,34 +630,34 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:ladder_steel 15', + output = "default:ladder_steel 15", recipe = { - {'default:steel_ingot', '', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', '', 'default:steel_ingot'}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "", "default:steel_ingot"}, } }) minetest.register_craft({ - output = 'default:mese', + output = "default:mese", recipe = { - {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, - {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, - {'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, + {"default:mese_crystal", "default:mese_crystal", "default:mese_crystal"}, } }) minetest.register_craft({ - output = 'default:mese_crystal 9', + output = "default:mese_crystal 9", recipe = { - {'default:mese'}, + {"default:mese"}, } }) minetest.register_craft({ - output = 'default:mese_crystal_fragment 9', + output = "default:mese_crystal_fragment 9", recipe = { - {'default:mese_crystal'}, + {"default:mese_crystal"}, } }) @@ -671,10 +671,10 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:meselamp', + output = "default:meselamp", recipe = { - {'default:glass'}, - {'default:mese_crystal'}, + {"default:glass"}, + {"default:mese_crystal"}, } }) @@ -688,85 +688,85 @@ minetest.register_craft({ }) minetest.register_craft({ - output = 'default:obsidian_shard 9', + output = "default:obsidian_shard 9", recipe = { - {'default:obsidian'} + {"default:obsidian"} } }) minetest.register_craft({ - output = 'default:obsidian', + output = "default:obsidian", recipe = { - {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, - {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, - {'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'}, + {"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, + {"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, + {"default:obsidian_shard", "default:obsidian_shard", "default:obsidian_shard"}, } }) minetest.register_craft({ - output = 'default:obsidianbrick 4', + output = "default:obsidianbrick 4", recipe = { - {'default:obsidian', 'default:obsidian'}, - {'default:obsidian', 'default:obsidian'} + {"default:obsidian", "default:obsidian"}, + {"default:obsidian", "default:obsidian"} } }) minetest.register_craft({ - output = 'default:obsidian_block 9', + output = "default:obsidian_block 9", recipe = { - {'default:obsidian', 'default:obsidian', 'default:obsidian'}, - {'default:obsidian', 'default:obsidian', 'default:obsidian'}, - {'default:obsidian', 'default:obsidian', 'default:obsidian'}, + {"default:obsidian", "default:obsidian", "default:obsidian"}, + {"default:obsidian", "default:obsidian", "default:obsidian"}, + {"default:obsidian", "default:obsidian", "default:obsidian"}, } }) minetest.register_craft({ - output = 'default:stonebrick 4', + output = "default:stonebrick 4", recipe = { - {'default:stone', 'default:stone'}, - {'default:stone', 'default:stone'}, + {"default:stone", "default:stone"}, + {"default:stone", "default:stone"}, } }) minetest.register_craft({ - output = 'default:stone_block 9', + output = "default:stone_block 9", recipe = { - {'default:stone', 'default:stone', 'default:stone'}, - {'default:stone', 'default:stone', 'default:stone'}, - {'default:stone', 'default:stone', 'default:stone'}, + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, + {"default:stone", "default:stone", "default:stone"}, } }) minetest.register_craft({ - output = 'default:desert_stonebrick 4', + output = "default:desert_stonebrick 4", recipe = { - {'default:desert_stone', 'default:desert_stone'}, - {'default:desert_stone', 'default:desert_stone'}, + {"default:desert_stone", "default:desert_stone"}, + {"default:desert_stone", "default:desert_stone"}, } }) minetest.register_craft({ - output = 'default:desert_stone_block 9', + output = "default:desert_stone_block 9", recipe = { - {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, - {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, - {'default:desert_stone', 'default:desert_stone', 'default:desert_stone'}, + {"default:desert_stone", "default:desert_stone", "default:desert_stone"}, + {"default:desert_stone", "default:desert_stone", "default:desert_stone"}, + {"default:desert_stone", "default:desert_stone", "default:desert_stone"}, } }) minetest.register_craft({ - output = 'default:snowblock', + output = "default:snowblock", recipe = { - {'default:snow', 'default:snow', 'default:snow'}, - {'default:snow', 'default:snow', 'default:snow'}, - {'default:snow', 'default:snow', 'default:snow'}, + {"default:snow", "default:snow", "default:snow"}, + {"default:snow", "default:snow", "default:snow"}, + {"default:snow", "default:snow", "default:snow"}, } }) minetest.register_craft({ - output = 'default:snow 9', + output = "default:snow 9", recipe = { - {'default:snowblock'}, + {"default:snowblock"}, } }) @@ -864,16 +864,16 @@ minetest.register_craft({ }) minetest.register_craft({ - type = 'cooking', - output = 'default:gold_ingot', - recipe = 'default:skeleton_key', + type = "cooking", + output = "default:gold_ingot", + recipe = "default:skeleton_key", cooktime = 5, }) minetest.register_craft({ - type = 'cooking', - output = 'default:gold_ingot', - recipe = 'default:key', + type = "cooking", + output = "default:gold_ingot", + recipe = "default:key", cooktime = 5, }) diff --git a/mods/default/craftitems.lua b/mods/default/craftitems.lua index 6a1b570..e2e92bf 100644 --- a/mods/default/craftitems.lua +++ b/mods/default/craftitems.lua @@ -1,13 +1,16 @@ -- mods/default/craftitems.lua +-- support for MT game translation. +local S = default.get_translator + minetest.register_craftitem("default:stick", { - description = "Stick", + description = S("Stick"), inventory_image = "default_stick.png", groups = {stick = 1, flammable = 2}, }) minetest.register_craftitem("default:paper", { - description = "Paper", + description = S("Paper"), inventory_image = "default_paper.png", groups = {flammable = 3}, }) @@ -49,23 +52,24 @@ local function book_on_use(itemstack, user) end local formspec + local esc = minetest.formspec_escape if owner == player_name then formspec = "size[8,8]" .. - "field[0.5,1;7.5,0;title;Title:;" .. - minetest.formspec_escape(title) .. "]" .. - "textarea[0.5,1.5;7.5,7;text;Contents:;" .. - minetest.formspec_escape(text) .. "]" .. - "button_exit[2.5,7.5;3,1;save;Save]" + "field[0.5,1;7.5,0;title;" .. esc(S("Title:")) .. ";" .. + esc(title) .. "]" .. + "textarea[0.5,1.5;7.5,7;text;" .. esc(S("Contents:")) .. ";" .. + esc(text) .. "]" .. + "button_exit[2.5,7.5;3,1;save;" .. esc(S("Save")) .. "]" else formspec = "size[8,8]" .. - "label[0.5,0.5;by " .. owner .. "]" .. + "label[0.5,0.5;" .. esc(S("by @1", owner)) .. "]" .. "tablecolumns[color;text]" .. "tableoptions[background=#00000000;highlight=#00000000;border=false]" .. - "table[0.4,0;7,0.5;title;#FFFF00," .. minetest.formspec_escape(title) .. "]" .. + "table[0.4,0;7,0.5;title;#FFFF00," .. esc(title) .. "]" .. "textarea[0.5,1.5;7.5,7;;" .. minetest.formspec_escape(string ~= "" and string or text) .. ";]" .. "button[2.4,7.6;0.8,0.8;book_prev;<]" .. - "label[3.2,7.7;Page " .. page .. " of " .. page_max .. "]" .. + "label[3.2,7.7;" .. esc(S("Page @1 of @2", page, page_max)) .. "]" .. "button[4.9,7.6;0.8,0.8;book_next;>]" end @@ -108,7 +112,7 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) if #short_title > short_title_size + 3 then short_title = short_title:sub(1, short_title_size) .. "..." end - data.description = "\""..short_title.."\" by "..data.owner + data.description = S("\"@1\" by @2", short_title, data.owner) data.text = fields.text:sub(1, max_text_size) data.text = data.text:gsub("\r\n", "\n"):gsub("\r", "\n") data.page = 1 @@ -155,14 +159,14 @@ minetest.register_on_player_receive_fields(function(player, formname, fields) end) minetest.register_craftitem("default:book", { - description = "Book", + description = S("Book"), inventory_image = "default_book.png", groups = {book = 1, flammable = 3}, on_use = book_on_use, }) minetest.register_craftitem("default:book_written", { - description = "Book With Text", + description = S("Book with Text"), inventory_image = "default_book_written.png", groups = {book = 1, not_in_creative_inventory = 1, flammable = 3}, stack_max = 1, @@ -199,7 +203,7 @@ minetest.register_on_craft(function(itemstack, player, old_craft_grid, craft_inv end) minetest.register_craftitem("default:skeleton_key", { - description = "Skeleton Key", + description = S("Skeleton Key"), inventory_image = "default_key_skeleton.png", groups = {key = 1}, on_use = function(itemstack, user, pointed_thing) @@ -238,8 +242,8 @@ minetest.register_craftitem("default:skeleton_key", { local new_stack = ItemStack("default:key") local meta = new_stack:get_meta() meta:set_string("secret", secret) - meta:set_string("description", "Key to "..user:get_player_name().."'s " - ..minetest.registered_nodes[node.name].description) + meta:set_string("description", S("Key to @1's @2", user:get_player_name(), + minetest.registered_nodes[node.name].description)) if itemstack:get_count() == 0 then itemstack = new_stack @@ -255,93 +259,94 @@ minetest.register_craftitem("default:skeleton_key", { }) minetest.register_craftitem("default:coal_lump", { - description = "Coal Lump", + description = S("Coal Lump"), inventory_image = "default_coal_lump.png", groups = {coal = 1, flammable = 1} }) minetest.register_craftitem("default:iron_lump", { - description = "Iron Lump", - inventory_image = "default_iron_lump.png", + description = S("Iron Lump"), + inventory_image = "default_iron_lump.png" }) minetest.register_craftitem("default:copper_lump", { - description = "Copper Lump", - inventory_image = "default_copper_lump.png", + description = S("Copper Lump"), + inventory_image = "default_copper_lump.png" }) minetest.register_craftitem("default:tin_lump", { - description = "Tin Lump", - inventory_image = "default_tin_lump.png", + description = S("Tin Lump"), + inventory_image = "default_tin_lump.png" }) minetest.register_craftitem("default:mese_crystal", { - description = "Mese Crystal", + description = S("Mese Crystal"), inventory_image = "default_mese_crystal.png", }) minetest.register_craftitem("default:gold_lump", { - description = "Gold Lump", - inventory_image = "default_gold_lump.png", + description = S("Gold Lump"), + inventory_image = "default_gold_lump.png" }) minetest.register_craftitem("default:diamond", { - description = "Diamond", + description = S("Diamond"), inventory_image = "default_diamond.png", }) minetest.register_craftitem("default:clay_lump", { - description = "Clay Lump", + description = S("Clay Lump"), inventory_image = "default_clay_lump.png", }) minetest.register_craftitem("default:steel_ingot", { - description = "Steel Ingot", - inventory_image = "default_steel_ingot.png", + description = S("Steel Ingot"), + inventory_image = "default_steel_ingot.png" }) minetest.register_craftitem("default:copper_ingot", { - description = "Copper Ingot", - inventory_image = "default_copper_ingot.png", + description = S("Copper Ingot"), + inventory_image = "default_copper_ingot.png" }) minetest.register_craftitem("default:tin_ingot", { - description = "Tin Ingot", - inventory_image = "default_tin_ingot.png", + description = S("Tin Ingot"), + inventory_image = "default_tin_ingot.png" }) minetest.register_craftitem("default:bronze_ingot", { - description = "Bronze Ingot", - inventory_image = "default_bronze_ingot.png", + description = S("Bronze Ingot"), + inventory_image = "default_bronze_ingot.png" }) minetest.register_craftitem("default:gold_ingot", { - description = "Gold Ingot", + description = S("Gold Ingot"), inventory_image = "default_gold_ingot.png" }) minetest.register_craftitem("default:mese_crystal_fragment", { - description = "Mese Crystal Fragment", + description = S("Mese Crystal Fragment"), inventory_image = "default_mese_crystal_fragment.png", }) minetest.register_craftitem("default:clay_brick", { - description = "Clay Brick", + description = S("Clay Brick"), inventory_image = "default_clay_brick.png", }) minetest.register_craftitem("default:obsidian_shard", { - description = "Obsidian Shard", + description = S("Obsidian Shard"), inventory_image = "default_obsidian_shard.png", }) minetest.register_craftitem("default:flint", { - description = "Flint", + description = S("Flint"), inventory_image = "default_flint.png" }) minetest.register_craftitem("default:blueberries", { - description = "Blueberries", + description = S("Blueberries"), inventory_image = "default_blueberries.png", + groups = {food_blueberries = 1, food_berry = 1}, on_use = minetest.item_eat(2), }) diff --git a/mods/default/depends.txt b/mods/default/depends.txt deleted file mode 100644 index e1c3818..0000000 --- a/mods/default/depends.txt +++ /dev/null @@ -1 +0,0 @@ -player_api? diff --git a/mods/default/functions.lua b/mods/default/functions.lua index 1165c89..91f8bb3 100644 --- a/mods/default/functions.lua +++ b/mods/default/functions.lua @@ -273,6 +273,7 @@ end -- -- Fence registration helper -- +local fence_collision_extra = minetest.settings:get_bool("enable_fence_tall") and 3/8 or 0 function default.register_fence(name, def) minetest.register_craft({ @@ -291,17 +292,27 @@ function default.register_fence(name, def) drawtype = "nodebox", node_box = { type = "connected", - fixed = {{-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}}, + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2, 1/8}, -- connect_top = -- connect_bottom = - connect_front = {{-1/16,3/16,-1/2,1/16,5/16,-1/8}, - {-1/16,-5/16,-1/2,1/16,-3/16,-1/8}}, - connect_left = {{-1/2,3/16,-1/16,-1/8,5/16,1/16}, - {-1/2,-5/16,-1/16,-1/8,-3/16,1/16}}, - connect_back = {{-1/16,3/16,1/8,1/16,5/16,1/2}, - {-1/16,-5/16,1/8,1/16,-3/16,1/2}}, - connect_right = {{1/8,3/16,-1/16,1/2,5/16,1/16}, - {1/8,-5/16,-1/16,1/2,-3/16,1/16}}, + connect_front = {{-1/16, 3/16, -1/2, 1/16, 5/16, -1/8 }, + {-1/16, -5/16, -1/2, 1/16, -3/16, -1/8 }}, + connect_left = {{-1/2, 3/16, -1/16, -1/8, 5/16, 1/16}, + {-1/2, -5/16, -1/16, -1/8, -3/16, 1/16}}, + connect_back = {{-1/16, 3/16, 1/8, 1/16, 5/16, 1/2 }, + {-1/16, -5/16, 1/8, 1/16, -3/16, 1/2 }}, + connect_right = {{ 1/8, 3/16, -1/16, 1/2, 5/16, 1/16}, + { 1/8, -5/16, -1/16, 1/2, -3/16, 1/16}} + }, + collision_box = { + type = "connected", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2 + fence_collision_extra, 1/8}, + -- connect_top = + -- connect_bottom = + connect_front = {-1/8, -1/2, -1/2, 1/8, 1/2 + fence_collision_extra, -1/8}, + connect_left = {-1/2, -1/2, -1/8, -1/8, 1/2 + fence_collision_extra, 1/8}, + connect_back = {-1/8, -1/2, 1/8, 1/8, 1/2 + fence_collision_extra, 1/2}, + connect_right = { 1/8, -1/2, -1/8, 1/2, 1/2 + fence_collision_extra, 1/8} }, connects_to = {"group:fence", "group:wood", "group:tree", "group:wall"}, inventory_image = fence_texture, @@ -349,24 +360,28 @@ function default.register_fence_rail(name, def) drawtype = "nodebox", node_box = { type = "connected", - fixed = { - {-1/16, 3/16, -1/16, 1/16, 5/16, 1/16}, - {-1/16, -3/16, -1/16, 1/16, -5/16, 1/16} - }, + fixed = {{-1/16, 3/16, -1/16, 1/16, 5/16, 1/16}, + {-1/16, -3/16, -1/16, 1/16, -5/16, 1/16}}, -- connect_top = -- connect_bottom = - connect_front = { - {-1/16, 3/16, -1/2, 1/16, 5/16, -1/16}, - {-1/16, -5/16, -1/2, 1/16, -3/16, -1/16}}, - connect_left = { - {-1/2, 3/16, -1/16, -1/16, 5/16, 1/16}, - {-1/2, -5/16, -1/16, -1/16, -3/16, 1/16}}, - connect_back = { - {-1/16, 3/16, 1/16, 1/16, 5/16, 1/2}, - {-1/16, -5/16, 1/16, 1/16, -3/16, 1/2}}, - connect_right = { - {1/16, 3/16, -1/16, 1/2, 5/16, 1/16}, - {1/16, -5/16, -1/16, 1/2, -3/16, 1/16}}, + connect_front = {{-1/16, 3/16, -1/2, 1/16, 5/16, -1/16}, + {-1/16, -5/16, -1/2, 1/16, -3/16, -1/16}}, + connect_left = {{-1/2, 3/16, -1/16, -1/16, 5/16, 1/16}, + {-1/2, -5/16, -1/16, -1/16, -3/16, 1/16}}, + connect_back = {{-1/16, 3/16, 1/16, 1/16, 5/16, 1/2 }, + {-1/16, -5/16, 1/16, 1/16, -3/16, 1/2 }}, + connect_right = {{ 1/16, 3/16, -1/16, 1/2, 5/16, 1/16}, + { 1/16, -5/16, -1/16, 1/2, -3/16, 1/16}} + }, + collision_box = { + type = "connected", + fixed = {-1/8, -1/2, -1/8, 1/8, 1/2 + fence_collision_extra, 1/8}, + -- connect_top = + -- connect_bottom = + connect_front = {-1/8, -1/2, -1/2, 1/8, 1/2 + fence_collision_extra, -1/8}, + connect_left = {-1/2, -1/2, -1/8, -1/8, 1/2 + fence_collision_extra, 1/8}, + connect_back = {-1/8, -1/2, 1/8, 1/8, 1/2 + fence_collision_extra, 1/2}, + connect_right = { 1/8, -1/2, -1/8, 1/2, 1/2 + fence_collision_extra, 1/8} }, connects_to = {"group:fence", "group:wall"}, inventory_image = fence_rail_texture, @@ -399,7 +414,7 @@ end -- Prevent decay of placed leaves default.after_place_leaves = function(pos, placer, itemstack, pointed_thing) - if placer and placer:is_player() and not placer:get_player_control().sneak then + if placer and placer:is_player() then local node = minetest.get_node(pos) node.param2 = 1 minetest.set_node(pos, node) @@ -412,7 +427,7 @@ local function leafdecay_after_destruct(pos, oldnode, def) vector.add(pos, def.radius), def.leaves)) do local node = minetest.get_node(v) local timer = minetest.get_node_timer(v) - if node.param2 == 0 and not timer:is_started() then + if node.param2 ~= 1 and not timer:is_started() then timer:start(math.random(20, 120) / 10) end end @@ -477,7 +492,6 @@ minetest.register_abm({ neighbors = { "air", "group:grass", - "group:dry_grass", "default:snow", }, interval = 6, @@ -504,11 +518,8 @@ minetest.register_abm({ -- Snow check is cheapest, so comes first if name == "default:snow" then minetest.set_node(pos, {name = "default:dirt_with_snow"}) - -- Most likely case first elseif minetest.get_item_group(name, "grass") ~= 0 then minetest.set_node(pos, {name = "default:dirt_with_grass"}) - elseif minetest.get_item_group(name, "dry_grass") ~= 0 then - minetest.set_node(pos, {name = "default:dirt_with_dry_grass"}) end end }) @@ -520,7 +531,7 @@ minetest.register_abm({ minetest.register_abm({ label = "Grass covered", - nodenames = {"group:spreading_dirt_type"}, + nodenames = {"group:spreading_dirt_type", "default:dry_dirt_with_dry_grass"}, interval = 8, chance = 50, catch_up = false, @@ -531,7 +542,11 @@ minetest.register_abm({ if name ~= "ignore" and nodedef and not ((nodedef.sunlight_propagates or nodedef.paramtype == "light") and nodedef.liquidtype == "none") then - minetest.set_node(pos, {name = "default:dirt"}) + if node.name == "default:dry_dirt_with_dry_grass" then + minetest.set_node(pos, {name = "default:dry_dirt"}) + else + minetest.set_node(pos, {name = "default:dirt"}) + end end end }) @@ -541,22 +556,27 @@ minetest.register_abm({ -- Moss growth on cobble near water -- +local moss_correspondences = { + ["default:cobble"] = "default:mossycobble", + ["stairs:slab_cobble"] = "stairs:slab_mossycobble", + ["stairs:stair_cobble"] = "stairs:stair_mossycobble", + ["stairs:stair_inner_cobble"] = "stairs:stair_inner_mossycobble", + ["stairs:stair_outer_cobble"] = "stairs:stair_outer_mossycobble", + ["walls:cobble"] = "walls:mossycobble", +} minetest.register_abm({ label = "Moss growth", - nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", "walls:cobble"}, + nodenames = {"default:cobble", "stairs:slab_cobble", "stairs:stair_cobble", + "stairs:stair_inner_cobble", "stairs:stair_outer_cobble", + "walls:cobble"}, neighbors = {"group:water"}, interval = 16, chance = 200, catch_up = false, action = function(pos, node) - if node.name == "default:cobble" then - minetest.set_node(pos, {name = "default:mossycobble"}) - elseif node.name == "stairs:slab_cobble" then - minetest.set_node(pos, {name = "stairs:slab_mossycobble", param2 = node.param2}) - elseif node.name == "stairs:stair_cobble" then - minetest.set_node(pos, {name = "stairs:stair_mossycobble", param2 = node.param2}) - elseif node.name == "walls:cobble" then - minetest.set_node(pos, {name = "walls:mossycobble", param2 = node.param2}) + node.name = moss_correspondences[node.name] + if node.name then + minetest.set_node(pos, node) end end }) @@ -568,7 +588,7 @@ minetest.register_abm({ -- function default.can_interact_with_node(player, pos) - if player then + if player and player:is_player() then if minetest.check_player_privs(player, "protection_bypass") then return true end diff --git a/mods/default/furnace.lua b/mods/default/furnace.lua index a06f3b2..d133a3a 100644 --- a/mods/default/furnace.lua +++ b/mods/default/furnace.lua @@ -1,3 +1,7 @@ +-- default/furnace.lua + +-- support for MT game translation. +local S = default.get_translator -- -- Formspecs @@ -8,7 +12,7 @@ function default.get_furnace_active_formspec(fuel_percent, item_percent) "list[context;src;2.75,0.5;1,1;]".. "list[context;fuel;2.75,2.5;1,1;]".. "image[2.75,1.5;1,1;default_furnace_fire_bg.png^[lowpart:".. - (100-fuel_percent)..":default_furnace_fire_fg.png]".. + (fuel_percent)..":default_furnace_fire_fg.png]".. "image[3.75,1.5;1,1;gui_furnace_arrow_bg.png^[lowpart:".. (item_percent)..":gui_furnace_arrow_fg.png^[transformR270]".. "list[context;dst;4.75,0.96;2,2;]".. @@ -60,7 +64,7 @@ local function allow_metadata_inventory_put(pos, listname, index, stack, player) if listname == "fuel" then if minetest.get_craft_result({method="fuel", width=1, items={stack}}).time ~= 0 then if inv:is_empty("src") then - meta:set_string("infotext", "Furnace is empty") + meta:set_string("infotext", S("Furnace is empty")) end return stack:get_count() else @@ -98,7 +102,7 @@ end local function furnace_node_timer(pos, elapsed) -- - -- Inizialize metadata + -- Initialize metadata -- local meta = minetest.get_meta(pos) local fuel_time = meta:get_float("fuel_time") or 0 @@ -107,6 +111,7 @@ local function furnace_node_timer(pos, elapsed) local inv = meta:get_inventory() local srclist, fuellist + local dst_full = false local cookable, cooked local fuel @@ -146,6 +151,8 @@ local function furnace_node_timer(pos, elapsed) inv:set_stack("src", 1, aftercooked.items[1]) src_time = src_time - cooked.time update = true + else + dst_full = true end else -- Item could not be cooked: probably missing fuel @@ -166,6 +173,16 @@ local function furnace_node_timer(pos, elapsed) else -- Take fuel from fuel list inv:set_stack("fuel", 1, afterfuel.items[1]) + -- Put replacements in dst list or drop them on the furnace. + local replacements = fuel.replacements + if replacements[1] then + local leftover = inv:add_item("dst", replacements[1]) + if not leftover:is_empty() then + local above = vector.new(pos.x, pos.y + 1, pos.z) + local drop_pos = minetest.find_node_near(above, 1, {"air"}) or above + minetest.item_drop(replacements[1], nil, drop_pos) + end + end update = true fuel_totaltime = fuel.time + (fuel_totaltime - fuel_time) end @@ -183,7 +200,7 @@ local function furnace_node_timer(pos, elapsed) if fuel and fuel_totaltime > fuel.time then fuel_totaltime = fuel.time end - if srclist[1]:is_empty() then + if srclist and srclist[1]:is_empty() then src_time = 0 end @@ -195,34 +212,34 @@ local function furnace_node_timer(pos, elapsed) local item_percent = 0 if cookable then item_percent = math.floor(src_time / cooked.time * 100) - if item_percent > 100 then - item_state = "100% (output full)" + if dst_full then + item_state = S("100% (output full)") else - item_state = item_percent .. "%" + item_state = S("@1%", item_percent) end else - if srclist[1]:is_empty() then - item_state = "Empty" + if srclist and not srclist[1]:is_empty() then + item_state = S("Not cookable") else - item_state = "Not cookable" + item_state = S("Empty") end end - local fuel_state = "Empty" - local active = "inactive" + local fuel_state = S("Empty") + local active = false local result = false if fuel_totaltime ~= 0 then - active = "active" - local fuel_percent = math.floor(fuel_time / fuel_totaltime * 100) - fuel_state = fuel_percent .. "%" + active = true + local fuel_percent = 100 - math.floor(fuel_time / fuel_totaltime * 100) + fuel_state = S("@1%", fuel_percent) formspec = default.get_furnace_active_formspec(fuel_percent, item_percent) swap_node(pos, "default:furnace_active") -- make sure timer restarts automatically result = true else - if not fuellist[1]:is_empty() then - fuel_state = "0%" + if fuellist and not fuellist[1]:is_empty() then + fuel_state = S("@1%", 0) end formspec = default.get_furnace_inactive_formspec() swap_node(pos, "default:furnace") @@ -230,8 +247,14 @@ local function furnace_node_timer(pos, elapsed) minetest.get_node_timer(pos):stop() end - local infotext = "Furnace " .. active .. "\n(Item: " .. item_state .. - "; Fuel: " .. fuel_state .. ")" + + local infotext + if active then + infotext = S("Furnace active") + else + infotext = S("Furnace inactive") + end + infotext = infotext .. "\n" .. S("(Item: @1; Fuel: @2)", item_state, fuel_state) -- -- Set meta values @@ -250,7 +273,7 @@ end -- minetest.register_node("default:furnace", { - description = "Furnace", + description = S("Furnace"), tiles = { "default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png", "default_furnace_side.png", @@ -268,11 +291,11 @@ minetest.register_node("default:furnace", { on_construct = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("formspec", default.get_furnace_inactive_formspec()) local inv = meta:get_inventory() inv:set_size('src', 1) inv:set_size('fuel', 1) inv:set_size('dst', 4) + furnace_node_timer(pos, 0) end, on_metadata_inventory_move = function(pos) @@ -298,7 +321,7 @@ minetest.register_node("default:furnace", { }) minetest.register_node("default:furnace_active", { - description = "Furnace", + description = S("Furnace"), tiles = { "default_furnace_top.png", "default_furnace_bottom.png", "default_furnace_side.png", "default_furnace_side.png", diff --git a/mods/default/init.lua b/mods/default/init.lua index b89fd0e..a487383 100644 --- a/mods/default/init.lua +++ b/mods/default/init.lua @@ -3,16 +3,21 @@ -- The API documentation in here was moved into game_api.txt +-- Load support for MT game translation. +local S = minetest.get_translator("default") + -- Definitions made by this mod that other mods can use too default = {} default.LIGHT_MAX = 14 +default.get_translator = S -- GUI related stuff minetest.register_on_joinplayer(function(player) player:set_formspec_prepend([[ bgcolor[#080808BB;true] background[5,5;1,1;gui_formbg.png;true] + background9[5,5;1,1;gui_formbg.png;true;10] listcolors[#00000069;#5A5A5A;#141318;#30434C;#FFF] ]]) end) diff --git a/mods/default/legacy.lua b/mods/default/legacy.lua index 935d857..a2d812d 100644 --- a/mods/default/legacy.lua +++ b/mods/default/legacy.lua @@ -45,5 +45,5 @@ default.register_chest = default.chest.register_chest function default.intersects_protection(minp, maxp, player_name, interval) minetest.log("warning", "default.intersects_protection() is " .. "deprecated, use minetest.is_area_protected() instead.") - minetest.is_area_protected(minp, maxp, player_name, interval) + return minetest.is_area_protected(minp, maxp, player_name, interval) end diff --git a/mods/default/locale/default.de.tr b/mods/default/locale/default.de.tr new file mode 100644 index 0000000..c842b85 --- /dev/null +++ b/mods/default/locale/default.de.tr @@ -0,0 +1,211 @@ +# textdomain: default +Locked Chest=Abgeschlossene Truhe +Locked Chest (owned by @1)=Abgeschlossene Truhe (Eigentum von @1) +You do not own this chest.=Ihnen gehört diese Truhe nicht. +a locked chest=eine abgeschlossene Truhe +Chest=Truhe +Stick=Stock +Paper=Papier +"@1" by @2=„@1“ von @2 +Book=Buch +Book with Text=Buch mit Text +Skeleton Key=Skelettschlüssel +Key to @1's @2=Schlüssel für @2 von @1 +Coal Lump=Kohleklumpen +Iron Lump=Eisenklumpen +Copper Lump=Kupferklumpen +Tin Lump=Zinnklumpen +Mese Crystal=Mesekristall +Gold Lump=Goldklumpen +Diamond=Diamant +Clay Lump=Tonklumpen +Steel Ingot=Stahlbarren +Copper Ingot=Kupferbarren +Tin Ingot=Zinnbarren +Bronze Ingot=Bronzebarren +Gold Ingot=Goldbarren +Mese Crystal Fragment=Mesekristallfragment +Clay Brick=Tonziegel +Obsidian Shard=Obsidianscherbe +Flint=Feuerstein +Blueberries=Blaubeeren +Furnace is empty=Ofen ist leer +100% (output full)=100% (Ausgabe voll) +@1%=@1% +Empty=Leer +Not cookable=Nicht kochbar +Furnace active=Ofen aktiv +Furnace inactive=Ofen inaktiv +(Item: @1; Fuel: @2)=(Gegenstand: @1; Brennstoff: @2) +Furnace=Ofen +Stone=Stein +Cobblestone=Kopfsteinpflaster +Stone Brick=Steinziegel +Stone Block=Steinblock +Mossy Cobblestone=Mosiges Kopfsteinpflaster +Desert Stone=Wüstenstein +Desert Cobblestone=Wüstenkopfsteinpflaster +Desert Stone Brick=Wüstensteinziegel +Desert Stone Block=Wüstensteinblock +Sandstone=Sandstein +Sandstone Brick=Sandsteinziegel +Sandstone Block=Sandsteinblock +Desert Sandstone=Wüstensandstein +Desert Sandstone Brick=Wüstensandsteinziegel +Desert Sandstone Block=Wüstensandsteinblock +Silver Sandstone=Silbersandstein +Silver Sandstone Brick=Silbersandsteinziegel +Silver Sandstone Block=Silbersandsteinblock +Obsidian=Obsidian +Obsidian Brick=Obsidianziegel +Obsidian Block=Obsidianblock +Dirt=Erde +Dirt with Grass=Erde mit Gras +Dirt with Grass and Footsteps=Erde mit Gras und Fußstapfen +Dirt with Dry Grass=Erde mit trockenem Gras +Dirt with Snow=Erde mit Schnee +Dirt with Rainforest Litter=Erde mit Regenwaldboden +Dirt with Coniferous Litter=Erde mit Nadelwaldboden +Dry Dirt=Trockene Erde +Dry Dirt with Dry Grass=Trockene Erde mit trockenem Gras +Permafrost=Permafrost +Permafrost with Stones=Permafrost mit Steinen +Permafrost with Moss=Permafrost mit Moos +Sand=Sand +Desert Sand=Wüstensand +Silver Sand=Silbersand +Gravel=Kies +Clay=Ton +Snow=Schnee +Snow Block=Schneeblock +Ice=Eis +Cave Ice=Höhleneis +Apple Tree=Apfelbaum +Apple Wood Planks=Apfelbaumplanken +Apple Tree Sapling=Apfelbaumsetzling +Apple Tree Leaves=Apfelbaumblätter +Apple=Apfel +Apple Marker=Apfelmarkierung +Jungle Tree=Dschungelbaum +Jungle Wood Planks=Dschungelholzplanken +Jungle Tree Leaves=Dschungelbaumblätter +Jungle Tree Sapling=Dschungelbaumsetzling +Emergent Jungle Tree Sapling=Hervorstehender Dschungelbaumsetzling +Pine Tree=Kiefernbaum +Pine Wood Planks=Kiefernholzplanken +Pine Needles=Kiefernnadeln +Pine Tree Sapling=Kiefernbaumsetzling +Acacia Tree=Akazienbaum +Acacia Wood Planks=Akazienholzplanken +Acacia Tree Leaves=Akazienbaumblätter +Acacia Tree Sapling=Akazienbaumsetzling +Aspen Tree=Espenbaum +Aspen Wood Planks=Espenholzplanken +Aspen Tree Leaves=Espenbaumblätter +Aspen Tree Sapling=Esepenbaumsetzling +Coal Ore=Kohleerz +Coal Block=Kohleblock +Iron Ore=Eisenerz +Steel Block=Stahlblock +Copper Ore=Kupfererz +Copper Block=Kupferblock +Tin Ore=Zinnerz +Tin Block=Zinnblock +Bronze Block=Bronzeblock +Mese Ore=Meseerz +Mese Block=Meseblock +Gold Ore=Golderz +Gold Block=Goldblock +Diamond Ore=Diamanterz +Diamond Block=Diamantblock +Cactus=Kaktus +Large Cactus Seedling=Großer Kaktussämling +Papyrus=Papyrus +Dry Shrub=Trockener Busch +Jungle Grass=Dschungelgras +Grass=Gras +Dry Grass=Trockenes Gras +Fern=Farn +Marram Grass=Dünengras +Bush Stem=Buschstamm +Bush Leaves=Buschblätter +Bush Sapling=Buschsetzling +Blueberry Bush Leaves with Berries=Blaubeerbuschblätter mit Beeren +Blueberry Bush Leaves=Blaubeerbuschblätter +Blueberry Bush Sapling=Blaubeerbuschsetzling +Acacia Bush Stem=Akazienbuschstamm +Acacia Bush Leaves=Akazienbuschblätter +Acacia Bush Sapling=Akazienbuschsetzling +Pine Bush Stem=Kiefernbuschstamm +Pine Bush Needles=Kiefernbuschnadeln +Pine Bush Sapling=Kiefernbuschsetzling +Kelp=Seetang +Green Coral=Grüne Koralle +Pink Coral=Rosa Koralle +Cyan Coral=Türkise Koralle +Brown Coral=Braune Koralle +Orange Coral=Orange Koralle +Coral Skeleton=Korallenskelett +Water Source=Wasserquelle +Flowing Water=Fließendes Wasser +River Water Source=Flusswasserquelle +Flowing River Water=Fließendes Flusswasser +Lava Source=Lavaquelle +Flowing Lava=Fließende Lava +Empty Bookshelf=Leeres Bücherregal +Bookshelf (@1 written, @2 empty books)=Bücherregal (@1 beschriebene, @2 leere Bücher) +Bookshelf=Bücherregal +Text too long=Text zu lang +Wooden Sign=Holzschild +Steel Sign=Stahlschild +Wooden Ladder=Holzleiter +Steel Ladder=Stahlleiter +Apple Wood Fence=Apfelholzzaun +Acacia Wood Fence=Akazienholzzaun +Jungle Wood Fence=Dschungelholzzaun +Pine Wood Fence=Kiefernholzzaun +Aspen Wood Fence=Espenholzzaun +Apple Wood Fence Rail=Apfelholzzaungeländer +Acacia Wood Fence Rail=Akazienholzzaungeländer +Jungle Wood Fence Rail=Dschungelholzzaungeländer +Pine Wood Fence Rail=Kiefernholzzaungeländer +Aspen Wood Fence Rail=Espenholzzaungeländer +Glass=Glas +Obsidian Glass=Obsidianglas +Brick Block=Ziegelblock +Mese Lamp=Meselampe +Mese Post Light=Mesestandlampe +Cloud=Wolke +Wooden Pickaxe=Holzspitzhacke +Stone Pickaxe=Steinspitzhacke +Bronze Pickaxe=Bronzespitzhacke +Steel Pickaxe=Stahlspitzhacke +Mese Pickaxe=Mesespitzhacke +Diamond Pickaxe=Diamantspitzhacke +Wooden Shovel=Holzschaufel +Stone Shovel=Steinschaufel +Bronze Shovel=Bronzeschaufel +Steel Shovel=Stahlschaufel +Mese Shovel=Meseschaufel +Diamond Shovel=Diamantschaufel +Wooden Axe=Holzaxt +Stone Axe=Steinaxt +Bronze Axe=Bronzeaxt +Steel Axe=Stahlaxt +Mese Axe=Meseaxt +Diamond Axe=Diamantaxt +Wooden Sword=Holzschwert +Stone Sword=Steinschwert +Bronze Sword=Bronzeschwert +Steel Sword=Stahlschwert +Mese Sword=Meseschwert +Diamond Sword=Diamantschwert +Key=Schlüssel +Torch=Fackel +@1 will intersect protection on growth.=@1 wird bei Wachstum mit geschützter Zone überlappen. +Title:=Titel: +Contents:=Inhalt: +Save=Speichern +by @1=von @1 +Page @1 of @2=Seite @1 von @2 +"@1"=„@1“ diff --git a/mods/default/locale/default.es.tr b/mods/default/locale/default.es.tr new file mode 100644 index 0000000..e55c133 --- /dev/null +++ b/mods/default/locale/default.es.tr @@ -0,0 +1,211 @@ +# textdomain: default +Locked Chest=Cofre cerrado +Locked Chest (owned by @1)=Cofre cerrado (propiedad de @1) +You do not own this chest.=Este cofre no te pertenece. +a locked chest=un cofre cerrado +Chest=Cofre +Stick=Palo +Paper=Papel +"@1" by @2="@1" por @2 +Book=Libro +Book with Text=Libro escrito +Skeleton Key=Llave esqueleto +Key to @1's @2=Llave para @2 de @1 +Coal Lump=Fragmento de carbón +Iron Lump=Pepita de hierro +Copper Lump=Pepita de cobre +Tin Lump=Pepita de estaño +Mese Crystal=Cristal de mese +Gold Lump=Pepita de oro +Diamond=Diamante +Clay Lump=Fragmento de arcilla +Steel Ingot=Lingote de acero +Copper Ingot=Lingote de cobre +Tin Ingot=Lingote de estaño +Bronze Ingot=Lingote de bronce +Gold Ingot=Lingote de oro +Mese Crystal Fragment=Fragmento de cristal de mese +Clay Brick=Ladrillo de arcilla +Obsidian Shard=Esquirla de obsidiana +Flint=Pedernal +Blueberries=Arándanos +Furnace is empty=El horno está vacío +100% (output full)=100% (salida completa) +@1%=@1% +Empty=Vacío +Not cookable=No se puede cocinar +Furnace active=Horno activado +Furnace inactive=Horno desactivado +(Item: @1; Fuel: @2)=(Objeto: @1; Combustible: @2) +Furnace=Horno +Stone=Piedra +Cobblestone=Adoquín +Stone Brick=Ladrillo de piedra +Stone Block=Bloque de piedra +Mossy Cobblestone=Adoquín musgoso +Desert Stone=Piedra desértica +Desert Cobblestone=Adoquín desértico +Desert Stone Brick=Ladrillo de piedra desértica +Desert Stone Block=Bloque de piedra desértica +Sandstone=Piedra arenisca +Sandstone Brick=Ladrillo de arenisca +Sandstone Block=Bloque de arenisca +Desert Sandstone=Piedra arenisca desértica +Desert Sandstone Brick=Ladrillo de arenisca desértica +Desert Sandstone Block=Bloque de arenisca deśertica +Silver Sandstone=Piedra arenisca plateada +Silver Sandstone Brick=Ladrillo de arenisca plateada +Silver Sandstone Block=Bloque de arenisca plateada +Obsidian=Obsidiana +Obsidian Brick=Ladrillo de obsidiana +Obsidian Block=Bloque de obsidiana +Dirt=Tierra +Dirt with Grass=Tierra con pasto +Dirt with Grass and Footsteps=Tierra con pasto y pisadas +Dirt with Dry Grass=Tierra con pasto seco +Dirt with Snow=Tierra con nieve +Dirt with Rainforest Litter=Tierra con hojarasca de selva tropical +Dirt with Coniferous Litter=Tierra con hojarasca de coníferas +Dry Dirt=Tierra Seca +Dry Dirt with Dry Grass=Tierra seca con pasto seco +Permafrost=Permafrost +Permafrost with Stones=Permafrost pedregoso +Permafrost with Moss=Permafrost musgoso +Sand=Arena +Desert Sand=Arena desértica +Silver Sand=Arena plateada +Gravel=Gravilla +Clay=Arcilla +Snow=Nieve +Snow Block=Bloque de nieve +Ice=Hielo +Cave Ice=Hielo de cueva +Apple Tree=Madera de manzano +Apple Wood Planks=Tablas de manzano +Apple Tree Sapling=Retoño de manzano +Apple Tree Leaves=Hojas de manzano +Apple=Manzana +Apple Marker=Marcador de manzano +Jungle Tree=Madera de árbol tropical +Jungle Wood Planks=Tablas de madera tropical +Jungle Tree Leaves=Hojas de árbol tropical +Jungle Tree Sapling=Retoño de árbol tropical +Emergent Jungle Tree Sapling=Retoño de árbol tropical +Pine Tree=Madera de pino +Pine Wood Planks=Tablas de pino +Pine Needles=Agujas de pino +Pine Tree Sapling=Retoño de pino +Acacia Tree=Madera de acacia +Acacia Wood Planks=Tablas de acacia +Acacia Tree Leaves=Hojas de acacia +Acacia Tree Sapling=Retoño de acacia +Aspen Tree=Madera de álamo +Aspen Wood Planks=Tablas de álamo +Aspen Tree Leaves=Hojas de álamo +Aspen Tree Sapling=Retoño de álamo +Coal Ore=Mineral de carbón +Coal Block=Bloque de carbón +Iron Ore=Mineral de hierro +Steel Block=Bloque de acero +Copper Ore=Mineral de cobre +Copper Block=Bloque de cobre +Tin Ore=Mineral de estaño +Tin Block=Bloque de estaño +Bronze Block=Bloque de bronce +Mese Ore=Mineral de mese +Mese Block=Bloque de mese +Gold Ore=Mineral de oro +Gold Block=Bloque de oro +Diamond Ore=Mineral de diamante +Diamond Block=Bloque de diamante +Cactus=Cáctus +Large Cactus Seedling=Vástago grande de cactus +Papyrus=Papiro +Dry Shrub=Arbusto seco +Jungle Grass=Pasto de jungla +Grass=Pasto +Dry Grass=Pasto seco +Fern=Helecho +Marram Grass=Carrizo +Bush Stem=Tallo de arbusto +Bush Leaves=Hojas de arbusto +Bush Sapling=Retoño de arbusto +Blueberry Bush Leaves with Berries=Hojas de arbusto de arándano con bayas +Blueberry Bush Leaves=Hojas de arbusto de arándano +Blueberry Bush Sapling=Retoño de arbusto de arándano +Acacia Bush Stem=Tallo de arbusto de acacia +Acacia Bush Leaves=Hojas de arbusto de acacia +Acacia Bush Sapling=Retoño de arbusto de acacia +Pine Bush Stem=Tallo de arbusto de pino +Pine Bush Needles=Agujas de arbusto de pino +Pine Bush Sapling=Retoño de arbusto de pino +Kelp=Alga marina +Green Coral=Coral verde +Pink Coral=Coral rosa +Cyan Coral=Coral cián +Brown Coral=Coral café +Orange Coral=Coral naranja +Coral Skeleton=Esqueleto de coral +Water Source=Fuente de agua +Flowing Water=Fluído de agua +River Water Source=Fuente de agua de río +Flowing River Water=Fluído de agua de río +Lava Source=Fuente de lava +Flowing Lava=Fluído de lava +Empty Bookshelf=Librería vacía +Bookshelf (@1 written, @2 empty books)=Librería(@1 escritos, @2 libros en blanco) +Bookshelf=Librería +Text too long=Texto demasiado largo +Wooden Sign=Cartel de madera +Steel Sign=Cartel de acero +Wooden Ladder=Escalera de madera +Steel Ladder=Escalera de acero +Apple Wood Fence=Cerca de manzano +Acacia Wood Fence=Cerca de acacia +Jungle Wood Fence=Cerca de madera tropical +Pine Wood Fence=Cerca de pino +Aspen Wood Fence=Cerca de álamo +Apple Wood Fence Rail=Listones de manzano para cerca +Acacia Wood Fence Rail=Listones de acacia para cerca +Jungle Wood Fence Rail=Listones de madera tropical para cerca +Pine Wood Fence Rail=Listones de pino para cerca +Aspen Wood Fence Rail=Listones de álamo para cerca +Glass=Vidrio +Obsidian Glass=Vidrio de obsidiana +Brick Block=Bloque de ladrillo +Mese Lamp=Lámpara de mese +Mese Post Light=Poste de luz de mese +Cloud=Nube +Wooden Pickaxe=Pico de madera +Stone Pickaxe=Pico de piedra +Bronze Pickaxe=Pico de bronce +Steel Pickaxe=Pico de acero +Mese Pickaxe=Pico de mese +Diamond Pickaxe=Pico de diamante +Wooden Shovel=Pala de madera +Stone Shovel=Pala de piedra +Bronze Shovel=Pala de bronce +Steel Shovel=Pala de acero +Mese Shovel=Pala de mese +Diamond Shovel=Pala de diamante +Wooden Axe=Hacha de madera +Stone Axe=Hacha de piedra +Bronze Axe=Hacha de bronce +Steel Axe=Hacha de acero +Mese Axe=Hacha de mese +Diamond Axe=Hacha de diamante +Wooden Sword=Espada de madera +Stone Sword=Espada de piedra +Bronze Sword=Espada de bronce +Steel Sword=Espada de acero +Mese Sword=Espada de mese +Diamond Sword=Espada de diamante +Key=Llave +Torch=Antorcha +@1 will intersect protection on growth.=@1 intersectará con protección cuando crezca. +Title:=Título: +Contents:=Contenidos: +Save=Guardar +by @1=por @1 +Page @1 of @2=Página @1 de @2 +"@1"="@1" diff --git a/mods/default/locale/default.fr.tr b/mods/default/locale/default.fr.tr new file mode 100644 index 0000000..2214e37 --- /dev/null +++ b/mods/default/locale/default.fr.tr @@ -0,0 +1,211 @@ +# textdomain: default +Locked Chest=Coffre verrouillé +Locked Chest (owned by @1)=Coffre verrouillé (possédé par @1) +You do not own this chest.=Ce coffre ne vous appartient pas. +a locked chest=un coffre verrouillé +Chest=Coffre +Stick=Baton +Paper=Papier +"@1" by @2=« @1 » de @2 +Book=Livre +Book with Text=Livre avec du texte +Skeleton Key=Squelette +Key to @1's @2=Clé pour @2 de @1 +Coal Lump=Morceau de charbon +Iron Lump=Morceau de fer +Copper Lump=Morceau de cuivre +Tin Lump=Morceau d'étain +Mese Crystal=Cristal de Mese +Gold Lump=Morceau d'or +Diamond=Diamant +Clay Lump=Morceau d'argile +Steel Ingot=Lingot d'acier +Copper Ingot=Lingot de cuivre +Tin Ingot=Lingot d'étain +Bronze Ingot=Lingot de bronze +Gold Ingot=Lingot d'or +Mese Crystal Fragment=Fragment de cristal de Mese +Clay Brick=Brique d'argile +Obsidian Shard=Tesson d'obsidienne +Flint=Silex +Blueberries=Myrtille +Furnace is empty=Le four est vide +100% (output full)=100% (Sortie pleine) +@1%=@1% +Empty=Vide +Not cookable=Ne se cuit pas +Furnace active=Four actif +Furnace inactive=Four inactif +(Item: @1; Fuel: @2)=(Article: @1; Carburant: @2) +Furnace=Four +Stone=Pierre +Cobblestone=Pavé +Stone Brick=Brique de pierre +Stone Block=Bloc de pierre +Mossy Cobblestone=Pavé moussu +Desert Stone=Pierre du désert +Desert Cobblestone=Pavé de pierre du désert +Desert Stone Brick=Brique de pierre du désert +Desert Stone Block=Bloc de pierre du désert +Sandstone=Grès +Sandstone Brick=Brique de grès +Sandstone Block=Bloc de grès +Desert Sandstone=Grès du désert +Desert Sandstone Brick=Brique de grès du désert +Desert Sandstone Block=Bloc de grès du désert +Silver Sandstone=Grès argenté +Silver Sandstone Brick=Brique de grès argenté +Silver Sandstone Block=Bloc de grès argenté +Obsidian=Obsidienne +Obsidian Brick=Brique d'obsidienne +Obsidian Block=Block d'obsidienne +Dirt=Terre +Dirt with Grass=Terre avec de l'herbe +Dirt with Grass and Footsteps=Terre avec de l'herbe et des traces de pas +Dirt with Dry Grass=Terre avec de l'herbe sèche +Dirt with Snow=Terre avec de la neige +Dirt with Rainforest Litter=Terre avec sol de forêt humide +Dirt with Coniferous Litter=Terre avec sol de forêt de conifère +Dry Dirt=Terre sèche +Dry Dirt with Dry Grass=Terre sèche avec de l'herbe sèche +Permafrost=Pergélisol +Permafrost with Stones=Pergélisol avec de la pierre +Permafrost with Moss=Pergélisol avec de la mousse +Sand=Sable +Desert Sand=Sable du désert +Silver Sand=Sable argenté +Gravel=Gravier +Clay=Argile +Snow=Neige +Snow Block=Bloc de neige +Ice=Glace +Cave Ice=Glace de grotte +Apple Tree=Pommier +Apple Wood Planks=Planche de pommier +Apple Tree Sapling=Pousse de pommier +Apple Tree Leaves=Feuilles de pommier +Apple=Pomme +Apple Marker=Marqueur de pomme +Jungle Tree=Arbre de la jungle +Jungle Wood Planks=Planche d'arbre de la jungle +Jungle Tree Leaves=Feuilles d'arbre de la jungle +Jungle Tree Sapling=Pousse d'arbre de la jungle +Emergent Jungle Tree Sapling=Pousse d'arbre de la jungle émergent +Pine Tree=Pin +Pine Wood Planks=Planche de pin +Pine Needles=Aiguilles de pin +Pine Tree Sapling=Pousse de pin +Acacia Tree=Acacia +Acacia Wood Planks=Planche d'acacia +Acacia Tree Leaves=Feuilles d'acacia +Acacia Tree Sapling=Pousse d'acacia +Aspen Tree=Tremble +Aspen Wood Planks=Planche de tremble +Aspen Tree Leaves=Feuilles de tremble +Aspen Tree Sapling=Pousse de tremble +Coal Ore=Minerai de charbon +Coal Block=Bloc de charbon +Iron Ore=Bloc de fer +Steel Block=Bloc d'acier +Copper Ore=Minerai de cuivre +Copper Block=Bloc de cuivre +Tin Ore=Minerai d'étain +Tin Block=Bloc d'étain +Bronze Block=Bloc de bronze +Mese Ore=Minerai de Mese +Mese Block=Bloc de Mese +Gold Ore=Minerai d'or +Gold Block=Bloc d'or +Diamond Ore=Minerai de diamant +Diamond Block=Bloc de diamant +Cactus=Cactus +Large Cactus Seedling=Grand plan de cactus +Papyrus=Papyrus +Dry Shrub=Arbuste sec +Jungle Grass=Herbe de la jungle +Grass=Herbe +Dry Grass=Herbe sèche +Fern=Fougère +Marram Grass=Ammophile +Bush Stem=Tige de buisson +Bush Leaves=Feuilles de buisson +Bush Sapling=Pousse de buisson +Blueberry Bush Leaves with Berries=Buisson de myrtille avec des myrtilles +Blueberry Bush Leaves=Feuilles de buisson à myrtilles +Blueberry Bush Sapling=Pousse de buisson à myrtilles +Acacia Bush Stem=Tige de buisson d'acacia +Acacia Bush Leaves=Feuilles de buisson d'acacia +Acacia Bush Sapling=Pousses de buisson d'acacia +Pine Bush Stem=Tige de buisson de pin +Pine Bush Needles=Aiguilles de buisson de pin +Pine Bush Sapling=Pousse de buisson de pin +Kelp=Varech +Green Coral=Corail vert +Pink Coral=Corail rose +Cyan Coral=Corail cyan +Brown Coral=Corail marron +Orange Coral=Corail orange +Coral Skeleton=Squelette de corail +Water Source=Source d'eau +Flowing Water=Ecoulement d'eau +River Water Source=Source d'eau de rivière +Flowing River Water=Ecoulement d'eau de rivière +Lava Source=Source de lave +Flowing Lava=Ecoulement de lave +Empty Bookshelf=Bibliothèque vide +Bookshelf (@1 written, @2 empty books)=Bibliothèque (@1 écrits, @2 livres vides) +Bookshelf=Bibliothèque +Text too long=Texte trop longue +Wooden Sign=Panneau en bois +Steel Sign=Panneau en acier +Wooden Ladder=Echelle en bois +Steel Ladder=Echelle en acier +Apple Wood Fence=Barrière de bois de pommier +Acacia Wood Fence=Barrière de bois d'acacia +Jungle Wood Fence=Barrière de bois de la jungle +Pine Wood Fence=Barrière de bois de pin +Aspen Wood Fence=Barrière de bois de tremble +Apple Wood Fence Rail=Clôture de bois de pommier +Acacia Wood Fence Rail=Clôture de bois d'acacia +Jungle Wood Fence Rail=Clôture de bois de la jungle +Pine Wood Fence Rail=Clôture de bois de pin +Aspen Wood Fence Rail=Clôture de bois de tremble +Glass=Verre +Obsidian Glass=Verre d'obsidienne +Brick Block=Bloc de brique +Mese Lamp=Lampe de Mese +Mese Post Light=Réverbère de Mese +Cloud=Nuage +Wooden Pickaxe=Pioche en bois +Stone Pickaxe=Pioche en pierre +Bronze Pickaxe=Pioche en bronze +Steel Pickaxe=Pioche en acier +Mese Pickaxe=Pioche de Mese +Diamond Pickaxe=Pioche en diamant +Wooden Shovel=Pelle en bois +Stone Shovel=Pelle en pierre +Bronze Shovel=Pelle en bronze +Steel Shovel=Pelle en acier +Mese Shovel=Pelle en Mese +Diamond Shovel=Pelle en diamant +Wooden Axe=Hache en bois +Stone Axe=Hache en pierre +Bronze Axe=Hache en bronze +Steel Axe=Hache en acier +Mese Axe=Hache en Mese +Diamond Axe=Hache en diamant +Wooden Sword=Epée en bois +Stone Sword=Epée en pierre +Bronze Sword=Epée en bronze +Steel Sword=Epée en acier +Mese Sword=Epée en Mese +Diamond Sword=Epée en diamant +Key=Clé +Torch=Torche +@1 will intersect protection on growth.=@1 chevauchera la zone protégée avec la croissance. +Title:=Titre : +Contents:=Contenu : +Save=Sauvegarder +by @1=de @1 +Page @1 of @2=Page @1 sur @2 +"@1"=« @1 » diff --git a/mods/default/locale/default.it.tr b/mods/default/locale/default.it.tr new file mode 100644 index 0000000..66f154b --- /dev/null +++ b/mods/default/locale/default.it.tr @@ -0,0 +1,205 @@ +# textdomain: default +Locked Chest=Baule chiuso a chiave +Locked Chest (owned by @1)=Baule chiuso a chiave (di proprietà di @1) +You do not own this chest.=Questo baule non ti appartiene. +a locked chest=un baule chiuso a chiave +Chest=Baule +Stick=Bastone +Paper=Carta +"@1" by @2="@1" di @2 +Book=Libro +Book with Text=Libro con testo +Skeleton Key=Chiave dello Scheletro +Key to @1's @2=Chiave per @2 di @1 +Coal Lump=Grumo di carbone +Iron Lump=Grumo di ferro +Copper Lump=Grumo di rame +Tin Lump=Grumo di stagno +Mese Crystal=Cristallo di mese +Gold Lump=Grumo d'oro +Diamond=Diamante +Clay Lump=Grumo d'argilla +Steel Ingot=Lingotto d'acciaio +Copper Ingot=Lingotto di rame +Tin Ingot=Lingotto di stagno +Bronze Ingot=Lingotto di bronzo +Gold Ingot=Lingotto d'oro +Mese Crystal Fragment=Frammento di cristallo di mese +Clay Brick=Mattone d'argilla +Obsidian Shard=Scheggia d'ossidiana +Flint=Selce +Blueberries=Mirtilli +Furnace is empty=La fornace è vuota +100% (output full)=100% (uscita piena) +@1%=@1% +Empty=Vuota +Not cookable=Non cucinabile +Furnace active=Fornace attiva +Furnace inactive=Fornace inattiva +(Item: @1; Fuel: @2)=(Oggetto: @1; Combustibile: @2) +Furnace=Fornace +Stone=Pietra +Cobblestone=Ciottoli +Stone Brick=Mattone di pietra +Stone Block=Blocco di pietra +Mossy Cobblestone=Ciottoli muschiosi +Desert Stone=Pietra del deserto +Desert Cobblestone=Ciottoli del deserto +Desert Stone Brick=Mattone di pietra del deserto +Desert Stone Block=Blocco di pietra del deserto +Sandstone=Arenaria +Sandstone Brick=Mattone d'arenaria +Sandstone Block=Blocco d'arenaria +Desert Sandstone=Arenaria del deserto +Desert Sandstone Brick=Mattone d'arenaria del deserto +Desert Sandstone Block=Blocco d'arenaria del deserto +Silver Sandstone=Arenaria argentata +Silver Sandstone Brick=Mattone d'arenaria argentata +Silver Sandstone Block=Blocco d'arenaria argentata +Obsidian=Ossidiana +Obsidian Brick=Mattone d'ossidiana +Obsidian Block=Blocco d'ossidiana +Dirt=Terra +Dirt with Grass=Terra con erba +Dirt with Grass and Footsteps=Terra con erba e impronte +Dirt with Dry Grass=Terra con erba secca +Dirt with Snow=Terra con neve +Dirt with Rainforest Litter=Terra con detriti della foresta pluviale +Dirt with Coniferous Litter=Terra con detriti di conifera +Dry Dirt=Terra asciutta +Dry Dirt with Dry Grass=Terra asciutta con erba secca +Permafrost=Permafrost +Permafrost with Stones=Permafrost con pietra +Permafrost with Moss=Permafrost con muschio +Sand=Sabbia +Desert Sand=Sabbia del deserto +Silver Sand=Sabbia argentata +Gravel=Ghiaia +Clay=Argilla +Snow=Neve +Snow Block=Blocco di neve +Ice=Ghiaccio +Cave Ice=Ghiaccio di caverna +Apple Tree=Melo +Apple Wood Planks=Assi di melo +Apple Tree Sapling=Alberello di melo +Apple Tree Leaves=Foglie di melo +Apple=Mela +Apple Marker=Marcatore mela +Jungle Tree=Albero della giungla +Jungle Wood Planks=Assi di legno della giungla +Jungle Tree Leaves=Foglie di albero della giungla +Jungle Tree Sapling=Alberello della giungla +Emergent Jungle Tree Sapling=Alberello della giungla emergente +Pine Tree=Pino +Pine Wood Planks=Assi di legno di pino +Pine Needles=Aghi di pino +Pine Tree Sapling=Alberello di pino +Acacia Tree=Acacia +Acacia Wood Planks=Assi di legno d'acacia +Acacia Tree Leaves=Foglie d'acacia +Acacia Tree Sapling=Alberello d'acacia +Aspen Tree=Pioppo +Aspen Wood Planks=Assi di legno di pioppo +Aspen Tree Leaves=Foglie di pioppo +Aspen Tree Sapling=Alberello di pioppo +Coal Ore=Minerale di carbone +Coal Block=Blocco di carbone +Iron Ore=Minerale di ferro +Steel Block=Blocco d'acciaio +Copper Ore=Minerale di rame +Copper Block=Blocco di rame +Tin Ore=Minerale di stagno +Tin Block=Blocco di stagno +Bronze Block=Blocco di bronzo +Mese Ore=Minerale di mese +Mese Block=Blocco di mese +Gold Ore=Minerale d'oro +Gold Block=Blocco d'oro +Diamond Ore=Minerale di diamante +Diamond Block=Blocco di diamante +Cactus=Cactus +Large Cactus Seedling=Piantina di cactus grande +Papyrus=Papiro +Dry Shrub=Arbusto secco +Jungle Grass=Erba della giungla +Grass=Erba +Dry Grass=Erba secca +Fern=Felce +Marram Grass=Ammofila arenaria +Bush Stem=Fusto di cespuglio +Bush Leaves=Foglie di cespuglio +Bush Sapling=Alberello di cespuglio +Blueberry Bush Leaves with Berries=Foglie di cespuglio di mirtilli con bacche +Blueberry Bush Leaves=Foglie di cespuglio di mirtilli +Blueberry Bush Sapling=Alberello di cespuglio di mirtilli +Acacia Bush Stem=Fusto di cespuglio d'acacia +Acacia Bush Leaves=Foglie di cespuglio d'acacia +Acacia Bush Sapling=Alberello di cespuglio d'acacia +Pine Bush Stem=Fusto di cespuglio di pino +Pine Bush Needles=Aghi di cespuglio di pino +Pine Bush Sapling=Alberello di cespuglio di pino +Kelp=Alga +Green Coral=Corallo verde +Pink Coral=Corallo rosa +Cyan Coral=Corallo ciano +Brown Coral=Corallo marrone +Orange Coral=Corallo arancione +Coral Skeleton=Scheletro di corallo +Water Source=Fonte d'acqua +Flowing Water=Acqua corrente +River Water Source=Fonte d'acqua di fiume +Flowing River Water=Acqua corrente di fiume +Lava Source=Fonte di lava +Flowing Lava=Lava corrente +Empty Bookshelf=Libreria vuota +Bookshelf (@1 written, @2 empty books)=Libreria (@1 scritti, @2 vuoti) +Bookshelf=Libreria +Text too long=Testo troppo lungo +Wooden Sign=Cartello di legno +Steel Sign=Cartello d'acciaio +Wooden Ladder=Scala a pioli di legno +Steel Ladder=Scala a pioli d'acciaio +Apple Wood Fence=Recinzione di legno di melo +Acacia Wood Fence=Recinzione di legno d'acacia +Jungle Wood Fence=Recinzione di legno della giungla +Pine Wood Fence=Recinzione di legno di pino +Aspen Wood Fence=Recinzione di legno di pioppo +Apple Wood Fence Rail=Ringhiera della recinzione di legno di melo +Acacia Wood Fence Rail=Ringhiera della recinzione di legno d'acacia +Jungle Wood Fence Rail=Ringhiera della recinzione di legno della giungla +Pine Wood Fence Rail=Ringhiera della recinzione di legno di pino +Aspen Wood Fence Rail=Ringhiera della recinzione di legno di pioppo +Glass=Vetro +Obsidian Glass=Vetro d'ossidiana +Brick Block=Blocco di mattone +Mese Lamp=Lampada di mese +Mese Post Light=Lampioncino di mese +Cloud=Nuvola +Wooden Pickaxe=Piccone di legno +Stone Pickaxe=Piccone di pietra +Bronze Pickaxe=Piccone di bronzo +Steel Pickaxe=Piccone d'acciaio +Mese Pickaxe=Piccone di mese +Diamond Pickaxe=Piccone di diamante +Wooden Shovel=Pala di legno +Stone Shovel=Pala di pietra +Bronze Shovel=Pala di bronzo +Steel Shovel=Pala d'acciaio +Mese Shovel=Pala di mese +Diamond Shovel=Pala di diamante +Wooden Axe=Ascia di legno +Stone Axe=Ascia di pietra +Bronze Axe=Ascia di bronzo +Steel Axe=Ascia d'acciaio +Mese Axe=Ascia di mese +Diamond Axe=Ascia di diamante +Wooden Sword=Spada di legno +Stone Sword=Spada di pietra +Bronze Sword=Spada di bronzo +Steel Sword=Spada d'acciaio +Mese Sword=Spada di mese +Diamond Sword=Spada di diamante +Key=Chiave +Torch=Torcia +@1 will intersect protection on growth.=@1 crescendo attraverserà la protezione. diff --git a/mods/default/locale/template.txt b/mods/default/locale/template.txt new file mode 100644 index 0000000..c8e616c --- /dev/null +++ b/mods/default/locale/template.txt @@ -0,0 +1,211 @@ +# textdomain: default +Locked Chest= +Locked Chest (owned by @1)= +You do not own this chest.= +a locked chest= +Chest= +Stick= +Paper= +"@1" by @2= +Book= +Book with Text= +Skeleton Key= +Key to @1's @2= +Coal Lump= +Iron Lump= +Copper Lump= +Tin Lump= +Mese Crystal= +Gold Lump= +Diamond= +Clay Lump= +Steel Ingot= +Copper Ingot= +Tin Ingot= +Bronze Ingot= +Gold Ingot= +Mese Crystal Fragment= +Clay Brick= +Obsidian Shard= +Flint= +Blueberries= +Furnace is empty= +100% (output full)= +@1%= +Empty= +Not cookable= +Furnace active= +Furnace inactive= +(Item: @1; Fuel: @2)= +Furnace= +Stone= +Cobblestone= +Stone Brick= +Stone Block= +Mossy Cobblestone= +Desert Stone= +Desert Cobblestone= +Desert Stone Brick= +Desert Stone Block= +Sandstone= +Sandstone Brick= +Sandstone Block= +Desert Sandstone= +Desert Sandstone Brick= +Desert Sandstone Block= +Silver Sandstone= +Silver Sandstone Brick= +Silver Sandstone Block= +Obsidian= +Obsidian Brick= +Obsidian Block= +Dirt= +Dirt with Grass= +Dirt with Grass and Footsteps= +Dirt with Dry Grass= +Dirt with Snow= +Dirt with Rainforest Litter= +Dirt with Coniferous Litter= +Dry Dirt= +Dry Dirt with Dry Grass= +Permafrost= +Permafrost with Stones= +Permafrost with Moss= +Sand= +Desert Sand= +Silver Sand= +Gravel= +Clay= +Snow= +Snow Block= +Ice= +Cave Ice= +Apple Tree= +Apple Wood Planks= +Apple Tree Sapling= +Apple Tree Leaves= +Apple= +Apple Marker= +Jungle Tree= +Jungle Wood Planks= +Jungle Tree Leaves= +Jungle Tree Sapling= +Emergent Jungle Tree Sapling= +Pine Tree= +Pine Wood Planks= +Pine Needles= +Pine Tree Sapling= +Acacia Tree= +Acacia Wood Planks= +Acacia Tree Leaves= +Acacia Tree Sapling= +Aspen Tree= +Aspen Wood Planks= +Aspen Tree Leaves= +Aspen Tree Sapling= +Coal Ore= +Coal Block= +Iron Ore= +Steel Block= +Copper Ore= +Copper Block= +Tin Ore= +Tin Block= +Bronze Block= +Mese Ore= +Mese Block= +Gold Ore= +Gold Block= +Diamond Ore= +Diamond Block= +Cactus= +Large Cactus Seedling= +Papyrus= +Dry Shrub= +Jungle Grass= +Grass= +Dry Grass= +Fern= +Marram Grass= +Bush Stem= +Bush Leaves= +Bush Sapling= +Blueberry Bush Leaves with Berries= +Blueberry Bush Leaves= +Blueberry Bush Sapling= +Acacia Bush Stem= +Acacia Bush Leaves= +Acacia Bush Sapling= +Pine Bush Stem= +Pine Bush Needles= +Pine Bush Sapling= +Kelp= +Green Coral= +Pink Coral= +Cyan Coral= +Brown Coral= +Orange Coral= +Coral Skeleton= +Water Source= +Flowing Water= +River Water Source= +Flowing River Water= +Lava Source= +Flowing Lava= +Empty Bookshelf= +Bookshelf (@1 written, @2 empty books)= +Bookshelf= +Text too long= +Wooden Sign= +Steel Sign= +Wooden Ladder= +Steel Ladder= +Apple Wood Fence= +Acacia Wood Fence= +Jungle Wood Fence= +Pine Wood Fence= +Aspen Wood Fence= +Apple Wood Fence Rail= +Acacia Wood Fence Rail= +Jungle Wood Fence Rail= +Pine Wood Fence Rail= +Aspen Wood Fence Rail= +Glass= +Obsidian Glass= +Brick Block= +Mese Lamp= +Mese Post Light= +Cloud= +Wooden Pickaxe= +Stone Pickaxe= +Bronze Pickaxe= +Steel Pickaxe= +Mese Pickaxe= +Diamond Pickaxe= +Wooden Shovel= +Stone Shovel= +Bronze Shovel= +Steel Shovel= +Mese Shovel= +Diamond Shovel= +Wooden Axe= +Stone Axe= +Bronze Axe= +Steel Axe= +Mese Axe= +Diamond Axe= +Wooden Sword= +Stone Sword= +Bronze Sword= +Steel Sword= +Mese Sword= +Diamond Sword= +Key= +Torch= +@1 will intersect protection on growth.= +Title:= +Contents:= +Save= +by @1= +Page @1 of @2= +"@1"= diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua index 9c63d1e..a361f89 100644 --- a/mods/default/mapgen.lua +++ b/mods/default/mapgen.lua @@ -2,13 +2,18 @@ -- Aliases for map generators -- +-- All mapgens + minetest.register_alias("mapgen_stone", "default:stone") +minetest.register_alias("mapgen_water_source", "default:water_source") +minetest.register_alias("mapgen_river_water_source", "default:river_water_source") + +-- Additional aliases needed for mapgen v6 + +minetest.register_alias("mapgen_lava_source", "default:lava_source") minetest.register_alias("mapgen_dirt", "default:dirt") minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass") minetest.register_alias("mapgen_sand", "default:sand") -minetest.register_alias("mapgen_water_source", "default:water_source") -minetest.register_alias("mapgen_river_water_source", "default:river_water_source") -minetest.register_alias("mapgen_lava_source", "default:lava_source") minetest.register_alias("mapgen_gravel", "default:gravel") minetest.register_alias("mapgen_desert_stone", "default:desert_stone") minetest.register_alias("mapgen_desert_sand", "default:desert_sand") @@ -16,9 +21,6 @@ minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow") minetest.register_alias("mapgen_snowblock", "default:snowblock") minetest.register_alias("mapgen_snow", "default:snow") minetest.register_alias("mapgen_ice", "default:ice") -minetest.register_alias("mapgen_sandstone", "default:sandstone") - --- Flora minetest.register_alias("mapgen_tree", "default:tree") minetest.register_alias("mapgen_leaves", "default:leaves") @@ -29,14 +31,10 @@ minetest.register_alias("mapgen_junglegrass", "default:junglegrass") minetest.register_alias("mapgen_pine_tree", "default:pine_tree") minetest.register_alias("mapgen_pine_needles", "default:pine_needles") --- Dungeons - minetest.register_alias("mapgen_cobble", "default:cobble") minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble") minetest.register_alias("mapgen_mossycobble", "default:mossycobble") minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone") -minetest.register_alias("mapgen_sandstonebrick", "default:sandstonebrick") -minetest.register_alias("mapgen_stair_sandstone_block", "stairs:stair_sandstone_block") -- @@ -554,14 +552,6 @@ function default.register_ores() octaves = 1, persist = 0.0 }, - biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean", - "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean", - "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest", - "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest", - "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", - "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", - "rainforest", "rainforest_swamp", "rainforest_ocean", "underground", - "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} }) -- Dirt @@ -583,9 +573,10 @@ function default.register_ores() octaves = 1, persist = 0.0 }, + -- Only where default:dirt is present as surface material biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest", - "deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore", - "rainforest", "rainforest_swamp", "floatland_coniferous_forest"} + "deciduous_forest", "deciduous_forest_shore", "rainforest", + "rainforest_swamp", "floatland_coniferous_forest"} }) -- Gravel @@ -607,14 +598,6 @@ function default.register_ores() octaves = 1, persist = 0.0 }, - biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean", - "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean", - "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest", - "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest", - "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert", - "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean", - "rainforest", "rainforest_swamp", "rainforest_ocean", "underground", - "floatland_coniferous_forest", "floatland_coniferous_forest_ocean"} }) -- Scatter ores @@ -924,6 +907,8 @@ function default.register_biomes(upper_limit) node_river_water = "default:ice", node_riverbed = "default:gravel", depth_riverbed = 2, + node_dungeon = "default:ice", + node_dungeon_stair = "stairs:stair_ice", y_max = upper_limit, y_min = -8, heat_point = 0, @@ -939,8 +924,24 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_water_top = "default:ice", depth_water_top = 10, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = -9, - y_min = -112, + y_min = -255, + heat_point = 0, + humidity_point = 73, + }) + + minetest.register_biome({ + name = "icesheet_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 0, humidity_point = 73, }) @@ -952,6 +953,9 @@ function default.register_biomes(upper_limit) node_dust = "default:snow", node_riverbed = "default:gravel", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = upper_limit, y_min = 47, heat_point = 0, @@ -966,6 +970,9 @@ function default.register_biomes(upper_limit) depth_filler = 1, node_riverbed = "default:gravel", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 4, y_max = 46, y_min = 2, @@ -981,6 +988,9 @@ function default.register_biomes(upper_limit) depth_filler = 2, node_riverbed = "default:gravel", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = 1, y_min = -3, @@ -996,9 +1006,25 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:gravel", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = -4, - y_min = -112, + y_min = -255, + heat_point = 0, + humidity_point = 40, + }) + + minetest.register_biome({ + name = "tundra_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 0, humidity_point = 40, }) @@ -1014,6 +1040,9 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = upper_limit, y_min = 4, heat_point = 25, @@ -1029,9 +1058,25 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = 3, - y_min = -112, + y_min = -255, + heat_point = 25, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "taiga_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 25, humidity_point = 70, }) @@ -1047,6 +1092,9 @@ function default.register_biomes(upper_limit) depth_filler = 1, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = upper_limit, y_min = 4, heat_point = 20, @@ -1062,9 +1110,25 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = 3, - y_min = -112, + y_min = -255, + heat_point = 20, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "snowy_grassland_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 20, humidity_point = 35, }) @@ -1079,6 +1143,9 @@ function default.register_biomes(upper_limit) depth_filler = 1, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = upper_limit, y_min = 6, heat_point = 50, @@ -1093,6 +1160,9 @@ function default.register_biomes(upper_limit) depth_filler = 2, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = 5, y_min = 4, @@ -1108,8 +1178,24 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = 3, - y_min = -112, + y_min = -255, + heat_point = 50, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "grassland_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 50, humidity_point = 35, }) @@ -1124,6 +1210,9 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = upper_limit, y_min = 6, heat_point = 45, @@ -1138,6 +1227,9 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = 5, y_min = 4, @@ -1153,8 +1245,24 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = 3, - y_min = -112, + y_min = -255, + heat_point = 45, + humidity_point = 70, + }) + + minetest.register_biome({ + name = "coniferous_forest_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 45, humidity_point = 70, }) @@ -1169,6 +1277,9 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = upper_limit, y_min = 1, heat_point = 60, @@ -1183,6 +1294,9 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = 0, y_min = -1, heat_point = 60, @@ -1197,9 +1311,25 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = -2, - y_min = -112, + y_min = -255, + heat_point = 60, + humidity_point = 68, + }) + + minetest.register_biome({ + name = "deciduous_forest_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 60, humidity_point = 68, }) @@ -1215,6 +1345,8 @@ function default.register_biomes(upper_limit) node_stone = "default:desert_stone", node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:desert_stone", + node_dungeon_stair = "stairs:stair_desert_stone", y_max = upper_limit, y_min = 4, heat_point = 92, @@ -1230,9 +1362,24 @@ function default.register_biomes(upper_limit) node_stone = "default:desert_stone", node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:desert_stone", + node_dungeon_stair = "stairs:stair_desert_stone", vertical_blend = 1, y_max = 3, - y_min = -112, + y_min = -255, + heat_point = 92, + humidity_point = 16, + }) + + minetest.register_biome({ + name = "desert_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 92, humidity_point = 16, }) @@ -1248,6 +1395,8 @@ function default.register_biomes(upper_limit) node_stone = "default:sandstone", node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:sandstonebrick", + node_dungeon_stair = "stairs:stair_sandstone_block", y_max = upper_limit, y_min = 4, heat_point = 60, @@ -1263,8 +1412,23 @@ function default.register_biomes(upper_limit) node_stone = "default:sandstone", node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:sandstonebrick", + node_dungeon_stair = "stairs:stair_sandstone_block", y_max = 3, - y_min = -112, + y_min = -255, + heat_point = 60, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "sandstone_desert_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 60, humidity_point = 0, }) @@ -1279,6 +1443,9 @@ function default.register_biomes(upper_limit) depth_filler = 1, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = upper_limit, y_min = 4, heat_point = 40, @@ -1293,9 +1460,25 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = 3, - y_min = -112, + y_min = -255, + heat_point = 40, + humidity_point = 0, + }) + + minetest.register_biome({ + name = "cold_desert_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 40, humidity_point = 0, }) @@ -1304,12 +1487,15 @@ function default.register_biomes(upper_limit) minetest.register_biome({ name = "savanna", - node_top = "default:dirt_with_dry_grass", + node_top = "default:dry_dirt_with_dry_grass", depth_top = 1, - node_filler = "default:dirt", + node_filler = "default:dry_dirt", depth_filler = 1, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = upper_limit, y_min = 1, heat_point = 89, @@ -1318,12 +1504,15 @@ function default.register_biomes(upper_limit) minetest.register_biome({ name = "savanna_shore", - node_top = "default:dirt", + node_top = "default:dry_dirt", depth_top = 1, - node_filler = "default:dirt", + node_filler = "default:dry_dirt", depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = 0, y_min = -1, heat_point = 89, @@ -1338,9 +1527,25 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = -2, - y_min = -112, + y_min = -255, + heat_point = 89, + humidity_point = 42, + }) + + minetest.register_biome({ + name = "savanna_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, + y_min = -31000, heat_point = 89, humidity_point = 42, }) @@ -1355,6 +1560,9 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = upper_limit, y_min = 1, heat_point = 86, @@ -1369,6 +1577,9 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = 0, y_min = -1, heat_point = 86, @@ -1383,21 +1594,27 @@ function default.register_biomes(upper_limit) depth_filler = 3, node_riverbed = "default:sand", depth_riverbed = 2, + node_cave_liquid = "default:water_source", + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", vertical_blend = 1, y_max = -2, - y_min = -112, + y_min = -255, heat_point = 86, humidity_point = 65, }) - -- Underground - minetest.register_biome({ - name = "underground", - y_max = -113, + name = "rainforest_under", + node_cave_liquid = {"default:water_source", "default:lava_source"}, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", + y_max = -256, y_min = -31000, - heat_point = 50, - humidity_point = 50, + heat_point = 86, + humidity_point = 65, }) end @@ -1414,6 +1631,9 @@ function default.register_floatland_biomes(floatland_level, shadow_limit) depth_top = 1, node_filler = "default:dirt", depth_filler = 1, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = 31000, y_min = floatland_level + 2, heat_point = 50, @@ -1426,6 +1646,9 @@ function default.register_floatland_biomes(floatland_level, shadow_limit) depth_top = 1, node_filler = "default:dirt", depth_filler = 3, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = 31000, y_min = floatland_level + 2, heat_point = 50, @@ -1438,6 +1661,9 @@ function default.register_floatland_biomes(floatland_level, shadow_limit) depth_top = 1, node_filler = "default:sand", depth_filler = 3, + node_dungeon = "default:cobble", + node_dungeon_alt = "default:mossycobble", + node_dungeon_stair = "stairs:stair_cobble", y_max = floatland_level + 1, y_min = shadow_limit, heat_point = 50, @@ -1572,7 +1798,7 @@ local function register_dry_grass_decoration(offset, scale, length) minetest.register_decoration({ name = "default:dry_grass_" .. length, deco_type = "simple", - place_on = {"default:dirt_with_dry_grass"}, + place_on = {"default:dry_dirt_with_dry_grass"}, sidelen = 16, noise_params = { offset = offset, @@ -1612,6 +1838,30 @@ end function default.register_decorations() + -- Savanna bare dirt patches. + -- Must come before all savanna decorations that are placed on dry grass. + -- Noise is similar to long dry grass noise, but scale inverted, to appear + -- where long dry grass is least dense and shortest. + + minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dry_dirt_with_dry_grass"}, + sidelen = 4, + noise_params = { + offset = -1.5, + scale = -1.5, + spread = {x = 200, y = 200, z = 200}, + seed = 329, + octaves = 4, + persist = 1.0 + }, + biomes = {"savanna"}, + y_max = 31000, + y_min = 1, + decoration = "default:dry_dirt", + place_offset_y = -1, + flags = "force_placement", + }) -- Apple tree and log @@ -1786,7 +2036,7 @@ function default.register_decorations() minetest.register_decoration({ name = "default:acacia_tree", deco_type = "schematic", - place_on = {"default:dirt_with_dry_grass"}, + place_on = {"default:dry_dirt_with_dry_grass"}, sidelen = 16, noise_params = { offset = 0, @@ -1807,7 +2057,7 @@ function default.register_decorations() minetest.register_decoration({ name = "default:acacia_log", deco_type = "schematic", - place_on = {"default:dirt_with_dry_grass"}, + place_on = {"default:dry_dirt_with_dry_grass"}, place_offset_y = 1, sidelen = 16, noise_params = { @@ -1824,7 +2074,7 @@ function default.register_decorations() schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts", flags = "place_center_x", rotation = "random", - spawn_by = "default:dirt_with_dry_grass", + spawn_by = "default:dry_dirt_with_dry_grass", num_spawn_by = 8, }) @@ -1992,7 +2242,7 @@ function default.register_decorations() minetest.register_decoration({ name = "default:acacia_bush", deco_type = "schematic", - place_on = {"default:dirt_with_dry_grass"}, + place_on = {"default:dry_dirt_with_dry_grass"}, sidelen = 16, noise_params = { offset = -0.004, @@ -2098,13 +2348,13 @@ function default.register_decorations() place_on = {"default:sand"}, sidelen = 4, noise_params = { - offset = -0.4, - scale = 3.0, + offset = -0.7, + scale = 4.0, spread = {x = 16, y = 16, z = 16}, seed = 513337, octaves = 1, - persist = 0.5, - flags = "absvalue" + persist = 0.0, + flags = "absvalue, eased" }, biomes = {"coniferous_forest_dunes", "grassland_dunes"}, y_max = 6, diff --git a/mods/default/mod.conf b/mods/default/mod.conf new file mode 100644 index 0000000..c9e7468 --- /dev/null +++ b/mods/default/mod.conf @@ -0,0 +1,3 @@ +name = default +description = Minetest Game mod: default +optional_depends = player_api diff --git a/mods/default/nodes.lua b/mods/default/nodes.lua index aa8f361..cee1242 100644 --- a/mods/default/nodes.lua +++ b/mods/default/nodes.lua @@ -1,5 +1,7 @@ -- mods/default/nodes.lua +-- support for MT game translation. +local S = default.get_translator --[[ Node name convention: @@ -52,6 +54,8 @@ default:dirt_with_dry_grass default:dirt_with_snow default:dirt_with_rainforest_litter default:dirt_with_coniferous_litter +default:dry_dirt +default:dry_dirt_with_dry_grass default:permafrost default:permafrost_with_stones @@ -225,21 +229,31 @@ default:cloud --]] +-- Required wrapper to allow customization of default.after_place_leaves +local function after_place_leaves(...) + return default.after_place_leaves(...) +end + +-- Required wrapper to allow customization of default.grow_sapling +local function grow_sapling(...) + return default.grow_sapling(...) +end + -- -- Stone -- minetest.register_node("default:stone", { - description = "Stone", + description = S("Stone"), tiles = {"default_stone.png"}, groups = {cracky = 3, stone = 1}, - drop = 'default:cobble', + drop = "default:cobble", legacy_mineral = true, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:cobble", { - description = "Cobblestone", + description = S("Cobblestone"), tiles = {"default_cobble.png"}, is_ground_content = false, groups = {cracky = 3, stone = 2}, @@ -247,7 +261,7 @@ minetest.register_node("default:cobble", { }) minetest.register_node("default:stonebrick", { - description = "Stone Brick", + description = S("Stone Brick"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_stone_brick.png"}, @@ -257,7 +271,7 @@ minetest.register_node("default:stonebrick", { }) minetest.register_node("default:stone_block", { - description = "Stone Block", + description = S("Stone Block"), tiles = {"default_stone_block.png"}, is_ground_content = false, groups = {cracky = 2, stone = 1}, @@ -265,7 +279,7 @@ minetest.register_node("default:stone_block", { }) minetest.register_node("default:mossycobble", { - description = "Mossy Cobblestone", + description = S("Mossy Cobblestone"), tiles = {"default_mossycobble.png"}, is_ground_content = false, groups = {cracky = 3, stone = 1}, @@ -274,16 +288,16 @@ minetest.register_node("default:mossycobble", { minetest.register_node("default:desert_stone", { - description = "Desert Stone", + description = S("Desert Stone"), tiles = {"default_desert_stone.png"}, groups = {cracky = 3, stone = 1}, - drop = 'default:desert_cobble', + drop = "default:desert_cobble", legacy_mineral = true, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:desert_cobble", { - description = "Desert Cobblestone", + description = S("Desert Cobblestone"), tiles = {"default_desert_cobble.png"}, is_ground_content = false, groups = {cracky = 3, stone = 2}, @@ -291,7 +305,7 @@ minetest.register_node("default:desert_cobble", { }) minetest.register_node("default:desert_stonebrick", { - description = "Desert Stone Brick", + description = S("Desert Stone Brick"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_desert_stone_brick.png"}, @@ -301,7 +315,7 @@ minetest.register_node("default:desert_stonebrick", { }) minetest.register_node("default:desert_stone_block", { - description = "Desert Stone Block", + description = S("Desert Stone Block"), tiles = {"default_desert_stone_block.png"}, is_ground_content = false, groups = {cracky = 2, stone = 1}, @@ -309,14 +323,14 @@ minetest.register_node("default:desert_stone_block", { }) minetest.register_node("default:sandstone", { - description = "Sandstone", + description = S("Sandstone"), tiles = {"default_sandstone.png"}, groups = {crumbly = 1, cracky = 3}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:sandstonebrick", { - description = "Sandstone Brick", + description = S("Sandstone Brick"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_sandstone_brick.png"}, @@ -326,7 +340,7 @@ minetest.register_node("default:sandstonebrick", { }) minetest.register_node("default:sandstone_block", { - description = "Sandstone Block", + description = S("Sandstone Block"), tiles = {"default_sandstone_block.png"}, is_ground_content = false, groups = {cracky = 2}, @@ -334,14 +348,14 @@ minetest.register_node("default:sandstone_block", { }) minetest.register_node("default:desert_sandstone", { - description = "Desert Sandstone", + description = S("Desert Sandstone"), tiles = {"default_desert_sandstone.png"}, groups = {crumbly = 1, cracky = 3}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:desert_sandstone_brick", { - description = "Desert Sandstone Brick", + description = S("Desert Sandstone Brick"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_desert_sandstone_brick.png"}, @@ -351,7 +365,7 @@ minetest.register_node("default:desert_sandstone_brick", { }) minetest.register_node("default:desert_sandstone_block", { - description = "Desert Sandstone Block", + description = S("Desert Sandstone Block"), tiles = {"default_desert_sandstone_block.png"}, is_ground_content = false, groups = {cracky = 2}, @@ -359,14 +373,14 @@ minetest.register_node("default:desert_sandstone_block", { }) minetest.register_node("default:silver_sandstone", { - description = "Silver Sandstone", + description = S("Silver Sandstone"), tiles = {"default_silver_sandstone.png"}, groups = {crumbly = 1, cracky = 3}, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:silver_sandstone_brick", { - description = "Silver Sandstone Brick", + description = S("Silver Sandstone Brick"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_silver_sandstone_brick.png"}, @@ -376,7 +390,7 @@ minetest.register_node("default:silver_sandstone_brick", { }) minetest.register_node("default:silver_sandstone_block", { - description = "Silver Sandstone Block", + description = S("Silver Sandstone Block"), tiles = {"default_silver_sandstone_block.png"}, is_ground_content = false, groups = {cracky = 2}, @@ -384,14 +398,14 @@ minetest.register_node("default:silver_sandstone_block", { }) minetest.register_node("default:obsidian", { - description = "Obsidian", + description = S("Obsidian"), tiles = {"default_obsidian.png"}, sounds = default.node_sound_stone_defaults(), groups = {cracky = 1, level = 2}, }) minetest.register_node("default:obsidianbrick", { - description = "Obsidian Brick", + description = S("Obsidian Brick"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_obsidian_brick.png"}, @@ -401,7 +415,7 @@ minetest.register_node("default:obsidianbrick", { }) minetest.register_node("default:obsidian_block", { - description = "Obsidian Block", + description = S("Obsidian Block"), tiles = {"default_obsidian_block.png"}, is_ground_content = false, sounds = default.node_sound_stone_defaults(), @@ -413,63 +427,63 @@ minetest.register_node("default:obsidian_block", { -- minetest.register_node("default:dirt", { - description = "Dirt", + description = S("Dirt"), tiles = {"default_dirt.png"}, groups = {crumbly = 3, soil = 1}, sounds = default.node_sound_dirt_defaults(), }) minetest.register_node("default:dirt_with_grass", { - description = "Dirt with Grass", + description = S("Dirt with Grass"), tiles = {"default_grass.png", "default_dirt.png", {name = "default_dirt.png^default_grass_side.png", tileable_vertical = false}}, groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, - drop = 'default:dirt', + drop = "default:dirt", sounds = default.node_sound_dirt_defaults({ footstep = {name = "default_grass_footstep", gain = 0.25}, }), }) minetest.register_node("default:dirt_with_grass_footsteps", { - description = "Dirt with Grass and Footsteps", + description = S("Dirt with Grass and Footsteps"), tiles = {"default_grass.png^default_footprint.png", "default_dirt.png", {name = "default_dirt.png^default_grass_side.png", tileable_vertical = false}}, groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1}, - drop = 'default:dirt', + drop = "default:dirt", sounds = default.node_sound_dirt_defaults({ footstep = {name = "default_grass_footstep", gain = 0.25}, }), }) minetest.register_node("default:dirt_with_dry_grass", { - description = "Dirt with Dry Grass", + description = S("Dirt with Dry Grass"), tiles = {"default_dry_grass.png", "default_dirt.png", {name = "default_dirt.png^default_dry_grass_side.png", tileable_vertical = false}}, - groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1}, - drop = 'default:dirt', + groups = {crumbly = 3, soil = 1}, + drop = "default:dirt", sounds = default.node_sound_dirt_defaults({ footstep = {name = "default_grass_footstep", gain = 0.4}, }), }) minetest.register_node("default:dirt_with_snow", { - description = "Dirt with Snow", + description = S("Dirt with Snow"), tiles = {"default_snow.png", "default_dirt.png", {name = "default_dirt.png^default_snow_side.png", tileable_vertical = false}}, groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1, snowy = 1}, - drop = 'default:dirt', + drop = "default:dirt", sounds = default.node_sound_dirt_defaults({ footstep = {name = "default_snow_footstep", gain = 0.2}, }), }) minetest.register_node("default:dirt_with_rainforest_litter", { - description = "Dirt with Rainforest Litter", + description = S("Dirt with Rainforest Litter"), tiles = { "default_rainforest_litter.png", "default_dirt.png", @@ -484,7 +498,7 @@ minetest.register_node("default:dirt_with_rainforest_litter", { }) minetest.register_node("default:dirt_with_coniferous_litter", { - description = "Dirt with Coniferous Litter", + description = S("Dirt with Coniferous Litter"), tiles = { "default_coniferous_litter.png", "default_dirt.png", @@ -498,15 +512,34 @@ minetest.register_node("default:dirt_with_coniferous_litter", { }), }) +minetest.register_node("default:dry_dirt", { + description = S("Dry Dirt"), + tiles = {"default_dry_dirt.png"}, + groups = {crumbly = 3, soil = 1}, + sounds = default.node_sound_dirt_defaults(), +}) + +minetest.register_node("default:dry_dirt_with_dry_grass", { + description = S("Dry Dirt with Dry Grass"), + tiles = {"default_dry_grass.png", "default_dry_dirt.png", + {name = "default_dry_dirt.png^default_dry_grass_side.png", + tileable_vertical = false}}, + groups = {crumbly = 3, soil = 1}, + drop = "default:dry_dirt", + sounds = default.node_sound_dirt_defaults({ + footstep = {name = "default_grass_footstep", gain = 0.4}, + }), +}) + minetest.register_node("default:permafrost", { - description = "Permafrost", + description = S("Permafrost"), tiles = {"default_permafrost.png"}, groups = {cracky = 3}, sounds = default.node_sound_dirt_defaults(), }) minetest.register_node("default:permafrost_with_stones", { - description = "Permafrost with Stones", + description = S("Permafrost with Stones"), tiles = {"default_permafrost.png^default_stones.png", "default_permafrost.png", "default_permafrost.png^default_stones_side.png"}, @@ -515,7 +548,7 @@ minetest.register_node("default:permafrost_with_stones", { }) minetest.register_node("default:permafrost_with_moss", { - description = "Permafrost with Moss", + description = S("Permafrost with Moss"), tiles = {"default_moss.png", "default_permafrost.png", {name = "default_permafrost.png^default_moss_side.png", tileable_vertical = false}}, @@ -526,21 +559,21 @@ minetest.register_node("default:permafrost_with_moss", { }) minetest.register_node("default:sand", { - description = "Sand", + description = S("Sand"), tiles = {"default_sand.png"}, groups = {crumbly = 3, falling_node = 1, sand = 1}, sounds = default.node_sound_sand_defaults(), }) minetest.register_node("default:desert_sand", { - description = "Desert Sand", + description = S("Desert Sand"), tiles = {"default_desert_sand.png"}, groups = {crumbly = 3, falling_node = 1, sand = 1}, sounds = default.node_sound_sand_defaults(), }) minetest.register_node("default:silver_sand", { - description = "Silver Sand", + description = S("Silver Sand"), tiles = {"default_silver_sand.png"}, groups = {crumbly = 3, falling_node = 1, sand = 1}, sounds = default.node_sound_sand_defaults(), @@ -548,30 +581,30 @@ minetest.register_node("default:silver_sand", { minetest.register_node("default:gravel", { - description = "Gravel", + description = S("Gravel"), tiles = {"default_gravel.png"}, groups = {crumbly = 2, falling_node = 1}, sounds = default.node_sound_gravel_defaults(), drop = { max_items = 1, items = { - {items = {'default:flint'}, rarity = 16}, - {items = {'default:gravel'}} + {items = {"default:flint"}, rarity = 16}, + {items = {"default:gravel"}} } } }) minetest.register_node("default:clay", { - description = "Clay", + description = S("Clay"), tiles = {"default_clay.png"}, groups = {crumbly = 3}, - drop = 'default:clay_lump 4', + drop = "default:clay_lump 4", sounds = default.node_sound_dirt_defaults(), }) minetest.register_node("default:snow", { - description = "Snow", + description = S("Snow"), tiles = {"default_snow.png"}, inventory_image = "default_snowball.png", wield_image = "default_snowball.png", @@ -603,7 +636,7 @@ minetest.register_node("default:snow", { }) minetest.register_node("default:snowblock", { - description = "Snow Block", + description = S("Snow Block"), tiles = {"default_snow.png"}, groups = {crumbly = 3, cools_lava = 1, snowy = 1}, sounds = default.node_sound_snow_defaults(), @@ -618,7 +651,7 @@ minetest.register_node("default:snowblock", { -- 'is ground content = false' to avoid tunnels in sea ice or ice rivers minetest.register_node("default:ice", { - description = "Ice", + description = S("Ice"), tiles = {"default_ice.png"}, is_ground_content = false, paramtype = "light", @@ -628,7 +661,7 @@ minetest.register_node("default:ice", { -- Mapgen-placed ice with 'is ground content = true' to contain tunnels minetest.register_node("default:cave_ice", { - description = "Cave Ice", + description = S("Cave Ice"), tiles = {"default_ice.png"}, paramtype = "light", groups = {cracky = 3, cools_lava = 1, slippery = 3, @@ -642,7 +675,7 @@ minetest.register_node("default:cave_ice", { -- minetest.register_node("default:tree", { - description = "Apple Tree", + description = S("Apple Tree"), tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"}, paramtype2 = "facedir", is_ground_content = false, @@ -653,7 +686,7 @@ minetest.register_node("default:tree", { }) minetest.register_node("default:wood", { - description = "Apple Wood Planks", + description = S("Apple Wood Planks"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_wood.png"}, @@ -663,7 +696,7 @@ minetest.register_node("default:wood", { }) minetest.register_node("default:sapling", { - description = "Apple Tree Sapling", + description = S("Apple Tree Sapling"), drawtype = "plantlike", tiles = {"default_sapling.png"}, inventory_image = "default_sapling.png", @@ -671,7 +704,7 @@ minetest.register_node("default:sapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} @@ -699,7 +732,7 @@ minetest.register_node("default:sapling", { }) minetest.register_node("default:leaves", { - description = "Apple Tree Leaves", + description = S("Apple Tree Leaves"), drawtype = "allfaces_optional", waving = 1, tiles = {"default_leaves.png"}, @@ -712,23 +745,23 @@ minetest.register_node("default:leaves", { items = { { -- player will get sapling with 1/20 chance - items = {'default:sapling'}, + items = {"default:sapling"}, rarity = 20, }, { -- player will get leaves only if he get no saplings, -- this is because max_items is 1 - items = {'default:leaves'}, + items = {"default:leaves"}, } } }, sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, + after_place_node = after_place_leaves, }) minetest.register_node("default:apple", { - description = "Apple", + description = S("Apple"), drawtype = "plantlike", tiles = {"default_apple.png"}, inventory_image = "default_apple.png", @@ -758,7 +791,7 @@ minetest.register_node("default:apple", { }) minetest.register_node("default:apple_mark", { - description = "Apple Marker", + description = S("Apple Marker"), drawtype = "airlike", paramtype = "light", sunlight_propagates = true, @@ -781,7 +814,7 @@ minetest.register_node("default:apple_mark", { minetest.register_node("default:jungletree", { - description = "Jungle Tree", + description = S("Jungle Tree"), tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"}, paramtype2 = "facedir", @@ -793,7 +826,7 @@ minetest.register_node("default:jungletree", { }) minetest.register_node("default:junglewood", { - description = "Jungle Wood Planks", + description = S("Jungle Wood Planks"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_junglewood.png"}, @@ -803,7 +836,7 @@ minetest.register_node("default:junglewood", { }) minetest.register_node("default:jungleleaves", { - description = "Jungle Tree Leaves", + description = S("Jungle Tree Leaves"), drawtype = "allfaces_optional", waving = 1, tiles = {"default_jungleleaves.png"}, @@ -814,17 +847,17 @@ minetest.register_node("default:jungleleaves", { drop = { max_items = 1, items = { - {items = {'default:junglesapling'}, rarity = 20}, - {items = {'default:jungleleaves'}} + {items = {"default:junglesapling"}, rarity = 20}, + {items = {"default:jungleleaves"}} } }, sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, + after_place_node = after_place_leaves, }) minetest.register_node("default:junglesapling", { - description = "Jungle Tree Sapling", + description = S("Jungle Tree Sapling"), drawtype = "plantlike", tiles = {"default_junglesapling.png"}, inventory_image = "default_junglesapling.png", @@ -832,7 +865,7 @@ minetest.register_node("default:junglesapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} @@ -860,7 +893,7 @@ minetest.register_node("default:junglesapling", { }) minetest.register_node("default:emergent_jungle_sapling", { - description = "Emergent Jungle Tree Sapling", + description = S("Emergent Jungle Tree Sapling"), drawtype = "plantlike", tiles = {"default_emergent_jungle_sapling.png"}, inventory_image = "default_emergent_jungle_sapling.png", @@ -868,7 +901,7 @@ minetest.register_node("default:emergent_jungle_sapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} @@ -896,7 +929,7 @@ minetest.register_node("default:emergent_jungle_sapling", { minetest.register_node("default:pine_tree", { - description = "Pine Tree", + description = S("Pine Tree"), tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png", "default_pine_tree.png"}, paramtype2 = "facedir", @@ -908,7 +941,7 @@ minetest.register_node("default:pine_tree", { }) minetest.register_node("default:pine_wood", { - description = "Pine Wood Planks", + description = S("Pine Wood Planks"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_pine_wood.png"}, @@ -918,7 +951,7 @@ minetest.register_node("default:pine_wood", { }) minetest.register_node("default:pine_needles",{ - description = "Pine Needles", + description = S("Pine Needles"), drawtype = "allfaces_optional", tiles = {"default_pine_needles.png"}, waving = 1, @@ -934,11 +967,11 @@ minetest.register_node("default:pine_needles",{ }, sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, + after_place_node = after_place_leaves, }) minetest.register_node("default:pine_sapling", { - description = "Pine Tree Sapling", + description = S("Pine Tree Sapling"), drawtype = "plantlike", tiles = {"default_pine_sapling.png"}, inventory_image = "default_pine_sapling.png", @@ -946,7 +979,7 @@ minetest.register_node("default:pine_sapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} @@ -975,7 +1008,7 @@ minetest.register_node("default:pine_sapling", { minetest.register_node("default:acacia_tree", { - description = "Acacia Tree", + description = S("Acacia Tree"), tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png", "default_acacia_tree.png"}, paramtype2 = "facedir", @@ -987,7 +1020,7 @@ minetest.register_node("default:acacia_tree", { }) minetest.register_node("default:acacia_wood", { - description = "Acacia Wood Planks", + description = S("Acacia Wood Planks"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_acacia_wood.png"}, @@ -997,7 +1030,7 @@ minetest.register_node("default:acacia_wood", { }) minetest.register_node("default:acacia_leaves", { - description = "Acacia Tree Leaves", + description = S("Acacia Tree Leaves"), drawtype = "allfaces_optional", tiles = {"default_acacia_leaves.png"}, special_tiles = {"default_acacia_leaves_simple.png"}, @@ -1014,11 +1047,11 @@ minetest.register_node("default:acacia_leaves", { }, sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, + after_place_node = after_place_leaves, }) minetest.register_node("default:acacia_sapling", { - description = "Acacia Tree Sapling", + description = S("Acacia Tree Sapling"), drawtype = "plantlike", tiles = {"default_acacia_sapling.png"}, inventory_image = "default_acacia_sapling.png", @@ -1026,7 +1059,7 @@ minetest.register_node("default:acacia_sapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16} @@ -1054,7 +1087,7 @@ minetest.register_node("default:acacia_sapling", { }) minetest.register_node("default:aspen_tree", { - description = "Aspen Tree", + description = S("Aspen Tree"), tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png", "default_aspen_tree.png"}, paramtype2 = "facedir", @@ -1066,7 +1099,7 @@ minetest.register_node("default:aspen_tree", { }) minetest.register_node("default:aspen_wood", { - description = "Aspen Wood Planks", + description = S("Aspen Wood Planks"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_aspen_wood.png"}, @@ -1076,7 +1109,7 @@ minetest.register_node("default:aspen_wood", { }) minetest.register_node("default:aspen_leaves", { - description = "Aspen Tree Leaves", + description = S("Aspen Tree Leaves"), drawtype = "allfaces_optional", tiles = {"default_aspen_leaves.png"}, waving = 1, @@ -1092,11 +1125,11 @@ minetest.register_node("default:aspen_leaves", { }, sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, + after_place_node = after_place_leaves, }) minetest.register_node("default:aspen_sapling", { - description = "Aspen Tree Sapling", + description = S("Aspen Tree Sapling"), drawtype = "plantlike", tiles = {"default_aspen_sapling.png"}, inventory_image = "default_aspen_sapling.png", @@ -1104,7 +1137,7 @@ minetest.register_node("default:aspen_sapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16} @@ -1136,15 +1169,15 @@ minetest.register_node("default:aspen_sapling", { -- minetest.register_node("default:stone_with_coal", { - description = "Coal Ore", + description = S("Coal Ore"), tiles = {"default_stone.png^default_mineral_coal.png"}, groups = {cracky = 3}, - drop = 'default:coal_lump', + drop = "default:coal_lump", sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:coalblock", { - description = "Coal Block", + description = S("Coal Block"), tiles = {"default_coal_block.png"}, is_ground_content = false, groups = {cracky = 3}, @@ -1153,15 +1186,15 @@ minetest.register_node("default:coalblock", { minetest.register_node("default:stone_with_iron", { - description = "Iron Ore", + description = S("Iron Ore"), tiles = {"default_stone.png^default_mineral_iron.png"}, groups = {cracky = 2}, - drop = 'default:iron_lump', + drop = "default:iron_lump", sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:steelblock", { - description = "Steel Block", + description = S("Steel Block"), tiles = {"default_steel_block.png"}, is_ground_content = false, groups = {cracky = 1, level = 2}, @@ -1170,15 +1203,15 @@ minetest.register_node("default:steelblock", { minetest.register_node("default:stone_with_copper", { - description = "Copper Ore", + description = S("Copper Ore"), tiles = {"default_stone.png^default_mineral_copper.png"}, groups = {cracky = 2}, - drop = 'default:copper_lump', + drop = "default:copper_lump", sounds = default.node_sound_stone_defaults(), }) minetest.register_node("default:copperblock", { - description = "Copper Block", + description = S("Copper Block"), tiles = {"default_copper_block.png"}, is_ground_content = false, groups = {cracky = 1, level = 2}, @@ -1187,7 +1220,7 @@ minetest.register_node("default:copperblock", { minetest.register_node("default:stone_with_tin", { - description = "Tin Ore", + description = S("Tin Ore"), tiles = {"default_stone.png^default_mineral_tin.png"}, groups = {cracky = 2}, drop = "default:tin_lump", @@ -1195,7 +1228,7 @@ minetest.register_node("default:stone_with_tin", { }) minetest.register_node("default:tinblock", { - description = "Tin Block", + description = S("Tin Block"), tiles = {"default_tin_block.png"}, is_ground_content = false, groups = {cracky = 1, level = 2}, @@ -1204,7 +1237,7 @@ minetest.register_node("default:tinblock", { minetest.register_node("default:bronzeblock", { - description = "Bronze Block", + description = S("Bronze Block"), tiles = {"default_bronze_block.png"}, is_ground_content = false, groups = {cracky = 1, level = 2}, @@ -1213,7 +1246,7 @@ minetest.register_node("default:bronzeblock", { minetest.register_node("default:stone_with_mese", { - description = "Mese Ore", + description = S("Mese Ore"), tiles = {"default_stone.png^default_mineral_mese.png"}, groups = {cracky = 1}, drop = "default:mese_crystal", @@ -1221,7 +1254,7 @@ minetest.register_node("default:stone_with_mese", { }) minetest.register_node("default:mese", { - description = "Mese Block", + description = S("Mese Block"), tiles = {"default_mese_block.png"}, paramtype = "light", groups = {cracky = 1, level = 2}, @@ -1231,7 +1264,7 @@ minetest.register_node("default:mese", { minetest.register_node("default:stone_with_gold", { - description = "Gold Ore", + description = S("Gold Ore"), tiles = {"default_stone.png^default_mineral_gold.png"}, groups = {cracky = 2}, drop = "default:gold_lump", @@ -1239,7 +1272,7 @@ minetest.register_node("default:stone_with_gold", { }) minetest.register_node("default:goldblock", { - description = "Gold Block", + description = S("Gold Block"), tiles = {"default_gold_block.png"}, is_ground_content = false, groups = {cracky = 1}, @@ -1248,7 +1281,7 @@ minetest.register_node("default:goldblock", { minetest.register_node("default:stone_with_diamond", { - description = "Diamond Ore", + description = S("Diamond Ore"), tiles = {"default_stone.png^default_mineral_diamond.png"}, groups = {cracky = 1}, drop = "default:diamond", @@ -1256,7 +1289,7 @@ minetest.register_node("default:stone_with_diamond", { }) minetest.register_node("default:diamondblock", { - description = "Diamond Block", + description = S("Diamond Block"), tiles = {"default_diamond_block.png"}, is_ground_content = false, groups = {cracky = 1, level = 3}, @@ -1268,7 +1301,7 @@ minetest.register_node("default:diamondblock", { -- minetest.register_node("default:cactus", { - description = "Cactus", + description = S("Cactus"), tiles = {"default_cactus_top.png", "default_cactus_top.png", "default_cactus_side.png"}, paramtype2 = "facedir", @@ -1278,7 +1311,7 @@ minetest.register_node("default:cactus", { }) minetest.register_node("default:large_cactus_seedling", { - description = "Large Cactus Seedling", + description = S("Large Cactus Seedling"), drawtype = "plantlike", tiles = {"default_large_cactus_seedling.png"}, inventory_image = "default_large_cactus_seedling.png", @@ -1349,7 +1382,7 @@ minetest.register_node("default:large_cactus_seedling", { }) minetest.register_node("default:papyrus", { - description = "Papyrus", + description = S("Papyrus"), drawtype = "plantlike", tiles = {"default_papyrus.png"}, inventory_image = "default_papyrus.png", @@ -1370,7 +1403,7 @@ minetest.register_node("default:papyrus", { }) minetest.register_node("default:dry_shrub", { - description = "Dry Shrub", + description = S("Dry Shrub"), drawtype = "plantlike", waving = 1, tiles = {"default_dry_shrub.png"}, @@ -1391,7 +1424,7 @@ minetest.register_node("default:dry_shrub", { }) minetest.register_node("default:junglegrass", { - description = "Jungle Grass", + description = S("Jungle Grass"), drawtype = "plantlike", waving = 1, visual_scale = 1.69, @@ -1412,7 +1445,7 @@ minetest.register_node("default:junglegrass", { minetest.register_node("default:grass_1", { - description = "Grass", + description = S("Grass"), drawtype = "plantlike", waving = 1, tiles = {"default_grass_1.png"}, @@ -1441,7 +1474,7 @@ minetest.register_node("default:grass_1", { for i = 2, 5 do minetest.register_node("default:grass_" .. i, { - description = "Grass", + description = S("Grass"), drawtype = "plantlike", waving = 1, tiles = {"default_grass_" .. i .. ".png"}, @@ -1464,7 +1497,7 @@ end minetest.register_node("default:dry_grass_1", { - description = "Dry Grass", + description = S("Dry Grass"), drawtype = "plantlike", waving = 1, tiles = {"default_dry_grass_1.png"}, @@ -1493,7 +1526,7 @@ minetest.register_node("default:dry_grass_1", { for i = 2, 5 do minetest.register_node("default:dry_grass_" .. i, { - description = "Dry Grass", + description = S("Dry Grass"), drawtype = "plantlike", waving = 1, tiles = {"default_dry_grass_" .. i .. ".png"}, @@ -1516,7 +1549,7 @@ end minetest.register_node("default:fern_1", { - description = "Fern", + description = S("Fern"), drawtype = "plantlike", waving = 1, tiles = {"default_fern_1.png"}, @@ -1544,7 +1577,7 @@ minetest.register_node("default:fern_1", { for i = 2, 3 do minetest.register_node("default:fern_" .. i, { - description = "Fern", + description = S("Fern"), drawtype = "plantlike", waving = 1, visual_scale = 2, @@ -1568,7 +1601,7 @@ end minetest.register_node("default:marram_grass_1", { - description = "Marram Grass", + description = S("Marram Grass"), drawtype = "plantlike", waving = 1, tiles = {"default_marram_grass_1.png"}, @@ -1596,7 +1629,7 @@ minetest.register_node("default:marram_grass_1", { for i = 2, 3 do minetest.register_node("default:marram_grass_" .. i, { - description = "Marram Grass", + description = S("Marram Grass"), drawtype = "plantlike", waving = 1, tiles = {"default_marram_grass_" .. i .. ".png"}, @@ -1619,7 +1652,7 @@ end minetest.register_node("default:bush_stem", { - description = "Bush Stem", + description = S("Bush Stem"), drawtype = "plantlike", visual_scale = 1.41, tiles = {"default_bush_stem.png"}, @@ -1636,7 +1669,7 @@ minetest.register_node("default:bush_stem", { }) minetest.register_node("default:bush_leaves", { - description = "Bush Leaves", + description = S("Bush Leaves"), drawtype = "allfaces_optional", waving = 1, tiles = {"default_leaves_simple.png"}, @@ -1651,11 +1684,11 @@ minetest.register_node("default:bush_leaves", { }, sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, + after_place_node = after_place_leaves, }) minetest.register_node("default:bush_sapling", { - description = "Bush Sapling", + description = S("Bush Sapling"), drawtype = "plantlike", tiles = {"default_bush_sapling.png"}, inventory_image = "default_bush_sapling.png", @@ -1663,7 +1696,7 @@ minetest.register_node("default:bush_sapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} @@ -1690,7 +1723,7 @@ minetest.register_node("default:bush_sapling", { }) minetest.register_node("default:blueberry_bush_leaves_with_berries", { - description = "Blueberry Bush Leaves with Berries", + description = S("Blueberry Bush Leaves with Berries"), drawtype = "allfaces_optional", waving = 1, tiles = {"default_blueberry_bush_leaves.png^default_blueberry_overlay.png"}, @@ -1707,7 +1740,7 @@ minetest.register_node("default:blueberry_bush_leaves_with_berries", { }) minetest.register_node("default:blueberry_bush_leaves", { - description = "Blueberry Bush Leaves", + description = S("Blueberry Bush Leaves"), drawtype = "allfaces_optional", waving = 1, tiles = {"default_blueberry_bush_leaves.png"}, @@ -1730,11 +1763,11 @@ minetest.register_node("default:blueberry_bush_leaves", { end end, - after_place_node = default.after_place_leaves, + after_place_node = after_place_leaves, }) minetest.register_node("default:blueberry_bush_sapling", { - description = "Blueberry Bush Sapling", + description = S("Blueberry Bush Sapling"), drawtype = "plantlike", tiles = {"default_blueberry_bush_sapling.png"}, inventory_image = "default_blueberry_bush_sapling.png", @@ -1742,7 +1775,7 @@ minetest.register_node("default:blueberry_bush_sapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} @@ -1769,7 +1802,7 @@ minetest.register_node("default:blueberry_bush_sapling", { }) minetest.register_node("default:acacia_bush_stem", { - description = "Acacia Bush Stem", + description = S("Acacia Bush Stem"), drawtype = "plantlike", visual_scale = 1.41, tiles = {"default_acacia_bush_stem.png"}, @@ -1786,7 +1819,7 @@ minetest.register_node("default:acacia_bush_stem", { }) minetest.register_node("default:acacia_bush_leaves", { - description = "Acacia Bush Leaves", + description = S("Acacia Bush Leaves"), drawtype = "allfaces_optional", waving = 1, tiles = {"default_acacia_leaves_simple.png"}, @@ -1801,11 +1834,11 @@ minetest.register_node("default:acacia_bush_leaves", { }, sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, + after_place_node = after_place_leaves, }) minetest.register_node("default:acacia_bush_sapling", { - description = "Acacia Bush Sapling", + description = S("Acacia Bush Sapling"), drawtype = "plantlike", tiles = {"default_acacia_bush_sapling.png"}, inventory_image = "default_acacia_bush_sapling.png", @@ -1813,7 +1846,7 @@ minetest.register_node("default:acacia_bush_sapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 2 / 16, 3 / 16} @@ -1840,7 +1873,7 @@ minetest.register_node("default:acacia_bush_sapling", { }) minetest.register_node("default:pine_bush_stem", { - description = "Pine Bush Stem", + description = S("Pine Bush Stem"), drawtype = "plantlike", visual_scale = 1.41, tiles = {"default_pine_bush_stem.png"}, @@ -1857,7 +1890,7 @@ minetest.register_node("default:pine_bush_stem", { }) minetest.register_node("default:pine_bush_needles", { - description = "Pine Bush Needles", + description = S("Pine Bush Needles"), drawtype = "allfaces_optional", waving = 1, tiles = {"default_pine_needles.png"}, @@ -1872,11 +1905,11 @@ minetest.register_node("default:pine_bush_needles", { }, sounds = default.node_sound_leaves_defaults(), - after_place_node = default.after_place_leaves, + after_place_node = after_place_leaves, }) minetest.register_node("default:pine_bush_sapling", { - description = "Pine Bush Sapling", + description = S("Pine Bush Sapling"), drawtype = "plantlike", tiles = {"default_pine_bush_sapling.png"}, inventory_image = "default_pine_bush_sapling.png", @@ -1884,7 +1917,7 @@ minetest.register_node("default:pine_bush_sapling", { paramtype = "light", sunlight_propagates = true, walkable = false, - on_timer = default.grow_sapling, + on_timer = grow_sapling, selection_box = { type = "fixed", fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 2 / 16, 4 / 16} @@ -1911,7 +1944,7 @@ minetest.register_node("default:pine_bush_sapling", { }) minetest.register_node("default:sand_with_kelp", { - description = "Kelp", + description = S("Kelp"), drawtype = "plantlike_rooted", waving = 1, tiles = {"default_sand.png"}, @@ -1986,8 +2019,48 @@ minetest.register_node("default:sand_with_kelp", { -- Corals -- +local function coral_on_place(itemstack, placer, pointed_thing) + if pointed_thing.type ~= "node" or not placer then + return itemstack + end + + local player_name = placer:get_player_name() + local pos_under = pointed_thing.under + local pos_above = pointed_thing.above + local node_under = minetest.get_node(pos_under) + local def_under = minetest.registered_nodes[node_under.name] + + if def_under and def_under.on_rightclick and not placer:get_player_control().sneak then + return def_under.on_rightclick(pos_under, node_under.name, + placer, itemstack, pointed_thing) or itemstack + end + + if node_under.name ~= "default:coral_skeleton" or + minetest.get_node(pos_above).name ~= "default:water_source" then + return itemstack + end + + if minetest.is_protected(pos_under, player_name) or + minetest.is_protected(pos_above, player_name) then + minetest.log("action", player_name + .. " tried to place " .. itemstack:get_name() + .. " at protected position " + .. minetest.pos_to_string(pos_under)) + minetest.record_protection_violation(pos_under, player_name) + return itemstack + end + + node_under.name = itemstack:get_name() + minetest.set_node(pos_under, node_under) + if not (creative and creative.is_enabled_for(player_name)) then + itemstack:take_item() + end + + return itemstack +end + minetest.register_node("default:coral_green", { - description = "Green Coral", + description = S("Green Coral"), drawtype = "plantlike_rooted", waving = 1, paramtype = "light", @@ -2009,34 +2082,7 @@ minetest.register_node("default:coral_green", { dug = {name = "default_grass_footstep", gain = 0.25}, }), - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" or not placer then - return itemstack - end - - local player_name = placer:get_player_name() - local pos_under = pointed_thing.under - local pos_above = pointed_thing.above - - if minetest.get_node(pos_under).name ~= "default:coral_skeleton" or - minetest.get_node(pos_above).name ~= "default:water_source" then - return itemstack - end - - if minetest.is_protected(pos_under, player_name) or - minetest.is_protected(pos_above, player_name) then - minetest.chat_send_player(player_name, "Node is protected") - minetest.record_protection_violation(pos_under, player_name) - return itemstack - end - - minetest.set_node(pos_under, {name = "default:coral_green"}) - if not (creative and creative.is_enabled_for(player_name)) then - itemstack:take_item() - end - - return itemstack - end, + on_place = coral_on_place, after_destruct = function(pos, oldnode) minetest.set_node(pos, {name = "default:coral_skeleton"}) @@ -2044,7 +2090,7 @@ minetest.register_node("default:coral_green", { }) minetest.register_node("default:coral_pink", { - description = "Pink Coral", + description = S("Pink Coral"), drawtype = "plantlike_rooted", waving = 1, paramtype = "light", @@ -2066,34 +2112,7 @@ minetest.register_node("default:coral_pink", { dug = {name = "default_grass_footstep", gain = 0.25}, }), - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" or not placer then - return itemstack - end - - local player_name = placer:get_player_name() - local pos_under = pointed_thing.under - local pos_above = pointed_thing.above - - if minetest.get_node(pos_under).name ~= "default:coral_skeleton" or - minetest.get_node(pos_above).name ~= "default:water_source" then - return itemstack - end - - if minetest.is_protected(pos_under, player_name) or - minetest.is_protected(pos_above, player_name) then - minetest.chat_send_player(player_name, "Node is protected") - minetest.record_protection_violation(pos_under, player_name) - return itemstack - end - - minetest.set_node(pos_under, {name = "default:coral_pink"}) - if not (creative and creative.is_enabled_for(player_name)) then - itemstack:take_item() - end - - return itemstack - end, + on_place = coral_on_place, after_destruct = function(pos, oldnode) minetest.set_node(pos, {name = "default:coral_skeleton"}) @@ -2101,7 +2120,7 @@ minetest.register_node("default:coral_pink", { }) minetest.register_node("default:coral_cyan", { - description = "Cyan Coral", + description = S("Cyan Coral"), drawtype = "plantlike_rooted", waving = 1, paramtype = "light", @@ -2123,34 +2142,7 @@ minetest.register_node("default:coral_cyan", { dug = {name = "default_grass_footstep", gain = 0.25}, }), - on_place = function(itemstack, placer, pointed_thing) - if pointed_thing.type ~= "node" or not placer then - return itemstack - end - - local player_name = placer:get_player_name() - local pos_under = pointed_thing.under - local pos_above = pointed_thing.above - - if minetest.get_node(pos_under).name ~= "default:coral_skeleton" or - minetest.get_node(pos_above).name ~= "default:water_source" then - return itemstack - end - - if minetest.is_protected(pos_under, player_name) or - minetest.is_protected(pos_above, player_name) then - minetest.chat_send_player(player_name, "Node is protected") - minetest.record_protection_violation(pos_under, player_name) - return itemstack - end - - minetest.set_node(pos_under, {name = "default:coral_cyan"}) - if not (creative and creative.is_enabled_for(player_name)) then - itemstack:take_item() - end - - return itemstack - end, + on_place = coral_on_place, after_destruct = function(pos, oldnode) minetest.set_node(pos, {name = "default:coral_skeleton"}) @@ -2158,7 +2150,7 @@ minetest.register_node("default:coral_cyan", { }) minetest.register_node("default:coral_brown", { - description = "Brown Coral", + description = S("Brown Coral"), tiles = {"default_coral_brown.png"}, groups = {cracky = 3}, drop = "default:coral_skeleton", @@ -2166,7 +2158,7 @@ minetest.register_node("default:coral_brown", { }) minetest.register_node("default:coral_orange", { - description = "Orange Coral", + description = S("Orange Coral"), tiles = {"default_coral_orange.png"}, groups = {cracky = 3}, drop = "default:coral_skeleton", @@ -2174,7 +2166,7 @@ minetest.register_node("default:coral_orange", { }) minetest.register_node("default:coral_skeleton", { - description = "Coral Skeleton", + description = S("Coral Skeleton"), tiles = {"default_coral_skeleton.png"}, groups = {cracky = 3}, sounds = default.node_sound_stone_defaults(), @@ -2186,8 +2178,9 @@ minetest.register_node("default:coral_skeleton", { -- minetest.register_node("default:water_source", { - description = "Water Source", + description = S("Water Source"), drawtype = "liquid", + waving = 3, tiles = { { name = "default_water_source_animated.png", @@ -2229,8 +2222,9 @@ minetest.register_node("default:water_source", { }) minetest.register_node("default:water_flowing", { - description = "Flowing Water", + description = S("Flowing Water"), drawtype = "flowingliquid", + waving = 3, tiles = {"default_water.png"}, special_tiles = { { @@ -2276,7 +2270,7 @@ minetest.register_node("default:water_flowing", { minetest.register_node("default:river_water_source", { - description = "River Water Source", + description = S("River Water Source"), drawtype = "liquid", tiles = { { @@ -2325,7 +2319,7 @@ minetest.register_node("default:river_water_source", { }) minetest.register_node("default:river_water_flowing", { - description = "Flowing River Water", + description = S("Flowing River Water"), drawtype = "flowingliquid", tiles = {"default_river_water.png"}, special_tiles = { @@ -2374,7 +2368,7 @@ minetest.register_node("default:river_water_flowing", { minetest.register_node("default:lava_source", { - description = "Lava Source", + description = S("Lava Source"), drawtype = "liquid", tiles = { { @@ -2418,7 +2412,7 @@ minetest.register_node("default:lava_source", { }) minetest.register_node("default:lava_flowing", { - description = "Flowing Lava", + description = S("Flowing Lava"), drawtype = "flowingliquid", tiles = {"default_lava.png"}, special_tiles = { @@ -2507,15 +2501,14 @@ local function update_bookshelf(pos) end meta:set_string("formspec", formspec) if n_written + n_empty == 0 then - meta:set_string("infotext", "Empty Bookshelf") + meta:set_string("infotext", S("Empty Bookshelf")) else - meta:set_string("infotext", "Bookshelf (" .. n_written .. - " written, " .. n_empty .. " empty books)") + meta:set_string("infotext", S("Bookshelf (@1 written, @2 empty books)", n_written, n_empty)) end end minetest.register_node("default:bookshelf", { - description = "Bookshelf", + description = S("Bookshelf"), tiles = {"default_wood.png", "default_wood.png", "default_wood.png", "default_wood.png", "default_bookshelf.png", "default_bookshelf.png"}, paramtype2 = "facedir", @@ -2565,7 +2558,7 @@ minetest.register_node("default:bookshelf", { local function register_sign(material, desc, def) minetest.register_node("default:sign_wall_" .. material, { - description = desc .. " Sign", + description = desc, drawtype = "nodebox", tiles = {"default_sign_wall_" .. material .. ".png"}, inventory_image = "default_sign_" .. material .. ".png", @@ -2602,30 +2595,35 @@ local function register_sign(material, desc, def) return end if string.len(text) > 512 then - minetest.chat_send_player(player_name, "Text too long") + minetest.chat_send_player(player_name, S("Text too long")) return end minetest.log("action", (player_name or "") .. " wrote \"" .. text .. "\" to sign at " .. minetest.pos_to_string(pos)) local meta = minetest.get_meta(pos) meta:set_string("text", text) - meta:set_string("infotext", '"' .. text .. '"') + + if #text > 0 then + meta:set_string("infotext", S('"@1"', text)) + else + meta:set_string("infotext", '') + end end, }) end -register_sign("wood", "Wooden", { +register_sign("wood", S("Wooden Sign"), { sounds = default.node_sound_wood_defaults(), groups = {choppy = 2, attached_node = 1, flammable = 2, oddly_breakable_by_hand = 3} }) -register_sign("steel", "Steel", { +register_sign("steel", S("Steel Sign"), { sounds = default.node_sound_metal_defaults(), groups = {cracky = 2, attached_node = 1} }) minetest.register_node("default:ladder_wood", { - description = "Wooden Ladder", + description = S("Wooden Ladder"), drawtype = "signlike", tiles = {"default_ladder_wood.png"}, inventory_image = "default_ladder_wood.png", @@ -2648,7 +2646,7 @@ minetest.register_node("default:ladder_wood", { }) minetest.register_node("default:ladder_steel", { - description = "Steel Ladder", + description = S("Steel Ladder"), drawtype = "signlike", tiles = {"default_ladder_steel.png"}, inventory_image = "default_ladder_steel.png", @@ -2670,7 +2668,7 @@ minetest.register_node("default:ladder_steel", { }) default.register_fence("default:fence_wood", { - description = "Apple Wood Fence", + description = S("Apple Wood Fence"), texture = "default_fence_wood.png", inventory_image = "default_fence_overlay.png^default_wood.png^" .. "default_fence_overlay.png^[makealpha:255,126,126", @@ -2682,7 +2680,7 @@ default.register_fence("default:fence_wood", { }) default.register_fence("default:fence_acacia_wood", { - description = "Acacia Wood Fence", + description = S("Acacia Wood Fence"), texture = "default_fence_acacia_wood.png", inventory_image = "default_fence_overlay.png^default_acacia_wood.png^" .. "default_fence_overlay.png^[makealpha:255,126,126", @@ -2694,7 +2692,7 @@ default.register_fence("default:fence_acacia_wood", { }) default.register_fence("default:fence_junglewood", { - description = "Jungle Wood Fence", + description = S("Jungle Wood Fence"), texture = "default_fence_junglewood.png", inventory_image = "default_fence_overlay.png^default_junglewood.png^" .. "default_fence_overlay.png^[makealpha:255,126,126", @@ -2706,7 +2704,7 @@ default.register_fence("default:fence_junglewood", { }) default.register_fence("default:fence_pine_wood", { - description = "Pine Wood Fence", + description = S("Pine Wood Fence"), texture = "default_fence_pine_wood.png", inventory_image = "default_fence_overlay.png^default_pine_wood.png^" .. "default_fence_overlay.png^[makealpha:255,126,126", @@ -2718,7 +2716,7 @@ default.register_fence("default:fence_pine_wood", { }) default.register_fence("default:fence_aspen_wood", { - description = "Aspen Wood Fence", + description = S("Aspen Wood Fence"), texture = "default_fence_aspen_wood.png", inventory_image = "default_fence_overlay.png^default_aspen_wood.png^" .. "default_fence_overlay.png^[makealpha:255,126,126", @@ -2730,7 +2728,7 @@ default.register_fence("default:fence_aspen_wood", { }) default.register_fence_rail("default:fence_rail_wood", { - description = "Apple Wood Fence Rail", + description = S("Apple Wood Fence Rail"), texture = "default_fence_rail_wood.png", inventory_image = "default_fence_rail_overlay.png^default_wood.png^" .. "default_fence_rail_overlay.png^[makealpha:255,126,126", @@ -2742,7 +2740,7 @@ default.register_fence_rail("default:fence_rail_wood", { }) default.register_fence_rail("default:fence_rail_acacia_wood", { - description = "Acacia Wood Fence Rail", + description = S("Acacia Wood Fence Rail"), texture = "default_fence_rail_acacia_wood.png", inventory_image = "default_fence_rail_overlay.png^default_acacia_wood.png^" .. "default_fence_rail_overlay.png^[makealpha:255,126,126", @@ -2754,7 +2752,7 @@ default.register_fence_rail("default:fence_rail_acacia_wood", { }) default.register_fence_rail("default:fence_rail_junglewood", { - description = "Jungle Wood Fence Rail", + description = S("Jungle Wood Fence Rail"), texture = "default_fence_rail_junglewood.png", inventory_image = "default_fence_rail_overlay.png^default_junglewood.png^" .. "default_fence_rail_overlay.png^[makealpha:255,126,126", @@ -2766,7 +2764,7 @@ default.register_fence_rail("default:fence_rail_junglewood", { }) default.register_fence_rail("default:fence_rail_pine_wood", { - description = "Pine Wood Fence Rail", + description = S("Pine Wood Fence Rail"), texture = "default_fence_rail_pine_wood.png", inventory_image = "default_fence_rail_overlay.png^default_pine_wood.png^" .. "default_fence_rail_overlay.png^[makealpha:255,126,126", @@ -2778,7 +2776,7 @@ default.register_fence_rail("default:fence_rail_pine_wood", { }) default.register_fence_rail("default:fence_rail_aspen_wood", { - description = "Aspen Wood Fence Rail", + description = S("Aspen Wood Fence Rail"), texture = "default_fence_rail_aspen_wood.png", inventory_image = "default_fence_rail_overlay.png^default_aspen_wood.png^" .. "default_fence_rail_overlay.png^[makealpha:255,126,126", @@ -2790,7 +2788,7 @@ default.register_fence_rail("default:fence_rail_aspen_wood", { }) minetest.register_node("default:glass", { - description = "Glass", + description = S("Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_glass.png", "default_glass_detail.png"}, paramtype = "light", @@ -2802,7 +2800,7 @@ minetest.register_node("default:glass", { }) minetest.register_node("default:obsidian_glass", { - description = "Obsidian Glass", + description = S("Obsidian Glass"), drawtype = "glasslike_framed_optional", tiles = {"default_obsidian_glass.png", "default_obsidian_glass_detail.png"}, paramtype = "light", @@ -2815,7 +2813,7 @@ minetest.register_node("default:obsidian_glass", { minetest.register_node("default:brick", { - description = "Brick Block", + description = S("Brick Block"), paramtype2 = "facedir", place_param2 = 0, tiles = {"default_brick.png"}, @@ -2826,7 +2824,7 @@ minetest.register_node("default:brick", { minetest.register_node("default:meselamp", { - description = "Mese Lamp", + description = S("Mese Lamp"), drawtype = "glasslike", tiles = {"default_meselamp.png"}, paramtype = "light", @@ -2838,7 +2836,7 @@ minetest.register_node("default:meselamp", { }) minetest.register_node("default:mese_post_light", { - description = "Mese Post Light", + description = S("Mese Post Light"), tiles = {"default_mese_post_light_top.png", "default_mese_post_light_top.png", "default_mese_post_light_side_dark.png", "default_mese_post_light_side_dark.png", "default_mese_post_light_side.png", "default_mese_post_light_side.png"}, @@ -2863,7 +2861,7 @@ minetest.register_node("default:mese_post_light", { -- minetest.register_node("default:cloud", { - description = "Cloud", + description = S("Cloud"), tiles = {"default_cloud.png"}, is_ground_content = false, sounds = default.node_sound_defaults(), diff --git a/mods/default/schematics/large_cactus.mts b/mods/default/schematics/large_cactus.mts index e453573fb20ff33be7ca6f706c1e3370f2718f25..cadcdccbbbe730fc23537bf7d3311831e2aed19f 100644 GIT binary patch delta 41 xcmYdFo?x$1CGb)H)GBsnh1K`uJZ?CrvI`41s<|9sIME~!z?sFsptgf!EdVmX4W$48 delta 40 wcmYdJnqaT|zhIGE#{q^DtG2TXeM{JQkkw@Zr=S7DCIyy|CMgDnjXOAX0ad&X!2kdN diff --git a/mods/default/textures/default_dry_dirt.png b/mods/default/textures/default_dry_dirt.png new file mode 100644 index 0000000000000000000000000000000000000000..8ee53984faba09e7c92974d2b0f6fe5b0aaf4dfc GIT binary patch literal 256 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!aez;V>zbyJwGE+bn?u*NgspE4 zU*8tFu|0BAN7Uxd=q+6_+j`=5^(5@+P1xI)cwlPUk*OKSre_7lXT}4ycX+xuhDb=V z9&AiJV!*>}_)GPd%CeW`|1-H?L>eoe_`P8wulMYm$NFA1HqH8eXiivG_c5L`-`r(y za8Lir!m{5Y;B9N<#Kgu8bF!Xn)|_N2ubW}zduaNs-^LtMm}VH|wy@sWXHYUB{41}+ zfjz5w=eI85EpNH&x}xzwU{+T;i;`khr1u89&)zopr E0KnvGbpQYW literal 0 HcmV?d00001 diff --git a/mods/default/textures/default_grass.png b/mods/default/textures/default_grass.png index 0181fabda9fbaba45d8f763107bf0ad88e2f81c5..5778caa1dbabdb9d4cd1ff46e63c8bb810aa9a0c 100644 GIT binary patch delta 435 zcmV;k0Zjh+0?h-EB!8|@OjJcUViq}L7dd1WI%F6+WfwbR7dvDYJ7yR=XBRwW7d&Vf zJ!Tj^X&F6g7(QqiK4}*|YZ*Rp8b4|nKX4d8YZ*Xn7(i|qKyDg9aT!2!8$oRuL2nsB za2P>x8$om&L3JBKa2i5!8A5X#LUbBJb{s==97A;*LwFoSb$=a1b{s@^8$@^-MRy%V zcpOG}9!7Z`M|mGedLT%9A4q&2NqHYhdLBu9AWC~5N_-wleIY!VW{Lm+0NP1JK~xwS z1;K$rf-n>X(1%Tt7ZMSSCS@AJCB!m^v07t8 zOkM8o6ZB#;Xn&^!$ej)udTgovgc*&dvLIfA69qHs(QCS<{2hGhmMVb`ZBNM$7t@=Z z<21;Zub7aN(wZlUe6O-+*==bBy20MStaikCB*k$N$pNQYHfdUV%07Hdm>cv!S^s*n zN`MOzF|@Ag=Ri{I8XU#h57jtGfZ$98DV6Qa@tSf+*(~hOoCBN|m-zUw5=y)0I^L7_ dxoM>N`v*9X8o=o*kt delta 350 zcmV-k0ipiQ1Nj1wB!5>>OjJcSTp2fA8aQ7XIba()VjDYS96V(lJ!Ty}XdOOk9Y1Rx zKy4mDZXZH$A4725NqZtnd?QMJBTIiIOo1d#gCtIbB~OMWQHdr} ziYLsK!WRGl010qNS#tmY3ljhU3ljkVnw%H_000McNliru;C}=f4mS@Pk}$Ra006Z~ zL_t&-(-qHImclR$L{SAyGAOft8ECZ>_ zq->;E5QTc-P{6!Wx{N4{5k$e~(Qu8>-mmb%A!bA}BErtXA%FEWvs92&&>-|(#tQgK z(K2K3L$Wb!68&g|nIa-sF|IFq zvKh_X<0?mvi2|q-nq`17qp{1RE;IH8oUpS9)bk2gJ4~UfloSj7dIX?!d19gyBW)Ie ze5DP)T%pj9=Q zCL)x+AO*tQQ?&sAGeboF^zk~8BBTU+4;%b;$c%%ryMJF}1%CbLr;KaC2cc>mr7zf! z35`MoE1&_!oYC9dLRuG!_znCD;IkD1OCRrKgAvUyZZlx-*Gn*yk4k=mjD0&07*qoM6N<$ Eg1VXyLjV8( delta 756 zcmVleK~y-)O_M!uTtyUypEEOeX7^t9!!`;rU;#?O zuK-7(K;nl`P(eopTc(31QbfV8ph*GB%2IwsB$GH%kim|<>wn$*H8Y3e;uTYkH1B(K z&UxOE&%Qp=ckhi65&nL@rQCNEV@rDzNxfnVq1_~$H&h1&7pFDW8_KyOwu&3gEI0pj z#8wFt3qW5dx^2c-K{JTR&RmQK4M0~XOtVfHE5s%v2D)vgUPYQ!#09}umdPDYw@Ev* zFAeMSj=oMffPc5I8fJ$9V}%qGsa49o0)YA|qN)@l1Ay}e>xR3pEUuh8LS>1q5}O2o zv4SrR)*Fn?Y%e34GdU?P2-Xj8n!&W2ge`sM>%h|$t!+2Kging1?$>X!d`n<#CqySH!JUqRBi^f-$lgDR^FTVSD z0X+TV=NI>H(Uo(@tv1Ds0LPzybF`ct1};u(p8fjznE#yz-+r`=-H?e;S)M#RJ^u3h zPnOL(v44E@@>st5;U2aSnpLFTBt(SVD=7|JFUFS9#L`?R%KagIvCA~8$n>tq)mL!{ zQkQp}BbgKj&YI!+P0RGXKu&|%SYdkC|EDhv+slZrhWxv!5UPT8uV@}-4wWVKN?#{T zA-G^D_ln`KeEQ%3=Y_7$L#sCl%@8J**kw|u_-(Plc|*BBkm#FCj>`6JkKH>O0T3!n zc*oIgGpb5#mAwx~q+aQ^84)l}$Wck1l6u8h!B{s`A59&XFKTj9a#F;=`n)42r8+3E mgQxkal>aazTi077@9L~62TTL3+V zDq^itU?u=F6g6dOmWxsVQCJ43WwMH90CeVim?lP63jl0~CTeB2Dim1&K_w;vWP>Ya z0E8lFwd5jwrT|$TD5h*Af>r=@MrUMZYBUxAR3hnhW=3^w08nJcRv=YsS^#EcCb%Jn rwvhmVf_<^LHmZRD*QX+9q!;W}RIM}}j<_#v00000NkvXXu0mjfA%0Mv delta 238 zcmVwcL0UQjHx$QXAA&(m^XIEJ7*PY08u740(F!;cL0?# zdB(*ejkf@59XYpgC6Z?Vg;#iWcY8$_0A(T?hIdzneE?u}$7e8Rdusr9b~ni}m&c(1 ok&}(V$w#}90NA)Qc(oWDW+VtXRy1M~9{>OV07*qoM6N<$f(Fq{cK`qY diff --git a/mods/default/tools.lua b/mods/default/tools.lua index 9f503ed..d792d14 100644 --- a/mods/default/tools.lua +++ b/mods/default/tools.lua @@ -1,5 +1,8 @@ -- mods/default/tools.lua +-- support for MT game translation. +local S = default.get_translator + -- The hand minetest.register_item(":", { type = "none", @@ -22,7 +25,7 @@ minetest.register_item(":", { -- minetest.register_tool("default:pick_wood", { - description = "Wooden Pickaxe", + description = S("Wooden Pickaxe"), inventory_image = "default_tool_woodpick.png", tool_capabilities = { full_punch_interval = 1.2, @@ -32,12 +35,12 @@ minetest.register_tool("default:pick_wood", { }, damage_groups = {fleshy=2}, }, - groups = {flammable = 2}, sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1, flammable = 2} }) minetest.register_tool("default:pick_stone", { - description = "Stone Pickaxe", + description = S("Stone Pickaxe"), inventory_image = "default_tool_stonepick.png", tool_capabilities = { full_punch_interval = 1.3, @@ -48,10 +51,11 @@ minetest.register_tool("default:pick_stone", { damage_groups = {fleshy=3}, }, sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} }) minetest.register_tool("default:pick_bronze", { - description = "Bronze Pickaxe", + description = S("Bronze Pickaxe"), inventory_image = "default_tool_bronzepick.png", tool_capabilities = { full_punch_interval = 1.0, @@ -62,10 +66,11 @@ minetest.register_tool("default:pick_bronze", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} }) minetest.register_tool("default:pick_steel", { - description = "Steel Pickaxe", + description = S("Steel Pickaxe"), inventory_image = "default_tool_steelpick.png", tool_capabilities = { full_punch_interval = 1.0, @@ -76,10 +81,11 @@ minetest.register_tool("default:pick_steel", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} }) minetest.register_tool("default:pick_mese", { - description = "Mese Pickaxe", + description = S("Mese Pickaxe"), inventory_image = "default_tool_mesepick.png", tool_capabilities = { full_punch_interval = 0.9, @@ -90,10 +96,11 @@ minetest.register_tool("default:pick_mese", { damage_groups = {fleshy=5}, }, sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} }) minetest.register_tool("default:pick_diamond", { - description = "Diamond Pickaxe", + description = S("Diamond Pickaxe"), inventory_image = "default_tool_diamondpick.png", tool_capabilities = { full_punch_interval = 0.9, @@ -104,6 +111,7 @@ minetest.register_tool("default:pick_diamond", { damage_groups = {fleshy=5}, }, sound = {breaks = "default_tool_breaks"}, + groups = {pickaxe = 1} }) -- @@ -111,7 +119,7 @@ minetest.register_tool("default:pick_diamond", { -- minetest.register_tool("default:shovel_wood", { - description = "Wooden Shovel", + description = S("Wooden Shovel"), inventory_image = "default_tool_woodshovel.png", wield_image = "default_tool_woodshovel.png^[transformR90", tool_capabilities = { @@ -122,12 +130,12 @@ minetest.register_tool("default:shovel_wood", { }, damage_groups = {fleshy=2}, }, - groups = {flammable = 2}, sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1, flammable = 2} }) minetest.register_tool("default:shovel_stone", { - description = "Stone Shovel", + description = S("Stone Shovel"), inventory_image = "default_tool_stoneshovel.png", wield_image = "default_tool_stoneshovel.png^[transformR90", tool_capabilities = { @@ -139,10 +147,11 @@ minetest.register_tool("default:shovel_stone", { damage_groups = {fleshy=2}, }, sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} }) minetest.register_tool("default:shovel_bronze", { - description = "Bronze Shovel", + description = S("Bronze Shovel"), inventory_image = "default_tool_bronzeshovel.png", wield_image = "default_tool_bronzeshovel.png^[transformR90", tool_capabilities = { @@ -154,10 +163,11 @@ minetest.register_tool("default:shovel_bronze", { damage_groups = {fleshy=3}, }, sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} }) minetest.register_tool("default:shovel_steel", { - description = "Steel Shovel", + description = S("Steel Shovel"), inventory_image = "default_tool_steelshovel.png", wield_image = "default_tool_steelshovel.png^[transformR90", tool_capabilities = { @@ -169,10 +179,11 @@ minetest.register_tool("default:shovel_steel", { damage_groups = {fleshy=3}, }, sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} }) minetest.register_tool("default:shovel_mese", { - description = "Mese Shovel", + description = S("Mese Shovel"), inventory_image = "default_tool_meseshovel.png", wield_image = "default_tool_meseshovel.png^[transformR90", tool_capabilities = { @@ -184,10 +195,11 @@ minetest.register_tool("default:shovel_mese", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} }) minetest.register_tool("default:shovel_diamond", { - description = "Diamond Shovel", + description = S("Diamond Shovel"), inventory_image = "default_tool_diamondshovel.png", wield_image = "default_tool_diamondshovel.png^[transformR90", tool_capabilities = { @@ -199,6 +211,7 @@ minetest.register_tool("default:shovel_diamond", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + groups = {shovel = 1} }) -- @@ -206,7 +219,7 @@ minetest.register_tool("default:shovel_diamond", { -- minetest.register_tool("default:axe_wood", { - description = "Wooden Axe", + description = S("Wooden Axe"), inventory_image = "default_tool_woodaxe.png", tool_capabilities = { full_punch_interval = 1.0, @@ -216,12 +229,12 @@ minetest.register_tool("default:axe_wood", { }, damage_groups = {fleshy=2}, }, - groups = {flammable = 2}, sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1, flammable = 2} }) minetest.register_tool("default:axe_stone", { - description = "Stone Axe", + description = S("Stone Axe"), inventory_image = "default_tool_stoneaxe.png", tool_capabilities = { full_punch_interval = 1.2, @@ -232,10 +245,11 @@ minetest.register_tool("default:axe_stone", { damage_groups = {fleshy=3}, }, sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} }) minetest.register_tool("default:axe_bronze", { - description = "Bronze Axe", + description = S("Bronze Axe"), inventory_image = "default_tool_bronzeaxe.png", tool_capabilities = { full_punch_interval = 1.0, @@ -246,10 +260,11 @@ minetest.register_tool("default:axe_bronze", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} }) minetest.register_tool("default:axe_steel", { - description = "Steel Axe", + description = S("Steel Axe"), inventory_image = "default_tool_steelaxe.png", tool_capabilities = { full_punch_interval = 1.0, @@ -260,10 +275,11 @@ minetest.register_tool("default:axe_steel", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} }) minetest.register_tool("default:axe_mese", { - description = "Mese Axe", + description = S("Mese Axe"), inventory_image = "default_tool_meseaxe.png", tool_capabilities = { full_punch_interval = 0.9, @@ -274,10 +290,11 @@ minetest.register_tool("default:axe_mese", { damage_groups = {fleshy=6}, }, sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} }) minetest.register_tool("default:axe_diamond", { - description = "Diamond Axe", + description = S("Diamond Axe"), inventory_image = "default_tool_diamondaxe.png", tool_capabilities = { full_punch_interval = 0.9, @@ -288,6 +305,7 @@ minetest.register_tool("default:axe_diamond", { damage_groups = {fleshy=7}, }, sound = {breaks = "default_tool_breaks"}, + groups = {axe = 1} }) -- @@ -295,7 +313,7 @@ minetest.register_tool("default:axe_diamond", { -- minetest.register_tool("default:sword_wood", { - description = "Wooden Sword", + description = S("Wooden Sword"), inventory_image = "default_tool_woodsword.png", tool_capabilities = { full_punch_interval = 1, @@ -305,12 +323,12 @@ minetest.register_tool("default:sword_wood", { }, damage_groups = {fleshy=2}, }, - groups = {flammable = 2}, sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1, flammable = 2} }) minetest.register_tool("default:sword_stone", { - description = "Stone Sword", + description = S("Stone Sword"), inventory_image = "default_tool_stonesword.png", tool_capabilities = { full_punch_interval = 1.2, @@ -321,10 +339,11 @@ minetest.register_tool("default:sword_stone", { damage_groups = {fleshy=4}, }, sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} }) minetest.register_tool("default:sword_bronze", { - description = "Bronze Sword", + description = S("Bronze Sword"), inventory_image = "default_tool_bronzesword.png", tool_capabilities = { full_punch_interval = 0.8, @@ -335,10 +354,11 @@ minetest.register_tool("default:sword_bronze", { damage_groups = {fleshy=6}, }, sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} }) minetest.register_tool("default:sword_steel", { - description = "Steel Sword", + description = S("Steel Sword"), inventory_image = "default_tool_steelsword.png", tool_capabilities = { full_punch_interval = 0.8, @@ -349,10 +369,11 @@ minetest.register_tool("default:sword_steel", { damage_groups = {fleshy=6}, }, sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} }) minetest.register_tool("default:sword_mese", { - description = "Mese Sword", + description = S("Mese Sword"), inventory_image = "default_tool_mesesword.png", tool_capabilities = { full_punch_interval = 0.7, @@ -363,10 +384,11 @@ minetest.register_tool("default:sword_mese", { damage_groups = {fleshy=7}, }, sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} }) minetest.register_tool("default:sword_diamond", { - description = "Diamond Sword", + description = S("Diamond Sword"), inventory_image = "default_tool_diamondsword.png", tool_capabilities = { full_punch_interval = 0.7, @@ -377,10 +399,11 @@ minetest.register_tool("default:sword_diamond", { damage_groups = {fleshy=8}, }, sound = {breaks = "default_tool_breaks"}, + groups = {sword = 1} }) minetest.register_tool("default:key", { - description = "Key", + description = S("Key"), inventory_image = "default_key.png", groups = {key = 1, not_in_creative_inventory = 1}, stack_max = 1, diff --git a/mods/default/torch.lua b/mods/default/torch.lua index 5de5f89..fcdc1fe 100644 --- a/mods/default/torch.lua +++ b/mods/default/torch.lua @@ -1,3 +1,8 @@ +-- default/torch.lua + +-- support for MT game translation. +local S = default.get_translator + local function on_flood(pos, oldnode, newnode) minetest.add_item(pos, ItemStack("default:torch 1")) -- Play flame-extinguish sound if liquid is not an 'igniter' @@ -14,7 +19,7 @@ local function on_flood(pos, oldnode, newnode) end minetest.register_node("default:torch", { - description = "Torch", + description = S("Torch"), drawtype = "mesh", mesh = "torch_floor.obj", inventory_image = "default_torch_on_floor.png", diff --git a/mods/default/trees.lua b/mods/default/trees.lua index 564b714..ad3e3f4 100644 --- a/mods/default/trees.lua +++ b/mods/default/trees.lua @@ -1,3 +1,8 @@ +-- default/trees.lua + +-- support for MT game translation. +local S = default.get_translator + local random = math.random -- @@ -560,9 +565,12 @@ function default.sapling_on_place(itemstack, placer, pointed_thing, interval) then minetest.record_protection_violation(pos, player_name) -- Print extra information to explain +-- minetest.chat_send_player(player_name, +-- itemstack:get_definition().description .. " will intersect protection " .. +-- "on growth") minetest.chat_send_player(player_name, - itemstack:get_definition().description .. " will intersect protection " .. - "on growth") + S("@1 will intersect protection on growth.", + itemstack:get_definition().description)) return itemstack end diff --git a/mods/doors/README.txt b/mods/doors/README.txt index 9c114b0..f9caaff 100644 --- a/mods/doors/README.txt +++ b/mods/doors/README.txt @@ -40,8 +40,10 @@ Following textures created by PenguinDad (CC BY-SA 4.0): Following textures created by sofar (CC-BY-SA-3.0): doors_trapdoor_steel.png - doors_trapdoor_steel_side.png + +Following textures created by paramat (CC-BY-SA-3.0): door_trapdoor_side.png + doors_trapdoor_steel_side.png Obsidian door textures by red-001 based on textures by Pilzadam and BlockMen (CC BY-SA 3.0): door_obsidian_glass.png diff --git a/mods/doors/depends.txt b/mods/doors/depends.txt deleted file mode 100644 index 5e28bee..0000000 --- a/mods/doors/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -screwdriver? diff --git a/mods/doors/init.lua b/mods/doors/init.lua index 753a416..b3910a1 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -1,9 +1,15 @@ +-- doors/init.lua + -- our API object doors = {} doors.registered_doors = {} doors.registered_trapdoors = {} +-- Load support for MT game translation. +local S = minetest.get_translator("doors") + + local function replace_old_owner_information(pos) local meta = minetest.get_meta(pos) local owner = meta:get_string("doors_owner") @@ -71,7 +77,7 @@ end -- this hidden node is placed on top of the bottom, and prevents -- nodes from being placed in the top half of the door. minetest.register_node("doors:hidden", { - description = "Hidden Door Segment", + description = S("Hidden Door Segment"), -- can't use airlike otherwise falling nodes will turn to entities -- and will be forever stuck until door is removed. drawtype = "nodebox", @@ -327,7 +333,7 @@ function doors.register(name, def) if def.protected then meta:set_string("owner", pn) - meta:set_string("infotext", "Owned by " .. pn) + meta:set_string("infotext", def.description .. "\n" .. S("Owned by @1", pn)) end if not (creative and creative.is_enabled_for and creative.is_enabled_for(pn)) then @@ -401,7 +407,7 @@ function doors.register(name, def) -- verify placer is owner of lockable door if owner ~= pname then minetest.record_protection_violation(pos, pname) - minetest.chat_send_player(pname, "You do not own this locked door.") + minetest.chat_send_player(pname, S("You do not own this locked door.")) return nil end @@ -411,7 +417,7 @@ function doors.register(name, def) meta:set_string("key_lock_secret", secret) end - return secret, "a locked door", owner + return secret, S("a locked door"), owner end def.node_dig_prediction = "" else @@ -449,7 +455,7 @@ end doors.register("door_wood", { tiles = {{ name = "doors_door_wood.png", backface_culling = true }}, - description = "Wooden Door", + description = S("Wooden Door"), inventory_image = "doors_item_wood.png", groups = {}, recipe = { @@ -461,7 +467,7 @@ doors.register("door_wood", { doors.register("door_steel", { tiles = {{name = "doors_door_steel.png", backface_culling = true}}, - description = "Steel Door", + description = S("Steel Door"), inventory_image = "doors_item_steel.png", protected = true, groups = {cracky = 1, level = 2}, @@ -477,7 +483,7 @@ doors.register("door_steel", { doors.register("door_glass", { tiles = {"doors_door_glass.png"}, - description = "Glass Door", + description = S("Glass Door"), inventory_image = "doors_item_glass.png", groups = {cracky=3, oddly_breakable_by_hand=3}, sounds = default.node_sound_glass_defaults(), @@ -492,7 +498,7 @@ doors.register("door_glass", { doors.register("door_obsidian_glass", { tiles = {"doors_door_obsidian_glass.png"}, - description = "Obsidian Glass Door", + description = S("Obsidian Glass Door"), inventory_image = "doors_item_obsidian_glass.png", groups = {cracky=3}, sounds = default.node_sound_glass_defaults(), @@ -580,7 +586,7 @@ function doors.register_trapdoor(name, def) local pn = placer:get_player_name() local meta = minetest.get_meta(pos) meta:set_string("owner", pn) - meta:set_string("infotext", "Owned by "..pn) + meta:set_string("infotext", def.description .. "\n" .. S("Owned by @1", pn)) return (creative and creative.is_enabled_for and creative.is_enabled_for(pn)) end @@ -599,7 +605,7 @@ function doors.register_trapdoor(name, def) -- verify placer is owner of lockable door if owner ~= pname then minetest.record_protection_violation(pos, pname) - minetest.chat_send_player(pname, "You do not own this trapdoor.") + minetest.chat_send_player(pname, S("You do not own this trapdoor.")) return nil end @@ -609,7 +615,7 @@ function doors.register_trapdoor(name, def) meta:set_string("key_lock_secret", secret) end - return secret, "a locked trapdoor", owner + return secret, S("a locked trapdoor"), owner end def.node_dig_prediction = "" else @@ -642,10 +648,14 @@ function doors.register_trapdoor(name, def) type = "fixed", fixed = {-0.5, -0.5, -0.5, 0.5, -6/16, 0.5} } - def_closed.tiles = {def.tile_front, - def.tile_front .. '^[transformFY', - def.tile_side, def.tile_side, - def.tile_side, def.tile_side} + def_closed.tiles = { + def.tile_front, + def.tile_front .. '^[transformFY', + def.tile_side, + def.tile_side, + def.tile_side, + def.tile_side + } def_opened.node_box = { type = "fixed", @@ -655,11 +665,14 @@ function doors.register_trapdoor(name, def) type = "fixed", fixed = {-0.5, -0.5, 6/16, 0.5, 0.5, 0.5} } - def_opened.tiles = {def.tile_side, def.tile_side, - def.tile_side .. '^[transform3', - def.tile_side .. '^[transform1', - def.tile_front .. '^[transform46', - def.tile_front .. '^[transform6'} + def_opened.tiles = { + def.tile_side, + def.tile_side .. '^[transform2', + def.tile_side .. '^[transform3', + def.tile_side .. '^[transform1', + def.tile_front .. '^[transform46', + def.tile_front .. '^[transform6' + } def_opened.drop = name_closed def_opened.groups.not_in_creative_inventory = 1 @@ -672,7 +685,7 @@ function doors.register_trapdoor(name, def) end doors.register_trapdoor("doors:trapdoor", { - description = "Wooden Trapdoor", + description = S("Wooden Trapdoor"), inventory_image = "doors_trapdoor.png", wield_image = "doors_trapdoor.png", tile_front = "doors_trapdoor.png", @@ -681,7 +694,7 @@ doors.register_trapdoor("doors:trapdoor", { }) doors.register_trapdoor("doors:trapdoor_steel", { - description = "Steel Trapdoor", + description = S("Steel Trapdoor"), inventory_image = "doors_trapdoor_steel.png", wield_image = "doors_trapdoor_steel.png", tile_front = "doors_trapdoor_steel.png", @@ -694,24 +707,25 @@ doors.register_trapdoor("doors:trapdoor_steel", { }) minetest.register_craft({ - output = 'doors:trapdoor 2', + output = "doors:trapdoor 2", recipe = { - {'group:wood', 'group:wood', 'group:wood'}, - {'group:wood', 'group:wood', 'group:wood'}, - {'', '', ''}, + {"group:wood", "group:wood", "group:wood"}, + {"group:wood", "group:wood", "group:wood"}, + {"", "", ""}, } }) minetest.register_craft({ - output = 'doors:trapdoor_steel', + output = "doors:trapdoor_steel", recipe = { - {'default:steel_ingot', 'default:steel_ingot'}, - {'default:steel_ingot', 'default:steel_ingot'}, + {"default:steel_ingot", "default:steel_ingot"}, + {"default:steel_ingot", "default:steel_ingot"}, } }) ----fence gate---- +local fence_collision_extra = minetest.settings:get_bool("enable_fence_tall") and 3/8 or 0 function doors.register_fencegate(name, def) local fence = { @@ -735,7 +749,7 @@ function doors.register_fencegate(name, def) end, selection_box = { type = "fixed", - fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, + fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4} }, } @@ -761,7 +775,7 @@ function doors.register_fencegate(name, def) fence_closed.sound = "doors_fencegate_open" fence_closed.collision_box = { type = "fixed", - fixed = {-1/2, -1/2, -1/4, 1/2, 1/2, 1/4}, + fixed = {-1/2, -1/2, -1/8, 1/2, 1/2 + fence_collision_extra, 1/8} } local fence_open = table.copy(fence) @@ -771,8 +785,8 @@ function doors.register_fencegate(name, def) fence_open.groups.not_in_creative_inventory = 1 fence_open.collision_box = { type = "fixed", - fixed = {{-1/2, -1/2, -1/4, -3/8, 1/2, 1/4}, - {-1/2, -3/8, -1/2, -3/8, 3/8, 0}}, + fixed = {{-1/2, -1/2, -1/8, -3/8, 1/2 + fence_collision_extra, 1/8}, + {-1/2, -3/8, -1/2, -3/8, 3/8, 0 }} } minetest.register_node(":" .. name .. "_closed", fence_closed) @@ -781,42 +795,42 @@ function doors.register_fencegate(name, def) minetest.register_craft({ output = name .. "_closed", recipe = { - {"default:stick", def.material, "default:stick"}, - {"default:stick", def.material, "default:stick"} + {"group:stick", def.material, "group:stick"}, + {"group:stick", def.material, "group:stick"} } }) end doors.register_fencegate("doors:gate_wood", { - description = "Apple Wood Fence Gate", + description = S("Apple Wood Fence Gate"), texture = "default_wood.png", material = "default:wood", groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} }) doors.register_fencegate("doors:gate_acacia_wood", { - description = "Acacia Wood Fence Gate", + description = S("Acacia Wood Fence Gate"), texture = "default_acacia_wood.png", material = "default:acacia_wood", groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} }) doors.register_fencegate("doors:gate_junglewood", { - description = "Jungle Wood Fence Gate", + description = S("Jungle Wood Fence Gate"), texture = "default_junglewood.png", material = "default:junglewood", groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2} }) doors.register_fencegate("doors:gate_pine_wood", { - description = "Pine Wood Fence Gate", + description = S("Pine Wood Fence Gate"), texture = "default_pine_wood.png", material = "default:pine_wood", groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3} }) doors.register_fencegate("doors:gate_aspen_wood", { - description = "Aspen Wood Fence Gate", + description = S("Aspen Wood Fence Gate"), texture = "default_aspen_wood.png", material = "default:aspen_wood", groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3} diff --git a/mods/doors/locale/doors.de.tr b/mods/doors/locale/doors.de.tr new file mode 100644 index 0000000..79707ce --- /dev/null +++ b/mods/doors/locale/doors.de.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Verborgenes Türsegment +Owned by @1=Eigentum von @1 +You do not own this locked door.=Diese abgeschlossene Tür gehört Ihnen nicht. +a locked door=eine abgeschlossene Tür +Wooden Door=Holztür +Steel Door=Stahltür +Glass Door=Glastür +Obsidian Glass Door=Obsidianglastür +You do not own this trapdoor.=Diese Falltür gehört Ihnen nicht. +a locked trapdoor=eine abgeschlossene Falltür +Wooden Trapdoor=Holzfalltür +Steel Trapdoor=Stahlfalltür +Apple Wood Fence Gate=Apfelholzzauntor +Acacia Wood Fence Gate=Akazienholzzauntor +Jungle Wood Fence Gate=Dschungelholzzauntor +Pine Wood Fence Gate=Kiefernholzzauntor +Aspen Wood Fence Gate=Espenholzzauntor diff --git a/mods/doors/locale/doors.es.tr b/mods/doors/locale/doors.es.tr new file mode 100644 index 0000000..677f2df --- /dev/null +++ b/mods/doors/locale/doors.es.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Segmento de puerta oculta +Owned by @1=Propiedad de @1 +You do not own this locked door.=Esta puerta cerrada no te pertenece. +a locked door=una puerta cerrada +Wooden Door=Puerta de madera +Steel Door=Puerta de acero +Glass Door=Puerta de vidrio +Obsidian Glass Door=Puerta de vidrio de obsidiana +You do not own this trapdoor.=Esta trampilla no te pertenece. +a locked trapdoor=una trampilla cerrada +Wooden Trapdoor=Trampilla de madera +Steel Trapdoor=Trampilla de acero +Apple Wood Fence Gate=Puerta de cerca de manzano +Acacia Wood Fence Gate=Puerta de cerca de acacia +Jungle Wood Fence Gate=Puerta de cerca de madera tropical +Pine Wood Fence Gate=Puerta de cerca de pino +Aspen Wood Fence Gate=Puerta de cerca de álamo diff --git a/mods/doors/locale/doors.fr.tr b/mods/doors/locale/doors.fr.tr new file mode 100644 index 0000000..930f75c --- /dev/null +++ b/mods/doors/locale/doors.fr.tr @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment=Segment de porte cachée +Owned by @1=Possédée par @1 +You do not own this locked door.=Cette porte vérouillée ne vous appartient pas. +a locked door=une porte verouillée +Wooden Door=Porte en bois +Steel Door=Porte en acier +Glass Door=Porte en verre +Obsidian Glass Door=Porte en verre d'obsidienne +You do not own this trapdoor.=Vous ne possédez pas cette trappe. +a locked trapdoor=une trappe verouillée +Wooden Trapdoor=Trappe en bois +Steel Trapdoor=Trappe en acier +Apple Wood Fence Gate=Porte de clôture en bois de pommier +Acacia Wood Fence Gate=Porte de clôture en bois d'acacia +Jungle Wood Fence Gate=Porte de clôture en bois de la jungle +Pine Wood Fence Gate=Porte de clôture en bois de pin +Aspen Wood Fence Gate=Porte de clôture en bois de tremble diff --git a/mods/doors/locale/doors.it.tr b/mods/doors/locale/doors.it.tr new file mode 100644 index 0000000..e894283 --- /dev/null +++ b/mods/doors/locale/doors.it.tr @@ -0,0 +1,19 @@ +# textdomain: doors +Hidden Door Segment=Segmento di porta nascosto +Owned by @1=Di proprietà di @1 +You do not own this locked door.=Non sei il proprietario di questa porta chiusa a chiave. +a locked door=una porta chiusa a chiave +Wooden Door=Porta di legno +Steel Door=Porta d'acciacio +Glass Door=Porta di vetro +Obsidian Glass Door=Porta di vetro d'ossidiana +Owned by @1=Di proprietà di @1 +You do not own this trapdoor.=Non sei il proprietario di questa botola. +a locked trapdoor=una botola chiusa a chiave +Wooden Trapdoor=Botola di legno +Steel Trapdoor=Botola d'acciaio +Apple Wood Fence Gate=Cancello della recinzione di legno di melo +Acacia Wood Fence Gate=Cancello della recinzione di legno d'acacia +Jungle Wood Fence Gate=Cancello della recinzione di legno della giungla +Pine Wood Fence Gate=Cancello della recinzione di legno di pino +Aspen Wood Fence Gate=Cancello della recinzione di legno di pioppo \ No newline at end of file diff --git a/mods/doors/locale/template.txt b/mods/doors/locale/template.txt new file mode 100644 index 0000000..8b5c349 --- /dev/null +++ b/mods/doors/locale/template.txt @@ -0,0 +1,18 @@ +# textdomain: doors +Hidden Door Segment= +Owned by @1= +You do not own this locked door.= +a locked door= +Wooden Door= +Steel Door= +Glass Door= +Obsidian Glass Door= +You do not own this trapdoor.= +a locked trapdoor= +Wooden Trapdoor= +Steel Trapdoor= +Apple Wood Fence Gate= +Acacia Wood Fence Gate= +Jungle Wood Fence Gate= +Pine Wood Fence Gate= +Aspen Wood Fence Gate= diff --git a/mods/doors/mod.conf b/mods/doors/mod.conf new file mode 100644 index 0000000..de053c2 --- /dev/null +++ b/mods/doors/mod.conf @@ -0,0 +1,4 @@ +name = doors +description = Minetest Game mod: doors +depends = default +optional_depends = screwdriver diff --git a/mods/doors/textures/doors_trapdoor_side.png b/mods/doors/textures/doors_trapdoor_side.png index 4a8b99f2836e47737f494f2c1959486337994e6e..55981ea32cb49b8227fe85beafafb2ee599653c7 100644 GIT binary patch delta 88 zcmZ3Cm9$R7?Zr+T^Kr8Wj%l#&H|6f zVg?3oVGw3ym^DWND9B#o>Fdh=kd1>=hGUOwpaxJ#!PCVtgyVX0L7`z;VPRoeVn9$z mKv0lSh>O94ppp<~h8{C<&-)9@KLOP;c)GIrxvX diff --git a/mods/doors/textures/doors_trapdoor_steel_side.png b/mods/doors/textures/doors_trapdoor_steel_side.png index 44c4344b2b4f4ba16d9ea1427d94ad5abcff8ef3..e29c59e014db2e8b1aee99b652af4138e85a3f76 100644 GIT binary patch delta 62 zcmYdInxJXPz`(G5`}T9^&WThV69;lcJY5_^IIbs0u(I$hbU5I^*)W@l!Syiv&xgg= RX949IJYD@<);T3K0RW`~6<+`V delta 65 zcmYdFouFy6ef#!v=g!@`cdtb>)SQ8VLEO{DF@)oKasoqRfI>n9D~kZr8C8EKhCO@5 VUoyE{UjQm$@O1TaS?83{1OQ2k7OMaN diff --git a/mods/dungeon_loot/depends.txt b/mods/dungeon_loot/depends.txt deleted file mode 100644 index 4ad96d5..0000000 --- a/mods/dungeon_loot/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/mods/dungeon_loot/loot.lua b/mods/dungeon_loot/loot.lua index 3fe0bff..7eb08cd 100644 --- a/mods/dungeon_loot/loot.lua +++ b/mods/dungeon_loot/loot.lua @@ -1,10 +1,13 @@ dungeon_loot.registered_loot = { -- buckets {name = "bucket:bucket_empty", chance = 0.55}, - -- water in deserts or above ground, lava otherwise - {name = "bucket:bucket_water", chance = 0.45, types = {"sandstone", "desert"}}, - {name = "bucket:bucket_water", chance = 0.45, y = {0, 32768}, types = {"normal"}}, - {name = "bucket:bucket_lava", chance = 0.45, y = {-32768, -1}, types = {"normal"}}, + -- water in deserts/ice or above ground, lava otherwise + {name = "bucket:bucket_water", chance = 0.45, + types = {"sandstone", "desert", "ice"}}, + {name = "bucket:bucket_water", chance = 0.45, y = {0, 32768}, + types = {"normal"}}, + {name = "bucket:bucket_lava", chance = 0.45, y = {-32768, -1}, + types = {"normal"}}, -- various items {name = "default:stick", chance = 0.6, count = {3, 6}}, @@ -16,8 +19,10 @@ dungeon_loot.registered_loot = { {name = "farming:string", chance = 0.5, count = {1, 8}}, {name = "farming:wheat", chance = 0.5, count = {2, 5}}, {name = "default:apple", chance = 0.4, count = {1, 4}}, - {name = "farming:seed_cotton", chance = 0.4, count = {1, 4}, types = {"normal"}}, - {name = "default:cactus", chance = 0.4, count = {1, 4}, types = {"sandstone", "desert"}}, + {name = "farming:seed_cotton", chance = 0.4, count = {1, 4}, + types = {"normal"}}, + {name = "default:cactus", chance = 0.4, count = {1, 4}, + types = {"sandstone", "desert"}}, -- minerals {name = "default:coal_lump", chance = 0.9, count = {1, 12}}, @@ -31,10 +36,16 @@ dungeon_loot.registered_loot = { {name = "default:axe_diamond", chance = 0.05}, -- natural materials - {name = "default:sand", chance = 0.8, count = {4, 32}, y = {-64, 32768}, types = {"normal"}}, - {name = "default:desert_sand", chance = 0.8, count = {4, 32}, y = {-64, 32768}, types = {"sandstone"}}, - {name = "default:desert_cobble", chance = 0.8, count = {4, 32}, types = {"desert"}}, - {name = "default:dirt", chance = 0.6, count = {2, 16}, y = {-64, 32768}}, + {name = "default:sand", chance = 0.8, count = {4, 32}, y = {-64, 32768}, + types = {"normal"}}, + {name = "default:desert_sand", chance = 0.8, count = {4, 32}, y = {-64, 32768}, + types = {"sandstone"}}, + {name = "default:desert_cobble", chance = 0.8, count = {4, 32}, + types = {"desert"}}, + {name = "default:snow", chance = 0.8, count = {8, 64}, y = {-64, 32768}, + types = {"ice"}}, + {name = "default:dirt", chance = 0.6, count = {2, 16}, y = {-64, 32768}, + types = {"normal", "sandstone", "desert"}}, {name = "default:obsidian", chance = 0.25, count = {1, 3}, y = {-32768, -512}}, {name = "default:mese", chance = 0.15, y = {-32768, -512}}, } diff --git a/mods/dungeon_loot/mapgen.lua b/mods/dungeon_loot/mapgen.lua index 366d4ce..624e9a8 100644 --- a/mods/dungeon_loot/mapgen.lua +++ b/mods/dungeon_loot/mapgen.lua @@ -15,12 +15,8 @@ local function random_sample(rand, list, count) end local function find_walls(cpos) - local wall = minetest.registered_aliases["mapgen_cobble"] - local wall_alt = minetest.registered_aliases["mapgen_mossycobble"] - local wall_ss = minetest.registered_aliases["mapgen_sandstonebrick"] - local wall_ds = minetest.registered_aliases["mapgen_desert_stone"] local is_wall = function(node) - return table.indexof({wall, wall_alt, wall_ss, wall_ds}, node.name) ~= -1 + return node.name ~= "air" and node.name ~= "ignore" end local dirs = {{x=1, z=0}, {x=-1, z=0}, {x=0, z=1}, {x=0, z=-1}} @@ -29,7 +25,6 @@ local function find_walls(cpos) local ret = {} local mindist = {x=0, z=0} local min = function(a, b) return a ~= 0 and math.min(a, b) or b end - local wallnode for _, dir in ipairs(dirs) do for i = 1, 9 do -- 9 = max room size / 2 local pos = vector.add(cpos, {x=dir.x*i, y=0, z=dir.z*i}) @@ -50,7 +45,6 @@ local function find_walls(cpos) else mindist.z = min(mindist.z, i-1) end - wallnode = node.name end -- abort even if it wasn't a wall cause something is in the way break @@ -58,14 +52,21 @@ local function find_walls(cpos) end end - local mapping = { - [wall_ss] = "sandstone", - [wall_ds] = "desert" - } + local biome = minetest.get_biome_data(cpos) + biome = biome and minetest.get_biome_name(biome.biome) or "" + local type = "normal" + if biome:find("desert") == 1 then + type = "desert" + elseif biome:find("sandstone_desert") == 1 then + type = "sandstone" + elseif biome:find("icesheet") == 1 then + type = "ice" + end + return { walls = ret, size = {x=mindist.x*2, z=mindist.z*2}, - type = mapping[wallnode] or "normal" + type = type, } end @@ -75,8 +76,8 @@ local function populate_chest(pos, rand, dungeontype) local item_list = dungeon_loot._internal_get_loot(pos.y, dungeontype) -- take random (partial) sample of all possible items - assert(#item_list >= dungeon_loot.STACKS_PER_CHEST_MAX) - item_list = random_sample(rand, item_list, dungeon_loot.STACKS_PER_CHEST_MAX) + local sample_n = math.min(#item_list, dungeon_loot.STACKS_PER_CHEST_MAX) + item_list = random_sample(rand, item_list, sample_n) -- apply chances / randomized amounts and collect resulting items local items = {} diff --git a/mods/dungeon_loot/mod.conf b/mods/dungeon_loot/mod.conf new file mode 100644 index 0000000..79d8089 --- /dev/null +++ b/mods/dungeon_loot/mod.conf @@ -0,0 +1,3 @@ +name = dungeon_loot +description = Minetest Game mod: dungeon_loot +depends = default diff --git a/mods/dye/depends.txt b/mods/dye/depends.txt deleted file mode 100644 index e69de29..0000000 diff --git a/mods/dye/init.lua b/mods/dye/init.lua index 42f59cf..f0affe8 100644 --- a/mods/dye/init.lua +++ b/mods/dye/init.lua @@ -1,16 +1,21 @@ +-- dye/init.lua + dye = {} +-- Load support for MT game translation. +local S = minetest.get_translator("dye") + -- Make dye names and descriptions available globally dye.dyes = { {"white", "White"}, {"grey", "Grey"}, - {"dark_grey", "Dark grey"}, + {"dark_grey", "Dark Grey"}, {"black", "Black"}, {"violet", "Violet"}, {"blue", "Blue"}, {"cyan", "Cyan"}, - {"dark_green", "Dark green"}, + {"dark_green", "Dark Green"}, {"green", "Green"}, {"yellow", "Yellow"}, {"brown", "Brown"}, @@ -30,7 +35,7 @@ for _, row in ipairs(dye.dyes) do minetest.register_craftitem("dye:" .. name, { inventory_image = "dye_" .. name .. ".png", - description = description .. " Dye", + description = S(description .. " Dye"), groups = groups }) @@ -94,7 +99,29 @@ local dye_recipes = { for _, mix in pairs(dye_recipes) do minetest.register_craft({ type = "shapeless", - output = 'dye:' .. mix[3] .. ' 2', - recipe = {'dye:' .. mix[1], 'dye:' .. mix[2]}, + output = "dye:" .. mix[3] .. " 2", + recipe = {"dye:" .. mix[1], "dye:" .. mix[2]}, }) end + +-- Dummy calls to S() to allow translation scripts to detect the strings. +-- To update this run: +-- for _,e in ipairs(dye.dyes) do print(("S(%q)"):format(e[2].." Dye")) end + +--[[ +S("White Dye") +S("Grey Dye") +S("Dark Grey Dye") +S("Black Dye") +S("Violet Dye") +S("Blue Dye") +S("Cyan Dye") +S("Dark Green Dye") +S("Green Dye") +S("Yellow Dye") +S("Brown Dye") +S("Orange Dye") +S("Red Dye") +S("Magenta Dye") +S("Pink Dye") +--]] diff --git a/mods/dye/locale/dye.de.tr b/mods/dye/locale/dye.de.tr new file mode 100644 index 0000000..f73fb57 --- /dev/null +++ b/mods/dye/locale/dye.de.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Weißer Farbstoff +Grey Dye=Grauer Farbstoff +Dark Grey Dye=Dunkelgrauer Farbstoff +Black Dye=Schwarzer Farbstoff +Violet Dye=Violetter Farbstoff +Blue Dye=Blauer Farbstoff +Cyan Dye=Türkiser Farbstoff +Dark Green Dye=Dunkelgrüner Farbstoff +Green Dye=Grüner Farbstoff +Yellow Dye=Gelber Farbstoff +Brown Dye=Brauner Farbstoff +Orange Dye=Orange Farbstoff +Red Dye=Roter Farbstoff +Magenta Dye=Magenta Farbstoff +Pink Dye=Rosa Farbstoff diff --git a/mods/dye/locale/dye.es.tr b/mods/dye/locale/dye.es.tr new file mode 100644 index 0000000..bd04ef4 --- /dev/null +++ b/mods/dye/locale/dye.es.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Tinte blanco +Grey Dye=Tinte gris +Dark Grey Dye=Tinte gris oscuro +Black Dye=Tinte negro +Violet Dye=Tinte violeta +Blue Dye=Tinte azul +Cyan Dye=Tinte cián +Dark Green Dye=Tinte verde oscuro +Green Dye=Tinte verde +Yellow Dye=Tinte amarillo +Brown Dye=Tinte marrón +Orange Dye=Tinte naranja +Red Dye=Tinte rojo +Magenta Dye=Tinte magenta +Pink Dye=Tinte rosa diff --git a/mods/dye/locale/dye.fr.tr b/mods/dye/locale/dye.fr.tr new file mode 100644 index 0000000..390fa07 --- /dev/null +++ b/mods/dye/locale/dye.fr.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Colorant blanc +Grey Dye=Colorant gris +Dark Grey Dye=Colorant gris foncé +Black Dye=Colorant noir +Violet Dye=Colorant violet +Blue Dye=Colorant bleu +Cyan Dye=Colorant cyan +Dark Green Dye=Colorant vert foncé +Green Dye=Colorant vert +Yellow Dye=Colorant jaune +Brown Dye=Colorant marron +Orange Dye=Colorant orange +Red Dye=Colorant rouge +Magenta Dye=Colorant magenta +Pink Dye=Colorant rose diff --git a/mods/dye/locale/dye.it.tr b/mods/dye/locale/dye.it.tr new file mode 100644 index 0000000..bd856ee --- /dev/null +++ b/mods/dye/locale/dye.it.tr @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye=Tintura bianca +Grey Dye=Tintura grigia +Dark Grey Dye=Tintura grigia scura +Black Dye=Tintura nera +Violet Dye=Tintura viola +Blue Dye=Tintura blu +Cyan Dye=Tintura ciano +Dark Green Dye=Tintura verde scura +Green Dye=Tintura verde +Yellow Dye=Tintura gialla +Brown Dye=Tintura marrone +Orange Dye=Tintura arancione +Red Dye=Tintura rossa +Magenta Dye=Tintura magenta +Pink Dye=Tintura rosa \ No newline at end of file diff --git a/mods/dye/locale/template.txt b/mods/dye/locale/template.txt new file mode 100644 index 0000000..c20bab5 --- /dev/null +++ b/mods/dye/locale/template.txt @@ -0,0 +1,16 @@ +# textdomain: dye +White Dye= +Grey Dye= +Dark Grey Dye= +Black Dye= +Violet Dye= +Blue Dye= +Cyan Dye= +Dark Green Dye= +Green Dye= +Yellow Dye= +Brown Dye= +Orange Dye= +Red Dye= +Magenta Dye= +Pink Dye= diff --git a/mods/dye/mod.conf b/mods/dye/mod.conf new file mode 100644 index 0000000..32bb816 --- /dev/null +++ b/mods/dye/mod.conf @@ -0,0 +1,2 @@ +name = dye +description = Minetest Game mod: dye diff --git a/mods/env_sounds/README.txt b/mods/env_sounds/README.txt new file mode 100644 index 0000000..42835d2 --- /dev/null +++ b/mods/env_sounds/README.txt @@ -0,0 +1,13 @@ +Minetest Game mod: env_sounds +============================= +See license.txt for license information. + +Authors of source code +---------------------- +paramat (MIT) + +Authors of media (sounds) +------------------------- +Yuval (CC0 1.0) +https://freesound.org/people/Yuval/sounds/197023/ + env_sounds_water.*.ogg diff --git a/mods/env_sounds/init.lua b/mods/env_sounds/init.lua new file mode 100644 index 0000000..546e990 --- /dev/null +++ b/mods/env_sounds/init.lua @@ -0,0 +1,64 @@ +-- Parameters + +local radius = 8 -- Water node search radius around player + +-- End of parameters + + +local river_source_sounds = minetest.settings:get_bool("river_source_sounds") + + +-- Update sound for player + +local function update_sound(player) + local player_name = player:get_player_name() + local ppos = player:get_pos() + local areamin = vector.subtract(ppos, radius) + local areamax = vector.add(ppos, radius) + local water_nodes = {"default:water_flowing", "default:river_water_flowing"} + if river_source_sounds then + table.insert(water_nodes, "default:river_water_source") + end + local wpos, _ = minetest.find_nodes_in_area(areamin, areamax, water_nodes) + local waters = #wpos + if waters == 0 then + return + end + + -- Find average position of water positions + local wposav = vector.new() + for _, pos in ipairs(wpos) do + wposav.x = wposav.x + pos.x + wposav.y = wposav.y + pos.y + wposav.z = wposav.z + pos.z + end + wposav = vector.divide(wposav, waters) + + minetest.sound_play( + "env_sounds_water", + { + pos = wposav, + to_player = player_name, + gain = math.min(0.04 + waters * 0.004, 0.4), + } + ) +end + + +-- Update sound 'on joinplayer' + +minetest.register_on_joinplayer(function(player) + update_sound(player) +end) + + +-- Cyclic sound update + +local function cyclic_update() + for _, player in pairs(minetest.get_connected_players()) do + update_sound(player) + end + minetest.after(3.5, cyclic_update) +end + +minetest.after(0, cyclic_update) diff --git a/mods/env_sounds/license.txt b/mods/env_sounds/license.txt new file mode 100644 index 0000000..ff8867d --- /dev/null +++ b/mods/env_sounds/license.txt @@ -0,0 +1,57 @@ +License of source code +---------------------- + +The MIT License (MIT) +Copyright (C) 2019 paramat + +Permission is hereby granted, free of charge, to any person obtaining a copy of this +software and associated documentation files (the "Software"), to deal in the Software +without restriction, including without limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of the Software, and to permit +persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or +substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, +INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR +PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE +FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. + +For more details: +https://opensource.org/licenses/MIT + + +Licenses of media (sounds) +-------------------------- + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +Yuval + +No Copyright + +The person who associated a work with this deed has dedicated the work to the +public domain by waiving all of his or her rights to the work worldwide under +copyright law, including all related and neighboring rights, to the extent +allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial +purposes, all without asking permission. See Other Information below. + +Other Information: + +In no way are the patent or trademark rights of any person affected by CC0, nor +are the rights that other persons may have in the work or in how the work is +used, such as publicity or privacy rights. + +Unless expressly stated otherwise, the person who associated a work with this +deed makes no warranties about the work, and disclaims liability for all uses +of the work, to the fullest extent permitted by applicable law. + +When using or citing the work, you should not imply endorsement by the author +or the affirmer. + +For more details: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/mods/env_sounds/mod.conf b/mods/env_sounds/mod.conf new file mode 100644 index 0000000..ad6feb3 --- /dev/null +++ b/mods/env_sounds/mod.conf @@ -0,0 +1,3 @@ +name = env_sounds +description = Minetest Game mod: env_sounds +depends = default diff --git a/mods/env_sounds/sounds/env_sounds_water.1.ogg b/mods/env_sounds/sounds/env_sounds_water.1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..aa808825e220458a73b20560146d2661cfffe8e8 GIT binary patch literal 80221 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%0A4=sX4d1GNF;SO3^LQ_ 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 Clj-RI literal 0 HcmV?d00001 diff --git a/mods/env_sounds/sounds/env_sounds_water.2.ogg b/mods/env_sounds/sounds/env_sounds_water.2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..b3ff114fe9723d317c825fbb10699ee31372d518 GIT binary patch literal 84658 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

Xdq%U?I~`^q>@o>&8u(GVv<`RV5`n-?@Sg%MvG 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 KM-tG;?mGd)h?yV& literal 0 HcmV?d00001 diff --git a/mods/env_sounds/sounds/env_sounds_water.3.ogg b/mods/env_sounds/sounds/env_sounds_water.3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..431a6ed3f1cabf84c65cebb4cd04811bbe40a161 GIT binary patch literal 83915 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ۅ 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

5tb5^`9tZNkERDXi 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

+ZM| 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 literal 0 HcmV?d00001 diff --git a/mods/farming/api.lua b/mods/farming/api.lua index 4a7b93d..c2c549e 100644 --- a/mods/farming/api.lua +++ b/mods/farming/api.lua @@ -1,3 +1,7 @@ +-- farming/api.lua + +-- support for MT game translation. +local S = farming.get_translator -- Wear out hoes, place soil -- TODO Ignore group:flower @@ -78,7 +82,7 @@ farming.register_hoe = function(name, def) end -- Check def table if def.description == nil then - def.description = "Hoe" + def.description = S("Hoe") end if def.inventory_image == nil then def.inventory_image = "unknown_item.png" @@ -251,7 +255,10 @@ farming.register_plant = function(name, def) -- Check def table if not def.description then - def.description = "Seed" + def.description = S("Seed") + end + if not def.harvest_description then + def.harvest_description = pname:gsub("^%l", string.upper) end if not def.inventory_image then def.inventory_image = "unknown_item.png" @@ -321,7 +328,7 @@ farming.register_plant = function(name, def) -- Register harvest minetest.register_craftitem(":" .. mname .. ":" .. pname, { - description = pname:gsub("^%l", string.upper), + description = def.harvest_description, inventory_image = mname .. "_" .. pname .. ".png", groups = def.groups or {flammable = 2}, }) diff --git a/mods/farming/depends.txt b/mods/farming/depends.txt deleted file mode 100644 index 301d971..0000000 --- a/mods/farming/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ -default -wool -stairs diff --git a/mods/farming/hoes.lua b/mods/farming/hoes.lua index d6a6565..d005f6d 100644 --- a/mods/farming/hoes.lua +++ b/mods/farming/hoes.lua @@ -1,23 +1,30 @@ +-- farming/hoes.lua + +-- support for MT game translation. +local S = farming.get_translator + farming.register_hoe(":farming:hoe_wood", { - description = "Wooden Hoe", + description = S("Wooden Hoe"), inventory_image = "farming_tool_woodhoe.png", max_uses = 30, material = "group:wood", - groups = {flammable = 2}, + groups = {hoe = 1, flammable = 2}, }) farming.register_hoe(":farming:hoe_stone", { - description = "Stone Hoe", + description = S("Stone Hoe"), inventory_image = "farming_tool_stonehoe.png", max_uses = 90, - material = "group:stone" + material = "group:stone", + groups = {hoe = 1} }) farming.register_hoe(":farming:hoe_steel", { - description = "Steel Hoe", + description = S("Steel Hoe"), inventory_image = "farming_tool_steelhoe.png", max_uses = 500, - material = "default:steel_ingot" + material = "default:steel_ingot", + groups = {hoe = 1} }) -- The following are deprecated by removing the 'material' field to prevent @@ -26,22 +33,22 @@ farming.register_hoe(":farming:hoe_steel", { -- release. farming.register_hoe(":farming:hoe_bronze", { - description = "Bronze Hoe", + description = S("Bronze Hoe"), inventory_image = "farming_tool_bronzehoe.png", max_uses = 220, - groups = {not_in_creative_inventory = 1}, + groups = {hoe = 1, not_in_creative_inventory = 1}, }) farming.register_hoe(":farming:hoe_mese", { - description = "Mese Hoe", + description = S("Mese Hoe"), inventory_image = "farming_tool_mesehoe.png", max_uses = 350, - groups = {not_in_creative_inventory = 1}, + groups = {hoe = 1, not_in_creative_inventory = 1}, }) farming.register_hoe(":farming:hoe_diamond", { - description = "Diamond Hoe", + description = S("Diamond Hoe"), inventory_image = "farming_tool_diamondhoe.png", max_uses = 500, - groups = {not_in_creative_inventory = 1}, + groups = {hoe = 1, not_in_creative_inventory = 1}, }) diff --git a/mods/farming/init.lua b/mods/farming/init.lua index 723201d..e6dfd57 100644 --- a/mods/farming/init.lua +++ b/mods/farming/init.lua @@ -1,8 +1,13 @@ +-- farming/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("farming") + -- Global farming namespace farming = {} farming.path = minetest.get_modpath("farming") - +farming.get_translator = S -- Load files @@ -14,7 +19,8 @@ dofile(farming.path .. "/hoes.lua") -- WHEAT farming.register_plant("farming:wheat", { - description = "Wheat Seed", + description = S("Wheat Seed"), + harvest_description = S("Wheat"), paramtype2 = "meshoptions", inventory_image = "farming_wheat_seed.png", steps = 8, @@ -26,13 +32,13 @@ farming.register_plant("farming:wheat", { }) minetest.register_craftitem("farming:flour", { - description = "Flour", + description = S("Flour"), inventory_image = "farming_flour.png", groups = {food_flour = 1, flammable = 1}, }) minetest.register_craftitem("farming:bread", { - description = "Bread", + description = S("Bread"), inventory_image = "farming_bread.png", on_use = minetest.item_eat(5), groups = {food_bread = 1, flammable = 2}, @@ -55,7 +61,8 @@ minetest.register_craft({ -- Cotton farming.register_plant("farming:cotton", { - description = "Cotton Seed", + description = S("Cotton Seed"), + harvest_description = S("Cotton"), inventory_image = "farming_cotton_seed.png", steps = 8, minlight = 13, @@ -65,7 +72,7 @@ farming.register_plant("farming:cotton", { }) minetest.register_craftitem("farming:string", { - description = "String", + description = S("String"), inventory_image = "farming_string.png", groups = {flammable = 2}, }) diff --git a/mods/farming/locale/farming.de.tr b/mods/farming/locale/farming.de.tr new file mode 100644 index 0000000..13a363b --- /dev/null +++ b/mods/farming/locale/farming.de.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Holzhacke +Stone Hoe=Steinhacke +Steel Hoe=Stahlhacke +Bronze Hoe=Bronzehacke +Mese Hoe=Mesehacke +Diamond Hoe=Diamanthacke +Wheat Seed=Weizensamen +Flour=Mehl +Bread=Brot +Cotton Seed=Baumwollsamen +String=Faden +Soil=Ackerboden +Wet Soil=Nasser Ackerboden +Dry Soil=Trockener Ackerboden +Wet Dry Soil=Nasser trockener Ackerboden +Desert Sand Soil=Wüsensandackerboden +Wet Desert Sand Soil=Nasser Wüstensandackerboden +Straw=Stroh +Straw Stair=Strohtreppe +Straw Slab=Strohplatte +Inner Straw Stair=Innere Strohtreppe +Outer Straw Stair=Äußere Strohtreppe +Wheat=Weizen +Cotton=Baumwolle diff --git a/mods/farming/locale/farming.es.tr b/mods/farming/locale/farming.es.tr new file mode 100644 index 0000000..f935a7b --- /dev/null +++ b/mods/farming/locale/farming.es.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Azada de madera +Stone Hoe=Azada de piedra +Steel Hoe=Azada de acero +Bronze Hoe=Azada de bronce +Mese Hoe=Azada de mese +Diamond Hoe=Azada de diamante +Wheat Seed=Semilla de trigo +Flour=Harina +Bread=Pan +Cotton Seed=Semilla de algodón +String=Hilo +Soil=Tierra de cultivo +Wet Soil=Tierra de cultivo humeda +Dry Soil=Tierra de cultivo seca +Wet Dry Soil=Tierra de cultivo seca-humeda +Desert Sand Soil=Tierra de cultivo de arena de desierto +Wet Desert Sand Soil=Tierra de cultivo de arena de desierto humeda +Straw=Paja +Straw Stair=Escalera de paja +Straw Slab=Losa de paja +Inner Straw Stair=Escalera de paja interior +Outer Straw Stair=Escalera de paja exterior +Wheat=Trigo +Cotton=Algodón diff --git a/mods/farming/locale/farming.fr.tr b/mods/farming/locale/farming.fr.tr new file mode 100644 index 0000000..cd05997 --- /dev/null +++ b/mods/farming/locale/farming.fr.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Houe en bois +Stone Hoe=Houe en pierre +Steel Hoe=Houe en acier +Bronze Hoe=Houe en bronze +Mese Hoe=Houe en Mese +Diamond Hoe=Houe en diamant +Wheat Seed=Grain de blé +Flour=Farine +Bread=Pain +Cotton Seed=Graine de coton +String=Ficelle +Soil=Sol +Wet Soil=Sol humide +Dry Soil=Sol sec +Wet Dry Soil=Sol sec et humide +Desert Sand Soil=Sol de sable du désert +Wet Desert Sand Soil=Sol de sable du désert humide +Straw=Paille +Straw Stair=Escalier de paille +Straw Slab=Dalle de paille +Inner Straw Stair=Escalier intérieur en paille +Outer Straw Stair=Escalier extérieur en paille +Wheat=Blé +Cotton=Coton diff --git a/mods/farming/locale/farming.it.tr b/mods/farming/locale/farming.it.tr new file mode 100644 index 0000000..3e3f247 --- /dev/null +++ b/mods/farming/locale/farming.it.tr @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe=Zappa di legno +Stone Hoe=Zappa di pietra +Steel Hoe=Zappa d'acciaio +Bronze Hoe=Zappa di bronzo +Mese Hoe=Zappa di mese +Diamond Hoe=Zappa di diamante +Wheat Seed=Seme di grano +Flour=Farina +Bread=Pane +Cotton Seed=Seme di cotone +String=Filo +Soil=Terreno +Wet Soil=Terreno bagnato +Dry Soil=Terreno asciutto +Wet Dry Soil=Terreno asciutto bagnato +Desert Sand Soil=Terreno di sabbia del deserto +Wet Desert Sand Soil=Terreno bagnato di sabbia del deserto +Straw=Paglia +Straw Stair=Scala di paglia +Inner Straw Stair=Scala di paglia interna +Outer Straw Stair=Scala di paglia esterna +Straw Slab=Lastra di paglia +Wheat=Grano +Cotton=Cotone \ No newline at end of file diff --git a/mods/farming/locale/template.txt b/mods/farming/locale/template.txt new file mode 100644 index 0000000..92d113e --- /dev/null +++ b/mods/farming/locale/template.txt @@ -0,0 +1,25 @@ +# textdomain: farming +Wooden Hoe= +Stone Hoe= +Steel Hoe= +Bronze Hoe= +Mese Hoe= +Diamond Hoe= +Wheat Seed= +Flour= +Bread= +Cotton Seed= +String= +Soil= +Wet Soil= +Dry Soil= +Wet Dry Soil= +Desert Sand Soil= +Wet Desert Sand Soil= +Straw= +Straw Stair= +Inner Straw Stair= +Outer Straw Stair= +Straw Slab= +Wheat= +Cotton= diff --git a/mods/farming/mod.conf b/mods/farming/mod.conf new file mode 100644 index 0000000..c26c28f --- /dev/null +++ b/mods/farming/mod.conf @@ -0,0 +1,3 @@ +name = farming +description = Minetest Game mod: farming +depends = default, wool, stairs diff --git a/mods/farming/nodes.lua b/mods/farming/nodes.lua index cc9d1f6..22dd51c 100644 --- a/mods/farming/nodes.lua +++ b/mods/farming/nodes.lua @@ -1,3 +1,8 @@ +-- farming/nodes.lua + +-- support for MT game translation. +local S = farming.get_translator + minetest.override_item("default:dirt", { soil = { base = "default:dirt", @@ -38,8 +43,24 @@ minetest.override_item("default:dirt_with_coniferous_litter", { } }) +minetest.override_item("default:dry_dirt", { + soil = { + base = "default:dry_dirt", + dry = "farming:dry_soil", + wet = "farming:dry_soil_wet" + } +}) + +minetest.override_item("default:dry_dirt_with_dry_grass", { + soil = { + base = "default:dry_dirt_with_dry_grass", + dry = "farming:dry_soil", + wet = "farming:dry_soil_wet" + } +}) + minetest.register_node("farming:soil", { - description = "Soil", + description = S("Soil"), tiles = {"default_dirt.png^farming_soil.png", "default_dirt.png"}, drop = "default:dirt", groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1}, @@ -52,7 +73,7 @@ minetest.register_node("farming:soil", { }) minetest.register_node("farming:soil_wet", { - description = "Wet Soil", + description = S("Wet Soil"), tiles = {"default_dirt.png^farming_soil_wet.png", "default_dirt.png^farming_soil_wet_side.png"}, drop = "default:dirt", groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1}, @@ -64,6 +85,32 @@ minetest.register_node("farming:soil_wet", { } }) +minetest.register_node("farming:dry_soil", { + description = S("Dry Soil"), + tiles = {"default_dry_dirt.png^farming_soil.png", "default_dry_dirt.png"}, + drop = "default:dry_dirt", + groups = {crumbly=3, not_in_creative_inventory=1, soil=2, grassland = 1, field = 1}, + sounds = default.node_sound_dirt_defaults(), + soil = { + base = "default:dry_dirt", + dry = "farming:dry_soil", + wet = "farming:dry_soil_wet" + } +}) + +minetest.register_node("farming:dry_soil_wet", { + description = S("Wet Dry Soil"), + tiles = {"default_dry_dirt.png^farming_soil_wet.png", "default_dry_dirt.png^farming_soil_wet_side.png"}, + drop = "default:dry_dirt", + groups = {crumbly=3, not_in_creative_inventory=1, soil=3, wet = 1, grassland = 1, field = 1}, + sounds = default.node_sound_dirt_defaults(), + soil = { + base = "default:dry_dirt", + dry = "farming:dry_soil", + wet = "farming:dry_soil_wet" + } +}) + minetest.override_item("default:desert_sand", { groups = {crumbly=3, falling_node=1, sand=1, soil = 1}, soil = { @@ -73,7 +120,7 @@ minetest.override_item("default:desert_sand", { } }) minetest.register_node("farming:desert_sand_soil", { - description = "Desert Sand Soil", + description = S("Desert Sand Soil"), drop = "default:desert_sand", tiles = {"farming_desert_sand_soil.png", "default_desert_sand.png"}, groups = {crumbly=3, not_in_creative_inventory = 1, falling_node=1, sand=1, soil = 2, desert = 1, field = 1}, @@ -86,7 +133,7 @@ minetest.register_node("farming:desert_sand_soil", { }) minetest.register_node("farming:desert_sand_soil_wet", { - description = "Wet Desert Sand Soil", + description = S("Wet Desert Sand Soil"), drop = "default:desert_sand", tiles = {"farming_desert_sand_soil_wet.png", "farming_desert_sand_soil_wet_side.png"}, groups = {crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1, soil=3, wet = 1, desert = 1, field = 1}, @@ -99,23 +146,28 @@ minetest.register_node("farming:desert_sand_soil_wet", { }) minetest.register_node("farming:straw", { - description = "Straw", + description = S("Straw"), tiles = {"farming_straw.png"}, is_ground_content = false, groups = {snappy=3, flammable=4, fall_damage_add_percent=-30}, sounds = default.node_sound_leaves_defaults(), }) -stairs.register_stair_and_slab( - "straw", - "farming:straw", - {snappy = 3, flammable = 4}, - {"farming_straw.png"}, - "Straw Stair", - "Straw Slab", - default.node_sound_leaves_defaults(), - true -) +do + local recipe = "farming:straw" + local groups = {snappy = 3, flammable = 4} + local images = {"farming_straw.png"} + local sounds = default.node_sound_leaves_defaults() + + stairs.register_stair("straw", recipe, groups, images, S("Straw Stair"), + sounds, true) + stairs.register_stair_inner("straw", recipe, groups, images, "", + sounds, true, S("Inner Straw Stair")) + stairs.register_stair_outer("straw", recipe, groups, images, "", + sounds, true, S("Outer Straw Stair")) + stairs.register_slab("straw", recipe, groups, images, S("Straw Slab"), + sounds, true) +end minetest.register_abm({ label = "Farming soil", @@ -175,8 +227,8 @@ for i = 1, 5 do minetest.override_item("default:grass_"..i, {drop = { max_items = 1, items = { - {items = {'farming:seed_wheat'},rarity = 5}, - {items = {'default:grass_1'}}, + {items = {"farming:seed_wheat"},rarity = 5}, + {items = {"default:grass_1"}}, } }}) end @@ -184,7 +236,7 @@ end minetest.override_item("default:junglegrass", {drop = { max_items = 1, items = { - {items = {'farming:seed_cotton'},rarity = 8}, - {items = {'default:junglegrass'}}, + {items = {"farming:seed_cotton"},rarity = 8}, + {items = {"default:junglegrass"}}, } }}) diff --git a/mods/fire/depends.txt b/mods/fire/depends.txt deleted file mode 100644 index 4ad96d5..0000000 --- a/mods/fire/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/mods/fire/init.lua b/mods/fire/init.lua index 612e052..3c8a8fc 100644 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -1,7 +1,13 @@ +-- fire/init.lua + -- Global namespace for functions fire = {} +-- Load support for MT game translation. +local S = minetest.get_translator("fire") + + -- 'Enable fire' setting local fire_enabled = minetest.settings:get_bool("enable_fire") @@ -82,7 +88,7 @@ minetest.register_node("fire:basic_flame", { }) minetest.register_node("fire:permanent_flame", { - description = "Permanent Flame", + description = S("Permanent Flame"), drawtype = "firelike", tiles = { { @@ -113,7 +119,7 @@ minetest.register_node("fire:permanent_flame", { -- Flint and steel minetest.register_tool("fire:flint_and_steel", { - description = "Flint and Steel", + description = S("Flint and Steel"), inventory_image = "fire_flint_steel.png", sound = {breaks = "default_tool_breaks"}, @@ -320,7 +326,7 @@ if fire_enabled then interval = 7, chance = 12, catch_up = false, - action = function(pos, node, active_object_count, active_object_count_wider) + action = function(pos) local p = minetest.find_node_near(pos, 1, {"air"}) if p then minetest.set_node(p, {name = "fire:basic_flame"}) @@ -337,17 +343,18 @@ if fire_enabled then interval = 5, chance = 18, catch_up = false, - action = function(pos, node, active_object_count, active_object_count_wider) + action = function(pos) local p = minetest.find_node_near(pos, 1, {"group:flammable"}) - if p then - local flammable_node = minetest.get_node(p) - local def = minetest.registered_nodes[flammable_node.name] - if def.on_burn then - def.on_burn(p) - else - minetest.remove_node(p) - minetest.check_for_falling(p) - end + if not p then + return + end + local flammable_node = minetest.get_node(p) + local def = minetest.registered_nodes[flammable_node.name] + if def.on_burn then + def.on_burn(p) + else + minetest.remove_node(p) + minetest.check_for_falling(p) end end, }) diff --git a/mods/fire/locale/fire.de.tr b/mods/fire/locale/fire.de.tr new file mode 100644 index 0000000..d6f8dde --- /dev/null +++ b/mods/fire/locale/fire.de.tr @@ -0,0 +1,3 @@ +# textdomain: fire +Permanent Flame=Permanente Flamme +Flint and Steel=Feuerstein und Stahl diff --git a/mods/fire/locale/fire.es.tr b/mods/fire/locale/fire.es.tr new file mode 100644 index 0000000..8c1b604 --- /dev/null +++ b/mods/fire/locale/fire.es.tr @@ -0,0 +1,3 @@ +# textdomain: fire +Permanent Flame=Llama permanente +Flint and Steel=Yesca y pedernal diff --git a/mods/fire/locale/fire.fr.tr b/mods/fire/locale/fire.fr.tr new file mode 100644 index 0000000..268e823 --- /dev/null +++ b/mods/fire/locale/fire.fr.tr @@ -0,0 +1,3 @@ +# textdomain: fire +Permanent Flame=Flamme permanente +Flint and Steel=Briquet à silex en acier diff --git a/mods/fire/locale/fire.it.tr b/mods/fire/locale/fire.it.tr new file mode 100644 index 0000000..a5e35c6 --- /dev/null +++ b/mods/fire/locale/fire.it.tr @@ -0,0 +1,3 @@ +# textdomain: fire +Permanent Flame=Fiamma permanente +Flint and Steel=Acciarino \ No newline at end of file diff --git a/mods/fire/locale/template.txt b/mods/fire/locale/template.txt new file mode 100644 index 0000000..79ea7a2 --- /dev/null +++ b/mods/fire/locale/template.txt @@ -0,0 +1,3 @@ +# textdomain: fire +Permanent Flame= +Flint and Steel= diff --git a/mods/fire/mod.conf b/mods/fire/mod.conf new file mode 100644 index 0000000..c70f23b --- /dev/null +++ b/mods/fire/mod.conf @@ -0,0 +1,3 @@ +name = fire +description = Minetest Game mod: fire +depends = default diff --git a/mods/fireflies/depends.txt b/mods/fireflies/depends.txt deleted file mode 100644 index e0585b4..0000000 --- a/mods/fireflies/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -vessels \ No newline at end of file diff --git a/mods/fireflies/init.lua b/mods/fireflies/init.lua index 44d4a31..1c533a1 100644 --- a/mods/fireflies/init.lua +++ b/mods/fireflies/init.lua @@ -1,6 +1,11 @@ --- firefly +-- firefly/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("fireflies") + + minetest.register_node("fireflies:firefly", { - description = "Firefly", + description = S("Firefly"), drawtype = "plantlike", tiles = {{ name = "fireflies_firefly_animated.png", @@ -47,7 +52,7 @@ minetest.register_node("fireflies:firefly", { }) minetest.register_node("fireflies:hidden_firefly", { - description = "Hidden Firefly", + description = S("Hidden Firefly"), drawtype = "airlike", inventory_image = "fireflies_firefly.png", wield_image = "fireflies_firefly.png", @@ -84,7 +89,7 @@ minetest.register_node("fireflies:hidden_firefly", { -- bug net minetest.register_tool("fireflies:bug_net", { - description = "Bug Net", + description = S("Bug Net"), inventory_image = "fireflies_bugnet.png", on_use = function(itemstack, player, pointed_thing) if not pointed_thing or pointed_thing.type ~= "node" or @@ -113,14 +118,14 @@ minetest.register_craft( { recipe = { {"farming:string", "farming:string"}, {"farming:string", "farming:string"}, - {"default:stick", ""} + {"group:stick", ""} } }) -- firefly in a bottle minetest.register_node("fireflies:firefly_bottle", { - description = "Firefly in a Bottle", + description = S("Firefly in a Bottle"), inventory_image = "fireflies_bottle.png", wield_image = "fireflies_bottle.png", tiles = {{ @@ -137,7 +142,7 @@ minetest.register_node("fireflies:firefly_bottle", { sunlight_propagates = true, light_source = 9, walkable = false, - groups = {dig_immediate = 3, attached_node = 1}, + groups = {vessel = 1, dig_immediate = 3, attached_node = 1}, selection_box = { type = "fixed", fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25} diff --git a/mods/fireflies/locale/fireflies.de.tr b/mods/fireflies/locale/fireflies.de.tr new file mode 100644 index 0000000..c5d116a --- /dev/null +++ b/mods/fireflies/locale/fireflies.de.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Glühwürmchen +Hidden Firefly=Verborgenes Glühwürmchen +Bug Net=Insektennetz +Firefly in a Bottle=Glühwürmchen in einer Flasche diff --git a/mods/fireflies/locale/fireflies.es.tr b/mods/fireflies/locale/fireflies.es.tr new file mode 100644 index 0000000..95d053e --- /dev/null +++ b/mods/fireflies/locale/fireflies.es.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Luciérnaga +Hidden Firefly=Luciérnaga oculta +Bug Net=Red de insectos +Firefly in a Bottle=Luciérnaga en botella diff --git a/mods/fireflies/locale/fireflies.fr.tr b/mods/fireflies/locale/fireflies.fr.tr new file mode 100644 index 0000000..3deda66 --- /dev/null +++ b/mods/fireflies/locale/fireflies.fr.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Luciole +Hidden Firefly=Luciole cachée +Bug Net=Filet à papillon +Firefly in a Bottle=Luciole en bouteille diff --git a/mods/fireflies/locale/fireflies.it.tr b/mods/fireflies/locale/fireflies.it.tr new file mode 100644 index 0000000..af33943 --- /dev/null +++ b/mods/fireflies/locale/fireflies.it.tr @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly=Lucciola +Hidden Firefly=Lucciola nascosta +Bug Net=Retino +Firefly in a Bottle=Lucciola imbottigliata \ No newline at end of file diff --git a/mods/fireflies/locale/template.txt b/mods/fireflies/locale/template.txt new file mode 100644 index 0000000..91aa8ff --- /dev/null +++ b/mods/fireflies/locale/template.txt @@ -0,0 +1,5 @@ +# textdomain: fireflies +Firefly= +Hidden Firefly= +Bug Net= +Firefly in a Bottle= diff --git a/mods/fireflies/mod.conf b/mods/fireflies/mod.conf new file mode 100644 index 0000000..a533588 --- /dev/null +++ b/mods/fireflies/mod.conf @@ -0,0 +1,3 @@ +name = fireflies +description = Minetest Game mod: fireflies +depends = default, vessels diff --git a/mods/bones/depends.txt b/mods/flatgen/depends.txt similarity index 100% rename from mods/bones/depends.txt rename to mods/flatgen/depends.txt diff --git a/mods/flatgen/init.lua b/mods/flatgen/init.lua new file mode 100644 index 0000000..ed29aa6 --- /dev/null +++ b/mods/flatgen/init.lua @@ -0,0 +1,60 @@ +-- flatgen mod for 100% flat maps - created by Krock +-- License: CC0 +local terrain_file = minetest.get_worldpath() .."/flatgen_terrain.txt" + +-- Y position where the terrain starts to generate +local generator_start_y = 1 + +-- Backwards compatiblity +local file = io.open(terrain_file, "r") +if file then + minetest.log("warning", "[flatgen] Found an existing terrain file. " + .. "Falling back to legacy code") + local legacy_file = minetest.get_modpath("flatgen") .. "/init_legacy.lua" + assert(loadfile(legacy_file))(terrain_file, generator_start_y) + return +end + +if not minetest.set_mapgen_setting then + error("[flatgen] Your Minetest version is no longer supported." + .. " (Version < 0.4.16)") +end + +minetest.set_mapgen_setting("mg_name", "flat", true) +minetest.set_mapgen_setting("water_level", "-31000", true) +minetest.set_mapgen_setting("mg_flags", + "light,nocaves,nodungeons,nolight,nodecorations", true) +minetest.set_mapgen_setting("mgflat_spflags", "nolakes,nohills", true) +minetest.set_mapgen_setting("mgflat_ground_level", tostring(generator_start_y), true) + +-- Biomes still occur without this stuff +local set_mgparam = minetest.set_mapgen_setting_noiseparams +local function get_noiseparams(_offset) + return { + flags = "defaults", + lacunarity = 0, + offset = _offset, + scale = 0, + spread = {x=1,y=1,z=1}, + seed = 0, + octaves = 0, + persistence = 0 + } +end +set_mgparam("mg_biome_np_heat", get_noiseparams(60), true) +set_mgparam("mg_biome_np_heat_blend", get_noiseparams(0), true) +set_mgparam("mg_biome_np_humidity", get_noiseparams(67), true) +set_mgparam("mg_biome_np_humidity_blend", get_noiseparams(0), true) + +-- Extend the depth of the grassland biome (y_min) +minetest.register_biome({ + name = "deep_grassy_deciduous_forest", + node_top = "default:dirt_with_grass", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 3, + y_max = 31000, + y_min = -1000, + heat_point = 60, + humidity_point = 67, +}) diff --git a/mods/flatgen/init_legacy.lua b/mods/flatgen/init_legacy.lua new file mode 100644 index 0000000..9897784 --- /dev/null +++ b/mods/flatgen/init_legacy.lua @@ -0,0 +1,143 @@ +-- Fallback code in case there's already a terrain configuration file existing +-- License: CC0 +local params = { ... } +local terrain_file = params[1] + +-- Y position where the terrain starts to generate +local generator_start_y = params[2] +-- Default settings: grass, dirt, dirt, dirt with stone ground +local layers = { + { "default:dirt_with_grass", 1 }, + { "default:dirt", 3 }, + { "default:stone", nil } -- nil = no limit + -- Fake ignore to generate whenever you want: { "ignore_me", 1 } +} + + +minetest.set_mapgen_params({ + mgname = "singlenode", + water_level = -31000, + flags = "light" +}) + +local function readOrCreateTerrainSettings() + local file = io.open(terrain_file, "r") + if file then + -- Load existing world file + local data = minetest.deserialize(file:read("*all")) + file:close() + assert(data, "[flatgen] Can not deserialize the terrain file") + layers = data + return + end + -- Copy default params to the world file + file = io.open(terrain_file, "w") + file:write(minetest.serialize(layers)) + file:close() +end + +readOrCreateTerrainSettings() + +minetest.after(0, function() + -- Transform node strings to content ID + for i, v in ipairs(layers) do + assert(minetest.registered_nodes[v[1]], "[flatgen] Unknown node: "..v[1]) + v[1] = minetest.get_content_id(v[1]) + end +end) + + +minetest.register_chatcommand("regenerate", { + description = "Regenerates a ^3 nodes around you", + params = "", + privs = {server=true}, + func = function(name, param) + local size = tonumber(param) or 0 + + if size < 10 then + return false, "Please submit a size number >= 10" + end + + size = math.floor(size / 2) + local player = minetest.get_player_by_name(name) + local pos = vector.round(player:getpos()) + + flatgen_generate( + vector.subtract(pos, size), + vector.add(pos, size), + 0, true + ) + return true, "Done!" + end +}) + +local c_air = minetest.get_content_id("air") +function flatgen_getNode(y, regenerate) + if y > generator_start_y then + return c_air + end + + local depth = generator_start_y + for i, v in ipairs(layers) do + if not v[2] or depth - v[2] < y then + return v[1] + end + depth = depth - v[2] + end + return regenerate and c_air --or nil +end + +function flatgen_generate(minp, maxp, seed, regenerate) + if minp.y > generator_start_y then + return -- Area outside of the generation area + end + + if not flatgen_getNode(maxp.y) then + return -- No node defined for that position or below + end + + local vm, emin, emax + if regenerate then -- Load regular VManip to regenerate area + vm = minetest.get_voxel_manip() + emin, emax = vm:read_from_map(minp, maxp) + else -- Load VManip from map generator + vm, emin, emax = minetest.get_mapgen_object("voxelmanip") + end + + local area = VoxelArea:new{MinEdge=emin, MaxEdge=emax} + local data = vm:get_data() + + for z = minp.z, maxp.z do + for y = minp.y, maxp.y do + local vi = area:index(minp.x, y, z) + local node = flatgen_getNode(y, regenerate) + for x = minp.x, maxp.x do + if node then + data[vi] = node + end + vi = vi + 1 + end + end + end + + vm:set_data(data) + if not regenerate then + vm:set_lighting({day=0, night=0}) + end + vm:calc_lighting() + vm:write_to_map(data) + if regenerate then + vm:update_map() + end +end + +table.insert(minetest.registered_on_generateds, 1, flatgen_generate) + +minetest.register_node(":ignore_me", { + description = "You hacker you!", + tiles = {"default_cloud.png"}, + paramtype = "light", + sunlight_propagates = true, + pointable = false, + drop = "", +}) \ No newline at end of file diff --git a/mods/flatgen/mod.conf b/mods/flatgen/mod.conf new file mode 100644 index 0000000..8c9a3d3 --- /dev/null +++ b/mods/flatgen/mod.conf @@ -0,0 +1,3 @@ +name = flatgen +description = Generates true flat worlds without any decoration +depends = default \ No newline at end of file diff --git a/mods/flowers/depends.txt b/mods/flowers/depends.txt deleted file mode 100644 index 4ad96d5..0000000 --- a/mods/flowers/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/mods/flowers/init.lua b/mods/flowers/init.lua index 3ad4bf6..9731750 100644 --- a/mods/flowers/init.lua +++ b/mods/flowers/init.lua @@ -1,3 +1,5 @@ +-- flowers/init.lua + -- Minetest 0.4 mod: default -- See README.txt for licensing and other information. @@ -6,6 +8,9 @@ flowers = {} +-- Load support for MT game translation. +local S = minetest.get_translator("flowers") + -- Map Generation @@ -46,7 +51,6 @@ local function add_simple_flower(name, desc, box, f_groups) paramtype = "light", walkable = false, buildable_to = true, - stack_max = 99, groups = f_groups, sounds = default.node_sound_leaves_defaults(), selection_box = { @@ -59,49 +63,49 @@ end flowers.datas = { { "rose", - "Red Rose", + S("Red Rose"), {-2 / 16, -0.5, -2 / 16, 2 / 16, 5 / 16, 2 / 16}, {color_red = 1, flammable = 1} }, { "tulip", - "Orange Tulip", + S("Orange Tulip"), {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, {color_orange = 1, flammable = 1} }, { "dandelion_yellow", - "Yellow Dandelion", + S("Yellow Dandelion"), {-4 / 16, -0.5, -4 / 16, 4 / 16, -2 / 16, 4 / 16}, {color_yellow = 1, flammable = 1} }, { "chrysanthemum_green", - "Green Chrysanthemum", + S("Green Chrysanthemum"), {-4 / 16, -0.5, -4 / 16, 4 / 16, -1 / 16, 4 / 16}, {color_green = 1, flammable = 1} }, { "geranium", - "Blue Geranium", + S("Blue Geranium"), {-2 / 16, -0.5, -2 / 16, 2 / 16, 2 / 16, 2 / 16}, {color_blue = 1, flammable = 1} }, { "viola", - "Viola", + S("Viola"), {-5 / 16, -0.5, -5 / 16, 5 / 16, -1 / 16, 5 / 16}, {color_violet = 1, flammable = 1} }, { "dandelion_white", - "White Dandelion", + S("White Dandelion"), {-5 / 16, -0.5, -5 / 16, 5 / 16, -2 / 16, 5 / 16}, {color_white = 1, flammable = 1} }, { "tulip_black", - "Black Tulip", + S("Black Tulip"), {-2 / 16, -0.5, -2 / 16, 2 / 16, 3 / 16, 2 / 16}, {color_black = 1, flammable = 1} }, @@ -181,7 +185,7 @@ minetest.register_abm({ -- minetest.register_node("flowers:mushroom_red", { - description = "Red Mushroom", + description = S("Red Mushroom"), tiles = {"flowers_mushroom_red.png"}, inventory_image = "flowers_mushroom_red.png", wield_image = "flowers_mushroom_red.png", @@ -190,7 +194,7 @@ minetest.register_node("flowers:mushroom_red", { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = {snappy = 3, attached_node = 1, flammable = 1}, + groups = {mushroom = 1, snappy = 3, attached_node = 1, flammable = 1}, sounds = default.node_sound_leaves_defaults(), on_use = minetest.item_eat(-5), selection_box = { @@ -200,7 +204,7 @@ minetest.register_node("flowers:mushroom_red", { }) minetest.register_node("flowers:mushroom_brown", { - description = "Brown Mushroom", + description = S("Brown Mushroom"), tiles = {"flowers_mushroom_brown.png"}, inventory_image = "flowers_mushroom_brown.png", wield_image = "flowers_mushroom_brown.png", @@ -209,7 +213,7 @@ minetest.register_node("flowers:mushroom_brown", { sunlight_propagates = true, walkable = false, buildable_to = true, - groups = {food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 1}, + groups = {mushroom = 1, food_mushroom = 1, snappy = 3, attached_node = 1, flammable = 1}, sounds = default.node_sound_leaves_defaults(), on_use = minetest.item_eat(1), selection_box = { @@ -222,8 +226,10 @@ minetest.register_node("flowers:mushroom_brown", { -- Mushroom spread and death function flowers.mushroom_spread(pos, node) - if minetest.get_node_light(pos, nil) == 15 then - minetest.remove_node(pos) + if minetest.get_node_light(pos, 0.5) > 3 then + if minetest.get_node_light(pos, nil) == 15 then + minetest.remove_node(pos) + end return end local positions = minetest.find_nodes_in_area_under_air( @@ -235,8 +241,7 @@ function flowers.mushroom_spread(pos, node) end local pos2 = positions[math.random(#positions)] pos2.y = pos2.y + 1 - if minetest.get_node_light(pos, 0.5) <= 3 and - minetest.get_node_light(pos2, 0.5) <= 3 then + if minetest.get_node_light(pos2, 0.5) <= 3 then minetest.set_node(pos2, {name = node.name}) end end @@ -266,8 +271,8 @@ minetest.register_alias("mushroom:red_natural", "flowers:mushroom_red") -- Waterlily -- -minetest.register_node("flowers:waterlily", { - description = "Waterlily", +local waterlily_def = { + description = S("Waterlily"), drawtype = "nodebox", paramtype = "light", paramtype2 = "facedir", @@ -294,7 +299,6 @@ minetest.register_node("flowers:waterlily", { local pos = pointed_thing.above local node = minetest.get_node(pointed_thing.under) local def = minetest.registered_nodes[node.name] - local player_name = placer and placer:get_player_name() or "" if def and def.on_rightclick then return def.on_rightclick(pointed_thing.under, node, placer, itemstack, @@ -303,8 +307,10 @@ minetest.register_node("flowers:waterlily", { if def and def.liquidtype == "source" and minetest.get_item_group(node.name, "water") > 0 then + local player_name = placer and placer:get_player_name() or "" if not minetest.is_protected(pos, player_name) then - minetest.set_node(pos, {name = "flowers:waterlily", + minetest.set_node(pos, {name = "flowers:waterlily" .. + (def.waving == 3 and "_waving" or ""), param2 = math.random(0, 3)}) if not (creative and creative.is_enabled_for and creative.is_enabled_for(player_name)) then @@ -318,4 +324,13 @@ minetest.register_node("flowers:waterlily", { return itemstack end -}) +} + +local waterlily_waving_def = table.copy(waterlily_def) +waterlily_waving_def.waving = 3 +waterlily_waving_def.drop = "flowers:waterlily" +waterlily_waving_def.groups.not_in_creative_inventory = 1 + +minetest.register_node("flowers:waterlily", waterlily_def) +minetest.register_node("flowers:waterlily_waving", waterlily_waving_def) + diff --git a/mods/flowers/locale/flowers.de.tr b/mods/flowers/locale/flowers.de.tr new file mode 100644 index 0000000..18afb2a --- /dev/null +++ b/mods/flowers/locale/flowers.de.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Rote Rose +Orange Tulip=Orange Tulpe +Yellow Dandelion=Gelber Löwenzahn +Green Chrysanthemum=Grüne Chrysantheme +Blue Geranium=Blaue Geranie +Viola=Veilchen +White Dandelion=Weißer Löwenzahn +Black Tulip=Schwarze Tulpe +Red Mushroom=Roter Pilz +Brown Mushroom=Brauner Pilz +Waterlily=Wasserlilie diff --git a/mods/flowers/locale/flowers.es.tr b/mods/flowers/locale/flowers.es.tr new file mode 100644 index 0000000..e9c345d --- /dev/null +++ b/mods/flowers/locale/flowers.es.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Rosa roja +Orange Tulip=Tulipán naranja +Yellow Dandelion=Diente de León amarillo +Green Chrysanthemum=Crisantemo verde +Blue Geranium=Geranio azul +Viola=Violeta +White Dandelion=Diente de León blanco +Black Tulip=Tulipán negro +Red Mushroom=Champiñón rojo +Brown Mushroom=Champiñón café +Waterlily=Nenúfar diff --git a/mods/flowers/locale/flowers.fr.tr b/mods/flowers/locale/flowers.fr.tr new file mode 100644 index 0000000..41e0d00 --- /dev/null +++ b/mods/flowers/locale/flowers.fr.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Rose rouge +Orange Tulip=Tulipe orange +Yellow Dandelion=Pissenlit jaune +Green Chrysanthemum=Chrysanthème vert +Blue Geranium=Géranium bleu +Viola=Violette +White Dandelion=Pissenlit blanc +Black Tulip=Tulipe noire +Red Mushroom=Champignon rouge +Brown Mushroom=Champignon brun +Waterlily=Nénuphar diff --git a/mods/flowers/locale/flowers.it.tr b/mods/flowers/locale/flowers.it.tr new file mode 100644 index 0000000..07aa381 --- /dev/null +++ b/mods/flowers/locale/flowers.it.tr @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose=Rosa rossa +Orange Tulip=Tulipano arancione +Yellow Dandelion=Dente di leone giallo +Green Chrysanthemum=Crisantemo verde +Blue Geranium=Geranio blu +Viola=Viola +White Dandelion=Dente di leone bianco +Black Tulip=Tulipano nero +Red Mushroom=Fungo rosso +Brown Mushroom=Fungo marrone +Waterlily=Ninfea \ No newline at end of file diff --git a/mods/flowers/locale/template.txt b/mods/flowers/locale/template.txt new file mode 100644 index 0000000..a3a687f --- /dev/null +++ b/mods/flowers/locale/template.txt @@ -0,0 +1,12 @@ +# textdomain: flowers +Red Rose= +Orange Tulip= +Yellow Dandelion= +Green Chrysanthemum= +Blue Geranium= +Viola= +White Dandelion= +Black Tulip= +Red Mushroom= +Brown Mushroom= +Waterlily= diff --git a/mods/flowers/mapgen.lua b/mods/flowers/mapgen.lua index ad759c2..85e19b7 100644 --- a/mods/flowers/mapgen.lua +++ b/mods/flowers/mapgen.lua @@ -60,7 +60,7 @@ local function register_mgv6_waterlily() }, y_max = 0, y_min = 0, - decoration = "flowers:waterlily", + decoration = "flowers:waterlily_waving", param2 = 0, param2_max = 3, place_offset_y = 1, @@ -146,7 +146,7 @@ local function register_waterlily() biomes = {"rainforest_swamp", "savanna_shore", "deciduous_forest_shore"}, y_max = 0, y_min = 0, - decoration = "flowers:waterlily", + decoration = "flowers:waterlily_waving", param2 = 0, param2_max = 3, place_offset_y = 1, diff --git a/mods/flowers/mod.conf b/mods/flowers/mod.conf new file mode 100644 index 0000000..cdafe64 --- /dev/null +++ b/mods/flowers/mod.conf @@ -0,0 +1,3 @@ +name = flowers +description = Minetest Game mod: flowers +depends = default diff --git a/mods/game_commands/init.lua b/mods/game_commands/init.lua index 609c4a7..139a879 100644 --- a/mods/game_commands/init.lua +++ b/mods/game_commands/init.lua @@ -1,5 +1,11 @@ +-- game_commands/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("game_commands") + + minetest.register_chatcommand("killme", { - description = "Kill yourself to respawn", + description = S("Kill yourself to respawn"), func = function(name) local player = minetest.get_player_by_name(name) if player then @@ -15,11 +21,11 @@ minetest.register_chatcommand("killme", { -- There doesn't seem to be a way to get a default spawn pos -- from the lua API - return false, "No static_spawnpoint defined" + return false, S("No static_spawnpoint defined") end else -- Show error message if used when not logged in, eg: from IRC mod - return false, "You need to be online to be killed!" + return false, S("You need to be online to be killed!") end end }) diff --git a/mods/game_commands/locale/game_commands.de.tr b/mods/game_commands/locale/game_commands.de.tr new file mode 100644 index 0000000..24b0e25 --- /dev/null +++ b/mods/game_commands/locale/game_commands.de.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Selbstmord begehen, um zu Respawnen +No static_spawnpoint defined=Kein static_spawnpoint definiert +You need to be online to be killed!=Sie müssen online sein, um getötet zu werden! diff --git a/mods/game_commands/locale/game_commands.es.tr b/mods/game_commands/locale/game_commands.es.tr new file mode 100644 index 0000000..702a2ef --- /dev/null +++ b/mods/game_commands/locale/game_commands.es.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Suicídate para reaparecer +No static_spawnpoint defined=No se ha definido un punto de aparición +You need to be online to be killed!=¡Necesitas estar en línea para que te maten! diff --git a/mods/game_commands/locale/game_commands.fr.tr b/mods/game_commands/locale/game_commands.fr.tr new file mode 100644 index 0000000..0e295d6 --- /dev/null +++ b/mods/game_commands/locale/game_commands.fr.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Se suicider pour réapparaître +No static_spawnpoint defined=Pas de point d'apparition défini +You need to be online to be killed!=Vous devez être en ligne pour être tué ! diff --git a/mods/game_commands/locale/game_commands.it.tr b/mods/game_commands/locale/game_commands.it.tr new file mode 100644 index 0000000..fd009b1 --- /dev/null +++ b/mods/game_commands/locale/game_commands.it.tr @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn=Ucciditi per ricomparire +No static_spawnpoint defined=Nessuno static_spawnpoint definito +You need to be online to be killed!=Devi essere in linea per essere ucciso! \ No newline at end of file diff --git a/mods/game_commands/locale/template.txt b/mods/game_commands/locale/template.txt new file mode 100644 index 0000000..903f160 --- /dev/null +++ b/mods/game_commands/locale/template.txt @@ -0,0 +1,4 @@ +# textdomain: game_commands +Kill yourself to respawn= +No static_spawnpoint defined= +You need to be online to be killed!= diff --git a/mods/game_commands/mod.conf b/mods/game_commands/mod.conf new file mode 100644 index 0000000..5571ff5 --- /dev/null +++ b/mods/game_commands/mod.conf @@ -0,0 +1,2 @@ +name = game_commands +description = Minetest Game mod: game_commands diff --git a/mods/give_initial_stuff/depends.txt b/mods/give_initial_stuff/depends.txt deleted file mode 100644 index 3a7daa1..0000000 --- a/mods/give_initial_stuff/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default - diff --git a/mods/give_initial_stuff/init.lua b/mods/give_initial_stuff/init.lua index 4815bd8..74421dc 100644 --- a/mods/give_initial_stuff/init.lua +++ b/mods/give_initial_stuff/init.lua @@ -1,3 +1,5 @@ +-- gave_initial_stuff/init.lua + local stuff_string = minetest.settings:get("initial_stuff") or "default:pick_steel,default:axe_steel,default:shovel_steel," .. "default:torch 99,default:cobble 99" diff --git a/mods/give_initial_stuff/mod.conf b/mods/give_initial_stuff/mod.conf new file mode 100644 index 0000000..51d31ae --- /dev/null +++ b/mods/give_initial_stuff/mod.conf @@ -0,0 +1,3 @@ +name = give_initial_stuff +description = Minetest Game mod: give_initial_stuff +depends = default diff --git a/mods/map/README.txt b/mods/map/README.txt index c91e0d9..068439a 100644 --- a/mods/map/README.txt +++ b/mods/map/README.txt @@ -20,7 +20,7 @@ map:mapping_kit default:glass G default:paper P -default:stick S +group:stick S default:steel_ingot I group:wood W dye:black D diff --git a/mods/map/depends.txt b/mods/map/depends.txt deleted file mode 100644 index 4b15f6a..0000000 --- a/mods/map/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ -default -dye -creative? diff --git a/mods/map/init.lua b/mods/map/init.lua index 72b04c7..7c1e36f 100644 --- a/mods/map/init.lua +++ b/mods/map/init.lua @@ -1,8 +1,14 @@ +-- map/init.lua + -- Mod global namespace map = {} +-- Load support for MT game translation. +local S = minetest.get_translator("map") + + -- Cache creative mode setting local creative_mode_cache = minetest.settings:get_bool("creative_mode") @@ -49,7 +55,7 @@ minetest.after(5.3, cyclic_update) -- Mapping kit item minetest.register_craftitem("map:mapping_kit", { - description = "Mapping Kit\nUse with 'Minimap' key", + description = S("Mapping Kit") .. "\n" .. S("Use with 'Minimap' key"), inventory_image = "map_mapping_kit.png", stack_max = 1, groups = {flammable = 3}, @@ -65,7 +71,7 @@ minetest.register_craftitem("map:mapping_kit", { minetest.register_craft({ output = "map:mapping_kit", recipe = { - {"default:glass", "default:paper", "default:stick"}, + {"default:glass", "default:paper", "group:stick"}, {"default:steel_ingot", "default:paper", "default:steel_ingot"}, {"group:wood", "default:paper", "dye:black"}, } diff --git a/mods/map/locale/map.de.tr b/mods/map/locale/map.de.tr new file mode 100644 index 0000000..1a784ab --- /dev/null +++ b/mods/map/locale/map.de.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kartenset +Use with 'Minimap' key=Mit „Karte an/aus“-Taste benutzen diff --git a/mods/map/locale/map.es.tr b/mods/map/locale/map.es.tr new file mode 100644 index 0000000..0faed52 --- /dev/null +++ b/mods/map/locale/map.es.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kit de cartografía +Use with 'Minimap' key=Usar con la tecla 'Minimapa' diff --git a/mods/map/locale/map.fr.tr b/mods/map/locale/map.fr.tr new file mode 100644 index 0000000..29f8e20 --- /dev/null +++ b/mods/map/locale/map.fr.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kit de carthographie +Use with 'Minimap' key=Utiliser avec le bouton « Minimap » diff --git a/mods/map/locale/map.it.tr b/mods/map/locale/map.it.tr new file mode 100644 index 0000000..f16c665 --- /dev/null +++ b/mods/map/locale/map.it.tr @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit=Kit di mappatura +Use with 'Minimap' key=Usalo col tasto 'Minimappa' \ No newline at end of file diff --git a/mods/map/locale/template.txt b/mods/map/locale/template.txt new file mode 100644 index 0000000..2dbe2ee --- /dev/null +++ b/mods/map/locale/template.txt @@ -0,0 +1,3 @@ +# textdomain: map +Mapping Kit= +Use with 'Minimap' key= diff --git a/mods/map/mod.conf b/mods/map/mod.conf new file mode 100644 index 0000000..2099c19 --- /dev/null +++ b/mods/map/mod.conf @@ -0,0 +1,4 @@ +name = map +description = Minetest Game mod: map +depends = default, dye +optional_depends = creative diff --git a/mods/mapfix/LICENSE b/mods/mapfix/LICENSE deleted file mode 100644 index cb15575..0000000 --- a/mods/mapfix/LICENSE +++ /dev/null @@ -1,4 +0,0 @@ -GNU GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - -See http://www.gnu.org/licenses/gpl-3.0.en.html diff --git a/mods/mapfix/README.md b/mods/mapfix/README.md deleted file mode 100644 index 2ea9d90..0000000 --- a/mods/mapfix/README.md +++ /dev/null @@ -1,13 +0,0 @@ -#mapfix - -Fix some map errors (flow and light problems) - -![Before](http://i.imgur.com/T3csYME.png) -![After](http://i.imgur.com/d0V0aO7.png) -Look at the water and the jungle trunk at the center. - - -##minetest.conf settings -* mapfix_default_size (by default 40) : size used when omitted -* mapfix_max_size (by default 50) : maximum size allowed for players -* mapfix_delay (by default 15) : minimal delay in seconds between 2 "/mapfix" (to avoid server freezing) \ No newline at end of file diff --git a/mods/mapfix/description.txt b/mods/mapfix/description.txt deleted file mode 100644 index 0b43266..0000000 --- a/mods/mapfix/description.txt +++ /dev/null @@ -1 +0,0 @@ -Fix some map errors (flow and light problems) diff --git a/mods/mapfix/init.lua b/mods/mapfix/init.lua deleted file mode 100644 index 10fa0f6..0000000 --- a/mods/mapfix/init.lua +++ /dev/null @@ -1,48 +0,0 @@ -local function mapfix(minp, maxp) - local vm = minetest.get_voxel_manip(minp, maxp) - vm:update_liquids() - vm:write_to_map() - vm:update_map() - local emin, emax = vm:get_emerged_area() - print(minetest.pos_to_string(emin), minetest.pos_to_string(emax)) -end - -local previous = os.time() - -local default_size = tonumber(minetest.settings:get("mapfix_default_size")) or 24 -local max_size = tonumber(minetest.settings:get("mapfix_max_size")) or 32 -local delay = tonumber(minetest.settings:get("mapfix_delay")) or 15 - -minetest.register_chatcommand("mapfix", { - params = "", - description = "Recalculate the flowing liquids and the light of a chunk", - func = function(name, param) - local pos = vector.round(minetest.get_player_by_name(name):getpos()) - local size = tonumber(param) or default_size - - if size >= 121 then - return false, "Radius is too big" - end - local privs = minetest.check_player_privs(name, {server=true}) - local time = os.time() - - if not privs then - if size > max_size then - return false, "You need the server privilege to exceed the radius of " .. max_size .. " blocks" - elseif time - previous < delay then - return false, "Wait at least " .. delay .. " seconds from the previous \"/mapfix\"." - end - previous = time - end - - minetest.log("action", name .. " uses mapfix at " .. minetest.pos_to_string(vector.round(pos)) .. " with radius " .. size) - - size = math.max(math.floor(size - 8), 0) -- When passed to get_voxel_manip, positions are rounded up, to a multiple of 16 nodes in each direction. By subtracting 8 it's rounded to the nearest chunk border. max is used to avoid negative radius. - - local minp = vector.subtract(pos, size) - local maxp = vector.add(pos, size) - - mapfix(minp, maxp) - return true, "Done." - end, -}) diff --git a/mods/mapfix/mod.conf b/mods/mapfix/mod.conf deleted file mode 100644 index cc610a4..0000000 --- a/mods/mapfix/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name = mapfix diff --git a/mods/player_api/api.lua b/mods/player_api/api.lua index e309b08..0afd679 100644 --- a/mods/player_api/api.lua +++ b/mods/player_api/api.lua @@ -54,6 +54,7 @@ function player_api.set_model(player, model_name) player:set_properties({ textures = {"player.png", "player_back.png"}, visual = "upright_sprite", + visual_size = {x = 1, y = 2}, collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.75, 0.3}, stepheight = 0.6, eye_height = 1.625, diff --git a/mods/player_api/init.lua b/mods/player_api/init.lua index 7a1f353..783ff7e 100644 --- a/mods/player_api/init.lua +++ b/mods/player_api/init.lua @@ -1,3 +1,5 @@ +-- player/init.lua + dofile(minetest.get_modpath("player_api") .. "/api.lua") -- Default player appearance diff --git a/mods/player_api/mod.conf b/mods/player_api/mod.conf new file mode 100644 index 0000000..198b86d --- /dev/null +++ b/mods/player_api/mod.conf @@ -0,0 +1,2 @@ +name = player_api +description = Minetest Game mod: player_api diff --git a/mods/screwdriver/init.lua b/mods/screwdriver/init.lua index 634edf8..82fbaab 100644 --- a/mods/screwdriver/init.lua +++ b/mods/screwdriver/init.lua @@ -1,5 +1,11 @@ +-- screwdriver/init.lua + screwdriver = {} +-- Load support for MT game translation. +local S = minetest.get_translator("screwdriver") + + screwdriver.ROTATE_FACE = 1 screwdriver.ROTATE_AXIS = 2 screwdriver.disallow = function(pos, node, user, mode, new_param2) @@ -144,8 +150,9 @@ end -- Screwdriver minetest.register_tool("screwdriver:screwdriver", { - description = "Screwdriver (left-click rotates face, right-click rotates axis)", + description = S("Screwdriver") .. "\n" .. S("(left-click rotates face, right-click rotates axis)"), inventory_image = "screwdriver.png", + groups = {tool = 1}, on_use = function(itemstack, user, pointed_thing) screwdriver.handler(itemstack, user, pointed_thing, screwdriver.ROTATE_FACE, 200) return itemstack diff --git a/mods/screwdriver/locale/screwdriver.de.tr b/mods/screwdriver/locale/screwdriver.de.tr new file mode 100644 index 0000000..3c48ab4 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.de.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Schraubendreher +(left-click rotates face, right-click rotates axis)=(Linksklick dreht Seite, Rechtsklick dreht Achse) diff --git a/mods/screwdriver/locale/screwdriver.es.tr b/mods/screwdriver/locale/screwdriver.es.tr new file mode 100644 index 0000000..868ffc3 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.es.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Destornillador +(left-click rotates face, right-click rotates axis)=(clic-izquierdo gira la cara, clic-derecho rota el eje) diff --git a/mods/screwdriver/locale/screwdriver.fr.tr b/mods/screwdriver/locale/screwdriver.fr.tr new file mode 100644 index 0000000..fe34a9b --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.fr.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Tournevis +(left-click rotates face, right-click rotates axis)=(clic gauche pour changer de face, clic droit pour changer d'axe) diff --git a/mods/screwdriver/locale/screwdriver.it.tr b/mods/screwdriver/locale/screwdriver.it.tr new file mode 100644 index 0000000..077ea11 --- /dev/null +++ b/mods/screwdriver/locale/screwdriver.it.tr @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver=Cacciavite +(left-click rotates face, right-click rotates axis)=(click sinistro ruota la faccia, click destro ruota l'asse) \ No newline at end of file diff --git a/mods/screwdriver/locale/template.txt b/mods/screwdriver/locale/template.txt new file mode 100644 index 0000000..4cc8e2a --- /dev/null +++ b/mods/screwdriver/locale/template.txt @@ -0,0 +1,3 @@ +# textdomain: screwdriver +Screwdriver= +(left-click rotates face, right-click rotates axis)= diff --git a/mods/screwdriver/mod.conf b/mods/screwdriver/mod.conf new file mode 100644 index 0000000..306c52b --- /dev/null +++ b/mods/screwdriver/mod.conf @@ -0,0 +1,2 @@ +name = screwdriver +description = Minetest Game mod: screwdriver diff --git a/mods/sethome/init.lua b/mods/sethome/init.lua index 4563381..bad7806 100644 --- a/mods/sethome/init.lua +++ b/mods/sethome/init.lua @@ -1,6 +1,11 @@ +-- sethome/init.lua sethome = {} +-- Load support for MT game translation. +local S = minetest.get_translator("sethome") + + local homes_file = minetest.get_worldpath() .. "/homes" local homepos = {} @@ -68,30 +73,30 @@ sethome.go = function(name) end minetest.register_privilege("home", { - description = "Can use /sethome and /home", + description = S("Can use /sethome and /home"), give_to_singleplayer = false }) minetest.register_chatcommand("home", { - description = "Teleport you to your home point", + description = S("Teleport you to your home point"), privs = {home = true}, func = function(name) if sethome.go(name) then - return true, "Teleported to home!" + return true, S("Teleported to home!") end - return false, "Set a home using /sethome" + return false, S("Set a home using /sethome") end, }) minetest.register_chatcommand("sethome", { - description = "Set your home point", + description = S("Set your home point"), privs = {home = true}, func = function(name) name = name or "" -- fallback to blank name if nil local player = minetest.get_player_by_name(name) if player and sethome.set(name, player:get_pos()) then - return true, "Home set!" + return true, S("Home set!") end - return false, "Player not found!" + return false, S("Player not found!") end, }) diff --git a/mods/sethome/locale/sethome.de.tr b/mods/sethome/locale/sethome.de.tr new file mode 100644 index 0000000..46279dd --- /dev/null +++ b/mods/sethome/locale/sethome.de.tr @@ -0,0 +1,8 @@ +# textdomain: sethome +Can use /sethome and /home=Kann /sethome und /home benutzen +Teleport you to your home point=Teleportieren Sie sich zu Ihrem Zuhause-Punkt +Teleported to home!=Nach Hause teleportiert! +Set a home using /sethome=Ein Zuhause mit /sethome setzen +Set your home point=Ihren Zuhause-Punkt setzen +Home set!=Zuhause gesetzt! +Player not found!=Spieler nicht gefunden! diff --git a/mods/sethome/locale/sethome.es.tr b/mods/sethome/locale/sethome.es.tr new file mode 100644 index 0000000..7c04ee3 --- /dev/null +++ b/mods/sethome/locale/sethome.es.tr @@ -0,0 +1,8 @@ +# textdomain: sethome +Can use /sethome and /home=Puedes usar /sethome y /home +Teleport you to your home point=Teletranspórtate a tu hogar +Teleported to home!=¡Teletransportado a tu hogar! +Set a home using /sethome=Establece tu hogar usando /sethome +Set your home point=Establece el sitio de tu hogar +Home set!=¡Hogar establecido! +Player not found!=¡Jugador no encontrado! diff --git a/mods/sethome/locale/sethome.fr.tr b/mods/sethome/locale/sethome.fr.tr new file mode 100644 index 0000000..852621d --- /dev/null +++ b/mods/sethome/locale/sethome.fr.tr @@ -0,0 +1,8 @@ +# textdomain: sethome +Can use /sethome and /home=Peut utiliser /sethome et /home +Teleport you to your home point=Vous téléporter à votre domicile +Teleported to home!=Téléporté à votre domicile ! +Set a home using /sethome=Définir un domicile en utilisant /sethome +Set your home point=Définir votre domicile +Home set!=Domicile défini ! +Player not found!=Joueur non trouvé ! diff --git a/mods/sethome/locale/sethome.it.tr b/mods/sethome/locale/sethome.it.tr new file mode 100644 index 0000000..9db1df8 --- /dev/null +++ b/mods/sethome/locale/sethome.it.tr @@ -0,0 +1,8 @@ +# textdomain: sethome +Can use /sethome and /home=Può usare /sethome e /home +Teleport you to your home point=Ti teletrasporta al tuo punto di domicilio +Teleported to home!=Teletrasportato a casa! +Set a home using /sethome=Imposta un domicilio usando /sethome +Set your home point=Imposta il tuo punto di domicilio +Home set!=Domicilio impostato! +Player not found!=Giocatore non trovato! \ No newline at end of file diff --git a/mods/sethome/locale/template.txt b/mods/sethome/locale/template.txt new file mode 100644 index 0000000..d04bd50 --- /dev/null +++ b/mods/sethome/locale/template.txt @@ -0,0 +1,8 @@ +# textdomain: sethome +Can use /sethome and /home= +Teleport you to your home point= +Teleported to home!= +Set a home using /sethome= +Set your home point= +Home set!= +Player not found!= diff --git a/mods/sethome/mod.conf b/mods/sethome/mod.conf new file mode 100644 index 0000000..0079925 --- /dev/null +++ b/mods/sethome/mod.conf @@ -0,0 +1,2 @@ +name = sethome +description = Minetest Game mod: sethome diff --git a/mods/sfinv/README.txt b/mods/sfinv/README.txt index a7ac794..a69e3c3 100644 --- a/mods/sfinv/README.txt +++ b/mods/sfinv/README.txt @@ -11,3 +11,8 @@ https://forum.minetest.net/viewtopic.php?t=19765 Authors of source code ---------------------- rubenwardy (MIT) + +Authors of media +---------------- +paramat (CC BY-SA 3.0): + sfinv_crafting_arrow.png - derived from a texture by BlockMen (CC BY-SA 3.0) diff --git a/mods/sfinv/api.lua b/mods/sfinv/api.lua index cd5b5e8..509cb90 100644 --- a/mods/sfinv/api.lua +++ b/mods/sfinv/api.lua @@ -37,6 +37,14 @@ function sfinv.get_nav_fs(player, context, nav, current_idx) end local theme_inv = [[ + image[0,4.7;1,1;gui_hb_bg.png] + image[1,4.7;1,1;gui_hb_bg.png] + image[2,4.7;1,1;gui_hb_bg.png] + image[3,4.7;1,1;gui_hb_bg.png] + image[4,4.7;1,1;gui_hb_bg.png] + image[5,4.7;1,1;gui_hb_bg.png] + image[6,4.7;1,1;gui_hb_bg.png] + image[7,4.7;1,1;gui_hb_bg.png] list[current_player;main;0,4.7;8,1;] list[current_player;main;0,5.85;8,3;8] ]] @@ -45,11 +53,9 @@ function sfinv.make_formspec(player, context, content, show_inv, size) local tmp = { size or "size[8,8.6]", sfinv.get_nav_fs(player, context, context.nav_titles, context.nav_idx), + show_inv and theme_inv or "", content } - if show_inv then - tmp[#tmp + 1] = theme_inv - end return table.concat(tmp, "") end diff --git a/mods/sfinv/init.lua b/mods/sfinv/init.lua index a2294a4..71e9ee7 100644 --- a/mods/sfinv/init.lua +++ b/mods/sfinv/init.lua @@ -1,22 +1,19 @@ +-- sfinv/init.lua + dofile(minetest.get_modpath("sfinv") .. "/api.lua") +-- Load support for MT game translation. +local S = minetest.get_translator("sfinv") + sfinv.register_page("sfinv:crafting", { - title = "Crafting", + title = S("Crafting"), get = function(self, player, context) return sfinv.make_formspec(player, context, [[ list[current_player;craft;1.75,0.5;3,3;] list[current_player;craftpreview;5.75,1.5;1,1;] - image[4.75,1.5;1,1;gui_furnace_arrow_bg.png^[transformR270] + image[4.75,1.5;1,1;sfinv_crafting_arrow.png] listring[current_player;main] listring[current_player;craft] - image[0,4.7;1,1;gui_hb_bg.png] - image[1,4.7;1,1;gui_hb_bg.png] - image[2,4.7;1,1;gui_hb_bg.png] - image[3,4.7;1,1;gui_hb_bg.png] - image[4,4.7;1,1;gui_hb_bg.png] - image[5,4.7;1,1;gui_hb_bg.png] - image[6,4.7;1,1;gui_hb_bg.png] - image[7,4.7;1,1;gui_hb_bg.png] ]], true) end }) diff --git a/mods/sfinv/license.txt b/mods/sfinv/license.txt index e27dc85..6676d74 100644 --- a/mods/sfinv/license.txt +++ b/mods/sfinv/license.txt @@ -22,3 +22,38 @@ DEALINGS IN THE SOFTWARE. For more details: https://opensource.org/licenses/MIT + + +License of media +---------------- + +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +Copyright (C) 2019 paramat + +You are free to: +Share — copy and redistribute the material in any medium or format. +Adapt — remix, transform, and build upon the material for any purpose, even commercially. +The licensor cannot revoke these freedoms as long as you follow the license terms. + +Under the following terms: + +Attribution — You must give appropriate credit, provide a link to the license, and +indicate if changes were made. You may do so in any reasonable manner, but not in any way +that suggests the licensor endorses you or your use. + +ShareAlike — If you remix, transform, or build upon the material, you must distribute +your contributions under the same license as the original. + +No additional restrictions — You may not apply legal terms or technological measures that +legally restrict others from doing anything the license permits. + +Notices: + +You do not have to comply with the license for elements of the material in the public +domain or where your use is permitted by an applicable exception or limitation. +No warranties are given. The license may not give you all of the permissions necessary +for your intended use. For example, other rights such as publicity, privacy, or moral +rights may limit how you use the material. + +For more details: +http://creativecommons.org/licenses/by-sa/3.0/ diff --git a/mods/sfinv/locale/sfinv.de.tr b/mods/sfinv/locale/sfinv.de.tr new file mode 100644 index 0000000..1ba6acb --- /dev/null +++ b/mods/sfinv/locale/sfinv.de.tr @@ -0,0 +1,2 @@ +# textdomain:sfinv +Crafting=Fertigung diff --git a/mods/sfinv/locale/sfinv.es.tr b/mods/sfinv/locale/sfinv.es.tr new file mode 100644 index 0000000..b941f4e --- /dev/null +++ b/mods/sfinv/locale/sfinv.es.tr @@ -0,0 +1,2 @@ +# textdomain:sfinv +Crafting=Creación diff --git a/mods/sfinv/locale/sfinv.fr.tr b/mods/sfinv/locale/sfinv.fr.tr new file mode 100644 index 0000000..6d59735 --- /dev/null +++ b/mods/sfinv/locale/sfinv.fr.tr @@ -0,0 +1,2 @@ +# textdomain:sfinv +Crafting=Artisanat diff --git a/mods/sfinv/locale/sfinv.it.tr b/mods/sfinv/locale/sfinv.it.tr new file mode 100644 index 0000000..2a00e91 --- /dev/null +++ b/mods/sfinv/locale/sfinv.it.tr @@ -0,0 +1,2 @@ +# textdomain:sfinv +Crafting=Assemblaggio \ No newline at end of file diff --git a/mods/sfinv/locale/template.txt b/mods/sfinv/locale/template.txt new file mode 100644 index 0000000..913ba9f --- /dev/null +++ b/mods/sfinv/locale/template.txt @@ -0,0 +1,2 @@ +# textdomain:sfinv +Crafting= diff --git a/mods/sfinv/mod.conf b/mods/sfinv/mod.conf new file mode 100644 index 0000000..2934435 --- /dev/null +++ b/mods/sfinv/mod.conf @@ -0,0 +1,2 @@ +name = sfinv +description = Minetest Game mod: sfinv diff --git a/mods/sfinv/textures/sfinv_crafting_arrow.png b/mods/sfinv/textures/sfinv_crafting_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..df1bbdb4be285ca651ec29982267e61da0cc639c GIT binary patch literal 469 zcmeAS@N?(olHy`uVBq!ia0vp^DIm+Rjsxy=p?Y!B@P zQ)k#YDSmOb*K2WFFd;@PlV7onFVgKzPfO0v4NUb4a);CmjS*mXxxB63mrXkTum1YY z+J4?I{D|SnDJiQ8S$3{-XPlX-v9~E9u!_xb(HFiZXF--WB@P}}0f{aJ0};mrjiv(u zER72}n249KzvmUjCUN>ed5+ho(76AbZBNd6GBc(2`L?SMpM2hUktcp9TR-piDao$& zokn{$o{V%B`L4L37HVDd{fns@)uuaJ1B92<9^ZL#R*G;-V`0@I4Gs=x0f}Sz?vckC z%Iz*?macv0e|_^ghizFKtj$6VBzl(Ix96L2`s7WYLk03ohXq*L6ghZ+I@%NrcpMWX znhqGSG$wM8CQ-$HFj3|2zl7!cLd#TbQ=c=@kj+`MMFuE8# MUHx3vIVCg!0F!X3YybcN literal 0 HcmV?d00001 diff --git a/mods/spawn/depends.txt b/mods/spawn/depends.txt deleted file mode 100644 index 548489e..0000000 --- a/mods/spawn/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -default -beds? diff --git a/mods/spawn/init.lua b/mods/spawn/init.lua index 6707932..0e1261e 100644 --- a/mods/spawn/init.lua +++ b/mods/spawn/init.lua @@ -1,3 +1,5 @@ +-- spawn/init.lua + -- Disable by mapgen, setting or if 'static_spawnpoint' is set -------------------------------------------------------------- @@ -56,6 +58,15 @@ local success = false local spawn_pos = {} +-- Get world 'mapgen_limit' and 'chunksize' to calculate 'spawn_limit'. +-- This accounts for how mapchunks are not generated if they or their shell exceed +-- 'mapgen_limit'. + +local mapgen_limit = tonumber(minetest.get_mapgen_setting("mapgen_limit")) +local chunksize = tonumber(minetest.get_mapgen_setting("chunksize")) +local spawn_limit = math.max(mapgen_limit - (chunksize + 1) * 16, 0) + + --Functions ----------- @@ -100,6 +111,10 @@ local function search() end pos = next_pos() + -- Check for position being outside world edge + if math.abs(pos.x) > spawn_limit or math.abs(pos.z) > spawn_limit then + return false + end end return false diff --git a/mods/spawn/mod.conf b/mods/spawn/mod.conf new file mode 100644 index 0000000..ec3d564 --- /dev/null +++ b/mods/spawn/mod.conf @@ -0,0 +1,4 @@ +name = spawn +description = Minetest Game mod: spawn +depends = default +optional_depends = beds diff --git a/mods/stairs/depends.txt b/mods/stairs/depends.txt deleted file mode 100644 index 4ad96d5..0000000 --- a/mods/stairs/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default diff --git a/mods/stairs/init.lua b/mods/stairs/init.lua index e9f6dc1..e2984f6 100644 --- a/mods/stairs/init.lua +++ b/mods/stairs/init.lua @@ -1,3 +1,5 @@ +-- stairs/init.lua + -- Minetest 0.4 mod: stairs -- See README.txt for licensing and other information. @@ -6,6 +8,9 @@ stairs = {} +-- Load support for MT game translation. +local S = minetest.get_translator("stairs") + -- Register aliases for new pine node names @@ -44,6 +49,12 @@ local function rotate_and_place(itemstack, placer, pointed_thing) return minetest.item_place(itemstack, placer, pointed_thing, param2) end +local function warn_if_exists(nodename) + if minetest.registered_nodes[nodename] then + minetest.log("warning", "Overwriting stairs node: " .. nodename) + end +end + -- Register stair -- Node will be called stairs:stair_ @@ -73,6 +84,7 @@ function stairs.register_stair(subname, recipeitem, groups, images, description, end local new_groups = table.copy(groups) new_groups.stair = 1 + warn_if_exists("stairs:stair_" .. subname) minetest.register_node(":stairs:stair_" .. subname, { description = description, drawtype = "nodebox", @@ -109,7 +121,7 @@ function stairs.register_stair(subname, recipeitem, groups, images, description, if recipeitem then -- Recipe matches appearence in inventory minetest.register_craft({ - output = 'stairs:stair_' .. subname .. ' 8', + output = "stairs:stair_" .. subname .. " 8", recipe = { {"", "", recipeitem}, {"", recipeitem, recipeitem}, @@ -119,10 +131,10 @@ function stairs.register_stair(subname, recipeitem, groups, images, description, -- Use stairs to craft full blocks again (1:1) minetest.register_craft({ - output = recipeitem .. ' 3', + output = recipeitem .. " 3", recipe = { - {'stairs:stair_' .. subname, 'stairs:stair_' .. subname}, - {'stairs:stair_' .. subname, 'stairs:stair_' .. subname}, + {"stairs:stair_" .. subname, "stairs:stair_" .. subname}, + {"stairs:stair_" .. subname, "stairs:stair_" .. subname}, }, }) @@ -135,7 +147,7 @@ function stairs.register_stair(subname, recipeitem, groups, images, description, if baseburntime > 0 then minetest.register_craft({ type = "fuel", - recipe = 'stairs:stair_' .. subname, + recipe = "stairs:stair_" .. subname, burntime = math.floor(baseburntime * 0.75), }) end @@ -167,6 +179,7 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, end local new_groups = table.copy(groups) new_groups.slab = 1 + warn_if_exists("stairs:slab_" .. subname) minetest.register_node(":stairs:slab_" .. subname, { description = description, drawtype = "nodebox", @@ -224,7 +237,7 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, if recipeitem then minetest.register_craft({ - output = 'stairs:slab_' .. subname .. ' 6', + output = "stairs:slab_" .. subname .. " 6", recipe = { {recipeitem, recipeitem, recipeitem}, }, @@ -234,8 +247,8 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, minetest.register_craft({ output = recipeitem, recipe = { - {'stairs:slab_' .. subname}, - {'stairs:slab_' .. subname}, + {"stairs:slab_" .. subname}, + {"stairs:slab_" .. subname}, }, }) @@ -248,7 +261,7 @@ function stairs.register_slab(subname, recipeitem, groups, images, description, if baseburntime > 0 then minetest.register_craft({ type = "fuel", - recipe = 'stairs:slab_' .. subname, + recipe = "stairs:slab_" .. subname, burntime = math.floor(baseburntime * 0.5), }) end @@ -283,7 +296,7 @@ end -- Node will be called stairs:stair_inner_ function stairs.register_stair_inner(subname, recipeitem, groups, images, - description, sounds, worldaligntex) + description, sounds, worldaligntex, full_description) -- Set backface culling and world-aligned textures local stair_images = {} for i, image in ipairs(images) do @@ -307,8 +320,14 @@ function stairs.register_stair_inner(subname, recipeitem, groups, images, end local new_groups = table.copy(groups) new_groups.stair = 1 + if full_description then + description = full_description + else + description = "Inner " .. description + end + warn_if_exists("stairs:stair_inner_" .. subname) minetest.register_node(":stairs:stair_inner_" .. subname, { - description = "Inner " .. description, + description = description, drawtype = "nodebox", tiles = stair_images, paramtype = "light", @@ -335,7 +354,7 @@ function stairs.register_stair_inner(subname, recipeitem, groups, images, if recipeitem then minetest.register_craft({ - output = 'stairs:stair_inner_' .. subname .. ' 7', + output = "stairs:stair_inner_" .. subname .. " 7", recipe = { {"", recipeitem, ""}, {recipeitem, "", recipeitem}, @@ -352,7 +371,7 @@ function stairs.register_stair_inner(subname, recipeitem, groups, images, if baseburntime > 0 then minetest.register_craft({ type = "fuel", - recipe = 'stairs:stair_inner_' .. subname, + recipe = "stairs:stair_inner_" .. subname, burntime = math.floor(baseburntime * 0.875), }) end @@ -364,7 +383,7 @@ end -- Node will be called stairs:stair_outer_ function stairs.register_stair_outer(subname, recipeitem, groups, images, - description, sounds, worldaligntex) + description, sounds, worldaligntex, full_description) -- Set backface culling and world-aligned textures local stair_images = {} for i, image in ipairs(images) do @@ -388,8 +407,14 @@ function stairs.register_stair_outer(subname, recipeitem, groups, images, end local new_groups = table.copy(groups) new_groups.stair = 1 + if full_description then + description = full_description + else + description = "Outer " .. description + end + warn_if_exists("stairs:stair_outer_" .. subname) minetest.register_node(":stairs:stair_outer_" .. subname, { - description = "Outer " .. description, + description = description, drawtype = "nodebox", tiles = stair_images, paramtype = "light", @@ -415,7 +440,7 @@ function stairs.register_stair_outer(subname, recipeitem, groups, images, if recipeitem then minetest.register_craft({ - output = 'stairs:stair_outer_' .. subname .. ' 6', + output = "stairs:stair_outer_" .. subname .. " 6", recipe = { {"", recipeitem, ""}, {recipeitem, recipeitem, recipeitem}, @@ -431,7 +456,7 @@ function stairs.register_stair_outer(subname, recipeitem, groups, images, if baseburntime > 0 then minetest.register_craft({ type = "fuel", - recipe = 'stairs:stair_outer_' .. subname, + recipe = "stairs:stair_outer_" .. subname, burntime = math.floor(baseburntime * 0.625), }) end @@ -454,10 +479,23 @@ function stairs.register_stair_and_slab(subname, recipeitem, groups, images, sounds, worldaligntex) end +-- Local function so we can apply translations +local function my_register_stair_and_slab(subname, recipeitem, groups, images, + desc_stair, desc_slab, sounds, worldaligntex) + stairs.register_stair(subname, recipeitem, groups, images, S(desc_stair), + sounds, worldaligntex) + stairs.register_stair_inner(subname, recipeitem, groups, images, "", + sounds, worldaligntex, S("Inner " .. desc_stair)) + stairs.register_stair_outer(subname, recipeitem, groups, images, "", + sounds, worldaligntex, S("Outer " .. desc_stair)) + stairs.register_slab(subname, recipeitem, groups, images, S(desc_slab), + sounds, worldaligntex) +end + -- Register default stairs and slabs -stairs.register_stair_and_slab( +my_register_stair_and_slab( "wood", "default:wood", {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, @@ -468,7 +506,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "junglewood", "default:junglewood", {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, @@ -479,7 +517,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "pine_wood", "default:pine_wood", {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, @@ -490,7 +528,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "acacia_wood", "default:acacia_wood", {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, @@ -501,7 +539,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "aspen_wood", "default:aspen_wood", {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, @@ -512,7 +550,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "stone", "default:stone", {cracky = 3}, @@ -523,7 +561,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "cobble", "default:cobble", {cracky = 3}, @@ -534,7 +572,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "mossycobble", "default:mossycobble", {cracky = 3}, @@ -545,7 +583,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "stonebrick", "default:stonebrick", {cracky = 2}, @@ -556,7 +594,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "stone_block", "default:stone_block", {cracky = 2}, @@ -567,7 +605,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "desert_stone", "default:desert_stone", {cracky = 3}, @@ -578,7 +616,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "desert_cobble", "default:desert_cobble", {cracky = 3}, @@ -589,7 +627,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "desert_stonebrick", "default:desert_stonebrick", {cracky = 2}, @@ -600,7 +638,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "desert_stone_block", "default:desert_stone_block", {cracky = 2}, @@ -611,7 +649,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "sandstone", "default:sandstone", {crumbly = 1, cracky = 3}, @@ -622,7 +660,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "sandstonebrick", "default:sandstonebrick", {cracky = 2}, @@ -633,7 +671,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "sandstone_block", "default:sandstone_block", {cracky = 2}, @@ -644,7 +682,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "desert_sandstone", "default:desert_sandstone", {crumbly = 1, cracky = 3}, @@ -655,7 +693,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "desert_sandstone_brick", "default:desert_sandstone_brick", {cracky = 2}, @@ -666,7 +704,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "desert_sandstone_block", "default:desert_sandstone_block", {cracky = 2}, @@ -677,7 +715,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "silver_sandstone", "default:silver_sandstone", {crumbly = 1, cracky = 3}, @@ -688,7 +726,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "silver_sandstone_brick", "default:silver_sandstone_brick", {cracky = 2}, @@ -699,7 +737,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "silver_sandstone_block", "default:silver_sandstone_block", {cracky = 2}, @@ -710,7 +748,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "obsidian", "default:obsidian", {cracky = 1, level = 2}, @@ -721,7 +759,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "obsidianbrick", "default:obsidianbrick", {cracky = 1, level = 2}, @@ -732,7 +770,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "obsidian_block", "default:obsidian_block", {cracky = 1, level = 2}, @@ -743,7 +781,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "brick", "default:brick", {cracky = 3}, @@ -754,7 +792,7 @@ stairs.register_stair_and_slab( false ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "steelblock", "default:steelblock", {cracky = 1, level = 2}, @@ -765,7 +803,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "tinblock", "default:tinblock", {cracky = 1, level = 2}, @@ -776,7 +814,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "copperblock", "default:copperblock", {cracky = 1, level = 2}, @@ -787,7 +825,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "bronzeblock", "default:bronzeblock", {cracky = 1, level = 2}, @@ -798,7 +836,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "goldblock", "default:goldblock", {cracky = 1}, @@ -809,7 +847,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "ice", "default:ice", {cracky = 3, cools_lava = 1, slippery = 3}, @@ -820,7 +858,7 @@ stairs.register_stair_and_slab( true ) -stairs.register_stair_and_slab( +my_register_stair_and_slab( "snowblock", "default:snowblock", {crumbly = 3, cools_lava = 1, snowy = 1}, @@ -840,7 +878,7 @@ stairs.register_stair( {"stairs_glass_split.png", "default_glass.png", "stairs_glass_stairside.png^[transformFX", "stairs_glass_stairside.png", "default_glass.png", "stairs_glass_split.png"}, - "Glass Stair", + S("Glass Stair"), default.node_sound_glass_defaults(), false ) @@ -850,7 +888,7 @@ stairs.register_slab( "default:glass", {cracky = 3}, {"default_glass.png", "default_glass.png", "stairs_glass_split.png"}, - "Glass Slab", + S("Glass Slab"), default.node_sound_glass_defaults(), false ) @@ -862,9 +900,10 @@ stairs.register_stair_inner( {"stairs_glass_stairside.png^[transformR270", "default_glass.png", "stairs_glass_stairside.png^[transformFX", "default_glass.png", "default_glass.png", "stairs_glass_stairside.png"}, - "Glass Stair", + "", default.node_sound_glass_defaults(), - false + false, + S("Inner Glass Stair") ) stairs.register_stair_outer( @@ -874,9 +913,10 @@ stairs.register_stair_outer( {"stairs_glass_stairside.png^[transformR90", "default_glass.png", "stairs_glass_outer_stairside.png", "stairs_glass_stairside.png", "stairs_glass_stairside.png^[transformR90","stairs_glass_outer_stairside.png"}, - "Glass Stair", + "", default.node_sound_glass_defaults(), - false + false, + S("Outer Glass Stair") ) stairs.register_stair( @@ -886,7 +926,7 @@ stairs.register_stair( {"stairs_obsidian_glass_split.png", "default_obsidian_glass.png", "stairs_obsidian_glass_stairside.png^[transformFX", "stairs_obsidian_glass_stairside.png", "default_obsidian_glass.png", "stairs_obsidian_glass_split.png"}, - "Obsidian Glass Stair", + S("Obsidian Glass Stair"), default.node_sound_glass_defaults(), false ) @@ -896,7 +936,7 @@ stairs.register_slab( "default:obsidian_glass", {cracky = 3}, {"default_obsidian_glass.png", "default_obsidian_glass.png", "stairs_obsidian_glass_split.png"}, - "Obsidian Glass Slab", + S("Obsidian Glass Slab"), default.node_sound_glass_defaults(), false ) @@ -908,9 +948,10 @@ stairs.register_stair_inner( {"stairs_obsidian_glass_stairside.png^[transformR270", "default_obsidian_glass.png", "stairs_obsidian_glass_stairside.png^[transformFX", "default_obsidian_glass.png", "default_obsidian_glass.png", "stairs_obsidian_glass_stairside.png"}, - "Obsidian Glass Stair", + "", default.node_sound_glass_defaults(), - false + false, + S("Inner Obsidian Glass Stair") ) stairs.register_stair_outer( @@ -920,7 +961,152 @@ stairs.register_stair_outer( {"stairs_obsidian_glass_stairside.png^[transformR90", "default_obsidian_glass.png", "stairs_obsidian_glass_outer_stairside.png", "stairs_obsidian_glass_stairside.png", "stairs_obsidian_glass_stairside.png^[transformR90","stairs_obsidian_glass_outer_stairside.png"}, - "Obsidian Glass Stair", + "", default.node_sound_glass_defaults(), - false + false, + S("Outer Obsidian Glass Stair") ) + +-- Dummy calls to S() to allow translation scripts to detect the strings. +-- To update this add this code to my_register_stair_and_slab: +-- for _,x in ipairs({"","Inner ","Outer "}) do print(("S(%q)"):format(x..desc_stair)) end +-- print(("S(%q)"):format(desc_slab)) + +--[[ +S("Wooden Stair") +S("Inner Wooden Stair") +S("Outer Wooden Stair") +S("Wooden Slab") +S("Jungle Wood Stair") +S("Inner Jungle Wood Stair") +S("Outer Jungle Wood Stair") +S("Jungle Wood Slab") +S("Pine Wood Stair") +S("Inner Pine Wood Stair") +S("Outer Pine Wood Stair") +S("Pine Wood Slab") +S("Acacia Wood Stair") +S("Inner Acacia Wood Stair") +S("Outer Acacia Wood Stair") +S("Acacia Wood Slab") +S("Aspen Wood Stair") +S("Inner Aspen Wood Stair") +S("Outer Aspen Wood Stair") +S("Aspen Wood Slab") +S("Stone Stair") +S("Inner Stone Stair") +S("Outer Stone Stair") +S("Stone Slab") +S("Cobblestone Stair") +S("Inner Cobblestone Stair") +S("Outer Cobblestone Stair") +S("Cobblestone Slab") +S("Mossy Cobblestone Stair") +S("Inner Mossy Cobblestone Stair") +S("Outer Mossy Cobblestone Stair") +S("Mossy Cobblestone Slab") +S("Stone Brick Stair") +S("Inner Stone Brick Stair") +S("Outer Stone Brick Stair") +S("Stone Brick Slab") +S("Stone Block Stair") +S("Inner Stone Block Stair") +S("Outer Stone Block Stair") +S("Stone Block Slab") +S("Desert Stone Stair") +S("Inner Desert Stone Stair") +S("Outer Desert Stone Stair") +S("Desert Stone Slab") +S("Desert Cobblestone Stair") +S("Inner Desert Cobblestone Stair") +S("Outer Desert Cobblestone Stair") +S("Desert Cobblestone Slab") +S("Desert Stone Brick Stair") +S("Inner Desert Stone Brick Stair") +S("Outer Desert Stone Brick Stair") +S("Desert Stone Brick Slab") +S("Desert Stone Block Stair") +S("Inner Desert Stone Block Stair") +S("Outer Desert Stone Block Stair") +S("Desert Stone Block Slab") +S("Sandstone Stair") +S("Inner Sandstone Stair") +S("Outer Sandstone Stair") +S("Sandstone Slab") +S("Sandstone Brick Stair") +S("Inner Sandstone Brick Stair") +S("Outer Sandstone Brick Stair") +S("Sandstone Brick Slab") +S("Sandstone Block Stair") +S("Inner Sandstone Block Stair") +S("Outer Sandstone Block Stair") +S("Sandstone Block Slab") +S("Desert Sandstone Stair") +S("Inner Desert Sandstone Stair") +S("Outer Desert Sandstone Stair") +S("Desert Sandstone Slab") +S("Desert Sandstone Brick Stair") +S("Inner Desert Sandstone Brick Stair") +S("Outer Desert Sandstone Brick Stair") +S("Desert Sandstone Brick Slab") +S("Desert Sandstone Block Stair") +S("Inner Desert Sandstone Block Stair") +S("Outer Desert Sandstone Block Stair") +S("Desert Sandstone Block Slab") +S("Silver Sandstone Stair") +S("Inner Silver Sandstone Stair") +S("Outer Silver Sandstone Stair") +S("Silver Sandstone Slab") +S("Silver Sandstone Brick Stair") +S("Inner Silver Sandstone Brick Stair") +S("Outer Silver Sandstone Brick Stair") +S("Silver Sandstone Brick Slab") +S("Silver Sandstone Block Stair") +S("Inner Silver Sandstone Block Stair") +S("Outer Silver Sandstone Block Stair") +S("Silver Sandstone Block Slab") +S("Obsidian Stair") +S("Inner Obsidian Stair") +S("Outer Obsidian Stair") +S("Obsidian Slab") +S("Obsidian Brick Stair") +S("Inner Obsidian Brick Stair") +S("Outer Obsidian Brick Stair") +S("Obsidian Brick Slab") +S("Obsidian Block Stair") +S("Inner Obsidian Block Stair") +S("Outer Obsidian Block Stair") +S("Obsidian Block Slab") +S("Brick Stair") +S("Inner Brick Stair") +S("Outer Brick Stair") +S("Brick Slab") +S("Steel Block Stair") +S("Inner Steel Block Stair") +S("Outer Steel Block Stair") +S("Steel Block Slab") +S("Tin Block Stair") +S("Inner Tin Block Stair") +S("Outer Tin Block Stair") +S("Tin Block Slab") +S("Copper Block Stair") +S("Inner Copper Block Stair") +S("Outer Copper Block Stair") +S("Copper Block Slab") +S("Bronze Block Stair") +S("Inner Bronze Block Stair") +S("Outer Bronze Block Stair") +S("Bronze Block Slab") +S("Gold Block Stair") +S("Inner Gold Block Stair") +S("Outer Gold Block Stair") +S("Gold Block Slab") +S("Ice Stair") +S("Inner Ice Stair") +S("Outer Ice Stair") +S("Ice Slab") +S("Snow Block Stair") +S("Inner Snow Block Stair") +S("Outer Snow Block Stair") +S("Snow Block Slab") +--]] diff --git a/mods/stairs/locale/stairs.de.tr b/mods/stairs/locale/stairs.de.tr new file mode 100644 index 0000000..41c055b --- /dev/null +++ b/mods/stairs/locale/stairs.de.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Glastreppe +Glass Slab=Glasplatte +Inner Glass Stair=Innere Glastreppe +Outer Glass Stair=Äußere Glastreppe +Obsidian Glass Stair=Obsidianglastreppe +Obsidian Glass Slab=Obsidianglasplatte +Inner Obsidian Glass Stair=Innere Obsidianglastreppe +Outer Obsidian Glass Stair=Äußere Obsidianglastreppe +Wooden Stair=Holztreppe +Inner Wooden Stair=Innere Holztreppe +Outer Wooden Stair=Äußere Holztreppe +Wooden Slab=Holzplatte +Jungle Wood Stair=Dschungelholztreppe +Inner Jungle Wood Stair=Innere Dschungelholztreppe +Outer Jungle Wood Stair=Äußere Dschungelholztreppe +Jungle Wood Slab=Dschungelholzplatte +Pine Wood Stair=Kiefernholztreppe +Inner Pine Wood Stair=Innere Kiefernholztreppe +Outer Pine Wood Stair=Äußere Kiefernholztreppe +Pine Wood Slab=Kiefernholzplatte +Acacia Wood Stair=Akazienholztreppe +Inner Acacia Wood Stair=Innere Akazienholztreppe +Outer Acacia Wood Stair=Äußere Akazienholztreppe +Acacia Wood Slab=Akazienholzplatte +Aspen Wood Stair=Espenholztreppe +Inner Aspen Wood Stair=Innere Espenholztreppe +Outer Aspen Wood Stair=Äußere Espenholztreppe +Aspen Wood Slab=Espenholzplatte +Stone Stair=Steintreppe +Inner Stone Stair=Innere Steintreppe +Outer Stone Stair=Äußere Steintreppe +Stone Slab=Steinplatte +Cobblestone Stair=Kopfsteinpflastertreppe +Inner Cobblestone Stair=Innere Kopfsteinpflastertreppe +Outer Cobblestone Stair=Äußere Kopfsteinpflastertreppe +Cobblestone Slab=Kopfsteinpflasterplatte +Mossy Cobblestone Stair=Mosige Kopfsteinpflastertreppe +Inner Mossy Cobblestone Stair=Innere mosige Kopfsteinpflastertreppe +Outer Mossy Cobblestone Stair=Äußere mosige Kopfsteinpflastertreppe +Mossy Cobblestone Slab=Mosige Kopfsteinpflasterplatte +Stone Brick Stair=Steinziegeltreppe +Inner Stone Brick Stair=Innere Steinziegeltreppe +Outer Stone Brick Stair=Äußere Steinziegeltreppe +Stone Brick Slab=Steinziegelplatte +Stone Block Stair=Steinblocktreppe +Inner Stone Block Stair=Innere Steinblocktreppe +Outer Stone Block Stair=Äußere Steinblocktreppe +Stone Block Slab=Steinblockplatte +Desert Stone Stair=Wüstensteintreppe +Inner Desert Stone Stair=Innere Wüstensteintreppe +Outer Desert Stone Stair=Äußere Wüstensteintreppe +Desert Stone Slab=Wüstensteinplatte +Desert Cobblestone Stair=Wüstenkopfsteinpflastertreppe +Inner Desert Cobblestone Stair=Innere Wüstenkopfsteinpflastertreppe +Outer Desert Cobblestone Stair=Äußere Wüstenkopfsteinpflastertreppe +Desert Cobblestone Slab=Wüstenkopfsteinpflasterplatte +Desert Stone Brick Stair=Wüstensteinziegeltreppe +Inner Desert Stone Brick Stair=Innere Wüstensteinziegeltreppe +Outer Desert Stone Brick Stair=Äußere Wüstensteinziegeltreppe +Desert Stone Brick Slab=Wüstensteinziegelplatte +Desert Stone Block Stair=Wüstensteinblocktreppe +Inner Desert Stone Block Stair=Innere Wüstensteinblocktreppe +Outer Desert Stone Block Stair=Äußere Wüstensteinblocktreppe +Desert Stone Block Slab=Wüstensteinblockplatte +Sandstone Stair=Sandsteintreppe +Inner Sandstone Stair=Innere Sandsteintreppe +Outer Sandstone Stair=Äußere Sandsteintreppe +Sandstone Slab=Sandsteinplatte +Sandstone Brick Stair=Sandsteinziegeltreppe +Inner Sandstone Brick Stair=Innere Sandsteinziegeltreppe +Outer Sandstone Brick Stair=Äußere Sandsteinziegeltreppe +Sandstone Brick Slab=Sandsteinziegelplatte +Sandstone Block Stair=Sandsteinblocktreppe +Inner Sandstone Block Stair=Innere Sandsteinblocktreppe +Outer Sandstone Block Stair=Äußere Sandsteinblocktreppe +Sandstone Block Slab=Sandsteinblockplatte +Desert Sandstone Stair=Wüstensandsteintreppe +Inner Desert Sandstone Stair=Innere Wüstensandsteintreppe +Outer Desert Sandstone Stair=Äußere Wüstensandsteintreppe +Desert Sandstone Slab=Wüstensandsteinplatte +Desert Sandstone Brick Stair=Wüstensandsteinziegeltreppe +Inner Desert Sandstone Brick Stair=Innere Wüstensandsteinziegeltreppe +Outer Desert Sandstone Brick Stair=Äußere Wüstensandsteinziegeltreppe +Desert Sandstone Brick Slab=Wüstensandsteinziegelplatte +Desert Sandstone Block Stair=Wüstensandsteinblocktreppe +Inner Desert Sandstone Block Stair=Innere Wüstensandsteinblocktreppe +Outer Desert Sandstone Block Stair=Äußere Wüstensandsteinblocktreppe +Desert Sandstone Block Slab=Wüstensandsteinblockplatte +Silver Sandstone Stair=Silbersandsteintreppe +Inner Silver Sandstone Stair=Innere Silbersandsteintreppe +Outer Silver Sandstone Stair=Äußere Silbersandsteintreppe +Silver Sandstone Slab=Silbersandsteinplatte +Silver Sandstone Brick Stair=Silbersandsteinziegeltreppe +Inner Silver Sandstone Brick Stair=Innere Silbersandsteinziegeltreppe +Outer Silver Sandstone Brick Stair=Äußere Silbersandsteinziegeltreppe +Silver Sandstone Brick Slab=Silbersandsteinziegelplatte +Silver Sandstone Block Stair=Silbersandsteinblocktreppe +Inner Silver Sandstone Block Stair=Innere Silbersandsteinblocktreppe +Outer Silver Sandstone Block Stair=Äußere Silbersandsteinblocktreppe +Silver Sandstone Block Slab=Silbersandsteinblockplatte +Obsidian Stair=Obsidiantreppe +Inner Obsidian Stair=Innere Obsidiantreppe +Outer Obsidian Stair=Äußere Obsidiantreppe +Obsidian Slab=Obsidianplatte +Obsidian Brick Stair=Obsidianziegeltreppe +Inner Obsidian Brick Stair=Innere Obsidianziegeltreppe +Outer Obsidian Brick Stair=Äußere Obsidianziegeltreppe +Obsidian Brick Slab=Obsidianziegelplatte +Obsidian Block Stair=Obsidianblocktreppe +Inner Obsidian Block Stair=Innere Obsidianblocktreppe +Outer Obsidian Block Stair=Äußere Obsidianblocktreppe +Obsidian Block Slab=Obsidianblockplatte +Brick Stair=Ziegeltreppe +Inner Brick Stair=Innere Ziegeltreppe +Outer Brick Stair=Äußere Ziegeltreppe +Brick Slab=Ziegelplatte +Steel Block Stair=Stahlblocktreppe +Inner Steel Block Stair=Innere Stahlblocktreppe +Outer Steel Block Stair=Äußere Stahlblocktreppe +Steel Block Slab=Stahlblockplatte +Tin Block Stair=Zinnblocktreppe +Inner Tin Block Stair=Innere Zinnblocktreppe +Outer Tin Block Stair=Äußere Zinnblocktreppe +Tin Block Slab=Zinnblockplatte +Copper Block Stair=Kupferblocktreppe +Inner Copper Block Stair=Innere Kupferblocktreppe +Outer Copper Block Stair=Äußere Kupferblocktreppe +Copper Block Slab=Kupferblockplatte +Bronze Block Stair=Bronzeblocktreppe +Inner Bronze Block Stair=Innere Bronzeblocktreppe +Outer Bronze Block Stair=Äußere Bronzeblocktreppe +Bronze Block Slab=Bronzeblockplatte +Gold Block Stair=Goldblocktreppe +Inner Gold Block Stair=Innere Goldblocktreppe +Outer Gold Block Stair=Äußere Goldblocktreppe +Gold Block Slab=Goldblockplatte +Ice Stair=Eistreppe +Inner Ice Stair=Innere Eistreppe +Outer Ice Stair=Äußere Eistreppe +Ice Slab=Eisplatte +Snow Block Stair=Schneeblocktreppe +Inner Snow Block Stair=Innere Schneeblocktreppe +Outer Snow Block Stair=Äußere Schneeblocktreppe +Snow Block Slab=Schneeblockplatte diff --git a/mods/stairs/locale/stairs.es.tr b/mods/stairs/locale/stairs.es.tr new file mode 100644 index 0000000..374540c --- /dev/null +++ b/mods/stairs/locale/stairs.es.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Escalera de vidrio +Glass Slab=Losa de vidrio +Inner Glass Stair=Escalera interior de vidrio +Outer Glass Stair=Escalera exterior de vidrio +Obsidian Glass Stair=Escalera de vidrio de obsidiana +Obsidian Glass Slab=Losa de vidrio de obsidiana +Inner Obsidian Glass Stair=Escalera interior de vidrio de obsidiana +Outer Obsidian Glass Stair=Escalera exterior de vidrio de obsidiana +Wooden Stair=Escalera de madera +Inner Wooden Stair=Escalera interior de madera +Outer Wooden Stair=Escalera exterior de madera +Wooden Slab=Losa de madera +Jungle Wood Stair=Escalera de madera tropical +Inner Jungle Wood Stair=Escalera interior de madera tropical +Outer Jungle Wood Stair=Escalera exterior de madera tropical +Jungle Wood Slab=Losa de madera tropical +Pine Wood Stair=Escalera de pino +Inner Pine Wood Stair=Escalera interior de pino +Outer Pine Wood Stair=Escalera exterior de pino +Pine Wood Slab=Losa de pino +Acacia Wood Stair=Escalera de acacia +Inner Acacia Wood Stair=Escalera interior de acacia +Outer Acacia Wood Stair=Escalera exterior de acacia +Acacia Wood Slab=Losa de acacia +Aspen Wood Stair=Escalera de álamo +Inner Aspen Wood Stair=Escalera interior de álamo +Outer Aspen Wood Stair=Escalera exterior de álamo +Aspen Wood Slab=Losa de álamo +Stone Stair=Escalera de piedra +Inner Stone Stair=Escalera interior de piedra +Outer Stone Stair=Escalera exterior de piedra +Stone Slab=Losa de piedra +Cobblestone Stair=Escalera de adoquines +Inner Cobblestone Stair=Escalera interior de adoquines +Outer Cobblestone Stair=Escalera exterior de adoquines +Cobblestone Slab=Losa de adoquines +Mossy Cobblestone Stair=Escalera de adoquines musgosos +Inner Mossy Cobblestone Stair=Escalera interior de adoquines musgosos +Outer Mossy Cobblestone Stair=Escalera exterior de adoquines musgosos +Mossy Cobblestone Slab=Losa de adoquines musgosos +Stone Brick Stair=Escalera de ladrillos de piedra +Inner Stone Brick Stair=Escalera interior de ladrillos de piedra +Outer Stone Brick Stair=Escalera exterior de ladrillos de piedra +Stone Brick Slab=Losa de ladrillos de piedra +Stone Block Stair=Escalera de bloques de piedra +Inner Stone Block Stair=Escalera interior de bloques de piedra +Outer Stone Block Stair=Escalera exterior de bloques de piedra +Stone Block Slab=Losa de bloques de piedra +Desert Stone Stair=Escalera de piedra desértica +Inner Desert Stone Stair=Escalera interior de piedra desértica +Outer Desert Stone Stair=Escalera exterior de piedra desértica +Desert Stone Slab=Losa de piedra desértica +Desert Cobblestone Stair=Escalera de adoquines desérticos +Inner Desert Cobblestone Stair=Escalera interior de adoquines desérticos +Outer Desert Cobblestone Stair=Escalera exterior de adoquines desérticos +Desert Cobblestone Slab=Losa de adoquines desérticos +Desert Stone Brick Stair=Escalera de ladrillos desérticos +Inner Desert Stone Brick Stair=Escalera interior de ladrillos desérticos +Outer Desert Stone Brick Stair=Escalera exterior de ladrillos desérticos +Desert Stone Brick Slab=Losa de ladrillos desérticos +Desert Stone Block Stair=Escalera de bloques de piedra desértica +Inner Desert Stone Block Stair=Escalera interior de bloques de piedra desértica +Outer Desert Stone Block Stair=Escalera exterior de bloques de piedra desértica +Desert Stone Block Slab=Losa de bloques de piedra desértica +Sandstone Stair=Escalera de arenisca +Inner Sandstone Stair=Escalera interior de arenisca +Outer Sandstone Stair=Escalera exterior de arenisca +Sandstone Slab=Losa de arenisca +Sandstone Brick Stair=Escalera de ladrillos de arenisca +Inner Sandstone Brick Stair=Escalera interior de ladrillos de arenisca +Outer Sandstone Brick Stair=Escalera exterior de ladrillos de arenisca +Sandstone Brick Slab=Losa de ladrillos de arenisca +Sandstone Block Stair=Escalera de bloques de arenisca +Inner Sandstone Block Stair=Escalera interior de bloques de arenisca +Outer Sandstone Block Stair=Escalera exterior de bloques de arenisca +Sandstone Block Slab=Losa de bloques de arenisca +Desert Sandstone Stair=Escalera de arenisca desértica +Inner Desert Sandstone Stair=Escalera interior de arenisca desértica +Outer Desert Sandstone Stair=Escalera exterior de arenisca desértica +Desert Sandstone Slab=Losa de arenisca desértica +Desert Sandstone Brick Stair=Escalera de ladrillos de arenisca desértica +Inner Desert Sandstone Brick Stair=Escalera interior de ladrillos de arenisca desértica +Outer Desert Sandstone Brick Stair=Escalera exterior de ladrillos de arenisca desértica +Desert Sandstone Brick Slab=Losa de ladrillos de arenisca desértica +Desert Sandstone Block Stair=Escalera de bloques de arenisca desértica +Inner Desert Sandstone Block Stair=Escalera interior de bloques de arenisca desértica +Outer Desert Sandstone Block Stair=Escalera exterior de bloques de arenisca desértica +Desert Sandstone Block Slab=Losa de bloques de arenisca desértica +Silver Sandstone Stair=Escalera de arenisca plateada +Inner Silver Sandstone Stair=Escalera interior de arenisca plateada +Outer Silver Sandstone Stair=Escalera exterior de arenisca plateada +Silver Sandstone Slab=Losa de arenisca plateada +Silver Sandstone Brick Stair=Escalera de ladrillos de arenisca plateada +Inner Silver Sandstone Brick Stair=Escalera interior de ladrillos de arenisca plateada +Outer Silver Sandstone Brick Stair=Escalera exterior de ladrillos de arenisca plateada +Silver Sandstone Brick Slab=Losa de ladrillos de arenisca plateada +Silver Sandstone Block Stair=Escalera de bloques de arenisca plateada +Inner Silver Sandstone Block Stair=Escalera interior de bloques de arenisca plateada +Outer Silver Sandstone Block Stair=Escalera exterior de bloques de arenisca plateada +Silver Sandstone Block Slab=Losa de bloques de arenisca plateada +Obsidian Stair=Escalera de obsidiana +Inner Obsidian Stair=Escalera interior de obsidiana +Outer Obsidian Stair=Escalera exterior de obsidiana +Obsidian Slab=Losa de obsidiana +Obsidian Brick Stair=Escalera de ladrillos de obsidiana +Inner Obsidian Brick Stair=Escalera interior de ladrillos de obsidiana +Outer Obsidian Brick Stair=Escalera exterior de ladrillos de obsidiana +Obsidian Brick Slab=Losa de ladrillos de obsidiana +Obsidian Block Stair=Escalera de bloques de obsidiana +Inner Obsidian Block Stair=Escalera interior de bloques de obsidiana +Outer Obsidian Block Stair=Escalera exterior de bloques de obsidiana +Obsidian Block Slab=Losa de bloques de obsidiana +Brick Stair=Escalera de ladrillos +Inner Brick Stair=Escalera interior de ladrillos +Outer Brick Stair=Escalera exterior de ladrillos +Brick Slab=Losa de ladrillos +Steel Block Stair=Escalera de acero +Inner Steel Block Stair=Escalera interior de acero +Outer Steel Block Stair=Escalera exterior de acero +Steel Block Slab=Losa de acero +Tin Block Stair=Escalera de estaño +Inner Tin Block Stair=Escalera interior de estaño +Outer Tin Block Stair=Escalera exterior de estaño +Tin Block Slab=Losa de estaño +Copper Block Stair=Escalera de cobre +Inner Copper Block Stair=Escalera interior de cobre +Outer Copper Block Stair=Escalera exterior de cobre +Copper Block Slab=Losa de cobre +Bronze Block Stair=Escalera de bronce +Inner Bronze Block Stair=Escalera interior de bronce +Outer Bronze Block Stair=Escalera exterior de bronce +Bronze Block Slab=Losa de bronce +Gold Block Stair=Escalera de oro +Inner Gold Block Stair=Escalera interior de oro +Outer Gold Block Stair=Escalera exterior de oro +Gold Block Slab=Losa de oro +Ice Stair=Escalera de hielo +Inner Ice Stair=Escalera interior de hielo +Outer Ice Stair=Escalera exterior de hielo +Ice Slab=Losa de hielo +Snow Block Stair=Escalera de nieve +Inner Snow Block Stair=Escalera interior de nieve +Outer Snow Block Stair=Escalera exterior de nieve +Snow Block Slab=Losa de nieve diff --git a/mods/stairs/locale/stairs.fr.tr b/mods/stairs/locale/stairs.fr.tr new file mode 100644 index 0000000..2dd6594 --- /dev/null +++ b/mods/stairs/locale/stairs.fr.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Escalier de verre +Glass Slab=Dalle de verre +Inner Glass Stair=Escalier intérieur de verre +Outer Glass Stair=Escalier extérieur de verre +Obsidian Glass Stair=Escalier de verre d'obsidienne +Obsidian Glass Slab=Dalle de verre d'obsidienne +Inner Obsidian Glass Stair=Escalier intérieur de verre d'obsidienne +Outer Obsidian Glass Stair=Escalier extérieur de verre d'obsidienne +Wooden Stair=Escalier en bois +Inner Wooden Stair=Escalier intérieur en bois +Outer Wooden Stair=Escalier extérieur en bois +Wooden Slab=Dalle de bois +Jungle Wood Stair=Escalier en bois de la jungle +Inner Jungle Wood Stair=Escalier intérieur en bois de la jungle +Outer Jungle Wood Stair=Escalier extérieur en bois de la jungle +Jungle Wood Slab=Dalle en bois de la jungle +Pine Wood Stair=Escalier en pin +Inner Pine Wood Stair=Escalier intérieur en pin +Outer Pine Wood Stair=Escalier extérieur en pin +Pine Wood Slab=Dalle en pin +Acacia Wood Stair=Escalier en acacia +Inner Acacia Wood Stair=Escalier intérieur en acacia +Outer Acacia Wood Stair=Escalier extérieur en acacia +Acacia Wood Slab=Dalle en acacia +Aspen Wood Stair=Escalier en tremble +Inner Aspen Wood Stair=Escalier intérieur en tremble +Outer Aspen Wood Stair=Escalier extérieur en tremble +Aspen Wood Slab=Dalle en tremble +Stone Stair=Escalier de pierre +Inner Stone Stair=Escalier intérieur de pierre +Outer Stone Stair=Escalier extérieur de pierre +Stone Slab=Dalle de pierre +Cobblestone Stair=Escalier en pavé +Inner Cobblestone Stair=Escalier intérieur en pavé +Outer Cobblestone Stair=Escalier extérieur en pavé +Cobblestone Slab=Dalle en pavé +Mossy Cobblestone Stair=Escalier en pavé moussu +Inner Mossy Cobblestone Stair=Escalier intérieur en pavé moussu +Outer Mossy Cobblestone Stair=Escalier extérieur en pavé moussu +Mossy Cobblestone Slab=Dalle en pavé moussu +Stone Brick Stair=Escalier en brique de pierre +Inner Stone Brick Stair=Escalier intérieur en brique de pierre +Outer Stone Brick Stair=Escalier extérieur en brique de pierre +Stone Brick Slab=Dalle en brique de pierre +Stone Block Stair=Escalier en bloc de pierre +Inner Stone Block Stair=Escalier intérieur en bloc de pierre +Outer Stone Block Stair=Escalier extérieur en bloc de pierre +Stone Block Slab=Dalle en bloc de pierre +Desert Stone Stair=Escalier en pierre du désert +Inner Desert Stone Stair=Escalier intérieur en pierre du désert +Outer Desert Stone Stair=Escalier extérieur en pierre du désert +Desert Stone Slab=Dalle en pierre du désert +Desert Cobblestone Stair=Escalier en pavé du désert +Inner Desert Cobblestone Stair=Escalier intérieur en pavé du désert +Outer Desert Cobblestone Stair=Escalier extérieur en pavé du désert +Desert Cobblestone Slab=Dalle en pavé du désert +Desert Stone Brick Stair=Escalier en brique de pierre du désert +Inner Desert Stone Brick Stair=Escalier intérieur en brique de pierre du désert +Outer Desert Stone Brick Stair=Escalier extérieur en brique de pierre du désert +Desert Stone Brick Slab=Dalle en brique de pierre du désert +Desert Stone Block Stair=Escalier en bloc de pierre du désert +Inner Desert Stone Block Stair=Escalier intérieur en bloc de pierre du désert +Outer Desert Stone Block Stair=Escalier extérieur en bloc de pierre du désert +Desert Stone Block Slab=Dalle en bloc de pierre du désert +Sandstone Stair=Escalier en grès +Inner Sandstone Stair=Escalier intérieur en grès +Outer Sandstone Stair=Escalier extérieur en grès +Sandstone Slab=Dalle en grès +Sandstone Brick Stair=Escalier en brique de grès +Inner Sandstone Brick Stair=Escalier intérieur en brique de grès +Outer Sandstone Brick Stair=Escalier extérieur en brique de grès +Sandstone Brick Slab=Dalle en brique de grès +Sandstone Block Stair=Escalier en bloc de grès +Inner Sandstone Block Stair=Escalier intérieur en bloc de grès +Outer Sandstone Block Stair=Escalier extérieur en bloc de grès +Sandstone Block Slab=Dalle en bloc de grès +Desert Sandstone Stair=Escalier en grès du désert +Inner Desert Sandstone Stair=Escalier intérieur en grès du désert +Outer Desert Sandstone Stair=Escalier extérieur en grès du désert +Desert Sandstone Slab=Dalle en grès du désert +Desert Sandstone Brick Stair=Escalier en brique de grès du désert +Inner Desert Sandstone Brick Stair=Escalier intérieur en brique de grès du désert +Outer Desert Sandstone Brick Stair=Escalier extérieur en brique de grès du désert +Desert Sandstone Brick Slab=Dalle en brique de grès du désert +Desert Sandstone Block Stair=Escalier en bloc de grès du désert +Inner Desert Sandstone Block Stair=Escalier intérieur en bloc de grès du désert +Outer Desert Sandstone Block Stair=Escalier extérieur en bloc de grès du désert +Desert Sandstone Block Slab=Dalle en bloc de grès du désert +Silver Sandstone Stair=Escalier en grès argenté +Inner Silver Sandstone Stair=Escalier intérieur en grès argenté +Outer Silver Sandstone Stair=Escalier extérieur en grès argenté +Silver Sandstone Slab=Dalle en grès argenté +Silver Sandstone Brick Stair=Escalier en brique de grès argenté +Inner Silver Sandstone Brick Stair=Escalier intérieur en brique de grès argenté +Outer Silver Sandstone Brick Stair=Escalier extérieur en brique de grès argenté +Silver Sandstone Brick Slab=Dalle en brique de grès argenté +Silver Sandstone Block Stair=Escalier en bloc de grès argenté +Inner Silver Sandstone Block Stair=Escalier intérieur en bloc de grès argenté +Outer Silver Sandstone Block Stair=Escalier extérieur en bloc de grès argenté +Silver Sandstone Block Slab=Dalle en bloc de grès argenté +Obsidian Stair=Escalier en obsidienne +Inner Obsidian Stair=Escalier intérieur en obsidienne +Outer Obsidian Stair=Escalier extérieur en obsidienne +Obsidian Slab=Dalle en obsidienne +Obsidian Brick Stair=Escalier en brique d'obsidienne +Inner Obsidian Brick Stair=Escalier intérieur en brique d'obsidienne +Outer Obsidian Brick Stair=Escalier extérieur en brique d'obsidienne +Obsidian Brick Slab=Dalle en brique d'obsidienne +Obsidian Block Stair=Escalier en bloc d'obsidienne +Inner Obsidian Block Stair=Escalier intérieur en bloc d'obsidienne +Outer Obsidian Block Stair=Escalier extérieur en bloc d'obsidienne +Obsidian Block Slab=Dalle en bloc d'obsidienne +Brick Stair=Escalier en brique +Inner Brick Stair=Escalier intérieur en brique +Outer Brick Stair=Escalier extérieur en brique +Brick Slab=Dalle en brique +Steel Block Stair=Escalier en acier +Inner Steel Block Stair=Escalier intérieur en acier +Outer Steel Block Stair=Escalier extérieur en acier +Steel Block Slab=Dalle en acier +Tin Block Stair=Escalier en bloc d'étain +Inner Tin Block Stair=Escalier intérieur en bloc d'étain +Outer Tin Block Stair=Escalier extérieur en bloc d'étain +Tin Block Slab=Dalle en bloc d'étain +Copper Block Stair=Escalier en bloc de cuivre +Inner Copper Block Stair=Escalier intérieur en bloc de cuivre +Outer Copper Block Stair=Escalier extérieur en bloc de cuivre +Copper Block Slab=Dalle en bloc de cuivre +Bronze Block Stair=Escalier en bronze +Inner Bronze Block Stair=Escalier intérieur en bronze +Outer Bronze Block Stair=Escalier extérieur en bronze +Bronze Block Slab=Dalle en bronze +Gold Block Stair=Escalier en bloc d'or +Inner Gold Block Stair=Escalier intérieur en bloc d'or +Outer Gold Block Stair=Escalier extérieur en bloc d'or +Gold Block Slab=Dalle en bloc d'or +Ice Stair=Escalier de glace +Inner Ice Stair=Escalier intérieur de glace +Outer Ice Stair=Escalier extérieur de glace +Ice Slab=Dalle de glace +Snow Block Stair=Escalier en bloc de neige +Inner Snow Block Stair=Escalier intérieur en bloc de neige +Outer Snow Block Stair=Escalier extérieur en bloc de neige +Snow Block Slab=Escalier en bloc de neige diff --git a/mods/stairs/locale/stairs.it.tr b/mods/stairs/locale/stairs.it.tr new file mode 100644 index 0000000..16945ec --- /dev/null +++ b/mods/stairs/locale/stairs.it.tr @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair=Scala di vetro +Glass Slab=Lastra di vetro +Inner Glass Stair=Scala di vetro interna +Outer Glass Stair=Scala di vetro esterna +Obsidian Glass Stair=Scala di vetro d'ossidiana +Obsidian Glass Slab=Lastra di vetro d'ossidiana +Inner Obsidian Glass Stair=Scala di vetro d'ossidiana interna +Outer Obsidian Glass Stair=Scala di vetro d'ossidiana esterna +Wooden Stair=Scala di legno +Inner Wooden Stair=Scala di legno interna +Outer Wooden Stair=Scala di legno esterna +Wooden Slab=Lastra di legno +Jungle Wood Stair=Scala di legno della giungla +Inner Jungle Wood Stair=Scala di legno della giungla interna +Outer Jungle Wood Stair=Scala di legno della giungla esterna +Jungle Wood Slab=Lastra di legno della giungla +Pine Wood Stair=Scala di legno di pino +Inner Pine Wood Stair=Scala di legno di pino interna +Outer Pine Wood Stair=Scala di legno di pino esterna +Pine Wood Slab=Lastra di legno di pino +Acacia Wood Stair=Scala di legno d'acacia +Inner Acacia Wood Stair=Scala di legno d'acacia interna +Outer Acacia Wood Stair=Scala di legno d'acacia esterna +Acacia Wood Slab=Lastra di legno d'acacia +Aspen Wood Stair=Scala di legno di pioppo +Inner Aspen Wood Stair=Scala di legno di pioppo interna +Outer Aspen Wood Stair=Scala di legno di pioppo esterna +Aspen Wood Slab=Lastra di legno di pioppo +Stone Stair=Scala di pietra +Inner Stone Stair=Scala di pietra interna +Outer Stone Stair=Scala di pietra esterna +Stone Slab=Lastra di pietra +Cobblestone Stair=Scala di ciottoli +Inner Cobblestone Stair=Scala di ciottoli interna +Outer Cobblestone Stair=Scala di ciottoli esterna +Cobblestone Slab=Lastra di ciottoli +Mossy Cobblestone Stair=Scala di ciottoli muschiosi +Inner Mossy Cobblestone Stair=Scala di ciottoli muschiosi interna +Outer Mossy Cobblestone Stair=Scala di ciottoli muschiosi esterna +Mossy Cobblestone Slab=Lastra di ciottoli muschiosi +Stone Brick Stair=Scala di mattone di pietra +Inner Stone Brick Stair=Scala di mattone di pietra interna +Outer Stone Brick Stair=Scala di mattone di pietra esterna +Stone Brick Slab=Lastra di mattone di pietra +Stone Block Stair=Scala di blocco di pietra +Inner Stone Block Stair=Scala di blocco di pietra interna +Outer Stone Block Stair=Scala di blocco di pietra esterna +Stone Block Slab=Lastra di blocco di pietra +Desert Stone Stair=Scala di pietra del deserto +Inner Desert Stone Stair=Scala di pietra del deserto interna +Outer Desert Stone Stair=Scala di pietra del deserto esterna +Desert Stone Slab=Lastra di pietra del deserto +Desert Cobblestone Stair=Scala di ciottoli del deserto +Inner Desert Cobblestone Stair=Scala di ciottoli del deserto interna +Outer Desert Cobblestone Stair=Scala di ciottoli del deserto esterna +Desert Cobblestone Slab=Lastra di ciottoli del deserto +Desert Stone Brick Stair=Scala di mattone di pietra del deserto +Inner Desert Stone Brick Stair=Scala di mattone di pietra del deserto interna +Outer Desert Stone Brick Stair=Scala di mattone di pietra del deserto esterna +Desert Stone Brick Slab=Lastra di mattone di pietra del deserto +Desert Stone Block Stair=Scala di blocco di pietra del deserto +Inner Desert Stone Block Stair=Scala di blocco di pietra del deserto interna +Outer Desert Stone Block Stair=Scala di blocco di pietra del deserto esterna +Desert Stone Block Slab=Lastra di blocco di pietra del deserto +Sandstone Stair=Scala d'arenaria +Inner Sandstone Stair=Scala d'arenaria interna +Outer Sandstone Stair=Scala d'arenaria esterna +Sandstone Slab=Lastra d'arenaria +Sandstone Brick Stair=Scala di mattone d'arenaria +Inner Sandstone Brick Stair=Scala di mattone d'arenaria interna +Outer Sandstone Brick Stair=Scala di mattone d'arenaria esterna +Sandstone Brick Slab=Lastra di mattone d'arenaria +Sandstone Block Stair=Scala di blocco d'arenaria +Inner Sandstone Block Stair=Scala di blocco d'arenaria interna +Outer Sandstone Block Stair=Scala di blocco d'arenaria esterna +Sandstone Block Slab=Lastra di blocco d'arenaria +Desert Sandstone Stair=Scala d'arenaria del deserto +Inner Desert Sandstone Stair=Scala d'arenaria del deserto interna +Outer Desert Sandstone Stair=Scala d'arenaria del deserto esterna +Desert Sandstone Slab=Lastra d'arenaria del deserto +Desert Sandstone Brick Stair=Scala di mattone d'arenaria del deserto +Inner Desert Sandstone Brick Stair=Scala di mattone d'arenaria del deserto interna +Outer Desert Sandstone Brick Stair=Scala di mattone d'arenaria del deserto esterna +Desert Sandstone Brick Slab=Lastra di mattone d'arenaria del deserto +Desert Sandstone Block Stair=Scala di blocco d'arenaria del deserto +Inner Desert Sandstone Block Stair=Scala di blocco d'arenaria del deserto interna +Outer Desert Sandstone Block Stair=Scala di blocco d'arenaria del deserto esterna +Desert Sandstone Block Slab=Lastra di blocco d'arenaria del deserto +Silver Sandstone Stair=Scala d'arenaria argentata +Inner Silver Sandstone Stair=Scala d'arenaria argentata interna +Outer Silver Sandstone Stair=Scala d'arenaria argentata esterna +Silver Sandstone Slab=Lastra d'arenaria argentata +Silver Sandstone Brick Stair=Scala di mattone d'arenaria argentata +Inner Silver Sandstone Brick Stair=Scala di mattone d'arenaria argentata interna +Outer Silver Sandstone Brick Stair=Scala di mattone d'arenaria argentata esterna +Silver Sandstone Brick Slab=Lastra di mattone d'arenaria argentata +Silver Sandstone Block Stair=Scala di blocco d'arenaria argentata +Inner Silver Sandstone Block Stair=Scala di blocco d'arenaria argentata interna +Outer Silver Sandstone Block Stair=Scala di blocco d'arenaria argentata esterna +Silver Sandstone Block Slab=Lastra di blocco d'arenaria argentata +Obsidian Stair=Scala d'ossidiana +Inner Obsidian Stair=Scala d'ossidiana interna +Outer Obsidian Stair=Scala d'ossidiana esterna +Obsidian Slab=Lastra d'ossidiana +Obsidian Brick Stair=Scala di mattone d'ossidiana +Inner Obsidian Brick Stair=Scala di mattone d'ossidiana interna +Outer Obsidian Brick Stair=Scala di mattone d'ossidiana esterna +Obsidian Brick Slab=Lastra di mattone d'ossidiana +Obsidian Block Stair=Scala di blocco d'ossidiana +Inner Obsidian Block Stair=Scala di blocco d'ossidiana interna +Outer Obsidian Block Stair=Scala di blocco d'ossidiana esterna +Obsidian Block Slab=Lastra di blocco d'ossidiana +Brick Stair=Scala di mattone +Inner Brick Stair=Scala di mattone interna +Outer Brick Stair=Scala di mattone esterna +Brick Slab=Lastra di mattone +Steel Block Stair=Scala di blocco d'acciaio +Inner Steel Block Stair=Scala di blocco d'acciaio interna +Outer Steel Block Stair=Scala di blocco d'acciaio esterna +Steel Block Slab=Lastra di blocco d'acciaio +Tin Block Stair=Scala di blocco di stagno +Inner Tin Block Stair=Scala di blocco di stagno interna +Outer Tin Block Stair=Scala di blocco di stagno esterna +Tin Block Slab=Lastra di blocco di stagno +Copper Block Stair=Scala di blocco di rame +Inner Copper Block Stair=Scala di blocco di rame interna +Outer Copper Block Stair=Scala di blocco di rame esterna +Copper Block Slab=Lastra di blocco di rame +Bronze Block Stair=Scala di blocco di bronzo +Inner Bronze Block Stair=Scala di blocco di bronzo interna +Outer Bronze Block Stair=Scala di blocco di bronzo esterna +Bronze Block Slab=Lastra di blocco di bronzo +Gold Block Stair=Scala di blocco d'oro +Inner Gold Block Stair=Scala di blocco d'oro interna +Outer Gold Block Stair=Scala di blocco d'oro esterna +Gold Block Slab=Lastra di blocco d'oro +Ice Stair=Scala di ghiaccio +Inner Ice Stair=Scala di ghiaccio interna +Outer Ice Stair=Scala di ghiaccio esterna +Ice Slab=Lastra di ghiaccio +Snow Block Stair=Scala di blocco di neve +Inner Snow Block Stair=Scala di blocco di neve interna +Outer Snow Block Stair=Scala di blocco di neve esterna +Snow Block Slab=Lastra di blocco di neve diff --git a/mods/stairs/locale/template.txt b/mods/stairs/locale/template.txt new file mode 100644 index 0000000..ca2c865 --- /dev/null +++ b/mods/stairs/locale/template.txt @@ -0,0 +1,145 @@ +# textdomain: stairs +Glass Stair= +Glass Slab= +Inner Glass Stair= +Outer Glass Stair= +Obsidian Glass Stair= +Obsidian Glass Slab= +Inner Obsidian Glass Stair= +Outer Obsidian Glass Stair= +Wooden Stair= +Inner Wooden Stair= +Outer Wooden Stair= +Wooden Slab= +Jungle Wood Stair= +Inner Jungle Wood Stair= +Outer Jungle Wood Stair= +Jungle Wood Slab= +Pine Wood Stair= +Inner Pine Wood Stair= +Outer Pine Wood Stair= +Pine Wood Slab= +Acacia Wood Stair= +Inner Acacia Wood Stair= +Outer Acacia Wood Stair= +Acacia Wood Slab= +Aspen Wood Stair= +Inner Aspen Wood Stair= +Outer Aspen Wood Stair= +Aspen Wood Slab= +Stone Stair= +Inner Stone Stair= +Outer Stone Stair= +Stone Slab= +Cobblestone Stair= +Inner Cobblestone Stair= +Outer Cobblestone Stair= +Cobblestone Slab= +Mossy Cobblestone Stair= +Inner Mossy Cobblestone Stair= +Outer Mossy Cobblestone Stair= +Mossy Cobblestone Slab= +Stone Brick Stair= +Inner Stone Brick Stair= +Outer Stone Brick Stair= +Stone Brick Slab= +Stone Block Stair= +Inner Stone Block Stair= +Outer Stone Block Stair= +Stone Block Slab= +Desert Stone Stair= +Inner Desert Stone Stair= +Outer Desert Stone Stair= +Desert Stone Slab= +Desert Cobblestone Stair= +Inner Desert Cobblestone Stair= +Outer Desert Cobblestone Stair= +Desert Cobblestone Slab= +Desert Stone Brick Stair= +Inner Desert Stone Brick Stair= +Outer Desert Stone Brick Stair= +Desert Stone Brick Slab= +Desert Stone Block Stair= +Inner Desert Stone Block Stair= +Outer Desert Stone Block Stair= +Desert Stone Block Slab= +Sandstone Stair= +Inner Sandstone Stair= +Outer Sandstone Stair= +Sandstone Slab= +Sandstone Brick Stair= +Inner Sandstone Brick Stair= +Outer Sandstone Brick Stair= +Sandstone Brick Slab= +Sandstone Block Stair= +Inner Sandstone Block Stair= +Outer Sandstone Block Stair= +Sandstone Block Slab= +Desert Sandstone Stair= +Inner Desert Sandstone Stair= +Outer Desert Sandstone Stair= +Desert Sandstone Slab= +Desert Sandstone Brick Stair= +Inner Desert Sandstone Brick Stair= +Outer Desert Sandstone Brick Stair= +Desert Sandstone Brick Slab= +Desert Sandstone Block Stair= +Inner Desert Sandstone Block Stair= +Outer Desert Sandstone Block Stair= +Desert Sandstone Block Slab= +Silver Sandstone Stair= +Inner Silver Sandstone Stair= +Outer Silver Sandstone Stair= +Silver Sandstone Slab= +Silver Sandstone Brick Stair= +Inner Silver Sandstone Brick Stair= +Outer Silver Sandstone Brick Stair= +Silver Sandstone Brick Slab= +Silver Sandstone Block Stair= +Inner Silver Sandstone Block Stair= +Outer Silver Sandstone Block Stair= +Silver Sandstone Block Slab= +Obsidian Stair= +Inner Obsidian Stair= +Outer Obsidian Stair= +Obsidian Slab= +Obsidian Brick Stair= +Inner Obsidian Brick Stair= +Outer Obsidian Brick Stair= +Obsidian Brick Slab= +Obsidian Block Stair= +Inner Obsidian Block Stair= +Outer Obsidian Block Stair= +Obsidian Block Slab= +Brick Stair= +Inner Brick Stair= +Outer Brick Stair= +Brick Slab= +Steel Block Stair= +Inner Steel Block Stair= +Outer Steel Block Stair= +Steel Block Slab= +Tin Block Stair= +Inner Tin Block Stair= +Outer Tin Block Stair= +Tin Block Slab= +Copper Block Stair= +Inner Copper Block Stair= +Outer Copper Block Stair= +Copper Block Slab= +Bronze Block Stair= +Inner Bronze Block Stair= +Outer Bronze Block Stair= +Bronze Block Slab= +Gold Block Stair= +Inner Gold Block Stair= +Outer Gold Block Stair= +Gold Block Slab= +Ice Stair= +Inner Ice Stair= +Outer Ice Stair= +Ice Slab= +Snow Block Stair= +Inner Snow Block Stair= +Outer Snow Block Stair= +Snow Block Slab= diff --git a/mods/stairs/mod.conf b/mods/stairs/mod.conf new file mode 100644 index 0000000..7548fa7 --- /dev/null +++ b/mods/stairs/mod.conf @@ -0,0 +1,3 @@ +name = stairs +description = Minetest Game mod: stairs +depends = default diff --git a/mods/tnt/README.txt b/mods/tnt/README.txt index 1970804..df244fe 100644 --- a/mods/tnt/README.txt +++ b/mods/tnt/README.txt @@ -9,8 +9,8 @@ ShadowNinja (MIT) sofar (sofar@foo-projects.org) (MIT) Various Minetest developers and contributors (MIT) -Authors of media (textures) ---------------------------- +Authors of media +---------------- BlockMen (CC BY-SA 3.0): All textures not mentioned below. @@ -26,6 +26,23 @@ tnt_blast.png paramat (CC BY-SA 3.0) tnt_tnt_stick.png - Derived from a texture by benrob0329. +TumeniNodes (CC0 1.0) +tnt_explode.ogg +renamed, edited, and converted to .ogg from Explosion2.wav +by steveygos93 (CC0 1.0) + + +tnt_ignite.ogg +renamed, edited, and converted to .ogg from sparkler_fuse_nm.wav +by theneedle.tv (CC0 1.0) + + +tnt_gunpowder_burning.ogg +renamed, edited, and converted to .ogg from road flare ignite burns.wav +by frankelmedico (CC0 1.0) + + + Introduction ------------ This mod adds TNT to Minetest. TNT is a tool to help the player diff --git a/mods/tnt/depends.txt b/mods/tnt/depends.txt deleted file mode 100644 index 5ff216f..0000000 --- a/mods/tnt/depends.txt +++ /dev/null @@ -1,3 +0,0 @@ -default -fire - diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index 3efc6ec..0e061fa 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -1,5 +1,11 @@ +-- tnt/init.lua + tnt = {} +-- Load support for MT game translation. +local S = minetest.get_translator("tnt") + + -- Default to enabled when in singleplayer local enable_tnt = minetest.settings:get_bool("enable_tnt") if enable_tnt == nil then @@ -396,7 +402,7 @@ function tnt.boom(pos, def) minetest.set_node(pos, {name = "tnt:boom"}) end local sound = def.sound or "tnt_explode" - minetest.sound_play(sound, {pos = pos, gain = 1.5, + minetest.sound_play(sound, {pos = pos, gain = 2.5, max_hear_distance = math.min(def.radius * 20, 128)}) local drops, radius = tnt_explode(pos, def.radius, def.ignore_protection, def.ignore_on_blast, owner, def.explode_center) @@ -422,7 +428,7 @@ minetest.register_node("tnt:boom", { }) minetest.register_node("tnt:gunpowder", { - description = "Gun Powder", + description = S("Gun Powder"), drawtype = "raillike", paramtype = "light", is_ground_content = false, @@ -547,7 +553,7 @@ minetest.register_craft({ }) minetest.register_craftitem("tnt:tnt_stick", { - description = "TNT Stick", + description = S("TNT Stick"), inventory_image = "tnt_tnt_stick.png", groups = {flammable = 5}, }) @@ -675,6 +681,6 @@ end tnt.register_tnt({ name = "tnt:tnt", - description = "TNT", + description = S("TNT"), radius = tnt_radius, }) diff --git a/mods/tnt/license.txt b/mods/tnt/license.txt index 2c57df3..e59ec6e 100644 --- a/mods/tnt/license.txt +++ b/mods/tnt/license.txt @@ -26,9 +26,10 @@ DEALINGS IN THE SOFTWARE. For more details: https://opensource.org/licenses/MIT +=================================== -Licenses of media (textures) ----------------------------- +Licenses of media +----------------- Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) Copyright (C) 2014-2016 BlockMen @@ -64,3 +65,36 @@ rights may limit how you use the material. For more details: http://creativecommons.org/licenses/by-sa/3.0/ + +==================================================== + +CC0 1.0 Universal (CC0 1.0) Public Domain Dedication +for audio files (found in sounds folder) +TumeniNodes +steveygos93 +theneedle.tv +frankelmedico + +No Copyright + +The person who associated a work with this deed has dedicated the work to the public domain +by waiving all of his or her rights to the work worldwide under copyright law, including all +related and neighboring rights, to the extent allowed by law. + +You can copy, modify, distribute and perform the work, even for commercial purposes, all +without asking permission. See Other Information below. + +In no way are the patent or trademark rights of any person affected by CC0, nor are the +rights that other persons may have in the work or in how the work is used, such as publicity +or privacy rights. + +Unless expressly stated otherwise, the person who associated a work with this deed makes no +warranties about the work, and disclaims liability for all uses of the work, to the fullest +extent permitted by applicable law. + +When using or citing the work, you should not imply endorsement by the author or the affirmer. + +This license is acceptable for Free Cultural Works. +For more Information: +https://creativecommons.org/publicdomain/zero/1.0/ + diff --git a/mods/tnt/locale/template.txt b/mods/tnt/locale/template.txt new file mode 100644 index 0000000..62bcb15 --- /dev/null +++ b/mods/tnt/locale/template.txt @@ -0,0 +1,4 @@ +# textdomain: tnt +Gun Powder= +TNT Stick= +TNT= diff --git a/mods/tnt/locale/tnt.de.tr b/mods/tnt/locale/tnt.de.tr new file mode 100644 index 0000000..09d2ac2 --- /dev/null +++ b/mods/tnt/locale/tnt.de.tr @@ -0,0 +1,4 @@ +# textdomain: tnt +Gun Powder=Schießpulver +TNT Stick=TNT-Stange +TNT=TNT diff --git a/mods/tnt/locale/tnt.es.tr b/mods/tnt/locale/tnt.es.tr new file mode 100644 index 0000000..d9f3f20 --- /dev/null +++ b/mods/tnt/locale/tnt.es.tr @@ -0,0 +1,4 @@ +# textdomain: tnt +Gun Powder=Pólvora +TNT Stick=Cartucho de TNT +TNT=TNT diff --git a/mods/tnt/locale/tnt.fr.tr b/mods/tnt/locale/tnt.fr.tr new file mode 100644 index 0000000..3fe48fb --- /dev/null +++ b/mods/tnt/locale/tnt.fr.tr @@ -0,0 +1,4 @@ +# textdomain: tnt +Gun Powder=Poudre à canon +TNT Stick=Bâton de TNT +TNT=TNT diff --git a/mods/tnt/locale/tnt.it.tr b/mods/tnt/locale/tnt.it.tr new file mode 100644 index 0000000..086f4d3 --- /dev/null +++ b/mods/tnt/locale/tnt.it.tr @@ -0,0 +1,4 @@ +# textdomain: tnt +Gun Powder=Polvere da sparo +TNT Stick=Candelotto di TNT +TNT=TNT \ No newline at end of file diff --git a/mods/tnt/mod.conf b/mods/tnt/mod.conf new file mode 100644 index 0000000..9385e82 --- /dev/null +++ b/mods/tnt/mod.conf @@ -0,0 +1,3 @@ +name = tnt +description = Minetest Game mod: tnt +depends = default, fire diff --git a/mods/tnt/sounds/tnt_explode.ogg b/mods/tnt/sounds/tnt_explode.ogg index a414ea046bf76298f6f1406d574f15741c515248..e00a16c1a332404379bc5dfeb74007d6bd3d701d 100644 GIT binary patch literal 13580 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 V+38NfLd4EwiqSafi~lX&{{v}ltsVdX literal 34335 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 DzB1aE literal 29271 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. If specified, the selec or vertically in the y axis `[v]`. //outset v 5 - -### `//brush none/ [parameters]` - -Assigns the given `` to the currently held brush item, it will be ran with the first pointed solid node (as determined via raycast) as -WorldEdit position 1 when using that specific brush item. -Passing `none` instead clears the command assigned to the currently held brush item. -Note that this functionality requires the `worldedit_brush` mod enabled. - - //brush cube 8 8 8 Cobblestone - //brush spr 12 glass - //brush none diff --git a/mods/worldedit/WorldEdit API.md b/mods/worldedit/WorldEdit API.md index 3263ddf..f1a69d5 100644 --- a/mods/worldedit/WorldEdit API.md +++ b/mods/worldedit/WorldEdit API.md @@ -193,7 +193,7 @@ Returns the number of nodes restored. Serialization ------------- -Contained in serialization.lua, this module allows regions of nodes to be serialized and deserialized to formats suitable for use outside Minetest. +Contained in serialization.lua, this module allows regions of nodes to be serialized and deserialized to formats suitable for use outside MineTest. ### version, extra_fields, content = worldedit.read_header(value) diff --git a/mods/worldedit/worldedit/manipulations.lua b/mods/worldedit/worldedit/manipulations.lua index d86cbf8..c73fbb6 100644 --- a/mods/worldedit/worldedit/manipulations.lua +++ b/mods/worldedit/worldedit/manipulations.lua @@ -301,7 +301,7 @@ function worldedit.stack(pos1, pos2, axis, count) local amount = 0 local copy = worldedit.copy local i = 1 - local function next_one() + function next_one() if i <= count then i = i + 1 amount = amount + length diff --git a/mods/worldedit/worldedit/primitives.lua b/mods/worldedit/worldedit/primitives.lua index 251620d..aae79f1 100644 --- a/mods/worldedit/worldedit/primitives.lua +++ b/mods/worldedit/worldedit/primitives.lua @@ -208,13 +208,12 @@ function worldedit.pyramid(pos, axis, height, node_name, hollow) local other1, other2 = worldedit.get_axis_others(axis) -- Set up voxel manipulator - -- FIXME: passing negative causes mis-sorted pos to be passed - -- into mh.init() which is technically not allowed but works - local manip, area = mh.init_axis_radius(pos, axis, height) + local manip, area = mh.init_axis_radius(pos, axis, + height >= 0 and height or -height) local data = mh.get_empty_data(area) -- Handle inverted pyramids - local step + local start_axis, end_axis, step if height > 0 then height = height - 1 step = 1 diff --git a/mods/worldedit/worldedit_brush/depends.txt b/mods/worldedit/worldedit_brush/depends.txt deleted file mode 100644 index f886436..0000000 --- a/mods/worldedit/worldedit_brush/depends.txt +++ /dev/null @@ -1,2 +0,0 @@ -worldedit -worldedit_commands diff --git a/mods/worldedit/worldedit_brush/init.lua b/mods/worldedit/worldedit_brush/init.lua deleted file mode 100644 index 21de630..0000000 --- a/mods/worldedit/worldedit_brush/init.lua +++ /dev/null @@ -1,161 +0,0 @@ -local modname = minetest.get_current_modname() - --- check compatibility -if minetest.raycast == nil then - function log_unavailable_error() - minetest.log("error", - "[MOD] " .. modname .. " is not compatible with current game version, " .. - "you can disable it in the game settings!" - ) - minetest.log("verbose", - "[MOD] " .. modname .. " requires a suitable version of 0.4.16-dev or higher, " .. - "that includes support for minetest.raycast() [since 7th July 2017]" - ) - end - - if minetest.is_singleplayer() then - -- delay message until player is connected - minetest.register_on_joinplayer(log_unavailable_error) - else - log_unavailable_error() - end - - -- exit here / do not load this mod - return -end - -local BRUSH_MAX_DIST = 150 -local BRUSH_ALLOWED_COMMANDS = { - -- basically everything that only needs pos1 - "cube", - "cylinder", - "dome", - "hollowcube", - "hollowcylinder", - "hollowdome", - "hollowpyramid", - "hollowsphere", - "load", - "pyramid", - "sphere", - "spiral", - - "cyl", - "do", - "hcube", - "hcyl", - "hdo", - "hpyr", - "hspr", - "l", - "pyr", - "spr", - "spl", -} -local brush_on_use = function(itemstack, placer) - local meta = itemstack:get_meta() - local name = placer:get_player_name() - - local cmd = meta:get_string("command") - if cmd == "" then - worldedit.player_notify(name, - "This brush is not bound, use //brush to bind a command to it.") - return false - end - local cmddef = minetest.registered_chatcommands["/" .. cmd] - if cmddef == nil then return false end -- shouldn't happen as //brush checks this - local has_privs, missing_privs = minetest.check_player_privs(name, cmddef.privs) - if not has_privs then - worldedit.player_notify(name, - "Missing privileges: " .. table.concat(missing_privs, ", ")) - return false - end - - local raybegin = vector.add(placer:get_pos(), {x=0, y=2, z=0}) -- player head - local rayend = vector.add(raybegin, vector.multiply(placer:get_look_dir(), BRUSH_MAX_DIST)) - local ray = minetest.raycast(raybegin, rayend, false, true) - local pointed_thing = ray:next() - if pointed_thing == nil then - worldedit.player_notify(name, "Too far away.") - return false - end - - assert(pointed_thing.type == "node") - worldedit.pos1[name] = pointed_thing.under - worldedit.pos2[name] = nil - worldedit.mark_region(name) - -- is this a horrible hack? oh yes. - worldedit._override_safe_regions = true - local player_notify_old = worldedit.player_notify - worldedit.player_notify = function(name, msg) - if string.match(msg, "^%d") then return end -- discard "1234 nodes added." - return player_notify_old(name, msg) - end - - minetest.log("action", string.format("%s uses WorldEdit brush (//%s) at %s", - name, cmd, minetest.pos_to_string(pointed_thing.under))) - cmddef.func(name, meta:get_string("params")) - - worldedit._override_safe_regions = false - worldedit.player_notify = player_notify_old - return true -end - -minetest.register_tool(":worldedit:brush", { - description = "WorldEdit Brush", - inventory_image = "worldedit_brush.png", - stack_max = 1, -- no need to stack these (metadata prevents this anyway) - range = 0, - on_use = function(itemstack, placer, pointed_thing) - brush_on_use(itemstack, placer) - return itemstack -- nothing consumed, nothing changed - end, -}) - -minetest.register_chatcommand("/brush", { - privs = {worldedit=true}, - params = "none/ [parameters]", - description = "Assign command to WorldEdit brush item", - func = function(name, param) - local found, _, cmd, params = param:find("^([^%s]+)%s+(.+)$") - if not found then - params = "" - found, _, cmd = param:find("^(.+)$") - end - if not found then - worldedit.player_notify(name, "Invalid usage.") - return - end - - local itemstack = minetest.get_player_by_name(name):get_wielded_item() - if itemstack == nil or itemstack:get_name() ~= "worldedit:brush" then - worldedit.player_notify(name, "Not holding brush item.") - return - end - - cmd = cmd:lower() - local meta = itemstack:get_meta() - if cmd == "none" then - meta:from_table(nil) - worldedit.player_notify(name, "Brush assignment cleared.") - else - local cmddef - if table.indexof(BRUSH_ALLOWED_COMMANDS, cmd) ~= -1 then - cmddef = minetest.registered_chatcommands["/" .. cmd] - else - cmddef = nil - end - if cmddef == nil then - worldedit.player_notify(name, "Invalid command for brush use: //" .. cmd) - return - end - meta:set_string("command", cmd) - meta:set_string("params", params) - local fullcmd = "//" .. cmd .. " " .. params - meta:set_string("description", - minetest.registered_tools["worldedit:brush"].description .. ": " .. fullcmd) - worldedit.player_notify(name, "Brush assigned to command: " .. fullcmd) - end - minetest.get_player_by_name(name):set_wielded_item(itemstack) - end, -}) diff --git a/mods/worldedit/worldedit_brush/textures/worldedit_brush.png b/mods/worldedit/worldedit_brush/textures/worldedit_brush.png deleted file mode 100644 index 03785ff62e68e0e23c0349b565292cd62ec218b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbK}PJmB{Yeq&!RfK7ci(svnbVGe@ zW4ujsQ$tIjQfrE1Td+!dkX%=gd|#OIlo-uv$tFj)d-CYPQ`;)8AFRKAIQ9PR zYo9;9`}6z9|NsAiCIB_UbwRYi6$4eyQn)Y?Xs={RkRQl??7-iDsy$Gq+SA1`L_(7F zAh%PK0|V=U=idU2m|2U=cvAQNmz~SWu#b=9%YlbC1iw6H_%nrnp}c-BL)r4}FOGZP zzQyxqf3noAYumoDv}9&PSL-w+%(|T%%PsIB=2Z|k$Aakpd8|wYtGsnj{8nG^J3jx! pSFQ_pwT=EWF<8!LY*1l1!2LEtY`N*Cpno6-db;|#taD0e0suFSf1dyV diff --git a/mods/worldedit/worldedit_commands/init.lua b/mods/worldedit/worldedit_commands/init.lua index 83712f0..c24e5c6 100644 --- a/mods/worldedit/worldedit_commands/init.lua +++ b/mods/worldedit/worldedit_commands/init.lua @@ -110,7 +110,7 @@ minetest.register_chatcommand("/about", { params = "", description = "Get information about the mod", func = function(name, param) - worldedit.player_notify(name, "WorldEdit " .. worldedit.version_string .. " is available on this server. Type /help to get a list of commands, or get more information at https://github.com/Uberi/Minetest-WorldEdit/") + worldedit.player_notify(name, "WorldEdit " .. worldedit.version_string .. " is available on this server. Type /help to get a list of commands, or get more information at https://github.com/Uberi/MineTest-WorldEdit/") end, }) @@ -203,7 +203,7 @@ minetest.register_on_punchnode(function(pos, node, puncher) local name = puncher:get_player_name() if worldedit.inspect[name] then local axis, sign = worldedit.player_axis(name) - local message = string.format("inspector: %s at %s (param1=%d, param2=%d, received light=%d) punched facing the %s axis", + message = string.format("inspector: %s at %s (param1=%d, param2=%d, received light=%d) punched facing the %s axis", node.name, minetest.pos_to_string(pos), node.param1, node.param2, get_node_rlight(pos), axis .. (sign > 0 and "+" or "-")) worldedit.player_notify(name, message) end @@ -642,7 +642,6 @@ minetest.register_chatcommand("/hollowcylinder", { end length = tonumber(length) if axis == "?" then - local sign axis, sign = worldedit.player_axis(name) length = length * sign end @@ -666,7 +665,6 @@ minetest.register_chatcommand("/cylinder", { end length = tonumber(length) if axis == "?" then - local sign axis, sign = worldedit.player_axis(name) length = length * sign end @@ -700,7 +698,6 @@ minetest.register_chatcommand("/hollowpyramid", { local found, _, axis, height, nodename = param:find("^([xyz%?])%s+([+-]?%d+)%s+(.+)$") height = tonumber(height) if axis == "?" then - local sign axis, sign = worldedit.player_axis(name) height = height * sign end @@ -718,7 +715,6 @@ minetest.register_chatcommand("/pyramid", { local found, _, axis, height, nodename = param:find("^([xyz%?])%s+([+-]?%d+)%s+(.+)$") height = tonumber(height) if axis == "?" then - local sign axis, sign = worldedit.player_axis(name) height = height * sign end @@ -766,7 +762,6 @@ minetest.register_chatcommand("/copy", { end amount = tonumber(amount) if axis == "?" then - local sign axis, sign = worldedit.player_axis(name) amount = amount * sign end @@ -793,7 +788,6 @@ minetest.register_chatcommand("/move", { end amount = tonumber(amount) if axis == "?" then - local sign axis, sign = worldedit.player_axis(name) amount = amount * sign end @@ -816,7 +810,6 @@ minetest.register_chatcommand("/stack", { local found, _, axis, repetitions = param:find("^([xyz%?])%s+([+-]?%d+)$") repetitions = tonumber(repetitions) if axis == "?" then - local sign axis, sign = worldedit.player_axis(name) repetitions = repetitions * sign end diff --git a/mods/worldedit/worldedit_commands/safe.lua b/mods/worldedit/worldedit_commands/safe.lua index 486f152..3b2818d 100644 --- a/mods/worldedit/worldedit_commands/safe.lua +++ b/mods/worldedit/worldedit_commands/safe.lua @@ -1,8 +1,6 @@ local safe_region_callback = {} local safe_region_param = {} -worldedit._override_safe_regions = false -- internal use ONLY! - local function check_region(name, param) local pos1, pos2 = worldedit.pos1[name], worldedit.pos2[name] --obtain positions if pos1 == nil or pos2 == nil then @@ -22,7 +20,7 @@ local function safe_region(callback, nodes_needed) --check if the operation applies to a safe number of nodes local count = nodes_needed(name, param) if count == nil then return end --invalid command - if worldedit._override_safe_regions or count < 10000 then + if count < 10000 then return callback(name, param) end @@ -46,21 +44,20 @@ minetest.register_chatcommand("/y", { return end - reset_pending(name) + safe_region_callback[name], safe_region_param[name] = nil, nil --reset pending operation callback(name, param) end, }) minetest.register_chatcommand("/n", { params = "", - description = "Abort a pending operation", + description = "Confirm a pending operation", func = function(name) if not safe_region_callback[name] then worldedit.player_notify(name, "no operation pending") return end - - reset_pending(name) + safe_region_callback[name], safe_region_param[name] = nil, nil end, }) diff --git a/mods/worldedit/worldedit_gui/depends.txt b/mods/worldedit/worldedit_gui/depends.txt index dbc8f19..2558dce 100644 --- a/mods/worldedit/worldedit_gui/depends.txt +++ b/mods/worldedit/worldedit_gui/depends.txt @@ -4,4 +4,3 @@ unified_inventory? inventory_plus? sfinv? creative? -smart_inventory? diff --git a/mods/worldedit/worldedit_gui/init.lua b/mods/worldedit/worldedit_gui/init.lua index b88a82e..137a057 100644 --- a/mods/worldedit/worldedit_gui/init.lua +++ b/mods/worldedit/worldedit_gui/init.lua @@ -134,55 +134,6 @@ elseif rawget(_G, "inventory_plus") then --inventory++ installed inventory_plus.set_inventory_formspec(player, get_formspec(name, page)) end end -elseif rawget(_G, "smart_inventory") then -- smart_inventory installed - -- redefinition: Update the code element on inventory page to show the we-page - function worldedit.show_page(name, page) - local state = smart_inventory.get_page_state("worldedit_gui", name) - if state then - state:get("code"):set_we_formspec(page) - state.location.rootState:show() -- update inventory page - end - end - - -- smart_inventory page callback. Contains just a "custom code" element - local function smart_worldedit_gui_callback(state) - local codebox = state:element("code", { name = "code", code = "" }) - function codebox:set_we_formspec(we_page) - local new_formspec = get_formspec(state.location.rootState.location.player, we_page) - new_formspec = new_formspec:gsub('button_exit','button') --no inventory closing - self.data.code = "container[1,1]".. new_formspec .. "container_end[]" - end - codebox:set_we_formspec("worldedit_gui") - - -- process input (the back button) - state:onInput(function(state, fields, player) - if fields.worldedit_gui then --main page - state:get("code"):set_we_formspec("worldedit_gui") - elseif fields.worldedit_gui_exit then --return to original page - state:get("code"):set_we_formspec("worldedit_gui") - state.location.parentState:get("crafting_button"):submit() -- switch to the crafting tab - end - end) - end - - -- all handler should return false to force inventory UI update - local orig_register_gui_handler = worldedit.register_gui_handler - worldedit.register_gui_handler = function(identifier, handler) - local wrapper = function(...) - handler(...) - return false - end - orig_register_gui_handler(identifier, wrapper) - end - - -- register the inventory button - smart_inventory.register_page({ - name = "worldedit_gui", - tooltip = "Edit your World!", - icon = "inventory_plus_worldedit_gui.png", - smartfs_callback = smart_worldedit_gui_callback, - sequence = 99 - }) elseif rawget(_G, "sfinv") then --sfinv installed (part of minetest_game since 0.4.15) assert(sfinv.enabled) local orig_get = sfinv.pages["sfinv:crafting"].get diff --git a/mods/xpanes/README.txt b/mods/xpanes/README.txt index 47161da..0e34d23 100644 --- a/mods/xpanes/README.txt +++ b/mods/xpanes/README.txt @@ -22,3 +22,11 @@ paramat (CC BY-SA 3.0): Krock (CC0 1.0): xpanes_edge.png + +TumeniNodes (CC BY-SA 3.0): + xpanes_door_steel_bar.png + xpanes_item_steel_bar.png + xpanes_trapdoor_steel_bar.png + xpanes_trapdoor_steel_bar_side.png + xpanes_steel_bar_door_close.ogg + xpanes_steel_bar_door_open.ogg diff --git a/mods/xpanes/depends.txt b/mods/xpanes/depends.txt deleted file mode 100644 index 331d858..0000000 --- a/mods/xpanes/depends.txt +++ /dev/null @@ -1 +0,0 @@ -default \ No newline at end of file diff --git a/mods/xpanes/init.lua b/mods/xpanes/init.lua index 653c8cd..758fbbb 100644 --- a/mods/xpanes/init.lua +++ b/mods/xpanes/init.lua @@ -1,3 +1,8 @@ +-- xpanes/init.lua + +-- Load support for MT game translation. +local S = minetest.get_translator("xpanes") + local function is_pane(pos) return minetest.get_item_group(minetest.get_node(pos).name, "pane") > 0 @@ -27,7 +32,7 @@ local function swap(pos, node, name, param2) return end - minetest.set_node(pos, {name = name, param2 = param2}) + minetest.swap_node(pos, {name = name, param2 = param2}) end local function update_pane(pos) @@ -100,7 +105,14 @@ function xpanes.register_pane(name, def) inventory_image = def.inventory_image, wield_image = def.wield_image, paramtype2 = "facedir", - tiles = {def.textures[3], def.textures[3], def.textures[1]}, + tiles = { + def.textures[3], + def.textures[3], + def.textures[3], + def.textures[3], + def.textures[1], + def.textures[1] + }, groups = flatgroups, drop = "xpanes:" .. name .. "_flat", sounds = def.sounds, @@ -148,7 +160,7 @@ function xpanes.register_pane(name, def) end xpanes.register_pane("pane", { - description = "Glass Pane", + description = S("Glass Pane"), textures = {"default_glass.png","xpanes_pane_half.png","xpanes_edge.png"}, inventory_image = "default_glass.png", wield_image = "default_glass.png", @@ -161,7 +173,7 @@ xpanes.register_pane("pane", { }) xpanes.register_pane("obsidian_pane", { - description = "Obsidian Glass Pane", + description = S("Obsidian Glass Pane"), textures = {"default_obsidian_glass.png","xpanes_pane_half.png","xpanes_edge_obsidian.png"}, inventory_image = "default_obsidian_glass.png", wield_image = "default_obsidian_glass.png", @@ -174,7 +186,7 @@ xpanes.register_pane("obsidian_pane", { }) xpanes.register_pane("bar", { - description = "Steel Bars", + description = S("Steel Bars"), textures = {"xpanes_bar.png","xpanes_bar.png","xpanes_bar_top.png"}, inventory_image = "xpanes_bar.png", wield_image = "xpanes_bar.png", @@ -197,3 +209,45 @@ minetest.register_lbm({ end end }) + +-- Register steel bar doors and trapdoors + +if minetest.get_modpath("doors") then + + doors.register("xpanes:door_steel_bar", { + tiles = {{name = "xpanes_door_steel_bar.png", backface_culling = true}}, + description = S("Steel Bar Door"), + inventory_image = "xpanes_item_steel_bar.png", + protected = true, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_metal_defaults(), + sound_open = "xpanes_steel_bar_door_open", + sound_close = "xpanes_steel_bar_door_close", + recipe = { + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"}, + }, + }) + + doors.register_trapdoor("xpanes:trapdoor_steel_bar", { + description = S("Steel Bar Trapdoor"), + inventory_image = "xpanes_trapdoor_steel_bar.png", + wield_image = "xpanes_trapdoor_steel_bar.png", + tile_front = "xpanes_trapdoor_steel_bar.png", + tile_side = "xpanes_trapdoor_steel_bar_side.png", + protected = true, + groups = {cracky = 1, level = 2, door = 1}, + sounds = default.node_sound_metal_defaults(), + sound_open = "xpanes_steel_bar_door_open", + sound_close = "xpanes_steel_bar_door_close", + }) + + minetest.register_craft({ + output = "xpanes:trapdoor_steel_bar", + recipe = { + {"xpanes:bar_flat", "xpanes:bar_flat"}, + {"xpanes:bar_flat", "xpanes:bar_flat"}, + } + }) +end diff --git a/mods/xpanes/license.txt b/mods/xpanes/license.txt index dff7227..7e922b9 100644 --- a/mods/xpanes/license.txt +++ b/mods/xpanes/license.txt @@ -34,6 +34,7 @@ Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) Copyright (C) 2014-2016 xyz Copyright (C) 2013-2016 Gambit Copyright (C) 2016 paramat +Copyright (C) 2019 TumeniNodes You are free to: Share — copy and redistribute the material in any medium or format. diff --git a/mods/xpanes/locale/template.txt b/mods/xpanes/locale/template.txt new file mode 100644 index 0000000..08dfbba --- /dev/null +++ b/mods/xpanes/locale/template.txt @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane= +Obsidian Glass Pane= +Steel Bars= +Steel Bar Door= +Steel Bar Trapdoor= diff --git a/mods/xpanes/locale/xpanes.de.tr b/mods/xpanes/locale/xpanes.de.tr new file mode 100644 index 0000000..9852753 --- /dev/null +++ b/mods/xpanes/locale/xpanes.de.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Glasscheibe +Obsidian Glass Pane=Obsidianglasscheibe +Steel Bars=Stahlgitter +Steel Bar Door=Stahlgittertür +Steel Bar Trapdoor=Stahlgitterfalltür diff --git a/mods/xpanes/locale/xpanes.es.tr b/mods/xpanes/locale/xpanes.es.tr new file mode 100644 index 0000000..9902be7 --- /dev/null +++ b/mods/xpanes/locale/xpanes.es.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Panel de vidrio +Obsidian Glass Pane=Panel de vidrio de obsidiana +Steel Bars=Barras de acero +Steel Bar Door=Puerta de barras de acero +Steel Bar Trapdoor=Trampilla de barras de acero diff --git a/mods/xpanes/locale/xpanes.fr.tr b/mods/xpanes/locale/xpanes.fr.tr new file mode 100644 index 0000000..c751799 --- /dev/null +++ b/mods/xpanes/locale/xpanes.fr.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Panneau de verre +Obsidian Glass Pane=Panneau de verre d'obsidienne +Steel Bars=Barreaux d'acier +Steel Bar Door=Porte en barreaux d'acier +Steel Bar Trapdoor=Trappe en barreaux d'acier diff --git a/mods/xpanes/locale/xpanes.it.tr b/mods/xpanes/locale/xpanes.it.tr new file mode 100644 index 0000000..df6ecde --- /dev/null +++ b/mods/xpanes/locale/xpanes.it.tr @@ -0,0 +1,6 @@ +# textdomain: xpanes +Glass Pane=Pannello di vetro +Obsidian Glass Pane=Pannello di vetro d'ossidiana +Steel Bars=Sbarre d'acciaio +Steel Bar Door=Porta con sbarre d'acciaio +Steel Bar Trapdoor=Botola con sbarre d'acciaio \ No newline at end of file diff --git a/mods/xpanes/mod.conf b/mods/xpanes/mod.conf new file mode 100644 index 0000000..dcb0716 --- /dev/null +++ b/mods/xpanes/mod.conf @@ -0,0 +1,4 @@ +name = xpanes +description = Minetest Game mod: xpanes +depends = default +optional_depends = doors diff --git a/mods/xpanes/sounds/xpanes_steel_bar_door_close.ogg b/mods/xpanes/sounds/xpanes_steel_bar_door_close.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0620bfb8a151b9434bcf0dab73f89d67579e233e GIT binary patch literal 17553 zcmb`ubzEFM_b)o70<>5Qr9jc*+79j%XpzAk1}pARyg0>+yK7-^DKfaU#ogVCySvWW z(C2x7?>+Z^&iUtV!Y0XDSxLTYeUr>)kBpI#0tgB8&$aWlg#0e+@8Nj#fcSxfm5r{6 z?Onx#4~2JsK%jSd5AXk0Kaja=`Jd~qW|FZn zA~iSBRlc`RDo)D$4$Srr{Em&3W--a{QjjMwO^|2=j(90fcPU}-Acf2! zgB&*7Aj?MuMJXlVve#5`Fc^2RA9rw5i}zKpc2leNRiE(HJoDAT^ZO^AyUm~7rTeLq zJ^-bYbHy&vet$#oeUaU zirTWa+wuZQ)b2xPv}EtGB<8=hsgi= z`g$KPz(mMW3}a0_QCPxt?qTr+%;IIB2&4V&2~Y^gSSC#zNIdH0!bn_6&%;R?{`E~U ziMl2)KIz_r=6(1}fG=sg5?a#}1`=)i#L*IAe{)VRl8}q?hJZT!wPcJod>uf~WGE3i zZ&DR#t2U6hnp=Yd zJ$&8+e$$!2YfJGWbqjr>i$j)87Da3qh7pwx?x4*g4ha>3t_6hBe2X>tmY84j-Mp)KtM>nz{=*zm8wwx+%=u_T@n6jO2__T< z*i^b{}8;w*x?+pW$c{_v?t9JmaW5+o(LFk|N*#nK6KLlvQe&6#zB{ z1i}Y_)>{G8u_7~Lp;(P7U0gJ5XIfxGoR&EkSiE4U&3=L|go_5A(+7qHL};kfN4#m# z!QfVsrp*;x8xu!iL|wipl^N*ERd0tlGbDD?ZpQ7N-ZeeXt95ep3j!*KOzVE3KF zfX?BScb!)#%A4G^FfD2WI?n?pXa=qvGYtW^5$g4F!Ep3UY1>Ai!HkuJdWCF`_cO-@ zMg<21jBNlU_oHG2T1XbP5p}}i1aD2IX@w5OJ+f#ZN>9xBZc94W6`$8+hV2BTYQNl)`L1aGi5OGRatZon($N_rM&>(QEqC6xI&;2tLP(dKN&%oyULr&k;D8@c?ZU7^@g~ z6&N%m?{6_${%?_%@=i(yc;`+k1kmoT2!IAjxhrNwM+>0<+XR4|F90|!S`kVI1C#-% zl>g#tS_A^^KSBnjBfVA@<)kHe#&AE!2cVw-mj$1Y>D`@-e1ID;PQ1HuzRN(vAt-wR z5(7?UXu$lD0e0QT7DSx(E-LOKeE@5s&9yY6kZEThv3l8@L&G40w*7MG=l()Gb>_Siw3AY2DR;b3?gOa1bGro{NVmAKB)RBgN*)xCoc#jMtgs-1lV;4 z`kgoaJ!gWm|C9Tly8GPfKZ2e+=LB=D65h2vd;JA7r zM8Ikm$k;|;y8}Q2%m;{1U=f@ERK^m8Y422kiE04N06{N&?G6wiS5%X8XJt&oc8~AQ z3Vb!$1%M%*mlO1!a)PrNGNiU({P`Y-84yT>7MKCXKc0&DOVhuOqXQU!9};&({X72J z{S^px{FlII;Eve$0$Cwi7|;Uw-sxmMvXFlTFCa9q=zmSY?s)l+%8R?elIQ*#CV$T) ze@)#-oIC{euipJ(CHlqPApf=i0`N{RGkHOW=!B-*vO8yj|>My?*fbH*JT~msG+mi$9%s-a? z9mW6u#sAMPK)Ky$$UoOnUmK~4bJG)|Gu?9#7hqg-yk4jvH9%viS-h95(0W$Z5X8Kc z4I+34mOMa{G3NE$=tu~ps1;W)IKf+9o(@<+f%R|4K2yA=V&SoS4%ZX;i zY{+T0SlO@%(-5|`WEU*%^ATuB%__0ofZ!Uj9i#}@1^f7r$z1nq;HqZ5Y-@AgnA|Ay zrUgJ?o9*$PrFvU}fk+g;40^BeE;5|E`^QkgYnh)| zUxD@IDJTHg(1L*l$mg$5bOZlV{lCZzd`O_;1PF(4hLbyyz*P_Y1k}HxWI?)8B zp=ONw9W>P7N*rb%oQf&v2C$s#7L?irgT?b&VAy!xI z$@EZTpj8uD2t^3XOO^2b15{4V1wZP!eV^CK=?aRQcm3RbuKoj{FbR6|Jt1Lfeg7PU z`W&B(7R)6mE(a{fz(oo=2NpqP&j4e?RZebR{`W#3M8qJH(z5c3|9O_+>FIf|`yRM^ zdj5S{@Sga-3Uv3h;7-wsGz#UFiHy9Aq_mW|6=D|Ais(kHA=VKah$)T5^QgGOEa9!v zGsM}qw@a}{DK2^2Hi+21-ExONuBtbub6>l|uCNs>qLl5|>~0Pgm!^%{Cx;^{^0)GR zaJw%g4_;q^B~IBAKKEL&W$!}Bk&AlgJ}Ladh|S#|MR-q12Y-SnR+Mp1dIybRGF^VdeyYE z{VZKpms@Oesj>x~pyHlqaa3emX3*|N2levK&=&2_7bnEZYQBFk8I?i?D+USuS(RuV)yoj zx<^bLy|Prkhd>(70@22ny!EcPv&}Wxvn=A#xvChB3!~21C-t{d_Vzed8qYG-OqVPz z_#kZZt||K7sWV~ila>h}<7OkJZlY}HtpP&F!Q`^j>#`;9b@DKiE4)MV@aSOWNitm? zrvF5R08F)?`6lPL2MKfb&Rj^X-5)~!;!uf`FhPX=d``y4KBV*&=7$fL7~=#k2BZ+B zljnahiT%I#F)r|`ZWRaxdN}6~UGqJtXP<56L(4ht_j%#9{`PYH7`(S!{Y9X!J34tK zW_0}8E&*jsu2@kI6{NAK+dqT9wVS8v%F!tbcX!2M?Omle`m9x*MzQw1Mt}K}X^y!%w=<{( z-q>zO+srp7FCn*Yu$^=N@LDw=#NY&cNw0;s`krVv-x~wh|Y_;p9>p!I~+ zkew41C}3VCTXlG0qU~%szLY;dG7(x;em(p)i#qGs*wlx8yfd1*&%OPk9Ax$+2`uVi9R zKqk+2MbesI@p;2o9tobp#tqGCdIY5 zy1lg-Q@^hb37lTLA^6Y1cG69Ei-7x_#`>e0h1X2>6E8Q`k+S`AtjIEP3)FtsiPq7E zRD4*})9+%B<%4;!N!z^Wk1u;ymaJ;?HMe-O-oE+k_^I&`x$SbbSM(DL!RyAP+3qWU zM{xu9)b_mBwp-oiloGz&Z1 zB<1r%y!fseX>3{B3yIFR7d9Z%XQ|H7=j6-eilP_`E+ba-Z_v~jL@F)}v-)O(KF<}Z z;2Kdb)I^{!nASRUujfh^Ej@;}KxfrRoGdY%kCr!%mAGdawNKqy)8M7WJG&?^T)HPV zH5-bc)4gEt8VeIqjBkSByV9Hwto*!vDpL+s)ur~UF-i*MG{c5cU!_dHz?L^_ae8md zZ=}{m=|Sj73%7vs$6mB+^?bSM7vGChbj7){v)@qgP?hW*xyj*1OPrg~Nqfk2lx9mk zT&VFp$1fZQM8p+a|NS(m%MMOwMKQ(8=$IVCvs!U7C^a-C&Nfk3Wf!NxsG@!*+%E^& z0jJt~oQ_Z9b#j}vGPr4;E$*LO6xG&NM$WFLR?=*W@ciNB8;zF-clo_wvUPBY?YoV> z$er0k9J19nJJ_tNZdzuWb)zG)aCw&ft8@_dG2^w5W=bAC>m|QT*CwSyR>y(V0x^|x|YpmbLE4uFTS!YY?J^2~k znF^xH2>`is>o1Z|?q|S1uB}&HetcCh)S6|%eK7j1&)SH2JlgJt*?>GH=DHF9opAfL zXb#xgwqez7I{7=QU%U8*ozUkV;pwqFRs=xr*Umhis3 zEdifMo#`F2RgJHUemU(slzRDyeyUF%wLQgJ!fj8qvo38Z^KAQQq^^yDN9!Y%Wm?8F zBTXLfbBsw2l_K<~JA?=-jMg7%1CYkEafrwT^dZd$4w%O+dve2lVaw&+|J}Lw~Yx-O>p`83w zLt13dbwldoYw!wET2-0Zk=a$c1-YNjHy@h(Vh9y}G8boPrPW3C>sj{a19ZJD#3265 zsN)pYYtLPQ_Vtv=g+bdTXpR8om+9XMy<#1GE>psAlLm`5iN~iY>XbrsQOFOm3rH-DTg z4gLbP*ChQ!tFVujCS;IO;munXz^$G?Y_(`ABg*D6(V{S!vvf;m zy&j95&0;A)w}?q^5Bt7;cpJZ$CzbP@@g37K1k*gSf_B zR}W*YR{WG1g8N5Vt6xza89%UA*j={e=u5p|-VCfe4Jk_b(Rz&$D*4!~T#@g&T(-GW zVpVgUd4qsapS}1CU&aPy1}62>Prr7?us65xpY~1tpsky7(+-sHN=(X$)zR4Is(Y>! zVb(*5II-c#bZ9uXXJCBh8CzXs9PeVebMD==bePlWJcnDd@bU*nNDAwQXP7L~O0n&^ zkEoRGnS~V#j`nDajIjtAA`U8SxVq-%)>JdRgU@eGuhqw{{vrGi$AjmA35*qKsExn9 zf(CVtAB1&V=kLfS)t2?7#bAL_H(8EZCIoV|uqC;ITH4(56w z8o5hUTYBt}%Rk$A(rw#rC5qxK$)mklq&R&$t*a%&$u0d_ha`GbsIiVj6W2vxCsU6_ zWco9s6mJE;nvyc4Nkcn(8+~-VD?l9Nc#XlUW-Q#HOKN6-(KtAUjRs7lxudC}c zC70t}ZiTE2wb9;dx-yltCl=Z(Hbp^uPg&31wYj1i-!!S|ZVGfg=9<^^L1bRB&qgPs zkL9v~DMqo|*=th-+Q(h+ z7u8Em{)=DxT^+w1DSU_?=6usE4wchld#%nT`O1LoE9s?iNh=i*pL=Oe?!u>}ny)Dui}D#>eWZDQBPzI z7G_}lq+cIJg_}@o>lJ%V2sMPI>Ryzv&N$e{;@k9k=P=Jzl$Ra~CU(Ts$s95^!Qdj{AcBA@DH6Ekv?H!T z=Au@-BJbjf_PX@$$2@sxKS_scFn&Wv}qUxTKfUQswcc9pC`xj8`9b`dF{Y<3?}ULb3Bl2)pU^RbxsSrD2soebGeSw@mUU!m3tc ze%;!V-zT&-Ew5#Nd}oiU**D)UA>R40_|YAYXXbn%jIJj{CluXFMb25RJZ?4YNkRyZ z!~!ZEoK-!m_jKADp5T3`*~yYHIVg54?XVMT)6y?N^QfkYWAh6|9A6E+<5Fzh)`JU? z{oJ(}FZY3sylNEC3sTK6aRb~w=Y+^`;QPeSc-;V1bUqXuhP;IJNh@}UgTG49bBb5?&Z zZ;S%XN=MvN7tK8q1m1cFsd27t(FJQV!BHeE=qF|Y)A;*D7H`|QEqcGpbiFd^)X*{S zY2#_zn`)o+Hl^gkq-RT`KiLcYatZagbtTrm{^~f69R#DrT#7(9miA>H)@q(XhN!!v zDitzav@l@1JsVzW7fayGx{cFl_}1+XS5l3-3JROTw4fMjR$<%rte}m0z$(9VPTd(V zGv_6zUP?Yb8vYsXaX^pPTME?o4{}RYp7*=6NR{;(ULuo+k_cwo zqKmtJTUE98x*&f~5HCK5c782DG~-l0`#Yob+-7|uqAFt3C9i6Vn%H2=_vfqxPBj8| zNIWe|h7x`yuuOKTdiLuAW@-U3$`aYK6FMuyTK#a5l{ju7lrrEs1^G=)En-ss7&9wo zbQ3SP#a8ec)_$pV=8Ay!+wJdeC6O;{n|6EpT`P_=4`ZZTkTc{upMNmt^qHQKO>P;q z@T}^DP<2PWiA*K)e1`P|^v^>Ck^gy!aQ8C8nmS!D4q^z=ju=CBa99CR?f2+7ujV&ThF4tCuK7~2?e;Rd$M4PF-2t;NKZFMCYxfU{PA zzuud?jpI>!BNz1skV=jh8$1CMe@%$P-mEob;`M5I|yngNS$JyNU$dkGrFG@;e<%-xI2lCdy6l*`dXok z#w=3JTenh9j@jY!Ok;)g%%uFCUa4!-v24d>W~vYAG#D_SeN0aDVEpW{!V3_#nfEsaTJAr zoz=l>l`AJhjqOIMLaBapbyLg1#srj~l)vh?Bwv&rS9?`uH~mz;oTFadIwC8(K=?EG z!NUTP5*5r&juOL+XvuFzA@wv$(#m{grQJ9dHQ(#v9Ufac#0Qa9Gv&XOPi(=Z01<)JTx;)^bWm3eIsRDNEKFl((GNTb>p_c zZ_j^}4ws~{mnP;Qy6jky{xXe{=#Cc!uaso5;M&7zrVUN3Q|Of#Rp0v|jUI%d@QT`^ z2i01c?^|qEN~=OsB;{+K6mH)UH2>yi*YE`~XD73)dGX?rP!lGx!0bnGzHZ)__pQB2 ziPAFtY3jkaO~cHm{`#TJ$V!IQn2WuY=6Mlz&e%y~zj74RR|ZZqCd|Vr9uJ&S=Fvs3 zg^jISd?s;`iab$|Dr6cX?zNf~9bP#iig59^9TzAcn+bLEI-u_Ei`sbkrAhHut)pcJ3{BA4)+$~D>9}9WW4)cdV@k$V55Ky@lp7=&2A3H2$aL;<~ym#}q$NA98F52GnT(;b8|52;`{FA9#lTv}PQ zFLw*fxK;^5HS2y@lR70lH(@1}4n}$ynMt#nr8@uC%A|+-4M^*9>koY@vEsP(7Jfyw03>PT*onWB1#=sMg^i(V;!t#lX_5Sx+`@;n#%f zdhczg2)C1ykfKHBD9h?gj#_o|936-WZ-Jd@0-oV?)Ksospy{#{Zk3evo+W{a`Lxp1 zXoLn+sQ45k+q0whC=--7ZBtWF!r-An$)s+SnpIJ+t#;%mCcVM0D>2mLk51)C&Rr{P zZT0Mk2=TpL#VklNd6>l?xXw=r2*a8Zw?C|NIQjGcdV27E!r*8)+%YUq=c-t}>s6+( z`kw#p2~H>Kt%NhXLgh%x(p>PazQxH>wkXHNG;2KaIafzWcDx?4ud~<@(NosbZu+AN zZslnm{+ee=gCj-sC0lCMU#S@@&GtKw`zPYuNJ@LFq@F+i)>RiN-1du_qY>#C*QbJ- zG7^tE1cl~JF@uk|RU}P&x0aL#RVwe+_ps81wMO%STHnFwVw!zW_F0knWr=<4v(4eY z+3xR!{=Y6e3U>P{dCT`)3_QS9ic6oIt~i<@ptgWqX0MrDp+WU6v|4&Jlc5(H2`Lo@ zSE0JjBFWaru92yJZze=ImDZg0v#nTGG-1@tZMD;zRX6SC=XgpLpvKFjW0~IaAjO&j z!sDD!%dFI=-^PSFpM-U)x1-wj6uiL8yKZD^{+jF_Va}g*w&&A^F4e7%=;Y>(tWxhD zzN{bb6mVCg&Rzdzk8&aAeDm^`en%}_Evy#KQ(aZmTP`g+b#0An zotw$r?-4VW$v!)^%#M@{xOsJ#l^F{bQn@Bjd%yQ0eha?TDr?p2#XQ5pGG{Nb(3@|Y z-H)}j1mfF?_v$FzjwkFe4WJvmX%2M)Jn``1FZ`{Vbz}OWNU|=kiYB)n8yYZ;O<V zeMYiJbi3r(bN54_N3};W?l=XXrttZ{Bp7U2SElx9-5&i0XX@_79*(W6#~PRBk6A7` z+}d<+CT?{65XcT|O@%oS1@aedh8_B@MtsWuLm^$|;o5$o|D|_%73GhZls&V$S$B)? zPYcrH0X(->_vAR0+m(7(AHTDe;bD6IC#<`60<%{1fm6V{K4|);1!jKN7l$0`a*sEm zLVN0arMaHb>0p}t06q4~Kf_`9f1c}BR&m!|M)TBU89%xSpn61neriM%R>hE1MhZ0# z(hsKokgb42WJ~a6jyTmuPBpl-kixc)Me&0cx8$WvFz-O5=E|oDzP7X@R`eZd?9NfU zMH><;#@E9UKAH=v_I>DXN(~mrQS_Tps}mua;UnoW1m%Ns#8Z+4qJ}fvlfF>g$?!>ys*uyIk_#-1JAr?7mFTzk862sO zq^YKcw)fk%$Gz1&T~*8`p>^a!A%IPKj*3DbeE#@VaWM-~Dt=*Q>Q<-6OJZK2vbmyF zLPs&#Cg7}^>1y8iNjD12_q?46`qm=WceKo&VaYh8JJ|VU%+~fB-SgeV%|?7sBQ3+R z%%_YzYVk+HBnOFP;vZBQd6`+aH5sjEidCG>hG(t$+_t~Nj(nXMetr59Ng?-fM;l+> z-YK-fxHo8_%Up_OvF;X+)&H180P%Sze{eRdk`p}suC>)LB4o^FZVu0H$7UpJNfMjh zzHaBw`i))xCp|sq@XOQenAU+klGf$TZj+s%n)A<8BO~0;j*J^>S^6sL;xPwa^_TtZ zHQN~tMvA9t-)Zw!Dmv6`z3sw|BhPc+BB;%raadr3cAZ?TQLHzPZPKG}a&#@b)<5!2cB6HQI`l5Wt4SwG0<|9aGyi?dMww)rS)LjXT=|VOCgf_ z>+$yE-Yd?_{@!es~m{peLF65dP` zu{ac2x76buUpjhUu0!FckQHhPrFM2ik!Xg9&9YsNXOAVNm~nB41V@co;WnBWg(9L! zj#qvsI3T1qFX>2n#tkg_j3&1}@g*4(TC{hLc>O<~wHOW@M47XPEHv%UJ}Ww0#GSFd1z$yGpWdq#M+* zFVv2+bto(C`7`j`sWO{EE(yehl5nbshhDL|gl>b|KHQ7drtkUF*Mz)O{b>{H6s6A# z)jVW-x@)9wYio@#5-!kb7}N|*sI8adzcA16zf~Tiiyetdi&$}p+XDse*(c^out^g> zaGA9=X=Xai;ceLUz;}l~82s>%k_^Fy^+V#*31`AFlsqu{wKKAY87SwshHGs|eO~$k}VS!xvJznGmsp{!xPe{uqrp#qeCfpSUB$@22n%N~revJ%M-wH+iM#jA0t_zWa9rETm42t`y zl3t&ruX@A0_$qW7O1dqO5MuD_E`yxFQf-#RlIl2{8Q!d!34>zM96N#bu`XVW2+W2S zJl5qyXi?`+3oBajIa6IiF|+l|fy!gzLjnsoL(GZ0<-@YveNIE-x8w$x zdvB{zQC|k7B%F>VK^}k_FA9!Tu#oAvk-cT?Kfle}6jQ@%7t=drPDreKK6XW&v$r~_ zKI%s)2D5kkIqUQBbO9dW6w|W2-#5GvYDL9HyWHG<+-G+()s;}9J%i}4-$|M>W_YpT zN>Ill@5CpPB0`kMSF~|xXSrv;=3Fpp3R9>8mReTwoe(A6{!TfYQ3tWBtCJx4qnr0q z_?rtwZWN)Fc<&T~DmAp4Uz0FAQ-Kpc+=o9HC((zol?-c3q%e-Xn`n5T7oU8T9dUR* zZ+`v3->M}1abxT0Vu{$GYX_QBCw@aiml~?AOTbQDE8El3{-8q+69FIS$^L0*iPM#4s{_o zU}uo*k$1YX*zTXTWh527`juJSq!)Z0hzEC=dDsqsZc$q2C zps@|#%l>(wGu8Fv74$be5YvX`<*7q41g~WU^3r!tlGG}phJTGpva|Su5sBqPh|0<+HYTD8^|CNT>VlRwn`e|*k2BCTw7hfG+{K$y7N$~XC z@)hGl{ZGY(v*qQ>QGTiE`e)z8PwbjL)hp8T!OOi#)Nl_v-;gwCR}KXL-~}0^+_Bx6R=U87e9jzG2om(^FL|kPGVUVa!SwXFfkq}yY zrcvYGJ~S02kOvu?*m#0We)Mngju4_Yeq$3hQ>0#fr)T73B`pTYv#+(p=1a^9)RU|& zUY{bKl{VSE-qvgl&N$Rw!^nT2p3*EXE0&XDe7vbn=ki}2!9q*F^wBoYObt;nI$es6q@zW z#Eoo~)d-%#qiK}EW!UM)F{e~}HLA&T>6>FOVnJp$-!)WFI(Zz?pEBO{{!(~&)Us|Y znabD~TTg+95kJ8j)67Mu_t191A%{22SSteU=dV9&gfdLOxvNCZwYo@62_9YsXrN~& z=Jt=KrmEM{%zia*y4L1ClP@Xyq*d?74T&n?T13u%{-NEi{EPi+wg(ljQ{6|4ek-b1 z=Ui)s$8VoLuD0yEDBc`W;ay{}-#FcK;eQ+N<^OSkMvXBeIfu5IpheAeD2LWB>WtE00T8x~Vmisy zn-9di&gZl&8P6kdr~Cwd3gn3utipzlI^E!duTKowpNkw+v>Ue`>oU)gP^~E(|1paZ+%l=%Z)ck)FAQ?&z~M zvmM%98mq~~zshW%me1j^W3fnbuqwW!tok-Lb<2){QRn)H_z2a%4l~375t(F+k;pzQ z`wfO#!^bAWbScP7Zr~T(ap-`}U|6?BOLUXUu)JF4vC=z(Xy6qq=F3y#Reug9h=GY^-hgd)`Zh&7jvg%U}{p5m0) zp~VJeuST@1GloV{z!k9F`bX$IJKxlOe6>=6@nkP`#et|?uprCnCWM=w`1gbBMN52{ zMu8F)CJnsol<0CE{3kXZa=Z#0OwotJaa{$Lzf-N?%;`ohm(D&H#(%iBqPsYfOZA4< z$rc;B?fcdbIPzodFQ4ftx-k&UTpgL9ri${vKrCf((dqr>1`Rr#CMBx?L0*uja#_xth?+`U`iaVVhMfURTd&+oehP+AW(!)~$z!Mb^4PF>41 zPuhtM8%Zv1dpU}z*J^sxF{`Auin753Q`bLU!qR$U*1}F#@Tm)6R}DI8UAgt&L|y1y zapJo(c&WoI`rZ{AYPluqiFy5E?SKzC_ITH)CVfU1^~#uU#yJxY*wi4HDg4AW;JRFA zvpJsGAIWnPzsMYFKQrZ4?vGVnrI1Zpi7WD%;#I2hc(^%*+if|TmU?KJe>3HVNqRY_ zcfD-h+v&s@^Miyw2^Q~1`(^LwRl8&f^(aq|r93y4>fWp+XY~uQ$i##WwW=|xNA!sc zEUn2a^v|Amo?9<>rKHps@?{0SSqPOSvZqCJ&>vdb&C9>lccAukg{TCwYBVz6Mw1OB z)W;n+t;io~Uxw38r{+^*v;-%X-)JOc4^xG}5CN{Q*gEKhNSj^6c%km&MC-9p*avTd zd>hbO2_@)_Ua1meqPlYV)4L`?Vqc8ieoRU`yYkosSM8Ll{hCR$6K{Pr6M`4vJ+l~+ z$kg=#vt{f{mhQ!qwJYycWVlqzlZ1FFG{Pgp~^^a&>f@icU9faG#Iy=eRdYiR@Plm)DPwmh9#Tk zBHj82tvh022VeW)l{8CCA16c^4ij)qb57Nae!$LTce){{RTg&6)0#!8d_q=kIl?_2 z(clB`HVh?K#(l)Top1Q=@?90590&Ni%$fv`sJ9c<%a2Lf?ni?zEAzVbG1U}Nsy$0>V$Q#Mz=zZsjnvwMmGY&!D+%}j0%pQdxuF|E{*?9^EErv9+ zH}TmBG!^;x>QboONyc!Y2}jLw4`UsNZBK1qfZx4c8PMe?ny{+(xPst(5NX4pcnoFi zWF;mM@HV)1OLLw+SB)j}=+oMKX}Ht#OVB>lx2kj`VTs!D>HDwkDkKxjLsiON-X6Sd z7tUYa9&uLc1rc+?=S86sJ7ffNR`L-cA1^(FI+d9lA$+t22>OAiav^?MdM$JluGBG* z%padqycHb#_sUG9j4lIdb1@BJEn>=68B=<7wh^jJYcDM0I7lr^(5@JL({@L-cSrXg ztu3|wKqHwXzCC&N(NeRhG9j3k6{F3Az+o+F;9Cr^2}Lmr$C?k?aUN&|B((^5iw~el_f;jH zOrL$ThYZrN_B(BjB1jyc<4^EU9XXDlv}YR}6TMySE5l*-Zhqg)3N=V#eN#Q0@WeWl z&T4Fz_wktff||r|d&bDv0fsucu}hUpw$jZ?-s_T8u8gsqMd!IS;L?Z7x`_h{Bx!(DrBVsrfF+mEn+u>*zqi3d@nR&#tVTgN_ zmVcrE(a!L}?kfI`0HnlNP@XjQgH@+DKF4O9L(7#chw1F%k)qm$$5#7N2g9Fh*Trg{ z&F!bh7}Dnr&A69Mv63g85?Je{Oml438YTXzS=iNS)1q%*il(f&pY|q=CGTY=p)Gwf zI9A_4+cBSXKb(){F}?D#5>m5d*{0lcXC&oF3m_;An;_PFz*+h>;s?o}Cjlf;63U6t zHyA4f7tzWg_=_Kq|AN|G@Kgd$KwjGrMfLeopT^bAQGO|8JSVXN@H{!WZ$!@>aNRaN+b*FV%E2=l<36 zFK#UE!OE6Av{HIggzQZE3dfQXSPxSD&Gu!m9#3F(g=G^b=i{NZ_={8H*^-3OC;iX=v}$a7pbb(K&qo`+f=^D)sa*U8dB;2s1!@hfX?^c#rUlGAGRXES-HW2Voc zEh?Aq_w0*yafXYHnqr#ym6`Ms->TFKo|@bsqPdE4ibWy9L!kVw#@{V zif^syFOp4$%Gm&DtQj0NDrw%9Qw1td>=NLt;^r!hzK=NI=g3RD^1gcb=v8C5@x~?{ zT!wd^NWM=R!!pu))pzK-;pkUNoL?UFR%g`A-m&V?A)Z^i7rCpMBrJ{%)!OtMh%(2v z03MCXkv()ViRXJz5}{MtBPoq+mGRO=v5NecO;-^ma=n=9$#X$z;s$TS)|Ks{*~Ik7 z8v1jLQQ`LL$NOSCe>T(K7x7Vo$X>NwKMoI3kci&h*lpip^N&IPVD-D+?ZuvX+8gKL zZ!DIoS|*Z*4p@I!z4drQP-H>3eo22yP@b=&2`eR&oCcW?G#b)Eze|-*m~2h%F+ zZ5Kb!`+l9(2U_aB;Segn?p(b!=VzcJphb9{O2iZgO@bn^2KG07fgqUw_`S3Rx*c&Mvx zcCk%oj^Jwk-5xFSn_p@Oq+Mx{1E>SBRB0-+m| zXDZqi2Q!ni$20woCcm`^T#o2obQre}-V~oEY3z5nnXDZ#Jry(gQk9zCdPJB9+M~QM zSx2IBcH@*iET9v>9!#BAung#T@pL6te8;YZ8o96-t^J#UTknv!95&R!W(@H zS9ZGY_26xM`}h{(82bc`p~|$0MkWF`q_i|EWr$isS+7^y-J6kM98I}~JE(fgdZXj0 zjOtsAlkJl)LlHB13Sk<}7SYbkaaPJ9ez$XSGCS=-&FD`{+f@9voA~P&$~f8zoeOr7 z`TJcW##0r>mHKNlG*T6`mQqUX^b!t?fp>WKea+84h_w2+*tKN%^L1###)Q{wujLev zoR*?wH?Js>`2Bbmc-Xm6GRc-*jT@)5vOWsC1WA9#wr?^{4k3yW*eP`{C)jG8qti*4 zmcloIg$aGD4s__NeXEuzc{0Hy3LL%+zU6<9YMPL0uv`t|`Hc?}DDSl%surhfTer~O* znO2&9+(&i2clp3Md5)#QGU&E!{@`hryafyYI(esOcYtPEUeoo4pC0;Eufs^#=bTtR zar8sqv#YjsCm}XJpSZ8`jhgPStF-&|+?Z7!1#2#5T6^ZV|5=^XM2s7qHCUbHCf2s9 z{y7(^C$D(SVc@+rt-i#+Z%=}va66{4wQgOiG!L&6FgjlO^dY6_OH$vV({u|XG50iA z9H&KL9l~k-v|q@~cOt1Y3^Dpro9RtOV`hk6K-fuJV4cQAQV(N|FfzCIZA59v36;x% zHL{mu0m~uIOCCl(IYz3wBv&nG4#d&cl{qasZ{zhGl4rG5(bFM5geJ%QcR4(*N=GeM zg7&MlZiS7dX+I2(&DN)ewcxqSqWry?)<2^oZqPT9S!1(pXx1^SnHY_>>ihVKUo$+9 z2C?;wWYDfU0{lz%@J+n9ZYs3#zJnVZ`cp6&`fQ+^6l|+?c{P{d*6S`(!fj^TAK^r^ z@QEvh43Z#jn{lDzh>bsNeH?~pSGA+Ee&rubc8gcZLkf4MSlL9;nK^Wpjg7m{`S*8? z+YE}Gq(D;dKvOvV>u?SK_T=r)DJxfQk$Eu}^c~+*$g{k=_^ow|*J4eEQz{e?tbK)q zft(pcdiKxGu*YP2@N9yuuI<{ft&3Jfa$O8P~i)2~8MpLeFL>6-M} zZkzWDeizF;%0D9ye0=}r%_9)-Ma;YF?&~|i*Dyil1Sj%Hk`Gc9T()=6^S>hXQQ<#) zcqh={#jCp+aa^fiB{;h%IFz#HAU2M+nmbM}tNfh!P-JbU@{GC=B{anxR9)U*-QJ&v Pk$Xc3LBg_rfbqWowMV&q literal 0 HcmV?d00001 diff --git a/mods/xpanes/sounds/xpanes_steel_bar_door_open.ogg b/mods/xpanes/sounds/xpanes_steel_bar_door_open.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d159be9b3bcb8629809acaab113c5b962938e781 GIT binary patch literal 21837 zcmb@tbzGE9`!~EQ5{h&;QX=Kj4WiPaAYDp#Eg_B4-QB{1w8WAEBGO$;gMhF!l1uM% zg4cEb?)Q1$&-48Ao}XcMW{zWynIpb4v%|S6=H_akyP$ubPv2(1H^q~ZyWV$b?zq}J z8CgPZ8t%L-z4-uvo)z7@{j9&Ea?|ra&rQ!eKrIl&e~d4R`hPwX_x?&^2N<+09V|Fi zoXqKLER8g7<3+XVz-ux26`fyxBR^hQc;ic6lXUny#jkt}c_V-r6aFy7k`L^?|xmf%?e6_hdo;q*L!j~f^)a%6m^%Gl+^j&W<@ZV=#8Nmcd^ zCteu{Zx=)qNHWeZdlD1}judhKb;6C?K_E#mRfi*04`2;djxi@bO^DbeL}?N*#f?S& z&(Fu(cmWil&ooQ2^26kbd4FpbKR_&5F6ImDzas$*A-TWl(uUIx2ZV6aR&$Do(#P6D z-=?!P6s4r!deCN&d(PWKa$}4f?m_PLPgKRx}EMI+JeQfTa(V&P+0P2e5A1 z{`c^a1pM}XimWs96PzSE`05R>k{Yr82(il;iK!aD{urO>n7ZkNtLb#D zscxOOcI`ia`3sxHNtgdZ&J9E!3q`HS#-aTWa&n$TEel35$i*>g$1%GnnTMtorDkmu zeSYx2A;%)DFeR)oBn%M}^&~XOGBmBY;j>L|`BvlqHT?%UGER&@0+92{iSfUX^Bqj} z0zgw0yVBub9mPffgF3$={ci_=K;L7q6>is&H>w;Hs(cfw9O`ey{?CX3s1v+OW4wT2 z6G0$y5NN#vusU8`UXl)8i)OFT6F#H?*o^4sf+sZPd6d(iR3mwzC$PdnFf=4qPnRwB z@z3`-!s^PbU!Ei2a+n+#z_N!1dIP{sDg^wK%qZe{H{Ht!FeZ6G2pFB-fA~2jQ(yu& zCVgUz>Q6GD+CvwRASFkh5Thy!1%doP7{K4d+~FAFJCYe7(5Dzk2pE&t7*80p$Qe(y zn9M&$h=mD)Bmaa6iYG4*5V#SHCWCTVO!-9eaz*|zs!yQM*YZ}ZP%<@n4p%(Y2T*`u z$qFOVmFMUT17oH_RJjrP0jfFxAxVe@3iQCpO^8#qhUUWog7dK423>-xs%25axXu$M z7(if3gzH#?3*biBx1!4O$BnF5YvDSjw}a>341Pn9()fx(La1+BrgaH~jgCzbJl5R}N+inViGCxWAv%D9xz z?N)OVU{)}Iz|jeqUSZUOrJ(5xjQOW>usr5AM8eD>99^X~P2~!+@CFq2MlisSz z7Xf_Xm7S{cz`6$q+B(yKaRG-#RCem9$={d@Xw$I<4nP<!6ISWY_e)s)4LK#ZK* zkR<{vg>8fl4$6Swabw0pu%$5Qoq#~dH&Kb%- zIR0z{=H31-^@P`i2^50?>|Xgqz@a860Wd=+)eCvR%El2uOapC*1XV!g6bO(}0s94T z?g6YvW!w*#3las`0%+^HAs{l0|L!JOAkb3>VDtU@#su;yHV1&`T~HCQOMvBX?Me|y z25@6Sd1b+Cz@+7i{#FxI|5jOqTo2~wEAHUU^J5HL72 z;jPY7D8LMuO5?9xt;#^4KWG@BoV%17GJ>oW57}>ZyaW0UVEH*Zz46V-C;-TSd6M1C z^I0x75k(aNNESGiVFUVO0O-1nEqOWCo2a;nl$%hyasEG5YhW%nRWgxVsx>(1Z`Bz4 zX5!XhxXvxrx*zsW)mk1voOKx=A_0IlTn93EA4JD12=b$z`YQZGZba){E4Xtz z#5X!(0<{Gkd{^g zE0=WYD!>t|WKp<&WKm(kAJeBwtrhgsx6hQoK zNZeFSZt&~;mmt;sUxa|+8(`lOUQ4k;fgTvQPNxreE&nfpK>i6d;a^eE8(jXwLU0pU zs=|N69jT8`Q_|~8Ji6lmaJkZYsL6) ze+FQk`A5>fv-tnN`u{lu=u00q#`kqBN^>naVK%BqoVOSx0T9=oVjT6H1%R=Rb;_sL zQtSEoqw+SDeDcq4jHL>|1kSzwB_U2;zN~}9I3m?wRrM*bf&%Ly97jr?14g17Ub&`Y zjggxVte`gmR^IF%BX3={N@o032r={g2`g;MD1vWN#}lWh1`q%{(X$>93ISGlFq{H1 zz=xbu03@ebm-As{L+}cqQ&y3Dhzw6W;nQ)Q$c8l<=i%oF8fW=3U>6(|!=U&2(*V=5 z9^gYP_~Qy=E?SiUfo;7fhRpJ}0|Svf+;+qAyq?T@NC-(4fFpcLgAMAAbO1@}J&TJG z?)y3#LaFi{?<26jJOG6N8(IXg00sQ@iBZ^JsQ(w3fiDTng1`Y>tF63$v^a9PK>6S^ z?%nKR{PbA*WL0oH;q&P6*Wropf;AlcN&Rj&G~infUI<_jNEBWI+-Rrat-O#`B_e_T zQ$|gOLJ#(HWgTk{lkO)h;94T?0HT^1oef|)H!7)gjsVLQbtK6nfb%=(69{w=R&Y|LHIgNNAE?XM&yIqCDh=Qt<|vSjjuK+i+^@j^p7=)k!YPo5Us^Xs@D zXX!e6RimSYaCU z_;YIN%KD#E5Eec;Ju6t~x!fCIIR+j&&?&G8YWRg%n5_v4i;7E1y_A-fS5$tj`u0C} z34VTlx4e=-?&tTp!?p?!qlrjW{ff2>)naJn|87xS8a1ZM{2G0-d>~R)y2Lwq*`;` z!EU4JnSJRAPBfWR*wOo+J6xME&Nff(i6>&YZcLBd=egeSOP|DXtUPZKbu8|vJ~}ntkPJ{B3}`}yzd_iU648W z?@Cfoxs-*#TO3nXxFmx|i&#5gA+>IRpvt)6ss*YouVfcNuG|AQDohW~7ec$dV`n+lzB+vwE5Vsg%GS!Zgp3wwts$EM4>*51+%AltW)vkebdEnQDHZr&{PVr1 ze5WCr!RPstGGagHG8y{Rox?+*7)RFq)MY@Mbz0Ob``kj|OqQQku-m0sQ z8(M_EA3z|-LmiXHb`tP~IRPj?WdAYMjN%vtR(T|;QCw_KR8LGL$9`k#=w_h6l~2}L z;wA3Z)e>`%pHIp6px`JzymPDZwJx%S!bw-8@Ep8u^`wG)6G3lrnf{6rpXp9b+oejx zmG&B)+9S`_stL_@*4hLbX@jxrA?FHu6_S%#P1nc|9!u*b?}{pWT%IkqYu2i&KYi$W zM*atRG;85V>HOhzvvw_(#lQ5OUdP2zlkYlAU2h0M=m%!p>3Zf&@MP0W-0kwQty0N^Co;uIsY+X zlf8th-Q9=F4;zt1Q63nwpb}p3JnN4I@47~ZphQ{V&$e&&vSUMY-0eG&>ZG`ZkqLDo zDhT{TpUCmH;E3r?76LmsGx^|S+z3Xs&PP$Pr{eNO>e<43PJ0aVT$LZlTjoFLV+yCK z#lPnj)Y(H9%7slbs_oKPXF*e*Qh6su-Ps=b;>NAt_>CurSHyGgN~m?FOYgLy$k)5+ zu(9TRqIY?RmC~Gw%hpgg&Z=(@4sXm-2y}H0PMuv{v&#?H*g0Vrf8DA7RCLH90WFZ$ z=L^Ah_LbbmGJS&tf^>>ZUrgYlzYr~J1H)GVYkVi5qkf1);_R*N)nzcNVG5^c%d~HG zM$)x<-~tMn$~W+$YimF#+N7L&5}hij4xTw7KoSXO&TfA5n%5@m5#sK}*|(4p6xZ@; z7a_eKuM!@YCbNmVhnltL2S#G%YzJ8? zG_)?wp5DzwGp-p6Sqr1;-jj9BuB=LDFT|pmuCPePK8`m=T9+wmp_42=H2%y>F|MmW zU%HF_$Rg`X&J`KkV$kHIU?@(?BJPz|sheU3+s2+1YYo2VeD=?1`aQ!{kGe(6OG%u8#8srJ2WXxM#q>!3&=0dn~- z#*5IMdin+r74gG=Km<`2nVgSL*4?T*hq$A{$T=}UXfvW*ijB@^%hj2c${p@A7S(mM z0`8-g31h8>{3CS)$N)m50WpSaK~(;PPw}fLtK=JES zLlwSeS-UVSrLx<$SZ4g|z|ZzGD+c?)7u?75#r4yWlNMgm#SgAi4c2f}ODm=BHnE1m zqWKo5XOymgwSWIrm>9;R2o;91JqZdsi{l3nq(}9Ed9TGawAduU3qG=EA&F#Pz5XFX z5LbC6+csSC^R17^+|oomUaHzx4iMFYz!$SF0KLon*Uj~X%AEo_CWMmGC@Pun&b=U1hjyncm< z2M^l}RA_y+(@xny4PqpKy_(gx@>zv4%p(?6j-OYyL{5aW`C1yblyC2Q zc}^;2d3VF~^A4AvRzztgsTlT6?$CNvRlV8z)G=Oc5=J$))k6H!+`@j9e{2wgh-ce7 zo9k@3#o723)}uZ5!k$>yp|ZF{vP9myu|3a%q9M+aQO>mL!TTsz55Yv+haIS01LFb0 zbe2qn$pple<>I}Yp}zgh;YrVlrLctfwU^s`|4hTzuZ!jnYcAuGxO;MKyN+59pJ>s$ z>Z|7t@)|Y8>U}Ha2EVRUAu93_zWfs^jL`yOzZx_(TZsFjUK zJgZ3^lK1WMN!GSr^WJ<3J`byOL}B*H)#k3V!|_S#%SScDj5a@>pgtBunw3@cTEyCm zcNz$;>pEQ(l>^qy+_SU$XCdFN{r>#abLsamUr9Ns( z3FDIL$dEGZVwPCR?1ZliH+{h>138 zs|~@5^DzrG7NiPo5PvPXchV8^U_7hC)XtGmO$e7b%Lbt(m;R>q%45gZqYrlm(N*#> zI{L0P(?p-<(MR?XLt2%k%9B+Fw&X^SF432Kq9C;EZ@8xETp_+zI1ZP?yT0PHh6X(= zfx&gV2b3$3+MTV@#aFd zE90_WuCv1oO6sy-G+uEN5U#*CJS|$1yS9wXN-mncKaqhz?3S%GVo}l97C%Ut; z+y@M6yHv8zZA1Ht7{XWcAC?e0^Jz*q1ur$9q77_tEKQ`%(Uqi5GkJ6BsU_~szL`}X zQ9OBOHF*_(cGy$(CKW~9S+Ng0z`{Pc*hL#y}ulw*~hHM2tQ8ntjPSHAIU3fJB@ zoX$KJzL!+@1?Bbg;z8KwVZMh;i90_%&3OEJE++>qel$eOCG6{%+c}HHH#WGkl?`YM zunM3bP9^^KV#Oe^-Cg`i%w-VRrBr@>dVT`xKzj&}E1o?m;lS_x=IN?tjAT!UIepr-e>5KAN*;#ux*Kb zrMDG5+p0cbqU&`38>*ztkS!Abutu1dHAFm>t4Ejmz}Io;acR8(4$bHZ3nyZ zSES#52MtqmiT59V&Y0QjIZgJw$akCDk>|c@UVGe!mhaWl9`Pmy%_$O-==vwift=t~ z)T#0q)vu~nO{en4%}FIz7YX<6r$4fj&odz`SPdr{>)01$F#U$6h7?0y`kGiPw>7>z zG6Oql>p(`-RHnA02UuqaO`y7OdTt}Ut=yUV+fe_g4|1W5YiE^Ec+cUA(Tnzah)NC-#ClR?3;cD0hLV)A6kLb$pmKO=s#)DDl}M zX-cinY<+z~60@6dtH|#w&J;&eh1#x2I_z4a>aq@@})e zqE3MiC)Gu>SKr|A$;ua9qrSm|5-v5;BF}<(H(!hDYSW%)%v`Xf&oJ#dB~QX99u-dT z3TsZG?(d{S`0<#up7Iw`rfC$1f<`_x$qQ*&HhTv8o*`zA?9TVFPvjS4?8L;`4JJ{d z+aGgd8c%ubcYIrjn=0qcR1m=fwn~FjG{G5lv%6(V7E>0q#7CLE$Wey}d#tY8-BVps zj=!^d?RqW3z+w*f#hR^42;Ao`Jg&`^g1U6IF<##FUX6t;-^FuueJ)4BA-JyHg(e&gk zZHCRtvLT?~JFb_>iSv^<9)hih!R1lz6^P!^3=v-$!P&h?bBQ+0)FBONyKg8C2XuY= z9X<*_S1&R*ri+&KBsMRTJ^a$ag7Trbl`jcBAC>%3>;;Hu6mlfl+Vsq$(2S-i1&bWC zz2EB_S9Fo;FL8o8_4U1MttZ{nJ4(1N`zu-g5ggV zVv#BBIhyJg&)pnX%n2@*nlycr5DfTRWUg$EC{Q3!~aq9Z+NnT?0K zaHMLpcnWO_t;?`dnP2UA7A;y-2h(-8{VPM4ptlnCS^V{Cl(T{n_os!tKq% z%^M2esgU6mC{!T|<$yvNp->7al%}qpu7w#2g@-~B%rN(B?}^R&zkHrm$$!b8EhZts z;n-F<;ycH%!hg{*1f)8K|gz8U`d;ZW`)-xBY9_+zT@$H#EQb0ZEXn>O#FCakiSqRo7Hnh zWxz~6TbzPxmVW+B@VI(@e5CfGQhOmo6g2&{K-e>Nb*(X1Rj>9=eg9(LWW3QuDj-F)*<0(7iRRy)vsHU>)C10RH zR7%kws?fk+4Gl1b_Pt=sbJrCTPl84)@5b@WEbW=?pmBz0@ITFS9GaJOaSRY5DTsjo z@fjV@<6Dp1`lu=P`+=0dAk~<7l~G8pxRHi|dYR6Gb=;>9Nt>DY^=1|IGNt8)+N}@3 zt#j%In0$a?c4F(aYLe##);&{g zyD~2@=TYv7r(Hod{0;saKCkPCQ2x&Zzn#sDK1Rl=b1BZt&iP1)j=Vt&ORtf)Qz;o_ zEu8gO@}ZR34U4}UH(&ae_C(Zo+R9qbKV9X1G|HbRW4V`*7$@`2^mjH(de;M=0Y(!f zn)v?iVlg_&W#R*L<^cj<6~WyWuUP?~kioTd-6CIb?X^fp;V<5CuFc7|l(fX6g(#Pl zguI3s-q!BjvFP;dNbh1-Jr-ZSw2>E1?AN-xr{siU!TOt1COianRM~aTh={6D*vm{(Se$boCc@2krL7l_D))QY*KLeXE1)=9@xJh2AGD9X#E;Qe1RX zIPW=-@3_uy@9OzjR8x^=7ga7=h%xZPn!Selo6>NdhVrO0>vY!p*_j^a7zs;;+}B1j z;|_8^;Li9VsWeJ`sEM&>#4goFU!u};9JM86_$WvDFX)3QIn>~LF8Of%h~wdbmQoL? zdFI6XiLw00M<={4mLt5+U;6Jp>`$Z~(36I;tO@C0$_Q<@vv-x!ZpV{XqQj*Lal#$P zm|eTfo^g>Bc1`;z+9%c>yvLLcn{S4x9X20JMm#@N$o{Zbp#+Lq_s9h zr+d8p6+^C>1EWZ)9h)begG%cj*pIGKPLCYc9CsX%H6i%+Y9AInnJ4Ferrqsr?yL87 zkH^`&dXy(+2mWfbt%JSH5&)J&dKLVtPm_;^ z3$ow8kQBSTe9EHrQo@&dgUSo6Cq03U5jil~piRn^ZTRdlhwuRYH1tj6wm5aezLm6e z&09_s6%}*VLC!!bfB1e-3yV#%^Czu?^vSlzljXzb8ZrzRh@Rv&T1%vE{!_9o z^`jO-((urE4SP{diP^p=zt87{@3FagNek62%Cycq5F-UR1cO2mJS7@eYTGfI`J)|N zH4L6GLmbaP*Cr*w*(U8S-;Q?+<-=SvNb#kKhwe=lduoowEolf*Q(^jxc$V0Q1fChzyKEukln&ktw~HTy>T08M(M28H)XR)4Rx=yF2{hv9OE_*O zdRtVT52RYzb0l#TN2B*v9;QI5fD?&LK#Q+kU#%h`QliCOH5Hx zp-SpT1nTOe1OHqt46QER!cQVUEA97-gCdxD>KAq0!_QZnvDnj=(4SVWv(^fSnLeH( zCyN`1?)NsoN@S)kg_4pn=_Od8WTXZwat}KnoU47_+=ff*edGXNUwohr7ji&~^{*9` zJ(xyYlFF~;e*#wV>6W&T_0%m0UNa7-Pe8ji>kn)tF{fansF(Qq`2ZK>C##5|4qQBU z)}Ie#i_QptOg?Pe@Y;IpRWGV6@#*cL&=_r!Y1)kMyQDP}ZfD<}!SI@`gHR?BV~&;e z(j|j&ISTBpG1rQwBq1>y;0TfD-5l$~C~Bl!&=LGT#f+K92ckKiS8Z9kc>Tw{-zYY= z@{5pR01*^UOxR`Ms2ltrZfMzW8=ro*z5BQeJv`jYF zR&bU|8mYp>W_rTXAA!(BL{Hm-IQAq~klR@K`Wy5`3V$tb?C6LN!O|-NV~=YOJA`2a zpL}iSM1FFN=~Ud&AsK$Y%rTkU4p;&53oqg>Xsr&1VcRD%D=l}w?u>%wYV7rdY>IQ^ zpf4u8>3uXe@UJDerg@eC&Etw3q!Z!nNVLzR4?i;Z8#XVRr?_%O`bdoY-4HH}BV~lhzI0!& zrh`lH{NC4JV><0WX&%guU3`0^wMH-Y$#%d^W9f-5mZB@$y>$&%?!C8UhpcFA-%Nd4 zVPktlE|5!`qo-_HJ0DIzFOIC6Pq!3-L6a}!Crz?SkBc|PS<385JHF)r&)Jn=_INy_g9Nv@Ko?h>XR<D` zi(@{_SiA?kBk_wC^sZU*{rN|z{^Z5J$`hiv>kmitG{Ar9c(0-kmp!Mnc;*?`SP7E{ zdk5hMgK~~nm^`9f5(6dD7!?$jr4>fveX3RvK5S$$f^m*rb0Gpvz+R_AG=tqdavE9x zJFUg$X{dRM;Cr3w--Ic=7?HvL7IIA87>}WA^Tq}0pEewOD9BwEUu8Pk|t&;w^M?saiiN13XRz&GSMMquV zRvE(hi)51PRMFJ@C%@M&Ht(9QA-~y?->nT3ERhkgE`vT~&x_!(#@b&CN0*S7OUJRa zJ|$gRrTW?D7s3l`d}_p7vtw<)s~@hDYV2R&B36r4o3!S0o+8(W$d%qZCM@<$9+OmD za9GdeQu~TSsaoYG7p*Jp_zgeq(_ZpaphZP^zy4_Mf!YvvkpR ztrefPtDL<;UL2JqiKovS1Rh_1t?YOoOT4x9JZe!!II`(-s^0s`{g(rd8EFWbkyi z=<#>#jGm5$7&eJ0PhJ^geCa%Fz;*eO%p1S++O^|K%1%IvO8bfc7{$R;)6p}Q|)&DTON#ExL`$a{AzV@~&tt@AW_pP3M1o%vcNov7xH=XL6HlWi8mz^+6zh;k zeg)gvyl8~2_pcAtyQay50Woc8yU5QEP{?U=qK84=dM!KdC8dt0RQQW$}xL>KzPwm~21c6SM zy10h&JP*rw9h>uo3tfsH>LR@2UpR@`D1iLjir=+xFE1a)h1IMLkWUWdsPjvz=`(?c zB}vOqb8*S%8k?1yULDc}Gu9flLYAGJXLOzuH@JS~?N=H2-Um*5PPiP;RGH%6cJlc{ zb%K(RC`WRGU2@=q0wcn5X$tvI28a$H`(KHZD&dQaZ>Ih7@hGu^mXwsnl<(O6X2^b= zViK0V;@xub=mVi@v>Vn^>*RjC`YG~hYautOv#2dx)>|=EVcJ2`9&!JWH+e@05w0Cv8Sen2jO^aQhc9I48!C$Eg zzUT|<(f0g|MxR(~JBvOmdT^{toiM6uCg56=XmF<2e7VnI#>g@6%8__yX(&ppu77CD ze8?F8ETmAm=8E(jg6N`ENkO_^(~b#dcCU(rc)dE@TmJ5Z*NmdHHL+xF)Qy(Q>N`H$s_9eo7qTDKXpYP+haYTF%aQ9I>VBa;{Ua9Z@~ zwQSm%_ez`TPN!nx0`BVwRU~2$@vLvejqblA3DrH%Tb}Z@Fh%-cdK3gPRFm^KYl2!pS+#0sC=rj0?_`&l z#&V7A62RM~h11O%lOG-(Lu!MC&c~XpUc0&VxC-m(^as*FBtM_wbc;4I{u43h`rTh z`L|rR(~W0oX3xJ!Bxi+X2!)h3%`cwZ`{1Yk(+Gs*VTG_Je;hQ)JJ^ON`b{5_4@tWT8 zx=Bwh71s;?3cRA-dwpBdcOownW2XeWWaJR7hdf1^tJH(TB%}{`lpmH7^jGkIZ6xKX zvAyS0mht(~yt@tEi};nm>S(R77YF;`AqqddQa@86Fa1BCen)m(u5;)A#D4g-V>iHs zeWya_@|-*r8%)5og6DF5JO)XPWSFpDLt`CJq_d3`qWRA4^NN?MSU}+7sRmOY@3Mu6 zsC8U%RkDuT4uy^8b{X_Vyma>EzgY=kreN>!o%Nq*q{88RgQGfVoI*v2$hCqN1eNvDl;Wy>u8IR z`PwIC(fG++ye_!&V09A- zb^H&l7k_5C`Mr?@8SK^6V{cfq@1&exJm8M?AulZESK|Dp&f24UZYwrn`F4IHkk)2C_ubyM92nu5*w)PbhhRQD8TxcgPr&2WI}b(87*7Vkc!1 z)%xR>ObP|CxPCAP9x%14=PhZ*C3?2A6ko_>t-I^jn$Jm<4|MSuADG+Ds^ z*Vd#e&11|n*ZReYf#t}q`ZkvIqf~;uoJVJ+hUmnGt=l>so_Uz?95DFMs!XXCk0hbr z6=V=pJ%JKgcF}RQH=yKoBt-$gAaW*IoE6$n89PqCEIrg^{qsfph|k>(OZ#wtlCsj4 zI7fA%l~1Ies*}R>89CZcmDZlPcSoel`Gj*1WU-|&&AR4kcXS43+>@<)D|){>gGnkC zU0LijhYuXrc=c%d&G7r1k1U}PxJlW{+5Ab|u)37?T}etT%U~2jDqdl-sc5FtbPKW4lRq!*RTJ^exlQ$Y3U1E&xF*Tm<7i_xj;BhXfhYmJ#3(&2cE@Mx# z)>o9WL-t6!O;AW-_O)LzDi63Up%t0a4%456Jpr86Z1P9-r?M@0jdLUkNmPDg5?}z7 z{m3!3@JMTrw^yMpdBxm;hr4Z$7N-m3&V?h}soxd)#P{?!(N$DbE&C&rF|fAeAbjV_ zAD(qbG&nfiEVE4YAd!ZVK_NT|v6ndT&c$RSYf$dXXoS&-Y3r*Q>ur10BT;S7KqGQ` zzYFel{=-19F8T;V94mO;+A~Jq^z#ukD>0X+m1`>BY)GkH#^y!KOtK}zyQ)(tyhvtt zBK)q`$MCn>`KOQXtJD8@Pn@yJS;06KcUHYn;DXCe*INvt;b++Kb%PKxSO!l@DfQBV zKy8AZM-mmO#z{1fKQ~#sC0Ah;__T6%4wM$#BB6_nXT=<3z|SY%fpCd1Hl}gmh>!CZ z9HeSLdS)mBNO;G11o52f(9Npl`d_Go1iyQ^t!);w`}L8wnUuNStYg=JdhYJKm3X^O ztI;yJ?D9EpnvYB*d|D`HsN5bJ1LQ&wX8#QSqy*7x+a-BC6jrd1lQD88wRQaTFu`jE{p> zGobzxR+6Nu4BX;PMYi2BnjP*Jvj|a=zOs2QuRj$%`;7sL{D*wK&6>GJOF`WA<`m!$ zXZ#zbGGzxz>1P+;Q}WJOFIGs?REBTHB0Ud z5kKjSdP;gxv0tNMNdbLO>`7X1{?%JMTSevzZhE}>7!%XzNYdc_MSfD!OBxz97SsMm zF-<))9%m}m5N3WYfw&U6O1bt;{p^(@Ypdj| zD=Ms0UU>^UkDOQ1uFbJvDc~BTKew3fHWR zDg1a*kTyXM$${_wJ{p;4+h(%w%i=6>5hNBZPnlo>XKSdE&d=DTJXdA^o^48Y;r`M$ zX+Z#48Jc}r-xOaZdL^vhuO97VH4^v(4b$4K$*D}Y%S3D>cW7yUEoymjq82Fz(thwZ zjQ)$>j8~m?DT@bn(#6N*edp`bhNq3aZ>WSc;J7Cz^R9_!H z_T@G_21{}89$tT70qsxA7I|J7knQjFC*-lG zdyu)UW#0Mzp~z09`dEe7Yvr!5r`_32H1U1zGZUG=aWxi1@?PPw)RL84)b^zKO0)B< zgqYVr>piV_svjtyzwkMFjsIR^YC)=gc9F}QYF36pg!K@^Ab%d)K>~`@sD_!Bx$u3q zA@&kCITTTR@PN-nH=xG7+!{77UxfW~M7Q+kui#+fcX3{oY?omk;J^=O^o6mq0r_9J z4b1qJ3(JTaiA^=+AWHW^G<^P-h~ne~l0<11ueo+l;LPGjJCa?TYR4RtiJf=X_3hgD z0}vSjS4Cs6{&7`7*7gASR81GL-n(Mr2f$gsAValkEEhOCvBN}Ww zxr*)Is%0|!ewU|43yohXW9k5sq1=zQQ4?iU{?;bq?IWGeFNyfG-y`BasM<``D{??m z-c>=^Xmt@KYhab~*O2NbE4)j_;3$>~B}(cbsYc`c_Vi_Raatv|lKy9v*Om<}!P)F8 zy8Ukk)0;-+X9s=0orzAUhTkvT>TB3*!gH&j2R#}#L8%0(PI39Cy69E*je%)*0>^c+QuBoYOP2bTioO8yPN`D8Kgj zPPCLX4t0zOv8ZO%shPTT9I3N2cYDESg?g-=6P--1qS}Hg1Mr*fQRaHUSG9kNMZyu< zd%tx&6SD;T8{^lQC&@)ibULpyJVTMm@HvJI6&y?bo#csT-W@klf z7|y+|N|Shs2dc)xJ4LliV-bW57d8u5M&G|DJ8Q^wg~q~D6>PO@+q)o4uksSp(WDtO z2hC`7b$0D`aG$;GWUf!!Ne@Hj-i?#CmLIz9s_25 zqy44q5jn7|FsM1B<_86@+6D=e&?PxF|4OEZjs|-A7k{RxNE9N6+@DVKewvb{mfw=K zonBSQT0h*P8yZ_|^5JxH{yJRn78jLsQ8bk3vtf^N!#?Ltvaw(z!@lcFCC=v39)vq& zRkZLb<~#N}mw%*{*@(`N44spUuRw9RxkBG(7Yz#HHD0G;SXB2ww)B$hV(IRqH~K>f zW?zV4MR0H3`Sl(SFcUcy{|+2MkzL*wR6p_BagAzaOZSNJegQ+>PZy!4;hDj_uWi1H zrG;#rccU$<^&ze(Nhx$EqbL-QMHC2O~ z4DwHEw;}qMoaxm@lx@toJnG%Ss6R@P*LG!R`5ZDcBf-_3^+QE>gFW1%P8Q@<(^s~) zo6DMF+PE}YWGw~Rxf&;jlkh^f$P7o9k)!!|@x@JjgyotP(!pM>fvt7dAI9U8j2P|N zTSWKPr|f$rj;Hb;=j~2wPG@+HH;W7V=nT^G@4KWRHRCE&R=fzSUov$n$rc#J8{!sy znRKk8KM1gBIwY%x^sCaeKYQ=trL1xg!oWS+E*0_z4^|!j;+1*W?*8irK{zF8#t$3c zsuGY7Z}^;0|05`g>9=ydqeBVc_v?o{#sd4pwJO_G*3IZH-xMQHcsMqFz{?4YUF^Fv z97#*tRtn+^a@ZZ?v9U@rQ$pO89D4rZ$Mj;UW8Q8ol@_qTG~yCu?jO-_f?ZuzRp*w4 z6a8c_&>QT}zp4)es0-5~o-17(=C_*hkk^n!xLbRR=#F-J>?C|ZCg*ascba*8DsxZa zD`Pn<_2=jt$xjy%`jT&a*dsMm7Ce+=SaVrpNg?)b)>xaHpW7zLsXLvF|3y1FZ$k3W zj{h&_z3|L;B9q@6$FVOgJo;T0_%7aUf;*a;f!`WDu`Bm{lil(GCT^uJQ{L|_k`I0; z^&K>9XqWc0bb$GKko+pNSEfQsG@-&!F#Hd*SErjgalGQ`tYG%DcPqHeflx^ zpu@Qmwy>33I;xuVP*rF;Z}R$b-(A5Y;~}zgywREa1TM1O@G?_CAo;|pB`&n(wespq zDhXe^C`52aSG=XGub`dvM(x_{b{z}6lWRY;4@KiOPd&V^el{;@MeNgym7np>vbCqE z3sOV}Nj84GS#&|@TzhCnNUxs_la)V;T)MGVJQp4{ME_K_Hxcq z|K(A=!F9XmjOMfh4fB_WaW?uX*V`u^9!+_9W@MWojwQ?+9Ig@dQN&E9xw3>{yYbem zXOeCA|Ghx4`JW2};Ae^;Hlofh-~s`7{X`puGC-m9P^j0aFQ{@TzGR@bV9N>e&JNhX;t50Q%OG8ZnFTti*wr4rc- zQ$lKQBWIt!u#%t&h^rc_UOM=|ckr<3YuIkn@6O?_;k|7Khlrx3oNWe0PgvGQz; z_=Ai0(3i@0{`D&cFWxf0NIuqU3C~Aew5bl)3v4zE1~?*LNqbqg3GF@(7IgLOmpWarN!Pn2@`;gA6-U7EU#jv>8Kx=5uog*t8Ag{IL5?}+!G9}8z|tjruKwlEn? z`lfrG8%g$=1Q2i=1E=+=^US@TZptB*u{|vv((6Mptx6`HB{Ch(v|7Bv-={>?mc9@2 zv``d}8#$DDinb0M><;qX7F+k=hMv*&E%M6PFeUmtbov%sjv`! zBO``qt7JrDt}0^L#O_uRs=KE8gi1KhKl56ADvd+0? z?Piwpmdbf=fHY6ebDqssz4`AqboiTnC;LBKJ`nan9|M)|w|&c9o%pGkb_s)|DGOU8<|ZfPG)YCGE^4}YlJxl`mUy!%U zT`Hw+$NRk56uo7IsuOXn@1c(0{M@7VDp{`}>F^QvzUW~^$5ziLMc@xIvtJ2|WSsaQ z5u5aqPWIOt6IQL|%a_CcX#~2~FVT36%%~W%`@D4 zM>Qy|>Fbjp3-R&nWbk%$Tl%7lv7aAu@_38{XN&VN0w$+O`(G9TDvd zN49w$5B;?#vnhol?%k=6_u^>d2N@t~&zdSjuTgUTJ_q=S0i3b~d`l*?E5|~Xt(7{FCSwChrEjf;6rM2Nzn(ol!Aw9tK zn1?a8Mt7@_%Xun(H>PT|#(_R~b8Y1)N4SO|@y_Put}LsQi)*8ww-);K4x0m)Ejr@E zn48wcj)_UwxK%IaK%O5c+-{Q;(MMF;#iEnpk(>oRJ?vvbfwnM+0|vffRsif>Q>jCQ z7w$&3O=+4R7Z>PilsaU^KZ|G4`t~kQeleBT4I1G?iyglms|SZoz3OLK@D~~O`t0xi z;%dWgZZsZv>v2hRJo~zru7>-+H;)-H9qK{e(#rcQY}{QtZ(?5VaN}-(j(v72o*eJ| ze3%C^S3gYG^4&en@8&130-_Mb0e&f_3hxK~GaIIX>2~hXrFOqxW^h+7{kz1uIqO4d!FUb}aP%M4oBtEG9=GOsb;2mup@4H-X}JCYkJA(L4}^ zrRgOufUCTJ5V!ZN{^W4p3g=|C8pLJB0nZ3bL$@Y~&RU6K4W%|mpviR%0>-43HwaPX&=Oyn{CGV-)*Uu z5D<+)IAr-0ri0M6K9?WA>R39H{p@JgI3G)@Fqn;S5b9&|+)?sL1&u4tndj?EeeTD? zpS#zjQPtHNedMd}QbhK>k!}hcBAYKfcPJ!IZQtRE=GR~11SE<|_S#@kz z(v>zY?Ct9ay{;$gdEU0vUdloHA>DGqjZyL@uy#xlYvXCwVd^sn(41{b*Y&waenjt-R`cMUXVILsF~B zrdFxhe{|fo7OXn8|1>HN5BR#33SX`>xZ4*#fU|$mm0d<9?Pd|*eee8wKUt|?+8zZ` z{DLBt?b*w_n>a8(&hw0`p_SjaSyyYuVU8Uw?B&L(-=4q6UFpYtp%D9ZXY@W>wfruZ z0{`Q+l4SyZeASm6x<2DCP)@Is6VgTfIj@t`j?OQi&(dCj7gJkt@x63?E?);LmBwzp zjQj=K#|jj&^wu8EOFn;Zn}-ZMo-Gl?F7@$y?lIQi+?TgDDkEOc3J&~;&*Nj!ABlY4 zdBs|K60-emHJoy|kzOIZYoqNPU6+Sr4@>Rc?o~X0)n_5UQ6l%+ThE+W+*ppx;|HtQ zU>=a2-+YlKdaEgS@Zxq$v5WWhho#OMuG7Y0L~N_W^(A_+C@YDR2u+I;Tvb1C6#*`# zp^{j!GwE`@(~H0nUl<-DmjwXcGrPMc0EK+b*kg-r#(eM?)|`oPe$MinJBP^($HLQ- zr_ZJKJG*WhTNUES&aPeI%9E2hBed=A@y8E#({wd$kDu|UQYX(nw_k?4#&&j%#i345 z_CNRG|NHQA|Gquu^d$XZzz;Qk*uQ`Oa=J1;jO5A5$@GUGoL~BfKUjt%BjKGrJ4{bf z_ovI}a{iThCENMuAAF93Ja3=ju3c90Nidm~VcZ!RiKnt_T}v&~)N)04?Vrj>@54Pvt~Fj0s|Dj!+dYQknb z%JADX%(FVnxBWOcHqP-Cr*`;ys!jeoWl2Cq>@~RBFtuVVhu!%yAF%1ySYL)dypGAr zTTFVq@_$B~rP1kMvC{g={ZPDc%4Xer0|Br&Avj*?_s2Ga~`lv2Q z1n#>d4_Pf!a?_J=tw-&)^6_NMXx`qg?4!Dn)pPTxk7~1g1)>q}vy%Jh^wuZcY;gM~ ze>rApX`0_1+`mVVjDdyMWYSb?H);y3BDDKEqtf4XCmD7};j{8nVf zmWBozv#(QM_Lp;`^|3(k4Skqwz>y+%Nwj25zVYB@kFv(oB`$@G1~Y2VCh))C)9!^rH{O_ z?BMR@WO-2Kl{qLLHR@B(o;6A9U@|7!PP#Av1bn)UY5la*wF~JnrG@hK(RkuGt>^@z zCtJcCI6wH0ZOb@k|2f*6%2J4}rQojfqO0@bQ|*~PDYl>Fd_g;zxPC^DNx9PXc{*>^ z2mJcj*E)5r-co9*u9C57D`C>^TWKX4ozu^wG5kltLi>AL?qei9=M(ilxfPCH2NdW% zEY~w(8Xm8dc>ydW+X4d0lz7A5X$~+cdS2iL^%eJuvKn#OthdJ;f^zA+y(;&Uolc;g4J9FZupcF3=jK%U5& zG{J&n`}y+?L1h7#JP_>**M+l;0JNvCrQe!9dDSh#M)vrf_!hDyz4Oz%hso=5?)xuB z(l$tV$6pb5wPD!CVqX9NfI;#JwroKCi`?q$(u7&zGbwr* z4i0-7bflhkM3;lMmoZBa2w>3Xj=g$hbt$#A_bzAWG5%8EP5I@xH%3g9`Y5bw(&LC7 z8@>j#hwb2dG>%TSf2Yu@3mfp-8YioR*PHRV6Nhf7M`*sk)mZR@45t0KL3!NP&+ZF# zZ`P=l{}8{NjzJ2nq|UY+)ZLe;V!G1ft|wRzYOuH4Ir;-BY_weL5ThGmy-JlrYg6{~ z%3m%K0KPMO?2Q|K0}OzZB;TQjoVR294*k5lDMMm^Y|(4+LHbzbXku+hZGc{h`|+jIB7$#kP#iZZX|bW_RbEfh}A<@Tzy9~qqo;B%mT29`Rj2cxxAJ{s>e zaBo7^Dwf|A%L47c$2i6D)4o!^)UAJ?enzd;hg_%X9tN(5H{=N-oJr%ad8>40txeqJ z>}+M?^jIaiG2Z7S`x*xR@l%<8>+UHqNZWS3xy>Z>skiOL?4I7lwjnqgXpwnuwx|HC z#Wd!G;JPL~U7|#Qbz@0)^C*XmTABS02rEnSeYUvJm@6o3OYEFHtAScQtpi~BI^Og> zpu{NVg${i!QFvnVLks|hUanbdnX$kMM1SJcKXcelh;q_17$6*NkG2PL+!DxC$*vs3K=*CQMaGyr%4GDs&9x!0_GS2EBF+2D* z=xh6jwnNoW-W2Nj9Ar~pEk7}&$avebi!%-J4PBi(??o2I(J)jW{K4sA5#y4Zd<~xf;5gB#`1OLQth@pW?P58_ zWZ~xHzy0CfyVL2^0c5v7{_(v&;26%ajdy3Kw|8f!)4TpU9O^*h-Mc<-_d|2ejZ;6j zkm{gYYb}?2n8kei?R$;ho%#-Nw?Ewb;~(EU=jS_&hI_@^os7= rZ*|KpW6~Rc_Z|1jV&KCpHnz4Pr6~eXWz*T|)OQXJKm72x947(*dycN+ literal 0 HcmV?d00001 diff --git a/mods/xpanes/textures/xpanes_door_steel_bar.png b/mods/xpanes/textures/xpanes_door_steel_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..435af148df7b0401acfa6cfa4cb23e28f80258cd GIT binary patch literal 605 zcmV-j0;2tiP)Ou#^hu00015P)t-s0000cCMGd4F!>k00DGTPE!Ct=GbNc0004EOGiWqhTfHW z0004eNklP10QtgBc!CG1KwocWzWO2!x@rkCp!wObf#kzR|h*8>Z z-YD}F`g!xhK}v5gZ(2~LZ1)PzFbi) z^mS!_%poMEFE4oeFGzWQfKP}kNSlU+zP^4^Qc`kqa#~tidU|?hW@c7aR(5uFZfa!?aF=@EE#o=nh5-A6*hDkiS31@k2POvSS w&3q+i)=qYvO9CtSCRr7K&q=#Eb8|YwlrJVabEZ`40nKOdboFyt=akR{0Ivv9M*si- literal 0 HcmV?d00001 diff --git a/mods/xpanes/textures/xpanes_trapdoor_steel_bar_side.png b/mods/xpanes/textures/xpanes_trapdoor_steel_bar_side.png new file mode 100644 index 0000000000000000000000000000000000000000..a71231e84cf289acdb40c000f88ef44ea73d8274 GIT binary patch literal 98 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!93?!50ihlx9oB=)|u0VSF^y%~G&tEW|>ot%g t;_2cT!f`!0f|Z45p~C?O&W71c46cXSe?Ba}J_{(%;OXk;vd$@?2>=ua8NvVn literal 0 HcmV?d00001