Skip to content

Commit

Permalink
fuel compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
millennIumAMbiguity committed Sep 22, 2024
1 parent 46228ef commit ee597f3
Show file tree
Hide file tree
Showing 8 changed files with 55 additions and 9 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.valkyrienskies.eureka.registry;

import net.minecraft.world.item.ItemStack;

public abstract class FuelRegistry {
public static FuelRegistry INSTANCE = null;

public abstract int get(ItemStack stack);
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,7 @@ import net.minecraft.world.entity.player.StackedContents
import net.minecraft.world.inventory.AbstractContainerMenu
import net.minecraft.world.inventory.StackedContentsCompatible
import net.minecraft.world.item.ItemStack
import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity
import net.minecraft.world.level.block.entity.BaseContainerBlockEntity
import net.minecraft.world.level.block.entity.FurnaceBlockEntity
import net.minecraft.world.level.block.state.BlockState
import org.joml.Math.lerp
import org.joml.Math.min
Expand All @@ -25,6 +23,7 @@ import org.valkyrienskies.eureka.EurekaBlockEntities
import org.valkyrienskies.eureka.EurekaConfig
import org.valkyrienskies.eureka.EurekaProperties.HEAT
import org.valkyrienskies.eureka.gui.engine.EngineScreenMenu
import org.valkyrienskies.eureka.registry.FuelRegistry
import org.valkyrienskies.eureka.ship.EurekaShipControl
import org.valkyrienskies.eureka.util.KtContainerData
import org.valkyrienskies.mod.common.getShipManagingPos
Expand Down Expand Up @@ -125,7 +124,8 @@ class EngineBlockEntity(pos: BlockPos, state: BlockState) :
* @return scaled fuel ticks.
*/
private fun getScaledFuel(): Int =
((FurnaceBlockEntity.getFuel()[fuel.item] ?: 0) * EurekaConfig.SERVER.engineFuelMultiplier).toInt()
(FuelRegistry.INSTANCE.get(fuel) * EurekaConfig.SERVER.engineFuelMultiplier).toInt()


/**
* Absorb one fuel item into the engine.
Expand Down Expand Up @@ -223,10 +223,10 @@ class EngineBlockEntity(pos: BlockPos, state: BlockState) :

override fun canTakeItemThroughFace(index: Int, stack: ItemStack, direction: Direction): Boolean =
// Allow extraction from slot 0 (fuel slot) when the hopper is below the block entity
index == 0 && direction == Direction.DOWN && !fuel.isEmpty && !AbstractFurnaceBlockEntity.isFuel(fuel)
index == 0 && direction == Direction.DOWN && !fuel.isEmpty && FuelRegistry.INSTANCE.get(fuel) <= 0

override fun canPlaceItem(index: Int, stack: ItemStack): Boolean =
index == 0 && AbstractFurnaceBlockEntity.isFuel(stack)
index == 0 && FuelRegistry.INSTANCE.get(stack) > 0

override fun fillStackedContents(helper: StackedContents) = helper.accountStack(fuel)
// endregion Container Stuff
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import net.minecraft.world.entity.player.Player
import net.minecraft.world.inventory.AbstractContainerMenu
import net.minecraft.world.inventory.FurnaceFuelSlot.isBucket
import net.minecraft.world.item.ItemStack
import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity
import org.valkyrienskies.eureka.EurekaScreens
import org.valkyrienskies.eureka.blockentity.EngineBlockEntity
import org.valkyrienskies.eureka.registry.FuelRegistry
import org.valkyrienskies.eureka.util.KtContainerData
import org.valkyrienskies.eureka.util.inventorySlots

Expand Down Expand Up @@ -39,7 +39,7 @@ class EngineScreenMenu(syncId: Int, playerInv: Inventory, val blockEntity: Engin

override fun quickMoveStack(player: Player, index: Int): ItemStack {
val slot = this.slots[index]
if (slot != null && slot.hasItem() && (AbstractFurnaceBlockEntity.isFuel(slot.item) || isBucket(slot.item))) {
if (slot != null && slot.hasItem() && (isBucket(slot.item) || FuelRegistry.INSTANCE.get(slot.item) > 0 )) {
if (index != 0) {
this.moveItemStackTo(slot.item, 0, 1, false)
slot.setChanged()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import net.minecraft.world.Container
import net.minecraft.world.inventory.Slot
import net.minecraft.world.item.ItemStack
import net.minecraft.world.item.Items
import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity
import org.valkyrienskies.eureka.registry.FuelRegistry

class FuelSlot(container: Container, slot: Int, x: Int, y: Int) : Slot(container, slot, x, y) {
override fun mayPlace(stack: ItemStack): Boolean {
return AbstractFurnaceBlockEntity.isFuel(stack) || isBucket(stack)
return FuelRegistry.INSTANCE.get(stack) > 0 || isBucket(stack)
}

override fun getMaxStackSize(stack: ItemStack): Int {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import org.valkyrienskies.eureka.block.WoodType;
import org.valkyrienskies.eureka.blockentity.renderer.ShipHelmBlockEntityRenderer;
import org.valkyrienskies.eureka.blockentity.renderer.WheelModels;
import org.valkyrienskies.eureka.fabric.registry.FuelRegistryImpl;
import org.valkyrienskies.mod.compat.clothconfig.VSClothConfig;
import org.valkyrienskies.mod.fabric.common.ValkyrienSkiesModFabric;

Expand All @@ -31,6 +32,8 @@ public void onInitialize() {
// force VS2 to load before eureka
new ValkyrienSkiesModFabric().onInitialize();

new FuelRegistryImpl();

EurekaMod.init();

// TODO: make resources packs work
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.valkyrienskies.eureka.fabric.registry;

import net.fabricmc.fabric.api.registry.FuelRegistry;
import net.minecraft.world.item.ItemStack;

public class FuelRegistryImpl extends org.valkyrienskies.eureka.registry.FuelRegistry {
public FuelRegistryImpl() {
INSTANCE = this;
}

@Override
public int get(ItemStack stack) {
Integer time = FuelRegistry.INSTANCE.get(stack.getItem());
return time == null ? 0 : time;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package org.valkyrienskies.eureka.forge.registry;

import net.minecraft.world.item.ItemStack;
import net.minecraftforge.common.ForgeHooks;

public class FuelRegistryImpl extends org.valkyrienskies.eureka.registry.FuelRegistry {

public FuelRegistryImpl() {
INSTANCE = this;
}

@Override
public int get(ItemStack stack) {
return ForgeHooks.getBurnTime(stack, null);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ import org.valkyrienskies.eureka.EurekaMod.initClient
import org.valkyrienskies.eureka.block.WoodType
import org.valkyrienskies.eureka.blockentity.renderer.ShipHelmBlockEntityRenderer
import org.valkyrienskies.eureka.blockentity.renderer.WheelModels.setModelGetter
import org.valkyrienskies.eureka.forge.registry.FuelRegistryImpl
import org.valkyrienskies.mod.compat.clothconfig.VSClothConfig.createConfigScreenFor
import thedarkcolour.kotlinforforge.forge.LOADING_CONTEXT
import thedarkcolour.kotlinforforge.forge.MOD_BUS
Expand Down Expand Up @@ -55,6 +56,7 @@ class EurekaModForge {
)
}
}
FuelRegistryImpl()
init()
}

Expand Down

0 comments on commit ee597f3

Please sign in to comment.