Skip to content
Open
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
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
## What is Pylon?
Pylon is an upcoming Minecraft Java plugin that will hugely expand vanilla gameplay with new content, including electric machines, huge multiblocks, a fully-fledged fluid system, a complex smelting system, extensive automation options and much, an (actually good) research system, and much more. It is intended to supersede Slimefun.

Pylon uses an addon system, meaning anyone can add content to Pylon by writing an addon for it! It also comes with a number of really useful features, such as:
Pylon uses an addon system, meaning anyone can add content to Pylon by writing an addon for it! It also comes with a number of really useful features, such as
- First-class translation support, meaning each player can select their own language.
- Extensive configuration options, including per-machine configuration.
- An intuitive and user-friendly guide to help players figure out the plugin.
Expand All @@ -11,7 +11,7 @@ Join our Discord: https://discord.gg/4tMAnBAacW
Visit our website: https://pylonmc.github.io/

## Warning
PYLON IS CURRENTLY EXPERIMENTAL. ONLY RUN IT ON A TEST SERVER THAT YOU ARE WILLING TO DELETE. THE NEXT PYLON VERSION WILL PROBABLY NOT BE COMPATIBLE WITH THE PREVIOUS ONE. IF YOU INSTALL PYLON SOMEWHERE YOU SHOULDN'T AND END UP LOSING DATA, WE WILL POINT AND LAUGH AT YOU.
PYLON IS CURRENTLY EXPERIMENTAL. ONLY RUN IT ON A TEST SERVER THAT YOU ARE WILLING TO DELETE. THE NEXT PYLON VERSION WILL PROBABLY NOT BE COMPATIBLE WITH THE PREVIOUS ONE. IF YOU INSTALL PYLON SOMEWHERE YOU SHOULDN'T AND END UP LOSING DATA, WE WILL POINT AND LAUGH AT YOU

## Pylon in pictures
<img width="250" alt="using-smeltery" src="https://github.com/user-attachments/assets/b8a7ba3c-9103-46a5-ab43-f31de08dd492" />
Expand Down
8 changes: 5 additions & 3 deletions src/main/java/io/github/pylonmc/pylon/base/BaseBlocks.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
import io.github.pylonmc.pylon.base.content.building.Immobilizer;
import io.github.pylonmc.pylon.base.content.building.Pedestal;
import io.github.pylonmc.pylon.base.content.components.*;
import io.github.pylonmc.pylon.base.content.machines.cargo.CargoExtractor;
import io.github.pylonmc.pylon.base.content.machines.cargo.CargoInserter;
import io.github.pylonmc.pylon.base.content.machines.cargo.CargoBuffer;
import io.github.pylonmc.pylon.base.content.machines.cargo.*;
import io.github.pylonmc.pylon.base.content.machines.diesel.machines.*;
import io.github.pylonmc.pylon.base.content.machines.diesel.production.Biorefinery;
import io.github.pylonmc.pylon.base.content.machines.diesel.production.Fermenter;
Expand Down Expand Up @@ -149,5 +147,9 @@ public static void initialize() {
PylonBlock.register(BaseKeys.CARGO_BUFFER, Material.STRUCTURE_VOID, CargoBuffer.class);
PylonBlock.register(BaseKeys.CARGO_EXTRACTOR, Material.STRUCTURE_VOID, CargoExtractor.class);
PylonBlock.register(BaseKeys.CARGO_INSERTER, Material.STRUCTURE_VOID, CargoInserter.class);
PylonBlock.register(BaseKeys.CARGO_SPLITTER, Material.STRUCTURE_VOID, CargoSplitter.class);
PylonBlock.register(BaseKeys.CARGO_MERGER, Material.STRUCTURE_VOID, CargoMerger.class);
PylonBlock.register(BaseKeys.CARGO_VALVE, Material.STRUCTURE_VOID, CargoValve.class);
PylonBlock.register(BaseKeys.CARGO_FILTER, Material.STRUCTURE_VOID, CargoFilter.class);
}
}
36 changes: 33 additions & 3 deletions src/main/java/io/github/pylonmc/pylon/base/BaseItems.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@
import io.github.pylonmc.pylon.base.content.combat.IceArrow;
import io.github.pylonmc.pylon.base.content.combat.ReactivatedWitherSkull;
import io.github.pylonmc.pylon.base.content.combat.RecoilArrow;
import io.github.pylonmc.pylon.base.content.machines.cargo.CargoBuffer;
import io.github.pylonmc.pylon.base.content.machines.cargo.CargoExtractor;
import io.github.pylonmc.pylon.base.content.machines.cargo.CargoInserter;
import io.github.pylonmc.pylon.base.content.machines.cargo.*;
import io.github.pylonmc.pylon.base.content.machines.diesel.machines.*;
import io.github.pylonmc.pylon.base.content.machines.diesel.production.Biorefinery;
import io.github.pylonmc.pylon.base.content.machines.diesel.production.Fermenter;
Expand Down Expand Up @@ -2014,6 +2012,38 @@ private BaseItems() {
BasePages.CARGO.addItem(CARGO_INSERTER);
}

public static final ItemStack CARGO_SPLITTER = ItemStackBuilder.pylon(Material.STRUCTURE_VOID, BaseKeys.CARGO_SPLITTER)
.set(DataComponentTypes.ITEM_MODEL, Material.STRIPPED_CRIMSON_HYPHAE.getKey())
.build();
static {
PylonItem.register(CargoSplitter.Item.class, CARGO_SPLITTER, BaseKeys.CARGO_SPLITTER);
BasePages.CARGO.addItem(CARGO_SPLITTER);
}

public static final ItemStack CARGO_MERGER = ItemStackBuilder.pylon(Material.STRUCTURE_VOID, BaseKeys.CARGO_MERGER)
.set(DataComponentTypes.ITEM_MODEL, Material.STRIPPED_WARPED_HYPHAE.getKey())
.build();
static {
PylonItem.register(CargoSplitter.Item.class, CARGO_MERGER, BaseKeys.CARGO_MERGER);
BasePages.CARGO.addItem(CARGO_MERGER);
}

public static final ItemStack CARGO_VALVE = ItemStackBuilder.pylon(Material.STRUCTURE_VOID, BaseKeys.CARGO_VALVE)
.set(DataComponentTypes.ITEM_MODEL, Material.WHITE_CONCRETE.getKey())
.build();
static {
PylonItem.register(CargoValve.Item.class, CARGO_VALVE, BaseKeys.CARGO_VALVE);
BasePages.CARGO.addItem(CARGO_VALVE);
}

public static final ItemStack CARGO_FILTER = ItemStackBuilder.pylon(Material.STRUCTURE_VOID, BaseKeys.CARGO_FILTER)
.set(DataComponentTypes.ITEM_MODEL, Material.PINK_TERRACOTTA.getKey())
.build();
static {
PylonItem.register(CargoValve.Item.class, CARGO_FILTER, BaseKeys.CARGO_FILTER);
BasePages.CARGO.addItem(CARGO_FILTER);
}

// Calling this method forces all the static blocks to run, which initializes our items
public static void initialize() {
}
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/io/github/pylonmc/pylon/base/BaseKeys.java
Original file line number Diff line number Diff line change
Expand Up @@ -321,4 +321,8 @@ public class BaseKeys {
public static final NamespacedKey CARGO_DUCT = baseKey("cargo_duct");
public static final NamespacedKey CARGO_EXTRACTOR = baseKey("cargo_extractor");
public static final NamespacedKey CARGO_INSERTER = baseKey("cargo_inserter");
public static final NamespacedKey CARGO_SPLITTER = baseKey("cargo_splitter");
public static final NamespacedKey CARGO_MERGER = baseKey("cargo_merger");
public static final NamespacedKey CARGO_VALVE = baseKey("cargo_valve");
public static final NamespacedKey CARGO_FILTER = baseKey("cargo_filter");
}
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,10 @@ public boolean setFluid(@NotNull PylonFluid fluid, double amount) {
}

public void setFluidType(PylonFluid fluid) {
if (this.fluid == fluid) {
return;
}

if (this.fluid != null) {
deleteFluidBuffer(this.fluid);
getFluidDisplay().setTransformationMatrix(new TransformBuilder()
Expand Down
Loading
Loading