diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e1394ec1..8eee358d9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,10 @@ to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
+### Changed
+
+- Optimized memory usage and startup time of cable models. After updating, cables will appear disconnected, but this is only visual. Cause a block update to fix this.
+
### Fixed
- Fixed mouse keybindings not working on NeoForge.
diff --git a/config/checkstyle/checkstyle.xml b/config/checkstyle/checkstyle.xml
index 49d68cdb1..17c992bd4 100644
--- a/config/checkstyle/checkstyle.xml
+++ b/config/checkstyle/checkstyle.xml
@@ -109,7 +109,9 @@
-
+
+
+
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/black.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/black.json
index 47bcf93c9..301a3d76c 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/black.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/black.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:black_disk_interface"
+ "color": "black",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/blue.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/blue.json
index c4376dc8b..81dd9b752 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/blue.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/blue.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:blue_disk_interface"
+ "color": "blue",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/brown.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/brown.json
index 3b4cc4011..c8f70c2a3 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/brown.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/brown.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:brown_disk_interface"
+ "color": "brown",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/cyan.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/cyan.json
index 7744a3b75..e07184b27 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/cyan.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/cyan.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:cyan_disk_interface"
+ "color": "cyan",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/gray.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/gray.json
index 36d8b1e02..fe9326d6f 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/gray.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/gray.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:gray_disk_interface"
+ "color": "gray",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/green.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/green.json
index b6767a803..699db9508 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/green.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/green.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:green_disk_interface"
+ "color": "green",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/light_blue.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/light_blue.json
index b77981d41..9d90f595e 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/light_blue.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/light_blue.json
@@ -1,3 +1,4 @@
{
+ "color": "light_blue",
"loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/light_gray.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/light_gray.json
index 2a93274c2..104c6297e 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/light_gray.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/light_gray.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:light_gray_disk_interface"
+ "color": "light_gray",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/lime.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/lime.json
index efb6e86fa..4ff14a6fe 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/lime.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/lime.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:lime_disk_interface"
+ "color": "lime",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/magenta.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/magenta.json
index 8e013eb99..58bbbfe91 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/magenta.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/magenta.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:magenta_disk_interface"
+ "color": "magenta",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/orange.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/orange.json
index 5b4861e4a..4e8332956 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/orange.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/orange.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:orange_disk_interface"
+ "color": "orange",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/pink.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/pink.json
index cd6d82ca6..a28afd77f 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/pink.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/pink.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:pink_disk_interface"
+ "color": "pink",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/purple.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/purple.json
index c1f2a6350..fa3deef43 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/purple.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/purple.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:purple_disk_interface"
+ "color": "purple",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/red.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/red.json
index b379ab9dd..a7b4d343a 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/red.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/red.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:red_disk_interface"
+ "color": "red",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/white.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/white.json
index aa7be645d..fd841efcf 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/white.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/white.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:white_disk_interface"
+ "color": "white",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/yellow.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/yellow.json
index 3d5b3a3b1..59b511dcf 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/yellow.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/block/disk_interface/yellow.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:yellow_disk_interface"
+ "color": "yellow",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/black_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/black_disk_interface.json
index 47bcf93c9..301a3d76c 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/black_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/black_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:black_disk_interface"
+ "color": "black",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/blue_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/blue_disk_interface.json
index c4376dc8b..81dd9b752 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/blue_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/blue_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:blue_disk_interface"
+ "color": "blue",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/brown_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/brown_disk_interface.json
index 3b4cc4011..c8f70c2a3 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/brown_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/brown_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:brown_disk_interface"
+ "color": "brown",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/cyan_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/cyan_disk_interface.json
index 7744a3b75..e07184b27 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/cyan_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/cyan_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:cyan_disk_interface"
+ "color": "cyan",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/disk_interface.json
index b77981d41..9d90f595e 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/disk_interface.json
@@ -1,3 +1,4 @@
{
+ "color": "light_blue",
"loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/gray_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/gray_disk_interface.json
index 36d8b1e02..fe9326d6f 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/gray_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/gray_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:gray_disk_interface"
+ "color": "gray",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/green_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/green_disk_interface.json
index b6767a803..699db9508 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/green_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/green_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:green_disk_interface"
+ "color": "green",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/light_gray_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/light_gray_disk_interface.json
index 2a93274c2..104c6297e 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/light_gray_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/light_gray_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:light_gray_disk_interface"
+ "color": "light_gray",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/lime_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/lime_disk_interface.json
index efb6e86fa..4ff14a6fe 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/lime_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/lime_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:lime_disk_interface"
+ "color": "lime",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/magenta_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/magenta_disk_interface.json
index 8e013eb99..58bbbfe91 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/magenta_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/magenta_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:magenta_disk_interface"
+ "color": "magenta",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/orange_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/orange_disk_interface.json
index 5b4861e4a..4e8332956 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/orange_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/orange_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:orange_disk_interface"
+ "color": "orange",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/pink_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/pink_disk_interface.json
index cd6d82ca6..a28afd77f 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/pink_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/pink_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:pink_disk_interface"
+ "color": "pink",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/purple_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/purple_disk_interface.json
index c1f2a6350..fa3deef43 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/purple_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/purple_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:purple_disk_interface"
+ "color": "purple",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/red_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/red_disk_interface.json
index b379ab9dd..a7b4d343a 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/red_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/red_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:red_disk_interface"
+ "color": "red",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/white_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/white_disk_interface.json
index aa7be645d..fd841efcf 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/white_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/white_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:white_disk_interface"
+ "color": "white",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/yellow_disk_interface.json b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/yellow_disk_interface.json
index 3d5b3a3b1..59b511dcf 100644
--- a/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/yellow_disk_interface.json
+++ b/refinedstorage-common/src/generated/resources/assets/refinedstorage/models/item/yellow_disk_interface.json
@@ -1,3 +1,4 @@
{
- "loader": "refinedstorage:yellow_disk_interface"
+ "color": "yellow",
+ "loader": "refinedstorage:disk_interface"
}
\ No newline at end of file
diff --git a/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/content/Blocks.java b/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/content/Blocks.java
index 7026662f4..46b1016ae 100644
--- a/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/content/Blocks.java
+++ b/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/content/Blocks.java
@@ -1,10 +1,10 @@
package com.refinedmods.refinedstorage.common.content;
import com.refinedmods.refinedstorage.common.autocrafting.PatternGridBlock;
-import com.refinedmods.refinedstorage.common.constructordestructor.ConstructorBlock;
import com.refinedmods.refinedstorage.common.constructordestructor.AbstractConstructorBlockEntity;
-import com.refinedmods.refinedstorage.common.constructordestructor.DestructorBlock;
import com.refinedmods.refinedstorage.common.constructordestructor.AbstractDestructorBlockEntity;
+import com.refinedmods.refinedstorage.common.constructordestructor.ConstructorBlock;
+import com.refinedmods.refinedstorage.common.constructordestructor.DestructorBlock;
import com.refinedmods.refinedstorage.common.controller.AbstractControllerBlock;
import com.refinedmods.refinedstorage.common.controller.ControllerBlock;
import com.refinedmods.refinedstorage.common.controller.ControllerBlockEntityTicker;
@@ -17,10 +17,10 @@
import com.refinedmods.refinedstorage.common.grid.CraftingGridBlock;
import com.refinedmods.refinedstorage.common.grid.GridBlock;
import com.refinedmods.refinedstorage.common.iface.InterfaceBlock;
-import com.refinedmods.refinedstorage.common.importer.ImporterBlock;
import com.refinedmods.refinedstorage.common.importer.AbstractImporterBlockEntity;
-import com.refinedmods.refinedstorage.common.networking.CableBlock;
+import com.refinedmods.refinedstorage.common.importer.ImporterBlock;
import com.refinedmods.refinedstorage.common.networking.AbstractCableBlockEntity;
+import com.refinedmods.refinedstorage.common.networking.CableBlock;
import com.refinedmods.refinedstorage.common.networking.NetworkReceiverBlock;
import com.refinedmods.refinedstorage.common.networking.NetworkTransmitterBlock;
import com.refinedmods.refinedstorage.common.networking.RelayBlock;
@@ -31,8 +31,8 @@
import com.refinedmods.refinedstorage.common.storage.diskdrive.DiskDriveBlock;
import com.refinedmods.refinedstorage.common.storage.diskinterface.AbstractDiskInterfaceBlockEntity;
import com.refinedmods.refinedstorage.common.storage.diskinterface.DiskInterfaceBlock;
-import com.refinedmods.refinedstorage.common.storage.externalstorage.ExternalStorageBlock;
import com.refinedmods.refinedstorage.common.storage.externalstorage.AbstractExternalStorageBlockEntity;
+import com.refinedmods.refinedstorage.common.storage.externalstorage.ExternalStorageBlock;
import com.refinedmods.refinedstorage.common.storage.portablegrid.PortableGridBlock;
import com.refinedmods.refinedstorage.common.storage.storageblock.FluidStorageBlock;
import com.refinedmods.refinedstorage.common.storage.storageblock.ItemStorageBlock;
@@ -169,7 +169,8 @@ public final class Blocks {
private Blocks() {
}
- public BlockColorMap setCable(final BlockEntityProvider provider) {
+ public BlockColorMap setCable(
+ final BlockEntityProvider provider) {
cable = new BlockColorMap<>(
(color, name) -> new CableBlock(color, name, provider),
ContentIds.CABLE,
diff --git a/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/exporter/ExporterBlock.java b/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/exporter/ExporterBlock.java
index cea643d7a..9f29833f6 100644
--- a/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/exporter/ExporterBlock.java
+++ b/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/exporter/ExporterBlock.java
@@ -36,9 +36,8 @@ public class ExporterBlock extends AbstractDirectionalCableBlock
implements ColorableBlock, EntityBlock, BlockItemProvider {
private static final Component HELP = createTranslation("item", "exporter.help");
private static final Map SHAPE_CACHE = new ConcurrentHashMap<>();
- private static final AbstractBlockEntityTicker TICKER = new NetworkNodeBlockEntityTicker<>(
- BlockEntities.INSTANCE::getExporter
- );
+ private static final AbstractBlockEntityTicker TICKER =
+ new NetworkNodeBlockEntityTicker<>(BlockEntities.INSTANCE::getExporter);
private final DyeColor color;
private final MutableComponent name;
diff --git a/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/importer/ImporterBlock.java b/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/importer/ImporterBlock.java
index 84e5e921e..cf33a246f 100644
--- a/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/importer/ImporterBlock.java
+++ b/refinedstorage-common/src/main/java/com/refinedmods/refinedstorage/common/importer/ImporterBlock.java
@@ -36,9 +36,8 @@ public class ImporterBlock extends AbstractDirectionalCableBlock implements
ColorableBlock, EntityBlock, BlockItemProvider {
private static final Component HELP = createTranslation("item", "importer.help");
private static final Map SHAPE_CACHE = new HashMap<>();
- private static final AbstractBlockEntityTicker TICKER = new NetworkNodeBlockEntityTicker<>(
- BlockEntities.INSTANCE::getImporter
- );
+ private static final AbstractBlockEntityTicker TICKER =
+ new NetworkNodeBlockEntityTicker<>(BlockEntities.INSTANCE::getImporter);
private final DyeColor color;
private final MutableComponent name;
diff --git a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/ClientModInitializer.java b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/ClientModInitializer.java
index 9d1bd1218..2a0effae4 100644
--- a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/ClientModInitializer.java
+++ b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/ClientModInitializer.java
@@ -10,7 +10,6 @@
import com.refinedmods.refinedstorage.common.autocrafting.PatternTooltipCache;
import com.refinedmods.refinedstorage.common.configurationcard.ConfigurationCardItemPropertyFunction;
import com.refinedmods.refinedstorage.common.content.BlockEntities;
-import com.refinedmods.refinedstorage.common.content.Blocks;
import com.refinedmods.refinedstorage.common.content.ContentNames;
import com.refinedmods.refinedstorage.common.content.Items;
import com.refinedmods.refinedstorage.common.content.KeyMappings;
@@ -62,6 +61,7 @@
import static com.refinedmods.refinedstorage.common.content.ContentIds.CABLE;
import static com.refinedmods.refinedstorage.common.content.ContentIds.DISK_DRIVE;
+import static com.refinedmods.refinedstorage.common.content.ContentIds.DISK_INTERFACE;
import static com.refinedmods.refinedstorage.common.content.ContentIds.PATTERN;
import static com.refinedmods.refinedstorage.common.content.ContentIds.PORTABLE_GRID;
import static com.refinedmods.refinedstorage.common.util.IdentifierUtil.createIdentifier;
@@ -106,9 +106,7 @@ public static void onRegisterCustomModels(final ModelEvent.RegisterGeometryLoade
e.register(PATTERN, new PatternGeometryLoader());
e.register(DISK_DRIVE, new DiskDriveGeometryLoader());
e.register(PORTABLE_GRID, new PortableGridGeometryLoader());
- Blocks.INSTANCE.getDiskInterface().forEach(
- (color, id, supplier) -> e.register(id, new DiskInterfaceGeometryLoader(color))
- );
+ e.register(DISK_INTERFACE, new DiskInterfaceGeometryLoader());
e.register(CABLE, new CableGeometryLoader());
}
diff --git a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/BlockModelProviderImpl.java b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/BlockModelProviderImpl.java
index ec95c73b7..8d2345d8c 100644
--- a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/BlockModelProviderImpl.java
+++ b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/BlockModelProviderImpl.java
@@ -7,7 +7,6 @@
import net.minecraft.data.PackOutput;
import net.minecraft.resources.ResourceLocation;
import net.neoforged.neoforge.client.model.generators.BlockModelProvider;
-import net.neoforged.neoforge.client.model.generators.CustomLoaderBuilder;
import net.neoforged.neoforge.common.data.ExistingFileHelper;
import static com.refinedmods.refinedstorage.common.util.IdentifierUtil.MOD_ID;
@@ -73,7 +72,7 @@ private void registerCables() {
.texture("cable", texture)
.texture(PARTICLE_TEXTURE, texture);
getBuilder("block/cable/" + color.getName())
- .customLoader((blockModelBuilder, existingFileHelper) -> new CableCustomLoaderBuilder(
+ .customLoader((blockModelBuilder, existingFileHelper) -> new ColoredCustomLoaderBuilder<>(
ContentIds.CABLE,
blockModelBuilder,
existingFileHelper,
@@ -282,15 +281,14 @@ private void registerRelays() {
}
private void registerDiskInterfaces() {
- // TODO: add color as property and use single loader?
registerRightLeftBackFrontTopModel(Blocks.INSTANCE.getDiskInterface(), "disk_interface", "base_");
Blocks.INSTANCE.getDiskInterface()
.forEach((color, id, block) -> getBuilder("block/disk_interface/" + color.getName())
- .customLoader((blockModelBuilder, existingFileHelper) -> new CustomLoaderBuilder<>(
- id,
+ .customLoader((blockModelBuilder, existingFileHelper) -> new ColoredCustomLoaderBuilder<>(
+ ContentIds.DISK_INTERFACE,
blockModelBuilder,
existingFileHelper,
- true
+ color
) {
}).end());
}
diff --git a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/CableCustomLoaderBuilder.java b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/ColoredCustomLoaderBuilder.java
similarity index 61%
rename from refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/CableCustomLoaderBuilder.java
rename to refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/ColoredCustomLoaderBuilder.java
index 9fc4322bc..42ca3e08f 100644
--- a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/CableCustomLoaderBuilder.java
+++ b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/ColoredCustomLoaderBuilder.java
@@ -3,17 +3,17 @@
import com.google.gson.JsonObject;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.DyeColor;
-import net.neoforged.neoforge.client.model.generators.BlockModelBuilder;
import net.neoforged.neoforge.client.model.generators.CustomLoaderBuilder;
+import net.neoforged.neoforge.client.model.generators.ModelBuilder;
import net.neoforged.neoforge.common.data.ExistingFileHelper;
-class CableCustomLoaderBuilder extends CustomLoaderBuilder {
+class ColoredCustomLoaderBuilder> extends CustomLoaderBuilder {
private final DyeColor color;
- CableCustomLoaderBuilder(final ResourceLocation loaderId,
- final BlockModelBuilder parent,
- final ExistingFileHelper existingFileHelper,
- final DyeColor color) {
+ ColoredCustomLoaderBuilder(final ResourceLocation loaderId,
+ final T parent,
+ final ExistingFileHelper existingFileHelper,
+ final DyeColor color) {
super(loaderId, parent, existingFileHelper, true);
this.color = color;
}
diff --git a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/ItemModelProviderImpl.java b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/ItemModelProviderImpl.java
index 72ae46e81..1b34f7ac6 100644
--- a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/ItemModelProviderImpl.java
+++ b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/datagen/ItemModelProviderImpl.java
@@ -4,6 +4,7 @@
import com.refinedmods.refinedstorage.common.constructordestructor.DestructorBlock;
import com.refinedmods.refinedstorage.common.content.Blocks;
import com.refinedmods.refinedstorage.common.content.ColorMap;
+import com.refinedmods.refinedstorage.common.content.ContentIds;
import com.refinedmods.refinedstorage.common.exporter.ExporterBlock;
import com.refinedmods.refinedstorage.common.importer.ImporterBlock;
import com.refinedmods.refinedstorage.common.networking.CableBlock;
@@ -15,7 +16,6 @@
import net.minecraft.data.PackOutput;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.DyeColor;
-import net.neoforged.neoforge.client.model.generators.CustomLoaderBuilder;
import net.neoforged.neoforge.client.model.generators.ItemModelProvider;
import net.neoforged.neoforge.client.model.generators.ModelFile;
import net.neoforged.neoforge.common.data.ExistingFileHelper;
@@ -209,11 +209,11 @@ private void registerRelays() {
private void registerDiskInterfaces() {
final var blocks = Blocks.INSTANCE.getDiskInterface();
blocks.forEach((color, id, block) -> getBuilder(id.getPath()).customLoader(
- (blockModelBuilder, existingFileHelper) -> new CustomLoaderBuilder<>(
- id,
+ (blockModelBuilder, existingFileHelper) -> new ColoredCustomLoaderBuilder<>(
+ ContentIds.DISK_INTERFACE,
blockModelBuilder,
existingFileHelper,
- true
+ color
) {
}).end());
}
diff --git a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/storage/diskinterface/DiskInterfaceGeometryLoader.java b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/storage/diskinterface/DiskInterfaceGeometryLoader.java
index ee3971486..ed5490763 100644
--- a/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/storage/diskinterface/DiskInterfaceGeometryLoader.java
+++ b/refinedstorage-neoforge/src/main/java/com/refinedmods/refinedstorage/neoforge/storage/diskinterface/DiskInterfaceGeometryLoader.java
@@ -5,16 +5,14 @@
import net.minecraft.world.item.DyeColor;
import net.neoforged.neoforge.client.model.geometry.IGeometryLoader;
-public class DiskInterfaceGeometryLoader implements IGeometryLoader {
- private final DyeColor color;
-
- public DiskInterfaceGeometryLoader(final DyeColor color) {
- this.color = color;
- }
+import static com.refinedmods.refinedstorage.common.content.Blocks.COLOR;
+public class DiskInterfaceGeometryLoader implements IGeometryLoader {
@Override
public DiskInterfaceUnbakedGeometry read(final JsonObject jsonObject,
final JsonDeserializationContext deserializationContext) {
- return new DiskInterfaceUnbakedGeometry(color);
+ final String color = jsonObject.get("color").getAsString();
+ final DyeColor dyeColor = DyeColor.byName(color, COLOR);
+ return new DiskInterfaceUnbakedGeometry(dyeColor);
}
}