neuralgia/kubejs/server_scripts/gregtech/loot.js
Pyritie f0845f2c69
Release: 0.9.3 (#951)
* changed Caelum to be on the server too, since tfc-caelum is also a server mod

* added caelum + tfc-caelum to pakku

* fixed stress levels on the rolling mill

* fixed lang files for universal circuits

* changed early game recipes to use small gears instead of large, to avoid duping, and make cogs easier

* Update carryon-common.toml

Carry On's config doesn't seem to work with tags (#), so I explicitly added the framedblocks chest and the tfc chests to the whitelist. I also removed storage drawers since they aren't in use.

Signed-off-by: NobleWasTaken <137561393+NobleWasTaken@users.noreply.github.com>

* - Missed this commit last time oops

* Fixed nano legs buff from also removing speed buff, for now

* Added recycling recipes for your old molds

* lowered recipe speed of bulk washing

* Added more details to ore hazards field guide entry

* Bump actions/download-artifact in the dependencies group

Bumps the dependencies group with 1 update: [actions/download-artifact](https://github.com/actions/download-artifact).


Updates `actions/download-artifact` from 4.2.1 to 4.3.0
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4.2.1...v4.3.0)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: 4.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>

* will you leave me alone if I submit these, ftbquests?

* more create SU adjustments

* - Added recipe to separate fertilizer into pure sources, and mix them back together.
- Added recipes to sew hides together and cut them apart.

* ore basics + hazards field guide entry tweaks

* big field guide update! all ore veins are now generated with our tool!

* toned down how many sticks were being placed in the nether

* remove caelum + tfc caelum #922

* - Added recipe to separate fertilizer into pure sources, and mix them back together. (#927)

- Added recipes to sew hides together and cut them apart.

* the placeholder programmed circuit recipe is now a stick + wrench, so it doesn't confuse new players as much

* updated changelog

* changed some create recipes to use bolts instead of nuggets, so they're available earlier

* moved surface_kaolin to mechanics category

* changed realgar item set

* Add README file to server overrides

* Fix tips quest issues (#937)

* - Fixed supports

* fixed some incorrect assembler recipes for create items

* improved texture of nether quartz ore + the raw ore block of the quartz material set

* greate buffs

* remove brick duping

* removed treated wood boats

* clay decomposition now requires HV

* added a potential fix for #944 suggested by ghosti, cleaned up some other abuses of it in tag events so now it's just indicators that still have to use it

* fixed tfc tool tags

* fluix's displayed formula is now more accurate to its material composition

* nerfed stone dust centrifuging, added a basic tape recipe that uses tfc glue

* fixes #932

* Allow red/tin alloy double ingot piles, add textures (#948)

* Mv quest rework (#920)

* Changes for MV Quests

* First fix for Progression tab

* fixes lang title

Signed-off-by: TomPlop <tomdidome@gmail.com>

* Changes for LV, fixes for quest categories, adding GT Tips, adding Gregtech energy, rework of Progression tab

* fix macerator separator

---------

Signed-off-by: TomPlop <tomdidome@gmail.com>

* - the other ae2 wireless terminals are now all in late EV
- MEGA ae2 stuff now requires naq instead of a singularity

* coke and coal are no longer gems, and moss is no longer dirt

* fixed some icon sets

* the nether now has a gas collector recipe

* update changelog

* some more ae2 tweaking

* better recipe for the universal wireless terminal

* swapped colors of nickel and platinum, so nickel more closely matches the tfc textures

* doubled capacity of greate shafts! also adjusted the alternator to match

* fix: gui_main_menu

* pakku update

* fix: gui_main_menu 2

* Update mods

* removed beneath's cursecoal and sylvite veins, made tfg ones instead so they're added to the field guide

* new main menu panorama!

* update changelog

* update changelog

* added death punishment mod + config

* updated the greate mixer workaround quest

* Rubber processing recipes audit (#949)

* Rubber recipe changes
- Latex can now be extracted from rubber trees' logs, saplings, leaves via the vacuum chamber (ULV) or extractor(LV)
- values: 1000mB per log, 100mB per sapling, 50mB per leaves; Extractor recipes do this in bulk and output 1000mB per operation
- Dandelions and goldenrods can, with added sodium hydroxide, be turned into latex in a chem reactor
- Sticky resin recipes (from both conifer pitch and latex) require wood ash now instead of sulfur
- Latex -> Vulcanized latex recipe now requires sulfur instead of wood ash
- Vulcanized latex now becomes raw rubber pulp in a solidifier or vacuum chamber at a rate of 250mB/raw pulp
- Latex soaked glove recipe now is a barrel recipe that takes 50 seconds instead of a vat recipe

* Correctly set latex soaked gloves recipe to 50 seconds (was 100 seconds in previous commit)

* Quest/patchouli book updates
- Tried to catch every mention of the old rubber making recipes.

* Revert Latex-soaked gloves recipe change as it didn't need to change
- Originally I wanted to make vulc latex -> raw rubber a Vat recipe, this isn't the case anymore so there is no reason to change this recipe.

* Rebalanced recipe values
- Logs now only give 250mB of latex
- Increase overall in time required vacuumizing directly into latex (now roughly takes 150 seconds per 1000mB, logs slightly faster)
- Gregtech fluid extraction recipes for these have been rebalanced to be around 4x faster and in bulk (roughly 37.5 seconds per 1000mB, logs slightly faster)
- Made vacuum chamber recipes use kubejs tag: field for allowing tags in recipe

* Lang & Quest updates
- Changed rubber ingot quest dependency to be on vacuum chamber instead of extractor
- Removed LV circuit quest dependency on rubber (this hasn't required rubber for a while)
- Lang changes - fix ambiguous wording, typos, titles too long for book

* updated langs

* oops, missed quest langs

* pushing algo_rithm's lang changes

* updated punishment-for-death pakku

* update configs

* langs

* Update CHANGELOG.md

* Update mods

* CHANGELOG

* Update build.yml

---------

Signed-off-by: NobleWasTaken <137561393+NobleWasTaken@users.noreply.github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: NobleWasTaken <137561393+NobleWasTaken@users.noreply.github.com>
Co-authored-by: Redeix <59435925+Redeix@users.noreply.github.com>
Co-authored-by: Redeix <brayden.j.m.ford@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Xikaro <55663835+Xikaro@users.noreply.github.com>
Co-authored-by: Nebby1999 <nebby131999@gmail.com>
Co-authored-by: Nebby <78170922+Nebby1999@users.noreply.github.com>
Co-authored-by: AirRice <jpumph2@gmail.com>
Co-authored-by: TomPlop <tomdidome@gmail.com>
Co-authored-by: Xikaro <os.valerievich@ya.ru>
2025-05-05 21:58:47 +05:00

158 lines
No EOL
5.1 KiB
JavaScript

// priority: 10
const STONE_TYPES_TO_COBBLE = {
gabbro: 'tfc:rock/cobble/gabbro',
shale: 'tfc:rock/cobble/shale',
claystone: 'tfc:rock/cobble/claystone',
limestone: 'tfc:rock/cobble/limestone',
conglomerate: 'tfc:rock/cobble/conglomerate',
dolomite: 'tfc:rock/cobble/dolomite',
chert: 'tfc:rock/cobble/chert',
chalk: 'tfc:rock/cobble/chalk',
rhyolite: 'tfc:rock/cobble/rhyolite',
dacite: 'tfc:rock/cobble/dacite',
quartzite: 'tfc:rock/cobble/quartzite',
slate: 'tfc:rock/cobble/slate',
phyllite: 'tfc:rock/cobble/phyllite',
schist: 'tfc:rock/cobble/schist',
gneiss: 'tfc:rock/cobble/gneiss',
marble: 'tfc:rock/cobble/marble',
basalt: 'tfc:rock/cobble/basalt',
diorite: 'tfc:rock/cobble/diorite',
andesite: 'tfc:rock/cobble/andesite',
granite: 'tfc:rock/cobble/granite',
deepslate: 'minecraft:cobbled_deepslate',
pyroxenite: 'minecraft:blackstone',
dripstone: 'minecraft:dripstone_block',
}
const registerGTCEULoots = (event) => {
// Have to define these here because normal loot table jsons don't support checking for hammers
event.addBlockLootModifier('minecraft:deepslate')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('minecraft:cobbled_deepslate')
event.addBlockLootModifier('minecraft:blackstone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/black')
event.addBlockLootModifier('minecraft:dripstone_block')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/brown')
event.addBlockLootModifier('tfg:rock/hardened_blackstone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/black')
event.addBlockLootModifier('tfg:rock/hardened_deepslate')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/black')
event.addBlockLootModifier('tfg:rock/hardened_dripstone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/brown')
event.addBlockLootModifier('minecraft:gilded_blackstone')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addSequenceLoot(
LootEntry.of('tfc:sand/black'),
LootEntry.of('tfc:powder/native_gold')
)
event.addBlockLootModifier('beneath:crackrack')
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot('tfc:sand/pink')
// Crush raw rock into cobble
global.ORE_BEARING_STONES.forEach(stoneType => {
event.addBlockLootModifier(`tfc:rock/raw/${stoneType}`)
.matchMainHand('#forge:tools/hammers')
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addLoot(STONE_TYPES_TO_COBBLE[stoneType]);
})
// Go through all materials
forEachMaterial(material => {
if (material.hasProperty(PropertyKey.ORE)) {
// Indicator buds
if (material.hasProperty(PropertyKey.GEM)) {
let normalDrop = ChemicalHelper.get(TagPrefix.gemChipped, material, 1)
let sawDrop = ChemicalHelper.get(TagPrefix.gem, material, 1)
let bud = `gtceu:${material.getName()}_bud_indicator`;
event.addBlockLootModifier(bud)
.matchMainHand("tfc:gem_saw")
.addLoot(sawDrop);
event.addBlockLootModifier(bud)
.not(n => n.matchMainHand("tfc:gem_saw"))
.addLoot(normalDrop);
}
let richRawOre = ChemicalHelper.get(TFGTagPrefix.richRawOre, material, 1)
let normalRawOre = ChemicalHelper.get(TagPrefix.rawOre, material, 1)
let poorRawOre = ChemicalHelper.get(TFGTagPrefix.poorRawOre, material, 1)
// I LOVE LOOTJS I LOVE LOOTJS I LOVE LOOTJS
let rawOreBlock = `:${ChemicalHelper.get(TagPrefix.rawOreBlock, material, 1).getItem()}`;
if (material == GTMaterials.Copper || material == GTMaterials.Gold || material == GTMaterials.Iron)
rawOreBlock = "minecraft" + rawOreBlock;
else
rawOreBlock = "gtceu" + rawOreBlock;
event.addBlockLootModifier(rawOreBlock)
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([4, 6],
[
richRawOre.withChance(0.2),
normalRawOre.withChance(0.6),
poorRawOre.withChance(0.2)
]);
// Stone ores
global.ORE_BEARING_STONES.forEach(stoneType => {
let stoneTypeMaterial = TFGHelpers.getMaterial(stoneType)
// Material doesn't work here because of reasons
if (stoneTypeMaterial == null) {
if (stoneType == "pyroxenite")
stoneTypeMaterial = GTMaterials.Blackstone;
else if (stoneType == "deepslate")
stoneTypeMaterial = GTMaterials.Deepslate;
}
let stoneTypeDust = ChemicalHelper.get(TagPrefix.dust, stoneTypeMaterial, 1)
// break with pickaxe
event.addBlockLootModifier(`gtceu:${stoneType}_${material.getName()}_ore`)
.removeLoot(ItemFilter.ALWAYS_TRUE)
.addWeightedLoot([
richRawOre.withChance(0.2),
normalRawOre.withChance(0.6),
poorRawOre.withChance(0.2)
])
.addLoot(
LootEntry.of(stoneTypeDust).when((c) => c.randomChance(0.25))
)
// break with hammer
event.addBlockLootModifier(`gtceu:${stoneType}_${material.getName()}_ore`)
.matchMainHand('#forge:tools/hammers')
.addLoot(STONE_TYPES_TO_COBBLE[stoneType]);
})
}
})
}