Alpha-s-Stuff / TinkersConstruct

Tinker a little, build a little, tinker a little more...
MIT License
85 stars 29 forks source link

Hephaestus and Inventorio Compatibility issues, pickaxe destroy time are abnormal #30

Open ErrorPower2001 opened 1 year ago

ErrorPower2001 commented 1 year ago

Minecraft Version

1.18.2

Fabric/Quilt Version

0.14.9

Fabric/Quilt API Version

0.59.0

Tinkers' Construct Version

Hephaestus 3.5.2.150

Describe your issue

Some version info

Inventorio version: 1.7.3

Java version: Alibaba Dragonwell 17 17.0.4.0.4+8

Fabric Server: fabric-server-mc.1.18.2-loader.0.14.9-launcher.0.11.1.jar

Describe

In my server, i have install these two mods, when i just use tinkers tools like pickaxe, inventorio slot without other pickaxe, the block destory time are abnormal.
I have tested in local game, issues still exist.

Crash Report

No response

Other mods

Local Mods also are Server Mods

[&&][Architectury API前置][CCA前置][REI物品管理器]RoughlyEnoughItems-8.3.549.jar [&&][CCA前置][FabricKotlin前置][Inventorio]inventorio-1.18-fabric-1.7.3.jar [额外扩展]AdditionalAdditions-4.0.5.jar [丰富的生态]ecologics-fabric-1.18.2-1.7.10.jar [腐肉堆肥]compostable-rottenflesh-1.0.0.jar [干净利落]cleancut-1.18.2-5.0-fabric.jar [高级指南针]AdvancedCompass-fabric-1.18.2-1.2.12.jar [更多动画]notenoughanimations-fabric-1.6.0-mc1.18.2.jar [更多结构]Structory-1.18.2-1.0.2.jar [更多粒子效果]visuality-0.4.3.jar [更好的进度]BetterAdvancements-Fabric-1.18.2-0.2.1.132.jar [更真实的第一人称模型]firstperson-fabric-2.1.2-mc1.18.2.jar [环境效果]effective-1.2.1.jar [机械动力]create-fabric-1.18.2-0.5.0e-733.jar [匠魂-移植]Hephaestus-1.18.2-3.5.2.150.jar [截图到剪切板]screenshot-to-clipboard-1.0.9-fabric.jar [锂]lithium-fabric-mc1.18.2-0.7.10.jar [模组菜单]modmenu-3.2.3.jar [暮色森林]twilightforest-fabric-1.18.2-4.1.268.jar [钠]sodium-fabric-mc1.18.2-0.4.1+build.15.jar [钠附属][铟]indium-1.0.7+mc1.18.2.jar [钠附属][Iris Shader]iris-mc1.18.2-1.4.0.jar [喷溅牛奶]splash_milk-1.18.2-1.0.2.jar [飘扬披风]WaveyCapes-fabric-1.2.0-mc1.18.jar [苹果皮]appleskin-fabric-mc1.18.2-2.4.1.jar [探险者指南针]ExplorersCompass-1.18.2-2.2.0-fabric.jar [汤姆的简易存储]toms_storage_fabric-1.18.2-1.4.3.jar [钍]thorium-1.2.1.jar [望远镜变焦]spyglass-zoom-fabric-1.0.2.jar [星光]starlight-1.0.2+fabric.89b8d9f.jar [铟-钠兼容][方块实体优化]enhancedblockentities-0.7.1+1.18.2.jar [铟-钠兼容][连接材质]continuity-2.0.1+1.18.2.jar [玉]Jade-1.18.2-fabric-5.99.9.jar [再生]fabric-release-regrowth-1.18-0.31.jar [展示台]DisplayCase-fabric-1.18.2-1.0.3.jar [自然指南针]NaturesCompass-1.18.2-2.0.3-fabric.jar [组合键]amecs-1.3.8+mc.1.18.2.jar [Architectury API]architectury-4.9.84-fabric.jar [Architectury API前置][沉浸式紫水晶]immersive-amethyst-2.0.jar [Architectury API前置][凡家物语 重生]minecraft-comes-alive-7.3.17+1.18.2-fabric.jar [Architectury API前置][同伴与敌人]friendsandfoes-fabric-mc1.18.2-1.4.5.jar [CCA]cloth-config-6.4.90-fabric.jar [CCA前置][边拿边走]InvMove-1.18-0.8.1-Fabric.jar [CCA前置][合理排序]reasonable-sorting-fabric-2.0.2-mc1.18.2.jar [CCA前置][合理排序]reasonable-sorting-forge-2.0.2-mc1.18.2.jar [CCA前置][星际]ad-astra-1.0.3-1.18.2.jar [CCA前置][Balm]balm-fabric-3.2.0+0.jar [CCA前置][Balm前置][更好地破坏半砖]kleeslabs-fabric-1.18.2-11.1.1.jar [CCA前置][Balm前置][仁慈的虚空]forgivingvoid-fabric-1.18.1-6.0.1.jar [CCA前置][Xaero的世界地图]XaerosWorldMap_1.28.1_Fabric_1.18.2.jar [CCA前置][Xaero的小地图]Xaeros_Minimap_22.16.0_Fabric_1.18.2.jar [Collective]collective-fabric-1.18.2-5.7.jar [Collective前置][砍树]treeharvester-fabric_1.18.2-5.8.jar [Collective前置][瓶装空气]bottledair-fabric_1.18.2-1.7.jar [Collective前置][双开门]doubledoors-fabric_1.18.2-3.8.jar [Collective前置][围火无怪]nohostilesaroundcampfire_1.18.2-4.5.jar [Collective前置][治愈营火]healingcampfire-fabric_1.18.2-4.0.jar [FabricAPI]fabric-api-0.59.0+1.18.2.jar [FabricKotlin]fabric-language-kotlin-1.8.4+kotlin.1.7.20.jar [FabricKotlin前置][搬运]carrier-1.10.0.jar [FabricKotlin前置][随机矿石]Randore-fabric-2.0.1-mc1.18.2.jar [FabricKotlin前置][linIPN]libIPN-fabric-1.18.2-1.0.1.jar [FabricKotlin前置][linIPN前置][整理]InventoryProfilesNext-fabric-1.18.2-1.8.1.jar [ForgeConfigAPIPort]ForgeConfigAPIPort-v3.2.4-1.18.2-Fabric.jar [ForgeConfigAPIPort前置][PuzzlesLib]PuzzlesLib-v3.3.5-1.18.2-Fabric.jar [ForgeConfigAPIPort前置][PuzzlesLib前置][可视化工作台]VisualWorkbench-v3.3.0-1.18.2-Fabric.jar [FPS减速器]FpsReducer2-fabric-1.18.2-2.0.jar [Giselbaer的耐久显示]durabilityviewer-1.18.2-fabric0.47.10-1.10.3.jar [Lambda的动态光源]lambdynamiclights-2.1.0+1.17.jar [Macaw的桥梁]mcw-bridges-2.0.5-mc1.18.2fabric.jar [OWO]owo-lib-0.7.2-no-cme+1.18.jar [OWO前置][合金锻造]wraith-alloy-forgery-2.0.13+1.18.jar [OWO前置][合金锻造前置][神话金属]mythicmetals-0.14.4.jar [YUNG][API]YungsApi-1.18.2-Fabric-2.0.8.jar [YUNG前置][地牢优化]YungsBetterDungeons-1.18.2-Fabric-2.1.0.jar [YUNG前置][更好的女巫小屋]YungsBetterWitchHuts-1.18.2-Fabric-1.0.1.jar [YUNG前置][更好的沙漠神殿]YungsBetterDesertTemples-1.18.2-Fabric-1.3.1.jar [YUNG前置][矿井优化]YungsBetterMineshafts-1.18.2-Fabric-2.2.jar [YUNG前置][桥]YungsBridges-1.18.2-Fabric-2.1.0.jar [YUNG前置][要塞重置]YungsBetterStrongholds-1.18.2-Fabric-2.1.1.jar [YUNG前置][Extras更多建筑]YungsExtras-1.18.2-Fabric-2.1.0.jar

Tried reproducing with just Tinkers?

Yes

Performance Enchancers

Sodium

Searched for known issues?

I did not search

JieningYu commented 1 year ago

Try use the latest build from Github Actions.

ErrorPower2001 commented 1 year ago

Try use the latest build from Github Actions.

I have tested the lastest build from github actions, with same mods and platform, this issues still exist.

AlphaMode commented 1 year ago

Could you elaborate by what you mean when you say abnormal, I'm not quite sure I know what you mean.

ErrorPower2001 commented 1 year ago

Could you elaborate by what you mean when you say abnormal, I'm not quite sure I know what you mean.

Sorry for my poor expression. When installed Inventorio, the Hepheastus tools like Pickaxe, its destory stone blocks time are very slow like using steve's hand. It might be Inventorio bug?

ivanpu commented 1 year ago

I've encountered this with a modpack that I'm currently playing.

This is my observations: Vanilla stone pickaxe and hatchet break cobblestone and trees (respectively) in about 5 "audible hits" (about 2 seconds). With Tinkers tools equivalents (pickaxe and hand axe), made from stone head, wood handle and string binding, it feels like it takes them 3 times longer to break blocks. After updating the heads to copper - it didn't affect the perceived speed of the tool (still about 3 times as slow). Upgrading the tools to "Hastiest" (3rd level redstone upgrade) doesn't affect the speed either. Additionally I can't put tinker tools in their relevant "side slots" of the Inventorio mod, and it switches to the stored tool even if I have tinkers tool in the main hand.

I've reproduced this in a new instance of Minecraft based on "Fabulously Optimized" modpack, with only Hephaestus and Inventorio mods added: without Inventorio - tinker tools have expected mining speed, with Inventorio - like explained above.

After reading relevant (closed) issues on the Inventorio project: Does Hephaestus uses the relevant API in Fabric (as is the case with the Forge version) to announce its tools from appropriate types? If not, and if this API exists (I'm not familiar with what Fabric provides) - it should, otherwise it's probably Inventorio's bug.

ivanpu commented 1 year ago

Update - the bug is in this mod: Copying tags "axes.json", "pickages.json", "shears.json", "swords.json" from "c:" namespaces into "fabric:" namespace fixes all the compatibility issues with Inventorio! (at least with the items that I've checked, so "hoes.json" and "shovels.json" might still be needed)

KonSola5 commented 11 months ago

The issue is still present in 1.20.1. (and the solution is the same, I used a KubeJS script to do this:

ServerEvents.tags("item", event => {
    event.add('fabric:pickaxes', 'tconstruct:pickaxe')
    event.add('fabric:pickaxes', 'tconstruct:sledge_hammer')
    event.add('fabric:pickaxes', 'tconstruct:vein_hammer')
    event.add('fabric:axes', 'tconstruct:mattock')
    event.add('fabric:shovels', 'tconstruct:mattock')
    event.add('fabric:hoes', 'tconstruct:mattock')
    event.add('fabric:pickaxes', 'tconstruct:pickadze')
    event.add('fabric:shovels', 'tconstruct:pickadze')
    event.add('fabric:shovels', 'tconstruct:excavator')
    event.add('fabric:axes', 'tconstruct:hand_axe')
    event.add('fabric:axes', 'tconstruct:broad_axe')
    event.add('fabric:shears', 'tconstruct:kama')
    event.add('fabric:hoes', 'tconstruct:scythe')
    event.add('fabric:shears', 'tconstruct:scythe')
    event.add('fabric:swords', 'tconstruct:dagger')
    event.add('fabric:swords', 'tconstruct:sword')
    event.add('fabric:swords', 'tconstruct:cleaver')
})
snewell92 commented 5 months ago

fwiw, for Farmers Delight Rich Soil interaction (tilling rich soil into farmland), the above tags were not enough. I needed to specifically support this with a right click interaction

BlockEvents.rightClicked(event => {
  const itemId = event.item.id;
  const targetBlockId = event.block.id

  if(itemId === 'tconstruct:mattock' && targetBlockId === "farmersdelight:rich_soil") {
    event.block.set('farmersdelight:rich_soil_farmland');
  }
});

(I'm on version 1.20.1-3.6.3.240 from modrinth on a custom 1.20.1 modpack with create+hephaestus+mythic metals+botania and more)

KonSola5 commented 5 months ago

That's because on Fabric, Rich Soil tilling is hardcoded to check for anything extending HoeItem:

@Override
public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) {
    ItemStack itemStack = player.getStackInHand(hand);
    if (itemStack.getItem() instanceof HoeItem && state.getBlock() == BlocksRegistry.RICH_SOIL.get() &&
            hit.getSide() != Direction.DOWN && world.getBlockState(pos.up()).isAir()) {
        world.playSound(player, pos, SoundEvents.ITEM_HOE_TILL, SoundCategory.BLOCKS, 1.f, 1.f);
        if (!world.isClient()) {
            world.setBlockState(pos, BlocksRegistry.RICH_SOIL_FARMLAND.get().getDefaultState(), BlockStateUtils.DEFAULT_AND_RERENDER);
            itemStack.damage(1, player, playerEntity -> playerEntity.sendToolBreakStatus(hand));
        }
        return ActionResult.SUCCESS;
    }
    return ActionResult.PASS;
}

And since Tinkers' items don't extend HoeItem, they can't till Rich Soil.