Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import crafttweaker.mc1120.item.MCItemStack;
import crafttweaker.util.ArrayUtil;
import gregtech.api.GregTechAPI;
import gregtech.api.metatileentity.registry.MTEManager;
import gregtech.api.unification.material.event.MaterialEvent;
import gregtech.api.unification.material.event.MaterialRegistryEvent;
import net.minecraft.block.state.IBlockState;
Expand Down Expand Up @@ -400,6 +401,11 @@ public static void registerMaterialRegistry(MaterialRegistryEvent event) {
GregTechAPI.materialManager.createRegistry(HerodotusUtils.MOD_ID);
}

@SubscribeEvent
public static void registerMTERegistry(MTEManager.MTERegistryEvent event) {
GregTechAPI.mteManager.createRegistry(HerodotusUtils.MOD_ID);
}

@SubscribeEvent(priority = EventPriority.HIGH)
public static void registerMaterials(MaterialEvent event) {
HDSMaterials.init();
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
package projecthds.herodotusutils.metatileentities.multi;

import gregtech.api.metatileentity.MetaTileEntity;
import gregtech.api.metatileentity.interfaces.IGregTechTileEntity;
import gregtech.api.metatileentity.multiblock.*;
import gregtech.api.metatileentity.multiblock.ui.MultiblockUIBuilder;
import gregtech.api.pattern.BlockPattern;
import gregtech.api.pattern.FactoryBlockPattern;
import gregtech.api.util.KeyUtil;
import gregtech.client.renderer.ICubeRenderer;
import net.minecraft.init.Blocks;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntityFurnace;
import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.IItemHandler;
import org.jetbrains.annotations.NotNull;
import projecthds.herodotusutils.util.TransferUtils;

public class MultiMachineCarver extends MultiblockWithDisplayBase {
private int burnTime = 0;
private int progress = 0;
private static final int ONCE_TIME = 60;
private static final int MAX_PROGRESS = 100;

public MultiMachineCarver(ResourceLocation metaTileEntityId) {
super(metaTileEntityId);
}

@Override
public void update() {
super.update();
if (!getWorld().isRemote && isActive()) {
IItemHandler chestInventory = getWorld().getTileEntity(getPos().up()).getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
TransferUtils.forEachItems(chestInventory, (index, stack) -> {
if (TileEntityFurnace.getItemBurnTime(stack) > 0) {

}
});
}
}

@Override
@SideOnly(value = Side.CLIENT)
protected void configureDisplayText(MultiblockUIBuilder builder) {
builder.addCustom((manager, syncer) -> {
manager.add(KeyUtil.lang("hdsutils.mte.carver.burn_time", burnTime));
});
}

@Override
public NBTTagCompound writeToNBT(NBTTagCompound data) {
super.writeToNBT(data);
data.setInteger("burnTime", burnTime);
return data;
}

@Override
public void readFromNBT(NBTTagCompound data) {
super.readFromNBT(data);
burnTime = data.getInteger("burnTime");
}

@Override
protected void updateFormedValid() {}

@Override
protected @NotNull BlockPattern createStructurePattern() {
return FactoryBlockPattern.start()
.aisle("A")
.aisle("B")
.aisle("C")
.where('A', blocks(Blocks.CHEST))
.where('B', selfPredicate())
.where('C', blocks(Blocks.DROPPER))
.build();
}

@Override
public ICubeRenderer getBaseTexture(IMultiblockPart iMultiblockPart) {
return null;
}

@Override
public MetaTileEntity createMetaTileEntity(IGregTechTileEntity iGregTechTileEntity) {
return new MultiMachineCarver(metaTileEntityId);
}

@Override
public boolean hasMaintenanceMechanics() {
return false;
}
}
16 changes: 16 additions & 0 deletions src/main/java/projecthds/herodotusutils/util/TransferUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package projecthds.herodotusutils.util;

import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandler;

import java.util.function.BiConsumer;

public class TransferUtils {

public static void forEachItems(IItemHandler handler, BiConsumer<Integer, ItemStack> consumer) {
for (int i = 0; i < handler.getSlots(); i++) {
consumer.accept(i, handler.getStackInSlot(i));
}
}

}
4 changes: 3 additions & 1 deletion src/main/resources/assets/hdsutils/lang/en_us.lang
Original file line number Diff line number Diff line change
Expand Up @@ -152,4 +152,6 @@ hdsutils.tips.i18ndetected.0=HerodotusUtils 检测到您正在使用 I18nUpdateM
hdsutils.tips.i18ndetected.1=Herodotus 整合包内置了同隶属于 ProjectHDS 的翻译项目 https://github.com/ProjectHDS/Hermes,无需使用其他第三方汉化包
hdsutils.tips.i18ndetected.2=请您在禁用 I18nUpdateMod 模组后,再启动游戏

hdsutils.message.block_lithium_quartz_powder_interacted=%s times of block update has been recorded
hdsutils.message.block_lithium_quartz_powder_interacted=%s times of block update has been recorded

hdsutils.mte.carver.burn_time=Burn Time: %s ticks