Skip to content
Merged
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
22 changes: 0 additions & 22 deletions src/main/java/io/github/pylonmc/pylon/base/BaseEntities.java

This file was deleted.

2 changes: 1 addition & 1 deletion src/main/java/io/github/pylonmc/pylon/base/BaseItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import io.github.pylonmc.pylon.base.content.machines.simple.Press;
import io.github.pylonmc.pylon.base.content.machines.simple.VacuumHopper;
import io.github.pylonmc.pylon.base.content.machines.smelting.PitKiln;
import io.github.pylonmc.pylon.base.content.magic.FireproofRune;
import io.github.pylonmc.pylon.base.content.tools.FireproofRune;
import io.github.pylonmc.pylon.base.content.resources.RefractoryMix;
import io.github.pylonmc.pylon.base.content.science.Loupe;
import io.github.pylonmc.pylon.base.content.science.ResearchPack;
Expand Down
3 changes: 1 addition & 2 deletions src/main/java/io/github/pylonmc/pylon/base/PylonBase.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package io.github.pylonmc.pylon.base;

import io.github.pylonmc.pylon.base.command.PylonBaseCommand;
import io.github.pylonmc.pylon.base.content.magic.base.Rune;
import io.github.pylonmc.pylon.base.content.tools.base.Rune;
import io.github.pylonmc.pylon.base.content.tools.HealthTalisman;
import io.github.pylonmc.pylon.base.content.building.Immobilizer;
import io.github.pylonmc.pylon.base.content.building.IgneousCompositeListener;
Expand Down Expand Up @@ -46,7 +46,6 @@ public void onEnable() {

BaseItems.initialize();
BaseBlocks.initialize();
BaseEntities.initialize();
BaseFluids.initialize();
BaseResearches.initialize();
BaseRecipes.initialize();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.github.pylonmc.pylon.base.content.building;

import io.github.pylonmc.pylon.base.entities.SimpleItemDisplay;
import io.github.pylonmc.pylon.core.block.PylonBlock;
import io.github.pylonmc.pylon.core.block.base.PylonEntityHolderBlock;
import io.github.pylonmc.pylon.core.block.base.PylonInteractBlock;
Expand Down Expand Up @@ -37,10 +36,10 @@ public class Pedestal extends PylonBlock implements PylonEntityHolderBlock, Pylo
public Pedestal(@NotNull Block block, @NotNull BlockCreateContext context) {
super(block);

addEntity("item", new SimpleItemDisplay(new ItemDisplayBuilder()
addEntity("item", new ItemDisplayBuilder()
.transformation(transformBuilder().buildForItemDisplay())
.build(getBlock().getLocation().toCenterLocation())
));
);

rotation = 0;
locked = false;
Expand Down Expand Up @@ -101,7 +100,7 @@ public void onBreak(@NotNull List<ItemStack> drops, @NotNull BlockBreakContext c
}

public ItemDisplay getItemDisplay() {
return getHeldEntityOrThrow(SimpleItemDisplay.class, "item").getEntity();
return getHeldEntityOrThrow(ItemDisplay.class, "item");
}

public TransformBuilder transformBuilder() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import com.google.common.base.Preconditions;
import io.github.pylonmc.pylon.base.content.machines.fluid.gui.FluidSelector;
import io.github.pylonmc.pylon.base.entities.SimpleItemDisplay;
import io.github.pylonmc.pylon.core.block.PylonBlock;
import io.github.pylonmc.pylon.core.block.base.PylonEntityHolderBlock;
import io.github.pylonmc.pylon.core.block.base.PylonFluidTank;
Expand All @@ -21,6 +20,7 @@
import io.github.pylonmc.pylon.core.fluid.VirtualFluidPoint;
import io.github.pylonmc.pylon.core.i18n.PylonArgument;
import io.github.pylonmc.pylon.core.item.PylonItem;
import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder;
import io.github.pylonmc.pylon.core.util.PylonUtils;
import io.github.pylonmc.pylon.core.util.gui.unit.UnitFormat;
import net.kyori.adventure.text.Component;
Expand Down Expand Up @@ -62,8 +62,12 @@ public Item(@NotNull ItemStack stack) {

public static final NamespacedKey FLUID_KEY = baseKey("fluid");

public static final Material MAIN_MATERIAL = Material.WHITE_CONCRETE;
public static final Material NO_FLUID_MATERIAL = Material.RED_CONCRETE;
public final ItemStack mainStack = ItemStackBuilder.of(Material.WHITE_CONCRETE)
.addCustomModelDataString(getKey() + ":main")
.build();
public final ItemStack noFluidStack = ItemStackBuilder.of(Material.RED_CONCRETE)
.addCustomModelDataString(getKey() + ":fluid:none")
.build();

protected @Nullable PylonFluid fluid;

Expand All @@ -80,21 +84,21 @@ public FluidFilter(@NotNull Block block, @NotNull BlockCreateContext context) {
Preconditions.checkState(context instanceof BlockCreateContext.PlayerPlace, "Fluid valve can only be placed by a player");
Player player = ((BlockCreateContext.PlayerPlace) context).getPlayer();

addEntity("main", new SimpleItemDisplay(new ItemDisplayBuilder()
.material(MAIN_MATERIAL)
addEntity("main", new ItemDisplayBuilder()
.itemStack(mainStack)
.transformation(new TransformBuilder()
.lookAlong(PylonUtils.rotateToPlayerFacing(player, BlockFace.EAST, false).getDirection().toVector3d())
.scale(0.25, 0.25, 0.5)
)
.build(block.getLocation().toCenterLocation()))
.build(block.getLocation().toCenterLocation())
);
addEntity("fluid", new SimpleItemDisplay(new ItemDisplayBuilder()
.material(NO_FLUID_MATERIAL)
addEntity("fluid", new ItemDisplayBuilder()
.itemStack(noFluidStack)
.transformation(new TransformBuilder()
.lookAlong(PylonUtils.rotateToPlayerFacing(player, BlockFace.EAST, false).getDirection().toVector3d())
.scale(0.2, 0.3, 0.45)
)
.build(block.getLocation().toCenterLocation()))
.build(block.getLocation().toCenterLocation())
);
addEntity("input", FluidPointInteraction.make(context, FluidPointType.INPUT, BlockFace.EAST, 0.25F));
addEntity("output", FluidPointInteraction.make(context, FluidPointType.OUTPUT, BlockFace.WEST, 0.25F));
Expand All @@ -120,7 +124,7 @@ public void write(@NotNull PersistentDataContainer pdc) {
}

private @NotNull ItemDisplay getFluidDisplay() {
return getHeldEntityOrThrow(SimpleItemDisplay.class, "fluid").getEntity();
return getHeldEntityOrThrow(ItemDisplay.class, "fluid");
}

@Override
Expand All @@ -136,8 +140,8 @@ public double fluidAmountRequested(@NotNull PylonFluid fluid, double deltaSecond

// Make sure the filter always has enough fluid for one tick's worth of output
// somewhat hacky
VirtualFluidPoint output = getHeldEntityOrThrow(FluidPointInteraction.class, "output").getPoint();
VirtualFluidPoint input = getHeldEntityOrThrow(FluidPointInteraction.class, "input").getPoint();
VirtualFluidPoint output = getHeldPylonEntityOrThrow(FluidPointInteraction.class, "output").getPoint();
VirtualFluidPoint input = getHeldPylonEntityOrThrow(FluidPointInteraction.class, "input").getPoint();
double outputFluidPerSecond = FluidManager.getFluidPerSecond(output.getSegment());
double inputFluidPerSecond = FluidManager.getFluidPerSecond(input.getSegment());
return Math.max(0.0, Math.min(outputFluidPerSecond, inputFluidPerSecond)
Expand All @@ -149,7 +153,7 @@ public double fluidAmountRequested(@NotNull PylonFluid fluid, double deltaSecond

public void setFluid(PylonFluid fluid) {
this.fluid = fluid;
getFluidDisplay().setItemStack(new ItemStack(fluid == null ? NO_FLUID_MATERIAL : fluid.getMaterial()));
getFluidDisplay().setItemStack(fluid == null ? noFluidStack : fluid.getItem());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package io.github.pylonmc.pylon.base.content.machines.fluid;

import com.google.common.base.Preconditions;
import io.github.pylonmc.pylon.base.entities.SimpleTextDisplay;
import io.github.pylonmc.pylon.core.block.base.PylonTickingBlock;
import io.github.pylonmc.pylon.core.block.context.BlockCreateContext;
import io.github.pylonmc.pylon.core.config.adapter.ConfigAdapter;
Expand All @@ -15,6 +14,7 @@
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Player;
import org.bukkit.entity.TextDisplay;
import org.bukkit.persistence.PersistentDataContainer;
import org.jetbrains.annotations.NotNull;
import org.joml.Vector3d;
Expand Down Expand Up @@ -56,30 +56,29 @@ public void onFluidRemoved(@NotNull PylonFluid fluid, double amount) {
public void tick(double deltaSeconds) {
Component component = UnitFormat.MILLIBUCKETS_PER_SECOND.format(Math.round(removedSinceLastUpdate / deltaSeconds)).asComponent();

SimpleTextDisplay northDisplay = getHeldEntity(SimpleTextDisplay.class, "flow_rate_north");
TextDisplay northDisplay = getHeldEntity(TextDisplay.class, "flow_rate_north");
if (northDisplay != null) {
northDisplay.getEntity().text(component);
northDisplay.text(component);
}

SimpleTextDisplay southDisplay = getHeldEntity(SimpleTextDisplay.class, "flow_rate_south");
TextDisplay southDisplay = getHeldEntity(TextDisplay.class, "flow_rate_south");
if (southDisplay != null) {
southDisplay.getEntity().text(component);
southDisplay.text(component);
}

removedSinceLastUpdate = 0.0;
}

private @NotNull SimpleTextDisplay createTextDisplay(@NotNull Player player, @NotNull BlockFace face) {
return new SimpleTextDisplay(new TextDisplayBuilder()
private @NotNull TextDisplay createTextDisplay(@NotNull Player player, @NotNull BlockFace face) {
return new TextDisplayBuilder()
.transformation(new TransformBuilder()
.lookAlong(PylonUtils.rotateToPlayerFacing(player, face, false).getDirection().toVector3d())
.translate(new Vector3d(0.0, 0.0, 0.126))
.scale(0.3, 0.3, 0.0001)
)
.backgroundColor(Color.fromARGB(0, 0, 0, 0))
.text(UnitFormat.MILLIBUCKETS_PER_SECOND.format(0).asComponent())
.build(getBlock().getLocation().toCenterLocation())
);
.build(getBlock().getLocation().toCenterLocation());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.github.pylonmc.pylon.base.content.machines.fluid;

import io.github.pylonmc.pylon.base.entities.SimpleItemDisplay;
import io.github.pylonmc.pylon.core.block.BlockStorage;
import io.github.pylonmc.pylon.core.block.PylonBlock;
import io.github.pylonmc.pylon.core.block.base.PylonEntityHolderBlock;
Expand All @@ -26,6 +25,7 @@
import org.bukkit.NamespacedKey;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.ItemDisplay;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.persistence.PersistentDataContainer;
Expand Down Expand Up @@ -73,9 +73,9 @@ public FluidTank(@NotNull Block block, @NotNull BlockCreateContext context) {
super(block, context);
height = 0;
allowedTemperatures = List.of();
addEntity("fluid", new SimpleItemDisplay(new ItemDisplayBuilder()
addEntity("fluid", new ItemDisplayBuilder()
.build(getBlock().getLocation().toCenterLocation().add(0, 1, 0))
));
);
addEntity("input", FluidPointInteraction.make(context, FluidPointType.INPUT, BlockFace.NORTH));
addEntity("output", FluidPointInteraction.make(context, FluidPointType.OUTPUT, BlockFace.SOUTH));
}
Expand Down Expand Up @@ -147,23 +147,23 @@ public boolean isAllowedFluid(@NotNull PylonFluid fluid) {
@Override
public void setFluidType(@Nullable PylonFluid fluid) {
PylonFluidTank.super.setFluidType(fluid);
getFluidDisplay().getEntity().setItemStack(fluid == null ? null : new ItemStack(fluid.getMaterial()));
getFluidDisplay().setItemStack(fluid == null ? null : fluid.getItem());
}

@Override
public boolean setFluid(double amount) {
boolean result = PylonFluidTank.super.setFluid(amount);
float scale = (float) ((height - 0.1) * getFluidAmount() / getFluidCapacity());
getFluidDisplay().getEntity().setTransformationMatrix(new TransformBuilder()
getFluidDisplay().setTransformationMatrix(new TransformBuilder()
.translate(0.0, -0.45 + scale / 2, 0.0)
.scale(0.9, scale, 0.9)
.buildForItemDisplay()
);
return result;
}

public @NotNull SimpleItemDisplay getFluidDisplay() {
return getHeldEntityOrThrow(SimpleItemDisplay.class, "fluid");
public @NotNull ItemDisplay getFluidDisplay() {
return getHeldEntityOrThrow(ItemDisplay.class, "fluid");
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ public static class Item extends PylonItem {
ConfigAdapter.LIST.from(ConfigAdapter.FLUID_TEMPERATURE)
);


public Item(@NotNull ItemStack stack) {
super(stack);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package io.github.pylonmc.pylon.base.content.machines.fluid;

import com.google.common.base.Preconditions;
import io.github.pylonmc.pylon.base.entities.SimpleItemDisplay;
import io.github.pylonmc.pylon.core.block.PylonBlock;
import io.github.pylonmc.pylon.core.block.base.PylonEntityHolderBlock;
import io.github.pylonmc.pylon.core.block.base.PylonFluidBlock;
Expand All @@ -17,13 +16,15 @@
import io.github.pylonmc.pylon.core.fluid.FluidPointType;
import io.github.pylonmc.pylon.core.fluid.VirtualFluidPoint;
import io.github.pylonmc.pylon.core.i18n.PylonArgument;
import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder;
import io.github.pylonmc.pylon.core.util.PylonUtils;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.entity.Display;
import org.bukkit.entity.ItemDisplay;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.block.Action;
Expand All @@ -41,7 +42,6 @@ public class FluidValve extends PylonBlock

public static final NamespacedKey ENABLED_KEY = baseKey("enabled");

private static final Material MAIN_MATERIAL = Material.WHITE_CONCRETE;
private static final int BRIGHTNESS_OFF = 6;
private static final int BRIGHTNESS_ON = 13;

Expand All @@ -55,15 +55,18 @@ public FluidValve(@NotNull Block block, @NotNull BlockCreateContext context) {
Player player = ((BlockCreateContext.PlayerPlace) context).getPlayer();
addEntity("east", FluidPointInteraction.make(context, FluidPointType.CONNECTOR, BlockFace.EAST, 0.25F));
addEntity("west", FluidPointInteraction.make(context, FluidPointType.CONNECTOR, BlockFace.WEST, 0.25F));
addEntity("main", new SimpleItemDisplay(new ItemDisplayBuilder()
.material(MAIN_MATERIAL)
addEntity("main", new ItemDisplayBuilder()
.itemStack(ItemStackBuilder.of(Material.WHITE_CONCRETE)
.addCustomModelDataString(getKey() + ":main")
.build()
)
.brightness(BRIGHTNESS_OFF)
.transformation(new TransformBuilder()
.lookAlong(PylonUtils.rotateToPlayerFacing(player, BlockFace.EAST, false).getDirection().toVector3d())
.scale(0.25, 0.25, 0.5)
)
.build(getBlock().getLocation().toCenterLocation())
));
);

enabled = false;
}
Expand Down Expand Up @@ -102,8 +105,7 @@ public void onInteract(@NotNull PlayerInteractEvent event) {

enabled = !enabled;

getHeldEntityOrThrow(SimpleItemDisplay.class, "main")
.getEntity()
getHeldEntityOrThrow(ItemDisplay.class, "main")
.setBrightness(new Display.Brightness(0, enabled ? BRIGHTNESS_ON : BRIGHTNESS_OFF));

if (enabled) {
Expand All @@ -122,12 +124,10 @@ public void onInteract(@NotNull PlayerInteractEvent event) {
}

private @NotNull VirtualFluidPoint getEastPoint() {
//noinspection DataFlowIssue
return getHeldEntity(FluidPointInteraction.class, "east").getPoint();
return getHeldPylonEntityOrThrow(FluidPointInteraction.class, "east").getPoint();
}

private @NotNull VirtualFluidPoint getWestPoint() {
//noinspection DataFlowIssue
return getHeldEntity(FluidPointInteraction.class, "west").getPoint();
return getHeldPylonEntityOrThrow(FluidPointInteraction.class, "west").getPoint();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package io.github.pylonmc.pylon.base.content.machines.fluid;

import io.github.pylonmc.pylon.base.entities.SimpleItemDisplay;
import io.github.pylonmc.pylon.core.block.PylonBlock;
import io.github.pylonmc.pylon.core.block.base.PylonEntityHolderBlock;
import io.github.pylonmc.pylon.core.block.base.PylonFluidBlock;
Expand All @@ -13,6 +12,7 @@
import io.github.pylonmc.pylon.core.fluid.PylonFluid;
import io.github.pylonmc.pylon.core.i18n.PylonArgument;
import io.github.pylonmc.pylon.core.item.PylonItem;
import io.github.pylonmc.pylon.core.item.builder.ItemStackBuilder;
import io.github.pylonmc.pylon.core.util.gui.unit.UnitFormat;
import org.bukkit.Material;
import org.bukkit.block.Block;
Expand Down Expand Up @@ -50,13 +50,16 @@ public Item(@NotNull ItemStack stack) {
public FluidVoider(@NotNull Block block, @NotNull BlockCreateContext context) {
super(block);
addEntity("input", FluidPointInteraction.make(context, FluidPointType.INPUT, BlockFace.UP, (float) (mainDisplaySize / 2.0)));
addEntity("main", new SimpleItemDisplay(new ItemDisplayBuilder()
.material(mainMaterial)
addEntity("main", new ItemDisplayBuilder()
.itemStack(ItemStackBuilder.of(mainMaterial)
.addCustomModelDataString(getKey() + ":main")
.build()
)
.transformation(new TransformBuilder()
.scale(mainDisplaySize)
)
.build(getBlock().getLocation().toCenterLocation())
));
);
}

@SuppressWarnings("unused")
Expand Down
Loading
Loading