Placeholder models and balance changes (no longer requires hammer item)

This commit is contained in:
thedarkcolour 2024-01-26 10:24:31 -08:00
parent 3742934bae
commit 7a2d37a634
17 changed files with 56 additions and 14 deletions

View File

@ -1,4 +1,4 @@
// 1.20.1 2024-01-10T20:18:25.7260241 Loot Tables
// 1.20.1 2024-01-25T14:16:46.237861 Loot Tables
105d8a61ea7145d7798146d385d4aad24fd1588d data/exdeorum/loot_tables/blocks/acacia_barrel.json
1e77127a82cbba0937bb02694f65cf1893aeffcb data/exdeorum/loot_tables/blocks/acacia_crucible.json
fcc00910a8cc94bed6339d6833fcec53c501a0d7 data/exdeorum/loot_tables/blocks/acacia_sieve.json
@ -73,6 +73,7 @@ b38104ee25127d9c65ad9e323ed879f76df7a048 data/exdeorum/loot_tables/blocks/mangro
475b89fd8f09834652f80c93d8a6d0964d708ead data/exdeorum/loot_tables/blocks/maple_barrel.json
54f36187d7fb97dedc4680d14e2ad7d70b5c64af data/exdeorum/loot_tables/blocks/maple_crucible.json
7ffe80360af055f3977d05b5684a299886bcb756 data/exdeorum/loot_tables/blocks/maple_sieve.json
926a9224e747bf53eb81448c1abb55d73fce5092 data/exdeorum/loot_tables/blocks/mechanical_hammer.json
a84508222cb36b07cb20ee31915d802bcc411149 data/exdeorum/loot_tables/blocks/mechanical_sieve.json
cad973c873a2e50ccfac91e88eadb3c2462d39d1 data/exdeorum/loot_tables/blocks/oak_barrel.json
f94bc97efbfd26ccf7dba32d414fb5e33decd5f6 data/exdeorum/loot_tables/blocks/oak_crucible.json

View File

@ -1,2 +1,2 @@
// 1.20.1 2024-01-12T17:15:18.0568334 ModKit Language: en_us for mod 'exdeorum'
134e71f17cef95d72141a3d6431db5eb8438f3a0 assets/exdeorum/lang/en_us.json
// 1.20.1 2024-01-25T14:16:46.2316734 ModKit Language: en_us for mod 'exdeorum'
248ab1a837b9857fb1928e826cb02f9f142e8d96 assets/exdeorum/lang/en_us.json

View File

@ -1,4 +1,4 @@
// 1.20.1 2024-01-10T20:18:25.7240245 ModKit Item Models for mod 'exdeorum'
// 1.20.1 2024-01-25T14:16:46.2347562 ModKit Item Models for mod 'exdeorum'
4ba3bb2c6174ac3728a4b85e34681f118ec8eb34 assets/exdeorum/models/item/acacia_barrel.json
c03ce41f7c071498fcbd5f5225e91dcb2f365fbb assets/exdeorum/models/item/acacia_crucible.json
3b4f1d45c0d9c4cd1d9a5cdf6ddc8d2c9791bca5 assets/exdeorum/models/item/acacia_sieve.json
@ -105,6 +105,7 @@ ff89dc05408074da0e9d41bfef91dfe975302403 assets/exdeorum/models/item/mahogany_cr
c3f2af2a88cd97148b05efbd6e24fc2558fcc0b8 assets/exdeorum/models/item/maple_barrel.json
cc045825c562e9133858ce5cfe6e6f1dcb747d8e assets/exdeorum/models/item/maple_crucible.json
a64e9b9ce91ac6b2f36690a770afc52b8900a614 assets/exdeorum/models/item/maple_sieve.json
59cdfe2c26f9d4a16ab7e8e7a87c97403eafa562 assets/exdeorum/models/item/mechanical_hammer.json
1e2b482f5fc4d283f5ca12919b575f86dc4a9541 assets/exdeorum/models/item/mechanical_sieve.json
d543d3e18bdcf2bf79a762b52cc61a4161124db1 assets/exdeorum/models/item/mycelium_spores.json
1f48b2ce3452ce5d02142c9f663ae7bdb7d1d934 assets/exdeorum/models/item/netherite_hammer.json

View File

@ -84,6 +84,7 @@
"block.exdeorum.maple_barrel": "Maple Barrel",
"block.exdeorum.maple_crucible": "Maple Crucible",
"block.exdeorum.maple_sieve": "Maple Sieve",
"block.exdeorum.mechanical_hammer": "Mechanical Hammer",
"block.exdeorum.mechanical_sieve": "Mechanical Sieve",
"block.exdeorum.oak_barrel": "Oak Barrel",
"block.exdeorum.oak_crucible": "Oak Crucible",
@ -118,6 +119,7 @@
"block.exdeorum.willow_crucible": "Willow Crucible",
"block.exdeorum.willow_sieve": "Willow Sieve",
"block.exdeorum.witch_water": "Witch Water",
"exdeorum.container.mechanical_hammer": "Mechanical Hammer",
"exdeorum.container.mechanical_sieve": "Mechanical Sieve",
"fluid_type.exdeorum.witch_water": "Witch Water",
"generator.exdeorum.void_world": "Void World",

View File

@ -0,0 +1,3 @@
{
"parent": "exdeorum:block/mechanical_hammer"
}

View File

@ -0,0 +1,21 @@
{
"type": "minecraft:block",
"pools": [
{
"bonus_rolls": 0.0,
"conditions": [
{
"condition": "minecraft:survives_explosion"
}
],
"entries": [
{
"type": "minecraft:item",
"name": "exdeorum:mechanical_hammer"
}
],
"rolls": 1.0
}
],
"random_sequence": "exdeorum:blocks/mechanical_hammer"
}

View File

@ -36,6 +36,8 @@ public class MechanicalHammerBlock extends EBlock {
public MechanicalHammerBlock(Properties properties) {
super(properties, EBlockEntities.MECHANICAL_HAMMER);
registerDefaultState(defaultBlockState().setValue(RUNNING, false));
}
@Override

View File

@ -49,12 +49,12 @@ public class MechanicalHammerBlockEntity extends AbstractMachineBlockEntity<Mech
private static final int HAMMER_SLOT = 1;
private static final int OUTPUT_SLOT = 2;
public static final int TOTAL_PROGRESS = 10_000_000;
// process should take 320 ticks or 10 seconds with no efficiency
// process should take 200 ticks or 10 seconds with no efficiency
private static final int PROGRESS_INTERVAL = TOTAL_PROGRESS / 200;
public static final int NOT_RUNNING = -1;
// an integer from 0 to 10,000,000 instead of a decimal number which is inaccurate and buggy
private int progress = -1;
private int progress = NOT_RUNNING;
private float efficiency;
public MechanicalHammerBlockEntity(BlockPos pos, BlockState state) {
@ -99,12 +99,16 @@ public class MechanicalHammerBlockEntity extends AbstractMachineBlockEntity<Mech
protected void tryStartRunning() {
var input = this.inventory.getStackInSlot(INPUT_SLOT);
if (!input.isEmpty() && !this.inventory.getStackInSlot(HAMMER_SLOT).isEmpty()) {
if (!input.isEmpty()) {
if (canFitResultIntoOutput(input) != null) {
this.progress = 0;
this.level.setBlock(this.worldPosition, this.getBlockState().setValue(MechanicalHammerBlock.RUNNING, true), 3);
return;
}
}
this.level.setBlock(this.worldPosition, this.getBlockState().setValue(MechanicalHammerBlock.RUNNING, false), 3);
}
@Nullable
@ -130,7 +134,7 @@ public class MechanicalHammerBlockEntity extends AbstractMachineBlockEntity<Mech
protected void runMachineTick() {
var input = this.inventory.getStackInSlot(INPUT_SLOT);
if (!input.isEmpty() && !this.inventory.getStackInSlot(HAMMER_SLOT).isEmpty()) {
if (!input.isEmpty()) {
this.progress += PROGRESS_INTERVAL * this.efficiency;
if (this.progress >= TOTAL_PROGRESS) {
@ -178,9 +182,13 @@ public class MechanicalHammerBlockEntity extends AbstractMachineBlockEntity<Mech
private void onHammerChanged() {
var hammer = this.inventory.getStackInSlot(HAMMER_SLOT);
if (hammer.isEmpty()) {
this.progress = NOT_RUNNING;
this.efficiency = 1f;
} else {
// This timing allows full efficiency hammer to match full efficiency sieve (55 ticks/craft
// Rewards player for using hammer by doubling speed right off the bat, before efficiency
// although not as fast as Mekanism's crusher, still pretty fast and much cheaper
this.efficiency = 2f + hammer.getEnchantmentLevel(Enchantments.BLOCK_EFFICIENCY) * 0.33f;
}
this.efficiency = 1f + hammer.getEnchantmentLevel(Enchantments.BLOCK_EFFICIENCY) * 0.17f;
}
@Override

View File

@ -79,7 +79,6 @@ class English {
english.add(TranslationKeys.REDSTONE_CONTROL_LABEL, "Redstone Mode");
english.add(TranslationKeys.REDSTONE_CONTROL_MODE, "Mode: ");
english.add(TranslationKeys.MECHANICAL_HAMMER_SCREEN_TITLE, "Mechanical Hammer");
english.add(TranslationKeys.MECHANICAL_HAMMER_SCREEN_TITLE, "Consuming %s FE/t");
english.addBlock(EBlocks.VEXING_ARCHWOOD_CRUCIBLE, "Vexing Archwood Crucible");
english.addBlock(EBlocks.CASCADING_ARCHWOOD_CRUCIBLE, "Cascading Archwood Crucible");

View File

@ -81,5 +81,4 @@ public class TranslationKeys {
public static final String REDSTONE_CONTROL_LABEL = "gui." + ExDeorum.ID + ".redstone_control.label";
public static final String REDSTONE_CONTROL_MODE = "gui." + ExDeorum.ID + ".redstone_control.mode";
public static final String MECHANICAL_HAMMER_SCREEN_TITLE = ExDeorum.ID + ".container.mechanical_hammer";
public static final String MACHINE_FE_PER_TICK = "gui." + ExDeorum.ID + ".machine_fe_per_tick";
}

View File

@ -121,7 +121,7 @@ public class EBlocks {
public static final RegistryObject<SieveBlock> CRYSTALLIZED_SIEVE = registerSieve("crystallized_sieve", SoundType.GLASS);
// Mechanical Sieve (todo add properties)
public static final RegistryObject<MechanicalSieveBlock> MECHANICAL_SIEVE = BLOCKS.register("mechanical_sieve", () -> new MechanicalSieveBlock(of()));
// Mechanical Hammer (todo add properties)
// Mechanical Hammer
public static final RegistryObject<MechanicalHammerBlock> MECHANICAL_HAMMER = BLOCKS.register("mechanical_hammer", () -> new MechanicalHammerBlock(of()));
// Lava Crucibles

View File

@ -1,7 +1,7 @@
{
"parent": "minecraft:block/orientable",
"textures": {
"front": "exdeorum:block/mechanical_hammer_front_off",
"front": "exdeorum:block/mechanical_hammer_front",
"side": "exdeorum:block/mechanical_hammer_side",
"top": "exdeorum:block/mechanical_hammer_top"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 748 B

View File

@ -0,0 +1,6 @@
{
"animation": {
"interpolate": false,
"frametime": 4
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 612 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 691 B