Fine tune spawns across all biomes
This commit is contained in:
@@ -1,7 +1,10 @@
|
|||||||
from mcpacker.model.modpack import ModPack
|
|
||||||
from mcpacker.model.geology.mineralspawn import MineralSpawn
|
|
||||||
from mcpacker.model.ecology.biome import Biome
|
|
||||||
from mcpacker.format.report.composer import ReportComposer
|
from mcpacker.format.report.composer import ReportComposer
|
||||||
|
from mcpacker.model.altitude import Altitude
|
||||||
|
from mcpacker.model.ecology.biome import Biome
|
||||||
|
from mcpacker.model.fauna.mob import Mob
|
||||||
|
from mcpacker.model.flora.plant import Plant
|
||||||
|
from mcpacker.model.geology.mineralspawn import MineralSpawn
|
||||||
|
from mcpacker.model.modpack import ModPack
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
import mcpacker.model.altitude as AL
|
import mcpacker.model.altitude as AL
|
||||||
@@ -41,34 +44,39 @@ class BiomeReport(ReportComposer):
|
|||||||
|
|
||||||
def _composeFaunaSection(self, biome:Biome):
|
def _composeFaunaSection(self, biome:Biome):
|
||||||
self.line().line("Fauna:").indent()
|
self.line().line("Fauna:").indent()
|
||||||
faunaLineCount = 0
|
faunaLines:list[tuple[Mob, Altitude]] = []
|
||||||
|
|
||||||
for mob in self.pack.world.mobs:
|
for mob in self.pack.world.mobs:
|
||||||
altitude = None
|
altitude = None
|
||||||
for spawn in self.pack.world.mobSpawns:
|
for spawn in self.pack.world.mobSpawns:
|
||||||
|
if spawn.mob != mob: continue
|
||||||
if not spawn.habitat.accepts(biome): continue
|
if not spawn.habitat.accepts(biome): continue
|
||||||
if spawn.ecotype.location == LO.CAVE: continue
|
if spawn.ecotype.location == LO.CAVE: continue
|
||||||
|
|
||||||
altitude = AL.span(altitude or spawn.habitat.altitude, spawn.habitat.altitude)
|
altitude = AL.span(altitude or spawn.habitat.altitude, spawn.habitat.altitude)
|
||||||
|
|
||||||
if altitude != None:
|
if altitude != None:
|
||||||
self.line(f"{mob.name} @ {altitude}")
|
faunaLines.append((mob, altitude))
|
||||||
faunaLineCount += 1
|
|
||||||
|
|
||||||
if faunaLineCount == 0:
|
for line in sorted(faunaLines, reverse=True, key=lambda p: (p[1].bottom, p[1].top)):
|
||||||
|
self.line(f"{line[0]} @ {line[1]}")
|
||||||
|
|
||||||
|
if len(faunaLines) == 0:
|
||||||
self.line("<no fauna>")
|
self.line("<no fauna>")
|
||||||
|
|
||||||
self.outdent() # fauna
|
self.outdent() # fauna
|
||||||
|
|
||||||
def _composeFloraSection(self, biome:Biome):
|
def _composeFloraSection(self, biome:Biome):
|
||||||
self.line().line("Flora:").indent()
|
self.line().line("Flora:").indent()
|
||||||
floraLineCount = 0
|
floraLines:list[tuple[Plant, Altitude]] = []
|
||||||
for spawn in self.pack.world.plantSpawns:
|
for spawn in self.pack.world.plantSpawns:
|
||||||
if not spawn.habitat.accepts(biome): continue
|
if not spawn.habitat.accepts(biome): continue
|
||||||
self.line(f"{spawn.plant.name} @ {spawn.habitat.altitude}")
|
floraLines.append((spawn.plant, spawn.habitat.altitude))
|
||||||
floraLineCount += 1
|
|
||||||
|
|
||||||
if floraLineCount == 0:
|
for line in sorted(floraLines, reverse=True, key=lambda p: (p[1].bottom, p[1].top)):
|
||||||
|
self.line(f"{line[0]} @ {line[1]}")
|
||||||
|
|
||||||
|
if len(floraLines) == 0:
|
||||||
self.line("<no flora>")
|
self.line("<no flora>")
|
||||||
|
|
||||||
self.outdent() # flora
|
self.outdent() # flora
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
from mcpacker.format.report.composer import ReportComposer
|
from mcpacker.format.report.composer import ReportComposer
|
||||||
|
from mcpacker.model.ecology.biomefilter import BiomeFilter
|
||||||
from mcpacker.model.ecology.biometrait import BiomeTrait
|
from mcpacker.model.ecology.biometrait import BiomeTrait
|
||||||
from mcpacker.model.modpack import ModPack
|
from mcpacker.model.modpack import ModPack
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
@@ -10,17 +11,17 @@ class MobSpawnReport(ReportComposer):
|
|||||||
|
|
||||||
def doCompose(self):
|
def doCompose(self):
|
||||||
for mob in self.pack.world.mobs:
|
for mob in self.pack.world.mobs:
|
||||||
self.line(f"Mob: {mob.name}")
|
self.line(f"Mob: {mob.name}").indent()
|
||||||
self.indent()
|
|
||||||
|
|
||||||
needsDelimiter = False
|
needsDelimiter = False
|
||||||
|
habitat = None
|
||||||
for spawn in self.pack.world.mobSpawns:
|
for spawn in self.pack.world.mobSpawns:
|
||||||
if spawn.mob != mob: continue
|
if spawn.mob != mob: continue
|
||||||
habitat = spawn.habitat
|
habitat = spawn.habitat
|
||||||
ecotype = spawn.ecotype
|
ecotype = spawn.ecotype
|
||||||
|
|
||||||
self.line().text("Spawn: ").line(spawn.name)
|
self.line().text("Spawn: ").line(spawn.name).indent()
|
||||||
self.indent()
|
|
||||||
self.text("altitude: ").line(habitat.altitude)
|
self.text("altitude: ").line(habitat.altitude)
|
||||||
self.text("biomeFilter: ")
|
self.text("biomeFilter: ")
|
||||||
self.line(" -OR- ".join(str(b) for b in habitat.biomeFilters))
|
self.line(" -OR- ".join(str(b) for b in habitat.biomeFilters))
|
||||||
@@ -29,7 +30,13 @@ class MobSpawnReport(ReportComposer):
|
|||||||
self.text("group: ").line(ecotype.group)
|
self.text("group: ").line(ecotype.group)
|
||||||
self.text("location: ").line(ecotype.location)
|
self.text("location: ").line(ecotype.location)
|
||||||
self.text("scarcity: ").line(ecotype.scarcity)
|
self.text("scarcity: ").line(ecotype.scarcity)
|
||||||
self.outdent()
|
self.outdent() # spawn
|
||||||
|
|
||||||
self.outdent()
|
if habitat:
|
||||||
|
self.line().line("Biomes:").indent()
|
||||||
|
for biome in BiomeFilter.collate(self.pack.world.biomes, habitat.biomeFilters):
|
||||||
|
self.line(biome)
|
||||||
|
self.outdent() # biomes
|
||||||
|
|
||||||
|
self.outdent() # mob
|
||||||
self.line()
|
self.line()
|
||||||
|
|||||||
@@ -86,4 +86,6 @@ def test_write(report:MobSpawnReport):
|
|||||||
group: troup (3 to 6)
|
group: troup (3 to 6)
|
||||||
location: outside
|
location: outside
|
||||||
scarcity: common
|
scarcity: common
|
||||||
|
|
||||||
|
Biomes:
|
||||||
""").strip()
|
""").strip()
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
from collections.abc import Sequence
|
|
||||||
from collections.abc import Iterable
|
from collections.abc import Iterable
|
||||||
from mcpacker.model.resourceid import ResourceId
|
from mcpacker.model.resourceid import ResourceId
|
||||||
from mcpacker.model.ecology.biome import Biome
|
from mcpacker.model.ecology.biome import Biome
|
||||||
@@ -43,8 +42,8 @@ class BiomeFilter:
|
|||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
required:Sequence[BiomeTrait|ResourceId|Sequence[BiomeTrait]]|None=None,
|
required:Iterable[BiomeTrait|ResourceId|Iterable[BiomeTrait]]|None=None,
|
||||||
prohibited:Sequence[BiomeTrait|ResourceId]|None=None,
|
prohibited:Iterable[BiomeTrait|ResourceId]|None=None,
|
||||||
):
|
):
|
||||||
self.required = list(required or [])
|
self.required = list(required or [])
|
||||||
self.prohibited = list(prohibited or [])
|
self.prohibited = list(prohibited or [])
|
||||||
|
|||||||
@@ -54,6 +54,6 @@ class Habitat:
|
|||||||
|
|
||||||
def accepts(self, biome:Biome) -> bool:
|
def accepts(self, biome:Biome) -> bool:
|
||||||
for biomeFilter in self.biomeFilters:
|
for biomeFilter in self.biomeFilters:
|
||||||
if not biomeFilter.accepts(biome): return False
|
if biomeFilter.accepts(biome): return True
|
||||||
|
|
||||||
return True
|
return False
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ def addBiomes(pack:ModPack):
|
|||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("helsinki", "minecraft:birch_forest",
|
biomes.add(Biome("helsinki", "minecraft:birch_forest",
|
||||||
FL.FOREST, GE.SEDIMENTARY, HE.TEMPERATE, HU.WET, SO.ACIDIC, WA.INLAND
|
FL.FOREST, GE.SEDIMENTARY, HE.TEMPERATE, HU.DAMP, SO.ACIDIC, WA.INLAND
|
||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("tokyo", "minecraft:cherry_grove",
|
biomes.add(Biome("tokyo", "minecraft:cherry_grove",
|
||||||
@@ -35,7 +35,7 @@ def addBiomes(pack:ModPack):
|
|||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("boston", "minecraft:cold_ocean",
|
biomes.add(Biome("boston", "minecraft:cold_ocean",
|
||||||
FL.BARREN, GE.SEDIMENTARY, HE.BOREAL, HU.DAMP, SO.CLAYEY, WA.OCEAN
|
FL.BARREN, GE.SEDIMENTARY, HE.BOREAL, HU.WET, SO.CLAYEY, WA.OCEAN
|
||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("freiburg", "minecraft:dark_forest",
|
biomes.add(Biome("freiburg", "minecraft:dark_forest",
|
||||||
@@ -119,11 +119,11 @@ def addBiomes(pack:ModPack):
|
|||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("sanfrancisco", "minecraft:ocean",
|
biomes.add(Biome("sanfrancisco", "minecraft:ocean",
|
||||||
FL.BARREN, GE.IGNEOUS, HE.TEMPERATE, HU.DAMP, SO.SANDY, WA.OCEAN
|
FL.BARREN, GE.IGNEOUS, HE.TEMPERATE, HU.WET, SO.SANDY, WA.OCEAN
|
||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("minsk", "minecraft:old_growth_birch_forest",
|
biomes.add(Biome("minsk", "minecraft:old_growth_birch_forest",
|
||||||
FL.FOREST, GE.SEDIMENTARY, HE.TEMPERATE, HU.WET, SO.SANDY, WA.INLAND
|
FL.FOREST, GE.SEDIMENTARY, HE.TEMPERATE, HU.DAMP, SO.ACIDIC, WA.INLAND
|
||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("stpetersburg", "minecraft:old_growth_pine_taiga",
|
biomes.add(Biome("stpetersburg", "minecraft:old_growth_pine_taiga",
|
||||||
@@ -187,11 +187,11 @@ def addBiomes(pack:ModPack):
|
|||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("irkutsk", "minecraft:taiga",
|
biomes.add(Biome("irkutsk", "minecraft:taiga",
|
||||||
FL.FOREST, GE.IGNEOUS, HE.BOREAL, HU.DAMP, SO.ACIDIC, WA.INLAND
|
FL.FOREST, GE.METAMORPHIC, HE.BOREAL, HU.DAMP, SO.ACIDIC, WA.INLAND
|
||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("nassau", "minecraft:warm_ocean",
|
biomes.add(Biome("nassau", "minecraft:warm_ocean",
|
||||||
FL.BARREN, GE.SEDIMENTARY, HE.TROPICAL, HU.SOAKED, SO.SANDY, WA.COAST
|
FL.BARREN, GE.SEDIMENTARY, HE.TROPICAL, HU.SOAKED, SO.SANDY, WA.OCEAN
|
||||||
))
|
))
|
||||||
|
|
||||||
biomes.add(Biome("stirling", "minecraft:windswept_forest",
|
biomes.add(Biome("stirling", "minecraft:windswept_forest",
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ def addMineralSpawns(pack:ModPack):
|
|||||||
# Aluminum Family ##########################################################
|
# Aluminum Family ##########################################################
|
||||||
|
|
||||||
b.start(minerals["basalt"])
|
b.start(minerals["basalt"])
|
||||||
b.biomeFilters = BF([HE.TROPICAL, HU.SOAKED, WA.INLAND])
|
b.biomeFilters = BF([HE.TROPICAL, (HU.WET, HU.SOAKED)], [SO.FUNGAL, WA.OCEAN])
|
||||||
b.save("aluminum-indicator")
|
b.save("aluminum-indicator-basalt")
|
||||||
|
|
||||||
b.switch(minerals["aluminum"])
|
b.switch(minerals["aluminum"])
|
||||||
b.altitude = AL.span(AL.SUBSTRATE, AL.OVERBURDEN)
|
b.altitude = AL.span(AL.SUBSTRATE, AL.OVERBURDEN)
|
||||||
@@ -48,7 +48,7 @@ def addMineralSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(minerals["tuff"])
|
b.start(minerals["tuff"])
|
||||||
b.biomeFilters = BF([GE.SEDIMENTARY, HE.TEMPERATE, HU.SOAKED])
|
b.biomeFilters = BF([GE.SEDIMENTARY, HE.TEMPERATE, HU.SOAKED])
|
||||||
b.save("coal-indicator")
|
b.save("coal-indicator-tuff")
|
||||||
|
|
||||||
b.switch(minerals["coal"])
|
b.switch(minerals["coal"])
|
||||||
b.altitude = AL.span(AL.SUBSTRATE, AL.OVERBURDEN)
|
b.altitude = AL.span(AL.SUBSTRATE, AL.OVERBURDEN)
|
||||||
@@ -69,37 +69,61 @@ def addMineralSpawns(pack:ModPack):
|
|||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.save("coal-tertiary-iron")
|
b.save("coal-tertiary-iron")
|
||||||
|
|
||||||
# Copper Family ############################################################
|
# Copper (oxidizedcap) Family ##############################################
|
||||||
|
|
||||||
b.start(minerals["diorite"])
|
b.start(minerals["sandstone"])
|
||||||
b.biomeFilters = BF([GE.SEDIMENTARY, HE.SUBTROPICAL, HU.DRY])
|
b.biomeFilters = BF([GE.SEDIMENTARY, HE.SUBTROPICAL, (HU.ARID, HU.DRY)])
|
||||||
b.save("copper-indicator")
|
b.save("copper-oxidizedcap-indicator-sandstone")
|
||||||
|
|
||||||
b.switch(minerals["copper"])
|
b.switch(minerals["copper"])
|
||||||
b.altitude = AL.CRUST
|
b.altitude = AL.CRUST
|
||||||
b.bulk = BU.MEDIUM
|
b.bulk = BU.MEDIUM
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("copper-primary-copper")
|
b.save("copper-oxidizedcap-primary-copper")
|
||||||
|
|
||||||
|
b.switch(minerals["iron"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.SMALL
|
||||||
|
b.scarcity = SC.UNUSUAL
|
||||||
|
b.save("copper-oxidizedcap-secondary-iron")
|
||||||
|
|
||||||
|
b.switch(minerals["sulfur"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.TINY
|
||||||
|
b.scarcity = SC.RARE
|
||||||
|
b.save("copper-oxidizedcap-tertiary-sulfur")
|
||||||
|
|
||||||
|
# Copper (porphyry) Family ##################################################
|
||||||
|
|
||||||
|
b.start(minerals["diorite"])
|
||||||
|
b.biomeFilters = BF([GE.IGNEOUS, (HE.SUBTROPICAL, HE.FROZEN), SO.ROCKY])
|
||||||
|
b.save("copper-porphyry-indicator-diorite")
|
||||||
|
|
||||||
|
b.switch(minerals["copper"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.MEDIUM
|
||||||
|
b.scarcity = SC.UNCOMMON
|
||||||
|
b.save("copper-porphyry-primary-copper")
|
||||||
|
|
||||||
b.switch(minerals["redstone"])
|
b.switch(minerals["redstone"])
|
||||||
b.altitude = AL.MANTLE
|
b.altitude = AL.MANTLE
|
||||||
b.bulk = BU.SMALL
|
b.bulk = BU.SMALL
|
||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.save("copper-secondary-redstone")
|
b.save("copper-porphyry-secondary-redstone")
|
||||||
|
|
||||||
b.switch(minerals["gold"])
|
b.switch(minerals["gold"])
|
||||||
b.altitude = AL.span(AL.CRUST, AL.MANTLE)
|
b.altitude = AL.span(AL.CRUST, AL.MANTLE)
|
||||||
b.bulk = BU.TINY
|
b.bulk = BU.TINY
|
||||||
b.scarcity = SC.RARE
|
b.scarcity = SC.RARE
|
||||||
b.save("copper-tertiary-gold")
|
b.save("copper-porphyry-tertiary-gold")
|
||||||
|
|
||||||
# Gold Family ##############################################################
|
# Gold Family ##############################################################
|
||||||
|
|
||||||
b.start(minerals["marble"])
|
b.start(minerals["marble"])
|
||||||
b.biomeFilters = BF([GE.METAMORPHIC, HE.BOREAL, HU.DRY])
|
b.biomeFilters = BF([GE.METAMORPHIC, (HE.BOREAL, HE.FROZEN), SO.ROCKY])
|
||||||
b.save("gold-indicator")
|
b.save("gold-indicator-marble")
|
||||||
|
|
||||||
b.start(minerals["quartz"])
|
b.switch(minerals["quartz"])
|
||||||
b.altitude = AL.span(AL.CRAGS, AL.PEAKS)
|
b.altitude = AL.span(AL.CRAGS, AL.PEAKS)
|
||||||
b.bulk = BU.MEDIUM
|
b.bulk = BU.MEDIUM
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
@@ -123,37 +147,65 @@ def addMineralSpawns(pack:ModPack):
|
|||||||
b.scarcity = SC.RARE
|
b.scarcity = SC.RARE
|
||||||
b.save("gold-quarternary-emerald")
|
b.save("gold-quarternary-emerald")
|
||||||
|
|
||||||
# Iron Family ##############################################################
|
# Iron (banded) Family ##############################################################
|
||||||
|
|
||||||
b.start(minerals["andesite"])
|
b.start(minerals["diorite"])
|
||||||
b.biomeFilters = BF([GE.SEDIMENTARY, HE.TEMPERATE, HU.WET])
|
b.biomeFilters = BF(
|
||||||
b.save("iron-indicator")
|
[FL.within(FL.CANOPY, FL.CLEARING), GE.METAMORPHIC, (HE.BOREAL, HE.FROZEN)]
|
||||||
|
)
|
||||||
|
b.save("iron-banded-indicator-diorite")
|
||||||
|
|
||||||
b.start(minerals["iron"])
|
b.switch(minerals["iron"])
|
||||||
b.altitude = AL.CRUST
|
b.altitude = AL.span(AL.OVERBURDEN, AL.CRUST)
|
||||||
b.bulk = BU.MEDIUM
|
b.bulk = BU.LARGE
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("iron-primary-iron")
|
b.save("iron-banded-primary-iron")
|
||||||
|
|
||||||
b.switch(minerals["quartz"])
|
b.switch(minerals["quartz"])
|
||||||
b.altitude = AL.CRUST
|
b.altitude = AL.span(AL.OVERBURDEN, AL.CRUST)
|
||||||
b.bulk = BU.SMALL
|
b.bulk = BU.MEDIUM
|
||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.save("iron-secondary-quartz")
|
b.save("iron-banded-secondary-quartz")
|
||||||
|
|
||||||
b.switch(minerals["uranium"])
|
b.switch(minerals["uranium"])
|
||||||
b.altitude = AL.MANTLE
|
b.altitude = AL.CRUST
|
||||||
b.bulk = BU.TINY
|
b.bulk = BU.SMALL
|
||||||
|
b.scarcity = SC.UNCOMMON
|
||||||
|
b.save("iron-banded-tertiary-uranium")
|
||||||
|
|
||||||
|
# Iron (bog) Family ##############################################################
|
||||||
|
|
||||||
|
b.start(minerals["andesite"])
|
||||||
|
b.biomeFilters = BF([FL.FOREST, GE.SEDIMENTARY, HE.TEMPERATE], [WA.SWAMP])
|
||||||
|
b.save("iron-bog-indicator-andesite")
|
||||||
|
|
||||||
|
b.switch(minerals["coal"])
|
||||||
|
b.altitude = AL.SOIL
|
||||||
|
b.bulk = BU.SMALL
|
||||||
|
b.depositType = DE.DISK
|
||||||
|
b.scarcity = SC.UNCOMMON
|
||||||
|
b.save("iron-bog-primary-coal")
|
||||||
|
|
||||||
|
b.switch(minerals["iron"])
|
||||||
|
b.altitude = AL.span(AL.SOIL, AL.DUNES)
|
||||||
|
b.bulk = BU.MEDIUM
|
||||||
|
b.depositType = DE.DISK
|
||||||
|
b.scarcity = SC.UNCOMMON
|
||||||
|
b.save("iron-bog-secondary-iron")
|
||||||
|
|
||||||
|
b.switch(minerals["uranium"])
|
||||||
|
b.altitude = AL.SOIL
|
||||||
|
b.bulk = BU.SMALL
|
||||||
b.scarcity = SC.RARE
|
b.scarcity = SC.RARE
|
||||||
b.save("iron-tertiary-uranium")
|
b.save("iron-bog-tertiary-uranium")
|
||||||
|
|
||||||
# Lead Family ##############################################################
|
# Lead Family ##############################################################
|
||||||
|
|
||||||
b.start(minerals["dolostone"])
|
b.start(minerals["dolostone"])
|
||||||
b.biomeFilters = BF([GE.SEDIMENTARY, HE.TEMPERATE, HU.DAMP])
|
b.biomeFilters = BF([FL.FIELD, GE.SEDIMENTARY, HE.TEMPERATE, HU.DAMP])
|
||||||
b.save("lead-indicator")
|
b.save("lead-indicator-dolostone")
|
||||||
|
|
||||||
b.start(minerals["lead"])
|
b.switch(minerals["lead"])
|
||||||
b.altitude = AL.CRUST
|
b.altitude = AL.CRUST
|
||||||
b.bulk = BU.MEDIUM
|
b.bulk = BU.MEDIUM
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
@@ -171,6 +223,87 @@ def addMineralSpawns(pack:ModPack):
|
|||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.save("lead-tertiary-silver")
|
b.save("lead-tertiary-silver")
|
||||||
|
|
||||||
|
# Ocean (igneous) Family ###################################################
|
||||||
|
|
||||||
|
b.start(minerals["basalt"])
|
||||||
|
b.biomeFilters = BF([GE.IGNEOUS, WA.OCEAN])
|
||||||
|
b.save("ocean-igneous-indicator-basalt")
|
||||||
|
|
||||||
|
b.switch(minerals["tin"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.MEDIUM
|
||||||
|
b.depositType = DE.VEIN
|
||||||
|
b.scarcity = SC.UNCOMMON
|
||||||
|
b.save("ocean-igneous-primary-tin")
|
||||||
|
|
||||||
|
b.switch(minerals["copper"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.SMALL
|
||||||
|
b.depositType = DE.VEIN
|
||||||
|
b.scarcity = SC.SPARSE
|
||||||
|
b.save("ocean-igneous-secondary-copper")
|
||||||
|
|
||||||
|
b.switch(minerals["diamond"])
|
||||||
|
b.altitude = AL.MANTLE
|
||||||
|
b.bulk = BU.TINY
|
||||||
|
b.depositType = DE.VEIN
|
||||||
|
b.scarcity = SC.RARE
|
||||||
|
b.save("ocean-igneous-tertiary-diamond")
|
||||||
|
|
||||||
|
# Ocean (metamorphic) Family ###############################################
|
||||||
|
|
||||||
|
b.start(minerals["marble"])
|
||||||
|
b.biomeFilters = BF([GE.METAMORPHIC, WA.OCEAN])
|
||||||
|
b.save("ocean-metamorphic-indicator-marble")
|
||||||
|
|
||||||
|
b.switch(minerals["quartz"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.LARGE
|
||||||
|
b.depositType = DE.STRATA
|
||||||
|
b.scarcity = SC.COMMON
|
||||||
|
b.save("ocean-metamorphic-primary-quartz")
|
||||||
|
|
||||||
|
b.switch(minerals["gold"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.SMALL
|
||||||
|
b.depositType = DE.VEIN
|
||||||
|
b.scarcity = SC.UNUSUAL
|
||||||
|
b.save("ocean-metamorphic-secondary-gold")
|
||||||
|
|
||||||
|
b.switch(minerals["emerald"])
|
||||||
|
b.altitude = AL.MANTLE
|
||||||
|
b.bulk = BU.TINY
|
||||||
|
b.depositType = DE.VEIN
|
||||||
|
b.scarcity = SC.RARE
|
||||||
|
b.save("ocean-metamorphic-tertiary-emerald")
|
||||||
|
|
||||||
|
# Ocean (sedimentary) Family ###############################################
|
||||||
|
|
||||||
|
b.start(minerals["sandstone"])
|
||||||
|
b.biomeFilters = BF([GE.SEDIMENTARY, WA.OCEAN])
|
||||||
|
b.save("ocean-sedimentary-indicator-sandstone")
|
||||||
|
|
||||||
|
b.switch(minerals["iron"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.MEDIUM
|
||||||
|
b.depositType = DE.STRATA
|
||||||
|
b.scarcity = SC.UNCOMMON
|
||||||
|
b.save("ocean-sedimentary-primary-iron")
|
||||||
|
|
||||||
|
b.switch(minerals["nickel"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.SMALL
|
||||||
|
b.depositType = DE.DISK
|
||||||
|
b.scarcity = SC.SPARSE
|
||||||
|
b.save("ocean-sedimentary-secondary-nickel")
|
||||||
|
|
||||||
|
b.switch(minerals["lapis"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.LARGE
|
||||||
|
b.depositType = DE.VEIN
|
||||||
|
b.scarcity = SC.SPARSE
|
||||||
|
b.save("ocean-sedimentary-tertiary-lapis")
|
||||||
|
|
||||||
# Plutonic Family ##########################################################
|
# Plutonic Family ##########################################################
|
||||||
|
|
||||||
b.start(minerals["sulfur"])
|
b.start(minerals["sulfur"])
|
||||||
@@ -187,7 +320,7 @@ def addMineralSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(minerals["chalk"])
|
b.start(minerals["chalk"])
|
||||||
b.biomeFilters = BF([GE.SEDIMENTARY, HE.TROPICAL, HU.ARID])
|
b.biomeFilters = BF([GE.SEDIMENTARY, HE.TROPICAL, HU.ARID])
|
||||||
b.save("salt-indicator")
|
b.save("salt-indicator-chalk")
|
||||||
|
|
||||||
b.switch(minerals["salt"])
|
b.switch(minerals["salt"])
|
||||||
b.altitude = AL.span(AL.CRUST, AL.MANTLE)
|
b.altitude = AL.span(AL.CRUST, AL.MANTLE)
|
||||||
@@ -219,11 +352,35 @@ def addMineralSpawns(pack:ModPack):
|
|||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
b.save("soil-special-peat")
|
b.save("soil-special-peat")
|
||||||
|
|
||||||
|
# Silver Family ###############################################################
|
||||||
|
|
||||||
|
b.start(minerals["diorite"])
|
||||||
|
b.biomeFilters = BF([GE.METAMORPHIC, HE.TEMPERATE, HU.SOAKED])
|
||||||
|
b.save("silver-indicator-diorite")
|
||||||
|
|
||||||
|
b.switch(minerals["quartz"])
|
||||||
|
b.altitude = AL.span(AL.CRUST, AL.LOWLANDS)
|
||||||
|
b.bulk = BU.MEDIUM
|
||||||
|
b.scarcity = SC.UNCOMMON
|
||||||
|
b.save("silver-primary-quartz")
|
||||||
|
|
||||||
|
b.switch(minerals["lead"])
|
||||||
|
b.altitude = AL.span(AL.SOIL, AL.OVERBURDEN)
|
||||||
|
b.bulk = BU.MEDIUM
|
||||||
|
b.scarcity = SC.SPARSE
|
||||||
|
b.save("silver-secondary-lead")
|
||||||
|
|
||||||
|
b.switch(minerals["silver"])
|
||||||
|
b.altitude = AL.CRUST
|
||||||
|
b.bulk = BU.SMALL
|
||||||
|
b.scarcity = SC.SPARSE
|
||||||
|
b.save("silver-tertiary-silver")
|
||||||
|
|
||||||
# Tin Family ###############################################################
|
# Tin Family ###############################################################
|
||||||
|
|
||||||
b.start(minerals["granite"])
|
b.start(minerals["granite"])
|
||||||
b.biomeFilters = BF([GE.IGNEOUS, HE.BOREAL, HU.DRY])
|
b.biomeFilters = BF([GE.IGNEOUS, HE.BOREAL, SO.ROCKY])
|
||||||
b.save("tin-indicator")
|
b.save("tin-indicator-granite")
|
||||||
|
|
||||||
b.switch(minerals["tin"])
|
b.switch(minerals["tin"])
|
||||||
b.altitude = AL.CRUST
|
b.altitude = AL.CRUST
|
||||||
@@ -237,6 +394,34 @@ def addMineralSpawns(pack:ModPack):
|
|||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.save("tin-secondary-copper")
|
b.save("tin-secondary-copper")
|
||||||
|
|
||||||
|
# Volcanic Family ##########################################################
|
||||||
|
|
||||||
|
b.start(minerals["basalt"])
|
||||||
|
b.biomeFilters = BF([GE.IGNEOUS, SO.FUNGAL])
|
||||||
|
b.save("volcanic-indicator-basalt")
|
||||||
|
|
||||||
|
b.switch(minerals["sulfur"])
|
||||||
|
b.altitude = AL.span(AL.LOWLANDS, AL.CRUST)
|
||||||
|
b.bulk = BU.MEDIUM
|
||||||
|
b.scarcity = SC.UNCOMMON
|
||||||
|
b.save("volcanic-primary-sulfur")
|
||||||
|
|
||||||
|
b.switch(minerals["magma"])
|
||||||
|
b.altitude = AL.span(AL.SOIL, AL.CRUST)
|
||||||
|
b.bulk = BU.MEDIUM
|
||||||
|
b.scarcity = SC.SPARSE
|
||||||
|
b.save("volcanic-secondary-magma")
|
||||||
|
|
||||||
|
b.switch(minerals["diamond"])
|
||||||
|
b.altitude = AL.span(AL.CRUST, AL.MANTLE)
|
||||||
|
b.bulk = BU.TINY
|
||||||
|
b.depositType = DE.VEIN
|
||||||
|
b.scarcity = SC.UNUSUAL
|
||||||
|
b.save("volcanic-tertiary-diamond")
|
||||||
|
|
||||||
|
# TODO: All the Taiga biomes are missing mineral deposits
|
||||||
|
# TODO: Mushroom Fields doesn't have any minerals
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
vein strata
|
vein strata
|
||||||
|
|||||||
@@ -9,58 +9,58 @@ import mcpacker.model.fauna.active as AC
|
|||||||
def addMobs(pack:ModPack):
|
def addMobs(pack:ModPack):
|
||||||
mobs = pack.world.mobs
|
mobs = pack.world.mobs
|
||||||
|
|
||||||
mobs.add(Mob("animalplus:raccoon", AC.NOCTURNAL))
|
mobs.add(Mob("animalplus:raccoon", AC.NOCTURNAL))
|
||||||
mobs.add(Mob("animalplus:red_panda", AC.CREPUSCULAR))
|
mobs.add(Mob("animalplus:red_panda", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("bearminimum:black_bear", AC.CREPUSCULAR))
|
mobs.add(Mob("bearminimum:black_bear", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("bearminimum:brown_bear", AC.CREPUSCULAR))
|
mobs.add(Mob("bearminimum:brown_bear", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("cold_sweat:chameleon", AC.DIURNAL))
|
mobs.add(Mob("cold_sweat:chameleon", AC.DIURNAL))
|
||||||
mobs.add(Mob("crabbersdelight:crab", AC.CREPUSCULAR))
|
mobs.add(Mob("crabbersdelight:crab", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("immersiveengineering:bulwark"))
|
mobs.add(Mob("immersiveengineering:bulwark"))
|
||||||
mobs.add(Mob("immersiveengineering:commando"))
|
mobs.add(Mob("immersiveengineering:commando"))
|
||||||
mobs.add(Mob("immersiveengineering:fusilier"))
|
mobs.add(Mob("immersiveengineering:fusilier"))
|
||||||
mobs.add(Mob("minecraft:armadillo", AC.NOCTURNAL))
|
mobs.add(Mob("minecraft:armadillo", AC.NOCTURNAL))
|
||||||
mobs.add(Mob("minecraft:blaze", AC.ANY))
|
mobs.add(Mob("minecraft:blaze", AC.ANY))
|
||||||
mobs.add(Mob("minecraft:bogged", AC.MIDNIGHT))
|
mobs.add(Mob("minecraft:bogged", AC.MIDNIGHT))
|
||||||
mobs.add(Mob("minecraft:camel", AC.CREPUSCULAR))
|
mobs.add(Mob("minecraft:camel", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("minecraft:cat", AC.CREPUSCULAR))
|
mobs.add(Mob("minecraft:cat", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("minecraft:cave_spider", AC.NOCTURNAL))
|
mobs.add(Mob("minecraft:cave_spider", AC.NOCTURNAL))
|
||||||
mobs.add(Mob("minecraft:chicken", AC.DIURNAL))
|
mobs.add(Mob("minecraft:chicken", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:cod", AC.DIURNAL))
|
mobs.add(Mob("minecraft:cod", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:cow", AC.DIURNAL))
|
mobs.add(Mob("minecraft:cow", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:creeper", AC.STORMY))
|
mobs.add(Mob("minecraft:creeper", AC.STORMY))
|
||||||
mobs.add(Mob("minecraft:dolphin", AC.DIURNAL))
|
mobs.add(Mob("minecraft:dolphin", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:donkey", AC.DIURNAL))
|
mobs.add(Mob("minecraft:donkey", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:drowned", AC.MIDNIGHT))
|
mobs.add(Mob("minecraft:drowned", AC.MIDNIGHT))
|
||||||
mobs.add(Mob("minecraft:enderman"))
|
mobs.add(Mob("minecraft:enderman"))
|
||||||
mobs.add(Mob("minecraft:evoker"))
|
mobs.add(Mob("minecraft:evoker"))
|
||||||
mobs.add(Mob("minecraft:fox", AC.CREPUSCULAR))
|
mobs.add(Mob("minecraft:fox", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("minecraft:frog", AC.CREPUSCULAR))
|
mobs.add(Mob("minecraft:frog", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("minecraft:glow_squid", AC.CREPUSCULAR))
|
mobs.add(Mob("minecraft:glow_squid", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("minecraft:goat", AC.DIURNAL))
|
mobs.add(Mob("minecraft:goat", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:hoglin"))
|
mobs.add(Mob("minecraft:hoglin"))
|
||||||
mobs.add(Mob("minecraft:horse", AC.DIURNAL))
|
mobs.add(Mob("minecraft:horse", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:husk", AC.MIDNIGHT))
|
mobs.add(Mob("minecraft:husk", AC.MIDNIGHT))
|
||||||
mobs.add(Mob("minecraft:llama", AC.DIURNAL))
|
mobs.add(Mob("minecraft:llama", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:magma_cube", AC.ANY))
|
mobs.add(Mob("minecraft:magma_cube", AC.ANY))
|
||||||
mobs.add(Mob("minecraft:mooshroom", AC.DIURNAL))
|
mobs.add(Mob("minecraft:mooshroom", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:mule", AC.DIURNAL))
|
mobs.add(Mob("minecraft:mule", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:ocelot", AC.NOCTURNAL))
|
mobs.add(Mob("minecraft:ocelot", AC.NOCTURNAL))
|
||||||
mobs.add(Mob("minecraft:panda", AC.CREPUSCULAR))
|
mobs.add(Mob("minecraft:panda", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("minecraft:parrot", AC.DIURNAL))
|
mobs.add(Mob("minecraft:parrot", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:pig", AC.DIURNAL))
|
mobs.add(Mob("minecraft:pig", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:pillager"))
|
mobs.add(Mob("minecraft:pillager"))
|
||||||
mobs.add(Mob("minecraft:polar_bear", AC.CREPUSCULAR))
|
mobs.add(Mob("minecraft:polar_bear", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("minecraft:pufferfish", AC.DIURNAL))
|
mobs.add(Mob("minecraft:pufferfish", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:rabbit", AC.CREPUSCULAR))
|
mobs.add(Mob("minecraft:rabbit", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("minecraft:ravager"))
|
mobs.add(Mob("minecraft:ravager"))
|
||||||
mobs.add(Mob("minecraft:salmon", AC.DIURNAL))
|
mobs.add(Mob("minecraft:salmon", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:sheep", AC.DIURNAL))
|
mobs.add(Mob("minecraft:sheep", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:skeleton"))
|
mobs.add(Mob("minecraft:skeleton"))
|
||||||
mobs.add(Mob("minecraft:slime", AC.RAINY))
|
mobs.add(Mob("minecraft:slime", AC.RAINY))
|
||||||
mobs.add(Mob("minecraft:spider", AC.NOCTURNAL))
|
mobs.add(Mob("minecraft:spider", AC.NOCTURNAL))
|
||||||
mobs.add(Mob("minecraft:squid", AC.CREPUSCULAR))
|
mobs.add(Mob("minecraft:squid", AC.CREPUSCULAR))
|
||||||
mobs.add(Mob("minecraft:tropical_fish", AC.DIURNAL))
|
mobs.add(Mob("minecraft:tropical_fish", AC.DIURNAL))
|
||||||
mobs.add(Mob("minecraft:turtle", AC.NOCTURNAL))
|
mobs.add(Mob("minecraft:turtle", AC.NOCTURNAL))
|
||||||
mobs.add(Mob("minecraft:vex"))
|
mobs.add(Mob("minecraft:vex"))
|
||||||
mobs.add(Mob("minecraft:villager"))
|
mobs.add(Mob("minecraft:villager"))
|
||||||
mobs.add(Mob("minecraft:vindicator"))
|
mobs.add(Mob("minecraft:vindicator"))
|
||||||
@@ -69,7 +69,7 @@ def addMobs(pack:ModPack):
|
|||||||
mobs.add(Mob("minecraft:witch"))
|
mobs.add(Mob("minecraft:witch"))
|
||||||
mobs.add(Mob("minecraft:wither_skeleton"))
|
mobs.add(Mob("minecraft:wither_skeleton"))
|
||||||
mobs.add(Mob("minecraft:wither"))
|
mobs.add(Mob("minecraft:wither"))
|
||||||
mobs.add(Mob("minecraft:wolf", AC.NOCTURNAL))
|
mobs.add(Mob("minecraft:wolf", AC.NOCTURNAL))
|
||||||
mobs.add(Mob("minecraft:zoglin"))
|
mobs.add(Mob("minecraft:zoglin"))
|
||||||
mobs.add(Mob("minecraft:zombie_villager", AC.MIDNIGHT))
|
mobs.add(Mob("minecraft:zombie_villager", AC.MIDNIGHT))
|
||||||
mobs.add(Mob("minecraft:zombie"))
|
mobs.add(Mob("minecraft:zombie"))
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["animalplus:raccoon"])
|
b.start(mobs["animalplus:raccoon"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.HILLS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.HILLS)
|
||||||
b.biomeFilters = BF([(FL.CANOPY, FL.FOREST), HE.within(HE.TEMPERATE, HE.BOREAL)])
|
b.biomeFilters = BF([(FL.CANOPY, FL.FOREST), HE.TEMPERATE])
|
||||||
b.seasons = SE.exclude(SE.WINTER)
|
b.seasons = SE.exclude(SE.WINTER)
|
||||||
b.group = GR.merge(GR.SOLO, GR.PAIR)
|
b.group = GR.merge(GR.SOLO, GR.PAIR)
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
@@ -41,7 +41,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["animalplus:red_panda"])
|
b.start(mobs["animalplus:red_panda"])
|
||||||
b.altitude = AL.span(AL.UPLANDS, AL.HILLS)
|
b.altitude = AL.span(AL.UPLANDS, AL.HILLS)
|
||||||
b.biomeFilters = BF([ResourceId.parse("bamboo_forest")])
|
b.biomeFilters = BF([ResourceId.parse("bamboo_jungle")])
|
||||||
b.seasons = SE.ALL
|
b.seasons = SE.ALL
|
||||||
b.group = GR.merge(GR.SOLO, GR.PAIR)
|
b.group = GR.merge(GR.SOLO, GR.PAIR)
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
@@ -53,32 +53,19 @@ def addMobSpawns(pack:ModPack):
|
|||||||
b.seasons = SE.AUTUMN
|
b.seasons = SE.AUTUMN
|
||||||
b.group = GR.merge(GR.SOLO, GR.FAMILY)
|
b.group = GR.merge(GR.SOLO, GR.FAMILY)
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("blackbear-temperate-autumn")
|
b.save("blackbear-autumn")
|
||||||
|
|
||||||
b.seasons = [SE.SPRING, SE.SUMMER]
|
b.seasons = [SE.SPRING, SE.SUMMER]
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
b.save("blackbear-temperate-springsummer")
|
b.save("blackbear-springsummer")
|
||||||
|
|
||||||
b.seasons = SE.WINTER
|
b.seasons = SE.WINTER
|
||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.save("blackbear-temperate-winter")
|
b.save("blackbear-winter")
|
||||||
|
|
||||||
b.biomeFilters = BF([HE.BOREAL, (FL.CANOPY, FL.FOREST)])
|
|
||||||
b.seasons = SE.AUTUMN
|
|
||||||
b.scarcity = SC.SPARSE
|
|
||||||
b.save("blackbear-boreal-autumn")
|
|
||||||
|
|
||||||
b.seasons = [SE.SPRING, SE.SUMMER]
|
|
||||||
b.scarcity = SC.UNUSUAL
|
|
||||||
b.save("blackbear-boreal-springsummer")
|
|
||||||
|
|
||||||
b.seasons = SE.WINTER
|
|
||||||
b.scarcity = SC.RARE
|
|
||||||
b.save("blackbear-boreal-winter")
|
|
||||||
|
|
||||||
b.start(mobs["minecraft:armadillo"])
|
b.start(mobs["minecraft:armadillo"])
|
||||||
b.altitude = AL.LOWLANDS
|
b.altitude = AL.LOWLANDS
|
||||||
b.biomeFilters = BF([HE.SUBTROPICAL, HU.DRY, SO.CLAYEY])
|
b.biomeFilters = BF([HE.SUBTROPICAL, HU.ARID, (SO.CLAYEY, SO.ROCKY)])
|
||||||
b.seasons = SE.SUMMER
|
b.seasons = SE.SUMMER
|
||||||
b.group = GR.merge(GR.SOLO, GR.PAIR)
|
b.group = GR.merge(GR.SOLO, GR.PAIR)
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
@@ -106,7 +93,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["bearminimum:brown_bear"])
|
b.start(mobs["bearminimum:brown_bear"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.ALPINE)
|
b.altitude = AL.span(AL.LOWLANDS, AL.ALPINE)
|
||||||
b.biomeFilters = BF([HE.BOREAL, (FL.CANOPY, FL.FOREST)])
|
b.biomeFilters = BF([(FL.CANOPY, FL.FOREST), HE.BOREAL])
|
||||||
b.seasons = SE.AUTUMN
|
b.seasons = SE.AUTUMN
|
||||||
b.group = GR.SOLO
|
b.group = GR.SOLO
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
@@ -122,7 +109,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["minecraft:camel"])
|
b.start(mobs["minecraft:camel"])
|
||||||
b.altitude = AL.span(AL.DUNES, AL.LOWLANDS)
|
b.altitude = AL.span(AL.DUNES, AL.LOWLANDS)
|
||||||
b.biomeFilters = BF([HE.TROPICAL, HU.DRY, FL.BARREN, SO.SANDY])
|
b.biomeFilters = BF([HE.TROPICAL, HU.ARID, SO.SANDY])
|
||||||
b.seasons = SE.DRY
|
b.seasons = SE.DRY
|
||||||
b.group = GR.FAMILY
|
b.group = GR.FAMILY
|
||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
@@ -141,7 +128,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["cold_sweat:chameleon"])
|
b.start(mobs["cold_sweat:chameleon"])
|
||||||
b.altitude = AL.span(AL.DUNES, AL.UPLANDS)
|
b.altitude = AL.span(AL.DUNES, AL.UPLANDS)
|
||||||
b.biomeFilters = BF([(FL.CANOPY, FL.FOREST), HE.TROPICAL, HU.WET, WA.INLAND])
|
b.biomeFilters = BF([(FL.CANOPY, FL.FOREST), HE.TROPICAL, HU.SOAKED])
|
||||||
b.seasons = SE.WET
|
b.seasons = SE.WET
|
||||||
b.group = GR.merge(GR.SOLO, GR.FAMILY)
|
b.group = GR.merge(GR.SOLO, GR.FAMILY)
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
@@ -153,7 +140,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["minecraft:chicken"])
|
b.start(mobs["minecraft:chicken"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
||||||
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, HU.WET], [SO.FUNGAL])
|
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, HU.SOAKED], [SO.FUNGAL])
|
||||||
b.seasons = SE.SUMMER
|
b.seasons = SE.SUMMER
|
||||||
b.group = GR.TROUP
|
b.group = GR.TROUP
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
@@ -173,8 +160,10 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["minecraft:cow"])
|
b.start(mobs["minecraft:cow"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
||||||
b.biomeFilters = \
|
b.biomeFilters = BF(
|
||||||
BF([HE.within(HE.SUBTROPICAL, HE.BOREAL), [HU.DAMP, HU.DRY], FL.FIELD], [SO.FUNGAL])
|
[FL.FIELD, HE.within(HE.SUBTROPICAL, HE.BOREAL), (HU.DAMP, HU.DRY)],
|
||||||
|
[SO.FUNGAL, SO.ROCKY]
|
||||||
|
)
|
||||||
b.seasons = [SE.SPRING, SE.SUMMER]
|
b.seasons = [SE.SPRING, SE.SUMMER]
|
||||||
b.group = GR.HERD
|
b.group = GR.HERD
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
@@ -188,19 +177,19 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["crabbersdelight:crab"])
|
b.start(mobs["crabbersdelight:crab"])
|
||||||
b.altitude = AL.DUNES
|
b.altitude = AL.DUNES
|
||||||
b.biomeFilters = BF([WA.COAST, [HE.TROPICAL, HE.SUBTROPICAL]])
|
b.biomeFilters = BF([(HE.TROPICAL, HE.SUBTROPICAL), WA.COAST])
|
||||||
b.seasons = SE.ALL
|
b.seasons = SE.ALL
|
||||||
b.group = GR.SOLO
|
b.group = GR.SOLO
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("crab-warm")
|
b.save("crab-warm")
|
||||||
|
|
||||||
b.biomeFilters = BF([WA.COAST, [HE.TEMPERATE, HE.BOREAL]])
|
b.biomeFilters = BF([(HE.TEMPERATE, HE.BOREAL), WA.COAST])
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
b.save("crab-cool")
|
b.save("crab-cool")
|
||||||
|
|
||||||
b.start(mobs["minecraft:dolphin"])
|
b.start(mobs["minecraft:dolphin"])
|
||||||
b.altitude = AL.span(AL.SURFACE, AL.DEEPS)
|
b.altitude = AL.span(AL.SURFACE, AL.DEEPS)
|
||||||
b.biomeFilters = BF([WA.OCEAN, [HE.SUBTROPICAL, HE.TEMPERATE]])
|
b.biomeFilters = BF([(HE.SUBTROPICAL, HE.TEMPERATE), WA.OCEAN])
|
||||||
b.location = LO.WATER
|
b.location = LO.WATER
|
||||||
b.seasons = SE.SUMMER
|
b.seasons = SE.SUMMER
|
||||||
b.group = GR.FAMILY
|
b.group = GR.FAMILY
|
||||||
@@ -213,7 +202,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["minecraft:donkey"])
|
b.start(mobs["minecraft:donkey"])
|
||||||
b.altitude = AL.span(AL.UPLANDS, AL.HILLS)
|
b.altitude = AL.span(AL.UPLANDS, AL.HILLS)
|
||||||
b.biomeFilters = BF([HE.SUBTROPICAL, HU.DRY, FL.FIELD])
|
b.biomeFilters = BF([FL.CLEARING, HE.SUBTROPICAL, HU.DRY])
|
||||||
b.seasons = [SE.SUMMER, SE.AUTUMN]
|
b.seasons = [SE.SUMMER, SE.AUTUMN]
|
||||||
b.group = GR.FAMILY
|
b.group = GR.FAMILY
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
@@ -226,7 +215,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["minecraft:fox"])
|
b.start(mobs["minecraft:fox"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.HILLS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.HILLS)
|
||||||
b.biomeFilters = BF([HE.within(HE.TEMPERATE, HE.FROZEN), FL.FOREST])
|
b.biomeFilters = BF([FL.FOREST, HE.within(HE.TEMPERATE, HE.FROZEN), SO.ACIDIC])
|
||||||
b.seasons = [SE.SPRING]
|
b.seasons = [SE.SPRING]
|
||||||
b.group = GR.FAMILY
|
b.group = GR.FAMILY
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
@@ -239,7 +228,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["minecraft:frog"])
|
b.start(mobs["minecraft:frog"])
|
||||||
b.altitude = AL.span(AL.SURFACE, AL.DUNES)
|
b.altitude = AL.span(AL.SURFACE, AL.DUNES)
|
||||||
b.biomeFilters = BF([(HE.TROPICAL, HE.TEMPERATE), HU.WET, WA.SWAMP])
|
b.biomeFilters = BF([WA.SWAMP])
|
||||||
b.group = GR.HERD
|
b.group = GR.HERD
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
b.seasons = SE.SUMMER
|
b.seasons = SE.SUMMER
|
||||||
@@ -307,7 +296,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["minecraft:ocelot"])
|
b.start(mobs["minecraft:ocelot"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.HILLS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.HILLS)
|
||||||
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL, HU.WET])
|
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL])
|
||||||
b.group = GR.SOLO
|
b.group = GR.SOLO
|
||||||
b.scarcity = SC.RARE
|
b.scarcity = SC.RARE
|
||||||
b.seasons = SE.ALL
|
b.seasons = SE.ALL
|
||||||
@@ -315,7 +304,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["minecraft:panda"])
|
b.start(mobs["minecraft:panda"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
||||||
b.biomeFilters = BF([ResourceId.parse("bamboo_forest")])
|
b.biomeFilters = BF([ResourceId.parse("bamboo_jungle")])
|
||||||
b.group = GR.SOLO
|
b.group = GR.SOLO
|
||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.seasons = SE.exclude(SE.SPRING)
|
b.seasons = SE.exclude(SE.SPRING)
|
||||||
@@ -327,13 +316,13 @@ def addMobSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(mobs["minecraft:parrot"])
|
b.start(mobs["minecraft:parrot"])
|
||||||
b.altitude = AL.span(AL.DUNES, AL.HILLS)
|
b.altitude = AL.span(AL.DUNES, AL.HILLS)
|
||||||
b.biomeFilters = BF([(FL.CANOPY, FL.FOREST), HE.TROPICAL, HU.WET])
|
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL])
|
||||||
b.group = GR.PAIR
|
b.group = GR.PAIR
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
b.seasons = SE.ALL
|
b.seasons = SE.ALL
|
||||||
b.save("parrot-canopyforest")
|
b.save("parrot-canopyforest")
|
||||||
|
|
||||||
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, HU.WET], [SO.FUNGAL])
|
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL], [SO.FUNGAL])
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("parrot-clearing")
|
b.save("parrot-clearing")
|
||||||
|
|
||||||
@@ -341,7 +330,9 @@ def addMobSpawns(pack:ModPack):
|
|||||||
b.altitude = AL.span(AL.LOWLANDS, AL.HILLS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.HILLS)
|
||||||
b.biomeFilters = BF([
|
b.biomeFilters = BF([
|
||||||
FL.within(FL.CANOPY, FL.CLEARING),
|
FL.within(FL.CANOPY, FL.CLEARING),
|
||||||
HE.within(HE.SUBTROPICAL, HE.TEMPERATE)
|
HE.within(HE.SUBTROPICAL, HE.BOREAL),
|
||||||
|
SO.LOAMY,
|
||||||
|
|
||||||
])
|
])
|
||||||
b.group = GR.TROUP
|
b.group = GR.TROUP
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
@@ -395,7 +386,7 @@ def addMobSpawns(pack:ModPack):
|
|||||||
b.save("rabbit-temperate-winter")
|
b.save("rabbit-temperate-winter")
|
||||||
|
|
||||||
b.altitude = AL.span(AL.DUNES, AL.LOWLANDS)
|
b.altitude = AL.span(AL.DUNES, AL.LOWLANDS)
|
||||||
b.biomeFilters = BF([FL.BARREN, HE.TROPICAL, HU.DRY])
|
b.biomeFilters = BF([FL.BARREN, HE.TROPICAL, HU.ARID])
|
||||||
b.group = GR.PAIR
|
b.group = GR.PAIR
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
b.seasons = SE.exclude(SE.SUMMER)
|
b.seasons = SE.exclude(SE.SUMMER)
|
||||||
@@ -515,6 +506,6 @@ def addMobSpawns(pack:ModPack):
|
|||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.save("wolf-arctic")
|
b.save("wolf-arctic")
|
||||||
|
|
||||||
b.biomeFilters = BF([(FL.CLEARING, FL.FIELD), HE.SUBTROPICAL, WA.INLAND])
|
b.biomeFilters = BF([(FL.CLEARING, FL.FIELD), HE.SUBTROPICAL, WA.INLAND], [SO.ROCKY])
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
b.save("wolf-savanna")
|
b.save("wolf-savanna")
|
||||||
|
|||||||
@@ -64,13 +64,6 @@ def addPlants(pack:ModPack):
|
|||||||
radius = 3,
|
radius = 3,
|
||||||
))
|
))
|
||||||
|
|
||||||
plants.add(Patch(
|
|
||||||
name = "cabbage",
|
|
||||||
blocks = f"{FD}:wild_cabbages",
|
|
||||||
density = DE.THIN,
|
|
||||||
radius = 4,
|
|
||||||
))
|
|
||||||
|
|
||||||
plants.add(Patch(
|
plants.add(Patch(
|
||||||
name = "carrot",
|
name = "carrot",
|
||||||
blocks = f"{FD}:wild_carrots",
|
blocks = f"{FD}:wild_carrots",
|
||||||
@@ -142,6 +135,13 @@ def addPlants(pack:ModPack):
|
|||||||
radius = 3,
|
radius = 3,
|
||||||
))
|
))
|
||||||
|
|
||||||
|
plants.add(Patch(
|
||||||
|
name = "lettuce",
|
||||||
|
blocks = f"{FD}:wild_cabbages",
|
||||||
|
density = DE.THIN,
|
||||||
|
radius = 4,
|
||||||
|
))
|
||||||
|
|
||||||
plants.add(Patch(
|
plants.add(Patch(
|
||||||
name = "melon",
|
name = "melon",
|
||||||
blocks = f"{MC}:melon",
|
blocks = f"{MC}:melon",
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(plants["bellpepper"])
|
b.start(plants["bellpepper"])
|
||||||
b.altitude = AL.LOWLANDS
|
b.altitude = AL.LOWLANDS
|
||||||
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, HU.WET, WA.INLAND])
|
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, HU.SOAKED, WA.INLAND])
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
b.save("bellpepper")
|
b.save("bellpepper")
|
||||||
|
|
||||||
@@ -48,21 +48,14 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
b.save("blueberry")
|
b.save("blueberry")
|
||||||
|
|
||||||
b.start(plants["brownmushroom"])
|
b.start(plants["brownmushroom"])
|
||||||
b.altitude = AL.span(AL.SOIL, AL.ALPINE)
|
b.altitude = AL.span(AL.SOIL, AL.UPLANDS)
|
||||||
b.biomeFilters = [
|
b.biomeFilters = BF(
|
||||||
BF([(FL.CANOPY, FL.FOREST), (HE.TEMPERATE, HE.BOREAL), (SO.LOAMY, SO.CLAYEY)], [WA.OCEAN]),
|
[HU.within(HU.DAMP, HU.SOAKED), (SO.CLAYEY, SO.LOAMY, SO.FUNGAL)],
|
||||||
BF([HU.WET], [HE.FROZEN, WA.OCEAN, WA.RIVER]),
|
[HE.FROZEN, WA.OCEAN, WA.RIVER]
|
||||||
BF([SO.FUNGAL]),
|
)
|
||||||
]
|
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
b.save("brownmushroom")
|
b.save("brownmushroom")
|
||||||
|
|
||||||
b.start(plants["cabbage"])
|
|
||||||
b.altitude = AL.HILLS
|
|
||||||
b.biomeFilters = BF([(HE.SUBTROPICAL, HE.TEMPERATE), SO.SANDY, WA.COAST])
|
|
||||||
b.scarcity = SC.COMMON
|
|
||||||
b.save("cabbage")
|
|
||||||
|
|
||||||
b.start(plants["carrot"])
|
b.start(plants["carrot"])
|
||||||
b.altitude = AL.LOWLANDS
|
b.altitude = AL.LOWLANDS
|
||||||
b.biomeFilters = BF(
|
b.biomeFilters = BF(
|
||||||
@@ -73,7 +66,7 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(plants["coffee"])
|
b.start(plants["coffee"])
|
||||||
b.altitude = AL.span(AL.HILLS, AL.ALPINE)
|
b.altitude = AL.span(AL.HILLS, AL.ALPINE)
|
||||||
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL, HU.WET])
|
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL, HU.SOAKED])
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
b.save("coffee")
|
b.save("coffee")
|
||||||
|
|
||||||
@@ -97,7 +90,7 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(plants["cranberry"])
|
b.start(plants["cranberry"])
|
||||||
b.altitude = AL.DUNES
|
b.altitude = AL.DUNES
|
||||||
b.biomeFilters = BF([HU.WET, SO.PEATY])
|
b.biomeFilters = BF([(HE.TEMPERATE, HE.BOREAL), WA.SWAMP])
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("cranberry")
|
b.save("cranberry")
|
||||||
|
|
||||||
@@ -106,13 +99,13 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
# "flax" as a fiberous, desert-dwelling cousin.
|
# "flax" as a fiberous, desert-dwelling cousin.
|
||||||
b.start(plants["flax"])
|
b.start(plants["flax"])
|
||||||
b.altitude = AL.DUNES
|
b.altitude = AL.DUNES
|
||||||
b.biomeFilters = BF([FL.BARREN, HU.DRY, SO.SANDY])
|
b.biomeFilters = BF([FL.BARREN, HU.ARID, SO.SANDY])
|
||||||
b.scarcity = SC.COMMON
|
b.scarcity = SC.COMMON
|
||||||
b.save("flax")
|
b.save("flax")
|
||||||
|
|
||||||
b.start(plants["hamimelon"])
|
b.start(plants["hamimelon"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
||||||
b.biomeFilters = BF([FL.FIELD, HE.SUBTROPICAL, HU.DRY, (SO.LOAMY, SO.SANDY)])
|
b.biomeFilters = BF([FL.FIELD, HE.SUBTROPICAL, HU.ARID, (SO.LOAMY, SO.SANDY)])
|
||||||
b.scarcity = SC.RARE
|
b.scarcity = SC.RARE
|
||||||
b.save("hamimelon")
|
b.save("hamimelon")
|
||||||
|
|
||||||
@@ -130,9 +123,15 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
b.save("lemon")
|
b.save("lemon")
|
||||||
|
|
||||||
|
b.start(plants["lettuce"])
|
||||||
|
b.altitude = AL.HILLS
|
||||||
|
b.biomeFilters = BF([FL.FIELD, HE.TEMPERATE, SO.SANDY])
|
||||||
|
b.scarcity = SC.COMMON
|
||||||
|
b.save("lettuce")
|
||||||
|
|
||||||
b.start(plants["melon"])
|
b.start(plants["melon"])
|
||||||
b.altitude = AL.LOWLANDS
|
b.altitude = AL.LOWLANDS
|
||||||
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, HU.WET], [SO.FUNGAL])
|
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, HU.SOAKED], [SO.FUNGAL])
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
b.save("melon")
|
b.save("melon")
|
||||||
|
|
||||||
@@ -147,7 +146,7 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
# a more cactus-like cousin of actual pineapples.
|
# a more cactus-like cousin of actual pineapples.
|
||||||
b.start(plants["pineapple"])
|
b.start(plants["pineapple"])
|
||||||
b.altitude = AL.LOWLANDS
|
b.altitude = AL.LOWLANDS
|
||||||
b.biomeFilters = BF([FL.BARREN, HE.TROPICAL, HU.DRY, SO.SANDY])
|
b.biomeFilters = BF([FL.BARREN, HE.TROPICAL, HU.ARID, SO.SANDY])
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
# TODO: add sand as substrate in addplants.py
|
# TODO: add sand as substrate in addplants.py
|
||||||
b.save("pineapple")
|
b.save("pineapple")
|
||||||
@@ -165,12 +164,11 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
b.save("pumpkin")
|
b.save("pumpkin")
|
||||||
|
|
||||||
b.start(plants["redmushroom"])
|
b.start(plants["redmushroom"])
|
||||||
b.altitude = AL.span(AL.SOIL, AL.ALPINE)
|
b.altitude = AL.span(AL.SOIL, AL.UPLANDS)
|
||||||
b.biomeFilters = [
|
b.biomeFilters = BF(
|
||||||
BF([(FL.CANOPY, FL.FOREST), (HE.TEMPERATE, HE.BOREAL), (SO.LOAMY, SO.CLAYEY)]),
|
[HU.within(HU.DAMP, HU.SOAKED), (SO.ACIDIC, SO.CLAYEY, SO.FUNGAL)],
|
||||||
BF([HU.WET], [HE.FROZEN, WA.OCEAN, WA.RIVER]),
|
[HE.FROZEN, WA.OCEAN, WA.RIVER]
|
||||||
BF([SO.FUNGAL]),
|
)
|
||||||
]
|
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("redmushroom")
|
b.save("redmushroom")
|
||||||
|
|
||||||
@@ -193,8 +191,8 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
b.save("sunflower")
|
b.save("sunflower")
|
||||||
|
|
||||||
b.start(plants["tomato"])
|
b.start(plants["tomato"])
|
||||||
b.altitude = AL.span(AL.UPLANDS, AL.HILLS)
|
b.altitude = AL.UPLANDS
|
||||||
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, HU.WET], [SO.FUNGAL])
|
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, (HU.DAMP, HU.SOAKED)], [SO.FUNGAL])
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("tomato")
|
b.save("tomato")
|
||||||
|
|
||||||
@@ -220,7 +218,7 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(plants["blueorchid"])
|
b.start(plants["blueorchid"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
||||||
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL, HU.WET])
|
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL, HU.SOAKED])
|
||||||
b.scarcity = SC.RARE
|
b.scarcity = SC.RARE
|
||||||
b.save("blueorchid")
|
b.save("blueorchid")
|
||||||
|
|
||||||
@@ -326,8 +324,8 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
b.save("bayberry-tree")
|
b.save("bayberry-tree")
|
||||||
|
|
||||||
b.start(plants["durian"])
|
b.start(plants["durian"])
|
||||||
b.altitude = AL.HILLS
|
b.altitude = AL.UPLANDS
|
||||||
b.biomeFilters = BF([FL.within(FL.CANOPY, FL.CLEARING), HE.TROPICAL, HU.WET, SO.ACIDIC])
|
b.biomeFilters = BF([FL.FOREST, HE.TROPICAL, SO.ACIDIC])
|
||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.save("durian-tree")
|
b.save("durian-tree")
|
||||||
|
|
||||||
@@ -338,28 +336,26 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
b.save("fig-tree")
|
b.save("fig-tree")
|
||||||
|
|
||||||
b.start(plants["hawberry"])
|
b.start(plants["hawberry"])
|
||||||
b.altitude = AL.span(AL.UPLANDS, AL.HILLS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
||||||
b.biomeFilters = BF([(FL.FOREST, FL.CLEARING), HE.TEMPERATE, (SO.ACIDIC, SO.LOAMY)])
|
b.biomeFilters = BF([(FL.FOREST, FL.CLEARING), HE.TEMPERATE, SO.ACIDIC])
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
b.save("hawberry-tree")
|
b.save("hawberry-tree")
|
||||||
|
|
||||||
b.start(plants["lychee"])
|
b.start(plants["lychee"])
|
||||||
b.altitude = AL.UPLANDS
|
b.altitude = AL.LOWLANDS
|
||||||
b.biomeFilters = BF([FL.CLEARING, HE.TROPICAL, HU.WET], [SO.FUNGAL])
|
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL, HU.SOAKED])
|
||||||
b.scarcity = SC.SPARSE
|
b.scarcity = SC.SPARSE
|
||||||
b.save("lychee-tree")
|
b.save("lychee-tree")
|
||||||
|
|
||||||
b.start(plants["mango"])
|
b.start(plants["mango"])
|
||||||
b.altitude = AL.LOWLANDS
|
b.altitude = AL.LOWLANDS
|
||||||
b.biomeFilters = BF(
|
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL, HU.SOAKED])
|
||||||
[FL.within(FL.CANOPY, FL.CLEARING), HE.TROPICAL, (HU.DAMP, HU.WET), SO.ACIDIC]
|
|
||||||
)
|
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("mango-tree")
|
b.save("mango-tree")
|
||||||
|
|
||||||
b.start(plants["mangosteen"])
|
b.start(plants["mangosteen"])
|
||||||
b.altitude = AL.UPLANDS
|
b.altitude = AL.UPLANDS
|
||||||
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL, HU.WET, SO.ACIDIC])
|
b.biomeFilters = BF([FL.CANOPY, HE.TROPICAL, HU.SOAKED])
|
||||||
b.scarcity = SC.UNUSUAL
|
b.scarcity = SC.UNUSUAL
|
||||||
b.save("mangosteen-tree")
|
b.save("mangosteen-tree")
|
||||||
|
|
||||||
@@ -383,6 +379,6 @@ def addPlantSpawns(pack:ModPack):
|
|||||||
|
|
||||||
b.start(plants["persimmon"])
|
b.start(plants["persimmon"])
|
||||||
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
b.altitude = AL.span(AL.LOWLANDS, AL.UPLANDS)
|
||||||
b.biomeFilters = BF([FL.FOREST, HE.TEMPERATE, SO.LOAMY])
|
b.biomeFilters = BF([FL.FIELD, HE.TEMPERATE, SO.LOAMY])
|
||||||
b.scarcity = SC.UNCOMMON
|
b.scarcity = SC.UNCOMMON
|
||||||
b.save("persimmon-tree")
|
b.save("persimmon-tree")
|
||||||
|
|||||||
@@ -0,0 +1,59 @@
|
|||||||
|
# Core Conceptual Mods:
|
||||||
|
|
||||||
|
* Alex's Mobs
|
||||||
|
* Cold Sweat
|
||||||
|
* Dynamic Trees
|
||||||
|
* Farmer's Delight
|
||||||
|
* Immersive Engineering
|
||||||
|
* Immersive Healing
|
||||||
|
* Railcraft Reborn
|
||||||
|
* Serene Seasons
|
||||||
|
* Thirst Was Taken
|
||||||
|
* Tectonic
|
||||||
|
|
||||||
|
# Extensions
|
||||||
|
|
||||||
|
* Brewin' and Chewin'
|
||||||
|
* Butchery
|
||||||
|
* Corn Delight
|
||||||
|
* Crabber's Delight
|
||||||
|
* Egg Delight
|
||||||
|
* Engineer's Delight
|
||||||
|
* Fruits Delight
|
||||||
|
* Miner's Delight
|
||||||
|
* Ocean's Delight
|
||||||
|
* Pizza Delight
|
||||||
|
* Realistic Wheat
|
||||||
|
* Rustic Delight
|
||||||
|
|
||||||
|
# Atmosphere & Decor
|
||||||
|
|
||||||
|
* Bear Minimum
|
||||||
|
* Chisels & Bits
|
||||||
|
* Comforts
|
||||||
|
* Dramatic Doors
|
||||||
|
* Dramatic Surroundings
|
||||||
|
* Flower Patch
|
||||||
|
* Flower Seeds
|
||||||
|
* Macaw's Bridges
|
||||||
|
* Macaw's Fences and Walls
|
||||||
|
* Macaw's Paths and Paving
|
||||||
|
* Macaw's Stairs
|
||||||
|
* Macaw's Windows
|
||||||
|
* Simplest Copper Gear
|
||||||
|
* Sky's Overworld Quartz
|
||||||
|
* Small Ships
|
||||||
|
* Storage Drawers
|
||||||
|
* Supplementaries
|
||||||
|
|
||||||
|
# Game Mechanics
|
||||||
|
|
||||||
|
* Better Safe Bed
|
||||||
|
* Biome Spawn Point
|
||||||
|
* Carry On
|
||||||
|
* Chunk Loaders
|
||||||
|
* InControl!
|
||||||
|
* Map Atlases
|
||||||
|
* Simple Finite Water Control
|
||||||
|
* Stack Refill
|
||||||
|
* You're in Grave Danger
|
||||||
Reference in New Issue
Block a user