summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/net/corechg/sparkt/BlockRegister.java31
-rw-r--r--src/main/java/net/corechg/sparkt/SparktInit.java19
-rw-r--r--src/main/java/net/corechg/sparkt/block/DriverMechanical.java9
-rw-r--r--src/main/java/net/corechg/sparkt/block/MachineBlock.java12
-rw-r--r--src/main/java/net/corechg/sparkt/block/MachineFurnace.java9
-rw-r--r--src/main/java/net/corechg/sparkt/block/MachineGrinder.java9
-rw-r--r--src/main/java/net/corechg/sparkt/block/Wire.java11
-rw-r--r--src/main/java/net/corechg/sparkt/block/entity/MachineFurnaceEntity.java102
8 files changed, 202 insertions, 0 deletions
diff --git a/src/main/java/net/corechg/sparkt/BlockRegister.java b/src/main/java/net/corechg/sparkt/BlockRegister.java
new file mode 100644
index 0000000..5833055
--- /dev/null
+++ b/src/main/java/net/corechg/sparkt/BlockRegister.java
@@ -0,0 +1,31 @@
+package net.corechg.sparkt;
+
+import net.minecraft.block.Block;
+import net.minecraft.item.BlockItem;
+import net.minecraft.item.Item;
+import net.minecraft.util.Identifier;
+import net.minecraft.util.registry.Registry;
+import net.corechg.sparkt.block.*;
+
+public class BlockRegister {
+
+ public static final Block MACHINE_BLOCK = new MachineBlock();
+ public static final Block MACHINE_FURNACE = new MachineFurnace();
+ public static final Block DRIVER_MECHANICAL = new DriverMechanical();
+ public static final Block MACHINE_GRINDER = new MachineGrinder();
+ //public static final Block
+
+ public static void register(String modid) {
+ Registry.register(Registry.BLOCK, new Identifier(modid, "machine_block"), MACHINE_BLOCK);
+ Registry.register(Registry.ITEM, new Identifier(modid, "machine_block"), new BlockItem(MACHINE_BLOCK, new Item.Settings()));
+
+ Registry.register(Registry.BLOCK, new Identifier(modid, "machine_furnace"), MACHINE_FURNACE);
+ Registry.register(Registry.ITEM, new Identifier(modid, "machine_furnace"), new BlockItem(MACHINE_FURNACE, new Item.Settings()));
+
+ Registry.register(Registry.BLOCK, new Identifier(modid, "driver_mechanical"), DRIVER_MECHANICAL);
+ Registry.register(Registry.ITEM, new Identifier(modid, "driver_mechanical"), new BlockItem(DRIVER_MECHANICAL, new Item.Settings()));
+
+ Registry.register(Registry.BLOCK, new Identifier(modid, "machine_grinder"), MACHINE_GRINDER);
+ Registry.register(Registry.ITEM, new Identifier(modid, "machine_grinder"), new BlockItem(MACHINE_GRINDER, new Item.Settings()));
+ }
+} \ No newline at end of file
diff --git a/src/main/java/net/corechg/sparkt/SparktInit.java b/src/main/java/net/corechg/sparkt/SparktInit.java
new file mode 100644
index 0000000..2d2d557
--- /dev/null
+++ b/src/main/java/net/corechg/sparkt/SparktInit.java
@@ -0,0 +1,19 @@
+package net.corechg.sparkt;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import net.fabricmc.api.ModInitializer;
+
+public class SparktInit implements ModInitializer {
+
+ public static final Logger LOG = LogManager.getFormatterLogger("Sparkt|Init");
+ public static final String MODID = "sparkt";
+
+ @Override
+ public void onInitialize() {
+ LOG.info("Preparing to spark a reaction!");
+ BlockRegister.register(MODID);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/net/corechg/sparkt/block/DriverMechanical.java b/src/main/java/net/corechg/sparkt/block/DriverMechanical.java
new file mode 100644
index 0000000..3198120
--- /dev/null
+++ b/src/main/java/net/corechg/sparkt/block/DriverMechanical.java
@@ -0,0 +1,9 @@
+package net.corechg.sparkt.block;
+
+public class DriverMechanical extends MachineBlock{
+
+ public DriverMechanical() {
+ super();
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/net/corechg/sparkt/block/MachineBlock.java b/src/main/java/net/corechg/sparkt/block/MachineBlock.java
new file mode 100644
index 0000000..7e0c7bb
--- /dev/null
+++ b/src/main/java/net/corechg/sparkt/block/MachineBlock.java
@@ -0,0 +1,12 @@
+package net.corechg.sparkt.block;
+
+import net.minecraft.block.Block;
+import net.minecraft.block.Material;
+
+public class MachineBlock extends Block{
+
+ public MachineBlock() {
+ super(Settings.of(Material.METAL));
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/net/corechg/sparkt/block/MachineFurnace.java b/src/main/java/net/corechg/sparkt/block/MachineFurnace.java
new file mode 100644
index 0000000..f7556ca
--- /dev/null
+++ b/src/main/java/net/corechg/sparkt/block/MachineFurnace.java
@@ -0,0 +1,9 @@
+package net.corechg.sparkt.block;
+
+public class MachineFurnace extends MachineBlock{
+
+ public MachineFurnace() {
+ super();
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/net/corechg/sparkt/block/MachineGrinder.java b/src/main/java/net/corechg/sparkt/block/MachineGrinder.java
new file mode 100644
index 0000000..49c877d
--- /dev/null
+++ b/src/main/java/net/corechg/sparkt/block/MachineGrinder.java
@@ -0,0 +1,9 @@
+package net.corechg.sparkt.block;
+
+public class MachineGrinder extends MachineBlock{
+
+ public MachineGrinder() {
+ super();
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/net/corechg/sparkt/block/Wire.java b/src/main/java/net/corechg/sparkt/block/Wire.java
new file mode 100644
index 0000000..51f9178
--- /dev/null
+++ b/src/main/java/net/corechg/sparkt/block/Wire.java
@@ -0,0 +1,11 @@
+package net.corechg.sparkt.block;
+
+import net.minecraft.block.Block;
+
+public class Wire extends Block{
+
+ public Wire(Settings settings) {
+ super(settings);
+ }
+
+} \ No newline at end of file
diff --git a/src/main/java/net/corechg/sparkt/block/entity/MachineFurnaceEntity.java b/src/main/java/net/corechg/sparkt/block/entity/MachineFurnaceEntity.java
new file mode 100644
index 0000000..edde32b
--- /dev/null
+++ b/src/main/java/net/corechg/sparkt/block/entity/MachineFurnaceEntity.java
@@ -0,0 +1,102 @@
+package net.corechg.sparkt.block.entity;
+
+import net.minecraft.block.entity.BlockEntity;
+import net.minecraft.block.entity.BlockEntityType;
+import net.minecraft.util.Tickable;
+
+import java.util.ArrayList;
+
+import net.corechg.transit.network.packet.IStaticPacket;
+import net.corechg.transit.network.system.INode;
+import net.corechg.transit.network.system.ISystem;
+import net.corechg.transit.network.system.swap.IAcceptorNode;
+
+public class MachineFurnaceEntity extends BlockEntity implements IAcceptorNode, Tickable {
+
+ private static final String[] GROUPS = { "ENERGY" };
+ private int energyCap = 20000;
+ private int energyStored = 0;
+ private ArrayList<INode> connected = new ArrayList<INode>(0);
+
+ public MachineFurnaceEntity(BlockEntityType<?> type) {
+ super(type);
+ }
+
+ @Override
+ public String[] groupsProvided() {
+ return GROUPS;
+ }
+
+ @Override
+ public ISystem getSystem() {
+ return null;
+ }
+
+ @Override
+ public Object getData(String groupID) {
+ if (groupID == "ENERGY") {
+ return energyStored;
+ }
+ return null;
+ }
+
+ @Override
+ public void setData(Object dat, String groupID) {
+ if (groupID == "ENERGY") {
+ int tmp = (int) dat;
+
+ energyStored = tmp > energyCap ? energyCap : tmp;
+ }
+
+ }
+
+ @Override
+ public INode[] getConnections() {
+ return (INode[]) connected.toArray();
+ }
+
+ @Override
+ public void tick() {
+
+ }
+
+ @Override
+ public boolean linkProvider(INode requester, String group) {
+ if (group == "ENERGY") {
+ connected.add(requester);
+ }
+ return false;
+ }
+
+ @Override
+ public boolean unlinkProvider(INode toUnlink) {
+ for(int i = 0; i < connected.size(); i++) {
+ if(toUnlink.equals(connected.get(i))) {
+ connected.remove(i);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public INode[] getProviders() {
+ return getConnections();
+ }
+
+ @Override
+ public <T> boolean accept(IStaticPacket<T> packet, String group) {
+ if (group == "ENERGY") {
+ int add = (int) packet.getType().toBase(packet, group);
+ if(add + energyStored > energyCap) {
+ return false;
+ }
+ else {
+ energyStored += add;
+ return true;
+ }
+ }
+ return false;
+ }
+
+} \ No newline at end of file