Skip to content

Commit

Permalink
clean up voxel shapes and properties
Browse files Browse the repository at this point in the history
  • Loading branch information
skiprocks999 committed Dec 16, 2024
1 parent 1645e48 commit e58d614
Show file tree
Hide file tree
Showing 65 changed files with 2,111 additions and 1,619 deletions.
1 change: 1 addition & 0 deletions src/main/java/electrodynamics/Electrodynamics.java
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,7 @@ public Electrodynamics(IEventBus bus) {
ConfigurationHandler.registerConfig(OreConfig.class);
// MUST GO BEFORE BLOCKS!!!!
ElectrodynamicsBlockStates.init();
ElectrodynamicsVoxelShapeRegistry.init();
UnifiedElectrodynamicsRegister.register(bus);

ElectrodynamicsAttributeModifiers.init();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import electrodynamics.api.capability.types.electrodynamic.ICapabilityElectrodynamic;
import electrodynamics.api.capability.types.gas.IGasHandler;
import electrodynamics.api.gas.GasTank;
import electrodynamics.common.block.states.ElectrodynamicsBlockStates;
import electrodynamics.prefab.block.GenericEntityBlock;
import electrodynamics.prefab.properties.Property;
import electrodynamics.prefab.properties.PropertyTypes;
Expand Down Expand Up @@ -151,7 +152,7 @@ public void formMultiblock() {

slavePositions.get().add(nodePos);

level.setBlockAndUpdate(nodePos, node.placeState().setValue(GenericEntityBlock.FACING, getFacing()));
level.setBlockAndUpdate(nodePos, node.placeState().setValue(ElectrodynamicsBlockStates.FACING, getFacing()));

slave = (TileMultiblockSlave) level.getBlockEntity(nodePos);

Expand Down
29 changes: 29 additions & 0 deletions src/main/java/electrodynamics/api/tile/IMachine.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package electrodynamics.api.tile;

import electrodynamics.api.multiblock.subnodebased.Subnode;
import electrodynamics.common.block.voxelshapes.VoxelShapeProvider;
import net.minecraft.world.level.block.RenderShape;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;

public interface IMachine {

public BlockEntityType.BlockEntitySupplier<BlockEntity> getBlockEntitySupplier();

public int getLitBrightness();

public RenderShape getRenderShape();

public boolean isMultiblock();

public boolean propegatesLightDown();

public boolean isPlayerStorable();

public default Subnode[] getSubnodes() {
return new Subnode[]{};
}

public VoxelShapeProvider getVoxelShapeProvider();

}
58 changes: 58 additions & 0 deletions src/main/java/electrodynamics/api/tile/MachineProperties.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
package electrodynamics.api.tile;

import electrodynamics.api.multiblock.subnodebased.Subnode;
import electrodynamics.common.block.voxelshapes.VoxelShapeProvider;
import net.minecraft.world.level.block.RenderShape;

public class MachineProperties {

public boolean isMultiblock = false;
public int litBrightness = 0;
public RenderShape renderShape = RenderShape.MODEL;
public boolean propegatesLightDown = false;
public boolean isPlayerStorable = false;
public Subnode[] subnodes = new Subnode[0];
public VoxelShapeProvider provider = VoxelShapeProvider.DEFAULT;

public static final MachineProperties DEFAULT = new MachineProperties();

private MachineProperties() {

}

public MachineProperties setLitBrightness(int brightness) {
this.litBrightness = brightness;
return this;
}

public MachineProperties setPropegateLightDown() {
propegatesLightDown = true;
return this;
}

public MachineProperties setRenderShape(RenderShape shape) {
renderShape = shape;
return this;
}

public MachineProperties setPlayerStorable() {
isPlayerStorable = true;
return this;
}

public MachineProperties setSubnodes(Subnode[] subnodes) {
isMultiblock = true;
this.subnodes = subnodes;
return this;
}

public MachineProperties setShapeProvider(VoxelShapeProvider provider) {
this.provider = provider;
return this;
}

public static MachineProperties builder() {
return new MachineProperties();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -167,8 +167,8 @@ public Object getJeiLookup() {

// Fluid Valve

pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEM_FLUIDVALVE.get().getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEM_FLUIDVALVE.get()).onTooltip(new OnTooltip() {
pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.fluidvalve).getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.fluidvalve)).onTooltip(new OnTooltip() {

@Override
public void onTooltip(GuiGraphics graphics, int xAxis, int yAxis, ScreenGuidebook screen) {
Expand All @@ -188,7 +188,7 @@ public void onKeyPress(int keyCode, int scanCode, int modifiers, int x, int y, i

@Override
public Object getJeiLookup() {
return new ItemStack(ElectrodynamicsItems.ITEM_FLUIDVALVE.get());
return new ItemStack(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.fluidvalve));
}

}));
Expand All @@ -200,8 +200,8 @@ public Object getJeiLookup() {

// Fluid Pipe Pump

pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEM_FLUIDPIPEPUMP.get().getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEM_FLUIDPIPEPUMP.get()).onTooltip(new OnTooltip() {
pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.fluidpipepump).getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.fluidpipepump)).onTooltip(new OnTooltip() {

@Override
public void onTooltip(GuiGraphics graphics, int xAxis, int yAxis, ScreenGuidebook screen) {
Expand All @@ -221,7 +221,7 @@ public void onKeyPress(int keyCode, int scanCode, int modifiers, int x, int y, i

@Override
public Object getJeiLookup() {
return new ItemStack(ElectrodynamicsItems.ITEM_FLUIDPIPEPUMP.get());
return new ItemStack(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.fluidpipepump));
}

}));
Expand All @@ -234,8 +234,8 @@ public Object getJeiLookup() {

// Fluid Pipe Filter

pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEM_FLUIDPIPEFILTER.get().getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEM_FLUIDPIPEFILTER.get()).onTooltip(new OnTooltip() {
pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.fluidpipefilter).getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.fluidpipefilter)).onTooltip(new OnTooltip() {

@Override
public void onTooltip(GuiGraphics graphics, int xAxis, int yAxis, ScreenGuidebook screen) {
Expand All @@ -255,7 +255,7 @@ public void onKeyPress(int keyCode, int scanCode, int modifiers, int x, int y, i

@Override
public Object getJeiLookup() {
return new ItemStack(ElectrodynamicsItems.ITEM_FLUIDPIPEFILTER.get());
return new ItemStack(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.fluidpipefilter));
}

}));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ public void onTooltip(GuiGraphics graphics, int xAxis, int yAxis, ScreenGuideboo
List<FormattedCharSequence> tooltips = new ArrayList<>();
tooltips.add(ElectroTextUtils.guidebook("chapter.electricity.left", ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gasvent).getDescription().copy().withStyle(ChatFormatting.DARK_GRAY)).withStyle(ChatFormatting.GRAY).getVisualOrderText());
tooltips.add(ElectroTextUtils.guidebook("chapter.electricity.middle", ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.electrolyticseparator).getDescription().copy().withStyle(ChatFormatting.DARK_GRAY)).withStyle(ChatFormatting.GRAY).getVisualOrderText());
tooltips.add(ElectroTextUtils.guidebook("chapter.electricity.right", ElectrodynamicsItems.ITEM_GASPIPEFILTER.get().getDescription().copy().withStyle(ChatFormatting.DARK_GRAY)).withStyle(ChatFormatting.GRAY).getVisualOrderText());
tooltips.add(ElectroTextUtils.guidebook("chapter.electricity.right", ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gaspipefilter).getDescription().copy().withStyle(ChatFormatting.DARK_GRAY)).withStyle(ChatFormatting.GRAY).getVisualOrderText());

graphics.renderTooltip(screen.getFontRenderer(), tooltips, xAxis, yAxis);
}
Expand Down Expand Up @@ -256,8 +256,8 @@ public Object getJeiLookup() {

// Gas Valve

pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEM_GASVALVE.get().getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEM_GASVALVE.get()).onTooltip(new OnTooltip() {
pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gasvalve).getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gasvalve)).onTooltip(new OnTooltip() {

@Override
public void onTooltip(GuiGraphics graphics, int xAxis, int yAxis, ScreenGuidebook screen) {
Expand All @@ -277,7 +277,7 @@ public void onKeyPress(int keyCode, int scanCode, int modifiers, int x, int y, i

@Override
public Object getJeiLookup() {
return new ItemStack(ElectrodynamicsItems.ITEM_GASVALVE.get());
return new ItemStack(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gasvalve));
}

}));
Expand All @@ -289,8 +289,8 @@ public Object getJeiLookup() {

// Gas Pipe Pump

pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEM_GASPIPEPUMP.get().getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEM_GASPIPEPUMP.get()).onTooltip(new OnTooltip() {
pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gaspipepump).getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gaspipepump)).onTooltip(new OnTooltip() {

@Override
public void onTooltip(GuiGraphics graphics, int xAxis, int yAxis, ScreenGuidebook screen) {
Expand All @@ -310,7 +310,7 @@ public void onKeyPress(int keyCode, int scanCode, int modifiers, int x, int y, i

@Override
public Object getJeiLookup() {
return new ItemStack(ElectrodynamicsItems.ITEM_GASPIPEPUMP.get());
return new ItemStack(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gaspipepump));
}

}));
Expand All @@ -323,8 +323,8 @@ public Object getJeiLookup() {

// Gas Filter Pipe

pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEM_GASPIPEFILTER.get().getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEM_GASPIPEFILTER.get()).onTooltip(new OnTooltip() {
pageData.add(new TextWrapperObject(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gaspipefilter).getDescription().copy().withStyle(ChatFormatting.BOLD)).setCentered().setNewPage());
pageData.add(new ItemWrapperObject(7 + ScreenGuidebook.TEXT_WIDTH / 2 - 16, 5, 32, 30, 30, 2.0F, ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gaspipefilter)).onTooltip(new OnTooltip() {

@Override
public void onTooltip(GuiGraphics graphics, int xAxis, int yAxis, ScreenGuidebook screen) {
Expand All @@ -344,7 +344,7 @@ public void onKeyPress(int keyCode, int scanCode, int modifiers, int x, int y, i

@Override
public Object getJeiLookup() {
return new ItemStack(ElectrodynamicsItems.ITEM_GASPIPEFILTER.get());
return new ItemStack(ElectrodynamicsItems.ITEMS_MACHINE.getValue(SubtypeMachine.gaspipefilter));
}

}));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import electrodynamics.client.ClientRegister;
import electrodynamics.common.tile.electricitygrid.batteries.TileBatteryBox;
import electrodynamics.prefab.block.GenericEntityBlock;
import electrodynamics.prefab.tile.components.IComponentType;
import electrodynamics.prefab.tile.components.type.ComponentElectrodynamic;
import electrodynamics.prefab.utilities.RenderingUtils;
Expand Down Expand Up @@ -38,7 +37,7 @@ public void render(TileBatteryBox tileEntityIn, float partialTicks, @NotNull Pos
default -> getModel(ClientRegister.MODEL_BATTERYBOX);
};

switch (tileEntityIn.getBlockState().getValue(GenericEntityBlock.FACING)) {
switch (tileEntityIn.getFacing()) {
case NORTH -> {
matrixStackIn.mulPose(MathUtils.rotQuaternionDeg(0, 90, 0));
// matrixStackIn.mulPose(new Quaternion(0, 90, 0, true));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import electrodynamics.client.ClientRegister;
import electrodynamics.common.tile.electricitygrid.batteries.TileCarbyneBatteryBox;
import electrodynamics.prefab.block.GenericEntityBlock;
import electrodynamics.prefab.tile.components.IComponentType;
import electrodynamics.prefab.tile.components.type.ComponentElectrodynamic;
import electrodynamics.prefab.utilities.RenderingUtils;
Expand Down Expand Up @@ -38,7 +37,7 @@ public void render(TileCarbyneBatteryBox tileEntityIn, float partialTicks, @NotN
default -> getModel(ClientRegister.MODEL_BATTERYBOX);
};

switch (tileEntityIn.getBlockState().getValue(GenericEntityBlock.FACING)) {
switch (tileEntityIn.getFacing()) {
case NORTH -> {
matrixStackIn.mulPose(MathUtils.rotQuaternionDeg(0, 90, 0));
// matrixStackIn.mulPose(new Quaternion(0, 90, 0, true));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import electrodynamics.client.ClientRegister;
import electrodynamics.client.particle.fluiddrop.ParticleOptionFluidDrop;
import electrodynamics.common.tile.machines.chemicalreactor.TileChemicalReactor;
import electrodynamics.prefab.block.GenericEntityBlock;
import electrodynamics.prefab.tile.components.IComponentType;
import electrodynamics.prefab.tile.components.type.ComponentFluidHandlerMulti;
import electrodynamics.prefab.tile.components.type.ComponentInventory;
Expand All @@ -18,7 +17,6 @@
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.core.particles.DustParticleOptions;
import net.minecraft.core.particles.ParticleTypes;
import net.minecraft.world.inventory.InventoryMenu;
import net.minecraft.world.item.ItemDisplayContext;
Expand All @@ -27,7 +25,6 @@
import net.neoforged.neoforge.client.extensions.common.IClientFluidTypeExtensions;
import net.neoforged.neoforge.fluids.FluidStack;
import org.jetbrains.annotations.NotNull;
import org.joml.Vector3f;

public class RenderChemicalReactor extends AbstractTileRenderer<TileChemicalReactor> {
public RenderChemicalReactor(BlockEntityRendererProvider.Context context) {
Expand All @@ -39,7 +36,7 @@ public void render(@NotNull TileChemicalReactor tile, float partialTick, @NotNul

poseStack.pushPose();

switch (tile.getBlockState().getValue(GenericEntityBlock.FACING)) {
switch (tile.getFacing()) {
case NORTH -> {
poseStack.mulPose(MathUtils.rotQuaternionDeg(0, 90, 0));
// matrixStackIn.mulPose(new Quaternion(0, 90, 0, true));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.mojang.blaze3d.vertex.VertexConsumer;

import electrodynamics.common.tile.electricitygrid.generators.TileCombustionChamber;
import electrodynamics.prefab.block.GenericEntityBlock;
import electrodynamics.prefab.tile.components.IComponentType;
import electrodynamics.prefab.tile.components.type.ComponentFluidHandlerMulti;
import electrodynamics.prefab.utilities.RenderingUtils;
Expand All @@ -31,7 +30,7 @@ public void render(TileCombustionChamber tileEntityIn, float partialTicks, PoseS
float prog = fuel.getAmount() / (float) TileCombustionChamber.TANK_CAPACITY;
if (prog > 0) {

Direction facing = tileEntityIn.getBlockState().getValue(GenericEntityBlock.FACING);
Direction facing = tileEntityIn.getFacing();
AABB box;
if (facing == Direction.EAST || facing == Direction.WEST) {
box = new AABB(7.0D / 16.0D, 12.0D / 16.0D, 6.0D / 16.0D, 10.0D / 16.0D, 14.0D / 16.0D, 11.0D / 16.0D);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import com.mojang.blaze3d.vertex.VertexConsumer;

import electrodynamics.common.tile.machines.TileFermentationPlant;
import electrodynamics.prefab.block.GenericEntityBlock;
import electrodynamics.prefab.tile.components.IComponentType;
import electrodynamics.prefab.tile.components.type.ComponentFluidHandlerMulti;
import electrodynamics.prefab.utilities.RenderingUtils;
Expand All @@ -30,7 +29,7 @@ public void render(TileFermentationPlant tileEntityIn, float partialTicks, PoseS
matrixStackIn.pushPose();
ComponentFluidHandlerMulti multi = tileEntityIn.getComponent(IComponentType.FluidHandler);

Direction facing = tileEntityIn.getBlockState().getValue(GenericEntityBlock.FACING);
Direction facing = tileEntityIn.getFacing();

FluidStack input = null;
for (FluidTank tank : multi.getInputTanks()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

import electrodynamics.client.ClientRegister;
import electrodynamics.common.tile.electricitygrid.batteries.TileLithiumBatteryBox;
import electrodynamics.prefab.block.GenericEntityBlock;
import electrodynamics.prefab.tile.components.IComponentType;
import electrodynamics.prefab.tile.components.type.ComponentElectrodynamic;
import electrodynamics.prefab.utilities.RenderingUtils;
Expand Down Expand Up @@ -38,7 +37,7 @@ public void render(TileLithiumBatteryBox tileEntityIn, float partialTicks, @NotN
default -> getModel(ClientRegister.MODEL_BATTERYBOX);
};

switch (tileEntityIn.getBlockState().getValue(GenericEntityBlock.FACING)) {
switch (tileEntityIn.getFacing()) {
case NORTH -> {
matrixStackIn.mulPose(MathUtils.rotQuaternionDeg(0, 90, 0));
// matrixStackIn.mulPose(new Quaternion(0, 90, 0, true));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package electrodynamics.client.render.tile;

import electrodynamics.common.block.states.ElectrodynamicsBlockStates;
import org.jetbrains.annotations.NotNull;

import com.mojang.blaze3d.vertex.PoseStack;

import electrodynamics.common.block.BlockMachine;
import electrodynamics.common.tile.electricitygrid.TileLogisticalWire;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.MultiBufferSource;
Expand All @@ -22,7 +22,7 @@ public RenderLogisticalWire(Context context) {
@Override
public void render(@NotNull TileLogisticalWire tile, float partialTick, @NotNull PoseStack poseStack, @NotNull MultiBufferSource bufferSource, int packedLight, int packedOverlay) {

if (!tile.getBlockState().getValue(BlockMachine.ON)) {
if (!tile.getBlockState().getValue(ElectrodynamicsBlockStates.LIT)) {
return;
}

Expand Down
Loading

0 comments on commit e58d614

Please sign in to comment.