Files
mcpacker/mcpacker/pack/mysteriousisland/adddeposits.py
T
Andrew Miner 919c3d7312 Add remaining mineral deposits
* update repr results to yield valid Python
* update biome report to display deposits
* add deposit report
2025-10-15 15:35:49 -06:00

251 lines
8.2 KiB
Python

from mcpacker.model.core.ecology.biomefilter import BiomeFilter as BF
from mcpacker.model.core.geology.deposit.geodedeposit import GeodeDeposit
from mcpacker.model.core.geology.deposit.mineraldeposit import MineralDeposit
from mcpacker.model.core.geology.inclusion import Inclusion as I
from mcpacker.model.modpack import ModPack
import mcpacker.model.core.altitude as AL
import mcpacker.model.core.ecology.flora as FL
import mcpacker.model.core.ecology.geology as GE
import mcpacker.model.core.ecology.heat as HE
import mcpacker.model.core.ecology.humidity as HU
import mcpacker.model.core.ecology.soil as SO
import mcpacker.model.core.ecology.water as WA
import mcpacker.model.core.geology.bulk as BU
import mcpacker.model.core.geology.proportion as PR
import mcpacker.model.core.scarcity as SC
# Catalog ##########################################################################################
def addDeposits(pack:ModPack):
minerals = pack.world.minerals
deposits = pack.world.deposits
# Geode Deposits ###########################################################
deposits.add(GeodeDeposit(
name = "geode_amethyst",
altitude = AL.span(AL.MANTLE, AL.CRUST),
# TODO: these filter exclude all biomes
biomeFilters = BF([GE.IGNEOUS, HE.TEMPERATE, HU.DAMP]),
scarcity = SC.UNCOMMON,
))
deposits.add(GeodeDeposit(
name = "geode_kimberlite",
altitude = AL.span(AL.MANTLE, AL.CRUST),
biomeFilters = BF([GE.IGNEOUS]),
scarcity = SC.SPARSE,
))
deposits.add(MineralDeposit(
name = "hydrothermal_emerald",
altitude = AL.span(AL.CRUST, AL.SUBSTRATE),
biomeFilters = BF([HE.FROZEN, GE.METAMORPHIC, SO.ROCKY]),
scarcity = SC.UNCOMMON,
))
# Metal Deposits ###########################################################
deposits.add(MineralDeposit(
name = "bif_iron",
altitude = AL.span(AL.CRUST, AL.SUBSTRATE),
biomeFilters = BF([FL.FIELD, HE.SUBTROPICAL, HU.DRY]),
bulk = BU.LARGE,
inclusions = [
I(minerals["iron"], 50),
I(minerals["quartz"], 45),
I(minerals["uranium"], 5)
],
proportion = PR.BED,
scarcity = SC.UNCOMMON,
))
deposits.add(MineralDeposit(
name = "epithermal_silver",
altitude = AL.span(AL.OVERBURDEN, AL.SUBSTRATE),
biomeFilters = BF([(HE.BOREAL, HE.FROZEN), SO.ROCKY, GE.IGNEOUS]),
bulk = BU.SMALL,
inclusions = [I(minerals["silver"], 75), I(minerals["gold"], 25)],
proportion = PR.PIPE,
scarcity = SC.RARE,
))
deposits.add(MineralDeposit(
name = "greisen_tin",
altitude = AL.span(AL.OVERBURDEN, AL.SUBSTRATE),
biomeFilters = BF([HE.BOREAL, SO.ROCKY, GE.METAMORPHIC]),
bulk = BU.MEDIUM,
inclusions = [I(minerals["tin"], 100)],
proportion = PR.STOCK,
scarcity = SC.COMMON,
))
deposits.add(MineralDeposit(
name = "laterite_aluminum",
altitude = AL.span(AL.DUNES, AL.UPLANDS),
biomeFilters = BF([FL.within(FL.CANOPY, FL.CLEARING), HU.WET, HE.TROPICAL, GE.SEDIMENTARY]),
bulk = BU.MEDIUM,
inclusions = [I(minerals["aluminum"], 70), I(minerals["nickel"], 30)],
proportion = PR.LENS,
scarcity = SC.UNCOMMON,
))
deposits.add(MineralDeposit(
name = "mvt_lead",
altitude = AL.span(AL.CRUST, AL.SUBSTRATE),
biomeFilters = [
BF([FL.FIELD, GE.SEDIMENTARY, HE.TEMPERATE, HU.DAMP]),
BF([GE.SEDIMENTARY, HE.TEMPERATE, SO.CLAYEY]),
],
bulk = BU.MEDIUM,
inclusions = [
I(minerals["lead"], 45),
I(minerals["zinc"], 40),
I(minerals["silver"], 15),
],
proportion = PR.LODE,
scarcity = SC.SPARSE,
))
deposits.add(MineralDeposit(
name = "porphyry_copper",
altitude = AL.span(AL.MANTLE, AL.OVERBURDEN),
biomeFilters = BF([GE.SEDIMENTARY, HE.SUBTROPICAL, HU.DRY, SO.CLAYEY]),
bulk = BU.LARGE,
inclusions = [
I(minerals["copper"], 55),
I(minerals["redstone"], 25),
I(minerals["gold"], 20),
],
proportion = PR.PIPE,
scarcity = SC.UNUSUAL,
))
deposits.add(MineralDeposit(
name = "sedimentary_iron",
altitude = AL.span(AL.OVERBURDEN, AL.SOIL),
biomeFilters = BF([
FL.within(FL.CANOPY, FL.CLEARING),
(HE.TEMPERATE, HE.BOREAL)
]),
bulk = BU.LARGE,
inclusions = [I(minerals["iron"], 100)],
proportion = PR.LODE,
scarcity = SC.COMMON,
))
deposits.add(MineralDeposit(
name = "serpentine_nickel",
altitude = AL.span(AL.UPLANDS, AL.HILLS),
biomeFilters = BF([GE.METAMORPHIC, (HU.DAMP, HU.WET), (SO.ACIDIC, SO.ROCKY)]),
bulk = BU.SMALL,
inclusions = [I(minerals["nickel"], 70), I(minerals["iron"], 30)],
proportion = PR.LENS,
scarcity = SC.UNCOMMON,
))
# Mineral Deposits #########################################################
deposits.add(MineralDeposit(
name = "evaporite_salt",
altitude = AL.EVAPORITES,
biomeFilters = BF([HE.TROPICAL, HU.DRY, SO.SANDY]),
bulk = BU.TINY,
inclusions = [I(minerals["salt"], 100)],
proportion = PR.BED,
scarcity = SC.SPARSE,
))
deposits.add(MineralDeposit(
name = "evaporite_nitrate",
altitude = AL.EVAPORITES,
biomeFilters = BF([FL.BARREN, HE.SUBTROPICAL, HU.DRY, SO.CLAYEY]),
bulk = BU.TINY,
inclusions = [I(minerals["nitrate"], 100)],
proportion = PR.BED,
scarcity = SC.SPARSE,
))
deposits.add(MineralDeposit(
name = "fumarole_sulfur",
altitude = AL.CRUST,
biomeFilters = BF([GE.IGNEOUS]),
bulk = BU.MEDIUM,
inclusions = [I(minerals["sulfur"], 100)],
proportion = PR.VENT,
scarcity = SC.UNUSUAL,
))
deposits.add(MineralDeposit(
name = "sedimentary_redbed",
altitude = AL.span(AL.SOIL, AL.HILLS),
biomeFilters = BF([GE.SEDIMENTARY, HE.SUBTROPICAL, HU.DRY, SO.CLAYEY]),
bulk = BU.SMALL,
inclusions = [I(minerals["redstone"], 80), I(minerals["iron"], 20)],
proportion = PR.BED,
scarcity = SC.UNCOMMON,
))
deposits.add(MineralDeposit(
name = "skarn_lapis",
altitude = AL.CRUST,
biomeFilters = BF([GE.METAMORPHIC, HE.BOREAL, SO.ROCKY]),
bulk = BU.LARGE,
inclusions = [
I(minerals["greywacke"], 50),
I(minerals["lapis"], 25),
I(minerals["diorite"], 10),
I(minerals["quartz"], 10),
I(minerals["iron"], 5),
],
proportion = PR.LENS,
scarcity = SC.SPARSE,
))
deposits.add(MineralDeposit(
name = "vein_quartz",
altitude = AL.span(AL.SUBSTRATE, AL.OVERBURDEN),
biomeFilters = BF([HE.TROPICAL, HU.DRY, SO.SANDY]),
bulk = BU.MEDIUM,
inclusions = [I(minerals["quartz"], 95), I(minerals["gold"], 5)],
proportion = PR.LODE,
scarcity = SC.UNUSUAL,
))
# Organic Deposits #########################################################
deposits.add(MineralDeposit(
name = "bed_loam",
altitude = AL.span(AL.SOIL),
biomeFilters = BF([HE.TEMPERATE, HU.DAMP, SO.LOAMY]),
bulk = BU.TINY,
inclusions = [I(minerals["loam"], 100)],
proportion = PR.BED,
scarcity = SC.COMMON,
))
deposits.add(MineralDeposit(
name = "seam_bituminouscoal",
altitude = AL.span(AL.CRUST, AL.OVERBURDEN),
biomeFilters = [
BF([FL.FOREST, GE.SEDIMENTARY, HE.TEMPERATE]),
BF([HE.BOREAL, GE.METAMORPHIC, (SO.ACIDIC, SO.ROCKY)]),
],
bulk = BU.HUGE,
inclusions = [I(minerals["coal"], 100)],
proportion = PR.BED,
scarcity = SC.COMMON,
))
deposits.add(MineralDeposit(
name = "seam_peatcoal",
altitude = AL.span(AL.SOIL),
biomeFilters = BF([SO.PEATY]),
bulk = BU.LARGE,
inclusions = [I(minerals["peat"], 100)],
proportion = PR.BED,
scarcity = SC.COMMON,
))