aboutsummaryrefslogtreecommitdiff
path: root/src/main/resources
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/resources')
-rw-r--r--src/main/resources/assets/gregtech/shaders/blackhole.frag.glsl42
-rw-r--r--src/main/resources/assets/gregtech/shaders/blackhole.vert.glsl81
-rw-r--r--src/main/resources/assets/gregtech/shaders/laser.frag.glsl25
-rw-r--r--src/main/resources/assets/gregtech/shaders/laser.vert.glsl47
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_HEAT_SENSOR.png (renamed from src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_BLACKHOLE.png)bin1711 -> 1711 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_HEAT_SENSOR_GLOW.png (renamed from src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_BLACKHOLE_GLOW.png)bin1702 -> 1702 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE.pngbin0 -> 217 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE.pngbin0 -> 394 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE.png.mcmeta1
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE_GLOW.pngbin0 -> 316 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE_GLOW.png.mcmeta1
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_GLOW.pngbin0 -> 131 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE.pngbin0 -> 391 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE.png.mcmeta1
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE_GLOW.pngbin0 -> 315 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE_GLOW.png.mcmeta1
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM.pngbin0 -> 228 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE.pngbin0 -> 444 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE.png.mcmeta1
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE_GLOW.pngbin0 -> 375 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE_GLOW.png.mcmeta1
-rw-r--r--src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_GLOW.pngbin0 -> 176 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/418.pngbin164 -> 553 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/418.png.mcmeta1
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/419.pngbin164 -> 550 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/419.png.mcmeta1
-rw-r--r--src/main/resources/assets/gregtech/textures/model/blackhole.obj1364
-rw-r--r--src/main/resources/assets/gregtech/textures/model/blackhole.pngbin0 -> 81661 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/model/laser.pngbin0 -> 155 bytes
29 files changed, 1567 insertions, 0 deletions
diff --git a/src/main/resources/assets/gregtech/shaders/blackhole.frag.glsl b/src/main/resources/assets/gregtech/shaders/blackhole.frag.glsl
new file mode 100644
index 0000000000..4334dde59e
--- /dev/null
+++ b/src/main/resources/assets/gregtech/shaders/blackhole.frag.glsl
@@ -0,0 +1,42 @@
+#version 120
+
+uniform float u_Time;
+uniform float u_Stability;
+uniform sampler2D u_Texture;
+varying vec2 v_TexCoord;
+
+const vec3 STABLE_COLOR = vec3(1,0.85,0.043);
+const vec3 UNSTABLE_COLOR = vec3(.4,0,0);
+
+vec3 toYIQ(vec3 rgb){
+ return mat3( 0.299, 1.0, 0.40462981, 0.587, -0.46081557, -1.0, 0.114, -0.53918443, 0.59537019 ) * rgb;
+}
+
+vec3 toRGB(vec3 yiq){
+ return mat3( 1.0, 1.0, 1.0, 0.5696804, -0.1620848, -0.6590654, 0.3235513, -0.3381869, 0.8901581 ) * yiq;
+}
+
+
+void main() {
+ //Extremely fragile system to deteriminte if isolate parts of the blackhole
+ //Would break with any uv remaping or atlas stiching
+ bool isDisk = (abs(v_TexCoord.y-.5f)>.245);
+ bool isBack = (abs(v_TexCoord.x-.5f)>.245) && isDisk;
+ bool isTinyRing = (v_TexCoord.y > .66) && !isDisk;
+
+ vec2 texCoord = v_TexCoord;
+ if (isDisk || isTinyRing){
+ texCoord.x = mod(texCoord.x+u_Time/30,1);
+ }
+
+ vec4 texture = texture2D(u_Texture, texCoord);
+ if (isDisk || isTinyRing){
+ vec3 targetYIQ = toYIQ(STABLE_COLOR);
+ vec3 originalYIQ = toYIQ(texture.xyz);
+ vec3 yiqColor = vec3(originalYIQ.x,normalize(targetYIQ.yz)*length(originalYIQ.yz));
+ vec3 finalrgb = toRGB(yiqColor);
+ texture = vec4(mix(UNSTABLE_COLOR,finalrgb,pow(u_Stability,.5)),1);
+ }
+
+ gl_FragColor = texture;
+}
diff --git a/src/main/resources/assets/gregtech/shaders/blackhole.vert.glsl b/src/main/resources/assets/gregtech/shaders/blackhole.vert.glsl
new file mode 100644
index 0000000000..57cea0b81c
--- /dev/null
+++ b/src/main/resources/assets/gregtech/shaders/blackhole.vert.glsl
@@ -0,0 +1,81 @@
+#version 120
+
+uniform float u_Time;
+uniform float u_Stability;
+uniform float u_Scale;
+uniform vec3 u_CameraPosition;
+
+varying vec2 v_TexCoord;
+
+const float PI = 3.14159265358979323846;
+
+const float HORIZON_EDGE = 2.6;
+
+mat4 rotateMatrix(float angle, vec3 axis){
+ float x = axis.x;
+ float y = axis.y;
+ float z = axis.z;
+
+ float c = cos(angle);
+ float s = sin(angle);
+ float t = 1.0 - c;
+
+ return mat4(
+ c+x*x*t, t*x*y - s*z, t*x*z + s*y, 0.0,
+ t*x*y + s*z, t*y*y + c, t*y*z - s*x, 0.0,
+ t*x*z - s*y, t*y*z + s*x, t*z*z + c, 0.0,
+ 0.0, 0.0, 0.0, 1.0
+ );
+}
+
+
+
+
+
+void main() {
+
+ v_TexCoord = gl_MultiTexCoord0.xy;
+
+ //Extremely fragile system to deteriminte if isolate parts of the blackhole
+ //Would break with any uv remaping or atlas stiching
+ bool isDisk = (abs(v_TexCoord.y-.5f)>.245);
+ bool isBack = (abs(v_TexCoord.x-.5f)>.245) && isDisk;
+ bool isFront = (abs(v_TexCoord.x-.5f)<.255) && isDisk;
+ bool isBot = (v_TexCoord.y < .5) && isBack;
+
+ float yAngle = atan(u_CameraPosition.z,u_CameraPosition.x) - PI/2;
+ float c = cos(yAngle);
+ float s = sin(yAngle);
+ mat4 yRotate = mat4(
+ vec4(c, 0.0, s, 0.0), // First column
+ vec4(0.0, 1.0, 0.0, 0.0), // Second column
+ vec4(-s, 0.0, c, 0.0), // Third column
+ vec4(0.0, 0.0, 0.0, 1.0) // Fourth column
+ );
+
+
+ float base = length(gl_Vertex.xyz);
+ float stab = (base>HORIZON_EDGE)?u_Stability:1;
+
+ float scale = ((base-HORIZON_EDGE)*stab+HORIZON_EDGE)/base;
+ scale = max(scale, .1);
+ scale*=u_Scale;
+
+
+ vec4 rotated = yRotate * vec4((gl_Vertex.xyz*scale),1);
+
+ vec3 cameraDirection = normalize(u_CameraPosition);
+ cameraDirection = !isBot?cameraDirection:-cameraDirection;
+ vec3 rotateAxis = cross(cameraDirection,vec3(0,1,0));
+ float angle = acos(dot(cameraDirection,vec3(0,1,0)));
+ if (isFront) angle = 0;
+
+ float instabilityRotation =(u_Stability<=0)?u_Time/10:0;
+
+ mat4 rotate = rotateMatrix(angle,normalize(rotateAxis));
+
+
+ mat4 rotateB = rotateMatrix(instabilityRotation,normalize(u_CameraPosition));
+
+ gl_Position = gl_ModelViewProjectionMatrix * (rotateB* (rotate * (rotated)));
+}
diff --git a/src/main/resources/assets/gregtech/shaders/laser.frag.glsl b/src/main/resources/assets/gregtech/shaders/laser.frag.glsl
new file mode 100644
index 0000000000..45656e8767
--- /dev/null
+++ b/src/main/resources/assets/gregtech/shaders/laser.frag.glsl
@@ -0,0 +1,25 @@
+#version 120
+
+uniform sampler2D u_Texture;
+uniform vec3 u_Color;
+
+varying vec2 v_TexCoord;
+
+vec3 toYIQ(vec3 rgb){
+ return mat3( 0.299, 1.0, 0.40462981, 0.587, -0.46081557, -1.0, 0.114, -0.53918443, 0.59537019 ) * rgb;
+}
+
+vec3 toRGB(vec3 yiq){
+ return mat3( 1.0, 1.0, 1.0, 0.5696804, -0.1620848, -0.6590654, 0.3235513, -0.3381869, 0.8901581 ) * yiq;
+}
+
+void main() {
+ vec4 texture = texture2D(u_Texture, v_TexCoord);
+
+ vec3 targetYIQ = toYIQ(u_Color);
+ vec3 originalYIQ = toYIQ(texture.xyz);
+ vec3 yiqColor = vec3(originalYIQ.x,normalize(targetYIQ.yz)*length(originalYIQ.yz));
+ vec3 finalrgb = toRGB(yiqColor);
+
+ gl_FragColor = vec4(finalrgb,1);
+}
diff --git a/src/main/resources/assets/gregtech/shaders/laser.vert.glsl b/src/main/resources/assets/gregtech/shaders/laser.vert.glsl
new file mode 100644
index 0000000000..9acecf5da9
--- /dev/null
+++ b/src/main/resources/assets/gregtech/shaders/laser.vert.glsl
@@ -0,0 +1,47 @@
+#version 120
+
+uniform vec3 u_CameraPosition;
+uniform mat4 u_ModelMatrix;
+
+varying vec2 v_TexCoord;
+
+const float PI = 3.14159265358979323846;
+
+
+
+mat4 rotateMatrix(float angle, vec3 axis){
+ float x = axis.x;
+ float y = axis.y;
+ float z = axis.z;
+
+ float c = cos(angle);
+ float s = sin(angle);
+ float t = 1.0 - c;
+
+ return mat4(
+ c+x*x*t, t*x*y - s*z, t*x*z + s*y, 0.0,
+ t*x*y + s*z, t*y*y + c, t*y*z - s*x, 0.0,
+ t*x*z - s*y, t*y*z + s*x, t*z*z + c, 0.0,
+ 0.0, 0.0, 0.0, 1.0
+ );
+}
+
+
+void main() {
+
+ v_TexCoord = gl_MultiTexCoord0.xy;
+
+ float xAngle = atan(u_CameraPosition.y,u_CameraPosition.z) - PI/2;
+ float c = cos(xAngle);
+ float s = sin(xAngle);
+ mat4 xRotate = mat4(
+ 1.0, 0.0, 0.0, 0.0,
+ 0.0, c, -s, 0.0,
+ 0.0, s, c, 0.0,
+ 0.0, 0.0, 0.0, 1.0
+ );
+
+
+ gl_Position = gl_ModelViewProjectionMatrix * (u_ModelMatrix*(xRotate*gl_Vertex));
+}
+
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_BLACKHOLE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_HEAT_SENSOR.png
index e849b26703..e849b26703 100644
--- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_BLACKHOLE.png
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_HEAT_SENSOR.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_BLACKHOLE_GLOW.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_HEAT_SENSOR_GLOW.png
index 36dd0187dd..36dd0187dd 100644
--- a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_BLACKHOLE_GLOW.png
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_HATCH_HEAT_SENSOR_GLOW.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE.png
new file mode 100644
index 0000000000..082971beaf
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE.png
new file mode 100644
index 0000000000..a59e5ff444
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE.png.mcmeta
new file mode 100644
index 0000000000..14578b550b
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 4}} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE_GLOW.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE_GLOW.png
new file mode 100644
index 0000000000..0e6ec1e1bb
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE_GLOW.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE_GLOW.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE_GLOW.png.mcmeta
new file mode 100644
index 0000000000..14578b550b
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_ACTIVE_GLOW.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 4}} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_GLOW.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_GLOW.png
new file mode 100644
index 0000000000..b73ee2bea6
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_GLOW.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE.png
new file mode 100644
index 0000000000..78e274f090
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE.png.mcmeta
new file mode 100644
index 0000000000..14578b550b
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 4}} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE_GLOW.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE_GLOW.png
new file mode 100644
index 0000000000..09212f35b5
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE_GLOW.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE_GLOW.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE_GLOW.png.mcmeta
new file mode 100644
index 0000000000..14578b550b
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_BLACKHOLE_UNSTABLE_GLOW.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 4}} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM.png
new file mode 100644
index 0000000000..2a83255485
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE.png
new file mode 100644
index 0000000000..b3dc6c72fa
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE.png.mcmeta
new file mode 100644
index 0000000000..14578b550b
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 4}} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE_GLOW.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE_GLOW.png
new file mode 100644
index 0000000000..c4ca221c51
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE_GLOW.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE_GLOW.png.mcmeta b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE_GLOW.png.mcmeta
new file mode 100644
index 0000000000..14578b550b
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_ACTIVE_GLOW.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 4}} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_GLOW.png b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_GLOW.png
new file mode 100644
index 0000000000..5ce6544e39
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/blocks/iconsets/OVERLAY_MULTI_NEUTRONIUM_GLOW.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/418.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/418.png
index 79b2881931..9fb3c704c9 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/418.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/418.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/418.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/418.png.mcmeta
new file mode 100644
index 0000000000..14578b550b
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/418.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 4}} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/419.png b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/419.png
index 95eae6ea59..f29c8748f2 100644
--- a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/419.png
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/419.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/419.png.mcmeta b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/419.png.mcmeta
new file mode 100644
index 0000000000..14578b550b
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.metaitem.01/419.png.mcmeta
@@ -0,0 +1 @@
+{"animation": {"frametime": 4}} \ No newline at end of file
diff --git a/src/main/resources/assets/gregtech/textures/model/blackhole.obj b/src/main/resources/assets/gregtech/textures/model/blackhole.obj
new file mode 100644
index 0000000000..2ae4ff064e
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/model/blackhole.obj
@@ -0,0 +1,1364 @@
+# Blender 4.2.0
+# www.blender.org
+mtllib blackhole.mtl
+o Circle
+v 0.000000 0.000000 -3.000000
+v -0.294051 0.000000 -2.985554
+v -0.585271 0.000000 -2.942356
+v -0.870854 0.000000 -2.870821
+v -1.148050 0.000000 -2.771638
+v -1.414190 0.000000 -2.645764
+v -1.666711 0.000000 -2.494409
+v -1.903180 0.000000 -2.319031
+v -2.121320 0.000000 -2.121320
+v -2.319031 0.000000 -1.903180
+v -2.494409 0.000000 -1.666711
+v -2.645764 0.000000 -1.414190
+v -2.771638 0.000000 -1.148050
+v -2.870821 0.000000 -0.870854
+v -2.942356 0.000000 -0.585271
+v -2.985554 0.000000 -0.294051
+v -3.000000 0.000000 -0.000000
+v -2.985554 0.000000 0.294051
+v -2.942356 0.000000 0.585271
+v -2.870821 0.000000 0.870854
+v -2.771638 0.000000 1.148050
+v -2.645764 0.000000 1.414190
+v -2.494409 0.000000 1.666711
+v -2.319031 0.000000 1.903180
+v -2.121320 0.000000 2.121320
+v -1.903180 0.000000 2.319031
+v -1.666711 0.000000 2.494409
+v -1.414190 0.000000 2.645764
+v -1.148050 0.000000 2.771638
+v -0.870854 0.000000 2.870821
+v -0.585271 0.000000 2.942356
+v -0.294051 0.000000 2.985554
+v 0.000000 0.000000 3.000000
+v 0.294051 0.000000 2.985554
+v 0.585271 0.000000 2.942356
+v 0.870854 0.000000 2.870821
+v 1.148050 0.000000 2.771638
+v 1.414190 0.000000 2.645764
+v 1.666711 0.000000 2.494409
+v 1.903180 0.000000 2.319031
+v 2.121320 0.000000 2.121320
+v 2.319031 0.000000 1.903180
+v 2.494409 0.000000 1.666711
+v 2.645764 0.000000 1.414190
+v 2.771638 0.000000 1.148050
+v 2.870821 0.000000 0.870854
+v 2.942356 0.000000 0.585271
+v 2.985554 0.000000 0.294051
+v 3.000000 0.000000 -0.000000
+v 2.985554 0.000000 -0.294051
+v 2.942356 0.000000 -0.585271
+v 2.870821 0.000000 -0.870854
+v 2.771638 0.000000 -1.148050
+v 2.645764 0.000000 -1.414190
+v 2.494409 0.000000 -1.666711
+v 2.319031 0.000000 -1.903180
+v 2.121320 0.000000 -2.121320
+v 1.903180 0.000000 -2.319031
+v 1.666711 0.000000 -2.494409
+v 1.414190 0.000000 -2.645764
+v 1.148050 0.000000 -2.771638
+v 0.870854 0.000000 -2.870821
+v 0.585271 0.000000 -2.942356
+v 0.294051 0.000000 -2.985554
+v -0.000000 0.000000 -4.153742
+v -0.407138 0.000000 -4.133741
+v -0.810355 0.000000 -4.073929
+v -1.205768 0.000000 -3.974884
+v -1.589568 0.000000 -3.837557
+v -1.958061 0.000000 -3.663273
+v -2.307696 0.000000 -3.453710
+v -2.635107 0.000000 -3.210886
+v -2.937139 0.000000 -2.937139
+v -3.210886 0.000000 -2.635107
+v -3.453710 0.000000 -2.307696
+v -3.663273 0.000000 -1.958061
+v -3.837557 0.000000 -1.589568
+v -3.974884 0.000000 -1.205768
+v -4.073929 0.000000 -0.810355
+v -4.133741 0.000000 -0.407138
+v -4.153742 0.000000 -0.000000
+v -4.133741 0.000000 0.407138
+v -4.073929 0.000000 0.810355
+v -3.974884 0.000000 1.205768
+v -3.837557 0.000000 1.589568
+v -3.663273 0.000000 1.958061
+v -3.453710 0.000000 2.307695
+v -3.210886 0.000000 2.635106
+v -2.937139 0.000000 2.937139
+v -2.635107 0.000000 3.210886
+v -2.307696 0.000000 3.453710
+v -1.958061 0.000000 3.663273
+v -1.589568 0.000000 3.837557
+v -1.205768 0.000000 3.974884
+v -0.810355 0.000000 4.073929
+v -0.407138 0.000000 4.133741
+v -0.000000 0.000000 4.153742
+v 0.407138 0.000000 4.133741
+v 0.810355 0.000000 4.073929
+v 1.205768 0.000000 3.974884
+v 1.589568 0.000000 3.837557
+v 1.958061 0.000000 3.663273
+v 2.307695 0.000000 3.453710
+v 2.635106 0.000000 3.210886
+v 2.937139 0.000000 2.937139
+v 3.210886 0.000000 2.635106
+v 3.453710 0.000000 2.307695
+v 3.663273 0.000000 1.958061
+v 3.837557 0.000000 1.589568
+v 3.974884 0.000000 1.205768
+v 4.073929 0.000000 0.810355
+v 4.133741 0.000000 0.407138
+v 4.153742 0.000000 -0.000000
+v 4.133741 0.000000 -0.407138
+v 4.073929 0.000000 -0.810355
+v 3.974884 0.000000 -1.205768
+v 3.837557 0.000000 -1.589568
+v 3.663273 0.000000 -1.958061
+v 3.453710 0.000000 -2.307696
+v 3.210886 0.000000 -2.635107
+v 2.937139 0.000000 -2.937139
+v 2.635106 0.000000 -3.210886
+v 2.307695 0.000000 -3.453710
+v 1.958061 0.000000 -3.663273
+v 1.589568 0.000000 -3.837557
+v 1.205768 0.000000 -3.974884
+v 0.810355 0.000000 -4.073929
+v 0.407138 0.000000 -4.133741
+v 3.453710 0.000000 2.307695
+v 3.453710 0.000000 2.307695
+v 3.453710 0.000000 2.307695
+v 0.000000 0.000000 -3.000000
+v -0.294051 0.000000 -2.985554
+v -0.585271 0.000000 -2.942356
+v -0.870854 0.000000 -2.870821
+v -1.148050 0.000000 -2.771638
+v -1.414190 0.000000 -2.645764
+v -1.666711 0.000000 -2.494409
+v -1.903180 0.000000 -2.319031
+v -2.121320 0.000000 -2.121320
+v -2.319031 0.000000 -1.903180
+v -2.494409 0.000000 -1.666711
+v -2.645764 0.000000 -1.414190
+v -2.771638 0.000000 -1.148050
+v -2.870821 0.000000 -0.870854
+v -2.942356 0.000000 -0.585271
+v -2.985554 0.000000 -0.294051
+v -3.000000 0.000000 -0.000000
+v -2.985554 0.000000 0.294051
+v -2.942356 0.000000 0.585271
+v -2.870821 0.000000 0.870854
+v -2.771638 0.000000 1.148050
+v -2.645764 0.000000 1.414190
+v -2.494409 0.000000 1.666711
+v -2.319031 0.000000 1.903180
+v -2.121320 0.000000 2.121320
+v -1.903180 0.000000 2.319031
+v -1.666711 0.000000 2.494409
+v -1.414190 0.000000 2.645764
+v -1.148050 0.000000 2.771638
+v -0.870854 0.000000 2.870821
+v -0.585271 0.000000 2.942356
+v -0.294051 0.000000 2.985554
+v 0.000000 0.000000 3.000000
+v 0.294051 0.000000 2.985554
+v 0.585271 0.000000 2.942356
+v 0.870854 0.000000 2.870821
+v 1.148050 0.000000 2.771638
+v 1.414190 0.000000 2.645764
+v 1.666711 0.000000 2.494409
+v 1.903180 0.000000 2.319031
+v 2.121320 0.000000 2.121320
+v 2.319031 0.000000 1.903180
+v 2.494409 0.000000 1.666711
+v 2.645764 0.000000 1.414190
+v 2.771638 0.000000 1.148050
+v 2.870821 0.000000 0.870854
+v 2.942356 0.000000 0.585271
+v 2.985554 0.000000 0.294051
+v 3.000000 0.000000 -0.000000
+v 2.985554 0.000000 -0.294051
+v 2.942356 0.000000 -0.585271
+v 2.870821 0.000000 -0.870854
+v 2.771638 0.000000 -1.148050
+v 2.645764 0.000000 -1.414190
+v 2.494409 0.000000 -1.666711
+v 2.319031 0.000000 -1.903180
+v 2.121320 0.000000 -2.121320
+v 1.903180 0.000000 -2.319031
+v 1.666711 0.000000 -2.494409
+v 1.414190 0.000000 -2.645764
+v 1.148050 0.000000 -2.771638
+v 0.870854 0.000000 -2.870821
+v 0.585271 0.000000 -2.942356
+v 0.294051 0.000000 -2.985554
+v -0.000000 0.000000 -4.153742
+v -0.407138 0.000000 -4.133741
+v -0.810355 0.000000 -4.073929
+v -1.205768 0.000000 -3.974884
+v -1.589568 0.000000 -3.837557
+v -1.958061 0.000000 -3.663273
+v -2.307696 0.000000 -3.453710
+v -2.635107 0.000000 -3.210886
+v -2.937139 0.000000 -2.937139
+v -3.210886 0.000000 -2.635107
+v -3.453710 0.000000 -2.307696
+v -3.663273 0.000000 -1.958061
+v -3.837557 0.000000 -1.589568
+v -3.974884 0.000000 -1.205768
+v -4.073929 0.000000 -0.810355
+v -4.133741 0.000000 -0.407138
+v -4.153742 0.000000 -0.000000
+v -4.133741 0.000000 0.407138
+v -4.073929 0.000000 0.810355
+v -3.974884 0.000000 1.205768
+v -3.837557 0.000000 1.589568
+v -3.663273 0.000000 1.958061
+v -3.453710 0.000000 2.307695
+v -3.210886 0.000000 2.635106
+v -2.937139 0.000000 2.937139
+v -2.635107 0.000000 3.210886
+v -2.307696 0.000000 3.453710
+v -1.958061 0.000000 3.663273
+v -1.589568 0.000000 3.837557
+v -1.205768 0.000000 3.974884
+v -0.810355 0.000000 4.073929
+v -0.407138 0.000000 4.133741
+v -0.000000 0.000000 4.153742
+v 0.407138 0.000000 4.133741
+v 0.810355 0.000000 4.073929
+v 1.205768 0.000000 3.974884
+v 1.589568 0.000000 3.837557
+v 1.958061 0.000000 3.663273
+v 2.307695 0.000000 3.453710
+v 2.635106 0.000000 3.210886
+v 2.937139 0.000000 2.937139
+v 3.210886 0.000000 2.635106
+v 3.453710 0.000000 2.307695
+v 3.663273 0.000000 1.958061
+v 3.837557 0.000000 1.589568
+v 3.974884 0.000000 1.205768
+v 4.073929 0.000000 0.810355
+v 4.133741 0.000000 0.407138
+v 4.153742 0.000000 -0.000000
+v 4.133741 0.000000 -0.407138
+v 4.073929 0.000000 -0.810355
+v 3.974884 0.000000 -1.205768
+v 3.837557 0.000000 -1.589568
+v 3.663273 0.000000 -1.958061
+v 3.453710 0.000000 -2.307696
+v 3.210886 0.000000 -2.635107
+v 2.937139 0.000000 -2.937139
+v 2.635106 0.000000 -3.210886
+v 2.307695 0.000000 -3.453710
+v 1.958061 0.000000 -3.663273
+v 1.589568 0.000000 -3.837557
+v 1.205768 0.000000 -3.974884
+v 0.810355 0.000000 -4.073929
+v 0.407138 0.000000 -4.133741
+v 3.453710 0.000000 2.307695
+v 0.254845 0.000000 -2.587480
+v 0.507235 0.000000 -2.550042
+v 0.754740 0.000000 -2.488045
+v 0.994977 0.000000 -2.402087
+v 1.225631 0.000000 -2.292995
+v 1.444483 0.000000 -2.161821
+v 1.649423 0.000000 -2.009827
+v 1.838478 0.000000 -1.838478
+v 2.009827 0.000000 -1.649423
+v 2.161821 0.000000 -1.444483
+v 2.292995 0.000000 -1.225631
+v 2.402087 0.000000 -0.994977
+v 2.488045 0.000000 -0.754740
+v 2.550042 0.000000 -0.507235
+v 2.587480 0.000000 -0.254845
+v 2.600000 0.000000 0.000000
+v 2.587480 0.000000 0.254845
+v 2.550042 0.000000 0.507235
+v 2.488045 0.000000 0.754740
+v 2.402087 0.000000 0.994977
+v 2.292995 0.000000 1.225631
+v 2.161821 0.000000 1.444483
+v 2.009827 0.000000 1.649423
+v 1.838478 0.000000 1.838478
+v 1.649423 0.000000 2.009827
+v 1.444483 0.000000 2.161821
+v 1.225631 0.000000 2.292995
+v 0.994977 0.000000 2.402087
+v 0.754740 0.000000 2.488045
+v 0.507235 0.000000 2.550042
+v 0.254845 0.000000 2.587480
+v -0.000000 0.000000 2.600000
+v -0.254845 0.000000 2.587480
+v -0.507235 0.000000 2.550042
+v -0.754740 0.000000 2.488045
+v -0.994977 0.000000 2.402087
+v -1.225631 0.000000 2.292995
+v -1.444483 0.000000 2.161821
+v -1.649423 0.000000 2.009827
+v -1.838478 0.000000 1.838478
+v -2.009827 0.000000 1.649423
+v -2.161821 0.000000 1.444483
+v -2.292995 0.000000 1.225631
+v -2.402087 0.000000 0.994977
+v -2.488045 0.000000 0.754740
+v -2.550042 0.000000 0.507235
+v -2.587480 0.000000 0.254845
+v -2.600000 0.000000 0.000000
+v -2.587480 0.000000 -0.254845
+v -2.550042 0.000000 -0.507235
+v -2.488045 0.000000 -0.754740
+v -2.402087 0.000000 -0.994977
+v -2.292995 0.000000 -1.225631
+v -2.161821 0.000000 -1.444483
+v -2.009827 0.000000 -1.649423
+v -1.838478 0.000000 -1.838478
+v -1.649423 0.000000 -2.009827
+v -1.444483 0.000000 -2.161821
+v -1.225631 0.000000 -2.292995
+v -0.994977 0.000000 -2.402087
+v -0.754740 0.000000 -2.488045
+v -0.507235 0.000000 -2.550042
+v -0.254845 0.000000 -2.587480
+v -0.000000 0.000000 -2.600000
+v 0.000000 0.000000 -2.600000
+v -0.254845 0.000000 -2.587480
+v -0.507235 0.000000 -2.550042
+v -0.754740 0.000000 -2.488045
+v -0.994977 0.000000 -2.402087
+v -1.225631 0.000000 -2.292995
+v -1.444483 0.000000 -2.161821
+v -1.649423 0.000000 -2.009827
+v -1.838478 0.000000 -1.838478
+v -2.009827 0.000000 -1.649423
+v -2.161821 0.000000 -1.444483
+v -2.292995 0.000000 -1.225631
+v -2.402087 0.000000 -0.994977
+v -2.488045 0.000000 -0.754740
+v -2.550042 0.000000 -0.507235
+v -2.587480 0.000000 -0.254845
+v -2.600000 0.000000 -0.000000
+v -2.587480 0.000000 0.254845
+v -2.550042 0.000000 0.507235
+v -2.488045 0.000000 0.754740
+v -2.402087 0.000000 0.994977
+v -2.292995 0.000000 1.225631
+v -2.161821 0.000000 1.444483
+v -2.009827 0.000000 1.649423
+v -1.838478 0.000000 1.838478
+v -1.649423 0.000000 2.009827
+v -1.444483 0.000000 2.161821
+v -1.225631 0.000000 2.292995
+v -0.994977 0.000000 2.402087
+v -0.754740 0.000000 2.488045
+v -0.507235 0.000000 2.550042
+v -0.254845 0.000000 2.587480
+v 0.000000 0.000000 2.600000
+v 0.254845 0.000000 2.587480
+v 0.507235 0.000000 2.550042
+v 0.754740 0.000000 2.488045
+v 0.994977 0.000000 2.402087
+v 1.225631 0.000000 2.292995
+v 1.444483 0.000000 2.161821
+v 1.649423 0.000000 2.009827
+v 1.838478 0.000000 1.838478
+v 2.009827 0.000000 1.649423
+v 2.161821 0.000000 1.444483
+v 2.292995 0.000000 1.225631
+v 2.402087 0.000000 0.994977
+v 2.488045 0.000000 0.754740
+v 2.550042 0.000000 0.507235
+v 2.587480 0.000000 0.254845
+v 2.600000 0.00