many worldgen mods and gonna try technic now
@@ -0,0 +1,13 @@
|
||||
name: luacheck
|
||||
on: [push, pull_request]
|
||||
jobs:
|
||||
luacheck:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: apt
|
||||
run: sudo apt-get install -y luarocks
|
||||
- name: luacheck install
|
||||
run: luarocks install --local luacheck
|
||||
- name: luacheck run
|
||||
run: $HOME/.luarocks/bin/luacheck ./
|
||||
@@ -0,0 +1,21 @@
|
||||
unused_args = false
|
||||
allow_defined_top = true
|
||||
max_line_length = 185
|
||||
|
||||
exclude_files = {".luacheckrc"}
|
||||
|
||||
globals = {
|
||||
"biome_lib",
|
||||
"bushes_classic",
|
||||
}
|
||||
|
||||
read_globals = {
|
||||
table = {fields = {"copy"}},
|
||||
|
||||
"minetest", "ItemStack",
|
||||
"vector",
|
||||
|
||||
"default",
|
||||
"moretrees",
|
||||
"dump",
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
-- 3D Mushroom mod by VanessaE
|
||||
|
||||
minetest.override_item("flowers:mushroom_fertile_brown", {
|
||||
drawtype = "mesh",
|
||||
mesh = "3dmushrooms.obj",
|
||||
tiles = {"3dmushrooms_brown.png"},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
|
||||
},
|
||||
inventory_image = "3dmushrooms_brown_inv.png",
|
||||
wield_image = "3dmushrooms_brown_inv.png"
|
||||
})
|
||||
|
||||
minetest.override_item("flowers:mushroom_brown", {
|
||||
drawtype = "mesh",
|
||||
mesh = "3dmushrooms.obj",
|
||||
tiles = {"3dmushrooms_brown.png"},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
|
||||
},
|
||||
inventory_image = "3dmushrooms_brown_inv.png",
|
||||
wield_image = "3dmushrooms_brown_inv.png"
|
||||
})
|
||||
|
||||
minetest.override_item("flowers:mushroom_fertile_red", {
|
||||
drawtype = "mesh",
|
||||
mesh = "3dmushrooms.obj",
|
||||
tiles = {"3dmushrooms_red.png"},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
|
||||
},
|
||||
inventory_image = "3dmushrooms_red_inv.png",
|
||||
wield_image = "3dmushrooms_red_inv.png"
|
||||
})
|
||||
|
||||
minetest.override_item("flowers:mushroom_red", {
|
||||
drawtype = "mesh",
|
||||
mesh = "3dmushrooms.obj",
|
||||
tiles = {"3dmushrooms_red.png"},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.3}
|
||||
},
|
||||
inventory_image = "3dmushrooms_red_inv.png",
|
||||
wield_image = "3dmushrooms_red_inv.png"
|
||||
})
|
||||
|
||||
-- aliases to the default mushrooms
|
||||
|
||||
minetest.register_alias("mushroom:brown", "flowers:mushroom_brown")
|
||||
minetest.register_alias("mushroom:brown_natural", "flowers:mushroom_fertile_brown")
|
||||
minetest.register_alias("mushroom:spore_brown", "flowers:mushroom_spores_brown")
|
||||
minetest.register_alias("mushroom:spore2", "flowers:mushroom_spores_brown")
|
||||
minetest.register_alias("mushroom:brown_essence", "flowers:mushroom_brown")
|
||||
|
||||
minetest.register_alias("mushroom:red", "flowers:mushroom_red")
|
||||
minetest.register_alias("mushroom:red_natural", "flowers:mushroom_fertile_red")
|
||||
minetest.register_alias("mushroom:spore_red", "flowers:mushroom_spores_red")
|
||||
minetest.register_alias("mushroom:spore1", "flowers:mushroom_spores_red")
|
||||
minetest.register_alias("mushroom:poison", "flowers:mushroom_red")
|
||||
|
||||
minetest.register_alias("mushroom:identifier", "default:mese_crystal_fragment")
|
||||
@@ -0,0 +1,2 @@
|
||||
name = 3dmushrooms
|
||||
depends = flowers
|
||||
@@ -0,0 +1,329 @@
|
||||
# Blender v2.73 (sub 0) OBJ File: 'plantlife_mushroom.blend'
|
||||
# www.blender.org
|
||||
o Cylinder
|
||||
v 0.261489 -0.177877 -0.000000
|
||||
v 0.165972 -0.203714 -0.000000
|
||||
v 0.210761 -0.224729 -0.000000
|
||||
v 0.258520 -0.211811 -0.000000
|
||||
v 0.185335 -0.171215 -0.184553
|
||||
v 0.116925 -0.199423 -0.118862
|
||||
v 0.148161 -0.219252 -0.151707
|
||||
v 0.182366 -0.205148 -0.184553
|
||||
v 0.001484 -0.155130 -0.260997
|
||||
v -0.001484 -0.189063 -0.168096
|
||||
v -0.002969 -0.206030 -0.214547
|
||||
v -0.001484 -0.189063 -0.260997
|
||||
v -0.182366 -0.139045 -0.184553
|
||||
v -0.119894 -0.178704 -0.118862
|
||||
v -0.154099 -0.192808 -0.151707
|
||||
v -0.185335 -0.172979 -0.184553
|
||||
v -0.258520 -0.132382 -0.000000
|
||||
v -0.168941 -0.174413 -0.000000
|
||||
v -0.216699 -0.187331 -0.000000
|
||||
v -0.261489 -0.166316 -0.000000
|
||||
v -0.182366 -0.139045 0.184553
|
||||
v -0.119894 -0.178704 0.118862
|
||||
v -0.154099 -0.192808 0.151707
|
||||
v -0.185335 -0.172979 0.184553
|
||||
v 0.001484 -0.155130 0.260997
|
||||
v -0.001484 -0.189063 0.168096
|
||||
v -0.002969 -0.206030 0.214547
|
||||
v -0.001484 -0.189063 0.260997
|
||||
v 0.185335 -0.171215 0.184553
|
||||
v 0.116925 -0.199423 0.118862
|
||||
v 0.148161 -0.219252 0.151708
|
||||
v 0.182366 -0.205148 0.184553
|
||||
v 0.059333 -0.075538 0.000000
|
||||
v 0.044915 -0.074277 -0.034942
|
||||
v 0.010106 -0.071232 -0.049416
|
||||
v -0.024704 -0.068186 -0.034942
|
||||
v -0.039122 -0.066925 0.000000
|
||||
v -0.024704 -0.068186 0.034942
|
||||
v 0.010106 -0.071232 0.049416
|
||||
v 0.044915 -0.074277 0.034942
|
||||
v 0.004580 -0.119744 -0.206430
|
||||
v 0.149993 -0.132466 -0.145968
|
||||
v 0.004580 -0.119744 0.206430
|
||||
v -0.140833 -0.107022 0.145968
|
||||
v 0.210225 -0.137736 -0.000000
|
||||
v 0.149993 -0.132466 0.145968
|
||||
v -0.201064 -0.101752 -0.000000
|
||||
v -0.140833 -0.107022 -0.145968
|
||||
v 0.033054 -0.500000 -0.079800
|
||||
v 0.025067 -0.177627 -0.060518
|
||||
v 0.079800 -0.500000 -0.033054
|
||||
v 0.060518 -0.177627 -0.025067
|
||||
v 0.079800 -0.500000 0.033054
|
||||
v 0.060518 -0.177627 0.025067
|
||||
v 0.033054 -0.500000 0.079800
|
||||
v 0.025067 -0.177627 0.060518
|
||||
v -0.033054 -0.500000 0.079800
|
||||
v -0.025067 -0.177627 0.060518
|
||||
v -0.079800 -0.500000 0.033054
|
||||
v -0.060518 -0.177627 0.025067
|
||||
v -0.079800 -0.500000 -0.033054
|
||||
v -0.060518 -0.177627 -0.025067
|
||||
v -0.033054 -0.500000 -0.079800
|
||||
v -0.025067 -0.177627 -0.060518
|
||||
v 0.014323 -0.253674 -0.065067
|
||||
v 0.012105 -0.382623 -0.072780
|
||||
v 0.052438 -0.253674 -0.026952
|
||||
v 0.054739 -0.382623 -0.030146
|
||||
v 0.052438 -0.253674 0.026952
|
||||
v 0.054739 -0.382623 0.030146
|
||||
v 0.014323 -0.253674 0.065067
|
||||
v 0.012105 -0.382623 0.072780
|
||||
v -0.039580 -0.253674 0.065067
|
||||
v -0.048187 -0.382623 0.072780
|
||||
v -0.077695 -0.253674 0.026952
|
||||
v -0.090820 -0.382623 0.030146
|
||||
v -0.077695 -0.253674 -0.026952
|
||||
v -0.090820 -0.382623 -0.030146
|
||||
v -0.039580 -0.253674 -0.065067
|
||||
v -0.048187 -0.382623 -0.072780
|
||||
vt 0.261010 0.917920
|
||||
vt 0.235559 0.983636
|
||||
vt 0.016350 0.764426
|
||||
vt 0.080814 0.737724
|
||||
vt 0.545568 0.235207
|
||||
vt 0.764778 0.454417
|
||||
vt 0.690996 0.484978
|
||||
vt 0.517617 0.311599
|
||||
vt 0.235559 0.235207
|
||||
vt 0.515845 0.302693
|
||||
vt 0.261010 0.302693
|
||||
vt 0.578125 0.234375
|
||||
vt 0.765625 0.234375
|
||||
vt 0.765625 0.312500
|
||||
vt 0.578125 0.312500
|
||||
vt 0.015625 0.234375
|
||||
vt 0.203125 0.234375
|
||||
vt 0.203125 0.312500
|
||||
vt 0.015625 0.312500
|
||||
vt 0.390625 0.312500
|
||||
vt 0.578125 0.390625
|
||||
vt 0.390625 0.390625
|
||||
vt 0.016350 0.454417
|
||||
vt 0.080814 0.482889
|
||||
vt 0.545569 0.983636
|
||||
vt 0.515845 0.917920
|
||||
vt 0.099043 0.730173
|
||||
vt 0.272422 0.903553
|
||||
vt 0.290733 0.368408
|
||||
vt 0.490395 0.368408
|
||||
vt 0.149550 0.709253
|
||||
vt 0.149550 0.509591
|
||||
vt 0.764778 0.764426
|
||||
vt 0.696041 0.737725
|
||||
vt 0.696041 0.482889
|
||||
vt 0.099043 0.484978
|
||||
vt 0.203125 0.390625
|
||||
vt 0.765625 0.390625
|
||||
vt 0.272422 0.311599
|
||||
vt 0.631577 0.509591
|
||||
vt 0.390625 0.234375
|
||||
vt 0.517617 0.903553
|
||||
vt 0.690996 0.730173
|
||||
vt 0.432320 0.675133
|
||||
vt 0.473823 0.633629
|
||||
vt 0.015625 0.390625
|
||||
vt 0.490395 0.850435
|
||||
vt 0.290733 0.850435
|
||||
vt 0.631577 0.709253
|
||||
vt 0.373624 0.533431
|
||||
vt 0.332121 0.574934
|
||||
vt 0.473823 0.574934
|
||||
vt 0.432320 0.533431
|
||||
vt 0.332121 0.633630
|
||||
vt 0.373624 0.675133
|
||||
vt 0.935126 0.767633
|
||||
vt 0.998032 0.830539
|
||||
vt 0.998032 0.919502
|
||||
vt 0.935126 0.982408
|
||||
vt 0.846164 0.982408
|
||||
vt 0.783257 0.919502
|
||||
vt 0.783258 0.830539
|
||||
vt 0.846164 0.767633
|
||||
vt 0.375000 0.187500
|
||||
vt 0.375000 0.031250
|
||||
vt 0.500000 0.031250
|
||||
vt 0.500000 0.187500
|
||||
vt 0.625000 0.031250
|
||||
vt 0.625000 0.187500
|
||||
vt 0.750000 0.031250
|
||||
vt 0.750000 0.187500
|
||||
vt 0.875000 0.031250
|
||||
vt 0.875000 0.187500
|
||||
vt 1.000000 0.031250
|
||||
vt 1.000000 0.187500
|
||||
vt 0.000000 0.031250
|
||||
vt 0.125000 0.031250
|
||||
vt 0.125000 0.187500
|
||||
vt 0.000000 0.187500
|
||||
vt 0.250000 0.031250
|
||||
vt 0.250000 0.187500
|
||||
vt 0.542224 0.015885
|
||||
vt 0.601585 0.075246
|
||||
vt 0.601585 0.159195
|
||||
vt 0.542224 0.218556
|
||||
vt 0.458275 0.218556
|
||||
vt 0.398914 0.159195
|
||||
vt 0.398914 0.075246
|
||||
vt 0.458275 0.015885
|
||||
vt 0.625000 0.125000
|
||||
vt 0.500000 0.125000
|
||||
vt 0.750000 0.125000
|
||||
vt 0.875000 0.125000
|
||||
vt 1.000000 0.125000
|
||||
vt 0.125000 0.125000
|
||||
vt 0.000000 0.125000
|
||||
vt 0.250000 0.125000
|
||||
vt 0.375000 0.125000
|
||||
vn -0.147000 -0.987300 0.060400
|
||||
vn -0.648700 -0.460200 0.606100
|
||||
vn -0.898800 -0.438400 0.000000
|
||||
vn -0.172000 -0.985100 0.000000
|
||||
vn 0.672500 0.376500 0.637100
|
||||
vn 0.935400 0.353500 0.000000
|
||||
vn 0.529200 0.848500 0.000000
|
||||
vn 0.396700 0.860200 0.320400
|
||||
vn -0.044900 -0.513100 -0.857100
|
||||
vn 0.558900 -0.565900 -0.606100
|
||||
vn -0.026600 -0.997800 -0.060400
|
||||
vn -0.086800 -0.992500 -0.085500
|
||||
vn -0.044900 -0.513100 0.857100
|
||||
vn 0.037800 0.432000 0.901100
|
||||
vn -0.596900 0.487600 0.637100
|
||||
vn -0.648700 -0.460200 -0.606100
|
||||
vn -0.596900 0.487600 -0.637100
|
||||
vn 0.037800 0.432000 -0.901100
|
||||
vn 0.809000 -0.587800 0.000000
|
||||
vn 0.672500 0.376500 -0.637100
|
||||
vn -0.147000 -0.987300 -0.060400
|
||||
vn -0.086800 -0.992500 0.085500
|
||||
vn -0.859800 0.510500 0.000000
|
||||
vn -0.372100 0.928200 0.000000
|
||||
vn -0.240600 0.916500 -0.319400
|
||||
vn -0.085100 -0.972600 0.216400
|
||||
vn -0.237500 -0.959200 0.153000
|
||||
vn 0.130500 -0.991400 0.000000
|
||||
vn 0.067400 -0.985900 0.153000
|
||||
vn 0.558900 -0.565900 0.606100
|
||||
vn -0.026600 -0.997800 0.060400
|
||||
vn -0.001700 -1.000000 0.000000
|
||||
vn -0.240600 0.916500 0.319400
|
||||
vn 0.077500 0.888400 0.452400
|
||||
vn -0.300700 -0.953700 0.000000
|
||||
vn 0.077500 0.888400 -0.452400
|
||||
vn 0.396700 0.860200 -0.320400
|
||||
vn 0.086200 0.978700 -0.186300
|
||||
vn 0.217800 0.967000 -0.132200
|
||||
vn -0.085100 -0.972600 -0.216400
|
||||
vn 0.067400 -0.985900 -0.153000
|
||||
vn -0.237500 -0.959200 -0.153000
|
||||
vn 0.086200 0.978700 0.186300
|
||||
vn -0.044600 0.990300 0.131300
|
||||
vn 0.272600 0.962100 0.000000
|
||||
vn 0.217800 0.967000 0.132200
|
||||
vn -0.098600 0.995100 0.000000
|
||||
vn -0.044600 0.990300 -0.131300
|
||||
vn -0.273500 -0.626100 -0.730200
|
||||
vn -0.402500 0.040600 -0.914500
|
||||
vn 0.360300 0.084000 -0.929000
|
||||
vn 0.335600 -0.581700 -0.740900
|
||||
vn 0.369900 0.027700 -0.928600
|
||||
vn 0.921100 -0.031200 -0.388000
|
||||
vn 0.913800 0.116800 -0.388800
|
||||
vn 0.921100 -0.031200 0.388000
|
||||
vn 0.913800 0.116800 0.388800
|
||||
vn 0.369900 0.027700 0.928600
|
||||
vn 0.360300 0.084000 0.929000
|
||||
vn -0.391600 0.105700 0.914000
|
||||
vn -0.402500 0.040600 0.914500
|
||||
vn -0.914200 0.156600 0.373800
|
||||
vn -0.927200 0.012400 0.374500
|
||||
vn -0.914200 0.156600 -0.373800
|
||||
vn -0.927200 0.012400 -0.374500
|
||||
vn -0.391600 0.105700 -0.914000
|
||||
vn 0.774400 -0.552100 -0.309000
|
||||
vn 0.774400 -0.552100 0.309000
|
||||
vn 0.335600 -0.581700 0.740900
|
||||
vn -0.273500 -0.626100 0.730200
|
||||
vn -0.690800 -0.658600 0.298100
|
||||
vn -0.690800 -0.658600 -0.298100
|
||||
vn 0.416700 -0.004500 -0.909100
|
||||
vn 0.925800 -0.089300 -0.367400
|
||||
vn 0.925800 -0.089300 0.367400
|
||||
vn 0.416700 -0.004500 0.909100
|
||||
vn -0.344300 0.121400 0.931000
|
||||
vn -0.896600 0.212200 0.388700
|
||||
vn -0.896600 0.212200 -0.388700
|
||||
vn -0.344300 0.121400 -0.931000
|
||||
s 1
|
||||
f 23/1/1 24/2/2 20/3/3 19/4/4
|
||||
f 29/5/5 1/6/6 45/7/7 46/8/8
|
||||
f 12/9/9 8/5/10 7/10/11 11/11/12
|
||||
f 24/12/2 28/13/13 25/14/14 21/15/15
|
||||
f 12/16/9 16/17/16 13/18/17 9/19/18
|
||||
f 4/20/19 8/15/10 5/21/20 1/22/6
|
||||
f 16/23/16 12/9/9 11/11/12 15/24/21
|
||||
f 28/25/13 24/2/2 23/1/1 27/26/22
|
||||
f 13/2/17 17/3/23 47/27/24 48/28/25
|
||||
f 10/29/26 11/11/12 7/10/11 6/30/27
|
||||
f 18/31/28 19/4/4 15/24/21 14/32/29
|
||||
f 4/6/19 32/33/30 31/34/31 3/35/32
|
||||
f 17/3/23 21/23/15 44/36/33 47/27/24
|
||||
f 32/18/30 4/20/19 1/22/6 29/37/5
|
||||
f 8/5/10 4/6/19 3/35/32 7/10/11
|
||||
f 8/15/10 12/14/9 9/38/18 5/21/20
|
||||
f 25/9/14 29/5/5 46/8/8 43/39/34
|
||||
f 6/30/27 7/10/11 3/35/32 2/40/35
|
||||
f 16/17/16 20/41/3 17/20/23 13/18/17
|
||||
f 31/34/31 32/33/30 28/25/13 27/26/22
|
||||
f 5/33/20 9/25/18 41/42/36 42/43/37
|
||||
f 41/42/36 35/44/38 34/45/39 42/43/37
|
||||
f 15/24/21 11/11/12 10/29/26 14/32/29
|
||||
f 20/41/3 24/12/2 21/15/15 17/20/23
|
||||
f 1/6/6 5/33/20 42/43/37 45/7/7
|
||||
f 19/4/4 20/3/3 16/23/16 15/24/21
|
||||
f 28/19/13 32/18/30 29/37/5 25/46/14
|
||||
f 26/47/40 27/26/22 23/1/1 22/48/41
|
||||
f 21/23/15 25/9/14 43/39/34 44/36/33
|
||||
f 9/25/18 13/2/17 48/28/25 41/42/36
|
||||
f 23/1/1 19/4/4 18/31/28 22/48/41
|
||||
f 2/40/35 3/35/32 31/34/31 30/49/42
|
||||
f 43/39/34 39/50/43 38/51/44 44/36/33
|
||||
f 45/7/7 33/52/45 40/53/46 46/8/8
|
||||
f 42/43/37 34/45/39 33/52/45 45/7/7
|
||||
f 46/8/8 40/53/46 39/50/43 43/39/34
|
||||
f 44/36/33 38/51/44 37/54/47 47/27/24
|
||||
f 47/27/24 37/54/47 36/55/48 48/28/25
|
||||
f 48/28/25 36/55/48 35/44/38 41/42/36
|
||||
f 35/44/38 36/55/48 37/54/47 38/51/44 39/50/43 40/53/46 33/52/45 34/45/39
|
||||
f 6/56/27 2/57/35 30/58/42 26/59/40 22/60/41 18/61/28 14/62/29 10/63/26
|
||||
f 63/64/49 80/65/50 66/66/51 49/67/52
|
||||
f 65/66/53 67/68/54 68/69/55 66/67/51
|
||||
f 67/68/54 69/70/56 70/71/57 68/69/55
|
||||
f 69/70/56 71/72/58 72/73/59 70/71/57
|
||||
f 71/72/58 73/74/60 74/75/61 72/73/59
|
||||
f 73/76/60 75/77/62 76/78/63 74/79/61
|
||||
f 75/77/62 77/80/64 78/81/65 76/78/63
|
||||
f 77/80/64 79/65/66 80/64/50 78/81/65
|
||||
f 49/82/52 51/83/67 53/84/68 55/85/69 57/86/70 59/87/71 61/88/72 63/89/49
|
||||
f 50/66/73 52/68/74 67/90/54 65/91/53
|
||||
f 52/68/74 54/70/75 69/92/56 67/90/54
|
||||
f 66/66/51 68/68/55 51/69/67 49/67/52
|
||||
f 54/70/75 56/72/76 71/93/58 69/92/56
|
||||
f 68/68/55 70/70/57 53/71/68 51/69/67
|
||||
f 56/72/76 58/74/77 73/94/60 71/93/58
|
||||
f 70/70/57 72/72/59 55/73/69 53/71/68
|
||||
f 58/76/77 60/77/78 75/95/62 73/96/60
|
||||
f 72/72/59 74/74/61 57/75/70 55/73/69
|
||||
f 60/77/78 62/80/79 77/97/64 75/95/62
|
||||
f 74/76/61 76/77/63 59/78/71 57/79/70
|
||||
f 62/80/79 64/65/80 79/98/66 77/97/64
|
||||
f 76/77/63 78/80/65 61/81/72 59/78/71
|
||||
f 31/34/31 27/26/22 26/47/40 30/49/42
|
||||
f 78/80/65 80/65/50 63/64/49 61/81/72
|
||||
f 79/98/66 64/65/80 50/66/73 65/91/53
|
||||
f 79/65/66 65/66/53 66/67/51 80/64/50
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 2.1 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
@@ -0,0 +1,603 @@
|
||||
License for code: LGPL 3.0
|
||||
License for media and all other assets: CC-by-SA 4.0
|
||||
|
||||
These licenses apply to all modules and components in this modpack,
|
||||
unless otherwise stated.
|
||||
|
||||
###############################################################################
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
|
||||
This version of the GNU Lesser General Public License incorporates
|
||||
the terms and conditions of version 3 of the GNU General Public
|
||||
License, supplemented by the additional permissions listed below.
|
||||
|
||||
0. Additional Definitions.
|
||||
|
||||
As used herein, "this License" refers to version 3 of the GNU Lesser
|
||||
General Public License, and the "GNU GPL" refers to version 3 of the GNU
|
||||
General Public License.
|
||||
|
||||
"The Library" refers to a covered work governed by this License,
|
||||
other than an Application or a Combined Work as defined below.
|
||||
|
||||
An "Application" is any work that makes use of an interface provided
|
||||
by the Library, but which is not otherwise based on the Library.
|
||||
Defining a subclass of a class defined by the Library is deemed a mode
|
||||
of using an interface provided by the Library.
|
||||
|
||||
A "Combined Work" is a work produced by combining or linking an
|
||||
Application with the Library. The particular version of the Library
|
||||
with which the Combined Work was made is also called the "Linked
|
||||
Version".
|
||||
|
||||
The "Minimal Corresponding Source" for a Combined Work means the
|
||||
Corresponding Source for the Combined Work, excluding any source code
|
||||
for portions of the Combined Work that, considered in isolation, are
|
||||
based on the Application, and not on the Linked Version.
|
||||
|
||||
The "Corresponding Application Code" for a Combined Work means the
|
||||
object code and/or source code for the Application, including any data
|
||||
and utility programs needed for reproducing the Combined Work from the
|
||||
Application, but excluding the System Libraries of the Combined Work.
|
||||
|
||||
1. Exception to Section 3 of the GNU GPL.
|
||||
|
||||
You may convey a covered work under sections 3 and 4 of this License
|
||||
without being bound by section 3 of the GNU GPL.
|
||||
|
||||
2. Conveying Modified Versions.
|
||||
|
||||
If you modify a copy of the Library, and, in your modifications, a
|
||||
facility refers to a function or data to be supplied by an Application
|
||||
that uses the facility (other than as an argument passed when the
|
||||
facility is invoked), then you may convey a copy of the modified
|
||||
version:
|
||||
|
||||
a) under this License, provided that you make a good faith effort to
|
||||
ensure that, in the event an Application does not supply the
|
||||
function or data, the facility still operates, and performs
|
||||
whatever part of its purpose remains meaningful, or
|
||||
|
||||
b) under the GNU GPL, with none of the additional permissions of
|
||||
this License applicable to that copy.
|
||||
|
||||
3. Object Code Incorporating Material from Library Header Files.
|
||||
|
||||
The object code form of an Application may incorporate material from
|
||||
a header file that is part of the Library. You may convey such object
|
||||
code under terms of your choice, provided that, if the incorporated
|
||||
material is not limited to numerical parameters, data structure
|
||||
layouts and accessors, or small macros, inline functions and templates
|
||||
(ten or fewer lines in length), you do both of the following:
|
||||
|
||||
a) Give prominent notice with each copy of the object code that the
|
||||
Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the object code with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
4. Combined Works.
|
||||
|
||||
You may convey a Combined Work under terms of your choice that,
|
||||
taken together, effectively do not restrict modification of the
|
||||
portions of the Library contained in the Combined Work and reverse
|
||||
engineering for debugging such modifications, if you also do each of
|
||||
the following:
|
||||
|
||||
a) Give prominent notice with each copy of the Combined Work that
|
||||
the Library is used in it and that the Library and its use are
|
||||
covered by this License.
|
||||
|
||||
b) Accompany the Combined Work with a copy of the GNU GPL and this license
|
||||
document.
|
||||
|
||||
c) For a Combined Work that displays copyright notices during
|
||||
execution, include the copyright notice for the Library among
|
||||
these notices, as well as a reference directing the user to the
|
||||
copies of the GNU GPL and this license document.
|
||||
|
||||
d) Do one of the following:
|
||||
|
||||
0) Convey the Minimal Corresponding Source under the terms of this
|
||||
License, and the Corresponding Application Code in a form
|
||||
suitable for, and under terms that permit, the user to
|
||||
recombine or relink the Application with a modified version of
|
||||
the Linked Version to produce a modified Combined Work, in the
|
||||
manner specified by section 6 of the GNU GPL for conveying
|
||||
Corresponding Source.
|
||||
|
||||
1) Use a suitable shared library mechanism for linking with the
|
||||
Library. A suitable mechanism is one that (a) uses at run time
|
||||
a copy of the Library already present on the user's computer
|
||||
system, and (b) will operate properly with a modified version
|
||||
of the Library that is interface-compatible with the Linked
|
||||
Version.
|
||||
|
||||
e) Provide Installation Information, but only if you would otherwise
|
||||
be required to provide such information under section 6 of the
|
||||
GNU GPL, and only to the extent that such information is
|
||||
necessary to install and execute a modified version of the
|
||||
Combined Work produced by recombining or relinking the
|
||||
Application with a modified version of the Linked Version. (If
|
||||
you use option 4d0, the Installation Information must accompany
|
||||
the Minimal Corresponding Source and Corresponding Application
|
||||
Code. If you use option 4d1, you must provide the Installation
|
||||
Information in the manner specified by section 6 of the GNU GPL
|
||||
for conveying Corresponding Source.)
|
||||
|
||||
5. Combined Libraries.
|
||||
|
||||
You may place library facilities that are a work based on the
|
||||
Library side by side in a single library together with other library
|
||||
facilities that are not Applications and are not covered by this
|
||||
License, and convey such a combined library under terms of your
|
||||
choice, if you do both of the following:
|
||||
|
||||
a) Accompany the combined library with a copy of the same work based
|
||||
on the Library, uncombined with any other library facilities,
|
||||
conveyed under the terms of this License.
|
||||
|
||||
b) Give prominent notice with the combined library that part of it
|
||||
is a work based on the Library, and explaining where to find the
|
||||
accompanying uncombined form of the same work.
|
||||
|
||||
6. Revised Versions of the GNU Lesser General Public License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions
|
||||
of the GNU Lesser General Public License from time to time. Such new
|
||||
versions will be similar in spirit to the present version, but may
|
||||
differ in detail to address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Library as you received it specifies that a certain numbered version
|
||||
of the GNU Lesser General Public License "or any later version"
|
||||
applies to it, you have the option of following the terms and
|
||||
conditions either of that published version or of any later version
|
||||
published by the Free Software Foundation. If the Library as you
|
||||
received it does not specify a version number of the GNU Lesser
|
||||
General Public License, you may choose any version of the GNU Lesser
|
||||
General Public License ever published by the Free Software Foundation.
|
||||
|
||||
If the Library as you received it specifies that a proxy can decide
|
||||
whether future versions of the GNU Lesser General Public License shall
|
||||
apply, that proxy's public statement of acceptance of any version is
|
||||
permanent authorization for you to choose that version for the
|
||||
Library.
|
||||
|
||||
###############################################################################
|
||||
|
||||
Attribution-ShareAlike 4.0 International
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Corporation ("Creative Commons") is not a law firm and
|
||||
does not provide legal services or legal advice. Distribution of
|
||||
Creative Commons public licenses does not create a lawyer-client or
|
||||
other relationship. Creative Commons makes its licenses and related
|
||||
information available on an "as-is" basis. Creative Commons gives no
|
||||
warranties regarding its licenses, any material licensed under their
|
||||
terms and conditions, or any related information. Creative Commons
|
||||
disclaims all liability for damages resulting from their use to the
|
||||
fullest extent possible.
|
||||
|
||||
Using Creative Commons Public Licenses
|
||||
|
||||
Creative Commons public licenses provide a standard set of terms and
|
||||
conditions that creators and other rights holders may use to share
|
||||
original works of authorship and other material subject to copyright
|
||||
and certain other rights specified in the public license below. The
|
||||
following considerations are for informational purposes only, are not
|
||||
exhaustive, and do not form part of our licenses.
|
||||
|
||||
Considerations for licensors: Our public licenses are
|
||||
intended for use by those authorized to give the public
|
||||
permission to use material in ways otherwise restricted by
|
||||
copyright and certain other rights. Our licenses are
|
||||
irrevocable. Licensors should read and understand the terms
|
||||
and conditions of the license they choose before applying it.
|
||||
Licensors should also secure all rights necessary before
|
||||
applying our licenses so that the public can reuse the
|
||||
material as expected. Licensors should clearly mark any
|
||||
material not subject to the license. This includes other CC-
|
||||
licensed material, or material used under an exception or
|
||||
limitation to copyright. More considerations for licensors:
|
||||
wiki.creativecommons.org/Considerations_for_licensors
|
||||
|
||||
Considerations for the public: By using one of our public
|
||||
licenses, a licensor grants the public permission to use the
|
||||
licensed material under specified terms and conditions. If
|
||||
the licensor's permission is not necessary for any reason--for
|
||||
example, because of any applicable exception or limitation to
|
||||
copyright--then that use is not regulated by the license. Our
|
||||
licenses grant only permissions under copyright and certain
|
||||
other rights that a licensor has authority to grant. Use of
|
||||
the licensed material may still be restricted for other
|
||||
reasons, including because others have copyright or other
|
||||
rights in the material. A licensor may make special requests,
|
||||
such as asking that all changes be marked or described.
|
||||
Although not required by our licenses, you are encouraged to
|
||||
respect those requests where reasonable. More considerations
|
||||
for the public:
|
||||
wiki.creativecommons.org/Considerations_for_licensees
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons Attribution-ShareAlike 4.0 International Public
|
||||
License
|
||||
|
||||
By exercising the Licensed Rights (defined below), You accept and agree
|
||||
to be bound by the terms and conditions of this Creative Commons
|
||||
Attribution-ShareAlike 4.0 International Public License ("Public
|
||||
License"). To the extent this Public License may be interpreted as a
|
||||
contract, You are granted the Licensed Rights in consideration of Your
|
||||
acceptance of these terms and conditions, and the Licensor grants You
|
||||
such rights in consideration of benefits the Licensor receives from
|
||||
making the Licensed Material available under these terms and
|
||||
conditions.
|
||||
|
||||
|
||||
Section 1 -- Definitions.
|
||||
|
||||
a. Adapted Material means material subject to Copyright and Similar
|
||||
Rights that is derived from or based upon the Licensed Material
|
||||
and in which the Licensed Material is translated, altered,
|
||||
arranged, transformed, or otherwise modified in a manner requiring
|
||||
permission under the Copyright and Similar Rights held by the
|
||||
Licensor. For purposes of this Public License, where the Licensed
|
||||
Material is a musical work, performance, or sound recording,
|
||||
Adapted Material is always produced where the Licensed Material is
|
||||
synched in timed relation with a moving image.
|
||||
|
||||
b. Adapter's License means the license You apply to Your Copyright
|
||||
and Similar Rights in Your contributions to Adapted Material in
|
||||
accordance with the terms and conditions of this Public License.
|
||||
|
||||
c. BY-SA Compatible License means a license listed at
|
||||
creativecommons.org/compatiblelicenses, approved by Creative
|
||||
Commons as essentially the equivalent of this Public License.
|
||||
|
||||
d. Copyright and Similar Rights means copyright and/or similar rights
|
||||
closely related to copyright including, without limitation,
|
||||
performance, broadcast, sound recording, and Sui Generis Database
|
||||
Rights, without regard to how the rights are labeled or
|
||||
categorized. For purposes of this Public License, the rights
|
||||
specified in Section 2(b)(1)-(2) are not Copyright and Similar
|
||||
Rights.
|
||||
|
||||
e. Effective Technological Measures means those measures that, in the
|
||||
absence of proper authority, may not be circumvented under laws
|
||||
fulfilling obligations under Article 11 of the WIPO Copyright
|
||||
Treaty adopted on December 20, 1996, and/or similar international
|
||||
agreements.
|
||||
|
||||
f. Exceptions and Limitations means fair use, fair dealing, and/or
|
||||
any other exception or limitation to Copyright and Similar Rights
|
||||
that applies to Your use of the Licensed Material.
|
||||
|
||||
g. License Elements means the license attributes listed in the name
|
||||
of a Creative Commons Public License. The License Elements of this
|
||||
Public License are Attribution and ShareAlike.
|
||||
|
||||
h. Licensed Material means the artistic or literary work, database,
|
||||
or other material to which the Licensor applied this Public
|
||||
License.
|
||||
|
||||
i. Licensed Rights means the rights granted to You subject to the
|
||||
terms and conditions of this Public License, which are limited to
|
||||
all Copyright and Similar Rights that apply to Your use of the
|
||||
Licensed Material and that the Licensor has authority to license.
|
||||
|
||||
j. Licensor means the individual(s) or entity(ies) granting rights
|
||||
under this Public License.
|
||||
|
||||
k. Share means to provide material to the public by any means or
|
||||
process that requires permission under the Licensed Rights, such
|
||||
as reproduction, public display, public performance, distribution,
|
||||
dissemination, communication, or importation, and to make material
|
||||
available to the public including in ways that members of the
|
||||
public may access the material from a place and at a time
|
||||
individually chosen by them.
|
||||
|
||||
l. Sui Generis Database Rights means rights other than copyright
|
||||
resulting from Directive 96/9/EC of the European Parliament and of
|
||||
the Council of 11 March 1996 on the legal protection of databases,
|
||||
as amended and/or succeeded, as well as other essentially
|
||||
equivalent rights anywhere in the world.
|
||||
|
||||
m. You means the individual or entity exercising the Licensed Rights
|
||||
under this Public License. Your has a corresponding meaning.
|
||||
|
||||
|
||||
Section 2 -- Scope.
|
||||
|
||||
a. License grant.
|
||||
|
||||
1. Subject to the terms and conditions of this Public License,
|
||||
the Licensor hereby grants You a worldwide, royalty-free,
|
||||
non-sublicensable, non-exclusive, irrevocable license to
|
||||
exercise the Licensed Rights in the Licensed Material to:
|
||||
|
||||
a. reproduce and Share the Licensed Material, in whole or
|
||||
in part; and
|
||||
|
||||
b. produce, reproduce, and Share Adapted Material.
|
||||
|
||||
2. Exceptions and Limitations. For the avoidance of doubt, where
|
||||
Exceptions and Limitations apply to Your use, this Public
|
||||
License does not apply, and You do not need to comply with
|
||||
its terms and conditions.
|
||||
|
||||
3. Term. The term of this Public License is specified in Section
|
||||
6(a).
|
||||
|
||||
4. Media and formats; technical modifications allowed. The
|
||||
Licensor authorizes You to exercise the Licensed Rights in
|
||||
all media and formats whether now known or hereafter created,
|
||||
and to make technical modifications necessary to do so. The
|
||||
Licensor waives and/or agrees not to assert any right or
|
||||
authority to forbid You from making technical modifications
|
||||
necessary to exercise the Licensed Rights, including
|
||||
technical modifications necessary to circumvent Effective
|
||||
Technological Measures. For purposes of this Public License,
|
||||
simply making modifications authorized by this Section 2(a)
|
||||
(4) never produces Adapted Material.
|
||||
|
||||
5. Downstream recipients.
|
||||
|
||||
a. Offer from the Licensor -- Licensed Material. Every
|
||||
recipient of the Licensed Material automatically
|
||||
receives an offer from the Licensor to exercise the
|
||||
Licensed Rights under the terms and conditions of this
|
||||
Public License.
|
||||
|
||||
b. Additional offer from the Licensor -- Adapted Material.
|
||||
Every recipient of Adapted Material from You
|
||||
automatically receives an offer from the Licensor to
|
||||
exercise the Licensed Rights in the Adapted Material
|
||||
under the conditions of the Adapter's License You apply.
|
||||
|
||||
c. No downstream restrictions. You may not offer or impose
|
||||
any additional or different terms or conditions on, or
|
||||
apply any Effective Technological Measures to, the
|
||||
Licensed Material if doing so restricts exercise of the
|
||||
Licensed Rights by any recipient of the Licensed
|
||||
Material.
|
||||
|
||||
6. No endorsement. Nothing in this Public License constitutes or
|
||||
may be construed as permission to assert or imply that You
|
||||
are, or that Your use of the Licensed Material is, connected
|
||||
with, or sponsored, endorsed, or granted official status by,
|
||||
the Licensor or others designated to receive attribution as
|
||||
provided in Section 3(a)(1)(A)(i).
|
||||
|
||||
b. Other rights.
|
||||
|
||||
1. Moral rights, such as the right of integrity, are not
|
||||
licensed under this Public License, nor are publicity,
|
||||
privacy, and/or other similar personality rights; however, to
|
||||
the extent possible, the Licensor waives and/or agrees not to
|
||||
assert any such rights held by the Licensor to the limited
|
||||
extent necessary to allow You to exercise the Licensed
|
||||
Rights, but not otherwise.
|
||||
|
||||
2. Patent and trademark rights are not licensed under this
|
||||
Public License.
|
||||
|
||||
3. To the extent possible, the Licensor waives any right to
|
||||
collect royalties from You for the exercise of the Licensed
|
||||
Rights, whether directly or through a collecting society
|
||||
under any voluntary or waivable statutory or compulsory
|
||||
licensing scheme. In all other cases the Licensor expressly
|
||||
reserves any right to collect such royalties.
|
||||
|
||||
|
||||
Section 3 -- License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the
|
||||
following conditions.
|
||||
|
||||
a. Attribution.
|
||||
|
||||
1. If You Share the Licensed Material (including in modified
|
||||
form), You must:
|
||||
|
||||
a. retain the following if it is supplied by the Licensor
|
||||
with the Licensed Material:
|
||||
|
||||
i. identification of the creator(s) of the Licensed
|
||||
Material and any others designated to receive
|
||||
attribution, in any reasonable manner requested by
|
||||
the Licensor (including by pseudonym if
|
||||
designated);
|
||||
|
||||
ii. a copyright notice;
|
||||
|
||||
iii. a notice that refers to this Public License;
|
||||
|
||||
iv. a notice that refers to the disclaimer of
|
||||
warranties;
|
||||
|
||||
v. a URI or hyperlink to the Licensed Material to the
|
||||
extent reasonably practicable;
|
||||
|
||||
b. indicate if You modified the Licensed Material and
|
||||
retain an indication of any previous modifications; and
|
||||
|
||||
c. indicate the Licensed Material is licensed under this
|
||||
Public License, and include the text of, or the URI or
|
||||
hyperlink to, this Public License.
|
||||
|
||||
2. You may satisfy the conditions in Section 3(a)(1) in any
|
||||
reasonable manner based on the medium, means, and context in
|
||||
which You Share the Licensed Material. For example, it may be
|
||||
reasonable to satisfy the conditions by providing a URI or
|
||||
hyperlink to a resource that includes the required
|
||||
information.
|
||||
|
||||
3. If requested by the Licensor, You must remove any of the
|
||||
information required by Section 3(a)(1)(A) to the extent
|
||||
reasonably practicable.
|
||||
|
||||
b. ShareAlike.
|
||||
|
||||
In addition to the conditions in Section 3(a), if You Share
|
||||
Adapted Material You produce, the following conditions also apply.
|
||||
|
||||
1. The Adapter's License You apply must be a Creative Commons
|
||||
license with the same License Elements, this version or
|
||||
later, or a BY-SA Compatible License.
|
||||
|
||||
2. You must include the text of, or the URI or hyperlink to, the
|
||||
Adapter's License You apply. You may satisfy this condition
|
||||
in any reasonable manner based on the medium, means, and
|
||||
context in which You Share Adapted Material.
|
||||
|
||||
3. You may not offer or impose any additional or different terms
|
||||
or conditions on, or apply any Effective Technological
|
||||
Measures to, Adapted Material that restrict exercise of the
|
||||
rights granted under the Adapter's License You apply.
|
||||
|
||||
|
||||
Section 4 -- Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that
|
||||
apply to Your use of the Licensed Material:
|
||||
|
||||
a. for the avoidance of doubt, Section 2(a)(1) grants You the right
|
||||
to extract, reuse, reproduce, and Share all or a substantial
|
||||
portion of the contents of the database;
|
||||
|
||||
b. if You include all or a substantial portion of the database
|
||||
contents in a database in which You have Sui Generis Database
|
||||
Rights, then the database in which You have Sui Generis Database
|
||||
Rights (but not its individual contents) is Adapted Material,
|
||||
|
||||
including for purposes of Section 3(b); and
|
||||
c. You must comply with the conditions in Section 3(a) if You Share
|
||||
all or a substantial portion of the contents of the database.
|
||||
|
||||
For the avoidance of doubt, this Section 4 supplements and does not
|
||||
replace Your obligations under this Public License where the Licensed
|
||||
Rights include other Copyright and Similar Rights.
|
||||
|
||||
|
||||
Section 5 -- Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
|
||||
EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
|
||||
AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
|
||||
ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
|
||||
IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
|
||||
WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
|
||||
ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
|
||||
KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
|
||||
ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
|
||||
|
||||
b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
|
||||
TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
|
||||
NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
|
||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
|
||||
COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
|
||||
USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
|
||||
ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
|
||||
DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
|
||||
IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
|
||||
|
||||
c. The disclaimer of warranties and limitation of liability provided
|
||||
above shall be interpreted in a manner that, to the extent
|
||||
possible, most closely approximates an absolute disclaimer and
|
||||
waiver of all liability.
|
||||
|
||||
|
||||
Section 6 -- Term and Termination.
|
||||
|
||||
a. This Public License applies for the term of the Copyright and
|
||||
Similar Rights licensed here. However, if You fail to comply with
|
||||
this Public License, then Your rights under this Public License
|
||||
terminate automatically.
|
||||
|
||||
b. Where Your right to use the Licensed Material has terminated under
|
||||
Section 6(a), it reinstates:
|
||||
|
||||
1. automatically as of the date the violation is cured, provided
|
||||
it is cured within 30 days of Your discovery of the
|
||||
violation; or
|
||||
|
||||
2. upon express reinstatement by the Licensor.
|
||||
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any
|
||||
right the Licensor may have to seek remedies for Your violations
|
||||
of this Public License.
|
||||
|
||||
c. For the avoidance of doubt, the Licensor may also offer the
|
||||
Licensed Material under separate terms or conditions or stop
|
||||
distributing the Licensed Material at any time; however, doing so
|
||||
will not terminate this Public License.
|
||||
|
||||
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public
|
||||
License.
|
||||
|
||||
|
||||
Section 7 -- Other Terms and Conditions.
|
||||
|
||||
a. The Licensor shall not be bound by any additional or different
|
||||
terms or conditions communicated by You unless expressly agreed.
|
||||
|
||||
b. Any arrangements, understandings, or agreements regarding the
|
||||
Licensed Material not stated herein are separate from and
|
||||
independent of the terms and conditions of this Public License.
|
||||
|
||||
|
||||
Section 8 -- Interpretation.
|
||||
|
||||
a. For the avoidance of doubt, this Public License does not, and
|
||||
shall not be interpreted to, reduce, limit, restrict, or impose
|
||||
conditions on any use of the Licensed Material that could lawfully
|
||||
be made without permission under this Public License.
|
||||
|
||||
b. To the extent possible, if any provision of this Public License is
|
||||
deemed unenforceable, it shall be automatically reformed to the
|
||||
minimum extent necessary to make it enforceable. If the provision
|
||||
cannot be reformed, it shall be severed from this Public License
|
||||
without affecting the enforceability of the remaining terms and
|
||||
conditions.
|
||||
|
||||
c. No term or condition of this Public License will be waived and no
|
||||
failure to comply consented to unless expressly agreed to by the
|
||||
Licensor.
|
||||
|
||||
d. Nothing in this Public License constitutes or may be interpreted
|
||||
as a limitation upon, or waiver of, any privileges and immunities
|
||||
that apply to the Licensor or You, including from the legal
|
||||
processes of any jurisdiction or authority.
|
||||
|
||||
|
||||
=======================================================================
|
||||
|
||||
Creative Commons is not a party to its public
|
||||
licenses. Notwithstanding, Creative Commons may elect to apply one of
|
||||
its public licenses to material it publishes and in those instances
|
||||
will be considered the “Licensor.” The text of the Creative Commons
|
||||
public licenses is dedicated to the public domain under the CC0 Public
|
||||
Domain Dedication. Except for the limited purpose of indicating that
|
||||
material is shared under a Creative Commons public license or as
|
||||
otherwise permitted by the Creative Commons policies published at
|
||||
creativecommons.org/policies, Creative Commons does not authorize the
|
||||
use of the trademark "Creative Commons" or any other trademark or logo
|
||||
of Creative Commons without its prior written consent including,
|
||||
without limitation, in connection with any unauthorized modifications
|
||||
to any of its public licenses or any other arrangements,
|
||||
understandings, or agreements concerning use of licensed material. For
|
||||
the avoidance of doubt, this paragraph does not form part of the
|
||||
public licenses.
|
||||
|
||||
Creative Commons may be contacted at creativecommons.org.
|
||||
@@ -0,0 +1,72 @@
|
||||
README file for Plantlife mod, by Vanessa Ezekowitz
|
||||
---------------------------------------------------
|
||||
|
||||
Plantlife is a combined form of my Flowers and Poison Ivy mods and an expanded
|
||||
version of the old Bushes mod, now called bushes_classic. The entire package
|
||||
has been significantly rewritten and re-organized. This mod supplies all
|
||||
three of these components and should be 100% compatible with mods that used
|
||||
the old versions.
|
||||
|
||||
Its purpose is to add various kinds of flowers, cotton plants, water foliage,
|
||||
poison ivy, and fruit bushes, obviously. :-) All of these are spawned as
|
||||
normal nodes and can be collected and used in any recipes that depend on the
|
||||
old mods.
|
||||
|
||||
Spawning of plants is sensitive to the amount of available light. Flowers,
|
||||
cotton, and waterlilies only spawn when there at least a signficant amount of
|
||||
light. Seaweed will grow only in dimly-lit areas. Poison ivy also grows only
|
||||
in the daytime, but require less light than flowers.
|
||||
|
||||
Growing of poison ivy will only occur for plants that are on the same surface
|
||||
that is necessary for them to spawn on, so they won't grow if placed on e.g.
|
||||
cobble or homedecor flower pot, etc. This doesn't affect wall-climbing poison
|
||||
ivy, since it uses a different growth pattern.
|
||||
|
||||
All plants use multiple controls provided by biome_lib, to keep where they
|
||||
grow under control - no more random spread of plants! In addition, the density
|
||||
of the plants in any region they appear in has been fixed and brought under
|
||||
control.
|
||||
|
||||
Poison ivy is found sparsely among junglegrass, but will not grow near flowers.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Important details:
|
||||
|
||||
Configuration: Any of the three components of this mod can be disabled
|
||||
by just removing their respective directories.
|
||||
|
||||
Dependencies: Just the game's default stuff.
|
||||
|
||||
Recommends: Nothing in particular.
|
||||
|
||||
Conflicts: This mod should not be installed alongside the original, separate
|
||||
Poison Ivy, or old Bushes mods. If those exist, delete them, as this mod
|
||||
supplies their functionality. If you still use the old Jungle Grass mod
|
||||
either as previously supplied with this modpack, or in its standalone form,
|
||||
you'll want to delete the "junglegrass" directory from this modpack to get rid
|
||||
of the aliases-to-air that it supplies.
|
||||
|
||||
Software Requirements: This mod requires Minetest 0.4.11 or later. It is
|
||||
unlikely to work with old versions.
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Crafting:
|
||||
|
||||
For crafting recipes, please see the forum thread for this modpack:
|
||||
|
||||
https://forum.minetest.net/viewtopic.php?f=11&t=3898
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
|
||||
Notes:
|
||||
|
||||
Poison Ivy will spawn on grass and in some cases, on vertical surfaces
|
||||
including trees and jungle trees where they meet the dirt or grass. Ivy
|
||||
previously spawned on the ground taller/thicker or start climbing up said
|
||||
vertical surfaces and trees.
|
||||
|
||||
At present, the poison ivy presents little more than an annoyance - they can
|
||||
only be cut down and either re-planted or thrown away. No damage is done by
|
||||
harvesting them, yet. ;-)
|
||||
@@ -0,0 +1,317 @@
|
||||
-- Bushes Mod by Mossmanikin, Evergreen, & Neuromancer
|
||||
-- The initial code for this was taken from Mossmanikin's Grasses Mod,
|
||||
-- then heavilly modified by Neuromancer for this mod.
|
||||
-- Mossmanikin also greatly helped with providing samples for coding.
|
||||
-- bush leaf textures are from VannessaE's moretrees mod.
|
||||
-- (Leaf texture created by RealBadAngel or VanessaE)
|
||||
-- Branch textures created by Neuromancer.
|
||||
|
||||
-- support for i18n
|
||||
local S = minetest.get_translator("bushes")
|
||||
|
||||
local bush_rarity = minetest.settings:get("bushes.bush_rarity") or 0.008
|
||||
local youngtree_rarity = minetest.settings:get("youngtree.bush_rarity") or 0.006
|
||||
|
||||
minetest.register_node("bushes:youngtree2_bottom", {
|
||||
description = S("Young Tree 2 (bottom)"),
|
||||
drawtype="nodebox",
|
||||
tiles = {"bushes_youngtree2trunk.png"},
|
||||
inventory_image = "bushes_youngtree2trunk_inv.png",
|
||||
wield_image = "bushes_youngtree2trunk_inv.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
is_ground_content = true,
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.0612,-0.500000,-0.500000,0.0612,0.500000,-0.375000}, --NodeBox 1
|
||||
}
|
||||
},
|
||||
groups = {snappy=3,flammable=2,attached_node=1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
drop = 'default:stick'
|
||||
})
|
||||
|
||||
local BushBranchCenter = { {1,1}, {3,2} }
|
||||
for i in pairs(BushBranchCenter) do
|
||||
local Num = BushBranchCenter[i][1]
|
||||
local TexNum = BushBranchCenter[i][2]
|
||||
minetest.register_node("bushes:bushbranches"..Num, {
|
||||
description = S("Bush Branches @1", Num),
|
||||
drawtype = "nodebox",
|
||||
tiles = {
|
||||
"bushes_leaves_"..TexNum..".png",
|
||||
"bushes_branches_center_"..TexNum..".png"
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{0, -1/2, -1/2, -1/4, 1/2, 1/2},
|
||||
{0, -1/2, -1/2, 1/4, 1/2, 1/2}
|
||||
},
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/2, -1/2, -1/2, 1/2, 1/2, 1/2},
|
||||
},
|
||||
inventory_image = "bushes_branches_center_"..TexNum..".png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
groups = {
|
||||
-- tree=1, -- MM: disabled because some recipes use group:tree for trunks
|
||||
snappy=3,
|
||||
flammable=2,
|
||||
leaves=1,
|
||||
attached_node=1
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
drop = 'default:stick 4'
|
||||
})
|
||||
end
|
||||
|
||||
local BushBranchSide = { {2,1}, {4,2} }
|
||||
for i in pairs(BushBranchSide) do
|
||||
local Num = BushBranchSide[i][1]
|
||||
local TexNum = BushBranchSide[i][2]
|
||||
minetest.register_node("bushes:bushbranches"..Num, {
|
||||
description = S("Bush Branches @1", Num),
|
||||
drawtype = "nodebox",
|
||||
tiles = {
|
||||
--[[top]] "bushes_leaves_"..TexNum..".png",
|
||||
--[[bottom]]"bushes_branches_center_"..TexNum..".png",
|
||||
--[[right]] "bushes_branches_left_"..TexNum..".png",
|
||||
--[[left]] "bushes_branches_right_"..TexNum..".png", -- MM: We could also mirror the previous here,
|
||||
--[[back]] "bushes_branches_center_"..TexNum..".png",-- unless U really want 'em 2 B different
|
||||
--[[front]] "bushes_branches_right_"..TexNum..".png"
|
||||
},
|
||||
use_texture_alpha = "clip",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
-- { left , bottom , front, right , top , back }
|
||||
{0.137748,-0.491944, 0.5 ,-0.125000,-0.179444,-0.007790}, --NodeBox 1
|
||||
{0.262748,-0.185995, 0.5 ,-0.237252, 0.126505,-0.260269}, --NodeBox 2
|
||||
{0.500000, 0.125000, 0.5 ,-0.500000, 0.500000,-0.500000}, --NodeBox 3
|
||||
},
|
||||
},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-1/2, -1/2, -1/2, 1/2, 1/2, 1/2},
|
||||
},
|
||||
inventory_image = "bushes_branches_right_"..TexNum..".png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
sunlight_propagates = true,
|
||||
groups = {
|
||||
-- tree=1, -- MM: disabled because some recipes use group:tree for trunks
|
||||
snappy=3,
|
||||
flammable=2,
|
||||
leaves=1,
|
||||
attached_node=1
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
drop = 'default:stick 3'
|
||||
})
|
||||
end
|
||||
|
||||
local BushLeafNode = { {1}, {2}}
|
||||
for i in pairs(BushLeafNode) do
|
||||
local Num = BushLeafNode[i][1]
|
||||
minetest.register_node("bushes:BushLeaves"..Num, {
|
||||
description = S("Bush Leaves @1", Num),
|
||||
drawtype = "allfaces_optional",
|
||||
tiles = {"bushes_leaves_"..Num..".png"},
|
||||
use_texture_alpha = "clip",
|
||||
paramtype = "light",
|
||||
groups = { -- MM: Should we add leafdecay?
|
||||
snappy=3,
|
||||
flammable=2,
|
||||
attached_node=1,
|
||||
leaves=1
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
})
|
||||
end
|
||||
|
||||
local function grow_bush_node(pos, dir, leaf_type)
|
||||
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||
local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z}
|
||||
|
||||
local bush_branch_type = 2
|
||||
|
||||
if dir ~= 5 and leaf_type == 1 then
|
||||
bush_branch_type = 2
|
||||
end
|
||||
if dir ~= 5 and leaf_type == 2 then
|
||||
bush_branch_type = 4
|
||||
end
|
||||
if dir == 5 and leaf_type == 1 then
|
||||
bush_branch_type = 1
|
||||
dir = 1
|
||||
end
|
||||
if dir == 5 and leaf_type == 2 then
|
||||
bush_branch_type = 3
|
||||
dir = 1
|
||||
end
|
||||
|
||||
local nodename = minetest.get_node(right_here).name
|
||||
if nodename == "air" or nodename == "default:junglegrass" then -- instead of check_air = true,
|
||||
minetest.swap_node(right_here, {name="bushes:bushbranches"..bush_branch_type , param2=dir})
|
||||
minetest.swap_node(above_right_here, {name="bushes:BushLeaves"..leaf_type})
|
||||
|
||||
local chance_of_high_leaves = math.random(1,10)
|
||||
if chance_of_high_leaves > 5 then
|
||||
local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
|
||||
minetest.swap_node(two_above_right_here, {name="bushes:BushLeaves"..leaf_type})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function grow_bush(pos)
|
||||
-- replace possible grass nodes
|
||||
minetest.swap_node({x=pos.x, y=pos.y+1, z=pos.z}, {name="air"})
|
||||
|
||||
local leaf_type = math.random(1,2)
|
||||
local bush_side_height = math.random(0,1)
|
||||
|
||||
local chance_of_bush_node_right = math.random(1,10)
|
||||
if chance_of_bush_node_right > 5 then
|
||||
local right_pos = {x=pos.x+1, y=pos.y+bush_side_height, z=pos.z}
|
||||
grow_bush_node(right_pos,3,leaf_type)
|
||||
end
|
||||
|
||||
local chance_of_bush_node_left = math.random(1,10)
|
||||
if chance_of_bush_node_left > 5 then
|
||||
local left_pos = {x=pos.x-1, y=pos.y+bush_side_height, z=pos.z}
|
||||
grow_bush_node(left_pos,1,leaf_type)
|
||||
end
|
||||
|
||||
local chance_of_bush_node_front = math.random(1,10)
|
||||
if chance_of_bush_node_front > 5 then
|
||||
local front_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z+1}
|
||||
grow_bush_node(front_pos,2,leaf_type)
|
||||
end
|
||||
|
||||
local chance_of_bush_node_back = math.random(1,10)
|
||||
if chance_of_bush_node_back > 5 then
|
||||
local back_pos = {x=pos.x, y=pos.y+bush_side_height, z=pos.z-1}
|
||||
grow_bush_node(back_pos,0,leaf_type)
|
||||
end
|
||||
|
||||
grow_bush_node(pos,5,leaf_type)
|
||||
end
|
||||
|
||||
minetest.register_decoration({
|
||||
name = "bushes:bush",
|
||||
decoration = {
|
||||
"air"
|
||||
},
|
||||
fill_ratio = bush_rarity,
|
||||
y_min = 1,
|
||||
y_max = 40,
|
||||
place_on = {
|
||||
"default:dirt_with_grass",
|
||||
"stoneage:grass_with_silex",
|
||||
"sumpf:peat",
|
||||
"sumpf:sumpf"
|
||||
},
|
||||
deco_type = "simple",
|
||||
flags = "all_floors",
|
||||
})
|
||||
|
||||
--[[
|
||||
this is purposefully wrapped in a on mods loaded callback to that it gets the proper ids
|
||||
if other mods clear the registered decorations
|
||||
]]
|
||||
local did
|
||||
minetest.register_on_mods_loaded(function()
|
||||
did = minetest.get_decoration_id("bushes:bush")
|
||||
minetest.set_gen_notify("decoration", {did})
|
||||
end)
|
||||
|
||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||
local g = minetest.get_mapgen_object("gennotify")
|
||||
local locations = {}
|
||||
|
||||
local deco_locations = g["decoration#" .. did] or {}
|
||||
for _, pos in pairs(deco_locations) do
|
||||
locations[#locations+1] = pos
|
||||
end
|
||||
|
||||
if #locations == 0 then return end
|
||||
for _, pos in ipairs(locations) do
|
||||
grow_bush(pos)
|
||||
end
|
||||
end)
|
||||
|
||||
local function grow_youngtree_node2(pos, height)
|
||||
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||
local above_right_here = {x=pos.x, y=pos.y+2, z=pos.z}
|
||||
local two_above_right_here = {x=pos.x, y=pos.y+3, z=pos.z}
|
||||
local three_above_right_here = {x=pos.x, y=pos.y+4, z=pos.z}
|
||||
|
||||
local nodename = minetest.get_node(right_here).name
|
||||
if nodename == "air" or nodename == "default:junglegrass" then -- instead of check_air = true,
|
||||
if height == 4 then
|
||||
local two_above_right_here_south = {x=pos.x, y=pos.y+3, z=pos.z-1}
|
||||
local three_above_right_here_south = {x=pos.x, y=pos.y+4, z=pos.z-1}
|
||||
|
||||
minetest.swap_node(right_here, {name="bushes:youngtree2_bottom"})
|
||||
minetest.swap_node(above_right_here, {name="bushes:youngtree2_bottom"})
|
||||
minetest.swap_node(two_above_right_here, {name="bushes:bushbranches2" , param2=2})
|
||||
minetest.swap_node(two_above_right_here_south, {name="bushes:bushbranches2" , param2=0})
|
||||
minetest.swap_node(three_above_right_here, {name="bushes:BushLeaves1" })
|
||||
minetest.swap_node(three_above_right_here_south, {name="bushes:BushLeaves1" })
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local function grow_youngtree2(pos)
|
||||
local height = math.random(4,5)
|
||||
grow_youngtree_node2(pos,height)
|
||||
end
|
||||
|
||||
minetest.register_decoration({
|
||||
name = "bushes:youngtree",
|
||||
decoration = {
|
||||
"air"
|
||||
},
|
||||
fill_ratio = youngtree_rarity,
|
||||
y_min = 1,
|
||||
y_max = 40,
|
||||
place_on = {
|
||||
"default:dirt_with_grass",
|
||||
"stoneage:grass_with_silex",
|
||||
"sumpf:peat",
|
||||
"sumpf:sumpf"
|
||||
},
|
||||
deco_type = "simple",
|
||||
flags = "all_floors",
|
||||
})
|
||||
|
||||
--[[
|
||||
this is purposefully wrapped in a on mods loaded callback to that it gets the proper ids
|
||||
if other mods clear the registered decorations
|
||||
]]
|
||||
local did2
|
||||
minetest.register_on_mods_loaded(function()
|
||||
did2 = minetest.get_decoration_id("bushes:youngtree")
|
||||
minetest.set_gen_notify("decoration", {did2})
|
||||
end)
|
||||
|
||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||
local g = minetest.get_mapgen_object("gennotify")
|
||||
local locations = {}
|
||||
|
||||
local deco_locations = g["decoration#" .. did2] or {}
|
||||
for _, pos in pairs(deco_locations) do
|
||||
locations[#locations+1] = pos
|
||||
end
|
||||
|
||||
if #locations == 0 then return end
|
||||
for _, pos in ipairs(locations) do
|
||||
grow_youngtree2(pos)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,4 @@
|
||||
# textdomain: bushes
|
||||
Young Tree 2 (bottom)=Strauch 2 (Ansatz)
|
||||
Bush Branches @1=Buschäste @1
|
||||
Bush Leaves @1=Buschblätter @1
|
||||
@@ -0,0 +1,4 @@
|
||||
# textdomain: bushes
|
||||
Young Tree 2 (bottom)=Juna Arbo 2 (malsupro)
|
||||
Bush Branches @1=Arbustaj Branĉoj @1
|
||||
Bush Leaves @1=Arbustaj Folioj @1
|
||||
@@ -0,0 +1,4 @@
|
||||
# textdomain: bushes
|
||||
Young Tree 2 (bottom)=Arbuste 2 (bas)
|
||||
Bush Branches @1=Branches de buisson @1
|
||||
Bush Leaves @1=Feuilles de buisson @1
|
||||
@@ -0,0 +1,4 @@
|
||||
# textdomain: bushes
|
||||
Young Tree 2 (bottom)=
|
||||
Bush Branches @1=
|
||||
Bush Leaves @1=
|
||||
@@ -0,0 +1,4 @@
|
||||
name = bushes
|
||||
title = Bushes
|
||||
depends = default
|
||||
optional_depends = stoneage, sumpf, ebiomes
|
||||
@@ -0,0 +1,5 @@
|
||||
# Bush rarity (higher number -> higher probability)
|
||||
bushes.bush_rarity (Bush rarity) float 0.008 0.0001 1
|
||||
|
||||
# Youngtree rarity (higher number -> higher probability)
|
||||
bushes.youngtree_rarity (Youngtree rarity) float 0.006 0.0001 1
|
||||
|
After Width: | Height: | Size: 305 B |
|
After Width: | Height: | Size: 305 B |
|
After Width: | Height: | Size: 577 B |
|
After Width: | Height: | Size: 598 B |
|
After Width: | Height: | Size: 592 B |
|
After Width: | Height: | Size: 632 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 205 B |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 872 B |
@@ -0,0 +1,126 @@
|
||||
-- support for i18n
|
||||
local S = minetest.get_translator("bushes_classic")
|
||||
|
||||
-- Basket
|
||||
|
||||
minetest.register_craft({
|
||||
output = "bushes:basket_empty",
|
||||
recipe = {
|
||||
{ "default:stick", "default:stick", "default:stick" },
|
||||
{ "", "default:stick", "" },
|
||||
},
|
||||
})
|
||||
|
||||
-- Sugar
|
||||
|
||||
if not minetest.registered_items["farming:sugar"] then
|
||||
minetest.register_craftitem(":bushes:sugar", {
|
||||
description = S("Sugar"),
|
||||
inventory_image = "bushes_sugar.png",
|
||||
on_use = minetest.item_eat(1),
|
||||
groups = {food_sugar=1, flammable = 2}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "bushes:sugar 1",
|
||||
recipe = {
|
||||
{ "default:papyrus", "default:papyrus" },
|
||||
},
|
||||
})
|
||||
else
|
||||
minetest.register_alias("bushes:sugar", "farming:sugar")
|
||||
end
|
||||
|
||||
-- override farming_plus strawberry and add food_ group
|
||||
if minetest.get_modpath("farming_plus") then
|
||||
local groups = table.copy(minetest.registered_items["farming_plus:strawberry_item"].groups)
|
||||
groups["food_strawberry"] = 1
|
||||
groups["food_berry"] = 1
|
||||
|
||||
minetest.override_item("farming_plus:strawberry_item", {
|
||||
groups = groups,
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
for i, berry in ipairs(bushes_classic.bushes) do
|
||||
|
||||
local groups = {food_berry = 1, flammable = 2}
|
||||
|
||||
if berry ~= "mixed_berry" then
|
||||
|
||||
groups["food_" .. berry] = 1
|
||||
|
||||
-- Berry
|
||||
minetest.register_craftitem(":bushes:"..berry, {
|
||||
description = bushes_classic.bushes_descriptions[i][1],
|
||||
inventory_image = "bushes_"..berry..".png",
|
||||
groups = groups,
|
||||
on_use = minetest.item_eat(1),
|
||||
})
|
||||
end
|
||||
|
||||
-- Raw pie
|
||||
minetest.register_craftitem(":bushes:"..berry.."_pie_raw", {
|
||||
description = bushes_classic.bushes_descriptions[i][2],
|
||||
inventory_image = "bushes_"..berry.."_pie_raw.png",
|
||||
on_use = minetest.item_eat(4),
|
||||
})
|
||||
|
||||
if berry ~= "mixed_berry" then
|
||||
|
||||
minetest.register_craft({
|
||||
output = "bushes:"..berry.."_pie_raw 1",
|
||||
recipe = {
|
||||
{ "group:food_sugar", "farming:flour", "group:food_sugar" },
|
||||
{ "group:food_"..berry, "group:food_"..berry, "group:food_"..berry },
|
||||
},
|
||||
})
|
||||
else
|
||||
minetest.register_craft({
|
||||
output = "bushes:mixed_berry_pie_raw 2",
|
||||
recipe = {
|
||||
{ "group:food_sugar", "farming:flour", "group:food_sugar" },
|
||||
{ "group:food_berry", "group:food_berry", "group:food_berry" },
|
||||
{ "group:food_berry", "group:food_berry", "group:food_berry" },
|
||||
},
|
||||
})
|
||||
end
|
||||
|
||||
-- Cooked pie
|
||||
minetest.register_craftitem(":bushes:"..berry.."_pie_cooked", {
|
||||
description = bushes_classic.bushes_descriptions[i][3],
|
||||
inventory_image = "bushes_"..berry.."_pie_cooked.png",
|
||||
on_use = minetest.item_eat(6),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "bushes:"..berry.."_pie_cooked",
|
||||
recipe = "bushes:"..berry.."_pie_raw",
|
||||
cooktime = 30,
|
||||
})
|
||||
|
||||
-- Slice of pie
|
||||
minetest.register_craftitem(":bushes:"..berry.."_pie_slice", {
|
||||
description = bushes_classic.bushes_descriptions[i][4],
|
||||
inventory_image = "bushes_"..berry.."_pie_slice.png",
|
||||
on_use = minetest.item_eat(1),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = "bushes:"..berry.."_pie_slice 6",
|
||||
recipe = {
|
||||
{ "bushes:"..berry.."_pie_cooked" },
|
||||
},
|
||||
})
|
||||
|
||||
-- Basket with pies
|
||||
minetest.register_craft({
|
||||
output = "bushes:basket_"..berry.." 1",
|
||||
recipe = {
|
||||
{ "bushes:"..berry.."_pie_cooked", "bushes:"..berry.."_pie_cooked", "bushes:"..berry.."_pie_cooked" },
|
||||
{ "", "bushes:basket_empty", "" },
|
||||
},
|
||||
})
|
||||
end
|
||||
@@ -0,0 +1,5 @@
|
||||
strawberry: http://www.clker.com/clipart-4060.html
|
||||
blueberry: http://www.clker.com/clipart-cerezafiro12.html
|
||||
blackberry: http://www.clker.com/clipart-blackberry-2.html
|
||||
raspberry: http://www.clker.com/clipart-simple-raspberry.html
|
||||
gooseberry: http://www.clker.com/clipart-26281.html
|
||||
@@ -0,0 +1,80 @@
|
||||
-- Bushes classic mod originally by unknown
|
||||
-- now maintained by VanessaE
|
||||
|
||||
bushes_classic = {}
|
||||
|
||||
-- support for i18n
|
||||
local S = minetest.get_translator("bushes_classic")
|
||||
|
||||
bushes_classic.bushes = {
|
||||
"strawberry",
|
||||
"blackberry",
|
||||
"blueberry",
|
||||
"raspberry",
|
||||
"gooseberry",
|
||||
"mixed_berry"
|
||||
}
|
||||
|
||||
bushes_classic.bushes_descriptions = {
|
||||
{S("Strawberry"), S("Raw Strawberry pie"), S("Cooked Strawberry pie"), S("Slice of Strawberry pie"), S("Basket with Strawberry pies"), S("Strawberry Bush")},
|
||||
{S("Blackberry"), S("Raw Blackberry pie"), S("Cooked Blackberry pie"), S("Slice of Blackberry pie"), S("Basket with Blackberry pies"), S("Blackberry Bush")},
|
||||
{S("Blueberry"), S("Raw Blueberry pie"), S("Cooked Blueberry pie"), S("Slice of Blueberry pie"), S("Basket with Blueberry pies"), S("Blueberry Bush")},
|
||||
{S("Raspberry"), S("Raw Raspberry pie"), S("Cooked Raspberry pie"), S("Slice of Raspberry pie"), S("Basket with Raspberry pies"), S("Raspberry Bush")},
|
||||
{S("Gooseberry"), S("Raw Gooseberry pie"), S("Cooked Gooseberry pie"), S("Slice of Gooseberry pie"), S("Basket with Gooseberry pies"), S("Gooseberry Bush")},
|
||||
{S("Mixed Berry"), S("Raw Mixed Berry pie"), S("Cooked Mixed Berry pie"), S("Slice of Mixed Berry pie"), S("Basket with Mixed Berry pies"), S("Currently fruitless Bush")}
|
||||
}
|
||||
|
||||
bushes_classic.spawn_list = {}
|
||||
|
||||
local modpath = minetest.get_modpath('bushes_classic')
|
||||
dofile(modpath..'/cooking.lua')
|
||||
dofile(modpath..'/nodes.lua')
|
||||
|
||||
local spawn_plants = bushes_classic.spawn_list
|
||||
|
||||
local function get_biome_data(pos, perlin_fertile)
|
||||
local fertility = perlin_fertile:get_2d({x=pos.x, y=pos.z})
|
||||
|
||||
local data = minetest.get_biome_data(pos)
|
||||
-- Original values this method returned were +1 (lowest) to -1 (highest)
|
||||
-- so we need to convert the 0-100 range from get_biome_data() to that.
|
||||
return fertility, 1 - (data.heat / 100 * 2), 1 - (data.humidity / 100 * 2)
|
||||
end
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {
|
||||
"default:dirt_with_grass",
|
||||
"woodsoils:dirt_with_leaves_1",
|
||||
"woodsoils:grass_with_leaves_1",
|
||||
"woodsoils:grass_with_leaves_2",
|
||||
"farming:soil",
|
||||
"farming:soil_wet"
|
||||
},
|
||||
interval = 3600,
|
||||
chance = 100,
|
||||
label = "[bushes_classic] spawn bushes",
|
||||
min_y = -16,
|
||||
max_y = 48,
|
||||
action = function(pos, node)
|
||||
local p_top = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local n_top = minetest.get_node_or_nil(p_top)
|
||||
if not n_top or n_top.name ~= "air" then return end
|
||||
|
||||
local perlin_fertile_area = minetest.get_perlin(545342534, 3, 0.6, 100)
|
||||
|
||||
local fertility, temperature, humidity = get_biome_data(pos, perlin_fertile_area)
|
||||
|
||||
local pos_biome_ok = fertility > -0.1 and temperature <= 0.15 and temperature >= -0.15 and humidity <= 0 and humidity >= -1
|
||||
if not pos_biome_ok then return end
|
||||
|
||||
if minetest.find_node_near(p_top, 10 + math.random(-1.5,2), {"group:bush"}) then
|
||||
return -- Nodes to avoid are nearby
|
||||
end
|
||||
|
||||
local plant_to_spawn = spawn_plants[math.random(1, #spawn_plants)]
|
||||
|
||||
minetest.swap_node(p_top, {name = plant_to_spawn, param2 = 0})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_alias("bushes:basket_pies", "bushes:basket_strawberry")
|
||||
@@ -0,0 +1,39 @@
|
||||
# textdomain: bushes_classic
|
||||
Sugar=Zucker
|
||||
Strawberry=Erdbeere
|
||||
Raw Strawberry pie=Rohe Erdbeertorte
|
||||
Cooked Strawberry pie=Erdbeertorte
|
||||
Slice of Strawberry pie=Erdbeertortenstück
|
||||
Basket with Strawberry pies=Korb mit Erdbeertorten
|
||||
Strawberry Bush=Erdbeerbusch
|
||||
Blackberry=Brombeere
|
||||
Raw Blackberry pie=Rohe Brombeertorte
|
||||
Cooked Blackberry pie=Brombeertorte
|
||||
Slice of Blackberry pie=Brombeertortenstück
|
||||
Basket with Blackberry pies=Korb mit Brombeertorten
|
||||
Blackberry Bush=Brombeerbusch
|
||||
Blueberry=Blaubeere
|
||||
Raw Blueberry pie=Rohe Blaubeertorte
|
||||
Cooked Blueberry pie=Blaubeertorte
|
||||
Slice of Blueberry pie=Blaubeertortenstück
|
||||
Basket with Blueberry pies=Korb mit Blaubeertorten
|
||||
Blueberry Bush=Blaubeerbusch
|
||||
Raspberry=Himbeere
|
||||
Raw Raspberry pie=Rohe Himbeertorte
|
||||
Cooked Raspberry pie=Himbeertorte
|
||||
Slice of Raspberry pie=Himbeertortenstück
|
||||
Basket with Raspberry pies=Korb mit Himbeertorten
|
||||
Raspberry Bush=Himbeerbusch
|
||||
Gooseberry=Stachelbeere
|
||||
Raw Gooseberry pie=Rohe Stachelbeertorte
|
||||
Cooked Gooseberry pie=Stachelbeertorte
|
||||
Slice of Gooseberry pie=Stachelbeertortenstück
|
||||
Basket with Gooseberry pies=Korb mit Stachelbeertorten
|
||||
Gooseberry Bush=Stachelbeerbusch
|
||||
Mixed Berry=Beerenmix
|
||||
Raw Mixed Berry pie=Rohe Beerenmixtorte
|
||||
Cooked Mixed Berry pie=Beerenmixtorte
|
||||
Slice of Mixed Berry pie=Beerenmixtortenstück
|
||||
Basket with Mixed Berry pies=Korb mit Beerenmixtorten
|
||||
Currently fruitless Bush=Zur Zeit früchteloser Busch
|
||||
Basket=Korb
|
||||
@@ -0,0 +1,39 @@
|
||||
# textdomain: bushes_classic
|
||||
Sugar=Sukero
|
||||
Strawberry=Frago
|
||||
Raw Strawberry pie=Kruda Fragokuko
|
||||
Cooked Strawberry pie=Kuirita Fragokuko
|
||||
Slice of Strawberry pie=Tranĉaĵo de Fragokuko
|
||||
Basket with Strawberry pies=Korbo kun Fragokukoj
|
||||
Strawberry Bush=Fraga Arbusto
|
||||
Blackberry=Rubuso
|
||||
Raw Blackberry pie=Kruda Rubusokuko
|
||||
Cooked Blackberry pie=Kuirita Rubusokuko
|
||||
Slice of Blackberry pie=Tranĉaĵo de Rubusokuko
|
||||
Basket with Blackberry pies=Korbo kun Rubusokukoj
|
||||
Blackberry Bush=Rubusa Arbusto
|
||||
Blueberry=Mirtelo
|
||||
Raw Blueberry pie=Kruda Mirtelokuko
|
||||
Cooked Blueberry pie=Kuirita Mirtelokuko
|
||||
Slice of Blueberry pie=Tranĉaĵo de Mirtelokuko
|
||||
Basket with Blueberry pies=Korbo kun Mirtelokukoj
|
||||
Blueberry Bush=Mirtela Arbusto
|
||||
Raspberry=Frambo
|
||||
Raw Raspberry pie=Kruda Frambokuko
|
||||
Cooked Raspberry pie=Kuirita Frambokuko
|
||||
Slice of Raspberry pie=Tranĉaĵo de Frambokuko
|
||||
Basket with Raspberry pies=Korbo kun Frambokukoj
|
||||
Raspberry Bush=Framba Arbusto
|
||||
Gooseberry=Grosbero
|
||||
Raw Gooseberry pie=Kruda Grosberkuko
|
||||
Cooked Gooseberry pie=Kuirita Grosberkuko
|
||||
Slice of Gooseberry pie=Tranĉaĵo de Grosberkuko
|
||||
Basket with Gooseberry pies=Korbo kun Grosberkuko
|
||||
Gooseberry Bush=Grosberarbusto
|
||||
Mixed Berry=Miksita Bero
|
||||
Raw Mixed Berry pie=Kruda Miksita Bera Kuko
|
||||
Cooked Mixed Berry pie=Kuirita Miksa Beraj Kukoj
|
||||
Slice of Mixed Berry pie=Tranĉaĵo de Miksita Bera Kuko
|
||||
Basket with Mixed Berry pies=Korbo kun Miksitaj Beraj Kukoj
|
||||
Currently fruitless Bush=Nuntempe senfrukta Arbusto
|
||||
Basket=Korbo
|
||||
@@ -0,0 +1,39 @@
|
||||
# textdomain: bushes_classic
|
||||
Sugar=Azúcar
|
||||
Strawberry=Frutilla
|
||||
Raw Strawberry pie=Pastel de Frutilla Crudo
|
||||
Cooked Strawberry pie=Pastel de Frutilla Cocido
|
||||
Slice of Strawberry pie=Rebanada de Pastel de Frutilla
|
||||
Basket with Strawberry pies=Cesta con Pasteles de Frutilla
|
||||
Strawberry Bush=Arbusto de Frutilla
|
||||
Blackberry=Mora
|
||||
Raw Blackberry pie=Pastel de Mora Crudo
|
||||
Cooked Blackberry pie=Pastel de Mora Cocido
|
||||
Slice of Blackberry pie=Rebanada de Pastel de Mora
|
||||
Basket with Blackberry pies=Cesta con Pasteles de Mora
|
||||
Blackberry Bush=Arbusto de Mora
|
||||
Blueberry=Arándano
|
||||
Raw Blueberry pie=Pastel de Arándano Crudo
|
||||
Cooked Blueberry pie=Pastel de Arándano Cocido
|
||||
Slice of Blueberry pie=Rebanada de Pastel de Arándano
|
||||
Basket with Blueberry pies=Cesta con Pasteles de Arándano
|
||||
Blueberry Bush=Arbusto de Arándano
|
||||
Raspberry=Frambuesa
|
||||
Raw Raspberry pie=Pastel de Frambuesa Crudo
|
||||
Cooked Raspberry pie=Pastel de Frambuesa Cocido
|
||||
Slice of Raspberry pie=Rebanada de Pastel de Frambuesa
|
||||
Basket with Raspberry pies=Cesta con Pasteles de Frambuesa
|
||||
Raspberry Bush=Arbusto de Frambuesa
|
||||
Gooseberry=Grosella
|
||||
Raw Gooseberry pie=Pastel de Grosella Crudo
|
||||
Cooked Gooseberry pie=Pastel de Grosella Cocido
|
||||
Slice of Gooseberry pie=Rebanada de Pastel de Grosella
|
||||
Basket with Gooseberry pies=Cesta con Pasteles de Grosella
|
||||
Gooseberry Bush=Arbusto de Grosella
|
||||
Mixed Berry=Mezcla de Baya
|
||||
Raw Mixed Berry pie=Pastel de Mezcla de Bayas Cruda
|
||||
Cooked Mixed Berry pie=Pastel de Mezcla de Bayas Cocido
|
||||
Slice of Mixed Berry pie=Rebanada de Pastel de Mezcla de Bayas
|
||||
Basket with Mixed Berry pies=Cesta con Pasteles de Mezcla de Baya
|
||||
Currently fruitless Bush=Arbusto actualmente infructuoso
|
||||
Basket=Cesta
|
||||
@@ -0,0 +1,39 @@
|
||||
# textdomain: bushes_classic
|
||||
Sugar=Sucre
|
||||
Strawberry=Fraises
|
||||
Raw Strawberry pie=Tarte aux fraises (crue)
|
||||
Cooked Strawberry pie=Tarte aux fraises (cuite)
|
||||
Slice of Strawberry pie=Part de tarte aux fraises
|
||||
Basket with Strawberry pies=Panier de tartes aux fraises
|
||||
Strawberry Bush=Buisson de fraises
|
||||
Blackberry=Mûres
|
||||
Raw Blackberry pie=Tarte aux mûres (crue)
|
||||
Cooked Blackberry pie=Tarte aux mûres (cuite)
|
||||
Slice of Blackberry pie=Part de tarte aux mûres
|
||||
Basket with Blackberry pies=Panier de tartes aux fraises
|
||||
Blackberry Bush=Buisson de mûres
|
||||
Blueberry=Myrtilles
|
||||
Raw Blueberry pie=Tarte aux myrtilles (crue)
|
||||
Cooked Blueberry pie=Tarte aux myrtilles (cuite)
|
||||
Slice of Blueberry pie=Part de tarte aux myrtilles
|
||||
Basket with Blueberry pies=Panier de tartes aux mûres
|
||||
Blueberry Bush=Buisson de myrtilles
|
||||
Raspberry=Framboises
|
||||
Raw Raspberry pie=Tarte aux framboises (crue)
|
||||
Cooked Raspberry pie=Tarte aux framboises (cuite)
|
||||
Slice of Raspberry pie=Part de tarts aux framboises
|
||||
Basket with Raspberry pies=Panier de tartes aux framboises
|
||||
Raspberry Bush=Buisson de framboises
|
||||
Gooseberry=Groseilles
|
||||
Raw Gooseberry pie=Tarte aux groseilles (crue)
|
||||
Cooked Gooseberry pie=Tarte aux groseilles (cuite)
|
||||
Slice of Gooseberry pie=Part de tarte aux groseilles
|
||||
Basket with Gooseberry pies=Panier de tartes aux groseilles
|
||||
Gooseberry Bush=Buisson de groseilles
|
||||
Mixed Berry=Fruits rouges
|
||||
Raw Mixed Berry pie=Tarte aux fruits rouges (crue)
|
||||
Cooked Mixed Berry pie=Tarte aux fruits rouges (cuite)
|
||||
Slice of Mixed Berry pie=Part de tarte aux fruits rouges
|
||||
Basket with Mixed Berry pies=Panier de tartes aux fruits rouges
|
||||
Currently fruitless Bush=Buisson sans fruits pour l'instant
|
||||
Basket=Panier
|
||||
@@ -0,0 +1,39 @@
|
||||
# textdomain: bushes_classic
|
||||
Sugar=Şeker
|
||||
Strawberry=Çilek
|
||||
Raw Strawberry pie=Çilekli çiğ pasta
|
||||
Cooked Strawberry pie=Pişmiş çilekli pasta
|
||||
Slice of Strawberry pie=Çilekli pasta dilimi
|
||||
Basket with Strawberry pies=Çilekli pasta sepeti
|
||||
Strawberry Bush=Çilek fidanı
|
||||
Blackberry=Böğürtlen
|
||||
Raw Blackberry pie=Böğürtlenli çiğ pasta
|
||||
Cooked Blackberry pie=Pişmiş böğürtlenli pasta
|
||||
Slice of Blackberry pie=Böğürtlenli pasta dilimi
|
||||
Basket with Blackberry pies=Böğürtlenli pasta sepeti
|
||||
Blackberry Bush=Böğürtlen fidanı
|
||||
Blueberry=Yaban mersini
|
||||
Raw Blueberry pie=Yaban mersinli çiğ pasta
|
||||
Cooked Blueberry pie=Pişmiş yaban mersinli pasta
|
||||
Slice of Blueberry pie=Yaban mersinli pasta dilimi
|
||||
Basket with Blueberry pies=Yaban mersini pastalı sepet
|
||||
Blueberry Bush=Yaban mersini fidanı
|
||||
Raspberry=Ahududu
|
||||
Raw Raspberry pie=Ahududulu çiğ pasta
|
||||
Cooked Raspberry pie=Pişmiş ahududulu pasta
|
||||
Slice of Raspberry pie=Ahududulu pasta dilimi
|
||||
Basket with Raspberry pies=Ahududulu pasta sepeti
|
||||
Raspberry Bush=Ahududu fidanı
|
||||
Gooseberry=Bektaşi üzümü
|
||||
Raw Gooseberry pie=Bektaşi üzümlü çiğ pasta
|
||||
Cooked Gooseberry pie=Pişmiş bektaşi üzümlü pasta
|
||||
Slice of Gooseberry pie=Bektaşi üzümlü pasta dilimi
|
||||
Basket with Gooseberry pies=Bektaşi üzümlü pasta sepeti
|
||||
Gooseberry Bush=Bektaşi üzümü fidanı
|
||||
Mixed Berry=Dut
|
||||
Raw Mixed Berry pie=Dutlu çiğ pasta
|
||||
Cooked Mixed Berry pie=Pişmiş dutlu pasta
|
||||
Slice of Mixed Berry pie=Dutlu pasta dilimi
|
||||
Basket with Mixed Berry pies=Dutlu pasta sepeti
|
||||
Currently fruitless Bush=Fidanı şu anda meyvesiz
|
||||
Basket=Sepet
|
||||
@@ -0,0 +1,39 @@
|
||||
# textdomain: bushes_classic
|
||||
Sugar=
|
||||
Strawberry=
|
||||
Raw Strawberry pie=
|
||||
Cooked Strawberry pie=
|
||||
Slice of Strawberry pie=
|
||||
Basket with Strawberry pies=
|
||||
Strawberry Bush=
|
||||
Blackberry=
|
||||
Raw Blackberry pie=
|
||||
Cooked Blackberry pie=
|
||||
Slice of Blackberry pie=
|
||||
Basket with Blackberry pies=
|
||||
Blackberry Bush=
|
||||
Blueberry=
|
||||
Raw Blueberry pie=
|
||||
Cooked Blueberry pie=
|
||||
Slice of Blueberry pie=
|
||||
Basket with Blueberry pies=
|
||||
Blueberry Bush=
|
||||
Raspberry=
|
||||
Raw Raspberry pie=
|
||||
Cooked Raspberry pie=
|
||||
Slice of Raspberry pie=
|
||||
Basket with Raspberry pies=
|
||||
Raspberry Bush=
|
||||
Gooseberry=
|
||||
Raw Gooseberry pie=
|
||||
Cooked Gooseberry pie=
|
||||
Slice of Gooseberry pie=
|
||||
Basket with Gooseberry pies=
|
||||
Gooseberry Bush=
|
||||
Mixed Berry=
|
||||
Raw Mixed Berry pie=
|
||||
Cooked Mixed Berry pie=
|
||||
Slice of Mixed Berry pie=
|
||||
Basket with Mixed Berry pies=
|
||||
Currently fruitless Bush=
|
||||
Basket=
|
||||
@@ -0,0 +1,2 @@
|
||||
name = bushes_classic
|
||||
optional_depends = farming, farming_plus
|
||||
@@ -0,0 +1,46 @@
|
||||
# Blender v2.73 (sub 0) OBJ File: 'basket-of-pies.blend'
|
||||
# www.blender.org
|
||||
o basket_Cube.001
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v -0.437500 0.500000 0.437500
|
||||
v -0.437500 0.500000 -0.437500
|
||||
v 0.437500 0.500000 -0.437500
|
||||
v 0.437500 0.500000 0.437500
|
||||
v -0.437500 -0.437500 0.437500
|
||||
v -0.437500 -0.437500 -0.437500
|
||||
v 0.437500 -0.437500 -0.437500
|
||||
v 0.437500 -0.437500 0.437500
|
||||
vt 0.484848 0.984848
|
||||
vt 0.015152 0.984848
|
||||
vt 0.015152 0.515152
|
||||
vt 0.484848 0.515152
|
||||
vt 0.515152 0.984848
|
||||
vt 0.515152 0.515152
|
||||
vt 0.984848 0.515152
|
||||
vt 0.984848 0.984848
|
||||
vt 0.954545 0.545455
|
||||
vt 0.545455 0.545455
|
||||
vt 0.954545 0.954545
|
||||
vt 0.545455 0.954545
|
||||
s off
|
||||
f 5/1 6/2 2/3 1/4
|
||||
f 6/1 7/2 3/3 2/4
|
||||
f 7/1 8/2 4/3 3/4
|
||||
f 8/1 5/2 1/3 4/4
|
||||
f 1/5 2/6 3/7 4/8
|
||||
f 5/6 8/7 12/9 9/10
|
||||
f 8/7 7/8 11/11 12/9
|
||||
f 7/8 6/5 10/12 11/11
|
||||
f 6/5 5/6 9/10 10/12
|
||||
f 9/1 12/2 16/3 13/4
|
||||
f 12/1 11/2 15/3 16/4
|
||||
f 11/1 10/2 14/3 15/4
|
||||
f 10/1 9/2 13/3 14/4
|
||||
f 13/10 16/9 15/11 14/12
|
||||
@@ -0,0 +1,330 @@
|
||||
# Blender v2.73 (sub 0) OBJ File: 'basket-of-pies.blend'
|
||||
# www.blender.org
|
||||
o pies_Cylinder
|
||||
v -0.089468 -0.116804 -0.438000
|
||||
v -0.116691 -0.091480 -0.438000
|
||||
v 0.024696 0.005921 -0.404659
|
||||
v -0.002527 0.031245 -0.404659
|
||||
v 0.121480 0.109962 -0.309713
|
||||
v 0.094258 0.135286 -0.309713
|
||||
v 0.186149 0.179480 -0.167615
|
||||
v 0.158927 0.204804 -0.167615
|
||||
v 0.208858 0.203891 0.000000
|
||||
v 0.181635 0.229215 0.000000
|
||||
v 0.186149 0.179480 0.167615
|
||||
v 0.158927 0.204804 0.167615
|
||||
v 0.121480 0.109962 0.309713
|
||||
v 0.094258 0.135286 0.309713
|
||||
v 0.024696 0.005921 0.404659
|
||||
v -0.002527 0.031245 0.404659
|
||||
v -0.089468 -0.116804 0.438000
|
||||
v -0.116691 -0.091480 0.438000
|
||||
v -0.230856 -0.214204 0.404659
|
||||
v -0.327640 -0.318245 0.309713
|
||||
v -0.392309 -0.387763 0.167615
|
||||
v -0.415018 -0.412175 -0.000000
|
||||
v -0.392309 -0.387763 -0.167615
|
||||
v -0.327640 -0.318245 -0.309713
|
||||
v -0.230856 -0.214204 -0.404659
|
||||
v -0.135230 -0.074234 -0.383250
|
||||
v -0.035336 0.033150 -0.354077
|
||||
v 0.049350 0.124186 -0.270999
|
||||
v 0.105936 0.185014 -0.146663
|
||||
v 0.125806 0.206374 0.000000
|
||||
v 0.105936 0.185014 0.146663
|
||||
v 0.049350 0.124186 0.270999
|
||||
v -0.035336 0.033150 0.354077
|
||||
v -0.135230 -0.074234 0.383250
|
||||
v -0.235124 -0.181618 0.354077
|
||||
v -0.319810 -0.272654 0.270999
|
||||
v -0.376395 -0.333482 0.146663
|
||||
v -0.396266 -0.354842 -0.000000
|
||||
v -0.376395 -0.333482 -0.146664
|
||||
v -0.319810 -0.272654 -0.270999
|
||||
v -0.235124 -0.181618 -0.354077
|
||||
v 0.071215 -0.085999 -0.438000
|
||||
v 0.041377 -0.063816 -0.438000
|
||||
v 0.171221 0.048513 -0.404659
|
||||
v 0.141384 0.070697 -0.404659
|
||||
v 0.256002 0.162547 -0.309713
|
||||
v 0.226165 0.184731 -0.309713
|
||||
v 0.312652 0.238743 -0.167615
|
||||
v 0.282814 0.260926 -0.167615
|
||||
v 0.332544 0.265499 0.000000
|
||||
v 0.302707 0.287682 0.000000
|
||||
v 0.312652 0.238743 0.167615
|
||||
v 0.282814 0.260926 0.167615
|
||||
v 0.256002 0.162547 0.309713
|
||||
v 0.226165 0.184731 0.309713
|
||||
v 0.171221 0.048513 0.404659
|
||||
v 0.141383 0.070697 0.404659
|
||||
v 0.071215 -0.085999 0.438000
|
||||
v 0.041377 -0.063816 0.438000
|
||||
v -0.058629 -0.198328 0.404659
|
||||
v -0.058629 -0.198328 -0.404659
|
||||
v 0.021058 -0.048709 -0.383250
|
||||
v 0.108564 0.068989 -0.354077
|
||||
v 0.182747 0.168769 -0.270999
|
||||
v 0.232315 0.235440 -0.146663
|
||||
v 0.249721 0.258852 0.000000
|
||||
v 0.232315 0.235440 0.146663
|
||||
v 0.182747 0.168769 0.270999
|
||||
v 0.108564 0.068989 0.354077
|
||||
v 0.021058 -0.048709 0.383250
|
||||
v -0.066448 -0.166408 0.354077
|
||||
v -0.140632 -0.266188 0.270999
|
||||
v -0.190200 -0.332858 0.146663
|
||||
v -0.207605 -0.356270 -0.000000
|
||||
v -0.190199 -0.332858 -0.146664
|
||||
v -0.140631 -0.266188 -0.270999
|
||||
v -0.066448 -0.166408 -0.354077
|
||||
v 0.220377 -0.057101 -0.438000
|
||||
v 0.188086 -0.038671 -0.438000
|
||||
v 0.303465 0.088470 -0.404659
|
||||
v 0.271175 0.106901 -0.404659
|
||||
v 0.373905 0.211880 -0.309713
|
||||
v 0.341614 0.230311 -0.309713
|
||||
v 0.420971 0.294340 -0.167615
|
||||
v 0.388680 0.312771 -0.167615
|
||||
v 0.437498 0.323296 0.000000
|
||||
v 0.405208 0.341727 0.000000
|
||||
v 0.420971 0.294340 0.167615
|
||||
v 0.388680 0.312771 0.167615
|
||||
v 0.373905 0.211880 0.309713
|
||||
v 0.341614 0.230311 0.309713
|
||||
v 0.303465 0.088470 0.404659
|
||||
v 0.271175 0.106901 0.404659
|
||||
v 0.220377 -0.057101 0.438000
|
||||
v 0.188086 -0.038671 0.438000
|
||||
v 0.104997 -0.184242 0.404659
|
||||
v 0.104997 -0.184242 -0.404659
|
||||
v 0.166096 -0.026119 -0.383250
|
||||
v 0.238799 0.101256 -0.354077
|
||||
v 0.300433 0.209240 -0.270999
|
||||
v 0.341616 0.281392 -0.146663
|
||||
v 0.356078 0.306728 0.000000
|
||||
v 0.341616 0.281392 0.146664
|
||||
v 0.300433 0.209240 0.270999
|
||||
v 0.238799 0.101256 0.354077
|
||||
v 0.166096 -0.026119 0.383250
|
||||
v 0.093393 -0.153495 0.354077
|
||||
v 0.031759 -0.261478 0.270999
|
||||
v -0.009424 -0.333631 0.146663
|
||||
v -0.023885 -0.358967 -0.000000
|
||||
v -0.009424 -0.333631 -0.146664
|
||||
v 0.031759 -0.261478 -0.270999
|
||||
v 0.093394 -0.153495 -0.354077
|
||||
vt 0.000000 0.054054
|
||||
vt 0.000000 0.000000
|
||||
vt 0.062500 0.000000
|
||||
vt 0.062500 0.054054
|
||||
vt 0.125000 0.000000
|
||||
vt 0.125000 0.054054
|
||||
vt 0.187500 0.000000
|
||||
vt 0.187500 0.054054
|
||||
vt 0.250000 0.000000
|
||||
vt 0.250000 0.054054
|
||||
vt 0.312500 0.000000
|
||||
vt 0.312500 0.054054
|
||||
vt 0.375000 0.000000
|
||||
vt 0.375000 0.054054
|
||||
vt 0.437500 0.000000
|
||||
vt 0.437500 0.054054
|
||||
vt 0.500000 0.000000
|
||||
vt 0.500000 0.054054
|
||||
vt 0.055610 0.293778
|
||||
vt 0.110171 0.184656
|
||||
vt 0.123905 0.225763
|
||||
vt 0.076165 0.321244
|
||||
vt 0.316174 0.801264
|
||||
vt 0.253798 0.852938
|
||||
vt 0.186282 0.852938
|
||||
vt 0.123905 0.801264
|
||||
vt 0.076165 0.705782
|
||||
vt 0.050327 0.581029
|
||||
vt 0.050327 0.445997
|
||||
vt 0.186282 0.174088
|
||||
vt 0.253798 0.174089
|
||||
vt 0.316174 0.225763
|
||||
vt 0.363915 0.321245
|
||||
vt 0.389752 0.445997
|
||||
vt 0.389752 0.581029
|
||||
vt 0.363915 0.705782
|
||||
vt 0.384468 0.733249
|
||||
vt 0.329907 0.842371
|
||||
vt 0.055610 0.733249
|
||||
vt 0.026082 0.590674
|
||||
vt 0.384468 0.293778
|
||||
vt 0.413996 0.436353
|
||||
vt 0.258619 0.901428
|
||||
vt 0.181458 0.901428
|
||||
vt 0.181458 0.125599
|
||||
vt 0.258619 0.125599
|
||||
vt 0.026082 0.436353
|
||||
vt 0.413996 0.590674
|
||||
vt 0.110171 0.842371
|
||||
vt 0.329907 0.184656
|
||||
vt 0.076566 0.705251
|
||||
vt 0.050729 0.580498
|
||||
vt 0.050729 0.445466
|
||||
vt 0.076566 0.320713
|
||||
vt 0.124307 0.225232
|
||||
vt 0.186684 0.173557
|
||||
vt 0.254199 0.173557
|
||||
vt 0.316576 0.225232
|
||||
vt 0.364317 0.320713
|
||||
vt 0.390154 0.445466
|
||||
vt 0.390154 0.580498
|
||||
vt 0.364317 0.705251
|
||||
vt 0.316576 0.800732
|
||||
vt 0.254199 0.852407
|
||||
vt 0.186684 0.852407
|
||||
vt 0.124307 0.800732
|
||||
vt 0.110573 0.841838
|
||||
vt 0.056012 0.732716
|
||||
vt 0.330309 0.841838
|
||||
vt 0.259022 0.900894
|
||||
vt 0.026484 0.590141
|
||||
vt 0.026484 0.435819
|
||||
vt 0.414398 0.435819
|
||||
vt 0.414398 0.590141
|
||||
vt 0.181861 0.900894
|
||||
vt 0.384870 0.732716
|
||||
vt 0.384870 0.293245
|
||||
vt 0.389637 0.582094
|
||||
vt 0.363799 0.706847
|
||||
vt 0.316059 0.802329
|
||||
vt 0.253682 0.854003
|
||||
vt 0.186166 0.854003
|
||||
vt 0.123790 0.802329
|
||||
vt 0.076049 0.706847
|
||||
vt 0.050212 0.582094
|
||||
vt 0.050212 0.447062
|
||||
vt 0.076049 0.322309
|
||||
vt 0.123790 0.226828
|
||||
vt 0.186166 0.175153
|
||||
vt 0.253682 0.175153
|
||||
vt 0.316058 0.226828
|
||||
vt 0.363799 0.322310
|
||||
vt 0.389637 0.447062
|
||||
vt 0.413881 0.437419
|
||||
vt 0.413881 0.591741
|
||||
vt 0.258504 0.126666
|
||||
vt 0.329792 0.185722
|
||||
vt 0.384353 0.734315
|
||||
vt 0.329792 0.843437
|
||||
vt 0.055495 0.294844
|
||||
vt 0.110056 0.185722
|
||||
vt 0.384353 0.294844
|
||||
vt 0.181343 0.126666
|
||||
vt 0.025967 0.437419
|
||||
g pies_Cylinder_pie
|
||||
s off
|
||||
f 1/1 2/2 4/3 3/4
|
||||
f 3/4 4/3 6/5 5/6
|
||||
f 5/6 6/5 8/7 7/8
|
||||
f 7/8 8/7 10/9 9/10
|
||||
f 9/10 10/9 12/11 11/12
|
||||
f 11/12 12/11 14/13 13/14
|
||||
f 13/14 14/13 16/15 15/16
|
||||
f 15/16 16/15 18/17 17/18
|
||||
f 20/19 19/20 35/21 36/22
|
||||
f 27/23 26/24 41/25 40/26 39/27 38/28 37/29 36/22 35/21 34/30 33/31 32/32 31/33 30/34 29/35 28/36
|
||||
f 6/37 4/38 27/23 28/36
|
||||
f 23/39 22/40 38/28 39/27
|
||||
f 12/41 10/42 30/34 31/33
|
||||
f 2/43 25/44 41/25 26/24
|
||||
f 4/38 2/43 26/24 27/23
|
||||
f 18/45 16/46 33/31 34/30
|
||||
f 21/47 20/19 36/22 37/29
|
||||
f 8/48 6/37 28/36 29/35
|
||||
f 24/49 23/39 39/27 40/26
|
||||
f 14/50 12/41 31/33 32/32
|
||||
f 19/20 18/45 34/30 35/21
|
||||
f 22/40 21/47 37/29 38/28
|
||||
f 10/42 8/48 29/35 30/34
|
||||
f 25/44 24/49 40/26 41/25
|
||||
f 16/46 14/50 32/32 33/31
|
||||
f 42/1 43/2 45/3 44/4
|
||||
f 44/4 45/3 47/5 46/6
|
||||
f 46/6 47/5 49/7 48/8
|
||||
f 48/8 49/7 51/9 50/10
|
||||
f 50/10 51/9 53/11 52/12
|
||||
f 52/12 53/11 55/13 54/14
|
||||
f 54/14 55/13 57/15 56/16
|
||||
f 56/16 57/15 59/17 58/18
|
||||
f 63/51 62/52 77/53 76/54 75/55 74/56 73/57 72/58 71/59 70/60 69/61 68/62 67/63 66/64 65/65 64/66
|
||||
f 47/67 45/68 63/51 64/66
|
||||
f 53/69 51/70 66/64 67/63
|
||||
f 43/71 61/72 77/53 62/52
|
||||
f 45/68 43/71 62/52 63/51
|
||||
f 59/73 57/74 69/61 70/60
|
||||
f 49/75 47/67 64/66 65/65
|
||||
f 55/76 53/69 67/63 68/62
|
||||
f 60/77 59/73 70/60 71/59
|
||||
f 51/70 49/75 65/65 66/64
|
||||
f 57/74 55/76 68/62 69/61
|
||||
f 78/1 79/2 81/3 80/4
|
||||
f 80/4 81/3 83/5 82/6
|
||||
f 82/6 83/5 85/7 84/8
|
||||
f 84/8 85/7 87/9 86/10
|
||||
f 86/10 87/9 89/11 88/12
|
||||
f 88/12 89/11 91/13 90/14
|
||||
f 90/14 91/13 93/15 92/16
|
||||
f 92/16 93/15 95/17 94/18
|
||||
f 99/78 98/79 113/80 112/81 111/82 110/83 109/84 108/85 107/86 106/87 105/88 104/89 103/90 102/91 101/92 100/93
|
||||
f 83/94 81/95 99/78 100/93
|
||||
f 89/96 87/97 102/91 103/90
|
||||
f 79/98 97/99 113/80 98/79
|
||||
f 81/95 79/98 98/79 99/78
|
||||
f 95/100 93/101 105/88 106/87
|
||||
f 85/102 83/94 100/93 101/92
|
||||
f 91/103 89/96 103/90 104/89
|
||||
f 96/104 95/100 106/87 107/86
|
||||
f 87/97 85/102 101/92 102/91
|
||||
f 93/101 91/103 104/89 105/88
|
||||
o basket_Cube.001
|
||||
v -0.500000 -0.500000 0.500000
|
||||
v -0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 -0.500000
|
||||
v 0.500000 -0.500000 0.500000
|
||||
v -0.500000 0.500000 0.500000
|
||||
v -0.500000 0.500000 -0.500000
|
||||
v 0.500000 0.500000 -0.500000
|
||||
v 0.500000 0.500000 0.500000
|
||||
v -0.437500 0.500000 0.437500
|
||||
v -0.437500 0.500000 -0.437500
|
||||
v 0.437500 0.500000 -0.437500
|
||||
v 0.437500 0.500000 0.437500
|
||||
v -0.437500 -0.437500 0.437500
|
||||
v -0.437500 -0.437500 -0.437500
|
||||
v 0.437500 -0.437500 -0.437500
|
||||
v 0.437500 -0.437500 0.437500
|
||||
vt 0.484848 0.984848
|
||||
vt 0.015152 0.984848
|
||||
vt 0.015152 0.515152
|
||||
vt 0.484848 0.515152
|
||||
vt 0.515152 0.984848
|
||||
vt 0.515152 0.515152
|
||||
vt 0.984848 0.515152
|
||||
vt 0.984848 0.984848
|
||||
vt 0.954545 0.545455
|
||||
vt 0.545455 0.545455
|
||||
vt 0.954545 0.954545
|
||||
vt 0.545455 0.954545
|
||||
g basket_Cube.001_basket
|
||||
s off
|
||||
f 118/105 119/106 115/107 114/108
|
||||
f 119/105 120/106 116/107 115/108
|
||||
f 120/105 121/106 117/107 116/108
|
||||
f 121/105 118/106 114/107 117/108
|
||||
f 114/109 115/110 116/111 117/112
|
||||
f 118/110 121/111 125/113 122/114
|
||||
f 121/111 120/112 124/115 125/113
|
||||
f 120/112 119/109 123/116 124/115
|
||||
f 119/109 118/110 122/114 123/116
|
||||
f 122/105 125/106 129/107 126/108
|
||||
f 125/105 124/106 128/107 129/108
|
||||
f 124/105 123/106 127/107 128/108
|
||||
f 123/105 122/106 126/107 127/108
|
||||
f 126/114 129/113 128/115 127/116
|
||||
@@ -0,0 +1,329 @@
|
||||
# Blender v2.73 (sub 0) OBJ File: 'bush.blend'
|
||||
# www.blender.org
|
||||
o nodebox-4
|
||||
v 0.467076 -0.122686 -0.190481
|
||||
v -0.453590 -0.119789 -0.192145
|
||||
v 0.420865 -0.181680 -0.171396
|
||||
v -0.429008 -0.188000 -0.182314
|
||||
v -0.450977 0.041977 -0.191409
|
||||
v -0.271687 -0.294075 -0.114977
|
||||
v -0.096925 -0.495759 -0.044091
|
||||
v -0.070286 -0.344209 -0.030750
|
||||
v -0.163971 -0.173437 -0.403793
|
||||
v -0.188139 -0.116431 0.446425
|
||||
v 0.069865 0.462329 0.170043
|
||||
v -0.175980 -0.180649 0.417932
|
||||
v -0.184276 0.039248 0.437271
|
||||
v -0.121692 -0.319322 0.290049
|
||||
v -0.039557 -0.495759 0.097032
|
||||
v -0.029307 -0.346230 0.070496
|
||||
v -0.440307 0.205163 -0.203598
|
||||
v -0.440281 0.206327 0.191785
|
||||
v -0.339366 0.327086 -0.144329
|
||||
v -0.267923 0.418413 0.108270
|
||||
v -0.264994 0.405691 -0.113216
|
||||
v 0.173823 0.186657 0.424935
|
||||
v -0.172109 0.470396 -0.073638
|
||||
v -0.090743 0.491063 -0.039539
|
||||
v -0.173625 0.180559 0.412022
|
||||
v 0.108534 0.404586 0.263698
|
||||
v -0.137870 0.317286 0.327397
|
||||
v 0.149454 0.342906 0.361857
|
||||
v -0.115069 0.426252 0.274637
|
||||
v 0.116858 -0.311812 0.284557
|
||||
v -0.074459 0.465500 0.178311
|
||||
v -0.036397 0.486640 0.094150
|
||||
v 0.044199 -0.495759 -0.101459
|
||||
v 0.034559 -0.377127 -0.079219
|
||||
v 0.116886 -0.299764 -0.276145
|
||||
v -0.172864 0.462259 0.069984
|
||||
v 0.173974 -0.178414 -0.411782
|
||||
v 0.191827 0.042411 -0.453422
|
||||
v 0.190055 -0.117435 -0.449613
|
||||
v -0.136929 0.321997 -0.339476
|
||||
v 0.101567 -0.495759 0.039664
|
||||
v 0.076778 -0.365788 0.030191
|
||||
v 0.292232 -0.320027 0.121743
|
||||
v -0.067752 0.451498 -0.167691
|
||||
v 0.433751 -0.189348 0.181586
|
||||
v 0.457624 0.044950 0.184732
|
||||
v 0.473778 -0.128221 0.198329
|
||||
v -0.113891 -0.307852 -0.282552
|
||||
v 0.081961 0.458662 -0.191580
|
||||
v 0.042947 0.491063 -0.093885
|
||||
v 0.109202 0.397842 -0.257691
|
||||
v 0.145450 0.328672 -0.343352
|
||||
v 0.191241 0.038411 0.444768
|
||||
v -0.184306 0.045052 -0.456452
|
||||
v -0.289997 -0.318897 0.117161
|
||||
v 0.182461 0.185982 -0.431178
|
||||
v 0.180190 0.469152 0.074510
|
||||
v 0.097292 0.491063 0.039804
|
||||
v 0.264954 0.412421 0.110505
|
||||
v 0.355939 0.336100 0.148277
|
||||
v -0.474575 0.042725 0.191924
|
||||
v -0.169486 0.185035 -0.418844
|
||||
v -0.445009 -0.118527 0.180804
|
||||
v 0.427054 0.187979 0.172057
|
||||
v 0.350926 0.339079 -0.143384
|
||||
v 0.189060 -0.125023 0.462241
|
||||
v 0.269270 -0.290650 -0.109472
|
||||
v 0.175816 -0.186803 0.429367
|
||||
v 0.259570 0.406980 -0.105942
|
||||
v -0.103158 0.398344 -0.255462
|
||||
v -0.339105 0.330270 0.137302
|
||||
v -0.186029 -0.123369 -0.460126
|
||||
v -0.418539 -0.180131 0.169838
|
||||
v 0.041492 0.491063 0.094145
|
||||
v 0.487251 0.041118 -0.191308
|
||||
v 0.173059 0.459504 -0.070716
|
||||
v 0.460259 0.206607 -0.196213
|
||||
v 0.108065 0.487446 -0.045199
|
||||
v -0.103423 0.491173 0.040772
|
||||
v -0.040665 0.496765 -0.107957
|
||||
v -0.070153 -0.343292 0.028053
|
||||
v -0.028215 -0.347521 -0.072596
|
||||
v 0.028031 -0.329368 0.067986
|
||||
v 0.075170 -0.358957 -0.031186
|
||||
v -0.037332 -0.495759 -0.099759
|
||||
v 0.099867 -0.495759 -0.041867
|
||||
v -0.095225 -0.495759 0.037440
|
||||
v 0.041974 -0.495759 0.095332
|
||||
v 0.001777 0.503796 -0.003546
|
||||
v 0.002321 -0.495758 -0.002214
|
||||
vt 0.875000 0.281250
|
||||
vt 1.000000 0.281250
|
||||
vt 1.000000 0.421875
|
||||
vt 0.875000 0.421875
|
||||
vt 0.375000 0.125000
|
||||
vt 0.500000 0.125000
|
||||
vt 0.500000 0.234375
|
||||
vt 0.375000 0.234375
|
||||
vt 0.625000 0.234375
|
||||
vt 0.625000 0.281250
|
||||
vt 0.500000 0.281250
|
||||
vt 0.500000 0.609375
|
||||
vt 0.500000 0.656250
|
||||
vt 0.375000 0.656250
|
||||
vt 0.375000 0.609375
|
||||
vt 0.625000 0.421875
|
||||
vt 0.500000 0.421875
|
||||
vt 0.375000 0.281250
|
||||
vt 0.375000 0.421875
|
||||
vt 0.125000 0.609375
|
||||
vt 0.125000 0.656250
|
||||
vt 0.000000 0.656250
|
||||
vt 0.000000 0.609375
|
||||
vt 0.846670 0.983596
|
||||
vt 0.823789 0.862038
|
||||
vt 0.861831 0.862038
|
||||
vt 0.500000 0.531250
|
||||
vt 0.375000 0.531250
|
||||
vt 0.234375 0.609375
|
||||
vt 0.234375 0.531250
|
||||
vt 0.875000 0.234375
|
||||
vt 0.750000 0.234375
|
||||
vt 0.750000 0.125000
|
||||
vt 0.875000 0.125000
|
||||
vt 0.125000 0.234375
|
||||
vt 0.125000 0.125000
|
||||
vt 0.234375 0.125000
|
||||
vt 0.234375 0.234375
|
||||
vt 0.125000 0.281250
|
||||
vt 0.234375 0.281250
|
||||
vt 0.234375 0.421875
|
||||
vt 0.125000 0.421875
|
||||
vt 0.125000 0.703125
|
||||
vt 0.000000 0.703125
|
||||
vt 0.875000 0.656250
|
||||
vt 0.750000 0.656250
|
||||
vt 0.750000 0.609375
|
||||
vt 0.875000 0.609375
|
||||
vt 0.625000 0.656250
|
||||
vt 0.625000 0.609375
|
||||
vt 0.234375 0.656250
|
||||
vt 0.375000 0.703125
|
||||
vt 0.234375 0.703125
|
||||
vt 0.125000 0.531250
|
||||
vt 0.875000 0.531250
|
||||
vt 1.000000 0.531250
|
||||
vt 1.000000 0.609375
|
||||
vt 0.500000 0.703125
|
||||
vt 0.000000 0.421875
|
||||
vt 0.000000 0.531250
|
||||
vt 0.875000 0.703125
|
||||
vt 0.750000 0.703125
|
||||
vt 0.328125 0.812500
|
||||
vt 0.328125 0.875000
|
||||
vt 0.265625 0.890625
|
||||
vt 0.265625 0.781250
|
||||
vt 0.750000 0.531250
|
||||
vt 1.000000 0.234375
|
||||
vt -0.000000 0.281250
|
||||
vt 0.000000 0.234375
|
||||
vt 0.375000 0.921875
|
||||
vt 0.328125 0.984375
|
||||
vt 0.562500 0.812500
|
||||
vt 0.500000 0.828125
|
||||
vt 0.625000 0.125000
|
||||
vt 0.625000 0.531250
|
||||
vt 0.970570 0.983596
|
||||
vt 0.918853 0.862038
|
||||
vt 0.983390 0.862038
|
||||
vt 1.000000 0.703125
|
||||
vt 1.000000 0.656250
|
||||
vt 0.694849 0.983596
|
||||
vt 0.653099 0.862038
|
||||
vt 0.703461 0.862038
|
||||
vt 0.453125 1.000000
|
||||
vt 0.437500 0.937500
|
||||
vt 0.546875 0.937500
|
||||
vt 0.375000 0.765625
|
||||
vt 0.625000 0.703125
|
||||
vt 0.750000 0.281250
|
||||
vt 0.000000 0.125000
|
||||
vt 0.781059 0.974219
|
||||
vt 0.740272 0.862038
|
||||
vt 0.773590 0.862038
|
||||
vt 0.823762 0.862067
|
||||
vt 0.773656 0.862066
|
||||
vt 0.800723 0.801332
|
||||
vt 0.750000 0.421875
|
||||
vt 1.000000 0.125000
|
||||
vt 0.881508 0.980225
|
||||
vt 0.923791 0.982865
|
||||
vt 0.819499 0.959318
|
||||
vt 0.634200 0.973424
|
||||
vt 0.659430 0.971277
|
||||
vt 0.724959 0.956989
|
||||
vt 0.755822 0.968617
|
||||
vt 0.125000 0.000000
|
||||
vt 0.234375 0.000000
|
||||
vt 0.375000 0.000000
|
||||
vt 0.500000 0.000000
|
||||
vt 0.750000 0.000000
|
||||
vt 0.875000 0.000000
|
||||
vt 1.000000 0.000000
|
||||
vt 0.625000 0.000000
|
||||
vt 0.000000 0.000000
|
||||
vt 0.618713 0.862038
|
||||
vt 0.453125 0.781250
|
||||
vt 0.484375 0.890625
|
||||
vt 0.406250 0.859375
|
||||
vt 0.738525 0.828462
|
||||
vt 0.741806 0.778103
|
||||
vt 0.777683 0.740596
|
||||
vt 0.827789 0.740597
|
||||
vt 0.862920 0.774201
|
||||
vt 0.859639 0.824560
|
||||
s off
|
||||
f 63/1 10/2 13/3 61/4
|
||||
f 67/5 35/6 37/7 3/8
|
||||
f 9/9 72/10 39/11 37/7
|
||||
f 52/12 51/13 69/14 65/15
|
||||
f 72/10 54/16 38/17 39/11
|
||||
f 1/18 39/11 38/17 75/19
|
||||
f 28/20 26/21 29/22 27/23
|
||||
f 82/24 33/25 85/26
|
||||
f 75/19 38/17 56/27 77/28
|
||||
f 77/28 65/15 60/29 64/30
|
||||
f 73/31 4/32 6/33 55/34
|
||||
f 68/35 30/36 43/37 45/38
|
||||
f 66/39 47/40 46/41 53/42
|
||||
f 11/43 31/44 29/22 26/21
|
||||
f 20/45 21/46 19/47 71/48
|
||||
f 70/49 40/50 19/47 21/46
|
||||
f 59/51 69/14 76/52 57/53
|
||||
f 3/8 37/7 39/11 1/18
|
||||
f 28/20 22/54 64/30 60/29
|
||||
f 71/48 18/55 25/56 27/57
|
||||
f 69/14 51/13 49/58 76/52
|
||||
f 13/59 53/42 22/54 25/60
|
||||
f 36/61 23/62 21/46 20/45
|
||||
f 58/63 74/64 11/65 57/66
|
||||
f 57/53 11/43 26/21 59/51
|
||||
f 19/47 17/67 18/55 71/48
|
||||
f 73/31 12/68 10/2 63/1
|
||||
f 68/35 66/39 10/69 12/70
|
||||
f 74/64 32/71 31/72 11/65
|
||||
f 53/42 46/41 64/30 22/54
|
||||
f 25/56 18/55 61/4 13/3
|
||||
f 49/58 44/73 80/74
|
||||
f 45/38 3/8 1/18 47/40
|
||||
f 9/9 48/75 6/33 4/32
|
||||
f 62/76 40/50 52/12 56/27
|
||||
f 81/77 7/78 87/79
|
||||
f 31/80 36/61 20/45 29/81
|
||||
f 83/82 15/83 88/84
|
||||
f 36/85 79/86 23/87
|
||||
f 78/88 58/63 57/66
|
||||
f 17/67 19/47 40/50 62/76
|
||||
f 45/38 47/40 66/39 68/35
|
||||
f 51/13 70/49 44/89 49/58
|
||||
f 4/32 73/31 63/1 2/90
|
||||
f 12/70 14/91 30/36 68/35
|
||||
f 84/92 41/93 86/94
|
||||
f 33/95 86/96 90/97
|
||||
f 70/49 21/46 23/62 44/89
|
||||
f 54/16 62/76 56/27 38/17
|
||||
f 29/81 20/45 71/48 27/57
|
||||
f 37/7 35/6 48/75 9/9
|
||||
f 5/98 17/67 62/76 54/16
|
||||
f 18/55 17/67 5/98 61/4
|
||||
f 10/69 66/39 53/42 13/59
|
||||
f 12/68 73/31 55/34 14/99
|
||||
f 51/13 52/12 40/50 70/49
|
||||
f 27/23 25/60 22/54 28/20
|
||||
f 65/15 69/14 59/51 60/29
|
||||
f 56/27 52/12 65/15 77/28
|
||||
f 46/41 75/19 77/28 64/30
|
||||
f 60/29 59/51 26/21 28/20
|
||||
f 47/40 1/18 75/19 46/41
|
||||
f 2/90 5/98 54/16 72/10
|
||||
f 4/32 2/90 72/10 9/9
|
||||
f 43/37 67/5 3/8 45/38
|
||||
f 2/90 63/1 61/4 5/98
|
||||
f 82/100 7/78 8/101
|
||||
f 82/24 34/102 33/25
|
||||
f 81/103 15/83 16/104
|
||||
f 81/77 8/101 7/78
|
||||
f 83/82 41/93 42/105
|
||||
f 83/82 16/104 15/83
|
||||
f 84/92 33/25 34/102
|
||||
f 84/92 42/106 41/93
|
||||
f 30/36 83/107 42/108 43/37
|
||||
f 42/108 84/109 67/5 43/37
|
||||
f 67/5 84/109 34/110 35/6
|
||||
f 55/34 6/33 8/111 81/112
|
||||
f 55/34 81/112 16/113 14/99
|
||||
f 34/110 82/114 48/75 35/6
|
||||
f 48/75 82/114 8/111 6/33
|
||||
f 30/36 14/91 16/115 83/107
|
||||
f 7/78 82/100 85/26
|
||||
f 15/83 81/103 87/116
|
||||
f 41/93 83/82 88/84
|
||||
f 33/25 84/92 86/94
|
||||
f 80/74 50/117 49/58
|
||||
f 23/87 24/118 80/74
|
||||
f 80/74 44/73 23/87
|
||||
f 79/86 36/85 31/72
|
||||
f 79/86 24/118 23/87
|
||||
f 31/72 32/71 79/86
|
||||
f 78/88 49/58 50/117
|
||||
f 78/88 57/66 76/52
|
||||
f 76/52 49/58 78/88
|
||||
f 24/118 79/86 89/119
|
||||
f 79/86 32/71 89/119
|
||||
f 32/71 74/64 89/119
|
||||
f 74/64 58/63 89/119
|
||||
f 58/63 78/88 89/119
|
||||
f 78/88 50/117 89/119
|
||||
f 50/117 80/74 89/119
|
||||
f 80/74 24/118 89/119
|
||||
f 86/96 41/120 90/97
|
||||
f 41/120 88/121 90/97
|
||||
f 88/121 15/122 90/97
|
||||
f 15/122 87/123 90/97
|
||||
f 87/123 7/124 90/97
|
||||
f 7/124 85/125 90/97
|
||||
f 85/125 33/95 90/97
|
||||
@@ -0,0 +1,215 @@
|
||||
-- support for i18n
|
||||
local S = minetest.get_translator("bushes_classic")
|
||||
|
||||
plantlife_bushes = {}
|
||||
|
||||
-- TODO: add support for nodebreakers? those dig like mese picks
|
||||
plantlife_bushes.after_dig_node = function(pos, oldnode, oldmetadata, digger)
|
||||
if not (digger and pos and oldnode) then
|
||||
return
|
||||
end
|
||||
|
||||
-- find out which bush type we are dealing with
|
||||
local bush_name = ""
|
||||
local can_harvest = false
|
||||
|
||||
if oldnode.name == "bushes:fruitless_bush" then
|
||||
-- this bush has not grown fruits yet (but will eventually)
|
||||
bush_name = oldmetadata.fields.bush_type
|
||||
-- no fruits to be found, so can_harvest stays false
|
||||
else
|
||||
local name_parts = oldnode.name:split(":")
|
||||
if #name_parts >= 2 and name_parts[2] ~= nil then
|
||||
|
||||
name_parts = name_parts[2]:split("_")
|
||||
|
||||
if #name_parts >= 2 and name_parts[1] ~= nil then
|
||||
bush_name = name_parts[1]
|
||||
-- this bush really carries fruits
|
||||
can_harvest = true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- find out which tool the digger was wielding (if any)
|
||||
local toolstack = digger:get_wielded_item()
|
||||
local capabilities = toolstack:get_tool_capabilities()
|
||||
|
||||
-- what the player will get
|
||||
local harvested
|
||||
|
||||
-- failure to find out what the tool can do: destroy the bush and return nothing
|
||||
local groupcaps = capabilities.groupcaps
|
||||
if not groupcaps then
|
||||
return
|
||||
|
||||
-- digging with the hand or something like that
|
||||
elseif groupcaps.snappy then
|
||||
|
||||
-- plant a new bush without fruits
|
||||
minetest.swap_node(pos, {type = "node", name = "bushes:fruitless_bush"})
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string('bush_type', bush_name)
|
||||
|
||||
-- construct the stack of fruits the player will get
|
||||
-- only bushes that have grown fruits can actually give fruits
|
||||
if can_harvest then
|
||||
local amount = "4"
|
||||
harvested = "bushes:" .. bush_name .. " " .. amount
|
||||
end
|
||||
|
||||
-- something like a shovel
|
||||
elseif groupcaps.crumbly then
|
||||
|
||||
-- with a chance of 1/3, return 2 bushes
|
||||
local amount
|
||||
if can_harvest and math.random(1,3) == 1 then
|
||||
amount = "2"
|
||||
else
|
||||
amount = "1"
|
||||
end
|
||||
-- return the bush itself
|
||||
harvested = "bushes:" .. bush_name .. "_bush "..amount
|
||||
|
||||
-- something like an axe
|
||||
elseif groupcaps.choppy then
|
||||
|
||||
-- the amount of sticks may vary
|
||||
local amount = math.random(4, 20)
|
||||
-- return some sticks
|
||||
harvested = "default:stick " .. amount
|
||||
|
||||
-- nothing known - destroy the plant
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
-- give the harvested result to the player
|
||||
if harvested then
|
||||
--minetest.chat_send_player("singleplayer","you would now get "..tostring( harvested ) );
|
||||
local itemstack = ItemStack(harvested)
|
||||
local inventory = digger:get_inventory()
|
||||
if inventory:room_for_item("main", itemstack) then
|
||||
inventory:add_item("main", itemstack)
|
||||
else
|
||||
minetest.item_drop(itemstack, digger, pos)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
plantlife_bushes.after_place_node = function(pos, placer, itemstack)
|
||||
|
||||
if not (itemstack and pos) then
|
||||
return
|
||||
end
|
||||
|
||||
local name_parts = itemstack:get_name():split(":")
|
||||
if #name_parts < 2 or name_parts[2] == nil then
|
||||
return
|
||||
end
|
||||
|
||||
name_parts = name_parts[2]:split("_")
|
||||
|
||||
if #name_parts < 2 or name_parts[1] == nil then
|
||||
return
|
||||
end
|
||||
|
||||
minetest.swap_node(pos, {name = "bushes:fruitless_bush"})
|
||||
local meta = minetest.get_meta(pos)
|
||||
meta:set_string("bush_type", name_parts[1])
|
||||
end
|
||||
|
||||
-- regrow berries (uses a base abm instead of biome_lib because of the use of metadata).
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"bushes:fruitless_bush"},
|
||||
neighbors = {"group:soil", "group:potting_soil"},
|
||||
interval = 500,
|
||||
chance = 5,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
|
||||
local meta = minetest.get_meta(pos)
|
||||
local bush_name = meta:get_string("bush_type")
|
||||
|
||||
if bush_name and bush_name ~= "" then
|
||||
local dirtpos = {x = pos.x, y = pos.y-1, z = pos.z}
|
||||
local dirt = minetest.get_node(dirtpos)
|
||||
local is_soil = minetest.get_item_group(dirt.name, "soil") or minetest.get_item_group(dirt.name, "potting_soil")
|
||||
|
||||
if is_soil and (dirt.name == "farming:soil_wet" or math.random(1,3) == 1) then
|
||||
minetest.swap_node( pos, {name = "bushes:" .. bush_name .. "_bush"})
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
-- Define the basket and bush nodes
|
||||
|
||||
for i, bush_name in ipairs(bushes_classic.bushes) do
|
||||
|
||||
minetest.register_node(":bushes:basket_"..bush_name, {
|
||||
description = bushes_classic.bushes_descriptions[i][5],
|
||||
drawtype = "mesh",
|
||||
mesh = "bushes_basket_full.obj",
|
||||
tiles = {
|
||||
"bushes_basket_pie_"..bush_name..".png",
|
||||
"bushes_basket.png"
|
||||
},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
on_use = minetest.item_eat(18),
|
||||
groups = { dig_immediate = 3 },
|
||||
is_ground_content = false,
|
||||
})
|
||||
|
||||
|
||||
local groups = {snappy = 3, bush = 1, flammable = 2, attached_node=1}
|
||||
if bush_name == "mixed_berry" then
|
||||
bush_name = "fruitless";
|
||||
groups.not_in_creative_inventory = 1
|
||||
end
|
||||
|
||||
local node_dig_prediction
|
||||
local node_placement_prediction
|
||||
if bush_name ~= "fruitless" then
|
||||
node_dig_prediction = "bushes:fruitless_bush"
|
||||
node_placement_prediction = "bushes:fruitless_bush"
|
||||
end
|
||||
|
||||
minetest.register_node(":bushes:" .. bush_name .. "_bush", {
|
||||
description = bushes_classic.bushes_descriptions[i][6],
|
||||
drawtype = "mesh",
|
||||
mesh = "bushes_bush.obj",
|
||||
tiles = {"bushes_bush_"..bush_name..".png"},
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
walkable = false,
|
||||
groups = groups,
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
drop = "",
|
||||
node_dig_prediction = node_dig_prediction,
|
||||
node_placement_prediction = node_placement_prediction,
|
||||
after_dig_node = function( pos, oldnode, oldmetadata, digger )
|
||||
return plantlife_bushes.after_dig_node(pos, oldnode, oldmetadata, digger);
|
||||
end,
|
||||
after_place_node = function( pos, placer, itemstack )
|
||||
return plantlife_bushes.after_place_node(pos, placer, itemstack);
|
||||
end,
|
||||
})
|
||||
|
||||
-- do not spawn fruitless bushes
|
||||
if bush_name ~= "fruitless" then
|
||||
table.insert(bushes_classic.spawn_list, "bushes:"..bush_name.."_bush")
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node(":bushes:basket_empty", {
|
||||
description = S("Basket"),
|
||||
drawtype = "mesh",
|
||||
mesh = "bushes_basket_empty.obj",
|
||||
tiles = { "bushes_basket.png" },
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = { dig_immediate = 3 },
|
||||
is_ground_content = false,
|
||||
})
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.7 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 601 B |
|
After Width: | Height: | Size: 612 B |
|
After Width: | Height: | Size: 341 B |
|
After Width: | Height: | Size: 1.6 KiB |
|
After Width: | Height: | Size: 602 B |
|
After Width: | Height: | Size: 606 B |
|
After Width: | Height: | Size: 347 B |
|
After Width: | Height: | Size: 6.6 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 979 B |
|
After Width: | Height: | Size: 607 B |
|
After Width: | Height: | Size: 597 B |
|
After Width: | Height: | Size: 348 B |
|
After Width: | Height: | Size: 565 B |
|
After Width: | Height: | Size: 586 B |
|
After Width: | Height: | Size: 337 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 613 B |
|
After Width: | Height: | Size: 610 B |
|
After Width: | Height: | Size: 352 B |
|
After Width: | Height: | Size: 1.9 KiB |
|
After Width: | Height: | Size: 577 B |
|
After Width: | Height: | Size: 606 B |
|
After Width: | Height: | Size: 339 B |
|
After Width: | Height: | Size: 2.0 KiB |
@@ -0,0 +1,2 @@
|
||||
dofile(minetest.get_modpath("cavestuff").."/nodes.lua")
|
||||
dofile(minetest.get_modpath("cavestuff").."/mapgen.lua")
|
||||
@@ -0,0 +1,4 @@
|
||||
# textdomain: cavestuff
|
||||
Pebble=Kieselstein
|
||||
Desert Pebble=Wüstenkiesel
|
||||
Stalactite=Stalaktit
|
||||
@@ -0,0 +1,4 @@
|
||||
# textdomain: cavestuff
|
||||
Pebble=Ŝtoneto
|
||||
Desert Pebble=Dezerta Ŝtoneto
|
||||
Stalactite=Stalaktito
|
||||
@@ -0,0 +1,4 @@
|
||||
# textdomain: cavestuff
|
||||
Pebble=Caillou
|
||||
Desert Pebble=Caillou du désert
|
||||
Stalactite=Stalactite
|
||||
@@ -0,0 +1,4 @@
|
||||
# textdomain: cavestuff
|
||||
Pebble=
|
||||
Desert Pebble=
|
||||
Stalactite=
|
||||
@@ -0,0 +1,65 @@
|
||||
--Map Generation Stuff
|
||||
|
||||
minetest.register_decoration({
|
||||
decoration = {
|
||||
"cavestuff:pebble_1",
|
||||
"cavestuff:pebble_2"
|
||||
},
|
||||
place_on = {
|
||||
"default:dirt_with_grass",
|
||||
"default:gravel",
|
||||
"default:stone",
|
||||
"default:permafrost_with_stones"
|
||||
},
|
||||
noise_params = {
|
||||
offset = 0,
|
||||
scale = 0.0078125,
|
||||
spread = {
|
||||
y = 100,
|
||||
z = 100,
|
||||
x = 100
|
||||
},
|
||||
seed = 0,
|
||||
octaves = 3,
|
||||
persist = 0.6,
|
||||
flags = "absvalue",
|
||||
lacunarity = 2
|
||||
},
|
||||
param2 = 0,
|
||||
flags = "all_floors",
|
||||
deco_type = "simple",
|
||||
param2_max = 3,
|
||||
y_min = -16,
|
||||
y_max = 48
|
||||
})
|
||||
|
||||
minetest.register_decoration({
|
||||
decoration = {
|
||||
"cavestuff:desert_pebble_1",
|
||||
"cavestuff:desert_pebble_2"
|
||||
},
|
||||
place_on = {
|
||||
"default:desert_sand",
|
||||
"default:desert_stone"
|
||||
},
|
||||
noise_params = {
|
||||
offset = 0,
|
||||
scale = 0.0078125,
|
||||
spread = {
|
||||
y = 100,
|
||||
z = 100,
|
||||
x = 100
|
||||
},
|
||||
seed = 0,
|
||||
octaves = 3,
|
||||
persist = 0.6,
|
||||
flags = "absvalue",
|
||||
lacunarity = 2
|
||||
},
|
||||
param2 = 0,
|
||||
flags = "all_floors",
|
||||
deco_type = "simple",
|
||||
param2_max = 3,
|
||||
y_min = -16,
|
||||
y_max = 48
|
||||
})
|
||||
@@ -0,0 +1,2 @@
|
||||
name = cavestuff
|
||||
depends = default
|
||||
@@ -0,0 +1,279 @@
|
||||
# Blender v2.69 (sub 0) OBJ File: ''
|
||||
# www.blender.org
|
||||
mtllib cavestuff_pebble.mtl
|
||||
o Icosphere.001_Icosphere.002
|
||||
v -0.000327 -0.410467 0.180121
|
||||
v -0.235610 -0.410468 0.155391
|
||||
v -0.284796 -0.410468 -0.076018
|
||||
v -0.121985 -0.209219 0.205980
|
||||
v -0.284738 -0.218753 0.040139
|
||||
v -0.201573 -0.219323 -0.168447
|
||||
v -0.100950 -0.116906 0.005837
|
||||
v -0.088586 -0.496875 -0.111804
|
||||
v -0.196648 -0.428134 -0.159917
|
||||
v -0.209011 -0.497294 -0.042276
|
||||
v -0.041805 -0.497429 0.108278
|
||||
v -0.180101 -0.487871 0.093742
|
||||
v -0.120956 -0.428134 0.196184
|
||||
v -0.288163 -0.428135 0.045629
|
||||
v -0.147553 -0.309844 -0.213938
|
||||
v -0.268157 -0.309844 -0.144718
|
||||
v -0.192465 -0.309844 0.211384
|
||||
v -0.054169 -0.309844 0.225920
|
||||
v -0.324717 -0.309844 -0.017682
|
||||
v -0.288965 -0.319377 0.114387
|
||||
v -0.023183 -0.210866 0.195570
|
||||
v -0.221888 -0.201086 0.143956
|
||||
v -0.275798 -0.233149 -0.072011
|
||||
v -0.160094 -0.150509 -0.096605
|
||||
v -0.113314 -0.150508 0.123477
|
||||
v -0.216653 -0.160042 0.030431
|
||||
v 0.073364 -0.397538 -0.267606
|
||||
v 0.268711 -0.397538 -0.091716
|
||||
v 0.161795 -0.397537 0.148424
|
||||
v 0.199614 -0.173928 -0.211396
|
||||
v 0.254265 -0.173928 0.045725
|
||||
v 0.026620 -0.195887 0.177156
|
||||
v -0.061812 -0.173929 -0.238874
|
||||
v 0.049992 -0.055394 -0.045225
|
||||
v 0.178551 -0.485125 -0.072552
|
||||
v 0.063729 -0.498396 -0.175936
|
||||
v 0.192289 -0.417167 -0.203264
|
||||
v -0.056339 -0.417167 -0.229396
|
||||
v -0.070077 -0.496109 -0.098684
|
||||
v 0.115708 -0.497252 0.068599
|
||||
v 0.244268 -0.417167 0.041273
|
||||
v 0.027763 -0.417167 0.166272
|
||||
v -0.001987 -0.285733 -0.289762
|
||||
v -0.109557 -0.285733 -0.245455
|
||||
v 0.258217 -0.285733 -0.165444
|
||||
v 0.151676 -0.285733 -0.273611
|
||||
v 0.235777 -0.285733 0.122059
|
||||
v 0.298622 -0.285733 -0.019093
|
||||
v 0.101971 -0.285733 0.199312
|
||||
v 0.072221 -0.154299 -0.256722
|
||||
v 0.258006 -0.154298 -0.089439
|
||||
v 0.156323 -0.154299 0.138946
|
||||
v 0.137937 -0.086893 -0.142897
|
||||
v -0.015725 -0.073070 -0.159049
|
||||
v 0.170060 -0.073069 0.008234
|
||||
v 0.036254 -0.095028 0.085487
|
||||
v -0.059660 -0.090744 -0.028814
|
||||
v -0.016904 -0.495185 -0.020480
|
||||
v -0.038530 -0.134593 0.104482
|
||||
v 0.018559 -0.297788 0.203363
|
||||
vt 0.999784 0.777888
|
||||
vt 0.781916 0.751069
|
||||
vt 0.930695 0.535842
|
||||
vt 0.718554 0.493678
|
||||
vt 0.498343 0.500066
|
||||
vt 0.612704 0.301958
|
||||
vt 0.278288 0.491767
|
||||
vt 0.136170 0.301428
|
||||
vt 0.385039 0.315647
|
||||
vt 0.861174 0.302958
|
||||
vt 0.817615 0.924676
|
||||
vt 0.662334 0.996212
|
||||
vt 0.719667 0.785775
|
||||
vt 0.955856 0.540882
|
||||
vt 0.919844 0.749017
|
||||
vt 0.810792 0.580191
|
||||
vt 0.698724 0.249779
|
||||
vt 0.882029 0.358101
|
||||
vt 0.648319 0.423681
|
||||
vt 0.738504 0.311189
|
||||
vt 0.859769 0.100574
|
||||
vt 0.955856 0.301223
|
||||
vt 0.603011 0.109855
|
||||
vt 0.889116 0.979094
|
||||
vt 0.625593 0.954685
|
||||
vt 0.572947 0.723101
|
||||
vt 0.629662 0.708272
|
||||
vt 0.361849 0.694965
|
||||
vt 0.626863 0.523494
|
||||
vt 0.877334 0.514944
|
||||
vt 0.753445 0.687054
|
||||
vt 0.678897 0.522004
|
||||
vt 0.804007 0.322784
|
||||
vt 0.508145 0.125975
|
||||
vt 0.614686 0.322544
|
||||
vt 0.274631 0.088482
|
||||
vt 0.046907 0.080882
|
||||
vt 0.724191 0.150589
|
||||
vt 0.955856 0.101994
|
||||
vt 0.459738 0.810380
|
||||
vt 0.524431 0.596612
|
||||
vt 0.614955 0.619521
|
||||
vt 0.385224 0.455707
|
||||
vt 0.518113 0.743431
|
||||
vt 0.397247 0.481913
|
||||
vt 0.473092 0.333636
|
||||
vt 0.593136 0.806842
|
||||
vt 0.542133 0.566645
|
||||
vt 0.245991 0.361941
|
||||
vt 0.291514 0.126530
|
||||
vt 0.515385 0.289890
|
||||
vt 0.348981 0.560141
|
||||
vt 0.480373 0.537386
|
||||
vt 0.705144 0.472239
|
||||
vt 0.601667 0.722403
|
||||
vt 0.283471 0.700220
|
||||
vt 0.061144 0.812481
|
||||
vt 0.120014 0.502516
|
||||
vt 0.080353 0.535703
|
||||
vt 0.356859 0.719702
|
||||
vt 0.417004 0.243099
|
||||
vt 0.001005 0.468262
|
||||
vt 0.186797 0.314823
|
||||
vt 0.187216 0.555587
|
||||
vt 0.094383 0.931756
|
||||
vt 0.003057 0.709324
|
||||
vt 0.238065 0.772821
|
||||
vt 0.569632 0.999536
|
||||
vt 0.323797 1.000000
|
||||
vt 0.482075 0.313011
|
||||
vt 0.735871 0.182001
|
||||
vt 0.032983 0.251846
|
||||
vt 0.574313 0.080491
|
||||
vt 0.318361 0.961238
|
||||
vt 0.229901 0.178033
|
||||
vt 0.256609 0.467686
|
||||
vt 0.464307 0.768933
|
||||
vt 0.865183 0.712997
|
||||
vt 0.725052 0.926500
|
||||
vt 0.093408 0.705147
|
||||
vt 0.230523 0.921209
|
||||
vt 0.968797 0.984796
|
||||
vt 0.210756 0.792236
|
||||
vt 0.477482 0.962103
|
||||
vt 0.256493 0.223509
|
||||
vt 0.000000 0.255402
|
||||
vt 0.543998 0.500902
|
||||
vt 0.362414 0.637562
|
||||
vt 0.469769 0.648982
|
||||
vt 0.379376 0.894841
|
||||
vt 0.246514 0.544201
|
||||
vt 0.117965 0.884444
|
||||
vt 0.047032 0.632888
|
||||
vt 0.079441 0.605161
|
||||
vt 0.000000 0.325670
|
||||
vt 0.241712 0.163133
|
||||
vt 0.470206 0.343559
|
||||
usemtl None
|
||||
s off
|
||||
f 2/1 13/2 17/3
|
||||
f 3/4 14/5 19/6
|
||||
f 2/7 17/8 20/9
|
||||
f 3/4 19/6 16/10
|
||||
f 4/11 21/12 25/13
|
||||
f 5/14 22/15 26/16
|
||||
f 6/17 23/18 24/19
|
||||
f 9/20 10/21 3/22
|
||||
f 9/20 8/23 10/21
|
||||
f 12/24 13/2 2/1
|
||||
f 12/24 11/25 13/2
|
||||
f 11/25 1/26 13/2
|
||||
f 10/27 14/5 3/4
|
||||
f 10/27 12/28 14/5
|
||||
f 12/28 2/7 14/5
|
||||
f 15/29 16/30 6/31
|
||||
f 15/29 9/20 16/30
|
||||
f 9/20 3/22 16/30
|
||||
f 17/3 18/32 4/33
|
||||
f 17/3 13/2 18/32
|
||||
f 13/2 1/26 18/32
|
||||
f 19/6 20/9 5/34
|
||||
f 19/6 14/5 20/9
|
||||
f 14/5 2/7 20/9
|
||||
f 18/32 21/35 4/33
|
||||
f 20/9 22/36 5/34
|
||||
f 20/9 17/8 22/36
|
||||
f 17/8 4/37 22/36
|
||||
f 16/10 23/38 6/39
|
||||
f 16/10 19/6 23/38
|
||||
f 19/6 5/34 23/38
|
||||
f 56/40 57/41 7/42
|
||||
f 57/41 54/43 24/19
|
||||
f 1/26 42/44 49/45
|
||||
f 38/46 9/20 15/29
|
||||
f 25/13 21/12 59/47
|
||||
f 15/29 6/31 44/48
|
||||
f 26/16 25/13 7/42
|
||||
f 26/16 22/15 25/13
|
||||
f 22/15 4/11 25/13
|
||||
f 24/19 26/16 7/42
|
||||
f 24/19 23/18 26/16
|
||||
f 23/18 5/14 26/16
|
||||
f 27/49 36/50 38/46
|
||||
f 32/51 21/35 49/45
|
||||
f 27/49 38/46 43/52
|
||||
f 28/53 37/54 45/55
|
||||
f 29/56 41/57 47/58
|
||||
f 1/26 11/25 42/44
|
||||
f 27/49 43/52 46/59
|
||||
f 28/53 45/55 48/60
|
||||
f 29/56 47/58 49/45
|
||||
f 6/17 24/19 33/61
|
||||
f 30/62 50/63 53/64
|
||||
f 31/65 51/66 55/67
|
||||
f 32/68 52/69 56/40
|
||||
f 35/70 37/54 28/53
|
||||
f 35/70 36/71 37/54
|
||||
f 36/50 27/49 37/72
|
||||
f 9/20 38/46 8/23
|
||||
f 38/46 36/50 39/73
|
||||
f 40/74 41/57 29/56
|
||||
f 40/75 35/70 41/76
|
||||
f 35/70 28/53 41/76
|
||||
f 44/48 38/46 15/29
|
||||
f 38/46 39/73 8/23
|
||||
f 40/74 29/56 42/44
|
||||
f 43/52 44/48 33/77
|
||||
f 43/52 38/46 44/48
|
||||
f 45/55 46/78 30/79
|
||||
f 45/55 37/54 46/78
|
||||
f 37/72 27/49 46/59
|
||||
f 47/80 48/60 31/81
|
||||
f 47/80 41/76 48/60
|
||||
f 41/76 28/53 48/60
|
||||
f 11/25 40/74 42/44
|
||||
f 42/44 29/56 49/45
|
||||
f 46/78 50/82 30/79
|
||||
f 46/59 43/52 50/83
|
||||
f 43/52 33/77 50/83
|
||||
f 48/60 51/84 31/81
|
||||
f 48/60 45/55 51/84
|
||||
f 45/55 30/79 51/84
|
||||
f 49/45 52/85 32/51
|
||||
f 49/45 47/58 52/85
|
||||
f 47/58 31/86 52/85
|
||||
f 18/32 1/26 60/87
|
||||
f 21/35 18/32 60/87
|
||||
f 6/31 33/77 44/48
|
||||
f 53/64 54/43 34/88
|
||||
f 53/64 50/63 54/43
|
||||
f 50/63 33/61 54/43
|
||||
f 55/67 53/64 34/88
|
||||
f 55/67 51/66 53/64
|
||||
f 51/66 30/62 53/64
|
||||
f 56/40 55/67 34/88
|
||||
f 56/40 52/69 55/67
|
||||
f 52/69 31/65 55/67
|
||||
f 57/41 56/40 34/88
|
||||
f 21/12 32/68 56/40
|
||||
f 25/13 59/47 7/42
|
||||
f 54/43 57/41 34/88
|
||||
f 7/42 57/41 24/19
|
||||
f 33/61 24/19 54/43
|
||||
f 11/89 12/90 58/91
|
||||
f 12/90 10/92 58/91
|
||||
f 10/92 8/93 58/91
|
||||
f 8/93 39/94 58/91
|
||||
f 39/94 36/95 58/91
|
||||
f 36/95 35/96 58/91
|
||||
f 35/96 40/97 58/91
|
||||
f 40/97 11/89 58/91
|
||||
f 21/12 56/40 59/47
|
||||
f 59/47 56/40 7/42
|
||||
f 1/26 49/45 60/87
|
||||
f 49/45 21/35 60/87
|
||||
@@ -0,0 +1,160 @@
|
||||
-- support for i18n
|
||||
local S = minetest.get_translator("cavestuff")
|
||||
|
||||
--Rocks
|
||||
|
||||
local cbox = {
|
||||
type = "fixed",
|
||||
fixed = {-5/16, -8/16, -6/16, 5/16, -1/32, 5/16},
|
||||
}
|
||||
|
||||
minetest.register_node("cavestuff:pebble_1",{
|
||||
description = S("Pebble"),
|
||||
drawtype = "mesh",
|
||||
mesh = "cavestuff_pebble.obj",
|
||||
tiles = {"undergrowth_pebble.png"},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky=3, stone=1, attached_node=1, dig_immediate=3},
|
||||
selection_box = cbox,
|
||||
collision_box = cbox,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- place a random pebble node
|
||||
local stack = ItemStack("cavestuff:pebble_"..math.random(1,2))
|
||||
local ret = minetest.item_place(stack, placer, pointed_thing)
|
||||
return ItemStack("cavestuff:pebble_1 "..itemstack:get_count()-(1-ret:get_count()))
|
||||
end,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("cavestuff:pebble_2",{
|
||||
drawtype = "mesh",
|
||||
mesh = "cavestuff_pebble.obj",
|
||||
tiles = {"undergrowth_pebble.png"},
|
||||
drop = "cavestuff:pebble_1",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky=3, stone=1, attached_node=1, not_in_creative_inventory=1, dig_immediate=3},
|
||||
selection_box = cbox,
|
||||
collision_box = cbox,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("cavestuff:desert_pebble_1",{
|
||||
description = S("Desert Pebble"),
|
||||
drawtype = "mesh",
|
||||
mesh = "cavestuff_pebble.obj",
|
||||
tiles = {"default_desert_stone.png"},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky=3, stone=1, attached_node=1, dig_immediate=3},
|
||||
selection_box = cbox,
|
||||
collision_box = cbox,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- place a random pebble node
|
||||
local stack = ItemStack("cavestuff:desert_pebble_"..math.random(1,2))
|
||||
local ret = minetest.item_place(stack, placer, pointed_thing)
|
||||
return ItemStack("cavestuff:desert_pebble_1 "..itemstack:get_count()-(1-ret:get_count()))
|
||||
end,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("cavestuff:desert_pebble_2",{
|
||||
drawtype = "mesh",
|
||||
mesh = "cavestuff_pebble.obj",
|
||||
drop = "cavestuff:desert_pebble_1",
|
||||
tiles = {"default_desert_stone.png"},
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
groups = {cracky=3, stone=1, attached_node=1, not_in_creative_inventory=1, dig_immediate=3},
|
||||
selection_box = cbox,
|
||||
collision_box = cbox,
|
||||
sounds = default.node_sound_stone_defaults(),
|
||||
})
|
||||
|
||||
--Staclactites
|
||||
|
||||
minetest.register_node("cavestuff:stalactite_1",{
|
||||
drawtype="nodebox",
|
||||
tiles = {"undergrowth_pebble.png"},
|
||||
groups = {cracky=3,attached_node=1},
|
||||
is_ground_content = false,
|
||||
description = S("Stalactite"),
|
||||
paramtype = "light",
|
||||
paramtype2 = "wallmounted",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.187500,-0.425000,-0.150003,0.162500,-0.500000,0.162500},
|
||||
{-0.112500,-0.162500,-0.100000,0.087500,-0.475000,0.087500},
|
||||
{-0.062500,0.275000,-0.062500,0.062500,-0.500000,0.062500},
|
||||
{-0.037500,0.837500,0.037500,0.037500,-0.500000,-0.025000},
|
||||
}
|
||||
},
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
local dir = vector.subtract(pointed_thing.above, pointed_thing.under)
|
||||
local base = pointed_thing.under
|
||||
local place = vector.add(base, dir)
|
||||
local above = vector.add(place, dir)
|
||||
|
||||
if not placer then return end
|
||||
local playername = placer:get_player_name()
|
||||
if minetest.is_protected(place, playername)
|
||||
or minetest.is_protected(above, playername) then
|
||||
minetest.record_protection_violation(place, playername)
|
||||
return
|
||||
end
|
||||
|
||||
if minetest.get_node(base).name == "default:stone"
|
||||
and minetest.get_node(place).name == "air"
|
||||
and minetest.get_node(above).name == "air"
|
||||
then
|
||||
minetest.swap_node(place, {
|
||||
name = "cavestuff:stalactite_"..math.random(1,3),
|
||||
param2 = minetest.dir_to_wallmounted(vector.multiply(dir, -1))
|
||||
})
|
||||
if not minetest.is_creative_enabled(playername) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("cavestuff:stalactite_2",{
|
||||
drawtype="nodebox",
|
||||
tiles = {"undergrowth_pebble.png"},
|
||||
groups = {cracky=3,attached_node=1,not_in_creative_inventory=1},
|
||||
is_ground_content = false,
|
||||
drop = "cavestuff:stalactite_1",
|
||||
paramtype = "light",
|
||||
paramtype2 = "wallmounted",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.187500,-0.387500,-0.150003,0.162500,-0.500000,0.162500},
|
||||
{-0.112500,-0.112500,-0.100000,0.087500,-0.475000,0.087500},
|
||||
{-0.062500,0.675000,-0.062500,0.062500,-0.500000,0.062500},
|
||||
{-0.037500,0.975000,0.037500,0.037500,-0.500000,-0.025000},
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
minetest.register_node("cavestuff:stalactite_3",{
|
||||
drawtype="nodebox",
|
||||
tiles = {"undergrowth_pebble.png"},
|
||||
groups = {cracky=3,attached_node=1,not_in_creative_inventory=1},
|
||||
is_ground_content = false,
|
||||
drop = "cavestuff:stalactite_1",
|
||||
paramtype = "light",
|
||||
paramtype2 = "wallmounted",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.187500,-0.387500,-0.150003,0.162500,-0.500000,0.162500},
|
||||
{-0.112500,-0.037500,-0.100000,0.087500,-0.475000,0.087500},
|
||||
{-0.062500,0.437500,-0.062500,0.062500,-0.500000,0.062500},
|
||||
{-0.037500,1.237500,0.037500,0.037500,-0.500000,-0.025000},
|
||||
}
|
||||
},
|
||||
})
|
||||
|
After Width: | Height: | Size: 303 B |
|
After Width: | Height: | Size: 362 B |
@@ -0,0 +1,10 @@
|
||||
Ironzorg's Flowers mod served as the basis for the three mods that eventually
|
||||
went into creating this file. Any code still remaining from that mod is
|
||||
entirely his work (though I'm pretty sure it's all been phased out).
|
||||
|
||||
Flowers textures by Ironzorg.
|
||||
|
||||
Junglegrass textures are modified copies of the original one from the game's
|
||||
default set.
|
||||
|
||||
All remaining code, textures, etc. by Vanessa Ezekowitz.
|
||||
@@ -0,0 +1,359 @@
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Dry Plants - Recipes 0.1.0 -- Short Grass -> Dirt
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- by Mossmanikin
|
||||
-- Looked at code from: darkage, default, farming, sickle, stairs
|
||||
-- Dependencies: default, farming
|
||||
-- Supports: flint, stoneage, sumpf
|
||||
-----------------------------------------------------------------------------------------------
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Short Grass
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_craft({
|
||||
output = "default:dirt",
|
||||
recipe = {
|
||||
{"dryplants:grass_short"},
|
||||
}
|
||||
})
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Cut Grass
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- grass recipes (remove roots)
|
||||
minetest.register_craft({
|
||||
output = "dryplants:grass",
|
||||
recipe = {
|
||||
{"default:grass_1"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({
|
||||
output = "dryplants:grass",
|
||||
recipe = {
|
||||
{"default:junglegrass"},
|
||||
}
|
||||
})
|
||||
if minetest.get_modpath("sumpf") ~= nil then
|
||||
minetest.register_craft({
|
||||
output = "dryplants:grass",
|
||||
recipe = {
|
||||
{"sumpf:gras"},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Sickle
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_craft({
|
||||
output = "dryplants:sickle",
|
||||
recipe = {
|
||||
{"group:stone",""},
|
||||
{"", "default:stick"},
|
||||
{"default:stick",""}
|
||||
}
|
||||
})
|
||||
if minetest.get_modpath("flint") then
|
||||
minetest.register_craft({
|
||||
output = "dryplants:sickle",
|
||||
recipe = {
|
||||
{"flint:flintstone",""},
|
||||
{"", "default:stick"},
|
||||
{"default:stick",""}
|
||||
}
|
||||
})
|
||||
end
|
||||
if minetest.get_modpath("stoneage") then
|
||||
minetest.register_craft({
|
||||
output = "dryplants:sickle",
|
||||
recipe = {
|
||||
{"stoneage:silex",""},
|
||||
{"", "default:stick"},
|
||||
{"default:stick",""}
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Hay
|
||||
-----------------------------------------------------------------------------------------------
|
||||
--cooking
|
||||
minetest.register_craft({
|
||||
type = "cooking",
|
||||
output = "dryplants:hay",
|
||||
recipe = "dryplants:grass",
|
||||
cooktime = 2,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "dryplants:hay",
|
||||
burntime = 1,
|
||||
})
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Wet Reed
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_craft({ -- papyrus -> wetreed
|
||||
output = "dryplants:wetreed 2",
|
||||
recipe = {
|
||||
{"default:papyrus","default:papyrus"},
|
||||
{"default:papyrus","default:papyrus"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- reedmace_sapling -> wetreed
|
||||
output = "dryplants:wetreed 2",
|
||||
recipe = {
|
||||
{"dryplants:reedmace_sapling","dryplants:reedmace_sapling"},
|
||||
{"dryplants:reedmace_sapling","dryplants:reedmace_sapling"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- reedmace_top -> wetreed
|
||||
output = "dryplants:wetreed 2",
|
||||
recipe = {
|
||||
{"dryplants:reedmace_top","dryplants:reedmace_top"},
|
||||
{"dryplants:reedmace_top","dryplants:reedmace_top"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- reedmace -> wetreed
|
||||
output = "dryplants:wetreed 2",
|
||||
recipe = {
|
||||
{"dryplants:reedmace","dryplants:reedmace"},
|
||||
{"dryplants:reedmace","dryplants:reedmace"},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- reedmace_bottom -> wetreed
|
||||
output = "dryplants:wetreed 2",
|
||||
recipe = {
|
||||
{"dryplants:reedmace_bottom","dryplants:reedmace_bottom"},
|
||||
{"dryplants:reedmace_bottom","dryplants:reedmace_bottom"},
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
local ReeD = {
|
||||
{"wetreed"},
|
||||
{"reed"}
|
||||
}
|
||||
for i in pairs(ReeD) do
|
||||
local reed = "dryplants:"..ReeD[i][1]
|
||||
local slab = reed.."_slab"
|
||||
local roof = reed.."_roof"
|
||||
local corner = roof.."_corner"
|
||||
local corner_2 = corner.."_2"
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Block
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_craft({ -- slab -> block
|
||||
output = reed,
|
||||
recipe = {
|
||||
{slab},
|
||||
{slab},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- roof -> block
|
||||
output = reed,
|
||||
recipe = {
|
||||
{roof},
|
||||
{roof},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- corner -> block
|
||||
type = "shapeless",
|
||||
output = reed.." 3",
|
||||
recipe = {corner,corner,corner,corner,corner,corner,corner,corner}, -- 8x
|
||||
})
|
||||
minetest.register_craft({ -- corner_2 -> block
|
||||
type = "shapeless",
|
||||
output = reed.." 3",
|
||||
recipe = {corner_2,corner_2,corner_2,corner_2,corner_2,corner_2,corner_2,corner_2}, -- 8x
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Slab
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_craft({ -- block -> slab
|
||||
output = slab.." 6",
|
||||
recipe = {
|
||||
{reed,reed,reed},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- roof -> slab
|
||||
output = slab,
|
||||
recipe = {
|
||||
{roof},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- corner -> slab
|
||||
output = slab.." 3",
|
||||
recipe = {
|
||||
{corner,corner},
|
||||
{corner,corner},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- corner_2 -> slab
|
||||
output = slab.." 3",
|
||||
recipe = {
|
||||
{corner_2,corner_2},
|
||||
{corner_2,corner_2},
|
||||
}
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Roof
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_craft({ -- block -> roof
|
||||
output = roof.." 4",
|
||||
recipe = {
|
||||
{reed,""},
|
||||
{"",reed},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- block -> roof
|
||||
output = roof.." 4",
|
||||
recipe = {
|
||||
{"",reed},
|
||||
{reed,""},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- slab -> roof
|
||||
output = roof,
|
||||
recipe = {
|
||||
{slab},
|
||||
}
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Roof Corner
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_craft({ -- block -> corner
|
||||
output = corner.." 8",
|
||||
recipe = {
|
||||
{"",reed,""},
|
||||
{reed,"",reed},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- corner_2 -> corner
|
||||
output = corner,
|
||||
recipe = {
|
||||
{corner_2},
|
||||
}
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Roof Corner 2
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_craft({ -- block -> corner_2
|
||||
output = corner_2.." 8",
|
||||
recipe = {
|
||||
{reed,"",reed},
|
||||
{"",reed,""},
|
||||
}
|
||||
})
|
||||
minetest.register_craft({ -- corner -> corner_2
|
||||
output = corner_2,
|
||||
recipe = {
|
||||
{corner},
|
||||
}
|
||||
})
|
||||
end
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Reed
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_craft({ -- hay -> reed
|
||||
output = "dryplants:reed 2",
|
||||
recipe = {
|
||||
{"dryplants:hay","dryplants:hay"},
|
||||
{"dryplants:hay","dryplants:hay"},
|
||||
}
|
||||
})
|
||||
--cooking
|
||||
minetest.register_craft({ -- wetreed -> reed
|
||||
type = "cooking",
|
||||
output = "dryplants:reed",
|
||||
recipe = "dryplants:wetreed",
|
||||
cooktime = 2,
|
||||
})
|
||||
--fuel
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "dryplants:reed",
|
||||
burntime = 4,
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Reed Slab
|
||||
-----------------------------------------------------------------------------------------------
|
||||
--cooking
|
||||
minetest.register_craft({ -- wetreed_slab -> reed_slab
|
||||
type = "cooking",
|
||||
output = "dryplants:reed_slab",
|
||||
recipe = "dryplants:wetreed_slab",
|
||||
cooktime = 1,
|
||||
})
|
||||
--fuel
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "dryplants:reed_slab",
|
||||
burntime = 2,
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Reed Roof
|
||||
-----------------------------------------------------------------------------------------------
|
||||
--cooking
|
||||
minetest.register_craft({ -- wetreed_roof -> reed_roof
|
||||
type = "cooking",
|
||||
output = "dryplants:reed_roof",
|
||||
recipe = "dryplants:wetreed_roof",
|
||||
cooktime = 1,
|
||||
})
|
||||
--fuel
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "dryplants:reed_roof",
|
||||
burntime = 2,
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Reed Roof Corner
|
||||
-----------------------------------------------------------------------------------------------
|
||||
--cooking
|
||||
minetest.register_craft({ -- wetreed_roof_corner -> reed_roof_corner
|
||||
type = "cooking",
|
||||
output = "dryplants:reed_roof_corner",
|
||||
recipe = "dryplants:wetreed_roof_corner",
|
||||
cooktime = 1,
|
||||
})
|
||||
--fuel
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "dryplants:reed_roof_corner",
|
||||
burntime = 2,
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Wet Reed Roof Corner 2
|
||||
-----------------------------------------------------------------------------------------------
|
||||
--cooking
|
||||
minetest.register_craft({ -- wetreed_roof_corner -> reed_roof_corner
|
||||
type = "cooking",
|
||||
output = "dryplants:reed_roof_corner_2",
|
||||
recipe = "dryplants:wetreed_roof_corner_2",
|
||||
cooktime = 1,
|
||||
})
|
||||
--fuel
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "dryplants:reed_roof_corner_2",
|
||||
burntime = 2,
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Dandelion Leave
|
||||
-----------------------------------------------------------------------------------------------
|
||||
--[[minetest.register_craftitem("dryplants:dandelion_leave", {
|
||||
description = "Dandelion Leave",
|
||||
inventory_image = "dryplants_dandelion_leave.png",
|
||||
on_use = minetest.item_eat(1),
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "dryplants:dandelion_leave 4",
|
||||
recipe = {"flowers:dandelion_yellow"},
|
||||
replacements = {
|
||||
{"flowers:dandelion_yellow", "dye:yellow"}
|
||||
},
|
||||
})]]
|
||||
@@ -0,0 +1,187 @@
|
||||
-- support for i18n
|
||||
local S = minetest.get_translator("dryplants")
|
||||
|
||||
abstract_dryplants = {}
|
||||
|
||||
dofile(minetest.get_modpath("dryplants").."/crafting.lua")
|
||||
dofile(minetest.get_modpath("dryplants").."/reed.lua")
|
||||
|
||||
dofile(minetest.get_modpath("dryplants").."/reedmace.lua")
|
||||
dofile(minetest.get_modpath("dryplants").."/juncus.lua")
|
||||
dofile(minetest.get_modpath("dryplants").."/moregrass.lua")
|
||||
|
||||
--dofile(minetest.get_modpath("dryplants").."/meadowvariation.lua")
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Sickle
|
||||
-----------------------------------------------------------------------------------------------
|
||||
local function sickle_can_break(pos, deff, player)
|
||||
local def = ItemStack({name=deff.name}):get_definition()
|
||||
|
||||
if not def.diggable or (def.can_dig and not def.can_dig(pos,player)) then
|
||||
minetest.log("info", player:get_player_name() .. " tried to sickle "
|
||||
.. def.name .. " which is not diggable "
|
||||
.. minetest.pos_to_string(pos))
|
||||
return
|
||||
end
|
||||
|
||||
if minetest.is_protected(pos, player:get_player_name()) then
|
||||
minetest.log("action", player:get_player_name()
|
||||
.. " tried to sickle " .. def.name
|
||||
.. " at protected position "
|
||||
.. minetest.pos_to_string(pos))
|
||||
minetest.record_protection_violation(pos, player:get_player_name())
|
||||
return
|
||||
end
|
||||
|
||||
return true
|
||||
end
|
||||
-- turns nodes with group flora=1 & flower=0 into cut grass
|
||||
local function sickle_on_use(itemstack, user, pointed_thing, uses)
|
||||
local pt = pointed_thing
|
||||
-- check if pointing at a node
|
||||
if not pt then
|
||||
return
|
||||
end
|
||||
if pt.type ~= "node" then
|
||||
return
|
||||
end
|
||||
|
||||
local under = minetest.get_node(pt.under)
|
||||
local above_pos = {x=pt.under.x, y=pt.under.y+1, z=pt.under.z}
|
||||
local above = minetest.get_node(above_pos)
|
||||
|
||||
-- return if any of the nodes is not registered
|
||||
if not minetest.registered_nodes[under.name] then
|
||||
return
|
||||
end
|
||||
if not minetest.registered_nodes[above.name] then
|
||||
return
|
||||
end
|
||||
|
||||
if not sickle_can_break(pt.under, under, user) then
|
||||
return
|
||||
end
|
||||
-- check if something that can be cut using fine tools
|
||||
if minetest.get_item_group(under.name, "snappy") > 0 then
|
||||
-- check if flora but no flower
|
||||
if minetest.get_item_group(under.name, "flora") == 1 and minetest.get_item_group(under.name, "flower") == 0 then
|
||||
-- turn the node into cut grass, wear out item and play sound
|
||||
minetest.swap_node(pt.under, {name="dryplants:grass"})
|
||||
else -- otherwise dig the node
|
||||
if not minetest.node_dig(pt.under, under, user) then
|
||||
return
|
||||
end
|
||||
end
|
||||
minetest.sound_play("default_dig_crumbly", {
|
||||
pos = pt.under,
|
||||
gain = 0.5,
|
||||
})
|
||||
itemstack:add_wear(65535/(uses-1))
|
||||
return itemstack
|
||||
elseif string.find(under.name, "default:dirt_with_grass") then
|
||||
if minetest.is_protected(above_pos, user:get_player_name()) or above.name ~= "air" then
|
||||
return
|
||||
end
|
||||
minetest.swap_node(pt.under, {name="dryplants:grass_short"})
|
||||
minetest.swap_node(above_pos, {name="dryplants:grass"})
|
||||
minetest.sound_play("default_dig_crumbly", {
|
||||
pos = pt.under,
|
||||
gain = 0.5,
|
||||
})
|
||||
itemstack:add_wear(65535/(uses-1))
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
-- the tool
|
||||
minetest.register_tool("dryplants:sickle", {
|
||||
description = S("Sickle"),
|
||||
inventory_image = "dryplants_sickle.png",
|
||||
on_use = function(itemstack, user, pointed_thing)
|
||||
return sickle_on_use(itemstack, user, pointed_thing, 220)
|
||||
end,
|
||||
})
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Cut Grass
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_node("dryplants:grass", {
|
||||
description = S("Cut Grass"),
|
||||
inventory_image = "dryplants_grass.png",
|
||||
wield_image = "dryplants_grass.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
tiles = {"dryplants_grass.png"},
|
||||
use_texture_alpha = "clip",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 },
|
||||
},
|
||||
groups = {snappy=3, flammable=2},
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
})
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Cut Grass becomes Hay over time
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_abm({
|
||||
nodenames = {"dryplants:grass"},
|
||||
interval = 3600, --1200, -- 20 minutes: a minetest-day/night-cycle
|
||||
chance = 1,
|
||||
action = function(pos)
|
||||
minetest.swap_node(pos, {name="dryplants:hay"})
|
||||
end,
|
||||
})
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Hay
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_node("dryplants:hay", {
|
||||
description = S("Hay"),
|
||||
inventory_image = "dryplants_hay.png",
|
||||
wield_image = "dryplants_hay.png",
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
tiles = {"dryplants_hay.png"},
|
||||
use_texture_alpha = "clip",
|
||||
drawtype = "nodebox",
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5 , -0.5 , -0.5 , 0.5 , -0.4375, 0.5 },
|
||||
},
|
||||
groups = {snappy=3, flammable=2},
|
||||
is_ground_content = false,
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
})
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Short Grass
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_node("dryplants:grass_short", {
|
||||
description = S("Short Grass"),
|
||||
tiles = {"default_grass.png^dryplants_grass_short.png", "default_dirt.png", "default_dirt.png^default_grass_side.png^dryplants_grass_short_side.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1,not_in_creative_inventory=1},
|
||||
--drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults({
|
||||
footstep = {name="default_grass_footstep", gain=0.4},
|
||||
}),
|
||||
})
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Short Grass becomes Dirt with Grass over time
|
||||
-----------------------------------------------------------------------------------------------
|
||||
minetest.register_abm({
|
||||
nodenames = {"dryplants:grass_short"},
|
||||
interval = 1200, --1200, -- 20 minutes: a minetest-day/night-cycle
|
||||
chance = 100/1200,
|
||||
action = function(pos)
|
||||
-- Only become dirt with grass if no cut grass or hay lies on top
|
||||
local above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
|
||||
if above.name ~= "dryplants:grass" and above.name ~= "dryplants:hay" then
|
||||
minetest.swap_node(pos, {name="default:dirt_with_grass"})
|
||||
end
|
||||
end,
|
||||
})
|
||||
@@ -0,0 +1,156 @@
|
||||
-- support for i18n
|
||||
local S = minetest.get_translator("dryplants")
|
||||
|
||||
local function grow_juncus(pos)
|
||||
local juncus_type = math.random(2,3)
|
||||
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||
|
||||
local nodename = minetest.get_node(right_here).name
|
||||
if nodename == "air" or nodename == "default:junglegrass" then
|
||||
if juncus_type == 2 then
|
||||
minetest.swap_node(right_here, {name="dryplants:juncus_02"})
|
||||
else
|
||||
minetest.swap_node(right_here, {name="dryplants:juncus"})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("dryplants:juncus", {
|
||||
description = S("Juncus"),
|
||||
drawtype = "plantlike",
|
||||
visual_scale = math.sqrt(8),
|
||||
paramtype = "light",
|
||||
tiles = {"dryplants_juncus_03.png"},
|
||||
inventory_image = "dryplants_juncus_inv.png",
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
groups = {
|
||||
snappy=3,
|
||||
flammable=2,
|
||||
attached_node=1,
|
||||
flora=1
|
||||
--not_in_creative_inventory=1
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
|
||||
},
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
if not itemstack or not placer or not pointed_thing then
|
||||
return
|
||||
end
|
||||
|
||||
local playername = placer:get_player_name()
|
||||
if minetest.is_protected(pointed_thing.above, playername) or
|
||||
minetest.is_protected(pointed_thing.under, playername) then
|
||||
minetest.chat_send_player(playername, "Someone else owns that spot.")
|
||||
return
|
||||
end
|
||||
local pos = pointed_thing.under
|
||||
local juncus_type = math.random(2,3)
|
||||
local right_here = {x=pos.x, y=pos.y+1, z=pos.z}
|
||||
if juncus_type == 2 then
|
||||
minetest.swap_node(right_here, {name="dryplants:juncus_02"})
|
||||
else
|
||||
minetest.swap_node(right_here, {name="dryplants:juncus"})
|
||||
end
|
||||
if not minetest.is_creative_enabled(playername) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("dryplants:juncus_02", {
|
||||
description = S("Juncus"),
|
||||
drawtype = "plantlike",
|
||||
visual_scale = math.sqrt(8),
|
||||
paramtype = "light",
|
||||
tiles = {"dryplants_juncus_02.png"},
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
groups = {
|
||||
snappy=3,
|
||||
flammable=2,
|
||||
attached_node=1,
|
||||
flora=1,
|
||||
not_in_creative_inventory=1
|
||||
},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16},
|
||||
},
|
||||
drop = "dryplants:juncus",
|
||||
})
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- GENERATE SMALL JUNCUS
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- near water or swamp
|
||||
minetest.register_decoration({
|
||||
name = "dryplants:juncus_water",
|
||||
decoration = {"air"},
|
||||
fill_ratio = 0.16,
|
||||
y_min = 1,
|
||||
y_max = 40,
|
||||
place_on = {
|
||||
"default:dirt_with_grass",
|
||||
"stoneage:grass_with_silex",
|
||||
"sumpf:peat",
|
||||
"sumpf:sumpf"
|
||||
},
|
||||
deco_type = "simple",
|
||||
flags = "all_floors",
|
||||
spawn_by = {
|
||||
"default:water_source",
|
||||
"sumpf:dirtywater_source",
|
||||
"sumpf:sumpf"
|
||||
},
|
||||
check_offset = -1,
|
||||
num_spawn_by = 1
|
||||
})
|
||||
|
||||
-- at dunes/beach
|
||||
minetest.register_decoration({
|
||||
name = "dryplants:juncus_beach",
|
||||
decoration = {"air"},
|
||||
fill_ratio = 0.08,
|
||||
y_min = 1,
|
||||
y_max = 40,
|
||||
place_on = {
|
||||
"default:sand",
|
||||
},
|
||||
deco_type = "simple",
|
||||
flags = "all_floors",
|
||||
spawn_by = {"default:dirt_with_grass"},
|
||||
check_offset = -1,
|
||||
num_spawn_by = 1
|
||||
})
|
||||
|
||||
local did, did2
|
||||
minetest.register_on_mods_loaded(function()
|
||||
did = minetest.get_decoration_id("dryplants:juncus_water")
|
||||
did2 = minetest.get_decoration_id("dryplants:juncus_beach")
|
||||
minetest.set_gen_notify("decoration", {did, did2})
|
||||
end)
|
||||
|
||||
minetest.register_on_generated(function(minp, maxp, blockseed)
|
||||
local g = minetest.get_mapgen_object("gennotify")
|
||||
local locations = {}
|
||||
|
||||
local deco_locations_1 = g["decoration#" .. did] or {}
|
||||
local deco_locations_2 = g["decoration#" .. did2] or {}
|
||||
|
||||
for _, pos in pairs(deco_locations_1) do
|
||||
locations[#locations+1] = pos
|
||||
end
|
||||
for _, pos in pairs(deco_locations_2) do
|
||||
locations[#locations+1] = pos
|
||||
end
|
||||
|
||||
if #locations == 0 then return end
|
||||
for _, pos in ipairs(locations) do
|
||||
grow_juncus(pos)
|
||||
end
|
||||
end)
|
||||
@@ -0,0 +1,21 @@
|
||||
# textdomain: dryplants
|
||||
Sickle=Sichel
|
||||
Cut Grass=Grasschnitt
|
||||
Hay=Heu
|
||||
Short Grass=Kurzes Gras
|
||||
Juncus=Binsen
|
||||
Wet Reed=Nasses Schilf
|
||||
Wet Reed Slab=Nasse Schilfplatte
|
||||
Wet Reed Roof=Nasses Schilfdach
|
||||
Wet Reed Roof Corner 1=Nasser Schilfdachwinkel 1
|
||||
Wet Reed Roof Corner 2=Nasser Schilfdachwinkel 2
|
||||
Reed=Schilf
|
||||
Reed Slab=Schilfstufe
|
||||
Reed Roof=Schilfdach
|
||||
Reed Roof Corner 1=Schilfdachwinkel 1
|
||||
Reed Roof Corner 2=Schilfdachwinkel
|
||||
Reedmace=Rohrkolben
|
||||
Reedmace, height: 1=Rohrkolben, Höhe: 1
|
||||
Reedmace, height: 2=Rohrkolben, Höhe: 2
|
||||
Reedmace, height: 3=Rohrkolben, Höhe: 3
|
||||
Reedmace, height: 3 & Spikes=Rohrkolben, Höhe: 3 & Rispe
|
||||
@@ -0,0 +1,21 @@
|
||||
# textdomain: dryplants
|
||||
Sickle=
|
||||
Cut Grass=Tranĉita Herbenon
|
||||
Hay=Fojno
|
||||
Short Grass=Mallonga Herbo
|
||||
Juncus=Junko
|
||||
Wet Reed=Malseka Kano
|
||||
Wet Reed Slab=Slabo de Malseka Kano
|
||||
Wet Reed Roof=Tegmento de Malseka Kano
|
||||
Wet Reed Roof Corner 1=Tegmentangulo 1 de Malseka Kano
|
||||
Wet Reed Roof Corner 2=Tegmentangulo 2 de Malseka Kano
|
||||
Reed=Kano
|
||||
Reed Slab=Slabo de Kano
|
||||
Reed Roof=Tegmento de Kano
|
||||
Reed Roof Corner 1=Tegmentangulo 1 de Kano
|
||||
Reed Roof Corner 2=Tegmentangulo 2 de Kano
|
||||
Reedmace=Tifeo
|
||||
Reedmace, height: 1=Tifeo, alteco: 1
|
||||
Reedmace, height: 2=Tifeo, alteco: 2
|
||||
Reedmace, height: 3=Tifeo, alteco: 3
|
||||
Reedmace, height: 3 & Spikes=Tifeo, alteco: 3 & Pikiloj
|
||||
@@ -0,0 +1,21 @@
|
||||
# textdomain: dryplants
|
||||
Sickle=Faucille
|
||||
Cut Grass=Herbe coupée
|
||||
Hay=Foin
|
||||
Short Grass=Herbes courtes
|
||||
Juncus=Joncs
|
||||
Wet Reed=Bloc de roseau humide
|
||||
Wet Reed Slab=Dalle en roseau humide
|
||||
Wet Reed Roof=Toit en roseau humide
|
||||
Wet Reed Roof Corner 1=Angle de toit en roseau humide 1
|
||||
Wet Reed Roof Corner 2=Angle de toit en roseau humide 2
|
||||
Reed=Roseau
|
||||
Reed Slab=Dalle en roseau
|
||||
Reed Roof=Toit en roseau
|
||||
Reed Roof Corner 1=Angle de toit en roseau 1
|
||||
Reed Roof Corner 2=Angle de toit en roseau 2
|
||||
Reedmace=Roseau
|
||||
Reedmace, height: 1=Roseau, 1 de hauteur
|
||||
Reedmace, height: 2=Roseau, 2 de hauteur
|
||||
Reedmace, height: 3=Roseau, 3 de hauteur
|
||||
Reedmace, height: 3 & Spikes=Roseau, 3 de hauteur avec panicules
|
||||
@@ -0,0 +1,21 @@
|
||||
# textdomain: dryplants
|
||||
Sickle=
|
||||
Cut Grass=
|
||||
Hay=
|
||||
Short Grass=
|
||||
Juncus=
|
||||
Wet Reed=
|
||||
Wet Reed Slab=
|
||||
Wet Reed Roof=
|
||||
Wet Reed Roof Corner 1=
|
||||
Wet Reed Roof Corner 2=
|
||||
Reed=
|
||||
Reed Slab=
|
||||
Reed Roof=
|
||||
Reed Roof Corner 1=
|
||||
Reed Roof Corner 2=
|
||||
Reedmace=
|
||||
Reedmace, height: 1=
|
||||
Reedmace, height: 2=
|
||||
Reedmace, height: 3=
|
||||
Reedmace, height: 3 & Spikes=
|
||||
@@ -0,0 +1,12 @@
|
||||
-- @reviewer: couldn't even find using biome_lib
|
||||
minetest.register_decoration({
|
||||
decoration = {"dryplants:grass_short"},
|
||||
fill_ratio = 0.8,
|
||||
y_min = 1,
|
||||
y_max = 40,
|
||||
place_on = {
|
||||
"default:dirt_with_grass",
|
||||
},
|
||||
deco_type = "simple",
|
||||
flags = "all_floors"
|
||||
})
|
||||
@@ -0,0 +1,3 @@
|
||||
name = dryplants
|
||||
depends = default
|
||||
optional_depends = farming, ebiomes
|
||||