From ee7e8f6e75b22203f81513c88a517e2e824e80e1 Mon Sep 17 00:00:00 2001 From: cale Date: Thu, 3 Mar 2016 18:27:39 +0100 Subject: [PATCH] VILLAGES!!!! --- mods/village/LICENSE.txt | 5 ++ mods/village/init.lua | 77 ++++++++++++++++++++++++ mods/village/schematics/farm.mts | Bin 0 -> 170 bytes mods/village/schematics/garden.mts | Bin 0 -> 206 bytes mods/village/schematics/house_1.mts | Bin 0 -> 286 bytes mods/village/schematics/house_2.mts | Bin 0 -> 238 bytes mods/village/schematics/road.mts | Bin 0 -> 52 bytes mods/village/textures/village_spawn.png | Bin 0 -> 273 bytes 8 files changed, 82 insertions(+) create mode 100644 mods/village/schematics/farm.mts create mode 100644 mods/village/schematics/garden.mts create mode 100644 mods/village/schematics/house_1.mts create mode 100644 mods/village/schematics/house_2.mts create mode 100644 mods/village/schematics/road.mts create mode 100644 mods/village/textures/village_spawn.png diff --git a/mods/village/LICENSE.txt b/mods/village/LICENSE.txt index dc44a2b..6f6a256 100644 --- a/mods/village/LICENSE.txt +++ b/mods/village/LICENSE.txt @@ -9,3 +9,8 @@ the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. http://www.gnu.org/licenses/lgpl-2.1.html + +License for Media +----------------- + +CC-BY-SA 3.0 UNPORTED. Created by cd2 (cdqwertz) diff --git a/mods/village/init.lua b/mods/village/init.lua index 048a5a1..02628ee 100644 --- a/mods/village/init.lua +++ b/mods/village/init.lua @@ -1,4 +1,81 @@ village = {} +village.houses = {} + +function village.facedir_to_text_1(f) + local all = {[0]="0",[3]="90",[2]="180",[1]="270",[4]="360"} + local o = all[f] + return o +end + +function village.facedir_to_text_2(f) + local all = {[2]="0",[1]="90",[0]="180",[3]="270",[4]="360"} + local o = all[f] + return o +end + +--main func function village.gen(pos) + village.road(pos) + village.road(pos) + village.road(pos) + village.road(pos) end + +function village.road(pos) + local path_house_1 = minetest.get_modpath("village") .. "/schematics/house_1.mts" + local path_house_2 = minetest.get_modpath("village") .. "/schematics/house_2.mts" + local path_road = minetest.get_modpath("village") .. "/schematics/road.mts" + + local facedir = math.random(0,2) + local dir = minetest.facedir_to_dir(facedir) + + pos = vector.add(pos, vector.multiply(dir, 6)) + + for x=0,3,1 do + minetest.place_schematic({x = pos.x+(dir.x*6*x), y = pos.y - 1, z = pos.z+(dir.z*6*x)}, path_road, 0, nil, true) + if dir.x < 0 then + minetest.place_schematic({x = pos.x+(dir.x*6*x), y = pos.y - 1, z = pos.z+(dir.z*6*x)+6}, village.houses[ math.random( #village.houses ) ] , village.facedir_to_text_2(facedir), 0, nil, true) + minetest.place_schematic({x = pos.x+(dir.x*6*x), y = pos.y - 1, z = pos.z+(dir.z*6*x)-6}, village.houses[ math.random( #village.houses ) ], village.facedir_to_text_1(facedir), 0, nil, true) + elseif dir.x > 0 then + minetest.place_schematic({x = pos.x+(dir.x*6*x), y = pos.y - 1, z = pos.z+(dir.z*6*x)+6}, village.houses[ math.random( #village.houses ) ], village.facedir_to_text_1(facedir), 0, nil, true) + minetest.place_schematic({x = pos.x+(dir.x*6*x), y = pos.y - 1, z = pos.z+(dir.z*6*x)-6}, village.houses[ math.random( #village.houses ) ], village.facedir_to_text_2(facedir), 0, nil, true) + elseif dir.z > 0 then + minetest.place_schematic({x = pos.x+(dir.x*6*x)+6, y = pos.y - 1, z = pos.z+(dir.z*6*x)}, village.houses[ math.random( #village.houses ) ], village.facedir_to_text_1(facedir), 0, nil, true) + minetest.place_schematic({x = pos.x+(dir.x*6*x)-6, y = pos.y - 1, z = pos.z+(dir.z*6*x)}, village.houses[ math.random( #village.houses ) ], village.facedir_to_text_2(facedir), 0, nil, true) + else + minetest.place_schematic({x = pos.x+(dir.x*6*x)+6, y = pos.y - 1, z = pos.z+(dir.z*6*x)}, village.houses[ math.random( #village.houses ) ], village.facedir_to_text_2(facedir), 0, nil, true) + minetest.place_schematic({x = pos.x+(dir.x*6*x)-6, y = pos.y - 1, z = pos.z+(dir.z*6*x)}, village.houses[ math.random( #village.houses ) ], village.facedir_to_text_1(facedir), 0, nil, true) + end + end + minetest.place_schematic({x = pos.x+(dir.x*6*4), y = pos.y - 1, z = pos.z+(dir.z*6*4)}, path_road, 0, nil, true) + + if math.random(0,5) ~= 1 then + village.road(vector.add(pos, vector.multiply(dir, 6*4))) + end +end + +function village.register_house(f) + table.insert(village.houses, minetest.get_modpath("village") .. "/schematics/"..f) +end + +village.register_house("house_1.mts") +village.register_house("house_2.mts") +village.register_house("garden.mts") +village.register_house("farm.mts") + +minetest.register_node("village:spawn", { + description = "Village", + tiles = {"village_spawn.png"}, + groups = {crumbly = 3}, +}) + +minetest.register_abm({ + nodenames = {"village:spawn"}, + interval = 3.0, + chance = 1, + action = function(pos, node, active_object_count, active_object_count_wider) + minetest.set_node(pos, {name = "air"}) + village.gen(pos) + end, +}) diff --git a/mods/village/schematics/farm.mts b/mods/village/schematics/farm.mts new file mode 100644 index 0000000000000000000000000000000000000000..510ebc9cadb8762065c7d91ac97d32255facd278 GIT binary patch literal 170 zcmeYb3HD`RW?*CBWMKOb13)fsN@`kSX-07sngLXO-rq=cF<)CuSBQw4`Jfl`!z9B^Kpo=A~PeXQU>U#G6*kNltKJ>f!MT uIC0{D4|50442g&Z6F4;vbG0rm;|<%LF~{s*KT{XuVT}b63=C6U+*|-`<3C{l literal 0 HcmV?d00001 diff --git a/mods/village/schematics/garden.mts b/mods/village/schematics/garden.mts new file mode 100644 index 0000000000000000000000000000000000000000..85009843c27d7c5beb33d1fbc1fc440c1e5b0d8e GIT binary patch literal 206 zcmeYb3HD`RW?*CBWMKOb13)fsN@`kSX-Y{Vgi}(}5=(PRtg=e;(sNSdONvrc8DwCB<@xz3sd@1Q zIf;4M#qkg&4070IjbQS;F!}VH#NuKGq2iLn%%Wneq@v8^?07JTff*>mAPQ55VhaNg zOgJYox1eIq+sTf64GKIg+t;4@AHT*aD@q{WwjuG^r5veFPwyQlWa_`MIe=eu; zFyQ6B$DTLO20d*F*>*Yme$T6yyCYBKU5;Kd6t&)l|le6Q&90q2f2m=pHT~1lgHhEu}#q)hWq%@y%}8Nw3-tCcJlO cHI}`6^?#s)_yGeSMqvpaxmboN)3cWW0Cd1v0RR91 literal 0 HcmV?d00001 diff --git a/mods/village/schematics/road.mts b/mods/village/schematics/road.mts new file mode 100644 index 0000000000000000000000000000000000000000..5ef11e537a3d55e5a593661440d0e76b6a2da122 GIT binary patch literal 52 zcmeYb3HD`RW?*ArWMKObB!r4f5;Kd6t&;PTl5$exi*pi_D&{07Ea3a$&!TWlhGDV4 G@?8LH^AKPF literal 0 HcmV?d00001 diff --git a/mods/village/textures/village_spawn.png b/mods/village/textures/village_spawn.png new file mode 100644 index 0000000000000000000000000000000000000000..71002b732fd52367bad923bbf863a5659b650312 GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1SJ1Ryj={WI14-?iy0WWg+Z8+Vb&Z8pdfpR zr>`sf17>D^KGrOQUkX4W$r9Iy66gHf+|;}h2Ir#G#FEq$h4Rdj3`JqR&@XX literal 0 HcmV?d00001