Merge branch 'dev' of https://github.com/TerraFirmaGreg-Team/Modpack-Modern into dev
This commit is contained in:
commit
b24ac77bb3
79 changed files with 6785 additions and 1006 deletions
|
|
@ -17,4 +17,8 @@ function registerTFCDataForAdAstra(event) {
|
|||
food.dairy(5)
|
||||
food.decayModifier(10)
|
||||
})
|
||||
|
||||
global.AD_ASTRA_WOOD.forEach(wood => {
|
||||
event.fuel(wood.logs, 800, 1500, null)
|
||||
})
|
||||
}
|
||||
|
|
@ -697,4 +697,40 @@ const registerAdAstraRecipes = (event) => {
|
|||
})
|
||||
|
||||
//#endregion
|
||||
|
||||
//#region Wood
|
||||
event.remove({ type: 'greate:cutting', input: '#ad_astra:aeronos_caps' })
|
||||
event.remove({ type: 'greate:cutting', input: 'ad_astra:aeronos_planks' })
|
||||
event.remove({ type: 'greate:cutting', input: '#ad_astra:strophar_caps' })
|
||||
event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_log' })
|
||||
event.remove({ type: 'greate:cutting', input: 'ad_astra:stripped_glacian_log' })
|
||||
event.remove({ type: 'greate:cutting', input: 'ad_astra:strophar_planks' })
|
||||
event.remove({ type: 'greate:cutting', input: 'ad_astra:glacian_planks' })
|
||||
|
||||
global.AD_ASTRA_WOOD.forEach(wood => {
|
||||
woodBuilder(event, wood.name, wood.lumber, wood.logs, wood.log, wood.stripped_log, wood.plank, wood.stair, wood.slab, wood.door, wood.trapdoor, wood.fence, wood.fence_gate, wood.support, wood.pressure_plate, wood.button)
|
||||
})
|
||||
|
||||
event.shaped('16x ad_astra:aeronos_ladder', [
|
||||
'A A',
|
||||
'ABA',
|
||||
'A A'
|
||||
], {
|
||||
A: 'tfg:wood/lumber/aeronos',
|
||||
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1),
|
||||
}).id('tfg:shaped/aeronos_ladder')
|
||||
|
||||
event.shaped('16x ad_astra:strophar_ladder', [
|
||||
'A A',
|
||||
'ABA',
|
||||
'A A'
|
||||
], {
|
||||
A: 'tfg:wood/lumber/strophar',
|
||||
B: ChemicalHelper.get(TagPrefix.rod, GTMaterials.Wood, 1),
|
||||
}).id('tfg:shaped/strophar_ladder')
|
||||
|
||||
generateGreenHouseRecipe(event, '8x ad_astra:glacian_fur', 16000, '64x ad_astra:glacian_log', 'tfg:green_house/glacian_tree', 'ad_astra:moon', 8, '8x ad_astra:glacian_leaves', GTValues.VA[GTValues.MV])
|
||||
generateGreenHouseRecipe(event, '8x ad_astra:strophar_mushroom', 16000, '64x ad_astra:strophar_stem', 'tfg:green_house/strophar_mushroom', 'ad_astra:moon', 8, '16x ad_astra:strophar_cap', GTValues.VA[GTValues.MV])
|
||||
generateGreenHouseRecipe(event, '8x ad_astra:aeronos_mushroom', 16000, '64x ad_astra:aeronos_stem', 'tfg:green_house/aeronos_mushroom', 'ad_astra:moon', 8, '16x ad_astra:aeronos_cap', GTValues.VA[GTValues.MV])
|
||||
//#endregion
|
||||
}
|
||||
|
|
|
|||
|
|
@ -81,6 +81,28 @@ const registerAdAstraItemTags = (event) => {
|
|||
event.add('ad_astra:space_suit_items', 'gtceu:quarktech_helmet')
|
||||
event.add('ad_astra:space_suit_items', 'gtceu:quarktech_leggings')
|
||||
event.add('ad_astra:space_suit_items', 'gtceu:quarktech_boots')
|
||||
|
||||
event.remove('minecraft:wool', 'ad_astra:glacian_fur')
|
||||
|
||||
global.AD_ASTRA_WOOD.forEach(wood => {
|
||||
|
||||
if (wood.log) {
|
||||
event.add('minecraft:logs', wood.log)
|
||||
event.add('minecraft:logs_that_burn', wood.log)
|
||||
}
|
||||
|
||||
if (wood.stripped_log) {
|
||||
event.add('minecraft:logs', wood.stripped_log)
|
||||
event.add('minecraft:logs_that_burn', wood.stripped_log)
|
||||
}
|
||||
|
||||
if (wood.isHardwood == true) {
|
||||
event.add('tfg:hardwood', wood.logs)
|
||||
} else {
|
||||
event.add('tfg:softwood', wood.logs)
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const registerAdAstraBlockTags = (event) => {
|
||||
|
|
|
|||
|
|
@ -60,14 +60,16 @@ const generateCutterRecipe = (event, input, output, duration, EUt, id) => {
|
|||
* Function for generating greenhouse recipes.
|
||||
*
|
||||
* @param {*} event
|
||||
* @param {string} input -Item
|
||||
* @param {number} fluid_amount -mB
|
||||
* @param {string} output -Item
|
||||
* @param {string} input -Item (Not consumed)
|
||||
* @param {number} fluid_amount -mB (uses #tfg:clean_water)
|
||||
* @param {string} output -Item (Chanced output uses input item)
|
||||
* @param {string} id -Recipe ID
|
||||
* @param {string} dimension -Dimension ID
|
||||
* @param {number} fertiliser_count
|
||||
* @param {string} output_seconday -Item (Optional, if there should be a third output)
|
||||
* @param {string} tier - GTValues.VA[] (Optional, defaults to LV)
|
||||
*/
|
||||
const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimension, fertiliser_count) => {
|
||||
const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimension, fertiliser_count, output_secondary, tier) => {
|
||||
|
||||
// Без удобрения (Without fertilizer)
|
||||
let r = event.recipes.gtceu.greenhouse(id)
|
||||
|
|
@ -78,10 +80,18 @@ const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimens
|
|||
.chancedOutput(input, 750, 0)
|
||||
.chancedOutput(input, 500, 0)
|
||||
.duration(36000) // 30 mins
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
if (dimension != null)
|
||||
if (dimension != null){
|
||||
r.dimension(dimension)
|
||||
}
|
||||
if (output_secondary != null){
|
||||
r.chancedOutput(output_secondary, 750, 0)
|
||||
}
|
||||
if (tier != null){
|
||||
r.EUt(tier)
|
||||
} else {
|
||||
r.EUt(GTValues.VA[GTValues.LV])
|
||||
}
|
||||
|
||||
// С удобрением (With fertilizer)
|
||||
r = event.recipes.gtceu.greenhouse(`${id}_fertilized`)
|
||||
|
|
@ -93,10 +103,18 @@ const generateGreenHouseRecipe = (event, input, fluid_amount, output, id, dimens
|
|||
.chancedOutput(input, 4000, 0)
|
||||
.chancedOutput(input, 3000, 0)
|
||||
.duration(12000) // 10 mins
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
if (dimension != null)
|
||||
if (dimension != null){
|
||||
r.dimension(dimension)
|
||||
}
|
||||
if (output_secondary != null){
|
||||
r.chancedOutput(output_secondary, 4000, 0)
|
||||
}
|
||||
if (tier != null){
|
||||
r.EUt(tier)
|
||||
} else {
|
||||
r.EUt(GTValues.VA[GTValues.LV])
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
|
||||
|
|
@ -279,4 +297,177 @@ function addCircuitToRecipe(event, recipeId, circuitNumber) {
|
|||
recipe.json.add("inputs", inputs);
|
||||
});
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//#region Wood Builder
|
||||
|
||||
/**
|
||||
* Generates most basic wooden recipes.
|
||||
*
|
||||
* All parameters are optional. Name is used for the ID.
|
||||
*
|
||||
* @param {*} event
|
||||
* @param {string} name -Name of the wood.
|
||||
* @param {string} lumber -ID for the lumber.
|
||||
* @param {string} logs -Tag or ID for all the logs.
|
||||
* @param {string} log -ID for the regular log.
|
||||
* @param {string} stripped_log -ID for the stripped log.
|
||||
* @param {string} plank -ID for planks.
|
||||
* @param {string} stair -ID for stairs.
|
||||
* @param {string} slab -ID for slabs.
|
||||
* @param {string} door -ID for the door.
|
||||
* @param {string} trapdoor -ID for the trapdoor.
|
||||
* @param {string} fence -ID for the fence.
|
||||
* @param {string} fence_gate -ID for the fence gate.
|
||||
* @param {string} support -ID for the support.
|
||||
* @param {string} pressure_plate -ID for the pressure plate.
|
||||
* @param {string} button -ID for the button.
|
||||
*/
|
||||
function woodBuilder(event, name, lumber, logs, log, stripped_log, plank, stair, slab, door, trapdoor, fence, fence_gate, support, pressure_plate, button) {
|
||||
|
||||
if (log && stripped_log && name) {
|
||||
event.recipes.gtceu.lathe(`tfg:cutter/${name}_stripped_log_from_log`)
|
||||
.itemInputs(log)
|
||||
.itemOutputs(stripped_log)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
}
|
||||
|
||||
if (logs && lumber && name) {
|
||||
event.shapeless(`8x ${lumber}`,
|
||||
[logs, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_log`)
|
||||
|
||||
generateCutterRecipe(event, logs, `16x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_log`)
|
||||
}
|
||||
|
||||
if (plank && lumber && name) {
|
||||
event.shapeless(`4x ${lumber}`,
|
||||
[plank, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_plank`)
|
||||
|
||||
generateCutterRecipe(event, plank, `4x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_plank`)
|
||||
|
||||
event.shaped(plank, [
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: lumber,
|
||||
}).id(`tfg:shaped/${name}_plank_from_lumber`)
|
||||
}
|
||||
|
||||
if (slab && lumber && name) {
|
||||
event.shapeless(`2x ${lumber}`,
|
||||
[slab, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_slab`)
|
||||
|
||||
generateCutterRecipe(event, slab, `2x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_slab`)
|
||||
}
|
||||
|
||||
if (slab && plank && name) {
|
||||
event.shaped(`6x ${slab}`, [
|
||||
'AAA'
|
||||
], {
|
||||
A: plank,
|
||||
}).id(`tfg:shaped/${name}_slab_from_plank`)
|
||||
}
|
||||
|
||||
if (stair && lumber && name) {
|
||||
event.shapeless(`3x ${lumber}`,
|
||||
[stair, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_lumber_from_stair`)
|
||||
|
||||
generateCutterRecipe(event, stair, `3x ${lumber}`, 50, 7, `cutter_${name}_lumber_from_stair`)
|
||||
}
|
||||
|
||||
if (stair && plank && name) {
|
||||
event.shaped(`8x ${stair}`, [
|
||||
'A ',
|
||||
'AA ',
|
||||
'AAA'
|
||||
], {
|
||||
A: plank,
|
||||
}).id(`tfg:shaped/${name}_stair_from_plank`)
|
||||
}
|
||||
|
||||
if (door && lumber && name) {
|
||||
event.shaped(`2x ${door}`, [
|
||||
'AA',
|
||||
'AA',
|
||||
'AA'
|
||||
], {
|
||||
A: lumber,
|
||||
}).id(`tfg:shaped/${name}_door_from_lumber`)
|
||||
}
|
||||
|
||||
if (trapdoor && lumber && name) {
|
||||
event.shaped(`3x ${trapdoor}`, [
|
||||
'AAA',
|
||||
'AAA'
|
||||
], {
|
||||
A: lumber,
|
||||
}).id(`tfg:shaped/${name}_trapdoor_from_lumber_and_plank`)
|
||||
}
|
||||
|
||||
if (fence && lumber && plank && name) {
|
||||
event.shaped(`8x ${fence}`, [
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: lumber,
|
||||
B: plank,
|
||||
}).id(`tfg:shaped/${name}_fence_from_lumber_and_plank`)
|
||||
}
|
||||
|
||||
if (fence_gate && lumber && plank && name) {
|
||||
event.shaped(`2x ${fence_gate}`, [
|
||||
'ABA',
|
||||
'ABA'
|
||||
], {
|
||||
A: plank,
|
||||
B: lumber,
|
||||
}).id(`tfg:shaped/${name}_fence_gate_from_lumber_and_plank`)
|
||||
}
|
||||
|
||||
if (support && logs && name) {
|
||||
event.shapeless(`8x ${support}`,
|
||||
[`2x ${logs}`, '#forge:tools/saws']
|
||||
).id(`tfg:shapeless/${name}_support_from_logs`)
|
||||
|
||||
event.recipes.gtceu.assembler(`tfg:assembler/${name}_support_from_logs`)
|
||||
.itemInputs(`2x ${logs}`)
|
||||
.itemOutputs(`8x ${support}`)
|
||||
.duration(50)
|
||||
.circuit(4)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
}
|
||||
|
||||
if (pressure_plate && slab && name) {
|
||||
event.shaped(pressure_plate, [
|
||||
' B ',
|
||||
'ACA',
|
||||
' D '
|
||||
], {
|
||||
A: slab,
|
||||
B: '#forge:tools/hammers',
|
||||
C: '#forge:springs',
|
||||
D: '#forge:tools/screwdrivers',
|
||||
}).id(`tfg:shaped/${name}_pressure_plate`)
|
||||
|
||||
event.recipes.gtceu.assembler(`tfg:assembler/${name}_pressure_plate`)
|
||||
.itemInputs(`2x ${slab}`, '#forge:springs')
|
||||
.itemOutputs(`2x ${pressure_plate}`)
|
||||
.duration(50)
|
||||
.circuit(0)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
}
|
||||
|
||||
if (button && pressure_plate && name) {
|
||||
event.recipes.gtceu.cutter(`tfg:cutter/${name}_button_from_pressure_plate`)
|
||||
.itemInputs(pressure_plate)
|
||||
.itemOutputs(`6x ${button}`)
|
||||
.duration(50)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
}
|
||||
}
|
||||
//#endregion
|
||||
|
|
@ -38,6 +38,7 @@ ServerEvents.tags('item', event => {
|
|||
registerModernMarkingsItemTags(event)
|
||||
registerMoreRedItemTags(event)
|
||||
registerHotOrNotItemTags(event)
|
||||
registerPrimitiveCreaturesItemTags(event)
|
||||
registerRailWaysItemTags(event)
|
||||
registerRnrItemTags(event)
|
||||
registerSophisticatedBackpacksItemTags(event)
|
||||
|
|
@ -237,6 +238,7 @@ ServerEvents.recipes(event => {
|
|||
registerMinecraftRecipes(event)
|
||||
registerModernMarkingRecipes(event)
|
||||
registerMoreRedRecipes(event)
|
||||
registerPrimitiveCreaturesRecipes(event)
|
||||
registerProgrammedCircuitCardRecipes(event)
|
||||
registerRailWaysRecipes(event)
|
||||
registerRnrRecipes(event)
|
||||
|
|
|
|||
|
|
@ -814,10 +814,10 @@ const registerMinecraftRecipes = (event) => {
|
|||
.EUt(420)
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:minecraft/elytra_repairing')
|
||||
.itemInputs('6x tfg:polycaprolactam_fabric', Item.of('minecraft:elytra', '{Damage:2045}').strongNBT())
|
||||
.itemInputs('6x tfg:polycaprolactam_fabric', 'minecraft:elytra')
|
||||
.circuit(4)
|
||||
.itemOutputs(Item.of('minecraft:elytra', "{Damage:0}"))
|
||||
.duration(1600)
|
||||
.duration(800)
|
||||
.EUt(120)
|
||||
|
||||
event.recipes.gtceu.arc_furnace('tfg:minecraft/arc_furnace/recycling/elytra')
|
||||
|
|
@ -1083,4 +1083,6 @@ const registerMinecraftRecipes = (event) => {
|
|||
event.shapeless('2x minecraft:gunpowder',
|
||||
['#forge:tools/mortars', 'tfc:powder/saltpeter', 'tfc:powder/saltpeter', 'tfc:powder/sulfur', 'tfc:powder/charcoal', 'tfc:powder/charcoal', 'tfc:powder/charcoal'])
|
||||
.id('tfg:shapeless/gunpowder_tfc_style')
|
||||
|
||||
event.shapeless('8x minecraft:bone_meal', ['#forge:tools/mortars', 'minecraft:skeleton_skull'])
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2079,4 +2079,5 @@ function removeMinecraftRecipes(event) {
|
|||
//#endregion
|
||||
|
||||
event.remove({ id: 'minecraft:flower_banner_pattern' })
|
||||
event.remove({ id: 'gtceu:assembler/lodestone' })
|
||||
}
|
||||
|
|
@ -2,12 +2,180 @@
|
|||
|
||||
function registerPrimitiveCreaturesLoots(event) {
|
||||
|
||||
event.addEntityLootModifier('kaolinclayze:tfc')
|
||||
// kaolin klayze
|
||||
event.addEntityLootModifier('primitive_creatures:tfc')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([12,16], ['tfc:kaolin_clay', 'minecraft:clay_ball'])
|
||||
.addLoot('tfc:plant/blood_lily')
|
||||
|
||||
event.addEntityLootModifier('kaolinclayze:golem_2')
|
||||
// graphite glayze
|
||||
event.addEntityLootModifier('primitive_creatures:golem_2')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([3,5], ['gtceu:rich_raw_graphite'])
|
||||
.addWeightedLoot([2,4], ['gtceu:rich_raw_graphite'])
|
||||
|
||||
|
||||
const CLOTHING_DROP_RATE = 0.05
|
||||
|
||||
// inhabitant - light tan clothes, holds a stone axe
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_1')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([
|
||||
// the illusion of randomness
|
||||
Item.of('tfc:food/bunchberry', 3),
|
||||
Item.of('tfc:food/cranberry', 4),
|
||||
Item.of('tfc:food/gooseberry', 5),
|
||||
Item.of('tfc:food/blackberry', 6),
|
||||
Item.of('tfc:food/blueberry', 3),
|
||||
Item.of('tfc:food/cloudberry', 4),
|
||||
Item.of('tfc:food/elderberry', 5),
|
||||
Item.of('tfc:food/raspberry', 6),
|
||||
Item.of('tfc:food/snowberry', 3),
|
||||
Item.of('tfc:food/strawberry', 4),
|
||||
Item.of('tfc:food/wintergreen_berry', 5)])
|
||||
.addAlternativesLoot(
|
||||
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.8)),
|
||||
LootEntry.of('gtceu:stone_axe').when(c => c.randomChance(0.3)),
|
||||
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
|
||||
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_1')
|
||||
.randomChance(CLOTHING_DROP_RATE)
|
||||
.addWeightedLoot([
|
||||
Item.of('tfc_textile:raw_hat'),
|
||||
Item.of('tfc_textile:raw_shirt'),
|
||||
Item.of('tfc_textile:raw_pants'),
|
||||
Item.of('tfc_textile:raw_socks')])
|
||||
|
||||
// herbalist - brown clothes with a mask that looks like a Creaking
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_2')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([1,2], ['gtceu:tricalcium_phosphate_dust'])
|
||||
.addAlternativesLoot(
|
||||
LootEntry.of('tfc:plant/field_horsetail').when(c => c.randomChance(0.3)),
|
||||
LootEntry.of('tfc:plant/foxglove').when(c => c.randomChance(0.5)),
|
||||
LootEntry.of('firmalife:beeswax').when(c => c.randomChance(0.8)),
|
||||
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
|
||||
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_2')
|
||||
.randomChance(CLOTHING_DROP_RATE)
|
||||
.addWeightedLoot([
|
||||
Item.of('tfc_textile:grizzly_bear_hat'),
|
||||
Item.of('tfc_textile:grizzly_bear_shirt'),
|
||||
Item.of('tfc_textile:grizzly_bear_pants'),
|
||||
Item.of('tfc_textile:grizzly_bear_boots')])
|
||||
|
||||
// bonebreaker - skull helmet, bone armor? hits harder, has knockback
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_3')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([0,2], ['minecraft:flint'])
|
||||
.addWeightedLoot([1,3], ['minecraft:bone'])
|
||||
.addAlternativesLoot(
|
||||
LootEntry.of('gtceu:stone_hammer').when(c => c.randomChance(0.2)),
|
||||
LootEntry.of('minecraft:skeleton_skull').when(c => c.randomChance(0.1)),
|
||||
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5))) // battered wool
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_3')
|
||||
.randomChance(CLOTHING_DROP_RATE)
|
||||
.addWeightedLoot([
|
||||
Item.of('tfc_textile:direwolf_hat'),
|
||||
Item.of('tfc_textile:direwolf_shirt'),
|
||||
Item.of('tfc_textile:direwolf_pants'),
|
||||
Item.of('tfc_textile:direwolf_boots')])
|
||||
|
||||
// forager - leaf on head, leafy clothes (like the swamp vanilla villager type), ranged with poison
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_4')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([1,3], LootEntry.of('minecraft:tipped_arrow')).addPotion("poison")
|
||||
.addAlternativesLoot(
|
||||
LootEntry.of('firmalife:food/nightshade_berry').when(c => c.randomChance(0.7)),
|
||||
LootEntry.of('minecraft:spider_eye').when(c => c.randomChance(0.7)),
|
||||
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
|
||||
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.1)))
|
||||
|
||||
// hunter - wears brown and white fur, briefly disappears when hit, ranged with weakness
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_5')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([1,3], LootEntry.of('minecraft:tipped_arrow')).addPotion("weakness")
|
||||
.addAlternativesLoot(
|
||||
// placeholder for a blowpipe
|
||||
LootEntry.of('minecraft:bamboo').when(c => c.randomChance(0.6)),
|
||||
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5)), // battered wool
|
||||
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
|
||||
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_5')
|
||||
.randomChance(CLOTHING_DROP_RATE)
|
||||
.addWeightedLoot([
|
||||
Item.of('tfc_textile:sabertooth_hat'),
|
||||
Item.of('tfc_textile:sabertooth_shirt'),
|
||||
Item.of('tfc_textile:sabertooth_pants'),
|
||||
Item.of('tfc_textile:sabertooth_boots')])
|
||||
|
||||
// shaman - yellow clothes, throws fireballs
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_6')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([1,2], ['primitive_creatures:f_1']) // primitive explosives
|
||||
.addWeightedLoot([1,3], ['minecraft:gunpowder'])
|
||||
.addAlternativesLoot(
|
||||
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5)), // battered wool
|
||||
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.1)),
|
||||
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
|
||||
event.addEntityLootModifier('primitive_creatures:iloger_6')
|
||||
.randomChance(CLOTHING_DROP_RATE)
|
||||
.addWeightedLoot([
|
||||
Item.of('tfc_textile:cougar_hat'),
|
||||
Item.of('tfc_textile:cougar_shirt'),
|
||||
Item.of('tfc_textile:cougar_pants'),
|
||||
Item.of('tfc_textile:cougar_boots')])
|
||||
|
||||
// beast tamer - wears tiger fur, holds vanilla sugarcane? fucking summons ravagers
|
||||
event.addEntityLootModifier('primitive_creatures:wiloger')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([0,2], ['primitive_creatures:grh']) // battered wool
|
||||
.addAlternativesLoot(
|
||||
LootEntry.of('minecraft:lead').when(c => c.randomChance(0.4)),
|
||||
LootEntry.of('primitive_creatures:totem_0').when(c => c.randomChance(0.1)),
|
||||
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
|
||||
event.addEntityLootModifier('primitive_creatures:wiloger')
|
||||
.randomChance(CLOTHING_DROP_RATE)
|
||||
.addWeightedLoot([
|
||||
Item.of('tfc_textile:tiger_hat'),
|
||||
Item.of('tfc_textile:tiger_shirt'),
|
||||
Item.of('tfc_textile:tiger_pants'),
|
||||
Item.of('tfc_textile:tiger_boots')])
|
||||
|
||||
// huntsman - lion fur, holds flint club - stuns you in place when hit
|
||||
event.addEntityLootModifier('primitive_creatures:piloger_9')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addAlternativesLoot(
|
||||
LootEntry.of('primitive_creatures:yhgi').when(c => c.randomChance(0.2)), // flint club
|
||||
LootEntry.of('tfc:small_raw_hide').when(c => c.randomChance(0.4)),
|
||||
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.5))) // battered wool
|
||||
event.addEntityLootModifier('primitive_creatures:piloger_9')
|
||||
.randomChance(CLOTHING_DROP_RATE)
|
||||
.addWeightedLoot([
|
||||
Item.of('tfc_textile:lion_hat'),
|
||||
Item.of('tfc_textile:lion_shirt'),
|
||||
Item.of('tfc_textile:lion_pants'),
|
||||
Item.of('tfc_textile:lion_boots')])
|
||||
|
||||
// mercenary
|
||||
event.addEntityLootModifier('primitive_creatures:viloger_10')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([1,2], ['minecraft:emerald'])
|
||||
.addAlternativesLoot(
|
||||
LootEntry.of('primitive_creatures:grh').when(c => c.randomChance(0.8)), // battered wool
|
||||
LootEntry.of('gtceu:stone_knife').when(c => c.randomChance(0.3)),
|
||||
LootEntry.of('primitive_creatures:totem_2').when(c => c.randomChance(0.1)),
|
||||
LootEntry.of('primitive_creatures:totem_3').when(c => c.randomChance(0.1)))
|
||||
event.addEntityLootModifier('primitive_creatures:viloger_10')
|
||||
.randomChance(CLOTHING_DROP_RATE)
|
||||
.addWeightedLoot([
|
||||
Item.of('tfc_textile:raw_hat'),
|
||||
Item.of('tfc_textile:raw_shirt'),
|
||||
Item.of('tfc_textile:raw_pants'),
|
||||
Item.of('tfc_textile:raw_socks')])
|
||||
|
||||
// mistah beeeaaaasssstt
|
||||
event.addEntityLootModifier('primitive_creatures:beast')
|
||||
.removeLoot(ItemFilter.ALWAYS_TRUE)
|
||||
.addWeightedLoot([4,8], ['minecraft:bone'])
|
||||
// raw meat?
|
||||
}
|
||||
44
kubejs/server_scripts/primitive_creatures/recipes.js
Normal file
44
kubejs/server_scripts/primitive_creatures/recipes.js
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
// priority: 0
|
||||
|
||||
function registerPrimitiveCreaturesRecipes(event) {
|
||||
|
||||
// terrible idol crafting
|
||||
event.remove({ id: 'primitive_creatures:h' })
|
||||
// the brown idol -> brown dye
|
||||
event.remove({ id: 'primitive_creatures:eg' })
|
||||
// craft flint club
|
||||
event.remove({ id: 'primitive_creatures:rwtge' })
|
||||
// battered wool to wool block
|
||||
event.remove({ id: 'primitive_creatures:egwgew' })
|
||||
// lodestone?
|
||||
event.remove({ id: 'primitive_creatures:hhg' })
|
||||
|
||||
// craft fortified flint club
|
||||
event.replaceInput({ id: 'primitive_creatures:wegfweg' }, 'primitive_creatures:tt_5', '#tfc:nuggets')
|
||||
event.replaceInput({ id: 'primitive_creatures:wegfweg' }, 'primitive_creatures:grh', 'tfc:wool')
|
||||
|
||||
event.recipes.tfc.knapping(
|
||||
'tfg:flint_club_head',
|
||||
'tfg:flint',
|
||||
[
|
||||
' XXX ',
|
||||
' XXX ',
|
||||
' X ',
|
||||
' XXX ',
|
||||
' X '
|
||||
]
|
||||
).outsideSlotRequired(false)
|
||||
.id('tfg:knapping/flint_club_head')
|
||||
|
||||
// craft flint club
|
||||
event.shapeless('primitive_creatures:yhgi', ['tfg:flint_club_head', '#forge:rods/wooden'])
|
||||
.id('tfg:shapeless/flint_club')
|
||||
|
||||
// turn battered wool into tfc wool
|
||||
event.shapeless('tfc:wool', ['primitive_creatures:grh', 'primitive_creatures:grh', '#forge:tools/knives'])
|
||||
.id('tfg:shapeless/cleaning_battered_wool')
|
||||
|
||||
// mud idol into mud
|
||||
event.shapeless('6x tfc:daub', ['primitive_creatures:totem_3'])
|
||||
.id('tfg:shapeless/totem_3_decomp')
|
||||
}
|
||||
28
kubejs/server_scripts/primitive_creatures/tags.js
Normal file
28
kubejs/server_scripts/primitive_creatures/tags.js
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
// priority: 0
|
||||
|
||||
function registerPrimitiveCreaturesItemTags(event) {
|
||||
const DISABLED_ITEMS = [
|
||||
// idol fragment (combine to make a terrible idol)
|
||||
'primitive_creatures:tt_5',
|
||||
// the terrible idol (spawns illager herobrine)
|
||||
'primitive_creatures:kopo',
|
||||
// the friendly idol (spawns an allay)
|
||||
'primitive_creatures:jjj',
|
||||
]
|
||||
|
||||
DISABLED_ITEMS.forEach(item => {
|
||||
event.removeAllTagsFrom(item)
|
||||
event.add('c:hidden_from_recipe_viewers', item)
|
||||
})
|
||||
|
||||
// This tag doesn't actually do anything, as the list is hardcoded into the mod,
|
||||
// but it makes it easier to find what they will accept
|
||||
event.add('primitive_creatures:mercenary_payment', 'minecraft:rabbit_foot')
|
||||
event.add('primitive_creatures:mercenary_payment', 'minecraft:leather')
|
||||
event.add('primitive_creatures:mercenary_payment', 'minecraft:scute')
|
||||
event.add('primitive_creatures:mercenary_payment', 'minecraft:redstone')
|
||||
event.add('primitive_creatures:mercenary_payment', 'minecraft:gunpowder')
|
||||
event.add('primitive_creatures:mercenary_payment', 'minecraft:spider_eye')
|
||||
event.add('primitive_creatures:mercenary_payment', 'minecraft:flint')
|
||||
event.add('primitive_creatures:mercenary_payment', 'minecraft:emerald')
|
||||
}
|
||||
|
|
@ -1,7 +1,10 @@
|
|||
// priority: 0
|
||||
|
||||
function registerSpeciesRecipes(event) {
|
||||
event.remove({ mod: 'species' })
|
||||
global.SPECIES_DISABLED_ITEMS.forEach(item => {
|
||||
event.remove({ input: item })
|
||||
event.remove({ output: item })
|
||||
})
|
||||
|
||||
event.shapeless('species:music_disc_dial', ['etched:blank_music_disc', 'species:birt_egg'])
|
||||
|
||||
|
|
|
|||
|
|
@ -295,4 +295,11 @@ const registerTFCRecipes = (event) => {
|
|||
]).id('tfc:shapeless/jar_lid')
|
||||
|
||||
event.replaceInput({ mod: 'tfc' }, 'minecraft:sugar', '#tfg:sugars')
|
||||
|
||||
// Sea Water
|
||||
event.recipes.tfc.barrel_instant()
|
||||
.inputItem(ChemicalHelper.get(TagPrefix.dust, GTMaterials.Salt, 1))
|
||||
.inputFluid(Fluid.of('minecraft:water', 1000))
|
||||
.outputFluid(Fluid.of('tfc:salt_water', 1000))
|
||||
.id('tfg:barrel/water_to_salt_water')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,6 +128,7 @@ function removeTFCRecipes(event) {
|
|||
|
||||
event.remove({ id: `tfc:crafting/windmill_blade` })
|
||||
event.remove({ id: `tfc:barrel/dye/bleach_windmill_blades` })
|
||||
event.remove({ id: 'tfc:barrel/fresh_to_salt_water' })
|
||||
|
||||
global.MINECRAFT_DYE_NAMES.forEach(dye => {
|
||||
event.remove({ id: `tfc:barrel/dye/${dye}_windmill_blade` })
|
||||
|
|
|
|||
|
|
@ -64,6 +64,9 @@ const registerTFCItemTags = (event) => {
|
|||
event.add('tfg:ferments_to_rennet', 'firmalife:food/fig')
|
||||
event.add('tfg:ferments_to_rennet', 'tfc:plant/ivy')
|
||||
|
||||
//Plants
|
||||
event.add('tfc:plants', '#tfc:wild_fruits')
|
||||
|
||||
// Для складывания
|
||||
event.add('tfc:pileable_ingots', '#forge:ingots')
|
||||
event.add('tfc:pileable_sheets', '#forge:plates')
|
||||
|
|
|
|||
|
|
@ -42,6 +42,11 @@ const registerTFGItemSize = (event) => {
|
|||
event.itemSize('tfg:fishing_net/tin_alloy', 'large', 'medium', 'tin_alloy_fishing_net')
|
||||
event.itemSize('tfg:fishing_net/magnalium', 'large', 'medium', 'magnalium_fishing_net')
|
||||
|
||||
event.itemSize('tfg:trowel', 'large', 'medium', 'trowel')
|
||||
|
||||
event.itemSize('tfg:harvest_basket', 'large', 'medium', 'harvest_basket')
|
||||
event.itemSize('tfg:aluminium_harvest_basket', 'large', 'medium', 'aluminium_harvest_basket')
|
||||
|
||||
event.itemSize('tfg:rapeseed_product', 'small', 'light', 'rapeseed_product')
|
||||
event.itemSize('tfg:sunflower_product', 'small', 'light', 'sunflower_product')
|
||||
|
||||
|
|
@ -64,6 +69,10 @@ const registerTFGSupportData = (event) => {
|
|||
|
||||
event.support(`tfg:${stone}_support_horizontal`, 2, 2, 4, `${stone}_support`)
|
||||
})
|
||||
|
||||
global.AD_ASTRA_WOOD.forEach(wood => {
|
||||
event.support(`tfg:${wood.name}_support_horizontal`, 2, 2, 4, `${wood.name}_support`)
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -459,6 +459,8 @@ function registerTFGFoodRecipes(event) {
|
|||
|
||||
cookingRecipe("corn_tortilla", "firmalife:food/masa", "firmalife:food/corn_tortilla")
|
||||
|
||||
cookingRecipe("baked_potato", "tfc:food/potato", "tfc:food/baked_potato")
|
||||
|
||||
cookingRecipe("boiled_egg", "#firmalife:foods/raw_eggs", "tfc:food/boiled_egg")
|
||||
.inputFluids(JsonIO.of({ amount: 200, value: { tag: "tfg:clean_water" }}))
|
||||
|
||||
|
|
|
|||
|
|
@ -745,4 +745,64 @@ function registerTFGMiscellaneousRecipes(event) {
|
|||
.itemOutputs('gtceu:quantum_eye')
|
||||
.duration(24 * 20)
|
||||
.EUt(480)
|
||||
|
||||
// Harvest Baskets
|
||||
|
||||
event.shaped('tfg:harvest_basket', [
|
||||
'BDB',
|
||||
'ACA',
|
||||
'AAA'
|
||||
], {
|
||||
A: 'tfg:soaked_hardwood_strip',
|
||||
B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1),
|
||||
C: 'tfc:glue',
|
||||
D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1),
|
||||
}).id('tfg:shaped/harvest_basket_from_wood')
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_wood')
|
||||
.itemInputs(
|
||||
'5x tfg:soaked_hardwood_strip',
|
||||
ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2),
|
||||
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1)
|
||||
)
|
||||
.inputFluids(Fluid.of('gtceu:glue', 50))
|
||||
.itemOutputs('tfg:harvest_basket')
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.shaped('tfg:harvest_basket', [
|
||||
'BDB',
|
||||
'ACA',
|
||||
'AAA'
|
||||
], {
|
||||
A: 'tfc:soaked_papyrus_strip',
|
||||
B: ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 1),
|
||||
C: 'tfc:glue',
|
||||
D: ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1),
|
||||
}).id('tfg:shaped/harvest_basket_from_papyrus')
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:assembler/harvest_basket_from_papyrus')
|
||||
.itemInputs(
|
||||
'5x tfc:soaked_papyrus_strip',
|
||||
ChemicalHelper.get(TagPrefix.bolt, GTMaterials.SterlingSilver, 2),
|
||||
ChemicalHelper.get(TagPrefix.rodLong, GTMaterials.TreatedWood, 1)
|
||||
)
|
||||
.inputFluids(Fluid.of('gtceu:glue', 50))
|
||||
.itemOutputs('tfg:harvest_basket')
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.assembler('tfg:assembler/aluminium_harvest_basket')
|
||||
.itemInputs(
|
||||
ChemicalHelper.get(TagPrefix.plate, GTMaterials.Aluminium, 3),
|
||||
ChemicalHelper.get(TagPrefix.foil, GTMaterials.Aluminium, 2),
|
||||
ChemicalHelper.get(TagPrefix.bolt, GTMaterials.Steel, 2),
|
||||
ChemicalHelper.get(TagPrefix.rodLong,
|
||||
GTMaterials.Aluminium, 1)
|
||||
)
|
||||
.inputFluids(Fluid.of('gtceu:cobalt_brass', 144))
|
||||
.itemOutputs('tfg:aluminium_harvest_basket')
|
||||
.duration(200)
|
||||
.circuit(4)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
}
|
||||
|
|
|
|||
|
|
@ -85,6 +85,12 @@ function registerTFGPapermakingRecipes(event) {
|
|||
.inputs('tfg:hardwood_strip', TFC.fluidStackIngredient('#tfc:water', 100))
|
||||
.outputItem('tfg:soaked_hardwood_strip')
|
||||
.id('tfg:barrel/soak_hardwood_strip')
|
||||
event.recipes.gtceu.chemical_bath('tfg:chemical_bath/soak_hardwood_strips')
|
||||
.inputFluids( JsonIO.of({ amount: 100, value: { tag: "tfc:any_water" }}))
|
||||
.itemInputs('tfg:hardwood_strip')
|
||||
.itemOutputs('tfg:soaked_hardwood_strip')
|
||||
.duration(200)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
//Create Hardwood Dust using Quern and Millstone/Crushing Wheels
|
||||
event.recipes.gtceu.macerator('tfg:macerator/macerate_hardwood_strips')
|
||||
|
|
|
|||
|
|
@ -376,4 +376,27 @@ function registerTFGRecyclingRecipes(event) {
|
|||
.duration(GTMaterials.Titanium.getMass() * 6)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
//Aluminium Harvest Basket
|
||||
event.recipes.gtceu.macerator('tfg:macerator/recycling/aluminium_harvest_basket')
|
||||
.itemInputs('tfg:aluminium_harvest_basket')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dust, GTMaterials.Aluminium, 2),
|
||||
ChemicalHelper.get(TagPrefix.dustTiny, GTMaterials.Steel, 1),
|
||||
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.CobaltBrass, 2)
|
||||
)
|
||||
.duration(GTMaterials.Aluminium.getMass() * 2)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/aluminium_harvest_basket')
|
||||
.itemInputs('tfg:aluminium_harvest_basket')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.ingot, GTMaterials.Aluminium, 2),
|
||||
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 1),
|
||||
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.CobaltBrass, 2)
|
||||
)
|
||||
.duration(GTMaterials.Aluminium.getMass() * 2)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
}
|
||||
|
|
@ -29,7 +29,7 @@ const registerTFGItemTags = (event) => {
|
|||
//Knapping
|
||||
event.add('tfc:any_knapping', 'minecraft:flint')
|
||||
|
||||
//Tools & Armor
|
||||
//#region Tools & Armor
|
||||
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/wood')
|
||||
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/brass')
|
||||
event.add('forge:tools/fishing_nets', 'tfg:fishing_net/rose_gold')
|
||||
|
|
@ -44,6 +44,10 @@ const registerTFGItemTags = (event) => {
|
|||
event.add('forge:tools/trowels', 'tfg:trowel')
|
||||
event.add('tfc:usable_on_tool_rack', 'tfg:trowel')
|
||||
|
||||
event.add('tfg:harvester', 'tfg:harvest_basket')
|
||||
event.add('tfg:harvester', 'tfg:aluminium_harvest_basket')
|
||||
//#endregion
|
||||
|
||||
// #region Paper from wood
|
||||
event.add('tfg:hardwood_strips', 'tfg:hardwood_strip')
|
||||
event.add('tfg:hardwood_strips', 'tfg:soaked_hardwood_strip')
|
||||
|
|
@ -310,6 +314,7 @@ const registerTFGItemTags = (event) => {
|
|||
//#endregion
|
||||
}
|
||||
|
||||
//#region Blocks
|
||||
const registerTFGBlockTags = (event) => {
|
||||
|
||||
event.add('minecraft:mineable/shovel', 'tfg:ash_pile')
|
||||
|
|
@ -340,8 +345,13 @@ const registerTFGBlockTags = (event) => {
|
|||
event.add('minecraft:base_stone_nether', 'tfg:rock/hardened_dripstone')
|
||||
event.add('tfc:rock/hardened', 'tfg:rock/hardened_dripstone')
|
||||
|
||||
event.add('tfg:harvester_harvestable', '#tfc:fruit_tree_leaves')
|
||||
event.add('tfg:harvester_harvestable', '#tfc:berry_bushes')
|
||||
event.add('tfg:harvester_harvestable', '#tfc:any_spreading_bush')
|
||||
|
||||
// #endregion
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//#region Fluids
|
||||
const registerTFGFluidTags = (event) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue