Fixes and features (#987)
* - Fixed hide duping recipes. - Added quest book and field guide instances for fishing nets. - Fixed rebar support recipe crash. - Fixed red steel flask dupe. - Fixed red alloy recipe inconsistency. * - Fixed blue steel backpack block lang * - Added max vessel fluid warning to small vessels. * - Moved red steel flask recipe * - Fixed fishing nets event function * Update queststfc_tips.snbt Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com> * Update en_us.json Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com> * - Added item to summon armor stands with arms * - Added recipes to empty vessels and molds * - Added recipes for extracting/ forming magma blocks. * - Added recipes for extracting/ forming magma blocks. * - Nerfed steel support recipe output. --------- Signed-off-by: Redeix <59435925+Redeix@users.noreply.github.com>
This commit is contained in:
parent
3b9c6e32a6
commit
cf54f584b4
9 changed files with 148 additions and 55 deletions
|
|
@ -16,6 +16,11 @@
|
|||
- Fixed assembler clay recipes so they output the correct amount (Pyritie)
|
||||
- Quest fixes/tweaks (Pyritie)
|
||||
- Added aluminium, stainless steel, and titanium millstones (Pyritie)
|
||||
- Fixed fishing nets behavior. (Redeix)
|
||||
- Added item to summon armor stands with arms. (Redeix)
|
||||
- Added recipes for emptying vessels and molds. (Redeix)
|
||||
- Added recipes for extracting/ forming magma blocks. (Redeix)
|
||||
- Nerfed steel support recipe output. (Redeix)
|
||||
|
||||
## [0.9.5] - 08.05.2025
|
||||
### Changes
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"__COMMENT__": "This file was auto generated by the LanguageMerger, read the file \".README IF TRANSLATING\" found in \"minecraft/kubejs\" for more information.",
|
||||
"block.create.netherite_backtank": "Blue Steel Backtank",
|
||||
"block.create.dark_oak_window": "Hickory Window",
|
||||
"block.create.dark_oak_window_pane": "Hickory Window Pane",
|
||||
"block.create.andesite_bars": "Metal Bars",
|
||||
|
|
@ -69,6 +68,7 @@
|
|||
"block.create.small_granite_brick_wall": "Small Chert Brick Wall",
|
||||
"block.create.layered_granite": "Layered Chert",
|
||||
"block.create.granite_pillar": "Chert Pillar",
|
||||
"block.create.netherite_backtank": "Blue Steel Backtank",
|
||||
"item.create.netherite_diving_helmet.tooltip.summary": "Together with a _Blue Steel Backtank_, this can protect you from _extreme heat_. To be effective, _Legs and Feet_ have to be covered in a _Blue Steel Diving Equipment_, too.",
|
||||
"item.create.netherite_backtank": "Blue Steel Backtank",
|
||||
"item.create.netherite_diving_helmet": "Blue Steel Diving Helmet",
|
||||
|
|
@ -89,4 +89,4 @@
|
|||
"create.ponder.brass_funnel.text_1": "Metal Funnels can only ever extract single items.",
|
||||
"create.ponder.cogwheel_casing.text_1": "Brass or Metal Casing can be used to decorate Cogwheels",
|
||||
"create.ponder.shaft_casing.text_1": "Brass or Metal Casing can be used to decorate Shafts"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
BIN
kubejs/assets/tfg/textures/item/armor_stand_arms.png
Normal file
BIN
kubejs/assets/tfg/textures/item/armor_stand_arms.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 520 B |
|
|
@ -117,6 +117,20 @@ BlockEvents.rightClicked(event => {
|
|||
if (block.id != 'tfg:decorative_vase') {return}{
|
||||
server.runCommandSilent(`playsound tfc:block.quern.drag block ${username} ${block.x} ${block.y} ${block.z} 0.3 2.0 0.1`)
|
||||
}});
|
||||
//#endregion
|
||||
|
||||
BlockEvents.rightClicked(event=>{
|
||||
let item = event.item
|
||||
if(item.id != 'tfg:armor_stand_arms') return
|
||||
let mob = event.block[event.facing].createEntity('minecraft:armor_stand')
|
||||
mob.mergeNbt('{ShowArms:1b}')
|
||||
mob.setPos(mob.x + 0.5, mob.y, mob.z + 0.5)
|
||||
mob.setYaw(event.player.yaw + 180)
|
||||
mob.spawn()
|
||||
if (event.player.isCreative() == false){
|
||||
item.shrink(1)
|
||||
}
|
||||
})
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
@ -131,7 +145,6 @@ function getTFGPersistentDataRoot(player)
|
|||
}
|
||||
return player.persistentData.getCompound("tfg:custom_data")
|
||||
}
|
||||
//#endregion
|
||||
|
||||
//#region Fishing Net
|
||||
const fish = [
|
||||
|
|
@ -153,16 +166,70 @@ function getTFGPersistentDataRoot(player)
|
|||
'crayfish'
|
||||
];
|
||||
|
||||
//tags wont work here (or at least I couldnt get it to work) so we need to manually declare each net tier.
|
||||
const tiers = [
|
||||
'wood',
|
||||
'brass',
|
||||
'rose_gold',
|
||||
'sterling_silver',
|
||||
'invar',
|
||||
'tin_alloy',
|
||||
'cupronickel',
|
||||
'magnalium'
|
||||
];
|
||||
|
||||
//Event detects if fish is right clicked with fishing net and then teleports the mob into the void, plays some actions and gives the player the proper item.
|
||||
fish.forEach(fish => {
|
||||
ItemEvents.entityInteracted('#forge:tools/fishing_nets', event => {
|
||||
tiers.forEach(tier => {
|
||||
fish.forEach(fish => {
|
||||
ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => {
|
||||
const {item, player, server, target} = event;
|
||||
|
||||
if (target.type != `tfc:${fish}`) return
|
||||
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
|
||||
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
|
||||
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
|
||||
event.player.give(`tfc:food/${fish}`)
|
||||
player.swing()
|
||||
if (player.isCreative() == false){
|
||||
item.damageValue++
|
||||
if (item.damageValue >= item.maxDamage) {
|
||||
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
|
||||
item.count--
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//Shellfish Exception
|
||||
shellfish.forEach(shellfish => {
|
||||
ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => {
|
||||
const {item, player, server, target} = event;
|
||||
|
||||
if (target.type != `tfc:${shellfish}`) return
|
||||
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
|
||||
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
|
||||
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
|
||||
event.player.give('tfc:food/shellfish')
|
||||
player.swing()
|
||||
if (player.isCreative() == false){
|
||||
item.damageValue++
|
||||
if (item.damageValue >= item.maxDamage) {
|
||||
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
|
||||
item.count--
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//Pufferfish Exception
|
||||
ItemEvents.entityInteracted(`tfg:fishing_net/${tier}`, (event) => {
|
||||
const {item, player, server, target} = event;
|
||||
|
||||
if (target.type != `tfc:${fish}`) return
|
||||
if (target.type != 'tfc:pufferfish') return
|
||||
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
|
||||
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
|
||||
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
|
||||
event.player.give(`tfc:food/${fish}`)
|
||||
event.player.give('minecraft:pufferfish')
|
||||
player.swing()
|
||||
if (player.isCreative() == false){
|
||||
item.damageValue++
|
||||
|
|
@ -173,44 +240,4 @@ function getTFGPersistentDataRoot(player)
|
|||
}
|
||||
})
|
||||
})
|
||||
|
||||
//Shellfish Exception
|
||||
shellfish.forEach(shellfish => {
|
||||
ItemEvents.entityInteracted('#forge:tools/fishing_nets', event => {
|
||||
const {item, player, server, target} = event;
|
||||
|
||||
if (target.type != `tfc:${shellfish}`) return
|
||||
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
|
||||
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
|
||||
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
|
||||
event.player.give('tfc:food/shellfish')
|
||||
player.swing()
|
||||
if (player.isCreative() == false){
|
||||
item.damageValue++
|
||||
if (item.damageValue >= item.maxDamage) {
|
||||
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
|
||||
item.count--
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//Pufferfish Exception
|
||||
ItemEvents.entityInteracted('#forge:tools/fishing_nets', event => {
|
||||
const {item, player, server, target} = event;
|
||||
|
||||
if (target.type != 'tfc:pufferfish') return
|
||||
server.runCommandSilent(`particle minecraft:bubble_pop ${target.x} ${target.y} ${target.z} 0.5 0.5 0.5 0.00001 10`)
|
||||
server.runCommandSilent(`playsound minecraft:entity.player.splash player ${player.username} ${target.x} ${target.y} ${target.z} 2 2 1`)
|
||||
server.runCommandSilent(`tp ${target.uuid} ${target.x} ${target.y - 382} ${target.z}`)
|
||||
event.player.give('minecraft:pufferfish')
|
||||
player.swing()
|
||||
if (player.isCreative() == false){
|
||||
item.damageValue++
|
||||
if (item.damageValue >= item.maxDamage) {
|
||||
server.runCommandSilent(`playsound minecraft:item.shield.break player ${player.username} ${player.x} ${player.y} ${player.z} 1 1 1`)
|
||||
item.count--
|
||||
}
|
||||
}
|
||||
})
|
||||
//#endregion
|
||||
|
|
@ -389,4 +389,12 @@ function registerTFGMiscellaneousRecipes(event) {
|
|||
.dimension('minecraft:the_nether')
|
||||
.duration(200)
|
||||
.EUt(16)
|
||||
|
||||
event.shapeless('1x tfg:armor_stand_arms', [
|
||||
'minecraft:armor_stand'
|
||||
]).id(`tfg:shapeless/armor_stand_arms`)
|
||||
|
||||
event.shapeless('1x minecraft:armor_stand', [
|
||||
'tfg:armor_stand_arms'
|
||||
]).id(`tfg:shapeless/armor_stand`)
|
||||
}
|
||||
|
|
@ -273,4 +273,20 @@ function registerTFGMoldRecipes(event) {
|
|||
.duration(120)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
})
|
||||
|
||||
//craft mold to scrub nbt
|
||||
const molds = Ingredient.of('#tfc:fired_molds').itemIds;
|
||||
|
||||
molds.forEach(mold => {
|
||||
event.shapeless(Item.of(mold), [mold])
|
||||
.id(`tfg:shapeless/mold_cleaning/${mold.replace(":", "/")}`);
|
||||
});
|
||||
|
||||
//craft vessel to scrub nbt
|
||||
const vessels = Ingredient.of('#tfc:fired_vessels').itemIds;
|
||||
|
||||
vessels.forEach(vessel => {
|
||||
event.shapeless(Item.of(vessel), [vessel])
|
||||
.id(`tfg:shapeless/vessel_cleaning/${vessel.replace(":", "/")}`);
|
||||
});
|
||||
}
|
||||
|
|
@ -256,4 +256,38 @@ function registerTFGRockRecipes(event) {
|
|||
})
|
||||
|
||||
// #endregion
|
||||
|
||||
//#region Magma Blocks
|
||||
event.remove({id: 'gtceu:compressor/magma_block'})
|
||||
event.remove({id: 'greate:splashing/obsidian'})
|
||||
|
||||
//magma block + stone group
|
||||
const magma_blocks = [
|
||||
{magma: 'minecraft:magma_block', rock: 'minecraft:blackstone'},
|
||||
{magma: 'tfc:rock/magma/granite', rock: 'tfc:rock/raw/granite'},
|
||||
{magma: 'tfc:rock/magma/diorite', rock: 'tfc:rock/raw/diorite'},
|
||||
{magma: 'tfc:rock/magma/gabbro', rock: 'tfc:rock/raw/gabbro'},
|
||||
{magma: 'tfc:rock/magma/rhyolite', rock: 'tfc:rock/raw/rhyolite'},
|
||||
{magma: 'tfc:rock/magma/basalt', rock: 'tfc:rock/raw/basalt'},
|
||||
{magma: 'tfc:rock/magma/andesite', rock: 'tfc:rock/raw/andesite'},
|
||||
{magma: 'tfc:rock/magma/dacite', rock: 'tfc:rock/raw/dacite'}
|
||||
];
|
||||
|
||||
magma_blocks.forEach(block => {
|
||||
|
||||
event.recipes.gtceu.fluid_solidifier(`tfg:gtceu/fluid_solidifier/${block.magma}`.replace(/:/g, '/'))
|
||||
.itemInputs(`1x ${block.rock}`)
|
||||
.inputFluids(Fluid.of('minecraft:lava', 250))
|
||||
.itemOutputs(`1x ${block.magma}`)
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.extractor(`tfg:gtceu/extractor/${block.magma}`.replace(/:/g, "/"))
|
||||
.itemInputs(`1x ${block.magma}`)
|
||||
.outputFluids(Fluid.of('minecraft:lava', 250))
|
||||
.itemOutputs(`1x ${block.rock}`)
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
})
|
||||
//#endregion
|
||||
}
|
||||
|
|
@ -185,7 +185,7 @@ function registerTFGSupportRecipes(event) {
|
|||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.tfc.anvil(
|
||||
'4x tfg:steel_support',
|
||||
'1x tfg:steel_support',
|
||||
'#forge:double_ingots/steel',
|
||||
[
|
||||
'upset_last',
|
||||
|
|
@ -196,7 +196,7 @@ function registerTFGSupportRecipes(event) {
|
|||
|
||||
event.recipes.gtceu.assembler('tfg:gtceu/assembler/steel_support')
|
||||
.circuit(4)
|
||||
.itemOutputs('8x tfg:steel_support')
|
||||
.itemOutputs('4x tfg:steel_support')
|
||||
.itemInputs('2x #forge:double_ingots/steel')
|
||||
.duration(100)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
|
@ -204,25 +204,25 @@ function registerTFGSupportRecipes(event) {
|
|||
event.recipes.gtceu.macerator('tfg:macerator/recycling/steel_support')
|
||||
.itemInputs('tfg:steel_support')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Steel, 1)
|
||||
ChemicalHelper.get(TagPrefix.dustSmall, GTMaterials.Steel, 2)
|
||||
)
|
||||
.duration(GTMaterials.Steel.getMass() * 1)
|
||||
.duration(GTMaterials.Steel.getMass() * 2)
|
||||
.category(GTRecipeCategories.MACERATOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
|
||||
event.recipes.gtceu.arc_furnace('tfg:arc_furnace/recycling/steel_support')
|
||||
.itemInputs('tfg:steel_support')
|
||||
.itemOutputs(
|
||||
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 2)
|
||||
ChemicalHelper.get(TagPrefix.nugget, GTMaterials.Steel, 4)
|
||||
)
|
||||
.duration(GTMaterials.Steel.getMass() * 1)
|
||||
.duration(GTMaterials.Steel.getMass() * 4)
|
||||
.category(GTRecipeCategories.ARC_FURNACE_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.LV])
|
||||
|
||||
event.recipes.gtceu.extractor('tfg:extractor/recycling/steel_support')
|
||||
.itemInputs('tfg:steel_support')
|
||||
.outputFluids(Fluid.of('gtceu:steel', 36))
|
||||
.duration(GTMaterials.Steel.getMass() * 1)
|
||||
.outputFluids(Fluid.of('gtceu:steel', 64))
|
||||
.duration(GTMaterials.Steel.getMass() * 2)
|
||||
.category(GTRecipeCategories.EXTRACTOR_RECYCLING)
|
||||
.EUt(GTValues.VA[GTValues.ULV])
|
||||
}
|
||||
|
|
@ -161,6 +161,9 @@ const registerTFGItems = (event) => {
|
|||
event.create('tfg:fletching')
|
||||
.translationKey('item.tfg.fletching')
|
||||
|
||||
event.create('tfg:armor_stand_arms')
|
||||
.translationKey('item.tfg.armor_stand_arms')
|
||||
|
||||
event.create('tfg:fishing_net/wood')
|
||||
.translationKey('item.tfg.fishing_net.wood')
|
||||
.parentModel('tfg:item/fishing_nets/wood_fishing_net')
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue