Files
Binnie/src/main/java/binnie/extratrees/machines/ExtraTreeMachine.java
T
ah-OOG-ah f0f14bb278 Minor cleanups (#50)
* Finalize, minor alloc reduction

Also enable Jabel and generic injection

* Update dependencies.gradle

* Clean up Machine a bit

* spotless

more enhanced instanceof

* Update ModuleMachine.java

* More clen

* WARN: Removed exception catching

* Many, many tiny patches + birthday fix

* Spotless

* Spotless again

* Fix getLow and clamp tolerance value

* Revert event -> ignored on unused event parameters

* Rename instanceof variables

* Update Machine.java

* Use StringBuilder

* Cache getStack()

* Oops, Jabel can't handle that

* Spotless

* Spotless again

My IDE was fighting with it

* Remove unused elements + scream test success
2024-09-26 16:59:20 +02:00

99 lines
3.2 KiB
Java

package binnie.extratrees.machines;
import net.minecraft.client.renderer.RenderBlocks;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;
import binnie.Binnie;
import binnie.core.BinnieCore;
import binnie.core.machines.IMachineType;
import binnie.core.machines.Machine;
import binnie.core.machines.MachineComponent;
import binnie.core.machines.MachinePackage;
import binnie.core.machines.TileEntityMachine;
import binnie.core.machines.component.IInteraction;
import binnie.core.resource.BinnieResource;
import binnie.core.resource.ResourceType;
import binnie.extratrees.ExtraTrees;
import binnie.extratrees.core.ExtraTreesGUID;
import binnie.extratrees.machines.designer.GlassworkerPackage;
import binnie.extratrees.machines.designer.PanelworkerPackage;
import binnie.extratrees.machines.designer.TileworkerPackage;
import binnie.extratrees.machines.designer.WoodworkerPackage;
import binnie.extratrees.machines.lumbermill.LumbermillPackage;
public enum ExtraTreeMachine implements IMachineType {
Lumbermill(LumbermillPackage.class),
Woodworker(WoodworkerPackage.class),
Panelworker(PanelworkerPackage.class),
Glassworker(GlassworkerPackage.class),
Tileworker(TileworkerPackage.class);
protected Class<? extends MachinePackage> cls;
ExtraTreeMachine(Class<? extends MachinePackage> cls) {
this.cls = cls;
}
@Override
public Class<? extends MachinePackage> getPackageClass() {
return cls;
}
@Override
public boolean isActive() {
if (this == ExtraTreeMachine.Tileworker) {
return BinnieCore.isBotanyActive();
}
return true;
}
public ItemStack get(int i) {
return new ItemStack(ExtraTrees.blockMachine, i, ordinal());
}
public static class ComponentExtraTreeGUI extends MachineComponent implements IInteraction.RightClick {
protected ExtraTreesGUID id;
public ComponentExtraTreeGUI(Machine machine, ExtraTreesGUID id) {
super(machine);
this.id = id;
}
@Override
public void onRightClick(World world, EntityPlayer player, int x, int y, int z) {
ExtraTrees.proxy.openGui(id, player, x, y, z);
}
}
public abstract static class PackageExtraTreeMachine extends MachinePackage {
protected BinnieResource textureName;
protected PackageExtraTreeMachine(String uid, String textureName, boolean powered) {
super(uid, powered);
this.textureName = Binnie.Resource.getFile(ExtraTrees.instance, ResourceType.Tile, textureName);
}
protected PackageExtraTreeMachine(String uid, BinnieResource textureName, boolean powered) {
super(uid, powered);
this.textureName = textureName;
}
@Override
public TileEntity createTileEntity() {
return new TileEntityMachine(this);
}
@Override
public void renderMachine(Machine machine, double x, double y, double z, float partialTick,
RenderBlocks renderer) {
MachineRendererForestry.renderMachine(textureName.getShortPath(), x, y, z);
}
}
}