55 lines
2.1 KiB
JavaScript
55 lines
2.1 KiB
JavaScript
// priority: 0
|
|
|
|
const registerGTCEULoots = (event) => {
|
|
|
|
global.TFC_STONE_TYPES.forEach(stoneType => {
|
|
GTMaterialRegistry.getRegisteredMaterials().forEach(material => {
|
|
if (material.hasProperty(PropertyKey.ORE)) {
|
|
|
|
let stoneTypeMaterial = GTMaterials.get(stoneType)
|
|
let stoneTypeDust = null
|
|
|
|
if (stoneTypeMaterial != null) stoneTypeDust = ChemicalHelper.get(TagPrefix.dust, stoneTypeMaterial, 1)
|
|
|
|
let richRawOre = ChemicalHelper.get(TFGTagPrefix.richRawOre, material, 1)
|
|
let normalRawOre = ChemicalHelper.get(TagPrefix.rawOre, material, 1)
|
|
let poorRawOre = ChemicalHelper.get(TFGTagPrefix.poorRawOre, material, 1)
|
|
|
|
let crushedOre = ChemicalHelper.get(TagPrefix.crushed, material, 1)
|
|
|
|
let blockName = `gtceu:${stoneType}_${material.getName()}_ore`
|
|
|
|
if (!richRawOre.isEmpty() && !normalRawOre.isEmpty() && !poorRawOre.isEmpty()) {
|
|
|
|
event.addBlockLootModifier(blockName)
|
|
.removeLoot(Ingredient.all)
|
|
.addWeightedLoot([
|
|
richRawOre.withChance(0.2),
|
|
normalRawOre.withChance(0.6),
|
|
poorRawOre.withChance(0.2)
|
|
]);
|
|
}
|
|
|
|
if (!stoneTypeDust.isEmpty()) {
|
|
event.addBlockLootModifier(blockName)
|
|
.addLoot(
|
|
LootEntry.of(stoneTypeDust).when((c) => c.randomChance(0.25))
|
|
)
|
|
}
|
|
|
|
if (!crushedOre.isEmpty()) {
|
|
event.addBlockLootModifier(blockName)
|
|
.matchMainHand('#forge:tools/hammers')
|
|
.removeLoot(Ingredient.all)
|
|
.addWeightedLoot([
|
|
crushedOre.withChance(0.8),
|
|
crushedOre.withCount(2).withChance(0.2)
|
|
]);
|
|
}
|
|
|
|
|
|
}
|
|
})
|
|
})
|
|
|
|
}
|