summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyle Gunger <kgunger12@gmail.com>2024-11-03 02:40:23 -0500
committerKyle Gunger <kgunger12@gmail.com>2024-11-03 02:40:23 -0500
commit8a6be0ce81d935551ab2ebc9c4e7d41b88297957 (patch)
treeed194dd70239f4a022d8ee824876cdbcd5c950c7
parentf6ecfac78b963a694a13891df06413df104b19fb (diff)
Update to currentHEADmain
-rw-r--r--.factorypath12
-rw-r--r--.gitattributes9
-rw-r--r--build.gradle36
-rw-r--r--gradle.properties12
-rw-r--r--gradle/wrapper/gradle-wrapper.jarbin63375 -> 43583 bytes
-rw-r--r--gradle/wrapper/gradle-wrapper.properties2
-rw-r--r--src/client/java/net/cshift/mc/sparkt/SparktClientInit.java31
-rw-r--r--src/main/java/net/cshift/mc/sparkt/SparktInit.java32
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/Blocks.java50
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/DriverElectric.java31
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/DriverMechanical.java32
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/MachineBlock.java67
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/MachineFrame.java17
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/MachineFurnace.java23
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/MachineGrinder.java23
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/Wire.java44
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/entity/BlockEntityTypes.java36
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/entity/MachineDriverEntity.java (renamed from src/main/java/net/cshift/sparkt/block/entity/MachineFurnaceEntity.java)37
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/entity/MachineNodeEntity.java (renamed from src/main/java/net/cshift/sparkt/block/entity/MachineNode.java)14
-rw-r--r--src/main/java/net/cshift/mc/sparkt/block/entity/WireEntity.java82
-rw-r--r--src/main/java/net/cshift/mc/sparkt/item/HeatingElement.java11
-rw-r--r--src/main/java/net/cshift/mc/sparkt/item/IngotTungsten.java11
-rw-r--r--src/main/java/net/cshift/mc/sparkt/item/Items.java20
-rw-r--r--src/main/java/net/cshift/mc/sparkt/item/RawTungsten.java11
-rw-r--r--src/main/java/net/cshift/mc/sparkt/netcode/ClientRenderNetwork.java5
-rw-r--r--src/main/java/net/cshift/mc/sparkt/netcode/NetConstants.java10
-rw-r--r--src/main/java/net/cshift/mc/sparkt/netcode/ServerRenderNetwork.java10
-rw-r--r--src/main/java/net/cshift/mc/sparkt/netcode/payload/DeliveryPayload.java22
-rw-r--r--src/main/java/net/cshift/mc/sparkt/netcode/payload/ProgressPayload.java19
-rw-r--r--src/main/java/net/cshift/mc/sparkt/netcode/payload/TransitPayload.java25
-rw-r--r--src/main/java/net/cshift/sparkt/SparktInit.java22
-rw-r--r--src/main/java/net/cshift/sparkt/block/Blocks.java32
-rw-r--r--src/main/java/net/cshift/sparkt/block/DriverMechanical.java9
-rw-r--r--src/main/java/net/cshift/sparkt/block/MachineBlock.java28
-rw-r--r--src/main/java/net/cshift/sparkt/block/MachineFurnace.java9
-rw-r--r--src/main/java/net/cshift/sparkt/block/MachineGrinder.java9
-rw-r--r--src/main/java/net/cshift/sparkt/block/Wire.java11
-rw-r--r--src/main/java/net/cshift/sparkt/block/entity/BlockEntityTypes.java22
-rw-r--r--src/main/resources/assets/sparkt/blockstates/driver_electric.json30
-rw-r--r--src/main/resources/assets/sparkt/blockstates/driver_mechanical.json29
-rw-r--r--src/main/resources/assets/sparkt/blockstates/machine_block.json5
-rw-r--r--src/main/resources/assets/sparkt/blockstates/machine_frame.json34
-rw-r--r--src/main/resources/assets/sparkt/blockstates/machine_furnace.json35
-rw-r--r--src/main/resources/assets/sparkt/blockstates/machine_grinder.json35
-rw-r--r--src/main/resources/assets/sparkt/blockstates/ore_deepslate_tungsten.json7
-rw-r--r--src/main/resources/assets/sparkt/blockstates/ore_tungsten.json7
-rw-r--r--src/main/resources/assets/sparkt/lang/en_us.json15
-rw-r--r--src/main/resources/assets/sparkt/models/block/driver.json9
-rw-r--r--src/main/resources/assets/sparkt/models/block/driver_electric.json6
-rw-r--r--src/main/resources/assets/sparkt/models/block/driver_mechanical.json11
-rw-r--r--src/main/resources/assets/sparkt/models/block/machine_frame.json (renamed from src/main/resources/assets/sparkt/models/block/machine_block.json)0
-rw-r--r--src/main/resources/assets/sparkt/models/block/machine_furnace_on.json6
-rw-r--r--src/main/resources/assets/sparkt/models/block/machine_grinder_on.json6
-rw-r--r--src/main/resources/assets/sparkt/models/block/ore_deepslate_tungsten.json6
-rw-r--r--src/main/resources/assets/sparkt/models/block/ore_tungsten.json6
-rw-r--r--src/main/resources/assets/sparkt/models/item/driver_electric.json3
-rw-r--r--src/main/resources/assets/sparkt/models/item/heating_element.json6
-rw-r--r--src/main/resources/assets/sparkt/models/item/ingot_tungsten.json6
-rw-r--r--src/main/resources/assets/sparkt/models/item/machine_block.json3
-rw-r--r--src/main/resources/assets/sparkt/models/item/machine_frame.json3
-rw-r--r--src/main/resources/assets/sparkt/models/item/ore_deepslate_tungsten.json3
-rw-r--r--src/main/resources/assets/sparkt/models/item/ore_tungsten.json3
-rw-r--r--src/main/resources/assets/sparkt/models/item/raw_tungsten.json6
-rw-r--r--src/main/resources/assets/sparkt/textures/block/driver_electric_side.pngbin0 -> 4928 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/driver_mechanical_side.pngbin0 -> 4703 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/driver_side.pngbin356 -> 0 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/driver_top.pngbin247 -> 4558 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/furnace_side.pngbin272 -> 4818 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/furnace_side_on.pngbin0 -> 9815 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/furnace_side_on.png.mcmeta5
-rw-r--r--src/main/resources/assets/sparkt/textures/block/grinder_side.pngbin283 -> 4610 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/grinder_side_on.pngbin0 -> 8754 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/grinder_side_on.png.mcmeta5
-rw-r--r--src/main/resources/assets/sparkt/textures/block/machine_bottom.pngbin196 -> 4482 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/machine_side.pngbin207 -> 4519 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/machine_top.pngbin196 -> 4487 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/ore_deepslate_tungsten.pngbin0 -> 7246 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/block/ore_tungsten.pngbin0 -> 7201 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/item/heating_element.pngbin0 -> 740 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/item/ingot_tungsten.pngbin0 -> 4469 bytes
-rw-r--r--src/main/resources/assets/sparkt/textures/item/raw_tungsten.pngbin0 -> 876 bytes
-rw-r--r--src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json7
-rw-r--r--src/main/resources/data/minecraft/tags/block/needs_iron_tool.json7
-rw-r--r--src/main/resources/data/sparkt/loot_table/blocks/machine_frame.json (renamed from src/main/resources/data/sparkt/loot_tables/block/machine_block.json)2
-rw-r--r--src/main/resources/data/sparkt/loot_table/blocks/ore_deepslate_tungsten.json52
-rw-r--r--src/main/resources/data/sparkt/loot_table/blocks/ore_tungsten.json52
-rw-r--r--src/main/resources/data/sparkt/recipe/heating_element.json23
-rw-r--r--src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_ore.json13
-rw-r--r--src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_ore_deepslate.json13
-rw-r--r--src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_raw.json13
-rw-r--r--src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_ore.json13
-rw-r--r--src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_ore_deepslate.json13
-rw-r--r--src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_raw.json13
-rw-r--r--src/main/resources/data/sparkt/recipe/machine_frame.json20
-rw-r--r--src/main/resources/data/sparkt/recipe/machine_furnace.json26
-rw-r--r--src/main/resources/data/sparkt/recipe/machine_grinder.json29
-rw-r--r--src/main/resources/fabric.mod.json13
97 files changed, 1241 insertions, 234 deletions
diff --git a/.factorypath b/.factorypath
new file mode 100644
index 0000000..27b79f6
--- /dev/null
+++ b/.factorypath
@@ -0,0 +1,12 @@
+<factorypath>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/modules-2/files-2.1/io.github.llamalad7/mixinextras-fabric/0.4.1/8d1a9e96afb990367fa1f904d17580d164da72e3/mixinextras-fabric-0.4.1.jar" enabled="true" runInBatchMode="false"/>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.15.2+mixin.0.8.7/2af2f021d8e02a0220dc27a7a72b4666d66d44ca/sponge-mixin-0.15.2+mixin.0.8.7.jar" enabled="true" runInBatchMode="false"/>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm/9.6/aa205cf0a06dbd8e04ece91c0b37c3f5d567546a/asm-9.6.jar" enabled="true" runInBatchMode="false"/>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/modules-2/files-2.1/net.fabricmc/mapping-io/0.2.1/2a1aeedce104191bbb9e39e26abfbfeaf9b0590b/mapping-io-0.2.1.jar" enabled="true" runInBatchMode="false"/>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.6/f1a9e5508eff490744144565c47326c8648be309/asm-commons-9.6.jar" enabled="true" runInBatchMode="false"/>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.6/c0cdda9d211e965d2a4448aa3fd86110f2f8c2de/asm-tree-9.6.jar" enabled="true" runInBatchMode="false"/>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.6/9ce6c7b174bd997fc2552dff47964546bd7a5ec3/asm-analysis-9.6.jar" enabled="true" runInBatchMode="false"/>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/modules-2/files-2.1/net.fabricmc/fabric-mixin-compile-extensions/0.6.0/6fda0c85c419f0a259da017a1424f27507eb30f0/fabric-mixin-compile-extensions-0.6.0.jar" enabled="true" runInBatchMode="false"/>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/fabric-loom/1.21.1/net.fabricmc.yarn.1_21_1.1.21.1+build.3-v2/mappings.jar" enabled="true" runInBatchMode="false"/>
+ <factorypathentry kind="EXTJAR" id="/home/kyle/.gradle/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.6/f77caf84eb93786a749b2baa40865b9613e3eaee/asm-util-9.6.jar" enabled="true" runInBatchMode="false"/>
+</factorypath>
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..097f9f9
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,9 @@
+#
+# https://help.github.com/articles/dealing-with-line-endings/
+#
+# Linux start script should use lf
+/gradlew text eol=lf
+
+# These are Windows script files and should use crlf
+*.bat text eol=crlf
+
diff --git a/build.gradle b/build.gradle
index 7ba8032..933883c 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,5 +1,5 @@
plugins {
- id 'fabric-loom' version '1.4-SNAPSHOT'
+ id 'fabric-loom' version '1.8-SNAPSHOT'
id 'maven-publish'
}
@@ -16,9 +16,7 @@ repositories {
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
// for more information about repositories.
- maven {
- url "https://git.cshift.net/api/packages/CircleShift/maven"
- }
+ mavenLocal()
}
loom {
@@ -42,12 +40,8 @@ dependencies {
// Fabric API. This is technically optional, but you probably want it anyway.
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
- // Uncomment the following line to enable the deprecated Fabric API modules.
- // These are included in the Fabric API production distribution and allow you to update your mod to the latest modules at a later more convenient time.
-
- // modImplementation "net.fabricmc.fabric-api:fabric-api-deprecated:${project.fabric_version}"
-
- modImplementation "net.cshift.api:TransitAPI:3.0.0-alpha-2"
+ // Transit API
+ modImplementation "net.cshift.mc:transit-api:3.0.1-rc-1"
}
processResources {
@@ -59,7 +53,7 @@ processResources {
}
tasks.withType(JavaCompile).configureEach {
- it.options.release = 17
+ it.options.release = 21
}
java {
@@ -68,8 +62,8 @@ java {
// If you remove this line, sources will not be generated.
withSourcesJar()
- sourceCompatibility = JavaVersion.VERSION_17
- targetCompatibility = JavaVersion.VERSION_17
+ sourceCompatibility = JavaVersion.VERSION_21
+ targetCompatibility = JavaVersion.VERSION_21
}
jar {
@@ -81,7 +75,8 @@ jar {
// configure the maven publication
publishing {
publications {
- mavenJava(MavenPublication) {
+ create("mavenJava", MavenPublication) {
+ artifactId = project.archives_base_name
from components.java
}
}
@@ -92,18 +87,5 @@ publishing {
// Notice: This block does NOT have the same function as the block in the top level.
// The repositories here will be used for publishing your artifact, not for
// retrieving dependencies.
- maven {
- name = "CShift"
- url = uri("https://git.cshift.net/api/packages/CircleShift/maven")
-
- credentials(HttpHeaderCredentials) {
- name = "Authorization"
- value = "token ${auth_token}"
- }
-
- authentication {
- header(HttpHeaderAuthentication)
- }
- }
}
}
diff --git a/gradle.properties b/gradle.properties
index 4ffe135..17a8bfc 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -4,14 +4,14 @@ org.gradle.parallel=true
# Fabric Properties
# check these on https://fabricmc.net/develop
-minecraft_version=1.20.2
-yarn_mappings=1.20.2+build.1
-loader_version=0.14.22
+minecraft_version=1.21.1
+yarn_mappings=1.21.1+build.3
+loader_version=0.16.2
# Mod Properties
-mod_version=0.0.2
-maven_group=net.cshift
+mod_version=0.0.3
+maven_group=net.cshift.mc
archives_base_name=sparkt
# Dependencies
-fabric_version=0.89.1+1.20.2
+fabric_version=0.102.1+1.21.1
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 033e24c..a4b76b9 100644
--- a/gradle/wrapper/gradle-wrapper.jar
+++ b/gradle/wrapper/gradle-wrapper.jar
Binary files differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index ac72c34..df97d72 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
diff --git a/src/client/java/net/cshift/mc/sparkt/SparktClientInit.java b/src/client/java/net/cshift/mc/sparkt/SparktClientInit.java
new file mode 100644
index 0000000..deedebb
--- /dev/null
+++ b/src/client/java/net/cshift/mc/sparkt/SparktClientInit.java
@@ -0,0 +1,31 @@
+package net.cshift.mc.sparkt;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import net.cshift.mc.sparkt.netcode.payload.DeliveryPayload;
+import net.cshift.mc.sparkt.netcode.payload.ProgressPayload;
+import net.cshift.mc.sparkt.netcode.payload.TransitPayload;
+import net.fabricmc.api.ClientModInitializer;
+import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
+
+public class SparktClientInit implements ClientModInitializer {
+
+ public static final Logger LOG = LogManager.getFormatterLogger("Sparkt/Client/Init");
+
+ @Override
+ public void onInitializeClient() {
+ LOG.info("Closely watching to see the warm glow");
+ ClientPlayNetworking.registerGlobalReceiver(DeliveryPayload.ID, (payload, context) -> {
+ LOG.info("Got some weird delivery packet! " + payload.uuid());
+ });
+
+ ClientPlayNetworking.registerGlobalReceiver(ProgressPayload.ID, (payload, context) -> {
+ LOG.info("Got some weird progress packet! " + payload.map());
+ });
+
+ ClientPlayNetworking.registerGlobalReceiver(TransitPayload.ID, (payload, context) -> {
+ LOG.info("Got some weird transit packet!" + payload.uuid());
+ });
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/SparktInit.java b/src/main/java/net/cshift/mc/sparkt/SparktInit.java
new file mode 100644
index 0000000..f35c094
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/SparktInit.java
@@ -0,0 +1,32 @@
+package net.cshift.mc.sparkt;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
+import net.cshift.mc.sparkt.block.Blocks;
+import net.cshift.mc.sparkt.block.entity.BlockEntityTypes;
+import net.cshift.mc.sparkt.item.Items;
+import net.cshift.mc.sparkt.netcode.payload.DeliveryPayload;
+import net.cshift.mc.sparkt.netcode.payload.TransitPayload;
+import net.fabricmc.api.ModInitializer;
+import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry;
+
+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!");
+ Blocks.register();
+ Items.register();
+ BlockEntityTypes.register();
+
+ PayloadTypeRegistry.playS2C().register(DeliveryPayload.ID, DeliveryPayload.CODEC);
+ // PayloadTypeRegistry.playS2C().register(ProgressPayload.ID, ProgressPayload.CODEC);
+ PayloadTypeRegistry.playS2C().register(TransitPayload.ID, TransitPayload.CODEC);
+ }
+
+
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/block/Blocks.java b/src/main/java/net/cshift/mc/sparkt/block/Blocks.java
new file mode 100644
index 0000000..e7cdd47
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/Blocks.java
@@ -0,0 +1,50 @@
+package net.cshift.mc.sparkt.block;
+
+import net.cshift.mc.sparkt.SparktInit;
+import net.minecraft.block.Block;
+import net.minecraft.block.ExperienceDroppingBlock;
+import net.minecraft.block.AbstractBlock.Settings;
+import net.minecraft.item.BlockItem;
+import net.minecraft.item.Item;
+import net.minecraft.util.Identifier;
+import net.minecraft.util.math.intprovider.ConstantIntProvider;
+import net.minecraft.registry.*;
+
+public class Blocks {
+
+ public static final Block MACHINE_FRAME = new MachineFrame(Settings.create().strength(1, 1));
+ public static final Block MACHINE_FURNACE = new MachineFurnace(Settings.create().strength(1, 1));
+ public static final Block DRIVER_MECHANICAL = new DriverMechanical(Settings.create().strength(1, 1));
+ public static final Block DRIVER_ELECTRIC = new DriverElectric(Settings.create().strength(1, 1));
+ public static final Block MACHINE_GRINDER = new MachineGrinder(Settings.create().strength(1, 1));
+ public static final Block WIRE = new Wire(Settings.create().strength(1, 1));
+
+ public static final Block ORE_TUNGSTEN = new ExperienceDroppingBlock(ConstantIntProvider.create(0), Settings.create().requiresTool().strength(3.0f, 3.0f));
+ public static final Block ORE_DEEPSLATE_TUNGSTEN = new ExperienceDroppingBlock(ConstantIntProvider.create(0), Settings.create().requiresTool().strength(3.0f, 3.0f));
+
+ public static void register() {
+ Registry.register(Registries.BLOCK, Identifier.of(SparktInit.MODID, "machine_frame"), MACHINE_FRAME);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "machine_frame"), new BlockItem(MACHINE_FRAME, new Item.Settings()));
+
+ Registry.register(Registries.BLOCK, Identifier.of(SparktInit.MODID, "machine_furnace"), MACHINE_FURNACE);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "machine_furnace"), new BlockItem(MACHINE_FURNACE, new Item.Settings()));
+
+ Registry.register(Registries.BLOCK, Identifier.of(SparktInit.MODID, "machine_grinder"), MACHINE_GRINDER);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "machine_grinder"), new BlockItem(MACHINE_GRINDER, new Item.Settings()));
+
+ Registry.register(Registries.BLOCK, Identifier.of(SparktInit.MODID, "driver_mechanical"), DRIVER_MECHANICAL);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "driver_mechanical"), new BlockItem(DRIVER_MECHANICAL, new Item.Settings()));
+
+ Registry.register(Registries.BLOCK, Identifier.of(SparktInit.MODID, "driver_electric"), DRIVER_ELECTRIC);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "driver_electric"), new BlockItem(DRIVER_ELECTRIC, new Item.Settings()));
+
+ Registry.register(Registries.BLOCK, Identifier.of(SparktInit.MODID, "ore_tungsten"), ORE_TUNGSTEN);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "ore_tungsten"), new BlockItem(ORE_TUNGSTEN, new Item.Settings()));
+
+ Registry.register(Registries.BLOCK, Identifier.of(SparktInit.MODID, "ore_deepslate_tungsten"), ORE_DEEPSLATE_TUNGSTEN);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "ore_deepslate_tungsten"), new BlockItem(ORE_DEEPSLATE_TUNGSTEN, new Item.Settings()));
+
+ Registry.register(Registries.BLOCK, Identifier.of(SparktInit.MODID, "wire"), WIRE);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "wire"), new BlockItem(WIRE, new Item.Settings()));
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/block/DriverElectric.java b/src/main/java/net/cshift/mc/sparkt/block/DriverElectric.java
new file mode 100644
index 0000000..31ed63b
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/DriverElectric.java
@@ -0,0 +1,31 @@
+package net.cshift.mc.sparkt.block;
+
+import com.mojang.serialization.MapCodec;
+
+import net.cshift.mc.sparkt.block.entity.MachineDriverEntity;
+import net.minecraft.block.BlockState;
+import net.minecraft.block.entity.BlockEntity;
+import net.minecraft.item.ItemPlacementContext;
+import net.minecraft.util.math.BlockPos;
+
+public class DriverElectric extends MachineBlock{
+ public static final MapCodec<DriverElectric> CODEC = createCodec(DriverElectric::new);
+
+ public MapCodec<DriverElectric> getCodec() {
+ return CODEC;
+ }
+
+ public DriverElectric(Settings settings) {
+ super(settings);
+ }
+
+ @Override
+ public BlockEntity createBlockEntity(BlockPos var1, BlockState var2) {
+ return new MachineDriverEntity(var1, var2);
+ }
+
+ @Override
+ public BlockState getPlacementState(ItemPlacementContext ctx) {
+ return (BlockState)this.getDefaultState().with(FACING, ctx.getPlayerLookDirection().getOpposite());
+ }
+} \ No newline at end of file
diff --git a/src/main/java/net/cshift/mc/sparkt/block/DriverMechanical.java b/src/main/java/net/cshift/mc/sparkt/block/DriverMechanical.java
new file mode 100644
index 0000000..c1f5954
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/DriverMechanical.java
@@ -0,0 +1,32 @@
+package net.cshift.mc.sparkt.block;
+
+import com.mojang.serialization.MapCodec;
+
+import net.cshift.mc.sparkt.block.entity.MachineDriverEntity;
+import net.minecraft.block.BlockState;
+import net.minecraft.block.entity.BlockEntity;
+import net.minecraft.item.ItemPlacementContext;
+import net.minecraft.util.math.BlockPos;
+
+public class DriverMechanical extends MachineBlock{
+
+ public static final MapCodec<DriverMechanical> CODEC = createCodec(DriverMechanical::new);
+
+ public MapCodec<DriverMechanical> getCodec() {
+ return CODEC;
+ }
+
+ public DriverMechanical(Settings settings) {
+ super(settings);
+ }
+
+ @Override
+ public BlockEntity createBlockEntity(BlockPos var1, BlockState var2) {
+ return new MachineDriverEntity(var1, var2);
+ }
+
+ @Override
+ public BlockState getPlacementState(ItemPlacementContext ctx) {
+ return (BlockState)this.getDefaultState().with(FACING, ctx.getPlayerLookDirection().getOpposite());
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/block/MachineBlock.java b/src/main/java/net/cshift/mc/sparkt/block/MachineBlock.java
new file mode 100644
index 0000000..92e95f2
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/MachineBlock.java
@@ -0,0 +1,67 @@
+package net.cshift.mc.sparkt.block;
+
+import com.mojang.serialization.MapCodec;
+
+import net.cshift.mc.sparkt.block.entity.MachineNodeEntity;
+import net.minecraft.block.AbstractBlock;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockRenderType;
+import net.minecraft.block.BlockState;
+import net.minecraft.block.BlockWithEntity;
+import net.minecraft.block.FacingBlock;
+import net.minecraft.block.entity.BlockEntity;
+import net.minecraft.entity.LivingEntity;
+import net.minecraft.item.ItemPlacementContext;
+import net.minecraft.item.ItemStack;
+import net.minecraft.state.StateManager;
+import net.minecraft.state.property.*;
+import net.minecraft.util.math.BlockPos;
+import net.minecraft.util.math.Direction;
+import net.minecraft.world.World;
+
+public abstract class MachineBlock extends BlockWithEntity {
+ public static final DirectionProperty FACING;
+ public static final BooleanProperty ACTIVE;
+
+ public MachineBlock(AbstractBlock.Settings settings) {
+ super(settings);
+ this.setDefaultState(
+ this.stateManager
+ .getDefaultState()
+ .with(FACING, Direction.NORTH)
+ .with(ACTIVE, false)
+ );
+ }
+
+ @Override
+ public BlockRenderType getRenderType(BlockState state) {
+ return BlockRenderType.MODEL;
+ }
+
+ @Override
+ public BlockEntity createBlockEntity(BlockPos var1, BlockState var2) {
+ return new MachineNodeEntity(var1, var2);
+ }
+
+ @Override
+ public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) {
+ super.onPlaced(world, pos, state, placer, itemStack);
+ }
+
+ public BlockState getPlacementState(ItemPlacementContext ctx) {
+ return (BlockState)this.getDefaultState().with(FACING, ctx.getHorizontalPlayerFacing().getOpposite());
+ }
+
+ @Override
+ protected void appendProperties(StateManager.Builder<Block, BlockState> builder) {
+ super.appendProperties(builder);
+ builder.add(new Property[]{FACING, ACTIVE});
+ }
+
+ protected abstract MapCodec<? extends BlockWithEntity> getCodec();
+
+ static {
+ FACING = FacingBlock.FACING;
+ ACTIVE = Properties.LIT;
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/block/MachineFrame.java b/src/main/java/net/cshift/mc/sparkt/block/MachineFrame.java
new file mode 100644
index 0000000..10f6314
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/MachineFrame.java
@@ -0,0 +1,17 @@
+package net.cshift.mc.sparkt.block;
+
+import com.mojang.serialization.MapCodec;
+
+import net.minecraft.block.AbstractBlock;
+
+public class MachineFrame extends MachineBlock{
+ public static final MapCodec<MachineFrame> CODEC = createCodec(MachineFrame::new);
+
+ public MapCodec<MachineFrame> getCodec() {
+ return CODEC;
+ }
+
+ public MachineFrame(AbstractBlock.Settings settings) {
+ super(settings);
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/block/MachineFurnace.java b/src/main/java/net/cshift/mc/sparkt/block/MachineFurnace.java
new file mode 100644
index 0000000..0ae61e0
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/MachineFurnace.java
@@ -0,0 +1,23 @@
+package net.cshift.mc.sparkt.block;
+
+import com.mojang.serialization.MapCodec;
+
+import net.minecraft.util.math.Direction;
+
+public class MachineFurnace extends MachineBlock{
+ public static final MapCodec<MachineFurnace> CODEC = createCodec(MachineFurnace::new);
+
+ public MapCodec<MachineFurnace> getCodec() {
+ return CODEC;
+ }
+
+ public MachineFurnace(Settings settings) {
+ super(settings);
+ this.setDefaultState(
+ this.stateManager
+ .getDefaultState()
+ .with(FACING, Direction.NORTH)
+ .with(ACTIVE, true)
+ );
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/block/MachineGrinder.java b/src/main/java/net/cshift/mc/sparkt/block/MachineGrinder.java
new file mode 100644
index 0000000..87c7808
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/MachineGrinder.java
@@ -0,0 +1,23 @@
+package net.cshift.mc.sparkt.block;
+
+import com.mojang.serialization.MapCodec;
+
+import net.minecraft.util.math.Direction;
+
+public class MachineGrinder extends MachineBlock{
+ public static final MapCodec<MachineGrinder> CODEC = createCodec(MachineGrinder::new);
+
+ public MapCodec<MachineGrinder> getCodec() {
+ return CODEC;
+ }
+
+ public MachineGrinder(Settings settings) {
+ super(settings);
+ this.setDefaultState(
+ this.stateManager
+ .getDefaultState()
+ .with(FACING, Direction.NORTH)
+ .with(ACTIVE, true)
+ );
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/block/Wire.java b/src/main/java/net/cshift/mc/sparkt/block/Wire.java
new file mode 100644
index 0000000..3ad78ed
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/Wire.java
@@ -0,0 +1,44 @@
+package net.cshift.mc.sparkt.block;
+
+import org.jetbrains.annotations.Nullable;
+
+import com.mojang.serialization.MapCodec;
+
+import net.cshift.mc.sparkt.block.entity.BlockEntityTypes;
+import net.cshift.mc.sparkt.block.entity.WireEntity;
+import net.minecraft.block.BlockState;
+import net.minecraft.block.BlockWithEntity;
+import net.minecraft.block.entity.BlockEntity;
+import net.minecraft.block.entity.BlockEntityTicker;
+import net.minecraft.block.entity.BlockEntityType;
+import net.minecraft.util.math.BlockPos;
+import net.minecraft.world.World;
+
+public class Wire extends BlockWithEntity {
+ public static final MapCodec<Wire> CODEC = createCodec(Wire::new);
+
+ public MapCodec<Wire> getCodec() {
+ return CODEC;
+ }
+
+ public Wire(Settings settings) {
+ super(settings);
+ }
+
+ @Override
+ public BlockEntity createBlockEntity(BlockPos var1, BlockState var2) {
+ return new WireEntity(var1, var2);
+ }
+
+ @Override
+ public <T extends BlockEntity> BlockEntityTicker<T> getTicker(World world, BlockState state,
+ BlockEntityType<T> type) {
+ // TODO Auto-generated method stub
+ return validateTicker(world, type, BlockEntityTypes.WIRE_ENTITY);
+ }
+
+ @Nullable
+ protected static <T extends BlockEntity> BlockEntityTicker<T> validateTicker(World world, BlockEntityType<T> givenType, BlockEntityType<? extends WireEntity> expectedType) {
+ return world.isClient ? null : validateTicker(givenType, expectedType, WireEntity::tick);
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/block/entity/BlockEntityTypes.java b/src/main/java/net/cshift/mc/sparkt/block/entity/BlockEntityTypes.java
new file mode 100644
index 0000000..102cc00
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/entity/BlockEntityTypes.java
@@ -0,0 +1,36 @@
+package net.cshift.mc.sparkt.block.entity;
+
+import net.cshift.mc.sparkt.SparktInit;
+import net.cshift.mc.sparkt.block.Blocks;
+import net.minecraft.block.Block;
+import net.minecraft.block.entity.BlockEntityType;
+import net.minecraft.registry.Registries;
+import net.minecraft.registry.Registry;
+import net.minecraft.util.Identifier;
+
+public class BlockEntityTypes {
+
+ public static final BlockEntityType<MachineNodeEntity> MACHINE_BLOCK_ENTITY = Registry.register(
+ Registries.BLOCK_ENTITY_TYPE,
+ Identifier.of(SparktInit.MODID, "machine_node_entity"),
+ net.minecraft.block.entity.BlockEntityType.Builder.create(MachineNodeEntity::new, new Block[]{Blocks.MACHINE_FRAME, Blocks.MACHINE_FURNACE, Blocks.MACHINE_GRINDER}).build()
+ );
+
+ public static final BlockEntityType<MachineDriverEntity> MACHINE_DRIVER_ENTITY = Registry.register(
+ Registries.BLOCK_ENTITY_TYPE,
+ Identifier.of(SparktInit.MODID, "machine_driver_entity"),
+ net.minecraft.block.entity.BlockEntityType.Builder.create(MachineDriverEntity::new, new Block[]{Blocks.DRIVER_MECHANICAL, Blocks.DRIVER_ELECTRIC}).build()
+ );
+
+ public static final BlockEntityType<WireEntity> WIRE_ENTITY = Registry.register(
+ Registries.BLOCK_ENTITY_TYPE,
+ Identifier.of(SparktInit.MODID, "wire_entity"),
+ net.minecraft.block.entity.BlockEntityType.Builder.create(WireEntity::new, new Block[]{Blocks.WIRE}).build()
+ );
+
+ public static void register() {
+ MACHINE_BLOCK_ENTITY.getRegistryEntry();
+ MACHINE_DRIVER_ENTITY.getRegistryEntry();
+ WIRE_ENTITY.getRegistryEntry();
+ }
+}
diff --git a/src/main/java/net/cshift/sparkt/block/entity/MachineFurnaceEntity.java b/src/main/java/net/cshift/mc/sparkt/block/entity/MachineDriverEntity.java
index d45938c..52cf125 100644
--- a/src/main/java/net/cshift/sparkt/block/entity/MachineFurnaceEntity.java
+++ b/src/main/java/net/cshift/mc/sparkt/block/entity/MachineDriverEntity.java
@@ -1,61 +1,60 @@
-package net.cshift.sparkt.block.entity;
+package net.cshift.mc.sparkt.block.entity;
+import net.cshift.mc.transit.network.Channel;
+import net.cshift.mc.transit.network.INode;
+import net.cshift.mc.transit.network.PoolManifest;
+import net.cshift.mc.transit.network.packet.IStaticPacket;
import net.minecraft.block.BlockState;
import net.minecraft.block.entity.BlockEntity;
-import net.minecraft.block.entity.BlockEntityType;
import net.minecraft.util.math.BlockPos;
-import net.cshift.api.transit.network.*;
-import net.cshift.api.transit.network.packet.*;
+public class MachineDriverEntity extends BlockEntity implements INode{
-public class MachineFurnaceEntity extends BlockEntity implements INode {
-
- public MachineFurnaceEntity(BlockEntityType<?> type, BlockPos pos, BlockState state) {
- super(type, pos, state);
+ public MachineDriverEntity(BlockPos pos, BlockState state) {
+ super(BlockEntityTypes.MACHINE_DRIVER_ENTITY, pos, state);
//TODO Auto-generated constructor stub
}
@Override
- public IStaticPacket accept(IStaticPacket arg0, Channel<?> arg1) {
+ public PoolManifest getManifest() {
// TODO Auto-generated method stub
- throw new UnsupportedOperationException("Unimplemented method 'accept'");
+ throw new UnsupportedOperationException("Unimplemented method 'getManifest'");
}
@Override
- public <T> Channel<T> connect(int arg0, String arg1, INode arg2) {
+ public <T> Channel<T> connect(int poolID, String group, INode asker) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'connect'");
}
@Override
- public <T> Channel<T> connectDefault(String arg0, INode arg1) {
+ public <T> Channel<T> connectDefault(String group, INode asker) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'connectDefault'");
}
@Override
- public PoolManifest getManifest() {
+ public <T> IStaticPacket<T> accept(IStaticPacket<T> packet, Channel<T> channel) {
// TODO Auto-generated method stub
- throw new UnsupportedOperationException("Unimplemented method 'getManifest'");
+ throw new UnsupportedOperationException("Unimplemented method 'accept'");
}
@Override
- public <T> Number getPressure(Channel<T> arg0) {
+ public <T> Number getPressure(Channel<T> channel) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'getPressure'");
}
@Override
- public <T> Number getRate(Channel<T> arg0) {
+ public <T> Number getRate(Channel<T> channel) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'getRate'");
}
@Override
- public <T> void onTerminate(Channel<T> arg0) {
+ public <T> void onTerminate(Channel<T> channel) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'onTerminate'");
}
-
-} \ No newline at end of file
+}
diff --git a/src/main/java/net/cshift/sparkt/block/entity/MachineNode.java b/src/main/java/net/cshift/mc/sparkt/block/entity/MachineNodeEntity.java
index 111d8cc..4c21801 100644
--- a/src/main/java/net/cshift/sparkt/block/entity/MachineNode.java
+++ b/src/main/java/net/cshift/mc/sparkt/block/entity/MachineNodeEntity.java
@@ -1,19 +1,19 @@
-package net.cshift.sparkt.block.entity;
+package net.cshift.mc.sparkt.block.entity;
-import net.cshift.api.transit.network.*;
-import net.cshift.api.transit.network.packet.IStaticPacket;
+import net.cshift.mc.transit.network.*;
+import net.cshift.mc.transit.network.packet.IStaticPacket;
import net.minecraft.block.BlockState;
import net.minecraft.block.entity.BlockEntity;
import net.minecraft.util.math.BlockPos;
-public class MachineNode extends BlockEntity implements INode {
+public class MachineNodeEntity extends BlockEntity implements INode {
- public MachineNode(BlockPos pos, BlockState state) {
- super(BlockEntityTypes.MACHINE_NODE, pos, state);
+ public MachineNodeEntity(BlockPos pos, BlockState state) {
+ super(BlockEntityTypes.MACHINE_BLOCK_ENTITY, pos, state);
}
@Override
- public IStaticPacket accept(IStaticPacket arg0, Channel<?> arg1) {
+ public <T> IStaticPacket<T> accept(IStaticPacket<T> arg0, Channel<T> arg1) {
// TODO Auto-generated method stub
throw new UnsupportedOperationException("Unimplemented method 'accept'");
}
diff --git a/src/main/java/net/cshift/mc/sparkt/block/entity/WireEntity.java b/src/main/java/net/cshift/mc/sparkt/block/entity/WireEntity.java
new file mode 100644
index 0000000..208a84f
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/block/entity/WireEntity.java
@@ -0,0 +1,82 @@
+package net.cshift.mc.sparkt.block.entity;
+
+import net.cshift.mc.sparkt.netcode.payload.DeliveryPayload;
+import net.cshift.mc.transit.network.*;
+import net.cshift.mc.transit.network.packet.IStaticPacket;
+import net.fabricmc.fabric.api.networking.v1.PlayerLookup;
+import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
+import net.minecraft.block.BlockState;
+import net.minecraft.block.entity.BlockEntity;
+import net.minecraft.server.network.ServerPlayerEntity;
+import net.minecraft.server.world.ServerWorld;
+import net.minecraft.util.math.BlockPos;
+import net.minecraft.world.World;
+
+public class WireEntity extends BlockEntity implements INode {
+ public static final int COOLDOWN = 40;
+ private int ticks = COOLDOWN;
+
+
+ public WireEntity(BlockPos pos, BlockState state) {
+ super(BlockEntityTypes.WIRE_ENTITY, pos, state);
+
+ }
+
+ @Override
+ public <T> IStaticPacket<T> accept(IStaticPacket<T> arg0, Channel<T> arg1) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'accept'");
+ }
+
+ @Override
+ public <T> Channel<T> connect(int arg0, String arg1, INode arg2) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'connect'");
+ }
+
+ @Override
+ public <T> Channel<T> connectDefault(String arg0, INode arg1) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'connectDefault'");
+ }
+
+ @Override
+ public PoolManifest getManifest() {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'getManifest'");
+ }
+
+ @Override
+ public <T> Number getPressure(Channel<T> arg0) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'getPressure'");
+ }
+
+ @Override
+ public <T> Number getRate(Channel<T> arg0) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'getRate'");
+ }
+
+ @Override
+ public <T> void onTerminate(Channel<T> arg0) {
+ // TODO Auto-generated method stub
+ throw new UnsupportedOperationException("Unimplemented method 'onTerminate'");
+ }
+
+ public static void tick(World world, BlockPos pos, BlockState state, WireEntity blockEntity) {
+ if (world.isClient)
+ return;
+
+ blockEntity.ticks--;
+
+ if (blockEntity.ticks > 0)
+ return;
+
+ for (ServerPlayerEntity player : PlayerLookup.world((ServerWorld) world))
+ ServerPlayNetworking.send(player, new DeliveryPayload("lmao"));
+
+ blockEntity.ticks = COOLDOWN;
+ }
+
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/item/HeatingElement.java b/src/main/java/net/cshift/mc/sparkt/item/HeatingElement.java
new file mode 100644
index 0000000..5c7bc61
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/item/HeatingElement.java
@@ -0,0 +1,11 @@
+package net.cshift.mc.sparkt.item;
+
+import net.minecraft.item.Item;
+
+public class HeatingElement extends Item {
+
+ public HeatingElement(Settings settings) {
+ super(settings);
+ }
+
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/item/IngotTungsten.java b/src/main/java/net/cshift/mc/sparkt/item/IngotTungsten.java
new file mode 100644
index 0000000..1f8d92e
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/item/IngotTungsten.java
@@ -0,0 +1,11 @@
+package net.cshift.mc.sparkt.item;
+
+import net.minecraft.item.Item;
+
+public class IngotTungsten extends Item{
+
+ public IngotTungsten(Settings settings) {
+ super(settings);
+ }
+
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/item/Items.java b/src/main/java/net/cshift/mc/sparkt/item/Items.java
new file mode 100644
index 0000000..94c53e9
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/item/Items.java
@@ -0,0 +1,20 @@
+package net.cshift.mc.sparkt.item;
+
+import net.cshift.mc.sparkt.SparktInit;
+import net.minecraft.item.Item;
+import net.minecraft.item.Item.Settings;
+import net.minecraft.registry.Registries;
+import net.minecraft.registry.Registry;
+import net.minecraft.util.Identifier;
+
+public class Items {
+ public static final Item INGOT_TUNGSTEN = new IngotTungsten(new Settings());
+ public static final Item RAW_TUNGSTEN = new RawTungsten(new Settings());
+ public static final Item HEATING_ELEMENT = new HeatingElement(new Settings());
+
+ public static void register() {
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "ingot_tungsten"), INGOT_TUNGSTEN);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "raw_tungsten"), RAW_TUNGSTEN);
+ Registry.register(Registries.ITEM, Identifier.of(SparktInit.MODID, "heating_element"), HEATING_ELEMENT);
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/item/RawTungsten.java b/src/main/java/net/cshift/mc/sparkt/item/RawTungsten.java
new file mode 100644
index 0000000..18e6213
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/item/RawTungsten.java
@@ -0,0 +1,11 @@
+package net.cshift.mc.sparkt.item;
+
+import net.minecraft.item.Item;
+
+public class RawTungsten extends Item {
+
+ public RawTungsten(Settings settings) {
+ super(settings);
+ }
+
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/netcode/ClientRenderNetwork.java b/src/main/java/net/cshift/mc/sparkt/netcode/ClientRenderNetwork.java
new file mode 100644
index 0000000..067d0e0
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/netcode/ClientRenderNetwork.java
@@ -0,0 +1,5 @@
+package net.cshift.mc.sparkt.netcode;
+
+public class ClientRenderNetwork {
+
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/netcode/NetConstants.java b/src/main/java/net/cshift/mc/sparkt/netcode/NetConstants.java
new file mode 100644
index 0000000..a7358eb
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/netcode/NetConstants.java
@@ -0,0 +1,10 @@
+package net.cshift.mc.sparkt.netcode;
+
+import net.cshift.mc.sparkt.SparktInit;
+import net.minecraft.util.Identifier;
+
+public class NetConstants {
+ public static final Identifier TRANSIT_PACKET_ID = Identifier.of(SparktInit.MODID, "net_transit");
+ public static final Identifier PROGRESS_PACKET_ID = Identifier.of(SparktInit.MODID, "net_progress");
+ public static final Identifier DELIVERY_PACKET_ID = Identifier.of(SparktInit.MODID, "net_delivery");
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/netcode/ServerRenderNetwork.java b/src/main/java/net/cshift/mc/sparkt/netcode/ServerRenderNetwork.java
new file mode 100644
index 0000000..6bb249d
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/netcode/ServerRenderNetwork.java
@@ -0,0 +1,10 @@
+package net.cshift.mc.sparkt.netcode;
+
+public class ServerRenderNetwork {
+
+
+ static void update() {
+
+ }
+
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/netcode/payload/DeliveryPayload.java b/src/main/java/net/cshift/mc/sparkt/netcode/payload/DeliveryPayload.java
new file mode 100644
index 0000000..5c7caff
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/netcode/payload/DeliveryPayload.java
@@ -0,0 +1,22 @@
+package net.cshift.mc.sparkt.netcode.payload;
+
+import net.cshift.mc.sparkt.netcode.NetConstants;
+import net.minecraft.network.RegistryByteBuf;
+import net.minecraft.network.codec.PacketCodec;
+import net.minecraft.network.codec.PacketCodecs;
+import net.minecraft.network.packet.CustomPayload;
+
+public record DeliveryPayload (String uuid) implements CustomPayload {
+ public static final CustomPayload.Id<DeliveryPayload> ID = new CustomPayload.Id<>(NetConstants.DELIVERY_PACKET_ID);
+
+ public static final PacketCodec<RegistryByteBuf, DeliveryPayload> CODEC = PacketCodec.tuple(
+ PacketCodecs.STRING, DeliveryPayload::uuid,
+ DeliveryPayload::new
+ );
+
+ @Override
+ public CustomPayload.Id<? extends CustomPayload> getId ()
+ {
+ return ID;
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/netcode/payload/ProgressPayload.java b/src/main/java/net/cshift/mc/sparkt/netcode/payload/ProgressPayload.java
new file mode 100644
index 0000000..bbc0395
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/netcode/payload/ProgressPayload.java
@@ -0,0 +1,19 @@
+package net.cshift.mc.sparkt.netcode.payload;
+
+import java.util.HashMap;
+
+import net.cshift.mc.sparkt.netcode.NetConstants;
+import net.minecraft.network.RegistryByteBuf;
+import net.minecraft.network.codec.PacketCodec;
+import net.minecraft.network.packet.CustomPayload;
+
+public record ProgressPayload (HashMap<String, Double> map) implements CustomPayload {
+ public static final CustomPayload.Id<ProgressPayload> ID = new CustomPayload.Id<>(NetConstants.PROGRESS_PACKET_ID);
+ public static final PacketCodec<RegistryByteBuf, ProgressPayload> CODEC = PacketCodec.tuple(null, null, null);
+
+ @Override
+ public CustomPayload.Id<? extends CustomPayload> getId ()
+ {
+ return ID;
+ }
+}
diff --git a/src/main/java/net/cshift/mc/sparkt/netcode/payload/TransitPayload.java b/src/main/java/net/cshift/mc/sparkt/netcode/payload/TransitPayload.java
new file mode 100644
index 0000000..bc7bb6c
--- /dev/null
+++ b/src/main/java/net/cshift/mc/sparkt/netcode/payload/TransitPayload.java
@@ -0,0 +1,25 @@
+package net.cshift.mc.sparkt.netcode.payload;
+
+import com.mojang.authlib.properties.PropertyMap;
+
+import net.cshift.mc.sparkt.netcode.NetConstants;
+import net.minecraft.network.RegistryByteBuf;
+import net.minecraft.network.codec.PacketCodec;
+import net.minecraft.network.codec.PacketCodecs;
+import net.minecraft.network.packet.CustomPayload;
+
+public record TransitPayload(String uuid, PropertyMap obj) implements CustomPayload {
+ public static final CustomPayload.Id<TransitPayload> ID = new CustomPayload.Id<>(NetConstants.TRANSIT_PACKET_ID);
+
+ public static final PacketCodec<RegistryByteBuf, TransitPayload> CODEC = PacketCodec.tuple(
+ PacketCodecs.STRING, TransitPayload::uuid,
+ PacketCodecs.PROPERTY_MAP, TransitPayload::obj,
+ TransitPayload::new
+ );
+
+ @Override
+ public CustomPayload.Id<? extends CustomPayload> getId ()
+ {
+ return ID;
+ }
+}
diff --git a/src/main/java/net/cshift/sparkt/SparktInit.java b/src/main/java/net/cshift/sparkt/SparktInit.java
deleted file mode 100644
index 0b85404..0000000
--- a/src/main/java/net/cshift/sparkt/SparktInit.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package net.cshift.sparkt;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-import net.cshift.sparkt.block.Blocks;
-import net.cshift.sparkt.block.entity.BlockEntityTypes;
-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!");
- Blocks.register();
- BlockEntityTypes.register();
- }
-
-} \ No newline at end of file
diff --git a/src/main/java/net/cshift/sparkt/block/Blocks.java b/src/main/java/net/cshift/sparkt/block/Blocks.java
deleted file mode 100644
index 3aab1e2..0000000
--- a/src/main/java/net/cshift/sparkt/block/Blocks.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package net.cshift.sparkt.block;
-
-import net.cshift.sparkt.SparktInit;
-import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings;
-import net.minecraft.block.Block;
-import net.minecraft.item.BlockItem;
-import net.minecraft.item.Item;
-import net.minecraft.util.Identifier;
-import net.minecraft.registry.*;
-
-public class Blocks {
-
- public static final Block MACHINE_BLOCK = new MachineBlock(FabricBlockSettings.create().strength(1, 1));
- public static final Block MACHINE_FURNACE = new MachineFurnace(FabricBlockSettings.create().strength(1, 1));
- public static final Block DRIVER_MECHANICAL = new DriverMechanical(FabricBlockSettings.create().strength(1, 1));
- public static final Block MACHINE_GRINDER = new MachineGrinder(FabricBlockSettings.create().strength(1, 1));
- //public static final Block
-
- public static void register() {
- Registry.register(Registries.BLOCK, new Identifier(SparktInit.MODID, "machine_block"), MACHINE_BLOCK);
- Registry.register(Registries.ITEM, new Identifier(SparktInit.MODID, "machine_block"), new BlockItem(MACHINE_BLOCK, new Item.Settings()));
-
- Registry.register(Registries.BLOCK, new Identifier(SparktInit.MODID, "machine_furnace"), MACHINE_FURNACE);
- Registry.register(Registries.ITEM, new Identifier(SparktInit.MODID, "machine_furnace"), new BlockItem(MACHINE_FURNACE, new Item.Settings()));
-
- Registry.register(Registries.BLOCK, new Identifier(SparktInit.MODID, "driver_mechanical"), DRIVER_MECHANICAL);
- Registry.register(Registries.ITEM, new Identifier(SparktInit.MODID, "driver_mechanical"), new BlockItem(DRIVER_MECHANICAL, new Item.Settings()));
-
- Registry.register(Registries.BLOCK, new Identifier(SparktInit.MODID, "machine_grinder"), MACHINE_GRINDER);
- Registry.register(Registries.ITEM, new Identifier(SparktInit.MODID, "machine_grinder"), new BlockItem(MACHINE_GRINDER, new Item.Settings()));
- }
-} \ No newline at end of file
diff --git a/src/main/java/net/cshift/sparkt/block/DriverMechanical.java b/src/main/java/net/cshift/sparkt/block/DriverMechanical.java
deleted file mode 100644
index a0f690e..0000000
--- a/src/main/java/net/cshift/sparkt/block/DriverMechanical.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.cshift.sparkt.block;
-
-public class DriverMechanical extends MachineBlock{
-
- public DriverMechanical(Settings settings) {
- super(settings);
- }
-
-} \ No newline at end of file
diff --git a/src/main/java/net/cshift/sparkt/block/MachineBlock.java b/src/main/java/net/cshift/sparkt/block/MachineBlock.java
deleted file mode 100644
index 875f295..0000000
--- a/src/main/java/net/cshift/sparkt/block/MachineBlock.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package net.cshift.sparkt.block;
-
-import net.cshift.sparkt.block.entity.MachineNode;
-import net.minecraft.block.BlockState;
-import net.minecraft.block.BlockWithEntity;
-import net.minecraft.block.entity.BlockEntity;
-import net.minecraft.entity.LivingEntity;
-import net.minecraft.item.ItemStack;
-import net.minecraft.util.math.BlockPos;
-import net.minecraft.world.World;
-
-public class MachineBlock extends BlockWithEntity {
-
- public MachineBlock(Settings settings) {
- super(settings);
- }
-
- @Override
- public BlockEntity createBlockEntity(BlockPos var1, BlockState var2) {
- return new MachineNode(var1, var2);
- }
-
- @Override
- public void onPlaced(World world, BlockPos pos, BlockState state, LivingEntity placer, ItemStack itemStack) {
- super.onPlaced(world, pos, state, placer, itemStack);
- }
-
-} \ No newline at end of file
diff --git a/src/main/java/net/cshift/sparkt/block/MachineFurnace.java b/src/main/java/net/cshift/sparkt/block/MachineFurnace.java
deleted file mode 100644
index 2c815ce..0000000
--- a/src/main/java/net/cshift/sparkt/block/MachineFurnace.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.cshift.sparkt.block;
-
-public class MachineFurnace extends MachineBlock{
-
- public MachineFurnace(Settings settings) {
- super(settings);
- }
-
-} \ No newline at end of file
diff --git a/src/main/java/net/cshift/sparkt/block/MachineGrinder.java b/src/main/java/net/cshift/sparkt/block/MachineGrinder.java
deleted file mode 100644
index 890fa7e..0000000
--- a/src/main/java/net/cshift/sparkt/block/MachineGrinder.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package net.cshift.sparkt.block;
-
-public class MachineGrinder extends MachineBlock{
-
- public MachineGrinder(Settings settings) {
- super(settings);
- }
-
-} \ No newline at end of file
diff --git a/src/main/java/net/cshift/sparkt/block/Wire.java b/src/main/java/net/cshift/sparkt/block/Wire.java
deleted file mode 100644
index fa0da3d..0000000
--- a/src/main/java/net/cshift/sparkt/block/Wire.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package net.cshift.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/cshift/sparkt/block/entity/BlockEntityTypes.java b/src/main/java/net/cshift/sparkt/block/entity/BlockEntityTypes.java
deleted file mode 100644
index f4b1379..0000000
--- a/src/main/java/net/cshift/sparkt/block/entity/BlockEntityTypes.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package net.cshift.sparkt.block.entity;
-
-import net.cshift.sparkt.SparktInit;
-import net.cshift.sparkt.block.Blocks;
-import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder;
-import net.minecraft.block.entity.BlockEntityType;
-import net.minecraft.registry.Registries;
-import net.minecraft.registry.Registry;
-import net.minecraft.util.Identifier;
-
-public class BlockEntityTypes {
-
- public static BlockEntityType<MachineNode> MACHINE_NODE;
-
- public static void register() {
- MACHINE_NODE = Registry.register(
- Registries.BLOCK_ENTITY_TYPE,
- new Identifier(SparktInit.MODID, "machine_block_entity"),
- FabricBlockEntityTypeBuilder.<MachineNode>create(MachineNode::new, Blocks.MACHINE_BLOCK).build()
- );
- }
-}
diff --git a/src/main/resources/assets/sparkt/blockstates/driver_electric.json b/src/main/resources/assets/sparkt/blockstates/driver_electric.json
new file mode 100644
index 0000000..1caa02d
--- /dev/null
+++ b/src/main/resources/assets/sparkt/blockstates/driver_electric.json
@@ -0,0 +1,30 @@
+{
+ "variants": {
+ "facing=east,lit=false": {
+ "model": "sparkt:block/driver_electric",
+ "x": 90,
+ "y": 90
+ },
+ "facing=north,lit=false": {
+ "model": "sparkt:block/driver_electric",
+ "x": 90
+ },
+ "facing=south,lit=false": {
+ "model": "sparkt:block/driver_electric",
+ "x": 90,
+ "y": 180
+ },
+ "facing=west,lit=false": {
+ "model": "sparkt:block/driver_electric",
+ "x": 90,
+ "y": 270
+ },
+ "facing=up,lit=false": {
+ "model": "sparkt:block/driver_electric"
+ },
+ "facing=down,lit=false": {
+ "model": "sparkt:block/driver_electric",
+ "x": 180
+ }
+ }
+}
diff --git a/src/main/resources/assets/sparkt/blockstates/driver_mechanical.json b/src/main/resources/assets/sparkt/blockstates/driver_mechanical.json
index f01b009..6b292df 100644
--- a/src/main/resources/assets/sparkt/blockstates/driver_mechanical.json
+++ b/src/main/resources/assets/sparkt/blockstates/driver_mechanical.json
@@ -1,5 +1,30 @@
{
"variants": {
- "": { "model": "sparkt:block/driver_mechanical" }
+ "facing=east,lit=false": {
+ "model": "sparkt:block/driver_mechanical",
+ "x": 90,
+ "y": 90
+ },
+ "facing=north,lit=false": {
+ "model": "sparkt:block/driver_mechanical",
+ "x": 90
+ },
+ "facing=south,lit=false": {
+ "model": "sparkt:block/driver_mechanical",
+ "x": 90,
+ "y": 180
+ },
+ "facing=west,lit=false": {
+ "model": "sparkt:block/driver_mechanical",
+ "x": 90,
+ "y": 270
+ },
+ "facing=up,lit=false": {
+ "model": "sparkt:block/driver_mechanical"
+ },
+ "facing=down,lit=false": {
+ "model": "sparkt:block/driver_mechanical",
+ "x": 180
+ }
}
-} \ No newline at end of file
+}
diff --git a/src/main/resources/assets/sparkt/blockstates/machine_block.json b/src/main/resources/assets/sparkt/blockstates/machine_block.json
deleted file mode 100644
index c58ab84..0000000
--- a/src/main/resources/assets/sparkt/blockstates/machine_block.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "variants": {
- "": { "model": "sparkt:block/machine_block" }
- }
-} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/blockstates/machine_frame.json b/src/main/resources/assets/sparkt/blockstates/machine_frame.json
new file mode 100644
index 0000000..2e5c3e6
--- /dev/null
+++ b/src/main/resources/assets/sparkt/blockstates/machine_frame.json
@@ -0,0 +1,34 @@
+{
+ "variants": {
+ "facing=east,lit=false": {
+ "model": "sparkt:block/machine_frame",
+ "y": 90
+ },
+ "facing=north,lit=false": {
+ "model": "sparkt:block/machine_frame"
+ },
+ "facing=south,lit=false": {
+ "model": "sparkt:block/machine_frame",
+ "y": 180
+ },
+ "facing=west,lit=false": {
+ "model": "sparkt:block/machine_frame",
+ "y": 270
+ },
+ "facing=east,lit=true": {
+ "model": "sparkt:block/machine_frame",
+ "y": 90
+ },
+ "facing=north,lit=true": {
+ "model": "sparkt:block/machine_frame"
+ },
+ "facing=south,lit=true": {
+ "model": "sparkt:block/machine_frame",
+ "y": 180
+ },
+ "facing=west,lit=true": {
+ "model": "sparkt:block/machine_frame",
+ "y": 270
+ }
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/blockstates/machine_furnace.json b/src/main/resources/assets/sparkt/blockstates/machine_furnace.json
index 2c115f2..7903eec 100644
--- a/src/main/resources/assets/sparkt/blockstates/machine_furnace.json
+++ b/src/main/resources/assets/sparkt/blockstates/machine_furnace.json
@@ -1,5 +1,34 @@
{
- "variants": {
- "": { "model": "sparkt:block/machine_furnace" }
- }
+ "variants": {
+ "facing=east,lit=false": {
+ "model": "sparkt:block/machine_furnace",
+ "y": 90
+ },
+ "facing=north,lit=false": {
+ "model": "sparkt:block/machine_furnace"
+ },
+ "facing=south,lit=false": {
+ "model": "sparkt:block/machine_furnace",
+ "y": 180
+ },
+ "facing=west,lit=false": {
+ "model": "sparkt:block/machine_furnace",
+ "y": 270
+ },
+ "facing=east,lit=true": {
+ "model": "sparkt:block/machine_furnace_on",
+ "y": 90
+ },
+ "facing=north,lit=true": {
+ "model": "sparkt:block/machine_furnace_on"
+ },
+ "facing=south,lit=true": {
+ "model": "sparkt:block/machine_furnace_on",
+ "y": 180
+ },
+ "facing=west,lit=true": {
+ "model": "sparkt:block/machine_furnace_on",
+ "y": 270
+ }
+ }
} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/blockstates/machine_grinder.json b/src/main/resources/assets/sparkt/blockstates/machine_grinder.json
index 5e233bf..7a5a0ce 100644
--- a/src/main/resources/assets/sparkt/blockstates/machine_grinder.json
+++ b/src/main/resources/assets/sparkt/blockstates/machine_grinder.json
@@ -1,5 +1,34 @@
{
- "variants": {
- "": { "model": "sparkt:block/machine_grinder" }
- }
+ "variants": {
+ "facing=east,lit=false": {
+ "model": "sparkt:block/machine_grinder",
+ "y": 90
+ },
+ "facing=north,lit=false": {
+ "model": "sparkt:block/machine_grinder"
+ },
+ "facing=south,lit=false": {
+ "model": "sparkt:block/machine_grinder",
+ "y": 180
+ },
+ "facing=west,lit=false": {
+ "model": "sparkt:block/machine_grinder",
+ "y": 270
+ },
+ "facing=east,lit=true": {
+ "model": "sparkt:block/machine_grinder_on",
+ "y": 90
+ },
+ "facing=north,lit=true": {
+ "model": "sparkt:block/machine_grinder_on"
+ },
+ "facing=south,lit=true": {
+ "model": "sparkt:block/machine_grinder_on",
+ "y": 180
+ },
+ "facing=west,lit=true": {
+ "model": "sparkt:block/machine_grinder_on",
+ "y": 270
+ }
+ }
} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/blockstates/ore_deepslate_tungsten.json b/src/main/resources/assets/sparkt/blockstates/ore_deepslate_tungsten.json
new file mode 100644
index 0000000..e109934
--- /dev/null
+++ b/src/main/resources/assets/sparkt/blockstates/ore_deepslate_tungsten.json
@@ -0,0 +1,7 @@
+{
+ "variants": {
+ "": {
+ "model": "sparkt:block/ore_deepslate_tungsten"
+ }
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/blockstates/ore_tungsten.json b/src/main/resources/assets/sparkt/blockstates/ore_tungsten.json
new file mode 100644
index 0000000..909ba46
--- /dev/null
+++ b/src/main/resources/assets/sparkt/blockstates/ore_tungsten.json
@@ -0,0 +1,7 @@
+{
+ "variants": {
+ "": {
+ "model": "sparkt:block/ore_tungsten"
+ }
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/lang/en_us.json b/src/main/resources/assets/sparkt/lang/en_us.json
index 28005eb..c826e94 100644
--- a/src/main/resources/assets/sparkt/lang/en_us.json
+++ b/src/main/resources/assets/sparkt/lang/en_us.json
@@ -1,8 +1,17 @@
{
- "block.sparkt.machine_block": "Machine Block",
+ "block.sparkt.ore_tungsten": "Tungsten Ore",
+ "block.sparkt.ore_deepslate_tungsten": "Deepslate Tungsten Ore",
+
+ "item.sparkt.raw_tungsten": "Raw Tungsten",
+ "item.sparkt.ingot_tungsten": "Tungsten Ingot",
+
+ "block.sparkt.machine_frame": "Machine Frame",
"block.sparkt.machine_furnace": "Electric Furnace",
"block.sparkt.wire": "Wire",
- "block.sparkt.machine_grinder": "Electric Crusher",
+ "block.sparkt.machine_grinder": "Electric Grinder",
"block.sparkt.driver_mechanical": "Mechanical Driver",
- "block.sparkt.driver_thermal": "Thermal Driver"
+ "block.sparkt.driver_electric": "Electric Driver",
+ "block.sparkt.driver_thermal": "Thermal Driver",
+
+ "item.sparkt.heating_element": "Heating Element"
} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/block/driver.json b/src/main/resources/assets/sparkt/models/block/driver.json
new file mode 100644
index 0000000..e6d5824
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/block/driver.json
@@ -0,0 +1,9 @@
+{
+ "parent": "block/orientable_with_bottom",
+ "textures": {
+ "top": "sparkt:block/driver_top",
+ "side": "#side",
+ "front": "#side",
+ "bottom": "sparkt:block/machine_bottom"
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/block/driver_electric.json b/src/main/resources/assets/sparkt/models/block/driver_electric.json
new file mode 100644
index 0000000..19647b7
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/block/driver_electric.json
@@ -0,0 +1,6 @@
+{
+ "parent": "sparkt:block/driver",
+ "textures": {
+ "side": "sparkt:block/driver_electric_side"
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/block/driver_mechanical.json b/src/main/resources/assets/sparkt/models/block/driver_mechanical.json
index f3bdf7b..fe7a3b4 100644
--- a/src/main/resources/assets/sparkt/models/block/driver_mechanical.json
+++ b/src/main/resources/assets/sparkt/models/block/driver_mechanical.json
@@ -1,9 +1,6 @@
{
- "parent": "block/orientable_with_bottom",
- "textures": {
- "top": "sparkt:block/driver_top",
- "side": "sparkt:block/driver_side",
- "front": "sparkt:block/driver_side",
- "bottom": "sparkt:block/machine_bottom"
- }
+ "parent": "sparkt:block/driver",
+ "textures": {
+ "side": "sparkt:block/driver_mechanical_side"
+ }
} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/block/machine_block.json b/src/main/resources/assets/sparkt/models/block/machine_frame.json
index 679b548..679b548 100644
--- a/src/main/resources/assets/sparkt/models/block/machine_block.json
+++ b/src/main/resources/assets/sparkt/models/block/machine_frame.json
diff --git a/src/main/resources/assets/sparkt/models/block/machine_furnace_on.json b/src/main/resources/assets/sparkt/models/block/machine_furnace_on.json
new file mode 100644
index 0000000..f6d8c8d
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/block/machine_furnace_on.json
@@ -0,0 +1,6 @@
+{
+ "parent": "sparkt:block/machine",
+ "textures": {
+ "front": "sparkt:block/furnace_side_on"
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/block/machine_grinder_on.json b/src/main/resources/assets/sparkt/models/block/machine_grinder_on.json
new file mode 100644
index 0000000..4f28e03
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/block/machine_grinder_on.json
@@ -0,0 +1,6 @@
+{
+ "parent": "sparkt:block/machine",
+ "textures": {
+ "front": "sparkt:block/grinder_side_on"
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/block/ore_deepslate_tungsten.json b/src/main/resources/assets/sparkt/models/block/ore_deepslate_tungsten.json
new file mode 100644
index 0000000..fd7b09a
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/block/ore_deepslate_tungsten.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:block/cube_all",
+ "textures": {
+ "all": "sparkt:block/ore_deepslate_tungsten"
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/block/ore_tungsten.json b/src/main/resources/assets/sparkt/models/block/ore_tungsten.json
new file mode 100644
index 0000000..a2b4235
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/block/ore_tungsten.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:block/cube_all",
+ "textures": {
+ "all": "sparkt:block/ore_tungsten"
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/item/driver_electric.json b/src/main/resources/assets/sparkt/models/item/driver_electric.json
new file mode 100644
index 0000000..05a68ef
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/item/driver_electric.json
@@ -0,0 +1,3 @@
+{
+ "parent": "sparkt:block/driver_electric"
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/item/heating_element.json b/src/main/resources/assets/sparkt/models/item/heating_element.json
new file mode 100644
index 0000000..25717f8
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/item/heating_element.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:item/generated",
+ "textures": {
+ "layer0": "sparkt:item/heating_element"
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/item/ingot_tungsten.json b/src/main/resources/assets/sparkt/models/item/ingot_tungsten.json
new file mode 100644
index 0000000..dfa78d8
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/item/ingot_tungsten.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:item/generated",
+ "textures": {
+ "layer0": "sparkt:item/ingot_tungsten"
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/item/machine_block.json b/src/main/resources/assets/sparkt/models/item/machine_block.json
deleted file mode 100644
index a405f71..0000000
--- a/src/main/resources/assets/sparkt/models/item/machine_block.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "parent": "sparkt:block/machine_block"
-} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/item/machine_frame.json b/src/main/resources/assets/sparkt/models/item/machine_frame.json
new file mode 100644
index 0000000..29ae308
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/item/machine_frame.json
@@ -0,0 +1,3 @@
+{
+ "parent": "sparkt:block/machine_frame"
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/item/ore_deepslate_tungsten.json b/src/main/resources/assets/sparkt/models/item/ore_deepslate_tungsten.json
new file mode 100644
index 0000000..6694b29
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/item/ore_deepslate_tungsten.json
@@ -0,0 +1,3 @@
+{
+ "parent": "sparkt:block/ore_deepslate_tungsten"
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/item/ore_tungsten.json b/src/main/resources/assets/sparkt/models/item/ore_tungsten.json
new file mode 100644
index 0000000..5f60378
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/item/ore_tungsten.json
@@ -0,0 +1,3 @@
+{
+ "parent": "sparkt:block/ore_tungsten"
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/models/item/raw_tungsten.json b/src/main/resources/assets/sparkt/models/item/raw_tungsten.json
new file mode 100644
index 0000000..3afb8a7
--- /dev/null
+++ b/src/main/resources/assets/sparkt/models/item/raw_tungsten.json
@@ -0,0 +1,6 @@
+{
+ "parent": "minecraft:item/generated",
+ "textures": {
+ "layer0": "sparkt:item/raw_tungsten"
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/assets/sparkt/textures/block/driver_electric_side.png b/src/main/resources/assets/sparkt/textures/block/driver_electric_side.png
new file mode 100644
index 0000000..f609606
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/block/driver_electric_side.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/driver_mechanical_side.png b/src/main/resources/assets/sparkt/textures/block/driver_mechanical_side.png
new file mode 100644
index 0000000..dbff087
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/block/driver_mechanical_side.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/driver_side.png b/src/main/resources/assets/sparkt/textures/block/driver_side.png
deleted file mode 100644
index 51d0c2c..0000000
--- a/src/main/resources/assets/sparkt/textures/block/driver_side.png
+++ /dev/null
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/driver_top.png b/src/main/resources/assets/sparkt/textures/block/driver_top.png
index 2e85d33..37ea8f1 100644
--- a/src/main/resources/assets/sparkt/textures/block/driver_top.png
+++ b/src/main/resources/assets/sparkt/textures/block/driver_top.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/furnace_side.png b/src/main/resources/assets/sparkt/textures/block/furnace_side.png
index e7ba9c2..8c95dee 100644
--- a/src/main/resources/assets/sparkt/textures/block/furnace_side.png
+++ b/src/main/resources/assets/sparkt/textures/block/furnace_side.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/furnace_side_on.png b/src/main/resources/assets/sparkt/textures/block/furnace_side_on.png
new file mode 100644
index 0000000..6f6b483
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/block/furnace_side_on.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/furnace_side_on.png.mcmeta b/src/main/resources/assets/sparkt/textures/block/furnace_side_on.png.mcmeta
new file mode 100644
index 0000000..0645f48
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/block/furnace_side_on.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation": {
+ "frametime": 2
+ }
+}
diff --git a/src/main/resources/assets/sparkt/textures/block/grinder_side.png b/src/main/resources/assets/sparkt/textures/block/grinder_side.png
index 1f384f8..536f5f2 100644
--- a/src/main/resources/assets/sparkt/textures/block/grinder_side.png
+++ b/src/main/resources/assets/sparkt/textures/block/grinder_side.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/grinder_side_on.png b/src/main/resources/assets/sparkt/textures/block/grinder_side_on.png
new file mode 100644
index 0000000..d4559e7
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/block/grinder_side_on.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/grinder_side_on.png.mcmeta b/src/main/resources/assets/sparkt/textures/block/grinder_side_on.png.mcmeta
new file mode 100644
index 0000000..0645f48
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/block/grinder_side_on.png.mcmeta
@@ -0,0 +1,5 @@
+{
+ "animation": {
+ "frametime": 2
+ }
+}
diff --git a/src/main/resources/assets/sparkt/textures/block/machine_bottom.png b/src/main/resources/assets/sparkt/textures/block/machine_bottom.png
index 48d3f40..35162e2 100644
--- a/src/main/resources/assets/sparkt/textures/block/machine_bottom.png
+++ b/src/main/resources/assets/sparkt/textures/block/machine_bottom.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/machine_side.png b/src/main/resources/assets/sparkt/textures/block/machine_side.png
index 6e1fb14..cfd6382 100644
--- a/src/main/resources/assets/sparkt/textures/block/machine_side.png
+++ b/src/main/resources/assets/sparkt/textures/block/machine_side.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/machine_top.png b/src/main/resources/assets/sparkt/textures/block/machine_top.png
index 7d4463f..3a165c0 100644
--- a/src/main/resources/assets/sparkt/textures/block/machine_top.png
+++ b/src/main/resources/assets/sparkt/textures/block/machine_top.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/ore_deepslate_tungsten.png b/src/main/resources/assets/sparkt/textures/block/ore_deepslate_tungsten.png
new file mode 100644
index 0000000..04100ca
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/block/ore_deepslate_tungsten.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/block/ore_tungsten.png b/src/main/resources/assets/sparkt/textures/block/ore_tungsten.png
new file mode 100644
index 0000000..c824085
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/block/ore_tungsten.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/item/heating_element.png b/src/main/resources/assets/sparkt/textures/item/heating_element.png
new file mode 100644
index 0000000..65e9f6f
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/item/heating_element.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/item/ingot_tungsten.png b/src/main/resources/assets/sparkt/textures/item/ingot_tungsten.png
new file mode 100644
index 0000000..5d7bdae
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/item/ingot_tungsten.png
Binary files differ
diff --git a/src/main/resources/assets/sparkt/textures/item/raw_tungsten.png b/src/main/resources/assets/sparkt/textures/item/raw_tungsten.png
new file mode 100644
index 0000000..2a9ac6a
--- /dev/null
+++ b/src/main/resources/assets/sparkt/textures/item/raw_tungsten.png
Binary files differ
diff --git a/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json
new file mode 100644
index 0000000..2eeba2f
--- /dev/null
+++ b/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json
@@ -0,0 +1,7 @@
+{
+ "replace": false,
+ "values": [
+ "sparkt:ore_tungsten",
+ "sparkt:ore_deepslate_tungsten"
+ ]
+} \ No newline at end of file
diff --git a/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json
new file mode 100644
index 0000000..2eeba2f
--- /dev/null
+++ b/src/main/resources/data/minecraft/tags/block/needs_iron_tool.json
@@ -0,0 +1,7 @@
+{
+ "replace": false,
+ "values": [
+ "sparkt:ore_tungsten",
+ "sparkt:ore_deepslate_tungsten"
+ ]
+} \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/loot_tables/block/machine_block.json b/src/main/resources/data/sparkt/loot_table/blocks/machine_frame.json
index 5c6db56..10e03be 100644
--- a/src/main/resources/data/sparkt/loot_tables/block/machine_block.json
+++ b/src/main/resources/data/sparkt/loot_table/blocks/machine_frame.json
@@ -6,7 +6,7 @@
"entries": [
{
"type": "minecraft:item",
- "name": "sparkt:machine_block"
+ "name": "sparkt:machine_frame"
}
],
"conditions": [
diff --git a/src/main/resources/data/sparkt/loot_table/blocks/ore_deepslate_tungsten.json b/src/main/resources/data/sparkt/loot_table/blocks/ore_deepslate_tungsten.json
new file mode 100644
index 0000000..4e2f050
--- /dev/null
+++ b/src/main/resources/data/sparkt/loot_table/blocks/ore_deepslate_tungsten.json
@@ -0,0 +1,52 @@
+{
+ "type": "minecraft:block",
+ "pools": [
+ {
+ "bonus_rolls": 0.0,
+ "entries": [
+ {
+ "type": "minecraft:alternatives",
+ "children": [
+ {
+ "type": "minecraft:item",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:silk_touch",
+ "levels": {
+ "min": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "name": "sparkt:ore_deepslate_tungsten"
+ },
+ {
+ "type": "minecraft:item",
+ "functions": [
+ {
+ "enchantment": "minecraft:fortune",
+ "formula": "minecraft:ore_drops",
+ "function": "minecraft:apply_bonus"
+ },
+ {
+ "function": "minecraft:explosion_decay"
+ }
+ ],
+ "name": "sparkt:raw_tungsten"
+ }
+ ]
+ }
+ ],
+ "rolls": 1.0
+ }
+ ],
+ "random_sequence": "sparkt:blocks/ore_deepslate_tungsten"
+ } \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/loot_table/blocks/ore_tungsten.json b/src/main/resources/data/sparkt/loot_table/blocks/ore_tungsten.json
new file mode 100644
index 0000000..0cff1a3
--- /dev/null
+++ b/src/main/resources/data/sparkt/loot_table/blocks/ore_tungsten.json
@@ -0,0 +1,52 @@
+{
+ "type": "minecraft:block",
+ "pools": [
+ {
+ "bonus_rolls": 0.0,
+ "entries": [
+ {
+ "type": "minecraft:alternatives",
+ "children": [
+ {
+ "type": "minecraft:item",
+ "conditions": [
+ {
+ "condition": "minecraft:match_tool",
+ "predicate": {
+ "predicates": {
+ "minecraft:enchantments": [
+ {
+ "enchantments": "minecraft:silk_touch",
+ "levels": {
+ "min": 1
+ }
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "name": "sparkt:ore_tungsten"
+ },
+ {
+ "type": "minecraft:item",
+ "functions": [
+ {
+ "enchantment": "minecraft:fortune",
+ "formula": "minecraft:ore_drops",
+ "function": "minecraft:apply_bonus"
+ },
+ {
+ "function": "minecraft:explosion_decay"
+ }
+ ],
+ "name": "sparkt:raw_tungsten"
+ }
+ ]
+ }
+ ],
+ "rolls": 1.0
+ }
+ ],
+ "random_sequence": "sparkt:blocks/ore_tungsten"
+ } \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/heating_element.json b/src/main/resources/data/sparkt/recipe/heating_element.json
new file mode 100644
index 0000000..c5ee59f
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/heating_element.json
@@ -0,0 +1,23 @@
+{
+ "type": "minecraft:crafting_shaped",
+ "pattern": [
+ " w ",
+ "wfw",
+ " c "
+ ],
+ "key": {
+ "w": {
+ "item": "sparkt:ingot_tungsten"
+ },
+ "f": {
+ "item": "minecraft:iron_ingot"
+ },
+ "c": {
+ "item": "minecraft:copper_ingot"
+ }
+ },
+ "result": {
+ "id": "sparkt:heating_element",
+ "count": 3
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_ore.json b/src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_ore.json
new file mode 100644
index 0000000..c8b636c
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_ore.json
@@ -0,0 +1,13 @@
+{
+ "type": "minecraft:blasting",
+ "category": "misc",
+ "cookingtime": 100,
+ "experience": 0.7,
+ "group": "ingot_tungsten",
+ "ingredient": {
+ "item": "sparkt:ore_tungsten"
+ },
+ "result": {
+ "id": "sparkt:ingot_tungsten"
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_ore_deepslate.json b/src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_ore_deepslate.json
new file mode 100644
index 0000000..24096f5
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_ore_deepslate.json
@@ -0,0 +1,13 @@
+{
+ "type": "minecraft:blasting",
+ "category": "misc",
+ "cookingtime": 100,
+ "experience": 0.7,
+ "group": "ingot_tungsten",
+ "ingredient": {
+ "item": "sparkt:ore_deepslate_tungsten"
+ },
+ "result": {
+ "id": "sparkt:ingot_tungsten"
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_raw.json b/src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_raw.json
new file mode 100644
index 0000000..8758117
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/ingot_tungsten_blast_raw.json
@@ -0,0 +1,13 @@
+{
+ "type": "minecraft:blasting",
+ "category": "misc",
+ "cookingtime": 100,
+ "experience": 0.7,
+ "group": "ingot_tungsten",
+ "ingredient": {
+ "item": "sparkt:raw_tungsten"
+ },
+ "result": {
+ "id": "sparkt:ingot_tungsten"
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_ore.json b/src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_ore.json
new file mode 100644
index 0000000..7c049cf
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_ore.json
@@ -0,0 +1,13 @@
+{
+ "type": "minecraft:smelting",
+ "category": "misc",
+ "cookingtime": 200,
+ "experience": 0.7,
+ "group": "ingot_tungsten",
+ "ingredient": {
+ "item": "sparkt:ore_tungsten"
+ },
+ "result": {
+ "id": "sparkt:ingot_tungsten"
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_ore_deepslate.json b/src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_ore_deepslate.json
new file mode 100644
index 0000000..7d8b984
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_ore_deepslate.json
@@ -0,0 +1,13 @@
+{
+ "type": "minecraft:smelting",
+ "category": "misc",
+ "cookingtime": 200,
+ "experience": 0.7,
+ "group": "ingot_tungsten",
+ "ingredient": {
+ "item": "sparkt:ore_deepslate_tungsten"
+ },
+ "result": {
+ "id": "sparkt:ingot_tungsten"
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_raw.json b/src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_raw.json
new file mode 100644
index 0000000..3ea83f6
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/ingot_tungsten_smelt_raw.json
@@ -0,0 +1,13 @@
+{
+ "type": "minecraft:smelting",
+ "category": "misc",
+ "cookingtime": 200,
+ "experience": 0.7,
+ "group": "ingot_tungsten",
+ "ingredient": {
+ "item": "sparkt:raw_tungsten"
+ },
+ "result": {
+ "id": "sparkt:ingot_tungsten"
+ }
+ } \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/machine_frame.json b/src/main/resources/data/sparkt/recipe/machine_frame.json
new file mode 100644
index 0000000..06d2760
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/machine_frame.json
@@ -0,0 +1,20 @@
+{
+ "type": "minecraft:crafting_shaped",
+ "pattern": [
+ "isi",
+ "s s",
+ "isi"
+ ],
+ "key": {
+ "s": {
+ "item": "minecraft:smooth_stone"
+ },
+ "i": {
+ "item": "minecraft:iron_ingot"
+ }
+ },
+ "result": {
+ "id": "sparkt:machine_frame",
+ "count": 2
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/machine_furnace.json b/src/main/resources/data/sparkt/recipe/machine_furnace.json
new file mode 100644
index 0000000..9ab9dc4
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/machine_furnace.json
@@ -0,0 +1,26 @@
+{
+ "type": "minecraft:crafting_shaped",
+ "pattern": [
+ "rmr",
+ "hfh",
+ "rhr"
+ ],
+ "key": {
+ "r": {
+ "item": "minecraft:redstone"
+ },
+ "m": {
+ "item": "sparkt:machine_frame"
+ },
+ "h": {
+ "item": "sparkt:heating_element"
+ },
+ "f": {
+ "item": "minecraft:furnace"
+ }
+ },
+ "result": {
+ "id": "sparkt:machine_furnace",
+ "count": 1
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/data/sparkt/recipe/machine_grinder.json b/src/main/resources/data/sparkt/recipe/machine_grinder.json
new file mode 100644
index 0000000..37cee40
--- /dev/null
+++ b/src/main/resources/data/sparkt/recipe/machine_grinder.json
@@ -0,0 +1,29 @@
+{
+ "type": "minecraft:crafting_shaped",
+ "pattern": [
+ "rir",
+ "pmp",
+ "ccc"
+ ],
+ "key": {
+ "r": {
+ "item": "minecraft:redstone"
+ },
+ "i": {
+ "item": "minecraft:iron_block"
+ },
+ "p": {
+ "item": "minecraft:piston"
+ },
+ "m": {
+ "item": "sparkt:machine_frame"
+ },
+ "c": {
+ "item": "minecraft:copper_ingot"
+ }
+ },
+ "result": {
+ "id": "sparkt:machine_grinder",
+ "count": 1
+ }
+} \ No newline at end of file
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index 69935ee..c90ca38 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -18,15 +18,18 @@
"environment": "*",
"entrypoints": {
"main": [
- "net.cshift.sparkt.SparktInit"
+ "net.cshift.mc.sparkt.SparktInit"
+ ],
+ "client": [
+ "net.cshift.mc.sparkt.SparktClientInit"
]
},
"depends": {
- "fabricloader": ">=0.8.0",
- "fabric": "*",
- "minecraft": "1.20.x",
+ "fabricloader": ">=0.16.0",
+ "fabric-api-base": "*",
+ "minecraft": "1.21.x",
- "transit-api": "=3.0.0-alpha-2"
+ "transit-api": "=3.0.1-rc-1"
}
}