Skip to content

Commit 8f02434

Browse files
committed
make gui look more like furnace
1 parent a77ab7e commit 8f02434

File tree

4 files changed

+25
-8
lines changed

4 files changed

+25
-8
lines changed

src/main/java/jiink/smeltinginapinch/WoodenFurnaceBlockEntity.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,8 @@ public class WoodenFurnaceBlockEntity extends BlockEntity implements ExtendedScr
3333
protected final PropertyDelegate propertyDelegate;
3434
private int progress = 0;
3535
private int maxProgress = 20;
36-
private int fuelRemaining = 100;
36+
private int maxFuel = 100;
37+
private int fuelRemaining = maxFuel;
3738
private int fuelStarted = 0; // 0 or 1
3839

3940
public WoodenFurnaceBlockEntity(BlockPos pos, BlockState state) {
@@ -46,6 +47,7 @@ public int get(int index) {
4647
case 1 -> WoodenFurnaceBlockEntity.this.maxProgress;
4748
case 2 -> WoodenFurnaceBlockEntity.this.fuelRemaining;
4849
case 3 -> WoodenFurnaceBlockEntity.this.fuelStarted;
50+
case 4 -> WoodenFurnaceBlockEntity.this.maxFuel;
4951
default -> 0;
5052
};
5153
}
@@ -57,12 +59,13 @@ public void set(int index, int value) {
5759
case 1 -> WoodenFurnaceBlockEntity.this.maxProgress = value;
5860
case 2 -> WoodenFurnaceBlockEntity.this.fuelRemaining = value;
5961
case 3 -> WoodenFurnaceBlockEntity.this.fuelStarted = value;
62+
case 4 -> WoodenFurnaceBlockEntity.this.maxFuel = value;
6063
};
6164
}
6265

6366
@Override
6467
public int size() {
65-
return 4;
68+
return 5;
6669
}
6770

6871
};
@@ -109,7 +112,9 @@ public void tick(World world, BlockPos pos, BlockState state) {
109112
}
110113
if (fuelRemaining <= 0) {
111114
// explode
112-
world.createExplosion(null, (double)pos.getX(), (double)pos.getY(), (double)pos.getZ(), 4.0f, true, ExplosionSourceType.MOB);
115+
//world.createExplosion(null, (double)pos.getX(), (double)pos.getY(), (double)pos.getZ(), 4.0f, true, ExplosionSourceType.MOB);
116+
// destroy block and replace it with fire
117+
world.setBlockState(pos, net.minecraft.block.Blocks.FIRE.getDefaultState());
113118
}
114119
if (isOutputSlotEmptyOrReceivable()) {
115120
if (this.hasRecipe()) {

src/main/java/jiink/smeltinginapinch/WoodenFurnaceScreen.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,19 @@ protected void drawBackground(DrawContext context, float delta, int mouseX, int
3333
int y = (height - backgroundHeight) / 2;
3434
context.drawTexture(TEXTURE, x, y, 0, 0, backgroundWidth, backgroundHeight);
3535
renderProgressArrow(context, x, y);
36+
renderFlame(context, x, y);
3637
}
3738

3839
private void renderProgressArrow(DrawContext context, int x, int y) {
3940
if (handler.isCrafting()) {
40-
context.drawTexture(TEXTURE, x + 85, y + 30, 176, 0, 8, handler.getScaledProgress());
41+
context.drawTexture(TEXTURE, x + 79, y + 35, 200, 0, handler.getScaledProgress(), 16);
4142
}
4243
}
4344

45+
private void renderFlame(DrawContext context, int x, int y) {
46+
context.drawTexture(TEXTURE, x + 56, y + 54, 200, 20, 14, handler.getScaledFuel());
47+
}
48+
4449
@Override
4550
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
4651
renderBackground(context, mouseX, mouseY, delta);

src/main/java/jiink/smeltinginapinch/WoodenFurnaceScreenHandler.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public class WoodenFurnaceScreenHandler extends ScreenHandler {
2121

2222
public WoodenFurnaceScreenHandler(int syncId, PlayerInventory inventory, PacketByteBuf buf) {
2323
this(syncId, inventory, inventory.player.getWorld().getBlockEntity(buf.readBlockPos()),
24-
new ArrayPropertyDelegate(4));
24+
new ArrayPropertyDelegate(5));
2525
}
2626

2727
public WoodenFurnaceScreenHandler(int syncId, PlayerInventory playerInventory, BlockEntity blockEntity,
@@ -33,8 +33,8 @@ public WoodenFurnaceScreenHandler(int syncId, PlayerInventory playerInventory, B
3333
this.propertyDelegate = arrayPropertyDelegate;
3434
this.blockEntity = (WoodenFurnaceBlockEntity) blockEntity;
3535

36-
this.addSlot(new Slot(inventory, 0, 80, 11));
37-
this.addSlot(new Slot(inventory, 1, 80, 59));
36+
this.addSlot(new Slot(inventory, 0, 56, 35));
37+
this.addSlot(new Slot(inventory, 1, 116, 35));
3838
this.addPlayerInventory(playerInventory);
3939
addProperties(arrayPropertyDelegate);
4040
}
@@ -64,10 +64,17 @@ public boolean isCrafting() {
6464
public int getScaledProgress() {
6565
int progress = this.propertyDelegate.get(0);
6666
int maxProgress = this.propertyDelegate.get(1);
67-
int progressArrowSize = 26;
67+
int progressArrowSize = 24;
6868
return maxProgress != 0 && progress != 0 ? progress * progressArrowSize / maxProgress : 0;
6969
}
7070

71+
public int getScaledFuel() {
72+
int fuel = this.propertyDelegate.get(2);
73+
int maxFuel = this.propertyDelegate.get(4);
74+
int flameSize = 14;
75+
return maxFuel != 0 && fuel != 0 ? fuel * flameSize / maxFuel : 0;
76+
}
77+
7178
@Override
7279
public ItemStack quickMove(PlayerEntity player, int invSlot) {
7380
ItemStack newStack = ItemStack.EMPTY;
Loading

0 commit comments

Comments
 (0)